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 N GarufiBrazilAnna Fali NEW
Rodrigues C FigeroaGermanyIvan Magalhaes QUALIFIED
Alejandro V PerinCanadaXuxue Feng PROPOSAL
Munro I WaycottCanadaIoni Bowcher NEW
Stacey G RoysterFranceBernardo Dominic QUALIFIED
Leja I GauchoRussiaIvan Magalhaes PROPOSAL
Antonio Q BowleySpainOnyama Limba RENEWAL
Silvio T FerenczBrazilAnna Fali UNQUALIFIED
Munro D RoysterArgentinaBernardo Dominic UNQUALIFIED
James G ButtIndiaIoni Bowcher NEW
Juan F RulapaughBrazilXuxue Feng PROPOSAL
Leja U MacleadGermanyElwin Sharvill PROPOSAL
Rodrigues Q GillianItalyAnna Fali PROPOSAL
Morrow M FollerArgentinaAnna Fali RENEWAL
Nicolas I SergiBrazilIvan Magalhaes QUALIFIED
Wickens X WaycottAustraliaAsiya Javayant NEGOTIATION
Jennifer Z AlbaresBrazilBernardo Dominic UNQUALIFIED
Izzy F BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Izzy M SaylorsAustraliaIoni Bowcher PROPOSAL
Deepesh W BologniaCanadaXuxue Feng NEW
Alejandro G GlickItalyAmy Elsner NEGOTIATION
Izzy R GauchoIndiaStephen Shaw RENEWAL
Julie X MacleadGermanyStephen Shaw RENEWAL
Kadeem U MarrierGermanyAmy Elsner UNQUALIFIED
Kadeem S CaudyBrazilIoni Bowcher NEW
Claire O MarrierArgentinaStephen Shaw PROPOSAL
Deepesh J RimBrazilOnyama Limba PROPOSAL
Octavia R FigeroaItalyIoni Bowcher NEGOTIATION
Tony Z DilliardRussiaOnyama Limba RENEWAL
Aika B FlosiSpainXuxue Feng NEGOTIATION
Stacey V StensethFranceOnyama Limba RENEWAL
Mujtaba R ShinkoArgentinaIvan Magalhaes NEW
Octavia M StensethIndiaAmy Elsner QUALIFIED
Antonio C GauchoCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois F GarufiGermanyXuxue Feng NEGOTIATION
Wickens V BriddickGermanyOnyama Limba NEW
Kadeem U AmigonJapanElwin Sharvill NEGOTIATION
Rodrigues A CaldareraItalyOnyama Limba PROPOSAL
Kaitlin Y TollnerCanadaIvan Magalhaes NEGOTIATION
Morrow K BologniaFranceAnna Fali UNQUALIFIED
Salvatore A RulapaughAustraliaElwin Sharvill NEGOTIATION
Julie K PoquetteJapanAmy Elsner RENEWAL
Leon Q OstroskyItalyIoni Bowcher NEW
Clifford H GillianUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues S CaudyAustraliaBernardo Dominic PROPOSAL
Cody V SergiBrazilElwin Sharvill RENEWAL
Sinclair A DarakjyGermanyStephen Shaw PROPOSAL
Darci N SergiRussiaStephen Shaw NEGOTIATION
Mayumi A SlusarskiBrazilBernardo Dominic PROPOSAL
Mayumi G MarrierUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja C RutaSpainIvan Magalhaes QUALIFIED
Cody H FerenczJapanIoni Bowcher PROPOSAL
Francesco N FollerGermanyStephen Shaw UNQUALIFIED
Mayumi Q VenereGermanyBernardo Dominic UNQUALIFIED
Jones J DilliardItalyIoni Bowcher RENEWAL
Deepesh Y IturbideUnited KingdomElwin Sharvill QUALIFIED
Ivar K IturbideGermanyIvan Magalhaes NEGOTIATION
Smith S ButtArgentinaXuxue Feng NEW
Jennifer L FollerItalyStephen Shaw PROPOSAL
Kadeem G SergiGermanyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois K RutaIndia2026-06-03Commercial Press RENEWAL64Anna Fali
1001Faith G AmigonUnited Kingdom2026-06-23Chapman, Ross E Esq NEW59Amy Elsner
1002Leon V FlosiBrazil2026-06-23Chanay, Jeffrey A Esq QUALIFIED47Asiya Javayant
1003Jeanfrancois U GillianFrance2026-06-12King, Christopher A Esq NEW96Ivan Magalhaes
1004Claire V WhobreyIndia2026-06-08Printing Dimensions NEW57Ioni Bowcher
1005Sinclair C RoysterBrazil2026-06-25Rousseaux, Michael Esq PROPOSAL29Stephen Shaw
1006Rodrigues J ButtUnited Kingdom2026-06-05King, Christopher A Esq NEGOTIATION86Ioni Bowcher
1007Leon F GarufiCanada2026-06-24King, Christopher A Esq UNQUALIFIED71Bernardo Dominic
1008Costa C WaycottAustralia2026-06-21Chapman, Ross E Esq QUALIFIED56Asiya Javayant
1009Johnson O AlbaresSpain2026-06-29Benton, John B Jr PROPOSAL73Asiya Javayant
1010Smith D NickaSpain2026-06-04Chanay, Jeffrey A Esq UNQUALIFIED34Anna Fali
1011Salvatore M TollnerRussia2026-06-18Benton, John B Jr NEW34Ivan Magalhaes
1012Isabel S GauchoItaly2026-06-08Morlong Associates NEGOTIATION17Bernardo Dominic
1013Mujtaba D NickaCanada2026-06-19Benton, John B Jr UNQUALIFIED92Onyama Limba
1014Arvin Z MorascaItaly2026-06-19Rangoni Of Florence NEW92Asiya Javayant
1015Emily M RulapaughItaly2026-06-11Chemel, James L Cpa QUALIFIED19Xuxue Feng
1016Kaitlin H MarrierBrazil2026-06-11Truhlar And Truhlar Attys QUALIFIED15Asiya Javayant
1017Leja I InouyeGermany2026-06-13Commercial Press RENEWAL32Xuxue Feng
1018Leon M CampainJapan2026-06-01Rangoni Of Florence UNQUALIFIED79Asiya Javayant
1019Ricardo K DarakjyRussia2026-06-29Chapman, Ross E Esq RENEWAL59Asiya Javayant
1020Kaitlin R FollerCanada2026-06-08Commercial Press PROPOSAL14Ioni Bowcher
1021Leja O SergiFrance2026-06-04Morlong Associates NEW55Anna Fali
1022Claire P MaletIndia2026-06-16Commercial Press PROPOSAL88Amy Elsner
1023Chavez I BowleyAustralia2026-06-23Benton, John B Jr PROPOSAL96Onyama Limba
1024Salvatore S MaletBrazil2026-06-06Printing Dimensions RENEWAL80Amy Elsner
1025Greenwood I OstroskyItaly2026-06-22Feltz Printing Service QUALIFIED91Asiya Javayant
1026Kaitlin I FlosiUnited Kingdom2026-06-17Chapman, Ross E Esq RENEWAL16Asiya Javayant
1027Izzy Q RulapaughSpain2026-06-10Feltz Printing Service RENEWAL94Bernardo Dominic
1028Maisha S RutaIndia2026-06-10Feiner Bros NEGOTIATION46Stephen Shaw
1029Kadeem U SergiBrazil2026-06-15Chemel, James L Cpa UNQUALIFIED9Asiya Javayant
1030Ivar W WhobreyItaly2026-06-28Benton, John B Jr QUALIFIED73Onyama Limba
1031Cody U RulapaughIndia2026-06-02Rangoni Of Florence PROPOSAL76Ioni Bowcher
1032Aruna E RoysterSpain2026-06-17King, Christopher A Esq RENEWAL79Stephen Shaw
1033Darci C ShinkoUnited Kingdom2026-06-27Rousseaux, Michael Esq RENEWAL22Ivan Magalhaes
1034Wickens Z StockhamGermany2026-06-30Chemel, James L Cpa NEW71Ivan Magalhaes
1035Jefferson M BologniaUnited Kingdom2026-06-14Rousseaux, Michael Esq QUALIFIED65Onyama Limba
1036Munro O DilliardArgentina2026-06-06Commercial Press NEGOTIATION81Xuxue Feng
1037Kaitlin Y ButtIndia2026-06-16Chapman, Ross E Esq QUALIFIED64Xuxue Feng
1038Antonio N FollerSpain2026-06-18Truhlar And Truhlar Attys QUALIFIED6Elwin Sharvill
1039David X GauchoIndia2026-06-18Feiner Bros NEW99Asiya Javayant
1040Antonio U RoysterSpain2026-06-03Dorl, James J Esq UNQUALIFIED24Ioni Bowcher
1041Leja M TollnerJapan2026-06-13Chanay, Jeffrey A Esq PROPOSAL16Ioni Bowcher
1042Ivar D SergiRussia2026-06-06Feltz Printing Service NEW47Anna Fali
1043Francesco Z StockhamItaly2026-06-03Feltz Printing Service PROPOSAL69Elwin Sharvill
1044Antonio P FerenczArgentina2026-06-17Printing Dimensions RENEWAL11Onyama Limba
1045Tony R FollerIndia2026-06-16Feiner Bros QUALIFIED78Anna Fali
1046Maria O BriddickIndia2026-06-03Chapman, Ross E Esq PROPOSAL96Stephen Shaw
1047Sinclair T AmigonItaly2026-06-15Feiner Bros UNQUALIFIED81Ivan Magalhaes
1048Adams C BriddickItaly2026-06-01Feltz Printing Service NEGOTIATION41Onyama Limba
1049Aditya C MaletIndia2026-06-25Printing Dimensions UNQUALIFIED79Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh A DarakjyBrazilBernardo Dominic NEW
Kadeem C AmigonCanadaAnna Fali PROPOSAL
Rodrigues B TollnerItalyElwin Sharvill UNQUALIFIED
Deepesh F WhobreyItalyAsiya Javayant UNQUALIFIED
Rodrigues R GillianGermanyAmy Elsner PROPOSAL
Darci U DilliardFranceAmy Elsner PROPOSAL
Sinclair F GillianBrazilElwin Sharvill PROPOSAL
Izzy I KuskoSpainOnyama Limba QUALIFIED
Clifford J NestleSpainAmy Elsner NEGOTIATION
Smith X BriddickArgentinaBernardo Dominic NEGOTIATION
Adams P RulapaughArgentinaAmy Elsner QUALIFIED
Mayumi J CaudyUnited KingdomAsiya Javayant NEGOTIATION
Murillo K OldroydSpainAnna Fali PROPOSAL
Costa X IturbideIndiaIvan Magalhaes NEW
Ivar O FlosiSpainXuxue Feng NEGOTIATION
Nicolas C WaycottItalyAnna Fali NEGOTIATION
Tony T RulapaughSpainIoni Bowcher NEW
Silvio A AmigonGermanyAnna Fali NEW
Morrow Q FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Morrow C RoysterUnited KingdomStephen Shaw PROPOSAL
Adams P FigeroaBrazilStephen Shaw QUALIFIED
Mayumi U MorascaFranceBernardo Dominic NEGOTIATION
Cody I WieserSpainAmy Elsner PROPOSAL
Ricardo N InouyeAustraliaBernardo Dominic UNQUALIFIED
Salvatore N FigeroaGermanyIvan Magalhaes QUALIFIED
Arvin X WhobreyBrazilStephen Shaw UNQUALIFIED
Claire T DilliardGermanyAsiya Javayant QUALIFIED
Mujtaba W DarakjyIndiaOnyama Limba NEW
Leon P SchemmerBrazilIvan Magalhaes NEW
Morrow T MacleadRussiaXuxue Feng RENEWAL
Munro U SaylorsAustraliaAnna Fali UNQUALIFIED
Murillo W FigeroaRussiaOnyama Limba NEGOTIATION
Chavez D GarufiJapanBernardo Dominic QUALIFIED
Francesco D KuskoJapanAsiya Javayant PROPOSAL
Ashley M RutaGermanyOnyama Limba NEGOTIATION
Smith J VenereAustraliaStephen Shaw PROPOSAL
Mujtaba J ButtCanadaAmy Elsner NEW
Mayumi O FlosiGermanyAmy Elsner RENEWAL
Costa H CaldareraAustraliaBernardo Dominic PROPOSAL
Antonio J NickaCanadaIvan Magalhaes UNQUALIFIED
Izzy K OldroydArgentinaElwin Sharvill NEGOTIATION
Cody I GillianAustraliaElwin Sharvill RENEWAL
Faith Z FollerUnited KingdomStephen Shaw NEW
Leja L NickaIndiaAnna Fali NEW
Tony V SlusarskiIndiaElwin Sharvill QUALIFIED
Juan G RutaSpainAmy Elsner UNQUALIFIED
Claire H WaycottRussiaAnna Fali RENEWAL
Johnson J NestleArgentinaStephen Shaw NEW
Aika A RulapaughFranceAsiya Javayant QUALIFIED
Ivar U FerenczGermanyIoni Bowcher RENEWAL
Frozen Columns
Name
Leon Z Amigon
Kaitlin B Maclead
Misaki I Kolmetz
Wickens X Flosi
Mayumi F Foller
Tony I Briddick
Deepesh B Rulapaugh
Izzy Y Malet
Kaitlin C Nestle
Morrow V Marrier
Maisha U Stenseth
David X Slusarski
Cody I Figeroa
James W Gaucho
Nicolas J Ferencz
Deepesh O Schemmer
Alejandro B Wieser
Aruna X Slusarski
Juan K Figeroa
Chavez G Morasca
Jeanfrancois M Stenseth
Nicolas M Dilliard
Mayumi E Poquette
Octavia Q Bolognia
Greenwood R Nestle
Francesco L Kolmetz
Ivar C Malet
Isabel S Stockham
Leja F Gaucho
Tony W Royster
Aditya Y Ostrosky
Johnson K Morasca
Aika R Sergi
Jennifer A Caldarera
Julie N Garufi
Arvin P Garufi
Salvatore N Stockham
Clifford V Stenseth
Tony U Venere
Smith A Ruta
Chavez D Kusko
Mujtaba Q Ferencz
Ashley Z Schemmer
Clifford S Paprocki
Alejandro X Garufi
Leja F Rulapaugh
Emily J Poquette
Aika R Caldarera
Arvin Z Poquette
Sinclair P Poquette
IdCountryDate
1000Italy2026-06-28
1001France2026-06-12
1002Italy2026-06-09
1003Italy2026-06-12
1004Russia2026-06-27
1005Argentina2026-06-06
1006Russia2026-06-29
1007United Kingdom2026-06-20
1008Australia2026-06-16
1009Russia2026-06-20
1010Canada2026-06-28
1011Argentina2026-06-30
1012Australia2026-06-10
1013Japan2026-06-09
1014Japan2026-06-26
1015Russia2026-06-05
1016India2026-06-20
1017Argentina2026-06-23
1018Japan2026-06-24
1019Germany2026-06-13
1020United Kingdom2026-06-03
1021Russia2026-06-16
1022India2026-06-09
1023Russia2026-06-19
1024France2026-06-10
1025Russia2026-06-10
1026France2026-06-06
1027France2026-06-21
1028Brazil2026-06-05
1029Italy2026-06-08
1030Spain2026-06-30
1031Canada2026-06-09
1032India2026-06-10
1033Germany2026-06-06
1034United Kingdom2026-06-17
1035Brazil2026-06-02
1036United Kingdom2026-06-27
1037Brazil2026-06-30
1038Spain2026-06-17
1039Germany2026-06-21
1040Brazil2026-06-20
1041France2026-06-18
1042India2026-06-09
1043United Kingdom2026-06-25
1044India2026-06-23
1045Argentina2026-06-24
1046Brazil2026-06-02
1047India2026-06-27
1048Australia2026-06-19
1049Spain2026-06-15

On-Demand Data

NameIdCountryDate
Murillo U Briddick1000Brazil2026-06-28
Clifford O Kolmetz1001Australia2026-06-10
Isabel M Oldroyd1002Russia2026-06-01
Ricardo K Albares1003Brazil2026-06-22
Cody O Stockham1004United Kingdom2026-06-25
Claire C Inouye1005India2026-06-01
Rodrigues V Tollner1006France2026-06-17
James W Caldarera1007Germany2026-06-07
Stacey M Kusko1008Russia2026-06-19
Claire N Figeroa1009Australia2026-06-19
Adams E Briddick1010France2026-06-10
Isabel K Darakjy1011France2026-06-06
Ricardo N Wieser1012Canada2026-06-28
Aruna T Briddick1013Argentina2026-06-22
Aditya J Ostrosky1014Brazil2026-06-21
Johnson T Ruta1015United Kingdom2026-06-17
Jennifer R Amigon1016Spain2026-06-17
James E Dilliard1017United Kingdom2026-06-01
Aruna C Perin1018Australia2026-06-28
Francesco A Doe1019France2026-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin X DoeUnited KingdomBernardo Dominic QUALIFIED
Ivar G MarrierBrazilAmy Elsner NEGOTIATION
Clifford M KolmetzAustraliaElwin Sharvill NEGOTIATION
Darci M MaletArgentinaBernardo Dominic NEGOTIATION
Maria B OldroydItalyStephen Shaw NEGOTIATION
Deepesh N OstroskyFranceOnyama Limba UNQUALIFIED
Cody A ChuiGermanyAnna Fali UNQUALIFIED
Antonio V GarufiIndiaAmy Elsner NEW
Costa M CampainFranceIvan Magalhaes NEGOTIATION
Emily F OldroydArgentinaElwin Sharvill NEW
Ricardo V WhobreyCanadaIvan Magalhaes NEW
Cody C MorascaAustraliaAmy Elsner NEGOTIATION
Ashley T BologniaJapanIoni Bowcher NEW
Chavez D TollnerJapanElwin Sharvill NEGOTIATION
Arvin Y SchemmerItalyElwin Sharvill NEGOTIATION
Deepesh D MaletGermanyElwin Sharvill PROPOSAL
Isabel Y MorascaSpainIvan Magalhaes QUALIFIED
Nicolas B CampainCanadaElwin Sharvill RENEWAL
Jeanfrancois K PerinIndiaElwin Sharvill UNQUALIFIED
Ivar Z PaprockiUnited KingdomElwin Sharvill RENEWAL
Julie P PaprockiFranceAnna Fali UNQUALIFIED
Sinclair U PoquetteGermanyOnyama Limba PROPOSAL
Ricardo S WaycottBrazilAsiya Javayant NEW
Leon E MaletBrazilAmy Elsner UNQUALIFIED
Morrow C FerenczBrazilAsiya Javayant UNQUALIFIED
Sinclair Z WaycottArgentinaIvan Magalhaes RENEWAL
Deepesh T CaldareraArgentinaXuxue Feng UNQUALIFIED
Morrow X GillianRussiaAmy Elsner NEGOTIATION
Nicolas A GlickArgentinaStephen Shaw QUALIFIED
Jefferson V SergiSpainAsiya Javayant RENEWAL
Jefferson W MarrierItalyStephen Shaw NEW
Ricardo A RoysterIndiaOnyama Limba NEGOTIATION
Antonio K RulapaughJapanOnyama Limba NEW
Costa T VocelkaBrazilStephen Shaw PROPOSAL
James S SlusarskiJapanBernardo Dominic QUALIFIED
Deepesh C TollnerCanadaAnna Fali NEW
Kadeem Q VenereItalyElwin Sharvill UNQUALIFIED
Aika D PoquetteFranceElwin Sharvill RENEWAL
Aruna X PoquetteBrazilAnna Fali NEW
Tony X VocelkaBrazilAmy Elsner 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>