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
Chavez A GauchoFranceStephen Shaw UNQUALIFIED
Tony J TollnerCanadaIvan Magalhaes QUALIFIED
Aika E BologniaJapanOnyama Limba PROPOSAL
Antonio T KuskoCanadaIvan Magalhaes UNQUALIFIED
Arvin R RimArgentinaIvan Magalhaes NEW
Greenwood N StensethFranceAnna Fali NEGOTIATION
Aika Z InouyeRussiaIoni Bowcher RENEWAL
Murillo V InouyeUnited KingdomAmy Elsner UNQUALIFIED
Ricardo Y FlosiItalyElwin Sharvill NEW
Munro Q MaletItalyElwin Sharvill NEGOTIATION
Francesco T FigeroaGermanyStephen Shaw NEW
Aditya I RoysterJapanOnyama Limba NEGOTIATION
Ricardo X WieserBrazilAsiya Javayant NEGOTIATION
Jennifer B IturbideBrazilStephen Shaw PROPOSAL
Deepesh H BriddickFranceXuxue Feng NEW
Costa N InouyeItalyIvan Magalhaes NEW
Maria I InouyeBrazilBernardo Dominic NEW
Rodrigues Q StockhamIndiaElwin Sharvill PROPOSAL
Ivar X InouyeArgentinaAnna Fali QUALIFIED
Morrow T SchemmerArgentinaOnyama Limba NEGOTIATION
Costa K InouyeGermanyElwin Sharvill NEGOTIATION
Aruna Q BowleyUnited KingdomBernardo Dominic NEW
Adams X FerenczAustraliaElwin Sharvill UNQUALIFIED
Octavia I FollerBrazilElwin Sharvill RENEWAL
Julie E OldroydItalyStephen Shaw UNQUALIFIED
Nicolas L WhobreyBrazilIoni Bowcher RENEWAL
Ivar S DarakjyCanadaAmy Elsner RENEWAL
Claire L GauchoAustraliaAmy Elsner UNQUALIFIED
Ricardo J RimItalyElwin Sharvill UNQUALIFIED
Cody Y RulapaughJapanIoni Bowcher UNQUALIFIED
Juan S RulapaughRussiaAnna Fali UNQUALIFIED
Ricardo G VocelkaUnited KingdomStephen Shaw PROPOSAL
Costa A MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Smith H VocelkaUnited KingdomStephen Shaw QUALIFIED
Alejandro D InouyeGermanyAsiya Javayant RENEWAL
Alejandro L VenereFranceXuxue Feng NEGOTIATION
Maria K WieserFranceAmy Elsner PROPOSAL
Julie M CampainRussiaOnyama Limba NEGOTIATION
Maria N CampainBrazilAsiya Javayant UNQUALIFIED
Sinclair U AlbaresIndiaElwin Sharvill RENEWAL
Juan K StensethGermanyBernardo Dominic RENEWAL
Munro H IturbideSpainXuxue Feng UNQUALIFIED
Silvio H SchemmerBrazilBernardo Dominic NEGOTIATION
David T OldroydJapanBernardo Dominic UNQUALIFIED
Ricardo F CampainJapanStephen Shaw NEGOTIATION
Antonio X PerinSpainAnna Fali UNQUALIFIED
Deepesh S MarrierGermanyAmy Elsner UNQUALIFIED
Mujtaba K CaldareraUnited KingdomElwin Sharvill NEW
Wickens P DarakjyRussiaXuxue Feng UNQUALIFIED
Johnson L CaudyItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Leon T StensethFranceAsiya Javayant RENEWAL
Greenwood D PoquetteRussiaIoni Bowcher NEW
Juan Z AlbaresIndiaStephen Shaw PROPOSAL
Adams I CampainRussiaIvan Magalhaes NEW
Kaitlin R AlbaresItalyAsiya Javayant UNQUALIFIED
Chavez F MaletFranceAsiya Javayant PROPOSAL
Morrow W TollnerUnited KingdomAnna Fali PROPOSAL
Jeanfrancois K SaylorsRussiaAsiya Javayant UNQUALIFIED
Emily N MaletFranceStephen Shaw UNQUALIFIED
Costa M GarufiItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Y KuskoGermany2026-08-13Printing Dimensions PROPOSAL5Onyama Limba
1001Faith K WieserBrazil2026-08-13Rousseaux, Michael Esq QUALIFIED2Xuxue Feng
1002Deepesh N VenereBrazil2026-08-04Chanay, Jeffrey A Esq NEW40Xuxue Feng
1003Smith X MaletUnited Kingdom2026-08-15Rousseaux, Michael Esq UNQUALIFIED3Bernardo Dominic
1004David K TollnerJapan2026-07-22Morlong Associates NEW23Ioni Bowcher
1005Kaitlin P OstroskyAustralia2026-08-06Dorl, James J Esq UNQUALIFIED46Xuxue Feng
1006Cody T AmigonArgentina2026-07-28Benton, John B Jr RENEWAL45Anna Fali
1007Kaitlin Z VenereBrazil2026-07-28Commercial Press QUALIFIED46Elwin Sharvill
1008Clifford Z MarrierGermany2026-07-21Commercial Press RENEWAL64Onyama Limba
1009Faith X FerenczAustralia2026-07-20Dorl, James J Esq RENEWAL82Anna Fali
1010Johnson D CampainItaly2026-08-12Benton, John B Jr PROPOSAL75Asiya Javayant
1011Ricardo M FigeroaJapan2026-08-06Chanay, Jeffrey A Esq PROPOSAL6Asiya Javayant
1012Antonio D GillianItaly2026-07-26Dorl, James J Esq RENEWAL81Bernardo Dominic
1013Emily S CampainAustralia2026-08-11Buckley Miller Wright UNQUALIFIED42Ioni Bowcher
1014Juan Z InouyeAustralia2026-08-14Benton, John B Jr QUALIFIED69Amy Elsner
1015Mayumi S WaycottCanada2026-08-09Buckley Miller Wright UNQUALIFIED7Amy Elsner
1016Ashley L CaudyCanada2026-08-18Chanay, Jeffrey A Esq UNQUALIFIED11Onyama Limba
1017Isabel O PerinCanada2026-08-13Rousseaux, Michael Esq QUALIFIED62Xuxue Feng
1018Darci Q PoquetteJapan2026-08-16Rangoni Of Florence UNQUALIFIED12Amy Elsner
1019Aruna Y DoeJapan2026-08-11Chemel, James L Cpa PROPOSAL99Onyama Limba
1020Emily Q ShinkoFrance2026-07-27King, Christopher A Esq NEW70Amy Elsner
1021Deepesh R VocelkaIndia2026-07-27Chemel, James L Cpa PROPOSAL89Elwin Sharvill
1022Mayumi J BriddickItaly2026-07-21Commercial Press UNQUALIFIED35Anna Fali
1023Adams H FollerItaly2026-07-22Chemel, James L Cpa UNQUALIFIED14Bernardo Dominic
1024Ivar M SergiBrazil2026-07-30Rousseaux, Michael Esq NEGOTIATION36Ioni Bowcher
1025Maria P GlickRussia2026-08-03Benton, John B Jr QUALIFIED47Amy Elsner
1026Aditya E WieserFrance2026-08-13Morlong Associates NEGOTIATION14Amy Elsner
1027Jeanfrancois Z CampainJapan2026-08-15Rangoni Of Florence UNQUALIFIED11Amy Elsner
1028Juan X AmigonArgentina2026-08-03Chapman, Ross E Esq PROPOSAL69Ioni Bowcher
1029Mayumi N RimBrazil2026-07-24Truhlar And Truhlar Attys RENEWAL1Elwin Sharvill
1030Emily A DilliardSpain2026-08-16Chemel, James L Cpa QUALIFIED99Elwin Sharvill
1031David I RutaBrazil2026-08-12Chapman, Ross E Esq PROPOSAL60Onyama Limba
1032Greenwood H CaudyItaly2026-08-13Chanay, Jeffrey A Esq NEW13Amy Elsner
1033Rodrigues R BriddickUnited Kingdom2026-08-12Rangoni Of Florence QUALIFIED16Asiya Javayant
1034Izzy R GauchoBrazil2026-07-28Benton, John B Jr QUALIFIED12Xuxue Feng
1035Aditya R SergiAustralia2026-08-12Dorl, James J Esq NEGOTIATION8Stephen Shaw
1036Salvatore S OstroskyCanada2026-08-02Buckley Miller Wright PROPOSAL27Xuxue Feng
1037Salvatore G KuskoIndia2026-08-15Commercial Press PROPOSAL95Xuxue Feng
1038Chavez S VocelkaIndia2026-07-24Chemel, James L Cpa UNQUALIFIED35Stephen Shaw
1039Darci H GillianRussia2026-08-11Benton, John B Jr NEW65Amy Elsner
1040Faith P IturbideItaly2026-07-20Printing Dimensions UNQUALIFIED32Bernardo Dominic
1041Faith G AmigonCanada2026-08-06Morlong Associates RENEWAL16Elwin Sharvill
1042Emily X GillianItaly2026-07-22Dorl, James J Esq NEW83Xuxue Feng
1043Costa E MacleadArgentina2026-08-03Commercial Press NEGOTIATION57Amy Elsner
1044Misaki J FigeroaFrance2026-08-07King, Christopher A Esq QUALIFIED88Elwin Sharvill
1045Izzy G VocelkaJapan2026-08-15Benton, John B Jr UNQUALIFIED67Bernardo Dominic
1046Leon W NickaArgentina2026-08-03Chapman, Ross E Esq RENEWAL75Ioni Bowcher
1047Cody D ButtJapan2026-07-28Morlong Associates UNQUALIFIED17Bernardo Dominic
1048Antonio T PaprockiBrazil2026-07-26Printing Dimensions NEW92Xuxue Feng
1049Leja D SlusarskiCanada2026-07-20Dorl, James J Esq QUALIFIED44Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Murillo J FlosiCanadaBernardo Dominic NEW
Chavez Y BriddickUnited KingdomIoni Bowcher RENEWAL
Arvin W FigeroaUnited KingdomXuxue Feng QUALIFIED
Aditya M DarakjyItalyAmy Elsner PROPOSAL
Costa V SchemmerItalyIoni Bowcher RENEWAL
Leja X KuskoIndiaXuxue Feng QUALIFIED
Jones U RoysterBrazilOnyama Limba RENEWAL
Antonio Q RimFranceAsiya Javayant RENEWAL
Aditya B PerinSpainStephen Shaw QUALIFIED
Octavia V GlickIndiaStephen Shaw PROPOSAL
Darci Z PaprockiBrazilStephen Shaw RENEWAL
Silvio B MarrierItalyStephen Shaw QUALIFIED
Morrow H CaudyBrazilBernardo Dominic RENEWAL
Mujtaba O TollnerIndiaOnyama Limba PROPOSAL
Greenwood W GillianUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem I DarakjyAustraliaStephen Shaw NEW
Maisha F KolmetzFranceAnna Fali RENEWAL
Claire R CaudyItalyStephen Shaw NEGOTIATION
Jefferson A PoquetteSpainXuxue Feng UNQUALIFIED
Clifford X GauchoItalyOnyama Limba PROPOSAL
Ashley H DoeItalyAnna Fali QUALIFIED
Alejandro V KolmetzFranceElwin Sharvill RENEWAL
Adams T TollnerJapanIvan Magalhaes PROPOSAL
Faith Z MaletAustraliaBernardo Dominic NEGOTIATION
Greenwood K RulapaughFranceIoni Bowcher RENEWAL
Juan Q ShinkoJapanElwin Sharvill QUALIFIED
Mujtaba O SchemmerAustraliaXuxue Feng RENEWAL
Alejandro D MarrierBrazilAnna Fali UNQUALIFIED
Izzy V FlosiCanadaIvan Magalhaes NEGOTIATION
Johnson Q CaldareraCanadaAnna Fali RENEWAL
Greenwood U CaldareraSpainBernardo Dominic QUALIFIED
Munro J VocelkaRussiaAsiya Javayant PROPOSAL
Munro T RutaFranceOnyama Limba NEGOTIATION
Maisha Q ShinkoIndiaIvan Magalhaes NEW
Isabel G MaletArgentinaIvan Magalhaes RENEWAL
Leon F MacleadGermanyElwin Sharvill NEW
Morrow C VocelkaAustraliaStephen Shaw QUALIFIED
Nicolas L PaprockiJapanOnyama Limba NEW
Mayumi T MaletRussiaElwin Sharvill NEW
Tony K DoeSpainOnyama Limba NEGOTIATION
Smith D StockhamUnited KingdomAsiya Javayant NEW
Julie C FlosiAustraliaOnyama Limba PROPOSAL
Aika G DarakjyItalyAsiya Javayant NEGOTIATION
Darci W RimJapanAmy Elsner PROPOSAL
Greenwood N RulapaughRussiaAsiya Javayant UNQUALIFIED
Murillo D MaletJapanStephen Shaw NEGOTIATION
Claire K DoeIndiaOnyama Limba QUALIFIED
Arvin A CaudyFranceOnyama Limba UNQUALIFIED
Cody G BowleyUnited KingdomAmy Elsner NEGOTIATION
David K CampainCanadaAsiya Javayant RENEWAL
Frozen Columns
Name
Rodrigues M Darakjy
Deepesh Q Poquette
Octavia M Doe
Leja W Amigon
Leja N Nicka
Jefferson X Sergi
Mujtaba P Paprocki
Ivar G Ferencz
Jones E Venere
Isabel I Tollner
Nicolas H Poquette
Francesco V Malet
Greenwood O Kolmetz
Greenwood Y Doe
Arvin M Inouye
Deepesh J Ferencz
Smith O Doe
Aruna A Dilliard
Nicolas I Rulapaugh
Maria I Waycott
Leja A Iturbide
Octavia T Flosi
Arvin G Morasca
Morrow H Caudy
Claire O Oldroyd
Ricardo I Chui
Misaki G Caudy
Kadeem O Albares
Adams I Bolognia
Tony K Tollner
James D Shinko
Kaitlin Y Maclead
Murillo N Foller
Ivar Y Waycott
Smith P Saylors
Cody S Tollner
Smith C Kusko
Isabel U Morasca
Emily E Flosi
Juan F Kolmetz
James B Dilliard
Jeanfrancois X Ostrosky
Antonio A Stenseth
Kaitlin A Iturbide
Arvin H Morasca
Morrow K Inouye
Leja G Glick
Emily P Caudy
Stacey Y Vocelka
Francesco V Nestle
IdCountryDate
1000Germany2026-07-21
1001Italy2026-07-29
1002Japan2026-07-23
1003India2026-08-14
1004India2026-08-18
1005Russia2026-07-30
1006Spain2026-08-09
1007Spain2026-08-03
1008Argentina2026-07-26
1009Brazil2026-08-04
1010Brazil2026-07-24
1011United Kingdom2026-07-25
1012Germany2026-07-26
1013India2026-08-15
1014Japan2026-08-04
1015Japan2026-08-17
1016Russia2026-07-20
1017Germany2026-07-21
1018United Kingdom2026-08-01
1019Argentina2026-08-17
1020Germany2026-08-02
1021Spain2026-08-17
1022Spain2026-08-06
1023Brazil2026-07-30
1024Brazil2026-08-07
1025Germany2026-08-02
1026United Kingdom2026-07-25
1027United Kingdom2026-08-06
1028Germany2026-08-11
1029Spain2026-08-02
1030Spain2026-07-20
1031Japan2026-08-14
1032United Kingdom2026-08-06
1033United Kingdom2026-07-21
1034Brazil2026-07-21
1035United Kingdom2026-07-29
1036Australia2026-07-21
1037Spain2026-08-10
1038Argentina2026-08-15
1039France2026-07-23
1040Russia2026-08-02
1041Brazil2026-08-10
1042Germany2026-07-30
1043Italy2026-07-25
1044United Kingdom2026-07-27
1045Germany2026-07-27
1046India2026-08-12
1047India2026-08-11
1048India2026-08-07
1049Australia2026-07-23

On-Demand Data

NameIdCountryDate
Clifford J Royster1000Italy2026-07-28
Rodrigues Q Iturbide1001France2026-08-02
Leon E Slusarski1002Russia2026-07-27
Kaitlin K Darakjy1003Spain2026-07-25
Julie S Ruta1004Canada2026-08-02
Arvin L Glick1005Germany2026-07-28
Silvio G Chui1006Germany2026-08-01
Claire C Rulapaugh1007Spain2026-08-17
Cody A Kusko1008Russia2026-07-29
Salvatore F Doe1009Spain2026-07-25
Darci G Ostrosky1010Japan2026-08-01
Sinclair S Wieser1011Canada2026-07-24
Chavez R Rim1012Germany2026-07-24
Mujtaba F Stenseth1013France2026-08-07
Mujtaba N Poquette1014Brazil2026-08-15
Izzy E Nestle1015Russia2026-07-21
Mayumi M Morasca1016United Kingdom2026-07-30
Maisha K Albares1017Germany2026-08-03
Ashley V Stockham1018Brazil2026-08-03
Faith N Butt1019Australia2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem G MarrierJapanIoni Bowcher RENEWAL
Tony J AmigonUnited KingdomXuxue Feng NEW
Maisha H PoquetteRussiaIvan Magalhaes RENEWAL
Jennifer R MacleadGermanyIoni Bowcher NEGOTIATION
Salvatore D InouyeJapanXuxue Feng UNQUALIFIED
Cody Y IturbideSpainIoni Bowcher PROPOSAL
Izzy V WhobreyItalyIvan Magalhaes PROPOSAL
Juan Z MaletItalyAnna Fali RENEWAL
Antonio J GillianBrazilAmy Elsner NEGOTIATION
Antonio I RoysterCanadaIvan Magalhaes QUALIFIED
Francesco P GillianRussiaOnyama Limba QUALIFIED
Johnson Z SaylorsSpainIoni Bowcher PROPOSAL
Alejandro M MarrierItalyBernardo Dominic NEW
Jennifer B KuskoGermanyStephen Shaw QUALIFIED
Salvatore S BriddickSpainIvan Magalhaes RENEWAL
Cody O RutaJapanOnyama Limba QUALIFIED
Greenwood J OstroskyItalyIvan Magalhaes QUALIFIED
Faith D PaprockiGermanyAmy Elsner NEGOTIATION
Antonio B ButtGermanyIvan Magalhaes PROPOSAL
Maria N CampainAustraliaBernardo Dominic QUALIFIED
Aika R PerinAustraliaXuxue Feng NEW
Ricardo I StockhamGermanyIvan Magalhaes PROPOSAL
Isabel Y FollerRussiaXuxue Feng NEGOTIATION
Kaitlin X CaudyAustraliaXuxue Feng RENEWAL
Emily N InouyeAustraliaAsiya Javayant QUALIFIED
Nicolas Z SchemmerJapanXuxue Feng NEGOTIATION
Jeanfrancois I CampainUnited KingdomBernardo Dominic NEGOTIATION
Emily H SergiAustraliaXuxue Feng UNQUALIFIED
Misaki H GauchoRussiaStephen Shaw PROPOSAL
Jefferson B AmigonGermanyXuxue Feng QUALIFIED
Jefferson B RoysterIndiaStephen Shaw QUALIFIED
Maria W MorascaSpainIoni Bowcher RENEWAL
Ivar S MaletGermanyXuxue Feng RENEWAL
Wickens B FollerIndiaXuxue Feng RENEWAL
Francesco R InouyeIndiaBernardo Dominic PROPOSAL
Munro Q FerenczUnited KingdomAsiya Javayant PROPOSAL
Mujtaba B KuskoRussiaOnyama Limba QUALIFIED
Jones Z GarufiRussiaAsiya Javayant QUALIFIED
Octavia R SchemmerGermanyAmy Elsner UNQUALIFIED
Wickens H GauchoBrazilOnyama Limba NEW

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