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 Y BowleyFranceXuxue Feng NEGOTIATION
Aika Q PerinGermanyElwin Sharvill RENEWAL
Emily Q OstroskyGermanyAnna Fali RENEWAL
Julie C ChuiJapanElwin Sharvill RENEWAL
Izzy D GauchoRussiaAnna Fali RENEWAL
Clifford F BologniaBrazilElwin Sharvill NEW
Kaitlin D RulapaughJapanAsiya Javayant PROPOSAL
Antonio D GlickJapanElwin Sharvill NEGOTIATION
David G PaprockiRussiaXuxue Feng PROPOSAL
Smith Q CampainAustraliaAsiya Javayant RENEWAL
Sinclair L PerinJapanAnna Fali NEGOTIATION
Aruna T ChuiCanadaXuxue Feng RENEWAL
Aruna F GauchoJapanStephen Shaw PROPOSAL
David D NestleCanadaAmy Elsner UNQUALIFIED
Leon F MacleadRussiaIvan Magalhaes NEGOTIATION
Alejandro D OstroskyArgentinaIvan Magalhaes QUALIFIED
Stacey D KuskoCanadaIoni Bowcher PROPOSAL
Munro U TollnerAustraliaXuxue Feng RENEWAL
Ricardo Q GarufiBrazilAmy Elsner NEGOTIATION
Morrow L CaudyJapanIoni Bowcher UNQUALIFIED
Clifford Y IturbideItalyElwin Sharvill PROPOSAL
Octavia B PerinFranceIoni Bowcher QUALIFIED
Clifford A AmigonFranceXuxue Feng NEW
Greenwood Q CaldareraJapanOnyama Limba NEGOTIATION
Isabel T NestleArgentinaStephen Shaw PROPOSAL
Jones G DilliardSpainAsiya Javayant UNQUALIFIED
Chavez N CaudyItalyBernardo Dominic RENEWAL
Cody K RimItalyAnna Fali NEW
Smith I ChuiItalyBernardo Dominic QUALIFIED
Maria K DilliardBrazilAmy Elsner QUALIFIED
Chavez J BriddickCanadaElwin Sharvill QUALIFIED
Leon H CaudyItalyAnna Fali NEGOTIATION
Rodrigues F BriddickGermanyAsiya Javayant QUALIFIED
Jennifer Y FigeroaRussiaOnyama Limba UNQUALIFIED
Leja J VocelkaAustraliaIoni Bowcher UNQUALIFIED
Julie E DilliardSpainAnna Fali RENEWAL
Chavez M CampainCanadaIoni Bowcher NEGOTIATION
Kadeem A WieserArgentinaIvan Magalhaes NEGOTIATION
Alejandro A GillianSpainAmy Elsner QUALIFIED
Ashley M MarrierIndiaIoni Bowcher PROPOSAL
Costa E AlbaresGermanyStephen Shaw NEW
Maisha N BologniaIndiaAnna Fali QUALIFIED
Izzy W MorascaGermanyElwin Sharvill NEGOTIATION
Stacey W SergiUnited KingdomAmy Elsner RENEWAL
Leja N GillianAustraliaXuxue Feng PROPOSAL
James C FollerUnited KingdomOnyama Limba NEGOTIATION
Ashley S NestleGermanyIvan Magalhaes PROPOSAL
Johnson P FollerFranceAsiya Javayant QUALIFIED
Greenwood E RutaIndiaAmy Elsner NEW
Chavez P SchemmerUnited KingdomAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo B OstroskyBrazilBernardo Dominic UNQUALIFIED
Morrow H WieserIndiaStephen Shaw PROPOSAL
Kadeem Z VocelkaBrazilXuxue Feng PROPOSAL
Clifford F TollnerSpainIvan Magalhaes NEW
Stacey U CampainCanadaOnyama Limba RENEWAL
Maria H CampainFranceOnyama Limba QUALIFIED
Leja D MorascaArgentinaIoni Bowcher PROPOSAL
Arvin W SlusarskiJapanIvan Magalhaes PROPOSAL
Izzy H FerenczFranceBernardo Dominic PROPOSAL
Ivar T IturbideRussiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith T FollerJapan2026-08-08Feiner Bros PROPOSAL48Anna Fali
1001Claire A PaprockiAustralia2026-07-21Morlong Associates RENEWAL98Anna Fali
1002Jefferson Y FlosiRussia2026-08-10Commercial Press NEGOTIATION49Amy Elsner
1003Silvio B InouyeUnited Kingdom2026-07-23Morlong Associates NEW96Xuxue Feng
1004Clifford D GarufiIndia2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED87Amy Elsner
1005Tony I CaldareraArgentina2026-08-13Morlong Associates UNQUALIFIED14Ivan Magalhaes
1006Ivar I FlosiGermany2026-08-13Chanay, Jeffrey A Esq PROPOSAL7Amy Elsner
1007Cody Z RimGermany2026-08-04Truhlar And Truhlar Attys QUALIFIED17Asiya Javayant
1008Faith A FollerArgentina2026-07-22Commercial Press PROPOSAL65Asiya Javayant
1009Juan E PaprockiFrance2026-08-03Dorl, James J Esq PROPOSAL90Asiya Javayant
1010Johnson Q KolmetzItaly2026-08-04Dorl, James J Esq NEW53Amy Elsner
1011Leja F DilliardRussia2026-07-24Benton, John B Jr RENEWAL13Xuxue Feng
1012Mujtaba A InouyeUnited Kingdom2026-08-10King, Christopher A Esq NEW85Amy Elsner
1013Jefferson X ChuiJapan2026-08-02Feltz Printing Service RENEWAL57Onyama Limba
1014Octavia P OstroskyBrazil2026-08-09Feltz Printing Service PROPOSAL82Amy Elsner
1015Claire X ButtRussia2026-07-23King, Christopher A Esq NEGOTIATION37Ioni Bowcher
1016James W GillianUnited Kingdom2026-08-06Chemel, James L Cpa NEW5Anna Fali
1017Sinclair G InouyeJapan2026-08-04Chapman, Ross E Esq NEW32Ioni Bowcher
1018Tony F AmigonAustralia2026-08-07Commercial Press PROPOSAL33Onyama Limba
1019Francesco Q MaletRussia2026-08-10Benton, John B Jr QUALIFIED64Ivan Magalhaes
1020Izzy C ChuiFrance2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED63Anna Fali
1021Leja M WaycottAustralia2026-08-08Chanay, Jeffrey A Esq PROPOSAL34Asiya Javayant
1022Izzy X CaldareraJapan2026-07-23Commercial Press NEW9Anna Fali
1023Adams L VocelkaAustralia2026-08-03Chemel, James L Cpa UNQUALIFIED96Anna Fali
1024Wickens S CampainUnited Kingdom2026-07-19Benton, John B Jr PROPOSAL78Ivan Magalhaes
1025Sinclair Y RutaJapan2026-07-30Rangoni Of Florence NEGOTIATION70Onyama Limba
1026Leon K VocelkaSpain2026-07-28Rousseaux, Michael Esq QUALIFIED4Stephen Shaw
1027Octavia S ShinkoBrazil2026-07-15Buckley Miller Wright PROPOSAL78Elwin Sharvill
1028Jeanfrancois V KolmetzBrazil2026-07-26King, Christopher A Esq UNQUALIFIED57Xuxue Feng
1029Salvatore I TollnerAustralia2026-08-04Morlong Associates PROPOSAL15Anna Fali
1030Sinclair Y InouyeArgentina2026-07-23Rangoni Of Florence NEW65Ioni Bowcher
1031Kadeem N GauchoJapan2026-08-11Morlong Associates QUALIFIED25Anna Fali
1032Cody V MaletUnited Kingdom2026-07-27Rangoni Of Florence NEGOTIATION79Elwin Sharvill
1033Aruna B AmigonFrance2026-08-07Truhlar And Truhlar Attys UNQUALIFIED44Anna Fali
1034Costa G VenereAustralia2026-07-17Benton, John B Jr UNQUALIFIED18Anna Fali
1035Aruna N SchemmerGermany2026-07-30Commercial Press PROPOSAL40Amy Elsner
1036Darci S SaylorsCanada2026-08-04Printing Dimensions RENEWAL10Asiya Javayant
1037Tony Y CampainItaly2026-07-30Chapman, Ross E Esq UNQUALIFIED41Xuxue Feng
1038Leon X WaycottIndia2026-07-29Feltz Printing Service QUALIFIED31Xuxue Feng
1039Aruna M GauchoIndia2026-07-22Benton, John B Jr QUALIFIED48Stephen Shaw
1040Aruna F KolmetzItaly2026-07-25Chemel, James L Cpa RENEWAL39Anna Fali
1041Kadeem W PoquetteItaly2026-08-05Dorl, James J Esq QUALIFIED24Xuxue Feng
1042Maria Z DoeBrazil2026-08-13Rousseaux, Michael Esq QUALIFIED66Amy Elsner
1043Ivar J TollnerGermany2026-08-12Dorl, James J Esq RENEWAL62Onyama Limba
1044Izzy P VocelkaArgentina2026-07-28Feiner Bros NEW6Ivan Magalhaes
1045Jones G MarrierItaly2026-07-24Chapman, Ross E Esq RENEWAL27Ioni Bowcher
1046Jefferson M RimAustralia2026-07-18Printing Dimensions PROPOSAL91Anna Fali
1047Salvatore Y FerenczArgentina2026-08-02Chanay, Jeffrey A Esq PROPOSAL77Asiya Javayant
1048Munro H StockhamCanada2026-07-19Morlong Associates UNQUALIFIED94Elwin Sharvill
1049Jeanfrancois Q BriddickJapan2026-08-10Chapman, Ross E Esq NEGOTIATION83Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Antonio Z GillianSpainStephen Shaw PROPOSAL
Jeanfrancois M FlosiCanadaElwin Sharvill NEW
Aditya D NestleArgentinaIvan Magalhaes QUALIFIED
Kaitlin X RimArgentinaXuxue Feng UNQUALIFIED
James G BowleyRussiaAsiya Javayant PROPOSAL
Murillo J GillianRussiaStephen Shaw NEW
Deepesh E PaprockiArgentinaBernardo Dominic QUALIFIED
Costa W WhobreyBrazilAmy Elsner RENEWAL
Arvin Z PerinArgentinaXuxue Feng QUALIFIED
Tony T PoquetteCanadaElwin Sharvill NEGOTIATION
Costa T FlosiUnited KingdomAsiya Javayant NEGOTIATION
Nicolas F MaletGermanyXuxue Feng RENEWAL
Sinclair F MorascaGermanyXuxue Feng PROPOSAL
Silvio A BowleyIndiaAnna Fali RENEWAL
Antonio F RimIndiaStephen Shaw NEGOTIATION
Arvin G RutaGermanyAsiya Javayant NEW
Deepesh R NestleFranceAsiya Javayant NEW
Aditya R ButtItalyIvan Magalhaes QUALIFIED
Francesco M DilliardCanadaAmy Elsner RENEWAL
Greenwood R StensethSpainStephen Shaw NEGOTIATION
Julie S VocelkaRussiaAmy Elsner NEGOTIATION
Isabel E GillianBrazilAsiya Javayant NEGOTIATION
Aika V SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Leon F RoysterItalyElwin Sharvill PROPOSAL
Maria Q TollnerCanadaElwin Sharvill NEGOTIATION
Darci M DarakjyJapanAsiya Javayant PROPOSAL
Johnson A StensethJapanIoni Bowcher UNQUALIFIED
Jeanfrancois P ShinkoItalyAnna Fali QUALIFIED
Jennifer U PerinIndiaIoni Bowcher PROPOSAL
Adams C BowleyUnited KingdomElwin Sharvill NEGOTIATION
Adams K KolmetzFranceStephen Shaw NEW
Antonio Y NestleRussiaAnna Fali NEGOTIATION
Juan G TollnerArgentinaAsiya Javayant RENEWAL
Jefferson R AmigonGermanyStephen Shaw NEW
Ricardo S GauchoRussiaOnyama Limba NEGOTIATION
Francesco O WhobreyArgentinaBernardo Dominic UNQUALIFIED
Mujtaba A RimArgentinaAmy Elsner RENEWAL
Mujtaba E StensethCanadaAnna Fali PROPOSAL
Izzy E ShinkoRussiaIoni Bowcher QUALIFIED
Emily V MaletArgentinaAmy Elsner NEGOTIATION
Aruna I ShinkoAustraliaStephen Shaw RENEWAL
Murillo S FlosiItalyAmy Elsner NEW
Costa U WieserFranceAsiya Javayant PROPOSAL
Aika V MaletAustraliaXuxue Feng RENEWAL
Antonio E MorascaItalyElwin Sharvill QUALIFIED
Jeanfrancois N SlusarskiFranceIvan Magalhaes RENEWAL
Sinclair T CaudyFranceAnna Fali RENEWAL
Mayumi M TollnerGermanyElwin Sharvill UNQUALIFIED
Maisha C ButtIndiaOnyama Limba NEW
Isabel B RulapaughIndiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Misaki Z Butt
Chavez Z Whobrey
Wickens K Sergi
Kadeem V Caldarera
Julie U Schemmer
Aika B Nicka
Deepesh C Schemmer
Sinclair V Venere
Rodrigues X Venere
Claire X Figeroa
Julie D Perin
Julie W Briddick
Cody F Morasca
Jefferson S Amigon
Greenwood O Wieser
Ashley F Gaucho
Jeanfrancois Z Caudy
Kaitlin V Figeroa
Juan T Chui
Julie M Glick
Leja E Nicka
Mujtaba L Nicka
Mujtaba X Nicka
Salvatore B Nicka
Nicolas T Schemmer
Costa P Malet
Rodrigues N Doe
Isabel X Flosi
Rodrigues H Caudy
Francesco S Slusarski
Deepesh D Bolognia
David Q Malet
James L Foller
Smith V Dilliard
Morrow I Vocelka
Leja I Whobrey
Cody G Shinko
Jennifer G Oldroyd
Aruna S Slusarski
Claire L Stockham
Adams X Campain
Octavia U Shinko
Munro B Waycott
Francesco Q Dilliard
Izzy J Kolmetz
Antonio P Iturbide
Johnson W Garufi
Costa A Royster
Darci G Briddick
Adams Y Iturbide
IdCountryDate
1000Italy2026-07-16
1001Australia2026-08-09
1002Russia2026-08-05
1003Germany2026-07-20
1004Germany2026-08-03
1005India2026-07-27
1006Spain2026-07-24
1007Canada2026-08-01
1008Canada2026-07-17
1009Canada2026-07-19
1010United Kingdom2026-07-21
1011India2026-07-16
1012Japan2026-07-26
1013Canada2026-08-13
1014Russia2026-08-02
1015Italy2026-08-08
1016United Kingdom2026-07-31
1017United Kingdom2026-08-13
1018Russia2026-08-05
1019Russia2026-07-27
1020Russia2026-08-03
1021United Kingdom2026-08-09
1022Japan2026-07-16
1023France2026-07-24
1024Brazil2026-08-08
1025United Kingdom2026-08-11
1026Argentina2026-08-04
1027Argentina2026-08-12
1028Canada2026-08-08
1029United Kingdom2026-08-13
1030Australia2026-08-06
1031France2026-07-29
1032Australia2026-08-13
1033France2026-07-30
1034Brazil2026-08-08
1035Japan2026-07-20
1036Germany2026-08-12
1037Russia2026-08-06
1038Italy2026-07-15
1039Brazil2026-08-11
1040India2026-08-06
1041United Kingdom2026-08-11
1042Russia2026-08-12
1043Germany2026-08-05
1044United Kingdom2026-08-05
1045Spain2026-07-27
1046Argentina2026-08-12
1047Argentina2026-07-16
1048Italy2026-08-07
1049Germany2026-08-05

On-Demand Data

NameIdCountryDate
Francesco K Ostrosky1000Spain2026-07-23
Clifford C Chui1001Germany2026-07-24
James I Royster1002Japan2026-08-05
Chavez O Poquette1003United Kingdom2026-07-18
Mayumi F Royster1004Argentina2026-07-20
Smith S Wieser1005Russia2026-07-25
Wickens V Tollner1006Italy2026-08-06
Maisha W Tollner1007Argentina2026-07-23
Maisha L Flosi1008Spain2026-07-19
Ricardo Z Schemmer1009Spain2026-08-03
Jeanfrancois P Slusarski1010Germany2026-07-24
Kadeem H Kolmetz1011Canada2026-07-27
Kadeem N Ferencz1012Argentina2026-07-21
Francesco U Nestle1013Canada2026-07-18
Aruna E Garufi1014Canada2026-08-01
Maisha E Waycott1015Canada2026-07-17
Munro R Stockham1016Italy2026-07-29
Deepesh N Figeroa1017Australia2026-08-05
Maria V Waycott1018Italy2026-08-06
Stacey W Perin1019Italy2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez N OstroskyRussiaBernardo Dominic RENEWAL
Darci P SlusarskiFranceAmy Elsner NEW
Smith D WaycottAustraliaAnna Fali NEGOTIATION
Adams O KuskoSpainAsiya Javayant NEW
Costa H MorascaGermanyStephen Shaw QUALIFIED
James P MorascaCanadaAnna Fali RENEWAL
Ivar P SlusarskiArgentinaIoni Bowcher RENEWAL
Darci C CampainSpainElwin Sharvill QUALIFIED
Alejandro J PoquetteArgentinaAsiya Javayant NEGOTIATION
Darci V WhobreyCanadaOnyama Limba RENEWAL
Maria E AmigonAustraliaAsiya Javayant QUALIFIED
Silvio B VenereCanadaOnyama Limba NEW
Morrow S SchemmerIndiaAmy Elsner NEW
Leon N PoquetteFranceAmy Elsner NEGOTIATION
Deepesh A AmigonFranceOnyama Limba PROPOSAL
Stacey U BowleySpainOnyama Limba PROPOSAL
Jefferson B KuskoAustraliaOnyama Limba UNQUALIFIED
Adams K KolmetzSpainIvan Magalhaes QUALIFIED
Maisha S MorascaUnited KingdomAmy Elsner PROPOSAL
Tony N PoquetteRussiaOnyama Limba NEW
Aika E TollnerItalyIvan Magalhaes RENEWAL
Ashley C CampainAustraliaOnyama Limba RENEWAL
Alejandro F BologniaCanadaXuxue Feng NEW
Murillo P TollnerRussiaXuxue Feng QUALIFIED
Deepesh Z SaylorsRussiaElwin Sharvill UNQUALIFIED
Johnson R BriddickFranceBernardo Dominic RENEWAL
Ashley B PaprockiBrazilElwin Sharvill NEW
Octavia L IturbideUnited KingdomElwin Sharvill QUALIFIED
Antonio O FlosiBrazilBernardo Dominic NEGOTIATION
Sinclair V NestleCanadaAnna Fali NEGOTIATION
Aditya N CaldareraCanadaXuxue Feng RENEWAL
Jennifer D FlosiGermanyOnyama Limba PROPOSAL
Kaitlin J MaletFranceAnna Fali RENEWAL
Smith G SchemmerFranceXuxue Feng UNQUALIFIED
Deepesh K NickaIndiaIoni Bowcher RENEWAL
Greenwood X SlusarskiRussiaIoni Bowcher RENEWAL
Octavia Q GlickItalyIoni Bowcher NEGOTIATION
Jones T StensethBrazilAmy Elsner RENEWAL
Johnson S FerenczFranceXuxue Feng NEW
Morrow Y AmigonGermanyXuxue 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>