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
Nicolas K MorascaRussiaBernardo Dominic UNQUALIFIED
Ivar G PoquetteJapanXuxue Feng PROPOSAL
Johnson K PoquetteUnited KingdomXuxue Feng NEW
Mujtaba G ButtRussiaIoni Bowcher NEW
Salvatore E TollnerRussiaIvan Magalhaes UNQUALIFIED
Octavia J BowleyFranceAsiya Javayant NEGOTIATION
Octavia X MarrierAustraliaIvan Magalhaes NEGOTIATION
Emily U NickaFranceBernardo Dominic QUALIFIED
Nicolas O MorascaFranceOnyama Limba PROPOSAL
Jeanfrancois S SergiRussiaIvan Magalhaes RENEWAL
Cody Q FigeroaCanadaIoni Bowcher UNQUALIFIED
Alejandro N OldroydBrazilOnyama Limba RENEWAL
Chavez A AmigonUnited KingdomStephen Shaw PROPOSAL
Greenwood N ButtGermanyElwin Sharvill PROPOSAL
Greenwood Q PoquetteJapanAsiya Javayant NEW
Chavez Y WhobreyFranceXuxue Feng NEGOTIATION
Isabel P BriddickRussiaBernardo Dominic NEGOTIATION
Jennifer B WieserRussiaBernardo Dominic NEW
Deepesh U MaletJapanElwin Sharvill UNQUALIFIED
Ivar V FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha A MarrierJapanAnna Fali NEGOTIATION
Jones D FigeroaGermanyAmy Elsner NEGOTIATION
Antonio J PaprockiGermanyBernardo Dominic NEGOTIATION
Johnson P ShinkoAustraliaIvan Magalhaes NEW
Kadeem U ShinkoArgentinaXuxue Feng RENEWAL
Leja S SlusarskiAustraliaAsiya Javayant NEGOTIATION
Leja A TollnerBrazilElwin Sharvill NEW
Emily R WieserSpainOnyama Limba UNQUALIFIED
Ricardo E StensethAustraliaAnna Fali NEW
Misaki Z AlbaresFranceAnna Fali NEW
David Y NestleRussiaStephen Shaw NEGOTIATION
James J PoquetteRussiaAnna Fali UNQUALIFIED
Smith R AlbaresBrazilXuxue Feng QUALIFIED
Francesco E RoysterIndiaStephen Shaw UNQUALIFIED
Julie T FollerItalyElwin Sharvill UNQUALIFIED
Aika I RutaFranceStephen Shaw PROPOSAL
Chavez X WaycottBrazilIvan Magalhaes NEW
Jefferson M BowleyCanadaXuxue Feng NEW
Jeanfrancois B StensethAustraliaOnyama Limba NEW
Claire P PoquetteCanadaIoni Bowcher UNQUALIFIED
Misaki H CaldareraAustraliaAmy Elsner NEGOTIATION
Silvio U PaprockiIndiaIvan Magalhaes RENEWAL
Jennifer P GlickSpainAnna Fali UNQUALIFIED
Arvin T ChuiJapanElwin Sharvill NEGOTIATION
Jones M StockhamArgentinaAsiya Javayant PROPOSAL
Clifford T BriddickGermanyElwin Sharvill QUALIFIED
Mayumi Y BologniaFranceElwin Sharvill NEGOTIATION
Stacey O BologniaBrazilIoni Bowcher QUALIFIED
Cody H CaldareraGermanyBernardo Dominic RENEWAL
Arvin A ShinkoItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams J FigeroaGermanyXuxue Feng NEGOTIATION
Aruna X GarufiArgentinaIoni Bowcher QUALIFIED
Emily J WieserGermanyOnyama Limba NEGOTIATION
Deepesh P NestleFranceElwin Sharvill NEGOTIATION
Isabel F RulapaughFranceAsiya Javayant QUALIFIED
Deepesh H DarakjyUnited KingdomXuxue Feng NEW
Murillo Q ShinkoJapanAnna Fali QUALIFIED
Leon F SaylorsItalyIoni Bowcher NEW
Adams D RimBrazilBernardo Dominic UNQUALIFIED
Emily U RimIndiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja A FollerGermany2026-06-28Chanay, Jeffrey A Esq NEW82Amy Elsner
1001Stacey V NickaSpain2026-06-09King, Christopher A Esq UNQUALIFIED67Ioni Bowcher
1002Mayumi T MaletBrazil2026-06-23Feiner Bros UNQUALIFIED0Anna Fali
1003Johnson Z ShinkoGermany2026-06-15Feltz Printing Service PROPOSAL80Anna Fali
1004Maisha D OstroskyArgentina2026-06-14Morlong Associates UNQUALIFIED79Ivan Magalhaes
1005Costa N RutaFrance2026-06-09Feltz Printing Service PROPOSAL11Asiya Javayant
1006Chavez Y RulapaughAustralia2026-06-07Benton, John B Jr QUALIFIED16Ioni Bowcher
1007Aditya A BologniaFrance2026-06-19Feiner Bros NEGOTIATION52Ivan Magalhaes
1008Faith T MacleadUnited Kingdom2026-06-06Commercial Press NEW18Stephen Shaw
1009Jones Y VocelkaIndia2026-06-27King, Christopher A Esq RENEWAL45Xuxue Feng
1010Arvin H RoysterIndia2026-06-15Commercial Press NEW30Ioni Bowcher
1011Ashley E FerenczJapan2026-06-14Rousseaux, Michael Esq NEGOTIATION94Anna Fali
1012Mayumi T RoysterItaly2026-06-28Buckley Miller Wright PROPOSAL73Amy Elsner
1013Sinclair V RoysterAustralia2026-06-02Dorl, James J Esq NEW63Elwin Sharvill
1014Sinclair L PerinBrazil2026-06-02Rangoni Of Florence NEGOTIATION16Bernardo Dominic
1015Jennifer L DarakjyAustralia2026-06-10King, Christopher A Esq UNQUALIFIED35Amy Elsner
1016Faith V FollerUnited Kingdom2026-06-02King, Christopher A Esq QUALIFIED8Ivan Magalhaes
1017Ricardo O RutaIndia2026-06-24Buckley Miller Wright UNQUALIFIED1Elwin Sharvill
1018Leon Q SchemmerAustralia2026-06-26King, Christopher A Esq QUALIFIED52Anna Fali
1019Juan A MaletArgentina2026-06-27Dorl, James J Esq RENEWAL5Onyama Limba
1020Claire X SaylorsFrance2026-06-16Morlong Associates NEW34Onyama Limba
1021Johnson L FlosiCanada2026-06-15Buckley Miller Wright PROPOSAL47Bernardo Dominic
1022Kadeem N InouyeGermany2026-06-16Chemel, James L Cpa UNQUALIFIED30Anna Fali
1023Kaitlin B NestleArgentina2026-06-29Morlong Associates PROPOSAL77Ioni Bowcher
1024Smith A GillianArgentina2026-06-19Printing Dimensions RENEWAL66Bernardo Dominic
1025Darci O StockhamSpain2026-07-01Feiner Bros QUALIFIED27Onyama Limba
1026Greenwood K RulapaughBrazil2026-06-21Chanay, Jeffrey A Esq NEGOTIATION35Asiya Javayant
1027Rodrigues Y ChuiGermany2026-06-06Benton, John B Jr NEW21Ivan Magalhaes
1028Rodrigues P InouyeItaly2026-06-20Feiner Bros PROPOSAL15Amy Elsner
1029Darci X OstroskyIndia2026-06-16Feltz Printing Service PROPOSAL19Amy Elsner
1030Maria H OldroydArgentina2026-06-02Feiner Bros QUALIFIED34Anna Fali
1031Juan X WieserAustralia2026-06-17Truhlar And Truhlar Attys RENEWAL99Stephen Shaw
1032Morrow E GillianItaly2026-06-10Chanay, Jeffrey A Esq PROPOSAL35Amy Elsner
1033Kaitlin B FollerJapan2026-06-10Chemel, James L Cpa RENEWAL53Elwin Sharvill
1034Smith K MacleadJapan2026-06-18Feltz Printing Service PROPOSAL86Anna Fali
1035James W PerinBrazil2026-06-13Chapman, Ross E Esq NEGOTIATION83Stephen Shaw
1036Mujtaba U ChuiSpain2026-06-23Rangoni Of Florence QUALIFIED68Ioni Bowcher
1037Alejandro W TollnerRussia2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED63Xuxue Feng
1038Murillo R GillianArgentina2026-06-08Morlong Associates UNQUALIFIED99Xuxue Feng
1039Maisha V DilliardUnited Kingdom2026-06-23Chemel, James L Cpa NEW4Ioni Bowcher
1040Aika G NestleAustralia2026-06-15Feiner Bros QUALIFIED35Asiya Javayant
1041Octavia M CampainArgentina2026-06-02Dorl, James J Esq QUALIFIED40Bernardo Dominic
1042Aika P RoysterItaly2026-06-21Chapman, Ross E Esq PROPOSAL26Amy Elsner
1043Smith M SlusarskiBrazil2026-06-20Dorl, James J Esq UNQUALIFIED54Ioni Bowcher
1044David Q BriddickJapan2026-06-17Buckley Miller Wright UNQUALIFIED97Bernardo Dominic
1045Antonio O BriddickJapan2026-06-06Truhlar And Truhlar Attys NEW79Onyama Limba
1046Ashley I RulapaughIndia2026-06-09Benton, John B Jr RENEWAL40Ioni Bowcher
1047Francesco K BologniaJapan2026-06-07Rousseaux, Michael Esq UNQUALIFIED53Elwin Sharvill
1048James N SlusarskiItaly2026-06-20Truhlar And Truhlar Attys RENEWAL36Elwin Sharvill
1049Costa J GarufiArgentina2026-06-02Buckley Miller Wright NEW74Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore F TollnerItalyAmy Elsner NEGOTIATION
Aika M FollerArgentinaAmy Elsner UNQUALIFIED
Wickens V OldroydItalyStephen Shaw UNQUALIFIED
Mujtaba G CaudyRussiaXuxue Feng UNQUALIFIED
James E MorascaItalyStephen Shaw RENEWAL
James Y MarrierJapanBernardo Dominic NEGOTIATION
Jones Q DarakjySpainAsiya Javayant RENEWAL
Salvatore Q AmigonIndiaBernardo Dominic QUALIFIED
Costa P StockhamBrazilIoni Bowcher QUALIFIED
Silvio F DilliardIndiaIoni Bowcher NEW
Smith D ButtAustraliaIoni Bowcher PROPOSAL
Alejandro U GarufiCanadaIoni Bowcher NEGOTIATION
Adams G ShinkoCanadaIoni Bowcher PROPOSAL
Deepesh W GlickUnited KingdomAmy Elsner NEGOTIATION
Ashley D RimFranceIoni Bowcher UNQUALIFIED
Clifford R GillianGermanyAnna Fali UNQUALIFIED
Tony Q RoysterAustraliaStephen Shaw UNQUALIFIED
Tony I BologniaIndiaAmy Elsner QUALIFIED
Rodrigues Q CaudyIndiaStephen Shaw UNQUALIFIED
Ricardo R GarufiIndiaBernardo Dominic PROPOSAL
Morrow F ChuiUnited KingdomOnyama Limba RENEWAL
Tony D GlickFranceOnyama Limba UNQUALIFIED
Silvio G KuskoIndiaAmy Elsner RENEWAL
Aditya N BowleyAustraliaXuxue Feng QUALIFIED
Darci W KuskoSpainStephen Shaw QUALIFIED
Jeanfrancois H KolmetzUnited KingdomAnna Fali RENEWAL
Kaitlin U WieserUnited KingdomStephen Shaw PROPOSAL
Ricardo K GlickAustraliaXuxue Feng NEGOTIATION
Tony U FigeroaUnited KingdomOnyama Limba NEGOTIATION
Nicolas A AlbaresJapanAnna Fali UNQUALIFIED
Aruna K OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois C TollnerRussiaBernardo Dominic NEGOTIATION
Smith A IturbideArgentinaIvan Magalhaes NEW
Jefferson Z DoeCanadaBernardo Dominic NEW
Munro I MorascaCanadaXuxue Feng RENEWAL
Kaitlin C FerenczItalyIoni Bowcher NEW
Octavia M PerinAustraliaIvan Magalhaes RENEWAL
Claire P BriddickFranceAmy Elsner NEGOTIATION
Francesco C NestleGermanyElwin Sharvill UNQUALIFIED
Claire I CaldareraArgentinaIvan Magalhaes NEW
Juan V OldroydGermanyStephen Shaw PROPOSAL
Arvin N WaycottUnited KingdomAnna Fali RENEWAL
Faith A RutaSpainIoni Bowcher QUALIFIED
Kaitlin Z DoeRussiaStephen Shaw QUALIFIED
Jones W FollerBrazilBernardo Dominic QUALIFIED
Mayumi G InouyeRussiaIoni Bowcher QUALIFIED
Munro Q NestleBrazilStephen Shaw PROPOSAL
Ivar J FerenczCanadaElwin Sharvill NEGOTIATION
Leja B WhobreyItalyOnyama Limba NEGOTIATION
Julie W AlbaresBrazilStephen Shaw NEGOTIATION
Frozen Columns
Name
Cody L Ostrosky
Jennifer P Inouye
Smith C Ruta
Ricardo E Poquette
Smith H Doe
Jennifer B Kusko
Isabel U Slusarski
Chavez W Ferencz
Rodrigues D Tollner
Izzy I Darakjy
Ricardo U Rulapaugh
Juan X Foller
Mujtaba U Waycott
Jones G Nestle
Claire C Nicka
Salvatore E Ferencz
Silvio E Slusarski
Claire C Garufi
Salvatore P Gaucho
Isabel I Tollner
Arvin U Ferencz
Aditya C Ostrosky
Claire P Butt
Clifford I Iturbide
Tony Q Caldarera
Faith O Stockham
Murillo I Briddick
Ricardo N Oldroyd
Julie K Inouye
Alejandro I Nestle
Aditya Q Malet
Octavia N Poquette
Leja Q Marrier
Silvio J Amigon
Kadeem S Briddick
Murillo B Butt
Mujtaba D Perin
Leja T Doe
Murillo H Gaucho
Izzy K Foller
Greenwood M Nestle
Leon R Shinko
Stacey J Perin
Nicolas M Marrier
Costa T Morasca
Alejandro Y Gaucho
Faith E Darakjy
David K Marrier
Clifford X Ruta
Jennifer B Gillian
IdCountryDate
1000Canada2026-06-22
1001United Kingdom2026-06-13
1002India2026-06-03
1003Japan2026-06-04
1004Italy2026-06-29
1005Brazil2026-06-15
1006Germany2026-06-29
1007United Kingdom2026-06-24
1008Russia2026-06-04
1009Russia2026-06-11
1010India2026-06-05
1011United Kingdom2026-06-16
1012United Kingdom2026-06-28
1013Italy2026-06-20
1014India2026-06-12
1015Spain2026-06-12
1016Australia2026-06-20
1017France2026-06-30
1018Argentina2026-06-12
1019Japan2026-06-03
1020Argentina2026-06-23
1021France2026-06-03
1022Germany2026-06-16
1023Argentina2026-06-10
1024Spain2026-06-11
1025Japan2026-06-14
1026Italy2026-06-04
1027Brazil2026-06-11
1028Russia2026-06-17
1029Canada2026-06-29
1030Argentina2026-06-12
1031India2026-06-15
1032India2026-06-02
1033Russia2026-06-13
1034Spain2026-06-02
1035India2026-06-18
1036Germany2026-06-28
1037Japan2026-06-05
1038Argentina2026-06-22
1039Japan2026-06-26
1040Germany2026-06-28
1041France2026-06-22
1042Brazil2026-06-10
1043Brazil2026-06-08
1044France2026-06-22
1045Argentina2026-06-28
1046France2026-06-28
1047Russia2026-06-18
1048Australia2026-06-07
1049Canada2026-06-27

On-Demand Data

NameIdCountryDate
Mayumi U Doe1000Russia2026-06-08
Aruna A Rim1001Italy2026-06-30
Claire C Figeroa1002Russia2026-06-02
Aika E Whobrey1003Australia2026-06-05
Isabel I Morasca1004Brazil2026-06-08
Izzy I Royster1005France2026-06-09
Antonio G Doe1006India2026-06-05
Mujtaba B Gaucho1007Argentina2026-06-13
Julie N Darakjy1008Italy2026-06-03
Jefferson N Figeroa1009Spain2026-06-07
Wickens K Vocelka1010France2026-06-10
Johnson J Bowley1011Italy2026-06-20
Juan U Figeroa1012Argentina2026-07-01
Adams L Malet1013Germany2026-06-08
Morrow V Venere1014Spain2026-06-04
Aditya T Inouye1015United Kingdom2026-06-14
Nicolas I Slusarski1016Japan2026-07-01
Aditya Q Iturbide1017Italy2026-06-15
Faith O Malet1018Canada2026-06-15
Johnson R Figeroa1019Canada2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith O SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Aika Y TollnerBrazilAnna Fali NEGOTIATION
Jeanfrancois J KuskoCanadaIvan Magalhaes QUALIFIED
Murillo Q CaudyBrazilIvan Magalhaes QUALIFIED
Leja B PaprockiGermanyElwin Sharvill NEW
Munro O MaletGermanyBernardo Dominic QUALIFIED
Ricardo K IturbideFranceAsiya Javayant UNQUALIFIED
Johnson T BriddickFranceAnna Fali NEW
Salvatore S ButtJapanBernardo Dominic QUALIFIED
Julie N NestleIndiaElwin Sharvill QUALIFIED
Nicolas O CampainFranceElwin Sharvill PROPOSAL
Morrow V MaletItalyXuxue Feng QUALIFIED
Leja R OldroydBrazilBernardo Dominic QUALIFIED
Ricardo G NestleFranceOnyama Limba NEW
Wickens X GillianItalyIvan Magalhaes NEW
Arvin A ShinkoRussiaAnna Fali PROPOSAL
Morrow P SchemmerRussiaIoni Bowcher PROPOSAL
Costa T OldroydFranceIvan Magalhaes NEW
Morrow H OstroskyGermanyIoni Bowcher NEW
Ricardo T DilliardGermanyStephen Shaw QUALIFIED
Silvio J KolmetzSpainOnyama Limba RENEWAL
Antonio H AmigonUnited KingdomXuxue Feng PROPOSAL
Antonio C WaycottUnited KingdomBernardo Dominic NEGOTIATION
Nicolas V GarufiGermanyAmy Elsner RENEWAL
Munro U RutaBrazilXuxue Feng UNQUALIFIED
Ricardo Q SaylorsJapanStephen Shaw QUALIFIED
Costa G WhobreyItalyAnna Fali PROPOSAL
Izzy H SergiGermanyAsiya Javayant NEGOTIATION
Ivar A StockhamRussiaAsiya Javayant QUALIFIED
Emily I InouyeItalyAmy Elsner UNQUALIFIED
Arvin N CampainArgentinaStephen Shaw PROPOSAL
Leja P MacleadJapanElwin Sharvill QUALIFIED
Cody L RimSpainOnyama Limba UNQUALIFIED
Julie H BriddickUnited KingdomAmy Elsner PROPOSAL
Maria A ShinkoBrazilIvan Magalhaes NEGOTIATION
Aika I GauchoIndiaAnna Fali RENEWAL
Murillo N BologniaUnited KingdomXuxue Feng NEGOTIATION
Leon W DoeFranceAsiya Javayant NEGOTIATION
Jeanfrancois J WhobreyAustraliaIvan Magalhaes QUALIFIED
Kaitlin S ShinkoArgentinaIoni Bowcher UNQUALIFIED

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