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
Rodrigues C RoysterBrazilAmy Elsner NEW
Leja A FerenczItalyXuxue Feng NEW
Antonio J GillianIndiaIvan Magalhaes NEGOTIATION
Darci C KuskoRussiaAnna Fali PROPOSAL
Ivar J AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Wickens A SergiIndiaAnna Fali NEGOTIATION
Ashley B RimIndiaElwin Sharvill PROPOSAL
Silvio I PaprockiArgentinaOnyama Limba RENEWAL
Faith I CampainSpainOnyama Limba QUALIFIED
Jennifer Z NestleItalyBernardo Dominic NEGOTIATION
Jones I BriddickGermanyAmy Elsner UNQUALIFIED
Smith Q ButtBrazilElwin Sharvill UNQUALIFIED
Morrow Y ChuiBrazilAnna Fali UNQUALIFIED
Rodrigues S GlickGermanyXuxue Feng UNQUALIFIED
Stacey D RutaItalyAsiya Javayant PROPOSAL
Johnson U AmigonAustraliaXuxue Feng PROPOSAL
Claire F RimIndiaIoni Bowcher UNQUALIFIED
Clifford T BowleyCanadaAmy Elsner RENEWAL
Smith I GarufiArgentinaIoni Bowcher NEW
Kadeem F CampainItalyOnyama Limba RENEWAL
Antonio S MarrierUnited KingdomStephen Shaw NEGOTIATION
Maria A CaldareraAustraliaAsiya Javayant RENEWAL
David Y MarrierGermanyBernardo Dominic QUALIFIED
Chavez E BowleyFranceOnyama Limba QUALIFIED
Sinclair U PaprockiCanadaIoni Bowcher NEGOTIATION
Salvatore V ChuiUnited KingdomBernardo Dominic NEGOTIATION
Deepesh V PerinIndiaAsiya Javayant NEGOTIATION
Salvatore X MacleadSpainElwin Sharvill NEW
Antonio S WaycottBrazilOnyama Limba RENEWAL
Silvio A IturbideIndiaIoni Bowcher PROPOSAL
Emily J GauchoIndiaIvan Magalhaes UNQUALIFIED
Juan T InouyeSpainIvan Magalhaes RENEWAL
Stacey U RimCanadaElwin Sharvill QUALIFIED
Aditya Y DilliardUnited KingdomAnna Fali NEW
Francesco Q CampainUnited KingdomAmy Elsner UNQUALIFIED
Cody Q CampainSpainAmy Elsner NEGOTIATION
Emily U CaudyBrazilAsiya Javayant UNQUALIFIED
Arvin E InouyeArgentinaIoni Bowcher PROPOSAL
Johnson G BriddickSpainElwin Sharvill NEGOTIATION
Francesco C PaprockiCanadaOnyama Limba RENEWAL
Jefferson R RimAustraliaBernardo Dominic NEW
Juan V FigeroaIndiaBernardo Dominic UNQUALIFIED
Silvio P PoquetteArgentinaAmy Elsner RENEWAL
Munro O OstroskyGermanyStephen Shaw NEW
Aruna A CaudyArgentinaIoni Bowcher RENEWAL
Tony G SlusarskiSpainIvan Magalhaes PROPOSAL
Izzy Y SaylorsRussiaStephen Shaw NEW
Munro T FerenczAustraliaElwin Sharvill NEW
Emily S WaycottArgentinaAsiya Javayant RENEWAL
Costa O GillianAustraliaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin I BologniaItalyIvan Magalhaes UNQUALIFIED
Kadeem C PoquetteSpainBernardo Dominic NEW
Maisha W DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Nicolas H PerinFranceIvan Magalhaes NEW
Ivar G FigeroaGermanyAnna Fali NEW
Darci O BologniaBrazilBernardo Dominic NEW
Jeanfrancois M CaldareraSpainIvan Magalhaes PROPOSAL
Tony M ShinkoArgentinaIoni Bowcher UNQUALIFIED
Misaki X KolmetzAustraliaAsiya Javayant NEW
Adams C StockhamIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco P MaletCanada2026-07-22Buckley Miller Wright QUALIFIED86Bernardo Dominic
1001Jefferson O PoquetteJapan2026-07-25Feltz Printing Service NEW47Xuxue Feng
1002Misaki T BriddickJapan2026-07-19Rousseaux, Michael Esq QUALIFIED56Elwin Sharvill
1003Antonio Y OstroskySpain2026-07-03Feltz Printing Service NEGOTIATION6Ioni Bowcher
1004Smith B MorascaFrance2026-07-28Chemel, James L Cpa NEW79Amy Elsner
1005Jeanfrancois U MaletArgentina2026-07-18Chapman, Ross E Esq NEGOTIATION71Asiya Javayant
1006Emily O DoeItaly2026-07-28Rousseaux, Michael Esq NEGOTIATION42Elwin Sharvill
1007Johnson W TollnerBrazil2026-06-30Commercial Press NEGOTIATION95Amy Elsner
1008Darci P BologniaUnited Kingdom2026-07-25Benton, John B Jr RENEWAL60Onyama Limba
1009Aika Y DarakjyFrance2026-07-18Feltz Printing Service RENEWAL15Ivan Magalhaes
1010Izzy S RutaFrance2026-06-29Morlong Associates PROPOSAL59Elwin Sharvill
1011Jennifer D SergiRussia2026-07-07Feltz Printing Service PROPOSAL88Amy Elsner
1012Sinclair X ButtItaly2026-07-10Printing Dimensions PROPOSAL37Bernardo Dominic
1013Aditya X OstroskyArgentina2026-07-15Feltz Printing Service RENEWAL99Ioni Bowcher
1014Leon R BriddickSpain2026-07-16Dorl, James J Esq UNQUALIFIED92Ioni Bowcher
1015Cody N VocelkaCanada2026-07-19Rangoni Of Florence NEW86Amy Elsner
1016Tony W RimUnited Kingdom2026-07-27Truhlar And Truhlar Attys RENEWAL26Ivan Magalhaes
1017Munro O PoquetteIndia2026-07-16Benton, John B Jr PROPOSAL62Asiya Javayant
1018Julie H FollerBrazil2026-07-02Printing Dimensions RENEWAL29Asiya Javayant
1019Faith P VocelkaFrance2026-07-12Dorl, James J Esq RENEWAL44Asiya Javayant
1020Clifford R MorascaUnited Kingdom2026-07-18King, Christopher A Esq UNQUALIFIED68Ivan Magalhaes
1021Arvin W TollnerUnited Kingdom2026-07-15Rousseaux, Michael Esq RENEWAL42Asiya Javayant
1022Maria D GlickUnited Kingdom2026-07-23Rangoni Of Florence NEW31Bernardo Dominic
1023Stacey Q FerenczUnited Kingdom2026-07-17Feiner Bros QUALIFIED46Ioni Bowcher
1024Ashley O GauchoSpain2026-07-25Truhlar And Truhlar Attys NEGOTIATION11Anna Fali
1025Leon B MacleadFrance2026-07-02Chanay, Jeffrey A Esq QUALIFIED57Elwin Sharvill
1026Cody Q MarrierJapan2026-07-17Rousseaux, Michael Esq QUALIFIED43Ivan Magalhaes
1027James P VenereItaly2026-07-01Printing Dimensions QUALIFIED33Xuxue Feng
1028Octavia R VenereCanada2026-07-06Chapman, Ross E Esq NEW13Ivan Magalhaes
1029Antonio J DoeItaly2026-07-16Dorl, James J Esq RENEWAL14Stephen Shaw
1030Claire X SlusarskiIndia2026-07-12Chanay, Jeffrey A Esq PROPOSAL82Ivan Magalhaes
1031Julie J RimArgentina2026-07-10Dorl, James J Esq UNQUALIFIED79Asiya Javayant
1032Leon B CaudyJapan2026-07-20Chapman, Ross E Esq NEW49Onyama Limba
1033Darci J VenereUnited Kingdom2026-07-02Feiner Bros QUALIFIED90Stephen Shaw
1034Maisha E GlickArgentina2026-07-13Chemel, James L Cpa UNQUALIFIED18Amy Elsner
1035Murillo Z DarakjyItaly2026-07-15Chanay, Jeffrey A Esq NEGOTIATION29Elwin Sharvill
1036Greenwood U NickaItaly2026-07-21Commercial Press NEW93Ivan Magalhaes
1037Murillo W RutaArgentina2026-06-29King, Christopher A Esq UNQUALIFIED96Ivan Magalhaes
1038Alejandro X RutaFrance2026-07-24Truhlar And Truhlar Attys NEW9Asiya Javayant
1039Smith M GlickFrance2026-06-30Benton, John B Jr QUALIFIED76Bernardo Dominic
1040Kadeem E BologniaCanada2026-07-13Printing Dimensions UNQUALIFIED38Asiya Javayant
1041Claire R NickaGermany2026-07-13King, Christopher A Esq PROPOSAL15Onyama Limba
1042Kadeem X PerinItaly2026-07-14Feiner Bros UNQUALIFIED10Ioni Bowcher
1043David U FollerIndia2026-07-14Dorl, James J Esq PROPOSAL77Bernardo Dominic
1044Claire N AmigonArgentina2026-07-27Chapman, Ross E Esq RENEWAL24Amy Elsner
1045Darci D BriddickAustralia2026-07-13Chapman, Ross E Esq NEW18Asiya Javayant
1046Chavez B RutaCanada2026-07-09Buckley Miller Wright NEGOTIATION30Xuxue Feng
1047Antonio Y StensethRussia2026-07-24Buckley Miller Wright QUALIFIED76Asiya Javayant
1048Maisha J GarufiAustralia2026-07-06Chanay, Jeffrey A Esq RENEWAL97Anna Fali
1049Ricardo L NickaBrazil2026-07-08Rousseaux, Michael Esq RENEWAL58Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mayumi R ShinkoItalyStephen Shaw QUALIFIED
Wickens U KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore G SergiRussiaAsiya Javayant NEGOTIATION
Mayumi N SergiBrazilBernardo Dominic PROPOSAL
Silvio C KuskoFranceXuxue Feng QUALIFIED
Smith X MorascaGermanyAsiya Javayant UNQUALIFIED
Aruna A RulapaughFranceAnna Fali NEGOTIATION
Jefferson D RoysterBrazilElwin Sharvill QUALIFIED
Arvin W TollnerArgentinaOnyama Limba NEGOTIATION
Maisha C FlosiSpainAnna Fali PROPOSAL
Adams F CampainFranceAmy Elsner RENEWAL
Salvatore M MaletItalyAmy Elsner NEGOTIATION
Adams D GarufiRussiaStephen Shaw NEW
Stacey Z PoquetteGermanyOnyama Limba PROPOSAL
Murillo S WaycottJapanAmy Elsner RENEWAL
Stacey F FlosiSpainXuxue Feng NEW
Emily Z ShinkoBrazilOnyama Limba NEGOTIATION
Leja M CaudyItalyIoni Bowcher NEGOTIATION
Emily A FerenczCanadaIoni Bowcher QUALIFIED
Francesco S WieserRussiaOnyama Limba NEW
Aditya C VocelkaFranceXuxue Feng PROPOSAL
Leon N CaldareraRussiaOnyama Limba NEGOTIATION
Ivar T BriddickAustraliaBernardo Dominic PROPOSAL
Murillo I KolmetzGermanyStephen Shaw UNQUALIFIED
Leon R CampainItalyXuxue Feng PROPOSAL
Jennifer D RutaAustraliaIvan Magalhaes NEW
Arvin I PerinUnited KingdomIvan Magalhaes NEW
Murillo K PaprockiRussiaAnna Fali PROPOSAL
Alejandro V NestleFranceAsiya Javayant QUALIFIED
Antonio O RimArgentinaXuxue Feng RENEWAL
Aruna E StockhamRussiaIvan Magalhaes RENEWAL
Kaitlin I RimGermanyElwin Sharvill NEW
Maisha Z BologniaItalyAnna Fali NEW
Kaitlin N ButtItalyBernardo Dominic UNQUALIFIED
Isabel Z SaylorsIndiaAnna Fali NEGOTIATION
Antonio X PoquetteAustraliaIoni Bowcher NEGOTIATION
Jeanfrancois Q ShinkoIndiaOnyama Limba NEGOTIATION
Smith U RimSpainIoni Bowcher NEGOTIATION
Rodrigues I CaldareraItalyBernardo Dominic UNQUALIFIED
Rodrigues X MacleadRussiaIoni Bowcher NEW
Rodrigues E CaldareraGermanyOnyama Limba NEGOTIATION
Aditya K WhobreyFranceAnna Fali RENEWAL
Cody D SergiBrazilElwin Sharvill NEGOTIATION
Darci T MarrierIndiaAmy Elsner NEGOTIATION
Jennifer A InouyeItalyStephen Shaw UNQUALIFIED
Murillo R PoquetteCanadaOnyama Limba NEW
Aruna W RulapaughFranceStephen Shaw QUALIFIED
Juan P IturbideJapanXuxue Feng QUALIFIED
Arvin K RoysterArgentinaBernardo Dominic PROPOSAL
Maisha B PerinGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Nicolas C Poquette
Salvatore T Royster
Izzy E Royster
Isabel D Ostrosky
Johnson U Figeroa
Leja R Perin
Darci R Caudy
Julie F Inouye
Leja I Foller
Johnson I Flosi
Salvatore Z Chui
Chavez J Sergi
Rodrigues N Vocelka
Kaitlin E Shinko
Kadeem X Ostrosky
Claire P Briddick
Faith B Kolmetz
Aika M Iturbide
Izzy V Tollner
Leja R Slusarski
Emily K Amigon
Ivar Q Malet
Stacey J Gaucho
Smith S Stenseth
Sinclair A Rulapaugh
Cody J Flosi
Salvatore S Campain
Leja D Campain
Aditya Q Nestle
Faith S Darakjy
Munro S Venere
Stacey P Morasca
Arvin A Doe
Cody O Stockham
Salvatore D Nestle
Adams T Gaucho
Johnson V Stockham
Tony Y Marrier
Jones W Wieser
Jones A Poquette
Francesco A Albares
Chavez H Inouye
Darci N Stenseth
Mujtaba I Morasca
Jeanfrancois T Flosi
Faith N Briddick
Ashley F Amigon
Leon R Marrier
Jones P Nestle
Adams L Nicka
IdCountryDate
1000Russia2026-07-26
1001France2026-07-20
1002India2026-07-18
1003Japan2026-07-04
1004Argentina2026-07-05
1005India2026-07-22
1006Canada2026-07-18
1007Germany2026-07-26
1008Australia2026-07-04
1009Italy2026-07-20
1010Canada2026-07-21
1011Spain2026-07-20
1012Japan2026-07-06
1013India2026-07-09
1014Brazil2026-07-12
1015Italy2026-07-05
1016Japan2026-07-19
1017Argentina2026-07-05
1018Spain2026-07-05
1019France2026-07-11
1020Argentina2026-07-07
1021Spain2026-07-19
1022Germany2026-07-10
1023Italy2026-07-07
1024Italy2026-07-09
1025France2026-07-10
1026Italy2026-07-12
1027Germany2026-07-24
1028India2026-07-02
1029India2026-07-18
1030Brazil2026-07-19
1031France2026-07-24
1032France2026-07-19
1033Canada2026-07-16
1034United Kingdom2026-07-18
1035United Kingdom2026-07-12
1036Italy2026-07-17
1037Russia2026-07-22
1038Argentina2026-07-14
1039Brazil2026-07-11
1040India2026-07-01
1041Brazil2026-06-30
1042Japan2026-07-08
1043Brazil2026-07-01
1044Australia2026-07-10
1045Australia2026-07-11
1046Argentina2026-07-13
1047Russia2026-07-19
1048Canada2026-07-06
1049Italy2026-07-05

On-Demand Data

NameIdCountryDate
Greenwood R Paprocki1000Russia2026-07-01
Julie Q Caudy1001Italy2026-07-27
Leja A Malet1002Japan2026-07-15
Maria U Flosi1003Argentina2026-07-16
Nicolas T Morasca1004Argentina2026-07-13
Kadeem T Albares1005Spain2026-07-28
Costa P Amigon1006United Kingdom2026-07-19
Alejandro P Poquette1007Russia2026-07-18
Ivar B Slusarski1008Italy2026-07-27
Leon R Malet1009Italy2026-07-21
Murillo O Kusko1010India2026-07-23
Jefferson V Flosi1011France2026-07-27
Ivar A Nicka1012Brazil2026-07-10
Sinclair Q Ferencz1013Russia2026-07-16
Leja L Chui1014Germany2026-07-23
Mayumi Y Rim1015Argentina2026-07-03
Alejandro S Bowley1016India2026-06-29
Faith K Royster1017United Kingdom2026-07-08
Leja K Bolognia1018United Kingdom2026-07-09
Leon S Whobrey1019Italy2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi I MaletAustraliaStephen Shaw RENEWAL
Silvio N BriddickFranceIoni Bowcher UNQUALIFIED
Octavia E DarakjyFranceIvan Magalhaes NEW
Chavez E WieserRussiaBernardo Dominic RENEWAL
Misaki C RutaArgentinaAsiya Javayant QUALIFIED
Tony M MaletAustraliaOnyama Limba NEGOTIATION
David G SergiRussiaXuxue Feng NEGOTIATION
Kaitlin O RulapaughFranceIvan Magalhaes RENEWAL
Jennifer Q RimJapanAsiya Javayant RENEWAL
Costa Q CampainItalyElwin Sharvill UNQUALIFIED
Adams Z RutaCanadaXuxue Feng NEGOTIATION
Misaki J OstroskyCanadaXuxue Feng NEGOTIATION
Mayumi M MaletFranceXuxue Feng NEW
David S PerinIndiaAsiya Javayant QUALIFIED
Munro N KuskoJapanBernardo Dominic PROPOSAL
Leja X PerinArgentinaElwin Sharvill NEW
Darci E BologniaRussiaIoni Bowcher PROPOSAL
David Z StensethBrazilElwin Sharvill NEW
Maisha M ShinkoSpainAnna Fali QUALIFIED
James N FollerItalyIoni Bowcher RENEWAL
Costa W DoeUnited KingdomElwin Sharvill UNQUALIFIED
Munro S MorascaFranceAnna Fali UNQUALIFIED
Julie R WieserCanadaXuxue Feng RENEWAL
Alejandro U SlusarskiFranceIvan Magalhaes UNQUALIFIED
Octavia F RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Sinclair Q InouyeIndiaAmy Elsner QUALIFIED
Claire W CaldareraJapanOnyama Limba PROPOSAL
Octavia R PerinSpainXuxue Feng NEW
Kadeem D ChuiArgentinaOnyama Limba PROPOSAL
Munro S MaletBrazilAsiya Javayant UNQUALIFIED
Murillo Y RimBrazilIoni Bowcher QUALIFIED
Mujtaba F FerenczJapanAnna Fali QUALIFIED
Izzy K MacleadItalyAsiya Javayant RENEWAL
Leja H KuskoIndiaAsiya Javayant QUALIFIED
James T CaudyGermanyOnyama Limba QUALIFIED
Mayumi V CampainGermanyAmy Elsner NEW
Aditya U AlbaresUnited KingdomAmy Elsner PROPOSAL
Wickens H FollerAustraliaXuxue Feng QUALIFIED
Ashley B CaudyCanadaStephen Shaw QUALIFIED
Maisha D RimItalyAsiya Javayant 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>