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
Ricardo X BriddickSpainBernardo Dominic NEW
Leja K ButtItalyElwin Sharvill UNQUALIFIED
Johnson D BowleyRussiaIoni Bowcher RENEWAL
Ashley A ChuiGermanyStephen Shaw NEGOTIATION
Murillo B MorascaRussiaXuxue Feng RENEWAL
Adams K SchemmerAustraliaOnyama Limba NEW
Arvin H FerenczSpainAsiya Javayant PROPOSAL
Mayumi O SlusarskiBrazilStephen Shaw QUALIFIED
Cody G MaletItalyXuxue Feng RENEWAL
Murillo V RoysterBrazilIoni Bowcher PROPOSAL
Jefferson P SergiGermanyOnyama Limba QUALIFIED
Juan F MaletFranceAsiya Javayant PROPOSAL
Wickens J PaprockiJapanElwin Sharvill RENEWAL
Munro K NestleFranceElwin Sharvill UNQUALIFIED
Leja C ShinkoRussiaBernardo Dominic UNQUALIFIED
Smith K DilliardJapanAmy Elsner PROPOSAL
Alejandro N MarrierAustraliaAsiya Javayant NEGOTIATION
Costa U FollerFranceAmy Elsner NEGOTIATION
Tony O OldroydGermanyAsiya Javayant NEW
Clifford V ButtFranceIoni Bowcher RENEWAL
Isabel A PerinRussiaIoni Bowcher NEW
Rodrigues A RutaGermanyBernardo Dominic PROPOSAL
James Y DilliardCanadaXuxue Feng NEGOTIATION
Stacey U RutaAustraliaOnyama Limba RENEWAL
Aika N GlickArgentinaAnna Fali NEGOTIATION
Munro B WieserArgentinaXuxue Feng NEW
Aika D SergiFranceAsiya Javayant NEGOTIATION
Antonio D IturbideItalyAnna Fali QUALIFIED
Aruna G GarufiAustraliaStephen Shaw NEGOTIATION
Leon I RutaFranceIvan Magalhaes RENEWAL
Maria L BologniaItalyElwin Sharvill NEW
Johnson K GarufiUnited KingdomAnna Fali UNQUALIFIED
Tony N MaletItalyBernardo Dominic RENEWAL
Francesco U StockhamGermanyAnna Fali NEGOTIATION
Sinclair S DarakjyItalyAmy Elsner NEGOTIATION
Aditya Y NickaJapanIoni Bowcher NEW
Aruna C FollerAustraliaElwin Sharvill QUALIFIED
Kadeem J KuskoCanadaAsiya Javayant NEGOTIATION
Clifford K MorascaAustraliaIoni Bowcher PROPOSAL
Aruna V FlosiRussiaOnyama Limba QUALIFIED
Cody V OstroskyJapanIoni Bowcher NEW
Izzy O FlosiRussiaOnyama Limba PROPOSAL
Chavez Q MarrierJapanIvan Magalhaes NEW
Jennifer G AmigonSpainAnna Fali NEGOTIATION
Chavez M GlickBrazilElwin Sharvill PROPOSAL
Morrow C GauchoBrazilIvan Magalhaes RENEWAL
Ashley T WieserBrazilAmy Elsner PROPOSAL
Costa V MarrierFranceElwin Sharvill PROPOSAL
Julie J KuskoIndiaStephen Shaw PROPOSAL
Aika X ChuiAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Costa S StockhamAustraliaOnyama Limba NEW
Jeanfrancois D RutaBrazilBernardo Dominic NEGOTIATION
Johnson J BriddickCanadaAsiya Javayant PROPOSAL
Smith R WaycottSpainBernardo Dominic UNQUALIFIED
James E RulapaughFranceAmy Elsner PROPOSAL
Deepesh T BriddickUnited KingdomOnyama Limba PROPOSAL
Claire R RutaJapanElwin Sharvill NEW
Mayumi M RulapaughFranceIoni Bowcher PROPOSAL
Leon L OstroskyItalyStephen Shaw PROPOSAL
Chavez W DilliardBrazilOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon E GauchoBrazil2026-07-28Rangoni Of Florence PROPOSAL93Ioni Bowcher
1001Octavia O CaudyIndia2026-08-16Feiner Bros RENEWAL10Ivan Magalhaes
1002Kaitlin G GarufiArgentina2026-07-25Rousseaux, Michael Esq UNQUALIFIED95Xuxue Feng
1003Adams Q GlickCanada2026-08-17Truhlar And Truhlar Attys NEW66Stephen Shaw
1004Emily O VocelkaGermany2026-08-17Dorl, James J Esq PROPOSAL53Stephen Shaw
1005Octavia W NestleFrance2026-07-23Rangoni Of Florence PROPOSAL82Amy Elsner
1006Maria I MarrierItaly2026-07-24Morlong Associates NEGOTIATION43Ioni Bowcher
1007Ashley E StensethFrance2026-08-19Chanay, Jeffrey A Esq NEW60Bernardo Dominic
1008Maisha I OstroskyAustralia2026-08-18Chanay, Jeffrey A Esq UNQUALIFIED80Xuxue Feng
1009Francesco L RulapaughItaly2026-08-14Rousseaux, Michael Esq PROPOSAL58Bernardo Dominic
1010Rodrigues G DoeIndia2026-08-15Benton, John B Jr PROPOSAL27Anna Fali
1011Leon O WhobreyBrazil2026-08-04Benton, John B Jr NEGOTIATION95Onyama Limba
1012Jeanfrancois M RoysterIndia2026-08-14Dorl, James J Esq PROPOSAL3Stephen Shaw
1013Stacey H RutaBrazil2026-08-06Rangoni Of Florence PROPOSAL19Amy Elsner
1014Costa S CaldareraItaly2026-08-13Dorl, James J Esq UNQUALIFIED5Elwin Sharvill
1015Francesco W TollnerRussia2026-07-30Feiner Bros RENEWAL35Amy Elsner
1016Clifford S BologniaItaly2026-07-24Rousseaux, Michael Esq NEW53Stephen Shaw
1017Silvio Q ShinkoAustralia2026-08-18Morlong Associates QUALIFIED97Amy Elsner
1018Antonio U BriddickAustralia2026-08-08King, Christopher A Esq QUALIFIED46Anna Fali
1019Jefferson N CaldareraUnited Kingdom2026-08-16Dorl, James J Esq QUALIFIED54Elwin Sharvill
1020Rodrigues U NestleRussia2026-08-01Chapman, Ross E Esq PROPOSAL30Anna Fali
1021Chavez H PaprockiGermany2026-08-13Printing Dimensions RENEWAL92Amy Elsner
1022Deepesh L RutaUnited Kingdom2026-08-08Chemel, James L Cpa NEGOTIATION90Xuxue Feng
1023Aditya Y OldroydAustralia2026-08-10Chanay, Jeffrey A Esq NEGOTIATION85Stephen Shaw
1024Alejandro A PerinGermany2026-07-31Rousseaux, Michael Esq QUALIFIED75Ioni Bowcher
1025Smith Q DarakjyItaly2026-08-12Truhlar And Truhlar Attys UNQUALIFIED30Elwin Sharvill
1026Claire V CampainBrazil2026-07-31Chapman, Ross E Esq UNQUALIFIED97Amy Elsner
1027Alejandro Z SlusarskiSpain2026-08-09Chapman, Ross E Esq NEW75Ioni Bowcher
1028Mujtaba P BowleyItaly2026-08-01Feiner Bros QUALIFIED67Stephen Shaw
1029Leja F KolmetzAustralia2026-08-02Truhlar And Truhlar Attys QUALIFIED50Bernardo Dominic
1030Darci T GauchoAustralia2026-08-04Chemel, James L Cpa PROPOSAL7Bernardo Dominic
1031Leja H StensethGermany2026-08-10Chapman, Ross E Esq NEW56Amy Elsner
1032Juan Q GillianUnited Kingdom2026-08-18King, Christopher A Esq NEGOTIATION76Ioni Bowcher
1033Salvatore C DilliardAustralia2026-08-09Printing Dimensions QUALIFIED80Asiya Javayant
1034Misaki Z PaprockiUnited Kingdom2026-08-03Commercial Press UNQUALIFIED52Amy Elsner
1035Ricardo I CaldareraArgentina2026-08-14Feltz Printing Service UNQUALIFIED65Stephen Shaw
1036Chavez Y SergiCanada2026-07-30Chanay, Jeffrey A Esq QUALIFIED69Stephen Shaw
1037Claire A RoysterGermany2026-08-06Commercial Press NEW45Ivan Magalhaes
1038Costa H GarufiItaly2026-08-09Chemel, James L Cpa UNQUALIFIED79Anna Fali
1039David D GarufiIndia2026-08-18Chemel, James L Cpa RENEWAL66Stephen Shaw
1040Greenwood N FerenczUnited Kingdom2026-08-07Truhlar And Truhlar Attys NEGOTIATION98Stephen Shaw
1041Misaki U NestleRussia2026-08-05Chanay, Jeffrey A Esq QUALIFIED11Elwin Sharvill
1042Izzy H StensethCanada2026-07-27Chemel, James L Cpa RENEWAL17Ioni Bowcher
1043Costa Q BologniaSpain2026-08-20Benton, John B Jr UNQUALIFIED90Anna Fali
1044Chavez P DarakjyUnited Kingdom2026-07-29Benton, John B Jr UNQUALIFIED32Ivan Magalhaes
1045Deepesh F SaylorsGermany2026-08-12Buckley Miller Wright PROPOSAL56Xuxue Feng
1046Francesco X StensethCanada2026-08-10Rangoni Of Florence RENEWAL93Stephen Shaw
1047Ashley F SlusarskiSpain2026-08-02Commercial Press UNQUALIFIED60Elwin Sharvill
1048Faith Q CampainCanada2026-08-06Benton, John B Jr RENEWAL14Ivan Magalhaes
1049Chavez M StensethFrance2026-08-11Feltz Printing Service PROPOSAL63Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Costa E SergiAustraliaOnyama Limba UNQUALIFIED
Ricardo M DoeIndiaAmy Elsner UNQUALIFIED
Ivar Y ButtSpainIoni Bowcher PROPOSAL
Chavez G PoquetteFranceOnyama Limba QUALIFIED
Kaitlin N VocelkaArgentinaElwin Sharvill NEGOTIATION
Murillo Q GauchoRussiaBernardo Dominic NEGOTIATION
Ivar O VenereCanadaOnyama Limba QUALIFIED
Isabel T WaycottItalyAsiya Javayant RENEWAL
Greenwood H StockhamJapanAsiya Javayant PROPOSAL
Izzy J GlickSpainAnna Fali PROPOSAL
David H PoquetteAustraliaElwin Sharvill PROPOSAL
Murillo I StensethIndiaAnna Fali PROPOSAL
Arvin U ChuiIndiaXuxue Feng PROPOSAL
Ricardo G GauchoJapanBernardo Dominic UNQUALIFIED
Sinclair N NickaCanadaAnna Fali RENEWAL
Francesco O MorascaUnited KingdomIvan Magalhaes PROPOSAL
Aruna V DoeArgentinaXuxue Feng NEGOTIATION
Ivar Y PaprockiGermanyStephen Shaw RENEWAL
Aditya L FigeroaSpainIvan Magalhaes NEW
Aika G VenereArgentinaStephen Shaw RENEWAL
Rodrigues U SaylorsUnited KingdomOnyama Limba NEGOTIATION
Julie Y MacleadFranceIoni Bowcher NEW
Aditya W CaudyGermanyIoni Bowcher RENEWAL
Clifford G BologniaJapanOnyama Limba PROPOSAL
Ashley Y KuskoRussiaStephen Shaw QUALIFIED
Emily U FlosiFranceStephen Shaw UNQUALIFIED
Emily K NickaSpainAsiya Javayant RENEWAL
Costa J AmigonArgentinaXuxue Feng UNQUALIFIED
Alejandro N CaldareraCanadaElwin Sharvill QUALIFIED
Leja X NickaFranceStephen Shaw PROPOSAL
Mayumi N CampainIndiaOnyama Limba PROPOSAL
Isabel B ButtIndiaStephen Shaw NEW
Nicolas S OldroydRussiaIvan Magalhaes QUALIFIED
Ashley S DoeAustraliaAnna Fali PROPOSAL
Smith H CaldareraSpainElwin Sharvill NEW
Tony C DarakjyGermanyXuxue Feng QUALIFIED
Smith D AlbaresGermanyBernardo Dominic NEW
Octavia L ShinkoSpainAmy Elsner NEW
Sinclair C BologniaUnited KingdomOnyama Limba UNQUALIFIED
Mayumi H MarrierIndiaAnna Fali UNQUALIFIED
Stacey U MorascaUnited KingdomXuxue Feng UNQUALIFIED
Greenwood Z SaylorsCanadaOnyama Limba QUALIFIED
Sinclair C SchemmerCanadaAmy Elsner RENEWAL
Isabel M MaletUnited KingdomElwin Sharvill PROPOSAL
Julie L RutaGermanyAnna Fali QUALIFIED
Aditya G CampainUnited KingdomIvan Magalhaes PROPOSAL
David L KolmetzGermanyBernardo Dominic UNQUALIFIED
Maria G MarrierJapanXuxue Feng NEW
Nicolas V GillianFranceAsiya Javayant NEW
Morrow I MarrierBrazilOnyama Limba NEGOTIATION
Frozen Columns
Name
Aika O Ostrosky
Kadeem B Rim
Jeanfrancois Q Figeroa
Emily F Doe
Cody E Briddick
Sinclair Z Dilliard
Juan H Flosi
Octavia X Garufi
Arvin S Rulapaugh
Aruna P Vocelka
Murillo Z Marrier
Greenwood S Tollner
Aruna T Bolognia
Costa N Gaucho
Aditya D Whobrey
Clifford Q Doe
Clifford T Rulapaugh
Jennifer E Saylors
Leja C Nestle
Rodrigues Q Chui
Octavia S Nicka
Jefferson H Saylors
Cody Z Nicka
David G Ostrosky
Darci N Rim
Antonio D Slusarski
Smith M Marrier
Julie P Butt
Aika L Kolmetz
Clifford N Royster
Smith X Schemmer
Faith K Caldarera
Ivar N Ferencz
Juan K Stockham
Rodrigues F Dilliard
Adams L Vocelka
Greenwood G Bowley
Darci H Darakjy
Leja B Shinko
Cody J Iturbide
Izzy L Poquette
Faith D Venere
Munro S Caudy
Alejandro B Bowley
Clifford N Briddick
Jones B Marrier
Alejandro T Ostrosky
Jones O Vocelka
Silvio U Saylors
David U Darakjy
IdCountryDate
1000France2026-08-13
1001Brazil2026-08-11
1002Argentina2026-08-06
1003Japan2026-08-08
1004Germany2026-08-15
1005United Kingdom2026-07-23
1006France2026-08-04
1007Germany2026-08-09
1008Japan2026-08-15
1009France2026-08-03
1010Germany2026-08-07
1011India2026-07-26
1012Canada2026-07-29
1013Russia2026-08-15
1014Australia2026-08-10
1015Italy2026-08-10
1016France2026-07-27
1017France2026-07-29
1018Italy2026-08-07
1019Argentina2026-08-02
1020Australia2026-07-24
1021Argentina2026-08-02
1022Spain2026-08-21
1023France2026-07-31
1024Brazil2026-08-10
1025United Kingdom2026-08-21
1026France2026-08-15
1027India2026-08-06
1028Russia2026-08-06
1029France2026-08-15
1030Argentina2026-07-27
1031Brazil2026-08-08
1032Russia2026-07-29
1033Brazil2026-08-19
1034India2026-07-26
1035Japan2026-08-07
1036Germany2026-07-23
1037Russia2026-08-08
1038Argentina2026-08-12
1039Argentina2026-08-14
1040United Kingdom2026-08-09
1041Spain2026-08-21
1042Russia2026-08-20
1043India2026-08-18
1044Japan2026-08-19
1045Spain2026-08-16
1046Spain2026-07-24
1047Japan2026-08-13
1048United Kingdom2026-07-30
1049Argentina2026-08-21

On-Demand Data

NameIdCountryDate
Deepesh U Garufi1000Argentina2026-08-12
James A Gaucho1001Italy2026-07-26
Jeanfrancois P Stenseth1002Italy2026-07-25
Chavez V Gillian1003Russia2026-08-07
Smith V Oldroyd1004Australia2026-08-14
Rodrigues H Kolmetz1005Spain2026-08-04
Claire J Caudy1006Italy2026-07-25
Darci W Marrier1007Argentina2026-07-29
Nicolas Z Bolognia1008Italy2026-08-03
Silvio M Briddick1009Italy2026-07-24
Francesco U Dilliard1010Canada2026-08-09
Juan V Amigon1011Canada2026-07-23
Salvatore N Tollner1012Argentina2026-08-14
Costa I Schemmer1013Canada2026-08-18
Claire M Foller1014India2026-08-09
Salvatore A Ruta1015India2026-07-29
Ivar N Campain1016Brazil2026-08-03
Adams H Dilliard1017Spain2026-08-20
Juan U Nicka1018Spain2026-08-18
Smith S Rulapaugh1019Japan2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika N KolmetzItalyStephen Shaw NEGOTIATION
Isabel A SaylorsJapanIoni Bowcher QUALIFIED
Leja C BowleyBrazilElwin Sharvill NEGOTIATION
Cody W SlusarskiSpainBernardo Dominic UNQUALIFIED
James T PerinCanadaAsiya Javayant NEGOTIATION
Isabel Z RutaFranceStephen Shaw NEW
Francesco Z ButtIndiaIoni Bowcher NEGOTIATION
Deepesh A IturbideArgentinaStephen Shaw RENEWAL
Alejandro Y GarufiUnited KingdomAmy Elsner PROPOSAL
Sinclair K WaycottCanadaXuxue Feng UNQUALIFIED
Aika L NestleAustraliaAsiya Javayant QUALIFIED
Stacey N MarrierFranceAnna Fali NEGOTIATION
Aditya R ChuiSpainAsiya Javayant RENEWAL
Juan Z RutaItalyIoni Bowcher RENEWAL
Salvatore F NestleAustraliaBernardo Dominic NEW
Emily Z PerinGermanyBernardo Dominic RENEWAL
Tony W PoquetteBrazilIvan Magalhaes QUALIFIED
Maisha I DilliardRussiaBernardo Dominic RENEWAL
Claire D GauchoItalyAsiya Javayant QUALIFIED
Maria B CaldareraCanadaStephen Shaw UNQUALIFIED
Arvin F ButtJapanIoni Bowcher RENEWAL
Wickens C NestleGermanyAnna Fali PROPOSAL
Julie S SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Mayumi Z FlosiItalyAnna Fali RENEWAL
Julie J AmigonGermanyStephen Shaw RENEWAL
Mujtaba X RimIndiaOnyama Limba UNQUALIFIED
Julie I SchemmerFranceOnyama Limba NEGOTIATION
Murillo D VenereCanadaAnna Fali QUALIFIED
Ashley O PaprockiCanadaAsiya Javayant NEW
Ivar P GarufiItalyStephen Shaw NEGOTIATION
Greenwood D VocelkaUnited KingdomIoni Bowcher PROPOSAL
Maria W ShinkoCanadaElwin Sharvill NEW
James X PaprockiItalyIvan Magalhaes RENEWAL
Jeanfrancois Q StensethUnited KingdomBernardo Dominic PROPOSAL
Clifford J FerenczJapanIvan Magalhaes UNQUALIFIED
Cody F RoysterCanadaAnna Fali NEW
Ricardo Z GillianIndiaIoni Bowcher PROPOSAL
Leja P TollnerFranceStephen Shaw QUALIFIED
Kadeem I MaletRussiaAsiya Javayant PROPOSAL
Deepesh O RoysterGermanyIoni Bowcher 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>