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
Smith R DoeUnited KingdomXuxue Feng PROPOSAL
Maria R FigeroaItalyIoni Bowcher QUALIFIED
Isabel E WieserJapanIvan Magalhaes UNQUALIFIED
Aruna S BriddickAustraliaBernardo Dominic UNQUALIFIED
Ashley M ButtGermanyOnyama Limba PROPOSAL
Kaitlin D AmigonGermanyStephen Shaw NEW
Darci N MorascaRussiaXuxue Feng PROPOSAL
Greenwood W DoeSpainStephen Shaw PROPOSAL
Silvio M PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues R BologniaItalyXuxue Feng PROPOSAL
Tony C DoeRussiaBernardo Dominic UNQUALIFIED
Leon N GlickBrazilIoni Bowcher PROPOSAL
Chavez X NickaItalyOnyama Limba QUALIFIED
Smith S GlickArgentinaIoni Bowcher PROPOSAL
Izzy M PerinSpainAnna Fali UNQUALIFIED
Leon D PerinUnited KingdomAnna Fali PROPOSAL
David S AlbaresJapanStephen Shaw RENEWAL
Salvatore F SergiFranceAsiya Javayant UNQUALIFIED
Mayumi Z NestleUnited KingdomAnna Fali PROPOSAL
Aika W RoysterSpainIvan Magalhaes NEW
Cody X AlbaresBrazilAnna Fali RENEWAL
Aika P AlbaresJapanStephen Shaw QUALIFIED
Emily J NestleArgentinaElwin Sharvill RENEWAL
Adams M CampainIndiaAmy Elsner NEGOTIATION
Ashley X PerinJapanStephen Shaw NEGOTIATION
Francesco A WieserSpainXuxue Feng NEW
Antonio V DilliardIndiaIoni Bowcher QUALIFIED
Leon G WhobreyGermanyOnyama Limba NEGOTIATION
Kadeem C PaprockiSpainElwin Sharvill NEW
Aditya C PaprockiFranceAsiya Javayant NEGOTIATION
Wickens E ChuiGermanyIoni Bowcher NEGOTIATION
Kaitlin N OstroskyBrazilOnyama Limba NEGOTIATION
Francesco N MacleadSpainAsiya Javayant PROPOSAL
Claire F PoquetteCanadaAmy Elsner PROPOSAL
Leja G MaletIndiaStephen Shaw PROPOSAL
Greenwood Y GlickAustraliaAmy Elsner PROPOSAL
James K BriddickUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba B ShinkoItalyAsiya Javayant NEGOTIATION
Stacey A VenereItalyIoni Bowcher UNQUALIFIED
Maisha C RoysterIndiaOnyama Limba NEGOTIATION
Aruna P FollerArgentinaAmy Elsner QUALIFIED
Kaitlin C RulapaughJapanOnyama Limba RENEWAL
Octavia H SergiBrazilXuxue Feng PROPOSAL
Johnson E PerinUnited KingdomAsiya Javayant NEW
James Z SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Jefferson Y AmigonArgentinaBernardo Dominic RENEWAL
Julie R StockhamIndiaStephen Shaw UNQUALIFIED
Munro C RulapaughSpainAmy Elsner PROPOSAL
Alejandro K IturbideIndiaElwin Sharvill UNQUALIFIED
Silvio K VocelkaGermanyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow D OldroydJapanElwin Sharvill RENEWAL
Kaitlin G DarakjySpainOnyama Limba UNQUALIFIED
Silvio E MaletUnited KingdomBernardo Dominic PROPOSAL
Smith R OldroydJapanAsiya Javayant NEW
Adams O MarrierAustraliaIvan Magalhaes QUALIFIED
Rodrigues W WieserUnited KingdomAmy Elsner PROPOSAL
Leja Q WaycottBrazilOnyama Limba QUALIFIED
Alejandro J OldroydGermanyOnyama Limba UNQUALIFIED
Misaki X ShinkoBrazilIvan Magalhaes NEW
James M RulapaughAustraliaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford I NestleFrance2026-07-10Chemel, James L Cpa PROPOSAL8Amy Elsner
1001Nicolas T SchemmerSpain2026-06-17Chanay, Jeffrey A Esq NEGOTIATION3Stephen Shaw
1002Jones Y NestleArgentina2026-06-15Dorl, James J Esq RENEWAL49Asiya Javayant
1003Wickens Q OldroydGermany2026-07-08Commercial Press NEW53Bernardo Dominic
1004Salvatore L CampainAustralia2026-06-13Commercial Press PROPOSAL76Elwin Sharvill
1005James J BowleyCanada2026-06-18King, Christopher A Esq PROPOSAL51Ioni Bowcher
1006Arvin H MaletUnited Kingdom2026-06-28Chanay, Jeffrey A Esq NEW4Onyama Limba
1007Smith J PaprockiGermany2026-06-23Dorl, James J Esq RENEWAL85Ivan Magalhaes
1008Jeanfrancois S FigeroaBrazil2026-06-24Commercial Press RENEWAL18Amy Elsner
1009Jennifer H MaletRussia2026-07-04King, Christopher A Esq PROPOSAL40Onyama Limba
1010Maria C KolmetzCanada2026-07-11Feiner Bros QUALIFIED87Asiya Javayant
1011Silvio B GillianJapan2026-07-09Buckley Miller Wright RENEWAL86Xuxue Feng
1012Maria L SergiBrazil2026-06-23Commercial Press UNQUALIFIED97Stephen Shaw
1013Johnson K FlosiJapan2026-06-22Buckley Miller Wright UNQUALIFIED24Ioni Bowcher
1014Darci P BowleyBrazil2026-07-11Printing Dimensions QUALIFIED1Asiya Javayant
1015Izzy X BriddickGermany2026-06-18King, Christopher A Esq PROPOSAL1Xuxue Feng
1016Jefferson S ChuiSpain2026-06-25Feiner Bros NEW65Ioni Bowcher
1017Alejandro K WieserCanada2026-07-10Benton, John B Jr NEW19Xuxue Feng
1018Misaki N CaldareraBrazil2026-07-04Buckley Miller Wright QUALIFIED58Ivan Magalhaes
1019Sinclair A KolmetzArgentina2026-07-09Feltz Printing Service NEGOTIATION84Stephen Shaw
1020Morrow Z TollnerCanada2026-06-29Rousseaux, Michael Esq NEW8Asiya Javayant
1021Jefferson J WieserArgentina2026-06-16Chapman, Ross E Esq UNQUALIFIED7Ivan Magalhaes
1022James N CampainGermany2026-06-24Commercial Press QUALIFIED58Elwin Sharvill
1023David P CaldareraArgentina2026-06-15Morlong Associates RENEWAL26Onyama Limba
1024Julie K MacleadCanada2026-07-04Rangoni Of Florence PROPOSAL0Asiya Javayant
1025Wickens E CaldareraGermany2026-06-25Rangoni Of Florence RENEWAL83Xuxue Feng
1026Aika S SaylorsGermany2026-06-25Rangoni Of Florence NEGOTIATION63Amy Elsner
1027Jennifer E WaycottBrazil2026-06-17Morlong Associates QUALIFIED81Elwin Sharvill
1028Kadeem R PoquetteGermany2026-06-24Dorl, James J Esq RENEWAL68Ioni Bowcher
1029Aruna N DilliardUnited Kingdom2026-07-06Chapman, Ross E Esq UNQUALIFIED3Stephen Shaw
1030Chavez Y KuskoRussia2026-07-05Morlong Associates NEGOTIATION43Anna Fali
1031Johnson Z FerenczItaly2026-07-03Buckley Miller Wright QUALIFIED73Anna Fali
1032Arvin M BowleyBrazil2026-06-30King, Christopher A Esq NEGOTIATION85Amy Elsner
1033Tony K PerinJapan2026-06-19Feltz Printing Service NEGOTIATION83Xuxue Feng
1034Tony K GlickGermany2026-06-19Printing Dimensions NEW73Ivan Magalhaes
1035Julie T FlosiCanada2026-06-13Chemel, James L Cpa PROPOSAL9Onyama Limba
1036Jennifer M PerinUnited Kingdom2026-06-13Benton, John B Jr UNQUALIFIED98Asiya Javayant
1037Costa H ShinkoAustralia2026-06-20Rousseaux, Michael Esq PROPOSAL87Ivan Magalhaes
1038Chavez E VenereIndia2026-06-16Feiner Bros RENEWAL14Ioni Bowcher
1039Emily R PoquetteArgentina2026-06-25Dorl, James J Esq NEGOTIATION73Ioni Bowcher
1040Faith W AlbaresIndia2026-07-02Buckley Miller Wright PROPOSAL84Amy Elsner
1041Jones E FerenczGermany2026-07-07Feiner Bros NEGOTIATION66Bernardo Dominic
1042Greenwood S BriddickAustralia2026-06-27Chanay, Jeffrey A Esq PROPOSAL11Elwin Sharvill
1043Rodrigues X FlosiArgentina2026-07-09Printing Dimensions NEW30Onyama Limba
1044Alejandro W CaldareraBrazil2026-07-06Feltz Printing Service UNQUALIFIED99Xuxue Feng
1045David N StensethIndia2026-07-06Truhlar And Truhlar Attys PROPOSAL35Anna Fali
1046Wickens H DilliardGermany2026-07-10Rousseaux, Michael Esq NEW64Asiya Javayant
1047Murillo Z CampainCanada2026-06-20Printing Dimensions PROPOSAL26Onyama Limba
1048Ricardo Q GauchoArgentina2026-06-23Chemel, James L Cpa NEW79Asiya Javayant
1049Octavia X IturbideFrance2026-06-17Rousseaux, Michael Esq PROPOSAL97Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Z FlosiBrazilIvan Magalhaes QUALIFIED
Salvatore S RoysterUnited KingdomOnyama Limba RENEWAL
David C StensethItalyStephen Shaw QUALIFIED
Juan I VenereBrazilElwin Sharvill NEGOTIATION
Isabel C FerenczJapanStephen Shaw PROPOSAL
Alejandro A CaldareraFranceIoni Bowcher PROPOSAL
Leon W KuskoArgentinaIoni Bowcher PROPOSAL
Kaitlin D GlickBrazilStephen Shaw PROPOSAL
Costa V DarakjyFranceAmy Elsner UNQUALIFIED
Kadeem U KuskoIndiaXuxue Feng QUALIFIED
Jefferson V WhobreyRussiaStephen Shaw PROPOSAL
Greenwood X KuskoCanadaOnyama Limba QUALIFIED
Morrow U CaldareraArgentinaElwin Sharvill RENEWAL
Aditya K FollerFranceXuxue Feng RENEWAL
Isabel O GauchoAustraliaElwin Sharvill PROPOSAL
James B BowleySpainStephen Shaw PROPOSAL
Morrow K RulapaughCanadaStephen Shaw RENEWAL
Maisha I ChuiArgentinaAsiya Javayant QUALIFIED
Costa M MarrierGermanyStephen Shaw UNQUALIFIED
Ivar G BriddickBrazilOnyama Limba NEW
Maria W PerinItalyBernardo Dominic PROPOSAL
Murillo K CaudyBrazilIvan Magalhaes RENEWAL
Deepesh M OstroskyCanadaBernardo Dominic PROPOSAL
Jeanfrancois N DoeAustraliaXuxue Feng UNQUALIFIED
Jefferson I SaylorsItalyXuxue Feng RENEWAL
Maisha G CaudyUnited KingdomOnyama Limba RENEWAL
Leon C GauchoIndiaAmy Elsner NEW
Salvatore X MacleadArgentinaAsiya Javayant NEGOTIATION
Smith S RutaRussiaAnna Fali NEW
Jefferson W MarrierCanadaXuxue Feng UNQUALIFIED
Wickens H StockhamCanadaIvan Magalhaes NEW
Jones C InouyeUnited KingdomAnna Fali NEGOTIATION
Juan M ShinkoCanadaElwin Sharvill UNQUALIFIED
Jennifer F VenereAustraliaIoni Bowcher PROPOSAL
Aruna J FigeroaJapanAnna Fali RENEWAL
Isabel V GillianFranceAsiya Javayant UNQUALIFIED
Tony A GillianJapanIoni Bowcher NEW
Munro Z DoeUnited KingdomIoni Bowcher NEW
Munro E TollnerBrazilAsiya Javayant RENEWAL
Claire U SchemmerItalyBernardo Dominic QUALIFIED
Rodrigues G KolmetzArgentinaAnna Fali UNQUALIFIED
Maria L MacleadRussiaIoni Bowcher QUALIFIED
Maria V DarakjyAustraliaElwin Sharvill NEGOTIATION
Tony U SaylorsGermanyXuxue Feng RENEWAL
Isabel O ShinkoRussiaAsiya Javayant NEGOTIATION
Leja N NickaGermanyAmy Elsner UNQUALIFIED
Smith T CaldareraArgentinaBernardo Dominic QUALIFIED
Leja E DilliardGermanyAsiya Javayant NEGOTIATION
Octavia J CampainCanadaAmy Elsner RENEWAL
Nicolas D AlbaresSpainIoni Bowcher RENEWAL
Frozen Columns
Name
Clifford P Bolognia
Jones V Slusarski
Aruna K Gaucho
Arvin S Poquette
Antonio Y Tollner
Aika U Iturbide
Darci H Dilliard
Clifford T Amigon
Ricardo X Foller
Mujtaba M Ruta
Deepesh A Nestle
Salvatore T Kolmetz
Antonio I Oldroyd
Rodrigues G Bolognia
Wickens T Inouye
Sinclair L Schemmer
Misaki K Wieser
Clifford D Whobrey
Ricardo G Albares
Isabel J Ferencz
Cody K Poquette
Maria W Glick
Murillo L Vocelka
Kaitlin U Briddick
Sinclair N Ostrosky
Munro I Marrier
Morrow W Foller
Darci U Caudy
Darci L Briddick
Aditya J Glick
Misaki A Vocelka
Kaitlin K Foller
Ashley I Tollner
Clifford M Dilliard
Jeanfrancois L Butt
Jefferson E Slusarski
Leon B Butt
Jones W Stockham
Deepesh F Caldarera
Juan G Sergi
Aditya C Caldarera
Ricardo V Nicka
Isabel V Iturbide
Izzy G Maclead
Ivar U Royster
Cody L Gillian
Juan S Briddick
Jones Z Malet
Nicolas T Gillian
Kadeem X Glick
IdCountryDate
1000India2026-06-22
1001Spain2026-06-15
1002Russia2026-06-22
1003Argentina2026-06-14
1004United Kingdom2026-07-12
1005Brazil2026-07-02
1006Canada2026-06-13
1007Germany2026-06-18
1008Spain2026-07-06
1009Argentina2026-07-06
1010India2026-07-07
1011Japan2026-06-29
1012Russia2026-06-22
1013France2026-07-06
1014Russia2026-07-08
1015Argentina2026-06-26
1016Germany2026-07-02
1017Japan2026-07-01
1018Canada2026-06-27
1019Argentina2026-06-22
1020Spain2026-06-15
1021Canada2026-07-01
1022Japan2026-06-17
1023Spain2026-07-10
1024United Kingdom2026-06-19
1025Canada2026-07-09
1026India2026-06-17
1027Japan2026-06-17
1028Germany2026-07-02
1029India2026-06-16
1030Brazil2026-06-22
1031India2026-06-18
1032Australia2026-06-27
1033Australia2026-06-24
1034Argentina2026-06-27
1035France2026-06-20
1036Spain2026-07-04
1037Spain2026-07-02
1038Spain2026-06-19
1039Australia2026-06-14
1040Germany2026-07-03
1041Japan2026-07-06
1042Canada2026-07-05
1043Japan2026-06-28
1044United Kingdom2026-06-14
1045Spain2026-06-15
1046Spain2026-06-13
1047Spain2026-06-24
1048Brazil2026-06-19
1049Japan2026-07-07

On-Demand Data

NameIdCountryDate
Salvatore C Stockham1000Argentina2026-06-28
Maisha T Kolmetz1001Spain2026-07-09
Izzy C Stockham1002United Kingdom2026-06-26
Clifford O Waycott1003Brazil2026-07-01
Kadeem Y Bolognia1004Japan2026-07-08
Morrow N Bowley1005Australia2026-06-27
Clifford M Garufi1006Russia2026-07-05
Aruna Z Gaucho1007France2026-07-01
Francesco V Malet1008Japan2026-06-26
Darci O Figeroa1009Australia2026-06-14
Maisha A Perin1010France2026-07-05
Darci J Bowley1011Canada2026-06-27
Chavez Z Royster1012Italy2026-06-15
Greenwood R Vocelka1013Italy2026-07-04
Ashley V Malet1014Spain2026-06-14
Jones W Poquette1015Brazil2026-06-29
Isabel G Marrier1016France2026-06-18
James V Garufi1017Australia2026-06-29
Ivar Z Bowley1018Canada2026-06-19
Salvatore J Kusko1019France2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood O DilliardIndiaAnna Fali NEGOTIATION
Ashley J NickaUnited KingdomElwin Sharvill NEW
Arvin G AlbaresBrazilOnyama Limba QUALIFIED
Maisha V KuskoJapanIoni Bowcher PROPOSAL
Ashley R GlickGermanyElwin Sharvill NEW
Morrow W BriddickBrazilXuxue Feng PROPOSAL
Octavia Q VocelkaFranceAsiya Javayant NEGOTIATION
Deepesh D AlbaresFranceElwin Sharvill RENEWAL
Salvatore D StockhamItalyXuxue Feng UNQUALIFIED
Salvatore O RulapaughGermanyIoni Bowcher UNQUALIFIED
Mujtaba T FollerGermanyStephen Shaw QUALIFIED
Jefferson M KolmetzUnited KingdomIoni Bowcher RENEWAL
Julie O FollerIndiaOnyama Limba QUALIFIED
Octavia S InouyeArgentinaAsiya Javayant NEW
Chavez Z CampainAustraliaIvan Magalhaes UNQUALIFIED
Arvin G GauchoArgentinaAnna Fali PROPOSAL
Cody M PaprockiBrazilElwin Sharvill NEGOTIATION
Maria J FigeroaAustraliaAsiya Javayant NEGOTIATION
Emily M BologniaSpainElwin Sharvill QUALIFIED
Maisha L SergiSpainElwin Sharvill UNQUALIFIED
Alejandro N MarrierUnited KingdomStephen Shaw RENEWAL
Morrow V MorascaItalyAsiya Javayant NEW
Johnson N TollnerRussiaElwin Sharvill QUALIFIED
Murillo Y SaylorsIndiaAnna Fali NEGOTIATION
Rodrigues V CaldareraArgentinaXuxue Feng UNQUALIFIED
Chavez H BowleyGermanyStephen Shaw RENEWAL
Octavia U NestleCanadaAsiya Javayant RENEWAL
Jones I SaylorsUnited KingdomXuxue Feng PROPOSAL
Costa A GillianJapanOnyama Limba NEW
Claire N FigeroaCanadaOnyama Limba PROPOSAL
Antonio L DilliardAustraliaXuxue Feng PROPOSAL
Clifford H SaylorsGermanyXuxue Feng UNQUALIFIED
Salvatore E DoeSpainBernardo Dominic QUALIFIED
Ricardo O GillianCanadaAmy Elsner PROPOSAL
Aruna V WieserIndiaAnna Fali QUALIFIED
Antonio R ShinkoBrazilXuxue Feng RENEWAL
David J NestleAustraliaAsiya Javayant PROPOSAL
Alejandro O WaycottAustraliaElwin Sharvill UNQUALIFIED
Misaki N GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Adams J AlbaresRussiaXuxue Feng NEGOTIATION

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