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
Deepesh T WaycottJapanIvan Magalhaes RENEWAL
Greenwood G SlusarskiGermanyXuxue Feng QUALIFIED
Mujtaba H ChuiJapanAsiya Javayant UNQUALIFIED
Greenwood Q FigeroaArgentinaAsiya Javayant RENEWAL
Francesco O ButtRussiaElwin Sharvill NEW
Aruna P AlbaresFranceElwin Sharvill RENEWAL
Leja R MaletItalyAmy Elsner PROPOSAL
Misaki Q AlbaresFranceIvan Magalhaes NEW
James E RoysterUnited KingdomIvan Magalhaes RENEWAL
Nicolas I RulapaughBrazilIvan Magalhaes UNQUALIFIED
Aruna Z InouyeRussiaAnna Fali QUALIFIED
Jefferson F BologniaItalyIvan Magalhaes RENEWAL
Antonio P SchemmerBrazilAsiya Javayant NEW
Maisha D CaudyArgentinaElwin Sharvill PROPOSAL
Antonio T CampainJapanElwin Sharvill PROPOSAL
Izzy G SaylorsFranceStephen Shaw NEW
Arvin T RulapaughArgentinaAsiya Javayant QUALIFIED
Cody B FerenczCanadaElwin Sharvill NEGOTIATION
Isabel Y DoeItalyAnna Fali PROPOSAL
Leja E StensethBrazilXuxue Feng QUALIFIED
Maria V GillianFranceOnyama Limba NEW
Greenwood F RimSpainBernardo Dominic QUALIFIED
Francesco L GlickSpainAmy Elsner NEGOTIATION
Mujtaba Z RulapaughIndiaOnyama Limba RENEWAL
Alejandro Z RulapaughIndiaAsiya Javayant RENEWAL
Maisha W PoquetteJapanAnna Fali PROPOSAL
Munro G BriddickBrazilBernardo Dominic RENEWAL
Alejandro Y WaycottUnited KingdomOnyama Limba NEW
Jones P PoquetteSpainXuxue Feng QUALIFIED
Smith X FerenczGermanyAmy Elsner QUALIFIED
David Y OstroskyCanadaElwin Sharvill UNQUALIFIED
Maisha W FerenczRussiaIvan Magalhaes NEGOTIATION
Arvin Q OstroskyRussiaBernardo Dominic PROPOSAL
Mayumi T RoysterRussiaAnna Fali NEW
Francesco Y OstroskyUnited KingdomAnna Fali NEGOTIATION
Salvatore L WieserAustraliaOnyama Limba UNQUALIFIED
Kadeem E CampainRussiaIvan Magalhaes NEGOTIATION
Alejandro Z OldroydUnited KingdomAnna Fali NEGOTIATION
Faith O OldroydItalyStephen Shaw NEGOTIATION
Adams R SlusarskiIndiaBernardo Dominic NEW
Aditya J DilliardJapanAmy Elsner RENEWAL
Maisha Z BowleyRussiaIoni Bowcher RENEWAL
Antonio F SlusarskiAustraliaXuxue Feng PROPOSAL
Rodrigues D WhobreyGermanyElwin Sharvill NEW
Emily W RutaRussiaIoni Bowcher QUALIFIED
Sinclair Y VenereAustraliaXuxue Feng UNQUALIFIED
Salvatore O SergiUnited KingdomStephen Shaw RENEWAL
Wickens U MorascaFranceElwin Sharvill NEGOTIATION
Smith U ChuiIndiaElwin Sharvill NEGOTIATION
Maisha R RutaItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel K FollerGermanyAmy Elsner NEW
Wickens D GarufiRussiaStephen Shaw RENEWAL
Sinclair A GillianGermanyStephen Shaw PROPOSAL
Mayumi N RulapaughIndiaStephen Shaw NEGOTIATION
Mujtaba H FigeroaJapanIvan Magalhaes PROPOSAL
James A DilliardArgentinaAmy Elsner NEGOTIATION
Francesco T ButtJapanBernardo Dominic PROPOSAL
Salvatore G AlbaresBrazilOnyama Limba PROPOSAL
Jennifer V IturbideArgentinaBernardo Dominic UNQUALIFIED
Darci M PoquetteGermanyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha T FerenczAustralia2026-07-17Feltz Printing Service NEGOTIATION10Ioni Bowcher
1001Francesco D PoquetteIndia2026-07-19Feiner Bros RENEWAL90Xuxue Feng
1002Morrow F KolmetzAustralia2026-07-15Rousseaux, Michael Esq UNQUALIFIED46Xuxue Feng
1003Antonio T AlbaresIndia2026-07-20Chapman, Ross E Esq NEW40Ioni Bowcher
1004Jennifer P RoysterBrazil2026-07-24King, Christopher A Esq QUALIFIED88Anna Fali
1005Silvio K WhobreyCanada2026-07-23Chemel, James L Cpa QUALIFIED82Bernardo Dominic
1006Johnson V SergiBrazil2026-07-15Commercial Press PROPOSAL10Onyama Limba
1007Izzy T BologniaItaly2026-07-03King, Christopher A Esq UNQUALIFIED49Anna Fali
1008Adams Y ShinkoItaly2026-06-27Feltz Printing Service RENEWAL69Ioni Bowcher
1009Leon S AmigonArgentina2026-07-01Buckley Miller Wright UNQUALIFIED65Ioni Bowcher
1010Francesco P AmigonSpain2026-07-02Buckley Miller Wright QUALIFIED53Bernardo Dominic
1011Murillo R ChuiIndia2026-07-18Dorl, James J Esq RENEWAL88Ivan Magalhaes
1012Rodrigues D FigeroaCanada2026-06-28Chemel, James L Cpa QUALIFIED98Onyama Limba
1013Darci Q WaycottUnited Kingdom2026-07-13Printing Dimensions NEGOTIATION91Xuxue Feng
1014Smith F GarufiBrazil2026-07-26Morlong Associates PROPOSAL38Stephen Shaw
1015Claire S ShinkoSpain2026-07-13Feltz Printing Service QUALIFIED92Ivan Magalhaes
1016James N KolmetzRussia2026-07-07Feiner Bros NEW95Ioni Bowcher
1017Ricardo E IturbideBrazil2026-06-29Dorl, James J Esq NEGOTIATION47Asiya Javayant
1018Ivar D KuskoFrance2026-07-06Chanay, Jeffrey A Esq QUALIFIED6Elwin Sharvill
1019Salvatore Q RoysterSpain2026-07-06King, Christopher A Esq PROPOSAL7Amy Elsner
1020Aditya R OstroskyBrazil2026-07-02Commercial Press RENEWAL80Anna Fali
1021Leja U MaletRussia2026-07-23Feltz Printing Service RENEWAL67Ioni Bowcher
1022Aditya Y AmigonBrazil2026-07-17Dorl, James J Esq NEW98Anna Fali
1023Jones D BologniaUnited Kingdom2026-07-26Dorl, James J Esq NEW63Stephen Shaw
1024Faith T MaletIndia2026-07-01Rousseaux, Michael Esq QUALIFIED94Ivan Magalhaes
1025Mayumi H CaldareraCanada2026-07-08Commercial Press UNQUALIFIED59Elwin Sharvill
1026Jeanfrancois X KolmetzItaly2026-07-16Commercial Press QUALIFIED55Onyama Limba
1027Antonio N BowleyArgentina2026-07-14Chapman, Ross E Esq NEW41Asiya Javayant
1028Tony O BriddickJapan2026-07-21Printing Dimensions NEGOTIATION8Anna Fali
1029David M TollnerGermany2026-07-23Chapman, Ross E Esq PROPOSAL49Amy Elsner
1030Chavez J GauchoItaly2026-07-13King, Christopher A Esq QUALIFIED15Ioni Bowcher
1031James X PaprockiRussia2026-07-07Rangoni Of Florence NEGOTIATION40Asiya Javayant
1032Clifford X DilliardGermany2026-07-19King, Christopher A Esq PROPOSAL69Elwin Sharvill
1033Darci Z MorascaBrazil2026-07-14Commercial Press PROPOSAL94Ivan Magalhaes
1034Tony E MacleadArgentina2026-07-24Printing Dimensions UNQUALIFIED50Asiya Javayant
1035Jones H VenereJapan2026-07-14Rousseaux, Michael Esq QUALIFIED8Asiya Javayant
1036Francesco D SlusarskiItaly2026-07-17Morlong Associates PROPOSAL94Xuxue Feng
1037Morrow K AmigonBrazil2026-07-09Feiner Bros UNQUALIFIED11Stephen Shaw
1038Aruna U WieserRussia2026-06-29Chanay, Jeffrey A Esq NEW22Ioni Bowcher
1039Adams O StockhamJapan2026-07-05Feiner Bros QUALIFIED61Xuxue Feng
1040Smith A MacleadIndia2026-06-27Feiner Bros PROPOSAL27Asiya Javayant
1041Faith K ShinkoArgentina2026-07-02Feltz Printing Service QUALIFIED80Bernardo Dominic
1042Nicolas G GarufiSpain2026-07-11Buckley Miller Wright PROPOSAL85Amy Elsner
1043Jones L BriddickSpain2026-07-12Rousseaux, Michael Esq NEGOTIATION23Asiya Javayant
1044Arvin V CampainArgentina2026-07-17Morlong Associates QUALIFIED23Anna Fali
1045Arvin E MarrierFrance2026-07-09Feltz Printing Service PROPOSAL48Xuxue Feng
1046Mayumi B GauchoItaly2026-06-29Buckley Miller Wright UNQUALIFIED92Asiya Javayant
1047Wickens F AmigonRussia2026-07-01King, Christopher A Esq NEW41Anna Fali
1048Emily X TollnerArgentina2026-07-01Chemel, James L Cpa NEW70Amy Elsner
1049Aditya C ShinkoCanada2026-06-30Feiner Bros NEW96Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar M ShinkoBrazilOnyama Limba PROPOSAL
Tony B CampainJapanBernardo Dominic NEW
Faith L ShinkoUnited KingdomAmy Elsner QUALIFIED
Morrow A MaletJapanAnna Fali QUALIFIED
Maisha O GlickRussiaAnna Fali NEGOTIATION
Juan M MaletCanadaBernardo Dominic NEGOTIATION
Mujtaba T MorascaFranceAnna Fali RENEWAL
Antonio I DarakjyGermanyElwin Sharvill QUALIFIED
Adams V VenereAustraliaOnyama Limba NEW
Costa N MorascaGermanyAsiya Javayant UNQUALIFIED
Silvio M InouyeCanadaBernardo Dominic UNQUALIFIED
Silvio E ChuiItalyXuxue Feng QUALIFIED
Maria F PoquetteArgentinaIvan Magalhaes NEGOTIATION
Izzy F ButtUnited KingdomBernardo Dominic RENEWAL
Jefferson T RulapaughAustraliaBernardo Dominic PROPOSAL
Mayumi X MacleadRussiaAmy Elsner UNQUALIFIED
Mujtaba Q CaudyGermanyIoni Bowcher PROPOSAL
Jeanfrancois P TollnerJapanXuxue Feng NEW
Claire A IturbideCanadaXuxue Feng PROPOSAL
Izzy G SaylorsSpainAmy Elsner RENEWAL
Mayumi I WhobreyAustraliaElwin Sharvill QUALIFIED
Silvio H ShinkoRussiaOnyama Limba UNQUALIFIED
Maisha H DarakjyGermanyOnyama Limba PROPOSAL
Greenwood V NickaJapanStephen Shaw QUALIFIED
Greenwood M ShinkoItalyIoni Bowcher NEW
Jefferson Z AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Nicolas J FlosiAustraliaBernardo Dominic RENEWAL
Leon S DarakjyUnited KingdomOnyama Limba NEGOTIATION
Smith S BologniaArgentinaIoni Bowcher QUALIFIED
Maria U RulapaughGermanyIoni Bowcher RENEWAL
Aditya S BologniaAustraliaXuxue Feng PROPOSAL
Leja X SergiGermanyAsiya Javayant QUALIFIED
Aika Y AlbaresArgentinaElwin Sharvill NEGOTIATION
Morrow S WhobreyFranceElwin Sharvill RENEWAL
Antonio Q AmigonGermanyBernardo Dominic UNQUALIFIED
Johnson U RutaUnited KingdomAsiya Javayant RENEWAL
Juan F GlickIndiaAmy Elsner NEGOTIATION
Cody A PerinSpainOnyama Limba NEGOTIATION
Tony X GauchoAustraliaAsiya Javayant UNQUALIFIED
Stacey Y RimItalyXuxue Feng RENEWAL
Kaitlin H PoquetteFranceStephen Shaw QUALIFIED
Mujtaba K VocelkaRussiaAsiya Javayant UNQUALIFIED
Mayumi Q CaldareraAustraliaIoni Bowcher UNQUALIFIED
Emily Z RoysterUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois Y GillianUnited KingdomIoni Bowcher PROPOSAL
Maria N CaudyJapanIoni Bowcher PROPOSAL
Johnson H CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba F MarrierArgentinaAmy Elsner QUALIFIED
Cody W MarrierCanadaIoni Bowcher NEW
Mayumi X MarrierItalyStephen Shaw RENEWAL
Frozen Columns
Name
Darci R Whobrey
Jones U Whobrey
James V Sergi
Greenwood T Sergi
Octavia Z Ostrosky
Murillo N Albares
Kaitlin I Waycott
Aruna T Rim
Johnson T Ferencz
Isabel G Garufi
Ricardo K Rulapaugh
Tony X Perin
Emily V Rulapaugh
Ivar T Kolmetz
Costa S Malet
Stacey H Vocelka
Jefferson I Rulapaugh
Francesco V Caldarera
Leon Y Stenseth
Morrow E Slusarski
Johnson R Glick
Murillo E Whobrey
Chavez H Oldroyd
Octavia V Kolmetz
Isabel I Stenseth
Octavia R Royster
Stacey H Saylors
Francesco H Albares
Julie H Morasca
Cody O Paprocki
Faith L Bolognia
Jennifer Y Vocelka
Julie T Kolmetz
Emily M Waycott
Alejandro X Sergi
Aruna B Schemmer
Darci Z Ferencz
Ashley W Tollner
Smith A Tollner
Leja N Caudy
Stacey G Bowley
Sinclair I Gillian
Octavia Q Stockham
Misaki U Perin
Cody H Darakjy
Kadeem K Chui
Claire I Glick
Smith W Foller
James X Poquette
Ricardo R Amigon
IdCountryDate
1000India2026-07-11
1001Spain2026-07-14
1002Canada2026-07-13
1003India2026-07-08
1004Russia2026-07-13
1005Brazil2026-07-22
1006United Kingdom2026-07-22
1007United Kingdom2026-07-18
1008Spain2026-07-09
1009Argentina2026-07-22
1010Australia2026-07-25
1011Spain2026-07-23
1012Italy2026-07-15
1013Russia2026-07-16
1014India2026-07-10
1015Italy2026-07-12
1016Argentina2026-07-03
1017Argentina2026-06-28
1018Canada2026-07-10
1019France2026-07-10
1020Brazil2026-07-05
1021Canada2026-07-03
1022France2026-07-13
1023Argentina2026-07-24
1024France2026-07-12
1025Russia2026-07-05
1026Italy2026-07-17
1027Canada2026-06-27
1028Canada2026-07-24
1029Germany2026-07-26
1030Spain2026-07-25
1031Canada2026-07-07
1032Russia2026-07-13
1033United Kingdom2026-07-10
1034United Kingdom2026-07-26
1035United Kingdom2026-07-02
1036Canada2026-07-16
1037United Kingdom2026-07-26
1038Spain2026-06-28
1039Spain2026-07-11
1040Australia2026-07-13
1041Germany2026-07-13
1042India2026-07-05
1043France2026-07-01
1044Italy2026-07-19
1045Argentina2026-07-17
1046United Kingdom2026-06-29
1047Australia2026-07-14
1048India2026-07-24
1049France2026-07-04

On-Demand Data

NameIdCountryDate
Morrow S Rim1000Italy2026-07-06
Ashley G Saylors1001Brazil2026-07-17
Antonio G Marrier1002Australia2026-07-22
Kadeem D Flosi1003France2026-07-19
Aika T Amigon1004Argentina2026-07-18
Kadeem R Foller1005Brazil2026-07-20
Deepesh J Inouye1006Germany2026-07-23
Deepesh S Ruta1007Australia2026-07-11
Ashley X Bolognia1008Brazil2026-06-28
Smith F Amigon1009France2026-07-26
Rodrigues P Gaucho1010Spain2026-07-14
Claire J Briddick1011Japan2026-07-10
Cody B Chui1012United Kingdom2026-07-01
Leja J Gaucho1013Germany2026-07-12
Jones O Vocelka1014Italy2026-06-28
Maria O Slusarski1015United Kingdom2026-07-16
Tony L Iturbide1016Australia2026-07-01
Claire B Whobrey1017India2026-07-03
Misaki V Malet1018Russia2026-07-23
Leon Q Chui1019Australia2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith N NickaGermanyStephen Shaw NEW
Nicolas X StensethCanadaAsiya Javayant NEGOTIATION
Jefferson W WaycottRussiaIvan Magalhaes PROPOSAL
Stacey I RutaJapanAsiya Javayant RENEWAL
David P TollnerUnited KingdomXuxue Feng QUALIFIED
Maisha D RimIndiaElwin Sharvill UNQUALIFIED
Aika L CampainIndiaAmy Elsner UNQUALIFIED
Jefferson M RutaJapanOnyama Limba NEW
Aruna A BologniaJapanOnyama Limba QUALIFIED
Silvio S MaletArgentinaIvan Magalhaes RENEWAL
Isabel R AlbaresItalyIvan Magalhaes NEW
Francesco G OldroydGermanyIoni Bowcher QUALIFIED
Leja T VocelkaGermanyStephen Shaw RENEWAL
Ricardo Y PaprockiJapanAnna Fali QUALIFIED
Julie I TollnerAustraliaAnna Fali PROPOSAL
James J BriddickFranceElwin Sharvill PROPOSAL
Murillo V GillianIndiaAsiya Javayant UNQUALIFIED
Izzy N CampainGermanyOnyama Limba NEW
Wickens X SlusarskiItalyOnyama Limba PROPOSAL
Alejandro Q MaletItalyXuxue Feng QUALIFIED
Deepesh Q VenereSpainOnyama Limba NEW
Johnson J BriddickUnited KingdomStephen Shaw NEGOTIATION
Murillo H RoysterRussiaIvan Magalhaes NEW
Faith K RoysterUnited KingdomElwin Sharvill NEW
Isabel J KuskoIndiaXuxue Feng PROPOSAL
Smith A RutaSpainOnyama Limba UNQUALIFIED
James B RimIndiaOnyama Limba NEGOTIATION
Chavez J SergiArgentinaStephen Shaw NEGOTIATION
Jones E CampainSpainAmy Elsner QUALIFIED
Francesco R TollnerItalyAmy Elsner NEGOTIATION
Johnson C MaletRussiaAnna Fali UNQUALIFIED
Morrow R CaudyFranceOnyama Limba NEW
Faith C NestleIndiaAnna Fali QUALIFIED
Silvio F CampainSpainIvan Magalhaes RENEWAL
Kaitlin E SchemmerFranceIoni Bowcher NEGOTIATION
Clifford V OstroskyRussiaAsiya Javayant RENEWAL
David J BowleyBrazilIvan Magalhaes UNQUALIFIED
Rodrigues D GillianBrazilStephen Shaw NEGOTIATION
Chavez J ChuiRussiaStephen Shaw QUALIFIED
Morrow U DoeSpainXuxue Feng NEGOTIATION

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