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
Rodrigues W CampainSpainElwin Sharvill UNQUALIFIED
Aruna D FlosiGermanyStephen Shaw UNQUALIFIED
Chavez K ShinkoUnited KingdomStephen Shaw QUALIFIED
David U BologniaUnited KingdomStephen Shaw PROPOSAL
Munro M SergiFranceAnna Fali NEW
Misaki P GlickIndiaIvan Magalhaes QUALIFIED
Isabel V MaletFranceAsiya Javayant RENEWAL
Leon V MaletArgentinaAsiya Javayant NEGOTIATION
Munro F RoysterItalyBernardo Dominic NEGOTIATION
Jeanfrancois K SchemmerBrazilIoni Bowcher PROPOSAL
James Q MacleadBrazilAnna Fali QUALIFIED
Chavez G MaletArgentinaStephen Shaw QUALIFIED
Leja A BriddickCanadaIoni Bowcher UNQUALIFIED
Johnson N SchemmerItalyBernardo Dominic RENEWAL
Aditya J GlickRussiaBernardo Dominic QUALIFIED
Julie J WieserArgentinaAnna Fali UNQUALIFIED
Faith P NestleGermanyAmy Elsner RENEWAL
Aruna M SergiGermanyAnna Fali PROPOSAL
Greenwood J BowleyAustraliaXuxue Feng QUALIFIED
Arvin J WhobreyJapanAnna Fali RENEWAL
Wickens A VocelkaBrazilIoni Bowcher NEW
Aditya B SaylorsAustraliaXuxue Feng NEGOTIATION
Maisha Y OldroydUnited KingdomAsiya Javayant QUALIFIED
Salvatore L FerenczFranceAsiya Javayant UNQUALIFIED
Jefferson Q ButtUnited KingdomElwin Sharvill UNQUALIFIED
Aruna B VocelkaUnited KingdomElwin Sharvill QUALIFIED
Izzy A GlickArgentinaElwin Sharvill PROPOSAL
Greenwood Q CaldareraAustraliaAnna Fali QUALIFIED
Maisha J InouyeRussiaBernardo Dominic RENEWAL
Mayumi L CaldareraSpainBernardo Dominic UNQUALIFIED
Murillo M MaletFranceIoni Bowcher UNQUALIFIED
Greenwood O OstroskyFranceOnyama Limba NEW
Deepesh H VenereBrazilAnna Fali NEGOTIATION
Kadeem O DoeIndiaAsiya Javayant NEW
Cody B InouyeAustraliaIvan Magalhaes QUALIFIED
Stacey V WieserUnited KingdomIvan Magalhaes NEW
Claire S SergiGermanyAsiya Javayant PROPOSAL
Rodrigues A NestleAustraliaIvan Magalhaes RENEWAL
Johnson I MacleadCanadaAsiya Javayant NEGOTIATION
Deepesh V IturbideIndiaAnna Fali NEW
Deepesh C FigeroaUnited KingdomBernardo Dominic PROPOSAL
Aika G CampainGermanyIvan Magalhaes RENEWAL
Izzy W GarufiSpainIvan Magalhaes PROPOSAL
Maria M AmigonJapanXuxue Feng RENEWAL
Jennifer T FigeroaItalyElwin Sharvill UNQUALIFIED
Rodrigues L WieserUnited KingdomIoni Bowcher QUALIFIED
Julie S WieserSpainAsiya Javayant NEW
James T PerinFranceBernardo Dominic RENEWAL
Aika G BriddickSpainAmy Elsner QUALIFIED
Sinclair A StensethRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin E ButtGermanyAmy Elsner PROPOSAL
Salvatore K BologniaSpainOnyama Limba RENEWAL
Silvio Q ShinkoCanadaXuxue Feng QUALIFIED
Francesco T BriddickAustraliaAsiya Javayant NEW
Murillo C InouyeAustraliaStephen Shaw PROPOSAL
Misaki V GarufiItalyAnna Fali NEW
Jones H KolmetzFranceAnna Fali NEGOTIATION
Chavez H SchemmerFranceOnyama Limba UNQUALIFIED
Clifford L SaylorsCanadaAnna Fali RENEWAL
James N StensethUnited KingdomAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika L DoeAustralia2026-07-15Chanay, Jeffrey A Esq NEGOTIATION72Onyama Limba
1001Ashley N FollerIndia2026-08-06Chapman, Ross E Esq PROPOSAL93Ioni Bowcher
1002Greenwood A WhobreyCanada2026-07-30Chemel, James L Cpa QUALIFIED67Asiya Javayant
1003Rodrigues W PaprockiCanada2026-07-18Benton, John B Jr NEGOTIATION1Amy Elsner
1004Tony B OldroydAustralia2026-08-04Dorl, James J Esq UNQUALIFIED48Xuxue Feng
1005Francesco M TollnerIndia2026-08-05Printing Dimensions UNQUALIFIED66Ivan Magalhaes
1006Murillo I WaycottIndia2026-08-02Dorl, James J Esq UNQUALIFIED42Onyama Limba
1007Greenwood T IturbideAustralia2026-07-11Buckley Miller Wright QUALIFIED55Elwin Sharvill
1008Silvio I SaylorsJapan2026-08-03Chapman, Ross E Esq PROPOSAL34Anna Fali
1009David J GarufiFrance2026-07-11Benton, John B Jr QUALIFIED81Stephen Shaw
1010Kadeem X RimRussia2026-07-20Morlong Associates RENEWAL47Stephen Shaw
1011Emily Y OldroydIndia2026-08-04Chapman, Ross E Esq NEGOTIATION36Ivan Magalhaes
1012Jefferson Q GlickUnited Kingdom2026-07-15Feltz Printing Service RENEWAL47Anna Fali
1013Wickens Z CaldareraJapan2026-07-09Feltz Printing Service RENEWAL21Ivan Magalhaes
1014Izzy H AmigonSpain2026-07-20Printing Dimensions PROPOSAL25Bernardo Dominic
1015Morrow V StensethGermany2026-07-26Chanay, Jeffrey A Esq NEGOTIATION39Onyama Limba
1016Leja H RutaCanada2026-07-31Truhlar And Truhlar Attys NEW94Asiya Javayant
1017Octavia C OldroydItaly2026-07-25Chapman, Ross E Esq QUALIFIED62Elwin Sharvill
1018Francesco K VenereIndia2026-07-11Benton, John B Jr NEGOTIATION7Ivan Magalhaes
1019Silvio S WaycottArgentina2026-07-24Truhlar And Truhlar Attys QUALIFIED35Bernardo Dominic
1020Jeanfrancois Y FerenczJapan2026-07-13Dorl, James J Esq UNQUALIFIED74Ivan Magalhaes
1021Ivar F SaylorsGermany2026-07-10Benton, John B Jr QUALIFIED46Stephen Shaw
1022Smith R BowleyCanada2026-07-24Rangoni Of Florence PROPOSAL95Ioni Bowcher
1023Jennifer R InouyeIndia2026-07-22Benton, John B Jr UNQUALIFIED4Amy Elsner
1024Kaitlin E VocelkaGermany2026-07-14Commercial Press PROPOSAL35Anna Fali
1025Aruna Z VocelkaIndia2026-08-04Feltz Printing Service RENEWAL84Amy Elsner
1026Morrow L WhobreyRussia2026-07-19Rangoni Of Florence PROPOSAL86Anna Fali
1027Salvatore P VenereIndia2026-07-16Rangoni Of Florence PROPOSAL18Bernardo Dominic
1028Aruna V GauchoUnited Kingdom2026-07-13Feiner Bros QUALIFIED38Stephen Shaw
1029Isabel I FerenczIndia2026-07-14Morlong Associates PROPOSAL49Ioni Bowcher
1030Francesco O InouyeArgentina2026-07-18Morlong Associates UNQUALIFIED7Asiya Javayant
1031Mujtaba T DoeItaly2026-07-26Feiner Bros NEGOTIATION4Elwin Sharvill
1032Deepesh H FerenczIndia2026-07-16Rousseaux, Michael Esq PROPOSAL76Stephen Shaw
1033Alejandro Z BriddickBrazil2026-07-23Feltz Printing Service UNQUALIFIED85Ioni Bowcher
1034Ashley H VenereBrazil2026-07-28Buckley Miller Wright NEGOTIATION83Bernardo Dominic
1035Arvin X MarrierArgentina2026-07-24Chapman, Ross E Esq RENEWAL61Ivan Magalhaes
1036Silvio S StensethSpain2026-07-21Chanay, Jeffrey A Esq NEW31Xuxue Feng
1037Octavia H WhobreyJapan2026-08-05Printing Dimensions PROPOSAL79Amy Elsner
1038Ivar K SaylorsJapan2026-08-04Commercial Press NEGOTIATION16Stephen Shaw
1039Morrow O MorascaRussia2026-07-13Benton, John B Jr UNQUALIFIED54Xuxue Feng
1040Wickens N FerenczBrazil2026-08-05Feltz Printing Service RENEWAL31Anna Fali
1041Misaki P DilliardBrazil2026-07-15Printing Dimensions QUALIFIED29Amy Elsner
1042Adams A VocelkaFrance2026-07-16Commercial Press UNQUALIFIED82Amy Elsner
1043Jefferson Y NestleJapan2026-07-11Feltz Printing Service NEW24Bernardo Dominic
1044Aika G PerinItaly2026-07-31Buckley Miller Wright NEGOTIATION36Xuxue Feng
1045Morrow F KuskoCanada2026-07-13Printing Dimensions PROPOSAL39Onyama Limba
1046Sinclair M DilliardSpain2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED66Onyama Limba
1047Morrow C KuskoIndia2026-08-07Rousseaux, Michael Esq NEW34Ioni Bowcher
1048Chavez L BologniaSpain2026-07-26Rangoni Of Florence NEW44Elwin Sharvill
1049Jefferson D AmigonBrazil2026-07-16Commercial Press PROPOSAL15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily P ShinkoCanadaAsiya Javayant NEW
Leon Y MaletAustraliaBernardo Dominic RENEWAL
James V SlusarskiRussiaAsiya Javayant NEGOTIATION
Morrow M VocelkaJapanAmy Elsner NEGOTIATION
James A PoquetteCanadaAsiya Javayant RENEWAL
Faith S PoquetteRussiaBernardo Dominic QUALIFIED
Emily S WhobreyItalyStephen Shaw QUALIFIED
Jones G RoysterArgentinaIoni Bowcher NEW
Francesco R RulapaughCanadaAmy Elsner NEW
Arvin W AlbaresItalyAmy Elsner NEGOTIATION
Silvio Y SlusarskiItalyOnyama Limba QUALIFIED
Octavia G IturbideSpainIoni Bowcher NEGOTIATION
Aruna Y OstroskySpainOnyama Limba NEW
Cody S SlusarskiRussiaAmy Elsner NEW
Jeanfrancois S MacleadBrazilOnyama Limba PROPOSAL
Johnson N BowleySpainOnyama Limba PROPOSAL
Ivar P ChuiGermanyOnyama Limba NEW
Morrow K ShinkoArgentinaAnna Fali NEGOTIATION
Maria Y FlosiAustraliaBernardo Dominic PROPOSAL
Murillo S SlusarskiSpainBernardo Dominic NEW
Stacey I FerenczGermanyBernardo Dominic NEGOTIATION
Juan I MarrierJapanXuxue Feng QUALIFIED
Aika J CaldareraIndiaIvan Magalhaes UNQUALIFIED
Octavia N KolmetzGermanyAsiya Javayant PROPOSAL
Maria Q PerinJapanAsiya Javayant QUALIFIED
Ricardo J WaycottJapanElwin Sharvill NEW
Munro K FollerUnited KingdomIoni Bowcher RENEWAL
Cody O GarufiFranceAmy Elsner QUALIFIED
Adams O PerinJapanAsiya Javayant QUALIFIED
Juan A RimCanadaAnna Fali PROPOSAL
Antonio J AmigonGermanyXuxue Feng NEW
James B NickaRussiaStephen Shaw QUALIFIED
Ricardo Y OldroydAustraliaElwin Sharvill RENEWAL
Sinclair Y PerinSpainIoni Bowcher PROPOSAL
Misaki R DoeFranceOnyama Limba NEGOTIATION
Darci U PerinJapanIvan Magalhaes RENEWAL
Tony C OldroydArgentinaIvan Magalhaes QUALIFIED
Cody M OstroskyAustraliaAnna Fali QUALIFIED
Jefferson J PerinGermanyAnna Fali UNQUALIFIED
Deepesh H GillianFranceIvan Magalhaes UNQUALIFIED
Aditya L VocelkaIndiaAsiya Javayant UNQUALIFIED
Stacey M StockhamRussiaStephen Shaw UNQUALIFIED
James D GauchoItalyBernardo Dominic NEGOTIATION
Ivar W KuskoIndiaAsiya Javayant NEGOTIATION
Rodrigues D RimJapanStephen Shaw UNQUALIFIED
Arvin O FerenczUnited KingdomAnna Fali RENEWAL
Leon M BowleyGermanyBernardo Dominic NEW
David E MorascaJapanStephen Shaw UNQUALIFIED
Sinclair Z TollnerBrazilBernardo Dominic RENEWAL
Chavez J DoeIndiaBernardo Dominic RENEWAL
Frozen Columns
Name
Sinclair N Gaucho
Aditya U Chui
Adams Y Kolmetz
Morrow W Darakjy
Clifford J Briddick
Jennifer H Gaucho
Silvio C Iturbide
Smith M Poquette
Maria P Figeroa
Deepesh N Butt
Adams C Maclead
Aika Q Butt
Misaki R Dilliard
Mayumi Z Nestle
Mujtaba W Vocelka
Maisha O Sergi
Jennifer V Gillian
Adams U Oldroyd
Emily B Vocelka
Chavez Y Gillian
Stacey J Venere
Munro V Waycott
Cody J Flosi
Ricardo E Butt
Munro D Iturbide
Jeanfrancois R Slusarski
Tony B Foller
Stacey X Gillian
Cody M Wieser
Adams Q Maclead
Deepesh D Saylors
Clifford O Slusarski
Adams P Maclead
Mayumi Q Poquette
Salvatore I Royster
David T Whobrey
Aika O Sergi
Chavez M Paprocki
Leja B Malet
Greenwood A Doe
Aruna C Kusko
Claire A Ferencz
Morrow Y Kusko
Salvatore F Doe
Ashley T Inouye
Juan Y Gillian
Jennifer V Butt
Cody E Marrier
Jones L Schemmer
Misaki N Dilliard
IdCountryDate
1000Russia2026-07-14
1001Canada2026-08-02
1002Canada2026-07-31
1003Japan2026-08-01
1004Argentina2026-08-07
1005Italy2026-07-29
1006Brazil2026-07-10
1007Australia2026-07-28
1008Japan2026-07-22
1009Argentina2026-07-23
1010Japan2026-08-02
1011Japan2026-07-17
1012Russia2026-08-07
1013Australia2026-07-17
1014Spain2026-07-23
1015India2026-08-06
1016Spain2026-07-19
1017Brazil2026-07-14
1018Germany2026-07-21
1019Australia2026-07-26
1020Canada2026-07-14
1021Japan2026-08-07
1022India2026-08-06
1023Australia2026-07-19
1024Canada2026-07-19
1025Italy2026-07-26
1026India2026-07-29
1027India2026-08-04
1028India2026-07-17
1029France2026-07-09
1030Argentina2026-08-04
1031Spain2026-07-25
1032Russia2026-07-26
1033Russia2026-07-11
1034Canada2026-08-02
1035United Kingdom2026-07-28
1036India2026-07-26
1037Germany2026-07-20
1038Germany2026-07-28
1039United Kingdom2026-07-19
1040Australia2026-07-31
1041Brazil2026-07-17
1042Italy2026-07-19
1043Brazil2026-07-16
1044Russia2026-07-30
1045United Kingdom2026-07-30
1046Japan2026-08-02
1047Russia2026-07-26
1048Japan2026-07-18
1049India2026-07-29

On-Demand Data

NameIdCountryDate
Misaki W Glick1000Spain2026-07-15
Ivar Y Malet1001Italy2026-07-13
Deepesh F Waycott1002Argentina2026-07-31
Deepesh Z Garufi1003Japan2026-07-19
David G Amigon1004Spain2026-08-04
Mujtaba B Gillian1005India2026-07-21
Nicolas U Oldroyd1006Spain2026-07-30
Izzy F Flosi1007Russia2026-07-27
Darci U Perin1008Russia2026-07-09
Juan S Oldroyd1009Japan2026-08-06
Tony U Tollner1010Australia2026-07-12
Salvatore F Nestle1011Argentina2026-07-26
Greenwood W Doe1012Spain2026-07-27
Greenwood S Malet1013Italy2026-07-12
Arvin R Chui1014Australia2026-07-13
Mujtaba J Morasca1015Brazil2026-07-17
Johnson X Morasca1016France2026-08-06
Mujtaba G Tollner1017Argentina2026-07-17
Smith V Dilliard1018Japan2026-07-22
Isabel M Caudy1019Canada2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha C DoeRussiaBernardo Dominic PROPOSAL
Aruna G NickaUnited KingdomElwin Sharvill NEGOTIATION
Stacey T RoysterCanadaIvan Magalhaes RENEWAL
Alejandro S ButtSpainStephen Shaw UNQUALIFIED
Chavez I MaletAustraliaOnyama Limba NEW
Antonio F ButtItalyStephen Shaw UNQUALIFIED
Deepesh D PaprockiArgentinaElwin Sharvill NEGOTIATION
Juan A IturbideFranceBernardo Dominic NEGOTIATION
Leon M VenereArgentinaIvan Magalhaes RENEWAL
Kadeem Y FigeroaGermanyAnna Fali PROPOSAL
Mujtaba B GlickGermanyXuxue Feng NEGOTIATION
Johnson P IturbideItalyIoni Bowcher NEGOTIATION
Smith P PaprockiFranceIvan Magalhaes QUALIFIED
Nicolas V FlosiItalyOnyama Limba PROPOSAL
Leja D ButtFranceOnyama Limba QUALIFIED
Ashley Z BriddickRussiaOnyama Limba NEW
Johnson B VenereIndiaAnna Fali NEGOTIATION
Maria W KuskoSpainIoni Bowcher UNQUALIFIED
Antonio S CaudyCanadaElwin Sharvill NEW
Clifford G CampainCanadaAsiya Javayant NEGOTIATION
Silvio V RimUnited KingdomXuxue Feng QUALIFIED
Rodrigues Q IturbideSpainOnyama Limba NEGOTIATION
Juan Q FlosiIndiaAnna Fali PROPOSAL
Sinclair Q OstroskySpainBernardo Dominic NEGOTIATION
Mujtaba Q SergiArgentinaIvan Magalhaes NEW
Chavez X AmigonRussiaElwin Sharvill NEGOTIATION
Chavez C AlbaresGermanyAnna Fali PROPOSAL
Emily V MacleadIndiaIvan Magalhaes UNQUALIFIED
Izzy B GlickGermanyAnna Fali NEGOTIATION
Kaitlin X ShinkoCanadaAsiya Javayant QUALIFIED
Rodrigues I BowleyAustraliaBernardo Dominic NEW
Salvatore D MacleadGermanyIoni Bowcher UNQUALIFIED
Faith V DoeIndiaStephen Shaw QUALIFIED
Aruna V TollnerRussiaStephen Shaw UNQUALIFIED
Kaitlin M ChuiUnited KingdomAsiya Javayant QUALIFIED
Mujtaba G OstroskyBrazilStephen Shaw NEW
Sinclair P FlosiBrazilIvan Magalhaes NEW
Emily D VocelkaGermanyXuxue Feng NEGOTIATION
Rodrigues I CaudySpainAmy Elsner RENEWAL
Maria F WaycottArgentinaBernardo Dominic 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>