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
Claire Y InouyeSpainOnyama Limba UNQUALIFIED
Faith C SchemmerArgentinaAsiya Javayant NEGOTIATION
Izzy Z WhobreyJapanAmy Elsner QUALIFIED
Octavia M FollerUnited KingdomIoni Bowcher PROPOSAL
Leja T NickaArgentinaOnyama Limba PROPOSAL
Leja X DilliardRussiaOnyama Limba UNQUALIFIED
Aditya H CampainUnited KingdomBernardo Dominic NEGOTIATION
James L OstroskyArgentinaOnyama Limba NEW
Chavez F InouyeGermanyIoni Bowcher UNQUALIFIED
Antonio V DarakjyGermanyAnna Fali NEGOTIATION
Chavez L NestleUnited KingdomAmy Elsner PROPOSAL
Izzy V IturbideRussiaStephen Shaw QUALIFIED
Cody K TollnerRussiaAmy Elsner RENEWAL
Claire U StensethRussiaAsiya Javayant NEW
Darci F BowleyUnited KingdomAnna Fali PROPOSAL
Kaitlin C RoysterAustraliaBernardo Dominic UNQUALIFIED
Leja D DarakjyFranceElwin Sharvill QUALIFIED
Jeanfrancois D RutaItalyAmy Elsner PROPOSAL
Sinclair S WaycottUnited KingdomStephen Shaw NEGOTIATION
Silvio A RulapaughJapanStephen Shaw PROPOSAL
Salvatore C SergiFranceIoni Bowcher RENEWAL
Silvio Z ChuiSpainIoni Bowcher RENEWAL
Ricardo B CaldareraCanadaAmy Elsner NEW
Adams X CaldareraIndiaXuxue Feng UNQUALIFIED
Ashley S WaycottIndiaXuxue Feng PROPOSAL
Juan N MorascaIndiaAsiya Javayant RENEWAL
Maisha B WaycottUnited KingdomAmy Elsner NEW
Rodrigues P DilliardRussiaAmy Elsner NEGOTIATION
Deepesh F RutaJapanElwin Sharvill RENEWAL
Sinclair K RimRussiaAsiya Javayant QUALIFIED
Aika K StockhamSpainAmy Elsner QUALIFIED
Ricardo V CaudyIndiaBernardo Dominic NEW
Morrow Q FigeroaBrazilIoni Bowcher QUALIFIED
Munro A FerenczArgentinaBernardo Dominic NEGOTIATION
Jennifer B FlosiJapanOnyama Limba UNQUALIFIED
Isabel I MarrierFranceElwin Sharvill RENEWAL
Kadeem T DoeCanadaAnna Fali NEW
Darci Z SchemmerGermanyAsiya Javayant QUALIFIED
Costa O GillianGermanyOnyama Limba NEGOTIATION
Mujtaba O FollerIndiaAmy Elsner NEGOTIATION
Ricardo Z OstroskyBrazilOnyama Limba PROPOSAL
Aruna W MaletArgentinaStephen Shaw PROPOSAL
Morrow P KuskoIndiaBernardo Dominic UNQUALIFIED
Adams G StensethSpainIoni Bowcher PROPOSAL
Alejandro K BologniaFranceElwin Sharvill RENEWAL
Ivar J ShinkoCanadaXuxue Feng RENEWAL
Cody G GlickAustraliaXuxue Feng PROPOSAL
Mayumi P IturbideCanadaAnna Fali PROPOSAL
Murillo D GarufiCanadaAsiya Javayant QUALIFIED
Leja O CampainBrazilElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin J NickaGermanyIvan Magalhaes NEGOTIATION
Aditya N TollnerAustraliaIvan Magalhaes UNQUALIFIED
Emily X BowleyJapanElwin Sharvill PROPOSAL
Leon Q PaprockiCanadaBernardo Dominic QUALIFIED
Clifford D RoysterBrazilStephen Shaw NEW
Aruna F SaylorsJapanBernardo Dominic UNQUALIFIED
Aditya Q DarakjyFranceStephen Shaw NEW
Maisha L MorascaCanadaAsiya Javayant NEW
Kadeem D KuskoUnited KingdomXuxue Feng PROPOSAL
Greenwood C CaudyIndiaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois X SaylorsItaly2026-06-17Chemel, James L Cpa PROPOSAL67Ioni Bowcher
1001Silvio S MarrierAustralia2026-06-27Chemel, James L Cpa RENEWAL71Xuxue Feng
1002Claire T CaldareraIndia2026-06-20Feltz Printing Service RENEWAL31Ioni Bowcher
1003Jones A ChuiGermany2026-06-19Buckley Miller Wright NEW85Anna Fali
1004Nicolas S BowleyItaly2026-07-06Benton, John B Jr NEW35Elwin Sharvill
1005Julie C MaletArgentina2026-06-19Feiner Bros NEGOTIATION32Ioni Bowcher
1006Morrow O NickaJapan2026-06-27Rousseaux, Michael Esq RENEWAL53Ivan Magalhaes
1007Wickens R IturbideItaly2026-06-14Truhlar And Truhlar Attys NEGOTIATION86Stephen Shaw
1008Smith E GauchoFrance2026-06-09Feiner Bros PROPOSAL60Asiya Javayant
1009Arvin V OstroskyFrance2026-06-12Buckley Miller Wright NEW56Stephen Shaw
1010Francesco L WieserRussia2026-07-02Buckley Miller Wright QUALIFIED17Onyama Limba
1011Cody M FollerAustralia2026-06-19Morlong Associates PROPOSAL65Onyama Limba
1012Izzy L OstroskyBrazil2026-06-17Rousseaux, Michael Esq PROPOSAL36Asiya Javayant
1013Jeanfrancois B DoeIndia2026-06-29Benton, John B Jr UNQUALIFIED92Bernardo Dominic
1014Aika M MacleadGermany2026-06-23Benton, John B Jr RENEWAL21Ioni Bowcher
1015Claire W ShinkoFrance2026-06-21Benton, John B Jr QUALIFIED46Amy Elsner
1016Aditya X BologniaSpain2026-06-29Dorl, James J Esq RENEWAL63Bernardo Dominic
1017Adams R DarakjyAustralia2026-06-18Feiner Bros RENEWAL31Xuxue Feng
1018James O MaletCanada2026-06-26Benton, John B Jr UNQUALIFIED68Anna Fali
1019Maria L KuskoFrance2026-06-08Printing Dimensions PROPOSAL84Onyama Limba
1020Rodrigues X MaletJapan2026-06-28King, Christopher A Esq PROPOSAL7Bernardo Dominic
1021Sinclair H CaldareraRussia2026-06-16Feiner Bros QUALIFIED12Stephen Shaw
1022Izzy Q KuskoAustralia2026-06-19Chapman, Ross E Esq NEGOTIATION95Onyama Limba
1023Smith F VocelkaGermany2026-07-03Feltz Printing Service NEGOTIATION52Amy Elsner
1024Mujtaba D ChuiAustralia2026-06-23Feltz Printing Service QUALIFIED7Bernardo Dominic
1025Jennifer T WhobreyAustralia2026-06-15Dorl, James J Esq RENEWAL92Ioni Bowcher
1026Jeanfrancois V PoquetteBrazil2026-06-22Printing Dimensions NEGOTIATION15Elwin Sharvill
1027Ivar A VocelkaIndia2026-06-23Buckley Miller Wright NEGOTIATION89Amy Elsner
1028Emily D AlbaresSpain2026-06-12Chemel, James L Cpa UNQUALIFIED85Amy Elsner
1029David C ChuiGermany2026-06-24Buckley Miller Wright PROPOSAL91Ivan Magalhaes
1030Adams J FigeroaUnited Kingdom2026-06-25Rousseaux, Michael Esq QUALIFIED96Anna Fali
1031Cody P FlosiSpain2026-06-13King, Christopher A Esq RENEWAL17Onyama Limba
1032Maria T FigeroaGermany2026-07-06Rousseaux, Michael Esq NEW0Elwin Sharvill
1033Antonio U GlickFrance2026-06-24Printing Dimensions RENEWAL79Stephen Shaw
1034Wickens Z MarrierFrance2026-07-06Commercial Press NEW51Asiya Javayant
1035Murillo T StensethFrance2026-07-03King, Christopher A Esq NEW29Ivan Magalhaes
1036Maisha P PoquetteUnited Kingdom2026-06-20Dorl, James J Esq QUALIFIED89Onyama Limba
1037Munro O BriddickIndia2026-07-04Morlong Associates PROPOSAL64Onyama Limba
1038Faith R GlickAustralia2026-06-14Commercial Press UNQUALIFIED19Bernardo Dominic
1039Clifford Z RoysterCanada2026-07-05Commercial Press RENEWAL95Xuxue Feng
1040Julie H NestleIndia2026-06-18Buckley Miller Wright PROPOSAL48Amy Elsner
1041Mujtaba E WaycottSpain2026-06-14Chanay, Jeffrey A Esq NEW54Elwin Sharvill
1042Smith G WhobreyAustralia2026-06-28Commercial Press NEGOTIATION17Xuxue Feng
1043Francesco K MaletSpain2026-06-13Feiner Bros NEGOTIATION67Elwin Sharvill
1044Jones Z WhobreySpain2026-06-16Benton, John B Jr RENEWAL24Onyama Limba
1045Stacey T BowleyItaly2026-07-01Chanay, Jeffrey A Esq PROPOSAL51Amy Elsner
1046Morrow K MaletSpain2026-07-03Commercial Press PROPOSAL78Xuxue Feng
1047Alejandro O BowleyUnited Kingdom2026-06-15Truhlar And Truhlar Attys NEGOTIATION72Ioni Bowcher
1048Maria Y KolmetzRussia2026-06-18Feiner Bros NEGOTIATION7Ivan Magalhaes
1049Clifford A FlosiRussia2026-06-29King, Christopher A Esq UNQUALIFIED35Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ashley Z CampainUnited KingdomElwin Sharvill PROPOSAL
James O WieserUnited KingdomOnyama Limba QUALIFIED
Morrow C MacleadJapanElwin Sharvill NEGOTIATION
Greenwood B SlusarskiFranceAmy Elsner QUALIFIED
Mayumi V AmigonJapanXuxue Feng NEGOTIATION
Jones Y FollerJapanIvan Magalhaes NEW
Arvin E GauchoSpainIoni Bowcher QUALIFIED
Ivar F WieserAustraliaAmy Elsner NEGOTIATION
James A WaycottBrazilIvan Magalhaes RENEWAL
Rodrigues O SaylorsUnited KingdomBernardo Dominic NEW
Kadeem P NestleCanadaElwin Sharvill UNQUALIFIED
Silvio A CaldareraRussiaOnyama Limba PROPOSAL
Kaitlin H AmigonAustraliaAnna Fali NEW
Costa G MaletGermanyAmy Elsner NEW
Maisha W SchemmerIndiaElwin Sharvill UNQUALIFIED
Darci I SaylorsAustraliaXuxue Feng QUALIFIED
Rodrigues M CaudyUnited KingdomXuxue Feng PROPOSAL
Adams D WhobreyBrazilAsiya Javayant PROPOSAL
Jeanfrancois F RoysterAustraliaAnna Fali NEW
Cody T ShinkoIndiaAmy Elsner RENEWAL
Murillo G AmigonSpainBernardo Dominic RENEWAL
Tony F AlbaresItalyAnna Fali RENEWAL
Ivar W CaudyJapanIvan Magalhaes PROPOSAL
Leja J SlusarskiGermanyElwin Sharvill UNQUALIFIED
Costa O BologniaItalyElwin Sharvill PROPOSAL
Mujtaba Y ShinkoItalyAmy Elsner PROPOSAL
Francesco V OldroydSpainIvan Magalhaes RENEWAL
Adams G SergiUnited KingdomElwin Sharvill RENEWAL
Adams I InouyeAustraliaAsiya Javayant PROPOSAL
Jennifer S RimRussiaElwin Sharvill RENEWAL
Misaki T MaletItalyIoni Bowcher UNQUALIFIED
Juan H StensethArgentinaIvan Magalhaes NEGOTIATION
Silvio U StockhamItalyBernardo Dominic NEGOTIATION
Juan T SchemmerFranceIoni Bowcher NEGOTIATION
Morrow R SaylorsAustraliaIoni Bowcher NEW
Emily J KuskoGermanyIvan Magalhaes QUALIFIED
Francesco A BologniaGermanyOnyama Limba NEW
Adams K IturbideItalyAnna Fali NEW
James G FollerJapanElwin Sharvill NEGOTIATION
Isabel E PerinGermanyAmy Elsner NEW
Smith K AlbaresJapanAsiya Javayant RENEWAL
Nicolas R PerinAustraliaOnyama Limba PROPOSAL
Adams F GarufiCanadaXuxue Feng NEW
Tony J SchemmerArgentinaIoni Bowcher PROPOSAL
Ashley Z NickaItalyAnna Fali UNQUALIFIED
Aditya L WaycottUnited KingdomIoni Bowcher NEW
Ricardo G RimItalyAnna Fali QUALIFIED
Arvin Z PaprockiIndiaAsiya Javayant UNQUALIFIED
Aruna L MaletBrazilIvan Magalhaes PROPOSAL
Johnson B PoquetteGermanyAnna Fali RENEWAL
Frozen Columns
Name
Aika D Caldarera
Francesco A Inouye
Adams Z Doe
Jennifer A Nestle
Leja V Ruta
Misaki G Bowley
Ivar O Garufi
Jefferson T Malet
Ashley Y Gaucho
Stacey L Maclead
David B Campain
Ivar U Campain
Julie W Gillian
Rodrigues M Shinko
Mayumi G Paprocki
Stacey H Dilliard
Clifford G Albares
Clifford Q Sergi
Francesco L Royster
Juan P Ostrosky
Mujtaba P Rulapaugh
David W Caudy
Maria V Shinko
Aruna E Waycott
Juan C Gaucho
Jeanfrancois A Ostrosky
Cody X Venere
Tony K Ruta
Jones L Darakjy
Arvin X Stockham
Munro F Chui
Stacey W Venere
Octavia E Chui
Claire R Schemmer
Izzy X Stenseth
Misaki E Stenseth
Claire B Stenseth
Aditya F Stockham
Jeanfrancois J Saylors
Octavia A Ostrosky
Stacey V Iturbide
Misaki S Caldarera
Clifford N Briddick
Jefferson R Darakjy
Nicolas W Sergi
Faith D Foller
Arvin U Paprocki
Aika N Slusarski
Izzy Y Chui
Jefferson T Wieser
IdCountryDate
1000Japan2026-06-16
1001Italy2026-06-18
1002Japan2026-06-28
1003Canada2026-06-09
1004Russia2026-07-04
1005India2026-06-22
1006Canada2026-06-24
1007India2026-06-30
1008Canada2026-06-29
1009United Kingdom2026-06-15
1010Spain2026-06-17
1011Spain2026-06-26
1012Argentina2026-07-03
1013France2026-06-08
1014Australia2026-06-20
1015United Kingdom2026-06-13
1016Japan2026-06-27
1017Italy2026-06-16
1018Germany2026-06-16
1019Australia2026-06-30
1020Japan2026-06-18
1021Germany2026-06-29
1022Canada2026-06-11
1023United Kingdom2026-06-13
1024Brazil2026-06-15
1025France2026-06-08
1026Brazil2026-06-28
1027Canada2026-06-28
1028Italy2026-07-04
1029Argentina2026-07-05
1030Italy2026-06-21
1031India2026-06-23
1032Germany2026-06-07
1033United Kingdom2026-06-25
1034United Kingdom2026-06-30
1035Russia2026-06-15
1036Germany2026-06-19
1037Australia2026-06-20
1038Argentina2026-06-08
1039India2026-06-16
1040Argentina2026-06-18
1041Italy2026-07-03
1042India2026-06-07
1043Australia2026-06-18
1044Brazil2026-06-11
1045Brazil2026-06-11
1046United Kingdom2026-06-13
1047Brazil2026-06-07
1048France2026-07-05
1049Argentina2026-06-10

On-Demand Data

NameIdCountryDate
Arvin N Stenseth1000Spain2026-06-24
Deepesh Q Caudy1001Germany2026-06-18
Maria N Chui1002United Kingdom2026-06-10
Alejandro A Campain1003United Kingdom2026-06-16
Kadeem N Dilliard1004Brazil2026-07-04
Wickens F Gaucho1005United Kingdom2026-06-26
Aika S Paprocki1006Canada2026-06-29
Ivar U Albares1007Russia2026-07-03
Mujtaba D Ostrosky1008Brazil2026-07-03
Maria Y Shinko1009Japan2026-07-06
Izzy E Bowley1010Germany2026-06-22
Chavez V Rulapaugh1011Brazil2026-06-08
Aditya H Briddick1012Germany2026-07-01
Isabel L Foller1013Argentina2026-06-15
Mujtaba P Whobrey1014Canada2026-06-24
Johnson V Perin1015India2026-07-01
Johnson H Tollner1016France2026-06-25
Octavia T Dilliard1017Spain2026-06-08
Costa V Sergi1018United Kingdom2026-06-09
Darci S Chui1019Germany2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey J WhobreyAustraliaIvan Magalhaes RENEWAL
Costa E WaycottFranceOnyama Limba UNQUALIFIED
Murillo S WieserSpainBernardo Dominic NEGOTIATION
Adams S NickaJapanElwin Sharvill NEGOTIATION
James G SlusarskiCanadaElwin Sharvill NEW
Greenwood A SchemmerJapanBernardo Dominic UNQUALIFIED
Izzy L ChuiGermanyElwin Sharvill NEGOTIATION
Izzy T GauchoItalyAmy Elsner NEW
Ricardo F KolmetzUnited KingdomAnna Fali UNQUALIFIED
Leon N PerinSpainAsiya Javayant UNQUALIFIED
Antonio U MarrierAustraliaIvan Magalhaes UNQUALIFIED
Antonio K DilliardArgentinaBernardo Dominic NEW
Darci T SchemmerIndiaStephen Shaw PROPOSAL
Chavez K DilliardArgentinaOnyama Limba UNQUALIFIED
Faith Y SaylorsRussiaOnyama Limba QUALIFIED
Adams G GarufiAustraliaIoni Bowcher QUALIFIED
Nicolas F NickaCanadaOnyama Limba RENEWAL
Octavia P MarrierRussiaAmy Elsner UNQUALIFIED
Antonio T GillianGermanyAmy Elsner QUALIFIED
Octavia H NestleSpainOnyama Limba UNQUALIFIED
Jeanfrancois E DoeBrazilXuxue Feng NEW
Maria V WaycottAustraliaStephen Shaw PROPOSAL
Faith U SergiUnited KingdomIvan Magalhaes RENEWAL
Johnson Y VenereIndiaXuxue Feng NEGOTIATION
Mujtaba A MarrierUnited KingdomAnna Fali RENEWAL
Arvin U StockhamCanadaAsiya Javayant NEGOTIATION
Wickens M RutaCanadaAsiya Javayant NEW
Darci Z VocelkaAustraliaOnyama Limba NEW
Jeanfrancois R MaletRussiaOnyama Limba NEW
Mayumi V FollerUnited KingdomOnyama Limba QUALIFIED
Smith B MaletItalyElwin Sharvill UNQUALIFIED
Antonio J RutaItalyStephen Shaw RENEWAL
Octavia H PaprockiArgentinaIvan Magalhaes QUALIFIED
Rodrigues K SaylorsAustraliaXuxue Feng PROPOSAL
Mayumi Q GarufiFranceBernardo Dominic RENEWAL
Alejandro G VocelkaAustraliaAsiya Javayant PROPOSAL
Tony G SaylorsIndiaBernardo Dominic NEW
Aruna H SergiSpainAmy Elsner NEW
Izzy C NestleAustraliaXuxue Feng QUALIFIED
Emily P DilliardSpainOnyama Limba QUALIFIED

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