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
Rodrigues S DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Leja L IturbideSpainStephen Shaw NEGOTIATION
Greenwood B MaletJapanXuxue Feng NEGOTIATION
Morrow I InouyeAustraliaIvan Magalhaes NEGOTIATION
Emily K ButtSpainIvan Magalhaes NEW
Aika U OldroydBrazilOnyama Limba QUALIFIED
Wickens T GauchoSpainAnna Fali PROPOSAL
Sinclair B PaprockiItalyStephen Shaw NEW
Kadeem R FerenczIndiaIvan Magalhaes NEGOTIATION
Jennifer W ShinkoItalyOnyama Limba RENEWAL
Murillo I BowleyCanadaAnna Fali QUALIFIED
Nicolas U MaletUnited KingdomElwin Sharvill QUALIFIED
Faith Q CaudyAustraliaElwin Sharvill NEGOTIATION
Salvatore U WaycottArgentinaBernardo Dominic RENEWAL
Arvin H FollerFranceAsiya Javayant NEW
Ashley E OldroydSpainStephen Shaw NEGOTIATION
Deepesh X GillianBrazilAsiya Javayant QUALIFIED
Faith M RutaIndiaXuxue Feng RENEWAL
Emily C MaletJapanElwin Sharvill RENEWAL
Jeanfrancois T SaylorsGermanyElwin Sharvill UNQUALIFIED
Misaki C RoysterIndiaAnna Fali QUALIFIED
Claire E BowleySpainElwin Sharvill NEGOTIATION
David I NestleRussiaAnna Fali RENEWAL
Leon H WhobreyItalyAmy Elsner UNQUALIFIED
Murillo E StensethSpainElwin Sharvill RENEWAL
Izzy E CampainJapanOnyama Limba RENEWAL
Ricardo T MacleadIndiaXuxue Feng PROPOSAL
Arvin R SaylorsIndiaAsiya Javayant UNQUALIFIED
Faith U ChuiAustraliaBernardo Dominic QUALIFIED
Alejandro G WaycottFranceElwin Sharvill NEW
Darci T TollnerCanadaAnna Fali UNQUALIFIED
Tony Y MaletItalyAnna Fali NEGOTIATION
Silvio R ShinkoCanadaIvan Magalhaes QUALIFIED
Emily V IturbideIndiaAmy Elsner RENEWAL
Johnson R VocelkaFranceIvan Magalhaes PROPOSAL
Ivar L GauchoFranceOnyama Limba UNQUALIFIED
Costa I MorascaFranceXuxue Feng UNQUALIFIED
Tony L BowleyItalyAnna Fali QUALIFIED
Smith S MaletUnited KingdomAnna Fali UNQUALIFIED
Morrow F RutaJapanAnna Fali PROPOSAL
Wickens H StensethGermanyBernardo Dominic NEW
Salvatore Q SchemmerCanadaIvan Magalhaes UNQUALIFIED
Cody Z BologniaGermanyXuxue Feng NEW
Aditya M BowleyBrazilXuxue Feng RENEWAL
Julie U VenereRussiaIoni Bowcher NEW
Tony E VocelkaIndiaAsiya Javayant NEW
Nicolas U CampainUnited KingdomIvan Magalhaes PROPOSAL
Izzy O RulapaughUnited KingdomOnyama Limba PROPOSAL
Ivar I RoysterRussiaIoni Bowcher QUALIFIED
Arvin W DarakjyJapanIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Mayumi Z FigeroaAustraliaStephen Shaw NEW
Mujtaba B BowleyUnited KingdomOnyama Limba QUALIFIED
Aruna R PerinArgentinaOnyama Limba PROPOSAL
Faith E MacleadJapanXuxue Feng NEW
Darci V BowleyJapanOnyama Limba UNQUALIFIED
Jeanfrancois Y BriddickIndiaAsiya Javayant UNQUALIFIED
Salvatore L MacleadBrazilIvan Magalhaes RENEWAL
Antonio A RulapaughCanadaAsiya Javayant RENEWAL
Maisha V CaudyUnited KingdomIoni Bowcher NEGOTIATION
Leon E StockhamBrazilAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja E PerinUnited Kingdom2026-08-16Rangoni Of Florence NEGOTIATION67Amy Elsner
1001Salvatore V NickaSpain2026-08-10Chapman, Ross E Esq RENEWAL79Xuxue Feng
1002Mujtaba O CaudyAustralia2026-08-14Chanay, Jeffrey A Esq NEGOTIATION57Xuxue Feng
1003Mujtaba M TollnerGermany2026-08-13Rousseaux, Michael Esq RENEWAL39Ivan Magalhaes
1004Chavez Z BologniaIndia2026-07-20Chapman, Ross E Esq UNQUALIFIED79Bernardo Dominic
1005Alejandro T CaudyCanada2026-08-16Buckley Miller Wright RENEWAL38Asiya Javayant
1006Mayumi F KuskoAustralia2026-07-20Feltz Printing Service QUALIFIED7Asiya Javayant
1007Kadeem P PoquetteSpain2026-08-10Chapman, Ross E Esq NEGOTIATION17Ivan Magalhaes
1008Arvin U GillianBrazil2026-08-07King, Christopher A Esq QUALIFIED29Xuxue Feng
1009Costa X BriddickBrazil2026-07-21Commercial Press QUALIFIED71Ioni Bowcher
1010Clifford Z RutaIndia2026-07-26Feiner Bros QUALIFIED83Xuxue Feng
1011Silvio J DoeAustralia2026-08-13Buckley Miller Wright QUALIFIED99Ivan Magalhaes
1012Sinclair T DoeSpain2026-07-21Truhlar And Truhlar Attys QUALIFIED33Asiya Javayant
1013Ricardo W CampainUnited Kingdom2026-07-29Commercial Press NEW21Amy Elsner
1014Johnson N AmigonJapan2026-07-26Feiner Bros NEW55Onyama Limba
1015Mujtaba B DarakjyUnited Kingdom2026-07-26Chanay, Jeffrey A Esq QUALIFIED28Ivan Magalhaes
1016Kadeem V VocelkaUnited Kingdom2026-07-26Morlong Associates RENEWAL35Anna Fali
1017Francesco D CampainAustralia2026-08-10Commercial Press NEW35Asiya Javayant
1018Juan I FigeroaRussia2026-08-11Truhlar And Truhlar Attys NEGOTIATION66Ioni Bowcher
1019Alejandro D DilliardArgentina2026-07-21Truhlar And Truhlar Attys NEGOTIATION85Bernardo Dominic
1020James G StensethArgentina2026-08-03Chemel, James L Cpa NEGOTIATION52Xuxue Feng
1021Maria Y KuskoJapan2026-07-29Feiner Bros PROPOSAL65Ioni Bowcher
1022Costa D BriddickBrazil2026-07-24Chapman, Ross E Esq NEW2Xuxue Feng
1023Francesco W SchemmerJapan2026-08-04Buckley Miller Wright RENEWAL52Stephen Shaw
1024Wickens K FerenczUnited Kingdom2026-07-30Dorl, James J Esq UNQUALIFIED41Onyama Limba
1025Isabel U ShinkoUnited Kingdom2026-07-29Chapman, Ross E Esq RENEWAL62Stephen Shaw
1026Kaitlin W CampainItaly2026-07-27Chapman, Ross E Esq PROPOSAL13Stephen Shaw
1027David N RimIndia2026-08-15Morlong Associates NEGOTIATION35Elwin Sharvill
1028Wickens D MaletRussia2026-08-06Chanay, Jeffrey A Esq NEW78Xuxue Feng
1029Octavia P GarufiBrazil2026-08-02Buckley Miller Wright NEGOTIATION28Onyama Limba
1030Leon P MaletIndia2026-08-10Feltz Printing Service NEGOTIATION17Asiya Javayant
1031Faith Z NestleGermany2026-07-26Chemel, James L Cpa QUALIFIED82Stephen Shaw
1032Stacey S DilliardBrazil2026-07-26Printing Dimensions QUALIFIED27Onyama Limba
1033Tony I VenereBrazil2026-08-06Printing Dimensions NEGOTIATION8Xuxue Feng
1034Rodrigues J DoeRussia2026-07-24King, Christopher A Esq QUALIFIED54Asiya Javayant
1035Juan E DoeBrazil2026-08-03Buckley Miller Wright UNQUALIFIED45Anna Fali
1036Tony X NickaArgentina2026-08-09Commercial Press NEGOTIATION14Bernardo Dominic
1037Aruna X ChuiIndia2026-08-13Commercial Press QUALIFIED62Ioni Bowcher
1038Ashley O GillianCanada2026-07-26Rangoni Of Florence PROPOSAL22Xuxue Feng
1039Wickens U BologniaUnited Kingdom2026-07-23Dorl, James J Esq NEW90Ioni Bowcher
1040Jones P FerenczItaly2026-07-25Printing Dimensions NEGOTIATION38Ivan Magalhaes
1041Maria D OldroydIndia2026-07-31Commercial Press RENEWAL28Stephen Shaw
1042Ricardo I RulapaughFrance2026-08-01Feiner Bros NEW13Xuxue Feng
1043Ricardo Q GlickIndia2026-08-17Truhlar And Truhlar Attys NEW43Elwin Sharvill
1044Darci W GarufiFrance2026-07-25Feiner Bros RENEWAL23Ivan Magalhaes
1045David B IturbideGermany2026-07-24Truhlar And Truhlar Attys RENEWAL70Asiya Javayant
1046Wickens P PaprockiGermany2026-08-16Rangoni Of Florence PROPOSAL73Amy Elsner
1047Maisha W OstroskyArgentina2026-08-03Feltz Printing Service NEW23Bernardo Dominic
1048Ivar N ButtUnited Kingdom2026-08-17Chapman, Ross E Esq PROPOSAL10Amy Elsner
1049Maria Y WhobreyBrazil2026-07-26Morlong Associates PROPOSAL36Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki Z MarrierItalyOnyama Limba PROPOSAL
Murillo K FigeroaArgentinaElwin Sharvill NEW
Claire K GauchoUnited KingdomBernardo Dominic RENEWAL
Morrow I PoquetteGermanyIvan Magalhaes UNQUALIFIED
Maisha O GlickFranceStephen Shaw NEGOTIATION
Murillo A MaletSpainAsiya Javayant RENEWAL
Chavez J RutaItalyAnna Fali PROPOSAL
Izzy J GillianBrazilOnyama Limba NEGOTIATION
Silvio S BowleyArgentinaStephen Shaw UNQUALIFIED
Munro X NestleArgentinaElwin Sharvill UNQUALIFIED
Claire L PoquetteUnited KingdomIoni Bowcher NEW
Maria B RutaFranceAmy Elsner UNQUALIFIED
Mujtaba A KolmetzSpainIvan Magalhaes NEW
Emily V WhobreyJapanAnna Fali NEGOTIATION
Murillo R RulapaughItalyAmy Elsner PROPOSAL
Greenwood P DoeGermanyXuxue Feng UNQUALIFIED
Silvio M GlickCanadaAnna Fali NEW
Darci N PaprockiUnited KingdomBernardo Dominic NEW
Kaitlin M MacleadCanadaIvan Magalhaes NEW
Smith J MaletItalyXuxue Feng QUALIFIED
Aika F BowleyArgentinaIvan Magalhaes PROPOSAL
Costa T WieserJapanIvan Magalhaes RENEWAL
Adams K GlickJapanIvan Magalhaes NEGOTIATION
Kaitlin W DilliardRussiaAmy Elsner NEGOTIATION
Aditya M SchemmerGermanyAmy Elsner PROPOSAL
Claire F OldroydSpainAmy Elsner QUALIFIED
Costa L NestleRussiaElwin Sharvill UNQUALIFIED
Alejandro Z RulapaughArgentinaAsiya Javayant NEW
Arvin J RutaUnited KingdomBernardo Dominic RENEWAL
Stacey R KuskoGermanyIvan Magalhaes RENEWAL
Ivar K MarrierGermanyXuxue Feng NEW
Nicolas U MarrierArgentinaIvan Magalhaes PROPOSAL
Wickens Z BologniaCanadaAsiya Javayant RENEWAL
Greenwood E AlbaresArgentinaXuxue Feng PROPOSAL
Ivar R DoeUnited KingdomBernardo Dominic NEGOTIATION
Francesco B WhobreyBrazilOnyama Limba UNQUALIFIED
Nicolas C NickaAustraliaIvan Magalhaes NEW
Jefferson L MaletBrazilOnyama Limba UNQUALIFIED
Aruna T CampainItalyOnyama Limba NEW
Murillo F CaudyBrazilAsiya Javayant NEW
Aditya L FigeroaRussiaBernardo Dominic QUALIFIED
Juan I VocelkaAustraliaOnyama Limba PROPOSAL
Leja Q PoquetteIndiaIvan Magalhaes NEGOTIATION
Stacey L KolmetzBrazilElwin Sharvill UNQUALIFIED
Maria Z SergiUnited KingdomBernardo Dominic RENEWAL
Morrow X FlosiGermanyBernardo Dominic RENEWAL
Darci X CampainGermanyStephen Shaw PROPOSAL
Aika C PoquetteJapanOnyama Limba NEW
Francesco U FerenczArgentinaXuxue Feng UNQUALIFIED
Jefferson E GillianIndiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Munro O Foller
Aruna T Bolognia
Misaki I Albares
Munro M Inouye
Izzy M Doe
Stacey L Maclead
Maria H Perin
Jeanfrancois H Bolognia
Kadeem P Marrier
Tony C Gaucho
Mujtaba Z Malet
Adams V Nestle
Adams D Poquette
Murillo Q Caudy
Adams S Marrier
Chavez O Venere
Greenwood U Waycott
Kadeem J Flosi
Francesco V Caldarera
Maisha F Kusko
Leja T Poquette
Ivar B Rim
Ivar T Darakjy
Jefferson O Rim
Octavia E Rim
James I Inouye
Kadeem Y Bolognia
Faith T Perin
Johnson W Caudy
Maria G Royster
Ashley I Maclead
Tony L Ostrosky
Silvio L Ruta
Kadeem J Venere
Stacey F Malet
Aika T Oldroyd
Faith I Foller
Francesco L Amigon
Aruna G Perin
Costa H Saylors
Leon Z Nestle
Murillo T Dilliard
Greenwood R Dilliard
Ricardo V Doe
Isabel B Garufi
Leon K Caldarera
Aika X Ostrosky
Adams F Malet
Wickens Z Malet
Aditya U Sergi
IdCountryDate
1000Italy2026-08-12
1001Argentina2026-07-29
1002Germany2026-07-29
1003United Kingdom2026-08-04
1004Spain2026-07-27
1005United Kingdom2026-08-09
1006Russia2026-08-05
1007Japan2026-07-24
1008Italy2026-08-08
1009Australia2026-08-05
1010Japan2026-07-23
1011United Kingdom2026-07-30
1012Germany2026-08-04
1013Russia2026-08-07
1014United Kingdom2026-07-25
1015Argentina2026-07-24
1016Russia2026-08-11
1017Argentina2026-08-04
1018United Kingdom2026-08-15
1019India2026-07-28
1020Russia2026-08-06
1021France2026-08-14
1022Italy2026-07-27
1023Russia2026-07-24
1024Brazil2026-08-15
1025Italy2026-08-16
1026Argentina2026-07-22
1027Australia2026-08-07
1028Australia2026-08-09
1029Australia2026-08-01
1030Brazil2026-07-28
1031Spain2026-08-12
1032Brazil2026-07-27
1033Brazil2026-08-10
1034Germany2026-07-27
1035Argentina2026-08-10
1036India2026-08-04
1037India2026-07-31
1038Brazil2026-07-23
1039France2026-08-13
1040Brazil2026-07-28
1041Japan2026-08-07
1042Japan2026-08-08
1043Brazil2026-07-20
1044Canada2026-07-19
1045Canada2026-08-16
1046Spain2026-08-16
1047Argentina2026-08-11
1048Brazil2026-08-15
1049Australia2026-08-17

On-Demand Data

NameIdCountryDate
Ivar I Gillian1000France2026-07-28
Maria R Saylors1001Russia2026-08-16
Murillo L Rulapaugh1002United Kingdom2026-08-08
Ivar H Saylors1003Japan2026-07-21
Murillo M Paprocki1004United Kingdom2026-08-14
Jefferson J Malet1005Canada2026-08-16
David Y Inouye1006Japan2026-08-03
Claire C Saylors1007France2026-07-26
Ivar O Nestle1008Australia2026-07-24
Aruna J Ruta1009Argentina2026-08-04
Leon K Saylors1010Argentina2026-07-19
Francesco J Maclead1011Russia2026-07-23
Adams K Poquette1012Germany2026-07-22
Ricardo W Darakjy1013Brazil2026-08-08
Morrow I Kolmetz1014United Kingdom2026-08-13
Jennifer K Ostrosky1015Argentina2026-07-20
Kadeem X Campain1016France2026-07-22
Izzy B Shinko1017United Kingdom2026-08-12
Emily U Kolmetz1018Brazil2026-07-30
Silvio Y Malet1019India2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens C VenereJapanAsiya Javayant NEGOTIATION
Mujtaba B IturbideIndiaIvan Magalhaes PROPOSAL
Johnson L GarufiFranceOnyama Limba QUALIFIED
Chavez W ShinkoIndiaIoni Bowcher UNQUALIFIED
David D IturbideItalyXuxue Feng PROPOSAL
David J DarakjyItalyElwin Sharvill UNQUALIFIED
Wickens Z DarakjyCanadaIoni Bowcher NEW
Aditya A FigeroaFranceXuxue Feng QUALIFIED
Izzy W CaudyFranceAnna Fali RENEWAL
Murillo P GlickRussiaStephen Shaw UNQUALIFIED
Aika S MacleadGermanyStephen Shaw NEW
Leja O RimFranceElwin Sharvill QUALIFIED
Ricardo C FollerBrazilElwin Sharvill NEGOTIATION
Silvio Y ButtIndiaIoni Bowcher RENEWAL
Aika F OldroydGermanyAmy Elsner RENEWAL
Kadeem Z CampainAustraliaElwin Sharvill QUALIFIED
Kadeem Q FerenczAustraliaBernardo Dominic UNQUALIFIED
Julie A DarakjyRussiaAnna Fali PROPOSAL
Smith Y FigeroaItalyAsiya Javayant NEW
Maisha T AmigonRussiaAsiya Javayant NEGOTIATION
Sinclair D MorascaCanadaOnyama Limba NEGOTIATION
Tony R RimArgentinaAsiya Javayant NEGOTIATION
Kaitlin D AlbaresIndiaAmy Elsner NEW
Jeanfrancois N PoquetteFranceAmy Elsner QUALIFIED
Clifford C RutaIndiaOnyama Limba RENEWAL
Maria R RoysterSpainAsiya Javayant PROPOSAL
David N MorascaAustraliaBernardo Dominic QUALIFIED
Stacey W IturbideBrazilIoni Bowcher NEW
Jeanfrancois L FigeroaArgentinaAnna Fali RENEWAL
Johnson Y ShinkoUnited KingdomOnyama Limba RENEWAL
Emily P RimAustraliaOnyama Limba RENEWAL
Juan X SchemmerArgentinaOnyama Limba QUALIFIED
Murillo E VocelkaJapanAmy Elsner NEW
Rodrigues C PoquetteAustraliaStephen Shaw QUALIFIED
Chavez T OstroskyJapanAmy Elsner RENEWAL
Mayumi Z ChuiCanadaBernardo Dominic QUALIFIED
Jeanfrancois O RimSpainAmy Elsner QUALIFIED
Misaki S GillianGermanyIoni Bowcher QUALIFIED
David R CaudyItalyIoni Bowcher PROPOSAL
Munro X SaylorsIndiaStephen Shaw 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>