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
Costa S PaprockiRussiaIvan Magalhaes RENEWAL
Emily E VocelkaJapanXuxue Feng UNQUALIFIED
Nicolas S DilliardRussiaOnyama Limba NEGOTIATION
Nicolas M VenereItalyAnna Fali PROPOSAL
Munro L WhobreyAustraliaBernardo Dominic NEGOTIATION
Salvatore I DarakjyGermanyBernardo Dominic NEW
Aruna E AmigonFranceAsiya Javayant RENEWAL
Juan U KolmetzGermanyBernardo Dominic NEW
Jones O OldroydFranceBernardo Dominic PROPOSAL
Munro U SchemmerCanadaIvan Magalhaes NEW
Kaitlin Q InouyeAustraliaAmy Elsner NEGOTIATION
Ashley Y MacleadFranceAsiya Javayant NEGOTIATION
Octavia R ButtIndiaAnna Fali UNQUALIFIED
Juan O MorascaBrazilBernardo Dominic NEGOTIATION
Alejandro L FlosiItalyOnyama Limba QUALIFIED
Leja L IturbideArgentinaXuxue Feng NEW
Maisha B SergiArgentinaAsiya Javayant RENEWAL
David L NestleIndiaBernardo Dominic UNQUALIFIED
Izzy L PerinSpainAmy Elsner NEGOTIATION
Smith V FollerUnited KingdomAsiya Javayant NEGOTIATION
Costa M BriddickIndiaXuxue Feng UNQUALIFIED
Wickens H RulapaughArgentinaIvan Magalhaes NEW
Jennifer Y StensethFranceAsiya Javayant QUALIFIED
Ricardo K GlickCanadaBernardo Dominic UNQUALIFIED
Faith S ChuiUnited KingdomStephen Shaw NEGOTIATION
Emily F WhobreyGermanyAmy Elsner RENEWAL
Jennifer B NickaItalyIvan Magalhaes QUALIFIED
Arvin Q ChuiRussiaAsiya Javayant UNQUALIFIED
Izzy Z CaldareraCanadaAmy Elsner QUALIFIED
Isabel H BowleyCanadaAnna Fali PROPOSAL
Leja R GauchoUnited KingdomIvan Magalhaes PROPOSAL
Francesco P RimGermanyAnna Fali QUALIFIED
Jefferson E CaldareraSpainAnna Fali PROPOSAL
Faith E PerinRussiaAsiya Javayant UNQUALIFIED
Aruna B NickaItalyStephen Shaw RENEWAL
Kaitlin B WieserSpainXuxue Feng PROPOSAL
Antonio G FigeroaAustraliaOnyama Limba UNQUALIFIED
Maisha N SlusarskiItalyIoni Bowcher PROPOSAL
Jones V GlickArgentinaBernardo Dominic QUALIFIED
Claire K InouyeGermanyAsiya Javayant UNQUALIFIED
Maria K PerinJapanOnyama Limba PROPOSAL
Misaki Z RimUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois G WaycottFranceIvan Magalhaes NEW
Emily E PoquetteCanadaElwin Sharvill QUALIFIED
Nicolas N AlbaresFranceBernardo Dominic NEGOTIATION
Aika Y OstroskyAustraliaBernardo Dominic RENEWAL
Cody I InouyeItalyBernardo Dominic QUALIFIED
Kaitlin A MorascaSpainBernardo Dominic UNQUALIFIED
Aruna Q PaprockiAustraliaXuxue Feng UNQUALIFIED
Chavez Q FollerFranceStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia Y CampainGermanyOnyama Limba PROPOSAL
Nicolas P PoquetteFranceAsiya Javayant RENEWAL
Stacey E MacleadSpainIvan Magalhaes NEW
Ricardo R KolmetzJapanAmy Elsner PROPOSAL
Johnson N GarufiBrazilBernardo Dominic NEGOTIATION
Jeanfrancois M FollerIndiaAmy Elsner NEW
Stacey W DoeArgentinaIoni Bowcher UNQUALIFIED
Salvatore D BologniaBrazilIoni Bowcher NEGOTIATION
Chavez R CampainArgentinaXuxue Feng QUALIFIED
Arvin F RutaGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey X RutaCanada2026-06-29Buckley Miller Wright PROPOSAL67Onyama Limba
1001Aika N InouyeRussia2026-06-25Morlong Associates PROPOSAL75Anna Fali
1002Julie C KuskoFrance2026-06-25Commercial Press NEW77Ioni Bowcher
1003Aruna D AlbaresJapan2026-06-27Printing Dimensions UNQUALIFIED12Onyama Limba
1004Emily T AmigonArgentina2026-07-15Rousseaux, Michael Esq PROPOSAL55Ioni Bowcher
1005Francesco H CaldareraRussia2026-06-26Feltz Printing Service UNQUALIFIED42Stephen Shaw
1006Izzy O AlbaresGermany2026-07-17Morlong Associates NEW18Amy Elsner
1007Stacey H AmigonFrance2026-06-30Chapman, Ross E Esq NEW67Asiya Javayant
1008Tony P BowleyArgentina2026-07-16Dorl, James J Esq UNQUALIFIED22Asiya Javayant
1009Isabel L DilliardFrance2026-07-17Printing Dimensions NEW88Bernardo Dominic
1010Aika P MarrierIndia2026-07-17Buckley Miller Wright NEW33Amy Elsner
1011Aruna P SergiGermany2026-07-04Rousseaux, Michael Esq QUALIFIED21Stephen Shaw
1012Faith F BriddickAustralia2026-07-04Truhlar And Truhlar Attys NEW75Xuxue Feng
1013Greenwood P TollnerItaly2026-07-03Benton, John B Jr UNQUALIFIED97Xuxue Feng
1014Aika E ButtItaly2026-06-24Feiner Bros NEGOTIATION17Asiya Javayant
1015Morrow K FigeroaUnited Kingdom2026-07-11Rangoni Of Florence PROPOSAL45Asiya Javayant
1016Octavia C OstroskyJapan2026-06-28Dorl, James J Esq NEGOTIATION2Ivan Magalhaes
1017Juan D ChuiRussia2026-06-21Chapman, Ross E Esq UNQUALIFIED59Elwin Sharvill
1018Wickens D PaprockiFrance2026-07-11Feiner Bros NEW16Stephen Shaw
1019Chavez K StensethAustralia2026-07-17Feiner Bros RENEWAL85Xuxue Feng
1020Octavia Q NestleItaly2026-06-23Feltz Printing Service NEW72Amy Elsner
1021Aruna Y StockhamItaly2026-07-17Feiner Bros NEW11Asiya Javayant
1022Sinclair Y FlosiAustralia2026-07-05Rangoni Of Florence QUALIFIED0Elwin Sharvill
1023Antonio I BriddickAustralia2026-07-13Benton, John B Jr PROPOSAL82Stephen Shaw
1024James E SlusarskiGermany2026-06-23King, Christopher A Esq NEGOTIATION22Anna Fali
1025Greenwood I GillianGermany2026-07-10Feltz Printing Service NEGOTIATION88Stephen Shaw
1026Francesco S CaudyUnited Kingdom2026-07-16Feltz Printing Service RENEWAL12Anna Fali
1027Emily H OstroskyBrazil2026-07-17Chemel, James L Cpa QUALIFIED54Anna Fali
1028Costa U FlosiFrance2026-07-16Chemel, James L Cpa PROPOSAL40Ivan Magalhaes
1029Ashley G MacleadIndia2026-06-22Truhlar And Truhlar Attys RENEWAL56Onyama Limba
1030Chavez P WhobreyIndia2026-06-30Rangoni Of Florence RENEWAL16Elwin Sharvill
1031Emily S MaletItaly2026-06-29Buckley Miller Wright NEGOTIATION50Anna Fali
1032Octavia C AmigonJapan2026-06-26Chanay, Jeffrey A Esq QUALIFIED42Onyama Limba
1033Greenwood V BriddickFrance2026-07-10Benton, John B Jr QUALIFIED9Stephen Shaw
1034Faith Y VocelkaItaly2026-06-27Printing Dimensions NEGOTIATION85Elwin Sharvill
1035Maria Q WieserArgentina2026-07-14Chemel, James L Cpa NEGOTIATION33Stephen Shaw
1036Greenwood Z FigeroaAustralia2026-06-23Buckley Miller Wright NEW79Asiya Javayant
1037Aditya Q SchemmerItaly2026-06-21King, Christopher A Esq UNQUALIFIED43Onyama Limba
1038Jones J ButtIndia2026-07-07Benton, John B Jr QUALIFIED23Bernardo Dominic
1039Claire R ShinkoJapan2026-07-02Truhlar And Truhlar Attys RENEWAL63Elwin Sharvill
1040David K SergiFrance2026-07-08Truhlar And Truhlar Attys NEGOTIATION67Elwin Sharvill
1041Ashley J DarakjyAustralia2026-07-02Printing Dimensions NEW84Xuxue Feng
1042Emily F CaudyJapan2026-07-13Benton, John B Jr RENEWAL42Bernardo Dominic
1043Tony G FlosiBrazil2026-07-02Morlong Associates UNQUALIFIED7Amy Elsner
1044Antonio L NickaRussia2026-07-18Buckley Miller Wright UNQUALIFIED17Ioni Bowcher
1045Sinclair B GauchoAustralia2026-07-10Feltz Printing Service UNQUALIFIED1Asiya Javayant
1046Ivar F WieserRussia2026-07-09Buckley Miller Wright RENEWAL12Amy Elsner
1047Cody K OldroydSpain2026-07-06Morlong Associates UNQUALIFIED6Anna Fali
1048Murillo G SchemmerJapan2026-07-06Benton, John B Jr NEGOTIATION20Elwin Sharvill
1049Aruna E RulapaughAustralia2026-07-09Chapman, Ross E Esq PROPOSAL54Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David R SergiSpainIoni Bowcher UNQUALIFIED
Isabel L RoysterRussiaIoni Bowcher PROPOSAL
Antonio L GauchoIndiaAsiya Javayant UNQUALIFIED
Morrow M RulapaughJapanStephen Shaw NEGOTIATION
Leja G PaprockiJapanOnyama Limba NEW
Salvatore T GlickGermanyBernardo Dominic RENEWAL
Julie R SlusarskiFranceIvan Magalhaes UNQUALIFIED
Maria Q ChuiGermanyAmy Elsner NEGOTIATION
Mujtaba N WaycottBrazilIvan Magalhaes PROPOSAL
Chavez L RoysterAustraliaIvan Magalhaes PROPOSAL
Jefferson R MaletGermanyXuxue Feng UNQUALIFIED
Murillo Q MorascaCanadaStephen Shaw UNQUALIFIED
Misaki H BriddickAustraliaStephen Shaw PROPOSAL
Alejandro Q RoysterItalyElwin Sharvill PROPOSAL
Silvio I SlusarskiFranceAmy Elsner UNQUALIFIED
Ivar F MarrierRussiaStephen Shaw NEW
Julie A RulapaughFranceStephen Shaw PROPOSAL
Misaki W RutaSpainElwin Sharvill QUALIFIED
Jones F MaletUnited KingdomElwin Sharvill NEGOTIATION
Maria C ChuiItalyAmy Elsner RENEWAL
Maisha J RoysterRussiaIoni Bowcher UNQUALIFIED
Maisha A WhobreyArgentinaAmy Elsner NEW
Silvio Z MarrierRussiaAmy Elsner NEW
Cody N MorascaAustraliaStephen Shaw UNQUALIFIED
Murillo I SergiUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair K NickaArgentinaOnyama Limba PROPOSAL
Murillo G GarufiSpainAmy Elsner NEW
Francesco D FigeroaUnited KingdomXuxue Feng PROPOSAL
Faith I DoeAustraliaIvan Magalhaes NEGOTIATION
Ricardo R GarufiItalyIoni Bowcher PROPOSAL
Munro N DoeSpainBernardo Dominic NEW
Murillo Q MorascaBrazilBernardo Dominic RENEWAL
Ashley M FerenczFranceBernardo Dominic UNQUALIFIED
Deepesh Z RutaItalyXuxue Feng UNQUALIFIED
Aruna X InouyeRussiaIoni Bowcher PROPOSAL
Aditya A StensethBrazilAnna Fali QUALIFIED
Arvin Y BowleyFranceOnyama Limba RENEWAL
Murillo F DoeUnited KingdomBernardo Dominic UNQUALIFIED
Munro Q MarrierIndiaIoni Bowcher PROPOSAL
Aruna J TollnerAustraliaAmy Elsner QUALIFIED
Emily F BologniaRussiaIoni Bowcher RENEWAL
Nicolas F ButtFranceIvan Magalhaes NEW
Adams K FollerAustraliaAsiya Javayant PROPOSAL
Antonio T ButtGermanyAmy Elsner UNQUALIFIED
Isabel P DoeBrazilAsiya Javayant PROPOSAL
Sinclair P FerenczItalyIvan Magalhaes NEW
Sinclair V PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Emily S WhobreyRussiaOnyama Limba RENEWAL
Ashley Z ButtBrazilIvan Magalhaes PROPOSAL
Misaki O RimArgentinaBernardo Dominic QUALIFIED
Frozen Columns
Name
Claire H Stockham
Adams E Albares
Jefferson Z Perin
Morrow H Foller
Darci M Waycott
Murillo L Schemmer
Sinclair Y Garufi
Munro G Royster
Wickens D Nestle
Maria H Poquette
Arvin C Figeroa
Wickens G Wieser
Rodrigues P Stenseth
Antonio T Oldroyd
Tony U Foller
Juan J Tollner
Kaitlin H Bolognia
Nicolas M Figeroa
Mujtaba R Gillian
Clifford V Kusko
Morrow Z Saylors
Costa O Caldarera
Nicolas M Figeroa
Johnson H Waycott
Ricardo I Maclead
Ashley F Vocelka
Stacey W Vocelka
Juan K Albares
Aditya T Oldroyd
Costa L Nestle
Izzy Q Shinko
Clifford A Figeroa
Emily F Amigon
Silvio G Wieser
Munro C Foller
Silvio Y Kusko
Leja S Foller
Ivar J Vocelka
Francesco T Vocelka
Wickens D Doe
Clifford A Schemmer
Ivar I Wieser
Julie R Garufi
Smith A Vocelka
David X Dilliard
James W Schemmer
James Y Tollner
Salvatore S Flosi
Aruna F Morasca
Rodrigues H Shinko
IdCountryDate
1000Japan2026-06-23
1001Spain2026-06-21
1002Australia2026-07-05
1003Australia2026-06-30
1004Russia2026-07-07
1005India2026-07-11
1006Australia2026-07-15
1007India2026-07-16
1008Argentina2026-07-01
1009Canada2026-06-20
1010Canada2026-07-04
1011Argentina2026-07-14
1012Italy2026-07-07
1013Japan2026-06-26
1014Spain2026-07-14
1015Canada2026-07-15
1016Germany2026-07-04
1017Germany2026-07-16
1018Germany2026-07-07
1019United Kingdom2026-06-21
1020Australia2026-07-19
1021Japan2026-07-14
1022Japan2026-07-09
1023Australia2026-07-12
1024United Kingdom2026-07-17
1025Germany2026-07-13
1026Japan2026-07-01
1027Japan2026-06-27
1028Russia2026-07-02
1029Argentina2026-06-25
1030Germany2026-06-27
1031Australia2026-07-15
1032Italy2026-06-28
1033Australia2026-07-09
1034Japan2026-07-19
1035France2026-07-09
1036Japan2026-07-17
1037India2026-06-27
1038Canada2026-07-12
1039Canada2026-07-06
1040Italy2026-06-21
1041Italy2026-06-30
1042Argentina2026-06-25
1043Argentina2026-06-26
1044Australia2026-07-18
1045Brazil2026-07-02
1046Argentina2026-07-09
1047Canada2026-06-27
1048Argentina2026-06-22
1049Canada2026-07-15

On-Demand Data

NameIdCountryDate
Deepesh C Rim1000Germany2026-07-14
Murillo X Amigon1001Japan2026-07-05
Clifford R Ostrosky1002Argentina2026-06-20
Ashley R Wieser1003Argentina2026-07-06
Cody O Shinko1004United Kingdom2026-06-28
Francesco U Sergi1005France2026-07-08
Jefferson T Kusko1006France2026-06-24
Johnson J Caldarera1007Germany2026-07-09
Leon F Royster1008Brazil2026-06-22
Izzy K Chui1009Russia2026-06-21
Julie I Maclead1010Brazil2026-07-14
Isabel J Kusko1011Canada2026-06-24
Greenwood G Butt1012Argentina2026-07-03
Isabel H Marrier1013Japan2026-06-28
Mujtaba F Stockham1014Brazil2026-07-10
Isabel A Rim1015Spain2026-07-01
Faith U Garufi1016Spain2026-07-15
Kadeem M Marrier1017Italy2026-07-14
James M Nicka1018United Kingdom2026-06-29
Maria S Shinko1019Australia2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar K GauchoIndiaElwin Sharvill PROPOSAL
Ricardo Y PerinSpainStephen Shaw RENEWAL
Misaki V WieserFranceStephen Shaw UNQUALIFIED
Octavia Q TollnerSpainElwin Sharvill PROPOSAL
Adams N BowleyFranceAmy Elsner RENEWAL
Costa N NestleGermanyBernardo Dominic PROPOSAL
Clifford R DoeUnited KingdomElwin Sharvill RENEWAL
Cody S GauchoItalyXuxue Feng NEGOTIATION
Claire M ShinkoSpainStephen Shaw RENEWAL
Maria W SergiRussiaStephen Shaw NEGOTIATION
Maria D SergiSpainXuxue Feng RENEWAL
Isabel F VenereArgentinaAmy Elsner PROPOSAL
Arvin N ButtSpainElwin Sharvill NEW
Salvatore W CaudyItalyElwin Sharvill UNQUALIFIED
Wickens P MaletIndiaAnna Fali PROPOSAL
Sinclair E OldroydFranceAmy Elsner UNQUALIFIED
Greenwood A RulapaughIndiaStephen Shaw UNQUALIFIED
Octavia O GillianIndiaAsiya Javayant PROPOSAL
Clifford K MacleadUnited KingdomStephen Shaw UNQUALIFIED
Smith S DoeFranceStephen Shaw NEGOTIATION
Arvin C VenereArgentinaAsiya Javayant QUALIFIED
Salvatore G DoeIndiaAmy Elsner NEGOTIATION
Aika V OldroydBrazilAsiya Javayant PROPOSAL
Mujtaba K AlbaresRussiaStephen Shaw PROPOSAL
Faith Z BriddickRussiaElwin Sharvill NEW
Wickens S CaudyRussiaOnyama Limba PROPOSAL
Jefferson W KuskoJapanAnna Fali NEW
Antonio Y SlusarskiArgentinaBernardo Dominic RENEWAL
Adams D PerinItalyAmy Elsner NEW
Sinclair M BologniaUnited KingdomStephen Shaw PROPOSAL
Ashley V TollnerJapanIoni Bowcher UNQUALIFIED
Smith O GlickSpainIvan Magalhaes NEGOTIATION
Sinclair M FollerSpainStephen Shaw QUALIFIED
David H SaylorsJapanElwin Sharvill RENEWAL
Silvio M RimJapanOnyama Limba UNQUALIFIED
Tony Q DilliardJapanAmy Elsner NEGOTIATION
Misaki N BowleyItalyBernardo Dominic RENEWAL
Alejandro D AmigonFranceElwin Sharvill RENEWAL
Kaitlin C DoeAustraliaOnyama Limba QUALIFIED
Juan L KolmetzJapanBernardo Dominic NEGOTIATION

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