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
Salvatore E InouyeBrazilAsiya Javayant NEW
Tony I DilliardFranceAnna Fali UNQUALIFIED
Izzy G StensethItalyIvan Magalhaes RENEWAL
Arvin L FerenczRussiaStephen Shaw UNQUALIFIED
Darci Y ShinkoBrazilIoni Bowcher NEW
Octavia J CaudyCanadaXuxue Feng RENEWAL
Chavez T RulapaughRussiaIoni Bowcher UNQUALIFIED
Octavia T MaletUnited KingdomElwin Sharvill UNQUALIFIED
Claire L MaletArgentinaStephen Shaw NEGOTIATION
Antonio Y MaletItalyAsiya Javayant NEGOTIATION
Aruna J DilliardSpainBernardo Dominic NEW
Francesco I FollerJapanIvan Magalhaes QUALIFIED
Aika M StensethFranceElwin Sharvill PROPOSAL
Jefferson M BowleyUnited KingdomIoni Bowcher PROPOSAL
Leja C WhobreyAustraliaAnna Fali UNQUALIFIED
James N RoysterGermanyAmy Elsner NEGOTIATION
Morrow V BologniaAustraliaBernardo Dominic NEW
Maria C CaudyAustraliaAmy Elsner QUALIFIED
Mujtaba A RoysterGermanyIoni Bowcher RENEWAL
Aika A KolmetzAustraliaAmy Elsner UNQUALIFIED
Aditya E DarakjyRussiaStephen Shaw PROPOSAL
Costa D RulapaughGermanyXuxue Feng RENEWAL
Mayumi K MaletCanadaElwin Sharvill NEW
Alejandro C WaycottRussiaStephen Shaw QUALIFIED
Salvatore P ChuiCanadaAsiya Javayant NEGOTIATION
Jefferson W InouyeSpainIvan Magalhaes RENEWAL
Alejandro Q MarrierItalyElwin Sharvill NEGOTIATION
Isabel Z FlosiFranceStephen Shaw NEW
Salvatore B MaletBrazilIvan Magalhaes NEW
Jennifer N SchemmerAustraliaIoni Bowcher PROPOSAL
Jennifer L WieserGermanyIvan Magalhaes NEGOTIATION
Emily P NickaArgentinaElwin Sharvill RENEWAL
Greenwood R AmigonArgentinaAsiya Javayant NEW
Silvio B PoquetteArgentinaBernardo Dominic NEW
Aruna X AmigonRussiaAnna Fali UNQUALIFIED
Greenwood G NestleBrazilIoni Bowcher UNQUALIFIED
Claire M VocelkaArgentinaAsiya Javayant NEW
Darci S BologniaAustraliaAmy Elsner UNQUALIFIED
Alejandro V GlickSpainIvan Magalhaes PROPOSAL
Kadeem K OstroskyCanadaAnna Fali NEW
Alejandro F BowleyBrazilXuxue Feng NEW
James B FlosiBrazilAmy Elsner PROPOSAL
Nicolas P GlickBrazilIvan Magalhaes UNQUALIFIED
Rodrigues A NestleItalyAnna Fali NEW
Jennifer N CaudyItalyBernardo Dominic RENEWAL
Tony Z NestleFranceOnyama Limba NEW
Darci A SergiBrazilStephen Shaw NEW
Jennifer F PoquetteItalyElwin Sharvill PROPOSAL
Julie K ButtAustraliaIoni Bowcher NEW
Ricardo J PaprockiFranceAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja N GarufiFranceStephen Shaw NEGOTIATION
Jeanfrancois J AlbaresUnited KingdomOnyama Limba RENEWAL
Emily P GillianFranceIvan Magalhaes UNQUALIFIED
Ivar Z VenereItalyAmy Elsner UNQUALIFIED
Alejandro N NestleJapanBernardo Dominic UNQUALIFIED
Aditya M NestleUnited KingdomBernardo Dominic RENEWAL
Julie D WieserRussiaAmy Elsner NEW
Mujtaba X NickaBrazilIoni Bowcher NEGOTIATION
Murillo H StensethSpainAnna Fali NEGOTIATION
Deepesh A ChuiItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson Y PaprockiFrance2026-07-20Commercial Press NEW46Elwin Sharvill
1001Kadeem J RulapaughUnited Kingdom2026-07-11Printing Dimensions QUALIFIED46Onyama Limba
1002Clifford U DilliardItaly2026-07-17King, Christopher A Esq UNQUALIFIED43Stephen Shaw
1003Leja Z NestleUnited Kingdom2026-06-27Chanay, Jeffrey A Esq UNQUALIFIED31Elwin Sharvill
1004Jefferson T KolmetzAustralia2026-07-01Dorl, James J Esq NEGOTIATION2Amy Elsner
1005Mayumi Q RulapaughBrazil2026-07-20Rangoni Of Florence QUALIFIED24Elwin Sharvill
1006Mayumi U StensethRussia2026-07-01King, Christopher A Esq UNQUALIFIED66Ivan Magalhaes
1007Cody J MarrierArgentina2026-07-06Chemel, James L Cpa QUALIFIED74Asiya Javayant
1008Mayumi J BriddickRussia2026-07-11Printing Dimensions PROPOSAL60Amy Elsner
1009Cody M GillianAustralia2026-07-11Feltz Printing Service PROPOSAL13Elwin Sharvill
1010Smith A OstroskyAustralia2026-07-14Chapman, Ross E Esq NEGOTIATION76Ioni Bowcher
1011Juan T ShinkoRussia2026-07-02Rousseaux, Michael Esq UNQUALIFIED51Onyama Limba
1012Wickens N RimGermany2026-07-05Dorl, James J Esq RENEWAL86Asiya Javayant
1013Claire E SchemmerAustralia2026-07-22Printing Dimensions PROPOSAL21Asiya Javayant
1014Isabel S StensethRussia2026-07-07Benton, John B Jr NEW74Onyama Limba
1015Rodrigues U SergiIndia2026-06-29Dorl, James J Esq QUALIFIED23Ivan Magalhaes
1016Greenwood F OldroydFrance2026-07-02Printing Dimensions RENEWAL70Ioni Bowcher
1017Leja X GlickAustralia2026-07-22Rangoni Of Florence QUALIFIED84Ivan Magalhaes
1018Johnson I ButtJapan2026-07-18Benton, John B Jr QUALIFIED29Ivan Magalhaes
1019Emily K SaylorsBrazil2026-06-25Commercial Press QUALIFIED69Onyama Limba
1020Leja U VenereCanada2026-07-18Buckley Miller Wright QUALIFIED49Asiya Javayant
1021Maria F DilliardJapan2026-07-16Chapman, Ross E Esq RENEWAL67Ivan Magalhaes
1022Adams M SaylorsFrance2026-06-27Feltz Printing Service QUALIFIED72Bernardo Dominic
1023Maria I SaylorsFrance2026-07-07Morlong Associates QUALIFIED81Elwin Sharvill
1024Morrow H GarufiUnited Kingdom2026-07-17Printing Dimensions NEGOTIATION60Bernardo Dominic
1025Izzy S GauchoJapan2026-06-26Feltz Printing Service NEGOTIATION55Amy Elsner
1026Adams N CampainBrazil2026-07-10Buckley Miller Wright NEW29Xuxue Feng
1027Jeanfrancois S RutaGermany2026-07-23Feiner Bros UNQUALIFIED68Xuxue Feng
1028Jefferson U MaletBrazil2026-07-02Feltz Printing Service QUALIFIED26Amy Elsner
1029Maria B NickaFrance2026-07-01Dorl, James J Esq NEW58Stephen Shaw
1030Tony F KuskoSpain2026-07-10King, Christopher A Esq UNQUALIFIED47Ioni Bowcher
1031Arvin P OstroskyGermany2026-07-21Dorl, James J Esq UNQUALIFIED79Asiya Javayant
1032Juan O BowleyArgentina2026-06-28Morlong Associates RENEWAL61Onyama Limba
1033Aika Y FollerBrazil2026-06-26King, Christopher A Esq QUALIFIED16Bernardo Dominic
1034Munro A TollnerCanada2026-06-28Rousseaux, Michael Esq NEGOTIATION48Ivan Magalhaes
1035Stacey C AlbaresUnited Kingdom2026-07-09Dorl, James J Esq UNQUALIFIED38Ioni Bowcher
1036Aruna J CampainBrazil2026-06-28Benton, John B Jr RENEWAL35Elwin Sharvill
1037Kadeem W OldroydRussia2026-07-18Chapman, Ross E Esq NEW88Ioni Bowcher
1038Adams W ChuiFrance2026-07-01Chanay, Jeffrey A Esq PROPOSAL51Ioni Bowcher
1039Misaki X KuskoIndia2026-07-21Feltz Printing Service NEGOTIATION26Asiya Javayant
1040Munro U KolmetzBrazil2026-07-11Morlong Associates NEW77Amy Elsner
1041Kaitlin P NickaCanada2026-07-16King, Christopher A Esq RENEWAL51Ivan Magalhaes
1042Faith X VenereIndia2026-07-05King, Christopher A Esq NEW9Ivan Magalhaes
1043Aruna F RoysterAustralia2026-07-10Chapman, Ross E Esq UNQUALIFIED94Onyama Limba
1044Claire F DoeJapan2026-07-07Rangoni Of Florence RENEWAL70Stephen Shaw
1045Morrow O FollerArgentina2026-07-04Rousseaux, Michael Esq NEW25Ivan Magalhaes
1046Kaitlin C FollerJapan2026-07-01Chemel, James L Cpa NEGOTIATION58Ivan Magalhaes
1047Claire G PerinSpain2026-07-19Rousseaux, Michael Esq RENEWAL15Stephen Shaw
1048Salvatore R CampainArgentina2026-07-11Chemel, James L Cpa NEW82Onyama Limba
1049Jones J RulapaughRussia2026-07-05Feiner Bros QUALIFIED64Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Julie B ChuiSpainStephen Shaw NEW
Silvio S CampainGermanyIvan Magalhaes PROPOSAL
Mujtaba S CampainBrazilXuxue Feng RENEWAL
Leja T WhobreyUnited KingdomAmy Elsner QUALIFIED
Octavia V BriddickUnited KingdomOnyama Limba RENEWAL
Aditya G InouyeCanadaBernardo Dominic QUALIFIED
Leja X BowleyBrazilAnna Fali QUALIFIED
Leja N FerenczFranceAnna Fali QUALIFIED
Deepesh R VocelkaBrazilIoni Bowcher UNQUALIFIED
Cody G DoeGermanyXuxue Feng QUALIFIED
Isabel Y CampainIndiaStephen Shaw RENEWAL
Salvatore U OldroydSpainIoni Bowcher NEW
David L AlbaresAustraliaIoni Bowcher NEGOTIATION
Jefferson Z RoysterCanadaElwin Sharvill UNQUALIFIED
Aditya T TollnerJapanIoni Bowcher RENEWAL
Wickens P BowleyCanadaAsiya Javayant UNQUALIFIED
Mujtaba E RulapaughIndiaBernardo Dominic NEGOTIATION
Chavez U OstroskyArgentinaOnyama Limba PROPOSAL
Aruna N PoquetteRussiaElwin Sharvill UNQUALIFIED
Chavez I WieserItalyXuxue Feng PROPOSAL
Greenwood D FerenczGermanyAsiya Javayant RENEWAL
Emily Q ShinkoFranceAmy Elsner QUALIFIED
Wickens N GauchoJapanIvan Magalhaes QUALIFIED
Jeanfrancois G AlbaresUnited KingdomIoni Bowcher QUALIFIED
Wickens L CampainFranceIvan Magalhaes QUALIFIED
Mujtaba Z RutaFranceXuxue Feng NEW
Aruna X MorascaRussiaIoni Bowcher RENEWAL
Stacey A OstroskyFranceAnna Fali NEGOTIATION
Emily J KuskoArgentinaAnna Fali QUALIFIED
Emily J OstroskyRussiaElwin Sharvill NEW
Aditya T SchemmerArgentinaAmy Elsner PROPOSAL
Jones C InouyeArgentinaIoni Bowcher QUALIFIED
Stacey F WieserRussiaIoni Bowcher NEW
Stacey Y IturbideJapanIvan Magalhaes NEW
Ricardo G GarufiIndiaAmy Elsner NEW
Izzy V OstroskyRussiaElwin Sharvill PROPOSAL
Juan A BriddickBrazilAsiya Javayant PROPOSAL
Jones G FlosiBrazilBernardo Dominic NEW
Kadeem R WaycottGermanyBernardo Dominic NEGOTIATION
Greenwood M AlbaresUnited KingdomAnna Fali NEGOTIATION
Johnson I RimAustraliaStephen Shaw RENEWAL
Aruna Q GauchoBrazilOnyama Limba RENEWAL
Wickens I StockhamArgentinaAmy Elsner QUALIFIED
Misaki Y MorascaGermanyAmy Elsner QUALIFIED
Aruna B CampainRussiaBernardo Dominic PROPOSAL
Clifford H FigeroaJapanIvan Magalhaes NEW
Greenwood X PoquetteBrazilIoni Bowcher NEGOTIATION
Jefferson C GarufiSpainIvan Magalhaes PROPOSAL
Misaki M FigeroaFranceIvan Magalhaes QUALIFIED
Ricardo X TollnerRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Jennifer I Doe
Sinclair L Wieser
Wickens T Malet
Octavia I Vocelka
Nicolas H Stenseth
Emily S Ferencz
Cody G Royster
Jefferson G Inouye
Julie G Marrier
Izzy B Paprocki
Alejandro J Poquette
Nicolas G Oldroyd
Mujtaba L Flosi
Emily U Morasca
Jeanfrancois P Gillian
Clifford A Ruta
Misaki V Stenseth
Sinclair K Vocelka
Tony X Saylors
Izzy D Amigon
Deepesh E Glick
Munro A Rim
Leja V Maclead
Rodrigues J Amigon
Juan E Saylors
Claire U Kusko
Murillo D Campain
Rodrigues B Whobrey
James H Dilliard
Emily U Kolmetz
Costa A Royster
Emily Y Malet
Julie R Poquette
Ivar K Doe
Salvatore R Saylors
Silvio J Vocelka
Adams P Gaucho
Misaki U Doe
Claire A Oldroyd
Julie E Nicka
Smith H Dilliard
Jennifer L Gaucho
Claire J Rim
Costa Z Maclead
Faith R Ruta
Nicolas X Tollner
Aditya Z Maclead
Antonio H Figeroa
Ivar A Caudy
Francesco Z Nicka
IdCountryDate
1000Brazil2026-07-13
1001Canada2026-07-11
1002United Kingdom2026-06-30
1003Japan2026-07-24
1004United Kingdom2026-07-16
1005France2026-07-02
1006India2026-07-24
1007Spain2026-07-24
1008Spain2026-07-12
1009Italy2026-07-15
1010Spain2026-07-15
1011Brazil2026-07-04
1012Argentina2026-07-21
1013Italy2026-07-18
1014Japan2026-06-25
1015Spain2026-06-25
1016Russia2026-07-04
1017India2026-07-11
1018Japan2026-07-02
1019Japan2026-07-22
1020Australia2026-07-21
1021Russia2026-07-21
1022Russia2026-07-01
1023Australia2026-07-04
1024Argentina2026-07-24
1025Spain2026-07-24
1026Australia2026-07-14
1027Canada2026-07-11
1028Australia2026-07-22
1029United Kingdom2026-07-16
1030United Kingdom2026-06-30
1031Germany2026-07-12
1032Italy2026-07-19
1033Brazil2026-06-29
1034India2026-07-01
1035Italy2026-06-29
1036Australia2026-06-25
1037Italy2026-07-10
1038Australia2026-07-01
1039Canada2026-07-24
1040Brazil2026-07-06
1041Canada2026-07-08
1042Brazil2026-07-01
1043United Kingdom2026-07-08
1044Argentina2026-06-26
1045France2026-07-19
1046Germany2026-07-24
1047Brazil2026-06-29
1048France2026-07-22
1049Canada2026-07-17

On-Demand Data

NameIdCountryDate
Leon V Ferencz1000France2026-06-29
Cody N Figeroa1001India2026-06-30
Francesco U Albares1002Brazil2026-07-15
Johnson E Maclead1003Argentina2026-07-14
Salvatore F Butt1004Canada2026-07-07
Alejandro X Gaucho1005Japan2026-06-25
Murillo I Paprocki1006India2026-07-20
Kaitlin J Maclead1007Australia2026-07-04
Ivar U Shinko1008Germany2026-07-05
Francesco R Poquette1009Japan2026-07-23
Chavez R Garufi1010Italy2026-07-23
Leja K Butt1011Russia2026-07-19
Izzy V Garufi1012Australia2026-07-05
Smith V Schemmer1013Australia2026-07-18
Chavez U Vocelka1014Brazil2026-07-01
Deepesh L Dilliard1015Russia2026-07-08
Rodrigues M Perin1016Germany2026-06-28
Murillo H Campain1017Australia2026-07-01
Mayumi R Kusko1018Germany2026-07-13
Morrow N Royster1019Argentina2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin J CaudyItalyAnna Fali PROPOSAL
Jennifer W DarakjySpainIvan Magalhaes NEW
Mujtaba P DarakjyGermanyAsiya Javayant NEGOTIATION
Emily R OstroskySpainIvan Magalhaes RENEWAL
Rodrigues E VenereAustraliaElwin Sharvill NEGOTIATION
Julie S BowleyAustraliaOnyama Limba UNQUALIFIED
Jones L MaletRussiaAmy Elsner RENEWAL
James T MorascaCanadaOnyama Limba RENEWAL
Murillo U FollerRussiaIvan Magalhaes NEGOTIATION
Jefferson U RutaJapanElwin Sharvill PROPOSAL
Johnson M OstroskyRussiaIoni Bowcher NEGOTIATION
Nicolas V RulapaughJapanAmy Elsner QUALIFIED
Emily E BowleyGermanyBernardo Dominic NEGOTIATION
Kaitlin Z SergiCanadaBernardo Dominic QUALIFIED
Alejandro L DilliardBrazilAmy Elsner QUALIFIED
Octavia W MacleadItalyOnyama Limba PROPOSAL
Jeanfrancois E KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez X VocelkaFranceElwin Sharvill QUALIFIED
Jefferson Y AlbaresCanadaIvan Magalhaes QUALIFIED
Stacey M MaletAustraliaIvan Magalhaes QUALIFIED
Tony U BologniaCanadaAsiya Javayant QUALIFIED
David A StockhamArgentinaAnna Fali UNQUALIFIED
Munro C WhobreyItalyStephen Shaw NEW
Isabel E BriddickJapanElwin Sharvill NEW
Wickens Z WhobreyItalyElwin Sharvill RENEWAL
Faith J PerinRussiaXuxue Feng UNQUALIFIED
Juan K VenereArgentinaElwin Sharvill NEW
Costa J MarrierBrazilXuxue Feng PROPOSAL
Aditya X InouyeItalyAmy Elsner PROPOSAL
Munro Z ChuiBrazilIoni Bowcher NEW
Mujtaba N DoeBrazilBernardo Dominic UNQUALIFIED
Greenwood S TollnerRussiaOnyama Limba UNQUALIFIED
Maria A NickaSpainBernardo Dominic QUALIFIED
Juan I MarrierGermanyXuxue Feng NEW
Cody L MorascaRussiaAnna Fali NEW
Kaitlin M ButtArgentinaAmy Elsner PROPOSAL
David O RoysterJapanIoni Bowcher QUALIFIED
Aruna P PerinSpainIoni Bowcher RENEWAL
Cody R OldroydRussiaBernardo Dominic RENEWAL
Leja Y WaycottAustraliaOnyama Limba 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>