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
Ivar M BriddickSpainAnna Fali RENEWAL
Kadeem V MaletRussiaAmy Elsner PROPOSAL
Clifford D MaletJapanIvan Magalhaes PROPOSAL
Sinclair H InouyeFranceXuxue Feng UNQUALIFIED
Jennifer I DilliardItalyXuxue Feng NEGOTIATION
Nicolas G CaldareraJapanIoni Bowcher NEW
Leja G StockhamCanadaOnyama Limba NEW
Jeanfrancois W GarufiGermanyAsiya Javayant RENEWAL
Clifford R FerenczBrazilIoni Bowcher QUALIFIED
Francesco N RoysterJapanXuxue Feng PROPOSAL
Arvin V ButtIndiaIvan Magalhaes UNQUALIFIED
Alejandro X CampainRussiaAnna Fali NEGOTIATION
Julie Q AlbaresFranceIvan Magalhaes RENEWAL
Munro A SchemmerItalyElwin Sharvill UNQUALIFIED
Arvin M VocelkaBrazilOnyama Limba NEGOTIATION
Clifford W SlusarskiIndiaXuxue Feng RENEWAL
Sinclair M PerinCanadaAnna Fali PROPOSAL
Misaki X MaletCanadaAmy Elsner UNQUALIFIED
Izzy R StockhamIndiaXuxue Feng NEGOTIATION
Murillo F CaldareraFranceStephen Shaw NEGOTIATION
Costa C ChuiArgentinaAsiya Javayant QUALIFIED
Jeanfrancois S RoysterItalyStephen Shaw RENEWAL
Rodrigues N IturbideCanadaElwin Sharvill NEGOTIATION
Cody E NickaArgentinaStephen Shaw QUALIFIED
Misaki R CampainIndiaAmy Elsner QUALIFIED
Julie C RulapaughIndiaElwin Sharvill QUALIFIED
Ivar Q FollerCanadaXuxue Feng NEGOTIATION
Darci Y KolmetzJapanXuxue Feng NEW
Leja O GlickIndiaAnna Fali NEGOTIATION
Wickens V StockhamIndiaIoni Bowcher PROPOSAL
James U DarakjyJapanXuxue Feng NEW
Arvin W RimJapanBernardo Dominic NEGOTIATION
Darci U CampainJapanOnyama Limba UNQUALIFIED
Kadeem H MaletUnited KingdomIvan Magalhaes NEGOTIATION
Ashley Y RutaUnited KingdomAsiya Javayant NEGOTIATION
Nicolas C MacleadItalyAmy Elsner UNQUALIFIED
Kadeem M FigeroaRussiaBernardo Dominic QUALIFIED
Johnson R NestleCanadaBernardo Dominic QUALIFIED
Nicolas P WieserJapanAmy Elsner RENEWAL
Ashley S RulapaughIndiaXuxue Feng QUALIFIED
Wickens Z IturbideFranceBernardo Dominic RENEWAL
Alejandro D OldroydArgentinaAsiya Javayant RENEWAL
Mujtaba X RoysterRussiaOnyama Limba NEGOTIATION
Octavia O OldroydAustraliaIvan Magalhaes NEGOTIATION
Chavez D CaldareraSpainStephen Shaw NEGOTIATION
Wickens Y RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois K GauchoJapanElwin Sharvill QUALIFIED
Silvio C KolmetzJapanOnyama Limba RENEWAL
Antonio C MaletUnited KingdomStephen Shaw RENEWAL
James U SlusarskiCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna A VocelkaSpainAmy Elsner UNQUALIFIED
Julie L CampainItalyElwin Sharvill QUALIFIED
Greenwood O CaudyRussiaAnna Fali NEGOTIATION
Faith T WaycottFranceAmy Elsner QUALIFIED
Johnson D SergiFranceAmy Elsner NEW
Ricardo K BowleyGermanyIvan Magalhaes QUALIFIED
Maisha Y RoysterJapanOnyama Limba UNQUALIFIED
Aika V WieserFranceStephen Shaw QUALIFIED
Chavez M AlbaresRussiaAmy Elsner NEW
Maria B BowleySpainBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith V GauchoSpain2026-06-11King, Christopher A Esq PROPOSAL48Amy Elsner
1001Rodrigues T WaycottAustralia2026-06-09King, Christopher A Esq NEW22Asiya Javayant
1002Tony B InouyeIndia2026-06-22Chapman, Ross E Esq RENEWAL75Amy Elsner
1003Nicolas X MacleadFrance2026-06-30King, Christopher A Esq NEGOTIATION96Anna Fali
1004Arvin F OstroskyJapan2026-06-25Rangoni Of Florence QUALIFIED95Stephen Shaw
1005Octavia R OstroskyIndia2026-06-09Truhlar And Truhlar Attys UNQUALIFIED80Onyama Limba
1006Francesco U StensethBrazil2026-06-29Dorl, James J Esq RENEWAL22Asiya Javayant
1007Emily Z GauchoCanada2026-06-16Feiner Bros RENEWAL61Anna Fali
1008Arvin Q PoquetteIndia2026-07-02Benton, John B Jr UNQUALIFIED63Amy Elsner
1009Costa G FerenczBrazil2026-06-20King, Christopher A Esq QUALIFIED93Xuxue Feng
1010Rodrigues S FollerIndia2026-06-26Feiner Bros UNQUALIFIED65Asiya Javayant
1011Costa L ButtGermany2026-07-01Dorl, James J Esq PROPOSAL76Bernardo Dominic
1012Mayumi Q GlickItaly2026-06-28Benton, John B Jr PROPOSAL89Xuxue Feng
1013James E PerinCanada2026-06-18Buckley Miller Wright RENEWAL70Elwin Sharvill
1014Alejandro S MaletAustralia2026-06-24Printing Dimensions PROPOSAL38Xuxue Feng
1015Nicolas B FerenczJapan2026-06-30Rousseaux, Michael Esq PROPOSAL27Stephen Shaw
1016Leon Z StensethIndia2026-06-21Truhlar And Truhlar Attys PROPOSAL27Asiya Javayant
1017Sinclair E DoeCanada2026-06-29King, Christopher A Esq QUALIFIED33Stephen Shaw
1018Octavia J KolmetzJapan2026-06-15Benton, John B Jr UNQUALIFIED14Onyama Limba
1019Johnson P GarufiJapan2026-06-07Dorl, James J Esq UNQUALIFIED52Ioni Bowcher
1020Kaitlin O MarrierCanada2026-06-08Truhlar And Truhlar Attys QUALIFIED55Asiya Javayant
1021Murillo P AlbaresCanada2026-07-01Chanay, Jeffrey A Esq QUALIFIED11Bernardo Dominic
1022Antonio E GillianArgentina2026-06-10Rousseaux, Michael Esq NEW94Stephen Shaw
1023Greenwood S VenereArgentina2026-07-05Chemel, James L Cpa QUALIFIED32Ioni Bowcher
1024Munro F BriddickCanada2026-06-26Dorl, James J Esq UNQUALIFIED21Asiya Javayant
1025Leon Z KuskoFrance2026-07-01Feltz Printing Service NEGOTIATION4Ioni Bowcher
1026Claire S MaletAustralia2026-07-04Printing Dimensions NEGOTIATION22Ioni Bowcher
1027Chavez Z RimSpain2026-07-01Buckley Miller Wright NEW11Elwin Sharvill
1028Jefferson V MacleadItaly2026-06-21Truhlar And Truhlar Attys NEGOTIATION29Amy Elsner
1029Jennifer M KolmetzIndia2026-06-21Chapman, Ross E Esq NEW66Elwin Sharvill
1030Leja G StockhamCanada2026-07-04Rousseaux, Michael Esq NEGOTIATION11Ivan Magalhaes
1031Izzy H RimFrance2026-06-17Feltz Printing Service UNQUALIFIED36Anna Fali
1032Jeanfrancois T FigeroaIndia2026-06-25Benton, John B Jr NEW55Ivan Magalhaes
1033Emily V SaylorsBrazil2026-06-28Commercial Press QUALIFIED28Ivan Magalhaes
1034Leon J PoquetteArgentina2026-06-19Printing Dimensions PROPOSAL32Xuxue Feng
1035Johnson A RutaCanada2026-06-27Printing Dimensions NEGOTIATION26Ivan Magalhaes
1036Cody Q RoysterArgentina2026-07-04Feiner Bros QUALIFIED89Xuxue Feng
1037Mayumi M WieserJapan2026-06-17Dorl, James J Esq NEW34Elwin Sharvill
1038Kaitlin P SchemmerGermany2026-06-27Printing Dimensions PROPOSAL84Bernardo Dominic
1039Nicolas X PoquetteArgentina2026-06-20Buckley Miller Wright NEW33Asiya Javayant
1040Aika O PaprockiSpain2026-07-04Chapman, Ross E Esq UNQUALIFIED87Amy Elsner
1041James I RutaJapan2026-06-27Feltz Printing Service NEGOTIATION62Onyama Limba
1042Adams X NestleBrazil2026-06-10Rousseaux, Michael Esq NEGOTIATION21Amy Elsner
1043Greenwood G StockhamBrazil2026-06-06Buckley Miller Wright PROPOSAL28Ioni Bowcher
1044Leon M SchemmerIndia2026-06-16Rousseaux, Michael Esq UNQUALIFIED26Onyama Limba
1045Maisha F RulapaughJapan2026-06-19Feiner Bros UNQUALIFIED52Ioni Bowcher
1046Stacey C VenereGermany2026-06-15Chanay, Jeffrey A Esq PROPOSAL34Asiya Javayant
1047Misaki F TollnerRussia2026-06-09Truhlar And Truhlar Attys NEGOTIATION46Ioni Bowcher
1048Cody O AmigonUnited Kingdom2026-06-24Benton, John B Jr NEW36Asiya Javayant
1049Smith N MaletAustralia2026-06-07Morlong Associates NEGOTIATION64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Izzy W CaudyGermanyBernardo Dominic UNQUALIFIED
David O TollnerUnited KingdomAsiya Javayant NEGOTIATION
Sinclair Z NickaRussiaBernardo Dominic UNQUALIFIED
Deepesh J StockhamRussiaIoni Bowcher NEW
Silvio E GillianIndiaAmy Elsner QUALIFIED
Ricardo Z StensethBrazilAmy Elsner UNQUALIFIED
Antonio Q VenereGermanyAsiya Javayant UNQUALIFIED
Rodrigues C OldroydAustraliaXuxue Feng PROPOSAL
Maisha J RulapaughSpainIvan Magalhaes UNQUALIFIED
Julie C FigeroaItalyStephen Shaw QUALIFIED
Leja H DarakjyCanadaOnyama Limba RENEWAL
Aruna S StensethJapanIoni Bowcher PROPOSAL
Leja E FerenczAustraliaAsiya Javayant RENEWAL
Misaki J OstroskyJapanAmy Elsner UNQUALIFIED
Aika M CampainFranceAnna Fali RENEWAL
Octavia U KuskoRussiaOnyama Limba RENEWAL
Morrow I MarrierRussiaOnyama Limba UNQUALIFIED
Octavia V StensethSpainElwin Sharvill NEW
Jefferson S KolmetzFranceAmy Elsner RENEWAL
Octavia C BologniaArgentinaStephen Shaw UNQUALIFIED
Salvatore A CaudyFranceStephen Shaw PROPOSAL
Ashley X KolmetzSpainAmy Elsner NEGOTIATION
Faith R RutaItalyOnyama Limba RENEWAL
Chavez A AmigonAustraliaElwin Sharvill NEGOTIATION
Costa P OldroydBrazilBernardo Dominic UNQUALIFIED
Julie G CaudySpainIvan Magalhaes QUALIFIED
Faith B PoquetteAustraliaAnna Fali PROPOSAL
Juan B GlickSpainIvan Magalhaes RENEWAL
Ricardo L GarufiArgentinaOnyama Limba UNQUALIFIED
Faith Z DoeFranceIvan Magalhaes NEW
Ivar J DarakjyUnited KingdomBernardo Dominic QUALIFIED
Silvio R PoquetteFranceIvan Magalhaes NEW
Ivar Z NestleRussiaAnna Fali UNQUALIFIED
Wickens X WieserAustraliaXuxue Feng UNQUALIFIED
Aika Z ShinkoAustraliaIoni Bowcher PROPOSAL
Jefferson W FerenczBrazilIvan Magalhaes RENEWAL
Francesco O PerinRussiaOnyama Limba QUALIFIED
Kadeem Y NickaFranceXuxue Feng PROPOSAL
Nicolas C VocelkaCanadaXuxue Feng UNQUALIFIED
Isabel I GlickAustraliaXuxue Feng UNQUALIFIED
Kadeem X ButtCanadaOnyama Limba NEW
Wickens F WieserFranceBernardo Dominic NEGOTIATION
Rodrigues D CampainCanadaAmy Elsner RENEWAL
Jones G InouyeGermanyAmy Elsner PROPOSAL
Jennifer X MorascaUnited KingdomStephen Shaw PROPOSAL
Aika S MacleadArgentinaIoni Bowcher NEGOTIATION
Cody V SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Smith F GlickSpainStephen Shaw UNQUALIFIED
Kadeem M FigeroaGermanyXuxue Feng NEW
Deepesh K FollerCanadaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Jones T Bowley
Claire K Butt
Smith J Bowley
Adams N Bowley
Darci H Briddick
Silvio E Kusko
Mujtaba Z Whobrey
Rodrigues I Whobrey
Rodrigues R Marrier
Jennifer K Ferencz
Ricardo I Saylors
Wickens S Caudy
Misaki E Flosi
Darci M Tollner
Isabel Q Vocelka
Kaitlin I Glick
Nicolas K Darakjy
Adams X Glick
Maisha H Rulapaugh
Faith O Royster
Deepesh H Iturbide
Jennifer I Inouye
Octavia H Venere
Jones T Dilliard
Emily B Briddick
Ivar F Dilliard
Leja Y Gaucho
Emily B Kolmetz
Stacey Q Sergi
Sinclair S Figeroa
Ricardo F Gillian
Cody E Nestle
Faith Q Flosi
Greenwood U Foller
Leja K Stockham
Johnson Q Waycott
Izzy N Bowley
Aika A Slusarski
Jones J Dilliard
Tony J Tollner
Deepesh K Caldarera
Mayumi V Vocelka
Adams T Butt
Antonio V Malet
Francesco B Darakjy
Jones Q Glick
Clifford H Slusarski
Juan T Whobrey
Emily Q Bowley
Faith H Amigon
IdCountryDate
1000Australia2026-06-10
1001Argentina2026-07-05
1002Russia2026-06-21
1003Italy2026-06-29
1004Italy2026-06-08
1005Russia2026-06-13
1006United Kingdom2026-06-25
1007France2026-06-12
1008France2026-06-12
1009Brazil2026-06-30
1010Brazil2026-06-21
1011Argentina2026-06-26
1012France2026-06-26
1013Brazil2026-06-29
1014United Kingdom2026-06-20
1015Spain2026-06-11
1016Australia2026-06-18
1017Spain2026-06-27
1018Brazil2026-06-07
1019Germany2026-07-04
1020Argentina2026-06-29
1021Russia2026-06-29
1022Australia2026-07-01
1023Spain2026-06-14
1024Argentina2026-06-15
1025Russia2026-07-03
1026United Kingdom2026-06-20
1027France2026-06-20
1028India2026-07-02
1029Germany2026-06-22
1030Spain2026-07-01
1031Spain2026-06-07
1032United Kingdom2026-06-06
1033Italy2026-06-28
1034United Kingdom2026-06-30
1035Germany2026-06-18
1036Canada2026-06-08
1037United Kingdom2026-06-26
1038Canada2026-07-02
1039Italy2026-06-22
1040Italy2026-06-12
1041Spain2026-06-13
1042Germany2026-07-01
1043Italy2026-06-24
1044Italy2026-06-29
1045India2026-06-16
1046India2026-06-27
1047Brazil2026-06-27
1048Argentina2026-06-24
1049Japan2026-07-05

On-Demand Data

NameIdCountryDate
Smith C Chui1000India2026-07-04
Morrow L Rulapaugh1001Japan2026-06-17
Mayumi Y Stenseth1002Russia2026-06-21
Sinclair R Bolognia1003Russia2026-07-05
Stacey T Gillian1004Canada2026-06-06
Nicolas Y Chui1005Australia2026-07-01
Aika E Tollner1006Canada2026-06-11
Alejandro J Rim1007India2026-06-13
Juan D Chui1008Argentina2026-07-05
Deepesh U Slusarski1009Germany2026-07-04
Antonio X Butt1010Brazil2026-07-02
Emily P Vocelka1011Germany2026-06-22
Adams K Marrier1012Argentina2026-06-26
Darci X Oldroyd1013Italy2026-06-15
Rodrigues F Dilliard1014Argentina2026-06-24
Octavia W Caldarera1015Argentina2026-06-28
Jones E Glick1016Canada2026-06-20
Aditya W Briddick1017Italy2026-07-01
Greenwood O Bolognia1018India2026-06-11
Aika G Rulapaugh1019Japan2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David P RulapaughFranceOnyama Limba NEGOTIATION
Sinclair O InouyeGermanyStephen Shaw UNQUALIFIED
Cody A FollerBrazilStephen Shaw RENEWAL
Clifford H PoquetteFranceBernardo Dominic NEGOTIATION
Arvin Z WieserItalyBernardo Dominic PROPOSAL
Maria L WaycottAustraliaAnna Fali PROPOSAL
Adams X AmigonGermanyAmy Elsner PROPOSAL
Sinclair C OstroskyArgentinaElwin Sharvill PROPOSAL
Ricardo P BologniaCanadaIvan Magalhaes QUALIFIED
Aditya Y FerenczJapanAmy Elsner RENEWAL
Jeanfrancois X InouyeFranceAnna Fali NEW
Mujtaba I ChuiIndiaElwin Sharvill UNQUALIFIED
Alejandro N CaudyBrazilBernardo Dominic PROPOSAL
Morrow M DoeRussiaAsiya Javayant NEGOTIATION
Juan Z BowleyGermanyBernardo Dominic QUALIFIED
Juan Z OldroydCanadaElwin Sharvill PROPOSAL
Darci N SchemmerAustraliaAsiya Javayant PROPOSAL
Tony M CampainJapanIvan Magalhaes NEW
Murillo Y KolmetzRussiaAmy Elsner NEW
Aika O StockhamRussiaStephen Shaw RENEWAL
Wickens I GarufiIndiaAmy Elsner NEW
Costa I BriddickSpainXuxue Feng RENEWAL
Cody A GauchoUnited KingdomXuxue Feng PROPOSAL
Morrow U PoquetteItalyIvan Magalhaes RENEWAL
Alejandro R RimFranceXuxue Feng PROPOSAL
Ricardo C IturbideArgentinaElwin Sharvill NEGOTIATION
Jones Q CaldareraAustraliaBernardo Dominic RENEWAL
Aditya I FollerCanadaIvan Magalhaes UNQUALIFIED
Aruna F BriddickRussiaBernardo Dominic PROPOSAL
Leja N ChuiSpainAsiya Javayant UNQUALIFIED
Aditya S InouyeAustraliaXuxue Feng QUALIFIED
Alejandro U BowleyRussiaIvan Magalhaes PROPOSAL
Jeanfrancois L GillianCanadaIoni Bowcher PROPOSAL
Arvin N RoysterUnited KingdomOnyama Limba PROPOSAL
Chavez O PerinCanadaOnyama Limba RENEWAL
Sinclair X SergiUnited KingdomBernardo Dominic NEGOTIATION
Murillo D SaylorsAustraliaAmy Elsner PROPOSAL
Jeanfrancois R BologniaGermanyStephen Shaw QUALIFIED
Aruna S IturbideIndiaStephen Shaw QUALIFIED
Darci E SergiFranceIoni Bowcher 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>