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
Jones M FollerSpainIoni Bowcher PROPOSAL
Aika V KuskoFranceIvan Magalhaes RENEWAL
Greenwood J CaudySpainAmy Elsner QUALIFIED
Leon I ShinkoJapanOnyama Limba QUALIFIED
Mujtaba H FlosiSpainIoni Bowcher RENEWAL
Julie E VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Jefferson V FigeroaIndiaStephen Shaw NEGOTIATION
Antonio Z FlosiIndiaElwin Sharvill NEW
Ricardo G IturbideArgentinaOnyama Limba RENEWAL
Jennifer J KuskoRussiaOnyama Limba RENEWAL
Sinclair J DarakjyIndiaAsiya Javayant QUALIFIED
Jefferson E FlosiJapanAmy Elsner UNQUALIFIED
Izzy U RimJapanIvan Magalhaes QUALIFIED
Leon N MaletArgentinaElwin Sharvill RENEWAL
Murillo L NickaItalyIvan Magalhaes RENEWAL
Tony C StensethSpainOnyama Limba NEW
Nicolas Q OstroskyBrazilIvan Magalhaes RENEWAL
Salvatore E SergiUnited KingdomElwin Sharvill QUALIFIED
Maria X GauchoFranceStephen Shaw UNQUALIFIED
Nicolas P StensethSpainAnna Fali NEW
Julie K MarrierRussiaAsiya Javayant NEW
Kadeem S AmigonBrazilXuxue Feng QUALIFIED
Antonio V OstroskyCanadaElwin Sharvill PROPOSAL
Jones O RutaRussiaAmy Elsner UNQUALIFIED
Nicolas O DilliardFranceXuxue Feng NEW
Aditya E PerinUnited KingdomIoni Bowcher NEGOTIATION
Costa W ChuiGermanyElwin Sharvill PROPOSAL
Isabel X DilliardAustraliaAmy Elsner QUALIFIED
Francesco D StockhamArgentinaAsiya Javayant PROPOSAL
Silvio O BowleyCanadaXuxue Feng UNQUALIFIED
Aika J BriddickSpainAmy Elsner UNQUALIFIED
Smith G DoeArgentinaIoni Bowcher NEW
Sinclair E PaprockiRussiaXuxue Feng QUALIFIED
Maisha J StensethBrazilIoni Bowcher QUALIFIED
Greenwood M WaycottGermanyIvan Magalhaes PROPOSAL
Octavia A DoeItalyAnna Fali RENEWAL
Octavia S ChuiItalyIoni Bowcher RENEWAL
Nicolas W BologniaUnited KingdomElwin Sharvill PROPOSAL
Stacey C GauchoUnited KingdomAmy Elsner QUALIFIED
Leon B AmigonSpainXuxue Feng RENEWAL
Misaki L FollerAustraliaStephen Shaw PROPOSAL
Johnson O ChuiJapanAsiya Javayant NEGOTIATION
Julie I OstroskyRussiaElwin Sharvill NEW
Octavia L ShinkoIndiaXuxue Feng NEW
Julie Z RoysterFranceStephen Shaw RENEWAL
Silvio F GarufiBrazilOnyama Limba NEGOTIATION
Silvio H DarakjyArgentinaAnna Fali UNQUALIFIED
Morrow A ShinkoIndiaElwin Sharvill QUALIFIED
Misaki X RimFranceAsiya Javayant QUALIFIED
Silvio H DarakjyIndiaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair Q SlusarskiAustraliaXuxue Feng UNQUALIFIED
David O GarufiUnited KingdomStephen Shaw RENEWAL
Julie X KolmetzArgentinaElwin Sharvill RENEWAL
Izzy X AmigonRussiaXuxue Feng QUALIFIED
Izzy I StensethUnited KingdomElwin Sharvill NEW
Isabel W GauchoSpainAsiya Javayant UNQUALIFIED
Adams M ButtFranceAmy Elsner RENEWAL
Deepesh F SchemmerCanadaIvan Magalhaes NEW
Izzy C MarrierFranceBernardo Dominic RENEWAL
Ricardo X ShinkoJapanXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna Y BologniaArgentina2026-08-24Morlong Associates PROPOSAL58Asiya Javayant
1001Smith M RutaFrance2026-08-21Feltz Printing Service NEGOTIATION61Asiya Javayant
1002Isabel R MarrierItaly2026-08-05Morlong Associates NEW98Xuxue Feng
1003Sinclair Y NickaArgentina2026-09-02Dorl, James J Esq NEW71Anna Fali
1004Maria K PoquetteCanada2026-08-22Commercial Press NEGOTIATION1Stephen Shaw
1005Maisha H GillianIndia2026-09-01Buckley Miller Wright NEGOTIATION0Stephen Shaw
1006Jennifer C GillianIndia2026-08-21Commercial Press NEGOTIATION53Ivan Magalhaes
1007Julie X GarufiCanada2026-08-28Printing Dimensions NEW19Ivan Magalhaes
1008Aditya M FlosiFrance2026-08-24Chapman, Ross E Esq RENEWAL7Bernardo Dominic
1009Arvin E RoysterAustralia2026-08-28Benton, John B Jr NEGOTIATION44Asiya Javayant
1010Jefferson H MaletIndia2026-08-10Feltz Printing Service PROPOSAL80Ioni Bowcher
1011Aditya S DoeCanada2026-09-01Benton, John B Jr RENEWAL24Ivan Magalhaes
1012Murillo H OstroskyJapan2026-08-09Chanay, Jeffrey A Esq NEGOTIATION33Ivan Magalhaes
1013Smith I MarrierBrazil2026-08-23Morlong Associates UNQUALIFIED63Xuxue Feng
1014Isabel F FigeroaArgentina2026-08-09Printing Dimensions NEW53Elwin Sharvill
1015Ricardo Q FerenczAustralia2026-08-20Printing Dimensions UNQUALIFIED70Onyama Limba
1016Greenwood Z RutaGermany2026-08-11Feltz Printing Service PROPOSAL24Amy Elsner
1017Aditya N MacleadArgentina2026-08-30Truhlar And Truhlar Attys RENEWAL66Ioni Bowcher
1018Munro A SaylorsRussia2026-08-09Buckley Miller Wright UNQUALIFIED45Xuxue Feng
1019Mayumi G TollnerSpain2026-08-29Printing Dimensions QUALIFIED82Ioni Bowcher
1020James C WhobreyIndia2026-08-22Chapman, Ross E Esq RENEWAL64Asiya Javayant
1021Morrow A SaylorsBrazil2026-08-30Dorl, James J Esq NEW92Onyama Limba
1022Aruna Q MaletBrazil2026-08-25Rangoni Of Florence NEW12Anna Fali
1023Ricardo O FigeroaRussia2026-08-14Morlong Associates UNQUALIFIED28Onyama Limba
1024Deepesh E OldroydBrazil2026-08-25Dorl, James J Esq PROPOSAL89Asiya Javayant
1025Emily Y MaletFrance2026-08-06Feiner Bros RENEWAL13Stephen Shaw
1026Ivar U FigeroaUnited Kingdom2026-08-09Chemel, James L Cpa UNQUALIFIED41Xuxue Feng
1027Mujtaba R SchemmerGermany2026-08-24Chanay, Jeffrey A Esq RENEWAL26Bernardo Dominic
1028Aditya K VenereItaly2026-08-10Chapman, Ross E Esq NEGOTIATION10Anna Fali
1029Faith A BriddickSpain2026-08-28Morlong Associates RENEWAL41Ivan Magalhaes
1030Kaitlin Y GillianCanada2026-08-08Dorl, James J Esq RENEWAL67Ioni Bowcher
1031Greenwood N InouyeSpain2026-09-03Rangoni Of Florence NEW35Ioni Bowcher
1032Mujtaba A RoysterAustralia2026-09-03Benton, John B Jr NEW12Asiya Javayant
1033Maisha L CaldareraUnited Kingdom2026-08-15Rousseaux, Michael Esq RENEWAL36Asiya Javayant
1034Isabel U VenereJapan2026-08-09Benton, John B Jr QUALIFIED59Elwin Sharvill
1035Maisha J WieserIndia2026-08-19Chanay, Jeffrey A Esq PROPOSAL79Ivan Magalhaes
1036Leja D FollerSpain2026-08-05Printing Dimensions NEW31Ivan Magalhaes
1037Arvin S WaycottFrance2026-08-06Dorl, James J Esq RENEWAL62Elwin Sharvill
1038Ricardo F PerinGermany2026-08-22Rousseaux, Michael Esq NEW67Stephen Shaw
1039Juan B ButtSpain2026-09-03Morlong Associates UNQUALIFIED41Xuxue Feng
1040Arvin J FerenczFrance2026-08-22Commercial Press RENEWAL98Ivan Magalhaes
1041Jefferson S AlbaresUnited Kingdom2026-08-06Printing Dimensions PROPOSAL97Ivan Magalhaes
1042Leja H KuskoSpain2026-08-07Truhlar And Truhlar Attys RENEWAL79Ivan Magalhaes
1043Morrow U PoquetteBrazil2026-08-17Morlong Associates NEGOTIATION74Amy Elsner
1044Maria P WhobreyUnited Kingdom2026-08-10Buckley Miller Wright UNQUALIFIED21Ioni Bowcher
1045Maisha B GillianItaly2026-08-08Rousseaux, Michael Esq NEGOTIATION89Anna Fali
1046Nicolas I MaletIndia2026-08-17Benton, John B Jr UNQUALIFIED18Stephen Shaw
1047Adams B SlusarskiGermany2026-08-24Rangoni Of Florence NEGOTIATION69Onyama Limba
1048Mayumi O FollerSpain2026-08-12Buckley Miller Wright NEGOTIATION88Asiya Javayant
1049Nicolas H SlusarskiCanada2026-08-24Buckley Miller Wright NEW28Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Stacey K NestleItalyStephen Shaw QUALIFIED
Ashley X IturbideJapanXuxue Feng PROPOSAL
Mujtaba D VenereUnited KingdomIvan Magalhaes NEW
Antonio J StensethGermanyXuxue Feng NEGOTIATION
Smith J CaudyIndiaAmy Elsner NEGOTIATION
Mujtaba S SlusarskiFranceBernardo Dominic QUALIFIED
Ivar R StensethRussiaStephen Shaw NEW
Maria P BologniaFranceOnyama Limba QUALIFIED
Nicolas P RimJapanIvan Magalhaes PROPOSAL
Alejandro R MorascaItalyAmy Elsner UNQUALIFIED
Jones D VenereIndiaAnna Fali QUALIFIED
Chavez B KuskoJapanStephen Shaw PROPOSAL
Francesco U BowleyUnited KingdomStephen Shaw RENEWAL
Deepesh W MorascaSpainStephen Shaw PROPOSAL
Leon X NestleRussiaStephen Shaw NEW
David E VenereGermanyIoni Bowcher RENEWAL
Salvatore X CaudyRussiaStephen Shaw RENEWAL
Costa J ButtCanadaAsiya Javayant NEW
Greenwood K StockhamCanadaAsiya Javayant PROPOSAL
Aruna R GauchoJapanIvan Magalhaes NEGOTIATION
Sinclair K InouyeBrazilAnna Fali PROPOSAL
Adams K WhobreyCanadaAmy Elsner RENEWAL
Ashley J VenereFranceOnyama Limba PROPOSAL
Chavez Z ShinkoItalyIvan Magalhaes PROPOSAL
Sinclair K StensethJapanElwin Sharvill QUALIFIED
Clifford J PaprockiFranceAsiya Javayant PROPOSAL
Wickens M SergiUnited KingdomOnyama Limba RENEWAL
Wickens S MacleadGermanyAsiya Javayant NEW
Costa I FollerRussiaAnna Fali UNQUALIFIED
Stacey X CaldareraBrazilElwin Sharvill RENEWAL
Mujtaba J PoquetteArgentinaXuxue Feng QUALIFIED
Antonio C KuskoIndiaAmy Elsner UNQUALIFIED
Izzy A FlosiItalyStephen Shaw PROPOSAL
Deepesh D StensethGermanyAnna Fali RENEWAL
Aruna T VocelkaJapanBernardo Dominic PROPOSAL
Nicolas Y InouyeFranceElwin Sharvill NEGOTIATION
Maria G AlbaresRussiaStephen Shaw QUALIFIED
Murillo R FlosiUnited KingdomXuxue Feng QUALIFIED
Faith V StockhamIndiaBernardo Dominic RENEWAL
Deepesh J DilliardGermanyOnyama Limba UNQUALIFIED
Kadeem V SaylorsSpainXuxue Feng UNQUALIFIED
Chavez C RutaCanadaIoni Bowcher UNQUALIFIED
David X BowleyArgentinaIvan Magalhaes UNQUALIFIED
Claire A RoysterSpainAsiya Javayant PROPOSAL
Darci Y SchemmerIndiaAnna Fali RENEWAL
Maisha T DoeRussiaOnyama Limba NEGOTIATION
Adams X WaycottAustraliaElwin Sharvill NEW
Costa S PoquetteCanadaAmy Elsner UNQUALIFIED
Jennifer E RutaGermanyAsiya Javayant PROPOSAL
Kadeem E DilliardIndiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Silvio L Perin
Ashley J Saylors
Johnson D Wieser
Silvio T Kusko
Nicolas O Chui
Darci G Caldarera
Murillo U Morasca
Stacey A Sergi
Francesco W Briddick
Izzy L Dilliard
David R Flosi
Isabel D Albares
Aika L Malet
Maisha K Whobrey
Jones V Saylors
Jennifer E Stockham
Jennifer G Doe
Alejandro F Rulapaugh
Misaki M Royster
Alejandro A Malet
Maria X Caldarera
Mujtaba V Gaucho
Jefferson Q Doe
Izzy B Nicka
Rodrigues W Paprocki
Ivar Z Morasca
Leon L Stenseth
Isabel T Kusko
Jennifer J Dilliard
Misaki K Sergi
Jennifer S Stenseth
Aika M Garufi
Kaitlin H Nestle
Wickens S Waycott
Stacey M Stockham
Murillo V Schemmer
Juan Y Darakjy
Isabel T Kolmetz
Izzy X Bolognia
Francesco K Bolognia
Stacey H Oldroyd
Nicolas X Marrier
Kadeem C Bowley
Faith F Tollner
Misaki G Bowley
Wickens Q Campain
Misaki C Sergi
Smith X Figeroa
Juan H Ferencz
Jefferson U Foller
IdCountryDate
1000Japan2026-08-27
1001Canada2026-08-19
1002France2026-08-22
1003Italy2026-08-08
1004Japan2026-08-23
1005Argentina2026-08-11
1006Australia2026-08-25
1007Brazil2026-08-15
1008Russia2026-08-05
1009Spain2026-08-21
1010Australia2026-09-03
1011Japan2026-08-09
1012United Kingdom2026-08-05
1013Canada2026-08-22
1014Spain2026-08-22
1015France2026-08-19
1016Brazil2026-08-06
1017France2026-08-31
1018Italy2026-08-15
1019France2026-08-13
1020India2026-08-29
1021Argentina2026-08-24
1022Brazil2026-08-11
1023Russia2026-08-22
1024Spain2026-08-19
1025Japan2026-09-01
1026Spain2026-08-22
1027Germany2026-08-05
1028Italy2026-08-06
1029Argentina2026-08-20
1030United Kingdom2026-08-12
1031France2026-08-14
1032Italy2026-08-26
1033Brazil2026-08-12
1034France2026-08-16
1035Australia2026-08-20
1036Spain2026-08-22
1037Russia2026-08-08
1038Russia2026-08-20
1039United Kingdom2026-08-23
1040Italy2026-08-18
1041Australia2026-08-18
1042Japan2026-08-18
1043Spain2026-08-29
1044Italy2026-09-03
1045Canada2026-08-26
1046Spain2026-08-12
1047Argentina2026-08-22
1048United Kingdom2026-08-31
1049France2026-08-24

On-Demand Data

NameIdCountryDate
Mayumi Z Bowley1000India2026-08-11
Smith V Foller1001Brazil2026-08-18
Salvatore W Wieser1002Canada2026-08-15
Izzy N Ferencz1003Japan2026-08-08
Leon V Nestle1004India2026-08-23
Julie Y Caudy1005Spain2026-08-14
Murillo B Dilliard1006Japan2026-08-25
Mujtaba J Whobrey1007Brazil2026-09-03
Morrow U Glick1008Argentina2026-08-20
Munro N Bolognia1009Canada2026-08-31
Emily P Darakjy1010Australia2026-08-29
Antonio M Butt1011Japan2026-08-23
David D Gillian1012Germany2026-08-09
Kaitlin C Morasca1013Italy2026-08-08
Jennifer G Morasca1014Russia2026-08-14
Tony T Foller1015Japan2026-08-21
Deepesh G Caldarera1016Brazil2026-08-18
Darci B Stenseth1017Australia2026-08-16
Alejandro Q Wieser1018Argentina2026-08-22
Aditya C Poquette1019Spain2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith M StockhamFranceIvan Magalhaes RENEWAL
Ashley F VenereGermanyBernardo Dominic NEGOTIATION
Ivar S ChuiRussiaAnna Fali PROPOSAL
Claire U VenereJapanAmy Elsner QUALIFIED
Maisha T BriddickAustraliaAsiya Javayant NEGOTIATION
Julie O DilliardBrazilStephen Shaw PROPOSAL
Aditya V GarufiItalyStephen Shaw QUALIFIED
Misaki N BologniaSpainBernardo Dominic UNQUALIFIED
Murillo M MacleadRussiaIoni Bowcher RENEWAL
Adams V AlbaresFranceAmy Elsner RENEWAL
Kaitlin U KolmetzRussiaIoni Bowcher UNQUALIFIED
Ashley L GillianItalyXuxue Feng NEW
Arvin W FollerJapanIoni Bowcher QUALIFIED
Jennifer M GlickRussiaIvan Magalhaes QUALIFIED
Nicolas V InouyeSpainAsiya Javayant NEGOTIATION
Izzy C CaudyJapanIvan Magalhaes UNQUALIFIED
Izzy F KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Jones H OstroskyItalyStephen Shaw PROPOSAL
Costa V CampainGermanyOnyama Limba PROPOSAL
Johnson O MarrierArgentinaElwin Sharvill UNQUALIFIED
Johnson R GillianCanadaElwin Sharvill UNQUALIFIED
James D GlickArgentinaAnna Fali RENEWAL
Misaki L TollnerArgentinaOnyama Limba NEW
Darci R FerenczUnited KingdomOnyama Limba PROPOSAL
Jefferson L CaudyUnited KingdomAnna Fali UNQUALIFIED
Maria N ButtIndiaXuxue Feng NEW
David A OldroydJapanXuxue Feng NEW
Jennifer D SlusarskiBrazilAnna Fali UNQUALIFIED
Octavia O AlbaresAustraliaIoni Bowcher NEGOTIATION
Wickens S BologniaBrazilAnna Fali RENEWAL
Morrow X BowleyIndiaIoni Bowcher UNQUALIFIED
Antonio O RulapaughSpainIoni Bowcher PROPOSAL
Maria H ButtJapanBernardo Dominic UNQUALIFIED
Leon N NickaItalyIvan Magalhaes NEGOTIATION
Misaki N MarrierArgentinaIoni Bowcher QUALIFIED
Adams C StockhamRussiaIvan Magalhaes UNQUALIFIED
Cody X FerenczAustraliaIvan Magalhaes NEGOTIATION
Leon F WaycottBrazilAsiya Javayant QUALIFIED
Clifford P StockhamRussiaStephen Shaw QUALIFIED
James M DarakjyIndiaOnyama Limba 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>