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
Morrow N RutaRussiaAsiya Javayant RENEWAL
Costa M GarufiAustraliaXuxue Feng RENEWAL
Arvin A FigeroaItalyIvan Magalhaes NEGOTIATION
Misaki R VenereSpainOnyama Limba UNQUALIFIED
Francesco G FerenczUnited KingdomXuxue Feng PROPOSAL
Rodrigues E KolmetzItalyBernardo Dominic UNQUALIFIED
Juan C KuskoCanadaAmy Elsner UNQUALIFIED
Munro Z KuskoArgentinaStephen Shaw PROPOSAL
Juan X NestleCanadaXuxue Feng PROPOSAL
Jones O SchemmerFranceStephen Shaw UNQUALIFIED
Aruna J SlusarskiJapanIoni Bowcher NEW
Octavia X GarufiUnited KingdomAsiya Javayant NEGOTIATION
Claire C MorascaFranceXuxue Feng RENEWAL
Aruna Q SlusarskiJapanAsiya Javayant PROPOSAL
Maisha P ButtJapanOnyama Limba NEW
Jennifer R SchemmerItalyOnyama Limba NEW
Jeanfrancois P GauchoAustraliaStephen Shaw PROPOSAL
James K GillianIndiaBernardo Dominic PROPOSAL
Stacey Z MaletUnited KingdomIoni Bowcher NEGOTIATION
David J DilliardGermanyAmy Elsner UNQUALIFIED
Maisha N NestleCanadaElwin Sharvill NEW
Greenwood Q NickaJapanElwin Sharvill UNQUALIFIED
Kaitlin Q RoysterItalyAnna Fali NEW
Leja I GauchoFranceBernardo Dominic NEGOTIATION
Leja P FollerJapanAnna Fali PROPOSAL
Mayumi Y MaletSpainAmy Elsner NEGOTIATION
Chavez E ChuiGermanyAmy Elsner NEGOTIATION
Greenwood Q GarufiSpainIvan Magalhaes PROPOSAL
Maisha T AmigonItalyElwin Sharvill NEW
Stacey I FlosiAustraliaXuxue Feng UNQUALIFIED
Faith U OstroskySpainStephen Shaw UNQUALIFIED
Octavia U RutaCanadaIvan Magalhaes QUALIFIED
Ivar L RutaIndiaIvan Magalhaes QUALIFIED
Murillo A GillianSpainXuxue Feng NEGOTIATION
Jeanfrancois O GillianBrazilBernardo Dominic NEW
Costa B InouyeFranceBernardo Dominic UNQUALIFIED
James K OldroydFranceBernardo Dominic UNQUALIFIED
Ricardo F GillianIndiaBernardo Dominic UNQUALIFIED
Wickens X VenereIndiaOnyama Limba RENEWAL
Clifford F GillianItalyAnna Fali RENEWAL
Ricardo H SaylorsIndiaAnna Fali PROPOSAL
Octavia K WaycottRussiaAsiya Javayant UNQUALIFIED
James K SlusarskiArgentinaBernardo Dominic PROPOSAL
Salvatore Z OstroskyJapanXuxue Feng RENEWAL
Antonio A CaldareraCanadaAsiya Javayant NEW
Jeanfrancois O KolmetzIndiaAmy Elsner PROPOSAL
Jennifer L MorascaGermanyStephen Shaw NEW
Juan O WieserItalyOnyama Limba PROPOSAL
Leja H BriddickItalyElwin Sharvill NEW
Clifford E PerinRussiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams X InouyeJapanIvan Magalhaes NEW
Claire V VocelkaRussiaAsiya Javayant RENEWAL
Clifford R GillianUnited KingdomXuxue Feng NEGOTIATION
Ivar A SchemmerSpainAsiya Javayant QUALIFIED
Nicolas S VocelkaSpainElwin Sharvill UNQUALIFIED
Antonio P GillianBrazilIoni Bowcher NEW
Aika F ShinkoBrazilElwin Sharvill RENEWAL
Jones B DoeUnited KingdomAnna Fali QUALIFIED
Munro U PaprockiBrazilIvan Magalhaes NEW
Johnson M InouyeUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel A PaprockiGermany2026-08-04Chanay, Jeffrey A Esq PROPOSAL86Xuxue Feng
1001Ivar E GarufiAustralia2026-08-07Chemel, James L Cpa NEW37Anna Fali
1002Mayumi V PaprockiGermany2026-07-29Chanay, Jeffrey A Esq NEGOTIATION24Onyama Limba
1003Chavez Q CaldareraAustralia2026-08-16Truhlar And Truhlar Attys UNQUALIFIED49Stephen Shaw
1004Murillo Y ButtArgentina2026-08-02Feiner Bros NEGOTIATION56Xuxue Feng
1005Maisha O CaudyBrazil2026-08-11Feltz Printing Service NEGOTIATION27Onyama Limba
1006Octavia X OldroydJapan2026-07-24Rangoni Of Florence PROPOSAL27Xuxue Feng
1007Maisha B RutaCanada2026-07-30Chapman, Ross E Esq RENEWAL27Xuxue Feng
1008Darci P GarufiArgentina2026-08-13Chapman, Ross E Esq QUALIFIED50Ioni Bowcher
1009Kaitlin T BowleyCanada2026-08-07Feltz Printing Service NEW29Bernardo Dominic
1010Kadeem L MarrierBrazil2026-07-28King, Christopher A Esq UNQUALIFIED39Xuxue Feng
1011Maisha S RulapaughJapan2026-07-30Truhlar And Truhlar Attys PROPOSAL99Ivan Magalhaes
1012Alejandro W AmigonRussia2026-07-28Benton, John B Jr RENEWAL63Bernardo Dominic
1013Morrow E MaletArgentina2026-08-04Feltz Printing Service QUALIFIED57Xuxue Feng
1014Nicolas N DilliardBrazil2026-08-02Feltz Printing Service RENEWAL99Bernardo Dominic
1015Francesco K StensethFrance2026-07-30Truhlar And Truhlar Attys PROPOSAL70Amy Elsner
1016Clifford O RulapaughGermany2026-08-10Buckley Miller Wright QUALIFIED43Xuxue Feng
1017Leja I GlickItaly2026-07-21Rangoni Of Florence NEW32Amy Elsner
1018Silvio S IturbideBrazil2026-08-09Benton, John B Jr NEGOTIATION9Xuxue Feng
1019Adams H VocelkaIndia2026-08-11Feltz Printing Service QUALIFIED5Anna Fali
1020Juan F DarakjyItaly2026-08-10Rousseaux, Michael Esq PROPOSAL25Amy Elsner
1021Emily V KolmetzCanada2026-07-26Benton, John B Jr RENEWAL26Ivan Magalhaes
1022Stacey W SaylorsIndia2026-07-21Commercial Press NEW18Elwin Sharvill
1023Morrow G OstroskyFrance2026-08-02Chanay, Jeffrey A Esq NEW19Onyama Limba
1024Aruna R PaprockiFrance2026-08-05Chemel, James L Cpa NEGOTIATION92Onyama Limba
1025Emily Q BriddickFrance2026-07-30Buckley Miller Wright PROPOSAL22Xuxue Feng
1026Emily J AmigonUnited Kingdom2026-08-07Rangoni Of Florence NEW1Xuxue Feng
1027Munro S AlbaresUnited Kingdom2026-07-27Benton, John B Jr PROPOSAL67Asiya Javayant
1028Johnson E ShinkoRussia2026-07-23Chapman, Ross E Esq NEW64Elwin Sharvill
1029Rodrigues Y CaudyUnited Kingdom2026-08-02Rangoni Of Florence NEW78Asiya Javayant
1030Deepesh A IturbideCanada2026-07-20Buckley Miller Wright QUALIFIED28Amy Elsner
1031Murillo B DarakjyBrazil2026-08-04King, Christopher A Esq UNQUALIFIED30Anna Fali
1032Ashley U WhobreyUnited Kingdom2026-07-24Rousseaux, Michael Esq QUALIFIED21Asiya Javayant
1033Silvio S SchemmerItaly2026-08-08Benton, John B Jr RENEWAL93Xuxue Feng
1034Adams D TollnerGermany2026-07-28Benton, John B Jr PROPOSAL47Ioni Bowcher
1035Deepesh X SaylorsIndia2026-08-02Chanay, Jeffrey A Esq NEW43Ivan Magalhaes
1036Munro Q KuskoAustralia2026-07-23Truhlar And Truhlar Attys RENEWAL11Onyama Limba
1037Kadeem R InouyeItaly2026-07-30Chapman, Ross E Esq NEW29Anna Fali
1038Tony G BriddickArgentina2026-08-03Rangoni Of Florence NEW18Asiya Javayant
1039Maisha L WhobreyCanada2026-08-02Morlong Associates RENEWAL79Anna Fali
1040Deepesh T PerinUnited Kingdom2026-07-19Buckley Miller Wright PROPOSAL34Elwin Sharvill
1041Mayumi F NestleUnited Kingdom2026-07-30Rousseaux, Michael Esq RENEWAL14Bernardo Dominic
1042David N NickaBrazil2026-08-04Feltz Printing Service QUALIFIED9Ivan Magalhaes
1043Ricardo N RoysterCanada2026-08-08Feltz Printing Service NEGOTIATION94Amy Elsner
1044Johnson T WaycottSpain2026-08-16Rousseaux, Michael Esq NEW9Stephen Shaw
1045Arvin T OstroskyAustralia2026-08-05Commercial Press PROPOSAL7Elwin Sharvill
1046Maria I CaldareraUnited Kingdom2026-08-05Feltz Printing Service NEGOTIATION17Amy Elsner
1047Kaitlin K BowleyJapan2026-07-20Printing Dimensions UNQUALIFIED49Onyama Limba
1048David B WhobreyArgentina2026-07-24Chemel, James L Cpa PROPOSAL47Ivan Magalhaes
1049Juan E FollerItaly2026-08-16Chemel, James L Cpa PROPOSAL87Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily A OldroydRussiaOnyama Limba NEW
Antonio X NestleItalyBernardo Dominic QUALIFIED
Jeanfrancois C FigeroaUnited KingdomStephen Shaw PROPOSAL
Cody R StockhamAustraliaElwin Sharvill UNQUALIFIED
Deepesh C CampainBrazilAsiya Javayant UNQUALIFIED
Nicolas J AmigonCanadaBernardo Dominic NEGOTIATION
Octavia O GlickRussiaXuxue Feng QUALIFIED
Jennifer Z DoeUnited KingdomAsiya Javayant NEW
Salvatore P GauchoBrazilAsiya Javayant UNQUALIFIED
Maria L ChuiSpainIoni Bowcher PROPOSAL
Wickens K MaletIndiaElwin Sharvill PROPOSAL
Nicolas G CampainAustraliaAsiya Javayant UNQUALIFIED
Costa G FlosiJapanAmy Elsner NEGOTIATION
Morrow L ButtAustraliaIoni Bowcher RENEWAL
Tony Q RulapaughFranceXuxue Feng PROPOSAL
Tony Y SlusarskiSpainXuxue Feng RENEWAL
Adams V InouyeFranceXuxue Feng QUALIFIED
Kaitlin N KuskoJapanElwin Sharvill RENEWAL
Stacey R DarakjyGermanyBernardo Dominic PROPOSAL
Julie X StockhamIndiaAnna Fali UNQUALIFIED
Maisha G MacleadIndiaXuxue Feng NEW
Stacey J KuskoBrazilIoni Bowcher PROPOSAL
Alejandro Q OldroydUnited KingdomAnna Fali NEW
Silvio T KolmetzRussiaOnyama Limba RENEWAL
Jeanfrancois H PaprockiArgentinaAmy Elsner NEGOTIATION
Salvatore V KuskoIndiaAsiya Javayant PROPOSAL
Alejandro L SlusarskiBrazilOnyama Limba NEGOTIATION
Jeanfrancois R NickaArgentinaXuxue Feng NEW
Nicolas H IturbideGermanyAsiya Javayant UNQUALIFIED
Greenwood O RimUnited KingdomIoni Bowcher RENEWAL
Adams Z InouyeBrazilXuxue Feng NEW
Juan C BriddickCanadaAsiya Javayant UNQUALIFIED
Alejandro O VenereCanadaElwin Sharvill RENEWAL
Aditya K CampainUnited KingdomAsiya Javayant RENEWAL
Maria S InouyeSpainIvan Magalhaes NEW
Greenwood S AmigonGermanyIvan Magalhaes NEW
Leon S WaycottCanadaXuxue Feng RENEWAL
Misaki N OstroskyRussiaAnna Fali PROPOSAL
Johnson H GillianItalyAnna Fali QUALIFIED
Ivar M WieserGermanyIvan Magalhaes RENEWAL
Clifford X CaudyIndiaAmy Elsner QUALIFIED
Salvatore K VenereArgentinaIoni Bowcher QUALIFIED
Smith D CampainAustraliaIvan Magalhaes UNQUALIFIED
Arvin E DarakjySpainAmy Elsner RENEWAL
Octavia F FlosiItalyOnyama Limba UNQUALIFIED
Emily F WhobreySpainIoni Bowcher RENEWAL
Salvatore P GlickBrazilAmy Elsner QUALIFIED
Mujtaba Q PaprockiSpainBernardo Dominic NEW
Johnson H MaletBrazilIvan Magalhaes RENEWAL
Nicolas U AmigonCanadaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Claire B Chui
Sinclair Z Glick
Kaitlin L Butt
Ricardo N Marrier
Misaki F Bowley
Arvin G Venere
Cody K Ruta
Murillo P Whobrey
Darci Z Oldroyd
Maria L Campain
Johnson A Nicka
Ivar T Iturbide
Salvatore T Figeroa
Leja I Bolognia
Rodrigues A Caldarera
Antonio Y Vocelka
Nicolas A Kusko
Wickens G Rulapaugh
Julie K Glick
Stacey R Malet
David F Nestle
Leja J Paprocki
Isabel Z Flosi
Mayumi A Wieser
Aditya B Malet
Francesco X Vocelka
Ashley C Ferencz
Jefferson F Figeroa
Maisha I Butt
Arvin W Ruta
Maisha D Stockham
Jones D Gillian
Octavia G Doe
Ricardo N Rulapaugh
Costa L Rulapaugh
Chavez A Kusko
Ricardo A Albares
Nicolas P Gillian
Munro I Tollner
Sinclair Y Inouye
Costa R Bowley
Maisha Q Vocelka
Francesco S Morasca
Aruna D Ostrosky
Stacey Y Tollner
Johnson M Venere
Wickens Y Gillian
Morrow L Doe
Salvatore P Slusarski
Mayumi G Darakjy
IdCountryDate
1000France2026-08-03
1001Japan2026-08-13
1002United Kingdom2026-08-02
1003Canada2026-07-19
1004Canada2026-07-20
1005Italy2026-08-16
1006Brazil2026-08-08
1007Italy2026-08-11
1008Russia2026-08-14
1009Brazil2026-07-26
1010India2026-07-27
1011Argentina2026-07-25
1012Japan2026-08-02
1013Australia2026-08-05
1014Japan2026-08-05
1015Canada2026-07-29
1016Spain2026-08-14
1017Australia2026-07-18
1018Australia2026-07-22
1019Italy2026-08-06
1020Brazil2026-08-05
1021Canada2026-08-04
1022Australia2026-07-24
1023Canada2026-08-10
1024Canada2026-07-30
1025India2026-08-07
1026Italy2026-07-30
1027France2026-08-02
1028Spain2026-07-27
1029France2026-08-16
1030Japan2026-08-16
1031Russia2026-07-30
1032Japan2026-07-23
1033United Kingdom2026-08-11
1034India2026-07-22
1035Australia2026-07-25
1036France2026-08-16
1037France2026-07-19
1038France2026-07-23
1039France2026-08-14
1040France2026-08-08
1041Germany2026-07-26
1042Argentina2026-07-21
1043Brazil2026-07-18
1044Japan2026-07-30
1045Japan2026-08-15
1046Italy2026-07-22
1047France2026-07-31
1048Brazil2026-08-02
1049Australia2026-07-18

On-Demand Data

NameIdCountryDate
Jeanfrancois P Rulapaugh1000Canada2026-08-06
Juan S Marrier1001Canada2026-08-15
Wickens H Doe1002Russia2026-08-07
Maria H Vocelka1003United Kingdom2026-07-23
Leon Z Flosi1004Australia2026-08-11
Jefferson R Venere1005Australia2026-08-03
Aruna S Ruta1006Canada2026-07-26
Mujtaba M Butt1007Italy2026-07-31
Deepesh G Marrier1008Brazil2026-07-29
Costa B Kolmetz1009Japan2026-08-06
Jennifer L Rim1010Canada2026-07-31
David J Bowley1011Spain2026-07-23
Kaitlin Q Chui1012Russia2026-08-13
Cody L Nicka1013United Kingdom2026-08-11
Leon V Morasca1014United Kingdom2026-07-27
Deepesh B Figeroa1015Canada2026-08-15
Murillo O Ostrosky1016Germany2026-08-09
Misaki A Schemmer1017Canada2026-07-20
Izzy U Gaucho1018Italy2026-08-01
Cody P Waycott1019India2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio L VenereBrazilAmy Elsner QUALIFIED
Sinclair L SlusarskiJapanBernardo Dominic NEGOTIATION
Greenwood M ChuiFranceAnna Fali PROPOSAL
Claire R GarufiItalyAmy Elsner UNQUALIFIED
Deepesh A PaprockiGermanyAnna Fali RENEWAL
Silvio V PoquetteItalyStephen Shaw QUALIFIED
Nicolas K RulapaughFranceIvan Magalhaes PROPOSAL
Alejandro H GillianCanadaStephen Shaw RENEWAL
Wickens M ButtSpainStephen Shaw NEGOTIATION
Chavez R StockhamJapanIoni Bowcher NEGOTIATION
Adams T AmigonFranceAmy Elsner PROPOSAL
Aditya O TollnerGermanyAsiya Javayant NEW
Maria S OldroydCanadaOnyama Limba QUALIFIED
Kaitlin W StensethBrazilAsiya Javayant QUALIFIED
Jefferson R KuskoJapanStephen Shaw NEGOTIATION
Julie N WaycottSpainAsiya Javayant UNQUALIFIED
Clifford V VocelkaBrazilOnyama Limba QUALIFIED
Leja K BologniaIndiaAsiya Javayant NEW
Mujtaba R GauchoBrazilElwin Sharvill QUALIFIED
Juan D MacleadUnited KingdomElwin Sharvill RENEWAL
Maisha J VocelkaBrazilOnyama Limba QUALIFIED
Claire J RulapaughIndiaAsiya Javayant RENEWAL
Antonio B KolmetzJapanAmy Elsner PROPOSAL
Greenwood T MaletIndiaAmy Elsner NEGOTIATION
Adams S DarakjyAustraliaBernardo Dominic UNQUALIFIED
Francesco C PaprockiFranceIoni Bowcher NEGOTIATION
Morrow T GillianSpainAnna Fali PROPOSAL
Mayumi Q StockhamIndiaAmy Elsner UNQUALIFIED
Cody E DarakjyCanadaAmy Elsner PROPOSAL
Isabel R CampainFranceStephen Shaw NEW
Stacey U PerinIndiaIvan Magalhaes NEW
Aika C InouyeArgentinaAsiya Javayant QUALIFIED
Sinclair N ChuiCanadaIvan Magalhaes NEGOTIATION
Johnson E GlickItalyXuxue Feng QUALIFIED
Stacey B CampainFranceAnna Fali PROPOSAL
Mayumi D GauchoCanadaAnna Fali RENEWAL
Kaitlin A WaycottCanadaIvan Magalhaes NEGOTIATION
Aruna E ShinkoBrazilIoni Bowcher NEGOTIATION
Leon R RimSpainIvan Magalhaes PROPOSAL
Munro V SaylorsGermanyIoni Bowcher 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>