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
Salvatore T SaylorsJapanElwin Sharvill QUALIFIED
Nicolas F SergiBrazilAnna Fali NEGOTIATION
Maisha V StensethSpainIvan Magalhaes PROPOSAL
Deepesh H MaletJapanAsiya Javayant NEW
Kadeem Z WaycottBrazilAsiya Javayant UNQUALIFIED
Arvin Y PerinSpainOnyama Limba PROPOSAL
Salvatore K SergiBrazilOnyama Limba UNQUALIFIED
Jeanfrancois C ButtGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois Q StensethJapanBernardo Dominic PROPOSAL
Emily W ButtRussiaElwin Sharvill NEGOTIATION
Murillo L MorascaAustraliaOnyama Limba QUALIFIED
Juan L RimBrazilIvan Magalhaes QUALIFIED
Ricardo P DoeRussiaXuxue Feng UNQUALIFIED
Clifford I MaletGermanyBernardo Dominic NEGOTIATION
Aika M MorascaBrazilAmy Elsner RENEWAL
Nicolas W IturbideAustraliaStephen Shaw RENEWAL
Munro L CaudyRussiaAsiya Javayant RENEWAL
Isabel E CaldareraFranceBernardo Dominic NEW
Aruna H WhobreyUnited KingdomAnna Fali RENEWAL
Octavia M WhobreyUnited KingdomStephen Shaw PROPOSAL
Aika L AmigonRussiaOnyama Limba UNQUALIFIED
Maisha X FlosiArgentinaIoni Bowcher UNQUALIFIED
Maisha P StockhamItalyAnna Fali NEGOTIATION
David Y SchemmerGermanyAsiya Javayant PROPOSAL
Munro Y MaletRussiaElwin Sharvill PROPOSAL
Darci U AmigonJapanBernardo Dominic QUALIFIED
Johnson B MaletBrazilBernardo Dominic QUALIFIED
Juan D WhobreyArgentinaXuxue Feng RENEWAL
Adams H KuskoCanadaIvan Magalhaes QUALIFIED
Antonio I GillianJapanAsiya Javayant UNQUALIFIED
Johnson B CampainBrazilElwin Sharvill NEGOTIATION
Munro N ChuiJapanIvan Magalhaes RENEWAL
Ivar E MarrierSpainElwin Sharvill UNQUALIFIED
Salvatore M VenereBrazilXuxue Feng UNQUALIFIED
Arvin B KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Isabel R FollerCanadaOnyama Limba NEW
Jennifer Q ButtGermanyIoni Bowcher QUALIFIED
Julie T InouyeItalyXuxue Feng PROPOSAL
Tony F StensethCanadaIoni Bowcher PROPOSAL
Wickens V AlbaresFranceAnna Fali NEW
David G StockhamSpainIvan Magalhaes NEW
Greenwood H RulapaughArgentinaAnna Fali NEGOTIATION
Izzy Q TollnerArgentinaAnna Fali PROPOSAL
Johnson R MaletRussiaXuxue Feng NEW
Mayumi L MorascaRussiaAnna Fali QUALIFIED
Aika N BologniaGermanyOnyama Limba NEW
Francesco Z ChuiUnited KingdomOnyama Limba NEGOTIATION
Silvio K CaldareraJapanIoni Bowcher NEGOTIATION
Faith R DilliardItalyAnna Fali NEGOTIATION
Ashley U CampainSpainBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon Q CaudyCanadaOnyama Limba QUALIFIED
Juan P CaldareraItalyIvan Magalhaes RENEWAL
Ivar T RoysterIndiaStephen Shaw PROPOSAL
Morrow E SlusarskiArgentinaAsiya Javayant RENEWAL
Leja V DoeRussiaAsiya Javayant QUALIFIED
David P BologniaFranceIvan Magalhaes PROPOSAL
Rodrigues C RimUnited KingdomXuxue Feng PROPOSAL
Mujtaba K VenereArgentinaIvan Magalhaes RENEWAL
Ashley P RimArgentinaStephen Shaw RENEWAL
Octavia T CaldareraItalyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood O FlosiGermany2026-06-29Chapman, Ross E Esq QUALIFIED56Asiya Javayant
1001Jefferson B MacleadJapan2026-06-26Chanay, Jeffrey A Esq PROPOSAL89Stephen Shaw
1002Sinclair U MaletBrazil2026-07-01Truhlar And Truhlar Attys NEGOTIATION88Onyama Limba
1003Murillo J NickaCanada2026-07-18Chanay, Jeffrey A Esq QUALIFIED30Xuxue Feng
1004Morrow Q WaycottRussia2026-07-18Feiner Bros NEGOTIATION45Stephen Shaw
1005Wickens R TollnerUnited Kingdom2026-07-13Chanay, Jeffrey A Esq NEW97Anna Fali
1006Misaki C StockhamJapan2026-07-19Truhlar And Truhlar Attys NEGOTIATION12Xuxue Feng
1007Octavia U KuskoRussia2026-07-11Chapman, Ross E Esq NEGOTIATION69Ivan Magalhaes
1008Leon S FlosiSpain2026-06-25King, Christopher A Esq QUALIFIED22Asiya Javayant
1009Julie E BowleyCanada2026-07-01Printing Dimensions PROPOSAL27Ioni Bowcher
1010Ivar U NestleItaly2026-07-13Chapman, Ross E Esq QUALIFIED55Amy Elsner
1011Chavez I GarufiUnited Kingdom2026-07-04Chapman, Ross E Esq NEGOTIATION87Xuxue Feng
1012Deepesh N BowleyGermany2026-07-16Morlong Associates UNQUALIFIED1Elwin Sharvill
1013Smith I StensethIndia2026-06-23Morlong Associates NEGOTIATION71Bernardo Dominic
1014Salvatore T RutaIndia2026-06-23Dorl, James J Esq RENEWAL58Stephen Shaw
1015Alejandro U VenereAustralia2026-07-10Rangoni Of Florence PROPOSAL60Stephen Shaw
1016Aruna N OldroydAustralia2026-06-27Feltz Printing Service PROPOSAL66Bernardo Dominic
1017Alejandro P KolmetzCanada2026-07-07Truhlar And Truhlar Attys QUALIFIED83Stephen Shaw
1018Alejandro V FigeroaIndia2026-06-23Dorl, James J Esq RENEWAL7Bernardo Dominic
1019David L AlbaresUnited Kingdom2026-07-11Morlong Associates PROPOSAL68Xuxue Feng
1020Cody A TollnerRussia2026-07-18Rousseaux, Michael Esq RENEWAL90Asiya Javayant
1021Arvin V VenereFrance2026-06-23Feiner Bros NEGOTIATION32Ivan Magalhaes
1022Alejandro V GarufiFrance2026-06-28Commercial Press QUALIFIED43Ioni Bowcher
1023Adams U SergiGermany2026-07-20Chanay, Jeffrey A Esq QUALIFIED56Ivan Magalhaes
1024David K OldroydAustralia2026-07-01Buckley Miller Wright RENEWAL75Ivan Magalhaes
1025Mayumi W IturbideRussia2026-07-14Chemel, James L Cpa QUALIFIED53Ioni Bowcher
1026Izzy Q WaycottBrazil2026-07-03Buckley Miller Wright NEGOTIATION12Bernardo Dominic
1027Aika V SaylorsSpain2026-07-01Chemel, James L Cpa UNQUALIFIED27Anna Fali
1028Jeanfrancois I WhobreyAustralia2026-06-27Rangoni Of Florence RENEWAL31Xuxue Feng
1029Wickens W SchemmerUnited Kingdom2026-06-29Rousseaux, Michael Esq NEW21Onyama Limba
1030Arvin G ShinkoIndia2026-07-19Chapman, Ross E Esq NEGOTIATION49Ivan Magalhaes
1031Misaki O DoeBrazil2026-06-25Chemel, James L Cpa RENEWAL54Anna Fali
1032Johnson D ChuiFrance2026-07-10Feiner Bros QUALIFIED45Anna Fali
1033Mayumi B SchemmerAustralia2026-06-21Rangoni Of Florence NEGOTIATION43Ivan Magalhaes
1034Antonio Z WieserFrance2026-07-13Buckley Miller Wright PROPOSAL50Amy Elsner
1035Adams J MaletGermany2026-06-25Rousseaux, Michael Esq QUALIFIED74Bernardo Dominic
1036Kadeem O FigeroaJapan2026-07-14Buckley Miller Wright QUALIFIED94Xuxue Feng
1037Ricardo Q KuskoAustralia2026-07-20King, Christopher A Esq PROPOSAL37Onyama Limba
1038Alejandro Q MacleadRussia2026-07-09Chapman, Ross E Esq NEW0Asiya Javayant
1039Greenwood O ShinkoIndia2026-07-19Chapman, Ross E Esq PROPOSAL82Asiya Javayant
1040Jones U BologniaFrance2026-07-06Chemel, James L Cpa RENEWAL33Anna Fali
1041Maisha J DoeBrazil2026-06-25Chanay, Jeffrey A Esq NEGOTIATION91Ivan Magalhaes
1042Jeanfrancois O ChuiFrance2026-07-07King, Christopher A Esq RENEWAL30Elwin Sharvill
1043Mayumi A BologniaJapan2026-07-08Feiner Bros RENEWAL59Anna Fali
1044Clifford A StensethSpain2026-06-21Printing Dimensions NEW6Elwin Sharvill
1045Mayumi W SergiRussia2026-07-07Commercial Press QUALIFIED31Amy Elsner
1046Darci Z SaylorsJapan2026-06-27Morlong Associates RENEWAL19Xuxue Feng
1047Aika S BowleyArgentina2026-06-30King, Christopher A Esq RENEWAL78Ivan Magalhaes
1048Smith E VocelkaFrance2026-06-29Chapman, Ross E Esq QUALIFIED61Amy Elsner
1049Chavez J GlickCanada2026-07-09Feltz Printing Service RENEWAL53Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Cody X SchemmerGermanyIoni Bowcher PROPOSAL
Ivar G AmigonJapanIvan Magalhaes NEW
James E BriddickSpainIoni Bowcher UNQUALIFIED
Silvio N SergiIndiaBernardo Dominic PROPOSAL
Ashley X WieserBrazilElwin Sharvill NEGOTIATION
Mujtaba A OstroskySpainElwin Sharvill QUALIFIED
Aditya F SaylorsAustraliaAsiya Javayant PROPOSAL
Alejandro Q OldroydRussiaBernardo Dominic NEGOTIATION
Jones Q DarakjyBrazilAmy Elsner RENEWAL
James J NestleRussiaXuxue Feng PROPOSAL
Maria U SergiCanadaBernardo Dominic NEGOTIATION
Chavez J DarakjyBrazilIoni Bowcher UNQUALIFIED
Sinclair P SaylorsBrazilAsiya Javayant PROPOSAL
Leon R MacleadSpainIvan Magalhaes PROPOSAL
Munro J BologniaCanadaBernardo Dominic QUALIFIED
Leon Y GauchoJapanIoni Bowcher NEW
Izzy V SchemmerRussiaXuxue Feng NEGOTIATION
Mayumi R GillianCanadaAmy Elsner QUALIFIED
Jefferson M MaletRussiaIvan Magalhaes QUALIFIED
Alejandro O OstroskyAustraliaXuxue Feng QUALIFIED
Johnson H BriddickRussiaAsiya Javayant PROPOSAL
Clifford I TollnerFranceElwin Sharvill QUALIFIED
Johnson C CampainIndiaIoni Bowcher UNQUALIFIED
Morrow H CampainRussiaIvan Magalhaes QUALIFIED
Murillo X CaudyBrazilXuxue Feng RENEWAL
Juan J DarakjyItalyElwin Sharvill NEGOTIATION
Juan L OldroydGermanyXuxue Feng NEGOTIATION
Leja N SaylorsIndiaIoni Bowcher PROPOSAL
Aika O InouyeItalyStephen Shaw RENEWAL
Antonio E PaprockiCanadaElwin Sharvill PROPOSAL
Ivar W FigeroaRussiaElwin Sharvill UNQUALIFIED
Antonio N DilliardIndiaIoni Bowcher NEW
Arvin X StensethArgentinaBernardo Dominic QUALIFIED
Julie F RoysterGermanyAsiya Javayant UNQUALIFIED
Mujtaba G SergiJapanBernardo Dominic RENEWAL
Mujtaba N DilliardBrazilAsiya Javayant QUALIFIED
Cody J StockhamUnited KingdomIvan Magalhaes PROPOSAL
Adams J NestleItalyIvan Magalhaes NEW
Clifford Q MarrierGermanyAsiya Javayant NEW
Nicolas J IturbideItalyIoni Bowcher PROPOSAL
Salvatore R BowleyIndiaAsiya Javayant UNQUALIFIED
Jefferson M FerenczItalyAnna Fali NEGOTIATION
Claire Z FigeroaArgentinaIvan Magalhaes QUALIFIED
Tony L CaldareraArgentinaBernardo Dominic UNQUALIFIED
Julie W RutaJapanElwin Sharvill NEW
Salvatore H GauchoGermanyAnna Fali QUALIFIED
Isabel U IturbideUnited KingdomAnna Fali UNQUALIFIED
Claire Q ChuiArgentinaElwin Sharvill RENEWAL
Murillo G FerenczFranceBernardo Dominic RENEWAL
James N NickaItalyIoni Bowcher QUALIFIED
Frozen Columns
Name
Clifford J Marrier
Kaitlin W Kusko
James G Kusko
Smith K Royster
Ricardo F Chui
Adams F Caudy
Johnson V Poquette
Emily I Wieser
Isabel K Morasca
Morrow X Ferencz
Kaitlin Q Garufi
Jefferson N Maclead
Tony G Royster
Ricardo F Rulapaugh
Greenwood H Kusko
Clifford J Gaucho
Wickens Y Paprocki
Wickens H Rim
Aruna V Vocelka
Jones L Rulapaugh
Johnson B Flosi
Deepesh A Kusko
Francesco G Caudy
Munro D Gillian
Sinclair I Flosi
Juan I Nestle
Misaki V Kolmetz
Silvio M Bowley
Leja I Caudy
Leon I Inouye
Salvatore U Ferencz
Adams R Gillian
Kaitlin S Malet
Costa A Kusko
Alejandro A Ostrosky
Kadeem D Figeroa
Murillo W Kusko
Ashley D Wieser
Jeanfrancois P Nicka
Francesco O Chui
Maisha I Caldarera
Leja Q Ferencz
Greenwood R Paprocki
Juan D Nicka
Leja O Ruta
Francesco J Bolognia
Juan X Garufi
Alejandro X Saylors
Murillo E Nicka
Emily W Inouye
IdCountryDate
1000Canada2026-06-22
1001India2026-06-29
1002Brazil2026-06-26
1003Argentina2026-06-25
1004Italy2026-07-10
1005United Kingdom2026-07-19
1006Australia2026-06-26
1007India2026-07-01
1008Russia2026-07-01
1009Germany2026-07-15
1010India2026-07-15
1011Japan2026-07-15
1012Germany2026-07-09
1013Argentina2026-07-16
1014Italy2026-06-29
1015Australia2026-07-07
1016Germany2026-07-07
1017Spain2026-07-08
1018Argentina2026-07-18
1019Italy2026-06-24
1020Spain2026-07-06
1021Canada2026-07-02
1022Russia2026-07-03
1023France2026-07-15
1024Brazil2026-07-10
1025Spain2026-06-22
1026United Kingdom2026-07-19
1027Japan2026-07-01
1028Brazil2026-07-02
1029Germany2026-07-10
1030Spain2026-07-18
1031Russia2026-07-09
1032Australia2026-07-12
1033Canada2026-06-30
1034United Kingdom2026-07-08
1035Spain2026-07-01
1036Australia2026-06-26
1037United Kingdom2026-07-04
1038Germany2026-07-20
1039Germany2026-06-26
1040United Kingdom2026-06-24
1041Argentina2026-07-06
1042Brazil2026-06-24
1043Canada2026-06-25
1044Canada2026-06-26
1045Brazil2026-06-29
1046Russia2026-07-12
1047Argentina2026-06-28
1048Brazil2026-07-06
1049India2026-07-12

On-Demand Data

NameIdCountryDate
Julie M Kolmetz1000Brazil2026-06-23
Clifford Q Doe1001Japan2026-07-17
Arvin X Ostrosky1002Australia2026-07-14
Darci V Whobrey1003Germany2026-07-19
Isabel J Wieser1004Italy2026-06-27
Claire W Garufi1005Brazil2026-07-02
Aditya I Whobrey1006India2026-06-28
Faith H Garufi1007United Kingdom2026-07-15
James B Rim1008France2026-07-10
Cody T Schemmer1009Canada2026-06-30
Adams C Glick1010Russia2026-07-09
Izzy B Slusarski1011Japan2026-06-28
Chavez W Figeroa1012Brazil2026-07-04
Chavez P Vocelka1013Spain2026-07-18
Jones C Rim1014Spain2026-06-21
Darci Z Darakjy1015Italy2026-07-19
David M Vocelka1016Japan2026-07-01
David P Caudy1017Spain2026-07-01
Julie H Malet1018Germany2026-06-21
Leon C Schemmer1019Italy2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams C MacleadCanadaIvan Magalhaes PROPOSAL
Cody V NickaAustraliaXuxue Feng NEGOTIATION
Alejandro K WhobreyArgentinaOnyama Limba NEGOTIATION
Julie N GauchoItalyAmy Elsner NEGOTIATION
David B RimRussiaAmy Elsner PROPOSAL
Aika V ShinkoFranceXuxue Feng UNQUALIFIED
Chavez S ChuiIndiaElwin Sharvill UNQUALIFIED
Antonio N OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba U MacleadSpainAnna Fali NEW
Salvatore V BriddickGermanyIoni Bowcher NEGOTIATION
Jennifer G VocelkaFranceIoni Bowcher NEW
Jefferson E MaletArgentinaIvan Magalhaes QUALIFIED
Mujtaba W PerinUnited KingdomOnyama Limba PROPOSAL
Jennifer F RulapaughRussiaAsiya Javayant QUALIFIED
Jefferson C WhobreyRussiaAnna Fali NEGOTIATION
Jeanfrancois M MaletAustraliaAmy Elsner NEGOTIATION
Smith L DoeUnited KingdomElwin Sharvill NEGOTIATION
David X RoysterRussiaIvan Magalhaes RENEWAL
Greenwood X NestleFranceStephen Shaw PROPOSAL
Sinclair M NestleSpainStephen Shaw UNQUALIFIED
Stacey W RulapaughCanadaBernardo Dominic QUALIFIED
Jennifer D StockhamBrazilBernardo Dominic NEW
Antonio Z GarufiGermanyStephen Shaw UNQUALIFIED
Clifford D NickaUnited KingdomAnna Fali PROPOSAL
Alejandro A FollerGermanyXuxue Feng PROPOSAL
Faith Y AlbaresItalyOnyama Limba UNQUALIFIED
Johnson R StockhamFranceStephen Shaw NEW
Cody X StockhamIndiaAsiya Javayant NEGOTIATION
Mujtaba C SlusarskiAustraliaAmy Elsner RENEWAL
Jennifer X PerinSpainAnna Fali PROPOSAL
Rodrigues Z OldroydBrazilElwin Sharvill RENEWAL
Aika P ChuiGermanyAnna Fali NEW
Morrow V AlbaresRussiaBernardo Dominic RENEWAL
Greenwood A RimSpainStephen Shaw NEW
Greenwood G AlbaresCanadaBernardo Dominic NEW
Smith G VenereIndiaXuxue Feng PROPOSAL
Aika O GillianSpainStephen Shaw QUALIFIED
Greenwood U GlickItalyAmy Elsner PROPOSAL
Francesco H NickaGermanyAmy Elsner NEGOTIATION
Kadeem F RoysterRussiaIoni 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>