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
Aditya A WieserFranceOnyama Limba PROPOSAL
Nicolas W StockhamArgentinaBernardo Dominic QUALIFIED
Misaki R VenereArgentinaOnyama Limba UNQUALIFIED
Wickens I BologniaItalyBernardo Dominic UNQUALIFIED
Salvatore D WaycottRussiaOnyama Limba QUALIFIED
Octavia Z StensethRussiaAsiya Javayant NEW
Juan L WieserArgentinaAsiya Javayant QUALIFIED
Claire F ChuiAustraliaAsiya Javayant NEGOTIATION
Deepesh J MacleadGermanyStephen Shaw QUALIFIED
Antonio X MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson D IturbideCanadaAnna Fali NEW
Deepesh T RimItalyBernardo Dominic UNQUALIFIED
Tony M SlusarskiItalyOnyama Limba QUALIFIED
Jennifer J IturbideItalyStephen Shaw NEGOTIATION
Salvatore F FigeroaBrazilAmy Elsner NEGOTIATION
Kadeem B SlusarskiIndiaAsiya Javayant UNQUALIFIED
Murillo X WieserIndiaAmy Elsner NEW
Tony O NestleItalyElwin Sharvill RENEWAL
Leon X KolmetzBrazilBernardo Dominic RENEWAL
Maria O PoquetteAustraliaIoni Bowcher PROPOSAL
Kaitlin Z RulapaughJapanAsiya Javayant UNQUALIFIED
Ricardo N BowleyArgentinaAmy Elsner RENEWAL
Ashley E KuskoUnited KingdomElwin Sharvill PROPOSAL
Faith B BowleyCanadaElwin Sharvill NEW
Stacey Z IturbideItalyAnna Fali NEGOTIATION
Emily V MaletRussiaBernardo Dominic QUALIFIED
Smith H SlusarskiCanadaAnna Fali UNQUALIFIED
Nicolas D NestleGermanyBernardo Dominic QUALIFIED
Rodrigues K FigeroaRussiaXuxue Feng NEW
Adams S NestleCanadaAsiya Javayant RENEWAL
Stacey M DarakjyAustraliaAsiya Javayant QUALIFIED
Antonio N NestleFranceAnna Fali UNQUALIFIED
Chavez F FerenczIndiaAmy Elsner QUALIFIED
Adams I NickaFranceAmy Elsner NEW
Arvin Y MorascaBrazilAmy Elsner PROPOSAL
Tony V MarrierArgentinaOnyama Limba UNQUALIFIED
Johnson F CampainCanadaStephen Shaw RENEWAL
Costa P ShinkoSpainXuxue Feng NEGOTIATION
Smith V CampainAustraliaBernardo Dominic UNQUALIFIED
Salvatore R BriddickArgentinaAmy Elsner RENEWAL
Julie W WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Aruna N MorascaSpainIoni Bowcher QUALIFIED
Deepesh W GarufiIndiaElwin Sharvill QUALIFIED
Aika Z FerenczRussiaAsiya Javayant UNQUALIFIED
Silvio F CaudyRussiaBernardo Dominic PROPOSAL
Arvin F ChuiJapanXuxue Feng QUALIFIED
Ivar L BologniaBrazilIvan Magalhaes QUALIFIED
Ashley O DoeRussiaAnna Fali RENEWAL
Munro K IturbideCanadaAnna Fali PROPOSAL
Morrow M StensethIndiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna W OldroydRussiaElwin Sharvill QUALIFIED
Cody G CaldareraJapanIoni Bowcher NEW
Morrow C SergiSpainIvan Magalhaes NEW
Silvio E VenereCanadaElwin Sharvill NEW
Juan W MaletJapanAnna Fali RENEWAL
Cody J DarakjySpainIvan Magalhaes NEW
Ivar D RoysterUnited KingdomOnyama Limba NEGOTIATION
Maria A StensethAustraliaElwin Sharvill QUALIFIED
Francesco O StensethBrazilOnyama Limba PROPOSAL
Jefferson K DilliardJapanBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki L PoquetteArgentina2026-07-02Dorl, James J Esq QUALIFIED91Onyama Limba
1001Leja S SaylorsItaly2026-06-27Printing Dimensions PROPOSAL38Onyama Limba
1002Leon Y AmigonGermany2026-07-05Benton, John B Jr NEGOTIATION68Asiya Javayant
1003Ricardo Q SchemmerAustralia2026-07-12Chemel, James L Cpa RENEWAL59Xuxue Feng
1004Leon H AmigonItaly2026-07-12Truhlar And Truhlar Attys NEW71Amy Elsner
1005Aruna P DilliardSpain2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED19Amy Elsner
1006Aditya Z IturbideRussia2026-07-01Benton, John B Jr NEW65Ioni Bowcher
1007Arvin O GarufiJapan2026-06-28Feiner Bros PROPOSAL62Xuxue Feng
1008Salvatore Y SaylorsItaly2026-07-08Dorl, James J Esq UNQUALIFIED83Ivan Magalhaes
1009Alejandro M OldroydIndia2026-07-11Dorl, James J Esq NEGOTIATION56Amy Elsner
1010Isabel J PaprockiIndia2026-07-23King, Christopher A Esq NEGOTIATION33Anna Fali
1011Emily V WieserArgentina2026-07-07Chapman, Ross E Esq NEGOTIATION69Stephen Shaw
1012Kaitlin X RutaItaly2026-07-10Chemel, James L Cpa QUALIFIED61Ioni Bowcher
1013Costa M MaletJapan2026-07-03Chemel, James L Cpa RENEWAL72Ivan Magalhaes
1014Silvio C MaletJapan2026-07-08Chemel, James L Cpa QUALIFIED48Elwin Sharvill
1015Salvatore S StockhamItaly2026-07-11Rousseaux, Michael Esq QUALIFIED50Ivan Magalhaes
1016Wickens J RutaGermany2026-06-27Buckley Miller Wright NEGOTIATION2Asiya Javayant
1017Ashley J BowleyCanada2026-07-19Dorl, James J Esq RENEWAL29Asiya Javayant
1018Clifford C NickaSpain2026-07-22Truhlar And Truhlar Attys PROPOSAL57Ioni Bowcher
1019Morrow K ChuiGermany2026-07-21Commercial Press NEW76Stephen Shaw
1020Johnson I SlusarskiBrazil2026-06-30Dorl, James J Esq NEGOTIATION84Elwin Sharvill
1021Jones H FerenczBrazil2026-07-06Rangoni Of Florence NEW92Stephen Shaw
1022Faith F StockhamBrazil2026-07-17Rousseaux, Michael Esq PROPOSAL5Onyama Limba
1023Leja J PaprockiBrazil2026-06-28Buckley Miller Wright UNQUALIFIED52Xuxue Feng
1024Alejandro F TollnerBrazil2026-07-12Feltz Printing Service PROPOSAL94Elwin Sharvill
1025Alejandro Z PoquetteIndia2026-07-24Feltz Printing Service QUALIFIED67Ioni Bowcher
1026Jennifer M InouyeUnited Kingdom2026-06-29Morlong Associates NEW32Asiya Javayant
1027Isabel I RimSpain2026-07-13Buckley Miller Wright PROPOSAL82Ivan Magalhaes
1028David Q WaycottUnited Kingdom2026-07-09Chanay, Jeffrey A Esq NEW71Stephen Shaw
1029Leon A KolmetzUnited Kingdom2026-07-04Buckley Miller Wright NEGOTIATION74Onyama Limba
1030Aditya G CaudyJapan2026-06-29Truhlar And Truhlar Attys NEW66Ioni Bowcher
1031Costa K MaletGermany2026-07-09Commercial Press RENEWAL52Ioni Bowcher
1032Greenwood J MarrierIndia2026-07-14Commercial Press NEGOTIATION55Xuxue Feng
1033Silvio F StockhamCanada2026-07-16Commercial Press NEGOTIATION32Anna Fali
1034Faith C RimBrazil2026-06-29Commercial Press NEGOTIATION75Onyama Limba
1035Chavez F ChuiIndia2026-07-02Printing Dimensions QUALIFIED55Amy Elsner
1036Chavez Q CaudyGermany2026-07-16Feltz Printing Service QUALIFIED69Onyama Limba
1037Ivar Y RutaCanada2026-06-29Rangoni Of Florence UNQUALIFIED7Ivan Magalhaes
1038Faith O TollnerFrance2026-07-03King, Christopher A Esq UNQUALIFIED15Asiya Javayant
1039Antonio L NestleRussia2026-07-21Rousseaux, Michael Esq UNQUALIFIED13Amy Elsner
1040Jefferson P RulapaughRussia2026-07-09Buckley Miller Wright NEGOTIATION54Xuxue Feng
1041Munro K MaletJapan2026-07-07Chemel, James L Cpa NEGOTIATION70Xuxue Feng
1042Murillo E SlusarskiSpain2026-07-19Rousseaux, Michael Esq QUALIFIED15Bernardo Dominic
1043Cody D BriddickSpain2026-07-13Benton, John B Jr PROPOSAL53Elwin Sharvill
1044Tony Q SergiArgentina2026-06-30Rangoni Of Florence QUALIFIED74Stephen Shaw
1045Ricardo T MarrierCanada2026-07-11Rousseaux, Michael Esq NEW62Amy Elsner
1046Mujtaba Q MaletBrazil2026-06-28Commercial Press NEGOTIATION69Anna Fali
1047Kadeem F CaudyBrazil2026-06-29Commercial Press PROPOSAL55Elwin Sharvill
1048Ricardo R NestleJapan2026-07-04Rangoni Of Florence NEW22Xuxue Feng
1049Deepesh Z MacleadJapan2026-07-09Chapman, Ross E Esq PROPOSAL57Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Murillo D MorascaUnited KingdomIoni Bowcher NEW
Chavez P NickaRussiaIvan Magalhaes QUALIFIED
Mujtaba G CaudyGermanyXuxue Feng RENEWAL
Tony B GlickAustraliaBernardo Dominic UNQUALIFIED
Maria Q FerenczAustraliaBernardo Dominic QUALIFIED
Juan A BologniaRussiaAnna Fali QUALIFIED
Octavia A SlusarskiFranceStephen Shaw UNQUALIFIED
Smith I InouyeUnited KingdomStephen Shaw NEGOTIATION
Aruna K MaletRussiaAsiya Javayant PROPOSAL
Jennifer G FerenczSpainOnyama Limba NEGOTIATION
Chavez R OstroskyRussiaAsiya Javayant UNQUALIFIED
Arvin D NickaFranceElwin Sharvill UNQUALIFIED
Mujtaba I DoeSpainIvan Magalhaes PROPOSAL
Sinclair R MorascaSpainOnyama Limba RENEWAL
Greenwood F FollerUnited KingdomOnyama Limba QUALIFIED
Wickens Z CampainBrazilIvan Magalhaes PROPOSAL
Silvio A KuskoRussiaIvan Magalhaes NEW
Mujtaba D DarakjyIndiaAsiya Javayant PROPOSAL
Francesco Z MaletAustraliaXuxue Feng NEGOTIATION
Jeanfrancois E BologniaFranceXuxue Feng UNQUALIFIED
Darci V GarufiBrazilStephen Shaw QUALIFIED
Kadeem T MaletItalyBernardo Dominic UNQUALIFIED
Misaki W CaldareraUnited KingdomIoni Bowcher RENEWAL
Ricardo S BriddickGermanyAsiya Javayant UNQUALIFIED
Nicolas K PaprockiIndiaIvan Magalhaes RENEWAL
Ashley T MaletArgentinaAsiya Javayant PROPOSAL
Ivar O SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Misaki H GlickGermanyAsiya Javayant QUALIFIED
Julie T RulapaughGermanyOnyama Limba NEW
Izzy G AlbaresIndiaXuxue Feng NEW
Smith T VocelkaJapanAnna Fali PROPOSAL
Silvio C StensethArgentinaOnyama Limba UNQUALIFIED
Munro O SergiSpainXuxue Feng NEW
Nicolas G DoeArgentinaOnyama Limba NEW
Jefferson Y ShinkoSpainBernardo Dominic QUALIFIED
Murillo D RoysterCanadaXuxue Feng QUALIFIED
Adams F InouyeRussiaElwin Sharvill NEW
Kaitlin D StensethAustraliaStephen Shaw NEGOTIATION
Darci E ShinkoAustraliaBernardo Dominic RENEWAL
Isabel H FerenczSpainBernardo Dominic RENEWAL
David H ButtIndiaAmy Elsner NEW
James O SaylorsSpainElwin Sharvill UNQUALIFIED
Tony R FlosiItalyOnyama Limba UNQUALIFIED
Kadeem W ChuiFranceXuxue Feng RENEWAL
Francesco U SaylorsSpainOnyama Limba RENEWAL
Deepesh R RimRussiaAmy Elsner NEGOTIATION
Izzy K ChuiSpainOnyama Limba UNQUALIFIED
Mujtaba M SergiCanadaIoni Bowcher NEW
Wickens O BriddickCanadaBernardo Dominic NEW
Antonio K SergiIndiaAnna Fali NEGOTIATION
Frozen Columns
Name
Smith O Stenseth
Darci W Butt
David O Caudy
Octavia C Saylors
Ashley V Gaucho
Jennifer L Campain
Ashley D Rulapaugh
David S Shinko
Jennifer H Gillian
Aditya S Stockham
Misaki C Ostrosky
Ashley A Chui
Silvio B Ostrosky
Antonio M Albares
Costa K Schemmer
Claire F Malet
Maisha I Doe
Claire C Garufi
Sinclair Z Ferencz
Deepesh R Stenseth
Izzy U Nestle
Smith H Royster
Isabel E Tollner
Chavez R Gaucho
Jennifer U Flosi
Leja C Iturbide
Maisha W Nicka
Murillo D Royster
Leon Y Figeroa
Cody V Ruta
Sinclair N Malet
Nicolas N Rim
Izzy Z Ostrosky
Mujtaba H Bowley
Cody H Bowley
Clifford G Dilliard
Francesco O Slusarski
Ricardo Q Campain
Cody O Vocelka
Octavia A Stenseth
Maria A Vocelka
Costa V Malet
Greenwood P Malet
Jones L Rim
Chavez C Rim
Chavez C Oldroyd
Smith W Kolmetz
David A Maclead
Greenwood C Dilliard
Izzy W Venere
IdCountryDate
1000Argentina2026-06-26
1001Argentina2026-07-17
1002Italy2026-07-12
1003Italy2026-07-07
1004Brazil2026-07-16
1005Japan2026-07-09
1006Spain2026-07-10
1007France2026-07-10
1008Argentina2026-07-23
1009Australia2026-07-23
1010Spain2026-06-26
1011Japan2026-07-18
1012Japan2026-07-05
1013United Kingdom2026-07-23
1014Brazil2026-07-04
1015Canada2026-06-28
1016Germany2026-06-26
1017Argentina2026-07-18
1018Japan2026-07-08
1019France2026-07-22
1020Canada2026-07-12
1021Argentina2026-07-09
1022Spain2026-07-19
1023Italy2026-07-04
1024Spain2026-06-30
1025Australia2026-07-05
1026France2026-07-23
1027Russia2026-07-21
1028Japan2026-06-28
1029Brazil2026-07-23
1030France2026-07-09
1031Australia2026-06-28
1032Italy2026-07-09
1033Australia2026-07-11
1034United Kingdom2026-07-10
1035Russia2026-07-22
1036Italy2026-07-06
1037Canada2026-07-15
1038United Kingdom2026-07-21
1039Russia2026-07-24
1040United Kingdom2026-07-09
1041United Kingdom2026-07-22
1042France2026-06-28
1043Germany2026-07-06
1044Australia2026-06-29
1045Australia2026-07-22
1046India2026-07-13
1047France2026-07-13
1048Russia2026-07-19
1049United Kingdom2026-07-18

On-Demand Data

NameIdCountryDate
Emily O Glick1000France2026-06-30
Aika T Marrier1001Germany2026-07-15
Cody G Tollner1002Germany2026-07-08
Clifford E Maclead1003Canada2026-07-10
Aika R Chui1004Germany2026-07-01
Smith Z Ferencz1005France2026-07-04
Stacey L Sergi1006Canada2026-06-26
Salvatore I Vocelka1007Spain2026-07-02
Chavez F Rim1008Australia2026-06-25
Juan Y Venere1009Canada2026-07-06
Jefferson M Ruta1010Japan2026-07-05
Clifford H Gaucho1011France2026-07-04
Leon P Ruta1012Canada2026-07-01
Jeanfrancois V Gillian1013Argentina2026-07-03
Francesco A Darakjy1014Russia2026-06-28
Munro Y Kolmetz1015Australia2026-07-07
Jefferson B Bowley1016Japan2026-07-07
Munro A Whobrey1017Russia2026-07-03
Kadeem H Foller1018Brazil2026-07-21
Aditya M Glick1019Brazil2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci F DoeJapanStephen Shaw NEGOTIATION
David O GillianCanadaAmy Elsner RENEWAL
Clifford F RimSpainOnyama Limba NEGOTIATION
Jeanfrancois G RutaItalyIoni Bowcher UNQUALIFIED
Darci D PerinIndiaAnna Fali UNQUALIFIED
Octavia G MorascaGermanyOnyama Limba NEW
Nicolas H FollerAustraliaXuxue Feng QUALIFIED
Ricardo N VocelkaBrazilBernardo Dominic UNQUALIFIED
Mujtaba Y VenereItalyIoni Bowcher UNQUALIFIED
Wickens D WieserIndiaIoni Bowcher RENEWAL
Murillo T VenereAustraliaAsiya Javayant QUALIFIED
Juan B VenereUnited KingdomStephen Shaw UNQUALIFIED
Alejandro F GlickJapanAsiya Javayant NEGOTIATION
Maisha Q PoquetteArgentinaAmy Elsner QUALIFIED
Darci Q GarufiItalyBernardo Dominic RENEWAL
Mayumi A BowleyBrazilXuxue Feng QUALIFIED
Isabel Z NickaAustraliaIoni Bowcher NEW
Deepesh T WieserUnited KingdomOnyama Limba QUALIFIED
Claire K MorascaBrazilAnna Fali RENEWAL
Juan M CampainItalyIvan Magalhaes UNQUALIFIED
Claire V PaprockiRussiaAnna Fali PROPOSAL
Izzy M WhobreyItalyAnna Fali PROPOSAL
Maria Q FlosiUnited KingdomAsiya Javayant NEGOTIATION
Silvio D WaycottCanadaAmy Elsner NEW
Jeanfrancois D PaprockiJapanStephen Shaw PROPOSAL
Jones X PerinUnited KingdomAnna Fali NEGOTIATION
Darci H GlickIndiaXuxue Feng PROPOSAL
Jones W GauchoIndiaOnyama Limba QUALIFIED
Mujtaba F SaylorsRussiaElwin Sharvill NEW
Jennifer Y OldroydJapanOnyama Limba NEW
Claire K OstroskyBrazilAmy Elsner QUALIFIED
James H WieserBrazilAmy Elsner NEGOTIATION
Smith H GauchoCanadaIvan Magalhaes NEGOTIATION
Deepesh K MarrierCanadaIoni Bowcher NEGOTIATION
Aika M WieserItalyOnyama Limba UNQUALIFIED
Kaitlin S MarrierFranceAnna Fali RENEWAL
Cody E FollerJapanStephen Shaw UNQUALIFIED
Tony D AlbaresJapanOnyama Limba NEGOTIATION
Murillo B FigeroaCanadaAnna Fali NEGOTIATION
Claire B IturbideAustraliaAmy Elsner 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>