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
Wickens V OstroskyUnited KingdomElwin Sharvill PROPOSAL
Jones Z WieserBrazilAmy Elsner QUALIFIED
Izzy Q PoquetteIndiaOnyama Limba QUALIFIED
Kaitlin H FollerRussiaAsiya Javayant RENEWAL
Aruna E MaletJapanBernardo Dominic QUALIFIED
Kadeem I VenereIndiaElwin Sharvill NEGOTIATION
Adams A SchemmerBrazilIvan Magalhaes NEW
Darci M AmigonUnited KingdomIoni Bowcher UNQUALIFIED
James M WaycottArgentinaBernardo Dominic NEGOTIATION
Maisha W DilliardIndiaElwin Sharvill NEW
Izzy Q SchemmerUnited KingdomAsiya Javayant PROPOSAL
Maisha F KolmetzFranceElwin Sharvill RENEWAL
Morrow X MaletGermanyAnna Fali QUALIFIED
Greenwood B InouyeRussiaOnyama Limba NEGOTIATION
Jones O OldroydSpainIoni Bowcher NEGOTIATION
Munro H CaudyJapanBernardo Dominic UNQUALIFIED
Aditya Y CaldareraGermanyXuxue Feng QUALIFIED
Deepesh U FlosiItalyElwin Sharvill RENEWAL
Ashley G SaylorsAustraliaXuxue Feng NEGOTIATION
Jeanfrancois E AmigonIndiaAmy Elsner PROPOSAL
Darci E FollerFranceBernardo Dominic NEGOTIATION
Costa Y StockhamRussiaXuxue Feng PROPOSAL
David M KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Darci O ShinkoArgentinaElwin Sharvill PROPOSAL
Adams C MacleadBrazilXuxue Feng UNQUALIFIED
Wickens C MaletArgentinaXuxue Feng RENEWAL
Murillo S PoquetteBrazilAsiya Javayant NEGOTIATION
Wickens N WaycottUnited KingdomIoni Bowcher PROPOSAL
Emily I MarrierBrazilAsiya Javayant PROPOSAL
Antonio O OstroskyJapanIvan Magalhaes NEGOTIATION
Munro C GillianRussiaXuxue Feng QUALIFIED
Silvio X VenereJapanStephen Shaw QUALIFIED
Deepesh Y WaycottCanadaAsiya Javayant PROPOSAL
Clifford E CaldareraAustraliaIvan Magalhaes NEW
Octavia G GauchoSpainXuxue Feng PROPOSAL
Jeanfrancois Q WieserArgentinaIvan Magalhaes NEGOTIATION
Leon X StensethCanadaIvan Magalhaes NEGOTIATION
Faith T GauchoItalyElwin Sharvill QUALIFIED
Misaki I PaprockiAustraliaOnyama Limba NEW
Wickens G OldroydIndiaAnna Fali NEGOTIATION
Juan V NestleAustraliaStephen Shaw NEW
Ricardo K DoeCanadaStephen Shaw RENEWAL
Darci L VocelkaGermanyIoni Bowcher RENEWAL
Kadeem G ChuiUnited KingdomElwin Sharvill RENEWAL
Smith R CaldareraFranceIvan Magalhaes RENEWAL
Antonio A RimAustraliaAnna Fali UNQUALIFIED
Clifford I FigeroaIndiaIvan Magalhaes PROPOSAL
Alejandro Y IturbideArgentinaAmy Elsner NEGOTIATION
Mujtaba M NickaAustraliaXuxue Feng QUALIFIED
Antonio N SaylorsCanadaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas T MarrierCanadaStephen Shaw NEGOTIATION
Faith U KuskoCanadaBernardo Dominic PROPOSAL
Leon N ButtGermanyElwin Sharvill NEGOTIATION
Silvio A CaudyIndiaAnna Fali PROPOSAL
Silvio J PaprockiCanadaXuxue Feng PROPOSAL
Greenwood O IturbideArgentinaOnyama Limba PROPOSAL
Silvio O NickaSpainOnyama Limba NEW
Francesco Q OstroskyRussiaAsiya Javayant NEW
Octavia B BowleyGermanyElwin Sharvill RENEWAL
Chavez H OstroskyIndiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues G AlbaresArgentina2026-08-27Feiner Bros NEGOTIATION28Ivan Magalhaes
1001Ricardo Z KolmetzArgentina2026-08-23Feiner Bros UNQUALIFIED44Xuxue Feng
1002Adams R WieserBrazil2026-08-28Rangoni Of Florence NEW31Ivan Magalhaes
1003Mayumi N FollerIndia2026-08-18King, Christopher A Esq RENEWAL74Ivan Magalhaes
1004Aika K ChuiUnited Kingdom2026-08-30Chemel, James L Cpa PROPOSAL42Anna Fali
1005Misaki O DoeCanada2026-08-06Chanay, Jeffrey A Esq RENEWAL53Onyama Limba
1006Cody G RoysterArgentina2026-08-09Morlong Associates QUALIFIED96Amy Elsner
1007Kaitlin J DilliardArgentina2026-08-20Benton, John B Jr NEGOTIATION87Xuxue Feng
1008David C MarrierBrazil2026-08-28Truhlar And Truhlar Attys PROPOSAL52Amy Elsner
1009Stacey W OstroskyUnited Kingdom2026-08-05Truhlar And Truhlar Attys NEW46Anna Fali
1010Maisha N WhobreyUnited Kingdom2026-08-20Feltz Printing Service NEW68Stephen Shaw
1011Aditya X DoeRussia2026-08-11Buckley Miller Wright QUALIFIED39Ioni Bowcher
1012Mayumi S DoeSpain2026-08-09Printing Dimensions PROPOSAL14Elwin Sharvill
1013Salvatore Z RoysterBrazil2026-09-02Printing Dimensions PROPOSAL18Anna Fali
1014Ashley A BologniaGermany2026-08-09Feltz Printing Service RENEWAL66Elwin Sharvill
1015Salvatore T WaycottIndia2026-08-19Rousseaux, Michael Esq QUALIFIED75Xuxue Feng
1016Tony P KolmetzUnited Kingdom2026-08-06Feiner Bros NEW13Bernardo Dominic
1017Silvio Z RutaBrazil2026-08-21King, Christopher A Esq PROPOSAL75Stephen Shaw
1018Claire Z StensethCanada2026-08-16Dorl, James J Esq RENEWAL4Ioni Bowcher
1019Ricardo T SlusarskiBrazil2026-08-20Printing Dimensions PROPOSAL71Stephen Shaw
1020Arvin K AlbaresSpain2026-08-09Chemel, James L Cpa QUALIFIED6Ivan Magalhaes
1021Emily G InouyeItaly2026-08-18Dorl, James J Esq UNQUALIFIED39Elwin Sharvill
1022Chavez U WaycottArgentina2026-08-23Rangoni Of Florence RENEWAL3Ivan Magalhaes
1023Arvin I WhobreyItaly2026-08-06Chanay, Jeffrey A Esq PROPOSAL13Elwin Sharvill
1024Aika C FlosiIndia2026-08-20Morlong Associates QUALIFIED54Ioni Bowcher
1025Aika O PerinJapan2026-09-03Feltz Printing Service RENEWAL17Anna Fali
1026Deepesh T NestleArgentina2026-08-12Truhlar And Truhlar Attys NEGOTIATION37Stephen Shaw
1027Aika W WaycottGermany2026-08-30Printing Dimensions NEW8Stephen Shaw
1028Ashley V PerinGermany2026-08-07Rangoni Of Florence PROPOSAL49Stephen Shaw
1029Silvio S WhobreyBrazil2026-08-29Feltz Printing Service NEGOTIATION3Anna Fali
1030Mayumi A ButtRussia2026-08-18Morlong Associates QUALIFIED12Onyama Limba
1031Clifford Q CaldareraIndia2026-08-13Morlong Associates UNQUALIFIED43Ivan Magalhaes
1032Mayumi N FlosiJapan2026-08-07Chemel, James L Cpa NEGOTIATION39Ivan Magalhaes
1033Julie L NestleGermany2026-09-02Feiner Bros PROPOSAL27Elwin Sharvill
1034Darci T WaycottFrance2026-08-12Dorl, James J Esq PROPOSAL85Asiya Javayant
1035Wickens W BologniaBrazil2026-08-31Chapman, Ross E Esq UNQUALIFIED3Ivan Magalhaes
1036Kaitlin I GillianUnited Kingdom2026-08-23Rangoni Of Florence QUALIFIED38Amy Elsner
1037Isabel K IturbideAustralia2026-08-05Chanay, Jeffrey A Esq PROPOSAL5Elwin Sharvill
1038Claire G PaprockiCanada2026-08-24Rousseaux, Michael Esq UNQUALIFIED54Elwin Sharvill
1039Nicolas A IturbideItaly2026-08-25Dorl, James J Esq UNQUALIFIED98Amy Elsner
1040Mujtaba C StensethJapan2026-08-27Feiner Bros RENEWAL9Ivan Magalhaes
1041Claire A CaldareraItaly2026-08-11Benton, John B Jr NEW24Bernardo Dominic
1042Munro H OstroskyArgentina2026-08-25Chemel, James L Cpa UNQUALIFIED44Elwin Sharvill
1043Leja L RoysterBrazil2026-08-17Morlong Associates NEGOTIATION86Ioni Bowcher
1044Emily A DarakjyArgentina2026-08-10Chapman, Ross E Esq NEGOTIATION79Amy Elsner
1045Mayumi U AlbaresSpain2026-08-18Commercial Press QUALIFIED92Stephen Shaw
1046Izzy H CaldareraJapan2026-08-22Chemel, James L Cpa NEGOTIATION93Xuxue Feng
1047Morrow Y InouyeItaly2026-08-12Chemel, James L Cpa UNQUALIFIED50Asiya Javayant
1048Darci F WhobreyFrance2026-08-05Chemel, James L Cpa NEGOTIATION13Ivan Magalhaes
1049Rodrigues E KuskoUnited Kingdom2026-08-05Chanay, Jeffrey A Esq QUALIFIED29Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Francesco H MaletCanadaElwin Sharvill QUALIFIED
Faith K FlosiRussiaAnna Fali NEGOTIATION
Morrow S ChuiArgentinaElwin Sharvill NEGOTIATION
Julie C GlickJapanBernardo Dominic NEGOTIATION
Ashley L InouyeItalyAnna Fali NEGOTIATION
Misaki B CaudyJapanAmy Elsner NEW
Deepesh W PaprockiSpainIoni Bowcher QUALIFIED
Stacey Y VenereAustraliaOnyama Limba QUALIFIED
Smith K OldroydAustraliaAmy Elsner NEGOTIATION
Emily Y ShinkoAustraliaAnna Fali QUALIFIED
Murillo F MaletAustraliaOnyama Limba PROPOSAL
Jennifer D PoquetteIndiaAsiya Javayant QUALIFIED
Kadeem I BowleyRussiaAnna Fali PROPOSAL
Antonio Z ChuiIndiaAmy Elsner UNQUALIFIED
Jennifer B SlusarskiCanadaBernardo Dominic RENEWAL
Murillo K CaudySpainAsiya Javayant RENEWAL
Ashley D DilliardAustraliaBernardo Dominic NEGOTIATION
Adams P GlickBrazilAnna Fali PROPOSAL
Jeanfrancois B ButtFranceAnna Fali UNQUALIFIED
Kaitlin Q MarrierAustraliaAnna Fali PROPOSAL
Kaitlin R PerinAustraliaAmy Elsner UNQUALIFIED
Greenwood M NestleBrazilIvan Magalhaes RENEWAL
Octavia K VenereRussiaIvan Magalhaes QUALIFIED
James P KuskoRussiaStephen Shaw RENEWAL
James P VocelkaAustraliaAmy Elsner QUALIFIED
David K MaletIndiaXuxue Feng RENEWAL
Aika F CaldareraAustraliaStephen Shaw NEGOTIATION
Rodrigues E SchemmerSpainIoni Bowcher UNQUALIFIED
Kaitlin F StensethSpainBernardo Dominic NEGOTIATION
Johnson Z NestleSpainAmy Elsner NEGOTIATION
Alejandro F StensethJapanElwin Sharvill RENEWAL
Alejandro V PoquetteCanadaAmy Elsner NEGOTIATION
Emily T ChuiIndiaStephen Shaw QUALIFIED
Emily R BologniaArgentinaIvan Magalhaes NEGOTIATION
Deepesh K ShinkoIndiaAmy Elsner NEW
Adams B NestleSpainIvan Magalhaes NEW
Ashley P DoeItalyAmy Elsner NEGOTIATION
Maria L RutaSpainIvan Magalhaes PROPOSAL
Munro R PerinJapanElwin Sharvill QUALIFIED
Ashley A GauchoAustraliaXuxue Feng UNQUALIFIED
Nicolas T NickaFranceOnyama Limba RENEWAL
Ashley E BriddickUnited KingdomElwin Sharvill QUALIFIED
Murillo C GarufiArgentinaAsiya Javayant RENEWAL
Darci K SaylorsCanadaBernardo Dominic UNQUALIFIED
Jennifer G AlbaresArgentinaAsiya Javayant RENEWAL
Arvin U AlbaresArgentinaAmy Elsner QUALIFIED
Jeanfrancois I WieserAustraliaOnyama Limba QUALIFIED
Jones O FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin W ChuiAustraliaOnyama Limba PROPOSAL
Cody O WaycottItalyXuxue Feng QUALIFIED
Frozen Columns
Name
Kaitlin T Briddick
Isabel H Ostrosky
Morrow F Morasca
Octavia Z Saylors
Misaki H Stenseth
Mayumi L Waycott
Kaitlin R Poquette
Jones Z Glick
Antonio Z Poquette
Izzy U Dilliard
Ivar C Poquette
Clifford C Kolmetz
Silvio N Doe
Cody K Whobrey
Ricardo G Ostrosky
Clifford K Royster
Ashley T Saylors
Greenwood Z Malet
Darci E Butt
Cody I Garufi
Darci F Iturbide
Jones Z Nicka
Silvio X Gaucho
Rodrigues I Butt
Leon C Briddick
Greenwood E Morasca
Smith W Gaucho
Smith G Dilliard
Sinclair U Nicka
Maisha M Paprocki
Chavez C Bolognia
Claire U Whobrey
Antonio F Foller
Wickens O Darakjy
Francesco E Butt
Aruna B Kusko
Leja X Shinko
Costa N Flosi
Murillo Y Ruta
Leja S Stockham
Juan U Darakjy
Jennifer V Ostrosky
Stacey E Stockham
Nicolas U Dilliard
Nicolas E Royster
Arvin T Chui
Chavez D Slusarski
Morrow F Campain
Adams J Nestle
Aditya S Iturbide
IdCountryDate
1000United Kingdom2026-08-23
1001Argentina2026-08-15
1002Russia2026-08-29
1003United Kingdom2026-08-20
1004Japan2026-08-29
1005Germany2026-08-19
1006Germany2026-08-09
1007Australia2026-08-12
1008Russia2026-09-02
1009United Kingdom2026-08-09
1010Australia2026-08-21
1011United Kingdom2026-08-11
1012Germany2026-08-11
1013Canada2026-08-14
1014Brazil2026-09-01
1015France2026-09-03
1016Argentina2026-08-13
1017Japan2026-08-07
1018India2026-08-06
1019United Kingdom2026-09-03
1020Spain2026-08-28
1021France2026-09-03
1022Spain2026-08-09
1023Germany2026-08-14
1024Japan2026-08-30
1025India2026-08-22
1026Japan2026-08-19
1027Canada2026-09-03
1028Argentina2026-08-13
1029Brazil2026-08-31
1030Spain2026-08-31
1031United Kingdom2026-08-07
1032United Kingdom2026-08-18
1033India2026-08-12
1034Italy2026-08-07
1035Canada2026-09-03
1036Japan2026-08-10
1037Australia2026-08-20
1038France2026-08-07
1039India2026-09-03
1040Germany2026-09-03
1041Germany2026-08-15
1042Argentina2026-08-11
1043Japan2026-08-24
1044India2026-08-06
1045Australia2026-08-22
1046Italy2026-09-02
1047Russia2026-08-18
1048Russia2026-08-30
1049France2026-08-08

On-Demand Data

NameIdCountryDate
James V Nestle1000Canada2026-08-15
Aruna A Stenseth1001Canada2026-08-12
Nicolas V Nestle1002Canada2026-08-26
Aditya E Tollner1003France2026-08-23
Julie C Stockham1004Brazil2026-08-05
Greenwood T Maclead1005United Kingdom2026-08-14
Mujtaba U Glick1006Germany2026-08-08
Isabel K Iturbide1007Canada2026-08-17
Clifford L Sergi1008Russia2026-08-11
Munro L Gillian1009Canada2026-08-11
James J Flosi1010Australia2026-08-18
Alejandro B Venere1011Spain2026-08-05
Francesco O Dilliard1012Brazil2026-08-30
Arvin B Ruta1013India2026-08-17
Clifford L Venere1014Russia2026-08-27
Morrow J Caldarera1015Italy2026-08-25
Tony B Wieser1016United Kingdom2026-08-08
Julie E Stenseth1017Canada2026-08-14
Kadeem H Bowley1018Russia2026-08-23
Tony I Inouye1019Spain2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia B ChuiJapanXuxue Feng RENEWAL
Silvio O FigeroaCanadaXuxue Feng QUALIFIED
Kaitlin C RoysterAustraliaAsiya Javayant QUALIFIED
Arvin Y InouyeFranceIvan Magalhaes RENEWAL
Emily R PerinIndiaElwin Sharvill UNQUALIFIED
Silvio R ShinkoCanadaBernardo Dominic RENEWAL
Aika I VenereFranceElwin Sharvill NEGOTIATION
Jennifer C FlosiUnited KingdomBernardo Dominic QUALIFIED
Octavia F MarrierSpainStephen Shaw PROPOSAL
Wickens O KuskoFranceAsiya Javayant PROPOSAL
Ricardo T WhobreyUnited KingdomAmy Elsner QUALIFIED
Nicolas Q MorascaCanadaBernardo Dominic QUALIFIED
Arvin L AlbaresCanadaAsiya Javayant UNQUALIFIED
Izzy X ChuiAustraliaOnyama Limba NEGOTIATION
Stacey W FlosiUnited KingdomIoni Bowcher RENEWAL
Maisha M SchemmerRussiaIoni Bowcher PROPOSAL
Mayumi U GauchoFranceIvan Magalhaes RENEWAL
Juan T PoquetteItalyAnna Fali UNQUALIFIED
Adams Z DilliardBrazilIvan Magalhaes NEGOTIATION
Isabel E WaycottSpainXuxue Feng RENEWAL
Jefferson F BowleyUnited KingdomIvan Magalhaes RENEWAL
Rodrigues A BowleyBrazilAmy Elsner UNQUALIFIED
Claire L VenereRussiaOnyama Limba NEGOTIATION
Munro V CaudyAustraliaIoni Bowcher NEW
Aruna A NestleArgentinaXuxue Feng RENEWAL
Ivar J SlusarskiCanadaElwin Sharvill QUALIFIED
James B DarakjySpainBernardo Dominic QUALIFIED
Ashley O IturbideArgentinaElwin Sharvill UNQUALIFIED
Deepesh K RutaItalyXuxue Feng UNQUALIFIED
Jeanfrancois T OldroydSpainAsiya Javayant PROPOSAL
Izzy V FigeroaRussiaAnna Fali RENEWAL
Faith W InouyeRussiaOnyama Limba NEGOTIATION
Ivar F PoquetteUnited KingdomOnyama Limba PROPOSAL
Jeanfrancois N BologniaIndiaBernardo Dominic QUALIFIED
Aditya O RoysterRussiaIoni Bowcher RENEWAL
Faith U WieserSpainElwin Sharvill NEGOTIATION
Leja M AlbaresArgentinaAsiya Javayant NEW
Jennifer R GlickCanadaStephen Shaw QUALIFIED
Wickens L FigeroaItalyIvan Magalhaes RENEWAL
Leja M OstroskySpainAnna Fali NEW

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