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
Jeanfrancois D OstroskyItalyXuxue Feng RENEWAL
Aika Q DilliardJapanAsiya Javayant QUALIFIED
Greenwood H WhobreyCanadaAnna Fali QUALIFIED
Clifford E FerenczBrazilStephen Shaw PROPOSAL
Izzy F KuskoArgentinaXuxue Feng NEW
Ivar E MaletUnited KingdomAmy Elsner NEW
Arvin V FerenczUnited KingdomOnyama Limba NEGOTIATION
Francesco V PaprockiItalyIvan Magalhaes QUALIFIED
Kaitlin F BologniaFranceIoni Bowcher UNQUALIFIED
Wickens A FerenczUnited KingdomOnyama Limba UNQUALIFIED
Ricardo J FlosiArgentinaOnyama Limba NEW
Wickens V DarakjyBrazilAsiya Javayant PROPOSAL
Deepesh N BologniaAustraliaAmy Elsner PROPOSAL
Murillo Z BowleyRussiaAmy Elsner RENEWAL
Misaki I MacleadCanadaAsiya Javayant NEGOTIATION
Ivar N ShinkoJapanIoni Bowcher UNQUALIFIED
Ricardo S StensethIndiaElwin Sharvill UNQUALIFIED
Antonio C MaletArgentinaIoni Bowcher QUALIFIED
Ashley E KuskoJapanOnyama Limba PROPOSAL
Alejandro Q KuskoArgentinaIoni Bowcher QUALIFIED
Arvin A WhobreyIndiaElwin Sharvill NEGOTIATION
Sinclair K RutaRussiaIoni Bowcher NEGOTIATION
Deepesh S VenereAustraliaXuxue Feng QUALIFIED
Leja N PaprockiFranceElwin Sharvill NEW
Octavia F PaprockiRussiaStephen Shaw UNQUALIFIED
Jones T MaletGermanyBernardo Dominic NEW
Murillo J FlosiArgentinaAmy Elsner RENEWAL
Ricardo O VenereCanadaElwin Sharvill RENEWAL
Leon V MacleadSpainIvan Magalhaes UNQUALIFIED
Stacey D IturbideItalyIoni Bowcher UNQUALIFIED
Mayumi D FerenczGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois J FlosiCanadaAmy Elsner NEW
Maisha A MaletUnited KingdomAsiya Javayant PROPOSAL
Izzy V PerinGermanyAnna Fali PROPOSAL
Emily X RutaJapanElwin Sharvill NEGOTIATION
Emily V WaycottJapanIoni Bowcher NEW
Ivar R FerenczAustraliaStephen Shaw UNQUALIFIED
James I DarakjySpainAmy Elsner QUALIFIED
Rodrigues I PerinUnited KingdomAnna Fali NEW
Julie O BologniaUnited KingdomOnyama Limba NEW
Munro W GillianUnited KingdomAnna Fali NEW
Stacey M PerinJapanStephen Shaw PROPOSAL
Jones T MaletJapanElwin Sharvill UNQUALIFIED
Greenwood Z PaprockiGermanyXuxue Feng QUALIFIED
Nicolas N GauchoIndiaIvan Magalhaes UNQUALIFIED
Kadeem H FigeroaUnited KingdomAnna Fali QUALIFIED
Emily Y TollnerJapanAmy Elsner PROPOSAL
Leon G SaylorsArgentinaAmy Elsner PROPOSAL
Wickens Y AlbaresJapanStephen Shaw UNQUALIFIED
Murillo H NickaItalyAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro U PaprockiCanadaAsiya Javayant NEGOTIATION
Greenwood H KolmetzIndiaBernardo Dominic NEW
Johnson P WaycottFranceXuxue Feng RENEWAL
Sinclair Q BriddickJapanAsiya Javayant NEGOTIATION
Leja S ButtIndiaStephen Shaw PROPOSAL
Jefferson P BowleySpainStephen Shaw NEW
Leon Y BologniaUnited KingdomAsiya Javayant NEW
Octavia B DilliardAustraliaAmy Elsner PROPOSAL
Munro N DoeJapanElwin Sharvill RENEWAL
Leja H CampainItalyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy L RoysterSpain2026-07-12Chapman, Ross E Esq NEW57Stephen Shaw
1001Claire R PaprockiRussia2026-07-01Chemel, James L Cpa NEGOTIATION93Bernardo Dominic
1002Munro E RutaRussia2026-07-03Benton, John B Jr PROPOSAL6Stephen Shaw
1003Aditya O CaudyAustralia2026-07-19Printing Dimensions UNQUALIFIED92Elwin Sharvill
1004Rodrigues L FigeroaSpain2026-06-30Chapman, Ross E Esq NEW91Ivan Magalhaes
1005Julie X BowleyUnited Kingdom2026-07-09Feiner Bros PROPOSAL66Ioni Bowcher
1006Leja A BriddickSpain2026-07-14King, Christopher A Esq PROPOSAL69Ivan Magalhaes
1007Stacey P AlbaresFrance2026-07-06Morlong Associates UNQUALIFIED4Xuxue Feng
1008Morrow Q IturbideSpain2026-07-02Benton, John B Jr NEW10Xuxue Feng
1009Mayumi X RutaArgentina2026-07-18Chemel, James L Cpa UNQUALIFIED26Onyama Limba
1010Cody V RutaIndia2026-07-02Chemel, James L Cpa UNQUALIFIED6Anna Fali
1011Isabel V FigeroaUnited Kingdom2026-07-08Dorl, James J Esq UNQUALIFIED60Bernardo Dominic
1012Rodrigues R CampainCanada2026-07-16Rousseaux, Michael Esq RENEWAL0Anna Fali
1013Aditya I OstroskyRussia2026-07-15Rousseaux, Michael Esq NEGOTIATION21Amy Elsner
1014Faith J PoquetteRussia2026-07-11Dorl, James J Esq RENEWAL47Ivan Magalhaes
1015Maisha P FerenczSpain2026-07-03Buckley Miller Wright RENEWAL60Xuxue Feng
1016Jefferson A ShinkoJapan2026-07-03Benton, John B Jr UNQUALIFIED5Xuxue Feng
1017Johnson L MaletItaly2026-07-10Commercial Press RENEWAL22Ioni Bowcher
1018Chavez P CaudyRussia2026-07-03Feiner Bros NEGOTIATION89Asiya Javayant
1019Cody B ButtIndia2026-07-15Feltz Printing Service NEW65Ioni Bowcher
1020Morrow M MacleadBrazil2026-06-25Morlong Associates RENEWAL6Stephen Shaw
1021Aruna W ButtUnited Kingdom2026-07-19Buckley Miller Wright NEW0Bernardo Dominic
1022Silvio Y KolmetzItaly2026-07-10Chapman, Ross E Esq RENEWAL99Anna Fali
1023Isabel I MaletArgentina2026-06-27Morlong Associates NEW19Asiya Javayant
1024Alejandro A ChuiAustralia2026-07-12Printing Dimensions NEW32Stephen Shaw
1025Jefferson Q MaletGermany2026-07-12Feiner Bros PROPOSAL74Anna Fali
1026Kadeem D FollerGermany2026-07-17Chapman, Ross E Esq NEGOTIATION54Ioni Bowcher
1027Isabel I VenereCanada2026-06-30Truhlar And Truhlar Attys QUALIFIED10Elwin Sharvill
1028Aditya L ShinkoUnited Kingdom2026-07-09Feltz Printing Service UNQUALIFIED31Ivan Magalhaes
1029Johnson Y VenereIndia2026-06-23Buckley Miller Wright NEGOTIATION0Amy Elsner
1030Emily N InouyeAustralia2026-07-20Rangoni Of Florence QUALIFIED37Stephen Shaw
1031Silvio N WhobreyItaly2026-06-24Rousseaux, Michael Esq QUALIFIED27Anna Fali
1032Cody T FigeroaArgentina2026-07-18Dorl, James J Esq QUALIFIED94Ivan Magalhaes
1033Mayumi W RulapaughUnited Kingdom2026-07-08Chanay, Jeffrey A Esq NEW65Stephen Shaw
1034Nicolas P MaletCanada2026-07-05Chemel, James L Cpa PROPOSAL44Asiya Javayant
1035Aditya O FigeroaCanada2026-06-24Rousseaux, Michael Esq NEW22Bernardo Dominic
1036Cody S ShinkoItaly2026-07-07Truhlar And Truhlar Attys UNQUALIFIED69Onyama Limba
1037Arvin W SchemmerRussia2026-07-16Commercial Press NEGOTIATION93Asiya Javayant
1038Isabel J CaudyIndia2026-06-24Chapman, Ross E Esq QUALIFIED17Asiya Javayant
1039Francesco K MaletUnited Kingdom2026-07-18Buckley Miller Wright PROPOSAL52Ivan Magalhaes
1040Salvatore F MorascaBrazil2026-06-22Chemel, James L Cpa PROPOSAL62Anna Fali
1041Isabel E MorascaSpain2026-07-13Rangoni Of Florence UNQUALIFIED16Onyama Limba
1042Chavez B RimRussia2026-07-04Morlong Associates NEGOTIATION17Stephen Shaw
1043Maisha K WhobreyRussia2026-07-06Benton, John B Jr PROPOSAL76Asiya Javayant
1044Morrow X StockhamRussia2026-07-15Printing Dimensions QUALIFIED43Ivan Magalhaes
1045Leon M MaletFrance2026-07-16Benton, John B Jr NEW27Ivan Magalhaes
1046Nicolas J DilliardJapan2026-06-25Rousseaux, Michael Esq RENEWAL1Elwin Sharvill
1047Morrow R RulapaughUnited Kingdom2026-07-03Feltz Printing Service NEW88Elwin Sharvill
1048Faith E SaylorsArgentina2026-07-07Rangoni Of Florence NEW23Anna Fali
1049Maria P PerinFrance2026-07-17Benton, John B Jr QUALIFIED42Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kadeem U GlickArgentinaBernardo Dominic QUALIFIED
Octavia S BowleyBrazilIvan Magalhaes NEGOTIATION
Stacey N PerinAustraliaOnyama Limba NEGOTIATION
Rodrigues U NickaJapanAnna Fali NEGOTIATION
Maisha E BriddickItalyStephen Shaw NEGOTIATION
Jones X CaudyArgentinaOnyama Limba PROPOSAL
Arvin S FlosiSpainAnna Fali NEGOTIATION
Mujtaba G RutaUnited KingdomIoni Bowcher QUALIFIED
Alejandro D ButtGermanyIoni Bowcher PROPOSAL
Deepesh Z IturbideFranceIvan Magalhaes RENEWAL
Johnson K MarrierFranceOnyama Limba UNQUALIFIED
Greenwood S BologniaCanadaBernardo Dominic PROPOSAL
Silvio V DilliardSpainAnna Fali QUALIFIED
Arvin B FlosiGermanyAmy Elsner RENEWAL
Leon Q WieserBrazilAnna Fali QUALIFIED
James G ButtUnited KingdomOnyama Limba NEGOTIATION
Mayumi C IturbideCanadaElwin Sharvill RENEWAL
Aruna T VenereJapanAmy Elsner QUALIFIED
Mayumi H InouyeRussiaIvan Magalhaes QUALIFIED
Francesco X GarufiArgentinaOnyama Limba UNQUALIFIED
Leon F WhobreyIndiaElwin Sharvill NEW
Leja K SchemmerBrazilStephen Shaw NEW
Kaitlin V PoquetteFranceXuxue Feng RENEWAL
Ivar O GarufiAustraliaAnna Fali RENEWAL
Kaitlin Y CaudySpainStephen Shaw NEGOTIATION
Leon L MarrierFranceIvan Magalhaes PROPOSAL
James S AmigonAustraliaBernardo Dominic UNQUALIFIED
Alejandro C BowleyUnited KingdomIoni Bowcher PROPOSAL
Nicolas Q GlickIndiaStephen Shaw NEW
David T RutaGermanyElwin Sharvill RENEWAL
Aruna F VenereCanadaAsiya Javayant NEGOTIATION
Juan Y DoeGermanyIvan Magalhaes QUALIFIED
Chavez Y GarufiJapanXuxue Feng PROPOSAL
Emily S VenereRussiaAsiya Javayant NEGOTIATION
Costa I PerinIndiaOnyama Limba RENEWAL
Jones F FollerRussiaAnna Fali RENEWAL
Ricardo U CampainRussiaStephen Shaw UNQUALIFIED
Clifford J CaldareraJapanXuxue Feng RENEWAL
Aika L SchemmerArgentinaIoni Bowcher QUALIFIED
Nicolas Y GillianSpainAnna Fali UNQUALIFIED
Deepesh V WaycottJapanXuxue Feng QUALIFIED
Leon G GauchoAustraliaBernardo Dominic NEW
Nicolas T MaletJapanXuxue Feng RENEWAL
Cody W RimUnited KingdomXuxue Feng PROPOSAL
Mujtaba X NickaFranceBernardo Dominic NEW
Jones I TollnerRussiaOnyama Limba NEGOTIATION
Sinclair O SlusarskiBrazilIoni Bowcher UNQUALIFIED
Silvio V CaldareraIndiaIoni Bowcher NEGOTIATION
Kadeem E MaletArgentinaElwin Sharvill NEW
Aditya C NestleUnited KingdomAnna Fali RENEWAL
Frozen Columns
Name
Julie Y Malet
Jennifer F Whobrey
Aditya P Kusko
Octavia M Foller
James U Marrier
Leja S Saylors
Jeanfrancois A Flosi
Johnson H Nicka
Claire G Ferencz
Morrow C Venere
Ricardo D Foller
Mayumi K Ruta
Ivar U Poquette
Cody K Shinko
Deepesh B Sergi
David Y Rulapaugh
Chavez Z Glick
Ashley S Venere
Greenwood J Malet
Aditya Y Iturbide
Costa M Campain
Jefferson P Bowley
Silvio H Flosi
Jeanfrancois Y Perin
Deepesh O Shinko
James C Royster
Ivar T Whobrey
Chavez C Maclead
Ivar D Albares
Jones C Doe
Aruna U Kusko
Darci Q Figeroa
Emily J Amigon
Murillo Z Maclead
David U Morasca
Aika H Dilliard
Jennifer P Oldroyd
Salvatore M Butt
Mujtaba Z Tollner
Jefferson C Rim
Francesco X Gaucho
Deepesh S Butt
Antonio S Malet
Mayumi Y Amigon
Jennifer N Figeroa
Misaki S Sergi
Clifford H Sergi
Antonio V Dilliard
Octavia U Poquette
Greenwood R Malet
IdCountryDate
1000Russia2026-06-21
1001Argentina2026-07-18
1002Spain2026-07-05
1003Argentina2026-07-17
1004Spain2026-07-17
1005Argentina2026-06-22
1006Canada2026-06-21
1007Argentina2026-06-29
1008Russia2026-07-19
1009Japan2026-07-18
1010Spain2026-07-12
1011United Kingdom2026-07-01
1012Argentina2026-07-05
1013United Kingdom2026-07-19
1014Canada2026-07-11
1015France2026-07-10
1016Germany2026-06-23
1017Australia2026-07-08
1018Japan2026-07-03
1019Italy2026-06-22
1020Japan2026-07-05
1021Canada2026-06-28
1022Argentina2026-07-17
1023United Kingdom2026-07-11
1024France2026-06-25
1025Spain2026-06-28
1026Russia2026-07-08
1027India2026-07-01
1028Japan2026-07-16
1029Australia2026-07-18
1030India2026-07-12
1031Russia2026-06-22
1032Canada2026-07-17
1033Spain2026-07-01
1034Germany2026-07-19
1035Russia2026-07-14
1036Argentina2026-07-14
1037Brazil2026-07-11
1038Australia2026-06-30
1039France2026-06-23
1040Argentina2026-07-19
1041Russia2026-06-23
1042United Kingdom2026-07-08
1043Argentina2026-07-20
1044Brazil2026-07-17
1045Argentina2026-06-27
1046Italy2026-06-26
1047Argentina2026-07-20
1048Brazil2026-06-29
1049Japan2026-07-20

On-Demand Data

NameIdCountryDate
Murillo I Rulapaugh1000Spain2026-07-09
Kadeem O Flosi1001Argentina2026-07-02
Adams G Glick1002United Kingdom2026-07-09
Murillo Y Garufi1003Russia2026-06-29
Aditya R Nicka1004Spain2026-06-28
Octavia X Dilliard1005India2026-07-15
Aditya I Slusarski1006Russia2026-06-24
Costa N Ostrosky1007Australia2026-07-18
Johnson Q Shinko1008Spain2026-07-03
Aruna F Darakjy1009Russia2026-07-18
Aika X Royster1010Canada2026-07-04
Smith X Doe1011Canada2026-07-13
Ivar B Caldarera1012Russia2026-07-06
Mayumi I Stenseth1013Australia2026-06-25
Deepesh P Nicka1014India2026-06-22
Jefferson T Slusarski1015Canada2026-06-26
Leon C Chui1016Argentina2026-07-12
Tony M Kolmetz1017Italy2026-07-11
Sinclair Z Wieser1018Germany2026-06-30
Francesco H Figeroa1019India2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo P WhobreyFranceOnyama Limba PROPOSAL
Chavez Q NestleArgentinaOnyama Limba RENEWAL
Alejandro G RutaArgentinaAmy Elsner PROPOSAL
Sinclair R RoysterSpainStephen Shaw RENEWAL
Aditya C DilliardGermanyAsiya Javayant PROPOSAL
Leja Y VocelkaSpainBernardo Dominic NEW
Aruna K CaudyJapanXuxue Feng UNQUALIFIED
Johnson L FollerItalyOnyama Limba RENEWAL
Mujtaba S WhobreyAustraliaOnyama Limba NEGOTIATION
Johnson C BologniaArgentinaAsiya Javayant PROPOSAL
Isabel F AmigonJapanElwin Sharvill NEW
David P RimItalyElwin Sharvill PROPOSAL
Greenwood M NickaGermanyIvan Magalhaes RENEWAL
Murillo X KuskoArgentinaAmy Elsner UNQUALIFIED
Octavia Z VocelkaFranceIvan Magalhaes UNQUALIFIED
Mayumi Q FlosiJapanElwin Sharvill PROPOSAL
Ashley V TollnerJapanAsiya Javayant RENEWAL
Sinclair O GillianSpainBernardo Dominic PROPOSAL
Aika J GarufiItalyIvan Magalhaes RENEWAL
Darci H MaletSpainIoni Bowcher RENEWAL
Kadeem N GillianBrazilBernardo Dominic NEW
Jefferson G RulapaughFranceAsiya Javayant NEW
Maisha I GlickSpainAmy Elsner RENEWAL
Ivar A SchemmerAustraliaAmy Elsner NEW
Rodrigues C VenereArgentinaAsiya Javayant UNQUALIFIED
Chavez L RutaRussiaAnna Fali PROPOSAL
Wickens M CampainArgentinaXuxue Feng RENEWAL
Juan U CaudyItalyStephen Shaw QUALIFIED
Salvatore Q MorascaIndiaIoni Bowcher UNQUALIFIED
Sinclair F VocelkaIndiaAsiya Javayant NEGOTIATION
Alejandro V FollerCanadaElwin Sharvill NEW
Maisha C FollerIndiaXuxue Feng NEGOTIATION
Francesco U WhobreyRussiaIvan Magalhaes PROPOSAL
Kadeem H StockhamFranceIoni Bowcher NEW
Mujtaba I StockhamBrazilIvan Magalhaes PROPOSAL
Nicolas K DilliardGermanyAsiya Javayant NEGOTIATION
Faith N MaletJapanAmy Elsner NEGOTIATION
Costa U SergiAustraliaIoni Bowcher RENEWAL
Leon V StensethAustraliaAnna Fali UNQUALIFIED
Tony G CampainFranceIvan Magalhaes NEW

<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>