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
Aruna L DarakjyIndiaStephen Shaw NEGOTIATION
Morrow G GarufiBrazilStephen Shaw NEW
Aika F KolmetzRussiaBernardo Dominic RENEWAL
Izzy T WhobreyItalyElwin Sharvill UNQUALIFIED
Kadeem D AlbaresGermanyIvan Magalhaes NEW
Aruna Z RimGermanyOnyama Limba QUALIFIED
Juan F CampainSpainElwin Sharvill NEW
Silvio L MarrierFranceIvan Magalhaes UNQUALIFIED
Jennifer W AlbaresAustraliaIoni Bowcher QUALIFIED
Jennifer O NestleGermanyAsiya Javayant PROPOSAL
Misaki D FigeroaIndiaBernardo Dominic UNQUALIFIED
Arvin M MarrierGermanyAnna Fali QUALIFIED
Maria W BriddickBrazilXuxue Feng PROPOSAL
Murillo R SchemmerArgentinaIoni Bowcher UNQUALIFIED
Aditya K VenereAustraliaAnna Fali NEGOTIATION
Francesco M SlusarskiIndiaElwin Sharvill NEW
Antonio I ShinkoFranceXuxue Feng NEW
Jeanfrancois N VocelkaGermanyIoni Bowcher NEGOTIATION
Claire Y VenereFranceIoni Bowcher RENEWAL
Faith X CampainRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois R CaldareraCanadaAmy Elsner NEW
Izzy I FigeroaItalyAnna Fali QUALIFIED
Aditya I CaldareraSpainXuxue Feng NEW
Mayumi S KuskoUnited KingdomAnna Fali NEW
Leja F OldroydGermanyAsiya Javayant UNQUALIFIED
Mayumi D DoeGermanyXuxue Feng NEGOTIATION
Emily H BriddickAustraliaElwin Sharvill QUALIFIED
James K DarakjyFranceAnna Fali RENEWAL
Greenwood L MaletGermanyBernardo Dominic NEGOTIATION
Octavia Q PoquetteArgentinaAmy Elsner NEW
Aruna L AmigonUnited KingdomAsiya Javayant QUALIFIED
Isabel S SchemmerFranceElwin Sharvill NEGOTIATION
Morrow W DarakjyRussiaAmy Elsner RENEWAL
Tony W CampainUnited KingdomBernardo Dominic NEW
Ashley Y PerinCanadaBernardo Dominic NEW
Alejandro U GarufiUnited KingdomAsiya Javayant RENEWAL
Ivar S KuskoJapanIvan Magalhaes PROPOSAL
Antonio Q WhobreyCanadaIoni Bowcher QUALIFIED
Jennifer W PaprockiJapanOnyama Limba NEW
Isabel P IturbideAustraliaBernardo Dominic QUALIFIED
Jennifer J BowleyJapanOnyama Limba PROPOSAL
Munro B AmigonArgentinaStephen Shaw PROPOSAL
Jennifer W SergiFranceStephen Shaw QUALIFIED
Adams R InouyeGermanyAsiya Javayant NEW
Francesco T RulapaughIndiaOnyama Limba UNQUALIFIED
Morrow Z DoeSpainBernardo Dominic PROPOSAL
Ashley Q InouyeRussiaElwin Sharvill NEW
Francesco E WieserArgentinaBernardo Dominic PROPOSAL
Jones Q GarufiSpainAmy Elsner RENEWAL
James O NestleGermanyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois E DilliardIndiaStephen Shaw NEW
Chavez B KuskoUnited KingdomElwin Sharvill PROPOSAL
Leja H AmigonItalyElwin Sharvill RENEWAL
Costa H OstroskyAustraliaIvan Magalhaes PROPOSAL
Darci K PerinJapanAnna Fali RENEWAL
Alejandro V OldroydArgentinaIoni Bowcher NEW
Aditya G FollerItalyXuxue Feng NEW
Aditya D VenereAustraliaElwin Sharvill NEW
Faith F OstroskyFranceOnyama Limba UNQUALIFIED
Faith J GauchoIndiaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon M DoeCanada2026-06-04King, Christopher A Esq PROPOSAL78Onyama Limba
1001Johnson L OldroydUnited Kingdom2026-06-28Rousseaux, Michael Esq QUALIFIED76Bernardo Dominic
1002Sinclair F BriddickSpain2026-06-10King, Christopher A Esq RENEWAL29Xuxue Feng
1003Antonio W MorascaAustralia2026-06-19Morlong Associates NEGOTIATION6Xuxue Feng
1004Costa A CampainGermany2026-06-04Dorl, James J Esq NEGOTIATION36Xuxue Feng
1005Darci G AmigonSpain2026-06-16Feiner Bros QUALIFIED83Asiya Javayant
1006Tony K WieserSpain2026-06-14Commercial Press QUALIFIED19Xuxue Feng
1007Chavez E BriddickUnited Kingdom2026-06-29Feltz Printing Service NEGOTIATION82Amy Elsner
1008Tony U BriddickCanada2026-06-16Rangoni Of Florence NEGOTIATION87Ivan Magalhaes
1009Aditya H InouyeRussia2026-06-16Morlong Associates NEW73Stephen Shaw
1010Deepesh K SaylorsArgentina2026-06-30Dorl, James J Esq QUALIFIED16Stephen Shaw
1011Johnson Q MaletItaly2026-06-06Rousseaux, Michael Esq PROPOSAL21Elwin Sharvill
1012Tony F NickaSpain2026-06-12Feltz Printing Service UNQUALIFIED58Bernardo Dominic
1013Aika N FollerFrance2026-06-12Feiner Bros PROPOSAL73Ivan Magalhaes
1014Leja X VocelkaGermany2026-06-09Chemel, James L Cpa QUALIFIED46Bernardo Dominic
1015Ricardo N BowleyGermany2026-06-06Commercial Press QUALIFIED39Amy Elsner
1016Francesco F GarufiFrance2026-06-16Chapman, Ross E Esq QUALIFIED62Ivan Magalhaes
1017Julie D DilliardGermany2026-06-30Chanay, Jeffrey A Esq RENEWAL46Ivan Magalhaes
1018Jeanfrancois V NestleIndia2026-06-14Feiner Bros NEW64Elwin Sharvill
1019Ivar S GarufiUnited Kingdom2026-06-30Chemel, James L Cpa PROPOSAL8Ioni Bowcher
1020Juan W CaldareraJapan2026-06-01Buckley Miller Wright RENEWAL18Elwin Sharvill
1021Francesco P KuskoItaly2026-06-26Buckley Miller Wright UNQUALIFIED18Elwin Sharvill
1022Morrow O NestleCanada2026-06-07Chemel, James L Cpa QUALIFIED36Anna Fali
1023Jennifer X GarufiAustralia2026-06-29Truhlar And Truhlar Attys NEW1Ivan Magalhaes
1024Wickens W CaudyArgentina2026-06-18Rangoni Of Florence UNQUALIFIED81Bernardo Dominic
1025Johnson D FigeroaAustralia2026-06-16Rangoni Of Florence RENEWAL47Ioni Bowcher
1026Octavia C NestleUnited Kingdom2026-06-14Feltz Printing Service NEW64Anna Fali
1027Leon F AmigonUnited Kingdom2026-06-06Printing Dimensions QUALIFIED79Onyama Limba
1028Ashley U BriddickArgentina2026-06-12Truhlar And Truhlar Attys NEGOTIATION48Ivan Magalhaes
1029James F DilliardJapan2026-06-10Chemel, James L Cpa UNQUALIFIED37Onyama Limba
1030Ivar I SlusarskiGermany2026-06-14Chapman, Ross E Esq RENEWAL34Onyama Limba
1031Wickens W InouyeUnited Kingdom2026-06-04Feltz Printing Service QUALIFIED8Amy Elsner
1032Aika I DilliardCanada2026-06-21Morlong Associates QUALIFIED64Asiya Javayant
1033Murillo Q SaylorsSpain2026-06-17Commercial Press RENEWAL77Asiya Javayant
1034Salvatore C SchemmerUnited Kingdom2026-06-03Truhlar And Truhlar Attys NEGOTIATION14Amy Elsner
1035Costa E RimArgentina2026-06-07Benton, John B Jr PROPOSAL22Xuxue Feng
1036Adams B WieserArgentina2026-06-23Truhlar And Truhlar Attys UNQUALIFIED75Anna Fali
1037Jefferson K MaletBrazil2026-06-27Commercial Press UNQUALIFIED81Elwin Sharvill
1038Mujtaba Q SaylorsSpain2026-06-30Chemel, James L Cpa NEGOTIATION88Asiya Javayant
1039Alejandro V RoysterBrazil2026-06-24Rangoni Of Florence RENEWAL13Ivan Magalhaes
1040Salvatore C SaylorsFrance2026-06-12Truhlar And Truhlar Attys RENEWAL61Xuxue Feng
1041Maria A MacleadRussia2026-06-18Dorl, James J Esq QUALIFIED64Elwin Sharvill
1042Arvin Z MacleadUnited Kingdom2026-06-28Dorl, James J Esq QUALIFIED48Ivan Magalhaes
1043Rodrigues J CampainCanada2026-06-10Benton, John B Jr NEW71Onyama Limba
1044Leja X PaprockiArgentina2026-06-04Rousseaux, Michael Esq QUALIFIED33Anna Fali
1045Izzy E PaprockiItaly2026-06-03Chemel, James L Cpa NEGOTIATION69Elwin Sharvill
1046Aditya T SchemmerIndia2026-06-09Rousseaux, Michael Esq QUALIFIED64Asiya Javayant
1047Maisha S SlusarskiJapan2026-06-02Feltz Printing Service PROPOSAL19Asiya Javayant
1048Emily R GauchoFrance2026-06-19King, Christopher A Esq NEW89Onyama Limba
1049Greenwood Y NickaAustralia2026-06-14Buckley Miller Wright NEW99Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Misaki V VenereGermanyAsiya Javayant NEW
Jeanfrancois L PerinGermanyAsiya Javayant RENEWAL
Silvio Y FollerIndiaAnna Fali PROPOSAL
Murillo J RimFranceBernardo Dominic PROPOSAL
Aruna Z DilliardRussiaAnna Fali NEW
Rodrigues A FollerJapanStephen Shaw UNQUALIFIED
Ivar C PoquetteIndiaAsiya Javayant RENEWAL
Aika F FigeroaRussiaElwin Sharvill QUALIFIED
Murillo S VenereFranceIvan Magalhaes NEW
Sinclair R KolmetzAustraliaAnna Fali NEW
Maisha A KuskoUnited KingdomAnna Fali QUALIFIED
Deepesh Q GlickFranceIvan Magalhaes RENEWAL
Juan H SaylorsArgentinaStephen Shaw QUALIFIED
Mujtaba P StockhamBrazilBernardo Dominic RENEWAL
Adams U RimAustraliaAnna Fali UNQUALIFIED
Emily U VenereUnited KingdomOnyama Limba RENEWAL
Ashley T ShinkoBrazilAnna Fali QUALIFIED
Aika X WhobreyAustraliaBernardo Dominic NEW
Aika L BologniaCanadaAmy Elsner UNQUALIFIED
Jeanfrancois B VenereArgentinaBernardo Dominic NEW
Munro Z DoeArgentinaAmy Elsner UNQUALIFIED
Johnson H RoysterSpainOnyama Limba QUALIFIED
Cody Z FlosiItalyStephen Shaw RENEWAL
Rodrigues S WaycottIndiaIvan Magalhaes QUALIFIED
Clifford B RimSpainAnna Fali NEGOTIATION
Rodrigues J BriddickJapanStephen Shaw NEGOTIATION
Emily B MaletFranceStephen Shaw UNQUALIFIED
Stacey D FigeroaRussiaXuxue Feng NEGOTIATION
Maisha O MorascaArgentinaIvan Magalhaes NEGOTIATION
Jennifer M OstroskyAustraliaElwin Sharvill RENEWAL
Antonio E StensethItalyXuxue Feng RENEWAL
David W BologniaJapanOnyama Limba PROPOSAL
Nicolas Q KuskoCanadaElwin Sharvill NEW
Rodrigues P AmigonUnited KingdomXuxue Feng RENEWAL
Clifford W KolmetzSpainAmy Elsner PROPOSAL
Rodrigues O FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Aruna Y ChuiJapanStephen Shaw PROPOSAL
James N PerinJapanBernardo Dominic NEGOTIATION
Izzy U KolmetzSpainOnyama Limba UNQUALIFIED
Izzy P FigeroaAustraliaAsiya Javayant NEGOTIATION
Greenwood N FlosiItalyAnna Fali NEGOTIATION
Maria J MarrierArgentinaStephen Shaw NEGOTIATION
Emily L StensethArgentinaIoni Bowcher RENEWAL
Maria I NickaGermanyIoni Bowcher NEW
Jones K GarufiUnited KingdomXuxue Feng NEGOTIATION
Sinclair S VenereItalyIvan Magalhaes QUALIFIED
Maisha H OstroskyAustraliaOnyama Limba PROPOSAL
Deepesh Z SergiItalyXuxue Feng PROPOSAL
Tony X FlosiBrazilElwin Sharvill PROPOSAL
Kaitlin B GarufiAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Wickens A Nestle
Smith U Dilliard
Octavia T Venere
Mayumi W Venere
Julie W Chui
Mayumi B Glick
Cody Y Chui
Misaki L Ruta
Aditya S Tollner
Rodrigues G Slusarski
Maria U Perin
Wickens T Maclead
Leon V Maclead
Mayumi A Royster
Morrow Q Nestle
Julie B Figeroa
Isabel V Nestle
Jeanfrancois D Ostrosky
Jones I Vocelka
Kadeem W Vocelka
Maisha C Rulapaugh
Kaitlin L Paprocki
Jones N Inouye
Darci F Glick
Maisha N Ferencz
Leja T Whobrey
Faith O Doe
Emily T Flosi
Murillo F Inouye
Claire T Kusko
Jones C Oldroyd
Leja V Schemmer
Ashley A Flosi
Rodrigues I Perin
Izzy C Malet
Tony N Slusarski
Antonio Q Caudy
Stacey J Marrier
Ashley T Foller
Kaitlin Q Campain
Juan Q Stockham
Emily R Marrier
Stacey M Waycott
Smith K Nicka
Emily C Foller
Leja P Darakjy
Aika M Nestle
David J Wieser
Jefferson R Saylors
Arvin B Shinko
IdCountryDate
1000Italy2026-06-24
1001Russia2026-06-18
1002France2026-06-11
1003Brazil2026-06-20
1004Argentina2026-06-11
1005Australia2026-06-10
1006Japan2026-06-23
1007India2026-06-18
1008Spain2026-06-04
1009Russia2026-06-22
1010United Kingdom2026-06-13
1011Australia2026-06-04
1012France2026-06-07
1013Spain2026-06-01
1014Australia2026-06-19
1015Japan2026-06-25
1016India2026-06-14
1017India2026-06-03
1018Japan2026-06-10
1019France2026-06-18
1020Germany2026-06-22
1021Russia2026-06-26
1022France2026-06-03
1023Spain2026-06-02
1024France2026-06-21
1025Argentina2026-06-13
1026Australia2026-06-13
1027India2026-06-19
1028Australia2026-06-07
1029Japan2026-06-09
1030United Kingdom2026-06-08
1031Argentina2026-06-29
1032Russia2026-06-18
1033Japan2026-06-18
1034Brazil2026-06-07
1035Germany2026-06-03
1036India2026-06-02
1037Canada2026-06-09
1038Canada2026-06-05
1039United Kingdom2026-06-15
1040Japan2026-06-03
1041France2026-06-12
1042Australia2026-06-16
1043Spain2026-06-06
1044India2026-06-09
1045Russia2026-06-22
1046Canada2026-06-26
1047Japan2026-06-25
1048Spain2026-06-02
1049Russia2026-06-26

On-Demand Data

NameIdCountryDate
James U Figeroa1000Japan2026-06-03
Aruna W Stockham1001Russia2026-06-13
Jeanfrancois S Stenseth1002Spain2026-06-12
Greenwood T Slusarski1003Russia2026-06-25
Francesco B Venere1004Argentina2026-06-10
Faith M Morasca1005Japan2026-06-19
Clifford P Wieser1006United Kingdom2026-06-12
Alejandro Z Slusarski1007Argentina2026-06-25
Murillo V Venere1008United Kingdom2026-06-05
Johnson J Tollner1009Brazil2026-06-04
Cody W Rulapaugh1010India2026-06-06
Ricardo Q Oldroyd1011Argentina2026-06-28
David J Amigon1012Canada2026-06-05
Chavez N Ostrosky1013Spain2026-06-20
Nicolas Q Darakjy1014Russia2026-06-18
Jennifer R Gillian1015India2026-06-24
Silvio T Albares1016United Kingdom2026-06-16
Mujtaba B Doe1017Germany2026-06-01
Francesco Q Whobrey1018Germany2026-06-14
Deepesh Z Oldroyd1019Russia2026-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh Q CampainSpainIoni Bowcher NEGOTIATION
David C WaycottAustraliaAmy Elsner NEW
Cody Z BowleyAustraliaAnna Fali NEW
Jones P VenereArgentinaElwin Sharvill UNQUALIFIED
Costa H MorascaAustraliaAsiya Javayant NEW
Mujtaba X RulapaughBrazilXuxue Feng RENEWAL
Alejandro D GarufiSpainXuxue Feng NEGOTIATION
Aditya V GauchoItalyIoni Bowcher PROPOSAL
Deepesh Q NestleItalyXuxue Feng RENEWAL
Misaki Y OldroydCanadaIvan Magalhaes RENEWAL
Cody B ButtArgentinaOnyama Limba UNQUALIFIED
Maria W OstroskyBrazilBernardo Dominic RENEWAL
Jennifer M StensethSpainAmy Elsner NEGOTIATION
Ivar H CaudyAustraliaOnyama Limba NEW
Jennifer A DilliardCanadaAmy Elsner NEW
Francesco S DarakjyRussiaElwin Sharvill NEGOTIATION
Julie R VocelkaFranceIoni Bowcher QUALIFIED
Smith I SchemmerBrazilBernardo Dominic NEW
Smith L SlusarskiIndiaAnna Fali UNQUALIFIED
Murillo G KuskoCanadaIoni Bowcher PROPOSAL
Alejandro P FerenczIndiaAsiya Javayant RENEWAL
Greenwood K StockhamBrazilAsiya Javayant PROPOSAL
Ashley Q KuskoArgentinaAmy Elsner PROPOSAL
Julie M PaprockiCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois D WhobreyGermanyAnna Fali NEW
Ashley V BologniaGermanyIoni Bowcher NEW
Isabel T GauchoFranceIoni Bowcher NEW
James U CaudyArgentinaIvan Magalhaes PROPOSAL
Octavia Q ShinkoSpainIoni Bowcher UNQUALIFIED
Jeanfrancois V IturbideUnited KingdomBernardo Dominic NEGOTIATION
Juan Q OldroydFranceIoni Bowcher NEGOTIATION
Murillo N BowleyBrazilElwin Sharvill QUALIFIED
Maisha G OstroskySpainStephen Shaw NEW
Jennifer Q KuskoBrazilAnna Fali NEW
Nicolas L ShinkoGermanyBernardo Dominic PROPOSAL
Maria W BologniaItalyIoni Bowcher RENEWAL
Leja A BriddickCanadaElwin Sharvill UNQUALIFIED
James F FollerSpainOnyama Limba NEW
Jones R BowleyFranceAsiya Javayant NEGOTIATION
Jones G GarufiSpainXuxue Feng 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>