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
David T BowleyAustraliaStephen Shaw RENEWAL
Darci V MarrierUnited KingdomAmy Elsner PROPOSAL
Kadeem F WieserGermanyAsiya Javayant QUALIFIED
Tony R BologniaSpainStephen Shaw NEW
Kaitlin S RulapaughFranceAsiya Javayant QUALIFIED
Rodrigues G PaprockiAustraliaIvan Magalhaes QUALIFIED
Aika R StensethSpainAmy Elsner NEW
Aditya B StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Maria T RulapaughArgentinaBernardo Dominic RENEWAL
Misaki S WaycottItalyAmy Elsner RENEWAL
Johnson Q DoeCanadaElwin Sharvill NEGOTIATION
Kadeem N GlickIndiaIoni Bowcher UNQUALIFIED
Johnson M WaycottSpainAmy Elsner QUALIFIED
Alejandro M GarufiSpainIoni Bowcher NEGOTIATION
Kadeem A GauchoFranceAmy Elsner UNQUALIFIED
Rodrigues Q VenereGermanyAmy Elsner NEW
Nicolas U MacleadItalyAmy Elsner NEGOTIATION
Izzy T InouyeCanadaBernardo Dominic UNQUALIFIED
Aditya I ShinkoGermanyIoni Bowcher NEGOTIATION
Cody J PaprockiCanadaXuxue Feng RENEWAL
Aika N StensethIndiaOnyama Limba UNQUALIFIED
Ashley L ChuiIndiaBernardo Dominic UNQUALIFIED
Kaitlin V SlusarskiRussiaOnyama Limba NEGOTIATION
Salvatore T FollerSpainIoni Bowcher RENEWAL
Ivar M DoeCanadaBernardo Dominic QUALIFIED
Rodrigues Y VenereRussiaElwin Sharvill QUALIFIED
Misaki S GauchoBrazilXuxue Feng NEW
Misaki F SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Clifford W StensethIndiaIoni Bowcher RENEWAL
Leon O NickaRussiaAnna Fali QUALIFIED
David A FlosiFranceOnyama Limba UNQUALIFIED
Rodrigues K BowleyFranceBernardo Dominic UNQUALIFIED
Stacey K FigeroaBrazilXuxue Feng RENEWAL
Arvin Z NestleRussiaStephen Shaw PROPOSAL
Ashley L BologniaArgentinaAmy Elsner NEW
Arvin P FigeroaAustraliaElwin Sharvill NEGOTIATION
Antonio O BriddickAustraliaBernardo Dominic UNQUALIFIED
Faith E WhobreyIndiaBernardo Dominic NEGOTIATION
Aruna V MorascaSpainOnyama Limba UNQUALIFIED
Maisha L MarrierSpainXuxue Feng NEW
Smith Q WhobreyItalyElwin Sharvill RENEWAL
Costa X CaudyAustraliaAsiya Javayant RENEWAL
Salvatore C GarufiArgentinaIoni Bowcher NEW
Alejandro R GarufiAustraliaElwin Sharvill NEW
Wickens Y MaletJapanAnna Fali UNQUALIFIED
Arvin X FerenczFranceIvan Magalhaes QUALIFIED
Jennifer I WaycottArgentinaStephen Shaw UNQUALIFIED
Nicolas R AmigonUnited KingdomOnyama Limba QUALIFIED
Cody L ChuiRussiaElwin Sharvill RENEWAL
Jennifer C VenereArgentinaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria Z MarrierAustraliaIoni Bowcher PROPOSAL
Smith D FlosiAustraliaBernardo Dominic RENEWAL
Wickens N DarakjyCanadaBernardo Dominic QUALIFIED
David A WhobreyRussiaAnna Fali UNQUALIFIED
Isabel M AlbaresRussiaStephen Shaw QUALIFIED
Jefferson L RoysterGermanyIvan Magalhaes QUALIFIED
Maisha T RutaItalyAmy Elsner NEGOTIATION
Aditya F WaycottSpainIoni Bowcher NEW
James F RulapaughItalyBernardo Dominic RENEWAL
Ivar R VocelkaJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith E MorascaArgentina2025-04-10Buckley Miller Wright RENEWAL91Onyama Limba
1001Johnson M CaudyIndia2025-04-15Feiner Bros RENEWAL89Anna Fali
1002Antonio W PaprockiItaly2025-04-11Commercial Press UNQUALIFIED18Ivan Magalhaes
1003Jefferson E SaylorsArgentina2025-04-02Rangoni Of Florence NEW65Asiya Javayant
1004Izzy L SaylorsCanada2025-03-31Morlong Associates UNQUALIFIED77Xuxue Feng
1005Julie Z GillianRussia2025-04-29Chemel, James L Cpa NEGOTIATION47Amy Elsner
1006Emily F MarrierItaly2025-04-25Rangoni Of Florence UNQUALIFIED40Bernardo Dominic
1007Greenwood D InouyeCanada2025-04-22Truhlar And Truhlar Attys UNQUALIFIED48Amy Elsner
1008Alejandro Y SchemmerFrance2025-04-08Morlong Associates NEGOTIATION5Ioni Bowcher
1009Ivar J MacleadCanada2025-04-28Feiner Bros RENEWAL93Xuxue Feng
1010Wickens G WieserItaly2025-04-01Feltz Printing Service NEGOTIATION88Stephen Shaw
1011Aruna Z CaudyItaly2025-04-14King, Christopher A Esq NEGOTIATION78Asiya Javayant
1012Johnson J StockhamAustralia2025-04-19Dorl, James J Esq UNQUALIFIED27Bernardo Dominic
1013Aruna A CaldareraGermany2025-04-29Morlong Associates NEGOTIATION30Ioni Bowcher
1014Sinclair Q ButtGermany2025-04-29Feiner Bros PROPOSAL12Ioni Bowcher
1015Alejandro K PerinJapan2025-04-13Rousseaux, Michael Esq PROPOSAL46Onyama Limba
1016Maria U NestleAustralia2025-04-14Morlong Associates NEGOTIATION41Asiya Javayant
1017Murillo L AlbaresArgentina2025-04-25Chapman, Ross E Esq NEW17Anna Fali
1018Chavez U InouyeCanada2025-04-18Printing Dimensions NEGOTIATION30Elwin Sharvill
1019Wickens L PaprockiFrance2025-04-18Rangoni Of Florence NEW60Stephen Shaw
1020Nicolas V GauchoRussia2025-04-24Dorl, James J Esq PROPOSAL83Ioni Bowcher
1021Nicolas L MorascaRussia2025-04-26Dorl, James J Esq UNQUALIFIED46Ioni Bowcher
1022Aditya H MaletCanada2025-04-18King, Christopher A Esq PROPOSAL25Asiya Javayant
1023Rodrigues G NickaAustralia2025-04-08Truhlar And Truhlar Attys QUALIFIED26Stephen Shaw
1024Munro U ChuiJapan2025-04-05Truhlar And Truhlar Attys RENEWAL28Amy Elsner
1025Julie F SaylorsBrazil2025-04-02Morlong Associates UNQUALIFIED3Amy Elsner
1026Maria U CaldareraIndia2025-04-19Chapman, Ross E Esq QUALIFIED8Xuxue Feng
1027Aruna P RutaJapan2025-04-25Buckley Miller Wright UNQUALIFIED14Bernardo Dominic
1028Faith J OldroydJapan2025-04-14Chanay, Jeffrey A Esq UNQUALIFIED8Amy Elsner
1029Jones K CaldareraRussia2025-04-22Printing Dimensions QUALIFIED85Bernardo Dominic
1030Salvatore Q SergiArgentina2025-03-31Printing Dimensions NEGOTIATION87Stephen Shaw
1031Juan B KolmetzAustralia2025-04-07Morlong Associates NEW17Onyama Limba
1032Emily N NestleIndia2025-04-05Dorl, James J Esq UNQUALIFIED85Onyama Limba
1033Mujtaba U ButtIndia2025-04-11Buckley Miller Wright NEW50Ivan Magalhaes
1034Francesco R PoquetteCanada2025-04-17Chapman, Ross E Esq UNQUALIFIED63Stephen Shaw
1035Darci B MarrierSpain2025-04-22Buckley Miller Wright NEW7Ioni Bowcher
1036Jeanfrancois I TollnerGermany2025-04-13King, Christopher A Esq UNQUALIFIED82Ioni Bowcher
1037Ricardo I SaylorsSpain2025-04-01Chapman, Ross E Esq NEGOTIATION19Onyama Limba
1038Wickens S KuskoGermany2025-04-15King, Christopher A Esq RENEWAL94Elwin Sharvill
1039Jeanfrancois L MaletAustralia2025-04-18Dorl, James J Esq PROPOSAL39Asiya Javayant
1040Greenwood A KuskoItaly2025-04-19Feiner Bros QUALIFIED29Stephen Shaw
1041Costa D RutaCanada2025-04-10Rousseaux, Michael Esq PROPOSAL43Bernardo Dominic
1042Aditya K FollerJapan2025-04-28Truhlar And Truhlar Attys UNQUALIFIED5Ivan Magalhaes
1043James V PerinSpain2025-04-22Rousseaux, Michael Esq NEW60Elwin Sharvill
1044Faith K WaycottUnited Kingdom2025-04-18Buckley Miller Wright RENEWAL80Onyama Limba
1045Stacey Q SlusarskiFrance2025-04-16Buckley Miller Wright RENEWAL65Ioni Bowcher
1046Maisha U OldroydRussia2025-04-12Feiner Bros PROPOSAL2Elwin Sharvill
1047Costa Z StockhamAustralia2025-04-29Chanay, Jeffrey A Esq NEW4Amy Elsner
1048Juan N BriddickCanada2025-04-03Buckley Miller Wright QUALIFIED10Asiya Javayant
1049Claire U FigeroaGermany2025-04-15Rousseaux, Michael Esq NEGOTIATION46Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez J FigeroaFranceIvan Magalhaes RENEWAL
Kaitlin D RimAustraliaXuxue Feng RENEWAL
Jeanfrancois L MaletJapanOnyama Limba PROPOSAL
Aruna C PerinItalyXuxue Feng QUALIFIED
Aruna Y MarrierAustraliaElwin Sharvill NEGOTIATION
Mayumi P ChuiRussiaAmy Elsner NEW
Ricardo K TollnerAustraliaStephen Shaw PROPOSAL
Nicolas A MaletUnited KingdomIoni Bowcher NEGOTIATION
Darci N BriddickItalyIvan Magalhaes NEW
Sinclair H CaudySpainAmy Elsner QUALIFIED
Chavez M PaprockiJapanIvan Magalhaes RENEWAL
Kaitlin P BologniaArgentinaIoni Bowcher PROPOSAL
Mayumi S CaldareraArgentinaXuxue Feng QUALIFIED
Isabel Q BologniaBrazilAsiya Javayant PROPOSAL
Mayumi P SchemmerIndiaElwin Sharvill UNQUALIFIED
James Q GarufiRussiaStephen Shaw UNQUALIFIED
Deepesh W RulapaughSpainOnyama Limba PROPOSAL
Costa Q DoeItalyIoni Bowcher NEW
Maria A VenereAustraliaAnna Fali UNQUALIFIED
Ricardo D AmigonCanadaAnna Fali QUALIFIED
Greenwood R GillianItalyAsiya Javayant QUALIFIED
Aditya V MaletIndiaStephen Shaw UNQUALIFIED
Cody E ChuiItalyAsiya Javayant RENEWAL
Isabel O GauchoBrazilElwin Sharvill RENEWAL
Alejandro Q GauchoAustraliaBernardo Dominic UNQUALIFIED
Arvin M SlusarskiJapanAnna Fali UNQUALIFIED
Nicolas C RoysterFranceIoni Bowcher NEW
Mujtaba K DoeIndiaAsiya Javayant UNQUALIFIED
Julie M RutaBrazilStephen Shaw PROPOSAL
Misaki Z BriddickBrazilAnna Fali NEW
Sinclair M DarakjyIndiaIvan Magalhaes RENEWAL
Aditya J CampainIndiaAmy Elsner UNQUALIFIED
Maria A BriddickFranceIvan Magalhaes QUALIFIED
Jones Y MarrierJapanIoni Bowcher RENEWAL
Greenwood D FollerFranceBernardo Dominic NEGOTIATION
James Z DilliardSpainAnna Fali RENEWAL
Nicolas V ShinkoUnited KingdomAmy Elsner NEGOTIATION
Maria K PerinItalyElwin Sharvill NEGOTIATION
Kaitlin A PerinBrazilBernardo Dominic NEW
Deepesh D BologniaJapanElwin Sharvill NEGOTIATION
Isabel B OldroydIndiaOnyama Limba QUALIFIED
Isabel O OstroskyItalyAsiya Javayant NEW
Greenwood E MorascaBrazilIoni Bowcher UNQUALIFIED
Costa D VenereJapanAsiya Javayant NEW
Faith S SergiGermanyAnna Fali NEW
Silvio O FerenczRussiaAsiya Javayant NEW
Maisha A MaletJapanAnna Fali UNQUALIFIED
Smith A WieserCanadaStephen Shaw QUALIFIED
Silvio F GillianJapanIvan Magalhaes UNQUALIFIED
Chavez K ShinkoRussiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Murillo P Foller
Silvio C Sergi
Maria Y Inouye
Murillo N Gillian
Deepesh O Glick
Costa B Wieser
Leon F Bolognia
Izzy C Ruta
Francesco C Wieser
Wickens N Bolognia
Maria Y Darakjy
Chavez Z Doe
Emily Y Chui
Julie D Vocelka
Ivar O Kusko
Misaki J Dilliard
Emily Q Wieser
Darci N Nicka
James M Wieser
Nicolas R Bowley
Rodrigues T Albares
Morrow G Gaucho
Claire F Bowley
Murillo E Perin
Wickens I Chui
Ivar T Saylors
Alejandro H Iturbide
Nicolas A Ferencz
Stacey I Stockham
Leja X Flosi
Aika N Ruta
David W Ruta
Mujtaba U Albares
Arvin P Gaucho
Ivar V Whobrey
Smith K Tollner
Munro N Saylors
Kadeem Z Schemmer
Greenwood V Chui
Morrow A Caudy
Stacey U Inouye
Ricardo Q Flosi
Nicolas F Figeroa
Salvatore H Rim
Clifford B Malet
Emily R Albares
David V Doe
Emily M Doe
Leja L Campain
Rodrigues F Bowley
IdCountryDate
1000United Kingdom2025-04-23
1001United Kingdom2025-04-27
1002United Kingdom2025-04-20
1003Canada2025-04-05
1004United Kingdom2025-04-12
1005Italy2025-04-23
1006Germany2025-04-04
1007Argentina2025-04-28
1008India2025-04-11
1009United Kingdom2025-04-02
1010Canada2025-04-05
1011Argentina2025-04-25
1012Japan2025-04-05
1013Brazil2025-04-28
1014Argentina2025-04-27
1015United Kingdom2025-04-03
1016Australia2025-04-03
1017Japan2025-04-26
1018Italy2025-04-28
1019Japan2025-04-07
1020India2025-04-22
1021Canada2025-04-15
1022India2025-04-28
1023United Kingdom2025-04-25
1024Italy2025-04-25
1025Spain2025-04-29
1026Italy2025-04-06
1027Germany2025-04-19
1028Spain2025-04-05
1029Russia2025-04-24
1030India2025-03-31
1031Spain2025-04-26
1032Russia2025-04-22
1033United Kingdom2025-04-17
1034Germany2025-04-21
1035Canada2025-04-14
1036India2025-04-21
1037Australia2025-04-21
1038Brazil2025-04-13
1039Brazil2025-04-28
1040Japan2025-04-11
1041Japan2025-04-10
1042Japan2025-04-10
1043Argentina2025-04-12
1044India2025-03-31
1045France2025-04-23
1046Germany2025-04-04
1047Brazil2025-04-09
1048Argentina2025-04-14
1049Germany2025-04-03

On-Demand Data

NameIdCountryDate
Kaitlin G Oldroyd1000Germany2025-04-28
Emily M Foller1001Argentina2025-04-23
Darci X Briddick1002Canada2025-04-28
Aika O Rim1003Italy2025-04-07
Sinclair Q Kolmetz1004Canada2025-04-03
Adams O Bolognia1005India2025-04-14
Costa K Briddick1006Germany2025-04-04
Ivar A Malet1007Russia2025-04-17
Faith Z Flosi1008Germany2025-04-02
Claire Y Rim1009Japan2025-04-15
Munro K Perin1010Spain2025-04-12
Smith J Butt1011Italy2025-04-04
Chavez S Iturbide1012Italy2025-04-24
Murillo I Sergi1013Italy2025-04-06
Mujtaba I Inouye1014Canada2025-04-20
Maisha R Caudy1015Argentina2025-04-26
Mayumi I Briddick1016Russia2025-04-27
Arvin U Malet1017Italy2025-04-13
Leon Y Figeroa1018Japan2025-04-15
Antonio V Doe1019Canada2025-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin T VocelkaFranceOnyama Limba RENEWAL
Stacey E CampainArgentinaIoni Bowcher NEGOTIATION
Nicolas H RoysterJapanAmy Elsner NEGOTIATION
Claire E SchemmerSpainStephen Shaw NEW
Johnson E IturbideFranceOnyama Limba NEGOTIATION
Isabel P KuskoArgentinaElwin Sharvill QUALIFIED
Adams C NickaSpainBernardo Dominic NEW
Costa Q BriddickArgentinaAnna Fali PROPOSAL
Smith B KuskoGermanyBernardo Dominic NEGOTIATION
Darci B IturbideBrazilElwin Sharvill UNQUALIFIED
Misaki X GauchoSpainOnyama Limba UNQUALIFIED
Johnson J PerinJapanElwin Sharvill NEW
James Z MacleadAustraliaXuxue Feng QUALIFIED
Ivar J GlickSpainOnyama Limba NEW
Aruna R VocelkaCanadaOnyama Limba NEW
Salvatore Q SergiFranceAsiya Javayant QUALIFIED
Chavez A FigeroaAustraliaAmy Elsner NEGOTIATION
Leja A WaycottAustraliaXuxue Feng NEW
Johnson C CaudyUnited KingdomIvan Magalhaes NEW
Silvio T VenereJapanOnyama Limba NEW
Ashley U PoquetteAustraliaAmy Elsner QUALIFIED
Murillo B SergiSpainXuxue Feng NEW
Deepesh J GarufiArgentinaStephen Shaw NEW
Leja X VocelkaUnited KingdomAmy Elsner NEW
Silvio D MaletUnited KingdomAmy Elsner PROPOSAL
Julie I KuskoBrazilIvan Magalhaes NEW
Faith W GarufiRussiaIvan Magalhaes PROPOSAL
Maisha Q PoquetteSpainIoni Bowcher QUALIFIED
Deepesh R GillianGermanyAsiya Javayant QUALIFIED
Kadeem U MacleadUnited KingdomStephen Shaw UNQUALIFIED
Wickens G MaletAustraliaIvan Magalhaes QUALIFIED
Clifford G VocelkaGermanyIvan Magalhaes PROPOSAL
Adams S OstroskyAustraliaOnyama Limba QUALIFIED
Julie B WhobreyItalyXuxue Feng NEGOTIATION
Emily P SlusarskiJapanBernardo Dominic UNQUALIFIED
Maria W GillianGermanyStephen Shaw PROPOSAL
Kaitlin G BowleyArgentinaStephen Shaw RENEWAL
Adams W AlbaresJapanElwin Sharvill NEGOTIATION
Johnson A KolmetzGermanyOnyama Limba QUALIFIED
Izzy N PaprockiBrazilIvan Magalhaes PROPOSAL

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