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
Adams G WhobreyBrazilAnna Fali NEGOTIATION
Murillo B FollerGermanyElwin Sharvill PROPOSAL
Wickens C GauchoItalyOnyama Limba NEGOTIATION
Costa R FlosiSpainIoni Bowcher NEW
Ricardo P VocelkaSpainIoni Bowcher NEGOTIATION
Stacey K DoeRussiaStephen Shaw NEW
Silvio L AlbaresGermanyAmy Elsner RENEWAL
Alejandro J RulapaughIndiaAmy Elsner NEW
Kaitlin I DoeSpainXuxue Feng NEW
Leja E ButtBrazilIvan Magalhaes NEGOTIATION
James A CampainGermanyOnyama Limba NEGOTIATION
Adams Q ChuiJapanIvan Magalhaes QUALIFIED
Faith O FigeroaFranceAsiya Javayant QUALIFIED
Maisha M InouyeAustraliaXuxue Feng PROPOSAL
Johnson I BriddickItalyElwin Sharvill NEGOTIATION
James L MaletSpainStephen Shaw NEGOTIATION
Morrow H FollerAustraliaIoni Bowcher QUALIFIED
Adams O CaldareraGermanyAsiya Javayant UNQUALIFIED
Silvio Z GlickJapanXuxue Feng NEGOTIATION
Nicolas A SchemmerIndiaOnyama Limba PROPOSAL
Mayumi B MacleadIndiaAsiya Javayant RENEWAL
Kadeem G NestleItalyXuxue Feng NEGOTIATION
Jennifer S BowleyArgentinaStephen Shaw PROPOSAL
Isabel A CaudyUnited KingdomElwin Sharvill PROPOSAL
Jefferson A MacleadRussiaStephen Shaw QUALIFIED
Costa X NestleAustraliaElwin Sharvill NEW
Maria F AlbaresSpainElwin Sharvill RENEWAL
Ricardo N MaletJapanAnna Fali NEGOTIATION
Adams X CaudyUnited KingdomIoni Bowcher NEW
Aditya V RutaIndiaAsiya Javayant QUALIFIED
Mujtaba Z KolmetzSpainOnyama Limba NEW
Jefferson C ShinkoItalyIoni Bowcher NEW
Mayumi O GlickItalyIoni Bowcher RENEWAL
Sinclair R CaudyCanadaIvan Magalhaes PROPOSAL
Silvio K CaudyBrazilAsiya Javayant UNQUALIFIED
Arvin O CampainArgentinaAnna Fali UNQUALIFIED
Nicolas V WaycottCanadaAsiya Javayant QUALIFIED
Sinclair F BriddickBrazilIvan Magalhaes NEW
Munro A MacleadSpainAnna Fali NEW
Aditya X CaudyBrazilStephen Shaw UNQUALIFIED
Munro J MaletFranceBernardo Dominic NEGOTIATION
Faith M TollnerItalyAsiya Javayant UNQUALIFIED
Izzy N AmigonJapanAnna Fali QUALIFIED
Claire P NickaIndiaIoni Bowcher RENEWAL
Stacey D RoysterAustraliaStephen Shaw PROPOSAL
Octavia A PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Octavia F MacleadAustraliaStephen Shaw RENEWAL
Greenwood U MaletGermanyAnna Fali QUALIFIED
Julie E StockhamIndiaAnna Fali NEW
Johnson U SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan A MacleadJapanStephen Shaw QUALIFIED
Arvin M ButtAustraliaXuxue Feng NEW
Morrow V MarrierBrazilAmy Elsner PROPOSAL
Kaitlin A GarufiFranceStephen Shaw UNQUALIFIED
Nicolas V FigeroaArgentinaStephen Shaw QUALIFIED
Juan W StockhamSpainOnyama Limba PROPOSAL
Juan V VenereUnited KingdomElwin Sharvill UNQUALIFIED
Aditya M RutaItalyAnna Fali NEGOTIATION
Alejandro V RutaJapanIoni Bowcher RENEWAL
Salvatore A VocelkaIndiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair W AmigonAustralia2026-07-10Feltz Printing Service NEW96Elwin Sharvill
1001Sinclair D FollerCanada2026-07-27Buckley Miller Wright QUALIFIED17Bernardo Dominic
1002Jones V GlickFrance2026-07-05Dorl, James J Esq PROPOSAL32Elwin Sharvill
1003Costa T InouyeFrance2026-07-14Feiner Bros NEGOTIATION10Bernardo Dominic
1004Juan H OldroydGermany2026-07-03Feltz Printing Service NEGOTIATION4Asiya Javayant
1005Murillo O SaylorsFrance2026-07-08Commercial Press NEW9Stephen Shaw
1006Costa H MacleadIndia2026-07-28Rangoni Of Florence QUALIFIED82Stephen Shaw
1007Mayumi K CaldareraArgentina2026-07-18Buckley Miller Wright PROPOSAL35Bernardo Dominic
1008Claire J IturbideAustralia2026-07-28Feiner Bros NEGOTIATION56Onyama Limba
1009Octavia N WaycottUnited Kingdom2026-07-18Buckley Miller Wright QUALIFIED30Onyama Limba
1010Ashley M ShinkoBrazil2026-07-13Buckley Miller Wright RENEWAL26Stephen Shaw
1011Misaki T KolmetzFrance2026-07-29Morlong Associates PROPOSAL42Ioni Bowcher
1012Costa G IturbideArgentina2026-07-02Chanay, Jeffrey A Esq QUALIFIED71Ioni Bowcher
1013Tony U ShinkoCanada2026-07-26Benton, John B Jr UNQUALIFIED51Stephen Shaw
1014Johnson M GarufiBrazil2026-07-19King, Christopher A Esq UNQUALIFIED30Amy Elsner
1015Darci Q DoeBrazil2026-07-26Feltz Printing Service UNQUALIFIED16Ioni Bowcher
1016Silvio O NestleGermany2026-07-24Truhlar And Truhlar Attys NEW64Anna Fali
1017Leon C PoquetteGermany2026-07-11Rangoni Of Florence RENEWAL55Amy Elsner
1018James B ChuiUnited Kingdom2026-07-30Rangoni Of Florence QUALIFIED78Bernardo Dominic
1019Francesco G MaletBrazil2026-07-30Commercial Press RENEWAL94Ivan Magalhaes
1020James W MorascaGermany2026-07-22Feltz Printing Service NEW52Onyama Limba
1021Johnson O PerinRussia2026-07-29Rangoni Of Florence RENEWAL71Amy Elsner
1022Darci V VocelkaRussia2026-07-03Rousseaux, Michael Esq RENEWAL72Onyama Limba
1023Clifford Q KuskoUnited Kingdom2026-07-17Commercial Press NEW5Onyama Limba
1024Leja A TollnerCanada2026-07-03Rousseaux, Michael Esq RENEWAL54Elwin Sharvill
1025Francesco C SaylorsGermany2026-07-29Buckley Miller Wright QUALIFIED77Onyama Limba
1026Sinclair V MarrierRussia2026-07-26Dorl, James J Esq NEW91Anna Fali
1027Mayumi W RulapaughItaly2026-07-14Feiner Bros NEGOTIATION80Asiya Javayant
1028Murillo N FerenczUnited Kingdom2026-07-29Chemel, James L Cpa NEGOTIATION9Anna Fali
1029Emily Y CaudyIndia2026-07-07Chanay, Jeffrey A Esq NEW59Ioni Bowcher
1030Isabel K StensethGermany2026-07-30Rousseaux, Michael Esq NEGOTIATION22Amy Elsner
1031Ricardo M PerinUnited Kingdom2026-07-03Rangoni Of Florence NEGOTIATION82Xuxue Feng
1032Emily L BowleyJapan2026-07-17Chapman, Ross E Esq NEW56Amy Elsner
1033Mujtaba X StensethItaly2026-07-25Benton, John B Jr NEGOTIATION25Xuxue Feng
1034Isabel N SergiGermany2026-07-02Feiner Bros UNQUALIFIED16Anna Fali
1035Kaitlin Y PaprockiGermany2026-07-19Feiner Bros NEGOTIATION6Anna Fali
1036Salvatore Y GarufiRussia2026-07-29King, Christopher A Esq NEGOTIATION44Bernardo Dominic
1037Julie G VocelkaCanada2026-07-13Rousseaux, Michael Esq NEW5Stephen Shaw
1038David K DilliardArgentina2026-07-05Rousseaux, Michael Esq PROPOSAL35Stephen Shaw
1039Kadeem Y ShinkoRussia2026-07-13Feltz Printing Service NEGOTIATION30Asiya Javayant
1040Francesco G AlbaresAustralia2026-07-23Printing Dimensions PROPOSAL24Amy Elsner
1041James T VocelkaJapan2026-07-27Morlong Associates UNQUALIFIED52Onyama Limba
1042Rodrigues O GauchoIndia2026-07-09Chemel, James L Cpa NEGOTIATION40Ioni Bowcher
1043Jeanfrancois F MaletBrazil2026-07-30Printing Dimensions RENEWAL48Ivan Magalhaes
1044Ivar S SchemmerJapan2026-07-24Commercial Press NEW72Elwin Sharvill
1045Sinclair R SchemmerUnited Kingdom2026-07-29Morlong Associates NEGOTIATION82Anna Fali
1046Faith P RutaAustralia2026-07-17Truhlar And Truhlar Attys QUALIFIED95Ioni Bowcher
1047Isabel P SaylorsAustralia2026-07-13Rangoni Of Florence NEGOTIATION31Anna Fali
1048Mujtaba P RimUnited Kingdom2026-07-08Buckley Miller Wright UNQUALIFIED89Anna Fali
1049Leja B CaudyArgentina2026-07-21King, Christopher A Esq RENEWAL64Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba R VenereFranceOnyama Limba UNQUALIFIED
Ivar K GillianBrazilIvan Magalhaes PROPOSAL
Stacey Z NickaSpainElwin Sharvill NEGOTIATION
Adams W GauchoSpainBernardo Dominic QUALIFIED
Aditya Q SchemmerArgentinaAsiya Javayant PROPOSAL
Antonio T DilliardFranceAnna Fali NEGOTIATION
Silvio D DoeBrazilBernardo Dominic UNQUALIFIED
Johnson C ButtGermanyXuxue Feng QUALIFIED
Adams G RutaAustraliaIoni Bowcher UNQUALIFIED
Stacey O KuskoGermanyOnyama Limba QUALIFIED
Juan H OldroydUnited KingdomStephen Shaw QUALIFIED
Morrow N KolmetzJapanStephen Shaw NEGOTIATION
Faith X GauchoSpainElwin Sharvill UNQUALIFIED
Chavez E PerinCanadaAnna Fali NEW
Ivar D ButtFranceAnna Fali QUALIFIED
Greenwood X MacleadUnited KingdomIoni Bowcher RENEWAL
Cody P NestleGermanyIoni Bowcher UNQUALIFIED
David W KuskoCanadaIvan Magalhaes UNQUALIFIED
Leja K FerenczGermanyBernardo Dominic QUALIFIED
Emily F MaletArgentinaAnna Fali PROPOSAL
Jones I CaldareraGermanyAsiya Javayant NEW
Ivar C FigeroaArgentinaXuxue Feng RENEWAL
Misaki R RutaJapanElwin Sharvill QUALIFIED
Alejandro L StensethUnited KingdomStephen Shaw NEW
Tony F NickaArgentinaBernardo Dominic NEGOTIATION
Claire I DoeSpainAmy Elsner NEGOTIATION
Ivar B WieserUnited KingdomXuxue Feng RENEWAL
Maria Q BowleyRussiaXuxue Feng QUALIFIED
Isabel B SchemmerJapanOnyama Limba UNQUALIFIED
Octavia L WhobreyArgentinaAmy Elsner NEGOTIATION
Jeanfrancois V FollerIndiaOnyama Limba RENEWAL
Leja X OldroydItalyAnna Fali QUALIFIED
Salvatore T BologniaJapanElwin Sharvill QUALIFIED
Smith M AmigonIndiaElwin Sharvill QUALIFIED
Arvin W AmigonItalyAmy Elsner RENEWAL
Smith Y GlickCanadaXuxue Feng NEW
Francesco Z SchemmerJapanBernardo Dominic QUALIFIED
Sinclair J MaletGermanyOnyama Limba PROPOSAL
Francesco L GauchoJapanElwin Sharvill QUALIFIED
Deepesh Z GarufiAustraliaAmy Elsner PROPOSAL
Ricardo S OldroydBrazilOnyama Limba NEW
Kadeem G ButtItalyStephen Shaw RENEWAL
Kaitlin U FlosiRussiaAsiya Javayant UNQUALIFIED
Francesco V BowleyGermanyElwin Sharvill QUALIFIED
Deepesh K WaycottSpainIoni Bowcher PROPOSAL
Johnson D ShinkoBrazilElwin Sharvill NEGOTIATION
Maria Z KolmetzArgentinaBernardo Dominic NEW
Maisha Y PerinItalyOnyama Limba QUALIFIED
Nicolas G CampainCanadaOnyama Limba UNQUALIFIED
Leon B DoeArgentinaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Tony T Rulapaugh
Deepesh Q Vocelka
Stacey E Malet
Isabel Y Caudy
Cody T Morasca
Leja H Ruta
Darci X Campain
Juan G Venere
Leja Q Saylors
Greenwood S Stenseth
Costa X Iturbide
Isabel X Morasca
Costa L Royster
Smith F Maclead
Mujtaba P Royster
Jeanfrancois B Figeroa
Chavez O Malet
Jeanfrancois V Venere
Misaki I Dilliard
Maria E Maclead
Smith Y Nestle
Emily K Doe
Darci A Malet
Aditya M Flosi
Ricardo V Caudy
Arvin Q Nestle
Arvin S Dilliard
Ivar W Ruta
Darci U Nicka
Morrow Y Waycott
Morrow X Flosi
Tony A Morasca
David L Butt
Maisha X Kolmetz
Jeanfrancois W Wieser
Wickens O Campain
Francesco S Amigon
Faith U Schemmer
Salvatore H Bowley
Deepesh U Malet
Wickens P Maclead
Jennifer Z Schemmer
Kaitlin O Flosi
Mujtaba N Chui
Misaki V Dilliard
Ivar F Foller
Deepesh C Amigon
Arvin T Ferencz
Jeanfrancois F Morasca
Faith O Poquette
IdCountryDate
1000United Kingdom2026-07-07
1001Japan2026-07-07
1002Canada2026-07-09
1003Australia2026-07-28
1004Spain2026-07-20
1005United Kingdom2026-07-06
1006Japan2026-07-23
1007Brazil2026-07-29
1008Germany2026-07-08
1009Japan2026-07-30
1010France2026-07-22
1011Australia2026-07-14
1012Canada2026-07-15
1013United Kingdom2026-07-16
1014Italy2026-07-14
1015Argentina2026-07-04
1016Brazil2026-07-24
1017Italy2026-07-12
1018Japan2026-07-26
1019Brazil2026-07-27
1020Spain2026-07-27
1021United Kingdom2026-07-06
1022Japan2026-07-17
1023Canada2026-07-23
1024Russia2026-07-12
1025United Kingdom2026-07-09
1026Spain2026-07-11
1027Russia2026-07-29
1028Canada2026-07-26
1029Italy2026-07-14
1030Brazil2026-07-05
1031Germany2026-07-19
1032Italy2026-07-04
1033Italy2026-07-24
1034Italy2026-07-15
1035Italy2026-07-28
1036Argentina2026-07-09
1037United Kingdom2026-07-23
1038United Kingdom2026-07-02
1039Canada2026-07-10
1040India2026-07-09
1041Italy2026-07-11
1042Spain2026-07-08
1043Germany2026-07-16
1044Argentina2026-07-10
1045Argentina2026-07-06
1046India2026-07-17
1047Spain2026-07-03
1048Brazil2026-07-04
1049Argentina2026-07-06

On-Demand Data

NameIdCountryDate
Clifford Q Nestle1000United Kingdom2026-07-28
Rodrigues O Gillian1001Argentina2026-07-12
Maria S Nicka1002Russia2026-07-14
Kaitlin R Marrier1003Canada2026-07-03
Jones I Vocelka1004Argentina2026-07-13
David A Kusko1005Argentina2026-07-09
Alejandro W Foller1006Japan2026-07-30
Jones G Flosi1007Japan2026-07-12
Cody M Amigon1008Russia2026-07-15
Mujtaba A Figeroa1009Italy2026-07-29
Jeanfrancois E Stenseth1010Japan2026-07-14
Ricardo D Dilliard1011Australia2026-07-22
Aditya Y Stockham1012France2026-07-24
Ashley S Waycott1013India2026-07-25
Alejandro W Figeroa1014Italy2026-07-24
Clifford J Glick1015United Kingdom2026-07-29
Ivar S Ostrosky1016Italy2026-07-03
Maisha E Rim1017Japan2026-07-11
Leon T Kolmetz1018Spain2026-07-02
Aika M Bowley1019Italy2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson V MarrierSpainStephen Shaw QUALIFIED
Antonio W GarufiIndiaAnna Fali PROPOSAL
Aruna V BowleyUnited KingdomAsiya Javayant PROPOSAL
Claire H OstroskyFranceAsiya Javayant PROPOSAL
Sinclair I OldroydCanadaElwin Sharvill QUALIFIED
Salvatore L WieserUnited KingdomIvan Magalhaes RENEWAL
Cody L WaycottAustraliaStephen Shaw NEGOTIATION
Aruna E StensethSpainElwin Sharvill NEW
Maria L StockhamAustraliaAnna Fali NEW
Mujtaba U RimCanadaAmy Elsner PROPOSAL
Octavia I TollnerIndiaBernardo Dominic RENEWAL
Johnson G GarufiArgentinaBernardo Dominic NEW
Johnson K DarakjyIndiaOnyama Limba NEGOTIATION
Costa Y SergiUnited KingdomOnyama Limba RENEWAL
Salvatore X VenereRussiaOnyama Limba UNQUALIFIED
Izzy R GauchoJapanAnna Fali UNQUALIFIED
Kadeem O FollerFranceIoni Bowcher UNQUALIFIED
Mayumi T ShinkoAustraliaXuxue Feng NEGOTIATION
Silvio Q SaylorsBrazilXuxue Feng RENEWAL
Faith N NestleIndiaBernardo Dominic PROPOSAL
Kadeem L MarrierArgentinaXuxue Feng QUALIFIED
Juan D BowleySpainIoni Bowcher PROPOSAL
Ashley Q MaletFranceIoni Bowcher UNQUALIFIED
Jones A ButtCanadaAsiya Javayant PROPOSAL
Costa O AmigonArgentinaOnyama Limba PROPOSAL
James Q SlusarskiItalyAmy Elsner QUALIFIED
Antonio V BowleyGermanyStephen Shaw PROPOSAL
Aruna Q SaylorsSpainXuxue Feng NEGOTIATION
Chavez N VocelkaArgentinaAmy Elsner RENEWAL
Maisha P GauchoUnited KingdomAmy Elsner RENEWAL
Ashley K IturbideRussiaOnyama Limba RENEWAL
Izzy E SchemmerSpainIvan Magalhaes RENEWAL
Faith Z RoysterIndiaAsiya Javayant UNQUALIFIED
Arvin M DarakjyAustraliaIoni Bowcher NEW
Wickens T KolmetzItalyAnna Fali QUALIFIED
Greenwood G MaletGermanyBernardo Dominic UNQUALIFIED
Jones Z BriddickBrazilBernardo Dominic NEGOTIATION
Leja B FlosiCanadaIvan Magalhaes RENEWAL
Juan A DilliardGermanyAmy Elsner UNQUALIFIED
Sinclair K StockhamSpainAnna Fali 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>