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
Emily L NestleRussiaXuxue Feng NEGOTIATION
Jefferson H FollerIndiaAnna Fali NEW
Deepesh R OstroskyJapanElwin Sharvill RENEWAL
Tony C ChuiSpainAmy Elsner NEW
Alejandro N DarakjyFranceXuxue Feng RENEWAL
Mujtaba X BologniaIndiaElwin Sharvill UNQUALIFIED
Kadeem G CaldareraRussiaAmy Elsner NEW
Greenwood O TollnerFranceAmy Elsner NEGOTIATION
Aditya W FlosiUnited KingdomStephen Shaw NEW
Ivar U SchemmerFranceIvan Magalhaes NEW
Morrow B ButtBrazilIvan Magalhaes PROPOSAL
Adams H VenereRussiaAmy Elsner NEGOTIATION
Kadeem L WhobreyBrazilOnyama Limba RENEWAL
Adams A GauchoItalyAnna Fali NEGOTIATION
Izzy C OstroskyArgentinaOnyama Limba RENEWAL
Aika N DoeFranceAsiya Javayant PROPOSAL
Misaki Y CaldareraArgentinaElwin Sharvill QUALIFIED
Francesco O TollnerUnited KingdomStephen Shaw RENEWAL
Morrow F OldroydSpainStephen Shaw UNQUALIFIED
Aika E CaldareraSpainStephen Shaw QUALIFIED
Jennifer I BowleyJapanBernardo Dominic QUALIFIED
Jeanfrancois R StockhamIndiaStephen Shaw QUALIFIED
Aditya X FerenczSpainStephen Shaw RENEWAL
Munro D GlickAustraliaIoni Bowcher RENEWAL
Sinclair Q BologniaGermanyAsiya Javayant RENEWAL
Ivar A BriddickCanadaAsiya Javayant NEGOTIATION
Mayumi W StockhamSpainElwin Sharvill UNQUALIFIED
Deepesh N CampainAustraliaAnna Fali QUALIFIED
Johnson I RoysterAustraliaElwin Sharvill NEW
Clifford S RimJapanOnyama Limba PROPOSAL
Adams A KuskoIndiaIvan Magalhaes PROPOSAL
David F CampainIndiaAnna Fali QUALIFIED
Tony H VocelkaAustraliaOnyama Limba NEGOTIATION
Emily U AmigonGermanyElwin Sharvill UNQUALIFIED
Isabel U WaycottBrazilXuxue Feng UNQUALIFIED
Misaki H PaprockiGermanyIvan Magalhaes QUALIFIED
Jefferson Y OstroskyAustraliaElwin Sharvill UNQUALIFIED
Cody J ButtJapanAsiya Javayant QUALIFIED
Isabel M VocelkaBrazilBernardo Dominic UNQUALIFIED
Octavia T CaudyRussiaAnna Fali NEGOTIATION
Aditya U DoeAustraliaStephen Shaw QUALIFIED
Mayumi U BriddickUnited KingdomAmy Elsner NEGOTIATION
Deepesh W RoysterIndiaBernardo Dominic PROPOSAL
Silvio U VocelkaBrazilAmy Elsner NEW
Isabel E IturbideAustraliaBernardo Dominic NEGOTIATION
Costa G GillianSpainIvan Magalhaes NEW
Mayumi D StockhamAustraliaAsiya Javayant UNQUALIFIED
Emily U StensethJapanAsiya Javayant NEW
Chavez N BowleyRussiaAnna Fali NEGOTIATION
Misaki K SaylorsCanadaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio S StensethArgentinaOnyama Limba NEW
Faith W NestleUnited KingdomIoni Bowcher QUALIFIED
Munro O RutaBrazilIvan Magalhaes NEW
Ivar V StensethItalyStephen Shaw QUALIFIED
Chavez H FollerIndiaElwin Sharvill NEGOTIATION
Deepesh E VocelkaSpainAsiya Javayant QUALIFIED
Emily O ShinkoFranceXuxue Feng PROPOSAL
Faith B WhobreyRussiaXuxue Feng NEGOTIATION
Johnson E WhobreyGermanyAmy Elsner NEW
Arvin Q PoquetteCanadaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika D DarakjyAustralia2024-05-29Feiner Bros NEW42Ivan Magalhaes
1001Claire V GlickAustralia2024-06-04Rousseaux, Michael Esq UNQUALIFIED78Anna Fali
1002James S WhobreyRussia2024-06-22Chemel, James L Cpa NEGOTIATION18Stephen Shaw
1003Juan V OstroskyCanada2024-06-13Chanay, Jeffrey A Esq NEGOTIATION29Ivan Magalhaes
1004Aika P CaudyJapan2024-06-22Benton, John B Jr QUALIFIED93Ioni Bowcher
1005Jefferson P CaldareraUnited Kingdom2024-06-05Benton, John B Jr UNQUALIFIED59Onyama Limba
1006Claire E BowleyCanada2024-05-26King, Christopher A Esq QUALIFIED8Amy Elsner
1007Aditya H FigeroaFrance2024-06-23Dorl, James J Esq QUALIFIED7Elwin Sharvill
1008Juan Q DoeAustralia2024-06-20Buckley Miller Wright RENEWAL59Ivan Magalhaes
1009Jeanfrancois S PerinUnited Kingdom2024-06-15Chanay, Jeffrey A Esq QUALIFIED89Asiya Javayant
1010Emily K IturbideCanada2024-06-21Morlong Associates PROPOSAL62Stephen Shaw
1011Arvin L AlbaresCanada2024-05-27Benton, John B Jr NEGOTIATION45Anna Fali
1012Claire A FollerBrazil2024-05-31Truhlar And Truhlar Attys QUALIFIED55Ivan Magalhaes
1013Francesco H StensethFrance2024-06-16Buckley Miller Wright RENEWAL99Amy Elsner
1014Rodrigues O SaylorsSpain2024-06-15Rousseaux, Michael Esq RENEWAL91Ivan Magalhaes
1015Arvin J ChuiItaly2024-05-31Rousseaux, Michael Esq PROPOSAL17Bernardo Dominic
1016Arvin C RimIndia2024-06-10Commercial Press QUALIFIED3Elwin Sharvill
1017Maria U ButtArgentina2024-05-28Buckley Miller Wright NEGOTIATION41Asiya Javayant
1018Isabel R SlusarskiGermany2024-06-18Printing Dimensions NEGOTIATION20Elwin Sharvill
1019Mayumi P AlbaresCanada2024-06-13Commercial Press RENEWAL95Anna Fali
1020Aditya B SaylorsSpain2024-06-01Feiner Bros PROPOSAL57Anna Fali
1021Salvatore M MarrierCanada2024-06-05King, Christopher A Esq NEW34Ivan Magalhaes
1022Wickens B PerinUnited Kingdom2024-06-15Benton, John B Jr QUALIFIED2Amy Elsner
1023Ivar L RulapaughFrance2024-06-13Feltz Printing Service NEGOTIATION23Ivan Magalhaes
1024Chavez I RimAustralia2024-06-12Benton, John B Jr PROPOSAL26Anna Fali
1025Salvatore Y SaylorsCanada2024-06-01Rousseaux, Michael Esq NEW62Ivan Magalhaes
1026Izzy O VenereBrazil2024-06-17Rangoni Of Florence QUALIFIED90Ivan Magalhaes
1027Morrow Z GlickCanada2024-06-01Morlong Associates PROPOSAL21Bernardo Dominic
1028Wickens D InouyeRussia2024-06-07Benton, John B Jr NEGOTIATION4Anna Fali
1029Stacey T CaldareraBrazil2024-06-23Printing Dimensions QUALIFIED30Anna Fali
1030James R SergiCanada2024-06-18Rangoni Of Florence RENEWAL79Xuxue Feng
1031Kadeem R FollerItaly2024-06-02King, Christopher A Esq QUALIFIED57Elwin Sharvill
1032Francesco R FollerBrazil2024-06-19Chemel, James L Cpa PROPOSAL25Asiya Javayant
1033Silvio R NickaJapan2024-06-02Feiner Bros PROPOSAL55Elwin Sharvill
1034Jefferson V AlbaresUnited Kingdom2024-06-07Commercial Press RENEWAL57Ioni Bowcher
1035Ashley S RimCanada2024-06-13Feiner Bros PROPOSAL39Xuxue Feng
1036Isabel A NickaFrance2024-06-21Rangoni Of Florence RENEWAL51Amy Elsner
1037Chavez N DoeJapan2024-05-31Chapman, Ross E Esq RENEWAL96Ioni Bowcher
1038Emily X VenereFrance2024-06-14Buckley Miller Wright RENEWAL54Amy Elsner
1039Francesco H GlickGermany2024-05-26Truhlar And Truhlar Attys QUALIFIED83Stephen Shaw
1040Izzy P MarrierUnited Kingdom2024-06-07Buckley Miller Wright PROPOSAL53Bernardo Dominic
1041Julie G RoysterRussia2024-05-31Feltz Printing Service RENEWAL82Bernardo Dominic
1042Nicolas Z GauchoCanada2024-06-03Commercial Press QUALIFIED1Stephen Shaw
1043David B BologniaUnited Kingdom2024-05-26Chanay, Jeffrey A Esq RENEWAL26Bernardo Dominic
1044Jones U AmigonSpain2024-06-02Benton, John B Jr QUALIFIED80Asiya Javayant
1045Jennifer W ChuiSpain2024-05-29Printing Dimensions NEGOTIATION0Stephen Shaw
1046Maria C WieserAustralia2024-06-15King, Christopher A Esq UNQUALIFIED61Asiya Javayant
1047Smith G CampainCanada2024-06-11Chapman, Ross E Esq NEGOTIATION57Anna Fali
1048Jeanfrancois N OldroydRussia2024-06-06Chanay, Jeffrey A Esq UNQUALIFIED54Onyama Limba
1049Mayumi W ButtArgentina2024-06-19Feiner Bros QUALIFIED93Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Q CaldareraFranceOnyama Limba QUALIFIED
Smith F GillianRussiaIvan Magalhaes QUALIFIED
Maisha S PoquetteFranceBernardo Dominic NEGOTIATION
Aika G MaletAustraliaXuxue Feng UNQUALIFIED
Munro P MaletGermanyAmy Elsner NEW
Jones N OldroydFranceIoni Bowcher NEW
Silvio N SlusarskiCanadaOnyama Limba UNQUALIFIED
Wickens I CaldareraSpainAsiya Javayant UNQUALIFIED
Juan Q MacleadAustraliaIvan Magalhaes RENEWAL
Munro A RutaAustraliaIvan Magalhaes QUALIFIED
Aika D RoysterItalyIoni Bowcher QUALIFIED
Costa U OstroskyBrazilAnna Fali QUALIFIED
Greenwood M BriddickBrazilElwin Sharvill QUALIFIED
David E MaletJapanStephen Shaw UNQUALIFIED
Costa O MarrierSpainElwin Sharvill NEW
Murillo K KuskoIndiaIvan Magalhaes RENEWAL
Johnson A OldroydArgentinaAnna Fali UNQUALIFIED
Kaitlin I DarakjyBrazilIoni Bowcher UNQUALIFIED
Salvatore S VenereArgentinaAnna Fali QUALIFIED
Ivar A MarrierBrazilBernardo Dominic NEGOTIATION
Leon F GillianSpainStephen Shaw RENEWAL
Jennifer T FerenczFranceAnna Fali NEGOTIATION
Juan K DarakjyRussiaXuxue Feng NEGOTIATION
Alejandro M VocelkaSpainStephen Shaw PROPOSAL
Munro O KolmetzGermanyStephen Shaw PROPOSAL
Adams K AmigonFranceBernardo Dominic NEGOTIATION
Silvio A WhobreyFranceStephen Shaw RENEWAL
Ivar X BowleyBrazilAsiya Javayant PROPOSAL
Nicolas O NestleIndiaAsiya Javayant QUALIFIED
Clifford O VenereJapanIoni Bowcher NEGOTIATION
Juan Z WieserItalyAnna Fali NEGOTIATION
Stacey H WieserArgentinaStephen Shaw RENEWAL
Jones Z MaletCanadaOnyama Limba NEW
Maria M AlbaresAustraliaAsiya Javayant UNQUALIFIED
Johnson Y FlosiSpainAsiya Javayant RENEWAL
Ashley J DilliardRussiaOnyama Limba PROPOSAL
Kadeem N MaletBrazilOnyama Limba RENEWAL
Jennifer D ButtIndiaOnyama Limba NEGOTIATION
Francesco K FollerBrazilAnna Fali RENEWAL
James O RoysterJapanStephen Shaw UNQUALIFIED
Maisha J VocelkaBrazilOnyama Limba PROPOSAL
Morrow A StockhamAustraliaXuxue Feng PROPOSAL
Salvatore C StensethSpainAmy Elsner UNQUALIFIED
Ivar R GillianJapanAsiya Javayant NEW
Tony T ShinkoCanadaAnna Fali NEW
Faith S IturbideBrazilAnna Fali NEGOTIATION
Aika M SaylorsJapanOnyama Limba UNQUALIFIED
Leon B DarakjyArgentinaStephen Shaw RENEWAL
Leja B InouyeIndiaIvan Magalhaes UNQUALIFIED
Jeanfrancois Z NestleIndiaXuxue Feng NEW
Frozen Columns
Name
Johnson C Inouye
Aruna P Figeroa
Leon X Gaucho
Darci D Venere
Faith X Kolmetz
Morrow I Sergi
Munro V Nestle
Silvio B Albares
Ashley E Schemmer
Isabel V Campain
Leja Y Bowley
Adams R Slusarski
Aika F Nestle
Francesco Z Bowley
Claire R Gillian
Murillo M Morasca
Emily W Paprocki
Izzy Z Maclead
Ivar I Amigon
Greenwood X Butt
Jennifer E Poquette
Maria R Morasca
Emily W Tollner
Cody A Paprocki
Mayumi P Venere
Morrow L Shinko
Misaki A Caldarera
Arvin M Ruta
Misaki U Foller
Salvatore U Albares
Jefferson V Garufi
Johnson M Figeroa
Silvio E Glick
Costa K Malet
Leon J Albares
Aditya R Royster
Jeanfrancois H Tollner
Francesco Z Marrier
Greenwood U Darakjy
Ashley U Bolognia
Izzy Y Bowley
Maisha D Caudy
Costa U Ostrosky
Aruna Z Gillian
Wickens H Campain
Francesco Z Stenseth
Rodrigues D Kolmetz
David C Tollner
Izzy D Flosi
Mujtaba X Morasca
IdCountryDate
1000Germany2024-06-07
1001Australia2024-06-03
1002Brazil2024-06-19
1003Argentina2024-06-22
1004Brazil2024-05-26
1005Russia2024-06-06
1006Canada2024-06-17
1007Japan2024-06-05
1008Germany2024-05-28
1009France2024-05-27
1010Argentina2024-06-11
1011Japan2024-05-31
1012Spain2024-06-16
1013Russia2024-06-11
1014India2024-05-30
1015Brazil2024-06-03
1016Spain2024-06-21
1017Australia2024-06-05
1018Russia2024-06-01
1019Argentina2024-06-24
1020Canada2024-06-01
1021United Kingdom2024-06-08
1022India2024-06-21
1023Germany2024-06-03
1024Canada2024-06-14
1025United Kingdom2024-05-29
1026France2024-05-26
1027Italy2024-06-04
1028Japan2024-05-31
1029United Kingdom2024-06-03
1030Brazil2024-06-21
1031Russia2024-06-01
1032Canada2024-06-04
1033India2024-05-29
1034Canada2024-05-29
1035United Kingdom2024-06-14
1036United Kingdom2024-06-10
1037Germany2024-05-28
1038Japan2024-06-06
1039Spain2024-06-09
1040Australia2024-06-24
1041Canada2024-06-04
1042Brazil2024-06-07
1043Spain2024-05-29
1044Spain2024-06-17
1045Japan2024-06-05
1046Brazil2024-06-10
1047Australia2024-06-01
1048Germany2024-05-26
1049Canada2024-05-31

On-Demand Data

NameIdCountryDate
Aruna H Campain1000Germany2024-06-02
Ashley K Paprocki1001Russia2024-05-30
Tony I Wieser1002Italy2024-06-15
Deepesh J Tollner1003Australia2024-06-03
Octavia K Nestle1004France2024-05-30
Deepesh J Ruta1005Brazil2024-06-18
James Q Rim1006Japan2024-05-29
Darci P Royster1007Australia2024-06-07
Munro D Stenseth1008Spain2024-06-16
Claire I Stenseth1009Brazil2024-05-31
Claire R Paprocki1010Australia2024-06-22
James G Royster1011Canada2024-06-19
Darci O Malet1012Japan2024-05-26
Jones W Doe1013Spain2024-06-02
Aika K Tollner1014Germany2024-06-15
Maisha U Royster1015Germany2024-06-15
Maria C Albares1016Italy2024-06-12
Chavez W Gillian1017Spain2024-06-20
Morrow Z Slusarski1018Argentina2024-06-14
Maisha W Oldroyd1019Argentina2024-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith S RoysterUnited KingdomStephen Shaw NEGOTIATION
Morrow D KuskoIndiaBernardo Dominic QUALIFIED
Kadeem D GarufiFranceAmy Elsner UNQUALIFIED
Johnson A WieserArgentinaAnna Fali NEGOTIATION
Salvatore C InouyeFranceElwin Sharvill RENEWAL
Maria W RoysterJapanAnna Fali RENEWAL
Juan S FigeroaRussiaOnyama Limba NEW
James L VenereItalyOnyama Limba RENEWAL
Salvatore D NestleRussiaAnna Fali NEGOTIATION
Adams P OldroydJapanIvan Magalhaes NEW
Emily K OldroydItalyStephen Shaw PROPOSAL
Jeanfrancois Y SlusarskiBrazilAmy Elsner NEW
Aditya T ShinkoFranceAsiya Javayant NEGOTIATION
Maisha H DarakjyItalyBernardo Dominic PROPOSAL
Kaitlin O GarufiBrazilIoni Bowcher UNQUALIFIED
Faith P PoquetteArgentinaAsiya Javayant PROPOSAL
Emily L InouyeArgentinaIvan Magalhaes PROPOSAL
Maria F DoeSpainAmy Elsner NEW
Jeanfrancois N FlosiArgentinaOnyama Limba RENEWAL
Mujtaba S RimJapanOnyama Limba QUALIFIED
Morrow A GillianGermanyAmy Elsner RENEWAL
Francesco A DoeGermanyIoni Bowcher NEW
Maria A SlusarskiArgentinaBernardo Dominic NEGOTIATION
Ashley G BowleyRussiaBernardo Dominic UNQUALIFIED
Sinclair L DarakjySpainAmy Elsner RENEWAL
Johnson X SlusarskiSpainIoni Bowcher NEW
Jeanfrancois F WieserItalyIoni Bowcher NEW
Leon M GlickIndiaBernardo Dominic QUALIFIED
Sinclair D PaprockiJapanIvan Magalhaes RENEWAL
Johnson W RimSpainElwin Sharvill UNQUALIFIED
Claire U MorascaRussiaStephen Shaw RENEWAL
Salvatore Z FollerCanadaAmy Elsner NEGOTIATION
Mujtaba P DoeRussiaAsiya Javayant RENEWAL
Aditya O TollnerArgentinaStephen Shaw QUALIFIED
Aruna K VenereRussiaIoni Bowcher NEGOTIATION
Chavez U RoysterIndiaElwin Sharvill NEGOTIATION
Leja J OstroskyBrazilElwin Sharvill QUALIFIED
Clifford J GauchoIndiaIvan Magalhaes NEW
Antonio W VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Maria O SlusarskiGermanyElwin Sharvill QUALIFIED

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