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
Leja W OstroskySpainAnna Fali NEGOTIATION
Antonio J ShinkoRussiaAmy Elsner NEW
Smith T WhobreyFranceElwin Sharvill NEGOTIATION
Juan H BriddickUnited KingdomOnyama Limba UNQUALIFIED
Clifford U PerinBrazilAsiya Javayant NEGOTIATION
Kadeem R WaycottRussiaIvan Magalhaes PROPOSAL
Arvin T DilliardFranceElwin Sharvill RENEWAL
Juan F ButtArgentinaAsiya Javayant RENEWAL
Mujtaba Y IturbideUnited KingdomAnna Fali NEW
Ivar N SchemmerItalyElwin Sharvill PROPOSAL
Munro Y StensethJapanElwin Sharvill PROPOSAL
Ivar A AmigonArgentinaElwin Sharvill PROPOSAL
Izzy W OldroydCanadaIvan Magalhaes RENEWAL
Nicolas X SlusarskiFranceXuxue Feng PROPOSAL
Tony W WaycottArgentinaAnna Fali UNQUALIFIED
Francesco W PoquetteFranceBernardo Dominic UNQUALIFIED
Johnson G PoquetteBrazilAsiya Javayant QUALIFIED
Jones D DilliardSpainAnna Fali UNQUALIFIED
Antonio R WieserIndiaAnna Fali NEGOTIATION
Silvio B WhobreyItalyAmy Elsner RENEWAL
Aika O VocelkaItalyElwin Sharvill RENEWAL
Salvatore W MaletGermanyStephen Shaw UNQUALIFIED
Ivar L DoeCanadaAnna Fali UNQUALIFIED
Kaitlin D MaletRussiaIvan Magalhaes NEGOTIATION
Leon K MacleadJapanStephen Shaw NEW
Adams B WaycottArgentinaIoni Bowcher RENEWAL
Morrow L CampainBrazilIoni Bowcher NEGOTIATION
Rodrigues N BriddickBrazilXuxue Feng UNQUALIFIED
Morrow K GauchoGermanyElwin Sharvill PROPOSAL
Chavez U PoquetteIndiaOnyama Limba NEGOTIATION
Costa C RimJapanOnyama Limba UNQUALIFIED
Aditya C DoeArgentinaAsiya Javayant NEGOTIATION
Silvio J GlickJapanElwin Sharvill QUALIFIED
Francesco P StensethItalyOnyama Limba RENEWAL
Nicolas U FollerItalyXuxue Feng UNQUALIFIED
David O CampainSpainXuxue Feng NEW
Izzy M ChuiArgentinaStephen Shaw NEGOTIATION
Alejandro B RutaCanadaAnna Fali NEGOTIATION
Maria M AlbaresRussiaIoni Bowcher NEW
Misaki E RutaArgentinaElwin Sharvill RENEWAL
Faith R RimFranceIvan Magalhaes NEW
Costa R SaylorsIndiaBernardo Dominic NEW
Chavez K ChuiJapanAmy Elsner RENEWAL
Julie M SergiFranceIvan Magalhaes RENEWAL
Kaitlin S VenereIndiaAmy Elsner UNQUALIFIED
Cody P SlusarskiUnited KingdomElwin Sharvill NEW
Costa R CaldareraIndiaAmy Elsner RENEWAL
Johnson P GauchoGermanyIoni Bowcher RENEWAL
Munro G MaletIndiaIvan Magalhaes QUALIFIED
Alejandro X SlusarskiIndiaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer B PerinArgentinaAsiya Javayant RENEWAL
Leon J CaldareraFranceIvan Magalhaes UNQUALIFIED
Chavez W CaldareraBrazilXuxue Feng NEW
Munro M NestleCanadaElwin Sharvill UNQUALIFIED
Francesco O StensethItalyIoni Bowcher NEW
Leja H AmigonGermanyStephen Shaw QUALIFIED
Leja T KolmetzJapanIoni Bowcher UNQUALIFIED
Jeanfrancois H FlosiUnited KingdomElwin Sharvill NEGOTIATION
Silvio T SaylorsItalyOnyama Limba UNQUALIFIED
Murillo X MarrierBrazilStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams N MarrierBrazil2026-07-24Feiner Bros PROPOSAL24Elwin Sharvill
1001Leja U WhobreyArgentina2026-08-05Printing Dimensions NEGOTIATION2Xuxue Feng
1002Arvin J AlbaresIndia2026-07-24Benton, John B Jr RENEWAL94Anna Fali
1003James M MacleadIndia2026-07-29Chanay, Jeffrey A Esq NEW23Amy Elsner
1004Cody E AmigonIndia2026-08-02Feltz Printing Service NEGOTIATION20Bernardo Dominic
1005Jennifer K OldroydSpain2026-08-06Chapman, Ross E Esq RENEWAL40Anna Fali
1006Mujtaba T VenereItaly2026-08-14Benton, John B Jr NEW97Onyama Limba
1007Jeanfrancois G MacleadArgentina2026-08-11Benton, John B Jr UNQUALIFIED87Anna Fali
1008Cody V RoysterFrance2026-08-06King, Christopher A Esq RENEWAL23Ioni Bowcher
1009Stacey D BologniaItaly2026-08-13Truhlar And Truhlar Attys RENEWAL46Asiya Javayant
1010Faith Y GauchoFrance2026-07-24Morlong Associates NEGOTIATION8Bernardo Dominic
1011Leja H GlickArgentina2026-08-07Commercial Press RENEWAL89Elwin Sharvill
1012Misaki Q RoysterAustralia2026-07-22Chanay, Jeffrey A Esq PROPOSAL5Anna Fali
1013Francesco G OldroydSpain2026-08-01Feiner Bros NEGOTIATION92Stephen Shaw
1014Kaitlin M ButtAustralia2026-08-11Dorl, James J Esq PROPOSAL74Elwin Sharvill
1015Izzy H GauchoUnited Kingdom2026-08-10Rousseaux, Michael Esq RENEWAL54Elwin Sharvill
1016Aditya S ButtBrazil2026-07-30Morlong Associates NEGOTIATION49Elwin Sharvill
1017Jeanfrancois B ButtItaly2026-07-28Commercial Press UNQUALIFIED47Ivan Magalhaes
1018Mayumi U SlusarskiGermany2026-07-25Dorl, James J Esq QUALIFIED49Anna Fali
1019Adams J GauchoArgentina2026-08-18Chapman, Ross E Esq NEGOTIATION99Asiya Javayant
1020Greenwood G RulapaughIndia2026-08-16Benton, John B Jr QUALIFIED40Ioni Bowcher
1021Murillo Q ButtUnited Kingdom2026-07-28Chanay, Jeffrey A Esq NEGOTIATION66Anna Fali
1022Mayumi N VocelkaSpain2026-08-06Dorl, James J Esq QUALIFIED24Asiya Javayant
1023Murillo Y AlbaresIndia2026-08-14Chanay, Jeffrey A Esq PROPOSAL76Elwin Sharvill
1024Jones J GauchoJapan2026-07-30Morlong Associates UNQUALIFIED62Bernardo Dominic
1025Leja N WieserJapan2026-07-30Truhlar And Truhlar Attys RENEWAL63Amy Elsner
1026Alejandro T NickaArgentina2026-08-19Chanay, Jeffrey A Esq NEGOTIATION95Amy Elsner
1027Jefferson U GauchoBrazil2026-08-17Commercial Press NEW94Anna Fali
1028Nicolas H NickaArgentina2026-07-30Rangoni Of Florence NEW54Stephen Shaw
1029Kadeem R BowleyAustralia2026-08-11Feiner Bros PROPOSAL4Xuxue Feng
1030Morrow K BowleyAustralia2026-07-31Buckley Miller Wright NEGOTIATION78Onyama Limba
1031Octavia X RulapaughFrance2026-08-08Chemel, James L Cpa NEGOTIATION58Ivan Magalhaes
1032Aditya O AlbaresRussia2026-08-03Buckley Miller Wright NEW40Xuxue Feng
1033Stacey S ChuiBrazil2026-07-25Rangoni Of Florence UNQUALIFIED78Ivan Magalhaes
1034Francesco J BowleyCanada2026-08-10Chapman, Ross E Esq UNQUALIFIED8Ivan Magalhaes
1035Nicolas T SchemmerGermany2026-07-27Commercial Press QUALIFIED8Asiya Javayant
1036Smith E SaylorsGermany2026-07-25Rangoni Of Florence RENEWAL17Elwin Sharvill
1037Johnson J MaletGermany2026-08-10Rousseaux, Michael Esq PROPOSAL95Elwin Sharvill
1038Octavia K DarakjyItaly2026-08-02Chapman, Ross E Esq RENEWAL48Asiya Javayant
1039Alejandro X WaycottArgentina2026-08-03Commercial Press QUALIFIED26Amy Elsner
1040Misaki C MaletUnited Kingdom2026-07-30Truhlar And Truhlar Attys QUALIFIED18Bernardo Dominic
1041Darci Y ChuiBrazil2026-07-30Feltz Printing Service UNQUALIFIED78Ivan Magalhaes
1042Mujtaba G GlickItaly2026-08-10Chapman, Ross E Esq UNQUALIFIED91Ioni Bowcher
1043Mayumi K FigeroaFrance2026-07-27Chapman, Ross E Esq NEGOTIATION64Ioni Bowcher
1044Maria U KolmetzItaly2026-08-06Chanay, Jeffrey A Esq PROPOSAL34Bernardo Dominic
1045Clifford E MarrierBrazil2026-07-30Dorl, James J Esq QUALIFIED50Stephen Shaw
1046Nicolas K ChuiIndia2026-08-02Rangoni Of Florence PROPOSAL60Stephen Shaw
1047Antonio H StockhamJapan2026-07-21Benton, John B Jr PROPOSAL41Ioni Bowcher
1048Nicolas B IturbideJapan2026-08-11Chemel, James L Cpa RENEWAL25Stephen Shaw
1049Cody C RoysterBrazil2026-07-22Rangoni Of Florence PROPOSAL35Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Munro K MacleadGermanyStephen Shaw QUALIFIED
Aditya F VocelkaCanadaStephen Shaw QUALIFIED
Stacey T MaletIndiaIvan Magalhaes NEGOTIATION
Aditya U VenereFranceIoni Bowcher QUALIFIED
Rodrigues R NestleRussiaElwin Sharvill UNQUALIFIED
Jennifer Z GlickUnited KingdomAmy Elsner NEW
David B NickaBrazilOnyama Limba UNQUALIFIED
Darci I FollerAustraliaXuxue Feng PROPOSAL
Stacey C SlusarskiUnited KingdomStephen Shaw QUALIFIED
Arvin L PerinBrazilAsiya Javayant NEW
Darci M RulapaughFranceAnna Fali RENEWAL
Isabel Y FlosiItalyIoni Bowcher RENEWAL
Juan G MaletSpainAnna Fali UNQUALIFIED
Stacey G IturbideCanadaAnna Fali PROPOSAL
Clifford H SaylorsRussiaStephen Shaw PROPOSAL
Jeanfrancois M IturbideJapanOnyama Limba PROPOSAL
Jennifer G AmigonGermanyElwin Sharvill RENEWAL
David B RulapaughItalyAsiya Javayant NEGOTIATION
Costa T MarrierBrazilStephen Shaw NEW
Izzy K DarakjyJapanElwin Sharvill RENEWAL
Adams X CaldareraBrazilOnyama Limba PROPOSAL
Leon A DoeCanadaXuxue Feng RENEWAL
Munro G FollerRussiaElwin Sharvill QUALIFIED
Maisha K SaylorsAustraliaAsiya Javayant UNQUALIFIED
Kadeem N ShinkoItalyIoni Bowcher UNQUALIFIED
Ivar Z KuskoBrazilIoni Bowcher UNQUALIFIED
Antonio O DarakjySpainOnyama Limba QUALIFIED
Juan H MaletBrazilAsiya Javayant RENEWAL
Murillo F MacleadIndiaXuxue Feng RENEWAL
Costa O RulapaughGermanyElwin Sharvill PROPOSAL
Octavia E ShinkoRussiaAmy Elsner NEGOTIATION
Aika C AmigonArgentinaIoni Bowcher QUALIFIED
Salvatore S ShinkoCanadaXuxue Feng NEGOTIATION
David C TollnerUnited KingdomAsiya Javayant PROPOSAL
Juan P ButtBrazilIvan Magalhaes RENEWAL
Mujtaba Y FlosiUnited KingdomIoni Bowcher NEGOTIATION
Sinclair C ButtItalyBernardo Dominic PROPOSAL
Mujtaba Y MorascaJapanElwin Sharvill RENEWAL
Kaitlin R DarakjyUnited KingdomAmy Elsner NEGOTIATION
Jennifer B MaletRussiaIvan Magalhaes UNQUALIFIED
Sinclair O MorascaSpainAsiya Javayant NEGOTIATION
Nicolas R OldroydIndiaOnyama Limba NEGOTIATION
Ricardo S OstroskyFranceAnna Fali NEGOTIATION
Chavez V OstroskyGermanyAnna Fali UNQUALIFIED
Salvatore P KuskoIndiaAsiya Javayant RENEWAL
Leja O MaletItalyAsiya Javayant UNQUALIFIED
Chavez H StockhamItalyElwin Sharvill PROPOSAL
Isabel A RimRussiaAmy Elsner PROPOSAL
Kaitlin X VenereItalyIvan Magalhaes QUALIFIED
Isabel F ChuiBrazilOnyama Limba QUALIFIED
Frozen Columns
Name
Emily F Inouye
Faith T Inouye
Jeanfrancois N Doe
Maisha V Malet
Murillo V Ostrosky
Antonio V Albares
Faith O Venere
Francesco E Wieser
Octavia Y Campain
Maisha G Schemmer
Aruna J Stenseth
Francesco X Gaucho
Jennifer N Amigon
Faith Z Sergi
James W Malet
Ricardo W Kolmetz
Aika P Saylors
Johnson H Malet
Johnson P Stockham
Misaki S Royster
James H Bolognia
Aruna V Caldarera
Leja G Stenseth
Maisha L Schemmer
James J Wieser
Mujtaba X Bowley
Aruna P Paprocki
Misaki W Iturbide
Tony C Briddick
Tony Q Chui
Deepesh D Waycott
Isabel S Vocelka
Johnson O Gaucho
Chavez D Nestle
Jones Q Tollner
Izzy K Rim
Aruna N Tollner
Nicolas S Vocelka
Ivar A Darakjy
Murillo Q Saylors
Greenwood J Maclead
Octavia V Inouye
Julie N Albares
Leja W Stenseth
Leja X Figeroa
Isabel B Butt
Murillo A Campain
Darci F Slusarski
Clifford Y Kusko
Morrow Q Malet
IdCountryDate
1000Argentina2026-07-24
1001France2026-07-24
1002Italy2026-07-31
1003Japan2026-08-19
1004Russia2026-07-25
1005Argentina2026-07-31
1006United Kingdom2026-08-14
1007France2026-08-15
1008Russia2026-08-16
1009United Kingdom2026-08-08
1010Canada2026-07-29
1011Spain2026-07-26
1012India2026-08-02
1013India2026-07-22
1014Australia2026-08-10
1015France2026-08-09
1016Italy2026-08-10
1017Russia2026-08-15
1018Australia2026-07-27
1019Italy2026-07-28
1020Japan2026-08-05
1021Japan2026-07-22
1022France2026-08-15
1023United Kingdom2026-08-01
1024Russia2026-08-11
1025Italy2026-07-29
1026India2026-07-26
1027Canada2026-07-23
1028Spain2026-07-28
1029Australia2026-08-09
1030Argentina2026-08-08
1031Russia2026-08-13
1032Germany2026-08-09
1033India2026-08-07
1034Germany2026-07-28
1035Argentina2026-07-25
1036Germany2026-07-22
1037India2026-07-27
1038Canada2026-08-18
1039Brazil2026-08-01
1040Italy2026-07-31
1041Australia2026-08-05
1042United Kingdom2026-08-08
1043Russia2026-08-11
1044United Kingdom2026-07-22
1045Argentina2026-07-23
1046Argentina2026-08-06
1047Spain2026-07-28
1048Australia2026-07-24
1049Canada2026-07-22

On-Demand Data

NameIdCountryDate
Salvatore I Dilliard1000Spain2026-07-27
Cody C Saylors1001India2026-08-17
Misaki B Malet1002Japan2026-07-26
Ashley R Gaucho1003Germany2026-07-30
Kadeem R Flosi1004Japan2026-08-15
Kaitlin W Poquette1005Argentina2026-07-30
Darci Z Royster1006Japan2026-08-09
Chavez T Nestle1007Russia2026-07-21
Adams W Oldroyd1008Argentina2026-08-15
Leon Z Tollner1009Japan2026-07-22
Aruna K Briddick1010Italy2026-07-28
Smith Z Garufi1011Italy2026-08-14
Leja H Schemmer1012India2026-08-07
Johnson K Garufi1013Russia2026-08-12
Kaitlin Y Stenseth1014France2026-07-26
Alejandro M Schemmer1015Canada2026-07-21
Greenwood Q Paprocki1016Argentina2026-07-28
Emily F Rim1017Brazil2026-08-02
Smith D Vocelka1018Argentina2026-07-25
Antonio M Briddick1019Italy2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily G FollerBrazilIoni Bowcher NEW
Arvin O DarakjyFranceStephen Shaw RENEWAL
Aditya B PoquetteCanadaXuxue Feng PROPOSAL
Emily Y FlosiRussiaIvan Magalhaes QUALIFIED
Maria O SlusarskiAustraliaStephen Shaw QUALIFIED
Munro L GlickGermanyIvan Magalhaes RENEWAL
Jefferson T FerenczGermanyIvan Magalhaes UNQUALIFIED
Ricardo S CaldareraBrazilIvan Magalhaes PROPOSAL
Emily H GauchoJapanElwin Sharvill QUALIFIED
Sinclair W FollerFranceIvan Magalhaes NEW
Adams D DilliardItalyAsiya Javayant RENEWAL
Antonio G RoysterSpainIoni Bowcher NEGOTIATION
Adams C SchemmerAustraliaIoni Bowcher NEGOTIATION
Silvio A WhobreyArgentinaXuxue Feng NEGOTIATION
Jefferson K FollerSpainAsiya Javayant NEGOTIATION
Antonio C SchemmerSpainIoni Bowcher UNQUALIFIED
Arvin W RimArgentinaIoni Bowcher PROPOSAL
Sinclair W GlickUnited KingdomIoni Bowcher NEGOTIATION
Julie L InouyeSpainXuxue Feng UNQUALIFIED
Faith A GauchoGermanyAmy Elsner RENEWAL
Greenwood R GarufiGermanyAsiya Javayant PROPOSAL
Costa C SaylorsJapanXuxue Feng RENEWAL
Octavia Z NestleUnited KingdomOnyama Limba PROPOSAL
Kaitlin D DilliardUnited KingdomBernardo Dominic QUALIFIED
Jefferson P BowleyBrazilAsiya Javayant QUALIFIED
Adams F AmigonIndiaStephen Shaw NEGOTIATION
Darci M WhobreyJapanXuxue Feng NEGOTIATION
Misaki W RimCanadaStephen Shaw NEGOTIATION
Ricardo Y FerenczAustraliaAmy Elsner QUALIFIED
Izzy H RulapaughUnited KingdomBernardo Dominic QUALIFIED
Kadeem C PaprockiFranceStephen Shaw QUALIFIED
Nicolas W MaletUnited KingdomAmy Elsner PROPOSAL
Mujtaba W CaudyGermanyBernardo Dominic RENEWAL
Leon S CaldareraUnited KingdomStephen Shaw NEW
Misaki G SchemmerArgentinaIoni Bowcher PROPOSAL
Aditya Q SchemmerSpainOnyama Limba NEGOTIATION
Stacey N FerenczGermanyElwin Sharvill RENEWAL
Aditya M PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Ivar B MacleadAustraliaAsiya Javayant NEW
Juan W BologniaCanadaAnna Fali RENEWAL

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