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
Ivar F FlosiJapanAnna Fali QUALIFIED
Adams K GillianArgentinaStephen Shaw UNQUALIFIED
Ricardo T CampainItalyXuxue Feng NEW
Leja R AmigonIndiaOnyama Limba RENEWAL
Emily N RimBrazilIoni Bowcher UNQUALIFIED
Costa G MacleadRussiaAsiya Javayant NEGOTIATION
Darci D VocelkaRussiaOnyama Limba RENEWAL
Kaitlin T SchemmerGermanyIoni Bowcher NEW
Faith B FigeroaArgentinaAnna Fali NEW
Nicolas W DoeIndiaOnyama Limba NEGOTIATION
Misaki W VocelkaUnited KingdomStephen Shaw NEGOTIATION
David Q AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer F IturbideItalyOnyama Limba UNQUALIFIED
Kaitlin F BologniaFranceAmy Elsner UNQUALIFIED
David V CaudyIndiaStephen Shaw QUALIFIED
Leon C AmigonRussiaIoni Bowcher NEW
Julie S MarrierUnited KingdomIvan Magalhaes NEW
Jones K RulapaughArgentinaBernardo Dominic NEGOTIATION
James J MaletAustraliaIoni Bowcher NEW
Nicolas M GlickBrazilBernardo Dominic PROPOSAL
Faith N NickaAustraliaOnyama Limba PROPOSAL
Emily V MarrierAustraliaAsiya Javayant QUALIFIED
Leon B WhobreyItalyStephen Shaw QUALIFIED
Leon Q ShinkoFranceIvan Magalhaes PROPOSAL
Izzy F DarakjyCanadaBernardo Dominic QUALIFIED
Mayumi V GillianBrazilAnna Fali RENEWAL
Sinclair O BowleyRussiaElwin Sharvill RENEWAL
Johnson L MacleadCanadaAsiya Javayant PROPOSAL
Claire S DilliardRussiaOnyama Limba NEGOTIATION
Darci Q FigeroaIndiaBernardo Dominic QUALIFIED
Izzy S ButtSpainAmy Elsner NEGOTIATION
Jeanfrancois N ButtIndiaXuxue Feng UNQUALIFIED
Adams J RimCanadaAnna Fali QUALIFIED
Izzy Z CaldareraIndiaAsiya Javayant QUALIFIED
Jennifer D GillianFranceElwin Sharvill NEGOTIATION
Mayumi G StockhamAustraliaXuxue Feng PROPOSAL
Arvin Z GauchoItalyElwin Sharvill NEGOTIATION
Ricardo V OldroydItalyIvan Magalhaes PROPOSAL
Cody J MacleadArgentinaElwin Sharvill PROPOSAL
Izzy T StensethFranceAsiya Javayant QUALIFIED
Jefferson S RimSpainStephen Shaw NEGOTIATION
Maria Q BriddickSpainIoni Bowcher UNQUALIFIED
Costa Z WaycottRussiaAnna Fali QUALIFIED
Julie H MaletIndiaOnyama Limba NEW
Maria R FerenczArgentinaXuxue Feng NEGOTIATION
Ricardo B PaprockiJapanAmy Elsner UNQUALIFIED
Alejandro R SchemmerSpainAmy Elsner NEGOTIATION
Maria A DilliardIndiaIvan Magalhaes RENEWAL
Tony T WhobreyCanadaAnna Fali QUALIFIED
Isabel T DarakjyAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
James F AmigonBrazilElwin Sharvill NEGOTIATION
Kaitlin K ChuiUnited KingdomOnyama Limba RENEWAL
Salvatore C WhobreyJapanIoni Bowcher NEW
Sinclair K DarakjyGermanyIoni Bowcher RENEWAL
Silvio K BologniaItalyAnna Fali PROPOSAL
Clifford C NickaBrazilElwin Sharvill RENEWAL
Costa T GlickItalyIoni Bowcher QUALIFIED
Misaki L OstroskyGermanyIoni Bowcher UNQUALIFIED
Tony W RulapaughRussiaXuxue Feng NEW
Aika J MaletJapanIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh O MarrierArgentina2026-07-01Chemel, James L Cpa UNQUALIFIED39Stephen Shaw
1001Emily G KolmetzFrance2026-07-10Chanay, Jeffrey A Esq NEW2Onyama Limba
1002Ricardo Q SaylorsUnited Kingdom2026-07-15Commercial Press PROPOSAL56Bernardo Dominic
1003Alejandro E WaycottCanada2026-07-07King, Christopher A Esq PROPOSAL59Stephen Shaw
1004Izzy H BologniaJapan2026-07-21Truhlar And Truhlar Attys NEGOTIATION21Anna Fali
1005Emily O IturbideArgentina2026-07-05King, Christopher A Esq RENEWAL4Asiya Javayant
1006Sinclair U MaletCanada2026-07-17Chapman, Ross E Esq UNQUALIFIED68Onyama Limba
1007Juan O KuskoAustralia2026-07-04Chapman, Ross E Esq PROPOSAL73Ioni Bowcher
1008Kadeem H ChuiJapan2026-07-14Truhlar And Truhlar Attys QUALIFIED36Amy Elsner
1009Nicolas E OstroskyIndia2026-06-30Dorl, James J Esq PROPOSAL70Elwin Sharvill
1010Nicolas Z ShinkoSpain2026-07-07King, Christopher A Esq QUALIFIED42Amy Elsner
1011Izzy Y NestleAustralia2026-06-29Rousseaux, Michael Esq UNQUALIFIED94Ivan Magalhaes
1012James O SchemmerItaly2026-07-09Chapman, Ross E Esq QUALIFIED20Onyama Limba
1013Morrow Z FerenczFrance2026-07-20Dorl, James J Esq NEGOTIATION14Amy Elsner
1014Leon P RulapaughGermany2026-06-29Rangoni Of Florence NEGOTIATION68Bernardo Dominic
1015Julie Z NestleSpain2026-06-24Rousseaux, Michael Esq UNQUALIFIED64Anna Fali
1016Johnson P AlbaresCanada2026-07-07Printing Dimensions NEW3Ivan Magalhaes
1017Jones W PaprockiCanada2026-07-21Dorl, James J Esq RENEWAL47Stephen Shaw
1018Greenwood O NickaAustralia2026-07-18Chanay, Jeffrey A Esq PROPOSAL79Stephen Shaw
1019Jefferson L CaudyUnited Kingdom2026-06-26Dorl, James J Esq RENEWAL99Xuxue Feng
1020Faith O StensethArgentina2026-07-22Truhlar And Truhlar Attys NEW96Xuxue Feng
1021Jefferson J StockhamFrance2026-07-04King, Christopher A Esq UNQUALIFIED48Xuxue Feng
1022Jones E BologniaRussia2026-07-01Rangoni Of Florence NEW17Amy Elsner
1023Isabel N RimFrance2026-07-15Morlong Associates NEW44Onyama Limba
1024Maisha N MorascaCanada2026-07-10Rangoni Of Florence UNQUALIFIED10Ioni Bowcher
1025Deepesh S CaldareraItaly2026-06-26Rangoni Of Florence QUALIFIED93Ioni Bowcher
1026Maria Z RimRussia2026-07-06Rangoni Of Florence UNQUALIFIED25Ioni Bowcher
1027Izzy U ButtCanada2026-07-14Feltz Printing Service RENEWAL36Stephen Shaw
1028Murillo C SlusarskiUnited Kingdom2026-07-13Dorl, James J Esq NEGOTIATION90Anna Fali
1029Nicolas Y SaylorsFrance2026-07-18Rangoni Of Florence PROPOSAL49Asiya Javayant
1030Clifford Y WaycottGermany2026-06-27Benton, John B Jr NEW60Bernardo Dominic
1031Izzy U NickaSpain2026-07-13Truhlar And Truhlar Attys NEGOTIATION21Elwin Sharvill
1032Chavez Q GillianItaly2026-07-02Dorl, James J Esq QUALIFIED37Asiya Javayant
1033Arvin Z NickaBrazil2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED38Asiya Javayant
1034Mayumi H VenereRussia2026-06-30Chapman, Ross E Esq NEGOTIATION78Bernardo Dominic
1035Isabel B NickaJapan2026-06-28Chanay, Jeffrey A Esq UNQUALIFIED95Anna Fali
1036Izzy Y InouyeSpain2026-06-30Chanay, Jeffrey A Esq PROPOSAL40Elwin Sharvill
1037Isabel B ChuiIndia2026-06-28Benton, John B Jr PROPOSAL84Bernardo Dominic
1038Nicolas B BowleyJapan2026-07-16Benton, John B Jr RENEWAL89Xuxue Feng
1039Jennifer B FlosiJapan2026-07-03Buckley Miller Wright RENEWAL25Stephen Shaw
1040Morrow A DilliardCanada2026-07-19Chanay, Jeffrey A Esq NEGOTIATION38Xuxue Feng
1041James I DilliardArgentina2026-07-01Chanay, Jeffrey A Esq NEGOTIATION32Bernardo Dominic
1042Maisha R OldroydJapan2026-06-27Benton, John B Jr UNQUALIFIED11Onyama Limba
1043Maria V DilliardGermany2026-06-29Chanay, Jeffrey A Esq NEGOTIATION32Stephen Shaw
1044Aditya R SchemmerAustralia2026-07-14Rangoni Of Florence UNQUALIFIED94Xuxue Feng
1045Mujtaba P FerenczAustralia2026-07-01Chemel, James L Cpa NEW89Xuxue Feng
1046Aika R WieserBrazil2026-07-09Chemel, James L Cpa NEGOTIATION85Elwin Sharvill
1047Aditya M PaprockiArgentina2026-07-18Rousseaux, Michael Esq QUALIFIED7Stephen Shaw
1048Darci R DarakjyRussia2026-06-25Morlong Associates NEW38Amy Elsner
1049Kaitlin G InouyeJapan2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED30Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair U WieserSpainAnna Fali RENEWAL
Juan X TollnerUnited KingdomIoni Bowcher PROPOSAL
Tony Z RoysterItalyIoni Bowcher UNQUALIFIED
Nicolas N StockhamFranceAmy Elsner UNQUALIFIED
Jeanfrancois L DarakjySpainStephen Shaw UNQUALIFIED
Antonio Y DoeAustraliaIvan Magalhaes PROPOSAL
Darci D GauchoJapanBernardo Dominic NEW
Ivar G GarufiArgentinaAsiya Javayant PROPOSAL
Leja F OldroydArgentinaOnyama Limba PROPOSAL
Adams D RulapaughFranceAsiya Javayant RENEWAL
Darci N RutaIndiaIvan Magalhaes NEW
Deepesh X CaldareraGermanyElwin Sharvill UNQUALIFIED
Mayumi D AlbaresIndiaAsiya Javayant QUALIFIED
Octavia V OstroskyBrazilElwin Sharvill PROPOSAL
Leon V PerinSpainXuxue Feng RENEWAL
Faith D DoeArgentinaIvan Magalhaes NEGOTIATION
Ricardo U SlusarskiJapanIvan Magalhaes QUALIFIED
Faith T GlickArgentinaAnna Fali UNQUALIFIED
Aditya Z StensethArgentinaElwin Sharvill RENEWAL
Nicolas X RulapaughAustraliaElwin Sharvill UNQUALIFIED
Smith N VenereAustraliaElwin Sharvill RENEWAL
Jeanfrancois W WhobreyGermanyIoni Bowcher NEW
Clifford I CaldareraBrazilAnna Fali PROPOSAL
Juan I WaycottBrazilOnyama Limba UNQUALIFIED
Izzy H WhobreyIndiaStephen Shaw QUALIFIED
Mayumi F ChuiArgentinaIoni Bowcher PROPOSAL
Emily D CaudyAustraliaStephen Shaw QUALIFIED
Izzy H CaldareraSpainAsiya Javayant NEGOTIATION
Leja L TollnerCanadaBernardo Dominic UNQUALIFIED
Munro I KuskoAustraliaOnyama Limba PROPOSAL
Alejandro L MorascaGermanyBernardo Dominic NEW
Ricardo R PoquetteGermanyOnyama Limba PROPOSAL
Silvio U MarrierJapanAnna Fali PROPOSAL
Maria F DilliardArgentinaIoni Bowcher NEGOTIATION
Ashley N WieserCanadaOnyama Limba QUALIFIED
Arvin Y GillianArgentinaOnyama Limba QUALIFIED
Kadeem A PerinGermanyXuxue Feng RENEWAL
Arvin J GarufiBrazilXuxue Feng PROPOSAL
Maisha A WhobreyArgentinaAnna Fali NEGOTIATION
Ricardo I SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Murillo W RoysterCanadaOnyama Limba PROPOSAL
Juan V RulapaughRussiaAmy Elsner UNQUALIFIED
Izzy F InouyeAustraliaAnna Fali NEW
Maisha T RulapaughFranceAnna Fali NEW
Salvatore G PaprockiSpainOnyama Limba UNQUALIFIED
Tony A SergiArgentinaIvan Magalhaes UNQUALIFIED
Costa D WieserCanadaBernardo Dominic QUALIFIED
Mujtaba Q KolmetzAustraliaStephen Shaw NEW
Octavia J NestleJapanIvan Magalhaes PROPOSAL
Emily W ButtJapanXuxue Feng NEW
Frozen Columns
Name
Sinclair Q Gillian
Costa A Stockham
Maria R Amigon
Kaitlin T Perin
Ricardo E Bowley
Arvin P Bolognia
Smith U Ostrosky
Maria P Inouye
Salvatore E Dilliard
Mujtaba R Albares
Antonio P Nicka
Chavez A Paprocki
Jeanfrancois K Glick
Maria S Inouye
Juan L Oldroyd
Isabel O Sergi
Mayumi E Caudy
Emily E Venere
Maisha I Maclead
Kaitlin B Shinko
David A Tollner
Chavez M Saylors
Jones O Gaucho
Faith Y Gaucho
Arvin S Kusko
Mujtaba L Kusko
Kadeem I Paprocki
Ashley Z Briddick
Salvatore N Butt
Munro U Dilliard
Adams G Perin
Smith R Inouye
Izzy P Morasca
Clifford F Amigon
Aruna E Waycott
Sinclair E Flosi
Jefferson L Shinko
Costa R Caudy
Izzy F Bowley
Mayumi E Chui
Alejandro C Oldroyd
Sinclair Q Figeroa
Mujtaba X Kusko
Claire G Ferencz
Misaki R Wieser
Darci E Bowley
Jennifer R Butt
Rodrigues V Oldroyd
Antonio Z Vocelka
Rodrigues L Dilliard
IdCountryDate
1000United Kingdom2026-07-21
1001France2026-06-25
1002Japan2026-07-13
1003Argentina2026-06-24
1004Canada2026-07-03
1005Spain2026-07-21
1006Japan2026-07-09
1007Italy2026-06-26
1008India2026-07-10
1009Italy2026-07-08
1010France2026-07-14
1011Germany2026-07-09
1012Canada2026-07-14
1013Brazil2026-07-23
1014United Kingdom2026-07-22
1015Brazil2026-06-26
1016Russia2026-07-04
1017Japan2026-07-15
1018Canada2026-06-29
1019Russia2026-07-09
1020Argentina2026-07-06
1021Japan2026-07-04
1022Spain2026-06-27
1023France2026-07-04
1024Argentina2026-07-23
1025Canada2026-07-21
1026France2026-07-16
1027Italy2026-06-26
1028Japan2026-07-18
1029United Kingdom2026-07-10
1030Italy2026-07-20
1031Canada2026-07-07
1032Germany2026-07-11
1033Argentina2026-07-04
1034Italy2026-06-27
1035Canada2026-07-14
1036Canada2026-07-08
1037Russia2026-06-28
1038Brazil2026-07-20
1039Russia2026-06-28
1040Japan2026-07-06
1041Canada2026-07-07
1042Canada2026-07-04
1043Japan2026-06-29
1044Spain2026-07-22
1045France2026-07-07
1046Spain2026-07-20
1047Germany2026-07-14
1048France2026-06-25
1049Canada2026-06-27

On-Demand Data

NameIdCountryDate
Jeanfrancois I Tollner1000United Kingdom2026-07-13
Costa N Whobrey1001Argentina2026-07-11
Greenwood A Nicka1002India2026-06-29
Adams I Vocelka1003Australia2026-07-06
Munro O Rulapaugh1004France2026-07-01
Leon V Campain1005Argentina2026-07-15
Jefferson G Slusarski1006Argentina2026-07-23
Leja N Perin1007Spain2026-06-27
Aruna Z Marrier1008Japan2026-07-16
Maria H Doe1009Australia2026-07-18
Salvatore F Saylors1010Canada2026-07-16
Costa N Figeroa1011Spain2026-07-09
Jeanfrancois H Poquette1012Canada2026-07-19
James H Venere1013India2026-07-13
Julie N Venere1014Argentina2026-07-01
Sinclair V Gillian1015France2026-07-21
Maisha Z Campain1016Germany2026-06-26
Faith W Doe1017Australia2026-07-22
Ricardo M Rulapaugh1018Argentina2026-07-15
Leja G Maclead1019India2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa A StockhamArgentinaXuxue Feng UNQUALIFIED
Juan W RoysterArgentinaAnna Fali NEGOTIATION
Aika J SergiFranceXuxue Feng NEW
Mujtaba Z OldroydCanadaAnna Fali UNQUALIFIED
Francesco Z GlickBrazilAsiya Javayant RENEWAL
Murillo N DarakjyAustraliaAnna Fali RENEWAL
Kadeem Y MaletIndiaBernardo Dominic PROPOSAL
Leja N MacleadAustraliaAnna Fali UNQUALIFIED
Aditya I VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi J DoeItalyXuxue Feng PROPOSAL
Greenwood F NickaCanadaStephen Shaw NEGOTIATION
Wickens M StockhamRussiaElwin Sharvill QUALIFIED
Smith C WaycottUnited KingdomIoni Bowcher PROPOSAL
Mujtaba X MarrierFranceAmy Elsner NEGOTIATION
Aika X ShinkoRussiaElwin Sharvill NEW
Deepesh Y DarakjySpainAsiya Javayant QUALIFIED
Claire E TollnerArgentinaIvan Magalhaes PROPOSAL
Ashley O GarufiRussiaAnna Fali UNQUALIFIED
Aruna G VenereBrazilBernardo Dominic RENEWAL
Jeanfrancois G AlbaresSpainOnyama Limba RENEWAL
Silvio C NickaArgentinaOnyama Limba QUALIFIED
Mujtaba Z NestleSpainStephen Shaw NEGOTIATION
Aika S CaldareraArgentinaAnna Fali NEGOTIATION
Kaitlin V OstroskyItalyAmy Elsner NEW
Salvatore L ButtFranceXuxue Feng PROPOSAL
Francesco H CaudyAustraliaIoni Bowcher QUALIFIED
Emily U VenereJapanBernardo Dominic NEGOTIATION
Cody N CaudyArgentinaBernardo Dominic NEGOTIATION
James M RoysterArgentinaAsiya Javayant PROPOSAL
Isabel I WieserFranceXuxue Feng UNQUALIFIED
Francesco Q MorascaGermanyIvan Magalhaes PROPOSAL
Ivar Y WieserItalyElwin Sharvill PROPOSAL
Chavez R PoquetteAustraliaBernardo Dominic NEW
Chavez J MarrierAustraliaIvan Magalhaes NEW
Alejandro V FlosiCanadaAmy Elsner UNQUALIFIED
Izzy T PaprockiArgentinaAsiya Javayant PROPOSAL
Leja G ButtJapanOnyama Limba NEGOTIATION
Aika O StensethRussiaIvan Magalhaes PROPOSAL
Johnson I FerenczUnited KingdomBernardo Dominic NEGOTIATION
Clifford N SaylorsAustraliaAnna Fali 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>