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
Munro D GarufiCanadaXuxue Feng PROPOSAL
Ashley L RulapaughItalyXuxue Feng NEGOTIATION
Alejandro Z MaletGermanyIoni Bowcher UNQUALIFIED
Johnson G RutaArgentinaBernardo Dominic QUALIFIED
Aika C WhobreyItalyXuxue Feng NEGOTIATION
Izzy P SchemmerJapanBernardo Dominic PROPOSAL
Silvio R InouyeCanadaOnyama Limba UNQUALIFIED
Maria Q GlickSpainIvan Magalhaes NEW
Rodrigues Z NestleItalyBernardo Dominic UNQUALIFIED
Cody U GlickSpainAnna Fali NEGOTIATION
Claire F SaylorsUnited KingdomAnna Fali QUALIFIED
Chavez S GillianItalyXuxue Feng RENEWAL
Wickens F FollerCanadaAnna Fali RENEWAL
Alejandro W WieserBrazilBernardo Dominic UNQUALIFIED
Greenwood H OldroydArgentinaAnna Fali QUALIFIED
Johnson L BriddickFranceIvan Magalhaes PROPOSAL
Sinclair W RoysterGermanyAnna Fali NEGOTIATION
Francesco A ShinkoAustraliaIoni Bowcher PROPOSAL
Leja Y MorascaAustraliaOnyama Limba RENEWAL
Octavia J KuskoGermanyXuxue Feng QUALIFIED
Ashley F FlosiCanadaAsiya Javayant NEW
Greenwood U RulapaughGermanyStephen Shaw NEGOTIATION
Deepesh N WieserSpainIoni Bowcher UNQUALIFIED
Emily H StockhamBrazilAnna Fali NEW
Murillo A DarakjySpainIoni Bowcher QUALIFIED
Wickens S PerinItalyAsiya Javayant NEW
Murillo V StensethFranceIvan Magalhaes RENEWAL
Ashley M PoquetteJapanAmy Elsner RENEWAL
Stacey G PerinFranceIvan Magalhaes NEW
Maria R PaprockiFranceStephen Shaw UNQUALIFIED
Morrow S PaprockiSpainBernardo Dominic RENEWAL
Izzy Y MaletArgentinaXuxue Feng NEGOTIATION
Octavia U RulapaughFranceAsiya Javayant UNQUALIFIED
Chavez S DarakjyBrazilAnna Fali NEGOTIATION
Kadeem Y WhobreyAustraliaElwin Sharvill QUALIFIED
Rodrigues F ButtAustraliaElwin Sharvill NEW
Jones X OldroydFranceStephen Shaw UNQUALIFIED
Jeanfrancois D DilliardArgentinaStephen Shaw PROPOSAL
Johnson K RutaBrazilElwin Sharvill QUALIFIED
Francesco P CaldareraBrazilOnyama Limba QUALIFIED
Juan U GarufiGermanyXuxue Feng RENEWAL
Kadeem Y CaudyItalyAnna Fali UNQUALIFIED
Clifford K GillianItalyStephen Shaw UNQUALIFIED
Francesco U BriddickAustraliaXuxue Feng NEGOTIATION
Octavia L GarufiAustraliaStephen Shaw PROPOSAL
Silvio J GillianBrazilAmy Elsner PROPOSAL
Izzy S BriddickRussiaXuxue Feng PROPOSAL
Emily I RoysterArgentinaIvan Magalhaes NEGOTIATION
Aika Q OstroskyFranceIvan Magalhaes UNQUALIFIED
Cody D RimAustraliaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio B StockhamBrazilElwin Sharvill PROPOSAL
Julie T MaletIndiaOnyama Limba PROPOSAL
Clifford D BologniaGermanyBernardo Dominic NEGOTIATION
Ricardo K DarakjyIndiaAsiya Javayant NEGOTIATION
Izzy R WhobreyArgentinaXuxue Feng UNQUALIFIED
Francesco D FlosiRussiaXuxue Feng NEW
Clifford G ButtArgentinaBernardo Dominic PROPOSAL
Leja N VenereFranceStephen Shaw QUALIFIED
Octavia F RulapaughItalyIoni Bowcher PROPOSAL
Claire K RulapaughJapanIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez Z OldroydFrance2025-05-21Rangoni Of Florence QUALIFIED41Anna Fali
1001Maisha X NestleArgentina2025-05-27Rousseaux, Michael Esq NEGOTIATION44Elwin Sharvill
1002Adams D NestleFrance2025-06-04Dorl, James J Esq UNQUALIFIED98Ioni Bowcher
1003Mujtaba A MarrierUnited Kingdom2025-05-22Rousseaux, Michael Esq NEW1Xuxue Feng
1004Jefferson E BowleyFrance2025-06-09Chemel, James L Cpa NEW91Ivan Magalhaes
1005Cody X FlosiAustralia2025-06-02Feltz Printing Service PROPOSAL87Ioni Bowcher
1006Chavez T MacleadFrance2025-06-12Dorl, James J Esq RENEWAL36Ioni Bowcher
1007Francesco C ShinkoSpain2025-05-18Chanay, Jeffrey A Esq RENEWAL16Asiya Javayant
1008Isabel N DarakjyGermany2025-05-18Benton, John B Jr QUALIFIED55Xuxue Feng
1009Nicolas C RutaRussia2025-06-11Chemel, James L Cpa QUALIFIED36Bernardo Dominic
1010Mujtaba F AmigonArgentina2025-05-30Buckley Miller Wright NEW96Ioni Bowcher
1011Maria Z GauchoArgentina2025-06-06Feltz Printing Service UNQUALIFIED23Ivan Magalhaes
1012Ricardo C DilliardJapan2025-05-18Printing Dimensions PROPOSAL81Xuxue Feng
1013Ricardo Y DoeArgentina2025-05-19Chapman, Ross E Esq UNQUALIFIED69Onyama Limba
1014Aruna M IturbideBrazil2025-06-15Feiner Bros NEW36Bernardo Dominic
1015Mayumi T IturbideRussia2025-06-08Commercial Press PROPOSAL99Elwin Sharvill
1016Aika P RulapaughIndia2025-05-29King, Christopher A Esq NEGOTIATION72Bernardo Dominic
1017Isabel M FlosiUnited Kingdom2025-06-14Feltz Printing Service PROPOSAL2Onyama Limba
1018Mayumi D GillianGermany2025-06-04Printing Dimensions RENEWAL25Anna Fali
1019Kadeem R StensethCanada2025-06-12Truhlar And Truhlar Attys UNQUALIFIED34Stephen Shaw
1020Aditya G StensethSpain2025-05-29Rousseaux, Michael Esq NEW93Bernardo Dominic
1021Smith E OstroskyGermany2025-05-27Chapman, Ross E Esq NEGOTIATION62Xuxue Feng
1022Izzy F WhobreyFrance2025-05-26King, Christopher A Esq NEW53Stephen Shaw
1023Chavez S OldroydArgentina2025-06-02Chanay, Jeffrey A Esq RENEWAL14Elwin Sharvill
1024Jones C InouyeUnited Kingdom2025-05-18Feltz Printing Service RENEWAL69Elwin Sharvill
1025Ashley Q RutaCanada2025-06-08Buckley Miller Wright UNQUALIFIED93Onyama Limba
1026Antonio W CampainCanada2025-05-18Chapman, Ross E Esq NEGOTIATION15Xuxue Feng
1027Mujtaba W GillianBrazil2025-05-29Truhlar And Truhlar Attys PROPOSAL26Ioni Bowcher
1028Kadeem O RulapaughSpain2025-05-27Rousseaux, Michael Esq UNQUALIFIED89Bernardo Dominic
1029Greenwood F FerenczJapan2025-06-16Morlong Associates QUALIFIED51Amy Elsner
1030Morrow J CaldareraJapan2025-06-04Chanay, Jeffrey A Esq QUALIFIED68Onyama Limba
1031Alejandro Z CampainFrance2025-05-27Truhlar And Truhlar Attys UNQUALIFIED55Elwin Sharvill
1032Kadeem V InouyeUnited Kingdom2025-05-28Chemel, James L Cpa NEGOTIATION89Onyama Limba
1033Chavez I WieserIndia2025-05-29Feiner Bros NEW36Ivan Magalhaes
1034Munro H FigeroaCanada2025-06-10Rangoni Of Florence RENEWAL19Stephen Shaw
1035Jones U FerenczBrazil2025-05-22Dorl, James J Esq NEW32Ioni Bowcher
1036Clifford C BriddickRussia2025-05-23Dorl, James J Esq NEGOTIATION14Xuxue Feng
1037Costa B CaudyAustralia2025-06-07Chemel, James L Cpa QUALIFIED69Ivan Magalhaes
1038Rodrigues V DoeFrance2025-05-25Truhlar And Truhlar Attys NEW25Xuxue Feng
1039Francesco S WhobreyCanada2025-06-04Chapman, Ross E Esq RENEWAL93Xuxue Feng
1040Chavez Z BriddickIndia2025-06-01Rangoni Of Florence UNQUALIFIED59Onyama Limba
1041Adams B NestleJapan2025-05-26Feiner Bros UNQUALIFIED64Elwin Sharvill
1042Murillo Z OldroydJapan2025-05-18Dorl, James J Esq PROPOSAL98Elwin Sharvill
1043Arvin O ShinkoRussia2025-06-01Buckley Miller Wright NEGOTIATION72Elwin Sharvill
1044Munro J BowleyUnited Kingdom2025-05-29Chemel, James L Cpa UNQUALIFIED13Onyama Limba
1045Leja Z FlosiIndia2025-05-19Commercial Press QUALIFIED22Anna Fali
1046Nicolas J TollnerGermany2025-06-08Feltz Printing Service NEW45Bernardo Dominic
1047Leon E RulapaughGermany2025-06-09Feiner Bros QUALIFIED73Ivan Magalhaes
1048Smith H PerinArgentina2025-06-12Buckley Miller Wright RENEWAL52Ivan Magalhaes
1049Murillo M MorascaBrazil2025-05-22Feiner Bros QUALIFIED83Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
David B CaudyArgentinaIoni Bowcher UNQUALIFIED
Alejandro R DilliardUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues W DarakjyArgentinaStephen Shaw NEW
Greenwood B DoeFranceOnyama Limba NEGOTIATION
Maisha G ChuiRussiaBernardo Dominic UNQUALIFIED
Salvatore P FerenczSpainStephen Shaw NEW
Cody T VenereGermanyBernardo Dominic PROPOSAL
Leja Q StensethSpainAnna Fali QUALIFIED
Costa U GauchoBrazilXuxue Feng NEW
Rodrigues S DilliardCanadaAsiya Javayant RENEWAL
Salvatore N BologniaAustraliaElwin Sharvill PROPOSAL
Jeanfrancois W PaprockiRussiaAsiya Javayant RENEWAL
Mayumi Y SaylorsRussiaStephen Shaw UNQUALIFIED
Arvin Q SchemmerRussiaAmy Elsner PROPOSAL
Izzy X WhobreyCanadaOnyama Limba UNQUALIFIED
Arvin Z MarrierGermanyAmy Elsner RENEWAL
Antonio Q PerinFranceIvan Magalhaes PROPOSAL
David M CaldareraRussiaStephen Shaw NEGOTIATION
Chavez Z OldroydIndiaStephen Shaw RENEWAL
Tony G SlusarskiSpainStephen Shaw NEGOTIATION
Julie I PaprockiArgentinaElwin Sharvill PROPOSAL
Aruna R RulapaughCanadaXuxue Feng NEGOTIATION
Maria W InouyeRussiaBernardo Dominic PROPOSAL
Jefferson R ChuiBrazilXuxue Feng NEGOTIATION
Rodrigues N PaprockiIndiaIvan Magalhaes RENEWAL
Chavez H DoeGermanyElwin Sharvill NEW
Munro Q CampainJapanElwin Sharvill UNQUALIFIED
Emily Y DarakjyJapanAmy Elsner QUALIFIED
Kaitlin I GlickIndiaAsiya Javayant NEW
Kaitlin H BologniaItalyElwin Sharvill QUALIFIED
Stacey E OstroskyArgentinaAsiya Javayant PROPOSAL
Aika R AlbaresRussiaAnna Fali NEGOTIATION
Nicolas A MacleadCanadaXuxue Feng PROPOSAL
Misaki N GillianFranceElwin Sharvill RENEWAL
Francesco B StensethBrazilIvan Magalhaes UNQUALIFIED
Emily M IturbideAustraliaIvan Magalhaes NEW
Stacey G BriddickRussiaAmy Elsner UNQUALIFIED
Deepesh Y FigeroaBrazilIoni Bowcher UNQUALIFIED
Wickens L MarrierItalyIvan Magalhaes PROPOSAL
Isabel W OstroskyArgentinaXuxue Feng NEW
David I NickaGermanyAsiya Javayant NEW
Tony O RulapaughGermanyBernardo Dominic QUALIFIED
Aika K PaprockiArgentinaIvan Magalhaes NEW
Jennifer N OldroydUnited KingdomAsiya Javayant NEGOTIATION
Francesco Z FollerArgentinaAsiya Javayant NEW
Stacey H DilliardSpainIoni Bowcher NEW
Faith K StockhamSpainOnyama Limba RENEWAL
Maisha M BriddickIndiaIvan Magalhaes QUALIFIED
Maisha O KuskoGermanyAsiya Javayant NEGOTIATION
Salvatore S RulapaughAustraliaAmy Elsner NEW
Frozen Columns
Name
Nicolas O Dilliard
Costa U Glick
Izzy I Ruta
Aditya X Nicka
Aruna F Ferencz
Sinclair F Schemmer
Arvin E Rim
Kaitlin M Garufi
Maisha T Perin
Jones I Nestle
Julie Y Amigon
Alejandro X Ferencz
Wickens J Rim
Smith F Saylors
Juan L Slusarski
Ricardo R Wieser
Juan C Ferencz
Ricardo E Morasca
Isabel E Rim
Arvin C Slusarski
Ashley A Rulapaugh
Greenwood W Saylors
Kaitlin A Marrier
Adams K Malet
Izzy T Kusko
Emily X Garufi
Greenwood J Caldarera
Ivar M Butt
Wickens U Rulapaugh
Maria K Vocelka
Jeanfrancois M Malet
Chavez L Slusarski
Chavez V Caudy
Leja L Albares
Emily A Gillian
Sinclair G Inouye
Stacey C Flosi
Costa E Garufi
Jones B Stenseth
Costa Z Campain
David P Venere
Aruna E Schemmer
Morrow D Ruta
Johnson P Schemmer
Adams G Gillian
Clifford I Darakjy
Faith U Saylors
Clifford S Waycott
Nicolas I Glick
Mayumi O Bowley
IdCountryDate
1000Canada2025-06-10
1001Germany2025-06-10
1002United Kingdom2025-05-26
1003Japan2025-05-25
1004Canada2025-06-14
1005Italy2025-05-21
1006Italy2025-05-23
1007France2025-05-31
1008Italy2025-05-19
1009Italy2025-05-23
1010Japan2025-06-08
1011Germany2025-06-01
1012Russia2025-05-22
1013Italy2025-06-05
1014Australia2025-06-16
1015Italy2025-06-13
1016Russia2025-06-08
1017India2025-06-13
1018Italy2025-05-25
1019United Kingdom2025-06-08
1020Canada2025-06-03
1021Japan2025-06-04
1022India2025-05-30
1023Germany2025-06-05
1024Canada2025-05-28
1025Italy2025-05-18
1026France2025-05-23
1027United Kingdom2025-06-08
1028Brazil2025-05-30
1029United Kingdom2025-06-02
1030Brazil2025-05-22
1031India2025-05-18
1032Italy2025-05-22
1033Spain2025-05-25
1034India2025-05-27
1035Spain2025-06-05
1036United Kingdom2025-05-23
1037Russia2025-06-04
1038Canada2025-06-16
1039Spain2025-06-08
1040India2025-06-06
1041India2025-05-25
1042United Kingdom2025-06-05
1043India2025-05-27
1044Canada2025-06-14
1045India2025-05-20
1046Germany2025-05-23
1047Argentina2025-05-26
1048Spain2025-06-06
1049France2025-05-26

On-Demand Data

NameIdCountryDate
Jones B Amigon1000Australia2025-05-27
Claire D Whobrey1001Germany2025-06-08
James M Nicka1002Germany2025-05-19
Munro D Nicka1003Argentina2025-05-19
Johnson X Kolmetz1004Canada2025-06-16
Jennifer P Garufi1005Canada2025-06-04
Misaki R Ferencz1006Spain2025-05-25
Nicolas H Glick1007France2025-06-05
Darci S Wieser1008United Kingdom2025-05-20
Stacey R Briddick1009Argentina2025-06-04
Murillo A Bolognia1010Japan2025-05-22
Maisha F Nestle1011India2025-05-23
Costa T Maclead1012Spain2025-05-23
Mujtaba W Iturbide1013France2025-06-10
Munro N Stockham1014France2025-05-31
Mujtaba E Royster1015Brazil2025-06-11
Morrow I Kolmetz1016Italy2025-06-06
Clifford J Rulapaugh1017India2025-06-10
Maria F Stockham1018Russia2025-05-20
Mujtaba M Royster1019United Kingdom2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio H FlosiJapanStephen Shaw RENEWAL
David E InouyeJapanIvan Magalhaes PROPOSAL
Greenwood P KuskoIndiaAnna Fali PROPOSAL
Aruna W SchemmerItalyAnna Fali QUALIFIED
Jennifer R NestleArgentinaStephen Shaw RENEWAL
Claire N CaldareraGermanyAmy Elsner PROPOSAL
Maria W GlickSpainOnyama Limba RENEWAL
Greenwood Z SaylorsIndiaIvan Magalhaes RENEWAL
Juan C RutaGermanyXuxue Feng NEGOTIATION
Ricardo K SaylorsCanadaAsiya Javayant NEGOTIATION
Cody T SlusarskiIndiaStephen Shaw PROPOSAL
Stacey C DarakjyFranceStephen Shaw NEGOTIATION
Clifford Q PaprockiJapanStephen Shaw PROPOSAL
Alejandro X SaylorsRussiaAmy Elsner QUALIFIED
Emily Y SergiBrazilBernardo Dominic RENEWAL
Antonio L SergiUnited KingdomStephen Shaw RENEWAL
Jeanfrancois A KuskoIndiaBernardo Dominic PROPOSAL
Isabel F AlbaresRussiaAsiya Javayant RENEWAL
Johnson M VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Jefferson G MaletCanadaIoni Bowcher NEGOTIATION
Aruna B WhobreySpainAnna Fali NEW
Costa F NestleArgentinaBernardo Dominic RENEWAL
Rodrigues K MaletArgentinaBernardo Dominic QUALIFIED
Ashley J VocelkaAustraliaAnna Fali UNQUALIFIED
Maisha A VenereFranceBernardo Dominic RENEWAL
Munro O DarakjyGermanyIoni Bowcher UNQUALIFIED
Sinclair G BowleyIndiaIoni Bowcher QUALIFIED
Chavez C PerinUnited KingdomElwin Sharvill UNQUALIFIED
James Y InouyeFranceAnna Fali QUALIFIED
Isabel C GarufiGermanyAsiya Javayant UNQUALIFIED
Izzy L StockhamJapanAnna Fali RENEWAL
Mujtaba V VocelkaSpainIvan Magalhaes UNQUALIFIED
Izzy F DarakjyRussiaAnna Fali RENEWAL
Murillo X TollnerFranceElwin Sharvill PROPOSAL
Jones Y WhobreyCanadaBernardo Dominic NEW
Adams T PaprockiSpainBernardo Dominic NEGOTIATION
Sinclair D InouyeUnited KingdomIoni Bowcher NEW
Isabel D TollnerSpainAnna Fali NEGOTIATION
Cody A PoquetteUnited KingdomIvan Magalhaes QUALIFIED
David J RulapaughFranceXuxue Feng 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>