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
Arvin C PoquetteIndiaElwin Sharvill NEW
Maria T SchemmerJapanOnyama Limba NEW
Maria P WhobreyArgentinaAmy Elsner RENEWAL
Juan L PoquetteSpainOnyama Limba QUALIFIED
Aditya B PerinRussiaAmy Elsner NEW
Morrow M PerinIndiaIoni Bowcher PROPOSAL
Izzy K SchemmerRussiaBernardo Dominic RENEWAL
Isabel R ButtRussiaStephen Shaw NEGOTIATION
Jennifer X MaletAustraliaAnna Fali NEW
Julie D DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Leja Y CaldareraFranceXuxue Feng NEGOTIATION
Aruna X MaletRussiaElwin Sharvill NEGOTIATION
Jefferson P BriddickItalyIvan Magalhaes NEW
David N InouyeFranceElwin Sharvill QUALIFIED
Ricardo D TollnerRussiaIvan Magalhaes NEW
Isabel Q GauchoRussiaXuxue Feng QUALIFIED
Maisha I MarrierFranceBernardo Dominic RENEWAL
Munro X CampainFranceAnna Fali UNQUALIFIED
Maria K GarufiIndiaXuxue Feng NEW
Isabel F NickaJapanAmy Elsner RENEWAL
Faith K AmigonJapanAnna Fali NEW
Johnson L DarakjyJapanStephen Shaw PROPOSAL
Francesco U CaudyCanadaAnna Fali RENEWAL
Adams K WaycottItalyStephen Shaw PROPOSAL
Murillo I RulapaughArgentinaAnna Fali UNQUALIFIED
Salvatore O GillianItalyAnna Fali QUALIFIED
Misaki V NestleSpainBernardo Dominic QUALIFIED
Aika B GillianFranceOnyama Limba NEW
Julie T FlosiSpainAsiya Javayant QUALIFIED
Nicolas G DilliardJapanOnyama Limba NEW
Juan L MacleadItalyElwin Sharvill PROPOSAL
Mayumi S KuskoJapanXuxue Feng UNQUALIFIED
James W AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Octavia I VocelkaJapanBernardo Dominic NEGOTIATION
Johnson I CaudyItalyIoni Bowcher RENEWAL
Jefferson I BowleyGermanyAnna Fali PROPOSAL
Maria O ButtFranceStephen Shaw UNQUALIFIED
Izzy Q SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Ivar Q DarakjyJapanAmy Elsner NEW
Costa I RutaArgentinaAsiya Javayant UNQUALIFIED
Silvio N TollnerArgentinaXuxue Feng NEW
Mujtaba P StensethAustraliaElwin Sharvill NEGOTIATION
David Y MarrierCanadaIoni Bowcher RENEWAL
Aditya T MaletSpainIoni Bowcher NEGOTIATION
Stacey I PoquetteSpainXuxue Feng PROPOSAL
Silvio Q ShinkoAustraliaAnna Fali RENEWAL
Jones B InouyeSpainAnna Fali PROPOSAL
Maisha H SergiSpainAsiya Javayant RENEWAL
Faith Y CampainRussiaElwin Sharvill UNQUALIFIED
Stacey V ShinkoRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams R DoeSpainElwin Sharvill RENEWAL
Kaitlin L AmigonAustraliaXuxue Feng UNQUALIFIED
Wickens U FerenczJapanAnna Fali RENEWAL
Adams B PaprockiRussiaStephen Shaw NEGOTIATION
Francesco C FerenczArgentinaIoni Bowcher NEW
Julie F VenereAustraliaStephen Shaw NEGOTIATION
Cody K MacleadBrazilBernardo Dominic QUALIFIED
Jennifer D PerinRussiaAmy Elsner QUALIFIED
Chavez Z MarrierIndiaAmy Elsner NEGOTIATION
Maisha X FerenczGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo V ChuiArgentina2026-07-21Feltz Printing Service NEW8Bernardo Dominic
1001Deepesh Z IturbideSpain2026-07-25Printing Dimensions NEW58Asiya Javayant
1002Murillo E MaletArgentina2026-08-07Chemel, James L Cpa QUALIFIED21Amy Elsner
1003James B BriddickBrazil2026-07-26Feltz Printing Service NEW87Ioni Bowcher
1004Aditya F MarrierArgentina2026-08-03King, Christopher A Esq RENEWAL59Xuxue Feng
1005Tony R CaldareraIndia2026-08-01Dorl, James J Esq NEGOTIATION96Onyama Limba
1006Leon V DarakjyGermany2026-07-30Benton, John B Jr RENEWAL42Onyama Limba
1007Claire V GlickRussia2026-07-23Rangoni Of Florence UNQUALIFIED14Elwin Sharvill
1008Faith L GlickFrance2026-07-24Chemel, James L Cpa UNQUALIFIED46Onyama Limba
1009Emily R AlbaresBrazil2026-07-21Chapman, Ross E Esq NEW50Asiya Javayant
1010Morrow Q ShinkoIndia2026-07-18Dorl, James J Esq PROPOSAL99Asiya Javayant
1011Kaitlin Y AlbaresFrance2026-07-29Truhlar And Truhlar Attys UNQUALIFIED31Bernardo Dominic
1012David U PoquetteFrance2026-07-14Printing Dimensions PROPOSAL18Amy Elsner
1013Jefferson Z ButtCanada2026-07-17Chemel, James L Cpa RENEWAL80Amy Elsner
1014Izzy P OldroydCanada2026-08-07Buckley Miller Wright QUALIFIED39Asiya Javayant
1015Deepesh X PaprockiBrazil2026-07-15Buckley Miller Wright NEGOTIATION59Onyama Limba
1016Deepesh W FerenczJapan2026-07-23Feiner Bros NEGOTIATION92Ioni Bowcher
1017Darci V SaylorsIndia2026-07-10Commercial Press RENEWAL36Elwin Sharvill
1018Jennifer S MorascaUnited Kingdom2026-08-03Chapman, Ross E Esq PROPOSAL32Bernardo Dominic
1019Francesco I VenereBrazil2026-07-12Dorl, James J Esq PROPOSAL31Asiya Javayant
1020Jeanfrancois C ChuiArgentina2026-08-07Chemel, James L Cpa NEW70Asiya Javayant
1021Misaki K TollnerIndia2026-07-24Dorl, James J Esq NEGOTIATION96Ioni Bowcher
1022Alejandro A RoysterArgentina2026-07-24Benton, John B Jr PROPOSAL89Ioni Bowcher
1023Kaitlin W AmigonAustralia2026-07-14Rousseaux, Michael Esq NEGOTIATION15Xuxue Feng
1024Cody O GillianJapan2026-08-07Truhlar And Truhlar Attys UNQUALIFIED49Amy Elsner
1025Deepesh Y CampainItaly2026-07-31Feiner Bros NEGOTIATION69Elwin Sharvill
1026Costa D BowleyAustralia2026-08-05Rangoni Of Florence UNQUALIFIED50Xuxue Feng
1027Kaitlin T KolmetzSpain2026-07-19Rangoni Of Florence NEW38Elwin Sharvill
1028Aika L GarufiAustralia2026-07-12Chanay, Jeffrey A Esq UNQUALIFIED8Xuxue Feng
1029Antonio W DoeJapan2026-07-14Chanay, Jeffrey A Esq QUALIFIED99Anna Fali
1030Maria P BowleyAustralia2026-07-17Dorl, James J Esq PROPOSAL6Anna Fali
1031Misaki J TollnerBrazil2026-08-01Printing Dimensions QUALIFIED28Onyama Limba
1032Maria T AlbaresItaly2026-07-15Benton, John B Jr RENEWAL45Xuxue Feng
1033Morrow C MaletFrance2026-07-25Printing Dimensions NEW16Amy Elsner
1034Isabel J CaudyBrazil2026-07-17Truhlar And Truhlar Attys NEGOTIATION54Elwin Sharvill
1035Emily O OstroskyGermany2026-08-07Feiner Bros UNQUALIFIED89Asiya Javayant
1036Greenwood Y FlosiAustralia2026-08-05Morlong Associates RENEWAL53Stephen Shaw
1037Aruna Y MarrierFrance2026-07-29Printing Dimensions PROPOSAL80Onyama Limba
1038Jefferson H NestleBrazil2026-07-19Buckley Miller Wright UNQUALIFIED36Stephen Shaw
1039Wickens Y PaprockiUnited Kingdom2026-07-09Truhlar And Truhlar Attys PROPOSAL64Ioni Bowcher
1040Wickens V StockhamCanada2026-07-28Commercial Press NEGOTIATION52Anna Fali
1041Sinclair G RulapaughIndia2026-07-17Morlong Associates NEGOTIATION94Elwin Sharvill
1042Morrow J FerenczIndia2026-07-19Morlong Associates PROPOSAL24Amy Elsner
1043Ashley U RulapaughJapan2026-07-29Printing Dimensions NEGOTIATION60Ivan Magalhaes
1044Julie P PaprockiGermany2026-08-07King, Christopher A Esq UNQUALIFIED41Ivan Magalhaes
1045Clifford Q DoeJapan2026-08-06Feltz Printing Service NEGOTIATION59Anna Fali
1046Maria W StockhamItaly2026-08-04Rangoni Of Florence UNQUALIFIED98Anna Fali
1047Jennifer Q GauchoArgentina2026-07-13Rangoni Of Florence QUALIFIED1Ioni Bowcher
1048Cody Z AmigonUnited Kingdom2026-07-13Truhlar And Truhlar Attys NEGOTIATION84Ivan Magalhaes
1049Mujtaba Z WieserIndia2026-07-25Feiner Bros NEW31Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem G NestleSpainAsiya Javayant RENEWAL
Claire T FlosiBrazilXuxue Feng NEGOTIATION
Ashley M SaylorsArgentinaXuxue Feng PROPOSAL
David C PoquetteUnited KingdomXuxue Feng NEGOTIATION
Alejandro H IturbideRussiaAsiya Javayant RENEWAL
Morrow L CaldareraItalyOnyama Limba NEGOTIATION
Octavia R SlusarskiBrazilIvan Magalhaes NEGOTIATION
Johnson H GauchoCanadaIvan Magalhaes NEGOTIATION
Ivar W ShinkoSpainAmy Elsner QUALIFIED
Smith O CampainAustraliaAsiya Javayant NEW
Izzy H GlickFranceAnna Fali PROPOSAL
Mujtaba L VenereFranceXuxue Feng NEGOTIATION
Nicolas L KuskoFranceAmy Elsner QUALIFIED
Ashley E MaletRussiaAmy Elsner QUALIFIED
Chavez T SchemmerJapanXuxue Feng RENEWAL
Cody P KolmetzGermanyIoni Bowcher NEGOTIATION
Salvatore L ButtSpainIvan Magalhaes NEGOTIATION
Rodrigues I PaprockiSpainAmy Elsner NEW
Johnson B FigeroaItalyElwin Sharvill UNQUALIFIED
Aruna Q AlbaresRussiaOnyama Limba NEW
Claire Q FerenczIndiaIoni Bowcher NEW
Clifford D NickaIndiaBernardo Dominic NEGOTIATION
Ashley I StensethGermanyAnna Fali RENEWAL
Stacey U SaylorsIndiaElwin Sharvill QUALIFIED
Kadeem L MaletAustraliaAmy Elsner PROPOSAL
Tony X TollnerFranceXuxue Feng NEGOTIATION
Cody Z InouyeUnited KingdomAmy Elsner NEGOTIATION
David O VocelkaAustraliaXuxue Feng NEGOTIATION
Aditya R InouyeItalyAsiya Javayant RENEWAL
Sinclair U IturbideFranceBernardo Dominic PROPOSAL
Jones A StockhamBrazilAsiya Javayant QUALIFIED
Isabel V RulapaughCanadaStephen Shaw NEGOTIATION
Maisha V PaprockiJapanBernardo Dominic PROPOSAL
Octavia Q OldroydArgentinaElwin Sharvill NEGOTIATION
Mayumi G NickaFranceStephen Shaw NEW
Octavia S TollnerAustraliaAnna Fali RENEWAL
Smith E DarakjyBrazilAmy Elsner QUALIFIED
Greenwood K RoysterFranceXuxue Feng PROPOSAL
Arvin F SergiArgentinaAsiya Javayant RENEWAL
Arvin D DilliardFranceBernardo Dominic NEGOTIATION
Nicolas T StockhamBrazilStephen Shaw NEGOTIATION
Sinclair M SlusarskiSpainAnna Fali UNQUALIFIED
Greenwood L OldroydIndiaElwin Sharvill RENEWAL
Jefferson G BriddickAustraliaElwin Sharvill PROPOSAL
Tony F MaletJapanStephen Shaw RENEWAL
Claire U IturbideUnited KingdomBernardo Dominic NEGOTIATION
Cody Z KuskoBrazilElwin Sharvill UNQUALIFIED
Jefferson T ButtBrazilIvan Magalhaes PROPOSAL
Darci N PoquetteAustraliaAsiya Javayant UNQUALIFIED
Morrow C CampainFranceBernardo Dominic PROPOSAL
Frozen Columns
Name
Alejandro J Iturbide
James N Whobrey
Deepesh O Bowley
Jennifer O Inouye
Sinclair I Kolmetz
Octavia N Maclead
David U Garufi
Adams V Ferencz
Kaitlin D Royster
Nicolas N Dilliard
Arvin Y Poquette
Wickens G Oldroyd
Alejandro T Morasca
David C Figeroa
Greenwood X Ruta
Johnson N Figeroa
Murillo H Nestle
Rodrigues D Caudy
Morrow P Doe
Munro V Campain
Octavia W Glick
Morrow J Malet
Jennifer I Rulapaugh
Tony M Figeroa
Sinclair Y Garufi
Adams P Sergi
Juan T Slusarski
Murillo N Ruta
Mayumi D Kolmetz
Izzy Y Ostrosky
Alejandro E Doe
Wickens H Wieser
Misaki P Inouye
Misaki O Albares
Silvio V Maclead
Ivar W Darakjy
Tony J Stockham
Stacey V Kusko
Stacey T Caldarera
Aruna G Ostrosky
Sinclair V Schemmer
Clifford I Iturbide
Kaitlin Q Whobrey
Sinclair C Gillian
Aditya D Royster
David K Rim
Stacey X Foller
Smith W Campain
Mujtaba L Vocelka
Jones C Iturbide
IdCountryDate
1000France2026-07-22
1001Russia2026-07-21
1002France2026-07-18
1003India2026-08-05
1004Germany2026-07-21
1005France2026-07-27
1006Germany2026-07-31
1007Australia2026-07-24
1008France2026-08-02
1009Russia2026-08-02
1010Canada2026-07-20
1011United Kingdom2026-07-10
1012France2026-08-04
1013Russia2026-07-16
1014Brazil2026-07-18
1015Japan2026-07-16
1016Italy2026-07-24
1017Russia2026-07-29
1018Russia2026-07-19
1019Italy2026-08-03
1020Argentina2026-08-04
1021Italy2026-07-29
1022Russia2026-07-20
1023Japan2026-08-02
1024Russia2026-07-11
1025Russia2026-07-09
1026Brazil2026-07-18
1027Russia2026-07-18
1028Italy2026-07-09
1029France2026-07-14
1030Spain2026-07-19
1031Canada2026-07-19
1032Japan2026-07-10
1033Brazil2026-08-05
1034Italy2026-08-06
1035Australia2026-08-01
1036Canada2026-07-26
1037Spain2026-07-14
1038Italy2026-08-01
1039Canada2026-07-28
1040Russia2026-07-10
1041Japan2026-07-31
1042Russia2026-08-03
1043Spain2026-07-18
1044United Kingdom2026-07-19
1045Japan2026-07-11
1046Italy2026-07-13
1047Japan2026-07-10
1048United Kingdom2026-07-12
1049Germany2026-07-09

On-Demand Data

NameIdCountryDate
Arvin S Gillian1000Russia2026-07-28
Deepesh N Kusko1001Argentina2026-07-17
Kaitlin L Schemmer1002Russia2026-07-26
Aika H Inouye1003Russia2026-08-06
Mayumi J Bowley1004Russia2026-07-15
Darci F Foller1005United Kingdom2026-07-30
Jeanfrancois T Figeroa1006Brazil2026-08-06
Claire X Amigon1007France2026-07-09
Deepesh X Nestle1008Russia2026-07-17
Johnson V Nicka1009Australia2026-07-11
Alejandro F Poquette1010Argentina2026-07-26
Wickens M Poquette1011Argentina2026-07-11
Maisha C Stenseth1012United Kingdom2026-07-27
Arvin A Wieser1013Australia2026-07-27
Aruna E Gaucho1014Brazil2026-07-14
Silvio V Kusko1015Argentina2026-07-22
Izzy Q Slusarski1016Brazil2026-07-20
Kaitlin V Nicka1017Brazil2026-07-18
Emily T Ruta1018Russia2026-07-18
Murillo L Kusko1019India2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro S OldroydRussiaElwin Sharvill NEGOTIATION
Nicolas C SaylorsFranceIoni Bowcher PROPOSAL
Mujtaba C FerenczSpainIvan Magalhaes RENEWAL
Aditya J BowleyUnited KingdomAmy Elsner RENEWAL
Jeanfrancois D FerenczArgentinaBernardo Dominic NEGOTIATION
Munro F SergiIndiaAnna Fali PROPOSAL
Aditya I FlosiUnited KingdomAnna Fali NEW
Johnson Z PoquetteJapanAsiya Javayant UNQUALIFIED
Aruna U PaprockiRussiaAnna Fali UNQUALIFIED
Kadeem O GlickGermanyStephen Shaw NEW
Kadeem T DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Claire T WieserCanadaIvan Magalhaes NEW
Mujtaba N CampainJapanElwin Sharvill QUALIFIED
Francesco A SchemmerSpainElwin Sharvill UNQUALIFIED
Nicolas V BologniaGermanyElwin Sharvill NEGOTIATION
Ivar G AlbaresIndiaIvan Magalhaes PROPOSAL
Maria V OstroskyUnited KingdomIvan Magalhaes QUALIFIED
James T MacleadItalyXuxue Feng UNQUALIFIED
Clifford G RimCanadaStephen Shaw RENEWAL
Chavez U SaylorsJapanXuxue Feng PROPOSAL
Nicolas E DilliardItalyBernardo Dominic PROPOSAL
Leja P WhobreyAustraliaOnyama Limba NEW
Octavia V MacleadItalyAmy Elsner PROPOSAL
Faith A NickaBrazilAnna Fali RENEWAL
Greenwood W IturbideAustraliaIvan Magalhaes QUALIFIED
Alejandro M RoysterFranceAnna Fali RENEWAL
Munro R FollerItalyXuxue Feng QUALIFIED
Claire Y GauchoIndiaIoni Bowcher RENEWAL
Wickens S MorascaItalyAnna Fali QUALIFIED
Ivar U MaletIndiaAmy Elsner NEW
Aditya H PoquetteBrazilBernardo Dominic QUALIFIED
Smith X RoysterArgentinaAsiya Javayant NEW
Ivar F FigeroaItalyBernardo Dominic QUALIFIED
Octavia N SaylorsCanadaAsiya Javayant PROPOSAL
Darci P RimBrazilAmy Elsner NEGOTIATION
Claire K InouyeRussiaIvan Magalhaes PROPOSAL
Ashley J SaylorsGermanyIvan Magalhaes PROPOSAL
Julie E FollerCanadaOnyama Limba UNQUALIFIED
Francesco T NickaItalyAmy Elsner UNQUALIFIED
Claire B SchemmerAustraliaIvan Magalhaes QUALIFIED

<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>