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
Nicolas I RoysterAustraliaStephen Shaw NEGOTIATION
Deepesh B SchemmerArgentinaStephen Shaw NEGOTIATION
Leon B TollnerArgentinaOnyama Limba NEGOTIATION
James H AlbaresFranceOnyama Limba UNQUALIFIED
Johnson B OldroydArgentinaAmy Elsner PROPOSAL
Deepesh L WhobreyIndiaOnyama Limba RENEWAL
Maria O KolmetzJapanXuxue Feng QUALIFIED
Cody Y DarakjyIndiaElwin Sharvill UNQUALIFIED
Jennifer G BologniaSpainBernardo Dominic RENEWAL
Silvio K ButtJapanXuxue Feng NEW
Ivar P IturbideIndiaAnna Fali QUALIFIED
Stacey F CaudyItalyAmy Elsner QUALIFIED
Darci J RulapaughIndiaStephen Shaw NEGOTIATION
Morrow E DarakjyItalyStephen Shaw QUALIFIED
David M SergiIndiaStephen Shaw RENEWAL
Sinclair K SaylorsUnited KingdomIvan Magalhaes RENEWAL
Murillo U NestleSpainIvan Magalhaes QUALIFIED
Murillo K RoysterAustraliaXuxue Feng UNQUALIFIED
Morrow Z AlbaresIndiaBernardo Dominic NEGOTIATION
Costa S BowleyRussiaIvan Magalhaes QUALIFIED
Ashley U FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore D MarrierBrazilAmy Elsner RENEWAL
Sinclair H RulapaughBrazilElwin Sharvill QUALIFIED
Chavez Y SergiRussiaStephen Shaw UNQUALIFIED
Leja Q SlusarskiIndiaIoni Bowcher RENEWAL
Leja I SaylorsArgentinaAsiya Javayant QUALIFIED
Smith B GillianCanadaXuxue Feng RENEWAL
Juan T BriddickCanadaAmy Elsner PROPOSAL
Adams I DoeAustraliaIoni Bowcher QUALIFIED
Nicolas Q SchemmerAustraliaAsiya Javayant RENEWAL
Cody B StensethBrazilIvan Magalhaes RENEWAL
Arvin H AmigonSpainOnyama Limba NEGOTIATION
Francesco Y NestleFranceBernardo Dominic NEW
Maisha I IturbideJapanIvan Magalhaes PROPOSAL
Stacey M InouyeBrazilBernardo Dominic RENEWAL
Aruna N RoysterIndiaIvan Magalhaes UNQUALIFIED
Leon K GauchoCanadaElwin Sharvill UNQUALIFIED
Munro G FlosiJapanElwin Sharvill UNQUALIFIED
Smith V ChuiUnited KingdomAmy Elsner PROPOSAL
Alejandro C OstroskyGermanyAmy Elsner NEGOTIATION
Rodrigues L VocelkaSpainAmy Elsner UNQUALIFIED
Maria D StensethBrazilBernardo Dominic UNQUALIFIED
Kadeem Q WieserBrazilAnna Fali UNQUALIFIED
Silvio R PerinGermanyXuxue Feng PROPOSAL
James B BowleyJapanXuxue Feng NEW
Isabel X PaprockiJapanOnyama Limba QUALIFIED
Maisha A FigeroaCanadaOnyama Limba UNQUALIFIED
Jefferson A WhobreyRussiaElwin Sharvill QUALIFIED
Mujtaba K WieserAustraliaIvan Magalhaes RENEWAL
Isabel Y MaletFranceOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson Z SergiItalyBernardo Dominic UNQUALIFIED
Clifford H PoquetteBrazilIoni Bowcher UNQUALIFIED
Kadeem L AmigonArgentinaAsiya Javayant NEW
Mayumi F RoysterRussiaXuxue Feng NEGOTIATION
Salvatore Y CaldareraGermanyIvan Magalhaes UNQUALIFIED
Salvatore B PoquetteIndiaStephen Shaw UNQUALIFIED
Ricardo V RutaArgentinaStephen Shaw RENEWAL
Jennifer T FerenczArgentinaIvan Magalhaes PROPOSAL
Morrow U DarakjyIndiaElwin Sharvill QUALIFIED
Julie W BriddickIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily J KuskoItaly2026-08-11Truhlar And Truhlar Attys QUALIFIED64Asiya Javayant
1001Maria N GlickGermany2026-08-06Benton, John B Jr UNQUALIFIED17Xuxue Feng
1002Jeanfrancois K FollerRussia2026-08-04Printing Dimensions NEGOTIATION52Asiya Javayant
1003Maisha G KolmetzIndia2026-08-19Printing Dimensions NEW21Stephen Shaw
1004Chavez I ButtRussia2026-08-08Chemel, James L Cpa RENEWAL26Asiya Javayant
1005Francesco E NestleAustralia2026-08-17Benton, John B Jr NEW40Elwin Sharvill
1006Aditya B ButtAustralia2026-08-31Buckley Miller Wright PROPOSAL60Elwin Sharvill
1007Juan I IturbideUnited Kingdom2026-08-05Buckley Miller Wright PROPOSAL43Elwin Sharvill
1008Julie G RoysterAustralia2026-08-19Buckley Miller Wright NEW95Onyama Limba
1009Ashley W WaycottSpain2026-08-25Chemel, James L Cpa UNQUALIFIED29Asiya Javayant
1010Claire R FlosiArgentina2026-08-05Dorl, James J Esq RENEWAL95Asiya Javayant
1011Chavez I KuskoRussia2026-08-30Chemel, James L Cpa NEW58Anna Fali
1012David Z RutaFrance2026-08-18Chapman, Ross E Esq PROPOSAL15Onyama Limba
1013Maisha K TollnerCanada2026-08-28Morlong Associates NEGOTIATION32Xuxue Feng
1014Jefferson Z MacleadIndia2026-08-05Rangoni Of Florence NEW39Elwin Sharvill
1015Ashley I IturbideArgentina2026-08-26Chapman, Ross E Esq RENEWAL42Onyama Limba
1016Kaitlin O WieserCanada2026-08-12Rousseaux, Michael Esq QUALIFIED14Bernardo Dominic
1017Wickens D VenereSpain2026-08-07Chemel, James L Cpa PROPOSAL42Stephen Shaw
1018Silvio S BriddickCanada2026-08-11Benton, John B Jr QUALIFIED89Asiya Javayant
1019Munro G InouyeUnited Kingdom2026-08-05Chanay, Jeffrey A Esq NEW75Bernardo Dominic
1020Antonio L FigeroaUnited Kingdom2026-08-09Truhlar And Truhlar Attys RENEWAL61Elwin Sharvill
1021Claire X SaylorsArgentina2026-08-23Truhlar And Truhlar Attys PROPOSAL99Bernardo Dominic
1022Juan X SchemmerAustralia2026-08-12Truhlar And Truhlar Attys PROPOSAL66Amy Elsner
1023Alejandro I StensethUnited Kingdom2026-08-08Benton, John B Jr NEW83Xuxue Feng
1024Emily I BologniaItaly2026-08-15Benton, John B Jr NEGOTIATION97Onyama Limba
1025Antonio M KuskoArgentina2026-08-15Commercial Press UNQUALIFIED71Bernardo Dominic
1026Alejandro O GlickAustralia2026-08-04King, Christopher A Esq RENEWAL69Xuxue Feng
1027Leja U RoysterCanada2026-08-18Benton, John B Jr NEGOTIATION42Bernardo Dominic
1028Claire E CaudyAustralia2026-08-20Printing Dimensions RENEWAL29Stephen Shaw
1029Mayumi J GarufiFrance2026-08-10Rousseaux, Michael Esq QUALIFIED23Ivan Magalhaes
1030Maria F VenereIndia2026-08-13Commercial Press RENEWAL31Stephen Shaw
1031Morrow S BriddickUnited Kingdom2026-08-27Feltz Printing Service NEW17Elwin Sharvill
1032Faith F IturbideGermany2026-08-17Rousseaux, Michael Esq NEGOTIATION31Onyama Limba
1033Jennifer T NickaBrazil2026-09-01Feltz Printing Service UNQUALIFIED46Stephen Shaw
1034Nicolas Y PaprockiSpain2026-08-13Chanay, Jeffrey A Esq PROPOSAL5Ioni Bowcher
1035Greenwood K InouyeBrazil2026-08-09Chemel, James L Cpa PROPOSAL70Ivan Magalhaes
1036Kaitlin E SergiSpain2026-08-03King, Christopher A Esq RENEWAL48Ivan Magalhaes
1037Mujtaba Y WaycottSpain2026-09-01Dorl, James J Esq UNQUALIFIED93Ivan Magalhaes
1038Arvin R SaylorsAustralia2026-08-29King, Christopher A Esq UNQUALIFIED26Asiya Javayant
1039Rodrigues Y TollnerSpain2026-08-14King, Christopher A Esq UNQUALIFIED77Asiya Javayant
1040Jefferson S MaletArgentina2026-08-05Dorl, James J Esq QUALIFIED14Xuxue Feng
1041Aika I WaycottJapan2026-08-19Commercial Press UNQUALIFIED2Elwin Sharvill
1042Cody V FigeroaFrance2026-08-07Chanay, Jeffrey A Esq PROPOSAL7Elwin Sharvill
1043Mayumi F WhobreyFrance2026-08-22King, Christopher A Esq PROPOSAL73Xuxue Feng
1044Leon O SchemmerItaly2026-08-11Buckley Miller Wright QUALIFIED82Asiya Javayant
1045Faith U StensethArgentina2026-08-28Benton, John B Jr QUALIFIED89Onyama Limba
1046Ashley C IturbideArgentina2026-08-17Benton, John B Jr QUALIFIED99Elwin Sharvill
1047Isabel Y GarufiJapan2026-08-12Chanay, Jeffrey A Esq NEW57Asiya Javayant
1048Arvin I RoysterJapan2026-08-14Benton, John B Jr NEW15Stephen Shaw
1049Maria J DoeArgentina2026-08-12Rousseaux, Michael Esq QUALIFIED10Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba O MaletAustraliaOnyama Limba QUALIFIED
Kadeem Y AmigonGermanyAsiya Javayant NEW
Costa O BriddickUnited KingdomAmy Elsner RENEWAL
Mayumi A MaletAustraliaAsiya Javayant QUALIFIED
Jeanfrancois K RutaFranceAmy Elsner NEW
Isabel O MarrierAustraliaIoni Bowcher NEGOTIATION
Nicolas H ShinkoItalyXuxue Feng PROPOSAL
James Z SchemmerJapanAnna Fali RENEWAL
Silvio G CaldareraSpainAnna Fali NEGOTIATION
Julie A WaycottCanadaIoni Bowcher RENEWAL
Deepesh J BowleyUnited KingdomElwin Sharvill NEW
Adams C PaprockiSpainXuxue Feng UNQUALIFIED
Mujtaba K PerinRussiaStephen Shaw NEW
Ivar T StockhamJapanAnna Fali PROPOSAL
Jones C RutaFranceOnyama Limba RENEWAL
Costa I SaylorsAustraliaAmy Elsner RENEWAL
Sinclair B StensethRussiaOnyama Limba PROPOSAL
Rodrigues Y RutaRussiaAmy Elsner NEGOTIATION
Rodrigues V StensethAustraliaAsiya Javayant PROPOSAL
Costa J CaldareraUnited KingdomIoni Bowcher QUALIFIED
Deepesh S GarufiBrazilAsiya Javayant NEW
Cody Z SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Emily R FerenczBrazilBernardo Dominic NEW
Faith Y ButtBrazilStephen Shaw NEGOTIATION
Silvio Q DilliardSpainOnyama Limba UNQUALIFIED
Ashley Q FlosiRussiaStephen Shaw NEW
Claire Q IturbideSpainElwin Sharvill QUALIFIED
Maisha G GarufiFranceIoni Bowcher NEW
Mayumi Z FigeroaRussiaAsiya Javayant NEGOTIATION
Aika R IturbideAustraliaAmy Elsner NEGOTIATION
Juan X AmigonUnited KingdomStephen Shaw UNQUALIFIED
Chavez O OstroskyArgentinaAnna Fali NEW
Juan A MacleadSpainElwin Sharvill NEGOTIATION
Munro E GlickFranceStephen Shaw NEW
Silvio U MorascaBrazilOnyama Limba NEGOTIATION
James K BologniaBrazilElwin Sharvill NEW
Sinclair N VenereJapanElwin Sharvill QUALIFIED
Costa Z AmigonBrazilBernardo Dominic RENEWAL
Adams I IturbideIndiaOnyama Limba RENEWAL
Jeanfrancois N SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Izzy U VenereArgentinaAmy Elsner QUALIFIED
Misaki L MarrierFranceIvan Magalhaes NEW
Antonio S DoeCanadaIoni Bowcher PROPOSAL
Alejandro V NestleBrazilAnna Fali NEGOTIATION
Smith X KolmetzGermanyIoni Bowcher QUALIFIED
Sinclair V VocelkaItalyAnna Fali QUALIFIED
Octavia X PerinUnited KingdomElwin Sharvill UNQUALIFIED
Juan Z RimSpainElwin Sharvill NEW
Maria V VocelkaGermanyIoni Bowcher NEW
Darci F BowleySpainBernardo Dominic RENEWAL
Frozen Columns
Name
Misaki A Bolognia
Leja U Malet
Izzy O Nestle
Jeanfrancois C Bolognia
Silvio A Schemmer
Mujtaba K Doe
Stacey D Glick
Aika S Saylors
Clifford G Briddick
Ashley G Stenseth
Ricardo D Marrier
Maisha B Vocelka
Adams U Butt
Ivar N Perin
Stacey P Ferencz
Adams Q Bolognia
Deepesh Z Slusarski
Jennifer O Malet
Silvio D Gaucho
Darci Q Ferencz
Aika E Figeroa
Jefferson S Paprocki
Jefferson M Butt
Faith L Venere
Alejandro L Foller
Jennifer F Shinko
Isabel P Poquette
Mayumi J Stockham
James S Ostrosky
Jennifer P Stenseth
Kaitlin W Rim
Mujtaba Q Kolmetz
Jennifer E Oldroyd
Jennifer Z Kusko
Izzy V Venere
Francesco K Slusarski
Smith A Oldroyd
Aika U Sergi
Costa E Bowley
Sinclair B Tollner
Antonio B Whobrey
Leja E Shinko
Salvatore D Maclead
Francesco B Saylors
Ivar T Garufi
James H Figeroa
Ricardo M Paprocki
Ivar R Maclead
Darci I Bowley
Ricardo E Briddick
IdCountryDate
1000Brazil2026-08-12
1001Spain2026-08-24
1002Canada2026-08-22
1003Japan2026-08-23
1004Australia2026-08-15
1005Italy2026-08-18
1006France2026-08-17
1007Italy2026-08-11
1008Brazil2026-08-19
1009Japan2026-08-08
1010Canada2026-08-27
1011Russia2026-08-13
1012Italy2026-08-03
1013Spain2026-08-27
1014Brazil2026-08-03
1015Australia2026-08-28
1016Spain2026-08-26
1017United Kingdom2026-09-01
1018India2026-08-26
1019Spain2026-08-26
1020India2026-08-31
1021Canada2026-08-12
1022Canada2026-08-25
1023Argentina2026-08-17
1024France2026-08-03
1025United Kingdom2026-08-30
1026Italy2026-08-18
1027Italy2026-08-09
1028Argentina2026-08-07
1029Australia2026-08-28
1030Canada2026-08-06
1031Brazil2026-08-24
1032India2026-08-04
1033Canada2026-08-04
1034Italy2026-08-27
1035Canada2026-08-15
1036France2026-08-03
1037India2026-08-19
1038Canada2026-08-22
1039Italy2026-08-06
1040Italy2026-08-23
1041India2026-08-29
1042Argentina2026-09-01
1043Australia2026-08-06
1044Spain2026-08-24
1045Russia2026-08-08
1046India2026-08-06
1047Argentina2026-08-29
1048Japan2026-08-25
1049Canada2026-08-12

On-Demand Data

NameIdCountryDate
Cody X Kolmetz1000Russia2026-08-09
Jeanfrancois V Caudy1001Canada2026-08-16
Antonio S Gaucho1002Italy2026-08-27
Chavez Z Schemmer1003Brazil2026-08-11
Octavia L Marrier1004Australia2026-08-31
Jeanfrancois B Royster1005France2026-08-18
Jennifer E Stockham1006Russia2026-08-17
Salvatore N Bowley1007Germany2026-08-17
Aika Q Schemmer1008Italy2026-08-21
David H Iturbide1009India2026-08-23
Tony C Waycott1010United Kingdom2026-08-14
Isabel Y Whobrey1011United Kingdom2026-08-15
Jones J Doe1012Australia2026-08-14
Julie W Perin1013Russia2026-08-08
Jones Y Sergi1014Brazil2026-08-17
Misaki F Tollner1015Germany2026-08-15
Izzy E Ruta1016Australia2026-08-14
Munro I Ruta1017United Kingdom2026-08-25
Julie T Figeroa1018Spain2026-08-31
Ricardo U Marrier1019Japan2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon X GlickJapanIoni Bowcher UNQUALIFIED
Julie E FigeroaRussiaBernardo Dominic UNQUALIFIED
Mayumi K PaprockiFranceIvan Magalhaes PROPOSAL
Tony U BologniaJapanAsiya Javayant QUALIFIED
Salvatore W VocelkaGermanyBernardo Dominic UNQUALIFIED
Mujtaba I BriddickFranceAmy Elsner QUALIFIED
Greenwood V BologniaBrazilIoni Bowcher NEW
David D OstroskySpainOnyama Limba UNQUALIFIED
Misaki S FlosiAustraliaOnyama Limba PROPOSAL
James T OstroskyFranceElwin Sharvill NEGOTIATION
Aditya P GlickRussiaBernardo Dominic NEGOTIATION
Mujtaba Y NestleAustraliaBernardo Dominic NEGOTIATION
Emily I NestleArgentinaStephen Shaw RENEWAL
Costa A DilliardIndiaXuxue Feng QUALIFIED
Maisha W RimArgentinaIvan Magalhaes PROPOSAL
Clifford E GillianUnited KingdomAsiya Javayant RENEWAL
Salvatore D OldroydRussiaIvan Magalhaes QUALIFIED
Tony M FerenczIndiaXuxue Feng NEW
Francesco F FollerUnited KingdomAmy Elsner QUALIFIED
Ivar W PoquetteSpainAmy Elsner NEGOTIATION
Greenwood P IturbideAustraliaXuxue Feng PROPOSAL
Adams K MacleadJapanStephen Shaw QUALIFIED
Stacey T VocelkaArgentinaAsiya Javayant QUALIFIED
Mayumi Q RoysterUnited KingdomOnyama Limba QUALIFIED
Octavia Z BologniaRussiaAsiya Javayant QUALIFIED
Deepesh T PoquetteUnited KingdomAmy Elsner RENEWAL
Greenwood Y AlbaresCanadaBernardo Dominic NEW
Aruna V MaletCanadaAnna Fali QUALIFIED
Jennifer F WieserJapanAsiya Javayant RENEWAL
Costa H GauchoArgentinaXuxue Feng NEGOTIATION
Mujtaba A MaletRussiaElwin Sharvill NEW
Ivar L InouyeJapanElwin Sharvill NEW
Silvio H FlosiUnited KingdomAsiya Javayant UNQUALIFIED
David O BologniaIndiaAnna Fali QUALIFIED
James F RulapaughRussiaXuxue Feng NEGOTIATION
Isabel D RoysterUnited KingdomIoni Bowcher RENEWAL
Murillo X IturbideBrazilElwin Sharvill NEW
Kaitlin R GillianFranceOnyama Limba NEW
Misaki P IturbideIndiaStephen Shaw QUALIFIED
Jefferson E DilliardJapanOnyama Limba 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>