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
Kaitlin D WhobreyCanadaBernardo Dominic PROPOSAL
Jeanfrancois V AlbaresRussiaBernardo Dominic RENEWAL
Francesco I PaprockiItalyXuxue Feng NEGOTIATION
Maisha K SchemmerUnited KingdomElwin Sharvill PROPOSAL
Munro W AlbaresRussiaIoni Bowcher NEW
Maria R ShinkoSpainStephen Shaw NEW
Deepesh G StensethItalyAnna Fali UNQUALIFIED
Alejandro D CampainArgentinaElwin Sharvill QUALIFIED
Alejandro P FigeroaUnited KingdomAmy Elsner NEW
Morrow B DilliardItalyElwin Sharvill QUALIFIED
Ricardo X KolmetzArgentinaStephen Shaw NEW
Jefferson B FollerRussiaStephen Shaw NEW
Julie R AmigonItalyAmy Elsner NEW
Alejandro G RoysterArgentinaAmy Elsner PROPOSAL
Salvatore Q DilliardAustraliaOnyama Limba UNQUALIFIED
Arvin E GarufiFranceAnna Fali RENEWAL
Jefferson Q BologniaCanadaAmy Elsner UNQUALIFIED
Ivar B PaprockiGermanyOnyama Limba RENEWAL
Smith H MaletArgentinaIoni Bowcher QUALIFIED
Ivar D NickaIndiaXuxue Feng UNQUALIFIED
Rodrigues M SlusarskiAustraliaAmy Elsner NEGOTIATION
Jeanfrancois E DilliardArgentinaAsiya Javayant NEW
Maria A PoquetteIndiaBernardo Dominic PROPOSAL
Antonio Z OldroydCanadaAmy Elsner QUALIFIED
Ricardo I BologniaGermanyAnna Fali NEW
Stacey R RulapaughIndiaXuxue Feng NEGOTIATION
Costa N AmigonAustraliaXuxue Feng UNQUALIFIED
Antonio G WieserJapanAnna Fali NEW
Claire V SlusarskiArgentinaOnyama Limba NEGOTIATION
Clifford Z KuskoUnited KingdomAmy Elsner PROPOSAL
Maria I PaprockiAustraliaStephen Shaw NEW
Aika N ButtFranceElwin Sharvill RENEWAL
Antonio T NestleGermanyXuxue Feng RENEWAL
Jennifer A WieserFranceXuxue Feng NEW
Smith Z RoysterBrazilElwin Sharvill NEW
Munro I FerenczRussiaAnna Fali QUALIFIED
Nicolas P MaletSpainBernardo Dominic PROPOSAL
James L SergiArgentinaElwin Sharvill NEW
Salvatore M DoeFranceStephen Shaw NEW
Adams F WhobreyFranceIoni Bowcher UNQUALIFIED
Aika M FerenczFranceBernardo Dominic PROPOSAL
Ashley I WhobreyGermanyOnyama Limba PROPOSAL
Aditya O MacleadAustraliaStephen Shaw QUALIFIED
Faith T NestleIndiaStephen Shaw QUALIFIED
Jennifer X NickaItalyXuxue Feng NEGOTIATION
Leon Q PerinItalyStephen Shaw PROPOSAL
Julie E KuskoGermanyBernardo Dominic NEW
Alejandro D VocelkaJapanAmy Elsner NEGOTIATION
David G AmigonItalyXuxue Feng UNQUALIFIED
Misaki J FerenczAustraliaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire T GillianAustraliaElwin Sharvill QUALIFIED
Chavez C MorascaCanadaElwin Sharvill RENEWAL
Jefferson K PerinRussiaBernardo Dominic NEGOTIATION
Izzy O BowleySpainIoni Bowcher PROPOSAL
Wickens E OstroskyRussiaAmy Elsner NEW
Mujtaba I SchemmerJapanOnyama Limba QUALIFIED
James O PerinCanadaIvan Magalhaes RENEWAL
Aruna J DarakjyJapanOnyama Limba UNQUALIFIED
Mujtaba L PoquetteCanadaBernardo Dominic QUALIFIED
Morrow P GlickBrazilOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody H MaletSpain2026-07-05Chapman, Ross E Esq UNQUALIFIED64Anna Fali
1001Ivar Q DoeRussia2026-07-12Rousseaux, Michael Esq UNQUALIFIED15Amy Elsner
1002Chavez E WhobreyArgentina2026-07-01Rangoni Of Florence PROPOSAL1Ivan Magalhaes
1003Clifford P InouyeItaly2026-07-05Buckley Miller Wright RENEWAL37Stephen Shaw
1004Chavez K ChuiItaly2026-06-19Benton, John B Jr RENEWAL63Stephen Shaw
1005Julie R MaletArgentina2026-07-04Chapman, Ross E Esq RENEWAL42Stephen Shaw
1006Ashley F GillianRussia2026-06-20King, Christopher A Esq PROPOSAL61Onyama Limba
1007Ivar T SlusarskiJapan2026-07-04Truhlar And Truhlar Attys RENEWAL88Ioni Bowcher
1008Rodrigues H StockhamBrazil2026-07-11Chapman, Ross E Esq UNQUALIFIED69Ioni Bowcher
1009Salvatore H ChuiUnited Kingdom2026-06-29Chapman, Ross E Esq RENEWAL17Amy Elsner
1010James C NestleAustralia2026-07-01Morlong Associates QUALIFIED89Asiya Javayant
1011Smith Z StockhamRussia2026-07-08Rousseaux, Michael Esq QUALIFIED87Asiya Javayant
1012Cody W ButtGermany2026-07-08Printing Dimensions NEW37Elwin Sharvill
1013Aruna X KolmetzFrance2026-06-30Feltz Printing Service UNQUALIFIED51Anna Fali
1014Aika E MacleadArgentina2026-06-27Rousseaux, Michael Esq NEGOTIATION0Stephen Shaw
1015Chavez X OstroskyAustralia2026-07-02Truhlar And Truhlar Attys QUALIFIED87Ivan Magalhaes
1016Maria K DarakjyFrance2026-06-19Feltz Printing Service NEGOTIATION16Anna Fali
1017Julie N PaprockiArgentina2026-07-09Feltz Printing Service RENEWAL21Stephen Shaw
1018Emily U GarufiFrance2026-06-27Dorl, James J Esq PROPOSAL80Asiya Javayant
1019Maisha X MacleadJapan2026-07-01Feiner Bros NEGOTIATION70Elwin Sharvill
1020Octavia P BologniaFrance2026-06-23Morlong Associates QUALIFIED99Asiya Javayant
1021Chavez K WieserIndia2026-06-29Benton, John B Jr UNQUALIFIED40Anna Fali
1022Misaki G BologniaJapan2026-07-03Chemel, James L Cpa QUALIFIED53Xuxue Feng
1023Aika K VocelkaIndia2026-06-29Dorl, James J Esq RENEWAL76Onyama Limba
1024Kadeem U VenereBrazil2026-07-11Chapman, Ross E Esq UNQUALIFIED62Stephen Shaw
1025Isabel J SergiFrance2026-06-22Chapman, Ross E Esq QUALIFIED53Onyama Limba
1026Jones X ShinkoAustralia2026-06-26Chemel, James L Cpa PROPOSAL48Amy Elsner
1027Alejandro H PaprockiFrance2026-07-07Buckley Miller Wright QUALIFIED72Anna Fali
1028Rodrigues U MaletJapan2026-06-19Buckley Miller Wright NEW12Ioni Bowcher
1029Mayumi R AlbaresFrance2026-06-30Rangoni Of Florence QUALIFIED15Bernardo Dominic
1030Chavez V ShinkoCanada2026-07-03Commercial Press RENEWAL61Elwin Sharvill
1031Clifford V DilliardBrazil2026-07-08Chapman, Ross E Esq RENEWAL83Ioni Bowcher
1032Nicolas B DilliardUnited Kingdom2026-07-13Buckley Miller Wright RENEWAL14Amy Elsner
1033Jeanfrancois U StensethItaly2026-06-23Truhlar And Truhlar Attys PROPOSAL64Ivan Magalhaes
1034Leja X PaprockiBrazil2026-07-11Chapman, Ross E Esq PROPOSAL15Onyama Limba
1035Tony D SlusarskiGermany2026-07-07Feltz Printing Service NEGOTIATION31Xuxue Feng
1036Faith G SaylorsBrazil2026-07-15Benton, John B Jr NEGOTIATION72Ivan Magalhaes
1037Jefferson T PerinBrazil2026-06-24Dorl, James J Esq QUALIFIED43Ivan Magalhaes
1038Emily I FigeroaArgentina2026-06-20Chapman, Ross E Esq NEGOTIATION82Bernardo Dominic
1039Silvio O BowleyJapan2026-07-11Benton, John B Jr NEGOTIATION89Bernardo Dominic
1040Ricardo U FollerUnited Kingdom2026-06-23Chapman, Ross E Esq NEGOTIATION17Ioni Bowcher
1041Izzy Y KolmetzItaly2026-07-05Truhlar And Truhlar Attys UNQUALIFIED95Amy Elsner
1042Salvatore K WhobreyBrazil2026-07-10Printing Dimensions QUALIFIED37Elwin Sharvill
1043Tony Y FigeroaSpain2026-07-10Chanay, Jeffrey A Esq PROPOSAL22Amy Elsner
1044Wickens O VenereFrance2026-07-03Chemel, James L Cpa UNQUALIFIED93Xuxue Feng
1045Morrow Y MarrierJapan2026-07-03King, Christopher A Esq NEGOTIATION97Ioni Bowcher
1046Leon F GillianJapan2026-07-12Feiner Bros PROPOSAL44Amy Elsner
1047David Z SchemmerBrazil2026-07-09Morlong Associates UNQUALIFIED79Anna Fali
1048Arvin Z CaldareraAustralia2026-06-29Chemel, James L Cpa QUALIFIED33Ivan Magalhaes
1049Maria Q MacleadJapan2026-07-03Commercial Press NEW52Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin H FerenczAustraliaBernardo Dominic NEW
Juan V InouyeAustraliaXuxue Feng NEGOTIATION
Nicolas E WieserItalyAmy Elsner PROPOSAL
Smith X IturbideUnited KingdomStephen Shaw RENEWAL
Tony C GarufiGermanyElwin Sharvill QUALIFIED
Claire I AlbaresAustraliaAsiya Javayant NEGOTIATION
Sinclair C FigeroaUnited KingdomAmy Elsner NEGOTIATION
Smith C WieserItalyIoni Bowcher QUALIFIED
Clifford V OldroydArgentinaAnna Fali QUALIFIED
Kadeem G FollerSpainAnna Fali NEGOTIATION
Juan O CampainIndiaIvan Magalhaes RENEWAL
Maria G MarrierItalyAmy Elsner NEGOTIATION
Maria Y SlusarskiFranceStephen Shaw NEGOTIATION
Maria O MacleadUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba Q CaldareraArgentinaOnyama Limba QUALIFIED
Morrow J AmigonRussiaAmy Elsner NEGOTIATION
Nicolas K GarufiCanadaAmy Elsner RENEWAL
Kaitlin W PerinBrazilIvan Magalhaes PROPOSAL
Octavia V PerinAustraliaAsiya Javayant PROPOSAL
Mujtaba Y MarrierFranceStephen Shaw PROPOSAL
Cody H FollerIndiaIvan Magalhaes RENEWAL
Deepesh V AlbaresCanadaIvan Magalhaes RENEWAL
Kaitlin Y CaldareraSpainXuxue Feng NEGOTIATION
Morrow D PoquetteSpainIvan Magalhaes NEW
Silvio S WaycottGermanyXuxue Feng UNQUALIFIED
Isabel G StensethRussiaAsiya Javayant UNQUALIFIED
Isabel T MaletItalyXuxue Feng UNQUALIFIED
Maisha F GlickCanadaAnna Fali RENEWAL
James D BriddickGermanyAnna Fali QUALIFIED
Juan D SergiBrazilAmy Elsner PROPOSAL
Munro A ChuiCanadaIoni Bowcher QUALIFIED
Alejandro K FlosiArgentinaIvan Magalhaes PROPOSAL
Misaki B SlusarskiRussiaBernardo Dominic NEW
Deepesh K ChuiIndiaElwin Sharvill NEGOTIATION
Cody P RulapaughCanadaElwin Sharvill UNQUALIFIED
Isabel R WaycottGermanyAmy Elsner PROPOSAL
Jennifer P BriddickJapanIvan Magalhaes NEW
Izzy Y DilliardFranceAnna Fali UNQUALIFIED
Nicolas U KolmetzUnited KingdomBernardo Dominic NEW
Aika X GillianCanadaOnyama Limba NEW
Nicolas J DoeUnited KingdomStephen Shaw RENEWAL
Deepesh D FigeroaAustraliaAmy Elsner RENEWAL
Silvio Y WhobreyItalyXuxue Feng RENEWAL
Deepesh E MaletBrazilStephen Shaw NEW
Aditya N FigeroaRussiaAsiya Javayant UNQUALIFIED
Francesco E VenereItalyAnna Fali NEW
Tony A MacleadJapanAsiya Javayant NEGOTIATION
Silvio J ChuiArgentinaXuxue Feng RENEWAL
Maria R MaletCanadaAmy Elsner NEGOTIATION
Francesco L MarrierBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Juan E Gaucho
Nicolas Q Glick
Antonio S Morasca
Juan D Sergi
Francesco J Maclead
Morrow Q Garufi
Jeanfrancois Q Briddick
Tony X Amigon
Leja H Campain
Ivar L Chui
Salvatore V Ruta
Murillo R Ostrosky
Faith H Maclead
Aika V Venere
Mayumi P Whobrey
Greenwood G Perin
Mujtaba X Kolmetz
Emily P Whobrey
Julie X Maclead
Munro L Butt
Stacey M Venere
Deepesh Q Malet
Nicolas O Stenseth
Ivar L Gillian
Jennifer T Caldarera
Stacey F Nestle
Costa V Kolmetz
Deepesh L Bolognia
Sinclair X Wieser
Stacey C Flosi
Tony G Maclead
Kaitlin U Albares
Stacey G Malet
Emily T Saylors
Smith G Tollner
Silvio E Shinko
Maria K Vocelka
Greenwood O Briddick
Jennifer Q Gillian
Mayumi W Nicka
Stacey I Gillian
Murillo Z Stenseth
Francesco V Slusarski
Aditya R Dilliard
Juan U Caldarera
Leja W Bolognia
Munro E Dilliard
Maisha I Garufi
Leon Q Royster
Sinclair S Flosi
IdCountryDate
1000Brazil2026-06-24
1001Japan2026-07-14
1002France2026-06-18
1003Germany2026-07-10
1004Brazil2026-06-26
1005Brazil2026-06-20
1006Spain2026-07-08
1007India2026-07-02
1008Italy2026-07-11
1009Australia2026-07-13
1010Australia2026-07-11
1011Italy2026-07-09
1012India2026-07-14
1013Argentina2026-06-17
1014Italy2026-06-19
1015Canada2026-07-02
1016Canada2026-06-29
1017Russia2026-07-16
1018Canada2026-07-12
1019Germany2026-07-12
1020Australia2026-07-08
1021France2026-07-16
1022Italy2026-07-02
1023Spain2026-07-16
1024Germany2026-06-21
1025Russia2026-07-05
1026Russia2026-07-01
1027Canada2026-06-21
1028Argentina2026-06-18
1029Spain2026-07-07
1030Spain2026-07-07
1031Japan2026-06-29
1032Australia2026-07-10
1033Brazil2026-06-21
1034Brazil2026-07-11
1035Australia2026-07-07
1036Australia2026-06-24
1037Germany2026-06-27
1038Italy2026-06-25
1039Canada2026-06-23
1040Brazil2026-06-24
1041Russia2026-07-10
1042Australia2026-07-08
1043United Kingdom2026-06-22
1044Italy2026-06-29
1045Germany2026-06-18
1046Spain2026-07-16
1047France2026-06-23
1048Spain2026-07-02
1049Italy2026-07-10

On-Demand Data

NameIdCountryDate
Ricardo O Schemmer1000Japan2026-07-14
Deepesh H Glick1001Australia2026-06-28
Costa X Marrier1002France2026-07-01
Silvio O Rim1003United Kingdom2026-06-30
Aika Q Malet1004Canada2026-07-06
Jones I Paprocki1005Russia2026-06-21
Cody M Foller1006Brazil2026-06-25
Maisha Z Maclead1007Brazil2026-07-05
Izzy N Nestle1008Argentina2026-07-01
Kadeem R Waycott1009Italy2026-07-13
Jefferson J Amigon1010Russia2026-06-20
Ivar G Malet1011France2026-06-30
Mayumi S Bowley1012Australia2026-07-16
Tony N Rim1013Italy2026-06-25
Leon Q Butt1014Canada2026-07-06
Emily Q Ostrosky1015India2026-07-06
Jones T Chui1016Russia2026-07-16
Munro O Glick1017France2026-07-12
Morrow L Figeroa1018Italy2026-07-08
Francesco R Chui1019Brazil2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Z MarrierFranceIvan Magalhaes PROPOSAL
Aika H KuskoJapanElwin Sharvill UNQUALIFIED
Maria L RulapaughBrazilAmy Elsner NEW
Misaki A MaletFranceBernardo Dominic NEGOTIATION
Nicolas G VocelkaRussiaStephen Shaw NEGOTIATION
Misaki G VenereBrazilStephen Shaw NEGOTIATION
Emily S RimFranceElwin Sharvill RENEWAL
Johnson N StensethArgentinaXuxue Feng UNQUALIFIED
Antonio W WieserAustraliaOnyama Limba PROPOSAL
Julie I NickaCanadaAmy Elsner NEGOTIATION
Deepesh S KolmetzGermanyElwin Sharvill QUALIFIED
Smith V DoeJapanAnna Fali RENEWAL
Silvio P SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Isabel B CaudyCanadaIoni Bowcher PROPOSAL
Claire G OldroydItalyStephen Shaw PROPOSAL
Adams E IturbideUnited KingdomOnyama Limba RENEWAL
Costa D CampainJapanAsiya Javayant UNQUALIFIED
Wickens G GarufiRussiaAmy Elsner RENEWAL
Alejandro L DilliardAustraliaIoni Bowcher QUALIFIED
Faith Q MaletBrazilXuxue Feng QUALIFIED
James G KolmetzRussiaOnyama Limba RENEWAL
Juan O ButtItalyIoni Bowcher UNQUALIFIED
Rodrigues Y VenereRussiaStephen Shaw RENEWAL
Silvio B SaylorsAustraliaAnna Fali NEGOTIATION
Leon W CaldareraUnited KingdomStephen Shaw NEW
Salvatore P InouyeBrazilAmy Elsner NEGOTIATION
Deepesh H OldroydCanadaAmy Elsner QUALIFIED
Mayumi J KuskoAustraliaOnyama Limba NEW
Greenwood P MacleadRussiaIvan Magalhaes RENEWAL
Ashley C MaletArgentinaOnyama Limba NEGOTIATION
Jennifer Z AlbaresFranceIvan Magalhaes NEW
Jefferson G NickaIndiaAnna Fali UNQUALIFIED
Wickens B VenereGermanyIvan Magalhaes QUALIFIED
Costa G ButtArgentinaBernardo Dominic NEW
James Q NestleAustraliaBernardo Dominic QUALIFIED
Nicolas H BologniaSpainXuxue Feng QUALIFIED
Munro W PoquetteBrazilStephen Shaw NEW
Kadeem S NestleRussiaStephen Shaw NEGOTIATION
Aditya Q MaletAustraliaAnna Fali PROPOSAL
Leon C AmigonItalyStephen Shaw 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>