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
Ricardo X SergiArgentinaIvan Magalhaes NEW
Stacey K DilliardRussiaAsiya Javayant PROPOSAL
Costa Y GarufiFranceAmy Elsner UNQUALIFIED
Jennifer S ButtIndiaOnyama Limba RENEWAL
Murillo W GillianIndiaElwin Sharvill PROPOSAL
Johnson Y KuskoBrazilIvan Magalhaes RENEWAL
Munro V CampainArgentinaIvan Magalhaes RENEWAL
Morrow T FollerIndiaAnna Fali QUALIFIED
Rodrigues E BriddickItalyElwin Sharvill RENEWAL
Clifford O CampainCanadaXuxue Feng UNQUALIFIED
Kadeem M MacleadFranceIoni Bowcher UNQUALIFIED
Julie X AmigonItalyAsiya Javayant QUALIFIED
Mujtaba V SergiIndiaAsiya Javayant RENEWAL
Antonio K SaylorsBrazilOnyama Limba NEW
Mayumi Z FerenczArgentinaStephen Shaw QUALIFIED
Kadeem Z RutaIndiaXuxue Feng PROPOSAL
Salvatore Y VocelkaArgentinaIoni Bowcher QUALIFIED
Ashley J PoquetteSpainAsiya Javayant RENEWAL
Munro S GlickJapanAnna Fali NEW
Claire H KuskoGermanyAsiya Javayant PROPOSAL
Morrow I BowleyFranceAmy Elsner QUALIFIED
Morrow I AlbaresCanadaAnna Fali RENEWAL
Kaitlin W FlosiCanadaIvan Magalhaes NEW
Darci G DoeFranceAnna Fali NEW
Costa Y GillianIndiaAmy Elsner NEGOTIATION
Cody H OstroskyGermanyIvan Magalhaes PROPOSAL
Aruna L FollerGermanyBernardo Dominic UNQUALIFIED
Isabel Z CaudyUnited KingdomXuxue Feng UNQUALIFIED
Maisha E PoquetteJapanXuxue Feng RENEWAL
Jefferson D PerinCanadaXuxue Feng QUALIFIED
Greenwood C TollnerBrazilAnna Fali QUALIFIED
Jennifer U RulapaughBrazilXuxue Feng NEW
Rodrigues J PaprockiAustraliaStephen Shaw NEGOTIATION
Leja K KuskoIndiaAnna Fali NEGOTIATION
Jefferson R PoquetteSpainElwin Sharvill PROPOSAL
Salvatore K ButtGermanyElwin Sharvill QUALIFIED
Sinclair Q PerinGermanyXuxue Feng PROPOSAL
Aditya U OstroskyAustraliaAmy Elsner PROPOSAL
Stacey Q StensethBrazilIoni Bowcher PROPOSAL
Nicolas I GlickJapanIoni Bowcher QUALIFIED
Nicolas G MaletFranceElwin Sharvill NEGOTIATION
Faith H OldroydFranceBernardo Dominic QUALIFIED
Octavia Z StockhamItalyBernardo Dominic QUALIFIED
Antonio N ShinkoArgentinaElwin Sharvill QUALIFIED
Cody S GlickCanadaStephen Shaw UNQUALIFIED
Tony C SergiFranceElwin Sharvill QUALIFIED
Mayumi O VenereAustraliaIoni Bowcher NEGOTIATION
Cody E GauchoSpainXuxue Feng NEW
Octavia B SaylorsUnited KingdomXuxue Feng PROPOSAL
Nicolas H GauchoCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James Y RulapaughGermanyStephen Shaw NEW
Munro U FollerAustraliaIvan Magalhaes QUALIFIED
James U SaylorsItalyBernardo Dominic NEW
Mayumi N SaylorsRussiaAmy Elsner UNQUALIFIED
Cody S DarakjyRussiaAsiya Javayant RENEWAL
Aruna D NestleAustraliaElwin Sharvill QUALIFIED
Jeanfrancois V SaylorsFranceOnyama Limba NEGOTIATION
Octavia O VenereUnited KingdomAmy Elsner QUALIFIED
Maria P PoquetteArgentinaElwin Sharvill PROPOSAL
Leja V FerenczIndiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore E PerinJapan2026-06-18Commercial Press PROPOSAL44Onyama Limba
1001Deepesh W SergiJapan2026-06-11Rangoni Of Florence NEGOTIATION90Xuxue Feng
1002Jefferson H DilliardBrazil2026-06-24Chemel, James L Cpa UNQUALIFIED18Bernardo Dominic
1003Faith T SlusarskiJapan2026-06-06Chapman, Ross E Esq UNQUALIFIED77Onyama Limba
1004Silvio Y FlosiSpain2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED78Anna Fali
1005Ivar M WieserCanada2026-06-21Dorl, James J Esq NEW72Anna Fali
1006Ivar N WhobreyArgentina2026-06-19Dorl, James J Esq UNQUALIFIED27Bernardo Dominic
1007Jeanfrancois U FigeroaArgentina2026-06-25King, Christopher A Esq NEW36Ioni Bowcher
1008Murillo K GarufiIndia2026-06-23Printing Dimensions NEGOTIATION56Elwin Sharvill
1009Kadeem E AmigonSpain2026-06-12Rousseaux, Michael Esq UNQUALIFIED40Stephen Shaw
1010Wickens R WieserIndia2026-06-21Truhlar And Truhlar Attys UNQUALIFIED62Asiya Javayant
1011Jennifer P KolmetzRussia2026-06-07Commercial Press NEW23Ivan Magalhaes
1012Greenwood A StensethCanada2026-06-30Rangoni Of Florence PROPOSAL68Bernardo Dominic
1013Ivar A PaprockiJapan2026-06-27Commercial Press RENEWAL37Ivan Magalhaes
1014David L AmigonAustralia2026-06-14Rousseaux, Michael Esq QUALIFIED30Xuxue Feng
1015Chavez C ChuiArgentina2026-06-20Benton, John B Jr NEGOTIATION28Amy Elsner
1016Alejandro T StockhamArgentina2026-06-29Morlong Associates NEGOTIATION96Xuxue Feng
1017Isabel J OstroskyCanada2026-07-02Feltz Printing Service UNQUALIFIED60Asiya Javayant
1018Kadeem E DoeRussia2026-06-14Chemel, James L Cpa PROPOSAL92Ioni Bowcher
1019Misaki L MacleadIndia2026-06-09Rangoni Of Florence RENEWAL45Ioni Bowcher
1020Aika G IturbideCanada2026-06-30Feiner Bros UNQUALIFIED87Bernardo Dominic
1021Kaitlin F PerinJapan2026-06-30Feltz Printing Service NEGOTIATION28Asiya Javayant
1022Jennifer B VenereUnited Kingdom2026-06-10Feiner Bros UNQUALIFIED19Xuxue Feng
1023Jones R GlickArgentina2026-06-16Chanay, Jeffrey A Esq NEGOTIATION33Bernardo Dominic
1024Octavia P FollerItaly2026-07-01Printing Dimensions UNQUALIFIED99Ioni Bowcher
1025Aruna W BologniaAustralia2026-06-29Chapman, Ross E Esq NEGOTIATION8Amy Elsner
1026Mujtaba W SaylorsCanada2026-06-07Commercial Press RENEWAL64Xuxue Feng
1027Kadeem Y SaylorsJapan2026-06-09Rousseaux, Michael Esq RENEWAL84Asiya Javayant
1028Greenwood I SlusarskiCanada2026-06-19Dorl, James J Esq NEGOTIATION54Stephen Shaw
1029Leon Q RutaCanada2026-06-18Feltz Printing Service UNQUALIFIED2Stephen Shaw
1030Darci Y VocelkaJapan2026-06-18Benton, John B Jr NEGOTIATION23Elwin Sharvill
1031David L FlosiSpain2026-06-29Truhlar And Truhlar Attys RENEWAL47Elwin Sharvill
1032Alejandro U BowleyArgentina2026-06-21Commercial Press NEGOTIATION17Anna Fali
1033Claire F SlusarskiArgentina2026-06-05King, Christopher A Esq NEGOTIATION64Ivan Magalhaes
1034Greenwood B OldroydIndia2026-06-22Morlong Associates NEW96Elwin Sharvill
1035Silvio L NickaFrance2026-06-09Morlong Associates QUALIFIED51Bernardo Dominic
1036Smith J CaudyItaly2026-06-18King, Christopher A Esq PROPOSAL39Anna Fali
1037Isabel I GauchoJapan2026-06-27Printing Dimensions NEW46Amy Elsner
1038Leon T FigeroaRussia2026-06-13Morlong Associates UNQUALIFIED67Stephen Shaw
1039Arvin M SlusarskiAustralia2026-06-12Feltz Printing Service NEGOTIATION58Stephen Shaw
1040Morrow E PaprockiBrazil2026-06-08Rousseaux, Michael Esq NEW9Elwin Sharvill
1041Johnson B PoquetteBrazil2026-06-10Buckley Miller Wright RENEWAL10Ivan Magalhaes
1042Faith H StockhamUnited Kingdom2026-07-01Benton, John B Jr RENEWAL21Asiya Javayant
1043Mayumi D MarrierSpain2026-07-02Chemel, James L Cpa NEW32Ivan Magalhaes
1044Morrow E OstroskyGermany2026-06-20Rousseaux, Michael Esq NEGOTIATION1Onyama Limba
1045Deepesh S CampainCanada2026-06-08Buckley Miller Wright NEW86Elwin Sharvill
1046Antonio N ShinkoUnited Kingdom2026-06-14King, Christopher A Esq NEW96Stephen Shaw
1047Claire J MorascaBrazil2026-06-26Dorl, James J Esq PROPOSAL19Ioni Bowcher
1048Costa X IturbideArgentina2026-06-30Chanay, Jeffrey A Esq RENEWAL8Bernardo Dominic
1049Sinclair S InouyeSpain2026-06-23Benton, John B Jr NEGOTIATION25Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon R AlbaresRussiaAsiya Javayant RENEWAL
Aruna J SaylorsJapanAsiya Javayant QUALIFIED
Julie X MaletUnited KingdomIoni Bowcher NEW
Izzy W SchemmerBrazilXuxue Feng UNQUALIFIED
Rodrigues T AlbaresUnited KingdomAnna Fali QUALIFIED
Octavia P ShinkoArgentinaElwin Sharvill UNQUALIFIED
Chavez W IturbideRussiaXuxue Feng NEW
Morrow E RimJapanBernardo Dominic QUALIFIED
Alejandro M PoquetteJapanOnyama Limba NEW
Chavez M DarakjyAustraliaAsiya Javayant RENEWAL
Ivar F ButtJapanIvan Magalhaes PROPOSAL
Leja X OldroydArgentinaIoni Bowcher NEW
Cody O RoysterUnited KingdomIvan Magalhaes QUALIFIED
Darci L ShinkoUnited KingdomXuxue Feng NEW
Smith I StensethRussiaAnna Fali PROPOSAL
Cody I AlbaresItalyStephen Shaw NEW
Kadeem T StockhamFranceBernardo Dominic NEGOTIATION
Tony H BologniaItalyStephen Shaw RENEWAL
Kadeem L SergiAustraliaIoni Bowcher UNQUALIFIED
Adams V KolmetzIndiaStephen Shaw NEGOTIATION
Johnson K WhobreyFranceXuxue Feng PROPOSAL
Isabel L RutaUnited KingdomStephen Shaw NEW
Adams A AlbaresFranceIoni Bowcher NEGOTIATION
Maisha Z MorascaRussiaIvan Magalhaes UNQUALIFIED
Nicolas N WaycottAustraliaXuxue Feng QUALIFIED
David Z RoysterItalyAmy Elsner PROPOSAL
Maria E NickaBrazilAnna Fali NEW
James P RimGermanyElwin Sharvill NEW
Costa F BologniaGermanyAnna Fali RENEWAL
Cody I FerenczJapanElwin Sharvill NEGOTIATION
Smith N VocelkaBrazilStephen Shaw NEW
Greenwood X SlusarskiFranceAmy Elsner QUALIFIED
Costa E DilliardIndiaStephen Shaw NEW
David B DoeRussiaAsiya Javayant NEW
Faith J PaprockiCanadaIoni Bowcher UNQUALIFIED
Aika Y FerenczCanadaStephen Shaw NEW
Isabel F GlickItalyElwin Sharvill PROPOSAL
Adams M GillianGermanyAnna Fali PROPOSAL
Deepesh U RutaArgentinaOnyama Limba RENEWAL
Aika H NestleFranceIoni Bowcher UNQUALIFIED
Wickens K AmigonUnited KingdomIvan Magalhaes PROPOSAL
David P AmigonIndiaAnna Fali UNQUALIFIED
Rodrigues W InouyeFranceAnna Fali UNQUALIFIED
Sinclair H MarrierCanadaAmy Elsner QUALIFIED
David D MacleadIndiaAmy Elsner QUALIFIED
Aditya V SaylorsAustraliaBernardo Dominic PROPOSAL
Izzy L StensethAustraliaElwin Sharvill NEGOTIATION
Morrow G RulapaughSpainXuxue Feng NEW
Silvio D CaldareraUnited KingdomXuxue Feng RENEWAL
Rodrigues G StockhamUnited KingdomElwin Sharvill NEGOTIATION
Frozen Columns
Name
David M Rim
Alejandro U Inouye
Faith P Nicka
Claire V Garufi
Aruna X Vocelka
Ivar K Whobrey
Ashley E Kusko
Darci Z Ferencz
Antonio W Kolmetz
Tony C Gillian
Jefferson J Vocelka
Kaitlin S Bowley
Kadeem E Royster
Darci Z Doe
Claire N Maclead
Claire F Kusko
Ashley M Foller
Emily M Bolognia
Johnson T Campain
Costa D Saylors
David M Rim
Sinclair F Whobrey
Wickens U Waycott
Mayumi X Albares
Kadeem Q Stenseth
Octavia R Oldroyd
Nicolas C Foller
Leon H Royster
Munro P Malet
Adams B Oldroyd
Costa R Royster
Juan X Marrier
Stacey K Foller
Isabel K Bolognia
Francesco P Paprocki
Jennifer Q Garufi
Greenwood V Gillian
Stacey X Kolmetz
Leja T Nestle
Nicolas S Foller
Smith E Briddick
James S Ostrosky
Mujtaba R Gillian
Izzy F Rim
Arvin F Caldarera
Jefferson X Caldarera
Greenwood K Gaucho
Ivar B Oldroyd
Alejandro B Malet
Munro K Schemmer
IdCountryDate
1000Italy2026-06-07
1001Brazil2026-06-29
1002Canada2026-07-01
1003United Kingdom2026-06-21
1004India2026-06-14
1005Australia2026-06-17
1006Germany2026-06-20
1007Germany2026-06-25
1008Brazil2026-06-13
1009Germany2026-06-17
1010Germany2026-06-19
1011India2026-06-04
1012Argentina2026-06-07
1013Spain2026-06-16
1014Brazil2026-06-08
1015Brazil2026-06-09
1016Italy2026-06-28
1017Russia2026-06-15
1018Germany2026-06-29
1019France2026-07-02
1020Russia2026-06-28
1021Italy2026-06-08
1022United Kingdom2026-06-13
1023Australia2026-06-30
1024Canada2026-06-17
1025France2026-06-26
1026France2026-06-05
1027United Kingdom2026-07-01
1028Australia2026-06-26
1029Italy2026-06-16
1030France2026-06-05
1031Brazil2026-06-04
1032Canada2026-06-15
1033Canada2026-06-08
1034Italy2026-06-05
1035Italy2026-07-02
1036Spain2026-06-13
1037Spain2026-06-10
1038France2026-06-28
1039Brazil2026-07-02
1040Germany2026-07-01
1041Russia2026-06-10
1042Brazil2026-06-15
1043Brazil2026-06-29
1044India2026-07-03
1045India2026-06-26
1046Russia2026-06-20
1047Italy2026-06-24
1048United Kingdom2026-06-25
1049Australia2026-06-19

On-Demand Data

NameIdCountryDate
Kadeem N Schemmer1000India2026-06-10
Darci T Whobrey1001India2026-06-07
Misaki S Iturbide1002Italy2026-06-04
Claire C Glick1003Germany2026-06-17
Emily W Poquette1004Australia2026-06-06
Mayumi P Butt1005United Kingdom2026-06-17
Stacey X Campain1006Japan2026-06-09
Julie B Gaucho1007Australia2026-06-20
Jefferson N Whobrey1008Russia2026-06-20
Arvin L Vocelka1009Argentina2026-06-16
Faith B Gillian1010Argentina2026-06-13
Mujtaba R Rulapaugh1011Argentina2026-06-16
Leja A Rim1012India2026-06-15
Jeanfrancois P Rim1013Germany2026-06-18
Murillo V Wieser1014Japan2026-06-07
Mujtaba A Rulapaugh1015Russia2026-06-27
Ashley G Saylors1016Japan2026-06-28
James E Poquette1017Brazil2026-06-30
Silvio B Butt1018France2026-06-13
Ricardo W Waycott1019Russia2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson H MacleadSpainStephen Shaw UNQUALIFIED
Morrow F WhobreySpainIvan Magalhaes UNQUALIFIED
Julie A WaycottCanadaIvan Magalhaes QUALIFIED
Leon Z ShinkoIndiaIvan Magalhaes PROPOSAL
Jones K WieserJapanAnna Fali NEW
David H FollerArgentinaOnyama Limba NEGOTIATION
Ashley H RutaBrazilIvan Magalhaes NEW
Munro L KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Smith J MarrierCanadaStephen Shaw NEW
Octavia Y InouyeCanadaAmy Elsner UNQUALIFIED
Leon B BologniaBrazilIvan Magalhaes NEGOTIATION
Leja B DilliardAustraliaAsiya Javayant QUALIFIED
Arvin J PoquetteBrazilIoni Bowcher NEGOTIATION
Maisha X ButtCanadaAnna Fali QUALIFIED
Clifford J BriddickFranceElwin Sharvill UNQUALIFIED
Chavez G OstroskyGermanyAmy Elsner NEW
Smith J FlosiUnited KingdomOnyama Limba NEGOTIATION
Jennifer I CampainRussiaAmy Elsner RENEWAL
Maria R WieserArgentinaIoni Bowcher QUALIFIED
James P RimSpainIvan Magalhaes PROPOSAL
Kadeem S CaldareraBrazilAmy Elsner NEGOTIATION
Leja P BologniaGermanyIoni Bowcher PROPOSAL
Alejandro G MarrierArgentinaElwin Sharvill NEW
Izzy H KolmetzGermanyAmy Elsner RENEWAL
Faith I SaylorsRussiaIvan Magalhaes UNQUALIFIED
Jones L FlosiFranceIoni Bowcher NEW
Arvin Z ChuiJapanIoni Bowcher QUALIFIED
Stacey T InouyeAustraliaElwin Sharvill NEGOTIATION
James W MaletRussiaElwin Sharvill RENEWAL
Kaitlin Q PerinArgentinaXuxue Feng QUALIFIED
Johnson A VocelkaFranceIvan Magalhaes NEGOTIATION
Arvin K FlosiSpainAsiya Javayant NEW
Mujtaba I FollerAustraliaXuxue Feng PROPOSAL
Isabel X NickaUnited KingdomBernardo Dominic RENEWAL
Salvatore D PerinSpainIoni Bowcher QUALIFIED
Jones A CampainAustraliaStephen Shaw UNQUALIFIED
Ricardo R TollnerBrazilElwin Sharvill NEGOTIATION
Clifford T PerinRussiaAmy Elsner RENEWAL
Tony C OstroskyRussiaIoni Bowcher RENEWAL
Deepesh I OstroskyArgentinaBernardo 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>