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
Julie D MorascaGermanyStephen Shaw RENEWAL
Smith E MaletItalyAnna Fali NEW
Munro P OstroskySpainElwin Sharvill RENEWAL
Kadeem P FigeroaCanadaAmy Elsner QUALIFIED
Francesco P VocelkaIndiaXuxue Feng UNQUALIFIED
Leon C TollnerUnited KingdomIoni Bowcher PROPOSAL
James F WhobreyFranceAnna Fali NEW
Salvatore C BriddickGermanyOnyama Limba NEW
Rodrigues Z PaprockiUnited KingdomIoni Bowcher NEGOTIATION
Izzy B FerenczGermanyBernardo Dominic PROPOSAL
Jennifer J MaletRussiaAnna Fali QUALIFIED
David V MarrierAustraliaIvan Magalhaes NEGOTIATION
Kaitlin L NestleFranceAsiya Javayant PROPOSAL
Leja Y SergiJapanAsiya Javayant QUALIFIED
Cody U CaudyAustraliaAsiya Javayant UNQUALIFIED
Kaitlin K GlickCanadaElwin Sharvill QUALIFIED
Izzy T FollerUnited KingdomAmy Elsner NEGOTIATION
Misaki X ShinkoUnited KingdomXuxue Feng NEW
Isabel B GlickGermanyBernardo Dominic UNQUALIFIED
Silvio Y FlosiIndiaBernardo Dominic NEGOTIATION
Rodrigues K CaldareraArgentinaIvan Magalhaes NEGOTIATION
Misaki I SergiGermanyBernardo Dominic UNQUALIFIED
Aruna W ChuiGermanyOnyama Limba UNQUALIFIED
Octavia K CampainAustraliaAsiya Javayant NEGOTIATION
Costa I BowleyIndiaAmy Elsner RENEWAL
Isabel C PaprockiGermanyIoni Bowcher NEGOTIATION
Ashley M SergiIndiaAmy Elsner QUALIFIED
Greenwood U VenereBrazilAnna Fali NEGOTIATION
Izzy Q ShinkoGermanyAsiya Javayant NEW
Wickens X SaylorsUnited KingdomBernardo Dominic NEGOTIATION
Johnson N DoeFranceBernardo Dominic NEGOTIATION
Stacey M IturbideIndiaAmy Elsner QUALIFIED
Antonio T PoquetteBrazilAnna Fali PROPOSAL
Izzy K ShinkoCanadaAnna Fali NEW
Alejandro V GarufiSpainIvan Magalhaes UNQUALIFIED
Cody Z VenereAustraliaIvan Magalhaes UNQUALIFIED
Leja K KuskoJapanXuxue Feng NEW
David J FigeroaJapanAsiya Javayant UNQUALIFIED
Tony T AlbaresArgentinaElwin Sharvill NEGOTIATION
David N GlickJapanAmy Elsner NEGOTIATION
Claire S GillianAustraliaIvan Magalhaes NEGOTIATION
Aruna L CampainCanadaAsiya Javayant RENEWAL
Greenwood J GlickJapanElwin Sharvill RENEWAL
Aika K ChuiCanadaStephen Shaw UNQUALIFIED
Claire Q SergiUnited KingdomXuxue Feng RENEWAL
Mujtaba I DilliardCanadaAnna Fali QUALIFIED
Chavez N BriddickBrazilAmy Elsner PROPOSAL
Costa P RulapaughIndiaOnyama Limba QUALIFIED
Nicolas P GlickJapanAmy Elsner NEGOTIATION
Isabel F InouyeCanadaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams Y RutaSpainStephen Shaw QUALIFIED
Octavia O StockhamIndiaXuxue Feng NEW
Claire X GarufiBrazilStephen Shaw QUALIFIED
Rodrigues W OldroydGermanyAmy Elsner QUALIFIED
Francesco X BriddickBrazilAsiya Javayant RENEWAL
Ashley M IturbideIndiaBernardo Dominic NEGOTIATION
Rodrigues W WaycottAustraliaIoni Bowcher UNQUALIFIED
Antonio N PaprockiRussiaXuxue Feng NEW
Deepesh E OldroydBrazilIvan Magalhaes RENEWAL
Salvatore Y FlosiBrazilXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily X RutaArgentina2025-05-29Commercial Press NEGOTIATION82Elwin Sharvill
1001Kadeem D CaldareraAustralia2025-06-15Buckley Miller Wright UNQUALIFIED38Stephen Shaw
1002Juan S BriddickUnited Kingdom2025-06-06Feltz Printing Service QUALIFIED6Anna Fali
1003Sinclair F InouyeSpain2025-05-22Benton, John B Jr UNQUALIFIED88Asiya Javayant
1004Misaki W SlusarskiBrazil2025-06-07Chanay, Jeffrey A Esq QUALIFIED14Amy Elsner
1005Stacey J SchemmerItaly2025-06-04Rousseaux, Michael Esq QUALIFIED9Anna Fali
1006Nicolas F RoysterBrazil2025-05-22King, Christopher A Esq UNQUALIFIED19Anna Fali
1007Leja J GarufiIndia2025-06-05Commercial Press NEGOTIATION2Stephen Shaw
1008Kadeem J FlosiUnited Kingdom2025-06-13Dorl, James J Esq UNQUALIFIED7Onyama Limba
1009Ashley B GillianBrazil2025-06-13Feiner Bros NEW41Elwin Sharvill
1010Mayumi J SlusarskiCanada2025-06-14Feltz Printing Service QUALIFIED34Ivan Magalhaes
1011Cody M SchemmerJapan2025-06-11Chapman, Ross E Esq PROPOSAL79Bernardo Dominic
1012Rodrigues P RoysterBrazil2025-05-20Chemel, James L Cpa NEW2Anna Fali
1013Arvin P PoquetteFrance2025-06-05Buckley Miller Wright QUALIFIED29Anna Fali
1014Salvatore E BowleyUnited Kingdom2025-06-15Morlong Associates NEW84Amy Elsner
1015Salvatore P CampainSpain2025-06-05Feltz Printing Service NEGOTIATION95Amy Elsner
1016Claire U FollerAustralia2025-06-08Feiner Bros NEGOTIATION96Elwin Sharvill
1017Octavia S RoysterUnited Kingdom2025-05-30Rousseaux, Michael Esq RENEWAL72Stephen Shaw
1018Arvin K GlickAustralia2025-05-29Chapman, Ross E Esq NEGOTIATION98Xuxue Feng
1019Ivar C MaletSpain2025-05-25Chemel, James L Cpa PROPOSAL45Bernardo Dominic
1020Mayumi P SlusarskiArgentina2025-05-21Printing Dimensions PROPOSAL83Elwin Sharvill
1021David Y GauchoCanada2025-06-13Morlong Associates PROPOSAL86Asiya Javayant
1022Francesco Q GillianUnited Kingdom2025-05-25Morlong Associates RENEWAL38Onyama Limba
1023Cody M GarufiFrance2025-06-06Dorl, James J Esq QUALIFIED32Amy Elsner
1024Jones V GauchoIndia2025-05-25Chanay, Jeffrey A Esq RENEWAL2Ioni Bowcher
1025Leon Q RimFrance2025-05-28Feiner Bros NEW32Amy Elsner
1026Isabel N KolmetzUnited Kingdom2025-06-12Morlong Associates QUALIFIED71Xuxue Feng
1027Maisha B RulapaughFrance2025-06-01Feiner Bros NEW56Ivan Magalhaes
1028Leja U PoquetteBrazil2025-06-02Buckley Miller Wright RENEWAL7Asiya Javayant
1029David M BologniaItaly2025-06-04Rousseaux, Michael Esq RENEWAL47Asiya Javayant
1030Salvatore O BologniaRussia2025-06-07Benton, John B Jr RENEWAL52Xuxue Feng
1031Francesco Z SaylorsFrance2025-06-05Rousseaux, Michael Esq UNQUALIFIED20Anna Fali
1032Cody G BriddickRussia2025-06-14Feltz Printing Service UNQUALIFIED90Ivan Magalhaes
1033Juan J BowleyItaly2025-05-19Chapman, Ross E Esq RENEWAL21Anna Fali
1034Ivar J ChuiSpain2025-06-09Chanay, Jeffrey A Esq NEGOTIATION11Onyama Limba
1035Aruna X CaldareraUnited Kingdom2025-06-14Printing Dimensions NEGOTIATION63Amy Elsner
1036Aditya K GarufiCanada2025-06-06Benton, John B Jr NEW18Anna Fali
1037Darci F SchemmerArgentina2025-05-29Feltz Printing Service NEW6Bernardo Dominic
1038Aditya Y DilliardSpain2025-06-10Chemel, James L Cpa NEW9Asiya Javayant
1039Silvio S FollerJapan2025-06-13Buckley Miller Wright PROPOSAL74Ioni Bowcher
1040Aika Z VocelkaCanada2025-06-05King, Christopher A Esq PROPOSAL42Amy Elsner
1041Clifford I OstroskyBrazil2025-05-27Rousseaux, Michael Esq QUALIFIED39Xuxue Feng
1042Ashley Y AmigonIndia2025-05-30Feiner Bros NEW95Bernardo Dominic
1043David M KuskoAustralia2025-06-15Feltz Printing Service RENEWAL29Onyama Limba
1044Chavez E MaletIndia2025-05-21Printing Dimensions NEW86Onyama Limba
1045Sinclair M PerinAustralia2025-05-28King, Christopher A Esq NEW76Bernardo Dominic
1046Maria N PoquetteItaly2025-05-29Chemel, James L Cpa PROPOSAL43Asiya Javayant
1047Leja U BowleyIndia2025-05-22King, Christopher A Esq RENEWAL64Amy Elsner
1048Greenwood K AlbaresCanada2025-06-01Chanay, Jeffrey A Esq PROPOSAL52Onyama Limba
1049Mayumi D CaudyGermany2025-05-20Chanay, Jeffrey A Esq PROPOSAL81Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Faith C GlickCanadaOnyama Limba QUALIFIED
Salvatore I VenereIndiaAnna Fali RENEWAL
Aika T NestleFranceElwin Sharvill UNQUALIFIED
Juan P DarakjyUnited KingdomXuxue Feng PROPOSAL
Aika Q CaudyIndiaAmy Elsner PROPOSAL
Alejandro C GarufiGermanyAnna Fali UNQUALIFIED
Maisha I WaycottRussiaAmy Elsner NEGOTIATION
Sinclair Z PaprockiJapanAsiya Javayant UNQUALIFIED
Julie S VenereSpainOnyama Limba NEW
Maria F GarufiCanadaIvan Magalhaes UNQUALIFIED
Kaitlin D NestleRussiaAsiya Javayant NEGOTIATION
Aika G BologniaUnited KingdomIoni Bowcher NEGOTIATION
Smith L DilliardUnited KingdomXuxue Feng UNQUALIFIED
Aruna S DarakjyFranceXuxue Feng NEGOTIATION
Cody M RutaItalyAnna Fali PROPOSAL
Tony M MarrierArgentinaAsiya Javayant NEGOTIATION
Izzy V CaudyJapanIvan Magalhaes NEGOTIATION
Silvio E GillianUnited KingdomAmy Elsner UNQUALIFIED
David F IturbideRussiaAmy Elsner PROPOSAL
Antonio W AlbaresCanadaElwin Sharvill NEW
Murillo P GillianJapanAsiya Javayant PROPOSAL
Misaki G SchemmerCanadaStephen Shaw RENEWAL
Mayumi H ChuiCanadaAsiya Javayant NEW
Antonio I GlickAustraliaOnyama Limba RENEWAL
Greenwood W NickaCanadaAnna Fali RENEWAL
Kaitlin O CampainBrazilBernardo Dominic NEGOTIATION
Murillo S FerenczGermanyIoni Bowcher QUALIFIED
Jefferson D MarrierArgentinaIvan Magalhaes QUALIFIED
Sinclair D PerinItalyAsiya Javayant UNQUALIFIED
Stacey Z GlickItalyAmy Elsner QUALIFIED
Cody S CampainBrazilXuxue Feng NEGOTIATION
Francesco Y WaycottCanadaIoni Bowcher NEGOTIATION
Silvio D GauchoFranceBernardo Dominic NEW
Julie J FlosiAustraliaAmy Elsner NEGOTIATION
Johnson K SchemmerIndiaXuxue Feng RENEWAL
Leon F AmigonSpainAnna Fali RENEWAL
Leja T NestleArgentinaOnyama Limba QUALIFIED
Greenwood A WhobreyRussiaAmy Elsner UNQUALIFIED
Aditya Y InouyeFranceAsiya Javayant NEW
Murillo Q StensethUnited KingdomIvan Magalhaes PROPOSAL
Jennifer G BowleyAustraliaAnna Fali NEGOTIATION
Jeanfrancois M ShinkoAustraliaAnna Fali NEGOTIATION
Claire R BologniaFranceBernardo Dominic NEGOTIATION
Chavez R DarakjyFranceStephen Shaw NEGOTIATION
Isabel L PoquetteFranceAnna Fali UNQUALIFIED
Nicolas F NickaSpainBernardo Dominic PROPOSAL
Mayumi S NestleSpainIoni Bowcher UNQUALIFIED
Emily D KuskoSpainStephen Shaw UNQUALIFIED
Mujtaba D VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Aika M PaprockiUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Isabel N Rulapaugh
Sinclair D Albares
Clifford B Poquette
Silvio I Dilliard
Wickens J Nicka
Rodrigues K Royster
Tony Y Bolognia
Maria H Caudy
Octavia W Stenseth
Mujtaba E Malet
Francesco Q Saylors
Misaki Y Perin
Aditya P Inouye
Sinclair V Inouye
Izzy W Saylors
Smith T Oldroyd
James P Gaucho
Arvin P Perin
Arvin C Morasca
Aika M Iturbide
Octavia H Waycott
Chavez L Malet
Stacey V Waycott
Jeanfrancois Y Caudy
Rodrigues L Caldarera
Ricardo X Paprocki
Jennifer F Perin
Octavia B Campain
Tony E Stenseth
Silvio J Nicka
Leja G Poquette
Jennifer E Dilliard
Alejandro K Vocelka
Aruna V Venere
Greenwood N Albares
Costa F Maclead
Ashley X Nicka
Salvatore J Shinko
Julie Q Wieser
Leon Y Ostrosky
Leon Y Iturbide
Munro U Waycott
Misaki Q Bolognia
Silvio D Gaucho
Tony V Darakjy
Ivar C Campain
Emily K Malet
Leon A Poquette
Claire T Ruta
Kaitlin K Caudy
IdCountryDate
1000Brazil2025-05-25
1001United Kingdom2025-06-12
1002United Kingdom2025-05-23
1003Brazil2025-05-31
1004Brazil2025-05-21
1005United Kingdom2025-06-09
1006France2025-05-31
1007Japan2025-05-18
1008Canada2025-06-08
1009Germany2025-06-09
1010Argentina2025-05-23
1011United Kingdom2025-05-31
1012United Kingdom2025-05-21
1013France2025-06-08
1014Australia2025-06-08
1015India2025-05-20
1016Canada2025-06-12
1017Canada2025-06-02
1018India2025-06-01
1019Brazil2025-05-19
1020Japan2025-06-11
1021Spain2025-05-22
1022Russia2025-05-25
1023Spain2025-05-25
1024Germany2025-05-22
1025France2025-05-28
1026Australia2025-06-06
1027Brazil2025-06-02
1028Germany2025-06-09
1029Italy2025-05-26
1030India2025-05-24
1031Russia2025-05-26
1032Italy2025-06-09
1033India2025-05-23
1034Spain2025-06-16
1035Spain2025-06-02
1036Japan2025-06-15
1037India2025-05-24
1038Russia2025-06-08
1039Italy2025-05-23
1040India2025-06-08
1041India2025-06-05
1042Argentina2025-06-09
1043Brazil2025-05-26
1044Russia2025-05-30
1045Germany2025-05-24
1046Italy2025-06-05
1047Canada2025-06-13
1048France2025-06-13
1049Germany2025-05-19

On-Demand Data

NameIdCountryDate
Kaitlin U Briddick1000Germany2025-06-07
Jennifer R Stenseth1001Australia2025-06-13
Emily U Marrier1002Argentina2025-05-25
Morrow H Gillian1003Australia2025-06-05
Julie T Ruta1004Brazil2025-06-08
Aruna D Kusko1005Russia2025-05-22
Rodrigues G Vocelka1006Spain2025-06-14
Faith S Waycott1007France2025-06-16
Kaitlin A Iturbide1008India2025-06-12
James S Venere1009Canada2025-06-14
Ashley X Tollner1010Germany2025-06-08
Jeanfrancois Z Inouye1011India2025-06-13
Mayumi G Caldarera1012United Kingdom2025-06-06
Smith A Ferencz1013Russia2025-05-29
Darci I Doe1014Australia2025-05-23
Mujtaba T Gillian1015Russia2025-05-18
Jones D Rulapaugh1016Russia2025-05-25
Jones Y Whobrey1017Argentina2025-05-29
Leja Y Glick1018Brazil2025-05-25
Claire U Malet1019Japan2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar J SchemmerItalyXuxue Feng QUALIFIED
Faith B DoeCanadaIoni Bowcher UNQUALIFIED
Darci C MaletCanadaAmy Elsner RENEWAL
Jefferson D BriddickGermanyBernardo Dominic NEW
Clifford R PerinIndiaIvan Magalhaes RENEWAL
Jennifer U SlusarskiCanadaOnyama Limba PROPOSAL
Cody Y BowleyRussiaIvan Magalhaes UNQUALIFIED
Ivar O ButtAustraliaElwin Sharvill NEW
Aditya I PerinUnited KingdomIvan Magalhaes RENEWAL
Jones Q CaudyFranceAmy Elsner UNQUALIFIED
Maria L GauchoBrazilIvan Magalhaes NEW
Aika P FlosiArgentinaAnna Fali RENEWAL
Claire K MorascaArgentinaOnyama Limba UNQUALIFIED
Cody B MorascaBrazilStephen Shaw RENEWAL
Faith S VocelkaRussiaAnna Fali RENEWAL
Adams A FollerFranceAsiya Javayant NEGOTIATION
Salvatore V MaletGermanyElwin Sharvill NEGOTIATION
Smith N MaletFranceAmy Elsner NEGOTIATION
Julie B AlbaresBrazilAnna Fali NEGOTIATION
Jefferson A FlosiAustraliaXuxue Feng NEW
Leon A MaletFranceElwin Sharvill QUALIFIED
Greenwood E ShinkoItalyOnyama Limba NEW
Adams Q OstroskyBrazilIvan Magalhaes UNQUALIFIED
Aditya T StensethRussiaIvan Magalhaes UNQUALIFIED
Izzy V CampainFranceIvan Magalhaes NEW
Kaitlin F PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Maria T GauchoArgentinaAnna Fali NEGOTIATION
Faith V PerinAustraliaStephen Shaw NEGOTIATION
Wickens P IturbideSpainBernardo Dominic UNQUALIFIED
Costa C OldroydItalyAmy Elsner QUALIFIED
Aika O CaudyAustraliaIoni Bowcher QUALIFIED
Mayumi P ButtCanadaIoni Bowcher QUALIFIED
Chavez M OldroydUnited KingdomStephen Shaw PROPOSAL
Nicolas A TollnerBrazilIvan Magalhaes RENEWAL
Smith Y PoquetteGermanyElwin Sharvill PROPOSAL
Aika D BowleyFranceElwin Sharvill NEGOTIATION
Maria G BologniaAustraliaAmy Elsner NEW
Silvio R RutaRussiaIvan Magalhaes NEGOTIATION
James I WaycottUnited KingdomElwin Sharvill NEW
Ivar Y SchemmerSpainAsiya Javayant 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>