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 Z IturbideItalyAnna Fali NEW
Tony C CampainItalyOnyama Limba RENEWAL
Octavia S FollerAustraliaXuxue Feng QUALIFIED
Isabel A BowleyCanadaAmy Elsner UNQUALIFIED
Octavia K KuskoArgentinaBernardo Dominic QUALIFIED
Adams S DarakjyBrazilBernardo Dominic PROPOSAL
Leja W BriddickItalyAsiya Javayant NEGOTIATION
Adams M OldroydFranceOnyama Limba PROPOSAL
Isabel H FlosiIndiaAnna Fali QUALIFIED
Costa X MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Julie F NestleArgentinaIvan Magalhaes QUALIFIED
Munro R DarakjyUnited KingdomElwin Sharvill PROPOSAL
Mujtaba U BowleyRussiaIoni Bowcher RENEWAL
Jones A FollerSpainAnna Fali RENEWAL
Darci Z WaycottRussiaIvan Magalhaes NEGOTIATION
Maria H WhobreyJapanIoni Bowcher QUALIFIED
Jeanfrancois N ShinkoArgentinaAmy Elsner UNQUALIFIED
Jones T NickaItalyXuxue Feng NEW
Deepesh Q OstroskyRussiaXuxue Feng RENEWAL
Aika W MaletCanadaIoni Bowcher NEW
James M StockhamArgentinaBernardo Dominic UNQUALIFIED
Juan X TollnerFranceOnyama Limba NEGOTIATION
Adams U RoysterBrazilAmy Elsner RENEWAL
Juan T DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Tony U TollnerFranceBernardo Dominic NEW
Adams D FigeroaGermanyAnna Fali PROPOSAL
Julie Y SergiRussiaStephen Shaw PROPOSAL
James C SergiItalyAmy Elsner RENEWAL
Smith H WaycottBrazilAmy Elsner PROPOSAL
Nicolas E GillianItalyAmy Elsner UNQUALIFIED
Emily L MaletGermanyStephen Shaw RENEWAL
Salvatore U ButtGermanyElwin Sharvill NEGOTIATION
David Q KuskoUnited KingdomIoni Bowcher RENEWAL
David L BriddickGermanyElwin Sharvill QUALIFIED
Rodrigues L DoeRussiaAmy Elsner QUALIFIED
Darci V WieserGermanyAnna Fali PROPOSAL
Ivar E GillianIndiaOnyama Limba QUALIFIED
Francesco Y AmigonUnited KingdomOnyama Limba NEGOTIATION
Adams Z AlbaresRussiaIoni Bowcher QUALIFIED
Ricardo G MorascaBrazilIoni Bowcher PROPOSAL
Sinclair I PoquetteArgentinaAnna Fali UNQUALIFIED
Ivar L FlosiItalyStephen Shaw PROPOSAL
Claire Q ButtUnited KingdomAmy Elsner PROPOSAL
Izzy A MarrierCanadaIoni Bowcher PROPOSAL
Julie Y WaycottItalyAnna Fali PROPOSAL
Rodrigues Y DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Stacey F CaudySpainOnyama Limba NEGOTIATION
Deepesh C BriddickGermanyElwin Sharvill NEGOTIATION
Leon M MorascaArgentinaOnyama Limba QUALIFIED
Leon U DoeRussiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Darci M OstroskyJapanAnna Fali QUALIFIED
Claire M CaudyBrazilElwin Sharvill UNQUALIFIED
Chavez Q MaletBrazilAnna Fali NEW
David A StensethArgentinaIoni Bowcher PROPOSAL
Ashley U SlusarskiBrazilAsiya Javayant UNQUALIFIED
Octavia W MacleadJapanAsiya Javayant NEGOTIATION
Juan G OldroydGermanyStephen Shaw RENEWAL
Izzy B BologniaArgentinaOnyama Limba UNQUALIFIED
Ivar R AmigonFranceOnyama Limba UNQUALIFIED
James X MacleadSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco B DilliardItaly2026-06-21Feltz Printing Service NEW6Ioni Bowcher
1001Ivar Y WhobreyItaly2026-06-26Buckley Miller Wright PROPOSAL4Anna Fali
1002Octavia N CaldareraItaly2026-06-28Rousseaux, Michael Esq UNQUALIFIED23Anna Fali
1003Leja K SaylorsAustralia2026-06-04Truhlar And Truhlar Attys RENEWAL46Ioni Bowcher
1004Tony R DilliardCanada2026-07-01Chanay, Jeffrey A Esq PROPOSAL79Amy Elsner
1005Costa C GauchoArgentina2026-06-07King, Christopher A Esq NEW55Amy Elsner
1006Costa A BriddickJapan2026-06-23Chemel, James L Cpa RENEWAL13Ioni Bowcher
1007Sinclair Q MarrierSpain2026-07-03Buckley Miller Wright UNQUALIFIED85Stephen Shaw
1008Kadeem K SlusarskiFrance2026-06-10Feltz Printing Service NEGOTIATION32Onyama Limba
1009Clifford G FerenczItaly2026-06-10Commercial Press PROPOSAL38Anna Fali
1010Costa L BowleyItaly2026-07-03Truhlar And Truhlar Attys UNQUALIFIED84Bernardo Dominic
1011Deepesh L FlosiSpain2026-06-17Chanay, Jeffrey A Esq NEGOTIATION92Elwin Sharvill
1012Alejandro M StensethArgentina2026-06-29Dorl, James J Esq PROPOSAL40Asiya Javayant
1013Silvio A WieserBrazil2026-06-05Rousseaux, Michael Esq NEGOTIATION30Xuxue Feng
1014Deepesh F FollerIndia2026-07-02Truhlar And Truhlar Attys NEGOTIATION5Onyama Limba
1015Mujtaba K FlosiIndia2026-06-16Rangoni Of Florence NEW58Bernardo Dominic
1016Arvin D MorascaAustralia2026-06-08Chemel, James L Cpa PROPOSAL94Elwin Sharvill
1017Mayumi V StockhamSpain2026-06-29Morlong Associates RENEWAL36Elwin Sharvill
1018Mujtaba P FlosiUnited Kingdom2026-07-03Buckley Miller Wright NEGOTIATION51Bernardo Dominic
1019Deepesh M WhobreySpain2026-06-30Chanay, Jeffrey A Esq NEGOTIATION71Ioni Bowcher
1020Jeanfrancois G ShinkoRussia2026-06-18Rangoni Of Florence PROPOSAL36Xuxue Feng
1021Julie A MarrierGermany2026-06-07Benton, John B Jr NEGOTIATION74Xuxue Feng
1022Faith T MorascaBrazil2026-07-02Morlong Associates QUALIFIED4Ivan Magalhaes
1023Aruna J RutaFrance2026-06-23Feltz Printing Service RENEWAL0Elwin Sharvill
1024Wickens B MaletJapan2026-06-17Rangoni Of Florence RENEWAL45Onyama Limba
1025Nicolas R OldroydAustralia2026-07-01Benton, John B Jr NEGOTIATION4Anna Fali
1026Mujtaba N FlosiArgentina2026-06-20Morlong Associates NEW68Amy Elsner
1027Jeanfrancois G OstroskyAustralia2026-06-07Chapman, Ross E Esq QUALIFIED95Bernardo Dominic
1028Smith I VocelkaBrazil2026-06-09King, Christopher A Esq UNQUALIFIED62Elwin Sharvill
1029Faith P OldroydIndia2026-07-02Dorl, James J Esq NEGOTIATION38Onyama Limba
1030Maisha A StensethUnited Kingdom2026-07-03Buckley Miller Wright RENEWAL4Asiya Javayant
1031Ivar K PerinJapan2026-06-18Morlong Associates NEW61Stephen Shaw
1032Sinclair T SergiFrance2026-06-17Buckley Miller Wright PROPOSAL0Bernardo Dominic
1033Ashley D RoysterFrance2026-06-10Dorl, James J Esq NEW22Onyama Limba
1034Jeanfrancois B KuskoJapan2026-06-30Feiner Bros UNQUALIFIED13Ioni Bowcher
1035Jefferson C RoysterJapan2026-06-23Feltz Printing Service UNQUALIFIED44Amy Elsner
1036Jeanfrancois L WieserCanada2026-06-24Chapman, Ross E Esq QUALIFIED73Ivan Magalhaes
1037Jones G MaletAustralia2026-06-18Rangoni Of Florence RENEWAL25Amy Elsner
1038Silvio U WhobreyItaly2026-06-15Truhlar And Truhlar Attys NEGOTIATION66Anna Fali
1039Ashley S PerinGermany2026-06-19Rousseaux, Michael Esq UNQUALIFIED79Elwin Sharvill
1040Juan R KuskoCanada2026-06-28King, Christopher A Esq QUALIFIED52Onyama Limba
1041Wickens Z BologniaJapan2026-06-12Buckley Miller Wright RENEWAL85Ioni Bowcher
1042Rodrigues K ButtGermany2026-06-17Morlong Associates PROPOSAL70Xuxue Feng
1043Jefferson N StockhamGermany2026-06-21Feltz Printing Service NEW8Stephen Shaw
1044Izzy X AmigonUnited Kingdom2026-06-07Buckley Miller Wright NEGOTIATION26Onyama Limba
1045Maria L KolmetzAustralia2026-06-12Rangoni Of Florence RENEWAL64Xuxue Feng
1046Aika I StockhamGermany2026-06-15King, Christopher A Esq NEW0Stephen Shaw
1047Johnson L SaylorsGermany2026-06-16Printing Dimensions RENEWAL65Bernardo Dominic
1048Emily R NickaItaly2026-06-10Dorl, James J Esq NEW44Elwin Sharvill
1049Jefferson V OldroydUnited Kingdom2026-06-21Rangoni Of Florence QUALIFIED4Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Leja X AmigonArgentinaBernardo Dominic PROPOSAL
Maria W MorascaBrazilAnna Fali NEW
Silvio R PerinFranceBernardo Dominic PROPOSAL
Rodrigues C VocelkaBrazilBernardo Dominic UNQUALIFIED
Stacey A BologniaJapanIvan Magalhaes QUALIFIED
Cody V RutaBrazilIvan Magalhaes NEGOTIATION
Faith S PaprockiCanadaXuxue Feng RENEWAL
Izzy Z PoquetteIndiaAnna Fali PROPOSAL
Leon J VenereArgentinaBernardo Dominic UNQUALIFIED
Costa F RulapaughCanadaAsiya Javayant UNQUALIFIED
Rodrigues J PerinRussiaXuxue Feng NEW
Emily D SergiBrazilOnyama Limba PROPOSAL
Mujtaba A MacleadItalyIoni Bowcher QUALIFIED
James U MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Claire S KolmetzGermanyOnyama Limba NEGOTIATION
David X RutaCanadaXuxue Feng QUALIFIED
Darci I GarufiItalyAmy Elsner NEGOTIATION
Emily G OldroydCanadaAsiya Javayant RENEWAL
Jones M GarufiIndiaAnna Fali NEGOTIATION
Misaki E FollerFranceIoni Bowcher UNQUALIFIED
Octavia J DarakjyGermanyBernardo Dominic RENEWAL
Isabel Z GarufiGermanyAmy Elsner NEW
Smith M PoquetteUnited KingdomAsiya Javayant NEW
Wickens K SergiArgentinaStephen Shaw PROPOSAL
Mujtaba N SlusarskiGermanyStephen Shaw QUALIFIED
Morrow O SchemmerRussiaIoni Bowcher UNQUALIFIED
Mujtaba L CaudyArgentinaXuxue Feng PROPOSAL
Munro O GarufiJapanXuxue Feng PROPOSAL
Leja Z FollerRussiaBernardo Dominic UNQUALIFIED
Tony H MarrierGermanyOnyama Limba UNQUALIFIED
Julie Z DarakjyArgentinaXuxue Feng QUALIFIED
Salvatore F MaletFranceIvan Magalhaes UNQUALIFIED
Juan W MaletIndiaOnyama Limba PROPOSAL
Chavez I SaylorsIndiaAmy Elsner NEW
Aika C TollnerItalyIoni Bowcher RENEWAL
Antonio R MaletSpainAnna Fali NEW
Isabel N BowleyBrazilIvan Magalhaes NEGOTIATION
Kadeem K MacleadCanadaAmy Elsner NEW
Deepesh O NestleAustraliaBernardo Dominic QUALIFIED
Morrow I SlusarskiSpainIoni Bowcher QUALIFIED
Jones B StensethFranceXuxue Feng RENEWAL
Claire X KolmetzArgentinaStephen Shaw RENEWAL
James O InouyeItalyAmy Elsner NEW
Leon D FlosiAustraliaAsiya Javayant UNQUALIFIED
Maria I KolmetzAustraliaAsiya Javayant PROPOSAL
Maria J MaletAustraliaIvan Magalhaes RENEWAL
Stacey M CaudyJapanIvan Magalhaes NEW
Misaki X BriddickGermanyAnna Fali QUALIFIED
Ricardo B MaletSpainXuxue Feng PROPOSAL
Ricardo K GauchoCanadaAsiya Javayant RENEWAL
Frozen Columns
Name
Mayumi S Perin
Leja X Albares
Rodrigues L Amigon
Kaitlin V Ostrosky
Kaitlin I Ferencz
Clifford M Butt
Aditya H Iturbide
Alejandro V Butt
Jones I Rulapaugh
Salvatore Y Ferencz
Emily N Slusarski
Aruna C Inouye
Salvatore T Rim
Claire A Butt
Leja G Dilliard
David F Shinko
Stacey U Malet
Isabel S Sergi
Isabel E Waycott
Leja X Darakjy
Kadeem H Kusko
Deepesh I Ferencz
Salvatore X Schemmer
Costa Z Poquette
Stacey T Gillian
Smith I Wieser
Johnson B Dilliard
Aditya X Malet
Maisha C Nicka
Octavia F Stockham
Jennifer K Ostrosky
Adams U Rulapaugh
Salvatore S Venere
Wickens S Briddick
Aruna J Venere
Kadeem T Inouye
Ashley I Nestle
Wickens C Paprocki
Silvio L Gaucho
Leon P Albares
Jeanfrancois N Campain
Claire U Vocelka
Antonio P Briddick
Smith M Stenseth
Ashley O Kolmetz
Aruna Z Kolmetz
Tony X Campain
Juan V Tollner
Silvio M Caldarera
Costa L Gaucho
IdCountryDate
1000Canada2026-06-09
1001United Kingdom2026-06-27
1002India2026-06-08
1003Russia2026-06-27
1004Germany2026-06-12
1005Italy2026-06-08
1006Japan2026-06-24
1007France2026-06-26
1008France2026-06-10
1009Japan2026-06-27
1010Brazil2026-06-22
1011France2026-06-13
1012Spain2026-06-30
1013Italy2026-06-08
1014Brazil2026-06-05
1015Brazil2026-06-17
1016Japan2026-06-13
1017Japan2026-06-21
1018Japan2026-07-02
1019Canada2026-06-25
1020Spain2026-07-03
1021Russia2026-06-18
1022Brazil2026-06-18
1023Brazil2026-06-26
1024United Kingdom2026-06-14
1025Canada2026-06-06
1026Germany2026-06-18
1027Italy2026-06-11
1028Argentina2026-06-12
1029Canada2026-06-16
1030Australia2026-06-16
1031Italy2026-06-18
1032Russia2026-06-27
1033Russia2026-06-28
1034India2026-06-04
1035France2026-06-13
1036Argentina2026-06-08
1037Germany2026-06-12
1038Canada2026-06-20
1039Japan2026-06-17
1040India2026-06-13
1041Argentina2026-06-05
1042Italy2026-07-03
1043France2026-06-09
1044Russia2026-06-17
1045Italy2026-06-25
1046Canada2026-07-01
1047Argentina2026-06-26
1048Italy2026-06-27
1049Japan2026-06-09

On-Demand Data

NameIdCountryDate
Wickens M Paprocki1000Russia2026-06-18
Faith M Tollner1001Russia2026-06-16
Julie U Slusarski1002Spain2026-06-21
Johnson O Vocelka1003Argentina2026-06-25
Claire P Campain1004United Kingdom2026-06-04
Clifford V Bolognia1005Brazil2026-06-23
Aika U Darakjy1006Russia2026-06-16
Salvatore W Malet1007Australia2026-06-15
Misaki Z Gaucho1008Brazil2026-06-08
Emily Q Figeroa1009Germany2026-06-25
Salvatore S Foller1010Australia2026-07-02
Alejandro U Marrier1011Argentina2026-06-24
Tony S Kusko1012Germany2026-06-16
Kadeem J Shinko1013Canada2026-07-01
Izzy L Ferencz1014Italy2026-06-21
Arvin H Royster1015Brazil2026-06-09
Aruna T Royster1016Brazil2026-07-03
Leon G Figeroa1017Argentina2026-06-25
Julie G Doe1018Russia2026-06-15
Maria T Whobrey1019Spain2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo Q FerenczIndiaStephen Shaw QUALIFIED
Alejandro P StockhamFranceBernardo Dominic NEW
Alejandro G BriddickGermanyBernardo Dominic NEGOTIATION
Isabel S IturbideUnited KingdomBernardo Dominic PROPOSAL
Kadeem V ShinkoItalyBernardo Dominic UNQUALIFIED
Deepesh H SaylorsRussiaAsiya Javayant RENEWAL
Sinclair R CampainIndiaElwin Sharvill NEW
Arvin Y PoquetteRussiaStephen Shaw QUALIFIED
Salvatore T SaylorsBrazilIvan Magalhaes PROPOSAL
Antonio R CaudyAustraliaAnna Fali UNQUALIFIED
Claire I WaycottBrazilAsiya Javayant QUALIFIED
Kaitlin P WhobreyJapanAsiya Javayant QUALIFIED
Faith E CaudyCanadaIvan Magalhaes RENEWAL
Misaki I AlbaresIndiaBernardo Dominic NEW
Claire B SergiGermanyAnna Fali UNQUALIFIED
Antonio Z RimFranceIvan Magalhaes RENEWAL
Faith X MaletItalyBernardo Dominic RENEWAL
Julie X NestleItalyXuxue Feng UNQUALIFIED
Aruna Q MaletIndiaIvan Magalhaes NEGOTIATION
Maisha W SchemmerBrazilAmy Elsner NEW
Darci P ShinkoJapanBernardo Dominic NEGOTIATION
Aditya D SaylorsCanadaAsiya Javayant RENEWAL
Stacey X RoysterArgentinaAmy Elsner RENEWAL
Mayumi Q TollnerJapanIoni Bowcher QUALIFIED
Mujtaba B ShinkoUnited KingdomBernardo Dominic QUALIFIED
Munro L InouyeUnited KingdomAsiya Javayant PROPOSAL
Leon W RulapaughRussiaStephen Shaw PROPOSAL
Salvatore F RimSpainOnyama Limba PROPOSAL
Jeanfrancois X StockhamGermanyAsiya Javayant UNQUALIFIED
Salvatore M DilliardIndiaOnyama Limba NEW
Emily Z GarufiUnited KingdomAmy Elsner NEGOTIATION
Aruna O NestleFranceAnna Fali PROPOSAL
Arvin L OldroydJapanStephen Shaw PROPOSAL
Julie V MorascaArgentinaBernardo Dominic RENEWAL
Cody Q GillianRussiaIoni Bowcher NEGOTIATION
Adams H MaletArgentinaAsiya Javayant RENEWAL
Jones H WhobreyItalyElwin Sharvill PROPOSAL
Maisha U FlosiCanadaOnyama Limba NEGOTIATION
Octavia D GillianAustraliaAsiya Javayant PROPOSAL
Jeanfrancois A FollerIndiaStephen Shaw 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>