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
Ivar B NickaJapanBernardo Dominic RENEWAL
Johnson M WieserJapanOnyama Limba NEGOTIATION
Jeanfrancois B PerinJapanElwin Sharvill NEW
Smith K GarufiArgentinaBernardo Dominic PROPOSAL
Kadeem C CampainItalyAsiya Javayant PROPOSAL
Salvatore W OstroskyGermanyStephen Shaw UNQUALIFIED
Maria D MaletUnited KingdomAmy Elsner UNQUALIFIED
Clifford E IturbideIndiaAnna Fali UNQUALIFIED
Francesco T ChuiBrazilIoni Bowcher RENEWAL
Ivar B CaudyArgentinaBernardo Dominic UNQUALIFIED
Tony J GarufiCanadaAmy Elsner NEGOTIATION
Aruna V CaldareraAustraliaStephen Shaw UNQUALIFIED
Munro P GillianFranceIvan Magalhaes PROPOSAL
Maria Q SchemmerUnited KingdomAnna Fali PROPOSAL
Juan H RulapaughCanadaAsiya Javayant NEGOTIATION
Arvin X MacleadFranceElwin Sharvill PROPOSAL
Alejandro A FollerArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois V RoysterIndiaElwin Sharvill NEGOTIATION
Maisha O BriddickRussiaXuxue Feng NEW
Smith U DoeJapanIoni Bowcher NEGOTIATION
Deepesh J WhobreyJapanAmy Elsner NEW
Aika I KolmetzBrazilElwin Sharvill QUALIFIED
Francesco P FlosiCanadaAmy Elsner RENEWAL
Kadeem T PerinCanadaAsiya Javayant PROPOSAL
James C ShinkoSpainIvan Magalhaes RENEWAL
Kadeem Y RulapaughGermanyIoni Bowcher QUALIFIED
Smith P BowleyAustraliaOnyama Limba NEGOTIATION
Greenwood H BriddickFranceAsiya Javayant UNQUALIFIED
Stacey R NickaJapanAmy Elsner UNQUALIFIED
Clifford G DilliardIndiaAsiya Javayant NEW
Leja O SergiRussiaAsiya Javayant NEGOTIATION
Deepesh M NestleRussiaBernardo Dominic NEGOTIATION
Chavez M DilliardRussiaAnna Fali UNQUALIFIED
Greenwood X IturbideCanadaStephen Shaw NEGOTIATION
Aruna G KuskoIndiaIvan Magalhaes NEW
Francesco M BologniaArgentinaElwin Sharvill PROPOSAL
Faith Q PerinRussiaElwin Sharvill QUALIFIED
Clifford C RoysterFranceIvan Magalhaes NEGOTIATION
Claire X GarufiIndiaIoni Bowcher PROPOSAL
Emily Q FerenczCanadaIvan Magalhaes UNQUALIFIED
Smith R VocelkaBrazilAmy Elsner RENEWAL
Jefferson M PaprockiSpainIvan Magalhaes UNQUALIFIED
Greenwood A GauchoBrazilIvan Magalhaes QUALIFIED
Tony F IturbideSpainIoni Bowcher NEGOTIATION
Silvio T RulapaughAustraliaXuxue Feng RENEWAL
Jefferson A BologniaUnited KingdomOnyama Limba UNQUALIFIED
Jones B MacleadCanadaAnna Fali NEW
Costa K CampainSpainIvan Magalhaes NEGOTIATION
Mayumi M DarakjyJapanIoni Bowcher PROPOSAL
James W KuskoGermanyIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Stacey X InouyeBrazilBernardo Dominic RENEWAL
James F VenereCanadaXuxue Feng NEGOTIATION
Smith W PerinBrazilAsiya Javayant RENEWAL
Izzy I SchemmerIndiaAsiya Javayant UNQUALIFIED
Rodrigues G OldroydGermanyStephen Shaw QUALIFIED
Francesco X IturbideRussiaElwin Sharvill RENEWAL
Sinclair Q MaletRussiaAsiya Javayant RENEWAL
Francesco O ShinkoSpainAnna Fali RENEWAL
Smith S MorascaGermanyStephen Shaw NEGOTIATION
Silvio L FigeroaFranceBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa D GillianRussia2026-08-15Chemel, James L Cpa RENEWAL82Asiya Javayant
1001David H GauchoUnited Kingdom2026-08-23Dorl, James J Esq RENEWAL52Amy Elsner
1002Morrow C RimCanada2026-08-06Rousseaux, Michael Esq RENEWAL24Asiya Javayant
1003Adams F OstroskyBrazil2026-08-06Commercial Press PROPOSAL45Ivan Magalhaes
1004David K MaletRussia2026-08-23Buckley Miller Wright RENEWAL18Bernardo Dominic
1005Jefferson N TollnerCanada2026-08-19Dorl, James J Esq NEW76Ivan Magalhaes
1006Ashley L RimUnited Kingdom2026-08-30Truhlar And Truhlar Attys UNQUALIFIED81Stephen Shaw
1007Nicolas E ChuiSpain2026-08-19Chapman, Ross E Esq UNQUALIFIED83Asiya Javayant
1008Jennifer K WaycottSpain2026-08-30Buckley Miller Wright QUALIFIED92Stephen Shaw
1009Claire C VenereItaly2026-08-04Chemel, James L Cpa QUALIFIED15Bernardo Dominic
1010Rodrigues S MaletJapan2026-08-15Benton, John B Jr QUALIFIED37Stephen Shaw
1011Antonio A ShinkoJapan2026-09-01Rousseaux, Michael Esq PROPOSAL70Anna Fali
1012Kadeem O WaycottBrazil2026-08-04Feltz Printing Service UNQUALIFIED40Elwin Sharvill
1013Misaki T TollnerCanada2026-08-29Morlong Associates NEW93Anna Fali
1014Cody G StensethItaly2026-08-28Chemel, James L Cpa NEGOTIATION10Onyama Limba
1015Adams X KuskoSpain2026-08-18Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1016Stacey M ButtAustralia2026-08-27Rangoni Of Florence PROPOSAL53Ioni Bowcher
1017Ivar M MacleadAustralia2026-08-07Chemel, James L Cpa UNQUALIFIED62Ivan Magalhaes
1018Munro V StockhamCanada2026-08-16Chapman, Ross E Esq NEW40Xuxue Feng
1019Antonio Y FlosiRussia2026-08-19King, Christopher A Esq PROPOSAL39Elwin Sharvill
1020Stacey M InouyeGermany2026-08-30Commercial Press QUALIFIED96Stephen Shaw
1021Julie C BologniaRussia2026-08-06Commercial Press NEGOTIATION37Xuxue Feng
1022Darci E StensethUnited Kingdom2026-08-20Commercial Press NEGOTIATION41Ivan Magalhaes
1023Leja E NickaSpain2026-09-01King, Christopher A Esq QUALIFIED95Ioni Bowcher
1024Salvatore O GillianUnited Kingdom2026-08-19Morlong Associates NEW67Xuxue Feng
1025Darci K InouyeFrance2026-08-24Feltz Printing Service NEGOTIATION24Amy Elsner
1026Salvatore Z PoquetteItaly2026-08-20Chanay, Jeffrey A Esq UNQUALIFIED46Asiya Javayant
1027Antonio M StockhamSpain2026-09-01Printing Dimensions QUALIFIED43Amy Elsner
1028Leon Z StockhamAustralia2026-08-13Feltz Printing Service QUALIFIED87Xuxue Feng
1029Rodrigues D RutaBrazil2026-08-06King, Christopher A Esq NEGOTIATION19Stephen Shaw
1030Greenwood V KolmetzGermany2026-08-07Feltz Printing Service UNQUALIFIED7Ioni Bowcher
1031Salvatore I PoquetteBrazil2026-08-29Buckley Miller Wright QUALIFIED3Amy Elsner
1032Mayumi B AmigonFrance2026-08-29Dorl, James J Esq UNQUALIFIED52Asiya Javayant
1033Stacey Y NestleBrazil2026-08-16Benton, John B Jr PROPOSAL50Onyama Limba
1034Leja D FollerIndia2026-08-24Chemel, James L Cpa NEGOTIATION61Xuxue Feng
1035Tony V GlickBrazil2026-08-08Buckley Miller Wright NEGOTIATION47Amy Elsner
1036Arvin T WieserGermany2026-08-15King, Christopher A Esq PROPOSAL10Onyama Limba
1037Mayumi Q CampainGermany2026-08-04Chanay, Jeffrey A Esq NEW34Asiya Javayant
1038Mujtaba L MarrierIndia2026-08-14Morlong Associates RENEWAL0Stephen Shaw
1039Smith U WieserArgentina2026-08-20Feiner Bros UNQUALIFIED77Bernardo Dominic
1040Costa J StensethArgentina2026-08-28Feiner Bros QUALIFIED12Asiya Javayant
1041Alejandro N ChuiCanada2026-08-08Morlong Associates RENEWAL84Asiya Javayant
1042Sinclair J ShinkoSpain2026-09-02Chapman, Ross E Esq NEW66Onyama Limba
1043James S RoysterItaly2026-08-28Buckley Miller Wright RENEWAL67Ivan Magalhaes
1044Smith U MarrierArgentina2026-08-28Chapman, Ross E Esq NEGOTIATION41Ivan Magalhaes
1045Ricardo R MarrierGermany2026-08-31Dorl, James J Esq UNQUALIFIED83Ioni Bowcher
1046Morrow Y KolmetzAustralia2026-08-26Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1047Leja N PaprockiUnited Kingdom2026-08-17Truhlar And Truhlar Attys UNQUALIFIED75Stephen Shaw
1048Kaitlin W GauchoItaly2026-08-10Dorl, James J Esq NEW66Asiya Javayant
1049Greenwood D StensethJapan2026-08-16Feltz Printing Service UNQUALIFIED80Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maisha K ChuiArgentinaAnna Fali PROPOSAL
Mujtaba U FlosiIndiaElwin Sharvill QUALIFIED
Murillo O FollerBrazilXuxue Feng UNQUALIFIED
Deepesh T IturbideArgentinaIoni Bowcher NEGOTIATION
Jennifer S CaudySpainBernardo Dominic PROPOSAL
Johnson Q StockhamArgentinaAnna Fali NEW
Nicolas W RimSpainIoni Bowcher NEGOTIATION
Murillo S MorascaJapanBernardo Dominic PROPOSAL
Clifford K PoquetteRussiaBernardo Dominic NEGOTIATION
Murillo Z CampainIndiaIvan Magalhaes NEW
Julie U SchemmerArgentinaAsiya Javayant UNQUALIFIED
Izzy K WhobreyArgentinaAmy Elsner RENEWAL
Clifford Y FerenczGermanyXuxue Feng NEW
Stacey B CaudyUnited KingdomXuxue Feng NEW
Emily R NestleItalyBernardo Dominic NEGOTIATION
Ricardo X PaprockiIndiaAmy Elsner RENEWAL
Arvin I FlosiAustraliaIvan Magalhaes QUALIFIED
Costa C VocelkaFranceStephen Shaw NEGOTIATION
Rodrigues D SergiCanadaElwin Sharvill QUALIFIED
Darci Z RoysterCanadaOnyama Limba NEW
Maria M ChuiAustraliaOnyama Limba NEGOTIATION
Costa V KuskoBrazilXuxue Feng RENEWAL
Salvatore U SaylorsRussiaOnyama Limba RENEWAL
Ashley Y VocelkaFranceElwin Sharvill RENEWAL
Johnson X RulapaughSpainElwin Sharvill NEW
Costa P FigeroaIndiaOnyama Limba NEGOTIATION
Silvio D IturbideJapanIoni Bowcher QUALIFIED
Alejandro W OldroydArgentinaOnyama Limba QUALIFIED
Antonio C SergiFranceXuxue Feng NEGOTIATION
Misaki C AlbaresGermanyAsiya Javayant NEW
Leon I FigeroaCanadaStephen Shaw PROPOSAL
Alejandro O CaldareraIndiaElwin Sharvill RENEWAL
Munro G OstroskySpainOnyama Limba QUALIFIED
Chavez I OstroskyIndiaElwin Sharvill QUALIFIED
Arvin J GauchoBrazilAmy Elsner PROPOSAL
Izzy O DilliardRussiaAnna Fali NEGOTIATION
Jones D DilliardIndiaElwin Sharvill UNQUALIFIED
Mayumi D RimJapanOnyama Limba NEW
Leon J SergiItalyElwin Sharvill UNQUALIFIED
Jeanfrancois V CaudyJapanOnyama Limba RENEWAL
James Q DoeIndiaAnna Fali RENEWAL
Clifford G PoquetteSpainXuxue Feng UNQUALIFIED
Emily Q WaycottIndiaIoni Bowcher PROPOSAL
Aditya T SergiBrazilAmy Elsner PROPOSAL
Jeanfrancois I OstroskyUnited KingdomAsiya Javayant PROPOSAL
Deepesh T VocelkaRussiaAnna Fali UNQUALIFIED
Smith Q MaletUnited KingdomStephen Shaw PROPOSAL
Isabel V NickaIndiaAnna Fali RENEWAL
Antonio W OstroskyRussiaAsiya Javayant RENEWAL
Rodrigues M GillianJapanOnyama Limba NEW
Frozen Columns
Name
Clifford P Stenseth
Isabel R Campain
Alejandro L Albares
James F Darakjy
Ashley C Darakjy
Maisha X Campain
Adams N Kusko
Greenwood Y Glick
Mujtaba N Doe
Jefferson S Ferencz
Jeanfrancois H Marrier
Murillo Q Amigon
Jones W Whobrey
Claire M Ostrosky
David F Royster
Leon M Gillian
Kaitlin C Nestle
Kadeem D Malet
Johnson T Glick
Ashley B Maclead
Adams M Briddick
Octavia D Figeroa
Alejandro J Glick
Octavia C Dilliard
Alejandro L Royster
Nicolas D Garufi
Nicolas X Nicka
Faith C Darakjy
Darci W Paprocki
Sinclair N Tollner
Ricardo Z Stockham
Johnson H Schemmer
Greenwood B Inouye
Salvatore T Vocelka
Julie F Chui
Octavia F Malet
Faith F Nestle
Izzy Y Caudy
Cody U Ruta
Darci G Inouye
Greenwood G Campain
Jeanfrancois D Albares
Jeanfrancois S Figeroa
Darci A Oldroyd
Deepesh A Albares
Darci L Schemmer
Jones G Rulapaugh
Clifford T Gaucho
Jefferson Q Inouye
Francesco N Bowley
IdCountryDate
1000Germany2026-08-15
1001United Kingdom2026-08-09
1002Spain2026-08-28
1003Germany2026-08-09
1004Australia2026-08-30
1005Canada2026-09-02
1006Argentina2026-08-04
1007Germany2026-08-18
1008Spain2026-08-23
1009Italy2026-08-10
1010Russia2026-08-06
1011Russia2026-08-09
1012Russia2026-08-23
1013Spain2026-08-20
1014United Kingdom2026-09-02
1015Brazil2026-09-02
1016India2026-08-16
1017Japan2026-08-27
1018Canada2026-08-11
1019France2026-08-15
1020Australia2026-08-04
1021Canada2026-08-22
1022Australia2026-08-24
1023Germany2026-08-05
1024Japan2026-08-06
1025Canada2026-08-20
1026Canada2026-08-26
1027Canada2026-08-16
1028Russia2026-08-28
1029Russia2026-08-26
1030Russia2026-08-24
1031Argentina2026-08-25
1032Argentina2026-08-14
1033Germany2026-08-17
1034Brazil2026-08-10
1035Spain2026-08-23
1036Japan2026-08-30
1037Spain2026-08-29
1038United Kingdom2026-08-21
1039Italy2026-08-13
1040France2026-09-01
1041Argentina2026-08-06
1042United Kingdom2026-08-06
1043Australia2026-08-31
1044Brazil2026-08-23
1045India2026-08-30
1046France2026-09-02
1047Canada2026-08-09
1048United Kingdom2026-08-25
1049Germany2026-08-26

On-Demand Data

NameIdCountryDate
Ricardo J Ferencz1000Canada2026-08-04
Maria W Shinko1001Spain2026-08-28
Emily J Ferencz1002Japan2026-08-09
Jennifer S Caudy1003India2026-08-08
Antonio T Amigon1004India2026-08-11
Faith I Flosi1005India2026-08-04
Rodrigues N Rim1006France2026-08-24
Jeanfrancois K Poquette1007India2026-08-20
Claire Y Gaucho1008Brazil2026-08-11
Tony L Sergi1009Canada2026-08-28
Clifford V Saylors1010India2026-08-22
Munro R Malet1011Spain2026-08-15
Julie P Poquette1012India2026-08-28
Rodrigues O Campain1013France2026-08-17
Kadeem X Iturbide1014Spain2026-08-21
Maria O Royster1015Canada2026-08-08
Costa W Chui1016France2026-08-22
Adams S Campain1017Australia2026-08-11
Mujtaba X Flosi1018Canada2026-08-06
Salvatore N Garufi1019Japan2026-08-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci J OldroydIndiaOnyama Limba UNQUALIFIED
Juan J CampainCanadaAmy Elsner QUALIFIED
Antonio Z MaletIndiaElwin Sharvill NEGOTIATION
James Z CaudyArgentinaBernardo Dominic QUALIFIED
Juan T SlusarskiCanadaAnna Fali UNQUALIFIED
Antonio O MaletCanadaOnyama Limba NEGOTIATION
Morrow F GarufiSpainAmy Elsner NEGOTIATION
Aruna K InouyeArgentinaBernardo Dominic NEW
Juan K FollerItalyAnna Fali NEW
Tony V BologniaRussiaBernardo Dominic PROPOSAL
Izzy B InouyeSpainAmy Elsner NEGOTIATION
Clifford C KuskoUnited KingdomXuxue Feng NEW
James M ButtGermanyStephen Shaw NEGOTIATION
Octavia B StockhamJapanIoni Bowcher UNQUALIFIED
Smith G BowleyIndiaStephen Shaw UNQUALIFIED
Antonio I GarufiBrazilStephen Shaw UNQUALIFIED
Juan W PoquetteSpainIvan Magalhaes UNQUALIFIED
Smith B PaprockiBrazilAmy Elsner PROPOSAL
Murillo Y StensethRussiaElwin Sharvill NEW
Kadeem H PerinBrazilXuxue Feng QUALIFIED
Murillo T SaylorsAustraliaBernardo Dominic RENEWAL
Stacey H GarufiCanadaAmy Elsner UNQUALIFIED
Salvatore N KuskoArgentinaIoni Bowcher NEW
Morrow T FlosiSpainOnyama Limba PROPOSAL
Alejandro A MaletItalyAnna Fali QUALIFIED
Salvatore Q MorascaJapanAsiya Javayant NEGOTIATION
Chavez S SergiRussiaElwin Sharvill NEW
Leon T InouyeArgentinaBernardo Dominic NEW
Morrow M RutaUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois D MaletRussiaAmy Elsner NEW
Wickens M GillianJapanAmy Elsner QUALIFIED
Salvatore C AmigonCanadaAnna Fali NEW
Jennifer E WieserCanadaAnna Fali NEGOTIATION
Misaki L DarakjyRussiaIvan Magalhaes NEW
Leon Q FerenczArgentinaAsiya Javayant QUALIFIED
Kadeem I MaletRussiaOnyama Limba RENEWAL
Jones N RimFranceOnyama Limba PROPOSAL
Claire O RoysterCanadaIvan Magalhaes UNQUALIFIED
Alejandro W MorascaGermanyAnna Fali NEW
Mayumi Q FigeroaItalyAnna Fali 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>