Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
James W SergiSpainAsiya Javayant PROPOSAL
Sinclair H SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Smith H WaycottBrazilBernardo Dominic RENEWAL
Aika P MaletJapanAmy Elsner UNQUALIFIED
Kaitlin W ButtJapanBernardo Dominic NEW
Wickens L InouyeBrazilIvan Magalhaes UNQUALIFIED
Ivar B PaprockiFranceAsiya Javayant PROPOSAL
David T FerenczUnited KingdomAmy Elsner RENEWAL
Tony M GlickSpainIoni Bowcher RENEWAL
Murillo T SaylorsSpainAmy Elsner UNQUALIFIED
Leon X AmigonFranceOnyama Limba QUALIFIED
Jefferson V RoysterIndiaOnyama Limba QUALIFIED
Greenwood T WieserBrazilAsiya Javayant UNQUALIFIED
Rodrigues R SergiIndiaAnna Fali PROPOSAL
Izzy R SchemmerAustraliaBernardo Dominic NEGOTIATION
Emily W ShinkoIndiaOnyama Limba QUALIFIED
Tony B OstroskyRussiaIvan Magalhaes QUALIFIED
Ivar T VenereUnited KingdomStephen Shaw NEGOTIATION
Ricardo F TollnerCanadaAnna Fali RENEWAL
Kaitlin X CaudyAustraliaXuxue Feng NEW
Smith W FlosiJapanElwin Sharvill NEW
Jefferson O AlbaresGermanyStephen Shaw QUALIFIED
Mujtaba W CaldareraBrazilAnna Fali PROPOSAL
Cody Z RimIndiaElwin Sharvill NEGOTIATION
Leon Z StensethIndiaElwin Sharvill UNQUALIFIED
Sinclair L DoeIndiaIoni Bowcher RENEWAL
Ashley X PoquetteCanadaAsiya Javayant NEW
Jeanfrancois D VenereBrazilXuxue Feng UNQUALIFIED
Deepesh M AmigonGermanyStephen Shaw QUALIFIED
Rodrigues N MacleadIndiaAnna Fali QUALIFIED
Johnson G PaprockiGermanyIoni Bowcher RENEWAL
Rodrigues K NickaFranceStephen Shaw NEGOTIATION
David F CaldareraSpainIvan Magalhaes QUALIFIED
Kaitlin L GillianItalyAnna Fali NEGOTIATION
Ashley D GauchoCanadaStephen Shaw NEGOTIATION
Wickens C SchemmerUnited KingdomAnna Fali RENEWAL
Silvio L MaletIndiaAmy Elsner NEGOTIATION
Kadeem O PoquetteCanadaOnyama Limba QUALIFIED
Ivar F DilliardItalyAmy Elsner QUALIFIED
Chavez Q SlusarskiSpainIvan Magalhaes NEGOTIATION
Jones H OstroskyFranceAsiya Javayant QUALIFIED
Greenwood I ButtFranceXuxue Feng UNQUALIFIED
Silvio A SergiUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood H AmigonGermanyOnyama Limba PROPOSAL
Rodrigues K PoquetteFranceOnyama Limba NEW
Izzy Z WhobreyUnited KingdomOnyama Limba QUALIFIED
Emily Y DarakjyRussiaAsiya Javayant NEGOTIATION
Maisha T KuskoGermanyAnna Fali QUALIFIED
Claire S RulapaughUnited KingdomAsiya Javayant NEW
Claire W ChuiUnited KingdomStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar H VocelkaUnited KingdomAnna Fali RENEWAL
Silvio R PerinUnited KingdomIoni Bowcher NEGOTIATION
Murillo S PoquetteIndiaAmy Elsner PROPOSAL
Jefferson R MorascaItalyIoni Bowcher RENEWAL
Isabel C RoysterCanadaStephen Shaw PROPOSAL
Cody R MarrierItalyIoni Bowcher QUALIFIED
Francesco E KolmetzUnited KingdomStephen Shaw PROPOSAL
Munro V BologniaGermanyStephen Shaw PROPOSAL
Isabel T NestleIndiaStephen Shaw NEW
Adams J MaletFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson M StensethIndia2026-06-05King, Christopher A Esq QUALIFIED71Bernardo Dominic
1001Mujtaba T BowleyUnited Kingdom2026-07-02King, Christopher A Esq RENEWAL62Bernardo Dominic
1002Jennifer D DilliardBrazil2026-06-12Feltz Printing Service QUALIFIED25Onyama Limba
1003Munro D GillianUnited Kingdom2026-06-22Benton, John B Jr NEW13Bernardo Dominic
1004Faith C DoeUnited Kingdom2026-06-15Printing Dimensions QUALIFIED78Bernardo Dominic
1005Jones E GillianAustralia2026-06-14Rangoni Of Florence NEGOTIATION54Anna Fali
1006Kadeem W RutaJapan2026-06-15Chanay, Jeffrey A Esq RENEWAL77Ioni Bowcher
1007Juan I RulapaughGermany2026-06-20Benton, John B Jr NEGOTIATION35Amy Elsner
1008Morrow J InouyeJapan2026-06-07Chapman, Ross E Esq NEW9Elwin Sharvill
1009Izzy K MacleadGermany2026-06-17Chemel, James L Cpa PROPOSAL36Bernardo Dominic
1010Emily S WhobreySpain2026-06-26Printing Dimensions UNQUALIFIED0Ivan Magalhaes
1011Wickens R DilliardUnited Kingdom2026-07-04Dorl, James J Esq UNQUALIFIED99Anna Fali
1012Costa V RulapaughCanada2026-06-25Rousseaux, Michael Esq UNQUALIFIED47Stephen Shaw
1013Leja C IturbideBrazil2026-07-01Morlong Associates NEGOTIATION48Onyama Limba
1014Cody Z TollnerIndia2026-07-04Truhlar And Truhlar Attys NEW81Bernardo Dominic
1015Tony E PerinRussia2026-06-05Dorl, James J Esq QUALIFIED98Stephen Shaw
1016Alejandro K MaletSpain2026-06-14Chanay, Jeffrey A Esq PROPOSAL52Asiya Javayant
1017Misaki U PoquetteAustralia2026-06-16Chapman, Ross E Esq QUALIFIED57Asiya Javayant
1018Deepesh T InouyeRussia2026-07-02Chanay, Jeffrey A Esq RENEWAL66Amy Elsner
1019Salvatore B BowleyRussia2026-07-01Benton, John B Jr NEW22Onyama Limba
1020Stacey E TollnerRussia2026-06-29Feltz Printing Service PROPOSAL99Xuxue Feng
1021Jennifer D WhobreyJapan2026-06-29Chapman, Ross E Esq QUALIFIED91Bernardo Dominic
1022Rodrigues B RoysterArgentina2026-06-12Rangoni Of Florence UNQUALIFIED24Amy Elsner
1023Claire B WhobreyAustralia2026-06-24Commercial Press QUALIFIED83Ioni Bowcher
1024Stacey Q RimFrance2026-06-21Chanay, Jeffrey A Esq RENEWAL83Elwin Sharvill
1025Morrow Q OldroydSpain2026-06-22Rangoni Of Florence PROPOSAL91Xuxue Feng
1026Stacey W NickaArgentina2026-07-01Commercial Press NEW34Anna Fali
1027James H WhobreyGermany2026-06-16Printing Dimensions QUALIFIED61Asiya Javayant
1028Ricardo V GauchoRussia2026-06-16Feiner Bros RENEWAL18Bernardo Dominic
1029Antonio M TollnerIndia2026-06-15Buckley Miller Wright UNQUALIFIED41Anna Fali
1030Mayumi H RoysterAustralia2026-06-12Printing Dimensions QUALIFIED62Asiya Javayant
1031Aditya K CaudyUnited Kingdom2026-06-17Rousseaux, Michael Esq PROPOSAL62Onyama Limba
1032Misaki K CaudyAustralia2026-06-07Chapman, Ross E Esq PROPOSAL98Bernardo Dominic
1033Salvatore J SchemmerFrance2026-06-16Buckley Miller Wright UNQUALIFIED34Bernardo Dominic
1034Antonio W WieserJapan2026-06-18Truhlar And Truhlar Attys RENEWAL1Xuxue Feng
1035Smith P RimAustralia2026-07-04Dorl, James J Esq NEW94Xuxue Feng
1036Smith J SergiRussia2026-06-20Chanay, Jeffrey A Esq RENEWAL79Xuxue Feng
1037Smith V MarrierFrance2026-07-02Chanay, Jeffrey A Esq NEGOTIATION38Asiya Javayant
1038Rodrigues C SlusarskiFrance2026-06-16Commercial Press NEGOTIATION45Bernardo Dominic
1039Ivar D BriddickRussia2026-06-27Benton, John B Jr QUALIFIED4Xuxue Feng
1040Julie Q NickaGermany2026-06-13Rousseaux, Michael Esq UNQUALIFIED64Asiya Javayant
1041Faith B VocelkaFrance2026-06-26Buckley Miller Wright NEW21Elwin Sharvill
1042Jeanfrancois G PaprockiArgentina2026-06-22Feiner Bros QUALIFIED44Stephen Shaw
1043Salvatore L PaprockiFrance2026-06-10Feltz Printing Service RENEWAL18Amy Elsner
1044Darci P FerenczUnited Kingdom2026-06-18Feiner Bros RENEWAL38Onyama Limba
1045Chavez E AmigonIndia2026-06-20Feltz Printing Service NEGOTIATION85Bernardo Dominic
1046Smith E DarakjyRussia2026-07-02Dorl, James J Esq NEGOTIATION93Asiya Javayant
1047Izzy E MaletAustralia2026-06-14Buckley Miller Wright NEW59Asiya Javayant
1048Jefferson G SlusarskiCanada2026-06-06Benton, John B Jr RENEWAL37Elwin Sharvill
1049Silvio I GarufiRussia2026-06-25Truhlar And Truhlar Attys RENEWAL40Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Stacey P AlbaresAustraliaIoni Bowcher QUALIFIED
Mayumi B MacleadItalyAmy Elsner NEW
Johnson C DoeJapanAnna Fali PROPOSAL
David I VocelkaBrazilIvan Magalhaes NEGOTIATION
Aruna Z CaldareraUnited KingdomIvan Magalhaes NEW
Cody E ButtAustraliaOnyama Limba UNQUALIFIED
Cody T CaudyBrazilStephen Shaw RENEWAL
Morrow T FigeroaFranceBernardo Dominic QUALIFIED
Mayumi W FlosiAustraliaBernardo Dominic UNQUALIFIED
Sinclair K DarakjyAustraliaStephen Shaw QUALIFIED
Aditya F SchemmerIndiaXuxue Feng QUALIFIED
Costa D DilliardUnited KingdomAnna Fali QUALIFIED
Leja H BowleyCanadaIvan Magalhaes QUALIFIED
Jeanfrancois V MorascaUnited KingdomAnna Fali NEGOTIATION
Cody X VenereAustraliaBernardo Dominic NEW
Clifford U ChuiBrazilAsiya Javayant UNQUALIFIED
Clifford S GlickCanadaAmy Elsner RENEWAL
Jones G MaletItalyIoni Bowcher UNQUALIFIED
Juan S MacleadFranceIvan Magalhaes QUALIFIED
Chavez A GlickItalyIoni Bowcher NEW
Maria H PerinItalyIvan Magalhaes NEGOTIATION
Chavez F WaycottRussiaIoni Bowcher NEGOTIATION
Mayumi E ShinkoSpainBernardo Dominic NEW
Chavez V DilliardIndiaStephen Shaw NEGOTIATION
Tony M IturbideJapanOnyama Limba NEGOTIATION
Faith P PerinItalyStephen Shaw RENEWAL
Kadeem Z OldroydRussiaIoni Bowcher NEW
Ashley B StockhamJapanIoni Bowcher UNQUALIFIED
Stacey Q SchemmerFranceXuxue Feng PROPOSAL
Kadeem M CaldareraCanadaXuxue Feng QUALIFIED
Isabel I SergiIndiaIvan Magalhaes QUALIFIED
Aruna I MarrierAustraliaElwin Sharvill UNQUALIFIED
Smith U NickaSpainOnyama Limba PROPOSAL
Emily S FlosiCanadaAmy Elsner RENEWAL
Aruna P AlbaresJapanAnna Fali PROPOSAL
Aruna A CaldareraJapanStephen Shaw NEGOTIATION
Clifford L GarufiBrazilXuxue Feng NEW
Antonio Z RoysterJapanIoni Bowcher UNQUALIFIED
Arvin J DarakjyFranceAnna Fali QUALIFIED
Kaitlin T SlusarskiUnited KingdomOnyama Limba QUALIFIED
Aditya Y MorascaIndiaAsiya Javayant UNQUALIFIED
Costa T CaldareraGermanyIoni Bowcher RENEWAL
Smith N VocelkaFranceAmy Elsner PROPOSAL
Antonio N CaudyItalyElwin Sharvill PROPOSAL
Munro G SergiCanadaAsiya Javayant NEGOTIATION
Wickens N NestleBrazilAnna Fali PROPOSAL
David W SchemmerIndiaStephen Shaw QUALIFIED
Jefferson I RulapaughAustraliaBernardo Dominic QUALIFIED
Ivar P SlusarskiItalyIoni Bowcher RENEWAL
Maisha P FerenczBrazilOnyama Limba RENEWAL
Frozen Columns
Name
Mayumi J Malet
Nicolas H Nestle
Wickens F Stenseth
Chavez N Dilliard
Jefferson S Rim
Murillo G Doe
Adams T Nestle
Kaitlin X Iturbide
Alejandro T Albares
Aika J Royster
Arvin E Doe
Misaki V Waycott
Mayumi U Ruta
Darci M Amigon
Kadeem E Oldroyd
Francesco T Malet
Rodrigues E Perin
Darci H Briddick
Misaki M Briddick
Adams P Butt
Aruna C Rulapaugh
Tony S Kusko
Morrow D Campain
Kadeem Q Stockham
Leon X Rim
Clifford E Royster
Darci F Paprocki
Chavez T Caudy
Aditya E Nestle
Aditya B Darakjy
Munro H Figeroa
Darci S Perin
Stacey O Gaucho
Cody B Marrier
Ricardo H Glick
Faith U Foller
Julie N Amigon
Smith W Kusko
Jefferson P Briddick
Adams S Caudy
Smith L Iturbide
Costa P Bolognia
Jeanfrancois Z Darakjy
Johnson Q Royster
Munro Q Tollner
James Y Rulapaugh
Tony V Caudy
Misaki S Butt
Faith Z Stockham
Jones M Stockham
IdCountryDate
1000Italy2026-06-14
1001Spain2026-06-20
1002Australia2026-06-17
1003Russia2026-06-22
1004Russia2026-06-22
1005Germany2026-06-28
1006Australia2026-07-02
1007Brazil2026-06-06
1008Brazil2026-07-03
1009Argentina2026-06-09
1010Australia2026-06-19
1011United Kingdom2026-06-17
1012India2026-06-12
1013Italy2026-07-04
1014Germany2026-06-18
1015Spain2026-06-13
1016India2026-06-22
1017Australia2026-06-15
1018Germany2026-06-14
1019Germany2026-06-25
1020Russia2026-06-19
1021United Kingdom2026-07-01
1022India2026-06-26
1023Germany2026-06-07
1024India2026-06-30
1025Spain2026-06-06
1026France2026-06-15
1027Italy2026-06-05
1028Brazil2026-07-04
1029Australia2026-06-18
1030France2026-06-24
1031Canada2026-06-24
1032Canada2026-06-11
1033Germany2026-06-08
1034Canada2026-06-17
1035Germany2026-06-06
1036Japan2026-06-25
1037Germany2026-06-25
1038France2026-06-18
1039Canada2026-06-18
1040Canada2026-07-01
1041Canada2026-06-27
1042France2026-06-28
1043India2026-06-12
1044Japan2026-06-17
1045Spain2026-06-24
1046Germany2026-06-15
1047Canada2026-06-05
1048Italy2026-06-30
1049Italy2026-06-07

On-Demand Data

NameIdCountryDate
Octavia C Flosi1000Germany2026-06-29
Tony E Bolognia1001India2026-06-23
Arvin Z Sergi1002Spain2026-06-23
Jones A Poquette1003Spain2026-07-01
Alejandro Y Whobrey1004Australia2026-06-23
Kaitlin B Bowley1005Brazil2026-06-21
Maisha W Ostrosky1006Spain2026-07-02
Alejandro X Bowley1007Spain2026-06-07
Clifford P Caudy1008Brazil2026-06-06
Stacey Z Malet1009Brazil2026-06-26
Nicolas W Campain1010Russia2026-06-29
Isabel V Oldroyd1011Germany2026-06-11
Nicolas M Flosi1012Canada2026-07-01
Arvin M Bolognia1013Canada2026-06-07
Stacey Q Stenseth1014Germany2026-06-21
Alejandro Y Gillian1015Germany2026-07-04
Jefferson K Venere1016Brazil2026-06-16
Kadeem B Dilliard1017Brazil2026-06-14
Maisha W Kolmetz1018Spain2026-06-21
Francesco Y Doe1019Canada2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore K KolmetzFranceStephen Shaw QUALIFIED
Adams F KolmetzJapanElwin Sharvill RENEWAL
Leja Y VenereBrazilIoni Bowcher RENEWAL
Kaitlin S OstroskyAustraliaXuxue Feng NEW
Sinclair H VenereFranceAnna Fali NEGOTIATION
Costa A DarakjyCanadaAsiya Javayant PROPOSAL
Clifford D IturbideCanadaXuxue Feng UNQUALIFIED
Kadeem N SaylorsItalyAmy Elsner PROPOSAL
Greenwood I MacleadGermanyAmy Elsner QUALIFIED
Greenwood S BowleySpainStephen Shaw UNQUALIFIED
Leja N PerinIndiaAnna Fali RENEWAL
Darci P GlickUnited KingdomOnyama Limba NEW
Isabel V GarufiItalyIoni Bowcher NEGOTIATION
Aruna E CaudyRussiaAmy Elsner NEW
Mujtaba H KuskoSpainAnna Fali NEGOTIATION
James Y ChuiIndiaAmy Elsner PROPOSAL
Smith U OstroskyUnited KingdomIvan Magalhaes NEW
Wickens M CaldareraGermanyXuxue Feng PROPOSAL
Munro N CampainJapanAnna Fali UNQUALIFIED
Claire Z MarrierBrazilBernardo Dominic NEGOTIATION
Julie Q SergiGermanyElwin Sharvill NEW
Leja V GarufiItalyStephen Shaw RENEWAL
Misaki N RoysterItalyAsiya Javayant QUALIFIED
Munro S CaldareraIndiaAmy Elsner QUALIFIED
Darci K FerenczGermanyBernardo Dominic NEGOTIATION
Morrow T OstroskySpainOnyama Limba NEGOTIATION
Isabel O BriddickFranceIvan Magalhaes UNQUALIFIED
Mujtaba E IturbideSpainAsiya Javayant PROPOSAL
Mayumi Y AmigonCanadaAsiya Javayant RENEWAL
Antonio K AmigonArgentinaIoni Bowcher RENEWAL
Ivar H PaprockiGermanyIvan Magalhaes QUALIFIED
Aruna C GlickSpainIvan Magalhaes PROPOSAL
Emily V KolmetzArgentinaBernardo Dominic NEW
Mujtaba V KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Kadeem W RimRussiaOnyama Limba PROPOSAL
Antonio X ChuiFranceIoni Bowcher NEW
Smith L PaprockiIndiaXuxue Feng NEGOTIATION
Ricardo F FerenczGermanyAmy Elsner NEGOTIATION
Darci V FollerItalyIoni Bowcher RENEWAL
Maisha P DilliardItalyElwin Sharvill PROPOSAL

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>