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
Clifford T WaycottAustraliaBernardo Dominic UNQUALIFIED
David N MaletUnited KingdomAmy Elsner QUALIFIED
Salvatore F RulapaughIndiaBernardo Dominic RENEWAL
Jefferson P BowleyFranceElwin Sharvill NEW
Kadeem C BowleyItalyAmy Elsner QUALIFIED
Izzy Q TollnerBrazilAsiya Javayant PROPOSAL
Adams V KolmetzBrazilOnyama Limba RENEWAL
Aika G RoysterCanadaStephen Shaw NEW
Jefferson F WhobreySpainStephen Shaw NEW
Wickens N PaprockiBrazilElwin Sharvill NEGOTIATION
Murillo D CampainJapanAnna Fali UNQUALIFIED
Claire W VocelkaBrazilAmy Elsner NEW
Rodrigues L GillianFranceStephen Shaw QUALIFIED
Antonio Y WaycottGermanyAnna Fali QUALIFIED
Nicolas C VenereGermanyBernardo Dominic QUALIFIED
Smith O MorascaArgentinaXuxue Feng PROPOSAL
Murillo U StensethBrazilBernardo Dominic NEGOTIATION
Nicolas M WieserFranceStephen Shaw UNQUALIFIED
Cody Y MorascaRussiaStephen Shaw NEW
Juan I ButtIndiaIvan Magalhaes NEGOTIATION
Maisha S MaletBrazilOnyama Limba RENEWAL
Wickens F BriddickSpainElwin Sharvill RENEWAL
Ashley R NickaSpainAmy Elsner RENEWAL
Sinclair H SaylorsCanadaBernardo Dominic QUALIFIED
Stacey U BriddickBrazilXuxue Feng PROPOSAL
Stacey R WieserCanadaIvan Magalhaes NEW
Faith X GlickItalyBernardo Dominic NEW
Morrow X GauchoRussiaIoni Bowcher PROPOSAL
Ricardo J BowleyGermanyAsiya Javayant PROPOSAL
Costa H IturbideFranceBernardo Dominic NEW
Misaki B KuskoAustraliaAsiya Javayant PROPOSAL
Kadeem J ButtCanadaAnna Fali UNQUALIFIED
Clifford M GauchoSpainAsiya Javayant NEGOTIATION
Francesco E MaletBrazilIvan Magalhaes PROPOSAL
Octavia S DilliardFranceStephen Shaw RENEWAL
Juan M BowleyUnited KingdomIoni Bowcher QUALIFIED
Munro W DarakjyUnited KingdomElwin Sharvill PROPOSAL
Kaitlin D AlbaresRussiaAmy Elsner RENEWAL
Maria H GlickIndiaIvan Magalhaes QUALIFIED
Clifford S DilliardFranceElwin Sharvill PROPOSAL
Deepesh S ShinkoAustraliaIoni Bowcher NEGOTIATION
Ashley C FigeroaIndiaXuxue Feng PROPOSAL
Murillo N SaylorsJapanAnna Fali RENEWAL
Smith Q ShinkoAustraliaIoni Bowcher UNQUALIFIED
Juan E IturbideUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba A FlosiUnited KingdomStephen Shaw UNQUALIFIED
Octavia A PaprockiAustraliaAsiya Javayant RENEWAL
Stacey F MacleadCanadaBernardo Dominic PROPOSAL
Emily G StensethCanadaBernardo Dominic NEW
Murillo Z RulapaughIndiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo T GarufiAustraliaOnyama Limba NEW
Alejandro Y DilliardBrazilStephen Shaw UNQUALIFIED
Darci D PerinArgentinaAsiya Javayant RENEWAL
Julie V OldroydIndiaIvan Magalhaes PROPOSAL
Kadeem I GarufiSpainStephen Shaw RENEWAL
Greenwood K VenereSpainIvan Magalhaes PROPOSAL
Maisha W StockhamAustraliaAmy Elsner QUALIFIED
Claire L NestleIndiaAsiya Javayant QUALIFIED
Munro H OstroskyCanadaElwin Sharvill RENEWAL
Murillo E MarrierFranceIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire A CaldareraJapan2026-07-23Buckley Miller Wright PROPOSAL58Elwin Sharvill
1001Antonio Z VenereJapan2026-08-06Rousseaux, Michael Esq RENEWAL57Ioni Bowcher
1002Salvatore E MorascaFrance2026-08-04Rangoni Of Florence QUALIFIED40Amy Elsner
1003Clifford A KuskoAustralia2026-08-09Dorl, James J Esq QUALIFIED70Elwin Sharvill
1004Kaitlin Q NestleUnited Kingdom2026-07-19Feltz Printing Service UNQUALIFIED78Onyama Limba
1005Octavia H WieserJapan2026-08-15Rousseaux, Michael Esq NEW26Anna Fali
1006Adams J VenereGermany2026-07-30Rangoni Of Florence PROPOSAL47Stephen Shaw
1007Murillo U RulapaughFrance2026-07-20Benton, John B Jr RENEWAL23Ivan Magalhaes
1008Maria D RoysterCanada2026-07-28Chanay, Jeffrey A Esq RENEWAL92Elwin Sharvill
1009Aditya B GauchoFrance2026-08-14Chanay, Jeffrey A Esq PROPOSAL53Elwin Sharvill
1010Costa O NestleUnited Kingdom2026-08-09Dorl, James J Esq NEW19Ioni Bowcher
1011Leja K GarufiCanada2026-07-21Rousseaux, Michael Esq PROPOSAL66Amy Elsner
1012Aruna J SergiCanada2026-08-13King, Christopher A Esq NEW1Amy Elsner
1013Tony E CaudyCanada2026-07-20Truhlar And Truhlar Attys RENEWAL43Ioni Bowcher
1014Ivar R MorascaIndia2026-07-29Morlong Associates NEW78Asiya Javayant
1015Ashley L MorascaUnited Kingdom2026-07-28King, Christopher A Esq UNQUALIFIED48Anna Fali
1016Munro R StensethItaly2026-08-08Chemel, James L Cpa UNQUALIFIED68Bernardo Dominic
1017Juan W InouyeFrance2026-07-24King, Christopher A Esq NEGOTIATION62Stephen Shaw
1018Rodrigues I DilliardCanada2026-07-30Morlong Associates NEW52Ioni Bowcher
1019Misaki Q IturbideArgentina2026-07-24Morlong Associates NEGOTIATION81Anna Fali
1020Antonio F GarufiIndia2026-08-13Feiner Bros UNQUALIFIED96Elwin Sharvill
1021Sinclair I AmigonJapan2026-08-01Buckley Miller Wright NEW54Ivan Magalhaes
1022Jefferson U GarufiArgentina2026-07-26Chapman, Ross E Esq QUALIFIED72Onyama Limba
1023David B BologniaRussia2026-07-28Rousseaux, Michael Esq NEGOTIATION46Xuxue Feng
1024Leon C VenereCanada2026-07-31King, Christopher A Esq UNQUALIFIED73Anna Fali
1025Mayumi F MorascaSpain2026-07-27Feiner Bros RENEWAL19Elwin Sharvill
1026Claire E RoysterIndia2026-08-12Rousseaux, Michael Esq UNQUALIFIED47Asiya Javayant
1027Wickens K WaycottArgentina2026-07-24Truhlar And Truhlar Attys NEW73Xuxue Feng
1028Emily D NickaJapan2026-07-28Commercial Press NEW47Amy Elsner
1029Octavia V AmigonItaly2026-08-03Commercial Press UNQUALIFIED55Onyama Limba
1030Leja E WhobreyUnited Kingdom2026-08-12Rangoni Of Florence PROPOSAL5Xuxue Feng
1031Aika T KolmetzJapan2026-07-24Chanay, Jeffrey A Esq PROPOSAL14Elwin Sharvill
1032Morrow Z PoquetteGermany2026-08-13King, Christopher A Esq PROPOSAL85Amy Elsner
1033Misaki G DarakjyRussia2026-07-19Truhlar And Truhlar Attys NEW20Ioni Bowcher
1034Mujtaba F ShinkoFrance2026-07-27Rousseaux, Michael Esq RENEWAL46Ivan Magalhaes
1035Aditya X ChuiIndia2026-08-03Commercial Press UNQUALIFIED75Ioni Bowcher
1036Johnson Y RoysterItaly2026-07-24Feltz Printing Service RENEWAL36Onyama Limba
1037Jeanfrancois W OstroskyAustralia2026-08-04Rangoni Of Florence PROPOSAL48Bernardo Dominic
1038Faith L GauchoBrazil2026-07-19Morlong Associates UNQUALIFIED22Asiya Javayant
1039Greenwood V MorascaUnited Kingdom2026-07-20Chanay, Jeffrey A Esq RENEWAL51Amy Elsner
1040Alejandro W NickaAustralia2026-07-31Chapman, Ross E Esq PROPOSAL77Ivan Magalhaes
1041Misaki O FerenczArgentina2026-07-28Feiner Bros NEW44Amy Elsner
1042Misaki X DarakjyRussia2026-07-22Chapman, Ross E Esq RENEWAL15Asiya Javayant
1043Ashley Y FlosiRussia2026-07-27Rangoni Of Florence NEW79Anna Fali
1044James Y WieserGermany2026-08-07Truhlar And Truhlar Attys PROPOSAL84Anna Fali
1045Maisha V DoeItaly2026-07-27Commercial Press QUALIFIED75Xuxue Feng
1046Leja N AmigonArgentina2026-08-01Rangoni Of Florence UNQUALIFIED90Asiya Javayant
1047Alejandro Z StensethUnited Kingdom2026-08-09Rousseaux, Michael Esq QUALIFIED0Stephen Shaw
1048Jeanfrancois D NestleBrazil2026-08-09Printing Dimensions UNQUALIFIED85Xuxue Feng
1049Silvio N GarufiFrance2026-08-04Dorl, James J Esq UNQUALIFIED79Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Julie C InouyeUnited KingdomOnyama Limba NEW
Arvin E PoquetteJapanAsiya Javayant UNQUALIFIED
Leon K RoysterCanadaAsiya Javayant NEGOTIATION
Isabel J PaprockiJapanIvan Magalhaes PROPOSAL
Jones K GillianRussiaAnna Fali UNQUALIFIED
Leon I DarakjySpainOnyama Limba NEW
Izzy H MorascaCanadaAsiya Javayant NEW
Sinclair U OstroskySpainElwin Sharvill QUALIFIED
Maria V StensethArgentinaAsiya Javayant PROPOSAL
Arvin P SaylorsBrazilBernardo Dominic NEGOTIATION
Tony K BowleyArgentinaBernardo Dominic NEGOTIATION
Greenwood R ChuiItalyIvan Magalhaes PROPOSAL
Mayumi U StockhamArgentinaOnyama Limba QUALIFIED
Alejandro H VocelkaJapanIvan Magalhaes RENEWAL
Izzy X TollnerItalyIoni Bowcher UNQUALIFIED
Ricardo B BologniaFranceOnyama Limba QUALIFIED
Aika A KuskoArgentinaIoni Bowcher RENEWAL
Rodrigues N GarufiCanadaXuxue Feng RENEWAL
Stacey A OldroydGermanyOnyama Limba RENEWAL
Ricardo F MorascaItalyAmy Elsner NEGOTIATION
Darci B GillianArgentinaAsiya Javayant PROPOSAL
Darci A MarrierBrazilXuxue Feng PROPOSAL
David Q MaletAustraliaXuxue Feng NEGOTIATION
Faith V WieserAustraliaXuxue Feng RENEWAL
Johnson O StockhamAustraliaXuxue Feng UNQUALIFIED
Aruna S GillianRussiaIvan Magalhaes RENEWAL
Aruna E DoeGermanyIvan Magalhaes QUALIFIED
Aruna U VenereAustraliaAmy Elsner NEGOTIATION
Munro I CaldareraFranceIvan Magalhaes NEW
Munro X ButtArgentinaStephen Shaw PROPOSAL
Stacey B FlosiJapanIoni Bowcher UNQUALIFIED
Munro Z WhobreyAustraliaXuxue Feng NEGOTIATION
Claire X NestleArgentinaAsiya Javayant RENEWAL
Arvin E WaycottRussiaXuxue Feng RENEWAL
Tony K RulapaughRussiaAnna Fali NEGOTIATION
Deepesh Z BriddickUnited KingdomOnyama Limba NEGOTIATION
Tony Z KolmetzCanadaOnyama Limba UNQUALIFIED
Antonio F InouyeRussiaXuxue Feng PROPOSAL
Misaki T GlickArgentinaXuxue Feng QUALIFIED
Murillo E BriddickGermanyXuxue Feng QUALIFIED
Maisha F DoeJapanStephen Shaw QUALIFIED
Nicolas A ChuiRussiaAsiya Javayant NEGOTIATION
Darci N PerinIndiaAnna Fali NEW
Claire U RoysterRussiaAnna Fali PROPOSAL
Smith X OldroydCanadaOnyama Limba PROPOSAL
Arvin B SlusarskiGermanyXuxue Feng NEGOTIATION
David V FlosiIndiaElwin Sharvill UNQUALIFIED
Alejandro U StockhamItalyAmy Elsner NEGOTIATION
Rodrigues A AlbaresSpainOnyama Limba PROPOSAL
Jeanfrancois R SlusarskiArgentinaAsiya Javayant PROPOSAL
Frozen Columns
Name
Kaitlin L Nestle
Greenwood N Ferencz
Emily P Dilliard
Octavia M Wieser
Silvio A Nestle
Tony W Caudy
Mujtaba Z Bolognia
Izzy L Morasca
Wickens Y Rim
Tony E Sergi
Kaitlin G Shinko
Kadeem B Stenseth
Clifford C Sergi
Mujtaba G Gillian
Darci A Slusarski
Alejandro G Venere
Adams R Waycott
Cody O Stockham
Salvatore W Chui
Costa X Kolmetz
Kadeem X Bolognia
Costa B Tollner
Maisha Z Wieser
Sinclair R Stenseth
Aditya J Venere
Claire T Rim
Ricardo V Foller
Silvio U Schemmer
Kadeem H Malet
Julie F Bowley
James F Ostrosky
Aika O Caudy
Greenwood F Slusarski
Rodrigues T Paprocki
Stacey U Perin
Darci K Perin
Claire S Schemmer
Claire K Royster
Mayumi Q Shinko
Chavez Z Iturbide
Antonio U Darakjy
Octavia C Butt
Claire S Vocelka
Maria N Caudy
Darci W Inouye
Wickens T Darakjy
Rodrigues K Royster
Jefferson P Nicka
Tony B Whobrey
Alejandro C Ostrosky
IdCountryDate
1000France2026-08-08
1001Japan2026-07-31
1002Japan2026-08-06
1003Japan2026-07-21
1004United Kingdom2026-07-25
1005Italy2026-08-07
1006Russia2026-08-11
1007France2026-08-11
1008Spain2026-07-30
1009Brazil2026-08-13
1010Brazil2026-08-08
1011Spain2026-08-14
1012France2026-07-30
1013Germany2026-08-10
1014France2026-08-12
1015Australia2026-08-12
1016Canada2026-08-02
1017India2026-08-05
1018Japan2026-07-30
1019Argentina2026-08-13
1020Canada2026-07-29
1021Germany2026-07-25
1022India2026-08-04
1023Brazil2026-08-03
1024Germany2026-07-18
1025Argentina2026-07-27
1026India2026-07-27
1027Japan2026-07-28
1028Brazil2026-07-28
1029Germany2026-08-06
1030Japan2026-07-26
1031Brazil2026-07-24
1032Japan2026-07-18
1033Spain2026-08-06
1034France2026-08-14
1035Russia2026-08-09
1036France2026-07-18
1037Canada2026-07-29
1038Canada2026-07-20
1039Australia2026-08-04
1040France2026-07-31
1041Spain2026-07-30
1042France2026-07-29
1043India2026-07-17
1044United Kingdom2026-08-08
1045Brazil2026-07-30
1046Brazil2026-07-20
1047Canada2026-08-10
1048Italy2026-08-06
1049Italy2026-08-08

On-Demand Data

NameIdCountryDate
Smith N Ferencz1000Russia2026-07-19
Leja R Royster1001United Kingdom2026-07-24
Arvin E Caldarera1002Japan2026-07-29
Isabel W Malet1003Australia2026-08-04
Octavia P Glick1004Italy2026-08-12
Juan K Waycott1005Russia2026-08-06
Aruna U Kolmetz1006Germany2026-07-22
Darci M Whobrey1007Italy2026-08-01
Maria D Oldroyd1008India2026-08-08
Salvatore V Amigon1009Spain2026-07-18
Maria Q Oldroyd1010United Kingdom2026-07-26
Ivar G Tollner1011Russia2026-08-04
Faith C Nicka1012Germany2026-07-19
Aruna X Ferencz1013Canada2026-07-22
Murillo V Venere1014Brazil2026-08-05
Claire E Vocelka1015Japan2026-08-04
Ivar O Garufi1016Argentina2026-07-28
Antonio T Poquette1017India2026-08-02
Darci V Ruta1018Spain2026-08-10
Ashley V Kolmetz1019Italy2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey L CaudyJapanStephen Shaw QUALIFIED
Maria M AlbaresIndiaElwin Sharvill PROPOSAL
Izzy I RimUnited KingdomStephen Shaw UNQUALIFIED
Johnson W MaletBrazilAmy Elsner PROPOSAL
Deepesh T CaudyCanadaXuxue Feng PROPOSAL
Jennifer J FollerRussiaIoni Bowcher UNQUALIFIED
Johnson S StockhamIndiaAsiya Javayant NEW
Ashley N ChuiItalyElwin Sharvill NEW
Adams O ButtSpainBernardo Dominic NEW
Claire M FlosiCanadaOnyama Limba UNQUALIFIED
Kaitlin N KuskoCanadaElwin Sharvill NEW
Ivar K PerinUnited KingdomElwin Sharvill NEGOTIATION
Aika U WieserJapanIoni Bowcher RENEWAL
Antonio C StensethItalyXuxue Feng QUALIFIED
Julie R FlosiRussiaAsiya Javayant QUALIFIED
Alejandro I SergiArgentinaIvan Magalhaes NEW
Ricardo H GillianSpainAnna Fali UNQUALIFIED
Jones W WaycottSpainStephen Shaw NEGOTIATION
Antonio R MaletItalyAmy Elsner RENEWAL
Adams P SaylorsGermanyOnyama Limba PROPOSAL
Wickens C ButtIndiaElwin Sharvill NEW
Rodrigues N CaudyFranceXuxue Feng RENEWAL
Wickens N RutaSpainAsiya Javayant NEGOTIATION
Stacey B OldroydJapanIoni Bowcher QUALIFIED
Tony X RutaIndiaXuxue Feng QUALIFIED
Aditya H PaprockiBrazilIoni Bowcher QUALIFIED
Jones G NickaItalyStephen Shaw PROPOSAL
Francesco V RulapaughSpainIoni Bowcher QUALIFIED
Octavia O CaldareraItalyAsiya Javayant QUALIFIED
Julie A VenereCanadaIoni Bowcher NEW
Kadeem N WieserIndiaBernardo Dominic UNQUALIFIED
Octavia K GillianArgentinaStephen Shaw PROPOSAL
Johnson Y StensethBrazilXuxue Feng NEW
Misaki K WaycottCanadaOnyama Limba PROPOSAL
Aditya Y PoquetteJapanIvan Magalhaes QUALIFIED
Ricardo W FlosiIndiaStephen Shaw RENEWAL
Greenwood J ButtUnited KingdomAmy Elsner UNQUALIFIED
Izzy J MorascaCanadaStephen Shaw NEGOTIATION
Munro M PaprockiCanadaAmy Elsner UNQUALIFIED
Leon R CaldareraJapanAsiya Javayant 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>