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
Octavia J NickaFranceXuxue Feng PROPOSAL
Ricardo Q RoysterItalyAnna Fali PROPOSAL
Leja D SchemmerSpainIvan Magalhaes PROPOSAL
David L VenereIndiaOnyama Limba NEW
Mujtaba O NickaRussiaAmy Elsner RENEWAL
Nicolas E RutaItalyAmy Elsner QUALIFIED
Misaki D SaylorsRussiaOnyama Limba RENEWAL
Tony U MarrierGermanyIvan Magalhaes QUALIFIED
Francesco A MaletCanadaIvan Magalhaes NEGOTIATION
Kaitlin C ButtFranceAnna Fali NEW
Stacey X StensethItalyIvan Magalhaes NEGOTIATION
Deepesh D CaudyGermanyIoni Bowcher QUALIFIED
Sinclair O WieserBrazilAmy Elsner NEGOTIATION
Julie M ChuiSpainElwin Sharvill NEGOTIATION
Smith C CampainCanadaXuxue Feng PROPOSAL
Sinclair D OldroydArgentinaXuxue Feng NEW
Francesco M IturbideArgentinaIvan Magalhaes PROPOSAL
David Q AlbaresRussiaBernardo Dominic NEGOTIATION
David S KolmetzSpainIvan Magalhaes RENEWAL
Ivar M ShinkoSpainStephen Shaw QUALIFIED
Aika N OldroydAustraliaAmy Elsner NEW
Cody N KuskoFranceIvan Magalhaes NEW
Arvin V StockhamArgentinaAsiya Javayant RENEWAL
Kaitlin B FigeroaUnited KingdomIvan Magalhaes PROPOSAL
Misaki M WaycottItalyAmy Elsner RENEWAL
Emily U AlbaresFranceAmy Elsner PROPOSAL
Johnson E DilliardGermanyIvan Magalhaes QUALIFIED
Deepesh N RutaFranceAnna Fali RENEWAL
Aika N ChuiAustraliaAmy Elsner RENEWAL
Ashley Y FlosiIndiaAmy Elsner NEGOTIATION
Ashley S BowleyBrazilOnyama Limba QUALIFIED
Emily Y BowleyItalyIoni Bowcher PROPOSAL
Aruna I WaycottArgentinaXuxue Feng NEGOTIATION
David X SergiSpainIvan Magalhaes UNQUALIFIED
Arvin W GarufiAustraliaOnyama Limba NEGOTIATION
Jefferson F SaylorsItalyAmy Elsner NEGOTIATION
Ashley I RulapaughFranceAmy Elsner QUALIFIED
Johnson E ShinkoRussiaAmy Elsner PROPOSAL
Maria N WieserSpainIvan Magalhaes NEGOTIATION
Johnson N FerenczBrazilAmy Elsner QUALIFIED
Kaitlin I KolmetzRussiaIvan Magalhaes UNQUALIFIED
Smith X StockhamUnited KingdomOnyama Limba QUALIFIED
Ashley N FollerJapanXuxue Feng RENEWAL
Kadeem X CampainGermanyStephen Shaw NEW
Mujtaba R WhobreyGermanyAmy Elsner NEW
Jeanfrancois L PerinCanadaAsiya Javayant NEGOTIATION
James E VocelkaRussiaAnna Fali UNQUALIFIED
Antonio D MorascaCanadaBernardo Dominic RENEWAL
Leon L FollerJapanElwin Sharvill UNQUALIFIED
Antonio V CaldareraSpainOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood W GarufiBrazilXuxue Feng PROPOSAL
Stacey M SaylorsBrazilIoni Bowcher NEGOTIATION
Nicolas E FlosiBrazilAmy Elsner NEW
Johnson D BowleyUnited KingdomOnyama Limba NEW
Ricardo A DilliardSpainStephen Shaw QUALIFIED
Costa C FigeroaCanadaXuxue Feng PROPOSAL
Juan B VenereCanadaStephen Shaw UNQUALIFIED
Mayumi S FigeroaJapanElwin Sharvill NEW
James E GillianFranceAsiya Javayant NEW
Jeanfrancois S VenereIndiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro L IturbideJapan2026-08-16Truhlar And Truhlar Attys UNQUALIFIED31Onyama Limba
1001Morrow Q SchemmerAustralia2026-07-23Benton, John B Jr NEW55Amy Elsner
1002Kadeem T SaylorsItaly2026-07-22Benton, John B Jr NEW21Asiya Javayant
1003Mayumi R StensethCanada2026-08-13Feiner Bros QUALIFIED10Onyama Limba
1004Wickens Q SaylorsSpain2026-08-09Benton, John B Jr NEW28Ioni Bowcher
1005Greenwood Q FollerCanada2026-07-28Truhlar And Truhlar Attys QUALIFIED46Xuxue Feng
1006Silvio P DarakjyItaly2026-08-12Chemel, James L Cpa PROPOSAL32Ivan Magalhaes
1007Izzy I ButtCanada2026-07-30Rangoni Of Florence QUALIFIED35Ioni Bowcher
1008Antonio E CampainItaly2026-08-16Truhlar And Truhlar Attys UNQUALIFIED55Ivan Magalhaes
1009Ricardo V ChuiJapan2026-07-27Chanay, Jeffrey A Esq PROPOSAL16Ivan Magalhaes
1010Cody Y DarakjyUnited Kingdom2026-07-23King, Christopher A Esq UNQUALIFIED11Onyama Limba
1011Adams O FerenczItaly2026-08-15Chanay, Jeffrey A Esq RENEWAL69Xuxue Feng
1012Alejandro G FigeroaGermany2026-08-15Truhlar And Truhlar Attys RENEWAL73Stephen Shaw
1013Costa A VocelkaCanada2026-07-20Benton, John B Jr QUALIFIED62Ioni Bowcher
1014Jeanfrancois K VocelkaIndia2026-07-20Feltz Printing Service QUALIFIED22Onyama Limba
1015Faith F OldroydFrance2026-07-18Morlong Associates QUALIFIED97Onyama Limba
1016Emily C MacleadGermany2026-07-20Chemel, James L Cpa QUALIFIED20Asiya Javayant
1017Clifford K SergiJapan2026-07-26Rangoni Of Florence RENEWAL76Stephen Shaw
1018Adams M FollerCanada2026-07-28Chemel, James L Cpa RENEWAL53Elwin Sharvill
1019Tony N GillianGermany2026-08-04Chapman, Ross E Esq PROPOSAL52Elwin Sharvill
1020Ivar K BologniaGermany2026-08-03Benton, John B Jr PROPOSAL57Ioni Bowcher
1021Murillo A RutaAustralia2026-07-28Rangoni Of Florence PROPOSAL67Stephen Shaw
1022Munro N DilliardBrazil2026-07-21Feiner Bros RENEWAL86Bernardo Dominic
1023Mayumi V RoysterCanada2026-08-12Dorl, James J Esq NEW54Xuxue Feng
1024Claire W KuskoCanada2026-08-04Feiner Bros NEGOTIATION68Amy Elsner
1025Stacey N FollerUnited Kingdom2026-07-21Printing Dimensions UNQUALIFIED19Bernardo Dominic
1026Maisha Y MacleadFrance2026-08-01Chanay, Jeffrey A Esq QUALIFIED84Xuxue Feng
1027Morrow E RulapaughAustralia2026-08-15Feiner Bros NEW21Ivan Magalhaes
1028Munro P PaprockiJapan2026-08-06Printing Dimensions QUALIFIED96Anna Fali
1029Maria M FollerGermany2026-08-08Chanay, Jeffrey A Esq NEW96Ivan Magalhaes
1030James H WhobreyAustralia2026-07-22Rangoni Of Florence NEGOTIATION71Ivan Magalhaes
1031Smith N PoquetteIndia2026-08-09Truhlar And Truhlar Attys NEW62Stephen Shaw
1032Ivar A WieserSpain2026-07-28Printing Dimensions QUALIFIED81Onyama Limba
1033Arvin V KuskoRussia2026-08-03Feiner Bros UNQUALIFIED82Ivan Magalhaes
1034Salvatore W TollnerBrazil2026-07-25Chemel, James L Cpa NEGOTIATION5Bernardo Dominic
1035Kaitlin A MacleadUnited Kingdom2026-07-23Rangoni Of Florence PROPOSAL43Onyama Limba
1036David Q WaycottAustralia2026-08-15Truhlar And Truhlar Attys NEW58Elwin Sharvill
1037Ashley K NickaArgentina2026-08-06Commercial Press RENEWAL42Onyama Limba
1038Claire F PerinBrazil2026-08-09Chemel, James L Cpa PROPOSAL35Asiya Javayant
1039James U ShinkoSpain2026-08-01Buckley Miller Wright NEGOTIATION80Elwin Sharvill
1040Ricardo I PerinCanada2026-08-01Commercial Press QUALIFIED64Xuxue Feng
1041Stacey M GauchoBrazil2026-07-23Rousseaux, Michael Esq NEGOTIATION66Amy Elsner
1042Ricardo B WaycottCanada2026-07-27Feiner Bros UNQUALIFIED63Asiya Javayant
1043Jennifer N PaprockiRussia2026-08-07Benton, John B Jr QUALIFIED81Ivan Magalhaes
1044James B CaudyRussia2026-07-24King, Christopher A Esq NEGOTIATION34Xuxue Feng
1045Claire K GauchoRussia2026-08-04Rangoni Of Florence QUALIFIED14Asiya Javayant
1046Sinclair P KuskoArgentina2026-07-27King, Christopher A Esq QUALIFIED40Asiya Javayant
1047Salvatore S ChuiJapan2026-07-18Commercial Press QUALIFIED81Ioni Bowcher
1048Chavez C VenereGermany2026-08-05Feltz Printing Service NEW84Stephen Shaw
1049Leja A MaletFrance2026-07-29Truhlar And Truhlar Attys RENEWAL67Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ivar E SlusarskiJapanIvan Magalhaes NEGOTIATION
Kaitlin U CaldareraArgentinaOnyama Limba QUALIFIED
Johnson L GarufiSpainIoni Bowcher UNQUALIFIED
Rodrigues Q ChuiJapanXuxue Feng NEW
Emily R MarrierSpainAsiya Javayant PROPOSAL
Wickens I KuskoRussiaBernardo Dominic NEGOTIATION
James K NestleUnited KingdomOnyama Limba PROPOSAL
Claire M SergiRussiaAsiya Javayant RENEWAL
Tony Y NestleJapanIvan Magalhaes UNQUALIFIED
Alejandro K RutaUnited KingdomIvan Magalhaes NEGOTIATION
Stacey P CaldareraUnited KingdomIoni Bowcher QUALIFIED
Misaki R KolmetzFranceIoni Bowcher QUALIFIED
Tony L WaycottSpainElwin Sharvill UNQUALIFIED
Stacey M InouyeUnited KingdomXuxue Feng QUALIFIED
David G OldroydFranceIvan Magalhaes NEGOTIATION
Greenwood F GauchoArgentinaAsiya Javayant PROPOSAL
Smith L BowleyGermanyAnna Fali RENEWAL
David G RimGermanyAmy Elsner NEGOTIATION
Silvio V BowleyJapanIvan Magalhaes PROPOSAL
Isabel J WaycottRussiaOnyama Limba QUALIFIED
Ashley F WaycottIndiaOnyama Limba QUALIFIED
Adams C ChuiUnited KingdomBernardo Dominic NEGOTIATION
Chavez W TollnerCanadaIvan Magalhaes QUALIFIED
Antonio C WieserArgentinaOnyama Limba NEW
Wickens K GauchoAustraliaBernardo Dominic RENEWAL
Alejandro E WaycottAustraliaIoni Bowcher PROPOSAL
Ricardo T DoeJapanStephen Shaw PROPOSAL
Morrow Z InouyeAustraliaElwin Sharvill RENEWAL
Izzy D PoquetteIndiaIoni Bowcher NEW
Kaitlin V FollerAustraliaIvan Magalhaes PROPOSAL
Salvatore U MacleadIndiaBernardo Dominic QUALIFIED
Mayumi Y TollnerUnited KingdomStephen Shaw QUALIFIED
Cody A NestleItalyAnna Fali UNQUALIFIED
Isabel F WhobreyAustraliaIvan Magalhaes NEGOTIATION
Nicolas E FerenczItalyAsiya Javayant PROPOSAL
Juan P PerinAustraliaOnyama Limba RENEWAL
Izzy D VocelkaSpainElwin Sharvill RENEWAL
Aika P PoquetteUnited KingdomElwin Sharvill NEW
Alejandro O FerenczBrazilStephen Shaw RENEWAL
David W FerenczArgentinaAnna Fali QUALIFIED
Mayumi O RoysterSpainXuxue Feng PROPOSAL
Misaki K CaldareraBrazilAmy Elsner PROPOSAL
Cody R RutaFranceBernardo Dominic NEGOTIATION
James S MarrierUnited KingdomAsiya Javayant RENEWAL
Kaitlin P PoquetteJapanXuxue Feng QUALIFIED
Salvatore Z GlickCanadaElwin Sharvill QUALIFIED
Murillo A KuskoArgentinaBernardo Dominic PROPOSAL
Ashley X WieserGermanyBernardo Dominic RENEWAL
Nicolas Q MarrierGermanyXuxue Feng NEW
Jennifer Z SaylorsJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Smith P Whobrey
Jones Q Tollner
Rodrigues X Ferencz
Emily R Bolognia
Isabel N Gillian
Johnson T Glick
Greenwood A Kolmetz
Cody B Saylors
Izzy E Oldroyd
Cody J Garufi
Jennifer N Caldarera
Julie T Perin
Antonio X Kolmetz
Juan T Campain
Francesco Q Kusko
Kaitlin T Saylors
Cody E Figeroa
Jennifer C Stockham
Murillo S Whobrey
Morrow M Rim
Darci N Tollner
Deepesh Q Campain
Murillo U Venere
Cody R Wieser
Jones U Gaucho
Salvatore H Flosi
Octavia B Kolmetz
Maisha M Vocelka
Smith O Campain
Salvatore G Rim
Deepesh E Sergi
Arvin X Perin
Jefferson H Foller
Aika O Darakjy
Cody U Oldroyd
Jeanfrancois D Morasca
Cody Q Slusarski
Sinclair U Shinko
Alejandro T Doe
Adams O Slusarski
Octavia S Dilliard
Faith F Nestle
Munro D Tollner
Ricardo M Briddick
Smith E Marrier
Murillo Y Tollner
Rodrigues J Ruta
Ashley O Glick
Silvio M Glick
Smith W Foller
IdCountryDate
1000Spain2026-07-23
1001Russia2026-08-01
1002Australia2026-08-06
1003Canada2026-07-20
1004Japan2026-08-08
1005Canada2026-07-27
1006Australia2026-07-31
1007Spain2026-07-31
1008Spain2026-07-24
1009Italy2026-08-09
1010Russia2026-08-04
1011Russia2026-08-06
1012Germany2026-08-09
1013Germany2026-07-25
1014France2026-07-29
1015Brazil2026-08-11
1016Brazil2026-08-11
1017Russia2026-08-04
1018Germany2026-07-23
1019Germany2026-08-14
1020Russia2026-08-07
1021Russia2026-07-23
1022Italy2026-08-15
1023Spain2026-08-11
1024Australia2026-08-02
1025Germany2026-08-01
1026Japan2026-08-14
1027Japan2026-08-12
1028India2026-08-05
1029Germany2026-08-02
1030Germany2026-08-02
1031Germany2026-07-20
1032Russia2026-07-21
1033France2026-08-12
1034Spain2026-08-11
1035France2026-08-16
1036Argentina2026-08-02
1037Germany2026-08-15
1038Italy2026-07-18
1039United Kingdom2026-08-07
1040United Kingdom2026-07-19
1041Japan2026-07-18
1042India2026-07-26
1043France2026-08-12
1044France2026-07-18
1045Russia2026-07-23
1046Argentina2026-07-22
1047United Kingdom2026-08-08
1048Russia2026-08-13
1049Canada2026-07-21

On-Demand Data

NameIdCountryDate
Kaitlin Z Slusarski1000Russia2026-07-29
Aruna D Venere1001Spain2026-08-16
Jennifer H Stenseth1002Canada2026-08-01
Smith F Dilliard1003Spain2026-08-03
Francesco J Albares1004United Kingdom2026-08-05
Faith F Doe1005France2026-08-14
Sinclair C Bolognia1006Argentina2026-07-21
Sinclair S Royster1007Australia2026-07-18
Morrow L Saylors1008Russia2026-08-14
Deepesh M Maclead1009Spain2026-08-12
Antonio F Caudy1010Russia2026-08-12
Alejandro G Schemmer1011Canada2026-08-16
Emily E Schemmer1012Russia2026-07-22
Izzy I Darakjy1013Italy2026-07-22
Silvio E Poquette1014United Kingdom2026-07-18
Leon G Bolognia1015India2026-07-21
Ivar L Marrier1016Germany2026-07-21
Greenwood H Waycott1017Spain2026-07-24
Emily J Ruta1018United Kingdom2026-07-22
Jennifer K Paprocki1019India2026-08-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo Q RimAustraliaElwin Sharvill RENEWAL
Greenwood Z KolmetzUnited KingdomXuxue Feng NEW
Maisha Q VocelkaRussiaElwin Sharvill PROPOSAL
Claire O RoysterArgentinaBernardo Dominic NEGOTIATION
Aditya D BriddickIndiaIvan Magalhaes UNQUALIFIED
Cody G ChuiArgentinaAmy Elsner QUALIFIED
Leja L AlbaresCanadaOnyama Limba NEW
Claire W AmigonSpainIoni Bowcher UNQUALIFIED
Misaki Z SergiItalyOnyama Limba QUALIFIED
Arvin L RimItalyXuxue Feng NEW
Murillo I ButtUnited KingdomBernardo Dominic RENEWAL
Costa X CampainItalyBernardo Dominic PROPOSAL
Clifford A PoquetteItalyAsiya Javayant UNQUALIFIED
Octavia G KolmetzIndiaXuxue Feng NEW
Francesco L RulapaughJapanAmy Elsner RENEWAL
Antonio I PerinAustraliaIvan Magalhaes UNQUALIFIED
Silvio T PoquetteArgentinaAmy Elsner NEGOTIATION
David K MacleadUnited KingdomAmy Elsner NEGOTIATION
Ashley M SaylorsJapanAsiya Javayant NEW
Maria V OstroskyBrazilAnna Fali NEW
Leja D RimJapanAsiya Javayant QUALIFIED
Johnson I WhobreyAustraliaAmy Elsner RENEWAL
Isabel X WhobreyItalyAnna Fali RENEWAL
Deepesh D RoysterCanadaOnyama Limba NEW
Deepesh X ShinkoUnited KingdomAnna Fali NEW
Wickens T FollerCanadaIoni Bowcher NEW
Julie K GlickFranceBernardo Dominic QUALIFIED
Izzy W PaprockiArgentinaAnna Fali UNQUALIFIED
Darci H SlusarskiFranceXuxue Feng NEGOTIATION
Munro U MarrierAustraliaAsiya Javayant UNQUALIFIED
Maisha J FerenczCanadaIoni Bowcher PROPOSAL
Costa S SaylorsRussiaXuxue Feng QUALIFIED
Jefferson R RutaSpainBernardo Dominic UNQUALIFIED
Silvio V SaylorsJapanAsiya Javayant UNQUALIFIED
Mayumi T MarrierBrazilAsiya Javayant RENEWAL
Leon U DarakjyAustraliaOnyama Limba PROPOSAL
Chavez M BologniaItalyAsiya Javayant UNQUALIFIED
Jefferson K ShinkoItalyBernardo Dominic NEW
Chavez F WaycottUnited KingdomXuxue Feng NEW
Claire H WieserBrazilBernardo Dominic 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>