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
Antonio B TollnerItalyAnna Fali UNQUALIFIED
Mujtaba Z SergiItalyStephen Shaw PROPOSAL
Kaitlin C FerenczRussiaAsiya Javayant RENEWAL
Izzy D RoysterCanadaIoni Bowcher NEGOTIATION
Maria I ShinkoItalyAsiya Javayant RENEWAL
Ashley D InouyeFranceIoni Bowcher NEGOTIATION
Maisha E GarufiItalyXuxue Feng NEW
James W AmigonArgentinaAnna Fali RENEWAL
Aditya R InouyeUnited KingdomAmy Elsner PROPOSAL
Francesco N GarufiArgentinaStephen Shaw NEGOTIATION
Isabel U OldroydUnited KingdomElwin Sharvill PROPOSAL
Francesco U StensethIndiaBernardo Dominic RENEWAL
Izzy S StockhamUnited KingdomIoni Bowcher QUALIFIED
Costa D GauchoIndiaAmy Elsner RENEWAL
Jeanfrancois B MaletCanadaBernardo Dominic RENEWAL
Kaitlin S BowleyAustraliaXuxue Feng NEW
Mujtaba B DarakjyCanadaBernardo Dominic RENEWAL
Emily Z GauchoUnited KingdomAnna Fali QUALIFIED
James D BologniaArgentinaAmy Elsner UNQUALIFIED
Izzy Z IturbideSpainAnna Fali PROPOSAL
Greenwood W OldroydRussiaOnyama Limba RENEWAL
Jennifer E PaprockiGermanyStephen Shaw NEW
Rodrigues R PerinBrazilStephen Shaw RENEWAL
Costa M StockhamAustraliaIvan Magalhaes QUALIFIED
Arvin Y MacleadRussiaAsiya Javayant UNQUALIFIED
Julie Z StensethCanadaElwin Sharvill PROPOSAL
Francesco V AmigonJapanAsiya Javayant UNQUALIFIED
James I DilliardBrazilBernardo Dominic RENEWAL
Murillo M RutaCanadaIoni Bowcher UNQUALIFIED
Kaitlin A MaletSpainOnyama Limba NEW
Salvatore A MorascaBrazilStephen Shaw NEW
Faith V BriddickRussiaXuxue Feng PROPOSAL
Emily F ButtAustraliaStephen Shaw NEW
Octavia X FlosiArgentinaXuxue Feng QUALIFIED
Ashley M SergiCanadaIvan Magalhaes RENEWAL
Rodrigues T MaletBrazilBernardo Dominic NEW
Adams D RimFranceOnyama Limba RENEWAL
Ivar K SergiJapanAsiya Javayant UNQUALIFIED
Isabel P SaylorsAustraliaAsiya Javayant QUALIFIED
Emily Q MaletSpainAnna Fali NEW
Silvio J StockhamArgentinaBernardo Dominic RENEWAL
Ashley J MacleadFranceIoni Bowcher NEW
Smith T PoquetteIndiaIvan Magalhaes UNQUALIFIED
Nicolas E StensethAustraliaAnna Fali NEW
Mayumi D AlbaresGermanyIoni Bowcher NEGOTIATION
Antonio D TollnerIndiaAmy Elsner NEGOTIATION
Salvatore Y GlickJapanStephen Shaw PROPOSAL
Emily G InouyeGermanyBernardo Dominic NEW
Clifford E SchemmerJapanAsiya Javayant NEGOTIATION
Emily I ChuiAustraliaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore K RimGermanyIoni Bowcher QUALIFIED
Aika W IturbideBrazilXuxue Feng PROPOSAL
Deepesh W GauchoJapanOnyama Limba NEGOTIATION
Clifford K InouyeItalyAsiya Javayant NEW
Johnson O NickaAustraliaAnna Fali NEGOTIATION
Jefferson T CaudyFranceOnyama Limba PROPOSAL
Mujtaba U NickaFranceStephen Shaw QUALIFIED
Salvatore L CampainGermanyXuxue Feng RENEWAL
Tony S FlosiRussiaAmy Elsner UNQUALIFIED
Costa D DilliardAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh S WhobreyUnited Kingdom2026-06-17Chemel, James L Cpa RENEWAL19Anna Fali
1001Julie W BriddickCanada2026-06-19Morlong Associates RENEWAL37Bernardo Dominic
1002Silvio O RulapaughBrazil2026-06-07Truhlar And Truhlar Attys UNQUALIFIED80Xuxue Feng
1003Munro E VocelkaRussia2026-06-05King, Christopher A Esq UNQUALIFIED20Amy Elsner
1004Maisha B IturbideRussia2026-06-21Feltz Printing Service NEW8Ivan Magalhaes
1005Munro K FlosiCanada2026-06-16Dorl, James J Esq RENEWAL66Onyama Limba
1006Faith J OstroskyAustralia2026-06-05Chemel, James L Cpa QUALIFIED70Asiya Javayant
1007Isabel Z SchemmerCanada2026-06-05Feltz Printing Service QUALIFIED56Amy Elsner
1008Faith P CaldareraJapan2026-06-20Chemel, James L Cpa UNQUALIFIED99Onyama Limba
1009Nicolas E CampainItaly2026-06-11Truhlar And Truhlar Attys NEGOTIATION79Anna Fali
1010Munro Y CampainAustralia2026-06-18Chanay, Jeffrey A Esq NEW28Stephen Shaw
1011Salvatore D BologniaUnited Kingdom2026-06-13Printing Dimensions NEW87Asiya Javayant
1012Francesco O PoquetteJapan2026-06-21Chemel, James L Cpa RENEWAL52Stephen Shaw
1013Munro B AlbaresSpain2026-06-07Buckley Miller Wright RENEWAL74Elwin Sharvill
1014Julie O MorascaGermany2026-06-08King, Christopher A Esq RENEWAL71Stephen Shaw
1015Jennifer K MaletArgentina2026-06-21Truhlar And Truhlar Attys QUALIFIED45Stephen Shaw
1016Munro B DarakjyIndia2026-07-03Rangoni Of Florence QUALIFIED0Xuxue Feng
1017Costa M SlusarskiSpain2026-06-28King, Christopher A Esq PROPOSAL5Stephen Shaw
1018Ashley Q GauchoBrazil2026-06-28Chanay, Jeffrey A Esq QUALIFIED90Ioni Bowcher
1019Jennifer B ChuiJapan2026-06-13King, Christopher A Esq RENEWAL22Onyama Limba
1020Jeanfrancois F NestleUnited Kingdom2026-06-24Dorl, James J Esq RENEWAL34Xuxue Feng
1021Aruna U IturbideSpain2026-06-06Commercial Press QUALIFIED68Elwin Sharvill
1022Silvio J InouyeAustralia2026-06-29King, Christopher A Esq PROPOSAL45Elwin Sharvill
1023Johnson S MarrierItaly2026-06-16Dorl, James J Esq RENEWAL79Onyama Limba
1024Isabel B InouyeBrazil2026-06-06Buckley Miller Wright NEW70Stephen Shaw
1025Antonio M GillianIndia2026-06-12Printing Dimensions UNQUALIFIED47Anna Fali
1026Jennifer L MaletUnited Kingdom2026-06-18Buckley Miller Wright RENEWAL25Onyama Limba
1027Clifford N ShinkoBrazil2026-06-07Chemel, James L Cpa NEGOTIATION40Xuxue Feng
1028Darci A SaylorsRussia2026-06-20Buckley Miller Wright QUALIFIED8Bernardo Dominic
1029Octavia O GauchoGermany2026-06-20Dorl, James J Esq RENEWAL99Anna Fali
1030Maria K BowleyRussia2026-07-03Rousseaux, Michael Esq QUALIFIED95Elwin Sharvill
1031Adams M AmigonArgentina2026-07-02Feltz Printing Service QUALIFIED70Amy Elsner
1032Jeanfrancois R StockhamIndia2026-06-17Feiner Bros PROPOSAL8Asiya Javayant
1033Ricardo Y PerinArgentina2026-06-22Rangoni Of Florence UNQUALIFIED12Xuxue Feng
1034Antonio X GauchoAustralia2026-06-21Chemel, James L Cpa NEGOTIATION95Elwin Sharvill
1035Misaki Q FollerRussia2026-06-06Commercial Press QUALIFIED41Onyama Limba
1036Alejandro A CaldareraArgentina2026-06-20Rousseaux, Michael Esq UNQUALIFIED37Elwin Sharvill
1037Adams A MarrierFrance2026-07-03Printing Dimensions RENEWAL95Bernardo Dominic
1038Faith R SergiItaly2026-06-20Truhlar And Truhlar Attys RENEWAL67Ioni Bowcher
1039Greenwood C AlbaresUnited Kingdom2026-06-05Rangoni Of Florence NEGOTIATION98Ivan Magalhaes
1040Arvin A MorascaAustralia2026-06-28Buckley Miller Wright NEW78Xuxue Feng
1041Murillo R SaylorsBrazil2026-06-19Chemel, James L Cpa RENEWAL29Xuxue Feng
1042Emily I PerinBrazil2026-06-30Feiner Bros PROPOSAL36Anna Fali
1043Clifford X GarufiJapan2026-06-09Rangoni Of Florence NEW6Xuxue Feng
1044Jennifer J StockhamGermany2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED79Ivan Magalhaes
1045Cody O ButtArgentina2026-06-05Benton, John B Jr NEGOTIATION29Onyama Limba
1046Chavez V WieserIndia2026-06-20Rousseaux, Michael Esq UNQUALIFIED55Asiya Javayant
1047Izzy H KolmetzItaly2026-06-22Chapman, Ross E Esq NEGOTIATION82Ioni Bowcher
1048Darci Z RutaItaly2026-06-12Rangoni Of Florence PROPOSAL55Stephen Shaw
1049Greenwood F KuskoRussia2026-06-29Buckley Miller Wright RENEWAL54Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Maisha C GauchoArgentinaElwin Sharvill NEW
Costa V InouyeCanadaAsiya Javayant UNQUALIFIED
Ivar Q CaudyFranceOnyama Limba UNQUALIFIED
Chavez H VenereArgentinaAnna Fali PROPOSAL
Jefferson H WaycottBrazilAsiya Javayant NEW
Costa P MarrierBrazilStephen Shaw UNQUALIFIED
Rodrigues C PaprockiJapanAsiya Javayant PROPOSAL
Tony Q KuskoCanadaIvan Magalhaes PROPOSAL
James N WaycottJapanIoni Bowcher UNQUALIFIED
Izzy K VocelkaFranceStephen Shaw PROPOSAL
Nicolas R CaldareraAustraliaXuxue Feng RENEWAL
Emily V FollerIndiaIoni Bowcher QUALIFIED
Kaitlin O PerinCanadaOnyama Limba RENEWAL
Leja R TollnerItalyStephen Shaw NEW
Greenwood D AmigonBrazilAmy Elsner UNQUALIFIED
Jeanfrancois B MorascaGermanyAmy Elsner NEW
Ricardo K CaldareraRussiaAnna Fali PROPOSAL
Silvio H ButtIndiaAnna Fali PROPOSAL
Chavez P CampainBrazilAsiya Javayant PROPOSAL
Claire R DoeRussiaStephen Shaw UNQUALIFIED
Salvatore Y MaletAustraliaAmy Elsner QUALIFIED
Izzy V OldroydJapanXuxue Feng NEGOTIATION
Murillo W TollnerBrazilOnyama Limba NEW
Kadeem A AmigonSpainAmy Elsner NEW
Clifford U PaprockiSpainStephen Shaw NEW
David L FlosiUnited KingdomStephen Shaw NEW
Ashley Z AmigonGermanyElwin Sharvill QUALIFIED
Claire A RulapaughGermanyBernardo Dominic UNQUALIFIED
Maria I MaletUnited KingdomStephen Shaw PROPOSAL
Claire N RimRussiaIvan Magalhaes UNQUALIFIED
Ricardo U IturbideFranceAnna Fali NEW
James Q BriddickRussiaIoni Bowcher UNQUALIFIED
Tony C RoysterBrazilAmy Elsner UNQUALIFIED
Francesco O OstroskyJapanIvan Magalhaes UNQUALIFIED
Aruna W RulapaughBrazilElwin Sharvill QUALIFIED
Tony U ButtSpainAnna Fali RENEWAL
Arvin Q FerenczCanadaXuxue Feng UNQUALIFIED
Arvin E VenereJapanIvan Magalhaes NEGOTIATION
Ivar S PerinCanadaStephen Shaw NEW
Arvin Y DilliardSpainOnyama Limba PROPOSAL
Izzy V DoeItalyIoni Bowcher RENEWAL
Claire F VocelkaUnited KingdomStephen Shaw RENEWAL
Ivar K AlbaresRussiaIvan Magalhaes PROPOSAL
Jones K RulapaughUnited KingdomAsiya Javayant PROPOSAL
Ricardo D DarakjyGermanyIvan Magalhaes QUALIFIED
Ashley I AmigonSpainElwin Sharvill QUALIFIED
Ivar W MorascaFranceAmy Elsner PROPOSAL
Jefferson Q RoysterUnited KingdomIoni Bowcher NEW
Isabel F PoquetteRussiaAsiya Javayant UNQUALIFIED
Juan T FlosiSpainElwin Sharvill NEW
Frozen Columns
Name
Misaki E Doe
Nicolas B Paprocki
Salvatore O Inouye
Francesco M Oldroyd
Sinclair W Perin
Claire L Albares
Ashley L Saylors
Greenwood U Nicka
Tony A Garufi
Leja S Tollner
Jeanfrancois J Chui
Leon L Flosi
Isabel J Campain
Aditya B Waycott
Costa J Vocelka
Kadeem T Venere
Ricardo S Perin
Maisha Z Perin
Morrow R Ruta
Cody Z Albares
Clifford N Figeroa
Arvin P Butt
Munro I Stockham
Leon S Schemmer
Jennifer S Waycott
Rodrigues M Rulapaugh
Aditya Z Briddick
Faith L Bolognia
Rodrigues K Albares
Jeanfrancois B Kusko
David N Figeroa
Julie K Iturbide
Leja T Malet
Adams J Poquette
Ricardo K Oldroyd
Salvatore L Saylors
Izzy W Bowley
Claire T Caudy
Jeanfrancois D Malet
Adams C Garufi
Tony P Shinko
Jones J Slusarski
Claire D Perin
Jones W Albares
Izzy A Royster
Adams C Kusko
Francesco D Wieser
Aika H Whobrey
Stacey N Kusko
Deepesh R Caldarera
IdCountryDate
1000Australia2026-07-01
1001Argentina2026-06-06
1002Brazil2026-07-01
1003France2026-06-30
1004United Kingdom2026-06-21
1005Canada2026-06-16
1006Canada2026-06-12
1007Canada2026-06-19
1008France2026-06-18
1009Germany2026-07-02
1010Brazil2026-07-01
1011Russia2026-06-07
1012Australia2026-06-14
1013Australia2026-06-25
1014Canada2026-06-23
1015India2026-06-15
1016Argentina2026-06-24
1017Australia2026-06-24
1018Brazil2026-06-06
1019Argentina2026-06-23
1020Germany2026-06-10
1021Australia2026-06-20
1022Italy2026-07-02
1023Brazil2026-06-10
1024Spain2026-06-10
1025France2026-06-10
1026India2026-06-27
1027Germany2026-07-03
1028Brazil2026-06-21
1029Germany2026-06-26
1030Italy2026-06-27
1031Germany2026-06-20
1032Australia2026-07-01
1033Brazil2026-06-08
1034Russia2026-06-24
1035France2026-06-07
1036Germany2026-06-23
1037France2026-06-05
1038Canada2026-06-04
1039United Kingdom2026-06-19
1040Russia2026-06-11
1041Spain2026-06-14
1042Italy2026-06-08
1043Spain2026-06-23
1044France2026-06-16
1045Brazil2026-06-07
1046United Kingdom2026-06-05
1047Russia2026-06-05
1048Argentina2026-06-28
1049Argentina2026-06-12

On-Demand Data

NameIdCountryDate
Deepesh K Shinko1000France2026-06-07
Murillo V Morasca1001India2026-06-16
Morrow O Gillian1002India2026-06-30
Nicolas P Saylors1003Germany2026-06-09
Aditya Z Tollner1004Australia2026-06-05
Salvatore B Darakjy1005Russia2026-06-06
Johnson Y Rulapaugh1006Canada2026-06-22
James Z Waycott1007Argentina2026-06-23
Ashley I Campain1008France2026-06-17
Chavez V Bowley1009Italy2026-06-26
James E Bolognia1010Italy2026-06-29
Ivar Q Vocelka1011Brazil2026-06-24
Tony C Royster1012Japan2026-06-11
Nicolas Q Nicka1013Brazil2026-06-04
Maisha U Maclead1014Italy2026-06-18
Silvio G Darakjy1015Italy2026-06-14
Sinclair J Glick1016Spain2026-06-24
Mujtaba U Morasca1017Argentina2026-06-04
Jeanfrancois E Chui1018Russia2026-06-09
Izzy J Stenseth1019Argentina2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore K GlickRussiaXuxue Feng UNQUALIFIED
Aditya K WhobreyItalyAnna Fali RENEWAL
Julie S BologniaJapanBernardo Dominic NEGOTIATION
Aika H GauchoFranceStephen Shaw QUALIFIED
Adams Z GarufiBrazilAsiya Javayant QUALIFIED
Kaitlin K PerinItalyAsiya Javayant QUALIFIED
Ashley G MarrierItalyBernardo Dominic UNQUALIFIED
Johnson T MacleadAustraliaIvan Magalhaes QUALIFIED
Cody R PaprockiCanadaAmy Elsner NEGOTIATION
Tony M ChuiFranceStephen Shaw UNQUALIFIED
Salvatore J WhobreyItalyOnyama Limba RENEWAL
Rodrigues I GillianIndiaIvan Magalhaes QUALIFIED
Morrow H KolmetzIndiaStephen Shaw QUALIFIED
Silvio N AmigonCanadaIvan Magalhaes PROPOSAL
Maisha P StensethFranceIvan Magalhaes PROPOSAL
James J MorascaAustraliaElwin Sharvill PROPOSAL
Munro R WieserGermanyElwin Sharvill NEGOTIATION
Kaitlin A OldroydFranceStephen Shaw PROPOSAL
Aditya Z CaldareraJapanStephen Shaw QUALIFIED
Faith C GarufiIndiaAsiya Javayant NEW
Jefferson U WieserBrazilElwin Sharvill PROPOSAL
Smith V SaylorsBrazilIvan Magalhaes UNQUALIFIED
Silvio Y GauchoRussiaIvan Magalhaes PROPOSAL
James A TollnerCanadaAnna Fali NEW
Kaitlin J StockhamCanadaIvan Magalhaes PROPOSAL
Jennifer S PerinJapanIoni Bowcher UNQUALIFIED
Maria I IturbideFranceAsiya Javayant RENEWAL
Octavia J AmigonCanadaStephen Shaw UNQUALIFIED
Johnson P SchemmerUnited KingdomIoni Bowcher RENEWAL
Francesco X RulapaughSpainAmy Elsner UNQUALIFIED
David Z DilliardAustraliaElwin Sharvill QUALIFIED
Leon K MaletJapanIvan Magalhaes PROPOSAL
Aruna N BriddickAustraliaStephen Shaw QUALIFIED
Wickens W PaprockiItalyXuxue Feng NEW
Leon F WieserUnited KingdomStephen Shaw NEW
Costa J PoquetteCanadaXuxue Feng NEGOTIATION
Claire Z IturbideJapanOnyama Limba NEGOTIATION
Isabel R MacleadJapanStephen Shaw QUALIFIED
Jennifer F SchemmerIndiaIoni Bowcher RENEWAL
Clifford S InouyeGermanyIvan 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>