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
Maria U OldroydGermanyElwin Sharvill PROPOSAL
Jeanfrancois T RutaSpainOnyama Limba PROPOSAL
Kaitlin K WaycottSpainIvan Magalhaes QUALIFIED
Octavia F RimJapanXuxue Feng NEW
Silvio H PerinGermanyIoni Bowcher UNQUALIFIED
Tony G MaletAustraliaElwin Sharvill UNQUALIFIED
Sinclair X AmigonUnited KingdomXuxue Feng NEW
Mayumi M VocelkaUnited KingdomBernardo Dominic RENEWAL
David L GillianRussiaIvan Magalhaes NEGOTIATION
Costa B DoeBrazilAsiya Javayant RENEWAL
Morrow B CaldareraUnited KingdomElwin Sharvill NEW
Salvatore Q IturbideItalyAmy Elsner NEGOTIATION
Wickens J WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Aditya Q MarrierBrazilStephen Shaw NEGOTIATION
Aruna M InouyeArgentinaStephen Shaw QUALIFIED
Mayumi V NickaJapanAnna Fali NEGOTIATION
Ivar C FlosiAustraliaIvan Magalhaes NEGOTIATION
Darci P InouyeIndiaIvan Magalhaes NEW
Emily J StockhamBrazilElwin Sharvill QUALIFIED
Emily Q CaudyAustraliaXuxue Feng QUALIFIED
Julie G DoeRussiaStephen Shaw UNQUALIFIED
Aruna M MaletItalyAnna Fali NEGOTIATION
Adams R InouyeGermanyAmy Elsner QUALIFIED
Alejandro G MacleadGermanyAsiya Javayant PROPOSAL
Leon B AmigonJapanAnna Fali RENEWAL
James Q RimAustraliaAsiya Javayant NEGOTIATION
Adams S FigeroaFranceAmy Elsner PROPOSAL
Maisha J AlbaresCanadaIvan Magalhaes PROPOSAL
Aika X OstroskySpainXuxue Feng NEW
Octavia P GillianItalyStephen Shaw UNQUALIFIED
Maria Z GarufiIndiaOnyama Limba QUALIFIED
Claire L SaylorsGermanyXuxue Feng NEGOTIATION
Arvin E RulapaughGermanyAmy Elsner UNQUALIFIED
Leja B MaletUnited KingdomAnna Fali QUALIFIED
Emily J WieserArgentinaElwin Sharvill NEGOTIATION
Jefferson F RoysterBrazilAnna Fali PROPOSAL
Emily G IturbideGermanyStephen Shaw UNQUALIFIED
Claire Z GarufiCanadaAsiya Javayant PROPOSAL
Juan F RutaCanadaXuxue Feng RENEWAL
Mayumi N CampainSpainXuxue Feng NEGOTIATION
Salvatore I SergiSpainAmy Elsner UNQUALIFIED
Costa C MorascaItalyIvan Magalhaes QUALIFIED
Mujtaba Z SergiUnited KingdomIoni Bowcher NEGOTIATION
Emily K SlusarskiCanadaAnna Fali NEGOTIATION
Silvio C AlbaresArgentinaOnyama Limba RENEWAL
Isabel G DarakjyBrazilStephen Shaw QUALIFIED
Julie I BowleyArgentinaAnna Fali NEW
Costa Z AmigonSpainAnna Fali NEGOTIATION
Greenwood S WaycottIndiaAnna Fali UNQUALIFIED
Murillo W VenereRussiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Munro L NickaBrazilXuxue Feng QUALIFIED
Smith R KolmetzIndiaElwin Sharvill QUALIFIED
Octavia G CaudyArgentinaIvan Magalhaes RENEWAL
Darci Q RulapaughSpainBernardo Dominic PROPOSAL
Kaitlin E WieserAustraliaAsiya Javayant NEGOTIATION
Francesco W MaletItalyIoni Bowcher RENEWAL
Munro W DoeUnited KingdomBernardo Dominic UNQUALIFIED
Faith A ButtFranceElwin Sharvill NEW
Smith O KolmetzItalyStephen Shaw QUALIFIED
Silvio F GauchoBrazilStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois V StensethRussia2026-07-16Chemel, James L Cpa QUALIFIED18Elwin Sharvill
1001Sinclair A RutaItaly2026-07-17Printing Dimensions NEW91Xuxue Feng
1002Chavez C WhobreyCanada2026-07-24King, Christopher A Esq NEGOTIATION91Xuxue Feng
1003Maisha Y BowleyBrazil2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED48Ioni Bowcher
1004Maria C RutaBrazil2026-07-12Benton, John B Jr QUALIFIED78Anna Fali
1005Misaki J FigeroaRussia2026-07-15Feiner Bros NEGOTIATION24Bernardo Dominic
1006Maria L OstroskyBrazil2026-07-02Chapman, Ross E Esq RENEWAL44Xuxue Feng
1007Julie I PerinGermany2026-07-21Rangoni Of Florence QUALIFIED82Bernardo Dominic
1008Octavia E MacleadBrazil2026-07-22King, Christopher A Esq UNQUALIFIED43Onyama Limba
1009Wickens A CampainFrance2026-07-24Chanay, Jeffrey A Esq RENEWAL82Elwin Sharvill
1010Misaki U GlickUnited Kingdom2026-07-10Buckley Miller Wright PROPOSAL41Ioni Bowcher
1011Emily C NickaBrazil2026-07-14Rousseaux, Michael Esq QUALIFIED40Xuxue Feng
1012Munro H GillianItaly2026-07-08Rangoni Of Florence PROPOSAL51Ioni Bowcher
1013James O RutaArgentina2026-07-21Buckley Miller Wright UNQUALIFIED69Ivan Magalhaes
1014Wickens Y FlosiRussia2026-07-22Buckley Miller Wright PROPOSAL21Ioni Bowcher
1015Munro Q RoysterGermany2026-07-16Truhlar And Truhlar Attys PROPOSAL88Anna Fali
1016Aika P PaprockiBrazil2026-07-12Commercial Press QUALIFIED42Xuxue Feng
1017Greenwood B GarufiAustralia2026-07-10Dorl, James J Esq QUALIFIED50Onyama Limba
1018Ivar E OldroydAustralia2026-06-27Dorl, James J Esq UNQUALIFIED44Ivan Magalhaes
1019Costa E MaletBrazil2026-06-29Truhlar And Truhlar Attys RENEWAL32Ioni Bowcher
1020Tony B MaletBrazil2026-07-01Commercial Press RENEWAL63Anna Fali
1021Ivar L BologniaItaly2026-06-28Commercial Press RENEWAL5Elwin Sharvill
1022Smith U WhobreyIndia2026-06-30Commercial Press PROPOSAL93Ivan Magalhaes
1023Kaitlin B AmigonItaly2026-07-09King, Christopher A Esq QUALIFIED68Stephen Shaw
1024Ashley H NickaGermany2026-06-28Truhlar And Truhlar Attys UNQUALIFIED97Stephen Shaw
1025Adams S BologniaIndia2026-07-19Benton, John B Jr UNQUALIFIED18Onyama Limba
1026Ashley F WaycottItaly2026-07-15Chanay, Jeffrey A Esq QUALIFIED5Ivan Magalhaes
1027Faith O SchemmerGermany2026-07-24Truhlar And Truhlar Attys UNQUALIFIED24Ioni Bowcher
1028Costa P GauchoFrance2026-07-08Rangoni Of Florence RENEWAL88Elwin Sharvill
1029Aika G NestleGermany2026-07-16Printing Dimensions QUALIFIED77Ivan Magalhaes
1030Maria K StockhamUnited Kingdom2026-07-06Truhlar And Truhlar Attys NEW69Xuxue Feng
1031Ashley A GlickAustralia2026-06-26Benton, John B Jr RENEWAL84Xuxue Feng
1032Kadeem T PerinAustralia2026-07-04Chapman, Ross E Esq UNQUALIFIED95Xuxue Feng
1033Mayumi X VenereIndia2026-07-03Feltz Printing Service UNQUALIFIED82Elwin Sharvill
1034Salvatore E RutaArgentina2026-07-17Truhlar And Truhlar Attys RENEWAL75Asiya Javayant
1035Morrow G FerenczCanada2026-07-18King, Christopher A Esq RENEWAL45Anna Fali
1036Rodrigues P CampainRussia2026-06-27Chapman, Ross E Esq PROPOSAL12Onyama Limba
1037Izzy F MacleadAustralia2026-07-25Feltz Printing Service PROPOSAL55Stephen Shaw
1038James V OstroskyRussia2026-07-17Chemel, James L Cpa PROPOSAL81Anna Fali
1039Octavia L CaudyCanada2026-06-30Printing Dimensions UNQUALIFIED18Amy Elsner
1040Arvin P RoysterArgentina2026-07-17Feiner Bros UNQUALIFIED63Xuxue Feng
1041Leon I BowleyArgentina2026-07-06Commercial Press UNQUALIFIED17Ivan Magalhaes
1042Sinclair N SchemmerItaly2026-07-15Feiner Bros PROPOSAL92Ioni Bowcher
1043Morrow Q RimSpain2026-07-24Chapman, Ross E Esq PROPOSAL66Asiya Javayant
1044Chavez H OstroskyUnited Kingdom2026-07-12Chemel, James L Cpa NEW23Anna Fali
1045Kaitlin M GauchoRussia2026-07-23Feiner Bros QUALIFIED63Ioni Bowcher
1046Emily W NestleSpain2026-07-11Morlong Associates RENEWAL70Elwin Sharvill
1047Aruna X WaycottBrazil2026-07-13Chapman, Ross E Esq RENEWAL46Anna Fali
1048Adams I DoeIndia2026-07-07Rangoni Of Florence NEGOTIATION70Ioni Bowcher
1049Sinclair C CaldareraRussia2026-07-23Rousseaux, Michael Esq NEGOTIATION28Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois Z PoquetteJapanStephen Shaw PROPOSAL
Misaki I SergiArgentinaOnyama Limba UNQUALIFIED
Kaitlin E SchemmerCanadaAsiya Javayant NEGOTIATION
Claire L VenereAustraliaBernardo Dominic RENEWAL
Morrow O DilliardArgentinaIvan Magalhaes PROPOSAL
Mujtaba T SergiItalyIvan Magalhaes QUALIFIED
Aika H AlbaresGermanyOnyama Limba NEGOTIATION
Leja O WieserItalyIoni Bowcher QUALIFIED
Smith Q NestleJapanIoni Bowcher UNQUALIFIED
Isabel S KuskoFranceIvan Magalhaes PROPOSAL
Francesco K GauchoIndiaElwin Sharvill UNQUALIFIED
Ricardo K PoquetteAustraliaBernardo Dominic NEGOTIATION
David Y RulapaughJapanElwin Sharvill PROPOSAL
Emily O OstroskyArgentinaAnna Fali NEGOTIATION
Tony Q ChuiCanadaElwin Sharvill QUALIFIED
Aika O KolmetzRussiaOnyama Limba RENEWAL
Salvatore X StockhamFranceAnna Fali PROPOSAL
Kadeem R StockhamGermanyBernardo Dominic UNQUALIFIED
Costa K GlickCanadaIvan Magalhaes NEW
Nicolas T CampainCanadaOnyama Limba QUALIFIED
Julie W VenereArgentinaStephen Shaw NEGOTIATION
Alejandro K FigeroaFranceAnna Fali UNQUALIFIED
Jennifer D BowleySpainStephen Shaw PROPOSAL
Nicolas I MacleadGermanyStephen Shaw NEGOTIATION
Faith I IturbideUnited KingdomAmy Elsner NEW
Mujtaba Z SchemmerRussiaXuxue Feng NEGOTIATION
Faith V SaylorsRussiaElwin Sharvill QUALIFIED
Ricardo Z NickaItalyXuxue Feng PROPOSAL
Clifford Q PaprockiIndiaIoni Bowcher UNQUALIFIED
Morrow B OstroskyGermanyXuxue Feng UNQUALIFIED
Sinclair A BowleyArgentinaAsiya Javayant RENEWAL
Ivar B ShinkoRussiaIvan Magalhaes PROPOSAL
Julie X SlusarskiArgentinaStephen Shaw UNQUALIFIED
Emily S MaletSpainAsiya Javayant RENEWAL
Alejandro P MacleadGermanyIoni Bowcher NEGOTIATION
Silvio I GlickBrazilOnyama Limba NEW
Alejandro T DoeSpainIoni Bowcher PROPOSAL
Stacey M StockhamItalyIoni Bowcher QUALIFIED
Isabel X BowleyJapanIvan Magalhaes NEGOTIATION
Arvin U WieserArgentinaXuxue Feng QUALIFIED
Kaitlin W TollnerGermanyStephen Shaw NEW
Francesco P ShinkoJapanBernardo Dominic RENEWAL
Emily T OldroydFranceAsiya Javayant UNQUALIFIED
Kaitlin N IturbideItalyAmy Elsner RENEWAL
Wickens O DoeAustraliaStephen Shaw UNQUALIFIED
Jefferson P ChuiJapanAnna Fali QUALIFIED
Mujtaba Z AmigonCanadaXuxue Feng RENEWAL
Jeanfrancois L WieserRussiaOnyama Limba UNQUALIFIED
Julie P AmigonBrazilXuxue Feng QUALIFIED
Clifford L MaletItalyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Ricardo L Dilliard
Alejandro E Poquette
Octavia D Caldarera
Claire Y Maclead
Darci N Vocelka
Cody W Darakjy
Ivar R Ostrosky
Claire Y Whobrey
Octavia C Glick
Aika Y Briddick
Ivar D Whobrey
Francesco F Slusarski
Darci H Venere
Chavez P Shinko
Costa E Royster
Darci C Rulapaugh
Darci J Slusarski
Leon N Butt
Wickens Y Wieser
Johnson U Garufi
Arvin W Whobrey
Octavia U Slusarski
Misaki X Rim
Costa T Inouye
Greenwood P Campain
Izzy Z Nicka
Chavez U Dilliard
Ricardo K Shinko
Morrow W Royster
Faith E Royster
Maisha U Stenseth
Aika M Paprocki
Nicolas P Paprocki
Mujtaba K Nicka
Ricardo Y Wieser
James M Morasca
Aika L Amigon
Adams X Marrier
Aika Z Saylors
Wickens I Campain
Mujtaba K Perin
Antonio U Malet
Jefferson N Waycott
Aika W Foller
Arvin F Rulapaugh
Deepesh M Poquette
Ashley T Malet
Silvio F Venere
Munro M Kusko
Smith S Bowley
IdCountryDate
1000Canada2026-07-24
1001Brazil2026-07-20
1002France2026-07-19
1003Australia2026-07-07
1004Australia2026-07-25
1005Argentina2026-07-19
1006Italy2026-07-01
1007Italy2026-07-10
1008Italy2026-07-14
1009Russia2026-07-01
1010France2026-07-06
1011Russia2026-07-06
1012Argentina2026-07-05
1013Spain2026-06-26
1014Germany2026-07-03
1015Canada2026-07-11
1016Brazil2026-07-03
1017Japan2026-07-20
1018Brazil2026-07-21
1019Canada2026-07-05
1020Brazil2026-07-25
1021Italy2026-06-27
1022India2026-07-03
1023Argentina2026-07-19
1024Spain2026-07-22
1025France2026-07-03
1026Russia2026-07-12
1027Canada2026-07-17
1028Canada2026-07-24
1029United Kingdom2026-06-27
1030Canada2026-07-23
1031Italy2026-06-30
1032Germany2026-07-08
1033Brazil2026-06-27
1034Italy2026-07-23
1035United Kingdom2026-07-17
1036Spain2026-07-18
1037Japan2026-07-21
1038Germany2026-07-04
1039Australia2026-07-19
1040Russia2026-07-13
1041Germany2026-07-16
1042Argentina2026-07-22
1043Germany2026-07-09
1044Spain2026-07-03
1045Australia2026-07-10
1046Brazil2026-07-01
1047Italy2026-07-10
1048Canada2026-07-03
1049Argentina2026-07-18

On-Demand Data

NameIdCountryDate
Kaitlin R Wieser1000Brazil2026-07-06
Ricardo B Iturbide1001Russia2026-07-11
Jeanfrancois H Doe1002Spain2026-06-26
Chavez U Bowley1003India2026-07-02
David E Maclead1004Spain2026-07-20
Misaki M Oldroyd1005United Kingdom2026-07-07
Aika L Stockham1006Russia2026-07-03
Salvatore Y Schemmer1007United Kingdom2026-07-20
Munro T Perin1008Japan2026-07-24
Claire L Poquette1009Canada2026-07-04
Deepesh W Bowley1010Spain2026-07-17
Smith P Rim1011Italy2026-07-03
Ashley D Briddick1012Germany2026-07-02
Aruna K Slusarski1013Australia2026-07-04
Faith K Kolmetz1014Brazil2026-07-01
Isabel P Saylors1015Russia2026-07-10
Octavia F Vocelka1016Italy2026-06-26
David W Campain1017Germany2026-06-26
Chavez T Saylors1018United Kingdom2026-06-26
Cody N Malet1019Spain2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David E ChuiArgentinaAsiya Javayant NEGOTIATION
Silvio M OstroskySpainIoni Bowcher QUALIFIED
Costa M DilliardBrazilAnna Fali NEW
Clifford U DilliardGermanyOnyama Limba QUALIFIED
Maria P DilliardGermanyAnna Fali NEGOTIATION
Darci X GillianIndiaIvan Magalhaes NEGOTIATION
Darci B ShinkoAustraliaIoni Bowcher PROPOSAL
Stacey X NickaUnited KingdomOnyama Limba QUALIFIED
Sinclair J GarufiFranceElwin Sharvill RENEWAL
Aruna W VocelkaArgentinaBernardo Dominic RENEWAL
Salvatore E CampainJapanIvan Magalhaes PROPOSAL
Juan W VenereArgentinaAmy Elsner NEGOTIATION
David W KuskoAustraliaAmy Elsner NEGOTIATION
Antonio B RimFranceElwin Sharvill UNQUALIFIED
Izzy F BowleyUnited KingdomIvan Magalhaes PROPOSAL
Juan B GlickFranceStephen Shaw PROPOSAL
Munro S KolmetzBrazilIvan Magalhaes RENEWAL
Munro W PaprockiCanadaElwin Sharvill PROPOSAL
Leja I MacleadArgentinaAsiya Javayant NEGOTIATION
Chavez A BowleyCanadaAsiya Javayant NEGOTIATION
Jefferson R RoysterFranceIvan Magalhaes QUALIFIED
Greenwood G ShinkoAustraliaOnyama Limba NEW
James L SlusarskiRussiaAsiya Javayant NEW
Darci D GlickAustraliaAnna Fali RENEWAL
Alejandro H MorascaGermanyIvan Magalhaes UNQUALIFIED
Izzy H FerenczAustraliaOnyama Limba QUALIFIED
Arvin T DilliardArgentinaAsiya Javayant NEW
Johnson K MarrierSpainIoni Bowcher NEW
Juan P WieserRussiaElwin Sharvill NEW
Octavia J DoeItalyAsiya Javayant PROPOSAL
Maisha W CaudyArgentinaAsiya Javayant NEGOTIATION
Stacey B PerinBrazilXuxue Feng PROPOSAL
Aika W BologniaBrazilOnyama Limba NEW
Alejandro J RulapaughBrazilAnna Fali UNQUALIFIED
Salvatore O SlusarskiItalyBernardo Dominic NEW
Arvin B FollerCanadaAsiya Javayant RENEWAL
Smith D AlbaresUnited KingdomAsiya Javayant QUALIFIED
Smith Y DarakjyBrazilAmy Elsner NEGOTIATION
Ricardo Y WhobreyBrazilAnna Fali RENEWAL
Chavez S AmigonIndiaAnna Fali RENEWAL

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