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
Clifford S GauchoRussiaAmy Elsner UNQUALIFIED
Nicolas B GillianGermanyBernardo Dominic NEW
Deepesh K MaletUnited KingdomStephen Shaw PROPOSAL
Misaki S NestleJapanElwin Sharvill UNQUALIFIED
Jennifer F GillianFranceElwin Sharvill QUALIFIED
Darci L StockhamItalyAmy Elsner UNQUALIFIED
Chavez I TollnerRussiaAnna Fali NEW
Misaki Y PaprockiJapanIvan Magalhaes RENEWAL
Adams G ButtItalyAnna Fali UNQUALIFIED
Silvio X CaldareraJapanStephen Shaw NEGOTIATION
Sinclair G AmigonUnited KingdomAsiya Javayant RENEWAL
Aruna I KuskoArgentinaAmy Elsner RENEWAL
Mayumi Z FlosiArgentinaOnyama Limba NEGOTIATION
Emily V MacleadAustraliaStephen Shaw RENEWAL
Aruna N MorascaBrazilIvan Magalhaes QUALIFIED
Morrow P ButtBrazilElwin Sharvill RENEWAL
Antonio D SergiJapanAmy Elsner UNQUALIFIED
Isabel Z MorascaRussiaXuxue Feng NEGOTIATION
Costa T MaletArgentinaAsiya Javayant RENEWAL
Arvin X CaldareraArgentinaElwin Sharvill RENEWAL
Jennifer B BologniaJapanElwin Sharvill PROPOSAL
Cody A VocelkaSpainAmy Elsner NEW
Maisha U InouyeUnited KingdomElwin Sharvill QUALIFIED
Ivar N WaycottBrazilIvan Magalhaes RENEWAL
Nicolas G WaycottGermanyStephen Shaw QUALIFIED
Murillo C OstroskySpainBernardo Dominic PROPOSAL
Munro B OstroskyAustraliaOnyama Limba PROPOSAL
Jennifer D SlusarskiGermanyXuxue Feng RENEWAL
Salvatore K FollerSpainXuxue Feng RENEWAL
Sinclair Q VocelkaSpainElwin Sharvill PROPOSAL
Greenwood Z ShinkoAustraliaOnyama Limba NEW
Salvatore J OldroydJapanXuxue Feng UNQUALIFIED
James K BriddickFranceAnna Fali QUALIFIED
Stacey Q ShinkoRussiaXuxue Feng NEW
Clifford D GlickSpainIvan Magalhaes NEW
Morrow U InouyeAustraliaXuxue Feng NEGOTIATION
Rodrigues S CaudyBrazilStephen Shaw PROPOSAL
Aika W CampainUnited KingdomXuxue Feng NEW
Chavez Q AlbaresSpainBernardo Dominic NEW
Sinclair I DoeFranceOnyama Limba PROPOSAL
Leon A RulapaughItalyBernardo Dominic UNQUALIFIED
Stacey J VocelkaCanadaElwin Sharvill NEW
Greenwood M CaldareraCanadaBernardo Dominic PROPOSAL
Sinclair F SaylorsArgentinaIvan Magalhaes RENEWAL
Juan I VenereJapanElwin Sharvill NEGOTIATION
Izzy W PoquetteItalyStephen Shaw UNQUALIFIED
Maisha C InouyeAustraliaElwin Sharvill NEW
Ashley F GarufiFranceIvan Magalhaes UNQUALIFIED
Sinclair U SlusarskiSpainBernardo Dominic PROPOSAL
Octavia I MaletAustraliaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore D StockhamJapanOnyama Limba NEGOTIATION
David Q AlbaresItalyAnna Fali RENEWAL
Claire V OldroydSpainElwin Sharvill RENEWAL
Kaitlin L PaprockiArgentinaOnyama Limba QUALIFIED
Silvio K GlickBrazilXuxue Feng PROPOSAL
Rodrigues U CaldareraRussiaStephen Shaw UNQUALIFIED
Greenwood J WaycottUnited KingdomStephen Shaw PROPOSAL
Kaitlin U MacleadRussiaBernardo Dominic QUALIFIED
Johnson N ButtItalyXuxue Feng NEGOTIATION
Julie D DoeUnited KingdomElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia I DarakjyCanada2026-08-09Chapman, Ross E Esq NEW76Anna Fali
1001Jennifer O CampainUnited Kingdom2026-08-12Rangoni Of Florence PROPOSAL91Amy Elsner
1002Mujtaba T RutaBrazil2026-08-15King, Christopher A Esq PROPOSAL17Bernardo Dominic
1003Jefferson K CaldareraFrance2026-08-04Chapman, Ross E Esq QUALIFIED12Ivan Magalhaes
1004Aruna V WaycottFrance2026-07-27King, Christopher A Esq UNQUALIFIED1Anna Fali
1005Maisha Y AlbaresSpain2026-07-27Morlong Associates NEGOTIATION17Elwin Sharvill
1006Costa J GarufiItaly2026-08-02Truhlar And Truhlar Attys RENEWAL30Ioni Bowcher
1007Misaki B KolmetzGermany2026-08-17Chapman, Ross E Esq NEGOTIATION74Stephen Shaw
1008James Y ShinkoJapan2026-08-05Rangoni Of Florence QUALIFIED31Anna Fali
1009Johnson H PoquetteGermany2026-08-02Chemel, James L Cpa NEW54Asiya Javayant
1010Deepesh E MarrierUnited Kingdom2026-08-18Feltz Printing Service QUALIFIED6Anna Fali
1011Ricardo Z ShinkoRussia2026-08-12Chanay, Jeffrey A Esq PROPOSAL99Onyama Limba
1012Misaki F KuskoSpain2026-08-03King, Christopher A Esq UNQUALIFIED25Xuxue Feng
1013Wickens N SlusarskiGermany2026-08-19Commercial Press QUALIFIED93Bernardo Dominic
1014Kaitlin Y GlickRussia2026-08-15Chanay, Jeffrey A Esq QUALIFIED63Ivan Magalhaes
1015James Z GillianFrance2026-08-01Rousseaux, Michael Esq UNQUALIFIED5Bernardo Dominic
1016Izzy U InouyeUnited Kingdom2026-07-31Printing Dimensions NEW81Xuxue Feng
1017Faith D FerenczGermany2026-08-12Truhlar And Truhlar Attys UNQUALIFIED42Elwin Sharvill
1018Cody W PoquetteAustralia2026-08-19King, Christopher A Esq NEW32Amy Elsner
1019Deepesh H CaldareraSpain2026-07-28Truhlar And Truhlar Attys QUALIFIED38Xuxue Feng
1020Darci U MorascaItaly2026-08-22Truhlar And Truhlar Attys NEGOTIATION42Amy Elsner
1021Alejandro R BowleyIndia2026-08-04Buckley Miller Wright QUALIFIED97Asiya Javayant
1022Maria A InouyeItaly2026-08-18Chemel, James L Cpa RENEWAL93Elwin Sharvill
1023Greenwood V CaldareraSpain2026-08-07Morlong Associates PROPOSAL31Xuxue Feng
1024Kaitlin S GlickItaly2026-08-06Buckley Miller Wright PROPOSAL27Anna Fali
1025Johnson E PaprockiCanada2026-07-28Chemel, James L Cpa RENEWAL71Elwin Sharvill
1026Kaitlin Q RulapaughAustralia2026-08-18Chapman, Ross E Esq PROPOSAL24Xuxue Feng
1027Leja F GlickSpain2026-08-01Benton, John B Jr QUALIFIED41Ioni Bowcher
1028James S FollerAustralia2026-08-16Chemel, James L Cpa NEGOTIATION93Elwin Sharvill
1029Silvio N ChuiFrance2026-08-02Feiner Bros QUALIFIED67Asiya Javayant
1030Alejandro Z GlickFrance2026-08-21Feltz Printing Service UNQUALIFIED84Xuxue Feng
1031James T NickaRussia2026-07-26Rousseaux, Michael Esq PROPOSAL13Stephen Shaw
1032David E GauchoJapan2026-08-22Feltz Printing Service RENEWAL62Bernardo Dominic
1033Misaki M SergiRussia2026-08-18King, Christopher A Esq NEGOTIATION79Bernardo Dominic
1034Tony F FlosiCanada2026-08-23Buckley Miller Wright NEGOTIATION85Elwin Sharvill
1035Silvio B ButtJapan2026-08-11Morlong Associates RENEWAL0Ivan Magalhaes
1036Izzy L WhobreyRussia2026-07-30Buckley Miller Wright UNQUALIFIED73Elwin Sharvill
1037Tony C DoeJapan2026-08-08Rousseaux, Michael Esq QUALIFIED9Xuxue Feng
1038Mayumi V RimFrance2026-08-20Truhlar And Truhlar Attys UNQUALIFIED98Bernardo Dominic
1039Juan O OldroydBrazil2026-07-28Morlong Associates NEGOTIATION57Ioni Bowcher
1040Kaitlin Z WaycottAustralia2026-07-25Printing Dimensions UNQUALIFIED85Amy Elsner
1041Izzy Q MorascaGermany2026-08-17Chapman, Ross E Esq QUALIFIED85Stephen Shaw
1042Alejandro J BowleyRussia2026-07-25Buckley Miller Wright RENEWAL9Ivan Magalhaes
1043Jennifer E BologniaJapan2026-08-17Feltz Printing Service QUALIFIED31Xuxue Feng
1044Antonio K VenereUnited Kingdom2026-08-07Chemel, James L Cpa RENEWAL40Onyama Limba
1045Silvio J SergiGermany2026-08-10Truhlar And Truhlar Attys NEGOTIATION83Anna Fali
1046Munro H OstroskyUnited Kingdom2026-08-19Commercial Press QUALIFIED48Bernardo Dominic
1047Murillo T SaylorsFrance2026-08-10Morlong Associates NEW14Asiya Javayant
1048Ricardo K BriddickIndia2026-08-13Commercial Press RENEWAL25Amy Elsner
1049Ricardo O SchemmerSpain2026-08-05Dorl, James J Esq RENEWAL12Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Alejandro B FigeroaFranceAmy Elsner UNQUALIFIED
Ivar K RoysterCanadaAnna Fali NEGOTIATION
Sinclair Q SchemmerRussiaAnna Fali NEW
Mujtaba A GlickAustraliaOnyama Limba QUALIFIED
Johnson B StockhamIndiaStephen Shaw UNQUALIFIED
Morrow W GillianSpainXuxue Feng QUALIFIED
Rodrigues Y SaylorsArgentinaAmy Elsner UNQUALIFIED
Salvatore J CampainArgentinaOnyama Limba QUALIFIED
Izzy R CaudyFranceAsiya Javayant RENEWAL
Aditya H DilliardFranceAsiya Javayant RENEWAL
Silvio J PaprockiRussiaBernardo Dominic UNQUALIFIED
Alejandro K AmigonJapanOnyama Limba PROPOSAL
Adams C SergiRussiaIvan Magalhaes NEGOTIATION
Munro U DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Jones L MorascaGermanyOnyama Limba NEGOTIATION
Sinclair W RoysterSpainAsiya Javayant RENEWAL
Jefferson S RulapaughFranceElwin Sharvill NEGOTIATION
Nicolas I CaldareraIndiaStephen Shaw NEGOTIATION
Adams B OstroskyJapanOnyama Limba NEW
Antonio O VenereJapanBernardo Dominic NEGOTIATION
Leja M InouyeIndiaAnna Fali PROPOSAL
Kaitlin L TollnerSpainAnna Fali UNQUALIFIED
Faith Z SlusarskiAustraliaXuxue Feng NEW
Tony L DilliardUnited KingdomAmy Elsner NEGOTIATION
Chavez V KuskoJapanAsiya Javayant PROPOSAL
David P NestleGermanyStephen Shaw NEGOTIATION
Wickens M StensethRussiaAmy Elsner QUALIFIED
Kadeem D SaylorsSpainElwin Sharvill QUALIFIED
Julie U AmigonCanadaStephen Shaw NEGOTIATION
Jeanfrancois I RoysterArgentinaIoni Bowcher RENEWAL
Smith P AmigonJapanStephen Shaw PROPOSAL
David N ShinkoGermanyIoni Bowcher QUALIFIED
Johnson V FollerAustraliaOnyama Limba RENEWAL
Juan J CampainJapanOnyama Limba RENEWAL
Arvin D MaletBrazilAnna Fali PROPOSAL
Stacey A SlusarskiRussiaIvan Magalhaes PROPOSAL
Deepesh A CampainAustraliaXuxue Feng QUALIFIED
Arvin H CaudyGermanyIvan Magalhaes UNQUALIFIED
Faith K BologniaJapanOnyama Limba PROPOSAL
Cody Z KolmetzBrazilAsiya Javayant NEW
Rodrigues W DoeIndiaOnyama Limba RENEWAL
Rodrigues R NickaRussiaAmy Elsner UNQUALIFIED
Ivar J RimAustraliaAsiya Javayant QUALIFIED
Aruna F TollnerFranceBernardo Dominic PROPOSAL
Alejandro H FollerItalyAnna Fali QUALIFIED
Sinclair P FlosiCanadaIoni Bowcher UNQUALIFIED
Alejandro F StensethItalyAnna Fali UNQUALIFIED
Francesco A SergiGermanyStephen Shaw UNQUALIFIED
Faith H DarakjySpainOnyama Limba NEGOTIATION
Octavia I NestleBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Misaki I Inouye
Ashley D Briddick
Leon A Malet
Mujtaba C Butt
Nicolas R Saylors
Faith Y Tollner
Greenwood F Dilliard
Morrow E Stockham
Salvatore J Rim
Darci N Iturbide
Claire Z Butt
Jeanfrancois N Slusarski
Chavez U Kusko
Faith T Ruta
Misaki D Paprocki
Aditya F Gillian
Ricardo V Ruta
Cody O Gaucho
Jefferson H Campain
Maisha Y Dilliard
Isabel K Caudy
Tony Q Campain
Kaitlin I Darakjy
Kadeem G Kolmetz
Silvio Q Campain
Clifford Q Shinko
David D Bowley
Darci P Glick
Leja I Caldarera
Morrow T Ferencz
Claire K Wieser
Aika M Doe
Julie O Stenseth
Rodrigues X Nicka
Julie C Kolmetz
Maria K Oldroyd
Nicolas U Shinko
Octavia K Malet
Smith U Bolognia
Jennifer N Garufi
Ashley G Ostrosky
Costa C Campain
David F Stenseth
Juan G Malet
David J Flosi
Stacey H Campain
Mujtaba H Paprocki
Alejandro I Foller
Costa J Tollner
Jefferson I Briddick
IdCountryDate
1000Japan2026-08-07
1001Russia2026-08-20
1002India2026-08-10
1003Germany2026-08-12
1004Canada2026-08-14
1005Germany2026-08-08
1006India2026-07-28
1007Germany2026-08-22
1008Brazil2026-08-13
1009France2026-08-17
1010India2026-08-01
1011Australia2026-08-05
1012Canada2026-08-11
1013United Kingdom2026-08-09
1014India2026-08-09
1015France2026-08-04
1016Spain2026-08-03
1017India2026-08-23
1018Spain2026-07-25
1019Germany2026-08-04
1020Canada2026-08-04
1021Italy2026-07-27
1022France2026-08-20
1023Argentina2026-08-06
1024Japan2026-08-20
1025Canada2026-08-07
1026Japan2026-08-04
1027India2026-08-11
1028Australia2026-08-05
1029Canada2026-08-12
1030Germany2026-07-27
1031India2026-08-18
1032Spain2026-08-01
1033United Kingdom2026-08-22
1034Russia2026-07-26
1035Italy2026-08-04
1036Italy2026-07-31
1037United Kingdom2026-07-26
1038Germany2026-07-29
1039Germany2026-08-20
1040United Kingdom2026-08-17
1041Spain2026-08-08
1042Australia2026-08-14
1043Japan2026-08-03
1044Italy2026-08-16
1045Japan2026-08-08
1046Italy2026-08-12
1047Argentina2026-08-16
1048Germany2026-08-11
1049Russia2026-08-20

On-Demand Data

NameIdCountryDate
Isabel R Rim1000Brazil2026-07-31
Sinclair C Iturbide1001Japan2026-07-25
Ashley M Inouye1002India2026-07-30
Izzy E Gillian1003Argentina2026-08-20
Sinclair M Slusarski1004United Kingdom2026-07-26
Rodrigues K Bowley1005Spain2026-08-23
Munro I Ruta1006Russia2026-07-31
Octavia E Bowley1007Argentina2026-08-04
Francesco S Sergi1008Brazil2026-07-27
Ivar G Doe1009Argentina2026-08-07
Francesco P Doe1010Germany2026-08-17
Claire G Vocelka1011Russia2026-08-08
James I Nicka1012Italy2026-08-07
Ashley L Butt1013Brazil2026-07-30
Silvio N Nicka1014Italy2026-08-21
Arvin E Nestle1015Spain2026-08-10
Francesco H Foller1016France2026-08-23
Francesco G Nestle1017France2026-08-17
Cody U Saylors1018United Kingdom2026-08-06
Munro S Caldarera1019Spain2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Y CaudyJapanElwin Sharvill NEW
Leja P OldroydFranceAmy Elsner RENEWAL
Deepesh I FollerGermanyAnna Fali UNQUALIFIED
Leon J FollerIndiaStephen Shaw UNQUALIFIED
Julie L MarrierIndiaElwin Sharvill UNQUALIFIED
Emily W StockhamGermanyStephen Shaw QUALIFIED
Claire M KuskoArgentinaIoni Bowcher NEW
Chavez X StensethItalyAmy Elsner NEW
Julie Z IturbideAustraliaXuxue Feng UNQUALIFIED
Sinclair K StensethFranceXuxue Feng PROPOSAL
Greenwood I CampainRussiaAsiya Javayant NEW
Morrow Y FlosiIndiaIoni Bowcher NEW
Kadeem U PaprockiIndiaAnna Fali RENEWAL
Izzy R AmigonFranceXuxue Feng RENEWAL
Munro N FerenczIndiaBernardo Dominic NEGOTIATION
Adams H MorascaAustraliaStephen Shaw RENEWAL
Isabel V BologniaArgentinaXuxue Feng NEGOTIATION
Leja W BologniaRussiaOnyama Limba RENEWAL
Jennifer G SergiUnited KingdomIoni Bowcher PROPOSAL
Munro G VocelkaCanadaBernardo Dominic QUALIFIED
David N GlickItalyStephen Shaw NEW
Misaki S InouyeUnited KingdomAnna Fali PROPOSAL
Adams A ButtItalyStephen Shaw PROPOSAL
Tony I OldroydRussiaXuxue Feng NEGOTIATION
Antonio V GillianItalyAsiya Javayant RENEWAL
Francesco Y SlusarskiSpainXuxue Feng NEGOTIATION
Greenwood V MaletJapanBernardo Dominic UNQUALIFIED
Leja T KuskoSpainAmy Elsner PROPOSAL
David Y ButtArgentinaIoni Bowcher NEGOTIATION
Kaitlin F RimItalyStephen Shaw UNQUALIFIED
Mayumi E NestleArgentinaAmy Elsner NEGOTIATION
Silvio Z GauchoCanadaOnyama Limba QUALIFIED
Ashley E TollnerBrazilStephen Shaw NEW
Ashley Z InouyeGermanyAnna Fali QUALIFIED
Adams I RimItalyBernardo Dominic NEW
Kaitlin E BowleyIndiaAsiya Javayant RENEWAL
Faith E VenereGermanyXuxue Feng NEW
Munro H SergiAustraliaIvan Magalhaes QUALIFIED
Octavia E GlickBrazilIvan Magalhaes NEGOTIATION
Maisha W MorascaSpainElwin Sharvill 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>