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
Faith P StockhamItalyAnna Fali NEGOTIATION
Julie Y MacleadJapanXuxue Feng NEGOTIATION
Salvatore S WieserJapanXuxue Feng UNQUALIFIED
Aditya T WieserSpainAsiya Javayant RENEWAL
James A NickaCanadaStephen Shaw NEGOTIATION
Aika Z ChuiArgentinaIoni Bowcher NEW
Leja I OstroskyJapanIoni Bowcher QUALIFIED
Faith A BowleyJapanAmy Elsner RENEWAL
Leja K GlickSpainOnyama Limba RENEWAL
Greenwood M VenereItalyIoni Bowcher RENEWAL
Clifford M SergiAustraliaAmy Elsner PROPOSAL
Chavez M NestleIndiaBernardo Dominic NEGOTIATION
Jefferson G RulapaughSpainXuxue Feng QUALIFIED
Alejandro U MorascaFranceAmy Elsner NEW
Claire Q FollerGermanyBernardo Dominic NEGOTIATION
Aika S ChuiFranceElwin Sharvill PROPOSAL
Mayumi P MaletSpainAnna Fali NEW
Isabel H NickaBrazilIvan Magalhaes RENEWAL
Antonio F PerinArgentinaIvan Magalhaes UNQUALIFIED
Leon F WieserBrazilElwin Sharvill NEW
Deepesh W RoysterJapanAmy Elsner NEW
Izzy D StensethIndiaBernardo Dominic RENEWAL
Maisha L BriddickJapanBernardo Dominic NEW
Deepesh S SchemmerJapanAmy Elsner PROPOSAL
Leja T VocelkaItalyXuxue Feng NEW
Leon T TollnerArgentinaAsiya Javayant NEW
Greenwood K FollerItalyIoni Bowcher RENEWAL
Johnson Q MorascaJapanAmy Elsner QUALIFIED
Octavia N BologniaBrazilBernardo Dominic QUALIFIED
Kaitlin N RulapaughIndiaIvan Magalhaes QUALIFIED
Leja M VocelkaRussiaXuxue Feng NEW
Ricardo X MacleadJapanAnna Fali RENEWAL
Stacey N RimCanadaOnyama Limba UNQUALIFIED
Morrow H RoysterCanadaStephen Shaw NEGOTIATION
Izzy S BowleyFranceIoni Bowcher NEGOTIATION
Mayumi I FollerCanadaIvan Magalhaes QUALIFIED
Aruna N CaldareraRussiaIvan Magalhaes QUALIFIED
Jefferson N CaldareraUnited KingdomStephen Shaw NEW
Isabel T MorascaJapanXuxue Feng NEGOTIATION
Greenwood Q DoeBrazilAnna Fali UNQUALIFIED
Julie X MacleadUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues K TollnerRussiaIoni Bowcher NEGOTIATION
Clifford R CampainArgentinaElwin Sharvill RENEWAL
Cody A PoquetteCanadaAmy Elsner UNQUALIFIED
Antonio I StockhamUnited KingdomAmy Elsner NEGOTIATION
Murillo D MaletAustraliaOnyama Limba NEW
Faith J GillianArgentinaElwin Sharvill NEW
Jefferson J MaletRussiaAnna Fali NEGOTIATION
Izzy Q GillianGermanyAmy Elsner UNQUALIFIED
James T PoquetteJapanStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo T MaletFranceIoni Bowcher NEW
Antonio T StockhamCanadaOnyama Limba PROPOSAL
Emily Z DoeIndiaIoni Bowcher NEGOTIATION
Sinclair U BowleyUnited KingdomBernardo Dominic QUALIFIED
Greenwood Z MorascaArgentinaElwin Sharvill NEGOTIATION
Nicolas O GillianGermanyOnyama Limba NEW
Clifford Q VenereRussiaIoni Bowcher UNQUALIFIED
Izzy U WhobreyJapanIoni Bowcher QUALIFIED
Kadeem F DilliardSpainElwin Sharvill PROPOSAL
Salvatore Z ChuiCanadaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Q SergiGermany2026-07-19Commercial Press NEGOTIATION2Ioni Bowcher
1001Maria T ChuiUnited Kingdom2026-07-13Printing Dimensions QUALIFIED98Stephen Shaw
1002Salvatore A DilliardArgentina2026-06-29Benton, John B Jr RENEWAL67Ioni Bowcher
1003David T KuskoFrance2026-06-29King, Christopher A Esq UNQUALIFIED6Bernardo Dominic
1004Misaki Q ButtBrazil2026-07-15Feltz Printing Service NEW78Ioni Bowcher
1005Octavia E PoquetteAustralia2026-07-03Printing Dimensions QUALIFIED74Elwin Sharvill
1006Morrow D BologniaCanada2026-07-23Feiner Bros QUALIFIED90Ioni Bowcher
1007Wickens P KolmetzSpain2026-07-07Chemel, James L Cpa NEGOTIATION67Asiya Javayant
1008Ashley L StensethGermany2026-07-27Rousseaux, Michael Esq PROPOSAL49Onyama Limba
1009Aditya G VenereAustralia2026-07-03Truhlar And Truhlar Attys PROPOSAL70Xuxue Feng
1010Kadeem Q BriddickRussia2026-07-06Chanay, Jeffrey A Esq NEGOTIATION0Bernardo Dominic
1011Claire Z SergiIndia2026-07-07Benton, John B Jr QUALIFIED28Ivan Magalhaes
1012Izzy X MorascaRussia2026-07-07Buckley Miller Wright UNQUALIFIED35Stephen Shaw
1013Aika Y MaletRussia2026-07-02Morlong Associates PROPOSAL91Onyama Limba
1014Smith C MorascaRussia2026-07-05Feiner Bros UNQUALIFIED79Stephen Shaw
1015Clifford D FlosiAustralia2026-07-25Chapman, Ross E Esq NEW84Stephen Shaw
1016Johnson O CaudyArgentina2026-07-17Benton, John B Jr UNQUALIFIED10Stephen Shaw
1017Murillo L IturbideJapan2026-07-11Feltz Printing Service RENEWAL9Amy Elsner
1018Murillo I MacleadFrance2026-07-24Rousseaux, Michael Esq PROPOSAL20Anna Fali
1019Aditya O AmigonFrance2026-07-25Feiner Bros QUALIFIED88Anna Fali
1020Ivar V FerenczItaly2026-07-16Rousseaux, Michael Esq QUALIFIED92Asiya Javayant
1021Emily P SchemmerAustralia2026-07-06Truhlar And Truhlar Attys QUALIFIED19Ioni Bowcher
1022Antonio T MaletBrazil2026-07-26Benton, John B Jr NEW14Amy Elsner
1023Smith Y SlusarskiArgentina2026-07-22Chapman, Ross E Esq NEW7Anna Fali
1024Jennifer F CaudyArgentina2026-07-26Commercial Press RENEWAL1Anna Fali
1025Aika D StensethCanada2026-07-24Dorl, James J Esq NEW2Amy Elsner
1026Smith W PoquetteItaly2026-07-01Rousseaux, Michael Esq UNQUALIFIED83Ioni Bowcher
1027Johnson I AmigonJapan2026-06-28King, Christopher A Esq NEGOTIATION11Onyama Limba
1028Jeanfrancois M CaudyUnited Kingdom2026-07-08Commercial Press QUALIFIED3Elwin Sharvill
1029Misaki A BriddickAustralia2026-06-29Rousseaux, Michael Esq RENEWAL0Elwin Sharvill
1030Jones V RimArgentina2026-07-18Rangoni Of Florence RENEWAL58Anna Fali
1031Francesco L MarrierAustralia2026-07-18Rousseaux, Michael Esq PROPOSAL74Ioni Bowcher
1032Mujtaba G ShinkoGermany2026-07-12Rangoni Of Florence NEW24Xuxue Feng
1033Jennifer S GarufiCanada2026-07-16Commercial Press NEGOTIATION44Onyama Limba
1034Nicolas M AmigonRussia2026-07-05Printing Dimensions UNQUALIFIED79Bernardo Dominic
1035Leja O NestleBrazil2026-07-16Truhlar And Truhlar Attys NEGOTIATION94Asiya Javayant
1036Isabel J WaycottBrazil2026-07-19Chapman, Ross E Esq RENEWAL37Anna Fali
1037Aditya P TollnerRussia2026-07-17Feltz Printing Service RENEWAL18Amy Elsner
1038David R StockhamCanada2026-07-05Chanay, Jeffrey A Esq UNQUALIFIED3Bernardo Dominic
1039Morrow D AlbaresItaly2026-07-18Feltz Printing Service UNQUALIFIED13Asiya Javayant
1040Darci V SaylorsItaly2026-07-11Printing Dimensions NEGOTIATION8Asiya Javayant
1041Jones P RoysterAustralia2026-07-03Dorl, James J Esq NEW21Asiya Javayant
1042Murillo X AmigonRussia2026-07-07Benton, John B Jr NEW63Onyama Limba
1043Darci C NestleUnited Kingdom2026-07-21King, Christopher A Esq PROPOSAL97Anna Fali
1044Rodrigues U VenereBrazil2026-06-29Rangoni Of Florence NEGOTIATION7Ivan Magalhaes
1045Sinclair Z RutaJapan2026-07-11Benton, John B Jr NEGOTIATION33Onyama Limba
1046Mayumi P FlosiBrazil2026-07-11Printing Dimensions QUALIFIED70Bernardo Dominic
1047Costa A FlosiIndia2026-07-22Printing Dimensions PROPOSAL94Stephen Shaw
1048Aditya I StensethItaly2026-07-14Chemel, James L Cpa RENEWAL85Bernardo Dominic
1049Aika A RimSpain2026-07-09Feiner Bros UNQUALIFIED83Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair C MorascaCanadaOnyama Limba UNQUALIFIED
Adams V FollerBrazilAmy Elsner PROPOSAL
Aditya R VocelkaAustraliaIvan Magalhaes NEGOTIATION
Aruna U PaprockiBrazilAmy Elsner QUALIFIED
Maria H RimFranceAsiya Javayant UNQUALIFIED
Ricardo P DoeArgentinaXuxue Feng QUALIFIED
Octavia C WhobreyJapanIoni Bowcher UNQUALIFIED
Silvio I BowleyRussiaElwin Sharvill PROPOSAL
Ivar Q NickaRussiaOnyama Limba NEGOTIATION
Faith H NickaIndiaOnyama Limba NEW
Aika O ButtArgentinaStephen Shaw NEGOTIATION
Morrow M MaletUnited KingdomIoni Bowcher RENEWAL
Kadeem W CampainCanadaIoni Bowcher RENEWAL
Aruna H GlickBrazilXuxue Feng NEGOTIATION
Adams V FlosiGermanyOnyama Limba PROPOSAL
Mayumi R CaldareraJapanIoni Bowcher NEGOTIATION
Jefferson J BologniaFranceXuxue Feng RENEWAL
Leon I NestleAustraliaAsiya Javayant PROPOSAL
Jones Z FollerUnited KingdomBernardo Dominic NEW
Jeanfrancois P AmigonAustraliaAnna Fali NEW
Rodrigues F SaylorsSpainIvan Magalhaes RENEWAL
Maria Y SchemmerItalyOnyama Limba PROPOSAL
Leja J CampainArgentinaXuxue Feng QUALIFIED
James O VenereAustraliaElwin Sharvill PROPOSAL
Silvio Y KuskoGermanyIvan Magalhaes QUALIFIED
Maria N BowleyJapanElwin Sharvill PROPOSAL
Greenwood O ButtSpainAnna Fali NEW
Alejandro G MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Arvin C OstroskyBrazilAsiya Javayant RENEWAL
Ivar U FollerGermanyElwin Sharvill QUALIFIED
Jefferson M MarrierIndiaIvan Magalhaes RENEWAL
Maria U PerinArgentinaAmy Elsner RENEWAL
Antonio J SergiJapanAmy Elsner PROPOSAL
Smith A ButtArgentinaAnna Fali PROPOSAL
Darci Z ShinkoAustraliaAmy Elsner PROPOSAL
Wickens Y FollerCanadaAsiya Javayant PROPOSAL
Rodrigues F BriddickAustraliaOnyama Limba RENEWAL
Faith T GlickItalyIoni Bowcher NEGOTIATION
Leja Y MorascaSpainOnyama Limba NEGOTIATION
Tony A MaletCanadaIvan Magalhaes QUALIFIED
Arvin J FigeroaRussiaXuxue Feng RENEWAL
Ricardo X StensethBrazilIoni Bowcher NEGOTIATION
Octavia S PerinCanadaIvan Magalhaes QUALIFIED
Clifford H WhobreyBrazilStephen Shaw RENEWAL
Leja P SergiSpainAsiya Javayant NEW
Costa Q VocelkaAustraliaAmy Elsner UNQUALIFIED
Julie O SchemmerCanadaAmy Elsner NEW
Mayumi C TollnerArgentinaBernardo Dominic NEGOTIATION
Octavia M AlbaresGermanyIvan Magalhaes QUALIFIED
Maisha V GauchoSpainXuxue Feng PROPOSAL
Frozen Columns
Name
Costa H Royster
Aika U Malet
Antonio K Ferencz
Antonio C Paprocki
Alejandro N Garufi
Clifford Y Ruta
Faith Z Briddick
Juan X Gillian
Rodrigues D Inouye
Adams A Albares
Aika J Inouye
Munro L Venere
Munro A Ruta
Ricardo D Ferencz
Kaitlin A Sergi
Silvio B Venere
Claire H Ruta
Stacey Z Ostrosky
Julie S Shinko
Silvio K Stenseth
Darci C Bowley
Emily F Vocelka
Aditya C Rim
Faith W Perin
Alejandro V Briddick
Francesco A Stenseth
Emily A Chui
Chavez W Dilliard
Arvin E Shinko
Julie M Stenseth
Antonio E Garufi
Chavez F Kolmetz
Ivar X Royster
Jeanfrancois C Bolognia
Maisha T Briddick
Jennifer Q Foller
Murillo P Sergi
Jennifer S Nicka
Adams V Amigon
Chavez O Waycott
Deepesh Z Inouye
Isabel M Glick
Rodrigues R Kusko
Misaki J Royster
Kadeem M Whobrey
David A Briddick
Jennifer I Bolognia
Arvin A Inouye
Morrow A Stenseth
Costa G Darakjy
IdCountryDate
1000Italy2026-06-29
1001Spain2026-07-03
1002Australia2026-07-21
1003Australia2026-07-07
1004Brazil2026-07-04
1005Japan2026-07-07
1006United Kingdom2026-07-07
1007Germany2026-07-12
1008Japan2026-07-22
1009Russia2026-07-24
1010Spain2026-07-14
1011Brazil2026-07-21
1012Germany2026-06-28
1013Italy2026-07-13
1014Germany2026-07-04
1015India2026-06-30
1016Russia2026-07-06
1017Canada2026-07-20
1018Spain2026-07-17
1019India2026-07-21
1020Japan2026-07-22
1021Germany2026-06-30
1022Australia2026-07-22
1023Brazil2026-07-12
1024India2026-07-17
1025Italy2026-07-10
1026Russia2026-07-25
1027Italy2026-07-14
1028Japan2026-07-18
1029Canada2026-07-13
1030Argentina2026-07-12
1031Spain2026-07-25
1032Spain2026-07-01
1033Japan2026-07-16
1034United Kingdom2026-07-08
1035Argentina2026-07-06
1036Brazil2026-07-10
1037Russia2026-07-05
1038Italy2026-07-27
1039Spain2026-07-06
1040India2026-07-19
1041United Kingdom2026-07-26
1042Argentina2026-07-26
1043Spain2026-07-11
1044Russia2026-07-02
1045Canada2026-06-30
1046Spain2026-07-26
1047Spain2026-07-01
1048Germany2026-06-30
1049United Kingdom2026-07-06

On-Demand Data

NameIdCountryDate
Stacey R Waycott1000Russia2026-07-19
Faith O Flosi1001France2026-07-06
Julie I Caudy1002Germany2026-07-26
Claire Z Stenseth1003Russia2026-07-05
Kaitlin V Doe1004Spain2026-07-21
Leon D Amigon1005Italy2026-07-16
David Y Ruta1006Canada2026-07-03
Ashley P Ostrosky1007Argentina2026-07-01
Clifford T Oldroyd1008Spain2026-07-05
Jones T Flosi1009Japan2026-07-26
Stacey I Royster1010Argentina2026-07-09
Chavez S Wieser1011Russia2026-07-11
Maisha G Waycott1012Canada2026-07-15
Costa C Ostrosky1013Russia2026-07-23
Chavez Q Foller1014Canada2026-07-18
Alejandro B Nicka1015Argentina2026-07-17
Sinclair M Bolognia1016Germany2026-07-21
Deepesh C Shinko1017United Kingdom2026-06-28
Chavez L Sergi1018France2026-07-18
Adams V Iturbide1019Canada2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin P SaylorsFranceAnna Fali RENEWAL
Cody I VocelkaAustraliaBernardo Dominic QUALIFIED
Aika M BologniaRussiaStephen Shaw PROPOSAL
Adams C StensethUnited KingdomIoni Bowcher NEGOTIATION
David Y FlosiRussiaElwin Sharvill UNQUALIFIED
Cody Z FerenczUnited KingdomIvan Magalhaes NEW
Smith L CaudyItalyXuxue Feng UNQUALIFIED
Ashley L DoeSpainAsiya Javayant RENEWAL
Adams V SaylorsBrazilAsiya Javayant QUALIFIED
Jennifer L KuskoAustraliaStephen Shaw NEW
Munro Z RimCanadaElwin Sharvill RENEWAL
Octavia S CampainUnited KingdomXuxue Feng RENEWAL
Ricardo G SergiJapanOnyama Limba RENEWAL
Munro Q AlbaresIndiaElwin Sharvill RENEWAL
Salvatore O FlosiFranceAnna Fali UNQUALIFIED
Arvin U SaylorsGermanyAsiya Javayant QUALIFIED
Stacey V GillianUnited KingdomAnna Fali NEW
Jennifer D GlickJapanOnyama Limba RENEWAL
Jeanfrancois O CaldareraUnited KingdomElwin Sharvill RENEWAL
Octavia N KuskoArgentinaBernardo Dominic NEW
Silvio Q CaldareraIndiaAsiya Javayant RENEWAL
Juan Z VocelkaRussiaXuxue Feng NEGOTIATION
Clifford K FlosiAustraliaIvan Magalhaes NEW
Cody E PoquetteAustraliaElwin Sharvill QUALIFIED
Octavia I OldroydBrazilAnna Fali RENEWAL
Silvio P MaletFranceAmy Elsner QUALIFIED
Cody G FlosiRussiaAsiya Javayant PROPOSAL
Munro E SaylorsRussiaBernardo Dominic PROPOSAL
Maisha M MaletSpainAnna Fali QUALIFIED
Faith T MorascaBrazilIvan Magalhaes UNQUALIFIED
Aditya N WieserCanadaIvan Magalhaes UNQUALIFIED
Ricardo D StockhamCanadaXuxue Feng QUALIFIED
Izzy F RimUnited KingdomIoni Bowcher PROPOSAL
Cody I WaycottCanadaBernardo Dominic UNQUALIFIED
Murillo A SergiAustraliaOnyama Limba PROPOSAL
Ashley Q BowleyIndiaAsiya Javayant UNQUALIFIED
Nicolas T WaycottBrazilStephen Shaw NEW
Cody Z ShinkoSpainAmy Elsner NEGOTIATION
Jones X PaprockiUnited KingdomBernardo Dominic RENEWAL
Tony A FollerAustraliaIoni Bowcher 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>