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
Julie E NestleIndiaAnna Fali QUALIFIED
Adams V FerenczJapanXuxue Feng UNQUALIFIED
Izzy Y SchemmerBrazilIvan Magalhaes NEGOTIATION
Tony B PerinArgentinaElwin Sharvill PROPOSAL
Juan P FerenczAustraliaOnyama Limba RENEWAL
Sinclair H PoquetteUnited KingdomIoni Bowcher RENEWAL
Maria T ChuiArgentinaOnyama Limba NEW
Kaitlin I RulapaughIndiaAnna Fali UNQUALIFIED
Arvin X WhobreyCanadaElwin Sharvill UNQUALIFIED
Maria S OldroydIndiaAmy Elsner UNQUALIFIED
Aika L TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Faith Z MarrierIndiaAsiya Javayant RENEWAL
James X OstroskySpainAmy Elsner NEGOTIATION
Clifford W AmigonAustraliaBernardo Dominic PROPOSAL
Ashley O NickaArgentinaAmy Elsner UNQUALIFIED
Claire K SlusarskiItalyXuxue Feng NEGOTIATION
Murillo S OstroskyIndiaXuxue Feng RENEWAL
Aika D CaudyBrazilIoni Bowcher RENEWAL
Sinclair O PerinArgentinaElwin Sharvill QUALIFIED
Isabel C StockhamItalyXuxue Feng UNQUALIFIED
Murillo H StockhamJapanOnyama Limba NEW
Claire N SaylorsCanadaIoni Bowcher QUALIFIED
Antonio Q SaylorsAustraliaElwin Sharvill RENEWAL
Misaki S VenereRussiaAsiya Javayant QUALIFIED
Sinclair T PoquetteSpainAnna Fali QUALIFIED
Francesco O SlusarskiIndiaStephen Shaw UNQUALIFIED
Claire O OldroydAustraliaIvan Magalhaes QUALIFIED
Maisha R OstroskyArgentinaIvan Magalhaes PROPOSAL
Smith K MaletGermanyStephen Shaw QUALIFIED
Alejandro V FlosiGermanyIvan Magalhaes RENEWAL
Jeanfrancois S MaletFranceBernardo Dominic PROPOSAL
Claire V IturbideUnited KingdomXuxue Feng NEGOTIATION
Arvin J RulapaughFranceBernardo Dominic NEGOTIATION
Johnson G ShinkoUnited KingdomOnyama Limba PROPOSAL
Faith E PerinArgentinaXuxue Feng RENEWAL
Aruna U BologniaFranceIvan Magalhaes RENEWAL
Claire K KolmetzGermanyElwin Sharvill UNQUALIFIED
Sinclair C WaycottRussiaElwin Sharvill NEGOTIATION
Sinclair A StockhamIndiaAmy Elsner UNQUALIFIED
Ivar Y NestleSpainAmy Elsner NEW
Adams I WhobreyAustraliaXuxue Feng RENEWAL
Julie J MacleadRussiaAnna Fali RENEWAL
Rodrigues X FlosiUnited KingdomStephen Shaw QUALIFIED
Nicolas D SergiGermanyAsiya Javayant NEW
Greenwood S TollnerBrazilOnyama Limba UNQUALIFIED
Murillo K ChuiCanadaAmy Elsner UNQUALIFIED
Costa M SergiItalyOnyama Limba QUALIFIED
Misaki R VenereIndiaOnyama Limba NEGOTIATION
Silvio J StensethFranceIvan Magalhaes UNQUALIFIED
Ricardo A BriddickAustraliaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy Q OldroydAustraliaAnna Fali PROPOSAL
Adams D RimCanadaIvan Magalhaes PROPOSAL
Emily A CaldareraFranceAmy Elsner RENEWAL
Misaki V GarufiGermanyIoni Bowcher QUALIFIED
Mujtaba J WaycottSpainStephen Shaw PROPOSAL
Jeanfrancois S WaycottFranceElwin Sharvill NEGOTIATION
Aditya T KuskoItalyAmy Elsner NEGOTIATION
Munro X FigeroaItalyOnyama Limba RENEWAL
Deepesh H FerenczJapanAsiya Javayant NEGOTIATION
Arvin R FollerRussiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens F PoquetteJapan2026-07-21Rangoni Of Florence RENEWAL79Ioni Bowcher
1001Maria W StockhamBrazil2026-07-10Morlong Associates PROPOSAL63Xuxue Feng
1002Ashley W PaprockiSpain2026-07-18Chemel, James L Cpa NEW99Xuxue Feng
1003Claire B SchemmerSpain2026-07-25Commercial Press PROPOSAL6Ivan Magalhaes
1004Izzy I GauchoJapan2026-08-02Rousseaux, Michael Esq NEGOTIATION94Bernardo Dominic
1005James P DoeFrance2026-07-22Benton, John B Jr UNQUALIFIED39Elwin Sharvill
1006Morrow C AlbaresFrance2026-07-21Chemel, James L Cpa UNQUALIFIED50Asiya Javayant
1007Francesco Y GillianArgentina2026-07-09Chanay, Jeffrey A Esq RENEWAL91Amy Elsner
1008Arvin A BologniaFrance2026-07-27Dorl, James J Esq PROPOSAL39Ivan Magalhaes
1009Nicolas I FigeroaArgentina2026-07-20Benton, John B Jr UNQUALIFIED38Ioni Bowcher
1010Murillo M PaprockiFrance2026-07-20Chanay, Jeffrey A Esq QUALIFIED44Stephen Shaw
1011Cody X SergiFrance2026-07-22Benton, John B Jr PROPOSAL96Ioni Bowcher
1012Mujtaba W NickaFrance2026-07-07Printing Dimensions NEGOTIATION62Asiya Javayant
1013Misaki A IturbideUnited Kingdom2026-07-07Printing Dimensions NEGOTIATION93Ioni Bowcher
1014Antonio Z GillianRussia2026-07-25Benton, John B Jr QUALIFIED55Amy Elsner
1015Maisha C VenereSpain2026-07-17Buckley Miller Wright QUALIFIED42Onyama Limba
1016Antonio K MarrierItaly2026-07-31Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1017Faith P MarrierUnited Kingdom2026-07-05Rangoni Of Florence QUALIFIED11Xuxue Feng
1018Julie F PerinSpain2026-07-17Printing Dimensions RENEWAL0Asiya Javayant
1019Kaitlin H NickaUnited Kingdom2026-07-29Rangoni Of Florence RENEWAL85Onyama Limba
1020James M StockhamGermany2026-07-29Rousseaux, Michael Esq NEGOTIATION49Xuxue Feng
1021Smith R SergiIndia2026-07-31Dorl, James J Esq PROPOSAL62Asiya Javayant
1022Maria J CaldareraUnited Kingdom2026-07-14Truhlar And Truhlar Attys NEGOTIATION23Amy Elsner
1023Arvin J FigeroaUnited Kingdom2026-07-08Feiner Bros QUALIFIED62Xuxue Feng
1024Clifford I DilliardUnited Kingdom2026-07-21Chapman, Ross E Esq PROPOSAL27Amy Elsner
1025Isabel U CampainArgentina2026-07-15Feiner Bros NEW4Onyama Limba
1026Octavia E RutaGermany2026-07-29Rousseaux, Michael Esq PROPOSAL43Stephen Shaw
1027Munro Y OldroydFrance2026-07-12Truhlar And Truhlar Attys PROPOSAL12Onyama Limba
1028Sinclair R FigeroaBrazil2026-07-26Dorl, James J Esq RENEWAL97Ivan Magalhaes
1029Jones Y GillianFrance2026-07-27King, Christopher A Esq NEW10Bernardo Dominic
1030Mayumi X ShinkoIndia2026-07-09Rangoni Of Florence NEW26Ivan Magalhaes
1031Cody B CaudyUnited Kingdom2026-07-13Chapman, Ross E Esq UNQUALIFIED44Asiya Javayant
1032Sinclair B AlbaresGermany2026-07-30Rousseaux, Michael Esq PROPOSAL86Ivan Magalhaes
1033Silvio Q FollerArgentina2026-08-02Feiner Bros NEGOTIATION96Xuxue Feng
1034Jefferson U KuskoArgentina2026-07-15Dorl, James J Esq RENEWAL4Xuxue Feng
1035Misaki C PoquetteArgentina2026-07-31Printing Dimensions QUALIFIED35Amy Elsner
1036Maria G SlusarskiRussia2026-07-27Morlong Associates NEGOTIATION62Asiya Javayant
1037Rodrigues F DarakjyCanada2026-07-25Buckley Miller Wright RENEWAL35Anna Fali
1038Leja Q MaletUnited Kingdom2026-08-02Morlong Associates NEGOTIATION65Ivan Magalhaes
1039Ivar F FollerCanada2026-07-05Rousseaux, Michael Esq UNQUALIFIED12Ivan Magalhaes
1040Sinclair U RimBrazil2026-07-22Rousseaux, Michael Esq NEGOTIATION4Bernardo Dominic
1041Jones J ShinkoArgentina2026-07-16Chapman, Ross E Esq PROPOSAL11Bernardo Dominic
1042Chavez H RulapaughRussia2026-07-14Rangoni Of Florence QUALIFIED45Ivan Magalhaes
1043Julie R RutaCanada2026-07-25Feiner Bros NEW63Xuxue Feng
1044Misaki E FollerJapan2026-07-08Morlong Associates NEGOTIATION24Ivan Magalhaes
1045Ashley H StockhamUnited Kingdom2026-07-08Rangoni Of Florence RENEWAL52Ioni Bowcher
1046Costa P RimIndia2026-07-12Feiner Bros QUALIFIED46Asiya Javayant
1047Cody E BriddickBrazil2026-08-02Chapman, Ross E Esq RENEWAL20Stephen Shaw
1048Leon Q WaycottGermany2026-07-15Chapman, Ross E Esq PROPOSAL0Xuxue Feng
1049Emily L PaprockiCanada2026-07-06Rangoni Of Florence NEGOTIATION41Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David B FerenczCanadaIvan Magalhaes RENEWAL
Ivar P KolmetzItalyAnna Fali PROPOSAL
Nicolas U MarrierJapanAsiya Javayant QUALIFIED
Izzy Y CaudyBrazilStephen Shaw NEW
Wickens O SchemmerRussiaOnyama Limba NEGOTIATION
Isabel I BriddickBrazilIoni Bowcher UNQUALIFIED
Costa A StensethArgentinaIoni Bowcher NEGOTIATION
Munro B GauchoAustraliaXuxue Feng PROPOSAL
Ivar V DilliardGermanyAmy Elsner RENEWAL
Cody M DoeCanadaXuxue Feng NEW
Stacey M ChuiJapanAsiya Javayant UNQUALIFIED
Mujtaba X GlickFranceElwin Sharvill PROPOSAL
Wickens B InouyeRussiaElwin Sharvill UNQUALIFIED
Munro V NestleAustraliaAsiya Javayant QUALIFIED
Faith S AlbaresItalyStephen Shaw RENEWAL
Greenwood W RoysterIndiaOnyama Limba NEW
Deepesh G OstroskyArgentinaAnna Fali NEW
Kadeem V StensethJapanAmy Elsner PROPOSAL
Silvio O AmigonAustraliaAsiya Javayant PROPOSAL
Faith N SergiUnited KingdomAnna Fali NEGOTIATION
Octavia B GauchoJapanIvan Magalhaes UNQUALIFIED
Julie A RutaGermanyXuxue Feng UNQUALIFIED
Misaki S BowleyIndiaIoni Bowcher QUALIFIED
Kadeem B DilliardCanadaElwin Sharvill NEGOTIATION
Leon C StensethSpainElwin Sharvill PROPOSAL
Tony P ChuiUnited KingdomAsiya Javayant RENEWAL
Leon N FerenczIndiaAnna Fali QUALIFIED
Octavia X NestleSpainBernardo Dominic UNQUALIFIED
Murillo V AmigonItalyXuxue Feng RENEWAL
Chavez C OldroydFranceAnna Fali RENEWAL
Ricardo M DilliardAustraliaIoni Bowcher PROPOSAL
Salvatore Q RimFranceAmy Elsner NEGOTIATION
Arvin P GarufiSpainBernardo Dominic UNQUALIFIED
Misaki X FollerGermanyAmy Elsner NEGOTIATION
Faith V CaudyIndiaIvan Magalhaes RENEWAL
Francesco A GillianSpainXuxue Feng UNQUALIFIED
Jennifer S BologniaGermanyOnyama Limba UNQUALIFIED
Salvatore N AmigonRussiaIoni Bowcher UNQUALIFIED
Sinclair I WieserAustraliaAnna Fali RENEWAL
Morrow M CaldareraFranceOnyama Limba UNQUALIFIED
Cody N IturbideItalyXuxue Feng NEGOTIATION
Mujtaba H FerenczBrazilAnna Fali NEW
Johnson K IturbideAustraliaIvan Magalhaes NEW
Chavez F NickaFranceIoni Bowcher UNQUALIFIED
Misaki K OstroskyFranceAmy Elsner PROPOSAL
Tony N DoeUnited KingdomStephen Shaw PROPOSAL
Jefferson W GlickRussiaIvan Magalhaes NEW
Emily R ShinkoIndiaIvan Magalhaes NEW
Deepesh Q MacleadAustraliaBernardo Dominic NEGOTIATION
Tony D RutaAustraliaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Aditya O Morasca
Isabel G Butt
Isabel D Stockham
Leon X Ostrosky
Chavez I Oldroyd
Maria M Nicka
Nicolas Z Figeroa
Mujtaba W Tollner
Wickens H Gaucho
Deepesh S Inouye
Cody U Venere
Johnson E Iturbide
James U Maclead
Aditya Z Poquette
Faith M Wieser
Isabel H Venere
Maria A Morasca
Maria B Bowley
Rodrigues M Briddick
Nicolas H Briddick
Aika N Malet
Nicolas S Kusko
Clifford R Venere
Greenwood S Gillian
Ricardo P Malet
Adams R Marrier
Maria O Malet
Maisha L Stockham
Ashley P Stockham
Faith W Stockham
Smith F Waycott
Salvatore O Garufi
Antonio Z Briddick
Alejandro T Wieser
Tony P Gaucho
James C Chui
Aika K Chui
Jefferson H Rim
Mujtaba O Rim
Aditya K Venere
Smith Z Tollner
Chavez E Stockham
Izzy R Figeroa
Izzy J Schemmer
Faith I Shinko
Mayumi D Inouye
Murillo Q Royster
Mayumi C Rulapaugh
Jennifer H Maclead
Francesco C Caldarera
IdCountryDate
1000Canada2026-07-10
1001India2026-07-17
1002France2026-07-15
1003Australia2026-07-24
1004Spain2026-07-22
1005Japan2026-08-03
1006Japan2026-07-19
1007Japan2026-07-17
1008Brazil2026-08-03
1009France2026-07-16
1010Italy2026-08-03
1011France2026-07-14
1012India2026-08-02
1013Italy2026-07-10
1014Argentina2026-07-24
1015Canada2026-07-09
1016United Kingdom2026-07-15
1017Argentina2026-07-12
1018India2026-07-14
1019Germany2026-07-17
1020Germany2026-07-14
1021Spain2026-07-07
1022Canada2026-07-12
1023India2026-07-31
1024Argentina2026-07-31
1025India2026-07-06
1026Canada2026-07-05
1027India2026-07-29
1028France2026-07-26
1029Canada2026-07-24
1030Germany2026-07-13
1031Spain2026-07-27
1032Canada2026-07-16
1033Brazil2026-07-18
1034Australia2026-08-02
1035Brazil2026-07-26
1036Russia2026-07-30
1037France2026-07-10
1038Spain2026-08-02
1039United Kingdom2026-07-15
1040Argentina2026-07-19
1041United Kingdom2026-07-27
1042Italy2026-08-01
1043Spain2026-07-22
1044Argentina2026-07-09
1045Russia2026-07-07
1046Japan2026-07-10
1047France2026-07-15
1048United Kingdom2026-07-14
1049Japan2026-07-05

On-Demand Data

NameIdCountryDate
Antonio D Caldarera1000Russia2026-07-18
Deepesh A Vocelka1001Japan2026-07-27
Johnson H Schemmer1002United Kingdom2026-07-25
Adams H Whobrey1003France2026-07-31
Arvin S Oldroyd1004Brazil2026-07-13
Stacey Q Morasca1005United Kingdom2026-07-14
Jennifer H Whobrey1006Australia2026-07-30
Munro D Darakjy1007Japan2026-07-16
Silvio H Vocelka1008Japan2026-07-15
Munro F Shinko1009Australia2026-07-13
Julie N Garufi1010Spain2026-08-02
Claire O Whobrey1011Germany2026-07-23
Tony H Albares1012United Kingdom2026-07-15
Jeanfrancois E Figeroa1013India2026-07-22
Greenwood Z Garufi1014United Kingdom2026-07-26
Izzy N Nestle1015Germany2026-07-12
Darci D Stenseth1016Brazil2026-08-03
Emily W Figeroa1017United Kingdom2026-07-19
Ivar E Figeroa1018Japan2026-07-17
Julie P Tollner1019Russia2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria A NestleCanadaIoni Bowcher UNQUALIFIED
Jennifer D WieserArgentinaAnna Fali NEW
Ashley Z RimAustraliaXuxue Feng NEGOTIATION
Antonio G DarakjyUnited KingdomIvan Magalhaes NEW
Silvio I VocelkaCanadaIoni Bowcher RENEWAL
Greenwood Z SergiFranceAnna Fali RENEWAL
Costa R WhobreyIndiaBernardo Dominic NEW
Emily A GlickJapanAmy Elsner PROPOSAL
Leja I CampainJapanBernardo Dominic UNQUALIFIED
Clifford H MorascaItalyStephen Shaw QUALIFIED
Johnson P VenereGermanyXuxue Feng UNQUALIFIED
Greenwood U WieserAustraliaIoni Bowcher RENEWAL
Faith P MaletJapanIoni Bowcher NEW
Clifford B FollerCanadaBernardo Dominic QUALIFIED
Mujtaba F ShinkoCanadaAsiya Javayant NEW
Kaitlin C ShinkoAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois P PerinCanadaAnna Fali NEGOTIATION
Aruna S ShinkoIndiaOnyama Limba QUALIFIED
Ivar H StockhamArgentinaIvan Magalhaes RENEWAL
Alejandro G FollerUnited KingdomStephen Shaw NEGOTIATION
Leon J StensethAustraliaAsiya Javayant QUALIFIED
Julie P RoysterArgentinaStephen Shaw RENEWAL
Ivar F BriddickRussiaBernardo Dominic PROPOSAL
Kadeem K MaletIndiaAnna Fali RENEWAL
Jeanfrancois X DilliardSpainOnyama Limba NEGOTIATION
Julie R GillianRussiaIoni Bowcher QUALIFIED
Kaitlin I NickaFranceXuxue Feng NEGOTIATION
Ricardo I GarufiUnited KingdomAnna Fali NEGOTIATION
Octavia U StensethAustraliaOnyama Limba UNQUALIFIED
Ashley N InouyeArgentinaIvan Magalhaes NEW
Francesco P PerinSpainXuxue Feng NEGOTIATION
Mayumi T TollnerFranceAmy Elsner QUALIFIED
Salvatore A SlusarskiIndiaStephen Shaw RENEWAL
Darci E KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Johnson B KolmetzSpainAnna Fali NEGOTIATION
Salvatore G RimIndiaStephen Shaw UNQUALIFIED
Stacey X RulapaughJapanBernardo Dominic NEGOTIATION
Mayumi P WieserFranceStephen Shaw QUALIFIED
David Z OstroskyArgentinaAsiya Javayant QUALIFIED
Aruna U MaletArgentinaOnyama Limba PROPOSAL

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