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
Adams B OldroydIndiaElwin Sharvill RENEWAL
Leon S PoquetteGermanyIoni Bowcher RENEWAL
Tony J AmigonUnited KingdomAsiya Javayant RENEWAL
Silvio O RimUnited KingdomIvan Magalhaes QUALIFIED
Greenwood Q GlickArgentinaStephen Shaw NEGOTIATION
Misaki D GillianIndiaAsiya Javayant UNQUALIFIED
Silvio C SlusarskiUnited KingdomAmy Elsner QUALIFIED
Deepesh P FerenczItalyIvan Magalhaes NEW
Jones T CampainCanadaIoni Bowcher RENEWAL
Kaitlin W BriddickGermanyIoni Bowcher QUALIFIED
Emily O AlbaresGermanyStephen Shaw RENEWAL
Darci L VocelkaGermanyBernardo Dominic UNQUALIFIED
Tony B StockhamRussiaStephen Shaw RENEWAL
Salvatore F IturbideFranceIvan Magalhaes UNQUALIFIED
Munro I OstroskyCanadaAsiya Javayant NEW
Ashley J ChuiRussiaOnyama Limba RENEWAL
Ivar G BologniaRussiaIvan Magalhaes QUALIFIED
Alejandro M WieserIndiaStephen Shaw NEGOTIATION
Jones H PaprockiJapanAmy Elsner NEGOTIATION
Silvio F MaletSpainIvan Magalhaes NEGOTIATION
Octavia E SaylorsGermanyElwin Sharvill NEW
Octavia K WhobreySpainStephen Shaw NEW
Juan J VenereAustraliaElwin Sharvill NEGOTIATION
Claire R GarufiItalyAsiya Javayant PROPOSAL
Arvin J FollerRussiaXuxue Feng RENEWAL
Silvio A StockhamBrazilStephen Shaw UNQUALIFIED
Aruna I OstroskyArgentinaIvan Magalhaes RENEWAL
Claire D RimItalyAsiya Javayant RENEWAL
Ivar V PaprockiBrazilAmy Elsner QUALIFIED
Morrow Z VenereCanadaAnna Fali NEW
Leon O FlosiArgentinaAmy Elsner RENEWAL
Misaki N FlosiRussiaIoni Bowcher UNQUALIFIED
Mayumi D RimBrazilAsiya Javayant QUALIFIED
Darci H MorascaJapanIoni Bowcher QUALIFIED
Rodrigues N AmigonIndiaAnna Fali UNQUALIFIED
Wickens P RulapaughItalyAnna Fali RENEWAL
Jennifer W VocelkaJapanIoni Bowcher NEW
Alejandro H GarufiIndiaAnna Fali QUALIFIED
Darci I FigeroaJapanXuxue Feng NEGOTIATION
Aruna Q RutaSpainOnyama Limba NEGOTIATION
Kaitlin Y GarufiItalyBernardo Dominic UNQUALIFIED
Octavia Q AlbaresFranceIvan Magalhaes NEGOTIATION
Faith Z StockhamRussiaIoni Bowcher NEW
Sinclair N ChuiIndiaElwin Sharvill RENEWAL
Misaki Q ButtUnited KingdomAsiya Javayant NEW
Adams J DilliardBrazilElwin Sharvill NEGOTIATION
Rodrigues A NestleGermanyIvan Magalhaes QUALIFIED
Kaitlin C GauchoItalyIvan Magalhaes RENEWAL
Kaitlin V RutaArgentinaXuxue Feng PROPOSAL
Costa H MacleadJapanElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Emily V StensethBrazilAsiya Javayant UNQUALIFIED
Jefferson N RulapaughItalyAsiya Javayant UNQUALIFIED
Murillo W CaldareraFranceIvan Magalhaes QUALIFIED
Rodrigues O NestleIndiaBernardo Dominic RENEWAL
Salvatore K VenereArgentinaOnyama Limba QUALIFIED
Leja O GauchoItalyOnyama Limba NEGOTIATION
Cody Z GauchoSpainStephen Shaw NEGOTIATION
Adams L SchemmerCanadaAmy Elsner NEW
Tony G StensethIndiaOnyama Limba NEW
Wickens M DoeItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci D MorascaUnited Kingdom2026-07-30Feiner Bros PROPOSAL94Asiya Javayant
1001Maria N CampainGermany2026-08-07Feiner Bros RENEWAL38Ioni Bowcher
1002Alejandro X GillianItaly2026-07-22Feiner Bros NEGOTIATION0Elwin Sharvill
1003Julie K DilliardItaly2026-07-31Morlong Associates NEW79Bernardo Dominic
1004Jennifer E IturbideJapan2026-07-30Commercial Press QUALIFIED20Stephen Shaw
1005Smith E SlusarskiAustralia2026-07-24Chapman, Ross E Esq UNQUALIFIED94Xuxue Feng
1006Murillo P BowleySpain2026-08-05Benton, John B Jr QUALIFIED66Stephen Shaw
1007Ivar O BologniaRussia2026-08-14Feiner Bros UNQUALIFIED26Amy Elsner
1008Sinclair X RulapaughSpain2026-08-02Benton, John B Jr NEGOTIATION63Stephen Shaw
1009Maisha L SaylorsFrance2026-07-18Dorl, James J Esq QUALIFIED95Bernardo Dominic
1010Deepesh C OldroydItaly2026-07-26Morlong Associates UNQUALIFIED22Bernardo Dominic
1011Antonio Q RimArgentina2026-08-02Chanay, Jeffrey A Esq PROPOSAL32Onyama Limba
1012Rodrigues C BriddickCanada2026-07-25Buckley Miller Wright QUALIFIED85Elwin Sharvill
1013Claire M MorascaArgentina2026-08-12Chemel, James L Cpa PROPOSAL72Elwin Sharvill
1014Faith O ShinkoBrazil2026-08-14Truhlar And Truhlar Attys PROPOSAL22Asiya Javayant
1015Greenwood T DilliardFrance2026-08-07Feiner Bros UNQUALIFIED58Xuxue Feng
1016Cody C StockhamGermany2026-08-06Truhlar And Truhlar Attys UNQUALIFIED88Stephen Shaw
1017Costa B ChuiJapan2026-07-28Dorl, James J Esq RENEWAL53Amy Elsner
1018Jeanfrancois H SchemmerAustralia2026-08-10Rousseaux, Michael Esq NEGOTIATION5Anna Fali
1019Octavia U KolmetzCanada2026-08-04Morlong Associates NEGOTIATION8Elwin Sharvill
1020David G RimUnited Kingdom2026-08-12Chemel, James L Cpa RENEWAL40Ivan Magalhaes
1021James T InouyeRussia2026-07-19Buckley Miller Wright QUALIFIED52Ioni Bowcher
1022Kadeem V VocelkaIndia2026-08-04Benton, John B Jr UNQUALIFIED13Bernardo Dominic
1023Jones E StensethIndia2026-07-28King, Christopher A Esq QUALIFIED42Amy Elsner
1024Wickens D RoysterIndia2026-07-18Chapman, Ross E Esq NEW92Stephen Shaw
1025Johnson M VocelkaSpain2026-07-21Commercial Press NEGOTIATION9Xuxue Feng
1026Ashley S WaycottIndia2026-08-05Morlong Associates RENEWAL88Ivan Magalhaes
1027Kaitlin I ButtAustralia2026-08-03Dorl, James J Esq QUALIFIED5Ioni Bowcher
1028Munro L GauchoArgentina2026-07-18Chapman, Ross E Esq NEW55Xuxue Feng
1029Jones I NickaFrance2026-07-19Feiner Bros NEW17Amy Elsner
1030Wickens Y SergiBrazil2026-07-24Buckley Miller Wright UNQUALIFIED45Onyama Limba
1031Tony W DarakjyBrazil2026-08-01Chapman, Ross E Esq NEGOTIATION65Onyama Limba
1032Maria Q FollerRussia2026-07-31Rangoni Of Florence RENEWAL69Amy Elsner
1033David V StensethCanada2026-07-22Rousseaux, Michael Esq UNQUALIFIED48Onyama Limba
1034Nicolas R SergiAustralia2026-07-27Feiner Bros RENEWAL58Elwin Sharvill
1035Ricardo R RutaGermany2026-07-24Morlong Associates NEGOTIATION93Stephen Shaw
1036Stacey W FlosiIndia2026-08-04King, Christopher A Esq PROPOSAL48Elwin Sharvill
1037Aruna F MaletBrazil2026-08-13Benton, John B Jr PROPOSAL88Ioni Bowcher
1038Chavez A ButtBrazil2026-08-02Rangoni Of Florence PROPOSAL48Xuxue Feng
1039Johnson E AlbaresRussia2026-08-12Benton, John B Jr RENEWAL97Bernardo Dominic
1040Jones Y MarrierItaly2026-07-28Feltz Printing Service NEW35Asiya Javayant
1041Kadeem Z CampainArgentina2026-08-01Buckley Miller Wright NEW30Ioni Bowcher
1042Mayumi H FerenczItaly2026-08-03Rangoni Of Florence NEW27Onyama Limba
1043Adams N MaletGermany2026-07-25Benton, John B Jr UNQUALIFIED42Asiya Javayant
1044Aika T KuskoUnited Kingdom2026-07-22Buckley Miller Wright NEGOTIATION17Asiya Javayant
1045Francesco Y NickaRussia2026-08-12Commercial Press QUALIFIED81Onyama Limba
1046Leja L MorascaAustralia2026-08-11Feiner Bros QUALIFIED79Amy Elsner
1047Juan E MorascaRussia2026-07-22Rangoni Of Florence RENEWAL52Asiya Javayant
1048Alejandro M StensethSpain2026-08-13Dorl, James J Esq NEW32Elwin Sharvill
1049James J GarufiGermany2026-07-24Rangoni Of Florence NEGOTIATION36Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Francesco G DilliardIndiaIvan Magalhaes NEGOTIATION
Tony D GillianUnited KingdomXuxue Feng QUALIFIED
Ashley L ButtCanadaAsiya Javayant NEGOTIATION
Juan S BriddickItalyXuxue Feng NEW
Greenwood P StockhamGermanyStephen Shaw RENEWAL
Maisha T MacleadCanadaXuxue Feng UNQUALIFIED
Smith B RimItalyOnyama Limba UNQUALIFIED
Maria K IturbideCanadaStephen Shaw QUALIFIED
Munro F CampainBrazilStephen Shaw QUALIFIED
Morrow P ButtUnited KingdomAnna Fali PROPOSAL
Morrow V RoysterGermanyIvan Magalhaes RENEWAL
Morrow G CampainItalyAmy Elsner PROPOSAL
Aika I StensethFranceAsiya Javayant RENEWAL
Arvin D KuskoSpainStephen Shaw PROPOSAL
Munro J FerenczIndiaStephen Shaw NEGOTIATION
James S GauchoUnited KingdomElwin Sharvill NEW
Deepesh Y FlosiCanadaIvan Magalhaes NEGOTIATION
Leon A AmigonCanadaAmy Elsner QUALIFIED
Francesco T IturbideBrazilIvan Magalhaes NEW
Aika M GauchoGermanyStephen Shaw QUALIFIED
Murillo C DarakjySpainAnna Fali NEW
Ricardo Y DoeGermanyAmy Elsner PROPOSAL
James Y MacleadIndiaStephen Shaw UNQUALIFIED
Murillo R ChuiItalyAsiya Javayant NEW
Stacey Y NickaGermanyXuxue Feng UNQUALIFIED
Stacey Z RoysterUnited KingdomIoni Bowcher QUALIFIED
Aruna J DarakjySpainOnyama Limba RENEWAL
Stacey N GauchoUnited KingdomStephen Shaw NEW
Sinclair M RoysterSpainIoni Bowcher RENEWAL
Alejandro I BologniaGermanyIoni Bowcher QUALIFIED
Clifford W SlusarskiGermanyAnna Fali NEW
Adams S OldroydArgentinaIvan Magalhaes RENEWAL
Mujtaba X SchemmerJapanAnna Fali QUALIFIED
Misaki L CaudyCanadaIoni Bowcher RENEWAL
Munro Q GillianItalyElwin Sharvill RENEWAL
Sinclair Y BowleyRussiaIvan Magalhaes NEW
Maisha W CaldareraRussiaXuxue Feng QUALIFIED
Mujtaba K SchemmerArgentinaElwin Sharvill PROPOSAL
Greenwood Z FlosiJapanIvan Magalhaes NEGOTIATION
Smith N StensethIndiaElwin Sharvill UNQUALIFIED
Misaki A GillianAustraliaBernardo Dominic RENEWAL
Johnson R StockhamGermanyXuxue Feng RENEWAL
Aditya N ButtArgentinaStephen Shaw RENEWAL
Isabel S WieserSpainElwin Sharvill UNQUALIFIED
Izzy S ButtJapanAnna Fali NEGOTIATION
Jennifer O RimRussiaIvan Magalhaes RENEWAL
Antonio O PaprockiItalyAnna Fali QUALIFIED
Izzy O SchemmerIndiaBernardo Dominic RENEWAL
Arvin K ShinkoUnited KingdomBernardo Dominic RENEWAL
Tony Y MarrierFranceAsiya Javayant QUALIFIED
Frozen Columns
Name
Misaki X Caldarera
Maisha E Poquette
Leja S Morasca
Munro T Saylors
Alejandro U Morasca
Clifford O Paprocki
Tony V Doe
Aruna E Rulapaugh
Wickens K Perin
Maisha N Rim
Maisha M Campain
Adams D Malet
Aruna S Venere
Greenwood U Schemmer
Jefferson X Ruta
Rodrigues O Chui
Leja W Royster
Emily A Glick
Izzy I Nestle
James J Royster
Leja B Malet
Mujtaba G Dilliard
Ashley N Saylors
Aika M Campain
Maria R Tollner
Emily W Chui
James B Stenseth
Chavez X Inouye
Ashley H Ferencz
Costa D Ostrosky
Jefferson O Royster
Munro G Royster
Johnson V Marrier
Emily Z Amigon
Arvin L Perin
Kaitlin Z Nicka
Alejandro N Sergi
Jeanfrancois Z Rim
Arvin M Marrier
Munro F Gaucho
Murillo U Sergi
Octavia S Ruta
Leon B Darakjy
Costa Z Poquette
Octavia K Stenseth
Aditya B Ferencz
Maria J Schemmer
Jefferson K Malet
Johnson Y Poquette
Kaitlin N Ruta
IdCountryDate
1000Spain2026-07-31
1001France2026-07-27
1002Russia2026-07-21
1003Japan2026-08-07
1004Russia2026-08-07
1005Argentina2026-07-22
1006Germany2026-07-28
1007Brazil2026-07-30
1008Canada2026-08-02
1009Canada2026-07-23
1010Australia2026-08-15
1011Germany2026-08-01
1012Russia2026-08-11
1013Spain2026-07-26
1014Germany2026-08-09
1015Canada2026-07-19
1016Japan2026-08-09
1017France2026-08-05
1018Brazil2026-08-06
1019Japan2026-07-30
1020Argentina2026-08-04
1021Spain2026-08-03
1022Australia2026-08-02
1023Japan2026-08-12
1024Italy2026-07-29
1025Japan2026-08-04
1026France2026-08-14
1027Italy2026-08-12
1028Italy2026-07-30
1029Argentina2026-07-31
1030Australia2026-08-09
1031Germany2026-08-03
1032Japan2026-07-26
1033Argentina2026-08-11
1034United Kingdom2026-08-15
1035Russia2026-08-11
1036India2026-08-11
1037Argentina2026-08-12
1038France2026-08-01
1039United Kingdom2026-07-29
1040Argentina2026-08-11
1041Canada2026-08-10
1042Italy2026-08-01
1043France2026-07-18
1044Russia2026-07-21
1045India2026-07-31
1046India2026-07-29
1047Canada2026-08-14
1048France2026-07-30
1049Spain2026-08-03

On-Demand Data

NameIdCountryDate
Munro S Garufi1000Canada2026-08-05
Clifford J Gillian1001Argentina2026-08-12
Julie I Chui1002Italy2026-08-03
David W Ruta1003Brazil2026-08-15
Leja P Tollner1004India2026-08-06
Octavia F Briddick1005India2026-08-14
Stacey G Campain1006Australia2026-07-24
Rodrigues H Marrier1007Australia2026-07-31
Ricardo J Tollner1008Spain2026-07-24
Darci M Waycott1009Japan2026-07-25
Maria F Royster1010France2026-08-01
Kaitlin F Glick1011Japan2026-08-08
Jefferson P Venere1012Spain2026-08-06
Murillo S Dilliard1013Argentina2026-07-23
Maisha J Campain1014Argentina2026-08-05
Ricardo G Amigon1015Japan2026-07-23
James Q Saylors1016Italy2026-07-17
Leon N Iturbide1017Brazil2026-08-01
Isabel K Butt1018Canada2026-08-14
Rodrigues E Shinko1019Russia2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas C TollnerRussiaOnyama Limba NEGOTIATION
Mayumi Z FollerCanadaAnna Fali NEW
Jefferson N RimBrazilStephen Shaw RENEWAL
Isabel U GlickSpainAsiya Javayant PROPOSAL
Darci U GillianItalyAmy Elsner QUALIFIED
Claire Y KolmetzArgentinaIvan Magalhaes RENEWAL
Stacey L BologniaJapanElwin Sharvill QUALIFIED
Morrow Y PerinUnited KingdomAmy Elsner UNQUALIFIED
Stacey T NickaFranceStephen Shaw RENEWAL
Arvin N MacleadSpainElwin Sharvill PROPOSAL
Costa R SlusarskiSpainIoni Bowcher UNQUALIFIED
Mujtaba D NestleItalyElwin Sharvill QUALIFIED
Maisha X KolmetzArgentinaIoni Bowcher UNQUALIFIED
Nicolas H RoysterSpainAsiya Javayant NEW
Salvatore L KolmetzItalyAnna Fali UNQUALIFIED
Jefferson Z VocelkaRussiaAmy Elsner NEW
Aruna Q WaycottAustraliaAsiya Javayant RENEWAL
Ashley V AmigonAustraliaAsiya Javayant QUALIFIED
Maisha U DoeIndiaElwin Sharvill RENEWAL
Isabel T TollnerJapanOnyama Limba QUALIFIED
Leja N ButtIndiaStephen Shaw NEW
Greenwood V MorascaBrazilElwin Sharvill NEGOTIATION
Mujtaba Z VocelkaRussiaIvan Magalhaes NEGOTIATION
Silvio T RoysterUnited KingdomOnyama Limba PROPOSAL
Antonio D CaldareraFranceAmy Elsner NEGOTIATION
Morrow N MacleadCanadaAmy Elsner QUALIFIED
Emily V ShinkoCanadaBernardo Dominic RENEWAL
Jennifer N MacleadGermanyIvan Magalhaes QUALIFIED
Antonio X NestleRussiaXuxue Feng NEW
Francesco C GillianUnited KingdomOnyama Limba NEW
Ashley N NickaAustraliaAsiya Javayant NEW
Costa M RoysterBrazilAsiya Javayant UNQUALIFIED
Ricardo G VocelkaItalyAnna Fali PROPOSAL
Kaitlin Z BowleyGermanyIoni Bowcher QUALIFIED
Kaitlin O RutaFranceIvan Magalhaes RENEWAL
Aruna F OldroydCanadaAnna Fali UNQUALIFIED
Aruna B GarufiRussiaOnyama Limba NEW
Aruna L DarakjyIndiaAnna Fali QUALIFIED
Aditya X MorascaCanadaAsiya Javayant RENEWAL
Misaki S MacleadJapanIoni Bowcher QUALIFIED

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