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
Rodrigues W RutaUnited KingdomElwin Sharvill UNQUALIFIED
Maria L MarrierSpainAmy Elsner RENEWAL
Juan K FigeroaRussiaElwin Sharvill PROPOSAL
Emily U MacleadUnited KingdomXuxue Feng PROPOSAL
Jennifer Y WaycottCanadaIvan Magalhaes PROPOSAL
Deepesh E OldroydFranceAsiya Javayant NEGOTIATION
Rodrigues D InouyeItalyBernardo Dominic NEGOTIATION
Murillo J RutaArgentinaOnyama Limba NEGOTIATION
Adams X IturbideUnited KingdomIoni Bowcher PROPOSAL
Deepesh T StockhamRussiaIoni Bowcher QUALIFIED
Isabel C GauchoItalyIvan Magalhaes PROPOSAL
David R CaudySpainAsiya Javayant NEW
Izzy F ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Greenwood T ShinkoRussiaOnyama Limba NEW
Clifford J SchemmerGermanyElwin Sharvill PROPOSAL
Leon Y AmigonGermanyOnyama Limba PROPOSAL
Munro J SaylorsArgentinaOnyama Limba RENEWAL
Jeanfrancois F ButtSpainIoni Bowcher PROPOSAL
Maisha V CampainJapanBernardo Dominic QUALIFIED
Smith U RoysterIndiaElwin Sharvill QUALIFIED
Costa P InouyeUnited KingdomAmy Elsner QUALIFIED
Sinclair D MorascaSpainAmy Elsner UNQUALIFIED
Jennifer C RoysterSpainBernardo Dominic PROPOSAL
Claire L SchemmerCanadaXuxue Feng UNQUALIFIED
Adams L CampainGermanyAsiya Javayant PROPOSAL
Kadeem M SaylorsRussiaElwin Sharvill NEGOTIATION
Chavez R CampainAustraliaStephen Shaw UNQUALIFIED
Francesco G MarrierJapanStephen Shaw PROPOSAL
Ivar D FigeroaJapanAsiya Javayant QUALIFIED
Arvin N TollnerCanadaAsiya Javayant PROPOSAL
Munro K RimCanadaIoni Bowcher PROPOSAL
Adams J RulapaughJapanOnyama Limba QUALIFIED
Francesco G FigeroaFranceOnyama Limba NEGOTIATION
Johnson Y NickaUnited KingdomBernardo Dominic PROPOSAL
Stacey S StockhamArgentinaAsiya Javayant PROPOSAL
Alejandro E GarufiUnited KingdomAsiya Javayant NEW
Ricardo O BologniaJapanXuxue Feng PROPOSAL
Emily S BologniaArgentinaAmy Elsner NEW
Munro V IturbideBrazilElwin Sharvill NEGOTIATION
Adams E MacleadGermanyAmy Elsner RENEWAL
Silvio R StockhamCanadaAsiya Javayant PROPOSAL
Francesco H AlbaresBrazilAnna Fali UNQUALIFIED
Darci U ShinkoGermanyAnna Fali RENEWAL
Alejandro A PerinAustraliaStephen Shaw PROPOSAL
Morrow N AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Alejandro E BowleyAustraliaBernardo Dominic RENEWAL
Alejandro N MaletArgentinaXuxue Feng PROPOSAL
Nicolas M KuskoCanadaXuxue Feng QUALIFIED
Octavia S MarrierBrazilAsiya Javayant NEGOTIATION
David H RutaArgentinaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Francesco R BriddickItalyAsiya Javayant NEW
Claire J SergiAustraliaStephen Shaw RENEWAL
Aika Z MacleadJapanBernardo Dominic PROPOSAL
Johnson Z CaldareraJapanAsiya Javayant NEGOTIATION
Salvatore Z IturbideUnited KingdomXuxue Feng NEW
Jefferson R BologniaSpainAmy Elsner NEGOTIATION
Juan K PerinFranceElwin Sharvill UNQUALIFIED
Smith J BologniaArgentinaStephen Shaw QUALIFIED
Antonio I SchemmerBrazilAnna Fali PROPOSAL
Mujtaba Z SlusarskiItalyStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy F BriddickFrance2026-08-05Chanay, Jeffrey A Esq RENEWAL25Asiya Javayant
1001Juan A RimItaly2026-07-23Feiner Bros NEGOTIATION63Stephen Shaw
1002James U MarrierGermany2026-08-08Benton, John B Jr PROPOSAL32Asiya Javayant
1003Darci K AlbaresAustralia2026-08-08Truhlar And Truhlar Attys UNQUALIFIED14Amy Elsner
1004Antonio T ButtFrance2026-08-03Chemel, James L Cpa UNQUALIFIED62Stephen Shaw
1005Alejandro U GauchoAustralia2026-07-22Chapman, Ross E Esq NEW5Anna Fali
1006Isabel B StensethItaly2026-07-22Rousseaux, Michael Esq NEW24Ioni Bowcher
1007Mayumi V WhobreyGermany2026-07-24Feltz Printing Service QUALIFIED56Stephen Shaw
1008Smith G BologniaUnited Kingdom2026-08-02Chapman, Ross E Esq QUALIFIED90Anna Fali
1009Salvatore Q BowleyRussia2026-07-18Chanay, Jeffrey A Esq NEGOTIATION76Xuxue Feng
1010Cody V NickaUnited Kingdom2026-08-11Dorl, James J Esq PROPOSAL52Bernardo Dominic
1011Misaki R WieserCanada2026-07-17Morlong Associates UNQUALIFIED8Stephen Shaw
1012Juan D ButtGermany2026-07-21Commercial Press RENEWAL61Ioni Bowcher
1013Alejandro R DoeArgentina2026-07-25Morlong Associates NEGOTIATION21Asiya Javayant
1014Rodrigues G MarrierBrazil2026-07-21Rousseaux, Michael Esq PROPOSAL14Asiya Javayant
1015Deepesh B MarrierUnited Kingdom2026-07-18Feltz Printing Service PROPOSAL66Ivan Magalhaes
1016Isabel O OstroskyUnited Kingdom2026-08-02Printing Dimensions QUALIFIED97Bernardo Dominic
1017Ashley M MaletItaly2026-07-31Printing Dimensions NEGOTIATION5Amy Elsner
1018Faith I BologniaRussia2026-08-09Dorl, James J Esq RENEWAL62Elwin Sharvill
1019Jones Z NestleIndia2026-07-15Feltz Printing Service PROPOSAL28Elwin Sharvill
1020Kadeem H VocelkaJapan2026-08-11Buckley Miller Wright NEW17Stephen Shaw
1021Cody G RutaCanada2026-07-20Dorl, James J Esq QUALIFIED15Elwin Sharvill
1022Smith T PoquetteAustralia2026-08-11Commercial Press QUALIFIED86Onyama Limba
1023Claire O DarakjyItaly2026-07-18Rangoni Of Florence NEW29Ivan Magalhaes
1024Kadeem O MarrierGermany2026-07-16Rangoni Of Florence NEGOTIATION0Anna Fali
1025Tony T OstroskyBrazil2026-07-24Morlong Associates UNQUALIFIED24Ioni Bowcher
1026Maria J StockhamBrazil2026-08-12Buckley Miller Wright NEGOTIATION51Elwin Sharvill
1027Octavia S AlbaresUnited Kingdom2026-08-04Rousseaux, Michael Esq RENEWAL80Asiya Javayant
1028Ricardo I CampainRussia2026-08-05Rousseaux, Michael Esq PROPOSAL69Bernardo Dominic
1029Aika N WhobreyCanada2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED89Anna Fali
1030Arvin O ShinkoCanada2026-07-19Dorl, James J Esq RENEWAL48Xuxue Feng
1031Kaitlin N AlbaresIndia2026-07-16Dorl, James J Esq UNQUALIFIED9Xuxue Feng
1032Ricardo T RulapaughSpain2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED59Anna Fali
1033Morrow Y SergiItaly2026-07-15Rangoni Of Florence QUALIFIED36Elwin Sharvill
1034Francesco N NickaCanada2026-07-19Dorl, James J Esq NEW42Onyama Limba
1035Greenwood C KolmetzSpain2026-07-26King, Christopher A Esq QUALIFIED10Ivan Magalhaes
1036Antonio N CampainUnited Kingdom2026-07-19Chapman, Ross E Esq QUALIFIED30Stephen Shaw
1037Darci J RulapaughCanada2026-07-18Rangoni Of Florence RENEWAL58Amy Elsner
1038Julie X OldroydUnited Kingdom2026-08-10Buckley Miller Wright UNQUALIFIED11Onyama Limba
1039Rodrigues J BriddickRussia2026-07-28Buckley Miller Wright QUALIFIED48Ivan Magalhaes
1040Jennifer E WaycottSpain2026-07-28Chemel, James L Cpa NEGOTIATION36Elwin Sharvill
1041Francesco F SchemmerIndia2026-07-31Benton, John B Jr NEGOTIATION76Stephen Shaw
1042Morrow C StockhamFrance2026-07-29Dorl, James J Esq PROPOSAL49Asiya Javayant
1043Greenwood D KuskoJapan2026-07-27Chapman, Ross E Esq NEW3Elwin Sharvill
1044Misaki O KuskoGermany2026-07-16King, Christopher A Esq QUALIFIED92Ioni Bowcher
1045Cody K BriddickCanada2026-07-29Chapman, Ross E Esq NEGOTIATION1Amy Elsner
1046David H RoysterRussia2026-07-28Buckley Miller Wright NEGOTIATION96Stephen Shaw
1047Mujtaba K FollerJapan2026-07-25Rangoni Of Florence RENEWAL27Stephen Shaw
1048Aika O WaycottRussia2026-08-03Feiner Bros PROPOSAL56Elwin Sharvill
1049Maisha W MarrierRussia2026-07-17Commercial Press RENEWAL21Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ashley J ShinkoJapanIvan Magalhaes RENEWAL
Morrow E MaletIndiaAmy Elsner RENEWAL
Cody Q BriddickSpainOnyama Limba QUALIFIED
Mayumi R PoquetteArgentinaIoni Bowcher NEW
Isabel F MaletItalyAsiya Javayant QUALIFIED
Smith K MorascaUnited KingdomAnna Fali PROPOSAL
Jennifer T PoquetteItalyStephen Shaw NEGOTIATION
Ashley I KolmetzFranceIvan Magalhaes NEW
Clifford E BriddickAustraliaBernardo Dominic NEW
Octavia R DoeRussiaAsiya Javayant UNQUALIFIED
Kaitlin J GauchoUnited KingdomAsiya Javayant PROPOSAL
Deepesh E SergiCanadaIvan Magalhaes RENEWAL
Julie L SaylorsCanadaAmy Elsner PROPOSAL
Smith F GillianUnited KingdomIvan Magalhaes NEGOTIATION
Kaitlin U AmigonIndiaStephen Shaw NEGOTIATION
James K NickaAustraliaAmy Elsner UNQUALIFIED
Salvatore K GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Leja T DoeBrazilXuxue Feng NEGOTIATION
Darci N DarakjyRussiaAsiya Javayant RENEWAL
Misaki K AlbaresJapanIvan Magalhaes NEGOTIATION
Jeanfrancois A VocelkaJapanStephen Shaw RENEWAL
Octavia B CaudyRussiaIoni Bowcher QUALIFIED
Juan S WieserJapanBernardo Dominic QUALIFIED
Clifford B PoquetteGermanyElwin Sharvill QUALIFIED
Antonio Y CaldareraSpainIvan Magalhaes RENEWAL
Costa N RoysterRussiaBernardo Dominic RENEWAL
Leon F PoquetteIndiaAmy Elsner UNQUALIFIED
James U InouyeGermanyAsiya Javayant UNQUALIFIED
Aika F RulapaughJapanAsiya Javayant PROPOSAL
Maria R CaldareraAustraliaOnyama Limba NEW
Deepesh O MarrierUnited KingdomAsiya Javayant QUALIFIED
Jefferson U DarakjyArgentinaElwin Sharvill RENEWAL
Stacey H SaylorsSpainIvan Magalhaes PROPOSAL
Kadeem F RulapaughGermanyAmy Elsner UNQUALIFIED
Aruna S AmigonFranceAsiya Javayant PROPOSAL
Jennifer E InouyeAustraliaElwin Sharvill PROPOSAL
Chavez K BriddickGermanyXuxue Feng QUALIFIED
Wickens W DarakjyArgentinaOnyama Limba NEGOTIATION
Morrow Q IturbideRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois G MaletSpainStephen Shaw PROPOSAL
Ashley F WaycottArgentinaBernardo Dominic NEW
Julie H MarrierBrazilIvan Magalhaes PROPOSAL
Kaitlin K KuskoJapanBernardo Dominic QUALIFIED
Chavez G CaudySpainBernardo Dominic QUALIFIED
Wickens L CaudySpainAsiya Javayant RENEWAL
Mujtaba A SchemmerAustraliaIoni Bowcher PROPOSAL
Faith D KuskoIndiaXuxue Feng UNQUALIFIED
Alejandro V GillianItalyOnyama Limba PROPOSAL
Ashley X RoysterCanadaIvan Magalhaes UNQUALIFIED
Kadeem L CampainIndiaAmy Elsner QUALIFIED
Frozen Columns
Name
Maisha W Figeroa
Costa O Caldarera
Costa D Nestle
Deepesh Z Kolmetz
Rodrigues J Figeroa
Silvio M Glick
Jennifer L Ostrosky
Aruna V Tollner
Wickens C Caudy
James U Glick
Francesco R Gaucho
Maria K Waycott
Adams N Sergi
Kadeem U Schemmer
Izzy Q Doe
Antonio H Nicka
Kadeem H Kolmetz
Smith B Chui
Ricardo Q Foller
Maria T Foller
Maisha U Nicka
Isabel W Kolmetz
Cody N Morasca
Francesco A Figeroa
Sinclair P Gillian
David E Doe
Silvio Q Morasca
Nicolas O Campain
Jefferson I Ferencz
Juan X Oldroyd
Juan V Venere
Tony H Rim
Deepesh J Vocelka
Munro U Amigon
Cody K Butt
Tony C Caudy
Morrow H Inouye
David S Poquette
Juan K Tollner
Stacey X Nicka
Darci Z Malet
Kaitlin T Maclead
Ivar R Paprocki
Adams A Nicka
Jeanfrancois U Wieser
Kaitlin K Maclead
Salvatore L Stenseth
Silvio P Gaucho
Isabel Q Chui
Maria C Flosi
IdCountryDate
1000Russia2026-07-18
1001Australia2026-08-10
1002Japan2026-07-18
1003Russia2026-08-13
1004United Kingdom2026-08-11
1005India2026-07-19
1006Canada2026-07-23
1007Russia2026-07-26
1008Japan2026-07-21
1009Argentina2026-07-17
1010Russia2026-07-28
1011Germany2026-08-05
1012Spain2026-07-25
1013Canada2026-07-22
1014Canada2026-07-16
1015France2026-07-22
1016Italy2026-07-26
1017Germany2026-08-10
1018Brazil2026-08-12
1019Brazil2026-07-24
1020Japan2026-07-27
1021Canada2026-07-19
1022Spain2026-07-28
1023Spain2026-07-24
1024France2026-07-15
1025Japan2026-07-17
1026Japan2026-07-22
1027Argentina2026-08-07
1028Spain2026-08-12
1029Argentina2026-07-20
1030Russia2026-08-09
1031Spain2026-07-30
1032India2026-07-23
1033Italy2026-07-31
1034Argentina2026-08-11
1035Italy2026-07-31
1036United Kingdom2026-07-31
1037Argentina2026-07-17
1038Australia2026-07-23
1039Brazil2026-08-01
1040Brazil2026-07-18
1041Canada2026-08-04
1042Argentina2026-07-20
1043France2026-07-23
1044Argentina2026-07-26
1045Argentina2026-08-13
1046Italy2026-07-20
1047Italy2026-07-19
1048Brazil2026-07-28
1049Russia2026-07-23

On-Demand Data

NameIdCountryDate
Nicolas F Gaucho1000France2026-07-31
Chavez C Malet1001Japan2026-07-23
Greenwood C Malet1002Russia2026-07-21
Greenwood L Chui1003Australia2026-07-25
James V Malet1004Italy2026-07-16
Rodrigues I Rim1005France2026-08-13
Jefferson R Amigon1006France2026-07-22
Emily N Wieser1007Italy2026-07-30
Jennifer Z Maclead1008France2026-07-17
Sinclair M Wieser1009India2026-08-04
Ashley T Gillian1010Spain2026-07-29
Jones L Butt1011Spain2026-07-26
Julie Z Shinko1012Germany2026-08-09
Faith C Malet1013Russia2026-07-30
Clifford E Ostrosky1014Italy2026-07-26
Clifford U Butt1015Canada2026-08-08
Octavia B Figeroa1016Australia2026-07-23
Cody L Stockham1017Russia2026-08-04
Sinclair J Bolognia1018Japan2026-07-20
Octavia O Butt1019France2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore N GauchoItalyAnna Fali NEW
Sinclair I PerinAustraliaIoni Bowcher UNQUALIFIED
Maisha G AlbaresArgentinaElwin Sharvill NEGOTIATION
Deepesh D IturbideFranceAnna Fali UNQUALIFIED
Tony H CaudySpainIoni Bowcher UNQUALIFIED
Jeanfrancois W PaprockiArgentinaStephen Shaw NEW
Mujtaba L SlusarskiGermanyBernardo Dominic NEGOTIATION
Darci N MorascaUnited KingdomXuxue Feng NEW
James D FlosiItalyAnna Fali NEGOTIATION
Murillo J IturbideCanadaStephen Shaw RENEWAL
Mujtaba X PaprockiFranceAsiya Javayant UNQUALIFIED
Johnson V RulapaughUnited KingdomXuxue Feng NEGOTIATION
Izzy J GillianJapanAmy Elsner UNQUALIFIED
Morrow B AmigonBrazilElwin Sharvill NEGOTIATION
David S MaletCanadaBernardo Dominic NEW
Cody M GarufiItalyIvan Magalhaes NEW
Jeanfrancois P DarakjyUnited KingdomOnyama Limba NEGOTIATION
Aruna O RulapaughUnited KingdomIoni Bowcher PROPOSAL
David B SaylorsIndiaOnyama Limba PROPOSAL
Jones U SchemmerJapanIoni Bowcher RENEWAL
Mujtaba H RoysterItalyAnna Fali NEGOTIATION
Julie O BriddickFranceAsiya Javayant PROPOSAL
Ivar P ShinkoGermanyAsiya Javayant UNQUALIFIED
Tony X DilliardSpainIvan Magalhaes UNQUALIFIED
Mayumi M PerinFranceOnyama Limba UNQUALIFIED
Ivar L AlbaresCanadaOnyama Limba RENEWAL
Adams D GarufiIndiaAnna Fali NEGOTIATION
Murillo C ShinkoAustraliaStephen Shaw NEGOTIATION
Aika Q WieserCanadaBernardo Dominic UNQUALIFIED
Octavia J BologniaUnited KingdomOnyama Limba QUALIFIED
Stacey S ChuiItalyAsiya Javayant PROPOSAL
Faith P RutaItalyStephen Shaw PROPOSAL
Ivar B RutaCanadaXuxue Feng RENEWAL
Chavez Z KuskoRussiaIoni Bowcher RENEWAL
Emily X BriddickBrazilAnna Fali RENEWAL
Aruna A OstroskyRussiaOnyama Limba RENEWAL
Leon F GillianRussiaAmy Elsner UNQUALIFIED
Adams G KolmetzArgentinaXuxue Feng NEGOTIATION
Greenwood M CaldareraItalyAnna Fali NEGOTIATION
Francesco U VocelkaArgentinaBernardo Dominic 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>