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
Mujtaba J BologniaGermanyStephen Shaw RENEWAL
Mayumi F WieserJapanBernardo Dominic NEW
Izzy P VenereArgentinaAsiya Javayant UNQUALIFIED
James G ButtIndiaBernardo Dominic QUALIFIED
Greenwood N ChuiSpainAsiya Javayant RENEWAL
Jeanfrancois K SlusarskiBrazilStephen Shaw PROPOSAL
Adams X ShinkoIndiaOnyama Limba RENEWAL
Cody T PoquetteArgentinaAmy Elsner NEGOTIATION
Leon T CaldareraGermanyAsiya Javayant QUALIFIED
Jones U CaldareraGermanyElwin Sharvill PROPOSAL
Jennifer A FerenczItalyBernardo Dominic UNQUALIFIED
Smith T CampainArgentinaIvan Magalhaes RENEWAL
Ricardo Z NestleIndiaOnyama Limba QUALIFIED
David I StensethAustraliaXuxue Feng RENEWAL
Leon B PerinArgentinaAsiya Javayant UNQUALIFIED
Jefferson I AmigonUnited KingdomAsiya Javayant PROPOSAL
Izzy Z BriddickArgentinaElwin Sharvill UNQUALIFIED
Costa X BologniaRussiaAsiya Javayant RENEWAL
Leja K ButtGermanyBernardo Dominic QUALIFIED
Ricardo F MarrierRussiaIoni Bowcher NEGOTIATION
Mayumi V MorascaFranceAsiya Javayant PROPOSAL
Munro D MorascaUnited KingdomAmy Elsner NEW
Francesco G RimJapanStephen Shaw NEGOTIATION
Alejandro D FigeroaItalyAsiya Javayant NEW
Cody B AlbaresSpainStephen Shaw NEGOTIATION
Maisha J TollnerIndiaElwin Sharvill UNQUALIFIED
Maisha N VocelkaBrazilOnyama Limba PROPOSAL
Stacey N AlbaresArgentinaXuxue Feng NEGOTIATION
Ivar V PoquetteRussiaIoni Bowcher PROPOSAL
Aika U MacleadRussiaStephen Shaw RENEWAL
Faith N AmigonRussiaElwin Sharvill RENEWAL
Jennifer P MarrierCanadaAmy Elsner QUALIFIED
Ricardo B FollerBrazilXuxue Feng NEW
Chavez X NickaBrazilStephen Shaw NEW
Kadeem G ChuiBrazilBernardo Dominic UNQUALIFIED
Antonio A SchemmerAustraliaAsiya Javayant NEGOTIATION
Smith F WaycottJapanStephen Shaw RENEWAL
Stacey Z FigeroaGermanyOnyama Limba UNQUALIFIED
Smith W BologniaUnited KingdomAmy Elsner NEGOTIATION
Jennifer V FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Arvin T VenereArgentinaAnna Fali UNQUALIFIED
Leon Z ButtAustraliaAnna Fali QUALIFIED
Johnson J PerinAustraliaOnyama Limba UNQUALIFIED
Tony E VocelkaUnited KingdomAsiya Javayant RENEWAL
Alejandro M VenereItalyElwin Sharvill NEGOTIATION
Alejandro M SergiSpainIvan Magalhaes NEGOTIATION
Jones Z NickaIndiaStephen Shaw UNQUALIFIED
Aika H CaldareraAustraliaBernardo Dominic RENEWAL
Jones Z FerenczItalyAsiya Javayant NEGOTIATION
David Z MarrierJapanElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco B StensethAustraliaStephen Shaw NEGOTIATION
Antonio I FigeroaUnited KingdomXuxue Feng NEGOTIATION
Aika A VenereJapanStephen Shaw UNQUALIFIED
Jefferson O RutaArgentinaAnna Fali NEW
Darci L SlusarskiItalyIoni Bowcher RENEWAL
James B FollerSpainAnna Fali QUALIFIED
Leja A ShinkoJapanXuxue Feng NEW
Tony R BologniaIndiaIoni Bowcher NEGOTIATION
Sinclair B StockhamRussiaAmy Elsner PROPOSAL
Kadeem M RutaRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi P VocelkaRussia2025-05-09King, Christopher A Esq QUALIFIED82Stephen Shaw
1001Wickens Q FlosiRussia2025-04-26King, Christopher A Esq RENEWAL49Ivan Magalhaes
1002Leja G VenereRussia2025-04-28Dorl, James J Esq RENEWAL75Onyama Limba
1003Deepesh A BowleyRussia2025-05-10Rousseaux, Michael Esq NEGOTIATION3Asiya Javayant
1004Octavia C KolmetzFrance2025-05-10King, Christopher A Esq RENEWAL57Ivan Magalhaes
1005Murillo E AlbaresBrazil2025-04-30Commercial Press RENEWAL36Ivan Magalhaes
1006Munro A KolmetzIndia2025-05-10Chanay, Jeffrey A Esq PROPOSAL33Xuxue Feng
1007Ivar B MacleadUnited Kingdom2025-05-07Dorl, James J Esq RENEWAL93Asiya Javayant
1008Francesco A DilliardJapan2025-04-16Commercial Press UNQUALIFIED42Asiya Javayant
1009Deepesh P SchemmerUnited Kingdom2025-05-04Feltz Printing Service QUALIFIED12Asiya Javayant
1010Ashley M RutaFrance2025-05-06Rousseaux, Michael Esq NEW86Anna Fali
1011Johnson L DarakjyAustralia2025-04-24Feiner Bros PROPOSAL29Stephen Shaw
1012Isabel M FollerBrazil2025-04-22Rangoni Of Florence UNQUALIFIED1Elwin Sharvill
1013Jeanfrancois H WhobreyAustralia2025-04-24Rangoni Of Florence NEGOTIATION75Onyama Limba
1014Emily B RulapaughJapan2025-05-02Rousseaux, Michael Esq PROPOSAL35Anna Fali
1015Emily J StockhamGermany2025-05-04Rangoni Of Florence RENEWAL51Bernardo Dominic
1016Leja C FollerUnited Kingdom2025-04-24Commercial Press QUALIFIED26Xuxue Feng
1017Aditya D AlbaresUnited Kingdom2025-04-22Morlong Associates UNQUALIFIED90Bernardo Dominic
1018Francesco F GillianCanada2025-05-11Chanay, Jeffrey A Esq NEGOTIATION89Onyama Limba
1019Stacey O DilliardSpain2025-04-29Truhlar And Truhlar Attys RENEWAL87Stephen Shaw
1020Arvin V DoeCanada2025-04-26Benton, John B Jr NEW18Bernardo Dominic
1021Stacey N IturbideFrance2025-04-18Feltz Printing Service PROPOSAL95Onyama Limba
1022Aruna J InouyeAustralia2025-05-05Printing Dimensions NEW60Amy Elsner
1023Sinclair Y MorascaItaly2025-05-11Feiner Bros RENEWAL94Ioni Bowcher
1024Leon T InouyeAustralia2025-04-15Chemel, James L Cpa PROPOSAL27Asiya Javayant
1025Isabel Y SlusarskiIndia2025-04-15Morlong Associates RENEWAL20Ioni Bowcher
1026Francesco Q WaycottJapan2025-05-07Chemel, James L Cpa NEW22Stephen Shaw
1027Maisha I RulapaughRussia2025-04-24Rangoni Of Florence UNQUALIFIED95Bernardo Dominic
1028Arvin J StockhamFrance2025-04-27Printing Dimensions RENEWAL86Stephen Shaw
1029Misaki Y GlickCanada2025-04-17Feltz Printing Service RENEWAL35Ivan Magalhaes
1030Munro X VenereBrazil2025-05-04Rousseaux, Michael Esq QUALIFIED64Asiya Javayant
1031Jennifer W VocelkaGermany2025-05-09Morlong Associates NEW56Ioni Bowcher
1032Chavez Y ButtAustralia2025-04-22Truhlar And Truhlar Attys NEGOTIATION40Elwin Sharvill
1033Cody B TollnerJapan2025-05-03Chanay, Jeffrey A Esq NEGOTIATION47Ivan Magalhaes
1034Misaki X FollerJapan2025-04-13Commercial Press NEGOTIATION58Ioni Bowcher
1035Cody P MarrierArgentina2025-04-29Rousseaux, Michael Esq NEW69Onyama Limba
1036Arvin C ChuiCanada2025-05-02King, Christopher A Esq PROPOSAL38Elwin Sharvill
1037Emily F SlusarskiAustralia2025-04-25Buckley Miller Wright QUALIFIED43Asiya Javayant
1038Leja G WaycottCanada2025-05-07Truhlar And Truhlar Attys QUALIFIED78Asiya Javayant
1039Silvio J GauchoBrazil2025-05-07Rangoni Of Florence NEGOTIATION22Bernardo Dominic
1040Claire Q StensethJapan2025-05-07Chanay, Jeffrey A Esq NEW10Asiya Javayant
1041Rodrigues C AmigonSpain2025-04-24Rangoni Of Florence NEGOTIATION3Bernardo Dominic
1042Leja M PaprockiArgentina2025-05-08Commercial Press UNQUALIFIED51Asiya Javayant
1043Maria J GillianAustralia2025-05-02Commercial Press UNQUALIFIED62Asiya Javayant
1044Julie O VocelkaFrance2025-05-08Rousseaux, Michael Esq PROPOSAL65Asiya Javayant
1045Darci V WhobreyRussia2025-04-15Feltz Printing Service QUALIFIED26Onyama Limba
1046Aika E TollnerGermany2025-04-19Feltz Printing Service PROPOSAL3Amy Elsner
1047Rodrigues H PaprockiCanada2025-05-07Dorl, James J Esq QUALIFIED28Onyama Limba
1048Ricardo I RutaUnited Kingdom2025-05-11Buckley Miller Wright PROPOSAL9Bernardo Dominic
1049David U MaletCanada2025-04-27Buckley Miller Wright UNQUALIFIED62Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy T SlusarskiBrazilElwin Sharvill UNQUALIFIED
Alejandro T VocelkaFranceBernardo Dominic NEW
Jeanfrancois R DarakjyRussiaElwin Sharvill QUALIFIED
Greenwood T KolmetzIndiaAsiya Javayant PROPOSAL
Mayumi S RulapaughFranceIvan Magalhaes NEW
Leja C VocelkaAustraliaElwin Sharvill NEGOTIATION
Jones X DarakjyJapanStephen Shaw RENEWAL
Cody Z BowleySpainAsiya Javayant RENEWAL
Emily S CampainJapanIvan Magalhaes NEW
Leja U CaldareraCanadaElwin Sharvill PROPOSAL
Arvin A AmigonSpainStephen Shaw PROPOSAL
Mayumi X VenereFranceAmy Elsner PROPOSAL
Aika G WaycottRussiaElwin Sharvill NEW
Wickens B TollnerUnited KingdomIoni Bowcher PROPOSAL
Stacey O FollerJapanAsiya Javayant QUALIFIED
Cody O GlickGermanyBernardo Dominic RENEWAL
Greenwood P OstroskyUnited KingdomBernardo Dominic RENEWAL
Jefferson R MarrierSpainBernardo Dominic PROPOSAL
Clifford Y SergiCanadaAsiya Javayant NEGOTIATION
Aruna Z WaycottItalyAsiya Javayant NEW
Antonio G KuskoSpainOnyama Limba PROPOSAL
Aika F VocelkaIndiaAmy Elsner PROPOSAL
Julie J InouyeSpainOnyama Limba QUALIFIED
Jennifer O BowleyIndiaBernardo Dominic QUALIFIED
Mujtaba W MarrierSpainStephen Shaw NEW
Ivar Z NickaCanadaElwin Sharvill RENEWAL
Antonio Z DoeSpainIoni Bowcher RENEWAL
Emily O RulapaughCanadaAsiya Javayant NEW
Tony H OstroskyCanadaIvan Magalhaes PROPOSAL
Clifford O MorascaItalyXuxue Feng RENEWAL
Antonio Y FigeroaItalyAnna Fali RENEWAL
Leon O IturbideAustraliaAnna Fali NEW
Izzy J RulapaughUnited KingdomOnyama Limba RENEWAL
David J OstroskySpainAnna Fali NEW
Salvatore R PoquetteUnited KingdomAmy Elsner NEW
Francesco W DarakjyArgentinaAsiya Javayant QUALIFIED
Ricardo O ButtGermanyIoni Bowcher NEW
Mujtaba M NickaAustraliaStephen Shaw NEW
Chavez Z SchemmerFranceIoni Bowcher NEGOTIATION
Smith S KuskoItalyXuxue Feng PROPOSAL
Aditya U NickaItalyBernardo Dominic NEGOTIATION
Alejandro X PaprockiArgentinaAsiya Javayant RENEWAL
Mujtaba M KolmetzCanadaAnna Fali NEGOTIATION
Jones H FigeroaRussiaAsiya Javayant QUALIFIED
Izzy S SaylorsItalyBernardo Dominic UNQUALIFIED
Johnson Z OstroskyGermanyXuxue Feng UNQUALIFIED
Stacey Y MaletCanadaElwin Sharvill RENEWAL
Aika R PaprockiBrazilAnna Fali NEGOTIATION
Maisha Y VocelkaArgentinaXuxue Feng PROPOSAL
Smith X OstroskyJapanIvan Magalhaes PROPOSAL
Frozen Columns
Name
Tony I Rim
Aika J Poquette
Kadeem L Glick
Maisha K Bowley
Alejandro U Chui
Rodrigues R Whobrey
Leon C Butt
Ivar O Venere
Clifford V Bowley
Kaitlin Z Vocelka
Mujtaba R Royster
Smith K Waycott
Ivar W Darakjy
Jones J Marrier
Claire L Marrier
Deepesh F Bowley
Jefferson A Bolognia
Antonio A Waycott
Murillo R Albares
Isabel W Darakjy
James Z Garufi
Faith U Schemmer
Smith J Shinko
Arvin K Royster
Adams I Campain
Wickens I Gaucho
Ivar E Wieser
Maisha T Ruta
Munro N Garufi
Nicolas W Tollner
Mujtaba N Stenseth
Jefferson F Stenseth
Tony Q Morasca
David C Foller
Kadeem W Stockham
Jennifer H Foller
Smith M Whobrey
Silvio P Briddick
Ashley E Caudy
Jones D Tollner
Faith E Foller
Jeanfrancois D Sergi
Wickens U Venere
Nicolas Z Schemmer
Aika T Dilliard
Aika E Wieser
Jefferson S Sergi
Francesco A Slusarski
Aditya P Sergi
Maisha Z Chui
IdCountryDate
1000Argentina2025-04-17
1001Italy2025-05-01
1002Italy2025-04-22
1003France2025-04-13
1004Japan2025-04-26
1005Brazil2025-04-22
1006Spain2025-04-24
1007United Kingdom2025-04-19
1008Italy2025-04-16
1009Germany2025-04-23
1010India2025-05-02
1011Australia2025-04-17
1012Argentina2025-05-10
1013Australia2025-04-20
1014Italy2025-04-19
1015Germany2025-04-16
1016Canada2025-04-23
1017Japan2025-05-06
1018Italy2025-05-11
1019Spain2025-05-12
1020Spain2025-04-27
1021France2025-04-23
1022Japan2025-05-07
1023Russia2025-04-25
1024Australia2025-04-16
1025Spain2025-05-02
1026Spain2025-05-10
1027France2025-04-22
1028Russia2025-04-18
1029Italy2025-04-25
1030United Kingdom2025-04-23
1031Spain2025-05-02
1032Brazil2025-04-21
1033India2025-05-12
1034India2025-04-19
1035India2025-05-09
1036Germany2025-05-05
1037France2025-05-03
1038India2025-05-08
1039United Kingdom2025-05-06
1040Canada2025-05-02
1041Italy2025-04-23
1042Canada2025-04-28
1043Brazil2025-04-24
1044Germany2025-04-22
1045Argentina2025-04-17
1046Spain2025-04-19
1047Spain2025-04-14
1048Australia2025-05-03
1049Brazil2025-05-09

On-Demand Data

NameIdCountryDate
Faith K Poquette1000United Kingdom2025-04-19
Aika T Ostrosky1001Australia2025-04-26
Jeanfrancois H Stockham1002Japan2025-04-26
Cody A Tollner1003Japan2025-05-01
Cody U Ferencz1004Brazil2025-04-21
Deepesh X Briddick1005Spain2025-05-11
Jefferson P Ferencz1006Brazil2025-04-24
Isabel W Rulapaugh1007Japan2025-05-01
Costa Z Amigon1008United Kingdom2025-04-17
Stacey E Iturbide1009Russia2025-05-06
Leon Z Bolognia1010Italy2025-04-13
Leja E Kolmetz1011Australia2025-04-16
Izzy V Sergi1012Canada2025-04-14
Munro Z Shinko1013India2025-04-17
Cody I Dilliard1014Japan2025-05-07
Darci T Nicka1015France2025-04-26
Arvin Z Amigon1016Canada2025-04-29
Tony R Butt1017France2025-05-02
Mujtaba V Nestle1018Australia2025-04-17
Ricardo A Glick1019Argentina2025-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika S CaudyIndiaStephen Shaw QUALIFIED
Claire G InouyeRussiaAmy Elsner UNQUALIFIED
Tony S MacleadArgentinaXuxue Feng QUALIFIED
Aruna H TollnerRussiaAsiya Javayant UNQUALIFIED
Juan M PoquetteFranceIvan Magalhaes NEGOTIATION
Francesco X AmigonItalyAsiya Javayant NEGOTIATION
Wickens Q VocelkaIndiaElwin Sharvill PROPOSAL
Deepesh Y MaletAustraliaOnyama Limba NEGOTIATION
Murillo T VenereRussiaAnna Fali NEGOTIATION
Jeanfrancois Z AmigonAustraliaStephen Shaw PROPOSAL
Jeanfrancois O RimJapanAmy Elsner QUALIFIED
Claire D KolmetzRussiaXuxue Feng RENEWAL
Adams S PerinRussiaAsiya Javayant QUALIFIED
Wickens X WhobreyGermanyIvan Magalhaes RENEWAL
Antonio P CampainItalyStephen Shaw PROPOSAL
Misaki M PaprockiBrazilXuxue Feng UNQUALIFIED
Ashley G AmigonSpainOnyama Limba QUALIFIED
Mayumi A MacleadGermanyBernardo Dominic NEGOTIATION
Francesco D InouyeUnited KingdomIvan Magalhaes QUALIFIED
Jefferson A DilliardBrazilAmy Elsner NEGOTIATION
Leon Z StensethAustraliaBernardo Dominic RENEWAL
Ivar Y KuskoRussiaBernardo Dominic NEGOTIATION
Kaitlin P NickaAustraliaIoni Bowcher NEW
Julie N FigeroaCanadaXuxue Feng QUALIFIED
Greenwood R SaylorsGermanyElwin Sharvill UNQUALIFIED
Munro J GlickItalyElwin Sharvill QUALIFIED
Emily Q CaldareraAustraliaXuxue Feng RENEWAL
David E NickaJapanIoni Bowcher QUALIFIED
Faith B RimArgentinaAsiya Javayant NEGOTIATION
Antonio P TollnerRussiaAmy Elsner NEW
Maisha X RoysterJapanStephen Shaw RENEWAL
Nicolas G MaletJapanElwin Sharvill UNQUALIFIED
Misaki J NickaGermanyAnna Fali NEW
Mujtaba O PaprockiGermanyElwin Sharvill NEW
Clifford A RimJapanStephen Shaw PROPOSAL
Deepesh J TollnerItalyAmy Elsner PROPOSAL
Tony K BowleyGermanyBernardo Dominic PROPOSAL
Murillo G StensethUnited KingdomAsiya Javayant QUALIFIED
Kadeem P SlusarskiFranceAsiya Javayant RENEWAL
Francesco Y TollnerFranceAsiya Javayant RENEWAL

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