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
Ricardo H InouyeIndiaIvan Magalhaes UNQUALIFIED
Leja U FigeroaFranceAnna Fali NEGOTIATION
Maria W CampainBrazilIvan Magalhaes PROPOSAL
Adams M WieserJapanStephen Shaw RENEWAL
Clifford J OstroskySpainAnna Fali QUALIFIED
Adams P PaprockiCanadaAsiya Javayant PROPOSAL
Chavez H DoeRussiaAmy Elsner NEGOTIATION
Maisha Y FerenczFranceIoni Bowcher QUALIFIED
Darci Q RoysterIndiaIvan Magalhaes PROPOSAL
David Q GlickIndiaElwin Sharvill QUALIFIED
Julie X AmigonCanadaAmy Elsner PROPOSAL
Ashley C FerenczRussiaAsiya Javayant UNQUALIFIED
Silvio W CaldareraUnited KingdomElwin Sharvill NEW
Chavez T AlbaresItalyIoni Bowcher UNQUALIFIED
Sinclair D PerinUnited KingdomElwin Sharvill QUALIFIED
Julie Q DilliardAustraliaIoni Bowcher PROPOSAL
Murillo A CaudyUnited KingdomAsiya Javayant RENEWAL
Maisha G GillianJapanXuxue Feng QUALIFIED
Jennifer F GauchoItalyBernardo Dominic RENEWAL
Francesco A WhobreyItalyIoni Bowcher NEW
Chavez Y BologniaCanadaStephen Shaw RENEWAL
Maria Z BowleyItalyAsiya Javayant UNQUALIFIED
Octavia L OldroydArgentinaIvan Magalhaes NEW
Francesco Z SchemmerCanadaAmy Elsner PROPOSAL
Arvin H IturbideJapanBernardo Dominic NEGOTIATION
Costa L PerinUnited KingdomIvan Magalhaes PROPOSAL
Greenwood X WaycottGermanyIvan Magalhaes NEGOTIATION
Darci F InouyeJapanElwin Sharvill PROPOSAL
Smith O VenereBrazilElwin Sharvill PROPOSAL
Maisha L FerenczArgentinaXuxue Feng PROPOSAL
Mujtaba X SlusarskiArgentinaElwin Sharvill NEGOTIATION
Leon B FigeroaBrazilIvan Magalhaes NEGOTIATION
Ricardo N PoquetteRussiaBernardo Dominic UNQUALIFIED
Francesco D MaletIndiaAsiya Javayant RENEWAL
Jones B FollerArgentinaIoni Bowcher RENEWAL
Sinclair G MacleadGermanyBernardo Dominic QUALIFIED
Emily R MaletItalyIoni Bowcher RENEWAL
Silvio P MacleadSpainAmy Elsner UNQUALIFIED
Greenwood R SergiRussiaStephen Shaw NEW
Aruna D DoeArgentinaElwin Sharvill NEGOTIATION
Claire S BriddickFranceAsiya Javayant RENEWAL
Aruna A RulapaughFranceIoni Bowcher NEGOTIATION
Aruna P WaycottAustraliaAnna Fali UNQUALIFIED
Aditya S GillianGermanyIvan Magalhaes NEGOTIATION
Jennifer W CaldareraItalyStephen Shaw RENEWAL
Morrow K AmigonBrazilIoni Bowcher UNQUALIFIED
Ricardo M MacleadAustraliaAnna Fali RENEWAL
Chavez K BowleySpainElwin Sharvill QUALIFIED
Jeanfrancois N WieserIndiaAsiya Javayant PROPOSAL
Izzy N AmigonGermanyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Smith E RutaBrazilStephen Shaw NEW
Izzy K OstroskyFranceAsiya Javayant UNQUALIFIED
Ricardo Y NestleUnited KingdomOnyama Limba NEW
Aika P PaprockiGermanyBernardo Dominic UNQUALIFIED
Ashley Y AmigonBrazilAnna Fali PROPOSAL
Aika R KolmetzAustraliaAnna Fali PROPOSAL
Costa W KuskoFranceIoni Bowcher NEGOTIATION
Ivar F CaudyUnited KingdomAsiya Javayant RENEWAL
Ashley Q IturbideBrazilAmy Elsner RENEWAL
Salvatore F KuskoIndiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood X IturbideItaly2026-07-13Feltz Printing Service UNQUALIFIED77Ioni Bowcher
1001Maria U DilliardGermany2026-07-18Morlong Associates UNQUALIFIED91Ivan Magalhaes
1002Kadeem T RimCanada2026-07-04Buckley Miller Wright PROPOSAL50Stephen Shaw
1003Salvatore E StensethCanada2026-07-02Chapman, Ross E Esq RENEWAL78Ioni Bowcher
1004Antonio R OldroydAustralia2026-07-20Feltz Printing Service UNQUALIFIED89Onyama Limba
1005Ivar X DarakjyIndia2026-07-19Chapman, Ross E Esq RENEWAL15Onyama Limba
1006Faith V ButtArgentina2026-07-04Truhlar And Truhlar Attys QUALIFIED42Elwin Sharvill
1007Ashley T NickaAustralia2026-06-25Feltz Printing Service NEW61Onyama Limba
1008Aditya G SchemmerAustralia2026-07-05Buckley Miller Wright RENEWAL76Onyama Limba
1009Chavez J MarrierSpain2026-07-07Feltz Printing Service QUALIFIED93Elwin Sharvill
1010Greenwood E GauchoGermany2026-07-14Truhlar And Truhlar Attys NEW50Elwin Sharvill
1011Alejandro T FerenczIndia2026-07-12Commercial Press NEGOTIATION95Asiya Javayant
1012Juan T FlosiArgentina2026-07-18Dorl, James J Esq QUALIFIED17Anna Fali
1013Izzy A MarrierGermany2026-06-26Chanay, Jeffrey A Esq PROPOSAL86Bernardo Dominic
1014Arvin D VocelkaGermany2026-07-22Feiner Bros NEGOTIATION72Ivan Magalhaes
1015Kaitlin H TollnerFrance2026-06-28Morlong Associates PROPOSAL20Asiya Javayant
1016Izzy D SergiIndia2026-06-25Feltz Printing Service NEW33Ioni Bowcher
1017Jefferson L SchemmerIndia2026-07-09Truhlar And Truhlar Attys PROPOSAL28Onyama Limba
1018Octavia W InouyeArgentina2026-07-17Dorl, James J Esq QUALIFIED9Anna Fali
1019David J MaletItaly2026-06-25Feltz Printing Service NEGOTIATION54Anna Fali
1020Arvin V OstroskyIndia2026-07-09King, Christopher A Esq NEW47Ioni Bowcher
1021Isabel S CaldareraGermany2026-07-17Chapman, Ross E Esq RENEWAL4Bernardo Dominic
1022Deepesh N ChuiCanada2026-07-02Truhlar And Truhlar Attys NEGOTIATION22Ivan Magalhaes
1023Jeanfrancois E BologniaItaly2026-07-15Commercial Press NEW96Anna Fali
1024Arvin L StensethUnited Kingdom2026-07-10King, Christopher A Esq QUALIFIED61Ivan Magalhaes
1025Nicolas A DoeRussia2026-07-03Morlong Associates NEGOTIATION88Asiya Javayant
1026Jones B BowleySpain2026-07-15Buckley Miller Wright NEW59Amy Elsner
1027Aika L RimFrance2026-06-29Chemel, James L Cpa QUALIFIED82Ivan Magalhaes
1028Izzy Q GillianFrance2026-07-18King, Christopher A Esq NEW63Xuxue Feng
1029Morrow W SergiIndia2026-07-17Truhlar And Truhlar Attys PROPOSAL17Anna Fali
1030Ashley A NestleJapan2026-07-08Truhlar And Truhlar Attys UNQUALIFIED35Xuxue Feng
1031Julie D FerenczArgentina2026-07-22Printing Dimensions RENEWAL52Stephen Shaw
1032Octavia N GillianSpain2026-07-21Printing Dimensions RENEWAL96Ioni Bowcher
1033Johnson E SaylorsArgentina2026-06-27Commercial Press RENEWAL84Anna Fali
1034Johnson Q GlickJapan2026-06-30Rangoni Of Florence PROPOSAL16Bernardo Dominic
1035Octavia T GarufiIndia2026-07-12Rousseaux, Michael Esq UNQUALIFIED65Xuxue Feng
1036Clifford P BriddickRussia2026-07-04Chapman, Ross E Esq NEW85Anna Fali
1037Morrow B MarrierRussia2026-07-15Commercial Press UNQUALIFIED26Ivan Magalhaes
1038Rodrigues G RimArgentina2026-07-10Dorl, James J Esq RENEWAL26Asiya Javayant
1039Leon G GlickArgentina2026-06-27Chanay, Jeffrey A Esq NEW27Stephen Shaw
1040Morrow D InouyeCanada2026-07-15Chemel, James L Cpa PROPOSAL47Asiya Javayant
1041Clifford F StockhamAustralia2026-07-17Printing Dimensions UNQUALIFIED43Ivan Magalhaes
1042Aika Z FigeroaCanada2026-07-02Truhlar And Truhlar Attys RENEWAL70Bernardo Dominic
1043Morrow P BologniaGermany2026-06-26Feltz Printing Service NEGOTIATION92Ioni Bowcher
1044Leja B NestleJapan2026-07-22Buckley Miller Wright RENEWAL84Ivan Magalhaes
1045Cody M DoeAustralia2026-07-08Rangoni Of Florence QUALIFIED45Onyama Limba
1046Jones X InouyeItaly2026-06-25Chapman, Ross E Esq NEGOTIATION99Anna Fali
1047Emily C PerinGermany2026-07-08Printing Dimensions NEW44Xuxue Feng
1048Claire E SlusarskiItaly2026-07-14Dorl, James J Esq NEW48Ioni Bowcher
1049Leon E StockhamAustralia2026-07-21Feiner Bros QUALIFIED82Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Claire A CampainAustraliaIoni Bowcher UNQUALIFIED
Salvatore Y ChuiSpainXuxue Feng RENEWAL
Aruna A SchemmerAustraliaIoni Bowcher PROPOSAL
Morrow L VocelkaFranceAsiya Javayant RENEWAL
Johnson J RulapaughGermanyAnna Fali QUALIFIED
Greenwood J InouyeGermanyIvan Magalhaes PROPOSAL
Clifford V StockhamItalyIoni Bowcher NEGOTIATION
Clifford Z WhobreyAustraliaAnna Fali NEGOTIATION
Mujtaba U RutaAustraliaIvan Magalhaes PROPOSAL
Greenwood J KuskoUnited KingdomElwin Sharvill NEW
Jeanfrancois Q RimIndiaAmy Elsner PROPOSAL
Isabel I DilliardIndiaIvan Magalhaes PROPOSAL
Costa T GlickRussiaElwin Sharvill UNQUALIFIED
Chavez L AmigonJapanElwin Sharvill QUALIFIED
Rodrigues K PoquetteSpainElwin Sharvill NEGOTIATION
Aditya U MaletArgentinaIvan Magalhaes UNQUALIFIED
Julie Y IturbideArgentinaAsiya Javayant RENEWAL
Nicolas P MacleadCanadaIoni Bowcher RENEWAL
Maria J CampainRussiaBernardo Dominic RENEWAL
Darci K NickaUnited KingdomElwin Sharvill NEGOTIATION
Stacey H DarakjyGermanyIvan Magalhaes QUALIFIED
Leja Y StensethItalyElwin Sharvill NEGOTIATION
Kadeem T StensethUnited KingdomAnna Fali PROPOSAL
Darci B NickaItalyAsiya Javayant PROPOSAL
James M PoquetteRussiaIvan Magalhaes NEGOTIATION
Darci B SaylorsIndiaIoni Bowcher RENEWAL
Nicolas E CaldareraIndiaBernardo Dominic UNQUALIFIED
Francesco B OldroydGermanyIoni Bowcher QUALIFIED
Chavez P VenereIndiaBernardo Dominic NEW
Faith P SaylorsRussiaXuxue Feng QUALIFIED
Francesco J WieserFranceIvan Magalhaes PROPOSAL
Silvio K PaprockiCanadaAsiya Javayant PROPOSAL
Maisha Q CaudyIndiaBernardo Dominic RENEWAL
Adams C OstroskyIndiaAmy Elsner RENEWAL
Nicolas O WaycottItalyAsiya Javayant QUALIFIED
Alejandro M ButtCanadaStephen Shaw NEGOTIATION
Tony U FlosiFranceAmy Elsner NEGOTIATION
Clifford V BologniaItalyAsiya Javayant PROPOSAL
Maria P RulapaughSpainElwin Sharvill PROPOSAL
Sinclair H DoeUnited KingdomStephen Shaw PROPOSAL
Maisha M FlosiArgentinaAsiya Javayant UNQUALIFIED
Adams F RulapaughItalyIvan Magalhaes PROPOSAL
Francesco B WaycottArgentinaIvan Magalhaes RENEWAL
Mujtaba T MorascaRussiaAmy Elsner QUALIFIED
Greenwood D ChuiUnited KingdomIvan Magalhaes QUALIFIED
Chavez T SaylorsItalyXuxue Feng QUALIFIED
Jeanfrancois L FerenczIndiaAnna Fali PROPOSAL
Maisha H KolmetzSpainAnna Fali RENEWAL
Kaitlin R InouyeUnited KingdomAnna Fali NEGOTIATION
Kaitlin L DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Antonio D Royster
Jeanfrancois W Stockham
Juan J Gaucho
Jeanfrancois S Flosi
Faith K Tollner
Rodrigues I Gillian
Tony D Maclead
Aditya P Iturbide
Jefferson C Ruta
Stacey D Bowley
Greenwood C Butt
Chavez S Whobrey
Maria J Chui
Munro P Shinko
Mujtaba R Glick
Sinclair G Bolognia
Ricardo L Figeroa
Antonio Y Inouye
Mujtaba Z Kusko
Cody R Paprocki
Clifford Z Malet
Wickens A Gaucho
Adams Z Iturbide
Aditya R Saylors
Munro J Caldarera
Kadeem M Iturbide
Johnson Q Malet
Jeanfrancois M Poquette
Jeanfrancois G Ostrosky
Jeanfrancois B Campain
Wickens Y Garufi
Leon X Maclead
Greenwood Z Venere
Maria I Paprocki
Jeanfrancois W Nicka
Jeanfrancois C Briddick
Mujtaba N Ferencz
Aruna D Ruta
Murillo V Amigon
Juan Y Wieser
Cody B Bowley
Chavez J Tollner
Deepesh F Foller
Murillo Q Caldarera
Salvatore Z Flosi
David X Venere
Aditya O Caudy
Isabel U Poquette
Jeanfrancois Y Royster
Chavez V Inouye
IdCountryDate
1000Italy2026-06-24
1001Russia2026-07-08
1002India2026-07-11
1003Brazil2026-07-22
1004United Kingdom2026-07-16
1005Argentina2026-07-13
1006Japan2026-07-16
1007Spain2026-07-11
1008France2026-07-12
1009Argentina2026-06-25
1010Spain2026-07-03
1011Brazil2026-07-18
1012Brazil2026-07-01
1013Japan2026-07-19
1014United Kingdom2026-07-02
1015Spain2026-06-26
1016Argentina2026-07-02
1017Japan2026-06-28
1018Germany2026-07-21
1019Australia2026-06-27
1020Italy2026-06-27
1021Germany2026-07-15
1022United Kingdom2026-06-28
1023Spain2026-07-20
1024United Kingdom2026-07-15
1025Canada2026-07-05
1026Germany2026-07-20
1027Canada2026-07-19
1028Australia2026-06-28
1029Japan2026-06-30
1030Germany2026-07-20
1031Japan2026-06-26
1032Brazil2026-07-02
1033Argentina2026-07-02
1034Russia2026-06-27
1035Argentina2026-07-12
1036Australia2026-07-04
1037Spain2026-07-20
1038Argentina2026-07-17
1039France2026-07-20
1040Germany2026-07-18
1041Brazil2026-07-13
1042Argentina2026-06-25
1043Germany2026-07-14
1044Australia2026-07-07
1045United Kingdom2026-07-13
1046Brazil2026-07-13
1047Canada2026-07-07
1048Germany2026-07-04
1049Japan2026-07-09

On-Demand Data

NameIdCountryDate
Chavez I Whobrey1000India2026-07-13
Izzy P Glick1001Argentina2026-07-09
Kadeem P Saylors1002Russia2026-07-19
Maria K Schemmer1003Germany2026-07-18
Arvin I Nestle1004Australia2026-06-26
Francesco Q Campain1005Australia2026-07-17
Leja S Figeroa1006Italy2026-07-05
Julie T Ferencz1007Germany2026-06-28
Sinclair T Rim1008Russia2026-07-15
Ashley Z Perin1009Russia2026-07-21
Munro P Royster1010Germany2026-07-19
Kaitlin C Figeroa1011Italy2026-07-18
Mayumi S Ostrosky1012Brazil2026-07-06
Leja Y Saylors1013Italy2026-07-19
Arvin L Whobrey1014Germany2026-07-15
Chavez V Nestle1015Italy2026-06-28
Johnson I Dilliard1016France2026-07-14
Deepesh H Maclead1017United Kingdom2026-07-12
Jeanfrancois S Bolognia1018Argentina2026-07-21
Morrow Y Slusarski1019France2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo S FollerRussiaStephen Shaw RENEWAL
Cody J OstroskySpainIoni Bowcher NEGOTIATION
Faith W WieserArgentinaXuxue Feng QUALIFIED
Claire D GarufiBrazilElwin Sharvill NEGOTIATION
Aditya Y WhobreyArgentinaOnyama Limba QUALIFIED
Darci C RulapaughUnited KingdomElwin Sharvill NEW
Silvio W RulapaughRussiaIvan Magalhaes PROPOSAL
Johnson X StensethSpainOnyama Limba QUALIFIED
Jefferson U GlickUnited KingdomAnna Fali QUALIFIED
Murillo S SchemmerSpainXuxue Feng NEGOTIATION
Aditya J FigeroaGermanyAnna Fali QUALIFIED
Clifford Q ShinkoUnited KingdomIoni Bowcher NEW
Nicolas L GillianArgentinaBernardo Dominic NEW
Kaitlin Q WhobreyFranceElwin Sharvill RENEWAL
Jennifer X DarakjyFranceAsiya Javayant RENEWAL
Kadeem U AmigonBrazilAmy Elsner UNQUALIFIED
Kadeem W PoquetteAustraliaOnyama Limba RENEWAL
Ivar Q KuskoCanadaAnna Fali PROPOSAL
Deepesh X FlosiCanadaIoni Bowcher PROPOSAL
Sinclair R PoquetteRussiaAsiya Javayant RENEWAL
Cody K BowleyRussiaIvan Magalhaes PROPOSAL
Smith O StockhamRussiaIvan Magalhaes NEGOTIATION
Alejandro J RulapaughIndiaOnyama Limba PROPOSAL
Clifford M SergiBrazilAnna Fali RENEWAL
Octavia T GauchoRussiaAmy Elsner UNQUALIFIED
Julie L TollnerFranceOnyama Limba UNQUALIFIED
Adams P OldroydUnited KingdomOnyama Limba NEGOTIATION
Stacey F FollerIndiaXuxue Feng NEW
James Z MorascaFranceAmy Elsner RENEWAL
David W RulapaughArgentinaOnyama Limba QUALIFIED
Darci H IturbideAustraliaIvan Magalhaes UNQUALIFIED
Misaki G PerinIndiaStephen Shaw NEGOTIATION
Izzy S MarrierArgentinaAmy Elsner QUALIFIED
Johnson C GlickItalyAsiya Javayant NEW
Aika H OldroydRussiaBernardo Dominic RENEWAL
James S CaldareraUnited KingdomXuxue Feng QUALIFIED
Murillo G OstroskyBrazilAnna Fali PROPOSAL
Aditya T WaycottArgentinaBernardo Dominic RENEWAL
David J PaprockiArgentinaElwin Sharvill QUALIFIED
Salvatore Q MaletIndiaAsiya Javayant QUALIFIED

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