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
Arvin A VocelkaAustraliaAnna Fali UNQUALIFIED
Salvatore W AlbaresJapanBernardo Dominic QUALIFIED
Kaitlin Q FlosiArgentinaElwin Sharvill NEW
Costa E DilliardAustraliaIoni Bowcher NEGOTIATION
Ashley L MorascaRussiaStephen Shaw NEW
Darci T VenereArgentinaIoni Bowcher RENEWAL
Aruna C SergiSpainStephen Shaw NEW
Octavia K RimUnited KingdomAsiya Javayant NEW
Francesco Z BriddickGermanyElwin Sharvill PROPOSAL
Alejandro Z DoeJapanBernardo Dominic NEW
Adams Z RulapaughSpainIvan Magalhaes QUALIFIED
Cody J GillianBrazilAmy Elsner QUALIFIED
Tony W OldroydBrazilOnyama Limba PROPOSAL
David T OstroskyBrazilOnyama Limba UNQUALIFIED
Mujtaba Z FlosiSpainAmy Elsner QUALIFIED
Jones S CaldareraGermanyOnyama Limba PROPOSAL
Salvatore G MaletBrazilIoni Bowcher NEW
Kaitlin A CaudySpainBernardo Dominic NEW
Munro N SaylorsIndiaIvan Magalhaes PROPOSAL
Munro I VocelkaItalyAmy Elsner NEGOTIATION
Jefferson Y IturbideJapanElwin Sharvill NEW
Arvin V FlosiCanadaIvan Magalhaes PROPOSAL
David U WieserJapanXuxue Feng NEGOTIATION
Murillo C RoysterIndiaElwin Sharvill RENEWAL
Costa W ButtCanadaOnyama Limba UNQUALIFIED
Mayumi P GauchoIndiaOnyama Limba RENEWAL
Arvin G AlbaresSpainBernardo Dominic UNQUALIFIED
Deepesh A ShinkoSpainStephen Shaw PROPOSAL
Claire F GillianUnited KingdomAsiya Javayant PROPOSAL
Leja F FigeroaSpainOnyama Limba RENEWAL
Mayumi I WhobreyGermanyBernardo Dominic RENEWAL
Ricardo S FigeroaArgentinaAsiya Javayant NEGOTIATION
Maisha T RoysterFranceAsiya Javayant QUALIFIED
Deepesh K MorascaGermanyAmy Elsner NEW
Murillo K FigeroaAustraliaOnyama Limba PROPOSAL
Faith D InouyeBrazilAsiya Javayant PROPOSAL
Johnson D FerenczItalyAnna Fali NEW
Octavia R NickaJapanAnna Fali QUALIFIED
Cody T NestleJapanAmy Elsner QUALIFIED
Silvio W RoysterBrazilXuxue Feng RENEWAL
Wickens V BriddickCanadaIvan Magalhaes NEW
Sinclair K SergiBrazilBernardo Dominic RENEWAL
Maria T PaprockiItalyIvan Magalhaes PROPOSAL
Jennifer G GillianItalyAmy Elsner RENEWAL
Aika O WaycottBrazilIoni Bowcher QUALIFIED
Johnson P StensethItalyElwin Sharvill UNQUALIFIED
Kaitlin E GarufiJapanOnyama Limba RENEWAL
Mayumi V AlbaresCanadaXuxue Feng QUALIFIED
Aika B CaldareraRussiaElwin Sharvill PROPOSAL
Rodrigues F PaprockiSpainAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha V FerenczArgentinaStephen Shaw UNQUALIFIED
Antonio Z CampainUnited KingdomBernardo Dominic RENEWAL
Misaki M MaletBrazilAsiya Javayant RENEWAL
Wickens C BriddickAustraliaAnna Fali QUALIFIED
Costa F MaletCanadaAnna Fali QUALIFIED
Aruna M DarakjyAustraliaElwin Sharvill UNQUALIFIED
Nicolas C SchemmerFranceIvan Magalhaes RENEWAL
Sinclair P OstroskyGermanyAnna Fali NEW
Ricardo L RimItalyIvan Magalhaes PROPOSAL
Mujtaba V FigeroaRussiaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson K RoysterBrazil2026-06-24Truhlar And Truhlar Attys PROPOSAL51Xuxue Feng
1001Deepesh Q BowleyAustralia2026-06-25Benton, John B Jr NEW90Xuxue Feng
1002Ricardo A StockhamAustralia2026-07-04Benton, John B Jr UNQUALIFIED86Bernardo Dominic
1003Costa H IturbideArgentina2026-07-10Commercial Press QUALIFIED38Xuxue Feng
1004Maria U BowleySpain2026-06-26Truhlar And Truhlar Attys NEW4Ioni Bowcher
1005Leja S RoysterItaly2026-06-24Rousseaux, Michael Esq UNQUALIFIED9Anna Fali
1006Aditya L RulapaughJapan2026-07-09Commercial Press NEW73Xuxue Feng
1007Jones U BologniaItaly2026-07-01Rousseaux, Michael Esq QUALIFIED13Xuxue Feng
1008Ashley Y NestleSpain2026-06-28Benton, John B Jr NEW70Xuxue Feng
1009David C FollerGermany2026-07-15Printing Dimensions NEGOTIATION58Ioni Bowcher
1010Munro H GillianUnited Kingdom2026-06-28King, Christopher A Esq NEW3Asiya Javayant
1011James X PerinItaly2026-07-05Dorl, James J Esq PROPOSAL80Elwin Sharvill
1012Chavez C WaycottCanada2026-07-04Chanay, Jeffrey A Esq PROPOSAL73Amy Elsner
1013Silvio X FerenczIndia2026-06-27Dorl, James J Esq PROPOSAL3Onyama Limba
1014Jeanfrancois K GauchoRussia2026-06-29Feiner Bros UNQUALIFIED91Elwin Sharvill
1015Munro Z KuskoIndia2026-07-03Truhlar And Truhlar Attys RENEWAL49Onyama Limba
1016Julie K RimArgentina2026-06-29Feiner Bros UNQUALIFIED41Xuxue Feng
1017Octavia Q NestleArgentina2026-06-21Benton, John B Jr NEW57Amy Elsner
1018Ashley R VocelkaItaly2026-07-15Morlong Associates RENEWAL36Asiya Javayant
1019Francesco R RimUnited Kingdom2026-07-12Printing Dimensions QUALIFIED67Onyama Limba
1020Isabel M IturbideFrance2026-06-21Rousseaux, Michael Esq QUALIFIED79Elwin Sharvill
1021Clifford V StockhamArgentina2026-06-26Rousseaux, Michael Esq NEW55Stephen Shaw
1022Jennifer N IturbideJapan2026-06-26Morlong Associates NEGOTIATION47Anna Fali
1023Juan A MarrierUnited Kingdom2026-07-05Printing Dimensions RENEWAL43Ioni Bowcher
1024Jennifer D DilliardRussia2026-07-03Feiner Bros NEW99Ivan Magalhaes
1025Kaitlin L MacleadArgentina2026-06-20Truhlar And Truhlar Attys NEGOTIATION0Onyama Limba
1026Claire X RimCanada2026-07-03Benton, John B Jr UNQUALIFIED29Xuxue Feng
1027Stacey M RimIndia2026-06-26Morlong Associates PROPOSAL21Asiya Javayant
1028Ashley L RutaBrazil2026-07-09Feltz Printing Service NEW77Ivan Magalhaes
1029Kaitlin U StockhamSpain2026-07-14Truhlar And Truhlar Attys UNQUALIFIED50Onyama Limba
1030Stacey Z GlickUnited Kingdom2026-07-15Chapman, Ross E Esq RENEWAL61Bernardo Dominic
1031Silvio C OstroskySpain2026-06-21Chapman, Ross E Esq NEW10Anna Fali
1032Aruna U FerenczArgentina2026-06-22Commercial Press QUALIFIED78Anna Fali
1033Antonio R GarufiIndia2026-06-27Morlong Associates NEW28Ioni Bowcher
1034Isabel A OstroskySpain2026-07-12King, Christopher A Esq QUALIFIED21Elwin Sharvill
1035Aditya K WaycottCanada2026-06-28Chemel, James L Cpa NEGOTIATION34Ivan Magalhaes
1036Chavez N KolmetzIndia2026-06-27Chemel, James L Cpa NEGOTIATION96Asiya Javayant
1037Misaki K DarakjyAustralia2026-06-18Chemel, James L Cpa NEW72Ivan Magalhaes
1038Arvin V RoysterAustralia2026-06-27Morlong Associates NEGOTIATION12Xuxue Feng
1039Isabel W PaprockiItaly2026-06-26Rousseaux, Michael Esq RENEWAL18Elwin Sharvill
1040David J PaprockiAustralia2026-06-28Feltz Printing Service PROPOSAL25Xuxue Feng
1041Smith F OldroydAustralia2026-07-13Truhlar And Truhlar Attys NEGOTIATION54Anna Fali
1042Maria W GauchoRussia2026-07-03Chanay, Jeffrey A Esq RENEWAL29Xuxue Feng
1043Jefferson O DoeIndia2026-06-22Benton, John B Jr QUALIFIED64Ivan Magalhaes
1044Ricardo A PerinBrazil2026-06-18Chemel, James L Cpa UNQUALIFIED61Onyama Limba
1045Ashley Z ShinkoBrazil2026-06-17Chemel, James L Cpa UNQUALIFIED84Ioni Bowcher
1046Jones V NestleAustralia2026-07-05King, Christopher A Esq NEGOTIATION21Asiya Javayant
1047Greenwood H BriddickJapan2026-07-11King, Christopher A Esq RENEWAL8Ioni Bowcher
1048Salvatore G NickaAustralia2026-07-04Dorl, James J Esq NEGOTIATION44Asiya Javayant
1049Munro H RoysterGermany2026-07-10Rangoni Of Florence RENEWAL20Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin P TollnerIndiaAsiya Javayant NEGOTIATION
Chavez S BologniaSpainAmy Elsner UNQUALIFIED
Aika Q MaletRussiaOnyama Limba UNQUALIFIED
James G ChuiFranceAmy Elsner QUALIFIED
Juan Z RoysterAustraliaIvan Magalhaes RENEWAL
Maria X KuskoCanadaIvan Magalhaes NEW
Mayumi G CampainAustraliaOnyama Limba RENEWAL
Faith I NestleGermanyStephen Shaw PROPOSAL
Faith A MaletArgentinaIvan Magalhaes PROPOSAL
Nicolas N PaprockiJapanIoni Bowcher PROPOSAL
Kadeem X TollnerArgentinaAsiya Javayant RENEWAL
Francesco F StockhamUnited KingdomAsiya Javayant NEW
Jefferson L NestleGermanyElwin Sharvill NEGOTIATION
Munro Q DoeGermanyAsiya Javayant NEW
Francesco W MaletJapanXuxue Feng NEGOTIATION
Leon X BriddickItalyElwin Sharvill RENEWAL
Greenwood O NestleSpainElwin Sharvill RENEWAL
Kaitlin D MaletAustraliaAsiya Javayant PROPOSAL
Juan X RulapaughUnited KingdomAsiya Javayant PROPOSAL
Antonio X ShinkoIndiaBernardo Dominic RENEWAL
Alejandro H DarakjyItalyAmy Elsner NEW
Octavia H ChuiAustraliaAmy Elsner NEGOTIATION
Munro E CampainArgentinaIvan Magalhaes QUALIFIED
Alejandro C MaletAustraliaElwin Sharvill NEGOTIATION
Munro Y StensethCanadaIvan Magalhaes NEGOTIATION
Nicolas S SergiGermanyStephen Shaw UNQUALIFIED
Greenwood W AmigonUnited KingdomBernardo Dominic NEW
Munro N WaycottUnited KingdomBernardo Dominic PROPOSAL
Misaki I StockhamFranceOnyama Limba NEW
Jefferson Z PoquetteRussiaIoni Bowcher UNQUALIFIED
Leon J VocelkaBrazilElwin Sharvill RENEWAL
Julie G WieserSpainStephen Shaw PROPOSAL
Jefferson H AmigonIndiaAnna Fali NEW
Misaki T BriddickCanadaIoni Bowcher RENEWAL
Darci J WhobreyIndiaXuxue Feng NEW
Kadeem U TollnerRussiaAsiya Javayant NEGOTIATION
Wickens J KolmetzSpainIvan Magalhaes NEGOTIATION
Mayumi T CaudyItalyAnna Fali NEW
Munro X WhobreyJapanStephen Shaw PROPOSAL
Costa P RutaFranceIoni Bowcher UNQUALIFIED
Ashley X RutaCanadaXuxue Feng NEGOTIATION
Francesco E GillianSpainOnyama Limba NEGOTIATION
Smith X BowleyGermanyBernardo Dominic UNQUALIFIED
Ashley C OldroydCanadaElwin Sharvill NEW
Darci O SergiJapanAnna Fali NEW
Isabel I StensethCanadaIvan Magalhaes NEGOTIATION
Alejandro N WaycottAustraliaBernardo Dominic PROPOSAL
Jeanfrancois D VenereArgentinaOnyama Limba NEGOTIATION
Izzy O MaletAustraliaXuxue Feng NEGOTIATION
Antonio I OstroskyCanadaAsiya Javayant PROPOSAL
Frozen Columns
Name
Morrow O Malet
Tony O Maclead
Sinclair N Gillian
Faith U Kusko
Arvin S Nestle
James N Ruta
Cody F Malet
Aruna Y Ferencz
Jefferson I Malet
Jefferson Z Vocelka
Leon W Albares
Ivar M Doe
Aditya O Nestle
Aika L Perin
Salvatore Z Ruta
Mujtaba L Bolognia
Morrow D Whobrey
Maria X Schemmer
Johnson W Stenseth
Leja D Flosi
Kaitlin C Paprocki
Jones N Oldroyd
Izzy J Wieser
Claire L Oldroyd
Aika H Bowley
Nicolas O Malet
Izzy U Gillian
Alejandro L Malet
Aditya D Glick
Arvin B Chui
Johnson Z Rulapaugh
Claire G Stockham
Salvatore B Ferencz
Leja G Campain
Leon E Glick
Isabel A Nicka
Izzy R Iturbide
David W Saylors
Nicolas S Glick
Octavia E Nestle
Izzy Q Tollner
Darci E Inouye
Murillo J Gillian
Murillo E Morasca
Alejandro E Malet
Octavia L Shinko
Jennifer H Ferencz
Antonio S Iturbide
Jeanfrancois X Malet
Smith I Saylors
IdCountryDate
1000France2026-06-22
1001Germany2026-06-27
1002Germany2026-07-11
1003Australia2026-07-07
1004Canada2026-06-19
1005Brazil2026-07-08
1006Italy2026-07-02
1007Italy2026-07-02
1008France2026-06-17
1009Spain2026-07-13
1010France2026-07-10
1011Canada2026-06-17
1012India2026-07-08
1013Russia2026-07-06
1014Italy2026-07-03
1015Spain2026-06-30
1016Argentina2026-07-13
1017Canada2026-07-13
1018India2026-06-20
1019Brazil2026-07-10
1020Russia2026-07-14
1021Germany2026-06-23
1022Japan2026-07-10
1023Germany2026-07-15
1024India2026-06-22
1025Argentina2026-07-07
1026Italy2026-07-15
1027Spain2026-06-17
1028France2026-06-17
1029Spain2026-07-16
1030Spain2026-06-23
1031India2026-06-22
1032Australia2026-07-14
1033Russia2026-06-21
1034Brazil2026-06-22
1035India2026-07-15
1036United Kingdom2026-06-18
1037Germany2026-07-14
1038France2026-06-25
1039Russia2026-06-23
1040Brazil2026-06-21
1041Italy2026-07-12
1042Italy2026-07-09
1043Argentina2026-06-24
1044Australia2026-07-15
1045Italy2026-07-02
1046Germany2026-07-08
1047Japan2026-07-15
1048Spain2026-06-27
1049United Kingdom2026-06-29

On-Demand Data

NameIdCountryDate
Ricardo Z Nicka1000India2026-07-12
Octavia T Doe1001Canada2026-06-23
Clifford Z Morasca1002Spain2026-07-08
Aruna U Dilliard1003United Kingdom2026-07-14
Arvin R Poquette1004Brazil2026-07-11
Stacey W Schemmer1005Argentina2026-07-04
Faith S Malet1006Brazil2026-07-08
Misaki N Kolmetz1007India2026-06-22
Mayumi V Poquette1008Argentina2026-07-11
Silvio E Schemmer1009United Kingdom2026-06-29
Adams M Ostrosky1010France2026-06-26
Clifford Z Caldarera1011United Kingdom2026-06-23
Sinclair L Bowley1012France2026-07-14
Jones A Rulapaugh1013Russia2026-07-16
Mujtaba C Poquette1014Australia2026-07-01
Munro T Kusko1015Russia2026-06-27
Octavia R Sergi1016Spain2026-07-01
Rodrigues V Campain1017Italy2026-07-14
Octavia B Darakjy1018United Kingdom2026-07-15
Jefferson N Rim1019India2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan V GillianIndiaElwin Sharvill RENEWAL
Octavia S CaudyArgentinaAnna Fali NEGOTIATION
Maisha V PaprockiFranceIvan Magalhaes QUALIFIED
Munro B OstroskyItalyBernardo Dominic UNQUALIFIED
Costa B KuskoBrazilOnyama Limba PROPOSAL
Chavez P DoeIndiaIvan Magalhaes UNQUALIFIED
Antonio Q SchemmerFranceAsiya Javayant UNQUALIFIED
Emily G RutaFranceOnyama Limba PROPOSAL
Stacey D PerinRussiaElwin Sharvill NEGOTIATION
Maria V PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Octavia U FigeroaRussiaBernardo Dominic RENEWAL
Cody B GlickSpainIvan Magalhaes NEW
Leja L OldroydAustraliaAsiya Javayant PROPOSAL
Cody H CampainAustraliaAnna Fali RENEWAL
Jefferson L FollerItalyIvan Magalhaes NEW
Kaitlin O SlusarskiAustraliaAmy Elsner RENEWAL
Sinclair I MacleadRussiaIoni Bowcher NEW
Nicolas N VenereArgentinaIvan Magalhaes QUALIFIED
Silvio T FollerArgentinaXuxue Feng RENEWAL
Jefferson M NestleCanadaElwin Sharvill NEW
Wickens C RutaSpainStephen Shaw RENEWAL
Isabel B StockhamRussiaStephen Shaw NEGOTIATION
Leon B MaletBrazilStephen Shaw PROPOSAL
David I IturbideAustraliaIoni Bowcher NEGOTIATION
Maria T PaprockiUnited KingdomAmy Elsner NEW
Murillo X CampainArgentinaElwin Sharvill UNQUALIFIED
Aruna P AlbaresJapanElwin Sharvill UNQUALIFIED
Jeanfrancois N StensethBrazilAnna Fali PROPOSAL
Johnson T BriddickFranceAsiya Javayant NEW
Adams W ShinkoFranceBernardo Dominic QUALIFIED
Arvin D FollerBrazilBernardo Dominic NEGOTIATION
Aruna V TollnerAustraliaAmy Elsner RENEWAL
James M PoquetteFranceXuxue Feng NEW
Octavia Q WaycottRussiaIoni Bowcher RENEWAL
Izzy M SchemmerAustraliaIoni Bowcher PROPOSAL
Faith P MarrierFranceIoni Bowcher QUALIFIED
Adams P TollnerBrazilStephen Shaw NEW
Johnson H GillianCanadaStephen Shaw PROPOSAL
Leon L InouyeJapanBernardo Dominic RENEWAL
Juan E RutaJapanOnyama Limba 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>