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
Alejandro Z GlickUnited KingdomBernardo Dominic UNQUALIFIED
Smith Y MacleadGermanyAmy Elsner PROPOSAL
Johnson Y SchemmerItalyXuxue Feng NEGOTIATION
Salvatore R StockhamJapanBernardo Dominic RENEWAL
Misaki V GillianIndiaOnyama Limba QUALIFIED
Octavia M ChuiGermanyIoni Bowcher UNQUALIFIED
Isabel I PerinArgentinaStephen Shaw PROPOSAL
Deepesh R SchemmerRussiaOnyama Limba QUALIFIED
Isabel T FerenczRussiaBernardo Dominic PROPOSAL
Johnson D FigeroaJapanXuxue Feng NEW
Costa C BowleyGermanyElwin Sharvill QUALIFIED
Misaki I WhobreyArgentinaXuxue Feng NEW
James O PaprockiRussiaXuxue Feng NEW
Greenwood F BologniaUnited KingdomAnna Fali UNQUALIFIED
Antonio R OldroydIndiaAsiya Javayant RENEWAL
Wickens J NestleSpainOnyama Limba PROPOSAL
Aruna Z DarakjyBrazilOnyama Limba NEGOTIATION
Wickens S BowleyIndiaIvan Magalhaes RENEWAL
Johnson D AmigonUnited KingdomElwin Sharvill NEGOTIATION
Munro D FerenczAustraliaXuxue Feng NEW
Maria N SlusarskiJapanIvan Magalhaes PROPOSAL
Nicolas J SlusarskiArgentinaOnyama Limba RENEWAL
Arvin T ButtRussiaElwin Sharvill UNQUALIFIED
Aruna H OstroskyArgentinaAnna Fali PROPOSAL
Aruna Z FollerAustraliaElwin Sharvill RENEWAL
Maria G MacleadGermanyAmy Elsner NEW
Rodrigues B VenereAustraliaOnyama Limba RENEWAL
Mayumi J SlusarskiArgentinaIoni Bowcher PROPOSAL
Misaki R WaycottAustraliaStephen Shaw QUALIFIED
Tony S IturbideGermanyAnna Fali PROPOSAL
Julie J StensethGermanyOnyama Limba NEW
Leja M GarufiItalyStephen Shaw NEGOTIATION
Morrow R PaprockiCanadaAmy Elsner NEGOTIATION
Munro V ShinkoBrazilIoni Bowcher UNQUALIFIED
Aditya P BologniaGermanyBernardo Dominic RENEWAL
Julie X CampainRussiaAnna Fali NEW
Munro O NestleGermanyAsiya Javayant RENEWAL
Munro H RutaBrazilAsiya Javayant NEGOTIATION
Jefferson O StockhamSpainAnna Fali RENEWAL
Misaki E GillianSpainBernardo Dominic RENEWAL
Costa Y OldroydGermanyIoni Bowcher QUALIFIED
Wickens X MaletItalyAmy Elsner RENEWAL
Silvio H GarufiFranceElwin Sharvill RENEWAL
Misaki L RutaGermanyOnyama Limba QUALIFIED
Stacey Y StensethRussiaOnyama Limba NEW
Arvin K MacleadRussiaAsiya Javayant NEW
Leon I BowleyIndiaIvan Magalhaes NEGOTIATION
Leja M GillianSpainElwin Sharvill UNQUALIFIED
Izzy H BowleyRussiaElwin Sharvill NEW
Clifford W FerenczRussiaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow C RoysterGermanyBernardo Dominic RENEWAL
Adams G DoeFranceAmy Elsner RENEWAL
Emily I GauchoBrazilElwin Sharvill NEGOTIATION
Adams L NickaIndiaIvan Magalhaes PROPOSAL
Rodrigues Q BologniaSpainIoni Bowcher QUALIFIED
Maisha I VocelkaFranceXuxue Feng NEGOTIATION
Alejandro A InouyeSpainOnyama Limba UNQUALIFIED
Leon B DilliardSpainAmy Elsner QUALIFIED
Murillo J DoeAustraliaIoni Bowcher UNQUALIFIED
Antonio Q FollerCanadaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh D RutaArgentina2026-07-15Chanay, Jeffrey A Esq NEW77Ioni Bowcher
1001Morrow N CaldareraGermany2026-06-26Buckley Miller Wright NEGOTIATION39Onyama Limba
1002Francesco N CaldareraItaly2026-07-08Rangoni Of Florence UNQUALIFIED65Onyama Limba
1003Aditya Q GarufiCanada2026-07-04Rousseaux, Michael Esq QUALIFIED23Ivan Magalhaes
1004Greenwood Q DilliardArgentina2026-07-04Chanay, Jeffrey A Esq NEW69Onyama Limba
1005Wickens V GlickUnited Kingdom2026-06-22Chanay, Jeffrey A Esq QUALIFIED54Ioni Bowcher
1006Greenwood Y RulapaughBrazil2026-07-12King, Christopher A Esq NEGOTIATION20Xuxue Feng
1007Costa F MarrierRussia2026-06-22King, Christopher A Esq RENEWAL80Bernardo Dominic
1008Greenwood Z RoysterItaly2026-06-21Chapman, Ross E Esq QUALIFIED11Elwin Sharvill
1009Jefferson M FerenczItaly2026-07-16Rousseaux, Michael Esq QUALIFIED33Elwin Sharvill
1010Izzy J RulapaughSpain2026-07-01Commercial Press UNQUALIFIED85Ioni Bowcher
1011Jefferson X BriddickFrance2026-07-08Rangoni Of Florence NEGOTIATION68Ioni Bowcher
1012James N VenereGermany2026-07-14Rangoni Of Florence NEW28Amy Elsner
1013Alejandro L RoysterGermany2026-06-19Chapman, Ross E Esq UNQUALIFIED88Amy Elsner
1014Julie U SaylorsSpain2026-06-23Morlong Associates PROPOSAL30Stephen Shaw
1015Deepesh D FollerIndia2026-07-01Printing Dimensions QUALIFIED38Ivan Magalhaes
1016Munro D MaletBrazil2026-07-09Benton, John B Jr NEW2Ioni Bowcher
1017Silvio T KolmetzFrance2026-07-04Rangoni Of Florence UNQUALIFIED42Ioni Bowcher
1018David O CampainAustralia2026-06-24King, Christopher A Esq NEW15Asiya Javayant
1019Ashley B MaletRussia2026-07-08Rousseaux, Michael Esq UNQUALIFIED43Stephen Shaw
1020James U WieserIndia2026-07-03Rangoni Of Florence UNQUALIFIED42Stephen Shaw
1021Isabel A OstroskyJapan2026-06-24Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1022Mujtaba W NickaUnited Kingdom2026-06-24Printing Dimensions RENEWAL26Asiya Javayant
1023Julie I NickaAustralia2026-06-23Commercial Press RENEWAL77Ivan Magalhaes
1024Leon R MarrierSpain2026-07-15Dorl, James J Esq RENEWAL21Onyama Limba
1025Wickens P BologniaUnited Kingdom2026-06-22Benton, John B Jr QUALIFIED12Anna Fali
1026Maria G FlosiFrance2026-06-21Printing Dimensions QUALIFIED37Stephen Shaw
1027Arvin Q GillianGermany2026-07-12Rousseaux, Michael Esq RENEWAL64Anna Fali
1028Deepesh T MarrierCanada2026-06-23Dorl, James J Esq QUALIFIED92Stephen Shaw
1029Maria R RimGermany2026-07-01Chanay, Jeffrey A Esq PROPOSAL11Xuxue Feng
1030Arvin Q MaletCanada2026-06-25Rousseaux, Michael Esq NEW23Asiya Javayant
1031Juan Y ButtIndia2026-07-05Buckley Miller Wright PROPOSAL32Asiya Javayant
1032Faith I CaudyUnited Kingdom2026-06-29Chanay, Jeffrey A Esq PROPOSAL67Amy Elsner
1033Juan I GarufiCanada2026-06-26Chanay, Jeffrey A Esq QUALIFIED67Ioni Bowcher
1034Adams D CaldareraJapan2026-07-03Feiner Bros PROPOSAL26Ivan Magalhaes
1035Tony X WieserBrazil2026-07-01Benton, John B Jr NEW5Ioni Bowcher
1036Antonio T MorascaUnited Kingdom2026-06-22Truhlar And Truhlar Attys UNQUALIFIED96Ioni Bowcher
1037Ashley Y WieserJapan2026-07-14Commercial Press UNQUALIFIED25Amy Elsner
1038Chavez L CaudySpain2026-07-11Chapman, Ross E Esq QUALIFIED52Bernardo Dominic
1039Ashley X IturbideArgentina2026-06-19Chanay, Jeffrey A Esq QUALIFIED76Ivan Magalhaes
1040Greenwood S FerenczItaly2026-07-14Benton, John B Jr PROPOSAL98Onyama Limba
1041Ivar E SlusarskiGermany2026-06-22Chanay, Jeffrey A Esq PROPOSAL52Amy Elsner
1042James B NickaIndia2026-07-05Buckley Miller Wright NEW91Amy Elsner
1043Octavia J MaletBrazil2026-07-16Printing Dimensions QUALIFIED80Onyama Limba
1044Aditya F FlosiIndia2026-06-27Rousseaux, Michael Esq NEGOTIATION35Elwin Sharvill
1045Morrow Y TollnerCanada2026-07-08Feltz Printing Service QUALIFIED80Ioni Bowcher
1046Aruna T GlickCanada2026-07-16Rousseaux, Michael Esq NEW12Elwin Sharvill
1047Claire V ChuiArgentina2026-07-03Truhlar And Truhlar Attys NEGOTIATION69Ivan Magalhaes
1048Silvio J MacleadIndia2026-07-08Rousseaux, Michael Esq NEGOTIATION59Ioni Bowcher
1049Ricardo Q CaldareraGermany2026-07-04Benton, John B Jr RENEWAL59Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan P StensethItalyIoni Bowcher NEW
Johnson P FigeroaJapanBernardo Dominic UNQUALIFIED
Alejandro R MarrierJapanAmy Elsner NEGOTIATION
Sinclair H KolmetzGermanyElwin Sharvill QUALIFIED
Kaitlin D GlickGermanyIvan Magalhaes QUALIFIED
Isabel A WhobreyAustraliaOnyama Limba NEGOTIATION
Wickens H GauchoFranceXuxue Feng PROPOSAL
Aditya Z GlickItalyOnyama Limba NEGOTIATION
Kaitlin L ShinkoAustraliaAnna Fali PROPOSAL
Juan R NickaBrazilOnyama Limba NEW
James E ChuiIndiaIoni Bowcher RENEWAL
Jeanfrancois K MacleadFranceXuxue Feng UNQUALIFIED
Adams M RoysterArgentinaAnna Fali PROPOSAL
Cody E BowleyUnited KingdomAnna Fali QUALIFIED
Aditya L KolmetzFranceAsiya Javayant NEW
Julie E CaudyGermanyAsiya Javayant QUALIFIED
Wickens Q WieserIndiaStephen Shaw UNQUALIFIED
Rodrigues I PaprockiArgentinaAmy Elsner UNQUALIFIED
Antonio C WieserSpainAnna Fali RENEWAL
Cody D RutaFranceStephen Shaw RENEWAL
Misaki T CaldareraSpainAmy Elsner NEW
Jennifer K CampainCanadaBernardo Dominic QUALIFIED
Smith D DilliardRussiaIvan Magalhaes NEW
Jeanfrancois W RoysterCanadaIoni Bowcher QUALIFIED
Cody H CaldareraFranceAsiya Javayant QUALIFIED
Alejandro O WieserCanadaOnyama Limba NEGOTIATION
Arvin H ShinkoBrazilXuxue Feng UNQUALIFIED
Claire C KuskoIndiaBernardo Dominic UNQUALIFIED
Mujtaba D KolmetzFranceAnna Fali QUALIFIED
Ashley J FerenczAustraliaIoni Bowcher RENEWAL
Aika K RutaItalyAmy Elsner UNQUALIFIED
Greenwood O PaprockiCanadaIoni Bowcher NEGOTIATION
Maisha P CaldareraGermanyIoni Bowcher NEW
Ricardo Y IturbideRussiaIvan Magalhaes NEGOTIATION
Maisha S MaletGermanyIoni Bowcher UNQUALIFIED
Nicolas B FlosiJapanIoni Bowcher QUALIFIED
Maria C StockhamJapanIvan Magalhaes NEW
Misaki P StensethJapanStephen Shaw UNQUALIFIED
Darci X RutaItalyOnyama Limba QUALIFIED
Julie G BriddickIndiaAnna Fali PROPOSAL
Kaitlin U GarufiIndiaBernardo Dominic UNQUALIFIED
Wickens E BologniaItalyStephen Shaw NEW
Silvio T CampainUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba D KuskoGermanyBernardo Dominic RENEWAL
Chavez F InouyeBrazilOnyama Limba NEGOTIATION
Mayumi R ChuiAustraliaElwin Sharvill QUALIFIED
Salvatore F PoquetteBrazilAnna Fali RENEWAL
Darci Z PaprockiArgentinaIvan Magalhaes QUALIFIED
Cody P CaudyAustraliaOnyama Limba NEW
Antonio N BriddickBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Alejandro L Caudy
James F Bowley
Aika N Vocelka
Arvin W Gaucho
Munro H Nicka
Alejandro E Waycott
Silvio E Schemmer
Maria N Caudy
Maisha F Paprocki
Jennifer P Glick
Leon Z Amigon
James K Foller
Murillo B Shinko
Isabel M Stockham
Emily L Kolmetz
Kadeem T Briddick
Maria O Butt
Maria L Oldroyd
Francesco D Saylors
Cody T Paprocki
Jones N Wieser
Juan P Perin
Emily Y Garufi
David S Bowley
Francesco K Iturbide
Mayumi A Amigon
James T Kusko
Mujtaba T Perin
Mayumi G Caldarera
Aditya W Doe
Silvio U Oldroyd
Maria D Gaucho
Octavia I Darakjy
Alejandro T Amigon
Octavia H Morasca
Arvin T Foller
Kadeem Q Rulapaugh
Faith Z Stockham
Cody F Nicka
Jennifer Q Dilliard
Faith N Doe
Clifford B Poquette
Maria E Maclead
Cody I Perin
Aika T Iturbide
Octavia C Campain
Leja J Marrier
Johnson O Figeroa
Kaitlin C Ostrosky
Aditya H Briddick
IdCountryDate
1000Italy2026-06-25
1001France2026-06-20
1002France2026-06-29
1003India2026-06-19
1004France2026-07-16
1005Argentina2026-07-11
1006United Kingdom2026-07-09
1007Germany2026-07-13
1008Argentina2026-06-28
1009Russia2026-06-22
1010India2026-07-08
1011Japan2026-06-29
1012Japan2026-07-02
1013Germany2026-07-05
1014Australia2026-06-30
1015India2026-06-27
1016France2026-06-23
1017Spain2026-07-10
1018Australia2026-06-24
1019Spain2026-06-18
1020Spain2026-06-20
1021United Kingdom2026-07-10
1022Spain2026-06-25
1023Germany2026-06-19
1024Italy2026-07-05
1025Canada2026-07-13
1026Spain2026-06-27
1027Germany2026-06-24
1028Japan2026-07-13
1029India2026-06-23
1030Argentina2026-06-24
1031Argentina2026-07-04
1032Spain2026-06-19
1033United Kingdom2026-06-30
1034Spain2026-06-25
1035Japan2026-07-13
1036Italy2026-06-22
1037Canada2026-06-26
1038Spain2026-07-01
1039Brazil2026-07-08
1040India2026-07-08
1041United Kingdom2026-07-08
1042Australia2026-07-06
1043Spain2026-06-27
1044United Kingdom2026-06-20
1045Australia2026-06-30
1046Australia2026-06-19
1047Brazil2026-07-04
1048Brazil2026-07-11
1049Canada2026-06-28

On-Demand Data

NameIdCountryDate
Greenwood Y Glick1000Canada2026-07-03
Jennifer X Bowley1001Italy2026-07-10
Octavia L Rim1002Italy2026-06-23
Faith E Whobrey1003Germany2026-07-08
David L Saylors1004United Kingdom2026-06-20
Jefferson D Darakjy1005Brazil2026-07-02
Morrow F Glick1006Italy2026-06-23
Francesco F Waycott1007Australia2026-07-06
Arvin L Briddick1008Italy2026-06-29
Adams T Figeroa1009Brazil2026-07-12
Faith S Marrier1010Argentina2026-07-04
Izzy I Saylors1011Japan2026-07-13
Maria S Marrier1012Canada2026-06-30
Alejandro V Kusko1013Canada2026-07-11
Wickens U Ruta1014United Kingdom2026-06-27
Maisha T Gillian1015Japan2026-06-23
Nicolas J Caldarera1016Canada2026-06-23
Murillo G Paprocki1017Italy2026-07-09
Maisha I Nestle1018France2026-07-17
Leon F Perin1019Spain2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel T KolmetzArgentinaBernardo Dominic RENEWAL
Jones Y FollerBrazilAnna Fali NEW
Francesco U PerinGermanyXuxue Feng PROPOSAL
Nicolas H BowleyFranceOnyama Limba NEW
Stacey R GauchoUnited KingdomAnna Fali RENEWAL
Jefferson A SlusarskiRussiaAsiya Javayant PROPOSAL
Smith H SchemmerSpainElwin Sharvill NEW
Isabel S ShinkoAustraliaOnyama Limba UNQUALIFIED
Ricardo I PaprockiJapanBernardo Dominic NEW
Julie L PaprockiIndiaBernardo Dominic UNQUALIFIED
Rodrigues L PoquetteFranceOnyama Limba NEGOTIATION
Emily L RimIndiaXuxue Feng NEW
Smith H VenereUnited KingdomOnyama Limba NEGOTIATION
Leon H GarufiCanadaBernardo Dominic NEGOTIATION
Cody N RoysterArgentinaAsiya Javayant NEGOTIATION
Mujtaba G WhobreyItalyAnna Fali NEW
Jennifer X MacleadBrazilIoni Bowcher RENEWAL
James P NestleSpainOnyama Limba RENEWAL
Isabel F StockhamAustraliaAnna Fali NEW
Jefferson Q FollerItalyAsiya Javayant NEGOTIATION
Adams I TollnerBrazilIoni Bowcher UNQUALIFIED
Aika G MaletJapanStephen Shaw PROPOSAL
Kaitlin P MarrierIndiaIvan Magalhaes NEW
Jennifer B SergiCanadaOnyama Limba PROPOSAL
Deepesh O DilliardAustraliaXuxue Feng QUALIFIED
Emily B NestleArgentinaOnyama Limba QUALIFIED
Nicolas U FlosiCanadaElwin Sharvill NEW
Jeanfrancois Q GlickIndiaAsiya Javayant NEGOTIATION
Maisha B RimAustraliaBernardo Dominic UNQUALIFIED
Adams N DilliardItalyAnna Fali RENEWAL
Stacey G StensethUnited KingdomBernardo Dominic PROPOSAL
Salvatore Q OstroskyArgentinaIvan Magalhaes RENEWAL
Ricardo W StockhamSpainIoni Bowcher RENEWAL
Munro D GlickItalyIoni Bowcher UNQUALIFIED
Jones J SchemmerJapanBernardo Dominic PROPOSAL
Ricardo T StensethSpainXuxue Feng NEGOTIATION
Costa A BriddickIndiaAnna Fali RENEWAL
Stacey Q SergiUnited KingdomIvan Magalhaes NEGOTIATION
Cody L CampainUnited KingdomAsiya Javayant NEW
Smith A PoquetteFranceXuxue Feng QUALIFIED

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