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 L MacleadIndiaAsiya Javayant PROPOSAL
Octavia M IturbideIndiaStephen Shaw RENEWAL
Morrow N RulapaughFranceIoni Bowcher NEW
Octavia V BowleyFranceIoni Bowcher UNQUALIFIED
Stacey Q ButtRussiaIvan Magalhaes RENEWAL
Ivar B DarakjyGermanyIvan Magalhaes UNQUALIFIED
Kadeem N MaletRussiaBernardo Dominic UNQUALIFIED
Chavez F ShinkoArgentinaXuxue Feng UNQUALIFIED
Tony H IturbideJapanIvan Magalhaes PROPOSAL
Ivar R CaudySpainStephen Shaw NEGOTIATION
Mujtaba U SergiCanadaXuxue Feng QUALIFIED
Smith Q OldroydRussiaAsiya Javayant UNQUALIFIED
Munro L DoeSpainIoni Bowcher NEGOTIATION
Ivar M InouyeCanadaAsiya Javayant QUALIFIED
Misaki O DilliardAustraliaBernardo Dominic NEGOTIATION
Murillo D WhobreyBrazilAnna Fali QUALIFIED
Mayumi Z InouyeAustraliaAnna Fali NEGOTIATION
Aruna I FerenczRussiaStephen Shaw RENEWAL
Antonio L CampainUnited KingdomXuxue Feng NEW
Kaitlin Q MacleadItalyBernardo Dominic PROPOSAL
Octavia O OldroydRussiaAmy Elsner QUALIFIED
Cody W GarufiIndiaOnyama Limba NEW
Adams V KuskoIndiaIoni Bowcher QUALIFIED
Leja R FigeroaRussiaAmy Elsner NEGOTIATION
Costa V SaylorsUnited KingdomBernardo Dominic RENEWAL
Alejandro C FollerUnited KingdomOnyama Limba RENEWAL
Wickens U MarrierArgentinaIvan Magalhaes PROPOSAL
Francesco S TollnerRussiaOnyama Limba NEW
Salvatore Y MorascaGermanyElwin Sharvill UNQUALIFIED
Silvio O GillianFranceXuxue Feng UNQUALIFIED
Adams K PoquetteRussiaAmy Elsner NEGOTIATION
Rodrigues C VenereRussiaOnyama Limba PROPOSAL
Aruna C AmigonFranceIoni Bowcher PROPOSAL
Aruna E FigeroaIndiaIoni Bowcher PROPOSAL
Maria V MacleadSpainOnyama Limba UNQUALIFIED
Mayumi Y WaycottUnited KingdomXuxue Feng NEW
Emily G SaylorsBrazilXuxue Feng NEW
Isabel K NickaArgentinaXuxue Feng NEW
Adams H FollerItalyBernardo Dominic UNQUALIFIED
Aika M PerinFranceAmy Elsner NEGOTIATION
Ivar A MacleadCanadaOnyama Limba NEGOTIATION
David O KolmetzAustraliaOnyama Limba NEGOTIATION
Sinclair H AlbaresRussiaStephen Shaw NEGOTIATION
Greenwood Y DoeIndiaAsiya Javayant NEW
Murillo L InouyeUnited KingdomOnyama Limba QUALIFIED
Ivar J AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Aika O MacleadItalyElwin Sharvill RENEWAL
Silvio U NestleJapanIvan Magalhaes NEW
Maisha Q CaldareraAustraliaOnyama Limba QUALIFIED
Nicolas T DarakjyBrazilAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Francesco V OldroydBrazilElwin Sharvill RENEWAL
Morrow E DoeRussiaElwin Sharvill RENEWAL
Salvatore T TollnerUnited KingdomElwin Sharvill PROPOSAL
Murillo H StockhamFranceAnna Fali NEGOTIATION
Juan Y MarrierAustraliaOnyama Limba UNQUALIFIED
Wickens S GillianIndiaAnna Fali NEW
Tony P AlbaresIndiaXuxue Feng UNQUALIFIED
Deepesh D CaldareraArgentinaIvan Magalhaes UNQUALIFIED
Aditya F PoquetteJapanXuxue Feng NEGOTIATION
Maisha T KolmetzJapanOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer V WieserRussia2026-07-14Chapman, Ross E Esq NEW64Anna Fali
1001Arvin R PoquetteGermany2026-07-20Buckley Miller Wright NEGOTIATION90Ioni Bowcher
1002Jones F MacleadBrazil2026-07-06Commercial Press UNQUALIFIED91Ioni Bowcher
1003Maisha N MacleadJapan2026-06-24Morlong Associates UNQUALIFIED45Bernardo Dominic
1004Sinclair T StockhamUnited Kingdom2026-07-06Chanay, Jeffrey A Esq PROPOSAL24Xuxue Feng
1005Salvatore Q FollerGermany2026-06-24Chanay, Jeffrey A Esq PROPOSAL97Amy Elsner
1006Izzy D GarufiBrazil2026-06-29King, Christopher A Esq RENEWAL89Onyama Limba
1007Munro W RutaFrance2026-07-19Feltz Printing Service PROPOSAL2Bernardo Dominic
1008Rodrigues Y ChuiAustralia2026-07-14Feltz Printing Service NEGOTIATION9Elwin Sharvill
1009Darci I FigeroaGermany2026-06-28Printing Dimensions QUALIFIED66Ioni Bowcher
1010Greenwood W ButtArgentina2026-07-08King, Christopher A Esq NEW96Ioni Bowcher
1011Francesco Z RulapaughJapan2026-07-13Morlong Associates NEW95Bernardo Dominic
1012Costa U WieserItaly2026-07-12Chanay, Jeffrey A Esq PROPOSAL42Asiya Javayant
1013Isabel V SlusarskiGermany2026-07-18Truhlar And Truhlar Attys QUALIFIED62Onyama Limba
1014Kadeem B ChuiRussia2026-06-28Dorl, James J Esq UNQUALIFIED13Onyama Limba
1015Salvatore K DoeBrazil2026-06-21Chapman, Ross E Esq NEGOTIATION28Anna Fali
1016Izzy W OldroydGermany2026-06-26King, Christopher A Esq NEW5Ivan Magalhaes
1017Maisha Y SlusarskiUnited Kingdom2026-07-11Rangoni Of Florence PROPOSAL2Elwin Sharvill
1018Rodrigues D GarufiUnited Kingdom2026-06-23Benton, John B Jr PROPOSAL49Bernardo Dominic
1019Kaitlin T ShinkoSpain2026-07-09Chapman, Ross E Esq RENEWAL26Anna Fali
1020Claire K FlosiRussia2026-07-02Commercial Press PROPOSAL77Stephen Shaw
1021Jennifer R PerinArgentina2026-07-13Rousseaux, Michael Esq UNQUALIFIED15Onyama Limba
1022Greenwood W DarakjyGermany2026-07-06Rangoni Of Florence PROPOSAL74Onyama Limba
1023Ivar U ShinkoBrazil2026-06-22Buckley Miller Wright NEW18Anna Fali
1024Clifford S RutaAustralia2026-07-13Chemel, James L Cpa NEW87Anna Fali
1025Stacey Y MaletCanada2026-07-08Chapman, Ross E Esq RENEWAL91Onyama Limba
1026Faith Q BriddickItaly2026-07-13Feiner Bros QUALIFIED59Amy Elsner
1027Silvio X StensethJapan2026-07-13Chanay, Jeffrey A Esq QUALIFIED64Amy Elsner
1028Nicolas U AmigonJapan2026-07-02Feltz Printing Service RENEWAL83Onyama Limba
1029Sinclair V RoysterSpain2026-06-26Feltz Printing Service PROPOSAL30Ioni Bowcher
1030Wickens F StockhamFrance2026-06-24King, Christopher A Esq UNQUALIFIED85Asiya Javayant
1031Izzy B ChuiSpain2026-07-19Dorl, James J Esq PROPOSAL58Ioni Bowcher
1032Aruna K AlbaresUnited Kingdom2026-07-02Morlong Associates UNQUALIFIED65Onyama Limba
1033Kadeem C OstroskyUnited Kingdom2026-07-17Rangoni Of Florence RENEWAL93Ivan Magalhaes
1034Faith X DarakjyFrance2026-07-11Morlong Associates UNQUALIFIED67Amy Elsner
1035Greenwood C MaletBrazil2026-07-19Printing Dimensions PROPOSAL56Bernardo Dominic
1036Francesco Q MorascaAustralia2026-07-14Chapman, Ross E Esq PROPOSAL3Asiya Javayant
1037Jeanfrancois T RimIndia2026-07-17Printing Dimensions PROPOSAL47Xuxue Feng
1038Darci U OstroskyCanada2026-07-06Commercial Press NEGOTIATION69Asiya Javayant
1039David F MaletAustralia2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED67Stephen Shaw
1040Smith P MaletSpain2026-07-14Benton, John B Jr NEW23Bernardo Dominic
1041Aika J SlusarskiArgentina2026-07-06Truhlar And Truhlar Attys NEGOTIATION35Onyama Limba
1042Costa G BologniaItaly2026-06-26Buckley Miller Wright QUALIFIED51Anna Fali
1043Izzy Z RoysterAustralia2026-06-25Dorl, James J Esq NEGOTIATION59Xuxue Feng
1044Mujtaba P GarufiIndia2026-07-09Rousseaux, Michael Esq UNQUALIFIED89Stephen Shaw
1045Faith E PoquetteSpain2026-07-12Truhlar And Truhlar Attys RENEWAL34Elwin Sharvill
1046Rodrigues V AmigonFrance2026-06-22Dorl, James J Esq PROPOSAL95Bernardo Dominic
1047Aika D GlickBrazil2026-07-18Printing Dimensions UNQUALIFIED8Ioni Bowcher
1048Chavez Q GarufiFrance2026-07-17Feltz Printing Service UNQUALIFIED84Asiya Javayant
1049Wickens N GauchoItaly2026-06-25Printing Dimensions PROPOSAL82Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Alejandro T FigeroaSpainIoni Bowcher NEW
Alejandro S MaletGermanyStephen Shaw NEGOTIATION
Octavia R SchemmerArgentinaIvan Magalhaes RENEWAL
Rodrigues X RimUnited KingdomAmy Elsner QUALIFIED
Adams R BriddickUnited KingdomIoni Bowcher NEW
Octavia N BriddickGermanyIoni Bowcher RENEWAL
Jennifer P MarrierGermanyStephen Shaw QUALIFIED
Morrow E WieserRussiaElwin Sharvill NEGOTIATION
Aruna U NestleArgentinaXuxue Feng NEGOTIATION
Maria Z DoeCanadaBernardo Dominic QUALIFIED
Mujtaba G MaletBrazilXuxue Feng RENEWAL
Wickens P SaylorsBrazilStephen Shaw PROPOSAL
Ashley U DarakjyAustraliaElwin Sharvill RENEWAL
Izzy Y PerinRussiaOnyama Limba NEGOTIATION
Murillo U SergiIndiaIoni Bowcher QUALIFIED
Salvatore Q DilliardFranceElwin Sharvill NEW
Kaitlin A AmigonRussiaXuxue Feng RENEWAL
Murillo P MorascaRussiaIvan Magalhaes UNQUALIFIED
Clifford Q IturbideFranceAmy Elsner RENEWAL
Sinclair J MaletUnited KingdomOnyama Limba NEGOTIATION
Izzy P MaletCanadaOnyama Limba NEGOTIATION
Morrow Q MaletJapanXuxue Feng PROPOSAL
Alejandro P OldroydAustraliaXuxue Feng UNQUALIFIED
Claire V MaletSpainAmy Elsner PROPOSAL
Maria G RulapaughItalyStephen Shaw NEGOTIATION
Misaki Q RoysterArgentinaAnna Fali RENEWAL
Kaitlin C TollnerItalyStephen Shaw NEGOTIATION
Jefferson D DarakjyJapanXuxue Feng UNQUALIFIED
Jennifer X SchemmerRussiaBernardo Dominic RENEWAL
Aruna F VenereSpainStephen Shaw PROPOSAL
Jennifer M AmigonJapanAsiya Javayant UNQUALIFIED
Kaitlin G DoeAustraliaAnna Fali UNQUALIFIED
Aditya I PoquetteRussiaElwin Sharvill QUALIFIED
Faith U RoysterUnited KingdomStephen Shaw NEW
Julie G BriddickItalyIoni Bowcher RENEWAL
Greenwood R FigeroaAustraliaStephen Shaw PROPOSAL
Stacey T SchemmerRussiaIvan Magalhaes RENEWAL
Misaki N StensethJapanStephen Shaw UNQUALIFIED
Chavez R FollerJapanIvan Magalhaes UNQUALIFIED
Misaki U RulapaughSpainElwin Sharvill NEW
Aika Y BriddickIndiaAmy Elsner NEGOTIATION
Munro H GauchoAustraliaIvan Magalhaes PROPOSAL
Chavez K ButtBrazilStephen Shaw RENEWAL
Wickens B GarufiGermanyStephen Shaw NEGOTIATION
David Q CaudyGermanyAmy Elsner RENEWAL
Isabel H AlbaresItalyStephen Shaw NEW
Clifford Q FerenczCanadaStephen Shaw QUALIFIED
Wickens K GauchoIndiaXuxue Feng RENEWAL
David D DilliardAustraliaElwin Sharvill NEGOTIATION
Greenwood F GauchoAustraliaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Costa F Dilliard
Maisha P Wieser
Jefferson Y Flosi
Octavia G Iturbide
Jennifer Q Ferencz
Jeanfrancois J Iturbide
Costa Q Caldarera
Jones O Wieser
Smith D Poquette
Claire G Marrier
Deepesh B Rim
Kadeem O Maclead
Leon S Dilliard
Morrow M Bowley
Ivar G Gaucho
Morrow Y Dilliard
Rodrigues J Waycott
Jones I Garufi
Smith P Tollner
Francesco P Malet
Claire T Perin
Rodrigues W Marrier
Smith Z Schemmer
Wickens K Vocelka
Octavia N Caldarera
Aruna S Tollner
Aruna P Figeroa
Deepesh H Caldarera
Emily J Royster
Clifford F Kolmetz
Claire K Rim
Faith W Garufi
Johnson V Caldarera
Maria J Caldarera
Jeanfrancois S Sergi
Nicolas Q Morasca
Mujtaba A Darakjy
Mujtaba W Malet
Maisha J Stockham
Mujtaba H Waycott
Jones D Gaucho
Antonio I Malet
Adams H Marrier
Morrow F Kusko
Tony Q Flosi
David Y Gaucho
Smith D Sergi
Greenwood A Malet
Deepesh R Tollner
James U Campain
IdCountryDate
1000United Kingdom2026-07-14
1001Germany2026-07-05
1002Japan2026-06-25
1003Russia2026-07-04
1004Japan2026-06-27
1005Australia2026-07-02
1006United Kingdom2026-06-28
1007Russia2026-07-16
1008Brazil2026-07-01
1009Japan2026-06-22
1010Italy2026-07-03
1011Italy2026-06-21
1012Germany2026-07-08
1013Canada2026-06-23
1014Spain2026-07-01
1015Brazil2026-06-21
1016Italy2026-07-18
1017Argentina2026-06-25
1018Brazil2026-07-05
1019Spain2026-07-12
1020Argentina2026-07-03
1021Australia2026-07-19
1022Brazil2026-07-17
1023India2026-07-14
1024Italy2026-07-03
1025Japan2026-07-15
1026Brazil2026-07-04
1027Spain2026-07-09
1028Russia2026-07-15
1029Australia2026-07-15
1030Canada2026-07-16
1031India2026-06-29
1032Canada2026-06-25
1033Canada2026-06-29
1034Russia2026-07-04
1035Germany2026-07-01
1036Italy2026-07-15
1037Spain2026-07-05
1038Germany2026-06-24
1039Brazil2026-07-20
1040Australia2026-07-05
1041France2026-06-27
1042Argentina2026-07-18
1043Russia2026-07-09
1044Germany2026-06-25
1045Australia2026-07-18
1046India2026-06-24
1047Argentina2026-07-15
1048Spain2026-07-04
1049Japan2026-07-03

On-Demand Data

NameIdCountryDate
Tony E Dilliard1000Brazil2026-07-20
Aditya V Amigon1001Canada2026-07-10
Stacey T Saylors1002Russia2026-07-01
Deepesh P Nestle1003Argentina2026-07-19
Johnson W Briddick1004Japan2026-07-06
Munro R Oldroyd1005India2026-06-22
Greenwood Z Ostrosky1006Brazil2026-06-29
Aditya S Perin1007Spain2026-06-27
Munro E Maclead1008Germany2026-06-30
Arvin N Shinko1009United Kingdom2026-07-02
Arvin K Amigon1010Spain2026-07-13
Johnson K Malet1011Australia2026-07-04
Leja T Slusarski1012Australia2026-06-23
Alejandro D Ruta1013France2026-06-29
Arvin T Oldroyd1014Argentina2026-07-17
Sinclair E Marrier1015Italy2026-07-07
Emily I Ostrosky1016Argentina2026-07-06
Arvin U Venere1017Brazil2026-07-17
Deepesh Q Marrier1018United Kingdom2026-06-28
Arvin N Nestle1019Italy2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh N MaletFranceXuxue Feng QUALIFIED
Stacey K MarrierCanadaBernardo Dominic QUALIFIED
Rodrigues T MorascaGermanyElwin Sharvill QUALIFIED
Jones T BriddickArgentinaBernardo Dominic NEGOTIATION
Faith J StockhamIndiaXuxue Feng PROPOSAL
Chavez D GarufiRussiaIoni Bowcher RENEWAL
Sinclair T WaycottItalyAmy Elsner NEW
Adams U DarakjyBrazilStephen Shaw UNQUALIFIED
Jefferson P FerenczRussiaIoni Bowcher PROPOSAL
Mujtaba F RutaArgentinaIvan Magalhaes PROPOSAL
Alejandro S DilliardJapanIvan Magalhaes QUALIFIED
Murillo R DilliardUnited KingdomBernardo Dominic RENEWAL
Stacey I InouyeBrazilIoni Bowcher UNQUALIFIED
Arvin S WhobreyFranceAsiya Javayant NEGOTIATION
Maisha I StockhamRussiaAnna Fali RENEWAL
Aruna W NickaIndiaAmy Elsner PROPOSAL
Chavez W AmigonSpainOnyama Limba QUALIFIED
Aruna G OldroydSpainStephen Shaw UNQUALIFIED
Deepesh S KuskoIndiaOnyama Limba NEW
Aditya T GlickJapanAnna Fali RENEWAL
Mujtaba H PaprockiAustraliaElwin Sharvill PROPOSAL
Claire I CampainArgentinaBernardo Dominic NEGOTIATION
Smith X CaldareraIndiaAnna Fali QUALIFIED
Francesco Y MaletArgentinaAnna Fali NEGOTIATION
Chavez S TollnerFranceIoni Bowcher UNQUALIFIED
Faith M SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Francesco A ShinkoAustraliaAnna Fali UNQUALIFIED
Costa X WieserIndiaAmy Elsner NEW
David D DoeItalyAmy Elsner UNQUALIFIED
Leon M StockhamRussiaAnna Fali NEGOTIATION
Leja X AmigonFranceIvan Magalhaes NEW
Ivar W MorascaGermanyIvan Magalhaes NEGOTIATION
Wickens B StensethItalyBernardo Dominic QUALIFIED
Smith N MorascaSpainBernardo Dominic PROPOSAL
Mayumi L WhobreyRussiaIvan Magalhaes QUALIFIED
Morrow W RulapaughCanadaXuxue Feng RENEWAL
Maisha G RoysterItalyAnna Fali NEGOTIATION
Jeanfrancois W KolmetzUnited KingdomXuxue Feng RENEWAL
Cody I StensethBrazilAnna Fali PROPOSAL
Johnson Z GauchoCanadaAnna Fali UNQUALIFIED

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