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
Alejandro U KolmetzJapanAsiya Javayant NEW
Mayumi U OldroydAustraliaAsiya Javayant PROPOSAL
Wickens H SlusarskiIndiaIvan Magalhaes NEGOTIATION
Arvin H DarakjySpainAmy Elsner NEW
Darci J WaycottFranceBernardo Dominic NEW
Kadeem U FlosiArgentinaAmy Elsner UNQUALIFIED
Francesco F StensethFranceAmy Elsner NEGOTIATION
Costa Y IturbideItalyAmy Elsner UNQUALIFIED
Smith O InouyeRussiaStephen Shaw RENEWAL
Adams T ButtGermanyStephen Shaw UNQUALIFIED
Aruna T RutaRussiaStephen Shaw NEW
Octavia P PaprockiUnited KingdomOnyama Limba PROPOSAL
Alejandro X SergiItalyElwin Sharvill RENEWAL
Smith C MaletSpainIoni Bowcher UNQUALIFIED
Wickens X ButtSpainAsiya Javayant PROPOSAL
Isabel D NickaJapanIoni Bowcher PROPOSAL
Misaki S WaycottFranceBernardo Dominic UNQUALIFIED
Wickens I ChuiSpainAmy Elsner PROPOSAL
Rodrigues M GarufiUnited KingdomXuxue Feng PROPOSAL
Claire X StockhamArgentinaAnna Fali NEGOTIATION
Alejandro W ButtItalyIvan Magalhaes PROPOSAL
Misaki W OstroskyArgentinaOnyama Limba UNQUALIFIED
Sinclair S InouyeIndiaBernardo Dominic NEW
Smith W KuskoGermanyAnna Fali QUALIFIED
Maisha D NickaCanadaBernardo Dominic UNQUALIFIED
Adams S OldroydAustraliaXuxue Feng RENEWAL
Mujtaba I BologniaBrazilBernardo Dominic NEGOTIATION
Ashley D RoysterRussiaAnna Fali NEGOTIATION
Mayumi W PerinIndiaElwin Sharvill RENEWAL
Aditya L CaudyIndiaOnyama Limba NEGOTIATION
Smith I SergiFranceIoni Bowcher UNQUALIFIED
Sinclair D GarufiItalyElwin Sharvill NEGOTIATION
Mayumi R AlbaresFranceStephen Shaw RENEWAL
Aditya E SaylorsCanadaIoni Bowcher UNQUALIFIED
Darci C WhobreyAustraliaStephen Shaw RENEWAL
Stacey E DilliardArgentinaIvan Magalhaes NEW
Claire S DarakjyIndiaIvan Magalhaes NEGOTIATION
Claire E AmigonUnited KingdomOnyama Limba RENEWAL
Morrow O PerinCanadaAnna Fali UNQUALIFIED
Alejandro C FlosiJapanAsiya Javayant QUALIFIED
Rodrigues G PaprockiUnited KingdomIoni Bowcher PROPOSAL
Salvatore Y StensethIndiaStephen Shaw QUALIFIED
Morrow A GillianSpainElwin Sharvill RENEWAL
Isabel E FerenczJapanIoni Bowcher QUALIFIED
Jeanfrancois P GauchoAustraliaAsiya Javayant NEW
Kaitlin X CaudyGermanyIvan Magalhaes NEGOTIATION
Jennifer E VenereGermanyStephen Shaw RENEWAL
Maria E MorascaJapanOnyama Limba PROPOSAL
Salvatore A SchemmerUnited KingdomAsiya Javayant NEGOTIATION
David F RutaUnited KingdomBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Smith Y CampainRussiaIvan Magalhaes NEW
Morrow V PerinRussiaAnna Fali NEW
Emily J KuskoUnited KingdomAsiya Javayant PROPOSAL
Jennifer H RimIndiaElwin Sharvill RENEWAL
Greenwood D MacleadFranceBernardo Dominic NEGOTIATION
Costa N PaprockiGermanyAnna Fali QUALIFIED
Leon O WhobreyArgentinaElwin Sharvill NEW
Clifford Z InouyeArgentinaAmy Elsner PROPOSAL
Antonio Y OldroydJapanIoni Bowcher UNQUALIFIED
Antonio E IturbideFranceStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow O SergiGermany2026-07-08Rangoni Of Florence NEGOTIATION88Onyama Limba
1001Morrow M PaprockiJapan2026-07-21Truhlar And Truhlar Attys NEW62Ivan Magalhaes
1002Ricardo H MaletUnited Kingdom2026-07-05King, Christopher A Esq PROPOSAL64Ivan Magalhaes
1003Ivar Q MaletArgentina2026-07-15Dorl, James J Esq NEGOTIATION48Xuxue Feng
1004Jones I RutaGermany2026-07-02Chapman, Ross E Esq NEGOTIATION75Ivan Magalhaes
1005Aruna S PerinGermany2026-07-15Truhlar And Truhlar Attys NEW52Amy Elsner
1006Leon I BologniaArgentina2026-07-13Feiner Bros RENEWAL1Elwin Sharvill
1007Francesco K NestleAustralia2026-07-25Rangoni Of Florence QUALIFIED64Asiya Javayant
1008Kadeem B MaletBrazil2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED10Bernardo Dominic
1009Julie E NestleBrazil2026-07-11Chapman, Ross E Esq NEGOTIATION48Ioni Bowcher
1010Cody W GlickBrazil2026-07-20Rangoni Of Florence UNQUALIFIED28Onyama Limba
1011Mujtaba S FigeroaBrazil2026-07-17Rangoni Of Florence RENEWAL78Elwin Sharvill
1012Isabel Q NickaIndia2026-07-13Printing Dimensions PROPOSAL31Xuxue Feng
1013Murillo L GlickItaly2026-07-17Rangoni Of Florence NEW18Ioni Bowcher
1014Antonio R GlickRussia2026-07-12Printing Dimensions NEGOTIATION12Amy Elsner
1015Wickens G DarakjyUnited Kingdom2026-06-29Truhlar And Truhlar Attys NEGOTIATION67Amy Elsner
1016Cody S IturbideGermany2026-07-18Feltz Printing Service RENEWAL58Anna Fali
1017Stacey O InouyeItaly2026-07-15Feiner Bros RENEWAL5Anna Fali
1018Francesco K OstroskyBrazil2026-07-10Feiner Bros NEGOTIATION41Elwin Sharvill
1019Wickens Z MacleadItaly2026-07-12Chanay, Jeffrey A Esq UNQUALIFIED61Ivan Magalhaes
1020James H KuskoArgentina2026-07-01Printing Dimensions NEW52Asiya Javayant
1021Antonio C SchemmerGermany2026-07-20King, Christopher A Esq UNQUALIFIED14Amy Elsner
1022Alejandro F BowleySpain2026-07-08Buckley Miller Wright PROPOSAL7Bernardo Dominic
1023Aruna T StensethGermany2026-07-01Chapman, Ross E Esq UNQUALIFIED20Stephen Shaw
1024Isabel S GillianRussia2026-07-10Chemel, James L Cpa RENEWAL57Asiya Javayant
1025Juan W RulapaughBrazil2026-07-17Buckley Miller Wright UNQUALIFIED19Anna Fali
1026Jefferson H DilliardJapan2026-07-03Rousseaux, Michael Esq UNQUALIFIED60Amy Elsner
1027Tony Y FollerGermany2026-07-28Printing Dimensions PROPOSAL95Stephen Shaw
1028Octavia Y CampainCanada2026-07-13Feiner Bros NEGOTIATION98Asiya Javayant
1029Munro C DarakjyItaly2026-07-10Feltz Printing Service PROPOSAL95Xuxue Feng
1030Leja R InouyeCanada2026-07-26Chapman, Ross E Esq PROPOSAL29Ioni Bowcher
1031Aruna I VenereItaly2026-07-05Chemel, James L Cpa NEW16Anna Fali
1032Leon L SlusarskiBrazil2026-07-21Dorl, James J Esq RENEWAL65Stephen Shaw
1033Silvio W PoquetteIndia2026-07-06Morlong Associates QUALIFIED11Ioni Bowcher
1034Aditya I SchemmerUnited Kingdom2026-07-01Chemel, James L Cpa PROPOSAL62Ioni Bowcher
1035Jeanfrancois V NickaUnited Kingdom2026-07-04Chemel, James L Cpa PROPOSAL17Elwin Sharvill
1036Nicolas M AmigonUnited Kingdom2026-07-27Chapman, Ross E Esq RENEWAL39Asiya Javayant
1037Mayumi H InouyeFrance2026-07-08King, Christopher A Esq PROPOSAL6Onyama Limba
1038Costa I NestleRussia2026-07-22Rangoni Of Florence QUALIFIED1Xuxue Feng
1039Cody E GillianCanada2026-06-29Chemel, James L Cpa QUALIFIED65Onyama Limba
1040Faith N OldroydJapan2026-07-20Commercial Press RENEWAL26Anna Fali
1041Mujtaba S AlbaresBrazil2026-07-21Printing Dimensions NEGOTIATION96Elwin Sharvill
1042Ashley Q CampainFrance2026-07-18King, Christopher A Esq PROPOSAL99Ioni Bowcher
1043James A FlosiIndia2026-07-19King, Christopher A Esq NEGOTIATION19Asiya Javayant
1044Maria D PaprockiCanada2026-06-29Buckley Miller Wright NEGOTIATION96Ioni Bowcher
1045Rodrigues O CaldareraBrazil2026-07-05Rousseaux, Michael Esq UNQUALIFIED39Stephen Shaw
1046Misaki K GarufiUnited Kingdom2026-07-10Buckley Miller Wright PROPOSAL18Ivan Magalhaes
1047Wickens E BologniaAustralia2026-07-22Commercial Press QUALIFIED96Amy Elsner
1048Wickens C KuskoGermany2026-07-22Chemel, James L Cpa QUALIFIED15Stephen Shaw
1049Greenwood I RoysterGermany2026-07-25Buckley Miller Wright RENEWAL4Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio G GarufiArgentinaStephen Shaw QUALIFIED
Misaki R AlbaresGermanyOnyama Limba QUALIFIED
Juan R CaudyArgentinaAnna Fali NEGOTIATION
Jones E BologniaBrazilAnna Fali NEW
Salvatore H PaprockiFranceAsiya Javayant RENEWAL
Johnson L FerenczGermanyIoni Bowcher NEGOTIATION
Octavia S GillianRussiaXuxue Feng PROPOSAL
Maria Q WieserUnited KingdomAmy Elsner UNQUALIFIED
Faith C VenereJapanElwin Sharvill NEGOTIATION
Francesco U MaletArgentinaXuxue Feng UNQUALIFIED
Ricardo J GillianAustraliaIvan Magalhaes UNQUALIFIED
Emily M StockhamIndiaAsiya Javayant NEGOTIATION
Mujtaba B TollnerArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois H GillianJapanBernardo Dominic NEW
Aruna L VocelkaAustraliaIvan Magalhaes RENEWAL
Ivar I ChuiFranceAmy Elsner PROPOSAL
Juan L StockhamCanadaIoni Bowcher PROPOSAL
Jennifer L DoeSpainAmy Elsner RENEWAL
Sinclair W StockhamUnited KingdomAmy Elsner NEW
Izzy J PaprockiBrazilAsiya Javayant RENEWAL
Aditya W MaletUnited KingdomOnyama Limba UNQUALIFIED
Salvatore N CaudyBrazilAsiya Javayant QUALIFIED
Julie L ChuiBrazilAsiya Javayant NEW
Julie P OstroskyFranceAnna Fali RENEWAL
Silvio Z OldroydFranceOnyama Limba RENEWAL
Julie N DilliardUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba T KuskoArgentinaAnna Fali UNQUALIFIED
Octavia I FlosiGermanyOnyama Limba NEW
Wickens E WieserGermanyOnyama Limba PROPOSAL
Adams T AmigonIndiaAmy Elsner NEW
Jones N RutaFranceAmy Elsner RENEWAL
Aditya P VocelkaItalyXuxue Feng PROPOSAL
Kadeem S OldroydBrazilIvan Magalhaes RENEWAL
Stacey T SergiGermanyElwin Sharvill QUALIFIED
Mayumi N StensethAustraliaAmy Elsner RENEWAL
Faith T FlosiIndiaOnyama Limba PROPOSAL
Greenwood J RulapaughGermanyElwin Sharvill QUALIFIED
Ricardo P SlusarskiAustraliaIvan Magalhaes NEW
Emily P FlosiFranceOnyama Limba RENEWAL
Arvin E PerinRussiaIvan Magalhaes QUALIFIED
Leja Q MaletFranceElwin Sharvill RENEWAL
Clifford V BriddickGermanyBernardo Dominic NEW
David E AmigonGermanyIvan Magalhaes NEGOTIATION
Alejandro D MorascaAustraliaBernardo Dominic NEGOTIATION
Arvin V FerenczRussiaIoni Bowcher UNQUALIFIED
Izzy E IturbideBrazilAsiya Javayant QUALIFIED
Tony F WhobreyBrazilElwin Sharvill RENEWAL
Claire F MacleadJapanOnyama Limba RENEWAL
Ashley A FlosiUnited KingdomIvan Magalhaes QUALIFIED
Stacey G SchemmerRussiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Emily H Caldarera
Aditya L Amigon
Ivar T Iturbide
Rodrigues E Gillian
Murillo F Perin
Munro D Gillian
Smith U Sergi
Munro V Figeroa
Emily P Briddick
Mayumi S Darakjy
Ricardo C Chui
Maisha M Slusarski
Salvatore N Nestle
Johnson O Perin
Murillo Z Schemmer
Ricardo R Morasca
Salvatore F Nicka
Maisha L Whobrey
Sinclair D Slusarski
Ashley E Kolmetz
Emily W Morasca
Alejandro X Malet
Faith Q Royster
Aditya N Iturbide
Mujtaba G Schemmer
Jefferson A Poquette
Costa E Gillian
Maria Y Ferencz
Claire R Venere
Aika Z Amigon
Claire R Nestle
Tony J Vocelka
Jones M Shinko
Maria O Nestle
Isabel X Whobrey
Smith A Ferencz
Alejandro G Garufi
Juan U Schemmer
Izzy V Schemmer
Ashley C Wieser
Jefferson X Ruta
Maisha E Malet
Deepesh Y Kolmetz
Clifford K Waycott
Isabel W Shinko
Silvio I Amigon
Maria D Garufi
Leja N Poquette
Emily Z Stockham
Jones N Dilliard
IdCountryDate
1000Spain2026-07-08
1001Italy2026-07-03
1002Russia2026-07-28
1003Brazil2026-07-15
1004Canada2026-07-20
1005Germany2026-07-21
1006Russia2026-07-21
1007Brazil2026-07-13
1008Brazil2026-07-27
1009Germany2026-07-03
1010Spain2026-07-20
1011Italy2026-07-13
1012Russia2026-07-05
1013Japan2026-06-30
1014Germany2026-07-10
1015Spain2026-07-03
1016Argentina2026-07-23
1017Japan2026-07-04
1018Spain2026-07-22
1019United Kingdom2026-07-06
1020France2026-07-03
1021Italy2026-07-17
1022Australia2026-06-30
1023Italy2026-07-21
1024Australia2026-07-09
1025Russia2026-07-09
1026France2026-07-24
1027Australia2026-07-24
1028Japan2026-07-13
1029Australia2026-07-23
1030Brazil2026-07-11
1031Spain2026-07-05
1032United Kingdom2026-06-29
1033United Kingdom2026-07-28
1034Argentina2026-07-26
1035Japan2026-07-24
1036Germany2026-07-25
1037Canada2026-07-02
1038Brazil2026-07-22
1039Brazil2026-07-02
1040Brazil2026-07-13
1041Brazil2026-07-21
1042France2026-07-08
1043Germany2026-07-12
1044Brazil2026-07-05
1045Argentina2026-07-09
1046United Kingdom2026-07-28
1047Argentina2026-07-19
1048Brazil2026-07-24
1049Australia2026-07-05

On-Demand Data

NameIdCountryDate
Alejandro J Bolognia1000Germany2026-07-28
Greenwood W Inouye1001United Kingdom2026-07-23
Isabel A Amigon1002Japan2026-07-01
Faith Y Stockham1003Canada2026-07-08
Wickens A Kolmetz1004Argentina2026-07-20
Misaki T Paprocki1005Italy2026-07-18
Stacey G Vocelka1006Brazil2026-07-14
Smith Y Kolmetz1007Canada2026-07-11
Jefferson E Venere1008Canada2026-07-28
Emily J Figeroa1009Australia2026-07-17
Leon O Kolmetz1010Brazil2026-07-19
Adams K Waycott1011Argentina2026-07-25
Greenwood X Vocelka1012France2026-07-04
Cody U Dilliard1013Italy2026-07-04
Maisha M Kusko1014Australia2026-07-11
Kadeem E Caldarera1015United Kingdom2026-07-09
Arvin L Briddick1016Russia2026-07-10
Tony Y Ruta1017India2026-07-25
Maria K Stenseth1018France2026-07-28
Chavez P Tollner1019Canada2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood S DoeUnited KingdomAnna Fali QUALIFIED
Isabel Q StockhamSpainOnyama Limba NEGOTIATION
Cody K ShinkoSpainXuxue Feng PROPOSAL
Wickens A BowleyGermanyElwin Sharvill UNQUALIFIED
Alejandro Y AmigonAustraliaElwin Sharvill PROPOSAL
Greenwood R GarufiJapanBernardo Dominic NEGOTIATION
Aditya A SchemmerFranceOnyama Limba RENEWAL
Octavia A OstroskyItalyAsiya Javayant NEW
Clifford Z NickaFranceAsiya Javayant NEGOTIATION
Jeanfrancois O NestleItalyAnna Fali QUALIFIED
James M KolmetzItalyIoni Bowcher NEGOTIATION
Claire R SergiJapanAmy Elsner NEGOTIATION
Arvin P SlusarskiGermanyAnna Fali RENEWAL
Costa K MaletGermanyOnyama Limba UNQUALIFIED
Kaitlin Q RimGermanyAsiya Javayant QUALIFIED
Alejandro F PaprockiSpainIvan Magalhaes NEW
Isabel K StensethGermanyXuxue Feng QUALIFIED
Rodrigues B CampainUnited KingdomBernardo Dominic PROPOSAL
Adams Z FlosiUnited KingdomAsiya Javayant RENEWAL
Wickens T RimCanadaStephen Shaw UNQUALIFIED
Ivar H StensethAustraliaIvan Magalhaes UNQUALIFIED
Aruna T MaletItalyIoni Bowcher PROPOSAL
Smith H StensethGermanyStephen Shaw UNQUALIFIED
Wickens L InouyeUnited KingdomIoni Bowcher NEGOTIATION
Greenwood J CaldareraSpainIvan Magalhaes RENEWAL
Cody C WieserJapanAsiya Javayant QUALIFIED
Chavez L WieserIndiaElwin Sharvill UNQUALIFIED
Maria B StockhamJapanIoni Bowcher PROPOSAL
Munro D SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Cody W MarrierAustraliaXuxue Feng PROPOSAL
Kadeem U SaylorsArgentinaAmy Elsner NEGOTIATION
Leja H KuskoUnited KingdomAnna Fali NEGOTIATION
Julie Z FollerCanadaAmy Elsner QUALIFIED
Leon J StockhamUnited KingdomAnna Fali NEGOTIATION
Chavez F AmigonJapanAmy Elsner PROPOSAL
Mayumi O SlusarskiAustraliaStephen Shaw NEGOTIATION
Greenwood Q NickaItalyAnna Fali RENEWAL
Leon P BologniaBrazilAnna Fali QUALIFIED
Cody G KuskoJapanAnna Fali PROPOSAL
Maria X BriddickItalyElwin Sharvill NEW

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