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
Darci A OldroydIndiaXuxue Feng PROPOSAL
Costa S StockhamFranceIvan Magalhaes NEW
Morrow L PoquetteUnited KingdomStephen Shaw NEW
Juan H BologniaFranceStephen Shaw QUALIFIED
Stacey U GauchoItalyAsiya Javayant RENEWAL
Mujtaba Y NestleCanadaXuxue Feng UNQUALIFIED
Deepesh M WhobreyRussiaXuxue Feng NEW
Aditya C FollerUnited KingdomIvan Magalhaes NEGOTIATION
Juan U ShinkoItalyXuxue Feng NEW
Deepesh P FigeroaSpainAsiya Javayant NEGOTIATION
Cody V BriddickGermanyAsiya Javayant NEW
Leon Q ChuiCanadaXuxue Feng NEGOTIATION
Jennifer T CaldareraArgentinaAnna Fali PROPOSAL
Rodrigues L MorascaIndiaAsiya Javayant NEGOTIATION
Greenwood B BowleyUnited KingdomBernardo Dominic NEW
Sinclair G GarufiGermanyAmy Elsner QUALIFIED
Leja X NickaGermanyAmy Elsner PROPOSAL
David B GauchoItalyOnyama Limba NEGOTIATION
Deepesh H FlosiBrazilIvan Magalhaes NEGOTIATION
Darci K RutaAustraliaBernardo Dominic NEW
Julie Y KolmetzSpainBernardo Dominic NEW
Maria Z CaldareraGermanyElwin Sharvill NEW
Emily B StensethIndiaIoni Bowcher RENEWAL
Tony C PoquetteGermanyAnna Fali NEW
Aditya A GlickFranceAmy Elsner NEGOTIATION
Tony F MaletJapanElwin Sharvill PROPOSAL
James S InouyeSpainBernardo Dominic NEGOTIATION
Chavez X MaletBrazilAnna Fali QUALIFIED
Chavez Y FerenczArgentinaAmy Elsner UNQUALIFIED
Deepesh J NestleSpainBernardo Dominic NEGOTIATION
Tony R RoysterArgentinaAmy Elsner UNQUALIFIED
Leon S DarakjyCanadaAmy Elsner UNQUALIFIED
Antonio G WieserJapanIvan Magalhaes PROPOSAL
Clifford K PaprockiCanadaStephen Shaw PROPOSAL
Ashley K DarakjyJapanAmy Elsner UNQUALIFIED
David K KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood Z StockhamRussiaAmy Elsner NEGOTIATION
Salvatore P DilliardUnited KingdomAmy Elsner QUALIFIED
Wickens N OstroskyGermanyElwin Sharvill NEGOTIATION
Mujtaba F MorascaIndiaStephen Shaw NEGOTIATION
Kaitlin N OstroskyIndiaAnna Fali QUALIFIED
Maria P GillianIndiaAnna Fali RENEWAL
Silvio U BriddickGermanyAnna Fali UNQUALIFIED
Ashley K CaudyCanadaBernardo Dominic NEW
Juan Q RimIndiaElwin Sharvill NEW
Chavez L MaletAustraliaOnyama Limba UNQUALIFIED
Octavia P OldroydBrazilElwin Sharvill RENEWAL
Johnson H VenereSpainBernardo Dominic PROPOSAL
Ashley T WaycottGermanyOnyama Limba PROPOSAL
Juan P FlosiIndiaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin V MacleadSpainAmy Elsner UNQUALIFIED
Jennifer X GarufiFranceIvan Magalhaes RENEWAL
Alejandro V MaletCanadaAsiya Javayant QUALIFIED
Alejandro J StensethAustraliaOnyama Limba NEW
Wickens D NickaAustraliaAnna Fali QUALIFIED
Nicolas Z WhobreyJapanIvan Magalhaes RENEWAL
Isabel X SlusarskiIndiaAnna Fali RENEWAL
Kaitlin D StensethAustraliaAsiya Javayant UNQUALIFIED
Murillo U FerenczUnited KingdomAsiya Javayant QUALIFIED
Jones E BowleyArgentinaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois S MaletItaly2026-08-07Truhlar And Truhlar Attys RENEWAL20Bernardo Dominic
1001Wickens Y GlickAustralia2026-08-16Benton, John B Jr NEGOTIATION53Onyama Limba
1002Antonio J SaylorsSpain2026-08-18Feltz Printing Service NEW23Amy Elsner
1003Munro M VenereGermany2026-08-17Rangoni Of Florence RENEWAL10Anna Fali
1004Aditya C MarrierGermany2026-08-11Truhlar And Truhlar Attys QUALIFIED5Ivan Magalhaes
1005Jefferson P MarrierRussia2026-08-08Buckley Miller Wright NEW9Amy Elsner
1006Salvatore S FlosiCanada2026-08-07Benton, John B Jr PROPOSAL68Anna Fali
1007Nicolas P SlusarskiFrance2026-08-10Feltz Printing Service PROPOSAL72Asiya Javayant
1008Izzy X VocelkaFrance2026-08-26Feiner Bros QUALIFIED78Bernardo Dominic
1009Greenwood H MorascaRussia2026-08-18Rousseaux, Michael Esq PROPOSAL94Amy Elsner
1010Chavez A BowleyBrazil2026-08-14Rangoni Of Florence QUALIFIED89Elwin Sharvill
1011Morrow D FollerSpain2026-08-23Benton, John B Jr NEGOTIATION8Bernardo Dominic
1012Murillo E AmigonIndia2026-08-06Buckley Miller Wright UNQUALIFIED8Stephen Shaw
1013Ricardo J KuskoJapan2026-08-21Rangoni Of Florence QUALIFIED16Stephen Shaw
1014Ricardo G GlickBrazil2026-08-12Feiner Bros NEGOTIATION64Bernardo Dominic
1015Tony L VocelkaIndia2026-08-10Truhlar And Truhlar Attys UNQUALIFIED11Elwin Sharvill
1016Julie E SergiGermany2026-08-08Chanay, Jeffrey A Esq RENEWAL8Ioni Bowcher
1017Ricardo Z RulapaughAustralia2026-08-25Morlong Associates UNQUALIFIED45Asiya Javayant
1018Jennifer A StockhamRussia2026-08-11Feiner Bros NEW56Anna Fali
1019Jeanfrancois Z GillianGermany2026-08-18Rousseaux, Michael Esq NEGOTIATION87Xuxue Feng
1020Jennifer N DarakjyAustralia2026-08-10Commercial Press NEGOTIATION46Asiya Javayant
1021Ricardo Q FigeroaAustralia2026-08-26Feltz Printing Service NEW3Asiya Javayant
1022Cody A WieserUnited Kingdom2026-08-15Commercial Press PROPOSAL54Stephen Shaw
1023Jefferson I InouyeArgentina2026-08-10Feltz Printing Service NEW81Elwin Sharvill
1024Kaitlin F DilliardItaly2026-08-18Feiner Bros PROPOSAL40Amy Elsner
1025Adams S BriddickSpain2026-08-25Rangoni Of Florence RENEWAL93Onyama Limba
1026Jennifer B MaletBrazil2026-08-08Truhlar And Truhlar Attys NEGOTIATION1Xuxue Feng
1027Kadeem A CampainUnited Kingdom2026-08-06Chapman, Ross E Esq PROPOSAL61Ioni Bowcher
1028Ivar U FollerFrance2026-08-23Chanay, Jeffrey A Esq NEGOTIATION74Asiya Javayant
1029Izzy U DarakjyAustralia2026-08-16Rousseaux, Michael Esq NEGOTIATION96Bernardo Dominic
1030Rodrigues W VenereSpain2026-09-01Feltz Printing Service NEW39Bernardo Dominic
1031Maisha S WieserRussia2026-08-29Truhlar And Truhlar Attys NEGOTIATION8Anna Fali
1032Darci Q MaletCanada2026-08-20Buckley Miller Wright NEGOTIATION93Xuxue Feng
1033Murillo Q FollerCanada2026-08-09Chapman, Ross E Esq PROPOSAL7Anna Fali
1034Faith S TollnerAustralia2026-08-25Dorl, James J Esq RENEWAL99Amy Elsner
1035Leon V TollnerRussia2026-08-14Truhlar And Truhlar Attys UNQUALIFIED24Asiya Javayant
1036Leon P ButtRussia2026-08-23Buckley Miller Wright PROPOSAL41Asiya Javayant
1037Faith H MacleadArgentina2026-08-20Feiner Bros PROPOSAL36Asiya Javayant
1038Leon C OldroydRussia2026-08-19Dorl, James J Esq NEGOTIATION13Stephen Shaw
1039Morrow A SergiItaly2026-08-10Commercial Press PROPOSAL97Onyama Limba
1040Mayumi C MaletJapan2026-08-30King, Christopher A Esq NEW31Stephen Shaw
1041Izzy Y SergiIndia2026-08-31Rousseaux, Michael Esq NEGOTIATION38Anna Fali
1042Murillo S BologniaJapan2026-08-29Benton, John B Jr PROPOSAL3Ivan Magalhaes
1043Wickens Y CaldareraItaly2026-08-29Rangoni Of Florence NEGOTIATION19Elwin Sharvill
1044Greenwood K RutaSpain2026-08-04Dorl, James J Esq RENEWAL63Elwin Sharvill
1045Alejandro O TollnerUnited Kingdom2026-08-04Chapman, Ross E Esq NEW45Stephen Shaw
1046Izzy Y SergiRussia2026-08-24Benton, John B Jr PROPOSAL83Stephen Shaw
1047Alejandro D RutaAustralia2026-08-28Truhlar And Truhlar Attys NEGOTIATION63Ioni Bowcher
1048Maisha W PoquetteJapan2026-08-29Commercial Press RENEWAL14Amy Elsner
1049Antonio M NickaGermany2026-08-12Feiner Bros PROPOSAL19Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Costa J DoeJapanAnna Fali UNQUALIFIED
Greenwood U KuskoGermanyAsiya Javayant QUALIFIED
Tony P VenereItalyStephen Shaw RENEWAL
Izzy F BologniaCanadaStephen Shaw PROPOSAL
Stacey X RoysterRussiaBernardo Dominic QUALIFIED
Rodrigues H FerenczBrazilStephen Shaw PROPOSAL
Rodrigues Y MorascaAustraliaAnna Fali NEW
Smith G AlbaresItalyAsiya Javayant NEGOTIATION
Aruna W DoeArgentinaAsiya Javayant RENEWAL
Arvin N FigeroaArgentinaAsiya Javayant NEGOTIATION
Sinclair C GillianRussiaIoni Bowcher PROPOSAL
Adams T DoeAustraliaStephen Shaw UNQUALIFIED
Cody B InouyeCanadaElwin Sharvill NEGOTIATION
Isabel I GillianRussiaAsiya Javayant UNQUALIFIED
Silvio F FlosiJapanXuxue Feng RENEWAL
Morrow F RulapaughAustraliaIoni Bowcher UNQUALIFIED
Salvatore U RoysterFranceOnyama Limba NEGOTIATION
Jones R AlbaresIndiaXuxue Feng QUALIFIED
Kadeem Q StockhamCanadaAnna Fali UNQUALIFIED
James S GauchoJapanAmy Elsner UNQUALIFIED
Silvio E WaycottJapanAsiya Javayant RENEWAL
Jennifer B WaycottRussiaStephen Shaw UNQUALIFIED
Silvio D MarrierArgentinaElwin Sharvill UNQUALIFIED
Tony K TollnerSpainIvan Magalhaes RENEWAL
Darci B RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Cody Z PerinJapanElwin Sharvill RENEWAL
Ashley Y NestleIndiaAsiya Javayant NEGOTIATION
David R FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Emily G BriddickJapanStephen Shaw PROPOSAL
Ashley H VenereSpainElwin Sharvill RENEWAL
Rodrigues X RulapaughIndiaIvan Magalhaes PROPOSAL
Isabel L InouyeArgentinaXuxue Feng QUALIFIED
Arvin V CaudyJapanIoni Bowcher UNQUALIFIED
Jones G FigeroaIndiaAmy Elsner RENEWAL
Costa C GlickArgentinaXuxue Feng QUALIFIED
Greenwood O FollerGermanyAnna Fali PROPOSAL
Smith A AmigonCanadaOnyama Limba QUALIFIED
Adams K OldroydBrazilStephen Shaw PROPOSAL
Aika A RulapaughJapanIoni Bowcher RENEWAL
Leon K CampainRussiaAmy Elsner QUALIFIED
Octavia I GauchoSpainXuxue Feng QUALIFIED
Silvio F CampainItalyAsiya Javayant RENEWAL
Juan W DarakjyJapanAnna Fali NEGOTIATION
Isabel L FerenczSpainIoni Bowcher PROPOSAL
Darci V FigeroaFranceIvan Magalhaes PROPOSAL
Ricardo Z PerinIndiaStephen Shaw NEW
Alejandro M InouyeAustraliaElwin Sharvill UNQUALIFIED
Juan W AmigonGermanyIvan Magalhaes QUALIFIED
Stacey P WhobreyItalyElwin Sharvill NEW
Tony G IturbideFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Antonio Y Maclead
Deepesh J Marrier
Murillo M Waycott
Leon G Tollner
Leja G Ostrosky
Claire A Wieser
Claire L Stockham
Jefferson R Ruta
Adams Q Malet
Adams E Briddick
Stacey K Flosi
Izzy N Stockham
Aruna S Saylors
Jefferson U Malet
Izzy Z Briddick
Stacey F Caldarera
Octavia S Ostrosky
Jones A Ostrosky
Smith J Garufi
Deepesh K Albares
Stacey L Vocelka
James Z Malet
Jones M Flosi
Mujtaba C Morasca
Juan W Stockham
Rodrigues O Ruta
Adams Y Waycott
Antonio T Bowley
Faith W Whobrey
Mayumi X Albares
Tony K Briddick
Misaki Q Nicka
Tony H Slusarski
Rodrigues N Whobrey
Johnson W Tollner
Aruna Y Briddick
Leja C Marrier
Munro I Oldroyd
Izzy L Maclead
Cody H Foller
Alejandro T Royster
Deepesh T Malet
Salvatore W Wieser
Adams W Inouye
Morrow J Ruta
Darci S Bowley
Deepesh R Ruta
Emily F Rulapaugh
Emily S Ostrosky
Cody K Figeroa
IdCountryDate
1000Russia2026-08-24
1001United Kingdom2026-08-21
1002Russia2026-08-31
1003Canada2026-08-25
1004Germany2026-08-23
1005Japan2026-08-18
1006India2026-08-30
1007India2026-08-05
1008Japan2026-08-28
1009Russia2026-08-06
1010Brazil2026-08-24
1011Australia2026-08-25
1012Canada2026-08-19
1013United Kingdom2026-08-23
1014India2026-08-27
1015Germany2026-08-20
1016Canada2026-08-25
1017Italy2026-08-28
1018Brazil2026-08-04
1019Russia2026-08-26
1020Brazil2026-08-14
1021India2026-08-16
1022Australia2026-08-05
1023Japan2026-08-27
1024Germany2026-08-16
1025Russia2026-08-21
1026Spain2026-08-06
1027Germany2026-08-23
1028Germany2026-08-23
1029United Kingdom2026-08-27
1030Canada2026-08-31
1031Germany2026-08-18
1032Brazil2026-08-30
1033Argentina2026-08-06
1034India2026-08-31
1035Germany2026-08-28
1036Brazil2026-08-15
1037Argentina2026-08-06
1038France2026-08-18
1039Canada2026-08-28
1040Japan2026-08-05
1041Australia2026-08-06
1042Canada2026-08-16
1043France2026-09-02
1044Spain2026-08-26
1045Italy2026-08-31
1046India2026-08-19
1047Italy2026-08-29
1048Japan2026-08-09
1049Italy2026-08-30

On-Demand Data

NameIdCountryDate
Morrow K Briddick1000Brazil2026-08-17
Nicolas Q Inouye1001India2026-09-01
Ivar F Vocelka1002France2026-08-30
Nicolas A Rulapaugh1003Italy2026-08-24
Isabel A Kolmetz1004Australia2026-08-12
Morrow X Kusko1005United Kingdom2026-08-06
Cody Q Poquette1006Russia2026-08-10
Ricardo G Butt1007Canada2026-08-25
Adams C Malet1008India2026-08-14
Julie I Amigon1009Germany2026-08-07
Kadeem V Gillian1010Spain2026-08-08
Wickens C Nestle1011Canada2026-08-05
Rodrigues V Whobrey1012Germany2026-08-09
Isabel B Wieser1013Brazil2026-08-26
Aditya C Kusko1014Russia2026-08-26
Ricardo L Slusarski1015Canada2026-08-21
Claire N Foller1016Canada2026-08-17
Ashley Z Foller1017Japan2026-08-22
Maria G Briddick1018Japan2026-08-22
Julie A Garufi1019Australia2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa R VocelkaArgentinaXuxue Feng NEW
Wickens O FerenczUnited KingdomIvan Magalhaes NEW
Arvin W BologniaArgentinaAsiya Javayant UNQUALIFIED
James F GarufiIndiaOnyama Limba QUALIFIED
Leon A DilliardFranceIoni Bowcher NEGOTIATION
Adams T RutaItalyOnyama Limba NEGOTIATION
Aditya M FigeroaCanadaAnna Fali QUALIFIED
Silvio K BowleyGermanyAsiya Javayant UNQUALIFIED
Darci V NickaBrazilIoni Bowcher NEGOTIATION
Morrow H MaletUnited KingdomBernardo Dominic PROPOSAL
Jefferson T InouyeItalyOnyama Limba QUALIFIED
Murillo N KolmetzCanadaAnna Fali PROPOSAL
Jefferson F InouyeFranceXuxue Feng NEGOTIATION
Rodrigues N GlickRussiaBernardo Dominic RENEWAL
Aika B OstroskyCanadaIoni Bowcher UNQUALIFIED
Alejandro H SergiBrazilBernardo Dominic PROPOSAL
Juan M TollnerUnited KingdomXuxue Feng RENEWAL
Adams Z CampainCanadaAmy Elsner RENEWAL
Aruna S WaycottBrazilAmy Elsner UNQUALIFIED
Misaki R CampainJapanIvan Magalhaes PROPOSAL
Izzy Y KuskoSpainElwin Sharvill QUALIFIED
Maisha L CaldareraUnited KingdomStephen Shaw NEGOTIATION
Kaitlin G KolmetzUnited KingdomAnna Fali RENEWAL
Misaki D MaletUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois R ShinkoFranceBernardo Dominic UNQUALIFIED
Adams H DarakjyRussiaAsiya Javayant PROPOSAL
Izzy U RulapaughRussiaXuxue Feng NEW
Nicolas T RulapaughIndiaAnna Fali PROPOSAL
Aika C WaycottCanadaAsiya Javayant UNQUALIFIED
Julie E BriddickFranceAsiya Javayant PROPOSAL
Mayumi G PoquetteUnited KingdomXuxue Feng PROPOSAL
Costa B ButtCanadaBernardo Dominic NEW
Jeanfrancois Y AmigonIndiaOnyama Limba NEGOTIATION
Leja T SaylorsBrazilBernardo Dominic QUALIFIED
Johnson I OldroydItalyAmy Elsner NEGOTIATION
Silvio S PoquetteRussiaBernardo Dominic NEGOTIATION
Rodrigues M VenereItalyIoni Bowcher NEW
Johnson E TollnerCanadaXuxue Feng QUALIFIED
Darci Z CampainAustraliaStephen Shaw NEW
Mayumi Z RulapaughRussiaElwin Sharvill 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>