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
Salvatore X KolmetzAustraliaStephen Shaw NEGOTIATION
Adams C FigeroaFranceAnna Fali QUALIFIED
Salvatore X BriddickJapanAnna Fali QUALIFIED
Octavia M ShinkoBrazilAnna Fali UNQUALIFIED
Maria B MaletAustraliaElwin Sharvill RENEWAL
Cody X PoquetteGermanyXuxue Feng PROPOSAL
Aruna T SchemmerUnited KingdomIoni Bowcher QUALIFIED
Maria K GlickBrazilStephen Shaw UNQUALIFIED
Faith V KuskoSpainAsiya Javayant RENEWAL
Jefferson P CaudyAustraliaOnyama Limba QUALIFIED
Maria M CaldareraIndiaAnna Fali NEW
Clifford I RoysterItalyIvan Magalhaes QUALIFIED
Adams B BologniaIndiaOnyama Limba UNQUALIFIED
Misaki Z NestleItalyXuxue Feng PROPOSAL
Emily G InouyeItalyAnna Fali PROPOSAL
Aditya A KolmetzCanadaXuxue Feng NEGOTIATION
Nicolas L CaldareraIndiaElwin Sharvill NEW
Darci M BowleyIndiaStephen Shaw RENEWAL
Deepesh V PoquetteFranceOnyama Limba UNQUALIFIED
Jefferson U DoeGermanyAsiya Javayant NEGOTIATION
Izzy I SchemmerGermanyOnyama Limba PROPOSAL
James Q AlbaresCanadaBernardo Dominic PROPOSAL
Jeanfrancois M VocelkaArgentinaOnyama Limba QUALIFIED
Rodrigues P FerenczRussiaAsiya Javayant UNQUALIFIED
Deepesh F PoquetteRussiaIvan Magalhaes QUALIFIED
Maisha V NickaUnited KingdomBernardo Dominic PROPOSAL
Francesco Z GlickSpainIoni Bowcher UNQUALIFIED
Mujtaba M DarakjyUnited KingdomIoni Bowcher QUALIFIED
Clifford R OstroskySpainStephen Shaw NEGOTIATION
Alejandro F StensethCanadaBernardo Dominic PROPOSAL
Clifford L MaletFranceOnyama Limba QUALIFIED
Kaitlin Q BologniaSpainBernardo Dominic QUALIFIED
Sinclair U SaylorsArgentinaElwin Sharvill NEGOTIATION
Nicolas F BriddickAustraliaOnyama Limba UNQUALIFIED
Costa P KolmetzJapanBernardo Dominic PROPOSAL
Arvin O AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Cody U WaycottArgentinaXuxue Feng RENEWAL
Ricardo J PerinJapanOnyama Limba PROPOSAL
Chavez Z MarrierJapanBernardo Dominic RENEWAL
Francesco P ShinkoSpainXuxue Feng NEGOTIATION
Izzy D BriddickFranceElwin Sharvill PROPOSAL
Stacey G MaletArgentinaElwin Sharvill NEW
Kaitlin E MacleadIndiaXuxue Feng UNQUALIFIED
Misaki N CaldareraArgentinaXuxue Feng PROPOSAL
Leon E MaletJapanXuxue Feng UNQUALIFIED
Jeanfrancois I GillianJapanIvan Magalhaes RENEWAL
Leon F RimSpainStephen Shaw NEGOTIATION
Deepesh N SchemmerFranceStephen Shaw QUALIFIED
Octavia X DarakjyJapanAmy Elsner QUALIFIED
Emily E CaudyGermanyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan W VenereCanadaXuxue Feng NEW
Emily O ShinkoArgentinaBernardo Dominic QUALIFIED
Misaki N SaylorsIndiaAsiya Javayant NEW
Costa F StockhamJapanIvan Magalhaes RENEWAL
Deepesh I OstroskyGermanyIvan Magalhaes PROPOSAL
Clifford I PoquetteGermanyXuxue Feng QUALIFIED
Aruna F AmigonRussiaAnna Fali RENEWAL
Tony G OldroydAustraliaStephen Shaw UNQUALIFIED
Rodrigues W IturbideUnited KingdomOnyama Limba QUALIFIED
Morrow I FollerSpainElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan L StensethArgentina2026-07-22Chanay, Jeffrey A Esq NEW23Ioni Bowcher
1001Deepesh J ChuiSpain2026-08-04Feiner Bros QUALIFIED29Ioni Bowcher
1002Cody N VocelkaCanada2026-08-03Chemel, James L Cpa QUALIFIED85Ivan Magalhaes
1003Izzy Y TollnerBrazil2026-08-17King, Christopher A Esq NEGOTIATION50Bernardo Dominic
1004Darci Z BowleyJapan2026-07-26Feiner Bros NEW71Anna Fali
1005Izzy U InouyeCanada2026-08-18King, Christopher A Esq NEGOTIATION4Anna Fali
1006Jeanfrancois T FigeroaIndia2026-08-11Chanay, Jeffrey A Esq PROPOSAL49Bernardo Dominic
1007Leon N NestleBrazil2026-07-30Dorl, James J Esq UNQUALIFIED50Asiya Javayant
1008Murillo C VocelkaJapan2026-08-08Rousseaux, Michael Esq UNQUALIFIED83Ivan Magalhaes
1009Mujtaba Z AlbaresArgentina2026-08-19Truhlar And Truhlar Attys NEGOTIATION30Bernardo Dominic
1010Isabel Q StensethAustralia2026-08-07Commercial Press NEW88Amy Elsner
1011Rodrigues Z ButtUnited Kingdom2026-07-24Commercial Press RENEWAL36Elwin Sharvill
1012Aika Z KolmetzGermany2026-08-19King, Christopher A Esq PROPOSAL19Asiya Javayant
1013Aditya W DarakjyFrance2026-07-21Dorl, James J Esq UNQUALIFIED36Elwin Sharvill
1014Salvatore I GlickItaly2026-08-15Chanay, Jeffrey A Esq NEGOTIATION34Amy Elsner
1015Jennifer B WieserJapan2026-08-05Rangoni Of Florence NEW58Ioni Bowcher
1016Ivar W InouyeGermany2026-07-28Feiner Bros NEGOTIATION85Bernardo Dominic
1017Octavia H TollnerGermany2026-08-02Dorl, James J Esq NEW29Elwin Sharvill
1018Wickens Y ChuiFrance2026-07-29Chanay, Jeffrey A Esq NEW75Asiya Javayant
1019Juan Q VenereRussia2026-07-21Feiner Bros RENEWAL8Anna Fali
1020Faith X DilliardUnited Kingdom2026-07-23King, Christopher A Esq PROPOSAL79Bernardo Dominic
1021Claire S InouyeSpain2026-08-05Chemel, James L Cpa UNQUALIFIED25Onyama Limba
1022Jeanfrancois P KuskoUnited Kingdom2026-07-31Morlong Associates UNQUALIFIED26Elwin Sharvill
1023Julie C MaletRussia2026-08-01Buckley Miller Wright RENEWAL99Onyama Limba
1024Maria A MaletFrance2026-08-14Chemel, James L Cpa PROPOSAL62Ivan Magalhaes
1025Munro P PerinUnited Kingdom2026-07-29Commercial Press NEW43Ivan Magalhaes
1026Francesco G VocelkaItaly2026-07-26Rangoni Of Florence RENEWAL99Stephen Shaw
1027Chavez J GauchoSpain2026-07-22Chanay, Jeffrey A Esq QUALIFIED21Bernardo Dominic
1028Mayumi X ButtJapan2026-07-22Chapman, Ross E Esq RENEWAL13Asiya Javayant
1029Juan X SaylorsFrance2026-08-07King, Christopher A Esq UNQUALIFIED59Amy Elsner
1030Misaki P SergiIndia2026-08-08Feiner Bros NEGOTIATION76Stephen Shaw
1031Faith N FlosiFrance2026-08-08Morlong Associates PROPOSAL85Asiya Javayant
1032Jefferson R ChuiArgentina2026-07-26Feiner Bros UNQUALIFIED35Anna Fali
1033Rodrigues R BowleyRussia2026-07-24Dorl, James J Esq PROPOSAL65Ivan Magalhaes
1034Murillo D RoysterCanada2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED44Elwin Sharvill
1035Cody Z DarakjyRussia2026-08-16Chanay, Jeffrey A Esq QUALIFIED15Asiya Javayant
1036Johnson Y CampainRussia2026-07-28Chemel, James L Cpa NEW41Asiya Javayant
1037Julie Q GauchoIndia2026-08-14Truhlar And Truhlar Attys QUALIFIED59Onyama Limba
1038Emily W TollnerItaly2026-08-07Rousseaux, Michael Esq NEW29Onyama Limba
1039Maisha S InouyeSpain2026-07-22Feiner Bros NEGOTIATION7Anna Fali
1040Clifford R GauchoCanada2026-08-03Commercial Press QUALIFIED50Elwin Sharvill
1041Aika R DarakjyGermany2026-07-27Chapman, Ross E Esq QUALIFIED88Ivan Magalhaes
1042Leja B FerenczFrance2026-07-24Chanay, Jeffrey A Esq PROPOSAL49Anna Fali
1043Izzy S TollnerJapan2026-08-11Chemel, James L Cpa RENEWAL17Stephen Shaw
1044Deepesh K DarakjyGermany2026-08-18Rousseaux, Michael Esq UNQUALIFIED82Asiya Javayant
1045Antonio K VenereSpain2026-08-05King, Christopher A Esq NEW14Stephen Shaw
1046Arvin J StockhamUnited Kingdom2026-08-17King, Christopher A Esq NEW81Elwin Sharvill
1047Kadeem K MorascaRussia2026-08-06Chanay, Jeffrey A Esq QUALIFIED0Xuxue Feng
1048Salvatore J WhobreyIndia2026-08-03Benton, John B Jr UNQUALIFIED1Elwin Sharvill
1049Morrow D FlosiJapan2026-08-06Rousseaux, Michael Esq UNQUALIFIED6Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Smith H FollerIndiaElwin Sharvill UNQUALIFIED
Antonio M SaylorsGermanyBernardo Dominic PROPOSAL
Ivar S PaprockiSpainOnyama Limba NEGOTIATION
Jennifer Z WaycottJapanElwin Sharvill UNQUALIFIED
Jeanfrancois K OldroydAustraliaBernardo Dominic UNQUALIFIED
Mayumi O GauchoArgentinaBernardo Dominic PROPOSAL
Francesco G ShinkoFranceOnyama Limba NEW
Costa V TollnerJapanIoni Bowcher NEGOTIATION
Kadeem O NickaItalyOnyama Limba RENEWAL
Faith B AmigonCanadaElwin Sharvill PROPOSAL
Smith Q StockhamBrazilElwin Sharvill NEW
Ricardo R NickaAustraliaIvan Magalhaes NEW
Maria P RoysterCanadaStephen Shaw RENEWAL
Ivar H RulapaughIndiaStephen Shaw NEGOTIATION
Leon Z ChuiArgentinaStephen Shaw NEW
Leon Y DilliardArgentinaBernardo Dominic QUALIFIED
Jefferson P RoysterUnited KingdomAmy Elsner NEW
Stacey J AlbaresItalyElwin Sharvill PROPOSAL
Tony C MorascaRussiaAnna Fali PROPOSAL
Julie O OldroydFranceAnna Fali PROPOSAL
Salvatore D WieserSpainIvan Magalhaes NEW
Juan U RimFranceIvan Magalhaes NEGOTIATION
Aika H FlosiIndiaIvan Magalhaes QUALIFIED
Emily L SergiAustraliaIvan Magalhaes PROPOSAL
Morrow M MorascaIndiaIoni Bowcher NEW
Clifford X FigeroaSpainIoni Bowcher PROPOSAL
Tony R FlosiFranceAmy Elsner RENEWAL
Kadeem B RoysterGermanyIoni Bowcher QUALIFIED
Isabel O PaprockiAustraliaIoni Bowcher NEW
Wickens E NestleCanadaAnna Fali PROPOSAL
Kaitlin A WieserJapanStephen Shaw NEGOTIATION
Jones U FlosiAustraliaAmy Elsner QUALIFIED
Johnson Z KuskoRussiaBernardo Dominic NEGOTIATION
Kaitlin I SergiJapanIvan Magalhaes UNQUALIFIED
Antonio X FigeroaAustraliaIoni Bowcher PROPOSAL
Adams P FlosiFranceAnna Fali NEGOTIATION
Claire Y RoysterCanadaAmy Elsner QUALIFIED
Emily O KolmetzItalyAnna Fali NEGOTIATION
Alejandro G WieserFranceOnyama Limba UNQUALIFIED
Mujtaba U RoysterSpainElwin Sharvill NEW
Aditya O GarufiAustraliaStephen Shaw RENEWAL
Aditya O GarufiIndiaXuxue Feng PROPOSAL
Kadeem B ShinkoArgentinaOnyama Limba QUALIFIED
Cody Z FlosiFranceStephen Shaw NEW
Faith U IturbideJapanBernardo Dominic RENEWAL
Francesco D WhobreyArgentinaElwin Sharvill RENEWAL
Sinclair U PerinItalyOnyama Limba UNQUALIFIED
Wickens C MarrierBrazilBernardo Dominic NEGOTIATION
Isabel X PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Izzy V PerinJapanOnyama Limba QUALIFIED
Frozen Columns
Name
Antonio C Wieser
Wickens G Saylors
Mujtaba I Iturbide
Aditya J Nicka
Clifford Q Flosi
Morrow K Schemmer
Munro Y Glick
Tony I Wieser
Greenwood Y Venere
Antonio J Ferencz
Aruna R Dilliard
Maria F Sergi
Emily H Royster
Cody O Stenseth
Rodrigues E Malet
Jennifer Z Vocelka
Adams B Briddick
Jeanfrancois W Kusko
Francesco B Butt
Darci P Perin
Silvio Q Glick
David Y Campain
Francesco V Shinko
Nicolas E Albares
Alejandro V Caldarera
Salvatore Z Venere
Izzy P Marrier
Antonio D Caldarera
Sinclair D Saylors
Ricardo D Rulapaugh
Ricardo B Vocelka
Jefferson T Caudy
Murillo Y Slusarski
Aruna F Albares
Faith H Amigon
Sinclair X Ostrosky
Rodrigues H Kolmetz
Claire D Bolognia
Johnson P Maclead
Clifford K Foller
Jennifer Z Caudy
Nicolas F Iturbide
Leja L Perin
Adams M Shinko
Costa W Schemmer
Greenwood Q Nestle
Juan H Campain
Clifford V Gaucho
Deepesh M Shinko
Kaitlin H Butt
IdCountryDate
1000France2026-08-18
1001India2026-07-22
1002Brazil2026-08-18
1003Australia2026-08-11
1004Brazil2026-07-26
1005Australia2026-07-31
1006Australia2026-08-01
1007Canada2026-08-16
1008France2026-08-10
1009France2026-08-16
1010Spain2026-07-26
1011Japan2026-08-12
1012Germany2026-08-13
1013Russia2026-07-29
1014Canada2026-08-09
1015Russia2026-08-13
1016Spain2026-08-09
1017Russia2026-08-05
1018Italy2026-07-29
1019France2026-08-15
1020Russia2026-08-06
1021Italy2026-08-19
1022France2026-07-27
1023Australia2026-07-31
1024Japan2026-07-24
1025Japan2026-07-31
1026France2026-07-23
1027United Kingdom2026-07-23
1028Australia2026-08-02
1029India2026-08-11
1030Japan2026-08-05
1031United Kingdom2026-08-08
1032Brazil2026-07-31
1033Japan2026-07-28
1034Japan2026-08-05
1035Brazil2026-07-29
1036Italy2026-07-24
1037Australia2026-08-08
1038Germany2026-08-09
1039Japan2026-07-27
1040Japan2026-07-28
1041Spain2026-08-12
1042Spain2026-07-26
1043Russia2026-07-30
1044Germany2026-07-28
1045Japan2026-08-03
1046Australia2026-07-24
1047Spain2026-07-29
1048Spain2026-08-08
1049Australia2026-08-04

On-Demand Data

NameIdCountryDate
Deepesh L Iturbide1000India2026-08-17
Alejandro J Shinko1001Russia2026-07-25
Morrow Y Dilliard1002Canada2026-08-19
Stacey K Venere1003Australia2026-08-04
Murillo M Doe1004Japan2026-08-05
Jeanfrancois G Stenseth1005Australia2026-08-14
Wickens Y Ferencz1006Japan2026-07-29
Nicolas W Caudy1007France2026-07-30
Arvin M Foller1008Japan2026-08-13
Murillo Q Waycott1009Brazil2026-07-28
Adams C Bolognia1010Russia2026-08-05
Jeanfrancois B Sergi1011Australia2026-08-11
Greenwood F Dilliard1012Australia2026-08-15
Arvin R Waycott1013Brazil2026-08-13
Arvin D Oldroyd1014Australia2026-08-02
Leon T Poquette1015United Kingdom2026-08-14
Ivar J Maclead1016France2026-08-03
Clifford L Saylors1017India2026-08-18
Misaki O Shinko1018Brazil2026-08-16
Mayumi O Darakjy1019Australia2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford G StensethArgentinaElwin Sharvill QUALIFIED
Chavez A MarrierRussiaAsiya Javayant NEGOTIATION
Alejandro W KolmetzBrazilIvan Magalhaes QUALIFIED
Arvin O AlbaresFranceIoni Bowcher RENEWAL
Cody D GillianSpainElwin Sharvill PROPOSAL
Murillo P GillianBrazilAsiya Javayant NEW
Claire U InouyeSpainIoni Bowcher PROPOSAL
Stacey N RoysterArgentinaAsiya Javayant RENEWAL
Mayumi C SergiFranceIoni Bowcher NEGOTIATION
David U RimAustraliaIvan Magalhaes NEW
Deepesh O MaletArgentinaIoni Bowcher QUALIFIED
Darci W MaletRussiaOnyama Limba QUALIFIED
Juan I NestleAustraliaAnna Fali QUALIFIED
Tony F SaylorsCanadaIoni Bowcher PROPOSAL
Jeanfrancois K GillianFranceElwin Sharvill NEGOTIATION
Maria W BowleyCanadaXuxue Feng QUALIFIED
Aika I RoysterRussiaAmy Elsner PROPOSAL
Claire W NestleSpainOnyama Limba RENEWAL
Munro L OstroskySpainAsiya Javayant UNQUALIFIED
Stacey L StockhamSpainAmy Elsner UNQUALIFIED
Chavez Q KuskoIndiaOnyama Limba RENEWAL
Izzy S KolmetzUnited KingdomStephen Shaw RENEWAL
Wickens F ChuiCanadaOnyama Limba NEGOTIATION
Izzy U MorascaUnited KingdomIoni Bowcher PROPOSAL
Nicolas H AmigonRussiaAsiya Javayant QUALIFIED
Mujtaba X DarakjySpainAnna Fali NEGOTIATION
Clifford L OstroskyJapanXuxue Feng RENEWAL
Cody K SlusarskiSpainStephen Shaw NEGOTIATION
Ashley M SchemmerFranceXuxue Feng PROPOSAL
Deepesh A RimRussiaIvan Magalhaes PROPOSAL
Ashley G MacleadSpainElwin Sharvill UNQUALIFIED
James L KolmetzBrazilOnyama Limba UNQUALIFIED
Julie X CaldareraArgentinaStephen Shaw NEW
James D MaletItalyXuxue Feng NEGOTIATION
Deepesh W ShinkoCanadaBernardo Dominic RENEWAL
Maisha F RoysterItalyAmy Elsner QUALIFIED
Costa T RulapaughRussiaBernardo Dominic UNQUALIFIED
Adams F StockhamUnited KingdomIvan Magalhaes RENEWAL
Jeanfrancois J CaudyFranceElwin Sharvill NEGOTIATION
Johnson Z RimUnited KingdomIvan Magalhaes 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>