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
Tony Z OstroskyFranceXuxue Feng PROPOSAL
Murillo S OldroydItalyOnyama Limba UNQUALIFIED
Ashley V InouyeSpainIvan Magalhaes NEW
Deepesh K SaylorsGermanyAsiya Javayant NEW
Costa R MacleadFranceAnna Fali UNQUALIFIED
Leon C StensethItalyXuxue Feng NEGOTIATION
Kaitlin M PoquetteAustraliaAsiya Javayant RENEWAL
Murillo X MacleadArgentinaIoni Bowcher QUALIFIED
Maria U VocelkaFranceAmy Elsner QUALIFIED
Jeanfrancois D KuskoItalyElwin Sharvill RENEWAL
Greenwood Q WieserFranceStephen Shaw NEW
Wickens H CaudyGermanyElwin Sharvill NEW
Nicolas V IturbideJapanStephen Shaw NEW
Arvin J StensethFranceXuxue Feng NEGOTIATION
Tony V ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Silvio R MarrierGermanyIoni Bowcher RENEWAL
Faith N BowleyIndiaIoni Bowcher RENEWAL
Nicolas F MorascaJapanBernardo Dominic NEW
Murillo V NestleAustraliaBernardo Dominic PROPOSAL
Tony W FlosiSpainAmy Elsner NEGOTIATION
Sinclair P MacleadUnited KingdomIvan Magalhaes NEW
Adams X BriddickBrazilStephen Shaw NEGOTIATION
Chavez L VenereUnited KingdomBernardo Dominic RENEWAL
Tony Z PerinIndiaStephen Shaw RENEWAL
Octavia F GauchoSpainIvan Magalhaes QUALIFIED
Greenwood J FigeroaRussiaElwin Sharvill QUALIFIED
Greenwood D CampainRussiaAsiya Javayant PROPOSAL
Deepesh F PaprockiUnited KingdomBernardo Dominic QUALIFIED
Kadeem K RimAustraliaIoni Bowcher NEW
Cody S OldroydCanadaAmy Elsner QUALIFIED
Sinclair H WhobreyItalyAmy Elsner UNQUALIFIED
Mayumi K OstroskyJapanElwin Sharvill NEGOTIATION
Ivar B GillianFranceAsiya Javayant QUALIFIED
Francesco C ChuiSpainStephen Shaw NEW
Murillo A FlosiRussiaOnyama Limba QUALIFIED
Nicolas V GauchoIndiaStephen Shaw PROPOSAL
Jefferson N InouyeJapanAnna Fali UNQUALIFIED
Jeanfrancois T FollerUnited KingdomStephen Shaw RENEWAL
Adams Z ChuiArgentinaElwin Sharvill QUALIFIED
David I VenereGermanyOnyama Limba NEGOTIATION
Sinclair K BowleyRussiaIoni Bowcher NEGOTIATION
Francesco X BologniaJapanBernardo Dominic NEW
James F FigeroaRussiaAmy Elsner NEGOTIATION
Leja S BowleyCanadaIoni Bowcher NEW
Ricardo F KuskoFranceIvan Magalhaes RENEWAL
Jefferson D FigeroaAustraliaAsiya Javayant NEGOTIATION
Jones C FigeroaUnited KingdomAsiya Javayant NEW
Tony Z NestleIndiaAnna Fali NEW
Faith E VocelkaGermanyOnyama Limba PROPOSAL
Aika T ShinkoIndiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James D SaylorsRussiaAnna Fali QUALIFIED
Antonio H MaletAustraliaOnyama Limba PROPOSAL
Sinclair P RoysterJapanAnna Fali NEGOTIATION
Antonio Y SlusarskiRussiaOnyama Limba PROPOSAL
Rodrigues X FerenczArgentinaIvan Magalhaes UNQUALIFIED
Cody Q WieserGermanyAmy Elsner QUALIFIED
Maria I IturbideBrazilElwin Sharvill NEGOTIATION
Chavez N FlosiUnited KingdomStephen Shaw UNQUALIFIED
Nicolas S WhobreyItalyBernardo Dominic QUALIFIED
Maisha A GarufiFranceOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo L MaletUnited Kingdom2024-06-13Buckley Miller Wright NEW44Xuxue Feng
1001Silvio H WhobreyGermany2024-06-10Morlong Associates RENEWAL90Anna Fali
1002Sinclair L OldroydSpain2024-05-28Commercial Press PROPOSAL33Amy Elsner
1003Octavia D RulapaughAustralia2024-05-26Commercial Press RENEWAL93Bernardo Dominic
1004Octavia B MaletBrazil2024-06-24Chanay, Jeffrey A Esq UNQUALIFIED29Anna Fali
1005Clifford G SergiUnited Kingdom2024-06-07Chemel, James L Cpa QUALIFIED11Ioni Bowcher
1006Kadeem M CaldareraRussia2024-06-01Commercial Press NEW30Anna Fali
1007Octavia H BowleyGermany2024-06-16Feiner Bros RENEWAL33Onyama Limba
1008Nicolas M TollnerArgentina2024-05-30Morlong Associates NEGOTIATION20Bernardo Dominic
1009Nicolas O DarakjyRussia2024-05-29Printing Dimensions PROPOSAL19Asiya Javayant
1010Francesco P VocelkaBrazil2024-06-13Rangoni Of Florence PROPOSAL87Onyama Limba
1011Murillo I IturbideIndia2024-06-11Feiner Bros UNQUALIFIED24Amy Elsner
1012David N CaldareraFrance2024-06-03Morlong Associates RENEWAL40Asiya Javayant
1013Francesco G KolmetzRussia2024-06-20Truhlar And Truhlar Attys RENEWAL54Bernardo Dominic
1014Morrow K OldroydArgentina2024-06-17Buckley Miller Wright QUALIFIED22Ioni Bowcher
1015Ashley K PoquetteAustralia2024-06-24Chapman, Ross E Esq PROPOSAL39Ioni Bowcher
1016Ivar K NestleGermany2024-06-01Truhlar And Truhlar Attys RENEWAL20Elwin Sharvill
1017Salvatore Y SchemmerBrazil2024-06-04Feiner Bros NEW77Amy Elsner
1018Jones A FlosiGermany2024-06-09Rangoni Of Florence UNQUALIFIED50Ivan Magalhaes
1019Tony W ShinkoUnited Kingdom2024-06-04Truhlar And Truhlar Attys NEW69Asiya Javayant
1020Clifford X SaylorsBrazil2024-06-03Benton, John B Jr NEGOTIATION22Xuxue Feng
1021Jennifer A MorascaRussia2024-06-21Commercial Press QUALIFIED7Bernardo Dominic
1022Ricardo H MaletFrance2024-06-17Commercial Press PROPOSAL72Anna Fali
1023Johnson L GillianArgentina2024-06-01Morlong Associates PROPOSAL61Asiya Javayant
1024Faith S CaudyUnited Kingdom2024-06-12Rousseaux, Michael Esq RENEWAL89Bernardo Dominic
1025Salvatore P KuskoBrazil2024-06-14Truhlar And Truhlar Attys PROPOSAL45Anna Fali
1026Smith S StensethAustralia2024-06-11Dorl, James J Esq NEGOTIATION97Stephen Shaw
1027Nicolas T MaletFrance2024-06-17Chanay, Jeffrey A Esq QUALIFIED2Ivan Magalhaes
1028Jeanfrancois X SlusarskiSpain2024-06-06Feltz Printing Service RENEWAL79Stephen Shaw
1029Clifford E OldroydJapan2024-06-12Chapman, Ross E Esq RENEWAL80Amy Elsner
1030Chavez X RutaItaly2024-06-05Rangoni Of Florence NEW50Asiya Javayant
1031Aika W WaycottFrance2024-06-17Rangoni Of Florence NEGOTIATION79Asiya Javayant
1032Nicolas F GillianItaly2024-06-19Chemel, James L Cpa NEGOTIATION30Stephen Shaw
1033Cody J GlickAustralia2024-06-06Rousseaux, Michael Esq NEGOTIATION59Elwin Sharvill
1034Misaki X VocelkaFrance2024-06-09Truhlar And Truhlar Attys UNQUALIFIED84Xuxue Feng
1035Chavez H VocelkaItaly2024-06-11Chemel, James L Cpa QUALIFIED16Xuxue Feng
1036Chavez V ButtIndia2024-06-06Truhlar And Truhlar Attys NEW83Onyama Limba
1037James Y StensethFrance2024-06-14Truhlar And Truhlar Attys NEGOTIATION60Ivan Magalhaes
1038Antonio C DilliardArgentina2024-06-13Feltz Printing Service QUALIFIED82Ivan Magalhaes
1039Leja F MarrierIndia2024-05-31Chapman, Ross E Esq UNQUALIFIED31Ioni Bowcher
1040Antonio P CaudyFrance2024-06-10Printing Dimensions UNQUALIFIED57Xuxue Feng
1041Francesco X GlickGermany2024-05-28Buckley Miller Wright RENEWAL34Asiya Javayant
1042Rodrigues S BologniaRussia2024-06-11Chanay, Jeffrey A Esq QUALIFIED37Xuxue Feng
1043Morrow K DarakjyBrazil2024-06-09Rangoni Of Florence NEGOTIATION98Ioni Bowcher
1044Claire P DoeGermany2024-06-12Rousseaux, Michael Esq NEW12Asiya Javayant
1045Antonio J PerinFrance2024-06-15Chanay, Jeffrey A Esq PROPOSAL30Asiya Javayant
1046Ricardo O WhobreyRussia2024-06-10King, Christopher A Esq NEGOTIATION35Ivan Magalhaes
1047Aditya Y MorascaArgentina2024-06-23Benton, John B Jr NEW46Bernardo Dominic
1048Faith Q CaudyJapan2024-06-02Rousseaux, Michael Esq QUALIFIED95Anna Fali
1049Smith G AlbaresAustralia2024-06-22Rousseaux, Michael Esq PROPOSAL4Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kadeem D NestleGermanyIoni Bowcher RENEWAL
Alejandro L GarufiSpainAnna Fali UNQUALIFIED
Antonio V WhobreyArgentinaElwin Sharvill QUALIFIED
Jones H RimIndiaBernardo Dominic NEGOTIATION
Sinclair V FigeroaFranceOnyama Limba QUALIFIED
Misaki L FerenczCanadaAnna Fali NEGOTIATION
Jennifer L AmigonCanadaIoni Bowcher NEW
Stacey X KuskoIndiaIvan Magalhaes NEGOTIATION
Maisha D RutaAustraliaOnyama Limba QUALIFIED
Maria S WhobreySpainXuxue Feng UNQUALIFIED
Jeanfrancois Q NickaArgentinaIvan Magalhaes QUALIFIED
Claire X FollerItalyElwin Sharvill NEGOTIATION
Darci Y WaycottIndiaAsiya Javayant RENEWAL
Jennifer F CaudyRussiaXuxue Feng QUALIFIED
Cody L FlosiSpainAsiya Javayant RENEWAL
Isabel T KuskoGermanyIoni Bowcher RENEWAL
Mayumi U KuskoAustraliaXuxue Feng QUALIFIED
Leja A MarrierUnited KingdomAnna Fali NEW
Adams M FlosiIndiaIvan Magalhaes RENEWAL
Wickens J BowleySpainAsiya Javayant PROPOSAL
Darci Y GlickBrazilOnyama Limba PROPOSAL
Juan W MaletAustraliaOnyama Limba PROPOSAL
Kaitlin F FlosiIndiaElwin Sharvill NEGOTIATION
Julie O RutaRussiaAmy Elsner UNQUALIFIED
Kaitlin M KuskoRussiaIvan Magalhaes NEW
Sinclair X FollerArgentinaIvan Magalhaes QUALIFIED
Mayumi K InouyeRussiaStephen Shaw RENEWAL
Munro C FollerCanadaIoni Bowcher QUALIFIED
Aditya P KuskoUnited KingdomAmy Elsner NEW
Clifford A NickaUnited KingdomAsiya Javayant NEGOTIATION
Ivar N StensethBrazilIvan Magalhaes NEW
Julie L ChuiUnited KingdomXuxue Feng QUALIFIED
Wickens H SaylorsFranceAnna Fali QUALIFIED
Murillo X KolmetzIndiaIvan Magalhaes NEW
Murillo Q PerinItalyXuxue Feng UNQUALIFIED
Arvin W TollnerUnited KingdomAnna Fali NEGOTIATION
Francesco C SergiFranceElwin Sharvill RENEWAL
Isabel J PoquetteItalyAsiya Javayant UNQUALIFIED
Johnson J FigeroaSpainAmy Elsner RENEWAL
Isabel X FerenczUnited KingdomOnyama Limba UNQUALIFIED
Salvatore V ShinkoCanadaIoni Bowcher RENEWAL
Silvio P SchemmerAustraliaAmy Elsner NEW
Leon N AmigonCanadaAsiya Javayant NEGOTIATION
Cody T FlosiItalyAnna Fali UNQUALIFIED
Juan P GlickFranceAnna Fali QUALIFIED
Nicolas G RoysterCanadaOnyama Limba NEW
Francesco C PoquetteJapanIvan Magalhaes UNQUALIFIED
Johnson P SaylorsIndiaIoni Bowcher PROPOSAL
Darci D DarakjyFranceAsiya Javayant PROPOSAL
Morrow S VenereIndiaElwin Sharvill RENEWAL
Frozen Columns
Name
Rodrigues B Briddick
Antonio J Oldroyd
Maria I Caudy
Jeanfrancois L Albares
Murillo T Slusarski
Rodrigues I Campain
Kaitlin Z Rulapaugh
Leja S Perin
Jeanfrancois Z Glick
Aruna D Schemmer
Alejandro V Poquette
Johnson W Stockham
Rodrigues P Waycott
Faith W Malet
Ricardo D Nicka
Costa R Venere
James M Saylors
Aditya S Malet
Mujtaba B Stenseth
Silvio N Dilliard
Maisha Y Gaucho
Morrow S Inouye
Leon F Schemmer
Juan F Perin
Jeanfrancois Y Marrier
Aruna C Wieser
Rodrigues B Ostrosky
James F Ferencz
Emily Y Shinko
Salvatore Z Oldroyd
David T Morasca
Silvio F Tollner
Aditya Z Nicka
Arvin Z Venere
David W Rulapaugh
David H Malet
Mujtaba F Foller
Wickens F Whobrey
Costa Z Butt
Kadeem Z Chui
Adams S Iturbide
Mujtaba L Rulapaugh
Francesco V Malet
Adams W Iturbide
Aditya H Kolmetz
Costa D Malet
Ivar C Marrier
Chavez N Caldarera
Rodrigues W Paprocki
Darci V Kusko
IdCountryDate
1000Brazil2024-06-04
1001Italy2024-05-30
1002Argentina2024-05-31
1003India2024-06-09
1004Australia2024-06-10
1005Brazil2024-05-30
1006Canada2024-06-01
1007Canada2024-05-31
1008United Kingdom2024-06-14
1009Japan2024-06-16
1010Italy2024-06-16
1011Australia2024-06-10
1012Brazil2024-06-24
1013Canada2024-06-12
1014Japan2024-05-30
1015United Kingdom2024-06-23
1016Germany2024-05-26
1017Japan2024-06-04
1018India2024-06-14
1019Spain2024-06-21
1020Australia2024-06-06
1021India2024-06-09
1022Brazil2024-06-11
1023France2024-05-27
1024Australia2024-06-06
1025Argentina2024-06-01
1026United Kingdom2024-06-22
1027United Kingdom2024-06-23
1028Russia2024-06-12
1029United Kingdom2024-06-05
1030Canada2024-05-30
1031Argentina2024-06-21
1032Russia2024-06-03
1033Japan2024-06-14
1034Italy2024-05-29
1035United Kingdom2024-06-22
1036Australia2024-06-22
1037Italy2024-05-28
1038India2024-05-27
1039Australia2024-06-11
1040Canada2024-06-19
1041France2024-06-09
1042Spain2024-06-17
1043United Kingdom2024-06-10
1044Spain2024-06-14
1045India2024-05-30
1046Russia2024-06-04
1047Argentina2024-05-31
1048Argentina2024-06-23
1049Brazil2024-06-03

On-Demand Data

NameIdCountryDate
Ivar U Marrier1000France2024-06-15
Juan N Iturbide1001Canada2024-06-16
Kadeem X Whobrey1002Spain2024-06-13
Greenwood U Paprocki1003United Kingdom2024-06-02
Jefferson W Amigon1004Argentina2024-06-21
Claire K Whobrey1005Japan2024-06-15
Izzy F Rim1006Japan2024-06-09
Greenwood U Whobrey1007Spain2024-06-03
Misaki D Kolmetz1008United Kingdom2024-06-03
Octavia R Gaucho1009Canada2024-06-07
Mayumi T Slusarski1010Russia2024-06-11
Izzy R Darakjy1011Germany2024-06-06
Maria M Paprocki1012Russia2024-06-11
Emily B Glick1013Spain2024-06-10
Ivar I Wieser1014United Kingdom2024-06-13
Aika Y Waycott1015Argentina2024-06-12
Leja H Dilliard1016Germany2024-06-15
Isabel G Ostrosky1017Spain2024-06-08
Emily A Briddick1018France2024-06-24
Kadeem U Poquette1019Russia2024-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams Y MacleadUnited KingdomOnyama Limba RENEWAL
Rodrigues P GarufiBrazilAnna Fali PROPOSAL
Julie I DoeBrazilAmy Elsner QUALIFIED
Octavia G BowleyFranceAsiya Javayant UNQUALIFIED
Mujtaba M SlusarskiIndiaOnyama Limba NEW
Stacey U CampainGermanyStephen Shaw PROPOSAL
Leon F AlbaresAustraliaAnna Fali RENEWAL
Morrow B MaletRussiaIvan Magalhaes NEW
Francesco V OstroskyCanadaAmy Elsner NEGOTIATION
Maisha Q CampainUnited KingdomStephen Shaw RENEWAL
Tony Q TollnerGermanyBernardo Dominic RENEWAL
Misaki T FollerGermanyIoni Bowcher PROPOSAL
Jones Q PoquetteItalyAmy Elsner UNQUALIFIED
Smith T AlbaresArgentinaIoni Bowcher PROPOSAL
Maisha F GauchoItalyOnyama Limba QUALIFIED
Murillo U WhobreyRussiaXuxue Feng PROPOSAL
Jones Z WhobreyAustraliaBernardo Dominic RENEWAL
Smith Y ShinkoUnited KingdomAsiya Javayant RENEWAL
Mujtaba Q SergiGermanyXuxue Feng QUALIFIED
Aika Y BologniaItalyOnyama Limba PROPOSAL
Kaitlin N OstroskyFranceStephen Shaw PROPOSAL
Francesco P WhobreyCanadaAsiya Javayant UNQUALIFIED
Julie V NickaJapanAnna Fali NEW
Maisha A SlusarskiJapanXuxue Feng UNQUALIFIED
Tony C OstroskyBrazilAnna Fali UNQUALIFIED
Jennifer K DilliardUnited KingdomBernardo Dominic NEGOTIATION
Maisha T KuskoFranceBernardo Dominic UNQUALIFIED
Costa D RimUnited KingdomIoni Bowcher RENEWAL
Jennifer O BowleyFranceBernardo Dominic RENEWAL
Adams W DoeSpainAnna Fali QUALIFIED
Leon J TollnerJapanXuxue Feng RENEWAL
David R WaycottArgentinaAmy Elsner NEGOTIATION
Adams A AlbaresAustraliaOnyama Limba RENEWAL
Antonio P BologniaArgentinaIoni Bowcher RENEWAL
Ricardo S DilliardAustraliaOnyama Limba UNQUALIFIED
Jennifer C TollnerSpainAsiya Javayant NEW
Emily R AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Jennifer C GauchoIndiaStephen Shaw NEGOTIATION
Izzy O SaylorsCanadaXuxue Feng UNQUALIFIED
Kadeem S PerinRussiaXuxue Feng UNQUALIFIED

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