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
Darci U BriddickAustraliaBernardo Dominic RENEWAL
Mayumi P PoquetteSpainAmy Elsner NEGOTIATION
Maisha F OldroydCanadaAsiya Javayant NEW
Aika V FollerAustraliaAsiya Javayant NEGOTIATION
Jefferson M VocelkaJapanBernardo Dominic QUALIFIED
Aruna D SaylorsArgentinaStephen Shaw UNQUALIFIED
Silvio T ButtItalyElwin Sharvill QUALIFIED
Kadeem V MaletIndiaElwin Sharvill PROPOSAL
Kaitlin H CaudyUnited KingdomAnna Fali UNQUALIFIED
Tony X SaylorsJapanAmy Elsner PROPOSAL
Chavez V BowleyFranceAmy Elsner QUALIFIED
Darci C VenereGermanyOnyama Limba RENEWAL
Leja Z FlosiGermanyAsiya Javayant QUALIFIED
Munro Q SergiUnited KingdomXuxue Feng NEGOTIATION
Francesco P PerinAustraliaStephen Shaw UNQUALIFIED
Maisha A RulapaughJapanIvan Magalhaes NEGOTIATION
Cody Y SchemmerBrazilIvan Magalhaes NEW
Misaki B InouyeBrazilXuxue Feng UNQUALIFIED
Leon R WaycottIndiaIoni Bowcher PROPOSAL
Aditya V GarufiJapanIoni Bowcher UNQUALIFIED
Arvin P GillianArgentinaOnyama Limba RENEWAL
Clifford Y SaylorsCanadaIvan Magalhaes RENEWAL
Maisha J CaudyGermanyOnyama Limba UNQUALIFIED
Stacey C MaletFranceAmy Elsner UNQUALIFIED
Ivar A DilliardItalyAmy Elsner QUALIFIED
Mujtaba Z FollerRussiaElwin Sharvill QUALIFIED
James F KolmetzArgentinaBernardo Dominic PROPOSAL
Cody R ChuiSpainIoni Bowcher NEW
Kaitlin L BowleyUnited KingdomAsiya Javayant PROPOSAL
Kadeem I BriddickAustraliaOnyama Limba PROPOSAL
Clifford O NickaCanadaElwin Sharvill PROPOSAL
Murillo C SchemmerGermanyAsiya Javayant NEGOTIATION
Munro C RutaGermanyXuxue Feng NEGOTIATION
Jones P MarrierIndiaAmy Elsner UNQUALIFIED
Jeanfrancois T InouyeItalyAmy Elsner PROPOSAL
Greenwood V MacleadAustraliaBernardo Dominic NEW
Darci V TollnerIndiaAmy Elsner NEGOTIATION
Aditya F KuskoFranceIoni Bowcher UNQUALIFIED
Antonio G SlusarskiJapanIoni Bowcher UNQUALIFIED
Nicolas D GlickSpainOnyama Limba RENEWAL
Ivar Y AmigonFranceOnyama Limba UNQUALIFIED
Leja A GlickItalyIoni Bowcher NEGOTIATION
Nicolas G StockhamSpainXuxue Feng QUALIFIED
Misaki N SchemmerRussiaIvan Magalhaes NEGOTIATION
Maria S PerinRussiaXuxue Feng RENEWAL
Juan I GarufiGermanyAnna Fali UNQUALIFIED
Murillo D MacleadCanadaElwin Sharvill QUALIFIED
Mujtaba A SchemmerRussiaIvan Magalhaes QUALIFIED
Julie R FollerIndiaElwin Sharvill QUALIFIED
Ricardo C KuskoUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh B DoeUnited KingdomAsiya Javayant NEW
Isabel O SergiGermanyIvan Magalhaes QUALIFIED
Kaitlin A NestleIndiaIoni Bowcher PROPOSAL
Julie R IturbideCanadaXuxue Feng QUALIFIED
Silvio A BowleyFranceOnyama Limba PROPOSAL
Rodrigues Y TollnerJapanStephen Shaw NEGOTIATION
Juan J MacleadRussiaAmy Elsner NEGOTIATION
Emily H BologniaBrazilAsiya Javayant RENEWAL
Ricardo B RutaItalyBernardo Dominic RENEWAL
Mujtaba T CaldareraIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams D BologniaArgentina2026-06-27Rangoni Of Florence QUALIFIED93Asiya Javayant
1001Salvatore J InouyeJapan2026-06-22Feiner Bros UNQUALIFIED36Ivan Magalhaes
1002Smith S WieserAustralia2026-06-04Rousseaux, Michael Esq QUALIFIED80Onyama Limba
1003David T RimIndia2026-06-30Morlong Associates QUALIFIED74Onyama Limba
1004Smith M BriddickJapan2026-06-21Benton, John B Jr QUALIFIED64Bernardo Dominic
1005Cody Q RimBrazil2026-06-01Benton, John B Jr RENEWAL71Elwin Sharvill
1006Faith P MarrierSpain2026-06-15Feltz Printing Service QUALIFIED87Anna Fali
1007Jennifer H VenereSpain2026-06-18Commercial Press PROPOSAL55Xuxue Feng
1008Sinclair T OstroskyJapan2026-06-06Rangoni Of Florence NEW57Xuxue Feng
1009Ashley Y IturbideFrance2026-06-20Commercial Press NEGOTIATION84Ioni Bowcher
1010Kadeem Z VenereArgentina2026-06-29Commercial Press NEW30Ioni Bowcher
1011Chavez A MacleadJapan2026-06-06Buckley Miller Wright PROPOSAL32Bernardo Dominic
1012Juan K FigeroaCanada2026-06-19Chemel, James L Cpa QUALIFIED36Stephen Shaw
1013Emily R CampainAustralia2026-06-09Commercial Press UNQUALIFIED10Stephen Shaw
1014Arvin F GauchoCanada2026-06-29Feltz Printing Service RENEWAL31Xuxue Feng
1015Chavez K CampainSpain2026-06-24King, Christopher A Esq UNQUALIFIED25Ioni Bowcher
1016Kaitlin R OstroskyRussia2026-06-12Rousseaux, Michael Esq NEW14Ivan Magalhaes
1017Isabel O VocelkaSpain2026-06-12Chanay, Jeffrey A Esq UNQUALIFIED83Onyama Limba
1018Jefferson L SchemmerBrazil2026-06-26King, Christopher A Esq RENEWAL44Bernardo Dominic
1019Ricardo J MacleadJapan2026-06-05King, Christopher A Esq NEGOTIATION33Elwin Sharvill
1020Morrow H VocelkaAustralia2026-06-02Feiner Bros RENEWAL58Asiya Javayant
1021Leja W KolmetzFrance2026-06-03Rousseaux, Michael Esq PROPOSAL40Asiya Javayant
1022Emily Y CaudyItaly2026-06-17Rousseaux, Michael Esq RENEWAL36Elwin Sharvill
1023Greenwood P IturbideRussia2026-06-08Commercial Press NEW81Ivan Magalhaes
1024Misaki M RutaBrazil2026-06-10Chapman, Ross E Esq NEW30Asiya Javayant
1025Sinclair D InouyeUnited Kingdom2026-06-15Feltz Printing Service PROPOSAL33Amy Elsner
1026Chavez F FerenczGermany2026-06-25Feiner Bros UNQUALIFIED23Elwin Sharvill
1027Salvatore Y DilliardUnited Kingdom2026-06-03Printing Dimensions RENEWAL59Ioni Bowcher
1028Faith H VocelkaJapan2026-06-13Buckley Miller Wright UNQUALIFIED48Xuxue Feng
1029Isabel L PaprockiIndia2026-06-13Dorl, James J Esq UNQUALIFIED15Amy Elsner
1030Octavia F VenereUnited Kingdom2026-06-22Printing Dimensions QUALIFIED45Stephen Shaw
1031Tony K CaldareraItaly2026-06-08Dorl, James J Esq PROPOSAL23Xuxue Feng
1032Deepesh U ShinkoArgentina2026-06-10Rangoni Of Florence NEGOTIATION7Anna Fali
1033Darci W CaldareraSpain2026-06-26Printing Dimensions NEW85Anna Fali
1034Stacey Q OldroydItaly2026-06-14King, Christopher A Esq RENEWAL49Xuxue Feng
1035Ivar Z CaudyFrance2026-06-09Printing Dimensions NEGOTIATION60Anna Fali
1036Aika X StensethSpain2026-06-11Printing Dimensions NEGOTIATION17Ivan Magalhaes
1037Sinclair H MaletIndia2026-06-15Buckley Miller Wright RENEWAL63Xuxue Feng
1038Maisha C MaletJapan2026-06-25Chanay, Jeffrey A Esq PROPOSAL37Amy Elsner
1039Isabel I DilliardSpain2026-06-30Rangoni Of Florence PROPOSAL49Xuxue Feng
1040Isabel Q CampainGermany2026-06-23Feltz Printing Service NEW38Stephen Shaw
1041Leon W SlusarskiCanada2026-06-04King, Christopher A Esq NEW96Ivan Magalhaes
1042Claire I SlusarskiJapan2026-06-20Printing Dimensions NEGOTIATION75Ivan Magalhaes
1043Deepesh O VenereFrance2026-06-29Rangoni Of Florence UNQUALIFIED76Onyama Limba
1044Smith B FollerBrazil2026-06-17Buckley Miller Wright NEGOTIATION94Anna Fali
1045Jeanfrancois F RulapaughArgentina2026-06-11Morlong Associates UNQUALIFIED44Onyama Limba
1046Aruna O StockhamSpain2026-06-29King, Christopher A Esq NEW31Xuxue Feng
1047Aditya L RimJapan2026-06-21Chanay, Jeffrey A Esq QUALIFIED37Asiya Javayant
1048Murillo L BologniaFrance2026-06-25Buckley Miller Wright PROPOSAL86Ivan Magalhaes
1049Alejandro N WaycottCanada2026-06-17Printing Dimensions QUALIFIED3Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Antonio X FigeroaFranceXuxue Feng NEGOTIATION
Aditya B MaletIndiaBernardo Dominic UNQUALIFIED
Juan T MaletItalyBernardo Dominic RENEWAL
Silvio S GillianCanadaBernardo Dominic RENEWAL
Jefferson G InouyeSpainBernardo Dominic RENEWAL
Claire F NestleArgentinaAnna Fali PROPOSAL
Nicolas L SaylorsItalyBernardo Dominic RENEWAL
Silvio I NestleRussiaElwin Sharvill NEW
Jeanfrancois L MaletBrazilIvan Magalhaes NEGOTIATION
Stacey R BriddickIndiaStephen Shaw QUALIFIED
Kaitlin T MorascaArgentinaElwin Sharvill NEW
Darci H StensethFranceAnna Fali RENEWAL
Tony U BowleySpainAnna Fali UNQUALIFIED
Mayumi H SchemmerRussiaElwin Sharvill NEGOTIATION
Costa M TollnerRussiaAnna Fali NEGOTIATION
Ivar E ShinkoJapanStephen Shaw QUALIFIED
Johnson X KolmetzFranceIoni Bowcher PROPOSAL
Kadeem O CaudyJapanIoni Bowcher QUALIFIED
Aruna Z NestleIndiaStephen Shaw QUALIFIED
Adams H VenereBrazilAsiya Javayant PROPOSAL
Deepesh C KuskoJapanOnyama Limba PROPOSAL
Costa Y MacleadItalyOnyama Limba QUALIFIED
Claire Y GlickIndiaIoni Bowcher NEW
Antonio T FigeroaBrazilElwin Sharvill RENEWAL
Stacey N ShinkoUnited KingdomElwin Sharvill NEW
Mayumi D OstroskyCanadaElwin Sharvill NEW
Adams Z WaycottRussiaBernardo Dominic RENEWAL
Mayumi L VocelkaAustraliaStephen Shaw PROPOSAL
Mujtaba K DarakjyIndiaBernardo Dominic UNQUALIFIED
Mayumi V MaletArgentinaAnna Fali NEW
Ricardo Y RulapaughCanadaAmy Elsner NEW
Silvio T OstroskyGermanyStephen Shaw UNQUALIFIED
Nicolas O DarakjyItalyIoni Bowcher PROPOSAL
Darci Q GlickItalyAnna Fali NEW
Emily M StensethAustraliaStephen Shaw NEW
James Z ChuiAustraliaAmy Elsner UNQUALIFIED
Silvio V AmigonItalyXuxue Feng QUALIFIED
Smith P RimSpainAnna Fali PROPOSAL
Sinclair D InouyeCanadaAnna Fali UNQUALIFIED
Alejandro O FlosiArgentinaStephen Shaw NEW
Adams W CaldareraIndiaBernardo Dominic NEW
Isabel G GauchoArgentinaStephen Shaw UNQUALIFIED
Adams N MarrierIndiaIvan Magalhaes UNQUALIFIED
Greenwood I NestleItalyIoni Bowcher RENEWAL
Isabel M FlosiFranceOnyama Limba NEW
Jones W RulapaughUnited KingdomOnyama Limba PROPOSAL
Murillo I GauchoArgentinaAsiya Javayant QUALIFIED
Johnson V BowleyFranceAsiya Javayant NEGOTIATION
Maria P DoeItalyAnna Fali QUALIFIED
Antonio G IturbideFranceBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Kaitlin U Oldroyd
Ashley V Campain
Jefferson V Gillian
Silvio G Butt
Mujtaba Q Kusko
Greenwood Z Whobrey
Wickens B Rulapaugh
Faith T Shinko
Murillo G Royster
Izzy I Flosi
Octavia J Dilliard
Costa G Rim
Clifford L Nestle
James H Royster
Munro E Sergi
Jeanfrancois J Perin
Kaitlin G Caldarera
Arvin L Dilliard
Costa X Perin
Wickens Y Rim
Kaitlin R Maclead
Jefferson S Dilliard
Stacey H Schemmer
Clifford P Glick
Sinclair Z Gaucho
Aika Y Paprocki
Faith R Campain
Arvin G Schemmer
Mayumi S Foller
Emily S Tollner
Claire S Flosi
Mayumi L Inouye
Emily Z Rim
Adams T Shinko
Cody Q Tollner
Jennifer A Iturbide
Izzy Y Briddick
Adams L Iturbide
Jennifer R Albares
Munro G Darakjy
Leja R Inouye
Juan Y Malet
Wickens F Rim
Octavia H Gillian
Salvatore F Garufi
Arvin E Nicka
Jefferson T Waycott
James K Morasca
Kadeem F Tollner
David F Foller
IdCountryDate
1000United Kingdom2026-06-04
1001India2026-06-30
1002Italy2026-06-27
1003Russia2026-06-24
1004Brazil2026-06-07
1005Argentina2026-06-07
1006Spain2026-06-01
1007Japan2026-06-05
1008Italy2026-06-17
1009Germany2026-06-19
1010Brazil2026-06-24
1011Italy2026-06-11
1012Spain2026-06-06
1013Australia2026-06-19
1014Japan2026-06-25
1015Germany2026-06-01
1016Japan2026-06-15
1017United Kingdom2026-06-13
1018Argentina2026-06-06
1019Australia2026-06-19
1020Germany2026-06-20
1021Russia2026-06-22
1022India2026-06-12
1023France2026-06-17
1024Brazil2026-06-04
1025Canada2026-06-05
1026Spain2026-06-15
1027Russia2026-06-19
1028Spain2026-06-24
1029Italy2026-06-10
1030Russia2026-06-13
1031Argentina2026-06-08
1032Brazil2026-06-20
1033Italy2026-06-11
1034Spain2026-06-02
1035Canada2026-06-06
1036Australia2026-06-19
1037France2026-06-08
1038Japan2026-06-06
1039Italy2026-06-06
1040Italy2026-06-11
1041Japan2026-06-11
1042Spain2026-06-16
1043India2026-06-02
1044Italy2026-06-01
1045Germany2026-06-04
1046Brazil2026-06-13
1047Brazil2026-06-28
1048Russia2026-06-09
1049United Kingdom2026-06-01

On-Demand Data

NameIdCountryDate
Salvatore Q Waycott1000Argentina2026-06-29
Ashley C Saylors1001Spain2026-06-21
David B Butt1002Brazil2026-06-18
Emily D Darakjy1003Italy2026-06-23
Salvatore Z Kolmetz1004France2026-06-20
Wickens V Kolmetz1005Canada2026-06-27
Jennifer Z Kusko1006United Kingdom2026-06-08
Darci H Slusarski1007Italy2026-06-28
Izzy T Darakjy1008Germany2026-06-13
James W Rim1009Russia2026-06-12
Maisha X Malet1010Germany2026-06-16
Kaitlin B Glick1011India2026-06-11
Rodrigues I Garufi1012Japan2026-06-27
Mujtaba T Rim1013Germany2026-06-21
Cody X Bowley1014Japan2026-06-17
Julie W Poquette1015Germany2026-06-10
Izzy T Rim1016India2026-06-29
Faith I Malet1017Brazil2026-06-09
Alejandro K Oldroyd1018Australia2026-06-22
Darci R Poquette1019Argentina2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire B RoysterIndiaXuxue Feng PROPOSAL
Tony Y VocelkaArgentinaAmy Elsner PROPOSAL
Claire F CaudyGermanyStephen Shaw PROPOSAL
Isabel I FigeroaSpainAmy Elsner QUALIFIED
Juan C DarakjyJapanBernardo Dominic RENEWAL
Clifford W VocelkaSpainIvan Magalhaes UNQUALIFIED
Izzy F BologniaUnited KingdomXuxue Feng QUALIFIED
Francesco J MacleadItalyXuxue Feng UNQUALIFIED
Arvin H CaudyAustraliaAnna Fali PROPOSAL
Darci D CampainSpainAmy Elsner UNQUALIFIED
Wickens P FerenczGermanyAmy Elsner RENEWAL
Costa R ShinkoFranceAmy Elsner QUALIFIED
David X MacleadArgentinaOnyama Limba PROPOSAL
Aika A BowleyRussiaStephen Shaw NEGOTIATION
Jefferson J CaldareraIndiaElwin Sharvill NEW
Leon E CaldareraItalyIvan Magalhaes PROPOSAL
Jennifer G BologniaCanadaStephen Shaw QUALIFIED
David G StensethItalyIvan Magalhaes PROPOSAL
Faith X OldroydFranceIoni Bowcher QUALIFIED
Tony G PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow A WieserItalyIvan Magalhaes PROPOSAL
Morrow P MacleadItalyStephen Shaw PROPOSAL
Greenwood A BowleyAustraliaAsiya Javayant UNQUALIFIED
Salvatore U RimArgentinaElwin Sharvill PROPOSAL
Julie N OldroydAustraliaAmy Elsner NEW
Rodrigues M RoysterAustraliaIvan Magalhaes UNQUALIFIED
Jefferson M WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Misaki E VocelkaAustraliaIvan Magalhaes QUALIFIED
Kadeem K CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Tony R SergiFranceXuxue Feng NEW
Aditya R RulapaughUnited KingdomOnyama Limba NEGOTIATION
Claire M BriddickFranceAsiya Javayant UNQUALIFIED
James V AlbaresSpainElwin Sharvill NEGOTIATION
Juan E MacleadJapanAnna Fali RENEWAL
Ricardo T ChuiRussiaBernardo Dominic QUALIFIED
Jennifer D SaylorsJapanOnyama Limba NEW
James M RoysterItalyStephen Shaw RENEWAL
Tony X ShinkoIndiaAnna Fali NEW
Salvatore G RimUnited KingdomIvan Magalhaes PROPOSAL
James K DarakjyIndiaBernardo Dominic UNQUALIFIED

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