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
Ricardo O GauchoBrazilAnna Fali QUALIFIED
Cody O StensethIndiaElwin Sharvill QUALIFIED
David O IturbideRussiaAsiya Javayant RENEWAL
Claire A RutaIndiaStephen Shaw UNQUALIFIED
Maisha O KuskoAustraliaAmy Elsner NEGOTIATION
Clifford O WhobreyFranceStephen Shaw UNQUALIFIED
Francesco G NickaBrazilAmy Elsner UNQUALIFIED
Murillo Y PerinIndiaElwin Sharvill PROPOSAL
Stacey T SergiGermanyOnyama Limba PROPOSAL
Chavez F GarufiSpainXuxue Feng QUALIFIED
Tony L IturbideAustraliaElwin Sharvill PROPOSAL
Francesco Y VenereUnited KingdomIoni Bowcher UNQUALIFIED
Clifford V VocelkaCanadaIoni Bowcher RENEWAL
Cody Q KolmetzFranceXuxue Feng UNQUALIFIED
Mayumi X FollerJapanXuxue Feng NEW
Maisha E FlosiCanadaElwin Sharvill UNQUALIFIED
Johnson D IturbideGermanyElwin Sharvill UNQUALIFIED
Maisha Q CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Emily U CampainCanadaOnyama Limba PROPOSAL
Silvio T RulapaughRussiaBernardo Dominic UNQUALIFIED
Jones T WaycottAustraliaElwin Sharvill UNQUALIFIED
Darci S OstroskyUnited KingdomOnyama Limba NEW
Juan G CampainSpainBernardo Dominic QUALIFIED
Salvatore Y DilliardSpainElwin Sharvill PROPOSAL
Alejandro K CampainGermanyStephen Shaw QUALIFIED
Rodrigues I SlusarskiFranceIoni Bowcher NEW
Jefferson W FerenczBrazilAnna Fali NEGOTIATION
Kaitlin T FollerAustraliaStephen Shaw NEGOTIATION
Alejandro N CampainRussiaBernardo Dominic NEGOTIATION
Izzy T MaletCanadaOnyama Limba NEGOTIATION
Johnson O WaycottRussiaXuxue Feng NEW
Tony N PoquetteGermanyIoni Bowcher NEW
Juan U MaletUnited KingdomAsiya Javayant RENEWAL
Nicolas H PaprockiItalyAnna Fali RENEWAL
Deepesh U GlickArgentinaIoni Bowcher NEGOTIATION
Mujtaba I DarakjyArgentinaAsiya Javayant NEGOTIATION
Ricardo K ChuiCanadaAnna Fali NEGOTIATION
Aruna R ShinkoIndiaAnna Fali UNQUALIFIED
Leja Z SlusarskiRussiaOnyama Limba UNQUALIFIED
Alejandro A GillianAustraliaAmy Elsner UNQUALIFIED
Mayumi J IturbideBrazilElwin Sharvill NEW
Salvatore H GarufiJapanIoni Bowcher PROPOSAL
Cody G PerinIndiaIoni Bowcher PROPOSAL
Jefferson M RutaUnited KingdomIoni Bowcher RENEWAL
Morrow M AmigonRussiaElwin Sharvill NEGOTIATION
Tony E StockhamJapanAsiya Javayant PROPOSAL
Francesco X AmigonArgentinaXuxue Feng RENEWAL
Ricardo J MaletArgentinaStephen Shaw NEW
Aditya D FerenczCanadaElwin Sharvill UNQUALIFIED
Murillo O AmigonIndiaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson Q ShinkoAustraliaStephen Shaw RENEWAL
Cody W CaudyJapanStephen Shaw PROPOSAL
Ivar L VocelkaJapanAnna Fali PROPOSAL
Tony S SergiRussiaOnyama Limba PROPOSAL
Greenwood B KuskoCanadaOnyama Limba NEGOTIATION
Costa Z RimGermanyIvan Magalhaes NEGOTIATION
Ricardo K DarakjyRussiaXuxue Feng RENEWAL
Murillo Y ButtRussiaStephen Shaw NEGOTIATION
Munro U VenereCanadaAmy Elsner PROPOSAL
Isabel Z PoquetteSpainIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Y MorascaAustralia2026-06-25Chemel, James L Cpa PROPOSAL32Stephen Shaw
1001Claire A WhobreyGermany2026-06-19Chemel, James L Cpa RENEWAL30Onyama Limba
1002Smith Z CaldareraCanada2026-07-09Commercial Press RENEWAL2Bernardo Dominic
1003Juan S AlbaresCanada2026-06-17Feltz Printing Service UNQUALIFIED74Ivan Magalhaes
1004Julie B RimArgentina2026-07-05Feiner Bros QUALIFIED57Elwin Sharvill
1005Wickens K MaletCanada2026-06-29Commercial Press PROPOSAL16Elwin Sharvill
1006Maria M MaletItaly2026-06-27Chemel, James L Cpa RENEWAL16Asiya Javayant
1007Maisha X GillianJapan2026-07-14Morlong Associates QUALIFIED21Stephen Shaw
1008Silvio B MorascaAustralia2026-07-12Chemel, James L Cpa QUALIFIED29Stephen Shaw
1009Munro L DoeGermany2026-06-18Printing Dimensions NEGOTIATION33Onyama Limba
1010Costa B RimArgentina2026-07-13Dorl, James J Esq NEW34Asiya Javayant
1011Julie N ShinkoUnited Kingdom2026-06-26Printing Dimensions QUALIFIED71Elwin Sharvill
1012Deepesh E GarufiUnited Kingdom2026-06-29Buckley Miller Wright UNQUALIFIED13Ioni Bowcher
1013Jeanfrancois Y ChuiSpain2026-07-09Dorl, James J Esq QUALIFIED61Asiya Javayant
1014Stacey R WhobreyAustralia2026-07-11Commercial Press UNQUALIFIED42Onyama Limba
1015Darci S RimAustralia2026-06-19Morlong Associates QUALIFIED97Onyama Limba
1016Munro H PoquetteUnited Kingdom2026-07-15Dorl, James J Esq PROPOSAL62Bernardo Dominic
1017Cody T DarakjyJapan2026-07-04Rousseaux, Michael Esq RENEWAL51Anna Fali
1018Leja Z GillianAustralia2026-07-16Chapman, Ross E Esq NEW68Onyama Limba
1019Cody T TollnerBrazil2026-07-06Dorl, James J Esq UNQUALIFIED13Xuxue Feng
1020Leon J AlbaresCanada2026-06-19Chanay, Jeffrey A Esq NEGOTIATION12Bernardo Dominic
1021Aruna T FollerJapan2026-06-24Rousseaux, Michael Esq RENEWAL79Elwin Sharvill
1022Salvatore C GarufiJapan2026-07-09Rousseaux, Michael Esq NEGOTIATION46Elwin Sharvill
1023Chavez M ShinkoArgentina2026-06-27Printing Dimensions UNQUALIFIED82Xuxue Feng
1024Misaki O WhobreySpain2026-06-24Commercial Press QUALIFIED36Elwin Sharvill
1025Smith M WhobreyBrazil2026-07-11Feltz Printing Service RENEWAL79Anna Fali
1026David W WaycottUnited Kingdom2026-06-29Feiner Bros UNQUALIFIED64Asiya Javayant
1027Jones W RimIndia2026-06-17Chapman, Ross E Esq RENEWAL8Asiya Javayant
1028Antonio K RimBrazil2026-07-16Dorl, James J Esq NEW96Xuxue Feng
1029Kadeem K CampainUnited Kingdom2026-06-30Feiner Bros QUALIFIED17Bernardo Dominic
1030Leon F OldroydArgentina2026-07-13Commercial Press QUALIFIED57Ivan Magalhaes
1031Wickens G ChuiGermany2026-07-02Feltz Printing Service NEW92Bernardo Dominic
1032Darci M OldroydGermany2026-06-26Feiner Bros NEGOTIATION89Xuxue Feng
1033Smith O GlickIndia2026-07-16Rangoni Of Florence QUALIFIED52Elwin Sharvill
1034Costa K AlbaresSpain2026-07-03Feiner Bros UNQUALIFIED69Anna Fali
1035Emily M CampainRussia2026-06-27Dorl, James J Esq NEGOTIATION32Amy Elsner
1036Leja J InouyeUnited Kingdom2026-06-21Morlong Associates NEGOTIATION56Elwin Sharvill
1037Munro E FerenczAustralia2026-06-21Rousseaux, Michael Esq NEGOTIATION97Elwin Sharvill
1038Claire T NestleBrazil2026-07-02Dorl, James J Esq RENEWAL72Elwin Sharvill
1039Johnson L MarrierIndia2026-07-01Truhlar And Truhlar Attys UNQUALIFIED6Elwin Sharvill
1040Kaitlin L KolmetzUnited Kingdom2026-07-07King, Christopher A Esq QUALIFIED77Amy Elsner
1041Emily N BologniaAustralia2026-07-01Benton, John B Jr PROPOSAL23Stephen Shaw
1042Emily O RimGermany2026-06-23King, Christopher A Esq QUALIFIED90Ivan Magalhaes
1043Kadeem G FerenczIndia2026-07-16Rangoni Of Florence NEGOTIATION22Asiya Javayant
1044Leon K FigeroaAustralia2026-07-09Morlong Associates RENEWAL53Ioni Bowcher
1045Mayumi C SergiJapan2026-06-18Rousseaux, Michael Esq UNQUALIFIED38Anna Fali
1046Adams Q FlosiGermany2026-06-21Rangoni Of Florence RENEWAL5Stephen Shaw
1047Julie R IturbideGermany2026-07-07King, Christopher A Esq NEW54Stephen Shaw
1048Maisha L InouyeSpain2026-06-29Buckley Miller Wright PROPOSAL27Xuxue Feng
1049Johnson J RimArgentina2026-06-17Printing Dimensions NEW58Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Darci U KolmetzRussiaAsiya Javayant QUALIFIED
Silvio R StensethUnited KingdomXuxue Feng QUALIFIED
Rodrigues X MorascaBrazilAsiya Javayant QUALIFIED
Jefferson Z SaylorsCanadaAmy Elsner NEW
Salvatore X SergiItalyAmy Elsner NEGOTIATION
Kadeem W KuskoAustraliaIoni Bowcher NEGOTIATION
Clifford O BriddickRussiaAmy Elsner RENEWAL
Adams C DoeCanadaAnna Fali NEW
Jennifer A VocelkaFranceElwin Sharvill RENEWAL
Juan K BowleyUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel C DarakjySpainXuxue Feng PROPOSAL
Munro A PaprockiItalyAmy Elsner QUALIFIED
Salvatore K RulapaughSpainBernardo Dominic UNQUALIFIED
Tony B PaprockiFranceAsiya Javayant UNQUALIFIED
Mayumi V GlickGermanyStephen Shaw NEGOTIATION
Chavez M StockhamBrazilAmy Elsner UNQUALIFIED
Izzy P InouyeCanadaAsiya Javayant QUALIFIED
Jeanfrancois L KolmetzCanadaIvan Magalhaes RENEWAL
Rodrigues W TollnerRussiaAmy Elsner NEW
James D GarufiGermanyBernardo Dominic PROPOSAL
Octavia Y ButtItalyOnyama Limba QUALIFIED
Jefferson A MaletItalyIoni Bowcher NEGOTIATION
Greenwood T DarakjyRussiaBernardo Dominic UNQUALIFIED
Cody H SlusarskiRussiaAnna Fali NEGOTIATION
Isabel D WhobreyRussiaAnna Fali QUALIFIED
Cody F KolmetzAustraliaAnna Fali NEW
Maisha F FigeroaJapanIoni Bowcher PROPOSAL
Izzy N AmigonCanadaStephen Shaw PROPOSAL
Nicolas B RutaItalyXuxue Feng NEW
Cody Y VocelkaCanadaIvan Magalhaes RENEWAL
Mayumi Q RulapaughIndiaIoni Bowcher RENEWAL
Deepesh V MacleadArgentinaStephen Shaw PROPOSAL
Greenwood K RoysterRussiaIoni Bowcher NEW
Misaki T GarufiFranceIvan Magalhaes NEGOTIATION
James G VenereJapanAnna Fali RENEWAL
Jeanfrancois N RimCanadaAsiya Javayant QUALIFIED
Jennifer M GarufiSpainAnna Fali QUALIFIED
Munro J GlickUnited KingdomAsiya Javayant NEW
Maisha C StockhamItalyIvan Magalhaes UNQUALIFIED
Leja K GillianAustraliaIoni Bowcher RENEWAL
Jefferson Z VocelkaCanadaAmy Elsner NEW
Morrow X BriddickArgentinaOnyama Limba PROPOSAL
Juan Q PoquetteAustraliaAnna Fali NEGOTIATION
Ashley E RimCanadaAsiya Javayant UNQUALIFIED
Chavez Z GlickArgentinaAmy Elsner PROPOSAL
Aditya Z FollerGermanyOnyama Limba UNQUALIFIED
Julie E FlosiSpainBernardo Dominic QUALIFIED
Octavia T RimAustraliaIvan Magalhaes NEGOTIATION
Claire K PoquetteAustraliaAmy Elsner PROPOSAL
Arvin F AlbaresSpainIoni Bowcher NEGOTIATION
Frozen Columns
Name
Leon N Amigon
Salvatore M Flosi
Claire X Figeroa
Emily J Paprocki
Tony U Caldarera
Maisha M Nicka
Francesco O Schemmer
Nicolas U Paprocki
Leja J Nicka
David I Dilliard
Murillo H Slusarski
Jennifer Q Nicka
Smith V Bowley
Kadeem R Rulapaugh
Aika P Shinko
Darci Z Tollner
Aika P Poquette
Darci O Albares
Johnson G Stockham
Jennifer Y Nestle
Jones Z Kolmetz
Jones N Kolmetz
Isabel G Stockham
Leja Q Malet
Adams K Morasca
Tony M Poquette
Mujtaba G Royster
Mujtaba K Stenseth
Kadeem N Ruta
Nicolas S Venere
Mujtaba I Bolognia
Aruna L Albares
Alejandro J Foller
Julie W Shinko
Morrow G Amigon
Ricardo Y Perin
Aditya A Slusarski
Salvatore R Venere
Isabel J Inouye
Jeanfrancois H Ostrosky
Deepesh W Oldroyd
Antonio C Butt
Jeanfrancois G Gillian
Salvatore R Ruta
Chavez P Figeroa
Sinclair B Wieser
Julie Z Oldroyd
Faith L Bolognia
Jefferson G Foller
Kadeem B Caudy
IdCountryDate
1000France2026-06-20
1001Brazil2026-07-09
1002Spain2026-06-22
1003Japan2026-07-12
1004Japan2026-06-26
1005Canada2026-06-24
1006Spain2026-06-30
1007Brazil2026-06-24
1008Argentina2026-07-09
1009Brazil2026-07-02
1010Russia2026-07-15
1011France2026-07-07
1012India2026-06-24
1013Russia2026-06-28
1014Australia2026-06-28
1015Canada2026-07-06
1016Spain2026-07-08
1017Australia2026-06-26
1018India2026-07-06
1019Italy2026-07-12
1020Australia2026-06-17
1021Japan2026-06-18
1022Argentina2026-07-05
1023Japan2026-07-12
1024Canada2026-07-14
1025India2026-06-20
1026Canada2026-07-07
1027Germany2026-06-17
1028Spain2026-06-22
1029Italy2026-06-17
1030Russia2026-07-15
1031Brazil2026-07-07
1032Italy2026-06-25
1033India2026-06-22
1034Australia2026-06-24
1035United Kingdom2026-06-20
1036Russia2026-07-13
1037Italy2026-07-08
1038United Kingdom2026-07-06
1039Argentina2026-07-09
1040Argentina2026-06-24
1041Canada2026-07-16
1042France2026-06-21
1043Australia2026-06-23
1044Australia2026-06-17
1045Japan2026-07-11
1046United Kingdom2026-06-20
1047Japan2026-07-03
1048India2026-06-28
1049Canada2026-06-18

On-Demand Data

NameIdCountryDate
Arvin C Ostrosky1000Spain2026-06-20
Smith D Garufi1001Germany2026-06-23
Emily S Saylors1002Brazil2026-06-17
Maisha S Shinko1003Russia2026-07-14
Deepesh H Malet1004United Kingdom2026-06-18
Rodrigues C Malet1005Italy2026-06-28
Munro E Schemmer1006Canada2026-07-04
Octavia L Marrier1007Australia2026-07-09
Deepesh B Dilliard1008Canada2026-07-16
Wickens P Perin1009United Kingdom2026-07-10
Deepesh B Butt1010Argentina2026-06-29
Stacey W Royster1011Spain2026-07-09
Chavez C Shinko1012Italy2026-07-13
Ashley U Wieser1013United Kingdom2026-07-16
Aditya Q Butt1014Italy2026-07-04
Kaitlin J Kusko1015India2026-07-05
Jefferson M Briddick1016Australia2026-06-22
Kadeem A Marrier1017Spain2026-06-24
Emily U Slusarski1018Italy2026-07-16
Kaitlin B Chui1019Brazil2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio P NestleAustraliaIvan Magalhaes QUALIFIED
Morrow B BriddickFranceStephen Shaw NEW
David P DoeJapanBernardo Dominic NEGOTIATION
Maria H MacleadGermanyAmy Elsner QUALIFIED
Alejandro C FerenczSpainXuxue Feng NEW
Leja J SaylorsBrazilBernardo Dominic RENEWAL
Rodrigues P PerinArgentinaIvan Magalhaes UNQUALIFIED
Silvio M GlickAustraliaStephen Shaw UNQUALIFIED
Maisha N WaycottArgentinaAmy Elsner QUALIFIED
Jeanfrancois V MarrierRussiaXuxue Feng UNQUALIFIED
Adams C WhobreyGermanyAsiya Javayant NEW
Sinclair C MaletItalyIvan Magalhaes QUALIFIED
Julie F FerenczCanadaStephen Shaw NEGOTIATION
Clifford J RutaFranceAmy Elsner QUALIFIED
Ricardo Z NickaBrazilIoni Bowcher UNQUALIFIED
Antonio F SchemmerBrazilAsiya Javayant PROPOSAL
Rodrigues Y IturbideArgentinaXuxue Feng NEW
Nicolas E SaylorsFranceAmy Elsner UNQUALIFIED
Aruna Y CaudyJapanBernardo Dominic QUALIFIED
Faith C BriddickFranceXuxue Feng QUALIFIED
Isabel R RoysterFranceOnyama Limba NEW
Aika Q ChuiCanadaBernardo Dominic PROPOSAL
Mayumi T PerinArgentinaElwin Sharvill PROPOSAL
Aditya A ChuiItalyStephen Shaw NEGOTIATION
Aika O FlosiFranceOnyama Limba UNQUALIFIED
David W FerenczArgentinaStephen Shaw NEGOTIATION
Julie B FigeroaGermanyBernardo Dominic PROPOSAL
Jones V AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Clifford S MarrierItalyOnyama Limba PROPOSAL
Clifford B SlusarskiArgentinaElwin Sharvill NEW
Stacey F DoeFranceOnyama Limba PROPOSAL
Misaki I PerinJapanElwin Sharvill NEGOTIATION
Aditya W InouyeAustraliaElwin Sharvill NEGOTIATION
Julie D WhobreyFranceStephen Shaw PROPOSAL
Clifford H ChuiJapanIoni Bowcher UNQUALIFIED
Jones K MaletIndiaIoni Bowcher NEGOTIATION
Claire N MorascaUnited KingdomStephen Shaw UNQUALIFIED
Deepesh J DoeJapanAnna Fali NEW
James P MaletCanadaStephen Shaw RENEWAL
Cody S ShinkoIndiaIoni Bowcher PROPOSAL

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