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
Aditya A WaycottCanadaAmy Elsner UNQUALIFIED
Ricardo X FerenczBrazilOnyama Limba NEGOTIATION
Leja H ChuiRussiaIoni Bowcher QUALIFIED
Wickens M FigeroaBrazilIoni Bowcher RENEWAL
Murillo F TollnerArgentinaElwin Sharvill PROPOSAL
Aditya L FerenczItalyIoni Bowcher QUALIFIED
Francesco L DoeUnited KingdomOnyama Limba RENEWAL
Alejandro V GlickUnited KingdomIvan Magalhaes PROPOSAL
Ivar B FollerCanadaStephen Shaw NEW
Izzy A StensethUnited KingdomElwin Sharvill NEW
Aruna S ChuiUnited KingdomAnna Fali QUALIFIED
Johnson B PaprockiAustraliaBernardo Dominic QUALIFIED
Darci M ChuiSpainAmy Elsner NEGOTIATION
Murillo S BologniaGermanyIoni Bowcher QUALIFIED
Izzy K IturbideSpainIoni Bowcher NEW
Silvio D MarrierUnited KingdomAmy Elsner RENEWAL
Kaitlin Z StockhamArgentinaIoni Bowcher QUALIFIED
Izzy F SergiGermanyOnyama Limba NEGOTIATION
Costa E RimArgentinaOnyama Limba NEGOTIATION
Jones T NestleUnited KingdomStephen Shaw UNQUALIFIED
Jefferson J PaprockiCanadaStephen Shaw QUALIFIED
Smith P StockhamArgentinaAsiya Javayant UNQUALIFIED
Faith F BologniaItalyAsiya Javayant PROPOSAL
Francesco B TollnerGermanyStephen Shaw PROPOSAL
Alejandro E VocelkaFranceAnna Fali PROPOSAL
Mujtaba G DoeBrazilAsiya Javayant QUALIFIED
Sinclair M PaprockiCanadaBernardo Dominic UNQUALIFIED
Octavia A VenereIndiaElwin Sharvill RENEWAL
Jennifer J OstroskyJapanBernardo Dominic PROPOSAL
Munro Q BriddickSpainAsiya Javayant QUALIFIED
Clifford V KuskoBrazilXuxue Feng PROPOSAL
Izzy U RutaGermanyAsiya Javayant PROPOSAL
Mujtaba K NickaBrazilAsiya Javayant NEW
Murillo A FollerIndiaElwin Sharvill QUALIFIED
Antonio M IturbideCanadaAnna Fali QUALIFIED
Ivar C GarufiJapanIoni Bowcher PROPOSAL
Jennifer O RutaSpainAnna Fali PROPOSAL
Kaitlin L StockhamItalyOnyama Limba NEGOTIATION
Murillo T GauchoGermanyAmy Elsner UNQUALIFIED
Adams S GillianCanadaAmy Elsner PROPOSAL
Kaitlin B ButtIndiaIoni Bowcher NEGOTIATION
Alejandro A BowleySpainIvan Magalhaes NEW
Ricardo H RoysterUnited KingdomIvan Magalhaes RENEWAL
Maria X VenereCanadaStephen Shaw UNQUALIFIED
Silvio Q DarakjySpainIoni Bowcher PROPOSAL
Octavia S OldroydFranceAsiya Javayant UNQUALIFIED
Costa I BriddickIndiaBernardo Dominic QUALIFIED
James W InouyeArgentinaElwin Sharvill UNQUALIFIED
Faith L MarrierJapanXuxue Feng QUALIFIED
Nicolas G CampainGermanyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Cody P WaycottBrazilBernardo Dominic UNQUALIFIED
Stacey P BriddickGermanyXuxue Feng PROPOSAL
Sinclair H ChuiBrazilAnna Fali UNQUALIFIED
Ashley Z BowleyArgentinaElwin Sharvill NEGOTIATION
Wickens F BologniaGermanyOnyama Limba UNQUALIFIED
Kaitlin J StockhamBrazilOnyama Limba QUALIFIED
Leja T VenereCanadaAsiya Javayant PROPOSAL
Izzy Y WaycottFranceAsiya Javayant QUALIFIED
Adams G InouyeJapanAmy Elsner UNQUALIFIED
Arvin A MacleadAustraliaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson W SergiSpain2026-06-12Rangoni Of Florence RENEWAL15Anna Fali
1001Ricardo J DoeJapan2026-06-21King, Christopher A Esq QUALIFIED75Asiya Javayant
1002Faith E VocelkaAustralia2026-06-09Feiner Bros QUALIFIED90Xuxue Feng
1003Jennifer D AlbaresJapan2026-06-20Feltz Printing Service RENEWAL73Stephen Shaw
1004Juan E FigeroaSpain2026-06-21Feltz Printing Service NEGOTIATION2Ivan Magalhaes
1005Sinclair S MorascaArgentina2026-06-25Morlong Associates UNQUALIFIED43Ivan Magalhaes
1006Aruna U WhobreyFrance2026-06-24Truhlar And Truhlar Attys UNQUALIFIED81Xuxue Feng
1007Jeanfrancois F BologniaGermany2026-06-04Morlong Associates NEGOTIATION37Bernardo Dominic
1008Aruna G NickaSpain2026-06-05Chemel, James L Cpa NEW68Ioni Bowcher
1009Greenwood P AmigonRussia2026-06-11Truhlar And Truhlar Attys QUALIFIED32Amy Elsner
1010Jefferson V MarrierRussia2026-06-19Dorl, James J Esq RENEWAL55Xuxue Feng
1011Arvin R RulapaughBrazil2026-06-06Printing Dimensions QUALIFIED40Xuxue Feng
1012Clifford X VocelkaBrazil2026-06-23Chapman, Ross E Esq UNQUALIFIED4Anna Fali
1013Antonio O DilliardCanada2026-06-23Chapman, Ross E Esq RENEWAL9Onyama Limba
1014Ivar P KuskoArgentina2026-06-08Chemel, James L Cpa NEW36Ioni Bowcher
1015Adams S AmigonUnited Kingdom2026-06-16Buckley Miller Wright NEGOTIATION7Elwin Sharvill
1016Maria A MorascaAustralia2026-07-01Feiner Bros QUALIFIED64Bernardo Dominic
1017Clifford M RutaAustralia2026-06-24King, Christopher A Esq UNQUALIFIED22Ivan Magalhaes
1018Jennifer Q KuskoArgentina2026-06-14Printing Dimensions NEW4Onyama Limba
1019Adams P FlosiItaly2026-06-30Chapman, Ross E Esq QUALIFIED0Onyama Limba
1020Aika E NestleSpain2026-06-14Feltz Printing Service NEW41Stephen Shaw
1021Julie L KuskoArgentina2026-06-06Chanay, Jeffrey A Esq NEW98Xuxue Feng
1022Aruna Z SchemmerSpain2026-06-14Printing Dimensions NEW42Amy Elsner
1023James G SlusarskiIndia2026-07-01Rangoni Of Florence UNQUALIFIED18Asiya Javayant
1024Clifford Y StensethJapan2026-06-28Rangoni Of Florence UNQUALIFIED59Ivan Magalhaes
1025Jennifer N DoeIndia2026-06-29King, Christopher A Esq QUALIFIED84Ivan Magalhaes
1026David Q GarufiArgentina2026-06-17King, Christopher A Esq RENEWAL40Stephen Shaw
1027Jones H DilliardSpain2026-06-24Feiner Bros RENEWAL0Bernardo Dominic
1028Aruna J InouyeBrazil2026-06-16Chanay, Jeffrey A Esq RENEWAL83Amy Elsner
1029Misaki K StockhamSpain2026-06-25Benton, John B Jr QUALIFIED20Bernardo Dominic
1030Jeanfrancois N CaudyJapan2026-06-03Rangoni Of Florence NEW63Ioni Bowcher
1031Octavia V MorascaBrazil2026-06-02Chemel, James L Cpa QUALIFIED43Bernardo Dominic
1032Emily C GauchoRussia2026-06-06Morlong Associates PROPOSAL15Ioni Bowcher
1033Kadeem W MorascaUnited Kingdom2026-06-13Benton, John B Jr NEGOTIATION8Bernardo Dominic
1034Octavia M SaylorsBrazil2026-06-20Chanay, Jeffrey A Esq RENEWAL61Ivan Magalhaes
1035Rodrigues I MacleadBrazil2026-06-28Feltz Printing Service RENEWAL79Asiya Javayant
1036Emily B GauchoSpain2026-06-21Chanay, Jeffrey A Esq RENEWAL57Stephen Shaw
1037Misaki O BowleyIndia2026-06-28Rousseaux, Michael Esq NEW47Amy Elsner
1038Juan D ChuiFrance2026-06-02Rangoni Of Florence RENEWAL22Xuxue Feng
1039Wickens J FlosiArgentina2026-06-17Chapman, Ross E Esq PROPOSAL9Ivan Magalhaes
1040Emily C GarufiIndia2026-06-21Feiner Bros PROPOSAL34Ioni Bowcher
1041Deepesh C FollerSpain2026-06-11Feiner Bros PROPOSAL33Elwin Sharvill
1042Aika N ShinkoItaly2026-06-10Printing Dimensions UNQUALIFIED41Xuxue Feng
1043Claire V PaprockiItaly2026-06-24Buckley Miller Wright PROPOSAL40Ioni Bowcher
1044Mujtaba B AlbaresGermany2026-06-29Chapman, Ross E Esq QUALIFIED90Stephen Shaw
1045James J TollnerUnited Kingdom2026-06-07Buckley Miller Wright NEGOTIATION23Ivan Magalhaes
1046Munro N ChuiJapan2026-06-22Dorl, James J Esq NEW66Ivan Magalhaes
1047Julie B OstroskyIndia2026-06-20Truhlar And Truhlar Attys RENEWAL50Asiya Javayant
1048Clifford N PaprockiJapan2026-06-07Morlong Associates QUALIFIED85Xuxue Feng
1049Morrow W InouyeItaly2026-06-17Chapman, Ross E Esq UNQUALIFIED38Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Munro J ChuiIndiaAnna Fali RENEWAL
Munro F WieserUnited KingdomAsiya Javayant NEW
Munro Z VenereIndiaIvan Magalhaes NEGOTIATION
Costa D DarakjyRussiaElwin Sharvill NEGOTIATION
Izzy D RutaCanadaBernardo Dominic QUALIFIED
Misaki N StockhamFranceXuxue Feng UNQUALIFIED
Izzy U NestleArgentinaAmy Elsner NEW
Arvin Q VocelkaBrazilOnyama Limba RENEWAL
Leja C VenereArgentinaAsiya Javayant QUALIFIED
Stacey K WhobreyJapanAnna Fali QUALIFIED
Rodrigues L CampainBrazilIoni Bowcher NEW
Kaitlin U InouyeSpainXuxue Feng RENEWAL
Arvin S SlusarskiItalyIvan Magalhaes NEGOTIATION
Kadeem M MorascaFranceElwin Sharvill UNQUALIFIED
Darci J BriddickAustraliaIoni Bowcher RENEWAL
Emily D MarrierUnited KingdomIvan Magalhaes RENEWAL
David M FigeroaItalyAnna Fali UNQUALIFIED
Clifford A SergiGermanyXuxue Feng QUALIFIED
Cody H KuskoUnited KingdomStephen Shaw NEGOTIATION
Leja S ChuiGermanyAsiya Javayant NEGOTIATION
Ricardo Z StensethSpainAsiya Javayant RENEWAL
Costa N FollerSpainAmy Elsner NEGOTIATION
Julie U DarakjyGermanyAmy Elsner QUALIFIED
Nicolas S MaletIndiaBernardo Dominic RENEWAL
Maria J WieserIndiaElwin Sharvill UNQUALIFIED
Juan U DarakjyUnited KingdomStephen Shaw QUALIFIED
Claire L NickaBrazilElwin Sharvill UNQUALIFIED
Leja J ChuiUnited KingdomElwin Sharvill PROPOSAL
Aditya Z OldroydBrazilAnna Fali UNQUALIFIED
Silvio K RoysterRussiaStephen Shaw RENEWAL
Morrow E WhobreyIndiaStephen Shaw NEGOTIATION
Stacey O FerenczJapanIvan Magalhaes UNQUALIFIED
Ricardo O StensethAustraliaXuxue Feng QUALIFIED
Murillo D ShinkoAustraliaElwin Sharvill RENEWAL
Stacey M WhobreyArgentinaElwin Sharvill NEGOTIATION
Ashley U RimFranceIvan Magalhaes NEW
Jennifer I ButtGermanyAsiya Javayant NEW
Wickens H MacleadRussiaBernardo Dominic NEGOTIATION
Johnson A MorascaItalyAsiya Javayant NEGOTIATION
Stacey F NestleUnited KingdomIvan Magalhaes QUALIFIED
Adams Q MacleadUnited KingdomAmy Elsner NEW
Murillo R AmigonUnited KingdomIvan Magalhaes RENEWAL
Jones O WhobreyCanadaAmy Elsner UNQUALIFIED
Aruna G MorascaBrazilAmy Elsner NEW
Leon V DilliardItalyElwin Sharvill RENEWAL
Sinclair Q GlickGermanyAnna Fali NEGOTIATION
Isabel S StensethSpainXuxue Feng NEW
Jones E InouyeFranceBernardo Dominic PROPOSAL
Johnson G CampainIndiaIvan Magalhaes RENEWAL
Jefferson R InouyeAustraliaElwin Sharvill PROPOSAL
Frozen Columns
Name
Juan X Poquette
Jones P Dilliard
Kadeem B Perin
Alejandro Z Whobrey
Cody X Perin
Kaitlin W Bowley
Leja N Caldarera
Kadeem K Schemmer
Murillo D Wieser
Kadeem V Royster
Leja M Butt
Maisha G Garufi
Jones N Foller
Rodrigues S Schemmer
Arvin P Maclead
Misaki K Kolmetz
Antonio B Vocelka
Ivar K Nicka
Claire A Ferencz
Faith T Flosi
Costa L Saylors
Izzy K Morasca
Darci L Vocelka
Aditya E Rulapaugh
Clifford T Whobrey
Alejandro U Tollner
Aika V Rulapaugh
Sinclair P Sergi
Salvatore J Bowley
Francesco N Royster
Silvio B Ostrosky
Greenwood Z Nicka
Jeanfrancois W Chui
Antonio O Marrier
Chavez T Venere
Morrow J Caldarera
Mayumi U Flosi
Isabel R Venere
Jefferson J Whobrey
Mayumi I Morasca
Jennifer A Kolmetz
Jones H Amigon
Octavia Y Flosi
Aruna M Iturbide
Ivar H Flosi
Chavez X Albares
Jones A Iturbide
Kadeem P Waycott
Aika H Rim
Emily B Butt
IdCountryDate
1000Argentina2026-06-03
1001France2026-06-15
1002Spain2026-06-11
1003Argentina2026-06-09
1004Canada2026-06-13
1005Japan2026-06-24
1006Spain2026-06-11
1007Argentina2026-06-22
1008Germany2026-06-30
1009Russia2026-06-25
1010Canada2026-06-12
1011Russia2026-06-30
1012France2026-06-24
1013Australia2026-06-24
1014Spain2026-06-18
1015Russia2026-06-04
1016Brazil2026-06-26
1017Italy2026-06-27
1018France2026-06-17
1019France2026-06-19
1020Japan2026-06-04
1021United Kingdom2026-06-17
1022Argentina2026-06-26
1023Australia2026-06-20
1024Germany2026-06-08
1025Germany2026-06-24
1026United Kingdom2026-06-08
1027Italy2026-06-27
1028Russia2026-06-02
1029United Kingdom2026-06-08
1030Argentina2026-06-18
1031United Kingdom2026-06-14
1032Brazil2026-06-18
1033Russia2026-06-19
1034Russia2026-06-06
1035France2026-07-01
1036Germany2026-06-28
1037Japan2026-06-21
1038United Kingdom2026-06-28
1039Canada2026-06-22
1040Russia2026-06-28
1041Italy2026-06-11
1042Spain2026-06-19
1043Brazil2026-06-20
1044Argentina2026-06-06
1045Brazil2026-06-20
1046United Kingdom2026-06-29
1047Spain2026-06-08
1048Russia2026-06-19
1049Argentina2026-06-04

On-Demand Data

NameIdCountryDate
Salvatore X Darakjy1000Australia2026-06-25
Jefferson F Malet1001Spain2026-06-27
Emily Y Maclead1002Spain2026-06-30
Aruna Q Kusko1003Brazil2026-06-18
David F Waycott1004Japan2026-06-10
Ashley M Caudy1005United Kingdom2026-06-24
Deepesh V Gillian1006Spain2026-06-08
Arvin H Doe1007Spain2026-06-21
Alejandro V Slusarski1008Argentina2026-06-06
Nicolas H Waycott1009France2026-06-16
Francesco Y Chui1010India2026-06-17
Faith Y Slusarski1011India2026-06-29
Faith D Ruta1012Australia2026-06-17
Ashley J Ruta1013Russia2026-06-14
Nicolas O Campain1014Canada2026-06-08
Maria H Venere1015France2026-06-22
Morrow Y Inouye1016Brazil2026-06-29
Murillo G Slusarski1017United Kingdom2026-06-15
Smith M Foller1018Argentina2026-06-18
Jefferson O Kusko1019India2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi X CaudyArgentinaStephen Shaw PROPOSAL
Chavez Z DarakjyArgentinaOnyama Limba NEGOTIATION
Francesco G SergiGermanyXuxue Feng UNQUALIFIED
Rodrigues S StensethArgentinaIoni Bowcher NEW
Faith F PoquetteRussiaAnna Fali RENEWAL
Mujtaba I OstroskyBrazilXuxue Feng NEGOTIATION
Jones L MacleadBrazilAmy Elsner UNQUALIFIED
Tony W CaldareraAustraliaBernardo Dominic QUALIFIED
Sinclair J DilliardBrazilAsiya Javayant RENEWAL
Jones W GlickRussiaAsiya Javayant RENEWAL
Jefferson M VenereRussiaBernardo Dominic UNQUALIFIED
James J AlbaresSpainIoni Bowcher PROPOSAL
James B FigeroaBrazilXuxue Feng UNQUALIFIED
Maisha K WhobreyIndiaAmy Elsner NEW
Tony W MaletBrazilBernardo Dominic UNQUALIFIED
Wickens E PoquetteUnited KingdomAnna Fali RENEWAL
Munro A VenereJapanAmy Elsner UNQUALIFIED
Ashley J TollnerCanadaIvan Magalhaes UNQUALIFIED
Alejandro Q DilliardItalyElwin Sharvill RENEWAL
Isabel J CampainSpainAnna Fali NEGOTIATION
Juan U RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin O KolmetzGermanyAsiya Javayant NEGOTIATION
Claire T PerinFranceElwin Sharvill RENEWAL
Kadeem U FollerSpainIoni Bowcher RENEWAL
Johnson I CaldareraIndiaXuxue Feng RENEWAL
Adams S PoquetteSpainIoni Bowcher QUALIFIED
Izzy S DoeUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh V StensethUnited KingdomElwin Sharvill NEW
Jefferson I AlbaresItalyAnna Fali NEW
Antonio T MacleadIndiaStephen Shaw RENEWAL
Jennifer G StockhamUnited KingdomOnyama Limba NEGOTIATION
Jefferson H GarufiGermanyStephen Shaw RENEWAL
Julie J KolmetzAustraliaElwin Sharvill RENEWAL
Jones D MacleadCanadaAnna Fali UNQUALIFIED
Jefferson F GauchoGermanyAnna Fali RENEWAL
Mujtaba R BologniaIndiaElwin Sharvill NEGOTIATION
Julie K RulapaughRussiaOnyama Limba RENEWAL
Jeanfrancois L AlbaresArgentinaOnyama Limba NEW
James D OldroydSpainXuxue Feng RENEWAL
Stacey J MaletItalyStephen Shaw 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>