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
Murillo T FerenczGermanyElwin Sharvill PROPOSAL
Chavez G AmigonCanadaIvan Magalhaes QUALIFIED
Francesco K VenereBrazilAmy Elsner PROPOSAL
Stacey U AlbaresIndiaIoni Bowcher NEW
Mayumi N MacleadFranceAnna Fali PROPOSAL
Aruna T WhobreySpainStephen Shaw QUALIFIED
Kadeem U VenereJapanAmy Elsner QUALIFIED
Antonio H BologniaBrazilBernardo Dominic PROPOSAL
James P MarrierGermanyBernardo Dominic NEGOTIATION
Arvin P RoysterRussiaElwin Sharvill UNQUALIFIED
Alejandro D RimItalyOnyama Limba PROPOSAL
Claire C ShinkoArgentinaAnna Fali PROPOSAL
Adams K VocelkaItalyOnyama Limba UNQUALIFIED
Ricardo A GarufiCanadaAmy Elsner NEGOTIATION
Costa Y TollnerUnited KingdomIoni Bowcher NEW
Costa N MarrierRussiaBernardo Dominic NEW
Costa P ButtBrazilIoni Bowcher PROPOSAL
Johnson O MacleadCanadaAmy Elsner NEW
Stacey N FigeroaJapanIoni Bowcher PROPOSAL
Misaki T GarufiRussiaBernardo Dominic NEGOTIATION
Stacey A TollnerGermanyBernardo Dominic UNQUALIFIED
Kadeem Y SchemmerIndiaElwin Sharvill UNQUALIFIED
Salvatore X PoquetteCanadaStephen Shaw QUALIFIED
Mayumi S MacleadRussiaElwin Sharvill RENEWAL
Kadeem M NestleArgentinaOnyama Limba RENEWAL
Juan S VenereGermanyAmy Elsner NEGOTIATION
Clifford Q TollnerUnited KingdomXuxue Feng RENEWAL
Francesco N DilliardItalyIvan Magalhaes NEGOTIATION
David W DilliardBrazilElwin Sharvill PROPOSAL
Costa R FlosiIndiaAsiya Javayant QUALIFIED
Antonio T OstroskyAustraliaXuxue Feng QUALIFIED
Silvio H RutaCanadaIvan Magalhaes QUALIFIED
Jeanfrancois D SergiBrazilIoni Bowcher QUALIFIED
Maisha Y AmigonFranceAmy Elsner NEGOTIATION
Ricardo V RutaRussiaBernardo Dominic QUALIFIED
Rodrigues H DoeIndiaStephen Shaw UNQUALIFIED
Rodrigues Q AlbaresCanadaAsiya Javayant PROPOSAL
Aruna P MacleadFranceBernardo Dominic NEGOTIATION
Murillo P RulapaughIndiaAnna Fali QUALIFIED
Greenwood F StensethAustraliaAmy Elsner NEW
Arvin A MaletArgentinaAsiya Javayant PROPOSAL
Kaitlin J PoquetteJapanIvan Magalhaes NEGOTIATION
Greenwood I MarrierJapanOnyama Limba QUALIFIED
Juan B MarrierBrazilIvan Magalhaes PROPOSAL
Costa H StensethItalyAmy Elsner NEW
Misaki Z FlosiIndiaStephen Shaw RENEWAL
Costa Y KuskoSpainStephen Shaw UNQUALIFIED
Leja A ChuiIndiaAsiya Javayant NEGOTIATION
Stacey C GarufiAustraliaIoni Bowcher NEGOTIATION
Alejandro E MacleadIndiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo F WieserSpainAmy Elsner NEW
Costa Z DoeIndiaStephen Shaw RENEWAL
Smith V DarakjyAustraliaIoni Bowcher NEGOTIATION
Julie X GlickArgentinaAsiya Javayant NEW
Johnson L NestleCanadaAnna Fali PROPOSAL
Leon Y MaletFranceOnyama Limba UNQUALIFIED
Leja V RulapaughRussiaXuxue Feng QUALIFIED
Aditya C MaletIndiaOnyama Limba RENEWAL
Tony W ShinkoUnited KingdomOnyama Limba PROPOSAL
Arvin P GauchoRussiaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C AlbaresArgentina2026-08-19Rousseaux, Michael Esq PROPOSAL34Anna Fali
1001Mayumi T WaycottIndia2026-08-26Benton, John B Jr RENEWAL43Amy Elsner
1002Emily W TollnerJapan2026-08-22Rangoni Of Florence NEW64Asiya Javayant
1003Adams J FigeroaCanada2026-08-07King, Christopher A Esq NEGOTIATION86Ivan Magalhaes
1004Ricardo K SergiArgentina2026-08-07Benton, John B Jr NEGOTIATION95Ivan Magalhaes
1005Ricardo M VenereRussia2026-08-19Feiner Bros NEGOTIATION72Anna Fali
1006Mujtaba I DarakjyUnited Kingdom2026-08-08Chapman, Ross E Esq NEW20Xuxue Feng
1007Murillo U GarufiSpain2026-08-09Chanay, Jeffrey A Esq NEGOTIATION42Asiya Javayant
1008Claire O OstroskyJapan2026-08-13Rousseaux, Michael Esq PROPOSAL29Elwin Sharvill
1009Murillo N DarakjyUnited Kingdom2026-08-11Commercial Press NEW12Ivan Magalhaes
1010Maisha N CaldareraItaly2026-08-25Chanay, Jeffrey A Esq NEW64Xuxue Feng
1011Claire M BologniaIndia2026-09-01Chanay, Jeffrey A Esq RENEWAL71Bernardo Dominic
1012James I VocelkaGermany2026-08-19Printing Dimensions QUALIFIED82Onyama Limba
1013Claire Q OldroydArgentina2026-08-14Feiner Bros NEGOTIATION59Amy Elsner
1014James S CaldareraSpain2026-09-01Chapman, Ross E Esq UNQUALIFIED35Asiya Javayant
1015Rodrigues Q DarakjyRussia2026-08-27Rousseaux, Michael Esq UNQUALIFIED9Ioni Bowcher
1016Jennifer A FerenczJapan2026-08-04Truhlar And Truhlar Attys QUALIFIED85Bernardo Dominic
1017Morrow E MaletCanada2026-08-06Commercial Press NEGOTIATION94Ivan Magalhaes
1018Julie E WieserRussia2026-08-18Chapman, Ross E Esq UNQUALIFIED3Ivan Magalhaes
1019Wickens J InouyeArgentina2026-08-10Truhlar And Truhlar Attys UNQUALIFIED15Stephen Shaw
1020Clifford V IturbideCanada2026-08-10Morlong Associates RENEWAL2Xuxue Feng
1021Julie G GillianItaly2026-08-17Rousseaux, Michael Esq NEW52Stephen Shaw
1022Jennifer D ShinkoAustralia2026-08-19Rousseaux, Michael Esq NEW75Anna Fali
1023Francesco I AlbaresAustralia2026-08-30Feltz Printing Service RENEWAL5Ivan Magalhaes
1024Greenwood L InouyeJapan2026-08-16Benton, John B Jr NEGOTIATION21Stephen Shaw
1025Faith C NestleFrance2026-08-24Truhlar And Truhlar Attys QUALIFIED84Elwin Sharvill
1026Aika E GauchoIndia2026-08-30Feiner Bros RENEWAL77Asiya Javayant
1027Nicolas U MarrierSpain2026-08-18Chanay, Jeffrey A Esq RENEWAL15Stephen Shaw
1028Misaki G CaudyArgentina2026-08-11Commercial Press NEGOTIATION91Xuxue Feng
1029Ashley S GlickIndia2026-08-22Chanay, Jeffrey A Esq QUALIFIED65Xuxue Feng
1030Salvatore B GauchoIndia2026-08-31Chanay, Jeffrey A Esq RENEWAL35Stephen Shaw
1031Jennifer P MorascaCanada2026-08-04Chemel, James L Cpa NEGOTIATION8Elwin Sharvill
1032Kadeem Q CaudyItaly2026-08-30Benton, John B Jr NEGOTIATION95Amy Elsner
1033Mujtaba F StockhamGermany2026-08-07Feltz Printing Service NEGOTIATION49Amy Elsner
1034Aika W VenereGermany2026-08-31Rangoni Of Florence NEGOTIATION85Ivan Magalhaes
1035Alejandro X IturbideGermany2026-08-29Chapman, Ross E Esq RENEWAL48Anna Fali
1036Julie E NickaRussia2026-08-16Feltz Printing Service NEGOTIATION13Onyama Limba
1037Ricardo I BriddickSpain2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED21Onyama Limba
1038Clifford O OstroskyArgentina2026-08-13Rousseaux, Michael Esq PROPOSAL25Amy Elsner
1039Antonio Q ShinkoIndia2026-08-15Chanay, Jeffrey A Esq NEW52Amy Elsner
1040Cody O PoquetteFrance2026-09-02Morlong Associates UNQUALIFIED4Xuxue Feng
1041Faith E InouyeUnited Kingdom2026-08-31Rousseaux, Michael Esq NEW33Bernardo Dominic
1042Maria W GlickBrazil2026-09-01Chemel, James L Cpa NEW34Ivan Magalhaes
1043Mayumi F PoquetteRussia2026-08-30King, Christopher A Esq NEW53Xuxue Feng
1044Claire M FlosiRussia2026-08-16Dorl, James J Esq UNQUALIFIED86Anna Fali
1045Izzy S OstroskyGermany2026-08-13Rousseaux, Michael Esq NEGOTIATION19Ioni Bowcher
1046Cody S FigeroaUnited Kingdom2026-08-25Morlong Associates PROPOSAL70Ivan Magalhaes
1047Aika O SaylorsBrazil2026-08-28Commercial Press PROPOSAL95Xuxue Feng
1048Deepesh B ShinkoCanada2026-08-30Feiner Bros RENEWAL42Ivan Magalhaes
1049Alejandro P TollnerJapan2026-08-05King, Christopher A Esq PROPOSAL26Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Darci B FigeroaJapanAmy Elsner NEW
Leja Q DarakjyFranceAmy Elsner PROPOSAL
Silvio W NickaSpainIoni Bowcher NEW
Jennifer J MacleadFranceOnyama Limba UNQUALIFIED
Rodrigues M TollnerUnited KingdomAsiya Javayant RENEWAL
Aruna I CaudyGermanyAsiya Javayant QUALIFIED
Adams G VenereAustraliaIvan Magalhaes NEGOTIATION
Juan G CaldareraCanadaAmy Elsner UNQUALIFIED
Octavia W CaldareraItalyXuxue Feng QUALIFIED
Darci J RoysterArgentinaStephen Shaw PROPOSAL
Chavez J AlbaresSpainOnyama Limba UNQUALIFIED
Johnson Z BowleyIndiaAnna Fali NEGOTIATION
Francesco Z AmigonArgentinaAmy Elsner RENEWAL
Misaki O RutaUnited KingdomAnna Fali RENEWAL
Jefferson D StockhamCanadaBernardo Dominic UNQUALIFIED
Smith O MacleadUnited KingdomAmy Elsner RENEWAL
Jones P SlusarskiCanadaBernardo Dominic NEGOTIATION
Stacey O MaletBrazilOnyama Limba PROPOSAL
Izzy Q SaylorsIndiaAnna Fali RENEWAL
Aruna P SchemmerCanadaAnna Fali PROPOSAL
Aika X StensethGermanyAsiya Javayant UNQUALIFIED
Antonio U GillianArgentinaIoni Bowcher UNQUALIFIED
David W CaudyCanadaAmy Elsner RENEWAL
Clifford L FerenczBrazilAmy Elsner PROPOSAL
Antonio W NestleCanadaIvan Magalhaes QUALIFIED
Darci A ChuiArgentinaAnna Fali RENEWAL
Maisha U DarakjyBrazilElwin Sharvill PROPOSAL
Murillo D IturbideGermanyIoni Bowcher NEGOTIATION
Aruna A NickaAustraliaBernardo Dominic RENEWAL
Maria U AmigonSpainStephen Shaw NEW
Stacey F AmigonBrazilIoni Bowcher PROPOSAL
Silvio S MarrierCanadaBernardo Dominic RENEWAL
Johnson O TollnerCanadaAnna Fali RENEWAL
Wickens C BologniaRussiaElwin Sharvill QUALIFIED
Salvatore V RutaGermanyBernardo Dominic NEGOTIATION
Francesco B RutaGermanyElwin Sharvill QUALIFIED
Julie M GauchoRussiaStephen Shaw PROPOSAL
Wickens O SaylorsAustraliaStephen Shaw RENEWAL
Antonio I DoeCanadaAmy Elsner NEGOTIATION
Jeanfrancois W VocelkaAustraliaElwin Sharvill RENEWAL
Darci K MacleadArgentinaIvan Magalhaes NEW
Aruna T GauchoGermanyAmy Elsner NEW
Tony V GillianArgentinaXuxue Feng NEW
David S DilliardAustraliaOnyama Limba NEW
Ricardo Y PaprockiAustraliaElwin Sharvill RENEWAL
Silvio D DoeJapanBernardo Dominic NEGOTIATION
Claire L IturbideCanadaIoni Bowcher QUALIFIED
Juan V StensethIndiaAmy Elsner NEGOTIATION
Leon L MorascaAustraliaAsiya Javayant UNQUALIFIED
Adams A CampainSpainOnyama Limba NEGOTIATION
Frozen Columns
Name
Clifford Y Flosi
Murillo U Stockham
Munro Z Albares
Maisha J Figeroa
Darci T Rulapaugh
Leja W Stenseth
Deepesh A Nicka
Tony O Bowley
Maria O Amigon
Claire N Chui
Greenwood D Gaucho
Stacey T Perin
Darci Y Figeroa
Johnson D Perin
Leon H Wieser
David C Wieser
Darci G Paprocki
Adams L Figeroa
Ivar H Nicka
Aruna U Nicka
Silvio P Waycott
Chavez P Bowley
Kadeem L Vocelka
Aruna L Nestle
Chavez E Foller
Leon Q Stockham
Aditya D Ostrosky
Munro H Caudy
Ricardo M Oldroyd
Costa E Malet
Isabel B Schemmer
Rodrigues Q Foller
David D Slusarski
Mujtaba U Chui
Aruna I Kolmetz
Johnson D Kusko
Jones D Perin
Jefferson E Whobrey
Chavez C Inouye
Munro M Saylors
Mujtaba Q Slusarski
Jones Q Malet
Julie W Maclead
Ashley I Briddick
Sinclair J Maclead
Stacey M Bolognia
Mayumi Q Malet
Jennifer J Gaucho
Leja L Ruta
Misaki R Shinko
IdCountryDate
1000United Kingdom2026-08-26
1001Brazil2026-08-14
1002Japan2026-08-18
1003Spain2026-08-10
1004India2026-08-29
1005Italy2026-08-10
1006Argentina2026-08-20
1007Canada2026-08-27
1008Canada2026-08-06
1009Australia2026-08-22
1010Australia2026-08-23
1011Germany2026-08-13
1012India2026-08-12
1013Russia2026-08-21
1014Canada2026-08-28
1015France2026-09-02
1016Germany2026-08-18
1017Russia2026-08-13
1018Italy2026-08-16
1019Italy2026-08-09
1020Australia2026-08-05
1021Australia2026-08-14
1022Argentina2026-09-02
1023United Kingdom2026-08-05
1024Japan2026-08-13
1025Russia2026-08-29
1026France2026-08-20
1027India2026-08-15
1028Russia2026-08-14
1029United Kingdom2026-08-20
1030Japan2026-08-22
1031Italy2026-08-13
1032Spain2026-08-13
1033Russia2026-08-31
1034France2026-08-05
1035Canada2026-08-23
1036Australia2026-08-14
1037Argentina2026-09-01
1038Japan2026-08-19
1039Canada2026-08-05
1040India2026-08-12
1041United Kingdom2026-08-12
1042Spain2026-08-07
1043Russia2026-08-24
1044India2026-08-26
1045Italy2026-08-23
1046Spain2026-08-09
1047India2026-08-26
1048Germany2026-08-06
1049Canada2026-08-06

On-Demand Data

NameIdCountryDate
Smith B Garufi1000United Kingdom2026-08-11
Juan Y Dilliard1001Japan2026-08-16
Clifford Z Garufi1002Canada2026-09-02
Claire X Dilliard1003United Kingdom2026-08-23
Kaitlin O Rulapaugh1004Canada2026-08-27
Johnson E Rulapaugh1005United Kingdom2026-08-22
Johnson Z Rulapaugh1006Australia2026-08-06
Salvatore I Butt1007Germany2026-08-05
Leon A Saylors1008Canada2026-08-14
Sinclair T Gaucho1009Germany2026-08-12
Alejandro J Foller1010Italy2026-08-13
Chavez X Venere1011Australia2026-08-24
Faith T Stenseth1012Japan2026-08-07
Stacey E Saylors1013United Kingdom2026-08-24
Munro D Malet1014Australia2026-08-08
Deepesh B Rulapaugh1015Japan2026-08-28
Faith Z Nestle1016United Kingdom2026-08-30
Mujtaba R Bowley1017Spain2026-08-09
Morrow U Bolognia1018Canada2026-08-25
Jennifer N Bowley1019Argentina2026-09-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie K FigeroaUnited KingdomStephen Shaw PROPOSAL
Juan E CaudyJapanAsiya Javayant UNQUALIFIED
Ricardo C DilliardSpainStephen Shaw NEGOTIATION
Cody B AmigonCanadaAsiya Javayant UNQUALIFIED
Misaki I NestleJapanIvan Magalhaes RENEWAL
Nicolas E SergiUnited KingdomOnyama Limba QUALIFIED
Tony B MacleadCanadaAmy Elsner QUALIFIED
Munro J GarufiItalyElwin Sharvill QUALIFIED
Morrow Z KuskoAustraliaIvan Magalhaes NEW
Darci B DoeFranceIoni Bowcher UNQUALIFIED
David A GarufiAustraliaIvan Magalhaes NEGOTIATION
Murillo T ChuiRussiaIvan Magalhaes UNQUALIFIED
Juan W ShinkoCanadaAsiya Javayant NEW
Aruna M WieserSpainOnyama Limba UNQUALIFIED
Smith H FerenczBrazilOnyama Limba NEGOTIATION
Izzy U FigeroaCanadaBernardo Dominic QUALIFIED
Wickens Z RimArgentinaIoni Bowcher NEGOTIATION
Octavia J RutaBrazilIvan Magalhaes QUALIFIED
Jefferson O BriddickCanadaIoni Bowcher NEGOTIATION
Stacey C WhobreyGermanyStephen Shaw NEGOTIATION
Izzy U CampainSpainOnyama Limba UNQUALIFIED
Octavia T GauchoIndiaXuxue Feng NEGOTIATION
Emily J DarakjyRussiaOnyama Limba QUALIFIED
Maisha J RimBrazilAnna Fali NEW
Aruna G WhobreyJapanIvan Magalhaes QUALIFIED
Ricardo H VocelkaItalyAmy Elsner UNQUALIFIED
Leja Y BowleyArgentinaIvan Magalhaes PROPOSAL
Clifford K PoquetteArgentinaIoni Bowcher QUALIFIED
James U WhobreyRussiaElwin Sharvill NEGOTIATION
Silvio E FerenczJapanIoni Bowcher PROPOSAL
Clifford D CaldareraJapanElwin Sharvill NEGOTIATION
Stacey F DarakjyIndiaXuxue Feng PROPOSAL
David T FlosiIndiaIvan Magalhaes UNQUALIFIED
Francesco W GlickJapanAsiya Javayant RENEWAL
Greenwood R AmigonIndiaBernardo Dominic NEGOTIATION
Greenwood B VocelkaArgentinaElwin Sharvill UNQUALIFIED
Munro B MaletIndiaAsiya Javayant UNQUALIFIED
Salvatore D PaprockiFranceStephen Shaw RENEWAL
Aruna Z FerenczRussiaXuxue Feng QUALIFIED
Costa B GauchoArgentinaElwin Sharvill NEGOTIATION

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