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
Octavia S VenereAustraliaAmy Elsner NEGOTIATION
Smith A SchemmerItalyOnyama Limba UNQUALIFIED
Smith R MarrierSpainBernardo Dominic PROPOSAL
Maria L WaycottGermanyOnyama Limba QUALIFIED
Leja L AlbaresUnited KingdomBernardo Dominic NEW
Silvio G StockhamSpainAmy Elsner UNQUALIFIED
Kaitlin D ButtUnited KingdomElwin Sharvill PROPOSAL
Juan G SergiJapanXuxue Feng NEW
Munro W PaprockiUnited KingdomAsiya Javayant RENEWAL
Mayumi V RoysterIndiaAmy Elsner NEGOTIATION
Faith Z GarufiSpainAnna Fali UNQUALIFIED
Murillo D NestleGermanyStephen Shaw PROPOSAL
Salvatore I CaldareraCanadaBernardo Dominic NEW
Maisha I WaycottArgentinaXuxue Feng RENEWAL
Jefferson L MaletGermanyBernardo Dominic UNQUALIFIED
Mujtaba R WieserFranceAnna Fali UNQUALIFIED
Maria B KolmetzItalyElwin Sharvill PROPOSAL
Aika D RoysterAustraliaIvan Magalhaes PROPOSAL
Morrow O KolmetzGermanyXuxue Feng UNQUALIFIED
Leon G WieserFranceOnyama Limba PROPOSAL
Francesco Z StockhamIndiaIvan Magalhaes NEGOTIATION
Tony E GlickCanadaStephen Shaw PROPOSAL
Ivar Z CaldareraFranceAnna Fali NEGOTIATION
Nicolas A SergiAustraliaXuxue Feng NEW
Francesco Y SlusarskiAustraliaIoni Bowcher QUALIFIED
Leon L SchemmerBrazilAsiya Javayant NEGOTIATION
Mujtaba I DoeRussiaOnyama Limba PROPOSAL
Claire I ChuiFranceIoni Bowcher NEGOTIATION
Adams E SergiUnited KingdomElwin Sharvill PROPOSAL
Greenwood F FerenczBrazilBernardo Dominic NEGOTIATION
Antonio I SaylorsUnited KingdomElwin Sharvill QUALIFIED
Wickens D WieserFranceBernardo Dominic UNQUALIFIED
Misaki F RimIndiaAsiya Javayant QUALIFIED
David Y VocelkaBrazilIoni Bowcher RENEWAL
Ashley F OldroydBrazilElwin Sharvill QUALIFIED
Arvin T OldroydGermanyOnyama Limba QUALIFIED
Mujtaba C OstroskySpainAnna Fali UNQUALIFIED
Maisha W DarakjyItalyOnyama Limba RENEWAL
Tony V StensethBrazilIoni Bowcher RENEWAL
Alejandro K FigeroaFranceElwin Sharvill NEGOTIATION
Misaki H CaldareraArgentinaXuxue Feng NEW
Morrow W VenereFranceOnyama Limba PROPOSAL
Wickens R MorascaJapanOnyama Limba NEW
Francesco G WhobreyItalyXuxue Feng NEGOTIATION
Ricardo T ButtUnited KingdomStephen Shaw QUALIFIED
Smith J SlusarskiItalyIvan Magalhaes RENEWAL
Isabel J PaprockiCanadaAmy Elsner UNQUALIFIED
Rodrigues K CaldareraBrazilAsiya Javayant NEGOTIATION
Wickens F VenereCanadaOnyama Limba UNQUALIFIED
Rodrigues T ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez O VocelkaItalyAnna Fali PROPOSAL
Leja G FerenczRussiaBernardo Dominic RENEWAL
Munro H FerenczUnited KingdomAmy Elsner NEW
Silvio Q KuskoSpainIvan Magalhaes NEW
Aditya C KuskoFranceStephen Shaw NEW
James R KolmetzJapanIoni Bowcher NEGOTIATION
Juan G ButtGermanyElwin Sharvill NEW
Kadeem R KolmetzUnited KingdomXuxue Feng PROPOSAL
Jennifer W IturbideGermanyStephen Shaw QUALIFIED
Juan T SchemmerUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood T InouyeSpain2026-07-27Benton, John B Jr NEGOTIATION69Stephen Shaw
1001Aika M InouyeArgentina2026-08-03Benton, John B Jr NEGOTIATION1Stephen Shaw
1002Misaki T ShinkoRussia2026-08-12Chapman, Ross E Esq RENEWAL19Ivan Magalhaes
1003Mayumi P CampainUnited Kingdom2026-08-03Chanay, Jeffrey A Esq NEW1Amy Elsner
1004Jeanfrancois W VocelkaSpain2026-07-17Commercial Press RENEWAL1Ioni Bowcher
1005Johnson B BologniaRussia2026-07-29Rangoni Of Florence PROPOSAL20Ioni Bowcher
1006Wickens Y InouyeSpain2026-07-14Dorl, James J Esq PROPOSAL1Asiya Javayant
1007Adams Z DoeUnited Kingdom2026-08-10Dorl, James J Esq RENEWAL37Amy Elsner
1008Leja Q RoysterArgentina2026-07-26Rousseaux, Michael Esq RENEWAL20Onyama Limba
1009Kaitlin O RulapaughIndia2026-08-09Buckley Miller Wright NEGOTIATION3Amy Elsner
1010Izzy H FerenczSpain2026-07-20Morlong Associates QUALIFIED15Ioni Bowcher
1011Kaitlin L CampainCanada2026-08-03Benton, John B Jr NEW31Elwin Sharvill
1012Leon R MaletArgentina2026-08-02Benton, John B Jr NEGOTIATION5Asiya Javayant
1013Chavez Y DilliardBrazil2026-07-28Benton, John B Jr QUALIFIED96Amy Elsner
1014Jefferson T SaylorsGermany2026-07-26Rangoni Of Florence RENEWAL97Bernardo Dominic
1015Munro P OldroydUnited Kingdom2026-07-20Truhlar And Truhlar Attys NEW96Asiya Javayant
1016Wickens R ButtCanada2026-07-24Commercial Press RENEWAL10Elwin Sharvill
1017Antonio I GillianJapan2026-07-21Dorl, James J Esq QUALIFIED13Amy Elsner
1018Deepesh C CampainFrance2026-07-27Morlong Associates NEGOTIATION31Anna Fali
1019Emily X NickaRussia2026-07-19Chemel, James L Cpa QUALIFIED67Xuxue Feng
1020Murillo Y GarufiUnited Kingdom2026-07-25Feltz Printing Service NEW59Bernardo Dominic
1021Darci A BriddickAustralia2026-07-26Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1022Maisha U DilliardFrance2026-07-18Truhlar And Truhlar Attys NEGOTIATION0Amy Elsner
1023Kadeem V RimFrance2026-07-26Truhlar And Truhlar Attys QUALIFIED63Asiya Javayant
1024Aika J KuskoSpain2026-07-23Benton, John B Jr NEGOTIATION4Bernardo Dominic
1025Kadeem Y ShinkoRussia2026-07-24Dorl, James J Esq NEW56Anna Fali
1026Emily W RutaBrazil2026-07-15King, Christopher A Esq UNQUALIFIED5Elwin Sharvill
1027Maria O WaycottFrance2026-08-10Benton, John B Jr UNQUALIFIED51Bernardo Dominic
1028Nicolas J PoquetteIndia2026-07-14Benton, John B Jr NEGOTIATION38Bernardo Dominic
1029Emily K MacleadBrazil2026-07-17Buckley Miller Wright NEGOTIATION90Ivan Magalhaes
1030Izzy G KolmetzItaly2026-08-08Feiner Bros NEGOTIATION18Stephen Shaw
1031Stacey R TollnerUnited Kingdom2026-07-17Feiner Bros UNQUALIFIED47Onyama Limba
1032Emily W KuskoAustralia2026-07-22Chemel, James L Cpa UNQUALIFIED38Stephen Shaw
1033Kaitlin W StensethJapan2026-07-27Commercial Press PROPOSAL21Bernardo Dominic
1034Mayumi R GauchoFrance2026-07-18Buckley Miller Wright NEW16Asiya Javayant
1035Smith Z SlusarskiRussia2026-07-18Buckley Miller Wright UNQUALIFIED97Ioni Bowcher
1036Aika E WieserRussia2026-08-03Morlong Associates QUALIFIED20Amy Elsner
1037Greenwood R WhobreyCanada2026-07-29Chanay, Jeffrey A Esq NEW44Asiya Javayant
1038Emily T GauchoIndia2026-07-25Buckley Miller Wright NEW88Stephen Shaw
1039Arvin P BowleyBrazil2026-07-21Feltz Printing Service PROPOSAL24Anna Fali
1040Jones G DilliardGermany2026-08-04Chapman, Ross E Esq NEW10Elwin Sharvill
1041Deepesh R WaycottAustralia2026-07-18King, Christopher A Esq RENEWAL93Elwin Sharvill
1042Johnson B MaletCanada2026-07-18Rangoni Of Florence QUALIFIED25Elwin Sharvill
1043Clifford N NickaUnited Kingdom2026-08-03Feltz Printing Service RENEWAL85Amy Elsner
1044Greenwood H GarufiBrazil2026-08-04Chemel, James L Cpa NEGOTIATION84Xuxue Feng
1045Kadeem M IturbideBrazil2026-08-11Morlong Associates NEGOTIATION92Anna Fali
1046Tony V KolmetzSpain2026-08-07Feltz Printing Service QUALIFIED9Bernardo Dominic
1047Francesco W StensethJapan2026-08-08King, Christopher A Esq RENEWAL74Amy Elsner
1048Munro P GarufiGermany2026-07-23Buckley Miller Wright PROPOSAL2Bernardo Dominic
1049Faith H TollnerUnited Kingdom2026-08-08Chanay, Jeffrey A Esq PROPOSAL82Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Misaki B RoysterCanadaElwin Sharvill PROPOSAL
Izzy B FollerRussiaStephen Shaw PROPOSAL
Deepesh M FigeroaUnited KingdomIoni Bowcher RENEWAL
Aditya B WieserCanadaAnna Fali RENEWAL
Murillo F PaprockiIndiaOnyama Limba PROPOSAL
Ashley K FigeroaGermanyAnna Fali QUALIFIED
Maria O IturbideIndiaStephen Shaw UNQUALIFIED
Alejandro F MaletAustraliaStephen Shaw UNQUALIFIED
Stacey S WieserGermanyStephen Shaw NEGOTIATION
Wickens R DoeCanadaXuxue Feng RENEWAL
Sinclair A NestleUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood K AlbaresFranceIoni Bowcher NEW
Jennifer N PerinBrazilXuxue Feng NEGOTIATION
Juan A PaprockiGermanyElwin Sharvill QUALIFIED
Rodrigues B PoquetteBrazilAsiya Javayant PROPOSAL
Jennifer O BriddickBrazilOnyama Limba PROPOSAL
Antonio Q FigeroaUnited KingdomIoni Bowcher RENEWAL
Cody A BologniaBrazilElwin Sharvill RENEWAL
Ivar G FollerRussiaStephen Shaw UNQUALIFIED
Jeanfrancois R OldroydRussiaIoni Bowcher PROPOSAL
Murillo V KolmetzGermanyIoni Bowcher QUALIFIED
Alejandro B FollerArgentinaAnna Fali QUALIFIED
Faith J IturbideCanadaXuxue Feng NEW
Johnson L BriddickItalyElwin Sharvill NEGOTIATION
Maria K RoysterUnited KingdomIvan Magalhaes NEW
Jeanfrancois I DarakjyRussiaIvan Magalhaes PROPOSAL
Aditya T ChuiGermanyIvan Magalhaes RENEWAL
James S PaprockiFranceXuxue Feng NEGOTIATION
Aika H DoeRussiaElwin Sharvill NEGOTIATION
Faith B ButtAustraliaIoni Bowcher NEGOTIATION
Darci E SchemmerItalyOnyama Limba NEGOTIATION
Faith V NestleSpainIoni Bowcher QUALIFIED
Leja V MacleadRussiaStephen Shaw PROPOSAL
Ivar U DoeCanadaIvan Magalhaes QUALIFIED
Johnson R MacleadFranceXuxue Feng NEW
Salvatore J BowleyFranceAmy Elsner NEGOTIATION
Kadeem L ButtBrazilOnyama Limba NEGOTIATION
Smith C BowleyUnited KingdomIvan Magalhaes NEGOTIATION
Ashley Q MorascaSpainBernardo Dominic QUALIFIED
Wickens F StensethRussiaIvan Magalhaes PROPOSAL
Faith A MacleadItalyIvan Magalhaes UNQUALIFIED
Julie X GlickIndiaAnna Fali PROPOSAL
Silvio T RoysterItalyStephen Shaw QUALIFIED
Aruna X DarakjyJapanElwin Sharvill PROPOSAL
Smith L RoysterFranceXuxue Feng NEW
Arvin I DilliardIndiaBernardo Dominic NEW
Mujtaba F DilliardAustraliaElwin Sharvill QUALIFIED
Leja Y GarufiBrazilAnna Fali NEGOTIATION
Claire R GauchoAustraliaAnna Fali UNQUALIFIED
Antonio H ButtBrazilAnna Fali RENEWAL
Frozen Columns
Name
Emily P Malet
Maisha K Garufi
Sinclair N Nicka
Wickens L Kusko
Tony Q Paprocki
Munro D Stenseth
Juan B Glick
Aditya Y Vocelka
Mayumi V Shinko
David X Rulapaugh
Cody J Stenseth
Juan D Ferencz
Adams J Ruta
Leon O Stockham
Claire B Doe
Izzy V Darakjy
Aika T Dilliard
Jeanfrancois E Albares
Salvatore Y Tollner
Deepesh D Caldarera
Munro I Ruta
Nicolas E Caudy
Jones D Nestle
Nicolas B Stockham
Munro B Royster
Greenwood I Stenseth
Ivar B Butt
Wickens N Vocelka
Chavez I Royster
Chavez P Sergi
Aruna Z Gillian
David Y Shinko
Juan U Ferencz
Leon Y Flosi
Murillo U Poquette
Ricardo C Nestle
Tony S Caudy
Jones Q Stenseth
Emily W Rulapaugh
Clifford F Nicka
Arvin Q Marrier
Costa J Ostrosky
James C Malet
Johnson J Nestle
Salvatore E Kolmetz
Aruna M Marrier
Rodrigues W Stockham
Kaitlin J Inouye
Isabel T Caldarera
Smith W Doe
IdCountryDate
1000Japan2026-08-09
1001Brazil2026-07-15
1002Australia2026-08-12
1003Brazil2026-07-14
1004Germany2026-08-09
1005Canada2026-08-05
1006Germany2026-07-15
1007Australia2026-07-18
1008Brazil2026-08-09
1009Australia2026-07-27
1010Canada2026-07-31
1011India2026-08-04
1012Argentina2026-07-24
1013United Kingdom2026-08-08
1014Brazil2026-07-15
1015Australia2026-07-23
1016Russia2026-07-28
1017Spain2026-07-17
1018Canada2026-08-03
1019Canada2026-08-03
1020Canada2026-07-18
1021United Kingdom2026-08-07
1022Brazil2026-08-08
1023Canada2026-07-26
1024France2026-07-30
1025Japan2026-08-12
1026India2026-07-30
1027Australia2026-07-25
1028Argentina2026-08-08
1029United Kingdom2026-08-10
1030Brazil2026-07-28
1031Australia2026-07-30
1032Canada2026-08-09
1033United Kingdom2026-07-19
1034Japan2026-08-09
1035Japan2026-07-17
1036Italy2026-07-29
1037Canada2026-08-04
1038Spain2026-08-06
1039United Kingdom2026-08-03
1040United Kingdom2026-07-25
1041United Kingdom2026-08-05
1042Russia2026-07-26
1043Brazil2026-08-04
1044Russia2026-07-15
1045Germany2026-07-25
1046Spain2026-08-02
1047India2026-08-12
1048Brazil2026-07-18
1049Russia2026-08-06

On-Demand Data

NameIdCountryDate
Tony R Caldarera1000United Kingdom2026-07-19
Mayumi D Malet1001Italy2026-07-28
Chavez Q Darakjy1002India2026-07-17
Alejandro I Morasca1003Italy2026-08-09
Francesco J Tollner1004Italy2026-08-03
Silvio P Darakjy1005Brazil2026-07-27
Misaki X Morasca1006Argentina2026-07-27
Darci R Caldarera1007Brazil2026-08-12
Nicolas Q Chui1008United Kingdom2026-08-05
Arvin D Bolognia1009France2026-07-25
Faith O Stenseth1010United Kingdom2026-08-10
Ivar A Inouye1011United Kingdom2026-08-04
Ricardo C Rim1012Spain2026-07-27
Darci L Gaucho1013Australia2026-07-30
Deepesh Q Shinko1014United Kingdom2026-08-09
Juan Y Doe1015India2026-08-08
Aruna F Stenseth1016United Kingdom2026-07-22
Claire J Royster1017Brazil2026-07-21
Sinclair S Dilliard1018Italy2026-07-22
Murillo D Morasca1019Italy2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith J KuskoIndiaAsiya Javayant NEGOTIATION
Tony H AmigonArgentinaAnna Fali QUALIFIED
Jefferson E FigeroaBrazilBernardo Dominic RENEWAL
Chavez T DoeJapanAsiya Javayant NEW
Julie X VocelkaAustraliaStephen Shaw NEGOTIATION
David D DilliardCanadaBernardo Dominic UNQUALIFIED
Faith G PerinArgentinaElwin Sharvill RENEWAL
Juan X RutaIndiaAsiya Javayant NEW
Aruna H MaletAustraliaElwin Sharvill UNQUALIFIED
Jennifer T PerinJapanBernardo Dominic PROPOSAL
Murillo V GarufiJapanAsiya Javayant NEW
Mujtaba E GarufiCanadaBernardo Dominic UNQUALIFIED
Clifford S AmigonGermanyIvan Magalhaes NEGOTIATION
Wickens G PaprockiAustraliaXuxue Feng UNQUALIFIED
Leja M CaudyFranceIoni Bowcher UNQUALIFIED
Ricardo W ChuiGermanyAmy Elsner RENEWAL
Salvatore Y BriddickSpainXuxue Feng QUALIFIED
Salvatore E ChuiItalyStephen Shaw RENEWAL
Sinclair D FlosiJapanBernardo Dominic NEGOTIATION
Arvin B SchemmerItalyIvan Magalhaes UNQUALIFIED
Leja R PerinIndiaIoni Bowcher UNQUALIFIED
Darci D MacleadIndiaIvan Magalhaes NEW
Morrow V FigeroaBrazilOnyama Limba NEGOTIATION
Murillo L MaletItalyOnyama Limba NEGOTIATION
Greenwood W CaudyItalyElwin Sharvill PROPOSAL
Clifford F OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Silvio L SlusarskiAustraliaOnyama Limba NEW
Juan U IturbideBrazilIoni Bowcher UNQUALIFIED
Mujtaba P RoysterCanadaElwin Sharvill UNQUALIFIED
Johnson H NickaFranceAmy Elsner PROPOSAL
Murillo E KolmetzCanadaAmy Elsner RENEWAL
Kaitlin G MaletArgentinaXuxue Feng UNQUALIFIED
Wickens V MorascaAustraliaXuxue Feng RENEWAL
Kadeem H BriddickGermanyElwin Sharvill UNQUALIFIED
Jennifer J SaylorsUnited KingdomStephen Shaw NEW
Kadeem I AmigonRussiaOnyama Limba NEW
James W RimGermanyAmy Elsner NEGOTIATION
Johnson F MarrierRussiaOnyama Limba PROPOSAL
Chavez V OstroskyCanadaXuxue Feng QUALIFIED
Greenwood T BriddickRussiaAmy Elsner 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>