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
Murillo X StensethItalyIvan Magalhaes RENEWAL
Misaki S SchemmerRussiaAmy Elsner RENEWAL
Maria E BriddickArgentinaAsiya Javayant NEW
Kaitlin K MorascaArgentinaBernardo Dominic NEW
James P StensethUnited KingdomIoni Bowcher RENEWAL
Maria P RoysterCanadaOnyama Limba QUALIFIED
Silvio J NickaItalyBernardo Dominic NEW
Chavez X RimRussiaIoni Bowcher UNQUALIFIED
Wickens L ShinkoItalyAsiya Javayant QUALIFIED
Emily I DarakjyFranceAnna Fali PROPOSAL
Clifford U MarrierGermanyAsiya Javayant PROPOSAL
Emily H ChuiRussiaAsiya Javayant UNQUALIFIED
Adams T WaycottFranceAnna Fali RENEWAL
Greenwood E DarakjyBrazilIvan Magalhaes UNQUALIFIED
Cody E MaletSpainAnna Fali NEW
Munro V NestleGermanyAnna Fali QUALIFIED
Maria F FerenczBrazilStephen Shaw PROPOSAL
Emily K GauchoArgentinaXuxue Feng QUALIFIED
Ashley B WhobreyBrazilAnna Fali NEW
Octavia G BriddickRussiaIvan Magalhaes RENEWAL
Antonio J BriddickArgentinaIvan Magalhaes UNQUALIFIED
Faith S WhobreyRussiaIvan Magalhaes NEW
Julie T GarufiBrazilAmy Elsner NEGOTIATION
Octavia W AmigonGermanyXuxue Feng PROPOSAL
Darci V GarufiItalyAnna Fali QUALIFIED
Tony B KolmetzGermanyIoni Bowcher NEW
Ashley P DilliardItalyIoni Bowcher NEGOTIATION
Smith U AlbaresRussiaAmy Elsner QUALIFIED
Wickens S RoysterAustraliaOnyama Limba NEW
Faith L RutaSpainAmy Elsner NEW
Ashley B SergiUnited KingdomXuxue Feng UNQUALIFIED
Johnson P OstroskySpainIvan Magalhaes NEW
Greenwood Z GlickFranceBernardo Dominic PROPOSAL
Ivar G MaletJapanOnyama Limba UNQUALIFIED
Faith I NickaBrazilBernardo Dominic RENEWAL
Clifford G OstroskyAustraliaAmy Elsner UNQUALIFIED
Aika H MorascaJapanBernardo Dominic PROPOSAL
Juan Q VenereSpainAsiya Javayant RENEWAL
Costa O FigeroaCanadaBernardo Dominic UNQUALIFIED
Leon H KolmetzSpainAmy Elsner QUALIFIED
Isabel Q ButtItalyAsiya Javayant UNQUALIFIED
Ricardo J BowleyCanadaIoni Bowcher NEW
Cody H NestleUnited KingdomOnyama Limba PROPOSAL
Murillo L KuskoItalyIoni Bowcher NEGOTIATION
Leja D BologniaUnited KingdomAmy Elsner QUALIFIED
Alejandro Z OstroskyUnited KingdomElwin Sharvill PROPOSAL
Sinclair V ButtGermanyStephen Shaw NEW
Isabel Y OstroskyCanadaAnna Fali RENEWAL
Morrow G DarakjyJapanXuxue Feng NEGOTIATION
Greenwood T DilliardItalyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Tony Z MarrierAustraliaOnyama Limba PROPOSAL
Mayumi B BriddickArgentinaIoni Bowcher RENEWAL
Chavez T PerinFranceAnna Fali UNQUALIFIED
Arvin O FigeroaGermanyAsiya Javayant QUALIFIED
Jennifer H MorascaSpainAmy Elsner NEGOTIATION
Greenwood E FerenczAustraliaStephen Shaw UNQUALIFIED
Munro L GarufiRussiaBernardo Dominic QUALIFIED
Clifford K GarufiSpainOnyama Limba RENEWAL
Kaitlin L MaletItalyXuxue Feng UNQUALIFIED
Misaki O ButtAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan D WieserAustralia2026-07-15Morlong Associates NEGOTIATION34Bernardo Dominic
1001Francesco W IturbideUnited Kingdom2026-07-08Benton, John B Jr QUALIFIED65Elwin Sharvill
1002Ivar E AlbaresUnited Kingdom2026-07-19Commercial Press UNQUALIFIED46Anna Fali
1003Julie U TollnerJapan2026-07-24Buckley Miller Wright UNQUALIFIED53Amy Elsner
1004Rodrigues O ShinkoItaly2026-07-25Truhlar And Truhlar Attys RENEWAL86Bernardo Dominic
1005Deepesh O PerinRussia2026-07-08Rangoni Of Florence PROPOSAL24Ivan Magalhaes
1006Antonio K BowleyBrazil2026-08-06Feiner Bros NEGOTIATION0Xuxue Feng
1007Munro B WaycottBrazil2026-07-09Printing Dimensions NEW89Ivan Magalhaes
1008Misaki R IturbideIndia2026-07-12Rangoni Of Florence QUALIFIED40Stephen Shaw
1009Leja Y RutaIndia2026-07-24Printing Dimensions RENEWAL17Amy Elsner
1010Nicolas R SchemmerItaly2026-07-31Feltz Printing Service PROPOSAL50Bernardo Dominic
1011Mujtaba X MaletRussia2026-08-02Printing Dimensions RENEWAL7Xuxue Feng
1012Juan R PerinGermany2026-07-21Chemel, James L Cpa QUALIFIED49Anna Fali
1013Munro I WieserGermany2026-08-03Truhlar And Truhlar Attys UNQUALIFIED48Onyama Limba
1014Chavez L RulapaughAustralia2026-07-11Rousseaux, Michael Esq NEGOTIATION6Asiya Javayant
1015Chavez G PerinJapan2026-07-24Feiner Bros UNQUALIFIED9Amy Elsner
1016Salvatore A MacleadRussia2026-08-06Printing Dimensions QUALIFIED76Ivan Magalhaes
1017Aika Q VenereCanada2026-07-14Printing Dimensions NEW76Ivan Magalhaes
1018Ashley Z CampainIndia2026-07-19Rousseaux, Michael Esq PROPOSAL62Amy Elsner
1019Morrow O KuskoJapan2026-07-18Feiner Bros RENEWAL48Xuxue Feng
1020Ricardo B InouyeArgentina2026-07-30Feiner Bros NEW26Ivan Magalhaes
1021Wickens N RoysterItaly2026-07-25Rangoni Of Florence NEW38Xuxue Feng
1022Kadeem V GillianIndia2026-07-26Buckley Miller Wright RENEWAL76Anna Fali
1023Clifford S FollerUnited Kingdom2026-07-23Rangoni Of Florence RENEWAL56Ioni Bowcher
1024Morrow S WhobreyItaly2026-07-22Dorl, James J Esq UNQUALIFIED74Amy Elsner
1025Claire E StensethIndia2026-07-30Benton, John B Jr QUALIFIED30Anna Fali
1026Greenwood A RutaArgentina2026-07-17Commercial Press NEGOTIATION91Onyama Limba
1027Costa C ChuiItaly2026-07-29Dorl, James J Esq PROPOSAL55Elwin Sharvill
1028Maria B KuskoCanada2026-07-13Chemel, James L Cpa NEW33Stephen Shaw
1029Mayumi I CaudyCanada2026-07-08Chemel, James L Cpa NEGOTIATION30Onyama Limba
1030Stacey M SchemmerUnited Kingdom2026-07-27Chemel, James L Cpa QUALIFIED51Anna Fali
1031Ashley A IturbideItaly2026-07-21Buckley Miller Wright NEGOTIATION11Xuxue Feng
1032Johnson H GauchoItaly2026-07-12Benton, John B Jr RENEWAL55Ioni Bowcher
1033Antonio D AlbaresSpain2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED5Stephen Shaw
1034Emily V DilliardGermany2026-07-09Printing Dimensions NEW14Bernardo Dominic
1035Kadeem T DoeArgentina2026-07-21King, Christopher A Esq RENEWAL66Asiya Javayant
1036Aditya S BriddickJapan2026-07-15Printing Dimensions PROPOSAL65Amy Elsner
1037Mujtaba Q NickaUnited Kingdom2026-07-22Feiner Bros PROPOSAL33Ivan Magalhaes
1038Juan N KolmetzCanada2026-07-13Rousseaux, Michael Esq RENEWAL33Elwin Sharvill
1039Stacey C DarakjyIndia2026-07-31Commercial Press UNQUALIFIED63Xuxue Feng
1040Salvatore B AlbaresGermany2026-08-01Chapman, Ross E Esq QUALIFIED49Xuxue Feng
1041Smith U StensethCanada2026-07-29Chemel, James L Cpa NEW7Stephen Shaw
1042Maisha D ButtJapan2026-07-23Rangoni Of Florence NEGOTIATION81Asiya Javayant
1043Leja L NestleFrance2026-07-30Rousseaux, Michael Esq PROPOSAL22Onyama Limba
1044Clifford O PaprockiItaly2026-07-29Chemel, James L Cpa UNQUALIFIED80Ivan Magalhaes
1045Maisha A RoysterArgentina2026-08-02Feltz Printing Service NEGOTIATION30Asiya Javayant
1046Antonio W MarrierUnited Kingdom2026-07-10Rousseaux, Michael Esq RENEWAL76Ioni Bowcher
1047Munro I CampainArgentina2026-07-15Benton, John B Jr NEGOTIATION67Onyama Limba
1048Silvio I NestleIndia2026-07-10Chemel, James L Cpa QUALIFIED70Anna Fali
1049Mujtaba P KolmetzSpain2026-07-25Feiner Bros UNQUALIFIED41Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin O OldroydItalyIoni Bowcher PROPOSAL
Jefferson I FollerSpainStephen Shaw QUALIFIED
Mayumi I AlbaresItalyElwin Sharvill UNQUALIFIED
Jennifer K IturbideFranceElwin Sharvill NEW
Julie Z TollnerGermanyIvan Magalhaes UNQUALIFIED
Mujtaba H FerenczJapanBernardo Dominic PROPOSAL
Adams I GauchoUnited KingdomAmy Elsner NEW
Smith Q CaldareraFranceIoni Bowcher QUALIFIED
Faith I OstroskySpainIoni Bowcher NEGOTIATION
Aruna E KolmetzCanadaOnyama Limba NEGOTIATION
Kadeem H FollerIndiaStephen Shaw PROPOSAL
Greenwood F CampainItalyAnna Fali RENEWAL
Chavez B VocelkaFranceAmy Elsner NEGOTIATION
Ricardo F WieserSpainIvan Magalhaes UNQUALIFIED
Maisha W AmigonFranceBernardo Dominic QUALIFIED
Isabel A BologniaGermanyAmy Elsner UNQUALIFIED
Kaitlin O ChuiRussiaIoni Bowcher UNQUALIFIED
Jones O MorascaJapanElwin Sharvill NEGOTIATION
Costa E StensethBrazilAsiya Javayant NEGOTIATION
Johnson Q WieserCanadaIvan Magalhaes QUALIFIED
Aika W MarrierRussiaIvan Magalhaes QUALIFIED
Alejandro B WaycottFranceAmy Elsner UNQUALIFIED
Ashley D MaletUnited KingdomStephen Shaw UNQUALIFIED
Ivar T PerinUnited KingdomAsiya Javayant PROPOSAL
Izzy C StensethFranceIvan Magalhaes UNQUALIFIED
Greenwood W AmigonArgentinaXuxue Feng NEGOTIATION
Cody K SchemmerRussiaXuxue Feng NEW
Deepesh P PaprockiAustraliaXuxue Feng NEGOTIATION
Tony O FlosiAustraliaStephen Shaw RENEWAL
Ivar H MorascaIndiaIoni Bowcher QUALIFIED
Ivar N FigeroaRussiaXuxue Feng UNQUALIFIED
Maisha A MaletJapanElwin Sharvill NEW
Murillo U WaycottBrazilIvan Magalhaes PROPOSAL
Emily P ButtFranceXuxue Feng QUALIFIED
Juan G InouyeJapanOnyama Limba RENEWAL
Faith Q NickaUnited KingdomStephen Shaw RENEWAL
Sinclair I BologniaBrazilIoni Bowcher NEGOTIATION
Deepesh K CaudyCanadaXuxue Feng QUALIFIED
Isabel Q IturbideSpainIvan Magalhaes NEGOTIATION
Clifford M RoysterItalyOnyama Limba QUALIFIED
Arvin W MorascaItalyIoni Bowcher PROPOSAL
Julie S CaudyJapanOnyama Limba RENEWAL
James H MaletUnited KingdomOnyama Limba UNQUALIFIED
Silvio S PaprockiBrazilIoni Bowcher RENEWAL
Kaitlin G AmigonJapanStephen Shaw NEW
Julie P PaprockiGermanyAsiya Javayant RENEWAL
Jeanfrancois K MorascaUnited KingdomOnyama Limba PROPOSAL
David C PaprockiCanadaStephen Shaw NEW
Jeanfrancois P FerenczRussiaAnna Fali PROPOSAL
Antonio I DarakjyRussiaXuxue Feng PROPOSAL
Frozen Columns
Name
Emily Z Morasca
Cody R Ferencz
David U Sergi
Chavez I Kolmetz
Maisha B Royster
Sinclair S Kolmetz
Ivar B Albares
Salvatore N Paprocki
Johnson T Vocelka
Adams E Sergi
Chavez V Slusarski
Maria I Briddick
Aditya R Garufi
Isabel J Caudy
Sinclair J Amigon
Leja J Venere
Aika J Saylors
Stacey Q Paprocki
Maisha R Maclead
Murillo T Dilliard
Maria C Kolmetz
Morrow S Flosi
Sinclair B Schemmer
Chavez E Poquette
Jefferson I Darakjy
Murillo Y Dilliard
Costa I Malet
Jeanfrancois D Foller
Maria H Wieser
Juan S Doe
Darci H Albares
Greenwood A Ferencz
Maria T Saylors
Costa Q Caudy
David W Doe
Ivar S Garufi
Aditya A Maclead
Clifford W Sergi
Jeanfrancois O Foller
Claire Y Shinko
Claire Q Stenseth
Faith T Ruta
Ashley Z Iturbide
Leja Q Nicka
Jeanfrancois B Rim
Jones F Gaucho
Johnson S Rim
Adams L Whobrey
Rodrigues P Inouye
Maisha M Stenseth
IdCountryDate
1000Argentina2026-07-25
1001Japan2026-07-14
1002Argentina2026-07-17
1003France2026-07-22
1004Spain2026-07-16
1005Brazil2026-07-10
1006Japan2026-07-16
1007Germany2026-07-09
1008Germany2026-07-22
1009Italy2026-07-23
1010Argentina2026-07-21
1011Germany2026-07-16
1012Russia2026-07-24
1013Argentina2026-07-08
1014Australia2026-07-18
1015United Kingdom2026-08-04
1016Australia2026-07-13
1017Italy2026-07-25
1018Japan2026-07-22
1019Spain2026-07-22
1020Russia2026-07-16
1021Italy2026-07-23
1022Japan2026-07-28
1023Spain2026-07-17
1024Spain2026-07-27
1025Italy2026-07-24
1026Canada2026-08-06
1027Italy2026-07-27
1028Japan2026-08-03
1029Canada2026-07-15
1030Brazil2026-07-10
1031India2026-07-24
1032United Kingdom2026-07-21
1033Russia2026-07-20
1034Australia2026-07-21
1035Brazil2026-07-09
1036Germany2026-07-31
1037Japan2026-07-14
1038Brazil2026-07-25
1039India2026-08-03
1040Japan2026-07-16
1041France2026-07-16
1042Spain2026-08-06
1043Brazil2026-07-16
1044Spain2026-07-09
1045Japan2026-08-02
1046Germany2026-07-19
1047Italy2026-07-31
1048Brazil2026-07-19
1049Japan2026-07-26

On-Demand Data

NameIdCountryDate
Emily E Amigon1000Australia2026-07-09
Johnson Y Nestle1001Germany2026-07-08
Maria X Saylors1002Spain2026-07-28
Leja U Ferencz1003India2026-07-09
Ashley F Schemmer1004Japan2026-08-01
Munro Z Nestle1005Argentina2026-07-14
Smith C Bowley1006Australia2026-07-20
Leja X Saylors1007Japan2026-07-21
Adams T Glick1008Japan2026-07-27
Deepesh A Stockham1009India2026-08-04
Francesco Y Dilliard1010India2026-07-13
Ivar R Wieser1011Germany2026-07-24
Aruna S Bolognia1012Spain2026-07-27
Claire P Amigon1013Australia2026-07-19
Clifford Y Maclead1014Brazil2026-07-10
Clifford C Ferencz1015United Kingdom2026-07-08
Jennifer R Chui1016India2026-07-21
Ivar M Malet1017Argentina2026-07-25
Johnson A Perin1018Brazil2026-07-15
Murillo N Royster1019United Kingdom2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika T MarrierGermanyXuxue Feng PROPOSAL
Isabel M StensethItalyStephen Shaw UNQUALIFIED
Isabel D MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Maisha G MacleadArgentinaAsiya Javayant NEGOTIATION
Juan D MaletIndiaIoni Bowcher NEGOTIATION
Aruna P AmigonItalyElwin Sharvill QUALIFIED
David U MarrierItalyBernardo Dominic RENEWAL
Smith Q ShinkoIndiaElwin Sharvill RENEWAL
Salvatore E StockhamArgentinaElwin Sharvill NEW
Misaki N GillianIndiaAnna Fali QUALIFIED
Ivar S NestleCanadaAnna Fali PROPOSAL
Alejandro S RulapaughBrazilIoni Bowcher UNQUALIFIED
Maria Y FerenczGermanyAnna Fali QUALIFIED
Costa D GauchoBrazilIoni Bowcher QUALIFIED
Rodrigues Y WaycottJapanIoni Bowcher NEW
Chavez L ButtItalyAnna Fali PROPOSAL
James L WaycottAustraliaOnyama Limba RENEWAL
Nicolas Q WieserItalyOnyama Limba RENEWAL
Jeanfrancois E DilliardSpainIvan Magalhaes PROPOSAL
Maria S FlosiJapanXuxue Feng NEW
Claire U MarrierIndiaXuxue Feng NEGOTIATION
Misaki W CampainSpainElwin Sharvill QUALIFIED
Munro S GauchoIndiaAsiya Javayant PROPOSAL
Murillo F DoeArgentinaElwin Sharvill NEGOTIATION
David N ButtBrazilIvan Magalhaes RENEWAL
David Z GauchoRussiaAmy Elsner UNQUALIFIED
Juan X AlbaresCanadaIvan Magalhaes NEGOTIATION
Mujtaba W MaletItalyXuxue Feng UNQUALIFIED
Arvin P OldroydItalyAmy Elsner NEW
Smith I ChuiAustraliaElwin Sharvill RENEWAL
Clifford F ButtRussiaBernardo Dominic QUALIFIED
Emily U CampainJapanAnna Fali NEW
Stacey X ButtBrazilAsiya Javayant NEGOTIATION
Leon Q PaprockiUnited KingdomAsiya Javayant NEW
Clifford R GarufiGermanyAmy Elsner PROPOSAL
Maria A KuskoFranceAsiya Javayant UNQUALIFIED
Johnson Z KolmetzRussiaAsiya Javayant UNQUALIFIED
Aika Y IturbideFranceBernardo Dominic NEW
Jones C SergiFranceAmy Elsner UNQUALIFIED
David O WaycottGermanyOnyama Limba 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>