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
Claire O WhobreyCanadaOnyama Limba PROPOSAL
Darci R ChuiItalyElwin Sharvill RENEWAL
Tony C StensethSpainAsiya Javayant NEW
Rodrigues B CaldareraJapanAmy Elsner NEW
Adams U VenereArgentinaIoni Bowcher NEW
Octavia N ChuiAustraliaIoni Bowcher UNQUALIFIED
Salvatore P TollnerFranceIvan Magalhaes NEW
Costa I RoysterRussiaBernardo Dominic NEGOTIATION
Leja Y MaletUnited KingdomOnyama Limba PROPOSAL
Arvin P ChuiArgentinaBernardo Dominic QUALIFIED
Munro S MacleadSpainElwin Sharvill PROPOSAL
Ashley D MarrierAustraliaStephen Shaw QUALIFIED
David V MaletJapanAsiya Javayant NEW
Faith P WhobreyUnited KingdomXuxue Feng NEGOTIATION
Stacey I DoeArgentinaXuxue Feng RENEWAL
Jones R StockhamArgentinaIvan Magalhaes UNQUALIFIED
Antonio H GlickCanadaAnna Fali PROPOSAL
Johnson O SlusarskiGermanyAsiya Javayant NEW
Aika P GlickJapanAnna Fali PROPOSAL
Johnson D PoquetteFranceAmy Elsner NEW
Salvatore D ShinkoSpainElwin Sharvill NEGOTIATION
Kaitlin P SlusarskiFranceBernardo Dominic QUALIFIED
Clifford E StockhamJapanElwin Sharvill QUALIFIED
Aruna C MorascaBrazilAmy Elsner NEW
Aika N ButtIndiaBernardo Dominic QUALIFIED
Ivar B NestleFranceStephen Shaw NEGOTIATION
Salvatore W FlosiGermanyAmy Elsner RENEWAL
Rodrigues X WaycottUnited KingdomElwin Sharvill PROPOSAL
Antonio P PerinJapanIoni Bowcher RENEWAL
Ashley I WhobreyAustraliaBernardo Dominic QUALIFIED
Munro H ChuiCanadaXuxue Feng NEW
Claire K MarrierBrazilBernardo Dominic UNQUALIFIED
Johnson E DarakjyBrazilAsiya Javayant NEW
Jones S PaprockiUnited KingdomStephen Shaw PROPOSAL
Mayumi E MacleadRussiaOnyama Limba NEGOTIATION
Leja D CaudyCanadaBernardo Dominic UNQUALIFIED
Chavez J AlbaresSpainIvan Magalhaes NEGOTIATION
Francesco U RimItalyIoni Bowcher NEW
Cody V ChuiRussiaStephen Shaw PROPOSAL
Ashley G FigeroaRussiaAnna Fali RENEWAL
David O SlusarskiRussiaOnyama Limba QUALIFIED
Isabel P MaletCanadaBernardo Dominic NEW
Deepesh W SaylorsAustraliaOnyama Limba RENEWAL
Jefferson I GauchoIndiaElwin Sharvill QUALIFIED
James B WhobreySpainAsiya Javayant NEGOTIATION
James N CaldareraArgentinaAsiya Javayant UNQUALIFIED
Mayumi A FollerUnited KingdomBernardo Dominic NEW
Stacey J MacleadAustraliaIoni Bowcher NEW
Chavez T BowleyUnited KingdomOnyama Limba QUALIFIED
Maria Z MaletFranceXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson R NestleJapanAsiya Javayant PROPOSAL
Aika B ShinkoAustraliaXuxue Feng NEW
Jennifer R InouyeSpainElwin Sharvill PROPOSAL
Rodrigues O KolmetzCanadaIoni Bowcher PROPOSAL
Octavia O NestleIndiaAmy Elsner NEGOTIATION
Greenwood T SlusarskiItalyAnna Fali PROPOSAL
Leja F VocelkaArgentinaIvan Magalhaes QUALIFIED
Faith Y PaprockiBrazilIoni Bowcher UNQUALIFIED
Aditya B GarufiUnited KingdomAsiya Javayant RENEWAL
Kaitlin S AmigonItalyIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James V WaycottGermany2026-07-04Morlong Associates PROPOSAL51Xuxue Feng
1001Jones U MarrierSpain2026-07-02Feiner Bros UNQUALIFIED14Onyama Limba
1002Jefferson P PaprockiUnited Kingdom2026-07-24Commercial Press PROPOSAL51Ioni Bowcher
1003Tony T ButtAustralia2026-07-09Rousseaux, Michael Esq NEGOTIATION61Bernardo Dominic
1004Aditya A RimFrance2026-07-23Chemel, James L Cpa RENEWAL65Ioni Bowcher
1005Alejandro M SergiBrazil2026-07-26Commercial Press NEGOTIATION1Anna Fali
1006Salvatore F GlickGermany2026-07-29Commercial Press PROPOSAL79Ivan Magalhaes
1007Izzy N VocelkaCanada2026-07-23Dorl, James J Esq QUALIFIED98Anna Fali
1008Maria E KuskoUnited Kingdom2026-07-05Chapman, Ross E Esq NEGOTIATION30Ivan Magalhaes
1009Aruna B OldroydArgentina2026-07-24Rousseaux, Michael Esq NEW76Onyama Limba
1010Jennifer Y WaycottRussia2026-07-21Morlong Associates NEGOTIATION21Bernardo Dominic
1011Rodrigues Z ButtCanada2026-07-07Benton, John B Jr RENEWAL24Onyama Limba
1012Aika A FollerCanada2026-07-27Chemel, James L Cpa NEGOTIATION51Elwin Sharvill
1013Sinclair H IturbideArgentina2026-07-10Benton, John B Jr NEGOTIATION59Asiya Javayant
1014Kadeem Y CaudySpain2026-07-24Printing Dimensions UNQUALIFIED6Asiya Javayant
1015Rodrigues T BowleyFrance2026-07-07Dorl, James J Esq UNQUALIFIED91Onyama Limba
1016Cody M DarakjyFrance2026-07-27Printing Dimensions QUALIFIED83Ioni Bowcher
1017Mujtaba W RutaIndia2026-07-01Truhlar And Truhlar Attys RENEWAL60Elwin Sharvill
1018Jones G WaycottBrazil2026-07-09Dorl, James J Esq UNQUALIFIED50Stephen Shaw
1019Chavez X SaylorsBrazil2026-07-14Buckley Miller Wright UNQUALIFIED41Onyama Limba
1020Salvatore G VenereBrazil2026-07-29Chapman, Ross E Esq RENEWAL4Ivan Magalhaes
1021Salvatore B OldroydJapan2026-07-25Benton, John B Jr QUALIFIED55Stephen Shaw
1022Adams V FollerIndia2026-07-05Buckley Miller Wright NEW79Ioni Bowcher
1023Darci N TollnerRussia2026-07-11Rousseaux, Michael Esq QUALIFIED68Xuxue Feng
1024Jones N GarufiCanada2026-07-11Chanay, Jeffrey A Esq QUALIFIED30Ioni Bowcher
1025Misaki C NickaSpain2026-07-12Morlong Associates RENEWAL13Elwin Sharvill
1026Jennifer J SlusarskiCanada2026-07-04Dorl, James J Esq NEW35Anna Fali
1027Deepesh S FerenczArgentina2026-07-01King, Christopher A Esq PROPOSAL91Ioni Bowcher
1028Smith E GlickBrazil2026-07-03King, Christopher A Esq NEGOTIATION39Ioni Bowcher
1029Wickens O StensethJapan2026-07-08Chapman, Ross E Esq RENEWAL81Xuxue Feng
1030Munro H PoquetteRussia2026-07-12Buckley Miller Wright QUALIFIED66Bernardo Dominic
1031Greenwood R MarrierFrance2026-07-27Commercial Press NEW70Ivan Magalhaes
1032Chavez J GauchoAustralia2026-07-02Truhlar And Truhlar Attys PROPOSAL26Amy Elsner
1033Murillo D AmigonAustralia2026-07-30Feiner Bros NEGOTIATION51Ivan Magalhaes
1034Jennifer B AmigonSpain2026-07-03Feiner Bros PROPOSAL70Anna Fali
1035Kadeem F ShinkoGermany2026-07-09Commercial Press RENEWAL90Amy Elsner
1036Misaki R RulapaughCanada2026-07-21Feltz Printing Service QUALIFIED7Amy Elsner
1037Jefferson A OldroydGermany2026-07-16Feiner Bros NEW31Ivan Magalhaes
1038Darci V StensethGermany2026-07-04Benton, John B Jr PROPOSAL58Ioni Bowcher
1039Antonio N NickaAustralia2026-07-06Dorl, James J Esq NEGOTIATION58Ioni Bowcher
1040Tony F TollnerItaly2026-07-16Chapman, Ross E Esq PROPOSAL29Ivan Magalhaes
1041Maisha S FollerRussia2026-07-16Chemel, James L Cpa RENEWAL44Ivan Magalhaes
1042Greenwood H SergiBrazil2026-07-22Rousseaux, Michael Esq NEGOTIATION70Asiya Javayant
1043Maisha B StensethJapan2026-07-14Feltz Printing Service NEW68Onyama Limba
1044Aika W StockhamItaly2026-07-15Dorl, James J Esq NEW61Asiya Javayant
1045Munro Z MarrierSpain2026-07-17Dorl, James J Esq PROPOSAL33Bernardo Dominic
1046Murillo O MorascaUnited Kingdom2026-07-23Buckley Miller Wright UNQUALIFIED78Xuxue Feng
1047Alejandro Q DoeIndia2026-07-21Rousseaux, Michael Esq NEW84Elwin Sharvill
1048Aditya G MorascaRussia2026-07-02Benton, John B Jr NEGOTIATION52Onyama Limba
1049Juan L IturbideGermany2026-07-27Chemel, James L Cpa UNQUALIFIED74Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Greenwood H GarufiItalyIvan Magalhaes QUALIFIED
Antonio D CaudyCanadaAnna Fali QUALIFIED
David A WhobreyCanadaIoni Bowcher PROPOSAL
Maria C AmigonSpainBernardo Dominic PROPOSAL
Stacey I KolmetzFranceOnyama Limba UNQUALIFIED
Johnson D MacleadAustraliaIvan Magalhaes UNQUALIFIED
Claire R RimGermanyAmy Elsner UNQUALIFIED
Deepesh S AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Costa J BologniaCanadaIvan Magalhaes QUALIFIED
Sinclair S GillianIndiaXuxue Feng NEW
Maisha A GillianCanadaAnna Fali NEW
Morrow G OldroydAustraliaOnyama Limba NEW
Aditya K FigeroaItalyStephen Shaw QUALIFIED
Ivar Y KolmetzIndiaXuxue Feng NEW
Morrow L TollnerSpainBernardo Dominic NEGOTIATION
Jefferson S VenereRussiaXuxue Feng PROPOSAL
David A BriddickGermanyStephen Shaw QUALIFIED
Morrow F WaycottFranceAmy Elsner RENEWAL
David U AmigonRussiaIvan Magalhaes NEGOTIATION
Salvatore H FlosiItalyAnna Fali NEGOTIATION
Sinclair D OldroydUnited KingdomAnna Fali NEW
Alejandro G CaldareraJapanAnna Fali QUALIFIED
Ashley H StensethIndiaAsiya Javayant NEGOTIATION
Ashley V TollnerCanadaElwin Sharvill NEW
Rodrigues O GauchoFranceIvan Magalhaes PROPOSAL
Kaitlin C GillianGermanyIoni Bowcher QUALIFIED
Nicolas B VocelkaAustraliaElwin Sharvill PROPOSAL
Aika P RoysterRussiaBernardo Dominic UNQUALIFIED
Maisha W GarufiGermanyStephen Shaw NEGOTIATION
Clifford K SchemmerRussiaAsiya Javayant UNQUALIFIED
Aditya N VenereJapanOnyama Limba PROPOSAL
Darci F CaudyGermanyAmy Elsner NEW
Izzy E RoysterFranceIvan Magalhaes RENEWAL
Murillo B PoquetteJapanAsiya Javayant NEGOTIATION
Cody A SchemmerAustraliaAsiya Javayant NEW
Octavia Z SaylorsItalyIvan Magalhaes UNQUALIFIED
Emily Y FigeroaArgentinaIvan Magalhaes RENEWAL
Johnson U PerinUnited KingdomIoni Bowcher RENEWAL
Clifford K FerenczArgentinaAmy Elsner NEW
Greenwood U AmigonCanadaAmy Elsner NEW
Julie O RoysterUnited KingdomElwin Sharvill NEW
Aditya P ShinkoItalyIvan Magalhaes UNQUALIFIED
Mayumi R DilliardSpainBernardo Dominic NEGOTIATION
Jeanfrancois L VocelkaIndiaIvan Magalhaes NEW
Ricardo R SlusarskiJapanAnna Fali QUALIFIED
Octavia C SlusarskiIndiaIoni Bowcher PROPOSAL
Kaitlin T OstroskyBrazilElwin Sharvill UNQUALIFIED
Nicolas S SchemmerIndiaAnna Fali UNQUALIFIED
Leon K TollnerAustraliaAmy Elsner RENEWAL
Stacey J TollnerUnited KingdomOnyama Limba RENEWAL
Frozen Columns
Name
Ashley A Schemmer
Faith C Gillian
Antonio U Gillian
Jeanfrancois R Gillian
Cody O Bolognia
Claire J Kolmetz
Aika E Stenseth
Claire R Gaucho
Sinclair T Waycott
Kadeem I Dilliard
Greenwood G Campain
Stacey A Wieser
Deepesh W Darakjy
Ivar M Glick
Munro E Shinko
Mujtaba J Morasca
Leon R Nestle
David N Ferencz
Cody U Whobrey
Wickens D Gaucho
Nicolas V Tollner
Arvin F Campain
Clifford P Tollner
Aruna X Stenseth
Sinclair K Bowley
Johnson G Poquette
Aditya W Poquette
Francesco Z Flosi
Adams X Perin
Clifford Z Whobrey
Murillo K Nestle
Chavez A Chui
Leja Q Nicka
Adams P Figeroa
Stacey A Maclead
Wickens S Sergi
Clifford G Flosi
Smith Y Rim
Kaitlin A Vocelka
Jennifer L Figeroa
Salvatore H Whobrey
Costa F Rulapaugh
Claire V Sergi
Ashley K Shinko
Stacey O Bolognia
David N Ruta
Clifford Q Wieser
Munro C Figeroa
Clifford O Nicka
Smith H Tollner
IdCountryDate
1000Argentina2026-07-08
1001India2026-07-16
1002Germany2026-07-20
1003Russia2026-07-05
1004Argentina2026-07-11
1005United Kingdom2026-07-06
1006India2026-07-11
1007Argentina2026-07-15
1008Japan2026-07-20
1009Brazil2026-07-02
1010Australia2026-07-18
1011Italy2026-07-10
1012Japan2026-07-30
1013Spain2026-07-02
1014Japan2026-07-24
1015France2026-07-30
1016Spain2026-07-20
1017Germany2026-07-07
1018France2026-07-21
1019Russia2026-07-16
1020France2026-07-29
1021Russia2026-07-26
1022India2026-07-09
1023India2026-07-16
1024Australia2026-07-29
1025Canada2026-07-27
1026Japan2026-07-01
1027Argentina2026-07-17
1028Spain2026-07-19
1029Italy2026-07-03
1030France2026-07-12
1031Germany2026-07-01
1032Germany2026-07-09
1033United Kingdom2026-07-04
1034India2026-07-07
1035Japan2026-07-01
1036India2026-07-03
1037Russia2026-07-05
1038Spain2026-07-20
1039India2026-07-23
1040United Kingdom2026-07-08
1041Spain2026-07-28
1042Germany2026-07-17
1043Canada2026-07-25
1044Brazil2026-07-15
1045Australia2026-07-11
1046Brazil2026-07-21
1047Spain2026-07-11
1048Japan2026-07-04
1049Japan2026-07-15

On-Demand Data

NameIdCountryDate
Stacey L Saylors1000India2026-07-26
Stacey U Caldarera1001Russia2026-07-12
Ivar K Nestle1002India2026-07-26
Ivar Y Briddick1003Australia2026-07-07
Leja J Campain1004India2026-07-09
Stacey A Darakjy1005Australia2026-07-18
Wickens B Darakjy1006Spain2026-07-22
Sinclair A Stenseth1007Italy2026-07-06
Darci L Caldarera1008Argentina2026-07-20
Wickens B Gillian1009United Kingdom2026-07-01
Munro C Gillian1010Germany2026-07-04
Cody H Morasca1011Spain2026-07-04
Salvatore R Briddick1012Argentina2026-07-01
Maria Y Kusko1013France2026-07-14
Aditya H Darakjy1014Russia2026-07-08
Cody F Amigon1015Russia2026-07-04
Jeanfrancois U Chui1016United Kingdom2026-07-04
Julie H Gillian1017Australia2026-07-03
Faith W Royster1018India2026-07-12
Salvatore N Paprocki1019Germany2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha O StensethUnited KingdomAnna Fali UNQUALIFIED
Faith A BologniaRussiaBernardo Dominic RENEWAL
Stacey X SaylorsJapanIoni Bowcher NEW
Jeanfrancois Q MacleadIndiaXuxue Feng NEGOTIATION
Antonio V MarrierCanadaIvan Magalhaes NEGOTIATION
Ivar A FollerIndiaAnna Fali QUALIFIED
Antonio W CaudyArgentinaXuxue Feng NEW
Aruna X GillianAustraliaAnna Fali UNQUALIFIED
Juan R RimArgentinaElwin Sharvill UNQUALIFIED
David A ShinkoRussiaAnna Fali UNQUALIFIED
Clifford E DarakjyRussiaStephen Shaw NEW
Cody Z KuskoFranceBernardo Dominic QUALIFIED
Tony S RutaArgentinaElwin Sharvill NEGOTIATION
Johnson B DarakjyRussiaBernardo Dominic QUALIFIED
Mujtaba Y DilliardRussiaStephen Shaw QUALIFIED
Kaitlin C DilliardAustraliaXuxue Feng NEGOTIATION
Jefferson V RulapaughUnited KingdomAnna Fali RENEWAL
Morrow Y KuskoIndiaIvan Magalhaes PROPOSAL
Silvio J WhobreySpainXuxue Feng NEGOTIATION
Chavez H MaletFranceIvan Magalhaes NEW
Ashley Y FerenczIndiaBernardo Dominic UNQUALIFIED
Leon R FollerCanadaXuxue Feng UNQUALIFIED
Mujtaba S FollerAustraliaAnna Fali PROPOSAL
Morrow E OstroskyUnited KingdomIvan Magalhaes NEW
Chavez C VenereAustraliaXuxue Feng NEGOTIATION
Kadeem J CampainUnited KingdomAmy Elsner NEW
Kadeem W OstroskyAustraliaAmy Elsner QUALIFIED
Misaki A SaylorsCanadaElwin Sharvill NEGOTIATION
Johnson C VenereItalyXuxue Feng UNQUALIFIED
Aika W OstroskyUnited KingdomAnna Fali QUALIFIED
Greenwood L PerinSpainAnna Fali RENEWAL
Isabel T BowleyGermanyElwin Sharvill NEGOTIATION
Jefferson H NickaIndiaAnna Fali NEW
Isabel E CampainCanadaOnyama Limba NEW
Mayumi B AlbaresSpainBernardo Dominic NEW
Claire H OstroskyGermanyStephen Shaw PROPOSAL
Isabel H WieserItalyIoni Bowcher NEGOTIATION
Emily T NickaAustraliaAsiya Javayant RENEWAL
Jefferson B ButtRussiaIvan Magalhaes NEGOTIATION
Morrow Y StockhamUnited KingdomAmy Elsner 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>