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
Clifford X NestleJapanOnyama Limba RENEWAL
Aika C WieserFranceIoni Bowcher PROPOSAL
Leon K SchemmerJapanAnna Fali NEW
Jones R SchemmerItalyXuxue Feng NEGOTIATION
Claire R DoeBrazilIoni Bowcher NEW
Sinclair S SlusarskiUnited KingdomXuxue Feng RENEWAL
Claire J TollnerCanadaOnyama Limba QUALIFIED
Rodrigues C BologniaIndiaAnna Fali QUALIFIED
Stacey X DilliardJapanAmy Elsner PROPOSAL
Alejandro T WaycottIndiaOnyama Limba NEGOTIATION
Aika B VenereSpainIvan Magalhaes UNQUALIFIED
Aditya Q PerinRussiaElwin Sharvill NEW
Johnson H GarufiArgentinaElwin Sharvill QUALIFIED
Munro Y MacleadBrazilBernardo Dominic UNQUALIFIED
Arvin S DoeItalyStephen Shaw NEW
Murillo Q TollnerItalyStephen Shaw UNQUALIFIED
Murillo S CaudyFranceAmy Elsner UNQUALIFIED
Murillo M MaletAustraliaElwin Sharvill PROPOSAL
Adams S BowleySpainOnyama Limba PROPOSAL
Greenwood I RulapaughJapanIoni Bowcher QUALIFIED
Emily A AmigonFranceStephen Shaw QUALIFIED
Ashley K GillianArgentinaAnna Fali UNQUALIFIED
Kaitlin I AmigonUnited KingdomAmy Elsner UNQUALIFIED
Francesco U BologniaArgentinaStephen Shaw NEGOTIATION
Jefferson Q DarakjyJapanBernardo Dominic NEW
Julie U GarufiRussiaAmy Elsner RENEWAL
Adams C BowleyArgentinaElwin Sharvill NEW
Emily W InouyeUnited KingdomBernardo Dominic RENEWAL
Munro J GlickIndiaElwin Sharvill NEW
Leon Z GarufiItalyAsiya Javayant PROPOSAL
Silvio M GauchoGermanyXuxue Feng UNQUALIFIED
Jeanfrancois H FollerArgentinaBernardo Dominic NEW
Smith W DilliardArgentinaStephen Shaw UNQUALIFIED
Claire J MaletArgentinaBernardo Dominic UNQUALIFIED
Clifford D NestleSpainOnyama Limba RENEWAL
Claire R CaldareraAustraliaStephen Shaw UNQUALIFIED
Izzy D BriddickArgentinaIvan Magalhaes QUALIFIED
Clifford S SchemmerBrazilAmy Elsner QUALIFIED
Antonio A NickaAustraliaAsiya Javayant NEGOTIATION
Julie S StockhamCanadaAnna Fali QUALIFIED
Costa C GauchoIndiaAsiya Javayant NEGOTIATION
David J WaycottFranceBernardo Dominic PROPOSAL
Nicolas P VocelkaArgentinaAnna Fali UNQUALIFIED
Mujtaba S DarakjyGermanyBernardo Dominic NEW
Julie W StockhamArgentinaBernardo Dominic NEGOTIATION
Jones M FerenczFranceIoni Bowcher NEGOTIATION
Greenwood P SchemmerBrazilOnyama Limba NEW
Salvatore Q OstroskyCanadaStephen Shaw UNQUALIFIED
Greenwood L WieserSpainXuxue Feng RENEWAL
Munro E WieserRussiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois Q DoeAustraliaIvan Magalhaes UNQUALIFIED
Clifford U ShinkoUnited KingdomIoni Bowcher QUALIFIED
Silvio V IturbideFranceIoni Bowcher QUALIFIED
Aditya V TollnerIndiaIoni Bowcher NEW
Costa J ChuiFranceAsiya Javayant NEW
Smith H MorascaAustraliaElwin Sharvill NEGOTIATION
Aika F GauchoCanadaBernardo Dominic UNQUALIFIED
Maria E MaletJapanBernardo Dominic NEGOTIATION
Kadeem H GauchoAustraliaXuxue Feng RENEWAL
Isabel C DilliardFranceIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire V TollnerIndia2026-08-02Rousseaux, Michael Esq PROPOSAL17Ioni Bowcher
1001Misaki C StockhamJapan2026-08-25Benton, John B Jr PROPOSAL76Onyama Limba
1002Deepesh X SaylorsGermany2026-08-17Commercial Press NEGOTIATION4Amy Elsner
1003Aruna S GarufiRussia2026-08-17Rousseaux, Michael Esq PROPOSAL98Ioni Bowcher
1004Sinclair M CaudyJapan2026-08-20Benton, John B Jr QUALIFIED0Stephen Shaw
1005Salvatore B KuskoAustralia2026-08-03Feiner Bros UNQUALIFIED45Bernardo Dominic
1006Munro C GillianFrance2026-08-16Feiner Bros PROPOSAL35Amy Elsner
1007Misaki E KolmetzBrazil2026-08-03Rangoni Of Florence UNQUALIFIED83Xuxue Feng
1008Alejandro U SchemmerArgentina2026-07-29Feiner Bros NEW77Asiya Javayant
1009Misaki G WieserJapan2026-08-04Chapman, Ross E Esq RENEWAL81Elwin Sharvill
1010Faith J WaycottArgentina2026-08-18Benton, John B Jr QUALIFIED64Anna Fali
1011Greenwood A TollnerSpain2026-08-23Buckley Miller Wright NEW64Ioni Bowcher
1012Izzy V FigeroaCanada2026-08-05Feiner Bros UNQUALIFIED59Elwin Sharvill
1013Antonio M FigeroaRussia2026-08-06Chapman, Ross E Esq NEGOTIATION9Bernardo Dominic
1014Misaki I DarakjyArgentina2026-08-15Dorl, James J Esq PROPOSAL91Ioni Bowcher
1015Tony M InouyeFrance2026-08-02Buckley Miller Wright NEW67Asiya Javayant
1016Mayumi L OstroskyUnited Kingdom2026-08-12Chapman, Ross E Esq RENEWAL22Stephen Shaw
1017Munro D DilliardItaly2026-07-29Rousseaux, Michael Esq QUALIFIED71Ivan Magalhaes
1018Jeanfrancois U WhobreySpain2026-08-24Chemel, James L Cpa UNQUALIFIED19Elwin Sharvill
1019Jones E RulapaughCanada2026-08-21Dorl, James J Esq NEGOTIATION53Elwin Sharvill
1020Salvatore O OstroskyIndia2026-08-13Rousseaux, Michael Esq UNQUALIFIED90Xuxue Feng
1021Ashley F DarakjyArgentina2026-08-23Dorl, James J Esq NEGOTIATION51Xuxue Feng
1022Munro Z SlusarskiItaly2026-08-01Chapman, Ross E Esq UNQUALIFIED74Elwin Sharvill
1023Smith W AmigonItaly2026-08-18Chapman, Ross E Esq UNQUALIFIED3Stephen Shaw
1024Ivar O MacleadGermany2026-08-14Feltz Printing Service NEW78Onyama Limba
1025Arvin A GillianArgentina2026-08-10Morlong Associates RENEWAL54Xuxue Feng
1026David P OstroskyBrazil2026-08-06Truhlar And Truhlar Attys NEGOTIATION94Amy Elsner
1027Greenwood D GauchoGermany2026-08-15Rousseaux, Michael Esq UNQUALIFIED44Xuxue Feng
1028Aika T InouyeArgentina2026-08-05King, Christopher A Esq RENEWAL89Bernardo Dominic
1029Morrow P MaletJapan2026-08-13Feltz Printing Service QUALIFIED0Asiya Javayant
1030Silvio J DarakjyBrazil2026-07-31Buckley Miller Wright UNQUALIFIED17Elwin Sharvill
1031Sinclair I InouyeAustralia2026-08-16Rousseaux, Michael Esq RENEWAL94Bernardo Dominic
1032Leja V CaudyRussia2026-08-24Buckley Miller Wright NEGOTIATION93Onyama Limba
1033Murillo W ButtGermany2026-07-30Benton, John B Jr NEGOTIATION62Bernardo Dominic
1034Aditya P InouyeAustralia2026-08-11Rousseaux, Michael Esq RENEWAL24Xuxue Feng
1035Kaitlin D DilliardFrance2026-08-17Chemel, James L Cpa PROPOSAL96Anna Fali
1036Ricardo K BowleyGermany2026-08-24Printing Dimensions UNQUALIFIED11Anna Fali
1037Adams T MacleadItaly2026-08-02Feltz Printing Service UNQUALIFIED30Ivan Magalhaes
1038James T GauchoIndia2026-08-02Feiner Bros RENEWAL62Onyama Limba
1039Rodrigues S GillianAustralia2026-07-29Chemel, James L Cpa QUALIFIED90Stephen Shaw
1040Octavia Y SaylorsRussia2026-08-02Benton, John B Jr RENEWAL10Xuxue Feng
1041Mujtaba F FollerJapan2026-08-18Feltz Printing Service NEGOTIATION35Onyama Limba
1042Morrow P GlickRussia2026-08-15Dorl, James J Esq RENEWAL11Bernardo Dominic
1043Deepesh Y RimIndia2026-08-09Buckley Miller Wright QUALIFIED45Ioni Bowcher
1044Deepesh P SaylorsGermany2026-08-21Rangoni Of Florence QUALIFIED26Amy Elsner
1045Maria G MorascaArgentina2026-08-26Feiner Bros NEGOTIATION2Xuxue Feng
1046Costa Z TollnerIndia2026-08-20Chemel, James L Cpa PROPOSAL82Ioni Bowcher
1047Wickens F MorascaSpain2026-08-01Feiner Bros RENEWAL63Ioni Bowcher
1048Ricardo R CampainJapan2026-08-09Chapman, Ross E Esq NEW12Xuxue Feng
1049Izzy G MaletArgentina2026-08-01Benton, John B Jr UNQUALIFIED8Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony W FigeroaJapanAmy Elsner RENEWAL
Kaitlin F CampainUnited KingdomIoni Bowcher UNQUALIFIED
Stacey W CampainRussiaIvan Magalhaes UNQUALIFIED
Ricardo R MacleadBrazilOnyama Limba NEW
Nicolas V WhobreyGermanyBernardo Dominic QUALIFIED
Morrow U NickaIndiaStephen Shaw NEGOTIATION
Francesco Y DilliardFranceAsiya Javayant NEGOTIATION
Maisha M SlusarskiAustraliaOnyama Limba QUALIFIED
Ricardo A WhobreyUnited KingdomStephen Shaw RENEWAL
Morrow Z VenereSpainAsiya Javayant NEW
Izzy W PoquetteGermanyAnna Fali NEGOTIATION
Munro T FollerCanadaIvan Magalhaes RENEWAL
Greenwood S MacleadCanadaIvan Magalhaes UNQUALIFIED
David T MorascaIndiaAmy Elsner UNQUALIFIED
Sinclair G VenereItalyBernardo Dominic RENEWAL
David D FollerBrazilStephen Shaw RENEWAL
Kaitlin H AlbaresAustraliaAnna Fali PROPOSAL
Julie T RutaGermanyBernardo Dominic UNQUALIFIED
Leja A FerenczAustraliaXuxue Feng NEW
Sinclair W GillianJapanBernardo Dominic NEW
Leon I PaprockiAustraliaElwin Sharvill NEGOTIATION
Costa U KolmetzBrazilAsiya Javayant PROPOSAL
Aika J FollerSpainIvan Magalhaes NEGOTIATION
Sinclair N PerinRussiaElwin Sharvill UNQUALIFIED
Jones P MacleadGermanyXuxue Feng QUALIFIED
Greenwood F GillianAustraliaOnyama Limba RENEWAL
Tony W FigeroaFranceOnyama Limba QUALIFIED
Salvatore E DarakjyGermanyOnyama Limba RENEWAL
Rodrigues F RimSpainIoni Bowcher NEGOTIATION
Faith U IturbideFranceAnna Fali QUALIFIED
Juan H VocelkaArgentinaOnyama Limba UNQUALIFIED
Tony V FigeroaFranceIvan Magalhaes NEGOTIATION
Salvatore G WieserArgentinaAnna Fali NEGOTIATION
Murillo T GauchoFranceBernardo Dominic NEGOTIATION
Deepesh L SergiSpainAsiya Javayant NEGOTIATION
Misaki Y PerinGermanyStephen Shaw QUALIFIED
Claire F FlosiItalyAmy Elsner NEW
Chavez V BriddickUnited KingdomAmy Elsner UNQUALIFIED
James G CaudyArgentinaStephen Shaw PROPOSAL
Maria N CampainIndiaStephen Shaw NEW
Isabel N ShinkoItalyStephen Shaw RENEWAL
Morrow R KuskoRussiaElwin Sharvill PROPOSAL
Misaki P ButtSpainIvan Magalhaes QUALIFIED
Aika S ButtGermanyStephen Shaw NEW
Jeanfrancois H GarufiIndiaXuxue Feng QUALIFIED
Jennifer Z RimBrazilOnyama Limba RENEWAL
Kaitlin A BowleyBrazilBernardo Dominic RENEWAL
Francesco T PerinBrazilAmy Elsner NEW
Aika E MorascaSpainAsiya Javayant PROPOSAL
Ashley Q PaprockiItalyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Izzy D Saylors
Munro J Caudy
Ashley P Briddick
Clifford Y Kolmetz
Emily D Rulapaugh
Morrow U Vocelka
Chavez R Campain
Francesco C Inouye
Izzy W Bowley
Mayumi O Caldarera
Jeanfrancois U Tollner
Alejandro Q Saylors
Antonio J Bolognia
Francesco F Paprocki
Deepesh D Bolognia
Izzy O Perin
Greenwood E Ostrosky
Maria L Dilliard
Faith P Butt
Octavia K Whobrey
Mayumi H Tollner
Tony T Rulapaugh
Julie L Albares
Silvio U Oldroyd
Nicolas Q Chui
Greenwood Z Sergi
Ricardo K Stockham
Faith O Garufi
Julie M Inouye
Aika A Bolognia
James C Ostrosky
Leja B Campain
Sinclair K Butt
Jefferson W Paprocki
Johnson X Malet
Alejandro I Rulapaugh
Adams Z Foller
Misaki D Inouye
Deepesh F Rulapaugh
Chavez D Bolognia
Wickens M Stenseth
Misaki C Rulapaugh
Adams L Oldroyd
Ricardo C Slusarski
Emily D Malet
Faith A Tollner
Julie A Albares
Nicolas G Doe
Tony I Vocelka
Costa O Gillian
IdCountryDate
1000France2026-08-08
1001Italy2026-08-07
1002Argentina2026-08-06
1003Australia2026-08-15
1004Argentina2026-08-14
1005Spain2026-08-01
1006India2026-08-02
1007India2026-08-03
1008Japan2026-08-16
1009Brazil2026-08-03
1010Italy2026-08-08
1011Canada2026-07-31
1012Spain2026-08-03
1013Brazil2026-08-25
1014Brazil2026-08-01
1015Argentina2026-08-19
1016Spain2026-08-23
1017Russia2026-08-08
1018Australia2026-08-16
1019India2026-08-05
1020Argentina2026-08-18
1021Italy2026-08-20
1022India2026-08-19
1023Brazil2026-08-01
1024Spain2026-08-12
1025Canada2026-08-05
1026Canada2026-08-26
1027Italy2026-08-16
1028Australia2026-08-24
1029Russia2026-08-15
1030Germany2026-08-23
1031Russia2026-08-16
1032Italy2026-08-09
1033Canada2026-08-16
1034India2026-08-19
1035Brazil2026-08-25
1036France2026-08-10
1037Italy2026-08-16
1038Italy2026-08-25
1039France2026-08-23
1040Brazil2026-08-11
1041Germany2026-08-20
1042Spain2026-08-03
1043Australia2026-08-13
1044Brazil2026-08-11
1045France2026-08-23
1046Australia2026-08-14
1047Russia2026-08-13
1048Japan2026-07-29
1049Argentina2026-07-31

On-Demand Data

NameIdCountryDate
Stacey F Gillian1000United Kingdom2026-08-27
Adams R Tollner1001Spain2026-08-15
Mujtaba D Darakjy1002Argentina2026-08-07
Leon B Albares1003Italy2026-07-30
Cody U Whobrey1004Russia2026-08-17
Morrow R Chui1005Canada2026-08-18
Ivar O Maclead1006Russia2026-08-17
Mayumi T Slusarski1007Brazil2026-08-01
Kadeem L Amigon1008Italy2026-08-06
Claire K Slusarski1009Argentina2026-08-25
Tony J Schemmer1010India2026-08-15
Morrow G Figeroa1011United Kingdom2026-08-13
Isabel D Maclead1012Spain2026-08-21
Sinclair T Sergi1013Japan2026-08-11
Ashley S Gaucho1014Spain2026-08-17
Leja T Amigon1015Spain2026-07-30
Leja Q Marrier1016Brazil2026-08-09
Kadeem W Marrier1017Germany2026-08-19
Juan I Whobrey1018Spain2026-08-08
Aruna K Iturbide1019Germany2026-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia U MacleadSpainElwin Sharvill RENEWAL
Morrow E SaylorsIndiaXuxue Feng UNQUALIFIED
Arvin H InouyeBrazilBernardo Dominic NEGOTIATION
Kaitlin M VenereJapanElwin Sharvill QUALIFIED
Chavez V CampainJapanElwin Sharvill UNQUALIFIED
James L NickaJapanIvan Magalhaes RENEWAL
Wickens X MacleadArgentinaElwin Sharvill UNQUALIFIED
Darci L MaletUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo K IturbideSpainAnna Fali RENEWAL
Aruna X MorascaItalyIvan Magalhaes RENEWAL
Cody T WieserIndiaAnna Fali UNQUALIFIED
Sinclair H IturbideItalyAmy Elsner UNQUALIFIED
Claire M CampainBrazilElwin Sharvill QUALIFIED
Jeanfrancois P CampainItalyIvan Magalhaes NEGOTIATION
Leja R DoeItalyIoni Bowcher NEW
Ivar T WhobreyAustraliaIoni Bowcher PROPOSAL
Munro Q AlbaresCanadaIvan Magalhaes NEGOTIATION
Aruna T DarakjyJapanBernardo Dominic UNQUALIFIED
Ivar A KolmetzArgentinaBernardo Dominic NEGOTIATION
Francesco U MacleadJapanAmy Elsner RENEWAL
Alejandro A DarakjyAustraliaIoni Bowcher PROPOSAL
Antonio C RulapaughBrazilXuxue Feng QUALIFIED
Darci L PerinRussiaStephen Shaw RENEWAL
Greenwood Y VocelkaIndiaOnyama Limba UNQUALIFIED
Sinclair V RulapaughAustraliaAsiya Javayant UNQUALIFIED
David M CampainSpainElwin Sharvill NEW
Murillo C BriddickAustraliaAsiya Javayant NEW
Antonio W FigeroaRussiaOnyama Limba NEW
Izzy Y WaycottArgentinaOnyama Limba PROPOSAL
Ricardo G RulapaughGermanyOnyama Limba NEW
Leon M KolmetzBrazilXuxue Feng QUALIFIED
Misaki A TollnerItalyElwin Sharvill PROPOSAL
Jones O MorascaRussiaAmy Elsner PROPOSAL
Misaki K SaylorsGermanyIoni Bowcher QUALIFIED
Silvio D NickaBrazilIoni Bowcher NEGOTIATION
Francesco J RulapaughBrazilElwin Sharvill NEW
Chavez A ChuiJapanBernardo Dominic NEW
Izzy B BriddickRussiaStephen Shaw RENEWAL
Maria A GlickGermanyElwin Sharvill PROPOSAL
Stacey K WieserJapanIoni Bowcher 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>