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
Murillo S ButtFranceOnyama Limba NEW
Darci F WieserItalyAsiya Javayant RENEWAL
Smith A AlbaresBrazilElwin Sharvill NEGOTIATION
Chavez W BologniaItalyAnna Fali RENEWAL
Antonio D AlbaresSpainAnna Fali UNQUALIFIED
Claire K MaletItalyOnyama Limba UNQUALIFIED
Jones C FlosiJapanAsiya Javayant UNQUALIFIED
Nicolas Y TollnerUnited KingdomBernardo Dominic RENEWAL
Jennifer U OstroskyFranceStephen Shaw UNQUALIFIED
Greenwood J BowleyBrazilElwin Sharvill NEW
Kadeem S FlosiSpainAnna Fali NEGOTIATION
Maisha N RimRussiaAsiya Javayant UNQUALIFIED
Nicolas X RoysterFranceAsiya Javayant RENEWAL
Chavez G MaletGermanyIoni Bowcher UNQUALIFIED
Ashley I DarakjyGermanyAmy Elsner UNQUALIFIED
Aditya E TollnerFranceAnna Fali PROPOSAL
Jefferson M CaudyItalyBernardo Dominic UNQUALIFIED
Ricardo C SchemmerAustraliaIoni Bowcher QUALIFIED
Maisha G BowleyRussiaAmy Elsner UNQUALIFIED
Isabel Y VocelkaFranceAnna Fali UNQUALIFIED
Jennifer I DarakjyBrazilXuxue Feng UNQUALIFIED
Ivar I MarrierAustraliaAsiya Javayant PROPOSAL
Smith T SlusarskiItalyElwin Sharvill RENEWAL
Darci Y StockhamFranceAnna Fali NEW
Darci V SaylorsItalyAnna Fali QUALIFIED
Ricardo V MarrierGermanyOnyama Limba PROPOSAL
Francesco P ShinkoUnited KingdomIoni Bowcher QUALIFIED
Murillo L IturbideJapanStephen Shaw QUALIFIED
Maisha N AmigonItalyBernardo Dominic NEW
Salvatore B WaycottSpainElwin Sharvill UNQUALIFIED
Adams P OstroskyAustraliaStephen Shaw RENEWAL
Salvatore V KuskoGermanyAnna Fali NEW
Isabel W SaylorsUnited KingdomAnna Fali NEGOTIATION
Wickens B FlosiBrazilOnyama Limba PROPOSAL
Leja Q WaycottArgentinaAsiya Javayant UNQUALIFIED
Johnson A ButtFranceIoni Bowcher PROPOSAL
Jefferson Q CaldareraFranceIoni Bowcher UNQUALIFIED
Arvin X FlosiFranceIvan Magalhaes RENEWAL
David K SaylorsItalyBernardo Dominic RENEWAL
Jones T PaprockiUnited KingdomStephen Shaw NEGOTIATION
Stacey X WieserSpainIvan Magalhaes PROPOSAL
Mayumi B FerenczRussiaIvan Magalhaes PROPOSAL
Kadeem B WhobreyRussiaAmy Elsner RENEWAL
Emily P CaldareraGermanyIoni Bowcher NEGOTIATION
Kadeem A DilliardGermanyStephen Shaw QUALIFIED
Jones Z MaletCanadaXuxue Feng NEW
Deepesh C WieserArgentinaIoni Bowcher NEGOTIATION
Adams E DilliardArgentinaAsiya Javayant NEW
Silvio C BowleyJapanIvan Magalhaes NEGOTIATION
Emily D KolmetzJapanXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin Q AmigonBrazilBernardo Dominic UNQUALIFIED
James B WieserIndiaOnyama Limba QUALIFIED
James T WaycottBrazilOnyama Limba PROPOSAL
Munro S MorascaGermanyIoni Bowcher NEGOTIATION
Johnson P BowleyArgentinaStephen Shaw UNQUALIFIED
Alejandro D PerinGermanyOnyama Limba NEGOTIATION
Sinclair M BowleyIndiaStephen Shaw RENEWAL
Jeanfrancois B PaprockiArgentinaBernardo Dominic PROPOSAL
Nicolas B AlbaresJapanIoni Bowcher UNQUALIFIED
Munro N NickaAustraliaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair X MarrierRussia2026-06-25Dorl, James J Esq NEGOTIATION3Elwin Sharvill
1001Rodrigues G VocelkaAustralia2026-06-06Morlong Associates UNQUALIFIED23Ioni Bowcher
1002Leja B BologniaSpain2026-06-04Chemel, James L Cpa UNQUALIFIED32Ioni Bowcher
1003Cody V SchemmerUnited Kingdom2026-06-04Chanay, Jeffrey A Esq PROPOSAL45Xuxue Feng
1004Deepesh A RimItaly2026-06-06Chanay, Jeffrey A Esq NEGOTIATION30Xuxue Feng
1005Kaitlin X ChuiBrazil2026-06-21Buckley Miller Wright NEGOTIATION33Ivan Magalhaes
1006Ricardo S AlbaresRussia2026-06-02Chapman, Ross E Esq PROPOSAL73Stephen Shaw
1007Darci D InouyeArgentina2026-06-27Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1008Jennifer Q StensethUnited Kingdom2026-05-31Commercial Press UNQUALIFIED78Amy Elsner
1009Izzy Y PoquetteAustralia2026-06-09Morlong Associates RENEWAL98Amy Elsner
1010Kadeem R GauchoFrance2026-06-17Benton, John B Jr UNQUALIFIED85Anna Fali
1011Antonio P OldroydRussia2026-06-26Truhlar And Truhlar Attys NEGOTIATION58Anna Fali
1012Cody C MaletUnited Kingdom2026-06-17Feltz Printing Service PROPOSAL84Ivan Magalhaes
1013Tony H SchemmerUnited Kingdom2026-06-08Rousseaux, Michael Esq QUALIFIED41Xuxue Feng
1014Wickens U PerinCanada2026-06-25Printing Dimensions RENEWAL68Stephen Shaw
1015Emily X PoquetteGermany2026-06-29Chemel, James L Cpa QUALIFIED80Bernardo Dominic
1016Wickens K MarrierAustralia2026-06-10Feltz Printing Service NEW64Ioni Bowcher
1017David R SergiJapan2026-06-02Rangoni Of Florence QUALIFIED47Ivan Magalhaes
1018Chavez F MaletCanada2026-06-15Benton, John B Jr NEW81Onyama Limba
1019Jefferson R SergiBrazil2026-06-25Truhlar And Truhlar Attys RENEWAL44Stephen Shaw
1020Jeanfrancois S NickaAustralia2026-06-26King, Christopher A Esq PROPOSAL45Onyama Limba
1021Claire Y AmigonUnited Kingdom2026-06-04King, Christopher A Esq QUALIFIED24Amy Elsner
1022Aruna E PerinBrazil2026-06-25Benton, John B Jr RENEWAL7Amy Elsner
1023Wickens O GlickJapan2026-06-17Benton, John B Jr QUALIFIED77Xuxue Feng
1024Arvin E SaylorsJapan2026-06-14Chapman, Ross E Esq PROPOSAL93Onyama Limba
1025Adams D SlusarskiFrance2026-06-22Chemel, James L Cpa QUALIFIED55Bernardo Dominic
1026Julie F GillianArgentina2026-06-17Printing Dimensions RENEWAL7Onyama Limba
1027Ivar H PoquetteCanada2026-06-14Dorl, James J Esq NEGOTIATION79Asiya Javayant
1028Jefferson H StensethCanada2026-06-09Chemel, James L Cpa UNQUALIFIED36Asiya Javayant
1029Emily D OldroydItaly2026-06-28Feiner Bros PROPOSAL46Ioni Bowcher
1030Octavia J RoysterIndia2026-06-28Dorl, James J Esq NEGOTIATION15Bernardo Dominic
1031Ashley B IturbideRussia2026-06-02Chemel, James L Cpa RENEWAL4Ioni Bowcher
1032Munro Q OstroskyItaly2026-06-09Benton, John B Jr PROPOSAL5Ivan Magalhaes
1033James T OstroskySpain2026-06-13Commercial Press NEW96Xuxue Feng
1034Munro Y RoysterFrance2026-06-04Rangoni Of Florence RENEWAL40Amy Elsner
1035Ivar U SergiSpain2026-06-16Commercial Press RENEWAL7Asiya Javayant
1036Aika L BriddickItaly2026-06-25Chapman, Ross E Esq QUALIFIED82Elwin Sharvill
1037Faith M MaletUnited Kingdom2026-06-01Truhlar And Truhlar Attys PROPOSAL45Onyama Limba
1038Clifford P VenereUnited Kingdom2026-06-02Buckley Miller Wright NEGOTIATION81Ivan Magalhaes
1039Ashley G DarakjyGermany2026-06-20Morlong Associates UNQUALIFIED36Amy Elsner
1040Emily M CampainIndia2026-06-18Feiner Bros QUALIFIED91Ioni Bowcher
1041Mujtaba N AlbaresRussia2026-06-09Chanay, Jeffrey A Esq UNQUALIFIED96Bernardo Dominic
1042Arvin A NickaSpain2026-06-06Chemel, James L Cpa UNQUALIFIED38Ioni Bowcher
1043Smith I FigeroaUnited Kingdom2026-06-29Chanay, Jeffrey A Esq NEGOTIATION52Amy Elsner
1044Jennifer J FigeroaGermany2026-06-22Dorl, James J Esq PROPOSAL63Asiya Javayant
1045Mujtaba L GlickAustralia2026-05-31Rousseaux, Michael Esq QUALIFIED27Stephen Shaw
1046Ashley C BriddickBrazil2026-06-16Rousseaux, Michael Esq QUALIFIED66Amy Elsner
1047Aditya D BriddickCanada2026-06-24King, Christopher A Esq NEGOTIATION25Onyama Limba
1048Stacey P DilliardCanada2026-06-28Chemel, James L Cpa UNQUALIFIED25Anna Fali
1049Kaitlin P GillianJapan2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED61Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Octavia S NestleFranceOnyama Limba PROPOSAL
Mujtaba T CaudyJapanIoni Bowcher RENEWAL
Antonio J GarufiGermanyIvan Magalhaes NEW
Sinclair O GauchoSpainIoni Bowcher NEGOTIATION
Aika C KolmetzUnited KingdomOnyama Limba NEW
Kadeem T SchemmerArgentinaBernardo Dominic PROPOSAL
Faith E FlosiIndiaXuxue Feng UNQUALIFIED
Ashley P PerinFranceIoni Bowcher RENEWAL
Emily M RutaJapanAmy Elsner PROPOSAL
Francesco X ChuiArgentinaXuxue Feng UNQUALIFIED
Leon G BriddickBrazilBernardo Dominic PROPOSAL
Emily R MaletArgentinaXuxue Feng UNQUALIFIED
Leja R NestleGermanyBernardo Dominic NEW
Wickens A FigeroaCanadaAmy Elsner NEW
Aruna E CaldareraRussiaIoni Bowcher NEGOTIATION
Claire J DilliardArgentinaAmy Elsner RENEWAL
Maria U StensethCanadaAmy Elsner PROPOSAL
Jefferson G CaudyUnited KingdomStephen Shaw UNQUALIFIED
Maria M MarrierIndiaXuxue Feng NEW
Stacey R CampainJapanElwin Sharvill NEGOTIATION
Isabel J CaldareraIndiaIoni Bowcher RENEWAL
Ivar J NickaSpainIoni Bowcher UNQUALIFIED
Darci K OldroydItalyElwin Sharvill UNQUALIFIED
Antonio C VocelkaArgentinaXuxue Feng NEW
Kadeem W RoysterAustraliaBernardo Dominic PROPOSAL
Greenwood M FlosiFranceElwin Sharvill QUALIFIED
Misaki H SchemmerFranceElwin Sharvill QUALIFIED
Izzy T GillianGermanyStephen Shaw PROPOSAL
Ricardo G AmigonItalyIvan Magalhaes NEW
Ashley K AmigonBrazilAmy Elsner QUALIFIED
Julie E FlosiCanadaAmy Elsner PROPOSAL
Smith U InouyeJapanAnna Fali UNQUALIFIED
Costa F RoysterItalyXuxue Feng PROPOSAL
Sinclair I MaletBrazilAsiya Javayant NEW
Ricardo C DarakjyArgentinaStephen Shaw QUALIFIED
Ivar X PerinAustraliaIvan Magalhaes NEW
Aditya U BologniaFranceIoni Bowcher NEW
Kadeem P MaletJapanIvan Magalhaes NEW
Mayumi F PoquetteGermanyElwin Sharvill QUALIFIED
Johnson V PoquetteItalyStephen Shaw RENEWAL
Maria F CaudyIndiaElwin Sharvill QUALIFIED
Leon S CaudyUnited KingdomOnyama Limba RENEWAL
Jeanfrancois R DilliardAustraliaElwin Sharvill NEW
Cody N NestleIndiaIvan Magalhaes RENEWAL
Salvatore J ButtBrazilAnna Fali NEW
Deepesh V SaylorsGermanyElwin Sharvill UNQUALIFIED
Kadeem M PerinIndiaXuxue Feng QUALIFIED
Clifford V BologniaFranceElwin Sharvill UNQUALIFIED
Julie J ShinkoAustraliaElwin Sharvill RENEWAL
Faith Y FerenczAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Sinclair J Oldroyd
Mayumi M Iturbide
Mujtaba F Butt
Chavez Q Iturbide
Rodrigues Y Nestle
Alejandro Q Iturbide
Ricardo Q Perin
Sinclair G Bowley
David N Butt
Alejandro A Poquette
Ashley U Slusarski
Tony B Poquette
Claire O Oldroyd
Morrow M Tollner
Costa U Caudy
James P Stockham
Jeanfrancois C Malet
Misaki V Chui
Mayumi K Briddick
Izzy Q Slusarski
Jeanfrancois E Rulapaugh
Claire S Kolmetz
Alejandro T Ostrosky
Aika Y Kolmetz
Sinclair T Whobrey
Julie R Ostrosky
Ivar N Caldarera
Murillo F Albares
Stacey M Albares
Murillo L Perin
Antonio P Maclead
Aditya X Paprocki
Emily F Morasca
Ricardo K Malet
Costa Z Oldroyd
Mayumi E Malet
Isabel Y Figeroa
Faith L Iturbide
Octavia B Gaucho
Ivar J Butt
Jones V Caudy
Jeanfrancois F Poquette
Morrow P Rulapaugh
Mayumi X Dilliard
Alejandro A Shinko
David F Rim
Ivar O Maclead
Maria I Darakjy
Chavez D Wieser
Misaki Q Foller
IdCountryDate
1000Italy2026-06-14
1001Brazil2026-06-23
1002United Kingdom2026-06-15
1003France2026-06-21
1004France2026-06-14
1005Australia2026-06-06
1006Germany2026-06-09
1007Brazil2026-06-16
1008Japan2026-06-19
1009Argentina2026-06-06
1010Russia2026-06-18
1011Italy2026-05-31
1012Japan2026-06-29
1013Canada2026-06-24
1014Argentina2026-06-22
1015Germany2026-06-09
1016Spain2026-06-21
1017Australia2026-06-13
1018Spain2026-06-19
1019Germany2026-06-20
1020Brazil2026-06-27
1021Russia2026-06-04
1022Canada2026-06-21
1023United Kingdom2026-06-09
1024India2026-06-11
1025Russia2026-06-19
1026India2026-06-24
1027France2026-06-18
1028France2026-06-27
1029Japan2026-06-28
1030France2026-06-15
1031Australia2026-06-19
1032Italy2026-06-05
1033Canada2026-06-17
1034Brazil2026-06-05
1035Spain2026-06-18
1036France2026-06-22
1037Spain2026-06-05
1038Spain2026-06-17
1039Japan2026-06-29
1040Argentina2026-06-12
1041Brazil2026-06-24
1042India2026-06-10
1043United Kingdom2026-06-22
1044United Kingdom2026-06-19
1045Germany2026-06-18
1046Spain2026-06-16
1047Australia2026-06-22
1048France2026-06-23
1049Australia2026-06-18

On-Demand Data

NameIdCountryDate
Leon O Kusko1000India2026-06-20
Octavia D Morasca1001Australia2026-05-31
Maisha U Foller1002France2026-06-26
Nicolas H Gaucho1003Spain2026-06-26
Deepesh U Oldroyd1004Argentina2026-06-20
Maisha A Figeroa1005Canada2026-06-02
Misaki Z Figeroa1006Germany2026-06-05
Jennifer N Inouye1007Italy2026-06-14
Darci C Ruta1008Australia2026-06-14
Kadeem Z Bowley1009India2026-06-11
Aika O Oldroyd1010Australia2026-06-13
Rodrigues K Gaucho1011Canada2026-06-03
Faith Y Malet1012Japan2026-06-07
Isabel N Malet1013Japan2026-06-16
Aruna U Sergi1014Germany2026-06-27
Darci Y Iturbide1015Spain2026-06-04
Juan P Whobrey1016Spain2026-06-14
James L Caudy1017Russia2026-06-26
Leja N Figeroa1018Australia2026-06-22
Francesco K Venere1019Spain2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci U NestleCanadaAnna Fali UNQUALIFIED
Adams G GlickIndiaElwin Sharvill QUALIFIED
Rodrigues B GillianAustraliaXuxue Feng RENEWAL
Aruna Y KuskoCanadaIoni Bowcher RENEWAL
Kaitlin O FerenczItalyAsiya Javayant PROPOSAL
Ashley O SergiIndiaBernardo Dominic PROPOSAL
Faith Y TollnerAustraliaStephen Shaw NEGOTIATION
David X RutaRussiaStephen Shaw QUALIFIED
Aruna C KolmetzBrazilIvan Magalhaes UNQUALIFIED
Chavez P RoysterGermanyXuxue Feng QUALIFIED
James M OstroskyFranceBernardo Dominic PROPOSAL
Aika R NickaRussiaOnyama Limba QUALIFIED
Juan Z FigeroaGermanyAsiya Javayant RENEWAL
Octavia Z NickaItalyIvan Magalhaes NEW
Maria U BriddickAustraliaOnyama Limba NEW
Antonio F OstroskySpainAnna Fali UNQUALIFIED
Octavia K OldroydRussiaOnyama Limba RENEWAL
Greenwood H InouyeFranceOnyama Limba UNQUALIFIED
Clifford O DarakjyGermanyAnna Fali NEGOTIATION
Izzy D PoquetteIndiaIoni Bowcher NEGOTIATION
Faith X WaycottJapanBernardo Dominic NEW
Francesco B InouyeCanadaStephen Shaw QUALIFIED
Julie Q FigeroaUnited KingdomAnna Fali RENEWAL
Morrow B PerinBrazilBernardo Dominic NEGOTIATION
Smith R ButtSpainOnyama Limba NEGOTIATION
David J FigeroaAustraliaOnyama Limba QUALIFIED
Julie V ButtIndiaXuxue Feng NEW
Octavia S PaprockiAustraliaAnna Fali NEGOTIATION
Clifford R MaletUnited KingdomElwin Sharvill RENEWAL
Chavez J InouyeJapanAnna Fali NEGOTIATION
Munro P TollnerRussiaElwin Sharvill QUALIFIED
Isabel G MacleadCanadaAsiya Javayant RENEWAL
Octavia D StensethRussiaAnna Fali QUALIFIED
Silvio B DilliardSpainElwin Sharvill NEW
Munro X MaletGermanyStephen Shaw QUALIFIED
Jones Y NickaJapanElwin Sharvill NEGOTIATION
Leja J VocelkaUnited KingdomAsiya Javayant NEW
Aika E DilliardFranceAsiya Javayant NEW
Jennifer O OstroskyFranceAmy Elsner NEGOTIATION
Aika E CampainGermanyIoni Bowcher 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>