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
Izzy E CaudyUnited KingdomXuxue Feng UNQUALIFIED
Ivar G DilliardAustraliaElwin Sharvill PROPOSAL
Darci I SchemmerUnited KingdomAmy Elsner UNQUALIFIED
Julie Q KolmetzIndiaAnna Fali RENEWAL
Munro X ChuiUnited KingdomStephen Shaw UNQUALIFIED
Julie P MarrierSpainBernardo Dominic NEGOTIATION
Kaitlin Z VenereIndiaAnna Fali NEW
Greenwood X MaletIndiaElwin Sharvill RENEWAL
Kaitlin N FollerSpainAmy Elsner NEW
Emily Y DoeJapanAnna Fali NEW
Chavez T WieserJapanIoni Bowcher NEGOTIATION
Mujtaba Y MaletRussiaAsiya Javayant UNQUALIFIED
Murillo M NestleAustraliaStephen Shaw NEGOTIATION
Stacey W KuskoAustraliaBernardo Dominic NEGOTIATION
Kaitlin Y MaletBrazilAmy Elsner NEGOTIATION
Adams T PoquetteAustraliaOnyama Limba RENEWAL
Aika Z GarufiBrazilAmy Elsner RENEWAL
Johnson B GillianAustraliaIoni Bowcher UNQUALIFIED
Leon B WieserJapanXuxue Feng UNQUALIFIED
Adams C MaletBrazilAsiya Javayant RENEWAL
Silvio F BologniaItalyIoni Bowcher UNQUALIFIED
Mujtaba F PaprockiArgentinaIoni Bowcher NEW
Maria T SaylorsRussiaAnna Fali RENEWAL
Misaki H CaldareraJapanBernardo Dominic QUALIFIED
Mayumi U FlosiSpainStephen Shaw NEGOTIATION
Arvin J KuskoIndiaAmy Elsner NEGOTIATION
Maisha R MacleadArgentinaAmy Elsner UNQUALIFIED
James O PerinFranceIvan Magalhaes UNQUALIFIED
Rodrigues U FollerUnited KingdomBernardo Dominic PROPOSAL
Maisha O GarufiIndiaElwin Sharvill UNQUALIFIED
Octavia P StensethJapanAmy Elsner QUALIFIED
Munro M ButtIndiaXuxue Feng NEW
Silvio I RimIndiaAmy Elsner RENEWAL
Alejandro W OldroydFranceStephen Shaw RENEWAL
Antonio M MaletRussiaOnyama Limba NEGOTIATION
Nicolas Z SlusarskiUnited KingdomAsiya Javayant RENEWAL
Deepesh Y PerinIndiaXuxue Feng PROPOSAL
Antonio O TollnerRussiaElwin Sharvill UNQUALIFIED
Misaki T FlosiRussiaIvan Magalhaes PROPOSAL
Clifford H GillianJapanElwin Sharvill NEGOTIATION
Sinclair H FlosiJapanIoni Bowcher QUALIFIED
Wickens N FerenczFranceOnyama Limba PROPOSAL
Faith H TollnerGermanyIoni Bowcher RENEWAL
Antonio L GillianItalyXuxue Feng RENEWAL
Leja X DarakjySpainXuxue Feng RENEWAL
Misaki V KolmetzIndiaAnna Fali RENEWAL
Chavez I OstroskyIndiaBernardo Dominic UNQUALIFIED
Faith T RutaUnited KingdomXuxue Feng QUALIFIED
Johnson H AmigonCanadaStephen Shaw RENEWAL
Greenwood L RoysterAustraliaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford D SchemmerItalyAmy Elsner PROPOSAL
Jennifer R ButtJapanAsiya Javayant NEW
Arvin V RoysterArgentinaElwin Sharvill QUALIFIED
Arvin X PoquetteRussiaIvan Magalhaes NEW
Darci N GlickCanadaElwin Sharvill QUALIFIED
Adams Y AmigonArgentinaIvan Magalhaes QUALIFIED
Leon E NestleSpainElwin Sharvill NEGOTIATION
Salvatore J DoeUnited KingdomBernardo Dominic RENEWAL
Murillo J NickaAustraliaIoni Bowcher PROPOSAL
Greenwood A PerinFranceIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo Y FerenczIndia2026-07-07Rousseaux, Michael Esq UNQUALIFIED66Bernardo Dominic
1001James P GauchoCanada2026-07-06Dorl, James J Esq RENEWAL17Elwin Sharvill
1002Misaki E ShinkoRussia2026-07-07King, Christopher A Esq RENEWAL23Onyama Limba
1003Ashley I KolmetzIndia2026-06-30Buckley Miller Wright QUALIFIED13Bernardo Dominic
1004Julie R PaprockiFrance2026-06-19Feltz Printing Service NEGOTIATION81Bernardo Dominic
1005Octavia F SchemmerUnited Kingdom2026-06-21King, Christopher A Esq QUALIFIED42Asiya Javayant
1006Clifford Z MacleadAustralia2026-07-13Rousseaux, Michael Esq PROPOSAL89Elwin Sharvill
1007Ivar V MaletItaly2026-06-30Truhlar And Truhlar Attys UNQUALIFIED81Ioni Bowcher
1008Octavia D GarufiUnited Kingdom2026-07-01Commercial Press PROPOSAL22Ivan Magalhaes
1009Rodrigues E MaletBrazil2026-07-14Morlong Associates RENEWAL6Onyama Limba
1010Aika J TollnerGermany2026-06-25Printing Dimensions QUALIFIED25Xuxue Feng
1011Deepesh S StockhamBrazil2026-06-16Feltz Printing Service RENEWAL5Xuxue Feng
1012Clifford I BowleyCanada2026-07-05Printing Dimensions QUALIFIED42Asiya Javayant
1013Misaki D ButtAustralia2026-06-16Truhlar And Truhlar Attys UNQUALIFIED89Amy Elsner
1014Emily M MaletArgentina2026-07-02Morlong Associates PROPOSAL88Stephen Shaw
1015Adams I ShinkoGermany2026-07-08Buckley Miller Wright PROPOSAL87Elwin Sharvill
1016Adams K RimAustralia2026-07-06Benton, John B Jr PROPOSAL9Stephen Shaw
1017Nicolas J OstroskyCanada2026-07-08Truhlar And Truhlar Attys NEGOTIATION12Stephen Shaw
1018Tony Y RutaIndia2026-06-23Printing Dimensions RENEWAL87Bernardo Dominic
1019Aruna D RulapaughGermany2026-07-13Truhlar And Truhlar Attys QUALIFIED63Stephen Shaw
1020Morrow K NestleArgentina2026-06-25Rangoni Of Florence NEGOTIATION31Ioni Bowcher
1021James G VocelkaFrance2026-06-27Chemel, James L Cpa QUALIFIED14Anna Fali
1022Maria Q SlusarskiFrance2026-07-09King, Christopher A Esq QUALIFIED60Stephen Shaw
1023Jones U SlusarskiAustralia2026-07-03Chapman, Ross E Esq NEGOTIATION70Ioni Bowcher
1024Wickens V KolmetzFrance2026-06-25Feiner Bros UNQUALIFIED28Bernardo Dominic
1025Aruna S NickaCanada2026-07-15Printing Dimensions UNQUALIFIED79Elwin Sharvill
1026Kaitlin O RoysterAustralia2026-07-14Rousseaux, Michael Esq NEW6Ioni Bowcher
1027Costa F AmigonRussia2026-06-26Benton, John B Jr QUALIFIED43Amy Elsner
1028Stacey N MarrierUnited Kingdom2026-07-06Rousseaux, Michael Esq PROPOSAL65Ioni Bowcher
1029Mayumi N SergiFrance2026-06-17Commercial Press RENEWAL32Anna Fali
1030Isabel P NestleIndia2026-06-28King, Christopher A Esq NEGOTIATION44Elwin Sharvill
1031Mayumi K DilliardIndia2026-06-29Chanay, Jeffrey A Esq RENEWAL68Onyama Limba
1032Jeanfrancois O GauchoItaly2026-07-13Dorl, James J Esq UNQUALIFIED78Elwin Sharvill
1033Jeanfrancois M BriddickRussia2026-07-08Feltz Printing Service UNQUALIFIED32Onyama Limba
1034Julie V OldroydSpain2026-06-26Commercial Press PROPOSAL75Xuxue Feng
1035Morrow U MarrierUnited Kingdom2026-07-08Benton, John B Jr NEGOTIATION54Stephen Shaw
1036Antonio P RimUnited Kingdom2026-07-05Chanay, Jeffrey A Esq RENEWAL24Ioni Bowcher
1037David U ChuiRussia2026-06-30Rousseaux, Michael Esq PROPOSAL96Ivan Magalhaes
1038Kaitlin M OstroskyCanada2026-07-03Rangoni Of Florence UNQUALIFIED76Stephen Shaw
1039Costa Z TollnerItaly2026-06-16Dorl, James J Esq PROPOSAL47Asiya Javayant
1040Mujtaba G GarufiSpain2026-06-25Chapman, Ross E Esq NEGOTIATION29Elwin Sharvill
1041James D WaycottIndia2026-06-16Commercial Press UNQUALIFIED60Stephen Shaw
1042Izzy B RimFrance2026-07-08Chanay, Jeffrey A Esq QUALIFIED40Onyama Limba
1043Jennifer D OldroydBrazil2026-07-07Morlong Associates NEW45Amy Elsner
1044Smith B PaprockiCanada2026-06-24Rangoni Of Florence PROPOSAL46Ioni Bowcher
1045Sinclair F OstroskyCanada2026-07-11Dorl, James J Esq RENEWAL14Amy Elsner
1046Silvio B AlbaresIndia2026-06-16Benton, John B Jr QUALIFIED25Amy Elsner
1047Kadeem H DilliardUnited Kingdom2026-07-14Dorl, James J Esq NEW82Ivan Magalhaes
1048Emily A DilliardUnited Kingdom2026-07-11Printing Dimensions RENEWAL70Onyama Limba
1049Clifford Q VocelkaUnited Kingdom2026-06-30Benton, John B Jr NEGOTIATION91Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki B FollerCanadaAmy Elsner PROPOSAL
Darci G AmigonFranceStephen Shaw NEGOTIATION
Rodrigues K RulapaughGermanyStephen Shaw UNQUALIFIED
David O MaletIndiaStephen Shaw NEW
Maria D MaletGermanyElwin Sharvill NEGOTIATION
Kaitlin Q CampainRussiaStephen Shaw UNQUALIFIED
Darci E StockhamGermanyAsiya Javayant NEGOTIATION
Maria A RoysterUnited KingdomIvan Magalhaes PROPOSAL
Faith L IturbideBrazilAnna Fali RENEWAL
Salvatore U MaletAustraliaIvan Magalhaes UNQUALIFIED
Jefferson W VocelkaItalyStephen Shaw UNQUALIFIED
Ricardo R SaylorsUnited KingdomAsiya Javayant QUALIFIED
Murillo A FlosiUnited KingdomStephen Shaw RENEWAL
Emily Y FigeroaAustraliaElwin Sharvill QUALIFIED
Sinclair D SergiCanadaAnna Fali NEGOTIATION
Rodrigues A AmigonFranceElwin Sharvill NEW
Rodrigues N MarrierRussiaXuxue Feng RENEWAL
Maisha V KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Murillo V OstroskyJapanIoni Bowcher PROPOSAL
Morrow Z ShinkoJapanIvan Magalhaes NEW
Jeanfrancois R GauchoSpainIvan Magalhaes QUALIFIED
Greenwood K MaletGermanyIvan Magalhaes QUALIFIED
Misaki I CampainSpainOnyama Limba PROPOSAL
Arvin F GillianUnited KingdomIvan Magalhaes QUALIFIED
Jennifer T WhobreyBrazilStephen Shaw NEGOTIATION
Antonio B ShinkoRussiaAsiya Javayant NEGOTIATION
Salvatore H DoeJapanAmy Elsner QUALIFIED
Jennifer T VenereUnited KingdomBernardo Dominic UNQUALIFIED
Leon T MorascaFranceAnna Fali RENEWAL
Antonio C RimAustraliaStephen Shaw UNQUALIFIED
David H GarufiGermanyAmy Elsner NEGOTIATION
Costa H AlbaresRussiaOnyama Limba NEGOTIATION
Nicolas O GauchoRussiaAmy Elsner UNQUALIFIED
Maisha B VenereItalyXuxue Feng RENEWAL
Greenwood Q OldroydJapanBernardo Dominic PROPOSAL
Morrow N GarufiUnited KingdomOnyama Limba UNQUALIFIED
Emily Y AmigonRussiaElwin Sharvill RENEWAL
Adams W KuskoCanadaBernardo Dominic QUALIFIED
Juan Z StensethUnited KingdomOnyama Limba QUALIFIED
Antonio B GarufiItalyAsiya Javayant NEW
Aruna F MaletArgentinaBernardo Dominic PROPOSAL
Ashley J PerinItalyIoni Bowcher UNQUALIFIED
Emily X SlusarskiFranceXuxue Feng RENEWAL
Jones I MaletArgentinaElwin Sharvill RENEWAL
Adams Z OstroskyFranceOnyama Limba NEGOTIATION
Ivar K MacleadArgentinaBernardo Dominic RENEWAL
Faith V StockhamRussiaStephen Shaw NEW
Izzy X DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson Z CampainBrazilBernardo Dominic UNQUALIFIED
Smith B FlosiSpainOnyama Limba QUALIFIED
Frozen Columns
Name
Octavia C Shinko
Leon S Shinko
Julie A Nestle
Emily P Maclead
Ivar W Tollner
Aruna S Darakjy
Johnson C Kusko
Jefferson W Doe
David Y Flosi
Chavez K Ruta
Jennifer H Caldarera
Silvio A Slusarski
Tony M Saylors
Ivar K Bolognia
Jones X Marrier
Mujtaba Q Marrier
Smith R Garufi
Claire H Maclead
Cody Q Slusarski
Emily A Sergi
Francesco F Doe
Arvin X Poquette
Morrow I Marrier
Deepesh J Ostrosky
Stacey M Garufi
Ashley Q Flosi
Aika J Nestle
Nicolas V Vocelka
Julie F Stockham
Ivar Q Kusko
Adams V Flosi
James E Gaucho
Mujtaba S Gillian
Nicolas Q Stenseth
Jones J Gillian
Clifford D Saylors
James G Chui
Aditya P Nicka
Adams S Figeroa
Kaitlin D Perin
James E Venere
Rodrigues J Slusarski
Claire Z Gaucho
Jefferson E Caldarera
Mujtaba A Shinko
Maria L Iturbide
Ivar D Wieser
Darci B Tollner
Stacey B Briddick
Julie D Wieser
IdCountryDate
1000Brazil2026-07-07
1001Russia2026-07-09
1002Japan2026-06-28
1003India2026-06-21
1004Australia2026-06-29
1005Spain2026-07-02
1006Argentina2026-07-10
1007Germany2026-06-27
1008Russia2026-06-25
1009Italy2026-06-24
1010Japan2026-06-21
1011Germany2026-07-14
1012France2026-07-03
1013France2026-07-12
1014France2026-06-24
1015Australia2026-06-17
1016United Kingdom2026-06-27
1017Germany2026-07-04
1018France2026-07-08
1019France2026-07-09
1020India2026-07-06
1021Brazil2026-06-17
1022Brazil2026-07-14
1023Argentina2026-07-02
1024Germany2026-07-07
1025Australia2026-06-23
1026Germany2026-07-11
1027India2026-07-01
1028United Kingdom2026-06-16
1029Canada2026-07-13
1030France2026-07-09
1031Germany2026-06-16
1032Canada2026-07-08
1033France2026-06-30
1034France2026-06-23
1035Canada2026-06-21
1036United Kingdom2026-07-05
1037Italy2026-06-30
1038France2026-07-15
1039Brazil2026-07-10
1040Canada2026-06-20
1041Italy2026-06-23
1042France2026-06-16
1043Russia2026-07-06
1044India2026-07-12
1045Australia2026-06-24
1046Canada2026-07-14
1047Canada2026-06-18
1048Germany2026-06-30
1049Japan2026-06-19

On-Demand Data

NameIdCountryDate
Alejandro S Morasca1000Brazil2026-06-19
Julie R Garufi1001Spain2026-07-09
Jefferson W Iturbide1002Germany2026-06-25
Mayumi T Darakjy1003India2026-06-27
Stacey D Rulapaugh1004Australia2026-06-27
Alejandro J Paprocki1005Japan2026-06-18
Leon J Butt1006Spain2026-07-13
Leja H Schemmer1007Argentina2026-06-16
Juan E Gillian1008India2026-06-17
Chavez C Tollner1009Australia2026-06-18
Alejandro V Gillian1010France2026-06-26
Chavez D Albares1011Argentina2026-06-22
Arvin W Royster1012Spain2026-07-15
Greenwood Z Wieser1013Italy2026-06-26
Mujtaba E Doe1014France2026-06-23
Silvio S Malet1015Japan2026-07-11
Emily V Albares1016Australia2026-06-17
Greenwood R Inouye1017Russia2026-06-26
Jennifer M Whobrey1018Italy2026-06-28
Ricardo S Briddick1019United Kingdom2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel H RimAustraliaXuxue Feng NEGOTIATION
Wickens E RimSpainAsiya Javayant QUALIFIED
Julie M SchemmerItalyAmy Elsner RENEWAL
Alejandro K StensethUnited KingdomIoni Bowcher RENEWAL
Clifford I InouyeItalyStephen Shaw PROPOSAL
Izzy A MarrierBrazilIoni Bowcher RENEWAL
Ivar Y FlosiJapanElwin Sharvill UNQUALIFIED
Aruna W CaudyAustraliaIvan Magalhaes QUALIFIED
Murillo M RoysterCanadaStephen Shaw UNQUALIFIED
Leja H TollnerItalyIvan Magalhaes QUALIFIED
Johnson H DoeCanadaAmy Elsner NEW
Juan N CaudySpainAsiya Javayant NEW
Chavez M ButtJapanIoni Bowcher NEW
Adams M StensethUnited KingdomElwin Sharvill UNQUALIFIED
Adams D GarufiFranceIoni Bowcher QUALIFIED
Aika B DarakjyGermanyElwin Sharvill NEGOTIATION
Wickens A IturbideAustraliaXuxue Feng NEW
Ricardo K DarakjyIndiaAmy Elsner UNQUALIFIED
Ashley F GillianFranceAmy Elsner RENEWAL
Deepesh Q ShinkoUnited KingdomAmy Elsner RENEWAL
Aditya H InouyeArgentinaIvan Magalhaes PROPOSAL
Octavia H ChuiJapanStephen Shaw PROPOSAL
Aditya A IturbideSpainAsiya Javayant QUALIFIED
David Y FerenczCanadaAmy Elsner RENEWAL
Nicolas J PoquetteFranceIvan Magalhaes NEGOTIATION
Jennifer Z SergiIndiaElwin Sharvill NEGOTIATION
Kaitlin K ShinkoRussiaIoni Bowcher UNQUALIFIED
Maisha C SchemmerArgentinaXuxue Feng NEW
Claire U SaylorsUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois K SchemmerJapanXuxue Feng NEW
Isabel U KuskoIndiaXuxue Feng UNQUALIFIED
Emily V DoeRussiaBernardo Dominic NEGOTIATION
Ashley R MaletIndiaElwin Sharvill NEW
Sinclair V SlusarskiSpainAnna Fali RENEWAL
Leon L CampainIndiaIvan Magalhaes NEW
James V PoquetteSpainStephen Shaw PROPOSAL
Kaitlin L MaletCanadaElwin Sharvill UNQUALIFIED
Emily P MorascaJapanIoni Bowcher PROPOSAL
Tony X PaprockiArgentinaStephen Shaw NEGOTIATION
Nicolas F MaletCanadaElwin Sharvill 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>