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
Ricardo J RutaSpainAsiya Javayant NEGOTIATION
Murillo B CampainArgentinaAsiya Javayant RENEWAL
Aika A FigeroaBrazilStephen Shaw UNQUALIFIED
David M SaylorsSpainIoni Bowcher NEW
Rodrigues P RulapaughArgentinaElwin Sharvill NEW
Isabel A FollerJapanXuxue Feng NEGOTIATION
Aika Q BriddickCanadaBernardo Dominic UNQUALIFIED
Johnson P ShinkoFranceStephen Shaw NEGOTIATION
Salvatore S OldroydUnited KingdomAnna Fali PROPOSAL
Leja Y AmigonGermanyAnna Fali NEGOTIATION
Jones D WieserJapanStephen Shaw PROPOSAL
David Z CaldareraAustraliaStephen Shaw NEW
Claire E NickaBrazilXuxue Feng NEGOTIATION
Emily M SchemmerSpainAsiya Javayant NEGOTIATION
Jeanfrancois A OstroskyItalyAmy Elsner NEGOTIATION
Murillo R PoquetteUnited KingdomIoni Bowcher QUALIFIED
David I StensethFranceXuxue Feng RENEWAL
Ricardo H InouyeCanadaAsiya Javayant QUALIFIED
Octavia B NestleBrazilStephen Shaw NEW
Aditya M FerenczRussiaBernardo Dominic RENEWAL
Munro Q SchemmerItalyOnyama Limba QUALIFIED
Adams B RoysterFranceAsiya Javayant NEW
Greenwood E WieserBrazilXuxue Feng PROPOSAL
Faith W FollerJapanXuxue Feng UNQUALIFIED
James C StockhamFranceStephen Shaw NEGOTIATION
Kaitlin N CaudyItalyIoni Bowcher QUALIFIED
Silvio O SlusarskiCanadaAnna Fali QUALIFIED
Arvin E ChuiCanadaAmy Elsner NEW
Misaki J VenereRussiaBernardo Dominic NEW
Morrow W StensethFranceIoni Bowcher QUALIFIED
Misaki J StensethUnited KingdomOnyama Limba NEGOTIATION
Octavia N DarakjyRussiaBernardo Dominic PROPOSAL
Ivar R GlickFranceElwin Sharvill NEGOTIATION
Tony P IturbideCanadaAnna Fali PROPOSAL
Jones T StockhamGermanyBernardo Dominic PROPOSAL
Ricardo C SchemmerItalyBernardo Dominic UNQUALIFIED
Aika F IturbideArgentinaAnna Fali QUALIFIED
Silvio E PerinRussiaXuxue Feng PROPOSAL
Leja H WhobreyBrazilIoni Bowcher NEW
Leja D RoysterUnited KingdomIoni Bowcher NEW
Leon I FerenczGermanyAmy Elsner RENEWAL
Murillo X FollerJapanIoni Bowcher PROPOSAL
Stacey O PoquetteRussiaStephen Shaw UNQUALIFIED
Johnson V FerenczAustraliaAnna Fali NEW
Aruna Q StensethArgentinaIvan Magalhaes QUALIFIED
Claire F WieserIndiaAmy Elsner NEGOTIATION
Adams Z OstroskyFranceElwin Sharvill NEW
Johnson F WaycottJapanXuxue Feng RENEWAL
Deepesh D WieserAustraliaXuxue Feng UNQUALIFIED
Maria J StensethAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Darci X IturbideAustraliaIvan Magalhaes QUALIFIED
Leon Z MarrierGermanyOnyama Limba PROPOSAL
Murillo X FigeroaIndiaAmy Elsner UNQUALIFIED
Juan V WhobreyRussiaXuxue Feng RENEWAL
Stacey F DarakjyBrazilElwin Sharvill PROPOSAL
Murillo V GauchoIndiaElwin Sharvill NEW
Silvio L MorascaItalyIvan Magalhaes NEGOTIATION
Ricardo R RulapaughAustraliaAnna Fali NEGOTIATION
Jefferson E WhobreyCanadaStephen Shaw UNQUALIFIED
Rodrigues W GauchoRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson B VenereBrazil2026-07-17Morlong Associates NEW38Ioni Bowcher
1001Leon U NestleFrance2026-07-07Feltz Printing Service UNQUALIFIED51Elwin Sharvill
1002Claire B SchemmerUnited Kingdom2026-07-15Truhlar And Truhlar Attys NEGOTIATION16Ivan Magalhaes
1003Maria F GarufiGermany2026-07-31Benton, John B Jr PROPOSAL5Elwin Sharvill
1004Julie C StensethCanada2026-07-18King, Christopher A Esq QUALIFIED50Bernardo Dominic
1005Maisha G ButtSpain2026-07-18Chapman, Ross E Esq NEGOTIATION19Bernardo Dominic
1006Munro R SlusarskiAustralia2026-07-28Feltz Printing Service PROPOSAL29Amy Elsner
1007Costa L VenereFrance2026-07-21Buckley Miller Wright NEW50Ioni Bowcher
1008Aditya W WaycottGermany2026-07-20Rousseaux, Michael Esq QUALIFIED92Ioni Bowcher
1009Smith Q AlbaresItaly2026-07-13Benton, John B Jr PROPOSAL34Bernardo Dominic
1010Rodrigues C DarakjyArgentina2026-07-17Feiner Bros PROPOSAL71Ivan Magalhaes
1011Jennifer A ChuiJapan2026-07-12Benton, John B Jr RENEWAL18Bernardo Dominic
1012Aika Q KuskoJapan2026-07-31Chemel, James L Cpa RENEWAL14Anna Fali
1013Jennifer Y SchemmerIndia2026-07-31Feiner Bros PROPOSAL31Anna Fali
1014Salvatore B AlbaresGermany2026-07-03Feiner Bros UNQUALIFIED78Ioni Bowcher
1015Misaki B WaycottBrazil2026-07-24Rousseaux, Michael Esq PROPOSAL43Ivan Magalhaes
1016Munro C WaycottCanada2026-07-23Dorl, James J Esq PROPOSAL11Asiya Javayant
1017James R OstroskyIndia2026-07-06Rangoni Of Florence RENEWAL3Anna Fali
1018Jeanfrancois B RoysterSpain2026-07-14Feiner Bros UNQUALIFIED21Elwin Sharvill
1019Maisha C InouyeItaly2026-07-07Feltz Printing Service PROPOSAL20Onyama Limba
1020Costa R CaldareraItaly2026-08-01Chemel, James L Cpa NEW39Anna Fali
1021Adams D KuskoItaly2026-07-16Chemel, James L Cpa UNQUALIFIED60Asiya Javayant
1022Claire M FlosiArgentina2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED11Onyama Limba
1023Murillo K SchemmerCanada2026-07-10Morlong Associates NEW73Xuxue Feng
1024Aditya B SergiCanada2026-07-17Commercial Press QUALIFIED51Ioni Bowcher
1025Leon X OldroydGermany2026-07-12Chapman, Ross E Esq QUALIFIED6Anna Fali
1026Ashley C ShinkoSpain2026-07-10Benton, John B Jr NEGOTIATION52Bernardo Dominic
1027Jeanfrancois D FollerArgentina2026-07-03Chemel, James L Cpa NEGOTIATION55Asiya Javayant
1028Juan U DoeRussia2026-07-04Chanay, Jeffrey A Esq NEW0Amy Elsner
1029Jeanfrancois K RutaRussia2026-07-03Rangoni Of Florence NEW90Onyama Limba
1030Salvatore L SergiBrazil2026-07-29Chemel, James L Cpa UNQUALIFIED50Xuxue Feng
1031Isabel U DilliardItaly2026-08-01Rangoni Of Florence QUALIFIED27Elwin Sharvill
1032Mujtaba R StockhamArgentina2026-07-31Truhlar And Truhlar Attys PROPOSAL82Ivan Magalhaes
1033Ivar X NestleRussia2026-07-04Morlong Associates QUALIFIED49Elwin Sharvill
1034Jennifer Y StockhamUnited Kingdom2026-07-16Chapman, Ross E Esq UNQUALIFIED32Amy Elsner
1035Greenwood Z GarufiBrazil2026-07-22Truhlar And Truhlar Attys QUALIFIED15Amy Elsner
1036Claire S CaudyJapan2026-07-23Rousseaux, Michael Esq RENEWAL11Amy Elsner
1037Mayumi S OstroskyAustralia2026-07-25Dorl, James J Esq NEGOTIATION24Ivan Magalhaes
1038Ivar H FollerArgentina2026-07-22Rousseaux, Michael Esq RENEWAL4Anna Fali
1039Jefferson L ChuiFrance2026-07-19Chemel, James L Cpa PROPOSAL88Anna Fali
1040Alejandro J RutaArgentina2026-07-31Rangoni Of Florence PROPOSAL17Amy Elsner
1041Antonio M MarrierJapan2026-07-08Benton, John B Jr RENEWAL22Onyama Limba
1042Wickens D StensethAustralia2026-07-14Feltz Printing Service NEW94Ivan Magalhaes
1043Aruna T NickaItaly2026-07-12Printing Dimensions NEGOTIATION10Amy Elsner
1044Murillo M BriddickJapan2026-07-22Benton, John B Jr QUALIFIED52Onyama Limba
1045Silvio N StensethJapan2026-07-30Chemel, James L Cpa QUALIFIED51Onyama Limba
1046Emily D PerinRussia2026-07-14Rangoni Of Florence NEGOTIATION44Asiya Javayant
1047James P MarrierItaly2026-07-27Buckley Miller Wright NEW74Bernardo Dominic
1048Cody H DoeFrance2026-07-24Commercial Press UNQUALIFIED2Stephen Shaw
1049Faith O RulapaughSpain2026-07-08Commercial Press QUALIFIED6Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan Y FerenczRussiaOnyama Limba NEW
Johnson E GarufiItalyIvan Magalhaes NEGOTIATION
Silvio N CampainUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin G MacleadFranceElwin Sharvill RENEWAL
Sinclair Y CaldareraJapanIvan Magalhaes UNQUALIFIED
Kadeem K CaudyAustraliaAnna Fali QUALIFIED
Ashley L RutaItalyIvan Magalhaes RENEWAL
Salvatore C FerenczCanadaElwin Sharvill NEW
Tony J FollerItalyAsiya Javayant UNQUALIFIED
Jennifer C RimIndiaOnyama Limba NEW
Costa I AlbaresAustraliaStephen Shaw PROPOSAL
Francesco A WieserSpainElwin Sharvill NEW
Antonio X PoquetteArgentinaAsiya Javayant QUALIFIED
Kaitlin Z AlbaresBrazilIoni Bowcher NEW
Misaki A InouyeAustraliaAmy Elsner NEW
Sinclair U BowleyAustraliaAnna Fali UNQUALIFIED
Leon N InouyeRussiaAsiya Javayant PROPOSAL
Deepesh D ButtFranceAnna Fali QUALIFIED
Rodrigues B ShinkoArgentinaIoni Bowcher QUALIFIED
Adams P StockhamSpainStephen Shaw NEGOTIATION
Francesco E WaycottRussiaIoni Bowcher QUALIFIED
Aruna Z RutaJapanIoni Bowcher NEW
Mujtaba X GillianUnited KingdomElwin Sharvill NEW
Antonio E RimSpainAmy Elsner UNQUALIFIED
Stacey P AmigonAustraliaElwin Sharvill RENEWAL
Jefferson R SchemmerGermanyAnna Fali QUALIFIED
Maisha V FigeroaArgentinaBernardo Dominic NEW
James W BriddickIndiaXuxue Feng NEW
Juan Q ShinkoGermanyOnyama Limba PROPOSAL
Arvin A SlusarskiArgentinaAmy Elsner PROPOSAL
Alejandro Q IturbideFranceElwin Sharvill QUALIFIED
Wickens K DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Smith M CampainIndiaAmy Elsner NEW
Chavez A DilliardGermanyOnyama Limba NEGOTIATION
Morrow J BowleyIndiaOnyama Limba RENEWAL
Ricardo A MaletAustraliaXuxue Feng NEGOTIATION
Maisha E DoeCanadaBernardo Dominic NEW
Clifford Y BriddickIndiaAmy Elsner QUALIFIED
Antonio I WaycottIndiaBernardo Dominic RENEWAL
David W OstroskyCanadaOnyama Limba UNQUALIFIED
Sinclair A GillianGermanyAnna Fali QUALIFIED
Chavez W SaylorsUnited KingdomStephen Shaw PROPOSAL
Silvio H DilliardCanadaIvan Magalhaes NEW
Salvatore P GauchoCanadaAmy Elsner QUALIFIED
Mujtaba D FollerUnited KingdomAsiya Javayant QUALIFIED
Maria A PaprockiRussiaAmy Elsner RENEWAL
Cody O WaycottGermanyAsiya Javayant PROPOSAL
Jeanfrancois W StockhamJapanAsiya Javayant UNQUALIFIED
Faith F MorascaFranceXuxue Feng NEGOTIATION
Kaitlin V WieserFranceStephen Shaw NEW
Frozen Columns
Name
Isabel F Gaucho
Julie A Malet
Ivar C Doe
Jones N Ruta
Mayumi M Inouye
Deepesh J Maclead
James S Glick
Johnson R Stockham
Maria T Caldarera
Wickens Y Ruta
Leon E Kusko
Julie N Whobrey
Ivar M Schemmer
Greenwood B Sergi
Izzy O Darakjy
Jefferson R Nestle
Maisha F Maclead
Octavia S Wieser
Sinclair V Royster
Francesco T Shinko
Isabel D Poquette
Salvatore P Wieser
Munro R Inouye
Stacey M Glick
Izzy T Butt
Silvio Y Rim
Jennifer W Ostrosky
Octavia G Caudy
Francesco M Glick
Ivar E Poquette
Mayumi L Malet
Darci U Bolognia
Claire H Rulapaugh
Cody D Slusarski
Morrow U Venere
Salvatore T Foller
Sinclair S Gillian
Munro O Slusarski
Clifford X Oldroyd
Faith N Maclead
Silvio Q Schemmer
Ricardo M Iturbide
Antonio D Campain
Isabel A Rim
Ricardo Q Doe
Silvio L Gaucho
Sinclair P Butt
Claire I Kusko
Cody Q Darakjy
Jennifer M Garufi
IdCountryDate
1000Australia2026-07-11
1001Canada2026-07-05
1002Germany2026-07-15
1003Spain2026-07-27
1004India2026-07-22
1005Italy2026-07-11
1006Argentina2026-07-21
1007Argentina2026-07-18
1008Argentina2026-07-20
1009India2026-07-15
1010Germany2026-07-24
1011Spain2026-07-12
1012Canada2026-07-27
1013India2026-07-30
1014Spain2026-07-03
1015Canada2026-07-26
1016France2026-07-16
1017Argentina2026-07-24
1018United Kingdom2026-07-23
1019Russia2026-07-06
1020Brazil2026-07-23
1021India2026-07-24
1022Spain2026-07-23
1023Germany2026-07-05
1024Russia2026-07-28
1025Italy2026-07-04
1026Russia2026-07-15
1027United Kingdom2026-07-24
1028Italy2026-07-30
1029Canada2026-07-07
1030France2026-07-13
1031Russia2026-07-04
1032Brazil2026-07-19
1033Italy2026-07-10
1034Argentina2026-07-28
1035Italy2026-07-05
1036Spain2026-07-16
1037Russia2026-07-19
1038Australia2026-07-29
1039Germany2026-07-09
1040France2026-07-30
1041Canada2026-07-03
1042Japan2026-07-23
1043India2026-07-23
1044Argentina2026-08-01
1045Canada2026-07-20
1046France2026-07-12
1047Germany2026-07-11
1048France2026-07-03
1049Canada2026-07-24

On-Demand Data

NameIdCountryDate
Maria A Waycott1000Italy2026-07-15
Alejandro Q Gaucho1001Spain2026-07-11
Wickens A Campain1002Italy2026-07-09
Rodrigues L Kolmetz1003Russia2026-07-23
Emily L Venere1004United Kingdom2026-07-07
Aruna U Darakjy1005Argentina2026-07-06
Jefferson T Rim1006Japan2026-07-20
Antonio N Ferencz1007Canada2026-07-29
Jefferson Y Saylors1008India2026-07-05
Alejandro A Shinko1009Australia2026-07-16
Julie I Royster1010Brazil2026-07-22
Silvio Z Foller1011Australia2026-07-29
Emily B Figeroa1012France2026-07-08
Juan B Oldroyd1013United Kingdom2026-07-20
Arvin M Butt1014Russia2026-07-24
Leon P Morasca1015Australia2026-07-24
Salvatore W Kusko1016France2026-07-30
Wickens H Perin1017Brazil2026-07-30
Juan X Flosi1018Argentina2026-08-01
Leja L Waycott1019Italy2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan O OldroydUnited KingdomStephen Shaw PROPOSAL
Claire H PaprockiSpainBernardo Dominic NEW
Julie T StensethCanadaIvan Magalhaes PROPOSAL
David V RimIndiaAnna Fali UNQUALIFIED
Ashley U FigeroaJapanBernardo Dominic NEGOTIATION
Aruna Y OstroskyArgentinaBernardo Dominic NEGOTIATION
Clifford W NickaRussiaIvan Magalhaes NEGOTIATION
Leja S MarrierRussiaAmy Elsner UNQUALIFIED
Ashley K KuskoIndiaIvan Magalhaes NEGOTIATION
Aruna F PoquetteIndiaXuxue Feng UNQUALIFIED
Morrow H FlosiBrazilIvan Magalhaes NEW
Claire S FollerAustraliaElwin Sharvill PROPOSAL
Francesco L PerinArgentinaBernardo Dominic QUALIFIED
Aruna Z VocelkaJapanElwin Sharvill RENEWAL
Mayumi C RoysterSpainBernardo Dominic NEW
Leon C BologniaRussiaAnna Fali QUALIFIED
Sinclair U BowleySpainAmy Elsner QUALIFIED
Tony A NestleRussiaAmy Elsner QUALIFIED
Ivar Z KuskoJapanAmy Elsner PROPOSAL
Stacey W BriddickJapanIvan Magalhaes UNQUALIFIED
Aditya T FollerAustraliaAnna Fali NEW
Jefferson M VocelkaUnited KingdomOnyama Limba QUALIFIED
Greenwood I SlusarskiGermanyIvan Magalhaes NEW
Mujtaba G VenereCanadaIvan Magalhaes NEGOTIATION
Claire C SergiAustraliaIvan Magalhaes RENEWAL
Kadeem X FollerAustraliaXuxue Feng UNQUALIFIED
Jefferson M BriddickGermanyAnna Fali NEW
Ashley Q DilliardJapanOnyama Limba PROPOSAL
Claire O ButtAustraliaIoni Bowcher PROPOSAL
Jones J RimGermanyAmy Elsner RENEWAL
Darci B InouyeIndiaXuxue Feng NEW
Kaitlin H RoysterSpainIoni Bowcher UNQUALIFIED
Murillo T OstroskyRussiaXuxue Feng NEW
Arvin Q ShinkoItalyStephen Shaw NEW
Julie M AlbaresUnited KingdomAmy Elsner RENEWAL
Juan U RimCanadaIoni Bowcher NEW
James B DarakjyBrazilXuxue Feng QUALIFIED
Kadeem G OldroydAustraliaAsiya Javayant QUALIFIED
Francesco Q InouyeUnited KingdomBernardo Dominic QUALIFIED
Juan U PaprockiUnited KingdomXuxue Feng 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>