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
Costa I SergiBrazilStephen Shaw NEGOTIATION
Cody I GarufiCanadaElwin Sharvill UNQUALIFIED
Silvio B SergiItalyXuxue Feng UNQUALIFIED
Ivar K SergiCanadaBernardo Dominic NEGOTIATION
Julie B PaprockiGermanyXuxue Feng PROPOSAL
Ivar Q FigeroaItalyStephen Shaw UNQUALIFIED
Smith D RimCanadaAsiya Javayant QUALIFIED
Rodrigues M ChuiGermanyXuxue Feng NEW
Wickens P BologniaGermanyElwin Sharvill RENEWAL
Jefferson N ChuiRussiaIvan Magalhaes QUALIFIED
Ashley R ButtItalyStephen Shaw UNQUALIFIED
Deepesh X ChuiBrazilIoni Bowcher UNQUALIFIED
Cody J MaletSpainAnna Fali NEGOTIATION
Octavia R FollerIndiaIvan Magalhaes RENEWAL
Kadeem X ChuiSpainXuxue Feng NEGOTIATION
Mujtaba Z RutaAustraliaIoni Bowcher RENEWAL
Jones B CaudySpainAnna Fali UNQUALIFIED
Morrow R DilliardJapanOnyama Limba PROPOSAL
Rodrigues P CaudyBrazilStephen Shaw NEGOTIATION
Jennifer D NestleItalyOnyama Limba NEW
Emily T SchemmerFranceIvan Magalhaes QUALIFIED
Leja X CaldareraArgentinaIoni Bowcher QUALIFIED
Antonio F CaudyCanadaIoni Bowcher PROPOSAL
Kadeem X NestleIndiaAsiya Javayant NEW
Leja U CampainArgentinaOnyama Limba QUALIFIED
Morrow G TollnerAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois J StockhamFranceIoni Bowcher NEW
Leon A WhobreyArgentinaXuxue Feng NEW
Maria J MaletRussiaBernardo Dominic PROPOSAL
Aika U PerinFranceOnyama Limba QUALIFIED
Sinclair L BowleyIndiaIvan Magalhaes RENEWAL
Maria E WhobreyUnited KingdomAnna Fali NEW
Aika Y PaprockiItalyAmy Elsner RENEWAL
Aika T FerenczBrazilElwin Sharvill PROPOSAL
Tony Q GillianBrazilIvan Magalhaes UNQUALIFIED
Octavia J TollnerAustraliaElwin Sharvill NEW
Antonio Y StensethJapanAnna Fali RENEWAL
Maisha G FerenczArgentinaXuxue Feng PROPOSAL
Juan T AmigonRussiaStephen Shaw NEW
Octavia F FigeroaFranceIvan Magalhaes RENEWAL
Arvin A AlbaresItalyIoni Bowcher UNQUALIFIED
Jones W PoquetteAustraliaOnyama Limba QUALIFIED
Ashley N FigeroaIndiaStephen Shaw UNQUALIFIED
Leja A GlickBrazilAmy Elsner RENEWAL
Kaitlin O CampainSpainIvan Magalhaes NEW
Stacey U IturbideItalyAmy Elsner NEGOTIATION
Ashley X MarrierArgentinaIoni Bowcher NEGOTIATION
James H SlusarskiUnited KingdomIoni Bowcher RENEWAL
Alejandro R FlosiSpainXuxue Feng NEW
Clifford G PerinBrazilBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba K DoeJapanBernardo Dominic NEGOTIATION
Maisha C GarufiUnited KingdomBernardo Dominic PROPOSAL
Rodrigues I SlusarskiAustraliaElwin Sharvill NEGOTIATION
Claire M AmigonItalyStephen Shaw NEW
Isabel U WieserIndiaElwin Sharvill NEW
Maria Q ChuiFranceElwin Sharvill QUALIFIED
Misaki Q GauchoFranceIoni Bowcher UNQUALIFIED
Tony C RimSpainElwin Sharvill NEW
Wickens G FigeroaAustraliaIvan Magalhaes NEGOTIATION
Johnson N MaletIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith G PoquetteCanada2025-05-01Dorl, James J Esq NEW88Bernardo Dominic
1001Greenwood K ShinkoFrance2025-04-09Morlong Associates NEGOTIATION30Asiya Javayant
1002Misaki O MorascaSpain2025-04-12Chemel, James L Cpa NEW16Elwin Sharvill
1003Leon C FlosiItaly2025-04-12Printing Dimensions NEGOTIATION37Bernardo Dominic
1004Darci L WieserJapan2025-04-21Printing Dimensions PROPOSAL69Stephen Shaw
1005Kaitlin L WieserIndia2025-04-22Buckley Miller Wright RENEWAL21Ivan Magalhaes
1006Aruna C FigeroaFrance2025-04-08Printing Dimensions NEW53Stephen Shaw
1007Jeanfrancois W NestleCanada2025-04-03Chapman, Ross E Esq QUALIFIED74Stephen Shaw
1008Ashley N RutaJapan2025-04-24Morlong Associates PROPOSAL44Onyama Limba
1009Julie T FlosiJapan2025-04-11Rousseaux, Michael Esq NEW60Stephen Shaw
1010Jeanfrancois O StensethSpain2025-04-29Chapman, Ross E Esq PROPOSAL17Ioni Bowcher
1011Emily P RutaCanada2025-04-19Rangoni Of Florence NEW63Amy Elsner
1012Jones G RoysterCanada2025-04-27Morlong Associates NEW41Ioni Bowcher
1013Tony P MaletArgentina2025-04-26Chanay, Jeffrey A Esq UNQUALIFIED21Ivan Magalhaes
1014Rodrigues X StockhamCanada2025-04-20Rousseaux, Michael Esq UNQUALIFIED25Stephen Shaw
1015Claire D KuskoGermany2025-05-01Feltz Printing Service NEGOTIATION45Bernardo Dominic
1016Aika S RulapaughIndia2025-04-02Chemel, James L Cpa NEW53Stephen Shaw
1017Jefferson L ButtIndia2025-04-24Chemel, James L Cpa PROPOSAL9Asiya Javayant
1018Morrow P DoeUnited Kingdom2025-04-20Buckley Miller Wright RENEWAL3Bernardo Dominic
1019Francesco R AlbaresSpain2025-04-17Chanay, Jeffrey A Esq RENEWAL46Bernardo Dominic
1020Adams P KuskoAustralia2025-04-15Truhlar And Truhlar Attys NEW5Anna Fali
1021Juan Q GarufiUnited Kingdom2025-04-25Feltz Printing Service NEGOTIATION87Amy Elsner
1022Chavez K SaylorsArgentina2025-04-03Morlong Associates UNQUALIFIED95Onyama Limba
1023Juan S AmigonRussia2025-04-15Rangoni Of Florence RENEWAL57Bernardo Dominic
1024Wickens Z ButtIndia2025-04-04Buckley Miller Wright NEW55Asiya Javayant
1025Misaki G DilliardAustralia2025-04-11Feltz Printing Service RENEWAL38Xuxue Feng
1026Tony E SaylorsFrance2025-05-01Chemel, James L Cpa NEW95Stephen Shaw
1027Costa M FigeroaCanada2025-04-30King, Christopher A Esq UNQUALIFIED3Bernardo Dominic
1028Alejandro C RoysterCanada2025-04-14Buckley Miller Wright RENEWAL8Stephen Shaw
1029Juan N WhobreyAustralia2025-04-26Chanay, Jeffrey A Esq NEGOTIATION66Asiya Javayant
1030Johnson B VocelkaFrance2025-04-15Rousseaux, Michael Esq UNQUALIFIED55Stephen Shaw
1031Costa R IturbideGermany2025-04-10Morlong Associates QUALIFIED64Elwin Sharvill
1032Tony Y FollerFrance2025-04-16Dorl, James J Esq PROPOSAL82Ioni Bowcher
1033Kaitlin V StockhamAustralia2025-04-13Feiner Bros PROPOSAL82Bernardo Dominic
1034Claire X OldroydUnited Kingdom2025-04-16Feltz Printing Service PROPOSAL75Bernardo Dominic
1035Maria F KolmetzAustralia2025-04-13Feiner Bros RENEWAL92Ivan Magalhaes
1036Aruna K OstroskyRussia2025-04-27Buckley Miller Wright UNQUALIFIED18Xuxue Feng
1037Mayumi P CaldareraArgentina2025-04-09Truhlar And Truhlar Attys UNQUALIFIED23Ioni Bowcher
1038David Y StockhamJapan2025-04-12Benton, John B Jr QUALIFIED8Onyama Limba
1039Jones U TollnerItaly2025-04-28Rousseaux, Michael Esq NEGOTIATION31Asiya Javayant
1040Octavia E ShinkoSpain2025-04-04Feiner Bros UNQUALIFIED24Stephen Shaw
1041Francesco L MarrierCanada2025-04-28Chemel, James L Cpa UNQUALIFIED71Stephen Shaw
1042Francesco D SergiJapan2025-04-04Rangoni Of Florence NEGOTIATION36Onyama Limba
1043Maisha P AmigonAustralia2025-04-18Benton, John B Jr QUALIFIED95Asiya Javayant
1044Greenwood Z RimIndia2025-04-06Rousseaux, Michael Esq NEW18Amy Elsner
1045Kaitlin D SchemmerRussia2025-04-13Printing Dimensions PROPOSAL53Anna Fali
1046Aditya O CaudyFrance2025-04-20King, Christopher A Esq RENEWAL17Onyama Limba
1047Morrow V PerinCanada2025-04-17Feiner Bros RENEWAL83Bernardo Dominic
1048Smith U SaylorsAustralia2025-04-06Chanay, Jeffrey A Esq RENEWAL38Xuxue Feng
1049Octavia K WhobreyUnited Kingdom2025-04-06Rousseaux, Michael Esq RENEWAL19Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Greenwood K CampainSpainAmy Elsner UNQUALIFIED
Aruna P InouyeCanadaAnna Fali NEGOTIATION
Silvio I BowleyBrazilAnna Fali NEGOTIATION
Leja X GarufiBrazilStephen Shaw PROPOSAL
Ricardo J SergiJapanIoni Bowcher UNQUALIFIED
Greenwood R OldroydIndiaElwin Sharvill NEW
Leja S NickaCanadaIvan Magalhaes UNQUALIFIED
Smith F RutaRussiaOnyama Limba PROPOSAL
Maria O PoquetteBrazilXuxue Feng QUALIFIED
Jennifer G MaletRussiaElwin Sharvill NEGOTIATION
Francesco T FigeroaJapanAmy Elsner PROPOSAL
Mujtaba Q StockhamGermanyIvan Magalhaes QUALIFIED
Isabel X DarakjyFranceAsiya Javayant RENEWAL
Murillo W CampainJapanXuxue Feng NEW
Alejandro P GauchoGermanyBernardo Dominic NEW
Ashley K MaletBrazilXuxue Feng NEGOTIATION
Aditya M KuskoUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba F KolmetzArgentinaXuxue Feng PROPOSAL
Chavez R InouyeAustraliaOnyama Limba PROPOSAL
Aruna I RimFranceXuxue Feng NEGOTIATION
Stacey K GarufiSpainAsiya Javayant NEW
Salvatore C MorascaUnited KingdomAmy Elsner NEGOTIATION
Isabel U BriddickCanadaIvan Magalhaes UNQUALIFIED
Antonio H StensethRussiaElwin Sharvill NEW
Misaki I GlickIndiaOnyama Limba NEGOTIATION
Nicolas W CampainItalyIoni Bowcher RENEWAL
Ricardo S PerinRussiaOnyama Limba PROPOSAL
Silvio X GarufiSpainAmy Elsner QUALIFIED
Ivar S PaprockiFranceAsiya Javayant NEW
Misaki C FerenczCanadaIoni Bowcher RENEWAL
David R DarakjyIndiaIoni Bowcher RENEWAL
David G WaycottRussiaAnna Fali UNQUALIFIED
Juan A GauchoRussiaAsiya Javayant UNQUALIFIED
Cody V OstroskyCanadaAnna Fali QUALIFIED
Wickens W CampainIndiaOnyama Limba NEW
Adams J KuskoCanadaAsiya Javayant UNQUALIFIED
Octavia T VocelkaFranceIvan Magalhaes PROPOSAL
Ivar N PoquetteIndiaElwin Sharvill QUALIFIED
Ricardo J SchemmerIndiaAmy Elsner RENEWAL
Ricardo V PoquetteJapanAmy Elsner UNQUALIFIED
Salvatore L GarufiIndiaStephen Shaw UNQUALIFIED
Darci L GarufiRussiaElwin Sharvill NEGOTIATION
Sinclair D KuskoBrazilAmy Elsner UNQUALIFIED
Francesco W MaletAustraliaStephen Shaw QUALIFIED
Antonio T GarufiUnited KingdomAnna Fali QUALIFIED
Chavez P ChuiAustraliaAnna Fali RENEWAL
Darci M AmigonUnited KingdomBernardo Dominic NEGOTIATION
Julie B StockhamUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba S WieserJapanIoni Bowcher UNQUALIFIED
Izzy M MacleadItalyIvan Magalhaes RENEWAL
Frozen Columns
Name
Cody V Marrier
Emily Z Glick
Mujtaba V Schemmer
Costa F Ferencz
Clifford H Royster
Claire G Waycott
Nicolas L Shinko
Kaitlin Q Venere
Deepesh J Whobrey
Kaitlin U Nicka
Julie O Rulapaugh
Leja H Garufi
Mujtaba N Inouye
Maisha C Caldarera
Stacey W Paprocki
James J Waycott
Jefferson S Oldroyd
Maisha R Ruta
Greenwood I Malet
Aruna P Iturbide
Cody P Campain
Wickens J Malet
Julie P Shinko
Misaki J Malet
Julie N Malet
Jones K Kusko
Wickens B Garufi
Greenwood Z Nicka
Jefferson T Vocelka
David D Perin
Emily B Stenseth
Misaki Y Morasca
Adams Q Kolmetz
Wickens S Tollner
Murillo U Rim
Arvin H Waycott
Darci S Ruta
Isabel Z Saylors
Aika F Chui
Jones V Whobrey
David D Malet
Sinclair Z Saylors
Ashley A Malet
Julie C Shinko
Misaki B Malet
Greenwood T Ferencz
Juan P Garufi
Jones V Schemmer
Silvio Y Malet
Kaitlin B Butt
IdCountryDate
1000Argentina2025-04-18
1001Russia2025-04-19
1002Brazil2025-04-25
1003Argentina2025-04-19
1004United Kingdom2025-04-21
1005Spain2025-04-10
1006Canada2025-04-28
1007Germany2025-04-30
1008Brazil2025-04-12
1009Argentina2025-04-24
1010Japan2025-04-13
1011Australia2025-04-27
1012Italy2025-04-03
1013Russia2025-04-19
1014Russia2025-04-03
1015Australia2025-04-10
1016Germany2025-04-08
1017United Kingdom2025-04-07
1018Australia2025-04-16
1019Germany2025-04-04
1020Argentina2025-04-06
1021Argentina2025-04-06
1022Argentina2025-04-17
1023Italy2025-05-01
1024India2025-04-30
1025Brazil2025-04-04
1026Japan2025-05-01
1027Spain2025-04-08
1028Japan2025-04-10
1029India2025-04-25
1030Spain2025-04-13
1031France2025-05-01
1032Russia2025-04-13
1033Japan2025-04-02
1034Argentina2025-04-09
1035Japan2025-04-12
1036Germany2025-04-05
1037Germany2025-04-18
1038France2025-04-07
1039Russia2025-04-26
1040Australia2025-04-30
1041France2025-04-06
1042Spain2025-04-27
1043Japan2025-04-10
1044Brazil2025-04-11
1045Australia2025-04-10
1046Brazil2025-04-21
1047Italy2025-04-05
1048Argentina2025-04-11
1049Canada2025-04-16

On-Demand Data

NameIdCountryDate
Deepesh P Nicka1000Italy2025-05-01
Emily U Tollner1001Germany2025-04-28
Antonio I Maclead1002Italy2025-04-24
Aditya V Maclead1003Australia2025-04-04
Jefferson R Vocelka1004Argentina2025-04-15
James W Doe1005Italy2025-04-03
Adams I Waycott1006Japan2025-04-13
Kadeem H Glick1007Australia2025-04-26
David Y Sergi1008Japan2025-04-24
Aruna N Royster1009Italy2025-04-14
Cody A Saylors1010France2025-04-14
Alejandro I Venere1011Italy2025-04-06
Isabel V Bowley1012Italy2025-04-30
Rodrigues Q Venere1013Brazil2025-04-27
Alejandro W Darakjy1014India2025-04-27
Deepesh D Nicka1015India2025-04-13
Morrow L Ostrosky1016Australia2025-04-11
Julie G Maclead1017Argentina2025-04-06
Jones F Venere1018Japan2025-04-09
Cody D Foller1019Argentina2025-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James Y RutaRussiaElwin Sharvill QUALIFIED
Mujtaba I CaudyBrazilElwin Sharvill UNQUALIFIED
Cody Q MorascaRussiaIoni Bowcher RENEWAL
Morrow S RoysterRussiaAnna Fali PROPOSAL
Antonio L SaylorsSpainAnna Fali NEW
Smith T CaldareraCanadaAmy Elsner UNQUALIFIED
Jefferson O FerenczArgentinaIvan Magalhaes NEW
Kadeem W PerinArgentinaAnna Fali QUALIFIED
Rodrigues V NickaArgentinaStephen Shaw UNQUALIFIED
Stacey U CaudyItalyAnna Fali QUALIFIED
Adams Q BowleyCanadaXuxue Feng PROPOSAL
Emily O AmigonIndiaAsiya Javayant RENEWAL
Ivar E GarufiIndiaStephen Shaw PROPOSAL
Ashley V RoysterSpainOnyama Limba UNQUALIFIED
Aditya W IturbideRussiaIvan Magalhaes UNQUALIFIED
Jones S ChuiSpainAsiya Javayant QUALIFIED
Silvio K RulapaughCanadaStephen Shaw RENEWAL
Alejandro H KuskoSpainOnyama Limba PROPOSAL
Jeanfrancois D GillianBrazilAsiya Javayant QUALIFIED
Octavia M MorascaGermanyIoni Bowcher UNQUALIFIED
Emily U AmigonIndiaIvan Magalhaes RENEWAL
Ashley F KolmetzFranceElwin Sharvill UNQUALIFIED
Nicolas C PoquetteJapanXuxue Feng QUALIFIED
Darci I WieserItalyBernardo Dominic NEGOTIATION
Izzy A DoeItalyAsiya Javayant PROPOSAL
Maisha P ButtJapanXuxue Feng QUALIFIED
Kadeem B VenereJapanIvan Magalhaes UNQUALIFIED
Francesco U TollnerArgentinaStephen Shaw UNQUALIFIED
Johnson P InouyeItalyAmy Elsner NEGOTIATION
Ricardo T CaudyUnited KingdomAsiya Javayant QUALIFIED
Claire J AmigonGermanyStephen Shaw RENEWAL
Mujtaba W GillianSpainIoni Bowcher UNQUALIFIED
Jefferson S PerinFranceStephen Shaw PROPOSAL
Adams I RutaBrazilIvan Magalhaes QUALIFIED
David X DilliardUnited KingdomOnyama Limba QUALIFIED
Chavez N VenereIndiaIoni Bowcher RENEWAL
Kaitlin W StockhamIndiaElwin Sharvill QUALIFIED
Leja T PaprockiGermanyAsiya Javayant NEGOTIATION
Ricardo P RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Wickens V TollnerRussiaAsiya Javayant PROPOSAL

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