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
Kadeem H MarrierRussiaBernardo Dominic NEGOTIATION
Morrow P WhobreyJapanAnna Fali UNQUALIFIED
Wickens X AlbaresBrazilAnna Fali NEW
Kaitlin M RimItalyXuxue Feng PROPOSAL
Octavia K GarufiIndiaAsiya Javayant NEGOTIATION
Maisha X OldroydGermanyAsiya Javayant NEW
Maisha O OstroskyRussiaElwin Sharvill PROPOSAL
Faith J MaletAustraliaBernardo Dominic NEW
Chavez I ChuiIndiaAmy Elsner NEW
Isabel U ButtBrazilAnna Fali PROPOSAL
Sinclair D SlusarskiSpainIoni Bowcher PROPOSAL
Silvio K VocelkaGermanyStephen Shaw NEGOTIATION
Aika R BriddickItalyAsiya Javayant RENEWAL
Smith F PerinRussiaXuxue Feng NEGOTIATION
Darci M GauchoIndiaOnyama Limba UNQUALIFIED
Kaitlin Y PerinGermanyAnna Fali NEW
Greenwood Z CaldareraAustraliaAnna Fali RENEWAL
Misaki I IturbideSpainIvan Magalhaes NEW
Jennifer P SaylorsJapanStephen Shaw RENEWAL
Johnson A MaletSpainAmy Elsner QUALIFIED
Nicolas S StensethSpainAnna Fali QUALIFIED
Aditya U RutaIndiaIvan Magalhaes QUALIFIED
Izzy P SergiGermanyIoni Bowcher NEGOTIATION
Costa F InouyeIndiaIoni Bowcher UNQUALIFIED
Chavez P BowleyArgentinaAnna Fali QUALIFIED
Wickens L OldroydIndiaAsiya Javayant UNQUALIFIED
James G CampainRussiaIvan Magalhaes NEW
Stacey L AlbaresUnited KingdomBernardo Dominic RENEWAL
Ashley P SchemmerIndiaElwin Sharvill NEGOTIATION
Alejandro B WaycottArgentinaBernardo Dominic RENEWAL
Tony J KuskoUnited KingdomIoni Bowcher NEW
Ashley R RoysterAustraliaIvan Magalhaes RENEWAL
Maria V StockhamAustraliaOnyama Limba NEGOTIATION
Deepesh V PoquetteRussiaElwin Sharvill PROPOSAL
Arvin U NickaIndiaXuxue Feng PROPOSAL
Leon O BologniaArgentinaAmy Elsner PROPOSAL
Tony E RutaArgentinaElwin Sharvill RENEWAL
Juan Q CampainUnited KingdomXuxue Feng UNQUALIFIED
Tony Y StockhamCanadaOnyama Limba RENEWAL
Faith V MaletArgentinaBernardo Dominic RENEWAL
Jeanfrancois V VenereBrazilXuxue Feng NEW
Darci J MacleadUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba H RoysterIndiaBernardo Dominic RENEWAL
Mujtaba G BologniaJapanElwin Sharvill UNQUALIFIED
Aika V FerenczArgentinaStephen Shaw NEGOTIATION
Leja S GlickSpainOnyama Limba NEGOTIATION
Aika H FigeroaJapanOnyama Limba PROPOSAL
Maisha Y PerinSpainXuxue Feng NEW
Wickens B WaycottCanadaAnna Fali RENEWAL
Ashley E KolmetzItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha R PaprockiUnited KingdomBernardo Dominic PROPOSAL
Isabel E BriddickAustraliaAmy Elsner NEW
James A GarufiGermanyAnna Fali RENEWAL
Claire C VenereArgentinaBernardo Dominic UNQUALIFIED
Chavez P WaycottAustraliaIvan Magalhaes QUALIFIED
Smith H PaprockiBrazilXuxue Feng NEGOTIATION
Mujtaba S CaldareraRussiaBernardo Dominic QUALIFIED
Silvio F FigeroaRussiaAmy Elsner NEW
Rodrigues U PerinJapanXuxue Feng UNQUALIFIED
Misaki T DarakjyGermanyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar D KuskoUnited Kingdom2026-06-06Rousseaux, Michael Esq UNQUALIFIED16Bernardo Dominic
1001Kaitlin F FigeroaItaly2026-07-04Rousseaux, Michael Esq RENEWAL1Stephen Shaw
1002Jefferson U StockhamUnited Kingdom2026-07-03Buckley Miller Wright QUALIFIED4Ivan Magalhaes
1003Juan D MaletUnited Kingdom2026-07-03King, Christopher A Esq UNQUALIFIED73Amy Elsner
1004Alejandro O ChuiRussia2026-07-03Feltz Printing Service NEGOTIATION71Bernardo Dominic
1005Izzy M GlickIndia2026-06-30Rousseaux, Michael Esq PROPOSAL50Bernardo Dominic
1006Ricardo A CaudyFrance2026-06-09Commercial Press NEGOTIATION0Amy Elsner
1007Greenwood P GlickUnited Kingdom2026-06-13Benton, John B Jr NEGOTIATION36Asiya Javayant
1008Adams C MorascaGermany2026-06-25King, Christopher A Esq QUALIFIED90Ivan Magalhaes
1009Jefferson P IturbideSpain2026-06-13Chanay, Jeffrey A Esq NEW72Asiya Javayant
1010Smith K SergiArgentina2026-06-05Rousseaux, Michael Esq QUALIFIED74Onyama Limba
1011Emily T SaylorsArgentina2026-06-17Printing Dimensions UNQUALIFIED8Amy Elsner
1012Jeanfrancois F KuskoRussia2026-06-26Printing Dimensions QUALIFIED53Asiya Javayant
1013Johnson I StockhamRussia2026-06-27Benton, John B Jr PROPOSAL83Onyama Limba
1014Murillo J PaprockiFrance2026-06-25Benton, John B Jr NEGOTIATION53Ioni Bowcher
1015Munro G TollnerItaly2026-06-25Buckley Miller Wright NEGOTIATION25Anna Fali
1016Faith U PaprockiAustralia2026-06-08Feltz Printing Service PROPOSAL25Asiya Javayant
1017Aika I AlbaresIndia2026-06-21Dorl, James J Esq QUALIFIED53Stephen Shaw
1018Johnson C ChuiArgentina2026-06-29Dorl, James J Esq NEW30Amy Elsner
1019Kadeem P SchemmerJapan2026-06-21Feiner Bros QUALIFIED18Bernardo Dominic
1020Sinclair Q NickaRussia2026-06-10Benton, John B Jr RENEWAL5Ivan Magalhaes
1021Misaki X NestleArgentina2026-06-10Benton, John B Jr UNQUALIFIED44Elwin Sharvill
1022Wickens E FlosiItaly2026-07-04King, Christopher A Esq NEGOTIATION35Amy Elsner
1023Costa T ShinkoCanada2026-07-01Truhlar And Truhlar Attys PROPOSAL5Asiya Javayant
1024Octavia G DoeArgentina2026-06-30Printing Dimensions UNQUALIFIED95Onyama Limba
1025Aditya W NickaJapan2026-06-18Chapman, Ross E Esq NEW83Stephen Shaw
1026Tony P RimUnited Kingdom2026-06-17Chemel, James L Cpa NEGOTIATION55Amy Elsner
1027Greenwood Y BowleyAustralia2026-06-11Truhlar And Truhlar Attys PROPOSAL90Anna Fali
1028Clifford P GillianArgentina2026-06-13Buckley Miller Wright RENEWAL65Xuxue Feng
1029Adams T NestleIndia2026-06-12Buckley Miller Wright RENEWAL0Elwin Sharvill
1030Rodrigues X BowleyIndia2026-06-23Feiner Bros UNQUALIFIED64Anna Fali
1031James J ChuiIndia2026-06-13King, Christopher A Esq RENEWAL74Amy Elsner
1032Arvin E RulapaughItaly2026-06-16Truhlar And Truhlar Attys QUALIFIED95Anna Fali
1033Isabel Y PoquetteRussia2026-06-14Benton, John B Jr NEGOTIATION11Anna Fali
1034Sinclair U InouyeUnited Kingdom2026-06-11Rousseaux, Michael Esq NEGOTIATION16Bernardo Dominic
1035Rodrigues I CaudySpain2026-06-18Rousseaux, Michael Esq PROPOSAL94Ivan Magalhaes
1036Aditya Z SlusarskiFrance2026-06-25Rousseaux, Michael Esq NEW72Stephen Shaw
1037Mujtaba Y WaycottAustralia2026-06-23Commercial Press RENEWAL17Onyama Limba
1038James A PaprockiSpain2026-06-30Benton, John B Jr UNQUALIFIED72Onyama Limba
1039Chavez X WaycottGermany2026-06-17Feltz Printing Service PROPOSAL49Onyama Limba
1040Misaki G VenereFrance2026-06-22King, Christopher A Esq NEGOTIATION96Stephen Shaw
1041Cody D OstroskyIndia2026-06-25King, Christopher A Esq UNQUALIFIED7Xuxue Feng
1042Deepesh L MaletFrance2026-06-07Rangoni Of Florence NEGOTIATION41Elwin Sharvill
1043Tony O NestleBrazil2026-06-23Feiner Bros QUALIFIED12Bernardo Dominic
1044Deepesh I SchemmerIndia2026-07-01Rangoni Of Florence UNQUALIFIED72Elwin Sharvill
1045Tony U GillianJapan2026-06-19Feiner Bros RENEWAL80Stephen Shaw
1046Emily O ButtFrance2026-06-08Chanay, Jeffrey A Esq RENEWAL89Xuxue Feng
1047Maisha T StensethRussia2026-06-16Rangoni Of Florence PROPOSAL7Bernardo Dominic
1048Leon C PoquetteFrance2026-06-30Printing Dimensions UNQUALIFIED26Amy Elsner
1049Isabel R ShinkoCanada2026-06-07Feltz Printing Service QUALIFIED81Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Izzy V CampainIndiaAmy Elsner NEGOTIATION
Maria Q TollnerGermanyIvan Magalhaes RENEWAL
Salvatore K VenereItalyAmy Elsner UNQUALIFIED
Emily R PaprockiUnited KingdomAsiya Javayant QUALIFIED
Chavez C MarrierItalyStephen Shaw NEGOTIATION
Isabel U SaylorsRussiaXuxue Feng RENEWAL
Deepesh X MaletAustraliaIoni Bowcher QUALIFIED
Nicolas T NestleAustraliaAnna Fali PROPOSAL
Francesco O WhobreyRussiaStephen Shaw NEW
Wickens J RoysterArgentinaElwin Sharvill NEGOTIATION
Munro B FerenczIndiaIvan Magalhaes NEGOTIATION
Chavez D RutaSpainAnna Fali NEW
Ashley H RoysterIndiaElwin Sharvill NEGOTIATION
Chavez R MarrierUnited KingdomAsiya Javayant RENEWAL
Leon V RoysterSpainIvan Magalhaes NEGOTIATION
Morrow Q MaletIndiaAsiya Javayant QUALIFIED
Greenwood Z WhobreyItalyBernardo Dominic PROPOSAL
Juan U ButtSpainStephen Shaw UNQUALIFIED
Salvatore N BowleyUnited KingdomOnyama Limba UNQUALIFIED
Johnson X PoquetteArgentinaXuxue Feng QUALIFIED
Salvatore F CampainArgentinaElwin Sharvill NEW
Deepesh P RoysterRussiaBernardo Dominic NEGOTIATION
Maisha Y DarakjyFranceIoni Bowcher PROPOSAL
Sinclair S GlickJapanStephen Shaw RENEWAL
Nicolas N PerinIndiaOnyama Limba QUALIFIED
Octavia A FollerUnited KingdomOnyama Limba NEW
Julie O FlosiSpainAmy Elsner UNQUALIFIED
Leja P AlbaresArgentinaStephen Shaw PROPOSAL
Deepesh X ShinkoAustraliaElwin Sharvill QUALIFIED
Munro H AmigonSpainElwin Sharvill QUALIFIED
James A GillianBrazilXuxue Feng PROPOSAL
Leja F AlbaresRussiaStephen Shaw PROPOSAL
Ivar P MaletFranceXuxue Feng UNQUALIFIED
Johnson J RimUnited KingdomIvan Magalhaes UNQUALIFIED
Costa C InouyeJapanStephen Shaw UNQUALIFIED
Clifford I OldroydGermanyAmy Elsner QUALIFIED
Chavez G DarakjyJapanBernardo Dominic PROPOSAL
Greenwood F OldroydSpainXuxue Feng PROPOSAL
Murillo S NestleBrazilXuxue Feng QUALIFIED
Ashley A KolmetzIndiaBernardo Dominic QUALIFIED
Leon H FlosiBrazilIoni Bowcher PROPOSAL
Johnson A GarufiArgentinaIoni Bowcher NEW
Tony R PoquetteRussiaAnna Fali QUALIFIED
Izzy Q SergiIndiaXuxue Feng RENEWAL
Greenwood I DilliardIndiaStephen Shaw NEW
Kaitlin Q FollerSpainAmy Elsner PROPOSAL
Clifford N FollerIndiaBernardo Dominic NEW
David D CampainIndiaOnyama Limba NEW
Morrow E OldroydAustraliaOnyama Limba NEGOTIATION
Ricardo U NestleGermanyAsiya Javayant NEW
Frozen Columns
Name
Leja T Nestle
Ricardo H Venere
Darci O Garufi
Jefferson P Ruta
Smith M Gaucho
Misaki S Iturbide
Arvin H Inouye
Antonio A Campain
Misaki K Kolmetz
Jennifer Q Ruta
Johnson Z Oldroyd
Rodrigues X Ostrosky
Deepesh X Ostrosky
Ivar M Royster
Adams F Kusko
David I Bolognia
Greenwood A Venere
Emily S Waycott
David E Shinko
Tony G Campain
Salvatore K Venere
David L Maclead
Leon F Doe
Octavia W Malet
Jones X Chui
Smith V Royster
Mujtaba B Sergi
Jennifer G Briddick
Isabel S Figeroa
James D Gillian
Jones A Saylors
Alejandro J Maclead
Mujtaba D Briddick
James P Nestle
Silvio R Royster
Kadeem S Foller
Claire T Doe
Jones F Slusarski
Aruna J Ferencz
Emily F Malet
Emily G Perin
Aika T Slusarski
Stacey C Gillian
Munro J Nicka
Stacey W Oldroyd
Octavia F Ruta
James F Sergi
Morrow P Ruta
Morrow B Gaucho
Jones C Venere
IdCountryDate
1000France2026-07-02
1001Australia2026-06-25
1002Russia2026-06-14
1003Canada2026-06-23
1004Argentina2026-06-28
1005Argentina2026-06-28
1006Brazil2026-06-20
1007Australia2026-06-26
1008Japan2026-06-13
1009United Kingdom2026-06-24
1010France2026-06-25
1011Australia2026-06-14
1012Japan2026-06-06
1013Argentina2026-06-05
1014India2026-06-23
1015India2026-06-24
1016United Kingdom2026-06-08
1017Germany2026-06-22
1018Canada2026-06-05
1019Japan2026-06-18
1020United Kingdom2026-07-01
1021Germany2026-06-13
1022Japan2026-06-23
1023Russia2026-07-03
1024Italy2026-06-07
1025Spain2026-06-17
1026Argentina2026-06-13
1027Spain2026-06-12
1028Russia2026-06-20
1029Germany2026-06-11
1030Japan2026-06-05
1031Canada2026-06-21
1032Brazil2026-06-18
1033Germany2026-06-30
1034France2026-06-30
1035United Kingdom2026-06-17
1036France2026-06-16
1037Spain2026-06-23
1038Australia2026-06-17
1039Germany2026-06-18
1040Japan2026-06-16
1041Brazil2026-06-06
1042Italy2026-06-19
1043Japan2026-06-17
1044India2026-06-27
1045Japan2026-06-13
1046France2026-06-15
1047France2026-06-06
1048Australia2026-06-05
1049Italy2026-06-19

On-Demand Data

NameIdCountryDate
Murillo C Glick1000Italy2026-06-06
Ivar Z Ostrosky1001France2026-06-28
Julie G Morasca1002Spain2026-06-24
Maisha O Gaucho1003Spain2026-06-28
Kaitlin A Wieser1004Germany2026-06-08
Adams P Inouye1005Japan2026-06-27
Maisha W Malet1006Argentina2026-07-02
Johnson X Amigon1007United Kingdom2026-06-22
Jeanfrancois R Flosi1008Russia2026-06-25
Maisha C Butt1009United Kingdom2026-06-26
Leon B Marrier1010Spain2026-06-24
Leja Q Iturbide1011Canada2026-06-05
Nicolas L Briddick1012Russia2026-06-28
Kaitlin E Marrier1013Germany2026-06-05
Nicolas U Stockham1014Brazil2026-07-01
Stacey F Butt1015Argentina2026-06-29
Nicolas C Bolognia1016Russia2026-06-24
Nicolas H Campain1017Australia2026-06-16
Adams V Briddick1018Germany2026-06-13
Antonio I Nicka1019Australia2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow S DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Adams L WaycottBrazilElwin Sharvill UNQUALIFIED
Jennifer G InouyeJapanIoni Bowcher PROPOSAL
Costa S CaldareraIndiaIvan Magalhaes RENEWAL
Aruna W OstroskyJapanAsiya Javayant RENEWAL
Jennifer W IturbideItalyOnyama Limba NEW
Stacey N AmigonBrazilOnyama Limba PROPOSAL
Ivar X RimRussiaAmy Elsner NEW
Mujtaba U GlickIndiaIvan Magalhaes UNQUALIFIED
Wickens L AlbaresGermanyAmy Elsner NEW
Wickens J MacleadCanadaStephen Shaw RENEWAL
James I CaldareraItalyStephen Shaw RENEWAL
Smith U FollerSpainAnna Fali QUALIFIED
Clifford O ChuiUnited KingdomIoni Bowcher QUALIFIED
Ashley E BowleySpainAsiya Javayant QUALIFIED
Wickens W DilliardSpainBernardo Dominic UNQUALIFIED
Antonio D OldroydIndiaOnyama Limba PROPOSAL
Greenwood H WhobreyUnited KingdomAsiya Javayant NEW
Jennifer B MaletBrazilOnyama Limba UNQUALIFIED
Jones J WaycottBrazilElwin Sharvill UNQUALIFIED
David S MaletJapanIoni Bowcher NEW
Ashley V BriddickItalyBernardo Dominic NEGOTIATION
Clifford Y DoeJapanIoni Bowcher UNQUALIFIED
Maria S DoeCanadaIoni Bowcher NEGOTIATION
Ashley E SaylorsRussiaElwin Sharvill RENEWAL
Costa O OstroskyRussiaAnna Fali NEW
Arvin Q RutaFranceAsiya Javayant QUALIFIED
Maisha A GlickRussiaXuxue Feng UNQUALIFIED
Julie L MaletBrazilXuxue Feng UNQUALIFIED
Deepesh W RoysterIndiaXuxue Feng NEGOTIATION
Adams X CaldareraAustraliaElwin Sharvill UNQUALIFIED
Claire A StensethCanadaOnyama Limba PROPOSAL
Claire K RimItalyIvan Magalhaes UNQUALIFIED
Deepesh E PaprockiSpainIvan Magalhaes NEW
Francesco J PaprockiGermanyXuxue Feng PROPOSAL
Adams C RimSpainAmy Elsner UNQUALIFIED
Mayumi P GarufiFranceAmy Elsner PROPOSAL
Greenwood Z DilliardRussiaAmy Elsner PROPOSAL
Clifford K CaldareraItalyXuxue Feng UNQUALIFIED
Aruna U GarufiUnited KingdomOnyama Limba UNQUALIFIED

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