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
Jeanfrancois G RoysterBrazilIvan Magalhaes NEGOTIATION
Kadeem F FlosiSpainAsiya Javayant NEW
Deepesh O KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Aditya Y NestleCanadaAmy Elsner NEGOTIATION
Munro H WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Aruna A StockhamBrazilIoni Bowcher RENEWAL
Darci A WhobreyCanadaStephen Shaw RENEWAL
Misaki I GillianBrazilIvan Magalhaes QUALIFIED
James M FollerIndiaAnna Fali QUALIFIED
Clifford J GarufiItalyOnyama Limba UNQUALIFIED
Leon R SergiIndiaStephen Shaw RENEWAL
Jeanfrancois C ButtCanadaIvan Magalhaes QUALIFIED
Jefferson F PoquetteRussiaBernardo Dominic NEGOTIATION
Chavez V DarakjyBrazilStephen Shaw PROPOSAL
Darci I GauchoUnited KingdomAnna Fali PROPOSAL
Kadeem H SergiGermanyAmy Elsner NEGOTIATION
Silvio T ChuiJapanIvan Magalhaes NEW
Stacey Y GarufiAustraliaBernardo Dominic QUALIFIED
Silvio F ChuiBrazilAnna Fali NEW
Morrow Q FollerIndiaAsiya Javayant UNQUALIFIED
Ivar N SergiIndiaOnyama Limba RENEWAL
Salvatore N CaldareraItalyAnna Fali NEGOTIATION
Julie A RulapaughIndiaStephen Shaw PROPOSAL
Maria O PerinUnited KingdomIvan Magalhaes NEGOTIATION
Maisha O WieserBrazilElwin Sharvill UNQUALIFIED
Ivar A GarufiArgentinaAnna Fali QUALIFIED
Julie X PaprockiArgentinaAmy Elsner NEGOTIATION
Aditya M FigeroaBrazilAmy Elsner NEW
Tony T KuskoGermanyAmy Elsner UNQUALIFIED
Johnson G MorascaJapanXuxue Feng NEW
Jeanfrancois T SaylorsArgentinaAmy Elsner QUALIFIED
Misaki B OldroydBrazilIoni Bowcher UNQUALIFIED
Clifford K ShinkoUnited KingdomStephen Shaw RENEWAL
Leon S SchemmerGermanyIoni Bowcher UNQUALIFIED
Darci J MaletFranceIoni Bowcher NEGOTIATION
Sinclair O OstroskyAustraliaIvan Magalhaes QUALIFIED
Jefferson M MaletAustraliaXuxue Feng RENEWAL
Claire Z OldroydIndiaAmy Elsner NEGOTIATION
Kadeem K TollnerCanadaAnna Fali NEW
Faith K RulapaughSpainAsiya Javayant NEGOTIATION
Stacey Q RulapaughAustraliaAsiya Javayant QUALIFIED
Greenwood N DoeAustraliaAnna Fali NEGOTIATION
Darci N NickaJapanIvan Magalhaes RENEWAL
Izzy N SergiSpainIoni Bowcher PROPOSAL
Rodrigues L GlickUnited KingdomAnna Fali QUALIFIED
Leja E GillianUnited KingdomStephen Shaw UNQUALIFIED
Juan M WieserItalyAnna Fali NEW
Jennifer J RimIndiaIoni Bowcher PROPOSAL
Maria H SergiJapanAmy Elsner QUALIFIED
Claire R ChuiAustraliaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
David C CaudyGermanyAmy Elsner PROPOSAL
Emily V BowleyArgentinaOnyama Limba PROPOSAL
Nicolas F CaudyItalyIvan Magalhaes NEGOTIATION
Jennifer L FollerBrazilAmy Elsner PROPOSAL
Murillo J CaudyRussiaStephen Shaw NEGOTIATION
Stacey N GlickGermanyIvan Magalhaes RENEWAL
Aika Q GauchoArgentinaIvan Magalhaes UNQUALIFIED
Claire U SaylorsAustraliaAsiya Javayant NEW
Salvatore C AmigonCanadaXuxue Feng NEGOTIATION
Kadeem F CaudyGermanyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha A MarrierArgentina2026-07-05Commercial Press UNQUALIFIED12Ivan Magalhaes
1001Cody Y RoysterItaly2026-07-09Buckley Miller Wright RENEWAL75Bernardo Dominic
1002Juan A FerenczBrazil2026-07-18Feiner Bros RENEWAL71Ivan Magalhaes
1003Tony B NickaArgentina2026-07-11Printing Dimensions UNQUALIFIED36Elwin Sharvill
1004Adams P StensethArgentina2026-07-07Truhlar And Truhlar Attys UNQUALIFIED87Elwin Sharvill
1005Jefferson C VenereItaly2026-06-24Chemel, James L Cpa PROPOSAL99Elwin Sharvill
1006Salvatore P RoysterSpain2026-07-10Feltz Printing Service NEW40Ivan Magalhaes
1007Isabel P ShinkoRussia2026-06-28Dorl, James J Esq PROPOSAL30Bernardo Dominic
1008Salvatore V FollerUnited Kingdom2026-07-11Dorl, James J Esq UNQUALIFIED26Xuxue Feng
1009Antonio I PerinUnited Kingdom2026-07-08Rangoni Of Florence UNQUALIFIED66Ivan Magalhaes
1010Ricardo X MaletArgentina2026-07-11Chapman, Ross E Esq PROPOSAL38Ivan Magalhaes
1011Ashley H BowleyItaly2026-07-10Printing Dimensions PROPOSAL12Ivan Magalhaes
1012Aruna M FigeroaArgentina2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED97Amy Elsner
1013Clifford C SchemmerJapan2026-06-28Chapman, Ross E Esq RENEWAL42Amy Elsner
1014James C NestleArgentina2026-06-30Dorl, James J Esq NEW60Stephen Shaw
1015Francesco Z NestleBrazil2026-06-24Commercial Press NEGOTIATION48Onyama Limba
1016Adams F CaudyItaly2026-07-15Chapman, Ross E Esq NEGOTIATION92Xuxue Feng
1017Murillo C PoquetteRussia2026-07-17Commercial Press RENEWAL84Xuxue Feng
1018Ricardo F WieserIndia2026-06-20Rangoni Of Florence UNQUALIFIED80Elwin Sharvill
1019Jefferson I DoeRussia2026-06-27Dorl, James J Esq RENEWAL19Ioni Bowcher
1020Greenwood T MaletIndia2026-07-14Chanay, Jeffrey A Esq QUALIFIED43Bernardo Dominic
1021Nicolas X ShinkoItaly2026-07-09Truhlar And Truhlar Attys RENEWAL28Ioni Bowcher
1022Julie X FollerBrazil2026-07-18Truhlar And Truhlar Attys UNQUALIFIED52Xuxue Feng
1023Jefferson T GarufiRussia2026-07-03Rangoni Of Florence RENEWAL19Ivan Magalhaes
1024Darci G FlosiJapan2026-07-06Feltz Printing Service PROPOSAL80Xuxue Feng
1025Kaitlin J SergiSpain2026-06-30Buckley Miller Wright RENEWAL35Ivan Magalhaes
1026Jones N BriddickIndia2026-07-08Commercial Press UNQUALIFIED97Xuxue Feng
1027Rodrigues D CaldareraFrance2026-07-09Truhlar And Truhlar Attys UNQUALIFIED44Ioni Bowcher
1028Aruna S ShinkoSpain2026-06-27Feltz Printing Service PROPOSAL47Asiya Javayant
1029Mujtaba J KuskoRussia2026-06-20Rangoni Of Florence UNQUALIFIED38Elwin Sharvill
1030Silvio B SaylorsCanada2026-07-01Commercial Press UNQUALIFIED4Asiya Javayant
1031Adams D MaletRussia2026-07-03Rousseaux, Michael Esq NEW6Elwin Sharvill
1032Munro H WhobreyAustralia2026-07-08Chapman, Ross E Esq QUALIFIED46Xuxue Feng
1033Sinclair N AlbaresSpain2026-06-28Truhlar And Truhlar Attys PROPOSAL65Ioni Bowcher
1034Emily E IturbideAustralia2026-07-14Feiner Bros NEW6Bernardo Dominic
1035Silvio J TollnerIndia2026-06-26Feltz Printing Service UNQUALIFIED48Xuxue Feng
1036Jennifer A CampainIndia2026-07-15Chapman, Ross E Esq QUALIFIED11Ivan Magalhaes
1037Nicolas B KuskoRussia2026-07-03Chapman, Ross E Esq UNQUALIFIED28Ivan Magalhaes
1038Ivar O GarufiRussia2026-07-19Buckley Miller Wright UNQUALIFIED61Ioni Bowcher
1039Ashley K PerinCanada2026-06-29Buckley Miller Wright NEGOTIATION67Bernardo Dominic
1040Maria J RutaJapan2026-07-15Chemel, James L Cpa NEW74Xuxue Feng
1041Mayumi Z PerinAustralia2026-07-10Buckley Miller Wright NEGOTIATION89Bernardo Dominic
1042Mayumi D RimJapan2026-07-10Commercial Press QUALIFIED52Onyama Limba
1043Wickens E DoeBrazil2026-07-07Rousseaux, Michael Esq NEGOTIATION91Ioni Bowcher
1044Jefferson N VocelkaItaly2026-07-08Rangoni Of Florence QUALIFIED52Ioni Bowcher
1045Sinclair G MaletUnited Kingdom2026-06-25King, Christopher A Esq QUALIFIED87Elwin Sharvill
1046Jennifer C GlickJapan2026-06-20Feltz Printing Service NEW80Ivan Magalhaes
1047James L GlickIndia2026-06-26Feiner Bros UNQUALIFIED93Xuxue Feng
1048Costa G GillianSpain2026-07-01Printing Dimensions NEW54Ivan Magalhaes
1049Rodrigues D StockhamGermany2026-06-21Truhlar And Truhlar Attys RENEWAL23Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jennifer H AmigonUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois O KolmetzItalyStephen Shaw RENEWAL
Murillo L WhobreySpainAmy Elsner NEGOTIATION
Aika C VenereSpainIoni Bowcher NEW
Claire K VocelkaBrazilBernardo Dominic NEW
Isabel H AmigonSpainXuxue Feng RENEWAL
Emily U MacleadSpainElwin Sharvill NEW
Faith Z WieserSpainOnyama Limba QUALIFIED
Antonio U SaylorsCanadaXuxue Feng NEW
Jeanfrancois H SaylorsAustraliaStephen Shaw NEGOTIATION
Deepesh S OldroydBrazilAmy Elsner NEW
Rodrigues Q SergiIndiaAnna Fali NEGOTIATION
Sinclair O PerinBrazilAmy Elsner UNQUALIFIED
Silvio S CampainJapanXuxue Feng NEGOTIATION
Tony V StensethSpainElwin Sharvill NEW
Ivar N FlosiIndiaBernardo Dominic QUALIFIED
Claire A InouyeBrazilIvan Magalhaes NEW
Darci O DarakjyJapanXuxue Feng RENEWAL
Leja I ChuiBrazilIvan Magalhaes UNQUALIFIED
Emily F GarufiFranceIoni Bowcher RENEWAL
Cody X WhobreyItalyXuxue Feng NEW
Salvatore Y AlbaresArgentinaStephen Shaw PROPOSAL
Sinclair R RimGermanyBernardo Dominic PROPOSAL
Greenwood M BowleyArgentinaAsiya Javayant QUALIFIED
Deepesh Q ButtBrazilStephen Shaw UNQUALIFIED
Morrow B GillianUnited KingdomStephen Shaw RENEWAL
Ricardo E CaldareraJapanElwin Sharvill UNQUALIFIED
Arvin N ChuiAustraliaAsiya Javayant NEGOTIATION
Morrow K BologniaJapanOnyama Limba QUALIFIED
Aika M WieserGermanyOnyama Limba RENEWAL
Salvatore T StensethBrazilElwin Sharvill QUALIFIED
Aruna Y MaletCanadaIoni Bowcher NEW
Ashley M KuskoSpainAmy Elsner PROPOSAL
Nicolas K StensethSpainAmy Elsner NEGOTIATION
Smith H RulapaughIndiaAmy Elsner NEGOTIATION
Kadeem Z MaletJapanElwin Sharvill UNQUALIFIED
Chavez E VenereSpainXuxue Feng NEGOTIATION
Wickens Y NickaJapanElwin Sharvill UNQUALIFIED
Tony F PerinJapanIoni Bowcher NEGOTIATION
Octavia W KolmetzUnited KingdomAmy Elsner NEW
Johnson P InouyeFranceAmy Elsner QUALIFIED
Leon E VocelkaArgentinaIvan Magalhaes RENEWAL
Maisha P PerinRussiaBernardo Dominic NEW
Isabel M VocelkaCanadaOnyama Limba UNQUALIFIED
Claire Y RoysterRussiaIoni Bowcher QUALIFIED
Emily J RimUnited KingdomAsiya Javayant RENEWAL
Munro Q VenereJapanAnna Fali NEGOTIATION
Izzy T MaletFranceIoni Bowcher QUALIFIED
Ashley D PaprockiJapanXuxue Feng UNQUALIFIED
Emily O VenereItalyIoni Bowcher QUALIFIED
Frozen Columns
Name
Chavez Z Paprocki
James N Shinko
Greenwood Y Sergi
Mayumi X Doe
Aruna S Sergi
Ricardo Z Briddick
Deepesh M Whobrey
Mayumi S Gaucho
Tony P Doe
Isabel F Saylors
Antonio S Malet
Ashley L Campain
Maisha Z Glick
Greenwood M Inouye
Kaitlin I Bowley
Misaki Y Malet
Sinclair W Bolognia
Smith O Flosi
Leja M Figeroa
Deepesh D Malet
Maisha A Rulapaugh
Antonio C Schemmer
Salvatore T Ruta
Isabel P Morasca
Maisha Z Maclead
Jones L Bowley
Stacey V Amigon
Octavia Z Morasca
Smith N Darakjy
Cody G Waycott
Alejandro N Ruta
Misaki D Bowley
Jones O Bowley
Murillo K Saylors
Leja D Venere
Claire V Bowley
Aruna M Rim
Leja H Figeroa
Octavia G Chui
Jones B Butt
Isabel P Garufi
Leja T Dilliard
Antonio O Figeroa
Antonio Y Nestle
Murillo S Chui
Leon R Perin
Leja A Tollner
Johnson F Perin
Silvio J Figeroa
Nicolas C Ferencz
IdCountryDate
1000Spain2026-06-21
1001Brazil2026-07-18
1002Germany2026-07-10
1003Argentina2026-07-09
1004Italy2026-06-20
1005Italy2026-07-15
1006Italy2026-07-08
1007Spain2026-06-27
1008Italy2026-07-13
1009Spain2026-06-25
1010France2026-06-22
1011India2026-07-01
1012Australia2026-06-29
1013Argentina2026-06-21
1014Russia2026-07-19
1015Argentina2026-06-21
1016Russia2026-06-20
1017Russia2026-07-01
1018Australia2026-07-04
1019Japan2026-07-13
1020India2026-07-06
1021Australia2026-07-14
1022Italy2026-07-18
1023Australia2026-07-13
1024Brazil2026-07-13
1025Russia2026-06-28
1026Australia2026-06-30
1027United Kingdom2026-06-28
1028Canada2026-07-05
1029Japan2026-07-08
1030Germany2026-07-14
1031Germany2026-07-15
1032United Kingdom2026-07-16
1033Argentina2026-07-05
1034Japan2026-06-24
1035Italy2026-07-13
1036Italy2026-07-13
1037Italy2026-07-08
1038Russia2026-07-14
1039Germany2026-06-22
1040Australia2026-07-15
1041United Kingdom2026-07-17
1042Brazil2026-07-07
1043Germany2026-07-15
1044Italy2026-07-16
1045Australia2026-06-24
1046Australia2026-07-07
1047Canada2026-06-28
1048Germany2026-07-02
1049United Kingdom2026-06-26

On-Demand Data

NameIdCountryDate
Arvin Z Nicka1000Australia2026-06-23
Ashley A Figeroa1001Brazil2026-07-19
Jefferson X Dilliard1002Australia2026-07-17
Izzy D Caudy1003Argentina2026-07-03
Nicolas P Morasca1004United Kingdom2026-07-06
Nicolas D Caldarera1005Brazil2026-07-13
Stacey T Marrier1006Brazil2026-06-24
Ashley C Chui1007Canada2026-07-12
Maria D Dilliard1008India2026-07-10
Cody W Nicka1009Germany2026-06-21
Ricardo W Vocelka1010Germany2026-07-02
Francesco E Garufi1011Australia2026-07-18
Jones P Shinko1012United Kingdom2026-06-26
Costa G Campain1013Germany2026-07-04
Stacey C Ruta1014Spain2026-06-24
Jeanfrancois T Paprocki1015India2026-06-30
Adams R Bowley1016Australia2026-07-01
Octavia B Kusko1017Canada2026-07-15
Munro E Albares1018Brazil2026-06-27
Izzy S Briddick1019Germany2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer A StockhamArgentinaAmy Elsner RENEWAL
Aruna A GlickBrazilOnyama Limba NEW
Juan T InouyeIndiaElwin Sharvill NEGOTIATION
Faith H FigeroaArgentinaAnna Fali NEW
Costa O RutaIndiaIoni Bowcher PROPOSAL
Izzy X KuskoIndiaIvan Magalhaes UNQUALIFIED
Aditya S BowleyBrazilAsiya Javayant QUALIFIED
Tony G ChuiUnited KingdomXuxue Feng QUALIFIED
Aika X SaylorsRussiaStephen Shaw NEGOTIATION
James V StockhamJapanAmy Elsner NEW
Costa L IturbideBrazilXuxue Feng QUALIFIED
Costa U BriddickRussiaXuxue Feng PROPOSAL
Johnson I RoysterBrazilAsiya Javayant PROPOSAL
Smith X WieserRussiaAnna Fali NEW
Jeanfrancois R SergiGermanyAsiya Javayant UNQUALIFIED
Alejandro J PaprockiIndiaOnyama Limba RENEWAL
Leon U GauchoSpainAmy Elsner QUALIFIED
Jones G AlbaresAustraliaAsiya Javayant NEW
Aditya L InouyeGermanyXuxue Feng PROPOSAL
Alejandro U CaldareraArgentinaAsiya Javayant QUALIFIED
Salvatore M RimArgentinaElwin Sharvill NEW
Emily H MaletSpainXuxue Feng PROPOSAL
Murillo J RoysterRussiaOnyama Limba PROPOSAL
Clifford Q FollerUnited KingdomIoni Bowcher QUALIFIED
Isabel L SchemmerJapanIvan Magalhaes NEGOTIATION
Misaki B GauchoRussiaIvan Magalhaes UNQUALIFIED
Octavia X WaycottGermanyIoni Bowcher RENEWAL
Misaki F WieserIndiaIvan Magalhaes PROPOSAL
Mayumi M GillianRussiaAsiya Javayant QUALIFIED
Aika B CaldareraBrazilElwin Sharvill PROPOSAL
Aruna H FigeroaJapanBernardo Dominic RENEWAL
Maria H RutaJapanIvan Magalhaes QUALIFIED
Darci Y SlusarskiUnited KingdomIoni Bowcher NEW
Octavia L BowleySpainElwin Sharvill RENEWAL
Smith E ButtCanadaAsiya Javayant NEW
Arvin U CaldareraItalyStephen Shaw UNQUALIFIED
Leon C InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Ivar R PaprockiAustraliaAsiya Javayant QUALIFIED
Octavia I AlbaresItalyAmy Elsner UNQUALIFIED
Izzy O NestleFranceElwin Sharvill 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>