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
Maria N BowleyItalyAmy Elsner NEW
Ricardo D InouyeUnited KingdomIoni Bowcher UNQUALIFIED
James R ChuiGermanyElwin Sharvill UNQUALIFIED
Francesco M RoysterRussiaOnyama Limba RENEWAL
Faith T KuskoArgentinaOnyama Limba PROPOSAL
Ricardo U KolmetzRussiaStephen Shaw RENEWAL
Johnson P PerinFranceOnyama Limba PROPOSAL
Salvatore V ButtGermanyIvan Magalhaes QUALIFIED
Aika H FigeroaRussiaAmy Elsner NEGOTIATION
David T OldroydBrazilBernardo Dominic NEGOTIATION
Nicolas Q StensethBrazilIvan Magalhaes QUALIFIED
Alejandro G StockhamBrazilOnyama Limba PROPOSAL
Octavia M ShinkoSpainStephen Shaw PROPOSAL
Arvin C MaletJapanAnna Fali PROPOSAL
Stacey U PaprockiAustraliaStephen Shaw PROPOSAL
Mujtaba N DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Costa V DilliardJapanAnna Fali NEGOTIATION
Munro Q FigeroaItalyOnyama Limba NEGOTIATION
Wickens E ButtRussiaElwin Sharvill NEW
Rodrigues G TollnerJapanIoni Bowcher QUALIFIED
Jennifer F PaprockiGermanyIvan Magalhaes NEW
Salvatore I SaylorsFranceXuxue Feng NEW
Rodrigues M MorascaFranceAmy Elsner NEW
Chavez O RoysterBrazilAsiya Javayant NEW
Kaitlin N StockhamSpainAsiya Javayant PROPOSAL
Deepesh U DoeSpainAsiya Javayant UNQUALIFIED
Emily R NickaItalyIoni Bowcher QUALIFIED
Morrow R GlickFranceIvan Magalhaes QUALIFIED
Deepesh D TollnerArgentinaXuxue Feng RENEWAL
Nicolas J WieserAustraliaIvan Magalhaes NEGOTIATION
Maria G RutaJapanXuxue Feng NEGOTIATION
Salvatore P FerenczUnited KingdomStephen Shaw UNQUALIFIED
Stacey E ChuiSpainOnyama Limba UNQUALIFIED
Alejandro S MaletItalyIoni Bowcher NEGOTIATION
Aika V DoeIndiaXuxue Feng UNQUALIFIED
Claire U WaycottBrazilAnna Fali NEW
Francesco C NickaFranceOnyama Limba NEW
Jennifer O BowleyItalyAmy Elsner RENEWAL
Francesco J RutaItalyIvan Magalhaes QUALIFIED
Julie T NestleJapanElwin Sharvill PROPOSAL
Jeanfrancois W BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore L SaylorsFranceXuxue Feng QUALIFIED
Aruna K OstroskyIndiaXuxue Feng RENEWAL
Juan L FerenczGermanyXuxue Feng NEGOTIATION
Francesco P MaletBrazilStephen Shaw RENEWAL
Jeanfrancois Z FerenczArgentinaOnyama Limba NEGOTIATION
Chavez K KuskoCanadaElwin Sharvill RENEWAL
Salvatore T BriddickUnited KingdomAmy Elsner RENEWAL
Silvio E KuskoSpainBernardo Dominic UNQUALIFIED
Murillo T ShinkoSpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leja M BriddickBrazilOnyama Limba NEW
Juan Z NickaItalyAmy Elsner NEGOTIATION
Ivar D RutaArgentinaXuxue Feng QUALIFIED
Johnson L PerinItalyIvan Magalhaes PROPOSAL
Smith R KolmetzFranceIoni Bowcher PROPOSAL
James V PerinGermanyIvan Magalhaes UNQUALIFIED
Leon U StensethRussiaAnna Fali RENEWAL
Deepesh P RoysterArgentinaAnna Fali NEW
Tony I CaldareraBrazilXuxue Feng NEW
Claire C BowleyUnited KingdomOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams M KolmetzRussia2026-08-17Feltz Printing Service UNQUALIFIED50Elwin Sharvill
1001Maisha K PerinSpain2026-08-28Benton, John B Jr PROPOSAL87Asiya Javayant
1002Emily E WieserSpain2026-08-12Chanay, Jeffrey A Esq NEGOTIATION58Asiya Javayant
1003Isabel N StensethGermany2026-08-10Printing Dimensions QUALIFIED68Onyama Limba
1004Wickens A GillianCanada2026-08-22Feltz Printing Service RENEWAL68Bernardo Dominic
1005Ricardo C BriddickItaly2026-08-09Feltz Printing Service NEGOTIATION86Anna Fali
1006Aruna F NestleGermany2026-08-23Morlong Associates NEGOTIATION18Anna Fali
1007Jones A ChuiUnited Kingdom2026-08-07Chemel, James L Cpa NEW82Elwin Sharvill
1008Alejandro F AmigonItaly2026-08-23Benton, John B Jr NEGOTIATION71Asiya Javayant
1009Ashley H IturbideJapan2026-08-27Buckley Miller Wright PROPOSAL47Stephen Shaw
1010Maisha P OstroskySpain2026-08-21Rangoni Of Florence RENEWAL86Xuxue Feng
1011Antonio T AmigonIndia2026-08-21Chanay, Jeffrey A Esq PROPOSAL93Stephen Shaw
1012Maisha W CampainUnited Kingdom2026-08-08Rangoni Of Florence NEW95Ivan Magalhaes
1013Kadeem S PerinSpain2026-08-27Feiner Bros NEGOTIATION13Amy Elsner
1014Darci Q BowleyArgentina2026-08-20Truhlar And Truhlar Attys NEW79Ioni Bowcher
1015Smith I ChuiBrazil2026-08-17Commercial Press RENEWAL62Ioni Bowcher
1016Deepesh T SlusarskiArgentina2026-08-08King, Christopher A Esq QUALIFIED62Ioni Bowcher
1017Chavez I MaletArgentina2026-08-17Buckley Miller Wright UNQUALIFIED58Onyama Limba
1018Wickens S BologniaItaly2026-08-09Chanay, Jeffrey A Esq RENEWAL33Ioni Bowcher
1019Murillo V PerinGermany2026-08-06King, Christopher A Esq NEGOTIATION81Stephen Shaw
1020Arvin C CaudyFrance2026-08-17Printing Dimensions NEW62Ivan Magalhaes
1021James Q CampainUnited Kingdom2026-08-16Chapman, Ross E Esq RENEWAL76Asiya Javayant
1022Mujtaba U MaletIndia2026-08-29Rangoni Of Florence QUALIFIED37Ioni Bowcher
1023Morrow O TollnerArgentina2026-08-16Truhlar And Truhlar Attys QUALIFIED78Ivan Magalhaes
1024Julie T SaylorsBrazil2026-09-03Chanay, Jeffrey A Esq PROPOSAL74Anna Fali
1025Francesco L RimArgentina2026-08-30Printing Dimensions NEGOTIATION19Asiya Javayant
1026Johnson I MacleadIndia2026-08-18Truhlar And Truhlar Attys QUALIFIED25Onyama Limba
1027Ashley M SlusarskiIndia2026-08-13Dorl, James J Esq QUALIFIED31Amy Elsner
1028Morrow B ChuiAustralia2026-08-06Rousseaux, Michael Esq RENEWAL6Ioni Bowcher
1029Julie K CaldareraFrance2026-08-11Morlong Associates RENEWAL62Stephen Shaw
1030Jones D DoeUnited Kingdom2026-08-28Dorl, James J Esq RENEWAL30Elwin Sharvill
1031Smith V PerinIndia2026-08-19Benton, John B Jr QUALIFIED9Ivan Magalhaes
1032Murillo I VenereAustralia2026-08-31Chanay, Jeffrey A Esq NEGOTIATION5Ivan Magalhaes
1033Wickens W CaudyItaly2026-08-23Feiner Bros NEGOTIATION53Ivan Magalhaes
1034Silvio W AlbaresItaly2026-08-24Truhlar And Truhlar Attys QUALIFIED84Stephen Shaw
1035Ashley E RulapaughCanada2026-08-09Dorl, James J Esq RENEWAL26Xuxue Feng
1036Nicolas G InouyeAustralia2026-08-10Truhlar And Truhlar Attys UNQUALIFIED15Xuxue Feng
1037Kaitlin O MaletFrance2026-08-23King, Christopher A Esq UNQUALIFIED77Onyama Limba
1038Stacey L RimItaly2026-08-07Commercial Press RENEWAL52Ioni Bowcher
1039Johnson D GillianBrazil2026-08-15Buckley Miller Wright NEGOTIATION42Stephen Shaw
1040Chavez S GlickJapan2026-08-07Feiner Bros NEW16Amy Elsner
1041Kaitlin S OldroydJapan2026-08-08Morlong Associates NEGOTIATION81Asiya Javayant
1042Misaki R NestleJapan2026-08-24King, Christopher A Esq NEW18Asiya Javayant
1043Mujtaba S SchemmerIndia2026-08-09Feltz Printing Service UNQUALIFIED57Onyama Limba
1044Cody P PaprockiUnited Kingdom2026-09-03Chanay, Jeffrey A Esq RENEWAL50Asiya Javayant
1045Isabel O DilliardUnited Kingdom2026-08-26Printing Dimensions RENEWAL4Elwin Sharvill
1046Misaki G PerinArgentina2026-08-13Truhlar And Truhlar Attys QUALIFIED42Xuxue Feng
1047Maisha D BriddickGermany2026-08-22Chapman, Ross E Esq PROPOSAL0Xuxue Feng
1048Maisha V StockhamRussia2026-08-19Printing Dimensions NEW39Bernardo Dominic
1049Greenwood W NestleUnited Kingdom2026-08-31Benton, John B Jr PROPOSAL16Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Morrow E SaylorsUnited KingdomAnna Fali QUALIFIED
Kaitlin H SlusarskiItalyStephen Shaw PROPOSAL
Ricardo N StockhamGermanyIoni Bowcher RENEWAL
Sinclair P RulapaughCanadaAnna Fali UNQUALIFIED
Cody I KuskoSpainXuxue Feng PROPOSAL
Misaki R SlusarskiGermanyOnyama Limba RENEWAL
Stacey V PoquetteGermanyIoni Bowcher PROPOSAL
Nicolas P GillianBrazilElwin Sharvill PROPOSAL
Chavez E TollnerGermanyBernardo Dominic NEW
Silvio R PerinCanadaIoni Bowcher QUALIFIED
James L NestleJapanAsiya Javayant UNQUALIFIED
Alejandro F StensethJapanAmy Elsner NEW
Salvatore Q DoeItalyStephen Shaw NEGOTIATION
Claire M AmigonSpainOnyama Limba RENEWAL
Kadeem F OldroydArgentinaAnna Fali PROPOSAL
Jeanfrancois R CampainGermanyStephen Shaw NEGOTIATION
Sinclair U BowleyIndiaAsiya Javayant PROPOSAL
Ricardo N MaletAustraliaAnna Fali PROPOSAL
Murillo B DarakjyRussiaIvan Magalhaes UNQUALIFIED
Darci R WaycottIndiaAmy Elsner UNQUALIFIED
Murillo P GauchoJapanAsiya Javayant NEW
Aditya E RutaUnited KingdomBernardo Dominic UNQUALIFIED
Julie K ButtArgentinaStephen Shaw UNQUALIFIED
Izzy Y StockhamAustraliaElwin Sharvill UNQUALIFIED
Mayumi U PaprockiJapanAmy Elsner RENEWAL
Silvio O CaldareraGermanyAsiya Javayant NEW
Clifford H VenereJapanOnyama Limba NEGOTIATION
Chavez D PaprockiFranceAsiya Javayant UNQUALIFIED
Ricardo D OldroydGermanyIvan Magalhaes NEGOTIATION
Smith B FigeroaIndiaBernardo Dominic RENEWAL
Kadeem E OldroydAustraliaIvan Magalhaes UNQUALIFIED
Murillo R DoeSpainAmy Elsner QUALIFIED
Mujtaba M MacleadSpainOnyama Limba NEW
Faith X RutaGermanyAnna Fali NEGOTIATION
Chavez M AlbaresAustraliaOnyama Limba PROPOSAL
Maria Q PerinRussiaElwin Sharvill QUALIFIED
Nicolas B RimUnited KingdomIvan Magalhaes QUALIFIED
Murillo L MacleadAustraliaBernardo Dominic NEGOTIATION
Smith G TollnerUnited KingdomAnna Fali QUALIFIED
Ivar F PerinBrazilOnyama Limba NEGOTIATION
Isabel F AmigonArgentinaElwin Sharvill UNQUALIFIED
Clifford Y MacleadJapanBernardo Dominic NEGOTIATION
Julie B SlusarskiUnited KingdomAmy Elsner PROPOSAL
Ashley F AmigonIndiaIvan Magalhaes UNQUALIFIED
Leja K WieserJapanAnna Fali PROPOSAL
Salvatore N CampainArgentinaAmy Elsner NEW
James T BologniaItalyBernardo Dominic NEGOTIATION
Izzy B DoeSpainAsiya Javayant NEGOTIATION
Tony I FollerRussiaIvan Magalhaes UNQUALIFIED
Emily F PoquetteIndiaXuxue Feng RENEWAL
Frozen Columns
Name
Silvio T Gaucho
Faith I Royster
Misaki R Malet
Kaitlin X Nicka
Emily S Kolmetz
Silvio G Bolognia
Emily S Maclead
Emily D Saylors
Antonio S Schemmer
Greenwood B Iturbide
Adams A Vocelka
Adams J Stenseth
Mayumi T Nestle
Tony J Garufi
Faith K Marrier
Adams C Poquette
Kaitlin Q Garufi
Izzy Q Nicka
Murillo N Schemmer
Cody J Glick
Jennifer L Rim
Arvin Z Sergi
Aika X Campain
Faith U Morasca
Munro K Campain
Deepesh E Foller
Salvatore K Malet
Sinclair Z Flosi
Julie R Perin
Adams Y Rulapaugh
Chavez F Rulapaugh
Munro K Briddick
Clifford S Stockham
Kadeem F Perin
Nicolas J Sergi
Faith U Saylors
Clifford S Vocelka
Johnson W Albares
Rodrigues X Caldarera
Maria H Rim
Mujtaba L Chui
Faith I Tollner
Salvatore G Vocelka
Ricardo D Glick
Isabel Q Sergi
Rodrigues D Stenseth
James I Whobrey
Leja Y Stenseth
Darci T Sergi
Aditya Y Stenseth
IdCountryDate
1000Argentina2026-08-20
1001Canada2026-08-24
1002Germany2026-09-02
1003Japan2026-09-02
1004Argentina2026-08-10
1005India2026-08-27
1006Spain2026-08-11
1007Germany2026-09-01
1008Russia2026-08-06
1009India2026-08-11
1010India2026-08-17
1011France2026-08-09
1012Brazil2026-08-06
1013Canada2026-08-24
1014Australia2026-08-06
1015Germany2026-08-06
1016United Kingdom2026-08-11
1017Australia2026-08-07
1018Brazil2026-08-20
1019Canada2026-08-13
1020France2026-08-24
1021France2026-08-18
1022Argentina2026-08-27
1023France2026-08-07
1024Russia2026-08-24
1025Italy2026-08-21
1026Russia2026-08-21
1027Brazil2026-08-28
1028Canada2026-08-10
1029Canada2026-08-21
1030Argentina2026-08-14
1031Argentina2026-08-22
1032Australia2026-08-26
1033Japan2026-08-18
1034United Kingdom2026-08-19
1035Japan2026-08-09
1036Canada2026-09-02
1037Brazil2026-08-09
1038Spain2026-08-14
1039Australia2026-08-14
1040Russia2026-08-31
1041Japan2026-08-22
1042Japan2026-08-31
1043Spain2026-08-05
1044Spain2026-08-06
1045Canada2026-08-07
1046India2026-09-01
1047Italy2026-08-22
1048Japan2026-08-25
1049France2026-08-20

On-Demand Data

NameIdCountryDate
Claire P Saylors1000France2026-08-28
Aditya G Ruta1001Italy2026-09-03
Maria N Iturbide1002Spain2026-08-30
Izzy J Ruta1003Japan2026-08-27
Smith C Malet1004Australia2026-08-29
Kaitlin G Dilliard1005Argentina2026-08-07
Silvio A Doe1006Spain2026-08-19
Alejandro I Amigon1007Argentina2026-08-07
Deepesh U Shinko1008Italy2026-09-02
Deepesh L Gillian1009India2026-08-05
Wickens Q Morasca1010Italy2026-08-14
Juan G Garufi1011Argentina2026-08-14
Clifford M Gillian1012Russia2026-08-18
Leja P Stockham1013France2026-08-09
Julie F Royster1014United Kingdom2026-08-27
Costa T Poquette1015France2026-08-06
Morrow L Ferencz1016Argentina2026-08-13
Rodrigues Z Stenseth1017Canada2026-08-31
Munro S Briddick1018Canada2026-08-13
Murillo N Caldarera1019Argentina2026-08-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James N AmigonSpainIoni Bowcher NEGOTIATION
Izzy H RutaIndiaAnna Fali RENEWAL
Jones B AlbaresSpainAnna Fali UNQUALIFIED
Izzy W FollerArgentinaIvan Magalhaes UNQUALIFIED
Chavez D IturbideRussiaIoni Bowcher PROPOSAL
Emily H GlickFranceAnna Fali UNQUALIFIED
Murillo U OstroskyUnited KingdomStephen Shaw PROPOSAL
James A PoquetteArgentinaAnna Fali NEW
Clifford Z MaletUnited KingdomXuxue Feng NEW
Julie M AlbaresRussiaStephen Shaw QUALIFIED
Stacey X WieserItalyOnyama Limba NEGOTIATION
Cody E SlusarskiRussiaStephen Shaw PROPOSAL
Wickens G IturbideJapanIvan Magalhaes QUALIFIED
Mujtaba M AmigonRussiaAsiya Javayant UNQUALIFIED
James W SchemmerAustraliaAnna Fali RENEWAL
Rodrigues I CampainSpainAsiya Javayant QUALIFIED
Isabel E VenereJapanIoni Bowcher NEGOTIATION
Silvio X KolmetzBrazilXuxue Feng QUALIFIED
Morrow I AlbaresJapanStephen Shaw PROPOSAL
Silvio M OldroydCanadaAmy Elsner QUALIFIED
Clifford J FerenczGermanyOnyama Limba NEGOTIATION
Francesco B ShinkoRussiaOnyama Limba NEW
Aika G GlickSpainAsiya Javayant NEGOTIATION
Ashley N CaudyAustraliaStephen Shaw NEW
Darci C BologniaSpainAsiya Javayant RENEWAL
Darci U CaudyRussiaAsiya Javayant PROPOSAL
Wickens B VenereFranceAmy Elsner NEGOTIATION
Morrow O KolmetzUnited KingdomBernardo Dominic PROPOSAL
Adams X OldroydItalyOnyama Limba QUALIFIED
Deepesh T PerinFranceAnna Fali NEW
Aditya T DarakjyFranceXuxue Feng UNQUALIFIED
Francesco N DarakjyIndiaStephen Shaw RENEWAL
Leja C MacleadIndiaAmy Elsner PROPOSAL
Deepesh A AlbaresJapanOnyama Limba NEW
Sinclair E MarrierRussiaAnna Fali RENEWAL
Ricardo X WaycottUnited KingdomElwin Sharvill RENEWAL
David K PerinSpainXuxue Feng NEGOTIATION
Jennifer A FlosiGermanyElwin Sharvill UNQUALIFIED
Wickens A OldroydFranceAsiya Javayant NEW
Leon M MaletArgentinaAsiya Javayant UNQUALIFIED

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