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
Chavez K RoysterGermanyBernardo Dominic PROPOSAL
Jones H PoquetteSpainIvan Magalhaes NEW
Wickens D BowleyAustraliaAnna Fali RENEWAL
Misaki N BologniaBrazilAnna Fali QUALIFIED
Mayumi A ChuiFranceOnyama Limba RENEWAL
Stacey T WaycottAustraliaBernardo Dominic PROPOSAL
Salvatore C GauchoBrazilAmy Elsner QUALIFIED
Silvio J NestleGermanyAnna Fali UNQUALIFIED
Kadeem O MarrierJapanIoni Bowcher PROPOSAL
Murillo V NestleAustraliaBernardo Dominic UNQUALIFIED
Greenwood Q CaldareraBrazilAnna Fali PROPOSAL
Nicolas R NestleUnited KingdomIoni Bowcher RENEWAL
Sinclair V GarufiUnited KingdomOnyama Limba UNQUALIFIED
Leon D MacleadAustraliaBernardo Dominic NEW
Alejandro F DilliardBrazilStephen Shaw PROPOSAL
Clifford A MaletArgentinaXuxue Feng QUALIFIED
Aika C VocelkaJapanAmy Elsner NEW
Tony G AmigonSpainAsiya Javayant QUALIFIED
Antonio X GlickJapanIvan Magalhaes PROPOSAL
Costa Q DoeCanadaStephen Shaw QUALIFIED
Isabel J BriddickRussiaAnna Fali NEGOTIATION
Arvin W CampainItalyBernardo Dominic NEGOTIATION
Greenwood T RulapaughBrazilOnyama Limba PROPOSAL
Misaki B VenereGermanyOnyama Limba NEGOTIATION
Johnson H FerenczArgentinaAsiya Javayant QUALIFIED
Smith V FerenczItalyIoni Bowcher PROPOSAL
Chavez Q SlusarskiRussiaAnna Fali RENEWAL
Darci K MorascaGermanyAmy Elsner PROPOSAL
Adams V OstroskySpainIvan Magalhaes QUALIFIED
James S KolmetzSpainElwin Sharvill NEW
Kadeem S WaycottAustraliaAsiya Javayant QUALIFIED
Mayumi R FollerIndiaXuxue Feng QUALIFIED
Mayumi I RoysterSpainOnyama Limba UNQUALIFIED
Morrow D SlusarskiGermanyElwin Sharvill UNQUALIFIED
Isabel T ChuiCanadaIoni Bowcher RENEWAL
Leon C FollerAustraliaIvan Magalhaes QUALIFIED
Jennifer X KuskoAustraliaOnyama Limba UNQUALIFIED
Jennifer U CaudyArgentinaXuxue Feng PROPOSAL
Darci I CaldareraCanadaIoni Bowcher NEW
Munro K BriddickUnited KingdomIvan Magalhaes RENEWAL
Rodrigues U NickaCanadaOnyama Limba QUALIFIED
Leja Z CaldareraSpainIvan Magalhaes NEGOTIATION
Ivar K VenereIndiaAmy Elsner NEGOTIATION
James I GauchoUnited KingdomBernardo Dominic QUALIFIED
Stacey D CampainCanadaAsiya Javayant PROPOSAL
Alejandro P WaycottCanadaBernardo Dominic UNQUALIFIED
James I SergiItalyElwin Sharvill NEGOTIATION
Faith H GlickArgentinaStephen Shaw NEW
Kaitlin X PerinIndiaStephen Shaw RENEWAL
Murillo W OldroydBrazilIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo F SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Munro K NestleItalyIoni Bowcher NEGOTIATION
Aditya H GlickRussiaStephen Shaw QUALIFIED
Silvio Y CaudyAustraliaStephen Shaw NEW
Claire K SergiCanadaStephen Shaw PROPOSAL
Faith A FlosiItalyOnyama Limba PROPOSAL
Leon Z KuskoRussiaIoni Bowcher PROPOSAL
Claire V OstroskyIndiaElwin Sharvill NEW
Sinclair Q NestleCanadaBernardo Dominic NEGOTIATION
Misaki B SergiRussiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio K GillianUnited Kingdom2026-07-02Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1001Silvio S InouyeJapan2026-07-01Benton, John B Jr RENEWAL27Bernardo Dominic
1002Tony B PaprockiFrance2026-06-29Rousseaux, Michael Esq PROPOSAL23Ioni Bowcher
1003Aika Z OstroskyArgentina2026-06-26Chanay, Jeffrey A Esq NEGOTIATION84Ioni Bowcher
1004Aruna C MorascaBrazil2026-07-03Rousseaux, Michael Esq RENEWAL38Asiya Javayant
1005Jones Y ChuiCanada2026-07-03Morlong Associates QUALIFIED90Asiya Javayant
1006Julie Y SlusarskiGermany2026-07-11Rangoni Of Florence NEW99Bernardo Dominic
1007Johnson J DilliardUnited Kingdom2026-06-30Rousseaux, Michael Esq PROPOSAL27Anna Fali
1008Jeanfrancois A SaylorsGermany2026-07-02Commercial Press QUALIFIED69Stephen Shaw
1009Leja U FlosiUnited Kingdom2026-06-26Rangoni Of Florence RENEWAL14Onyama Limba
1010Mayumi G GarufiRussia2026-07-08Rousseaux, Michael Esq PROPOSAL38Ioni Bowcher
1011Darci X FigeroaAustralia2026-07-24Printing Dimensions QUALIFIED63Elwin Sharvill
1012Leja O DoeGermany2026-06-28Buckley Miller Wright UNQUALIFIED66Stephen Shaw
1013Aika A VocelkaIndia2026-07-12Chanay, Jeffrey A Esq RENEWAL51Elwin Sharvill
1014Misaki Z SergiAustralia2026-07-12Feltz Printing Service QUALIFIED60Anna Fali
1015Julie P RulapaughIndia2026-07-04Feltz Printing Service QUALIFIED37Elwin Sharvill
1016Izzy N ShinkoRussia2026-07-17Buckley Miller Wright UNQUALIFIED57Elwin Sharvill
1017Ashley V FigeroaGermany2026-07-05Benton, John B Jr NEGOTIATION77Bernardo Dominic
1018Costa K GillianUnited Kingdom2026-07-14Feltz Printing Service NEGOTIATION19Bernardo Dominic
1019Greenwood Z RoysterJapan2026-07-10Dorl, James J Esq RENEWAL97Ioni Bowcher
1020Morrow U MarrierUnited Kingdom2026-07-03Feltz Printing Service UNQUALIFIED63Asiya Javayant
1021Nicolas G FollerBrazil2026-07-15Printing Dimensions PROPOSAL41Stephen Shaw
1022Octavia W DoeAustralia2026-07-17Chemel, James L Cpa UNQUALIFIED87Stephen Shaw
1023Leja U CaldareraIndia2026-07-24King, Christopher A Esq RENEWAL62Ioni Bowcher
1024Salvatore Y DarakjyItaly2026-07-18Benton, John B Jr NEW15Anna Fali
1025Kaitlin B ButtRussia2026-07-14Chapman, Ross E Esq RENEWAL63Ioni Bowcher
1026Leon K AlbaresIndia2026-07-24Buckley Miller Wright NEW73Onyama Limba
1027Leon Y RoysterIndia2026-07-15Chanay, Jeffrey A Esq NEW18Asiya Javayant
1028Smith J CaudyUnited Kingdom2026-07-06Feiner Bros QUALIFIED74Ivan Magalhaes
1029Clifford C GauchoFrance2026-07-19Dorl, James J Esq NEW50Elwin Sharvill
1030Deepesh V DoeBrazil2026-07-06Printing Dimensions RENEWAL22Amy Elsner
1031Salvatore Z PaprockiBrazil2026-07-11Printing Dimensions UNQUALIFIED13Anna Fali
1032Isabel N WieserAustralia2026-07-03Truhlar And Truhlar Attys QUALIFIED81Xuxue Feng
1033Ashley H MacleadRussia2026-07-11Commercial Press QUALIFIED45Asiya Javayant
1034Chavez Q KolmetzSpain2026-06-29Chemel, James L Cpa UNQUALIFIED20Bernardo Dominic
1035Stacey U StensethIndia2026-07-11Rangoni Of Florence NEGOTIATION78Onyama Limba
1036Johnson A VocelkaFrance2026-07-23King, Christopher A Esq RENEWAL63Amy Elsner
1037Chavez K CaudySpain2026-07-24Morlong Associates NEGOTIATION57Asiya Javayant
1038Costa I SchemmerItaly2026-07-09Printing Dimensions QUALIFIED78Asiya Javayant
1039Kaitlin G KolmetzAustralia2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED1Bernardo Dominic
1040Murillo T GarufiArgentina2026-07-07Commercial Press NEGOTIATION10Ivan Magalhaes
1041Leja Z CaldareraIndia2026-06-27Printing Dimensions UNQUALIFIED52Stephen Shaw
1042Izzy O BowleyRussia2026-07-09Dorl, James J Esq PROPOSAL82Anna Fali
1043Johnson U BriddickArgentina2026-06-28Morlong Associates QUALIFIED61Elwin Sharvill
1044Jennifer D InouyeArgentina2026-06-29King, Christopher A Esq NEGOTIATION93Xuxue Feng
1045Nicolas N PerinUnited Kingdom2026-07-04Feltz Printing Service NEW9Ivan Magalhaes
1046Tony O MorascaIndia2026-07-14Chapman, Ross E Esq UNQUALIFIED42Stephen Shaw
1047Maisha J SergiItaly2026-07-10Printing Dimensions NEGOTIATION76Elwin Sharvill
1048Sinclair Q BriddickAustralia2026-07-09Commercial Press UNQUALIFIED20Amy Elsner
1049Jones K GarufiGermany2026-07-05Chapman, Ross E Esq QUALIFIED61Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Deepesh C RutaGermanyIoni Bowcher RENEWAL
Misaki V DilliardSpainIoni Bowcher UNQUALIFIED
Cody O IturbideSpainBernardo Dominic NEW
Ashley F GillianJapanOnyama Limba QUALIFIED
Antonio E GlickAustraliaAsiya Javayant NEGOTIATION
Jones C PoquetteBrazilBernardo Dominic NEGOTIATION
Rodrigues E MacleadJapanStephen Shaw RENEWAL
Emily F KuskoUnited KingdomIvan Magalhaes PROPOSAL
David G FollerFranceAmy Elsner NEW
Munro I RimUnited KingdomOnyama Limba NEGOTIATION
David T NickaArgentinaIvan Magalhaes UNQUALIFIED
Wickens P IturbideAustraliaXuxue Feng RENEWAL
Mayumi P DoeJapanBernardo Dominic UNQUALIFIED
Aditya R DarakjyIndiaStephen Shaw QUALIFIED
Aditya J WaycottAustraliaStephen Shaw UNQUALIFIED
Salvatore C StensethAustraliaAmy Elsner UNQUALIFIED
Maisha C BologniaIndiaIoni Bowcher NEW
Misaki G GarufiArgentinaOnyama Limba NEW
Tony T InouyeGermanyBernardo Dominic NEW
Mujtaba F AlbaresAustraliaIvan Magalhaes QUALIFIED
Chavez Y NestleItalyIvan Magalhaes NEW
Kaitlin Z ShinkoArgentinaAnna Fali QUALIFIED
Misaki W BowleyBrazilAnna Fali UNQUALIFIED
Clifford P InouyeIndiaAmy Elsner UNQUALIFIED
Johnson G SaylorsArgentinaIvan Magalhaes PROPOSAL
Aditya O BowleyBrazilAsiya Javayant RENEWAL
Francesco L FerenczSpainXuxue Feng NEGOTIATION
Clifford A FigeroaCanadaOnyama Limba UNQUALIFIED
Deepesh Y OstroskyCanadaAmy Elsner PROPOSAL
Claire R BowleyAustraliaAsiya Javayant PROPOSAL
Cody V MarrierItalyAsiya Javayant PROPOSAL
Jefferson Y SchemmerRussiaAnna Fali UNQUALIFIED
Tony W ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Maria N VenereSpainXuxue Feng NEW
Deepesh U StensethFranceIoni Bowcher RENEWAL
Morrow N ButtSpainAnna Fali NEW
Greenwood G IturbideAustraliaAmy Elsner NEW
Deepesh B RimRussiaBernardo Dominic UNQUALIFIED
Ricardo C FlosiBrazilElwin Sharvill UNQUALIFIED
Aika Y FlosiItalyElwin Sharvill QUALIFIED
Clifford S CaudyBrazilAnna Fali QUALIFIED
Smith J MorascaIndiaElwin Sharvill RENEWAL
Aditya L WhobreyGermanyXuxue Feng PROPOSAL
Greenwood W FlosiCanadaStephen Shaw NEGOTIATION
Jennifer I NickaJapanBernardo Dominic QUALIFIED
Mayumi F CaudyIndiaBernardo Dominic PROPOSAL
Jeanfrancois D MaletCanadaOnyama Limba UNQUALIFIED
Emily U FollerBrazilStephen Shaw UNQUALIFIED
Mayumi I CaldareraAustraliaIvan Magalhaes RENEWAL
Juan M MacleadUnited KingdomAnna Fali NEGOTIATION
Frozen Columns
Name
Mujtaba J Stenseth
Antonio Q Wieser
Misaki T Maclead
Salvatore B Chui
Francesco H Gillian
Rodrigues G Kusko
Antonio B Ferencz
Tony M Doe
Antonio W Poquette
David Z Perin
Faith I Campain
Morrow C Wieser
Silvio U Ostrosky
Smith Q Doe
Julie F Kusko
James R Kusko
Maisha N Nicka
Greenwood H Tollner
Adams Z Sergi
Juan K Doe
Sinclair H Caudy
Ashley Z Rim
David N Wieser
Kaitlin R Nicka
Aditya L Malet
Kaitlin P Poquette
Claire O Schemmer
Sinclair Z Doe
Chavez M Sergi
Cody B Marrier
James Q Perin
Mayumi I Tollner
Mujtaba V Bowley
Arvin X Venere
Octavia F Caudy
Cody U Darakjy
Maisha K Tollner
Octavia E Rulapaugh
Mayumi T Caldarera
Juan N Gaucho
Leja W Butt
Silvio C Ostrosky
Nicolas Q Darakjy
Isabel L Nestle
Arvin D Stenseth
Isabel F Tollner
Murillo A Rim
Tony O Poquette
Aditya M Kolmetz
Salvatore Q Marrier
IdCountryDate
1000France2026-07-13
1001Canada2026-07-22
1002France2026-07-09
1003Germany2026-07-18
1004Argentina2026-07-02
1005Japan2026-07-13
1006France2026-07-21
1007Brazil2026-07-19
1008Germany2026-07-23
1009Australia2026-07-22
1010Canada2026-06-28
1011Canada2026-07-02
1012Australia2026-06-26
1013Canada2026-07-09
1014Australia2026-07-12
1015Spain2026-06-29
1016United Kingdom2026-07-02
1017Japan2026-07-05
1018Canada2026-06-29
1019Australia2026-06-30
1020Italy2026-07-15
1021Canada2026-07-12
1022Russia2026-07-08
1023United Kingdom2026-07-10
1024Japan2026-07-10
1025United Kingdom2026-07-01
1026Germany2026-07-20
1027United Kingdom2026-06-26
1028Germany2026-07-19
1029India2026-07-08
1030Australia2026-07-02
1031Australia2026-07-01
1032Argentina2026-07-14
1033Germany2026-07-11
1034Argentina2026-06-29
1035Russia2026-07-05
1036Japan2026-07-18
1037France2026-07-14
1038Canada2026-07-13
1039Italy2026-07-04
1040United Kingdom2026-07-04
1041India2026-07-14
1042Argentina2026-07-06
1043Brazil2026-07-20
1044Argentina2026-07-13
1045United Kingdom2026-07-07
1046France2026-07-15
1047Spain2026-07-17
1048Canada2026-07-20
1049Russia2026-07-16

On-Demand Data

NameIdCountryDate
Octavia L Dilliard1000India2026-07-12
Johnson T Gaucho1001Russia2026-07-16
Stacey K Tollner1002Germany2026-07-16
Octavia Y Venere1003Germany2026-07-15
Leon B Oldroyd1004India2026-07-06
Kaitlin C Vocelka1005Canada2026-07-11
Costa Z Gillian1006United Kingdom2026-07-19
Maisha E Figeroa1007Italy2026-07-14
Julie L Amigon1008Germany2026-07-22
Kaitlin L Stenseth1009India2026-07-24
Munro F Amigon1010Canada2026-07-07
Isabel G Rim1011Germany2026-07-21
Munro W Darakjy1012Russia2026-07-21
Murillo H Waycott1013United Kingdom2026-06-29
Isabel G Garufi1014Argentina2026-06-26
Greenwood O Caudy1015France2026-07-16
Greenwood A Garufi1016United Kingdom2026-06-29
Aditya O Briddick1017Brazil2026-07-10
Jeanfrancois E Perin1018United Kingdom2026-07-21
Jefferson I Nestle1019Australia2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey O SchemmerJapanOnyama Limba NEGOTIATION
Maria V BriddickIndiaBernardo Dominic NEGOTIATION
Juan S StockhamCanadaBernardo Dominic UNQUALIFIED
Silvio K NickaBrazilBernardo Dominic NEGOTIATION
Mayumi I FollerFranceAsiya Javayant PROPOSAL
Rodrigues V AmigonAustraliaIoni Bowcher PROPOSAL
Greenwood E SlusarskiCanadaStephen Shaw UNQUALIFIED
Jennifer H KolmetzBrazilBernardo Dominic NEGOTIATION
Mujtaba L RulapaughItalyXuxue Feng PROPOSAL
Aditya S BologniaArgentinaAmy Elsner QUALIFIED
Arvin X SchemmerAustraliaIoni Bowcher NEGOTIATION
Jennifer M RimJapanOnyama Limba PROPOSAL
Wickens C InouyeIndiaAsiya Javayant UNQUALIFIED
Kadeem T RimAustraliaOnyama Limba RENEWAL
Leja R CampainUnited KingdomAsiya Javayant NEGOTIATION
Arvin Z FigeroaSpainBernardo Dominic RENEWAL
Jefferson P BologniaBrazilAnna Fali PROPOSAL
Arvin Y RulapaughFranceElwin Sharvill NEW
Rodrigues J RoysterSpainXuxue Feng QUALIFIED
Adams Y BriddickArgentinaBernardo Dominic NEGOTIATION
David Y BriddickFranceElwin Sharvill NEGOTIATION
Costa Y WhobreyRussiaIoni Bowcher PROPOSAL
Sinclair V IturbideFranceStephen Shaw NEGOTIATION
Aruna O ChuiAustraliaIvan Magalhaes PROPOSAL
Stacey C VocelkaCanadaOnyama Limba NEGOTIATION
Munro J SergiAustraliaOnyama Limba RENEWAL
Stacey Y DarakjyArgentinaAmy Elsner NEGOTIATION
Tony A CaldareraGermanyAsiya Javayant NEW
Octavia R WieserArgentinaElwin Sharvill PROPOSAL
Mayumi S MarrierRussiaStephen Shaw RENEWAL
Morrow K ButtJapanStephen Shaw QUALIFIED
Kadeem M SergiAustraliaAsiya Javayant RENEWAL
Clifford E InouyeCanadaElwin Sharvill NEGOTIATION
Alejandro X OldroydSpainIoni Bowcher NEGOTIATION
Adams R VocelkaItalyIoni Bowcher UNQUALIFIED
Mujtaba Z RimFranceOnyama Limba PROPOSAL
Octavia J WhobreyCanadaIvan Magalhaes NEW
Faith S BriddickFranceXuxue Feng UNQUALIFIED
Rodrigues N CampainJapanIoni Bowcher QUALIFIED
Claire Z RutaIndiaBernardo Dominic 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>