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
Faith M RoysterFranceXuxue Feng NEGOTIATION
Sinclair Z SlusarskiItalyBernardo Dominic QUALIFIED
Arvin M BowleyUnited KingdomStephen Shaw RENEWAL
Arvin H DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois C DilliardItalyIoni Bowcher UNQUALIFIED
Rodrigues O FlosiRussiaIoni Bowcher QUALIFIED
Ashley G AlbaresItalyStephen Shaw NEW
Kaitlin O TollnerSpainBernardo Dominic QUALIFIED
Ivar C RulapaughJapanIoni Bowcher UNQUALIFIED
Leja S GillianJapanAsiya Javayant QUALIFIED
Arvin C RoysterJapanAnna Fali QUALIFIED
Cody Q MacleadAustraliaIoni Bowcher QUALIFIED
Ashley P DilliardSpainAnna Fali NEW
Leja Q NickaGermanyOnyama Limba RENEWAL
Costa E FigeroaBrazilAnna Fali QUALIFIED
Leja Z WaycottJapanStephen Shaw QUALIFIED
Leon Y StockhamGermanyStephen Shaw QUALIFIED
Mayumi G FerenczAustraliaStephen Shaw NEW
Johnson Y MarrierBrazilOnyama Limba UNQUALIFIED
Francesco U AlbaresSpainAmy Elsner NEGOTIATION
Jefferson X DilliardArgentinaAmy Elsner PROPOSAL
Kaitlin Y MaletSpainElwin Sharvill NEGOTIATION
Mayumi R BologniaJapanXuxue Feng UNQUALIFIED
Deepesh J SchemmerArgentinaElwin Sharvill PROPOSAL
Faith K KuskoIndiaXuxue Feng NEW
Munro P PaprockiRussiaAnna Fali UNQUALIFIED
James O CaldareraSpainIoni Bowcher PROPOSAL
Jones H PerinJapanElwin Sharvill PROPOSAL
Silvio O GillianIndiaIvan Magalhaes NEW
Clifford O KolmetzUnited KingdomElwin Sharvill PROPOSAL
Alejandro V NickaJapanBernardo Dominic QUALIFIED
Maisha Y KuskoArgentinaOnyama Limba NEW
Murillo W PaprockiArgentinaXuxue Feng UNQUALIFIED
Mayumi G DilliardSpainStephen Shaw NEGOTIATION
Alejandro L CampainAustraliaStephen Shaw NEGOTIATION
Francesco R InouyeGermanyAnna Fali QUALIFIED
Claire N RutaJapanElwin Sharvill PROPOSAL
Nicolas D PerinJapanOnyama Limba RENEWAL
Sinclair Y ChuiIndiaXuxue Feng NEW
Sinclair X MorascaGermanyIvan Magalhaes RENEWAL
Juan A MorascaUnited KingdomStephen Shaw QUALIFIED
Antonio I SchemmerItalyOnyama Limba NEGOTIATION
Salvatore E NickaUnited KingdomAmy Elsner QUALIFIED
Stacey D BologniaRussiaIoni Bowcher PROPOSAL
Deepesh W OldroydAustraliaElwin Sharvill UNQUALIFIED
Julie R DoeItalyAmy Elsner NEW
Leon C MacleadItalyElwin Sharvill UNQUALIFIED
Jones N MacleadItalyElwin Sharvill NEGOTIATION
Misaki V SergiRussiaIoni Bowcher QUALIFIED
Juan D OstroskyCanadaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith R AmigonJapanOnyama Limba UNQUALIFIED
Alejandro B DilliardArgentinaAnna Fali NEGOTIATION
Maria L NickaJapanIoni Bowcher NEW
Julie B ChuiBrazilBernardo Dominic PROPOSAL
Jones C DarakjyItalyOnyama Limba PROPOSAL
Leon M WaycottJapanIvan Magalhaes RENEWAL
Wickens L OldroydGermanyAsiya Javayant PROPOSAL
Isabel O PaprockiItalyAmy Elsner RENEWAL
Kaitlin G SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Jefferson P VenereSpainAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel K BriddickItaly2026-08-10Truhlar And Truhlar Attys NEGOTIATION78Xuxue Feng
1001Claire U GarufiAustralia2026-07-26Rousseaux, Michael Esq UNQUALIFIED65Stephen Shaw
1002Leon J IturbideRussia2026-08-03Benton, John B Jr UNQUALIFIED88Amy Elsner
1003Salvatore R BriddickItaly2026-08-01Feiner Bros RENEWAL19Bernardo Dominic
1004Greenwood T DilliardGermany2026-08-13Chanay, Jeffrey A Esq QUALIFIED18Onyama Limba
1005Rodrigues Z SaylorsSpain2026-07-21Rangoni Of Florence NEW30Onyama Limba
1006Maisha S RoysterCanada2026-07-31Dorl, James J Esq UNQUALIFIED36Ioni Bowcher
1007Ashley M MorascaAustralia2026-08-03Chanay, Jeffrey A Esq RENEWAL89Xuxue Feng
1008Octavia W KolmetzArgentina2026-07-19Rousseaux, Michael Esq RENEWAL21Ivan Magalhaes
1009Emily E MacleadItaly2026-07-26Feltz Printing Service QUALIFIED4Ivan Magalhaes
1010Isabel I TollnerItaly2026-08-09Benton, John B Jr UNQUALIFIED27Elwin Sharvill
1011Mayumi E WhobreyIndia2026-07-15Feltz Printing Service RENEWAL31Elwin Sharvill
1012Leon F KuskoGermany2026-08-09Chemel, James L Cpa QUALIFIED70Elwin Sharvill
1013Juan T CampainUnited Kingdom2026-07-30Morlong Associates NEGOTIATION42Ivan Magalhaes
1014Izzy J SchemmerRussia2026-07-22Chanay, Jeffrey A Esq NEGOTIATION96Asiya Javayant
1015Emily G NestleAustralia2026-08-07Chemel, James L Cpa RENEWAL32Onyama Limba
1016Isabel Q KolmetzUnited Kingdom2026-08-01Chemel, James L Cpa NEGOTIATION43Anna Fali
1017Juan X CaldareraBrazil2026-07-25King, Christopher A Esq PROPOSAL69Anna Fali
1018Darci T SaylorsSpain2026-08-02Truhlar And Truhlar Attys UNQUALIFIED76Anna Fali
1019Maria J MarrierSpain2026-07-27Dorl, James J Esq QUALIFIED78Anna Fali
1020Adams G ShinkoUnited Kingdom2026-08-02Buckley Miller Wright PROPOSAL2Ioni Bowcher
1021Morrow J SlusarskiGermany2026-07-19Chapman, Ross E Esq NEW51Anna Fali
1022Aruna M NickaBrazil2026-08-11Rousseaux, Michael Esq UNQUALIFIED10Amy Elsner
1023Alejandro V VocelkaGermany2026-07-25Feltz Printing Service NEGOTIATION84Anna Fali
1024Julie X VocelkaCanada2026-07-25Rousseaux, Michael Esq NEW4Asiya Javayant
1025Faith L MaletUnited Kingdom2026-08-02Rousseaux, Michael Esq RENEWAL75Stephen Shaw
1026Johnson X AlbaresRussia2026-08-08Commercial Press UNQUALIFIED5Bernardo Dominic
1027Morrow V BowleyGermany2026-07-27Morlong Associates PROPOSAL31Bernardo Dominic
1028Kaitlin F NestleBrazil2026-07-15Rangoni Of Florence RENEWAL2Anna Fali
1029Jennifer G StockhamSpain2026-08-03Commercial Press PROPOSAL83Ioni Bowcher
1030Salvatore G DoeCanada2026-08-07Chemel, James L Cpa NEW17Xuxue Feng
1031Deepesh I CaudyFrance2026-07-26Feiner Bros NEW20Onyama Limba
1032Munro B FollerRussia2026-07-30Dorl, James J Esq NEGOTIATION25Onyama Limba
1033Jeanfrancois L CaudyUnited Kingdom2026-07-25Chemel, James L Cpa QUALIFIED80Ivan Magalhaes
1034Julie W StensethArgentina2026-07-24Commercial Press UNQUALIFIED76Xuxue Feng
1035Munro P DarakjyBrazil2026-08-12Chapman, Ross E Esq NEGOTIATION29Onyama Limba
1036Darci W GauchoUnited Kingdom2026-07-26Buckley Miller Wright UNQUALIFIED80Elwin Sharvill
1037Silvio Z RoysterItaly2026-08-02Chapman, Ross E Esq PROPOSAL58Ivan Magalhaes
1038Deepesh U GarufiFrance2026-08-01Rousseaux, Michael Esq UNQUALIFIED1Ioni Bowcher
1039Wickens H GlickUnited Kingdom2026-07-16Benton, John B Jr NEW57Amy Elsner
1040Smith C BowleyIndia2026-07-24Rangoni Of Florence QUALIFIED38Xuxue Feng
1041Adams B CaudyItaly2026-07-25Printing Dimensions NEW60Bernardo Dominic
1042James V MorascaGermany2026-07-27Chemel, James L Cpa NEW49Bernardo Dominic
1043Emily V WaycottArgentina2026-08-04Rousseaux, Michael Esq QUALIFIED93Bernardo Dominic
1044Jennifer U SchemmerJapan2026-07-19Chanay, Jeffrey A Esq RENEWAL23Bernardo Dominic
1045Tony K ShinkoCanada2026-07-30Commercial Press UNQUALIFIED90Bernardo Dominic
1046Johnson A BologniaFrance2026-07-20Printing Dimensions PROPOSAL36Asiya Javayant
1047Morrow I CaldareraCanada2026-07-27Chanay, Jeffrey A Esq PROPOSAL48Ioni Bowcher
1048Rodrigues W SchemmerItaly2026-07-30Chemel, James L Cpa QUALIFIED1Anna Fali
1049Aika M VocelkaBrazil2026-07-16Benton, John B Jr QUALIFIED64Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maria E FerenczUnited KingdomAmy Elsner RENEWAL
Darci F MaletBrazilAnna Fali NEGOTIATION
Chavez N StensethItalyElwin Sharvill PROPOSAL
Francesco W FollerAustraliaAsiya Javayant UNQUALIFIED
Aditya P VocelkaUnited KingdomIvan Magalhaes PROPOSAL
Cody W BowleyArgentinaIvan Magalhaes RENEWAL
Faith U MaletBrazilXuxue Feng NEGOTIATION
David G RutaJapanIoni Bowcher RENEWAL
Wickens N GarufiAustraliaIvan Magalhaes QUALIFIED
Cody E WhobreyGermanyBernardo Dominic NEGOTIATION
Silvio L SchemmerIndiaXuxue Feng NEW
Francesco M BologniaSpainStephen Shaw UNQUALIFIED
Jones F FlosiFranceAsiya Javayant QUALIFIED
Arvin C NickaFranceElwin Sharvill UNQUALIFIED
Leja E CampainJapanBernardo Dominic UNQUALIFIED
Aditya Q SlusarskiItalyAsiya Javayant NEGOTIATION
Leja V FigeroaJapanElwin Sharvill NEW
James Q RutaUnited KingdomAmy Elsner PROPOSAL
Wickens O StockhamBrazilXuxue Feng QUALIFIED
Emily D CaudyBrazilStephen Shaw RENEWAL
Darci Q MarrierJapanIoni Bowcher RENEWAL
Chavez I FerenczIndiaXuxue Feng QUALIFIED
Smith U MaletJapanIoni Bowcher RENEWAL
Francesco V GauchoFranceAsiya Javayant PROPOSAL
Aditya S InouyeItalyStephen Shaw QUALIFIED
Morrow S KolmetzRussiaStephen Shaw PROPOSAL
Deepesh C GarufiFranceOnyama Limba PROPOSAL
Misaki V BriddickBrazilIvan Magalhaes PROPOSAL
Claire N MaletArgentinaBernardo Dominic NEGOTIATION
Morrow F InouyeFranceAmy Elsner UNQUALIFIED
Kadeem H StockhamItalyOnyama Limba QUALIFIED
Morrow S BologniaUnited KingdomAnna Fali RENEWAL
Chavez U AlbaresItalyXuxue Feng PROPOSAL
Silvio P GauchoItalyStephen Shaw NEGOTIATION
Jones S WhobreyArgentinaOnyama Limba PROPOSAL
Alejandro W ChuiAustraliaAmy Elsner RENEWAL
Johnson Q InouyeUnited KingdomBernardo Dominic UNQUALIFIED
James J KuskoUnited KingdomXuxue Feng RENEWAL
Jennifer D AlbaresIndiaAmy Elsner NEGOTIATION
Aditya N WaycottCanadaOnyama Limba PROPOSAL
Antonio M VenereUnited KingdomXuxue Feng QUALIFIED
Mayumi B GlickAustraliaAsiya Javayant QUALIFIED
Maria I MaletSpainElwin Sharvill NEGOTIATION
Aditya L ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Ricardo S ChuiItalyStephen Shaw UNQUALIFIED
Mujtaba V GarufiCanadaXuxue Feng RENEWAL
Francesco O CaudyJapanStephen Shaw NEW
Sinclair H GauchoArgentinaOnyama Limba QUALIFIED
Aditya B GarufiRussiaXuxue Feng PROPOSAL
Jefferson S StensethAustraliaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Greenwood V Albares
Darci N Caldarera
Jefferson E Caudy
Rodrigues A Flosi
Salvatore T Nicka
Jennifer I Morasca
Aditya T Morasca
Nicolas M Figeroa
Mayumi S Chui
Isabel V Shinko
Aditya B Perin
Leon G Ruta
Francesco Y Shinko
Chavez E Maclead
Murillo Q Darakjy
Maisha G Stenseth
Clifford F Glick
Tony U Doe
Leja T Shinko
Smith O Caldarera
Silvio Q Kolmetz
Jeanfrancois P Albares
Kaitlin G Nestle
Mayumi I Bolognia
Clifford F Inouye
Jones N Dilliard
Maisha H Butt
Chavez E Kusko
Octavia D Foller
Misaki M Ferencz
Juan P Inouye
Salvatore J Ruta
Maria M Figeroa
Faith R Morasca
Faith G Slusarski
Leja N Inouye
Aditya H Waycott
Claire Z Venere
Nicolas R Glick
Ivar K Ostrosky
Antonio K Doe
Johnson R Kolmetz
Claire Y Ruta
Kadeem Y Waycott
Maria B Rulapaugh
Mayumi I Malet
Kaitlin K Bowley
Munro F Venere
Silvio F Poquette
Mayumi K Bolognia
IdCountryDate
1000Russia2026-08-03
1001Germany2026-07-25
1002Spain2026-07-20
1003India2026-08-08
1004Russia2026-07-17
1005Australia2026-07-27
1006India2026-07-23
1007Canada2026-07-18
1008Germany2026-07-20
1009Germany2026-08-09
1010United Kingdom2026-07-18
1011Australia2026-07-24
1012Germany2026-08-03
1013Australia2026-07-18
1014Australia2026-07-22
1015Italy2026-07-17
1016Canada2026-08-04
1017India2026-07-29
1018Germany2026-08-13
1019Italy2026-08-07
1020Australia2026-08-13
1021Argentina2026-08-10
1022Canada2026-07-20
1023Japan2026-08-09
1024India2026-07-24
1025India2026-07-16
1026Italy2026-07-20
1027Brazil2026-07-15
1028Italy2026-07-17
1029Argentina2026-07-17
1030Spain2026-07-25
1031Japan2026-07-31
1032Canada2026-07-21
1033Russia2026-08-08
1034Italy2026-08-11
1035Japan2026-08-07
1036Brazil2026-08-01
1037Brazil2026-08-09
1038Spain2026-07-24
1039Spain2026-08-06
1040Spain2026-07-23
1041Canada2026-07-27
1042Canada2026-07-29
1043Russia2026-08-05
1044France2026-07-31
1045Italy2026-07-26
1046Spain2026-07-25
1047Spain2026-07-19
1048Australia2026-07-21
1049Canada2026-08-06

On-Demand Data

NameIdCountryDate
Mujtaba K Stockham1000India2026-08-08
Leja U Ostrosky1001Argentina2026-07-18
Aruna N Bolognia1002United Kingdom2026-07-23
Jeanfrancois D Vocelka1003Brazil2026-07-28
Emily K Inouye1004France2026-07-24
Mujtaba A Ostrosky1005India2026-07-30
Cody A Oldroyd1006France2026-08-11
Aruna N Sergi1007Russia2026-07-23
Antonio T Paprocki1008India2026-07-30
Clifford W Venere1009Japan2026-07-19
Alejandro Q Morasca1010Australia2026-07-30
Maria W Stockham1011Argentina2026-08-01
Isabel B Maclead1012Russia2026-08-01
Mayumi J Schemmer1013Russia2026-08-03
Misaki C Kolmetz1014Russia2026-08-12
Maisha V Maclead1015Australia2026-07-21
Mayumi K Whobrey1016France2026-07-20
Jefferson E Rim1017Germany2026-07-27
Maisha L Poquette1018Spain2026-07-16
Cody F Glick1019Spain2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco Q RulapaughSpainElwin Sharvill NEGOTIATION
Leja L BologniaSpainAmy Elsner NEGOTIATION
Jeanfrancois W SergiFranceIoni Bowcher UNQUALIFIED
Aditya X MorascaRussiaAnna Fali PROPOSAL
Jeanfrancois A ButtUnited KingdomBernardo Dominic NEGOTIATION
Antonio O AlbaresSpainOnyama Limba UNQUALIFIED
Julie V MorascaFranceStephen Shaw PROPOSAL
Kaitlin K MaletFranceIvan Magalhaes QUALIFIED
Clifford R GlickRussiaStephen Shaw NEW
Octavia Y RutaUnited KingdomAnna Fali NEGOTIATION
Rodrigues P PaprockiBrazilXuxue Feng NEGOTIATION
Jefferson S WieserGermanyAmy Elsner UNQUALIFIED
Jennifer N FollerAustraliaElwin Sharvill NEW
James U BowleyRussiaIvan Magalhaes PROPOSAL
Claire W PerinUnited KingdomBernardo Dominic NEGOTIATION
James S ChuiArgentinaAnna Fali NEGOTIATION
Misaki D SergiIndiaAnna Fali NEW
Wickens P PoquetteUnited KingdomAnna Fali NEGOTIATION
Maisha H VocelkaBrazilAmy Elsner NEW
Juan C RutaItalyElwin Sharvill NEW
Maria D NestleArgentinaXuxue Feng NEW
Alejandro X KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba B NickaFranceIoni Bowcher RENEWAL
Stacey C KolmetzBrazilAmy Elsner NEGOTIATION
Aruna M MaletBrazilIvan Magalhaes NEW
Juan L GlickItalyAsiya Javayant RENEWAL
Francesco D MaletItalyStephen Shaw NEW
Rodrigues E GlickRussiaIoni Bowcher RENEWAL
Tony N WaycottSpainAsiya Javayant NEW
Jeanfrancois S InouyeUnited KingdomBernardo Dominic QUALIFIED
Claire R SchemmerIndiaAmy Elsner NEGOTIATION
Aruna D ButtArgentinaXuxue Feng UNQUALIFIED
Emily H RutaFranceAnna Fali UNQUALIFIED
Adams R StensethIndiaAnna Fali UNQUALIFIED
Isabel A MorascaJapanIoni Bowcher NEW
Johnson S SergiIndiaAnna Fali NEGOTIATION
Nicolas X IturbideIndiaAmy Elsner QUALIFIED
Kaitlin L BologniaArgentinaElwin Sharvill UNQUALIFIED
Kaitlin O FollerBrazilBernardo Dominic NEGOTIATION
Emily C DoeAustraliaXuxue Feng 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>