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 X WieserArgentinaIvan Magalhaes NEW
Francesco W IturbideBrazilElwin Sharvill UNQUALIFIED
Greenwood S KolmetzJapanAmy Elsner PROPOSAL
Munro O DoeAustraliaIvan Magalhaes NEGOTIATION
Aika O BowleySpainBernardo Dominic RENEWAL
Izzy J FerenczItalyAmy Elsner UNQUALIFIED
David Y MaletJapanXuxue Feng NEW
Antonio D VocelkaCanadaBernardo Dominic QUALIFIED
Leja F MorascaArgentinaAnna Fali RENEWAL
Ashley B CaldareraSpainOnyama Limba NEGOTIATION
Clifford H PoquetteGermanyAsiya Javayant RENEWAL
Silvio R AmigonBrazilAnna Fali QUALIFIED
Faith M CampainCanadaXuxue Feng QUALIFIED
Salvatore N ShinkoUnited KingdomAnna Fali QUALIFIED
Greenwood F RimJapanAmy Elsner RENEWAL
Aika A TollnerRussiaBernardo Dominic NEW
Julie M SchemmerCanadaStephen Shaw NEGOTIATION
Greenwood M GillianBrazilBernardo Dominic NEW
Clifford W SlusarskiUnited KingdomStephen Shaw NEW
Morrow V NickaIndiaAnna Fali QUALIFIED
Sinclair P MacleadBrazilXuxue Feng UNQUALIFIED
Deepesh K OldroydSpainBernardo Dominic UNQUALIFIED
Kaitlin G DilliardFranceIvan Magalhaes UNQUALIFIED
Jennifer M PoquetteGermanyAnna Fali NEGOTIATION
Alejandro F RoysterAustraliaOnyama Limba PROPOSAL
Salvatore V NestleUnited KingdomIoni Bowcher NEGOTIATION
Adams E MacleadArgentinaOnyama Limba NEW
Alejandro G TollnerSpainOnyama Limba PROPOSAL
Silvio J SaylorsIndiaIvan Magalhaes UNQUALIFIED
Aika J CaldareraIndiaAnna Fali RENEWAL
Kaitlin F OldroydCanadaAnna Fali QUALIFIED
Francesco N SaylorsFranceElwin Sharvill UNQUALIFIED
Jones H TollnerArgentinaOnyama Limba QUALIFIED
Mayumi K SchemmerBrazilIvan Magalhaes PROPOSAL
Faith S PaprockiItalyXuxue Feng NEW
Misaki M MacleadItalyStephen Shaw NEW
Darci D MacleadFranceOnyama Limba RENEWAL
Tony P SlusarskiGermanyXuxue Feng NEW
Deepesh F NickaAustraliaXuxue Feng UNQUALIFIED
Jones D RutaRussiaElwin Sharvill PROPOSAL
Adams T BowleyArgentinaOnyama Limba UNQUALIFIED
Munro F StensethIndiaStephen Shaw NEGOTIATION
Nicolas T MaletRussiaElwin Sharvill RENEWAL
Izzy M WieserFranceIvan Magalhaes NEGOTIATION
Ivar G SlusarskiBrazilStephen Shaw NEW
Kaitlin S OldroydBrazilIvan Magalhaes RENEWAL
Smith Y InouyeBrazilXuxue Feng RENEWAL
Julie P RutaItalyStephen Shaw NEW
Ashley F FollerRussiaOnyama Limba RENEWAL
Izzy B DilliardSpainIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Aruna V DoeCanadaIvan Magalhaes NEW
Misaki N AlbaresIndiaXuxue Feng QUALIFIED
Arvin F FigeroaGermanyIvan Magalhaes PROPOSAL
Octavia G MacleadFranceIvan Magalhaes NEW
Murillo B RulapaughAustraliaIoni Bowcher PROPOSAL
Misaki L VenereCanadaElwin Sharvill QUALIFIED
Salvatore U FerenczUnited KingdomAmy Elsner QUALIFIED
Mayumi W GarufiAustraliaOnyama Limba PROPOSAL
Deepesh K CampainUnited KingdomAnna Fali QUALIFIED
Ashley Q PoquetteSpainBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro F KolmetzIndia2026-08-04Feltz Printing Service UNQUALIFIED12Stephen Shaw
1001Johnson L InouyeUnited Kingdom2026-08-10Dorl, James J Esq UNQUALIFIED48Asiya Javayant
1002Isabel C RutaSpain2026-07-12Printing Dimensions RENEWAL36Stephen Shaw
1003Deepesh V RutaSpain2026-07-25King, Christopher A Esq NEGOTIATION66Xuxue Feng
1004Silvio Y WhobreyIndia2026-07-30Dorl, James J Esq PROPOSAL2Bernardo Dominic
1005Mujtaba N VenereRussia2026-07-14Morlong Associates PROPOSAL40Bernardo Dominic
1006Faith L OldroydGermany2026-07-19Rousseaux, Michael Esq NEGOTIATION79Ioni Bowcher
1007Izzy T MaletRussia2026-07-18Chanay, Jeffrey A Esq PROPOSAL70Bernardo Dominic
1008Morrow H WaycottUnited Kingdom2026-07-28King, Christopher A Esq PROPOSAL72Bernardo Dominic
1009Leja E MaletGermany2026-08-09Chemel, James L Cpa QUALIFIED96Elwin Sharvill
1010Morrow O TollnerArgentina2026-08-02Chanay, Jeffrey A Esq RENEWAL53Anna Fali
1011Mayumi M RoysterSpain2026-07-14Chemel, James L Cpa PROPOSAL63Asiya Javayant
1012David C KuskoArgentina2026-07-20Rousseaux, Michael Esq QUALIFIED57Ioni Bowcher
1013Aika N InouyeJapan2026-07-20Rousseaux, Michael Esq QUALIFIED28Elwin Sharvill
1014Deepesh O InouyeGermany2026-08-05Chapman, Ross E Esq NEGOTIATION10Onyama Limba
1015Jones L GauchoJapan2026-07-13Buckley Miller Wright UNQUALIFIED3Amy Elsner
1016Adams A CaldareraGermany2026-08-07Chemel, James L Cpa PROPOSAL55Anna Fali
1017Murillo M ShinkoFrance2026-07-21Benton, John B Jr QUALIFIED54Asiya Javayant
1018Ivar S MaletCanada2026-07-13Printing Dimensions NEW47Onyama Limba
1019Leja E InouyeFrance2026-07-18Rangoni Of Florence PROPOSAL73Asiya Javayant
1020Darci E RimFrance2026-08-09Truhlar And Truhlar Attys UNQUALIFIED54Anna Fali
1021Chavez U NickaRussia2026-07-26Chanay, Jeffrey A Esq NEW49Xuxue Feng
1022Smith A InouyeFrance2026-08-05Truhlar And Truhlar Attys NEW0Ioni Bowcher
1023Alejandro Z PoquetteRussia2026-07-19Feltz Printing Service RENEWAL43Asiya Javayant
1024Aika G NickaBrazil2026-07-29Feiner Bros UNQUALIFIED89Anna Fali
1025Antonio H OldroydRussia2026-07-16Dorl, James J Esq QUALIFIED48Bernardo Dominic
1026Ashley M MacleadGermany2026-07-27Rangoni Of Florence RENEWAL35Stephen Shaw
1027Adams P MorascaRussia2026-07-24Dorl, James J Esq UNQUALIFIED15Elwin Sharvill
1028Stacey U SergiJapan2026-08-03Commercial Press RENEWAL21Xuxue Feng
1029Rodrigues V ButtIndia2026-07-24Chapman, Ross E Esq NEW28Anna Fali
1030Johnson E BologniaIndia2026-07-28Rousseaux, Michael Esq UNQUALIFIED14Xuxue Feng
1031Maria E VenereArgentina2026-07-19Dorl, James J Esq QUALIFIED77Ivan Magalhaes
1032David U SlusarskiGermany2026-07-29Printing Dimensions RENEWAL67Ioni Bowcher
1033Aika S MaletRussia2026-07-14Truhlar And Truhlar Attys PROPOSAL32Xuxue Feng
1034Ricardo P StockhamIndia2026-07-14Commercial Press NEW19Ioni Bowcher
1035Leon W MaletGermany2026-07-14Chemel, James L Cpa QUALIFIED1Elwin Sharvill
1036Leja O NickaBrazil2026-07-16Buckley Miller Wright UNQUALIFIED30Ivan Magalhaes
1037Cody P MaletCanada2026-07-26Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1038Isabel M ShinkoAustralia2026-08-03Benton, John B Jr NEW50Ioni Bowcher
1039Nicolas S WaycottRussia2026-07-12Rousseaux, Michael Esq RENEWAL97Anna Fali
1040Kaitlin S DoeGermany2026-07-24Benton, John B Jr UNQUALIFIED58Onyama Limba
1041Maria K CaudyRussia2026-07-25Printing Dimensions RENEWAL21Elwin Sharvill
1042Emily W FlosiAustralia2026-08-04Truhlar And Truhlar Attys UNQUALIFIED77Onyama Limba
1043Cody X VocelkaBrazil2026-07-12Chemel, James L Cpa RENEWAL74Bernardo Dominic
1044Aika F OstroskyUnited Kingdom2026-07-26King, Christopher A Esq UNQUALIFIED43Ivan Magalhaes
1045Ivar L PaprockiRussia2026-07-13Dorl, James J Esq RENEWAL28Stephen Shaw
1046Octavia V WhobreyItaly2026-08-06Dorl, James J Esq NEW80Onyama Limba
1047Francesco I GillianAustralia2026-08-03Printing Dimensions RENEWAL79Elwin Sharvill
1048Misaki U GauchoCanada2026-08-10Morlong Associates PROPOSAL65Xuxue Feng
1049Stacey L RimAustralia2026-07-20Rousseaux, Michael Esq RENEWAL30Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Izzy S DoeJapanIoni Bowcher UNQUALIFIED
Cody W MarrierArgentinaStephen Shaw RENEWAL
Jeanfrancois F MacleadGermanyIoni Bowcher RENEWAL
Chavez M KolmetzJapanAsiya Javayant RENEWAL
Rodrigues W CaudyJapanOnyama Limba NEW
Sinclair U ButtIndiaOnyama Limba UNQUALIFIED
Morrow R MaletArgentinaXuxue Feng NEW
Darci Y RimGermanyBernardo Dominic QUALIFIED
Faith C FollerAustraliaAsiya Javayant NEGOTIATION
Kadeem U DoeJapanIvan Magalhaes NEW
Julie C MacleadIndiaAsiya Javayant NEW
Antonio N AmigonGermanyIvan Magalhaes PROPOSAL
Aika S InouyeItalyXuxue Feng RENEWAL
Ricardo Z KuskoJapanIoni Bowcher NEGOTIATION
Leja D RoysterBrazilStephen Shaw UNQUALIFIED
Octavia L OstroskySpainIoni Bowcher RENEWAL
Chavez M StensethAustraliaOnyama Limba RENEWAL
Nicolas W GarufiCanadaIoni Bowcher QUALIFIED
Nicolas S ChuiRussiaAsiya Javayant NEW
Izzy N GlickFranceElwin Sharvill PROPOSAL
Mujtaba W DilliardFranceOnyama Limba NEGOTIATION
Antonio E ChuiItalyAmy Elsner NEW
Clifford O ShinkoSpainIvan Magalhaes RENEWAL
Arvin M FerenczSpainElwin Sharvill RENEWAL
Misaki H FigeroaIndiaIoni Bowcher UNQUALIFIED
Costa Y RoysterFranceElwin Sharvill RENEWAL
Misaki G InouyeBrazilOnyama Limba NEGOTIATION
Aika T PerinRussiaStephen Shaw NEW
Jefferson V WieserCanadaIoni Bowcher RENEWAL
Ivar Y GauchoSpainAmy Elsner QUALIFIED
Misaki L DilliardBrazilAnna Fali PROPOSAL
Kadeem N DarakjyCanadaElwin Sharvill NEW
Ivar W DarakjyIndiaXuxue Feng NEW
Johnson D WieserGermanyAmy Elsner QUALIFIED
Mayumi L CampainGermanyStephen Shaw QUALIFIED
Morrow Y InouyeBrazilOnyama Limba NEW
Wickens A SchemmerFranceAnna Fali PROPOSAL
Sinclair S SlusarskiFranceOnyama Limba PROPOSAL
Jennifer Z VenereGermanyIvan Magalhaes NEW
David Z MacleadJapanBernardo Dominic NEW
Adams A ButtAustraliaIoni Bowcher RENEWAL
Wickens Q MacleadArgentinaBernardo Dominic RENEWAL
Darci L SergiGermanyAsiya Javayant QUALIFIED
Sinclair N IturbideRussiaIoni Bowcher QUALIFIED
Wickens E SchemmerItalyAnna Fali NEW
Costa Y FigeroaRussiaStephen Shaw RENEWAL
Deepesh V BowleyCanadaStephen Shaw NEW
Greenwood B IturbideItalyAnna Fali RENEWAL
Johnson T KuskoSpainBernardo Dominic NEW
James X BriddickGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Nicolas D Flosi
Kaitlin A Malet
Juan K Royster
James B Rulapaugh
Smith C Glick
Ricardo N Gaucho
Faith N Schemmer
Munro W Stenseth
Claire P Foller
Mujtaba J Poquette
Aika W Sergi
Salvatore P Nestle
Aditya J Slusarski
Wickens B Bolognia
Munro C Doe
Aruna Q Rulapaugh
Chavez Y Perin
Wickens G Doe
Greenwood U Figeroa
Jones R Doe
Jeanfrancois G Oldroyd
Aruna J Royster
Julie T Nicka
David H Glick
Wickens N Whobrey
Leja W Maclead
Tony Y Vocelka
Mujtaba L Foller
Kadeem L Inouye
Leja F Malet
Leon S Saylors
Silvio D Inouye
Julie E Saylors
Maisha A Bowley
Rodrigues Y Flosi
Jennifer T Doe
Rodrigues J Inouye
Leon N Foller
Costa L Campain
Jennifer U Kusko
Julie W Rim
Emily S Waycott
Salvatore A Kolmetz
Claire Y Royster
Kadeem E Glick
Smith R Slusarski
Francesco Z Morasca
Stacey F Slusarski
Ricardo W Maclead
Aruna L Wieser
IdCountryDate
1000Germany2026-07-18
1001Argentina2026-07-28
1002Australia2026-08-07
1003Japan2026-07-17
1004Japan2026-07-26
1005Germany2026-07-15
1006Germany2026-07-19
1007Spain2026-08-02
1008India2026-07-24
1009Germany2026-08-03
1010Italy2026-07-27
1011Japan2026-07-28
1012Russia2026-07-25
1013Spain2026-08-03
1014Italy2026-08-01
1015France2026-07-25
1016Spain2026-08-05
1017Russia2026-08-02
1018Canada2026-07-19
1019Canada2026-07-26
1020Japan2026-07-13
1021Argentina2026-07-22
1022Germany2026-07-18
1023Italy2026-07-15
1024Spain2026-08-07
1025Italy2026-07-15
1026Russia2026-07-18
1027Australia2026-07-18
1028Italy2026-07-27
1029Russia2026-07-14
1030India2026-08-01
1031Germany2026-07-19
1032Italy2026-07-25
1033Japan2026-08-06
1034Germany2026-08-08
1035Canada2026-08-06
1036Canada2026-08-09
1037Brazil2026-08-06
1038Spain2026-07-21
1039Argentina2026-07-25
1040Japan2026-08-02
1041France2026-08-07
1042United Kingdom2026-07-31
1043France2026-08-04
1044India2026-07-16
1045Australia2026-08-08
1046Italy2026-07-20
1047Australia2026-07-17
1048Spain2026-07-22
1049Italy2026-07-26

On-Demand Data

NameIdCountryDate
Aruna P Shinko1000India2026-07-14
Leon H Bolognia1001Italy2026-07-29
Arvin L Foller1002Argentina2026-07-24
Leja N Dilliard1003France2026-07-26
Ashley D Doe1004France2026-07-27
Murillo A Shinko1005Argentina2026-07-26
Arvin Y Kolmetz1006Russia2026-07-15
Stacey H Albares1007India2026-08-02
Deepesh J Sergi1008Canada2026-08-03
Aditya F Tollner1009Russia2026-08-07
Costa N Paprocki1010Germany2026-07-13
Arvin E Kusko1011United Kingdom2026-07-13
Faith B Malet1012Brazil2026-08-09
Clifford P Morasca1013India2026-07-26
Emily N Waycott1014France2026-07-17
Juan C Rulapaugh1015Spain2026-07-22
Jeanfrancois Y Stockham1016Spain2026-07-24
Isabel N Bolognia1017Argentina2026-07-14
Stacey P Foller1018India2026-07-12
Juan O Wieser1019Spain2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily W CaldareraFranceOnyama Limba NEW
Jones B OldroydItalyAmy Elsner UNQUALIFIED
Leja T MorascaFranceAnna Fali NEW
Maisha D FlosiBrazilAnna Fali QUALIFIED
Claire L MorascaIndiaAnna Fali UNQUALIFIED
Greenwood R ShinkoCanadaIvan Magalhaes RENEWAL
Aika S ButtArgentinaStephen Shaw UNQUALIFIED
Salvatore X ButtIndiaAmy Elsner NEGOTIATION
Kaitlin Q OstroskyUnited KingdomIoni Bowcher PROPOSAL
Leon S KuskoAustraliaIoni Bowcher RENEWAL
Johnson U FigeroaFranceAmy Elsner QUALIFIED
Kaitlin W PoquetteJapanAnna Fali NEW
Maisha W MaletRussiaIvan Magalhaes UNQUALIFIED
Munro N RutaFranceIoni Bowcher NEW
Kadeem S MaletRussiaXuxue Feng UNQUALIFIED
Maria H PaprockiUnited KingdomAmy Elsner PROPOSAL
Isabel R DarakjyBrazilBernardo Dominic RENEWAL
Jones W OldroydIndiaAmy Elsner NEGOTIATION
Mayumi R OstroskyJapanIvan Magalhaes NEGOTIATION
Adams D KuskoItalyAsiya Javayant PROPOSAL
Julie N AlbaresUnited KingdomOnyama Limba NEGOTIATION
Aruna X KuskoGermanyAnna Fali PROPOSAL
Morrow Q DoeGermanyElwin Sharvill RENEWAL
Tony C OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Francesco B WaycottBrazilStephen Shaw PROPOSAL
Tony I AmigonItalyOnyama Limba PROPOSAL
Emily W SchemmerCanadaAsiya Javayant NEW
Johnson J ButtJapanIoni Bowcher UNQUALIFIED
Morrow C ChuiCanadaIoni Bowcher RENEWAL
Cody J RutaItalyIvan Magalhaes NEW
Johnson J FlosiGermanyAnna Fali QUALIFIED
Juan V DarakjyBrazilBernardo Dominic NEW
Aruna Z TollnerRussiaAmy Elsner QUALIFIED
Leja A MorascaIndiaXuxue Feng UNQUALIFIED
Aika Q OldroydArgentinaAnna Fali PROPOSAL
Jones Y PaprockiCanadaOnyama Limba QUALIFIED
Deepesh K GauchoIndiaAnna Fali NEGOTIATION
Ricardo S TollnerIndiaXuxue Feng RENEWAL
David W RoysterGermanyIvan Magalhaes QUALIFIED
Ricardo F PerinJapanBernardo Dominic 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>