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
Julie K PaprockiItalyAsiya Javayant PROPOSAL
Antonio H MarrierRussiaElwin Sharvill NEGOTIATION
Kaitlin Q WieserBrazilIvan Magalhaes RENEWAL
Julie H DoeBrazilIvan Magalhaes PROPOSAL
Ricardo D RoysterItalyXuxue Feng NEW
Clifford N CaldareraAustraliaElwin Sharvill NEW
Jefferson I OldroydRussiaIoni Bowcher RENEWAL
Morrow V DilliardIndiaXuxue Feng QUALIFIED
Jennifer W MacleadRussiaIvan Magalhaes NEW
Costa X InouyeSpainIvan Magalhaes NEGOTIATION
Wickens T RutaJapanStephen Shaw PROPOSAL
Ricardo C TollnerItalyXuxue Feng NEW
Jennifer P OstroskyGermanyBernardo Dominic NEGOTIATION
Jeanfrancois Q SlusarskiUnited KingdomAnna Fali RENEWAL
Octavia Z ButtAustraliaIoni Bowcher RENEWAL
Ivar A GillianBrazilIvan Magalhaes RENEWAL
Munro K WieserSpainAnna Fali PROPOSAL
Ashley Q DilliardAustraliaAmy Elsner NEW
Faith O PerinSpainIvan Magalhaes QUALIFIED
Maisha H RulapaughCanadaAsiya Javayant UNQUALIFIED
Misaki E TollnerArgentinaOnyama Limba NEW
Claire P StockhamItalyIoni Bowcher QUALIFIED
Kadeem P FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Darci A BologniaFranceAmy Elsner QUALIFIED
Costa X SlusarskiGermanyAnna Fali PROPOSAL
Nicolas Q VocelkaRussiaIoni Bowcher NEW
Wickens X ShinkoAustraliaAsiya Javayant UNQUALIFIED
Isabel O PaprockiUnited KingdomStephen Shaw PROPOSAL
David D PaprockiFranceElwin Sharvill UNQUALIFIED
Jeanfrancois E GlickBrazilAnna Fali UNQUALIFIED
Murillo V OldroydUnited KingdomAmy Elsner QUALIFIED
Salvatore P FigeroaBrazilIoni Bowcher NEGOTIATION
Nicolas R FollerIndiaElwin Sharvill RENEWAL
Kadeem O FigeroaSpainAnna Fali UNQUALIFIED
Rodrigues D DoeIndiaStephen Shaw PROPOSAL
Mayumi E MorascaBrazilAmy Elsner PROPOSAL
Aika V ShinkoJapanAnna Fali PROPOSAL
Leon F AmigonRussiaIoni Bowcher RENEWAL
Arvin B KuskoUnited KingdomIoni Bowcher NEW
Chavez F SlusarskiCanadaAsiya Javayant NEGOTIATION
Deepesh U DilliardJapanIoni Bowcher RENEWAL
Silvio G BriddickAustraliaIoni Bowcher NEGOTIATION
Ashley O StockhamSpainIvan Magalhaes RENEWAL
Kaitlin B MorascaBrazilIoni Bowcher QUALIFIED
Aika Q CampainSpainOnyama Limba NEGOTIATION
Nicolas Q DoeIndiaAmy Elsner RENEWAL
Darci K FollerBrazilBernardo Dominic PROPOSAL
Munro X ChuiBrazilBernardo Dominic QUALIFIED
Arvin O NickaSpainIvan Magalhaes QUALIFIED
Darci W StockhamIndiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa B BologniaArgentinaIoni Bowcher NEGOTIATION
Jones F ButtUnited KingdomBernardo Dominic NEGOTIATION
Sinclair W FigeroaAustraliaXuxue Feng RENEWAL
Stacey C PoquetteJapanAmy Elsner NEW
Sinclair H GillianAustraliaBernardo Dominic NEGOTIATION
Claire F WaycottJapanElwin Sharvill NEW
Murillo M MaletSpainIvan Magalhaes PROPOSAL
Emily J IturbideSpainIoni Bowcher NEGOTIATION
Sinclair W ChuiGermanyBernardo Dominic RENEWAL
Octavia B WieserBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja Q SlusarskiUnited Kingdom2026-07-01Rangoni Of Florence PROPOSAL95Asiya Javayant
1001Rodrigues N PoquetteBrazil2026-06-17King, Christopher A Esq UNQUALIFIED15Ivan Magalhaes
1002Clifford R CaldareraItaly2026-06-11Rangoni Of Florence RENEWAL76Onyama Limba
1003Francesco H WaycottFrance2026-06-03Rousseaux, Michael Esq PROPOSAL78Bernardo Dominic
1004Alejandro E KuskoBrazil2026-06-20Rangoni Of Florence PROPOSAL40Amy Elsner
1005Johnson X WhobreyCanada2026-06-11Chanay, Jeffrey A Esq NEGOTIATION40Onyama Limba
1006Ricardo R FerenczItaly2026-07-01Feltz Printing Service RENEWAL77Onyama Limba
1007Misaki Z FlosiGermany2026-06-10Commercial Press RENEWAL99Stephen Shaw
1008Rodrigues N BologniaIndia2026-06-09Benton, John B Jr NEW30Onyama Limba
1009Claire A CaudyRussia2026-06-24Rousseaux, Michael Esq RENEWAL88Stephen Shaw
1010Kadeem K OldroydBrazil2026-06-17Chapman, Ross E Esq NEGOTIATION94Anna Fali
1011Aditya E KuskoCanada2026-06-19Truhlar And Truhlar Attys PROPOSAL1Anna Fali
1012Salvatore M SergiJapan2026-06-24Chanay, Jeffrey A Esq PROPOSAL12Elwin Sharvill
1013Arvin I FerenczFrance2026-06-28Feltz Printing Service RENEWAL11Ioni Bowcher
1014Deepesh G RulapaughArgentina2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED99Asiya Javayant
1015Jefferson V RimUnited Kingdom2026-06-04Rangoni Of Florence UNQUALIFIED29Elwin Sharvill
1016Ricardo M GarufiFrance2026-06-18Chanay, Jeffrey A Esq NEW94Stephen Shaw
1017Murillo W FerenczIndia2026-06-22Buckley Miller Wright UNQUALIFIED10Ivan Magalhaes
1018Maria V MaletIndia2026-06-22Printing Dimensions NEW92Onyama Limba
1019Silvio N RoysterIndia2026-06-06Dorl, James J Esq PROPOSAL25Ioni Bowcher
1020James U CampainSpain2026-06-16Truhlar And Truhlar Attys PROPOSAL84Xuxue Feng
1021Alejandro B BowleyFrance2026-06-10Feltz Printing Service PROPOSAL57Amy Elsner
1022Leja X FigeroaJapan2026-06-28Feiner Bros UNQUALIFIED97Asiya Javayant
1023Aruna D MaletAustralia2026-06-07Buckley Miller Wright NEGOTIATION64Onyama Limba
1024Clifford S GauchoIndia2026-06-21Commercial Press NEW49Amy Elsner
1025Stacey C AlbaresIndia2026-06-02Printing Dimensions NEW45Asiya Javayant
1026Salvatore S SchemmerGermany2026-06-15Benton, John B Jr NEGOTIATION82Xuxue Feng
1027Misaki W GauchoRussia2026-06-11Feltz Printing Service NEGOTIATION20Stephen Shaw
1028Darci U VenereItaly2026-06-16Commercial Press PROPOSAL14Stephen Shaw
1029Jennifer F FerenczRussia2026-06-22Chanay, Jeffrey A Esq NEW54Bernardo Dominic
1030David N AmigonJapan2026-06-17Rangoni Of Florence NEW38Ioni Bowcher
1031Claire A WaycottCanada2026-06-06Benton, John B Jr NEW62Stephen Shaw
1032Juan F OldroydIndia2026-06-23Chanay, Jeffrey A Esq RENEWAL42Xuxue Feng
1033Emily J ShinkoAustralia2026-06-14Commercial Press NEW54Xuxue Feng
1034Ricardo F IturbideRussia2026-06-23Truhlar And Truhlar Attys NEW58Asiya Javayant
1035Isabel Q ButtArgentina2026-06-21Chemel, James L Cpa QUALIFIED2Stephen Shaw
1036Mayumi H RoysterGermany2026-06-11Chemel, James L Cpa QUALIFIED43Asiya Javayant
1037Jeanfrancois S GauchoGermany2026-06-16Morlong Associates NEW45Xuxue Feng
1038Isabel B WaycottGermany2026-06-24Rousseaux, Michael Esq PROPOSAL70Xuxue Feng
1039Leon Q NestleCanada2026-06-21Rousseaux, Michael Esq NEW21Amy Elsner
1040Jefferson X RoysterUnited Kingdom2026-06-23Feltz Printing Service NEGOTIATION17Amy Elsner
1041Greenwood R PaprockiGermany2026-06-29Feiner Bros NEGOTIATION64Anna Fali
1042Jennifer B PoquetteCanada2026-06-02Benton, John B Jr NEGOTIATION37Xuxue Feng
1043Faith U OstroskyIndia2026-06-30Chemel, James L Cpa PROPOSAL91Ioni Bowcher
1044Tony L FlosiAustralia2026-06-06Benton, John B Jr NEW71Ioni Bowcher
1045Maisha P FerenczGermany2026-06-18Rangoni Of Florence UNQUALIFIED64Onyama Limba
1046Jones I RimIndia2026-06-16Rousseaux, Michael Esq PROPOSAL56Stephen Shaw
1047Munro H PaprockiGermany2026-06-23Chapman, Ross E Esq RENEWAL88Ioni Bowcher
1048Clifford F GillianGermany2026-06-09Benton, John B Jr NEW86Ioni Bowcher
1049Jefferson S MorascaSpain2026-06-02Rousseaux, Michael Esq QUALIFIED49Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Nicolas H VocelkaAustraliaAsiya Javayant PROPOSAL
Ashley X ChuiRussiaIoni Bowcher PROPOSAL
Chavez T KuskoGermanyIoni Bowcher QUALIFIED
Misaki J NickaIndiaIvan Magalhaes UNQUALIFIED
Chavez F RoysterAustraliaAmy Elsner UNQUALIFIED
Stacey T BowleyItalyAmy Elsner RENEWAL
Rodrigues T VocelkaIndiaAmy Elsner NEW
Salvatore I StensethUnited KingdomElwin Sharvill RENEWAL
Jennifer F RulapaughRussiaXuxue Feng UNQUALIFIED
Juan K DilliardJapanOnyama Limba UNQUALIFIED
Aika T KuskoUnited KingdomBernardo Dominic RENEWAL
Ashley O DarakjyJapanXuxue Feng RENEWAL
Murillo P FigeroaFranceStephen Shaw PROPOSAL
Munro Z RutaIndiaElwin Sharvill PROPOSAL
Adams N OldroydRussiaXuxue Feng NEGOTIATION
Ricardo D WaycottSpainStephen Shaw NEGOTIATION
Jeanfrancois T SlusarskiItalyStephen Shaw QUALIFIED
Antonio T GillianBrazilOnyama Limba UNQUALIFIED
Francesco X VocelkaFranceXuxue Feng UNQUALIFIED
Greenwood A FollerBrazilAnna Fali NEW
Ashley E FlosiGermanyAnna Fali UNQUALIFIED
Tony K NestleBrazilElwin Sharvill PROPOSAL
Misaki X KuskoSpainElwin Sharvill NEGOTIATION
Cody C StensethJapanOnyama Limba PROPOSAL
Arvin N NickaBrazilOnyama Limba UNQUALIFIED
Claire N DoeBrazilAsiya Javayant PROPOSAL
Ricardo F OldroydJapanStephen Shaw NEGOTIATION
Claire W VenereIndiaBernardo Dominic NEGOTIATION
Costa T DilliardGermanyAsiya Javayant UNQUALIFIED
Alejandro V SaylorsItalyAsiya Javayant QUALIFIED
Maria I MorascaUnited KingdomIvan Magalhaes QUALIFIED
Izzy J GauchoGermanyAmy Elsner RENEWAL
Julie H IturbideArgentinaOnyama Limba QUALIFIED
Aditya S StockhamCanadaBernardo Dominic NEW
Jennifer T FigeroaFranceStephen Shaw UNQUALIFIED
Jennifer R FollerBrazilIoni Bowcher QUALIFIED
Mujtaba N RoysterGermanyXuxue Feng NEW
Adams R DoeAustraliaAnna Fali QUALIFIED
Murillo A BriddickArgentinaAmy Elsner NEW
Maria H RoysterBrazilIoni Bowcher NEW
Adams J RutaIndiaStephen Shaw RENEWAL
Murillo G GlickSpainBernardo Dominic PROPOSAL
Octavia Y MaletFranceIvan Magalhaes QUALIFIED
Kadeem H SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Adams I WaycottFranceAmy Elsner NEW
Morrow H WaycottCanadaStephen Shaw NEGOTIATION
Aika Q GauchoIndiaIoni Bowcher RENEWAL
Munro A NickaGermanyIoni Bowcher RENEWAL
Clifford X FollerItalyAmy Elsner QUALIFIED
Aruna F RoysterCanadaIoni Bowcher NEW
Frozen Columns
Name
Smith F Caldarera
Kadeem S Chui
Leon W Wieser
Salvatore B Wieser
Silvio R Venere
Nicolas F Kolmetz
Kaitlin O Poquette
Isabel P Bowley
Wickens T Caldarera
Leja P Briddick
Johnson H Nicka
Aika Q Slusarski
Julie W Saylors
Aditya X Campain
Misaki H Sergi
Octavia B Bowley
Ashley M Rulapaugh
Octavia N Nicka
Greenwood V Slusarski
Smith L Inouye
Darci R Dilliard
Adams H Gillian
Alejandro U Chui
Claire S Wieser
Jefferson O Caudy
Mujtaba I Slusarski
Jones N Nestle
Nicolas V Slusarski
James J Garufi
Nicolas H Garufi
Jeanfrancois B Doe
Isabel N Garufi
Maria H Shinko
Antonio I Campain
Clifford G Rulapaugh
Adams S Oldroyd
Chavez Y Darakjy
James Z Slusarski
James F Ferencz
Antonio R Paprocki
Julie O Whobrey
Arvin V Butt
Jeanfrancois R Tollner
Ivar D Gillian
Emily D Rulapaugh
Costa S Schemmer
Johnson B Butt
Maisha M Maclead
Mayumi G Sergi
Cody E Ferencz
IdCountryDate
1000Germany2026-06-26
1001Canada2026-06-27
1002India2026-06-09
1003Australia2026-06-13
1004Italy2026-07-01
1005India2026-06-30
1006Japan2026-06-29
1007Russia2026-06-14
1008Brazil2026-06-30
1009Canada2026-06-19
1010France2026-06-30
1011France2026-06-26
1012India2026-06-24
1013Brazil2026-06-12
1014Russia2026-06-05
1015United Kingdom2026-06-23
1016Brazil2026-06-13
1017Germany2026-06-29
1018France2026-06-22
1019Brazil2026-06-24
1020Australia2026-06-12
1021Australia2026-06-16
1022United Kingdom2026-06-23
1023Argentina2026-06-26
1024United Kingdom2026-06-02
1025Germany2026-06-04
1026Japan2026-06-17
1027United Kingdom2026-06-27
1028Italy2026-07-01
1029France2026-06-20
1030Brazil2026-06-13
1031Spain2026-06-20
1032Russia2026-06-07
1033Canada2026-06-28
1034Russia2026-06-09
1035Japan2026-06-24
1036Japan2026-06-30
1037Canada2026-06-29
1038Australia2026-06-23
1039India2026-06-08
1040Spain2026-06-26
1041Australia2026-06-26
1042Canada2026-06-17
1043Russia2026-06-17
1044Russia2026-06-12
1045Italy2026-06-03
1046Argentina2026-06-03
1047Spain2026-06-12
1048Argentina2026-06-18
1049Germany2026-06-11

On-Demand Data

NameIdCountryDate
Darci M Butt1000Brazil2026-06-22
Ricardo U Marrier1001Spain2026-06-17
Leon O Kusko1002Argentina2026-06-27
David R Figeroa1003United Kingdom2026-06-20
Smith L Oldroyd1004Germany2026-06-28
Jefferson I Campain1005Canada2026-06-09
Sinclair Z Ferencz1006Australia2026-06-26
Mayumi D Glick1007United Kingdom2026-06-12
Tony H Glick1008Russia2026-06-15
Jennifer Z Nicka1009Brazil2026-06-06
Tony V Darakjy1010Japan2026-06-08
Jefferson W Gillian1011Argentina2026-06-07
Aruna V Gillian1012India2026-06-13
Antonio D Slusarski1013Japan2026-06-19
Darci O Ostrosky1014Canada2026-06-24
Deepesh T Bolognia1015Canada2026-06-04
Alejandro W Schemmer1016Brazil2026-06-21
Maisha A Glick1017Russia2026-06-27
Aruna U Caudy1018Brazil2026-06-02
Jones V Caldarera1019France2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo I MaletJapanStephen Shaw QUALIFIED
David C IturbideCanadaIoni Bowcher NEW
Maisha B FollerSpainIoni Bowcher NEGOTIATION
Arvin E VenereArgentinaBernardo Dominic PROPOSAL
Octavia R SaylorsArgentinaOnyama Limba PROPOSAL
Maisha T CampainCanadaOnyama Limba NEW
Octavia G ChuiItalyOnyama Limba NEGOTIATION
Jeanfrancois Q PerinAustraliaAnna Fali QUALIFIED
Smith C PoquetteFranceXuxue Feng QUALIFIED
Darci W CaldareraRussiaIvan Magalhaes PROPOSAL
Jones P GarufiUnited KingdomStephen Shaw UNQUALIFIED
Silvio O PerinSpainAnna Fali QUALIFIED
Salvatore T WaycottCanadaElwin Sharvill UNQUALIFIED
Wickens B OldroydGermanyStephen Shaw NEW
Isabel L ChuiRussiaStephen Shaw QUALIFIED
Antonio F MaletIndiaStephen Shaw NEW
Stacey B RoysterFranceAsiya Javayant PROPOSAL
Antonio L NestleUnited KingdomOnyama Limba NEW
Greenwood B RulapaughFranceIoni Bowcher NEGOTIATION
Munro J BriddickAustraliaAnna Fali NEGOTIATION
Clifford W CampainFranceOnyama Limba UNQUALIFIED
Aika G CaldareraBrazilXuxue Feng RENEWAL
Kaitlin E StockhamBrazilStephen Shaw NEW
Faith I FlosiSpainIoni Bowcher NEGOTIATION
Morrow E NestleJapanIvan Magalhaes PROPOSAL
Costa K AmigonRussiaAnna Fali QUALIFIED
Ivar O ButtJapanBernardo Dominic UNQUALIFIED
Ivar G ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio X MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba M GillianIndiaAmy Elsner NEGOTIATION
Mujtaba W FerenczItalyBernardo Dominic QUALIFIED
Maisha N FlosiSpainXuxue Feng PROPOSAL
Octavia J StockhamRussiaAnna Fali UNQUALIFIED
Salvatore K KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Maria P NestleCanadaIvan Magalhaes NEW
Silvio P GarufiItalyIvan Magalhaes QUALIFIED
Stacey Y MorascaRussiaAmy Elsner PROPOSAL
Jennifer S PoquetteRussiaElwin Sharvill UNQUALIFIED
Greenwood N ChuiUnited KingdomOnyama Limba UNQUALIFIED
Maisha R NickaJapanAmy Elsner 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>