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
Jennifer R IturbideFranceStephen Shaw PROPOSAL
Adams B SchemmerGermanyIvan Magalhaes UNQUALIFIED
Mujtaba T MarrierUnited KingdomIoni Bowcher NEGOTIATION
Silvio E MorascaUnited KingdomBernardo Dominic NEW
Salvatore K SergiRussiaIvan Magalhaes RENEWAL
Murillo G OldroydItalyOnyama Limba PROPOSAL
David P WaycottAustraliaAmy Elsner QUALIFIED
Maisha S SaylorsIndiaXuxue Feng NEGOTIATION
Jeanfrancois G SchemmerBrazilAnna Fali UNQUALIFIED
Faith M ShinkoAustraliaAnna Fali UNQUALIFIED
Jennifer U WieserItalyIvan Magalhaes UNQUALIFIED
Stacey E ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Ivar K GarufiJapanBernardo Dominic RENEWAL
Arvin U WaycottItalyElwin Sharvill PROPOSAL
Faith N FerenczItalyIoni Bowcher PROPOSAL
Morrow H NickaAustraliaAsiya Javayant PROPOSAL
Juan N OstroskyCanadaElwin Sharvill QUALIFIED
Costa R ChuiCanadaOnyama Limba RENEWAL
Aditya C StockhamItalyAnna Fali UNQUALIFIED
Jones I AmigonRussiaIoni Bowcher UNQUALIFIED
Aditya F OldroydItalyAnna Fali UNQUALIFIED
Maria F SergiItalyAsiya Javayant QUALIFIED
Leja I FlosiItalyAmy Elsner PROPOSAL
Chavez E MaletJapanOnyama Limba NEGOTIATION
Nicolas R RutaItalyIvan Magalhaes NEW
Julie X SchemmerItalyXuxue Feng UNQUALIFIED
Costa E SaylorsAustraliaAsiya Javayant UNQUALIFIED
Cody Y AmigonIndiaElwin Sharvill UNQUALIFIED
Leja C FigeroaUnited KingdomAsiya Javayant QUALIFIED
Cody F StockhamIndiaAnna Fali NEGOTIATION
Izzy P StockhamGermanyIoni Bowcher UNQUALIFIED
Kaitlin C CampainArgentinaOnyama Limba UNQUALIFIED
Juan W MaletJapanBernardo Dominic UNQUALIFIED
Misaki F GarufiUnited KingdomStephen Shaw RENEWAL
Emily E CaudyRussiaAsiya Javayant PROPOSAL
Arvin U DarakjyFranceBernardo Dominic RENEWAL
Izzy Q BowleyRussiaBernardo Dominic UNQUALIFIED
Clifford O MarrierUnited KingdomAnna Fali NEW
Wickens A WhobreyUnited KingdomOnyama Limba PROPOSAL
Nicolas F SergiUnited KingdomStephen Shaw UNQUALIFIED
Stacey G SergiItalyAmy Elsner UNQUALIFIED
Aditya L RimSpainXuxue Feng NEW
Jefferson B WhobreyAustraliaIvan Magalhaes NEW
Silvio X VenereRussiaBernardo Dominic NEW
Mayumi V TollnerBrazilBernardo Dominic QUALIFIED
Aditya C NestleRussiaIoni Bowcher PROPOSAL
Kaitlin L DoeBrazilAnna Fali UNQUALIFIED
Alejandro G KuskoCanadaStephen Shaw PROPOSAL
Mayumi G CaldareraFranceIoni Bowcher UNQUALIFIED
David Q MorascaGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Octavia P AmigonCanadaXuxue Feng UNQUALIFIED
Leon N RulapaughJapanBernardo Dominic RENEWAL
Julie G NestleGermanyIoni Bowcher RENEWAL
Jefferson G NestleBrazilBernardo Dominic RENEWAL
Deepesh N MarrierFranceBernardo Dominic PROPOSAL
Kadeem Q MaletFranceBernardo Dominic RENEWAL
Julie X CaudyGermanyAnna Fali QUALIFIED
Silvio G VocelkaGermanyXuxue Feng NEGOTIATION
Jennifer U DoeRussiaAsiya Javayant NEGOTIATION
Murillo C AmigonSpainAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith F ButtRussia2026-07-28Morlong Associates QUALIFIED74Ioni Bowcher
1001Claire T PoquetteUnited Kingdom2026-07-27Chanay, Jeffrey A Esq PROPOSAL18Stephen Shaw
1002Deepesh G NickaBrazil2026-07-31Morlong Associates NEW76Ivan Magalhaes
1003Morrow O MorascaArgentina2026-07-21Morlong Associates UNQUALIFIED1Elwin Sharvill
1004Claire J PaprockiAustralia2026-07-23Morlong Associates NEW21Bernardo Dominic
1005Maisha X SaylorsItaly2026-08-10Dorl, James J Esq PROPOSAL82Bernardo Dominic
1006Jones M SlusarskiRussia2026-08-10Rousseaux, Michael Esq QUALIFIED44Onyama Limba
1007Francesco N ChuiItaly2026-08-07King, Christopher A Esq PROPOSAL92Ivan Magalhaes
1008Izzy H SaylorsArgentina2026-08-03Commercial Press UNQUALIFIED41Amy Elsner
1009Tony Z OstroskyJapan2026-07-20Chemel, James L Cpa QUALIFIED48Asiya Javayant
1010Ashley X StockhamBrazil2026-07-31Buckley Miller Wright UNQUALIFIED81Anna Fali
1011Isabel E DilliardIndia2026-08-08Printing Dimensions PROPOSAL80Onyama Limba
1012Aruna N IturbideBrazil2026-07-24Benton, John B Jr UNQUALIFIED56Amy Elsner
1013Aika Q FerenczArgentina2026-07-28Commercial Press PROPOSAL61Onyama Limba
1014Munro Z KuskoAustralia2026-08-01Chapman, Ross E Esq UNQUALIFIED83Ivan Magalhaes
1015Mayumi I FerenczBrazil2026-08-15Feltz Printing Service QUALIFIED60Stephen Shaw
1016Jeanfrancois L SergiFrance2026-07-27King, Christopher A Esq PROPOSAL99Stephen Shaw
1017Izzy J AlbaresGermany2026-08-17Chanay, Jeffrey A Esq UNQUALIFIED0Amy Elsner
1018Jeanfrancois T SaylorsGermany2026-08-12Dorl, James J Esq RENEWAL17Xuxue Feng
1019Leja W AlbaresArgentina2026-07-21Chemel, James L Cpa PROPOSAL15Xuxue Feng
1020Stacey H BologniaFrance2026-08-15Printing Dimensions NEW43Asiya Javayant
1021Ashley D OldroydJapan2026-07-30Chemel, James L Cpa NEW42Ioni Bowcher
1022Misaki V ButtIndia2026-07-30Morlong Associates NEGOTIATION67Asiya Javayant
1023Leja C ChuiArgentina2026-08-16Benton, John B Jr QUALIFIED93Stephen Shaw
1024Maisha J SergiSpain2026-07-22Truhlar And Truhlar Attys NEGOTIATION83Ioni Bowcher
1025Johnson H NestleIndia2026-08-17Buckley Miller Wright PROPOSAL15Amy Elsner
1026Rodrigues B BowleyItaly2026-08-03Feiner Bros UNQUALIFIED56Amy Elsner
1027Jennifer M DilliardItaly2026-07-24Rousseaux, Michael Esq NEW86Ivan Magalhaes
1028Leja W WhobreyAustralia2026-07-23Chapman, Ross E Esq NEW48Asiya Javayant
1029Clifford Z ButtBrazil2026-07-19Rousseaux, Michael Esq QUALIFIED6Onyama Limba
1030Antonio L KuskoItaly2026-08-14Feltz Printing Service UNQUALIFIED41Amy Elsner
1031Claire H GlickSpain2026-07-29Buckley Miller Wright NEGOTIATION41Anna Fali
1032Alejandro Y DoeArgentina2026-08-01Dorl, James J Esq RENEWAL68Stephen Shaw
1033Isabel K ButtIndia2026-08-16Feltz Printing Service QUALIFIED34Stephen Shaw
1034James V MaletGermany2026-07-22Feiner Bros QUALIFIED64Xuxue Feng
1035Leja R CaudyJapan2026-08-04Chemel, James L Cpa QUALIFIED99Anna Fali
1036Costa Y WieserUnited Kingdom2026-08-05Chanay, Jeffrey A Esq QUALIFIED74Ioni Bowcher
1037Chavez V VocelkaIndia2026-08-14Chemel, James L Cpa UNQUALIFIED69Stephen Shaw
1038Kaitlin U OstroskyCanada2026-08-01Rousseaux, Michael Esq NEGOTIATION28Amy Elsner
1039Emily P DarakjyCanada2026-08-07Rousseaux, Michael Esq QUALIFIED65Asiya Javayant
1040Greenwood R DilliardCanada2026-07-31Truhlar And Truhlar Attys UNQUALIFIED40Asiya Javayant
1041Isabel Q FerenczAustralia2026-08-10King, Christopher A Esq QUALIFIED96Anna Fali
1042Aruna D StockhamUnited Kingdom2026-07-20Chemel, James L Cpa QUALIFIED67Anna Fali
1043Adams X WaycottFrance2026-08-02Feltz Printing Service PROPOSAL88Ioni Bowcher
1044Kadeem P SaylorsBrazil2026-07-22Rousseaux, Michael Esq QUALIFIED96Asiya Javayant
1045Jones I SaylorsIndia2026-07-21Feltz Printing Service UNQUALIFIED68Bernardo Dominic
1046Emily T OstroskyUnited Kingdom2026-08-04Commercial Press NEW8Elwin Sharvill
1047Silvio C DoeSpain2026-08-14Dorl, James J Esq UNQUALIFIED65Ioni Bowcher
1048Leon F FlosiIndia2026-07-26Dorl, James J Esq PROPOSAL55Bernardo Dominic
1049Clifford D MarrierBrazil2026-08-14Printing Dimensions NEW22Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois B MaletUnited KingdomBernardo Dominic PROPOSAL
Deepesh V AmigonItalyAsiya Javayant RENEWAL
Leja Z OldroydCanadaIvan Magalhaes RENEWAL
Octavia B AlbaresItalyIoni Bowcher UNQUALIFIED
Deepesh J InouyeSpainIvan Magalhaes PROPOSAL
Ashley Z TollnerUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin M BriddickIndiaElwin Sharvill NEGOTIATION
Smith O RulapaughCanadaAsiya Javayant PROPOSAL
Jones H WieserAustraliaAsiya Javayant NEGOTIATION
Kadeem H MaletGermanyStephen Shaw UNQUALIFIED
Murillo M CampainUnited KingdomBernardo Dominic NEW
Johnson E KolmetzBrazilStephen Shaw QUALIFIED
David P StensethFranceXuxue Feng NEGOTIATION
Juan M BowleyGermanyIvan Magalhaes PROPOSAL
Darci B NestleBrazilStephen Shaw NEW
Juan T NestleSpainOnyama Limba NEGOTIATION
Wickens C MorascaUnited KingdomAnna Fali NEGOTIATION
Isabel N BowleyJapanXuxue Feng QUALIFIED
David K BriddickUnited KingdomOnyama Limba QUALIFIED
Ivar Z FollerIndiaXuxue Feng UNQUALIFIED
Costa Q WhobreyBrazilBernardo Dominic QUALIFIED
Alejandro W ButtArgentinaBernardo Dominic UNQUALIFIED
Julie V AmigonItalyAmy Elsner RENEWAL
Smith F WaycottSpainBernardo Dominic NEGOTIATION
Maria B NickaSpainXuxue Feng UNQUALIFIED
Alejandro C MarrierBrazilIoni Bowcher NEGOTIATION
Rodrigues C WaycottJapanAnna Fali PROPOSAL
Ashley U MaletIndiaStephen Shaw QUALIFIED
Cody N BologniaIndiaAsiya Javayant NEW
Emily G FerenczRussiaStephen Shaw NEW
Kaitlin O VocelkaJapanElwin Sharvill UNQUALIFIED
Deepesh Y MorascaUnited KingdomXuxue Feng UNQUALIFIED
Nicolas B PoquetteFranceStephen Shaw RENEWAL
Jeanfrancois W RoysterRussiaIvan Magalhaes QUALIFIED
Mayumi M MorascaAustraliaOnyama Limba RENEWAL
Ricardo I GillianAustraliaAsiya Javayant NEGOTIATION
Ashley B BologniaItalyIoni Bowcher UNQUALIFIED
Sinclair P BriddickItalyIvan Magalhaes QUALIFIED
Mujtaba Y RoysterGermanyXuxue Feng UNQUALIFIED
Wickens E SlusarskiAustraliaAmy Elsner NEW
Misaki O ButtIndiaAmy Elsner QUALIFIED
Faith R PaprockiJapanOnyama Limba NEGOTIATION
Jeanfrancois L GarufiCanadaElwin Sharvill NEW
Smith S MaletUnited KingdomAsiya Javayant QUALIFIED
Kaitlin Z GarufiBrazilStephen Shaw NEW
Wickens F PoquetteRussiaXuxue Feng QUALIFIED
Leja O DarakjySpainAmy Elsner NEW
Ricardo W FerenczCanadaIvan Magalhaes UNQUALIFIED
Smith M MaletArgentinaAsiya Javayant NEGOTIATION
Salvatore J TollnerItalyOnyama Limba RENEWAL
Frozen Columns
Name
Morrow C Iturbide
Johnson T Kolmetz
Jones T Rulapaugh
Nicolas X Gaucho
Juan N Vocelka
Faith A Briddick
Ashley S Royster
David I Malet
Mayumi A Malet
Kaitlin S Malet
David J Oldroyd
James R Perin
Johnson Z Gaucho
Francesco I Whobrey
Antonio Z Stenseth
Octavia T Waycott
Aruna O Kusko
Deepesh G Paprocki
James Q Briddick
Wickens H Caudy
Leon G Waycott
Octavia M Whobrey
Jeanfrancois M Dilliard
Stacey M Bowley
Deepesh H Flosi
Claire D Chui
Kadeem G Flosi
Jefferson H Paprocki
Stacey A Figeroa
Leja T Inouye
Jeanfrancois Z Briddick
Murillo U Caldarera
Chavez V Chui
Octavia T Flosi
Silvio K Bowley
Costa I Paprocki
Costa U Whobrey
Antonio I Amigon
Jefferson R Glick
Faith W Kusko
Salvatore S Paprocki
Tony W Royster
Arvin S Poquette
Tony X Perin
Sinclair N Rulapaugh
Stacey E Maclead
Cody M Saylors
Aika F Slusarski
Juan Y Albares
Adams P Poquette
IdCountryDate
1000Canada2026-08-16
1001Australia2026-08-04
1002Germany2026-08-08
1003Brazil2026-07-26
1004Japan2026-08-10
1005Russia2026-07-23
1006Germany2026-07-31
1007Germany2026-08-13
1008Spain2026-08-02
1009Japan2026-07-24
1010Canada2026-08-09
1011Canada2026-08-06
1012France2026-08-03
1013Russia2026-08-03
1014Brazil2026-07-25
1015United Kingdom2026-08-17
1016Canada2026-07-30
1017Italy2026-07-30
1018Russia2026-07-19
1019Brazil2026-07-30
1020Germany2026-08-12
1021India2026-07-25
1022Brazil2026-07-24
1023Russia2026-07-25
1024France2026-08-03
1025Argentina2026-08-01
1026United Kingdom2026-08-09
1027United Kingdom2026-08-17
1028India2026-07-25
1029Australia2026-08-05
1030Brazil2026-07-22
1031United Kingdom2026-07-21
1032Australia2026-08-02
1033Spain2026-07-20
1034India2026-08-04
1035India2026-08-12
1036Brazil2026-08-08
1037Russia2026-07-23
1038France2026-07-19
1039Japan2026-08-16
1040Japan2026-07-29
1041Canada2026-08-06
1042United Kingdom2026-08-05
1043Japan2026-08-07
1044Japan2026-07-23
1045United Kingdom2026-07-31
1046Japan2026-08-13
1047Canada2026-08-09
1048Argentina2026-07-31
1049Australia2026-07-21

On-Demand Data

NameIdCountryDate
Octavia B Nestle1000Argentina2026-07-20
Wickens R Poquette1001Italy2026-08-15
Ivar P Flosi1002Australia2026-08-12
Izzy T Morasca1003Japan2026-07-19
Misaki W Darakjy1004United Kingdom2026-08-13
Misaki W Marrier1005Spain2026-07-30
Kaitlin R Campain1006France2026-07-19
Salvatore T Briddick1007Brazil2026-08-17
Francesco A Waycott1008Canada2026-08-12
Aditya C Kolmetz1009Japan2026-08-13
Aruna S Perin1010Italy2026-07-23
Aruna F Caldarera1011Italy2026-08-16
Isabel G Morasca1012Italy2026-07-21
Octavia E Oldroyd1013Germany2026-08-06
Juan X Tollner1014United Kingdom2026-08-01
Darci I Shinko1015Germany2026-08-09
Ricardo B Poquette1016Russia2026-08-04
Maisha L Poquette1017Australia2026-07-20
Smith A Shinko1018Japan2026-08-09
Clifford N Campain1019Italy2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer F MaletRussiaAsiya Javayant UNQUALIFIED
James P CaudyAustraliaXuxue Feng PROPOSAL
Silvio R SchemmerAustraliaAsiya Javayant RENEWAL
Costa J MaletArgentinaOnyama Limba PROPOSAL
Francesco G BriddickGermanyAmy Elsner NEGOTIATION
Ricardo D FollerFranceElwin Sharvill QUALIFIED
Nicolas L DilliardAustraliaStephen Shaw QUALIFIED
Rodrigues H MacleadRussiaOnyama Limba RENEWAL
James Z IturbideFranceBernardo Dominic PROPOSAL
Faith W SaylorsJapanStephen Shaw PROPOSAL
Smith M SchemmerCanadaAnna Fali RENEWAL
Tony M StockhamBrazilElwin Sharvill QUALIFIED
Ashley S CaudyIndiaStephen Shaw QUALIFIED
Octavia S TollnerRussiaAnna Fali NEW
Leon J BriddickArgentinaAsiya Javayant QUALIFIED
Aditya T PoquetteArgentinaAmy Elsner NEW
Tony E PaprockiItalyAmy Elsner RENEWAL
James M FlosiAustraliaAsiya Javayant UNQUALIFIED
Rodrigues G GarufiGermanyAnna Fali PROPOSAL
James E WhobreyArgentinaAnna Fali PROPOSAL
Leja F GauchoIndiaOnyama Limba QUALIFIED
Cody Z AlbaresCanadaIoni Bowcher QUALIFIED
Octavia S FerenczBrazilAmy Elsner UNQUALIFIED
James B SergiRussiaAmy Elsner RENEWAL
Stacey N IturbideAustraliaIvan Magalhaes RENEWAL
Greenwood P CampainJapanAnna Fali QUALIFIED
Clifford F AmigonItalyAnna Fali NEGOTIATION
Maria K ShinkoFranceIoni Bowcher PROPOSAL
Faith E BriddickJapanAsiya Javayant RENEWAL
Salvatore F ChuiItalyElwin Sharvill NEGOTIATION
Jeanfrancois G ShinkoRussiaOnyama Limba PROPOSAL
Wickens U StockhamItalyIvan Magalhaes UNQUALIFIED
Greenwood X AlbaresCanadaIoni Bowcher UNQUALIFIED
Sinclair Y PerinUnited KingdomAsiya Javayant PROPOSAL
Octavia A BologniaBrazilElwin Sharvill RENEWAL
Mujtaba D InouyeCanadaXuxue Feng NEGOTIATION
Emily N BologniaAustraliaBernardo Dominic QUALIFIED
Jeanfrancois Z SchemmerRussiaXuxue Feng PROPOSAL
Morrow G StensethUnited KingdomBernardo Dominic NEW
Morrow V KuskoSpainBernardo 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>