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
Darci D StensethGermanyOnyama Limba UNQUALIFIED
Jefferson N InouyeCanadaStephen Shaw QUALIFIED
Aika F WhobreyRussiaAmy Elsner NEGOTIATION
Murillo O RutaUnited KingdomStephen Shaw NEW
Francesco R FollerIndiaAmy Elsner UNQUALIFIED
Jeanfrancois V VenereCanadaOnyama Limba RENEWAL
Stacey P BologniaCanadaAsiya Javayant PROPOSAL
Ricardo K ShinkoJapanOnyama Limba NEGOTIATION
Murillo Y GauchoUnited KingdomIvan Magalhaes RENEWAL
Johnson O DarakjyJapanIvan Magalhaes NEGOTIATION
Cody F KuskoRussiaIoni Bowcher NEW
Kaitlin W AmigonBrazilXuxue Feng QUALIFIED
Alejandro V PerinCanadaAnna Fali NEGOTIATION
Silvio Q DarakjyArgentinaAmy Elsner PROPOSAL
Izzy M WhobreyFranceBernardo Dominic UNQUALIFIED
Julie F MaletJapanBernardo Dominic QUALIFIED
Nicolas J SaylorsFranceXuxue Feng UNQUALIFIED
Clifford K BologniaIndiaStephen Shaw QUALIFIED
Juan G NestleArgentinaAsiya Javayant RENEWAL
Munro D SlusarskiUnited KingdomOnyama Limba RENEWAL
Aruna W PerinRussiaOnyama Limba NEGOTIATION
Maisha P MorascaFranceStephen Shaw PROPOSAL
Greenwood W NestleSpainOnyama Limba QUALIFIED
Jeanfrancois P BowleySpainIoni Bowcher QUALIFIED
Mayumi E MorascaFranceOnyama Limba NEW
Greenwood Z SaylorsJapanIvan Magalhaes RENEWAL
Tony Z SchemmerCanadaXuxue Feng PROPOSAL
Munro D CaudyItalyXuxue Feng NEGOTIATION
Jeanfrancois S WhobreyArgentinaAnna Fali PROPOSAL
Chavez Y RoysterUnited KingdomOnyama Limba RENEWAL
Deepesh V ShinkoGermanyBernardo Dominic RENEWAL
David L DarakjyAustraliaAmy Elsner NEW
James J RoysterBrazilIvan Magalhaes QUALIFIED
Emily G ButtFranceOnyama Limba RENEWAL
Munro N RutaJapanOnyama Limba NEW
Murillo Y CaldareraBrazilElwin Sharvill UNQUALIFIED
Silvio L GauchoItalyBernardo Dominic NEW
Silvio E MaletSpainIoni Bowcher UNQUALIFIED
Juan F InouyeFranceBernardo Dominic PROPOSAL
Kaitlin K IturbideBrazilIoni Bowcher RENEWAL
Jones M OldroydIndiaIoni Bowcher NEGOTIATION
Arvin I BowleyJapanAnna Fali UNQUALIFIED
Misaki I IturbideItalyElwin Sharvill QUALIFIED
Francesco I PerinJapanOnyama Limba NEW
James F VenereUnited KingdomAmy Elsner NEW
Aditya P TollnerCanadaIvan Magalhaes PROPOSAL
David E FlosiCanadaIvan Magalhaes NEW
Silvio P CaudyJapanOnyama Limba UNQUALIFIED
David M DoeGermanyBernardo Dominic QUALIFIED
Ashley X InouyeIndiaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio V DilliardGermanyXuxue Feng PROPOSAL
Cody U ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Ashley D RulapaughGermanyStephen Shaw PROPOSAL
Salvatore P StockhamGermanyBernardo Dominic QUALIFIED
Aruna Y CaldareraFranceXuxue Feng UNQUALIFIED
Leja B MaletCanadaOnyama Limba NEGOTIATION
Cody C VenereAustraliaAnna Fali UNQUALIFIED
Mujtaba U WhobreyAustraliaElwin Sharvill QUALIFIED
Silvio M AmigonItalyStephen Shaw QUALIFIED
David W RoysterUnited KingdomBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones D SchemmerRussia2026-08-04King, Christopher A Esq UNQUALIFIED32Amy Elsner
1001Maisha K PoquetteIndia2026-07-18Truhlar And Truhlar Attys NEW67Onyama Limba
1002Silvio L PerinJapan2026-07-28Buckley Miller Wright UNQUALIFIED58Onyama Limba
1003Nicolas W SergiRussia2026-08-10Chemel, James L Cpa RENEWAL46Xuxue Feng
1004Antonio F RutaBrazil2026-07-18Printing Dimensions RENEWAL64Onyama Limba
1005Alejandro L GauchoGermany2026-08-02Truhlar And Truhlar Attys PROPOSAL57Elwin Sharvill
1006Rodrigues G KolmetzBrazil2026-07-17Rangoni Of Florence NEW55Onyama Limba
1007Claire J IturbideAustralia2026-08-03Rousseaux, Michael Esq UNQUALIFIED65Ioni Bowcher
1008Costa P GillianAustralia2026-08-05Chanay, Jeffrey A Esq NEGOTIATION62Stephen Shaw
1009Juan K MacleadSpain2026-08-12Benton, John B Jr PROPOSAL5Bernardo Dominic
1010Francesco R ShinkoFrance2026-07-26Buckley Miller Wright PROPOSAL32Xuxue Feng
1011Faith T FollerBrazil2026-08-10Buckley Miller Wright RENEWAL65Asiya Javayant
1012Leon Q RimRussia2026-07-20Chemel, James L Cpa NEW71Elwin Sharvill
1013Ricardo C MacleadJapan2026-07-31Chapman, Ross E Esq RENEWAL13Stephen Shaw
1014Wickens A CampainJapan2026-07-25Benton, John B Jr QUALIFIED84Asiya Javayant
1015Kadeem C KolmetzCanada2026-07-17Feiner Bros PROPOSAL15Anna Fali
1016Jefferson P KuskoUnited Kingdom2026-07-21Feiner Bros RENEWAL57Ioni Bowcher
1017Ivar T WaycottAustralia2026-08-09Commercial Press QUALIFIED15Bernardo Dominic
1018Darci S RutaRussia2026-07-26Morlong Associates NEW13Asiya Javayant
1019Wickens F WieserJapan2026-07-25Truhlar And Truhlar Attys PROPOSAL89Ioni Bowcher
1020Kaitlin I SaylorsBrazil2026-07-24Chapman, Ross E Esq PROPOSAL48Xuxue Feng
1021Faith D WhobreyBrazil2026-07-21Rousseaux, Michael Esq NEW98Stephen Shaw
1022Faith X DilliardBrazil2026-08-04Rangoni Of Florence NEGOTIATION79Elwin Sharvill
1023Stacey J AmigonFrance2026-07-21Commercial Press QUALIFIED18Anna Fali
1024Adams M MaletBrazil2026-08-14Rousseaux, Michael Esq NEGOTIATION49Elwin Sharvill
1025Aditya C GillianItaly2026-08-12Benton, John B Jr RENEWAL67Stephen Shaw
1026Jennifer Q FerenczGermany2026-07-22Buckley Miller Wright RENEWAL39Amy Elsner
1027Isabel J DilliardJapan2026-08-04Feiner Bros QUALIFIED56Ioni Bowcher
1028Chavez J GlickFrance2026-08-09Benton, John B Jr QUALIFIED33Stephen Shaw
1029Jefferson B SlusarskiCanada2026-08-14Rousseaux, Michael Esq QUALIFIED29Xuxue Feng
1030Emily Z NickaBrazil2026-08-05Chapman, Ross E Esq UNQUALIFIED91Ioni Bowcher
1031Arvin Y PerinItaly2026-08-14Feltz Printing Service RENEWAL85Ioni Bowcher
1032Arvin U CaldareraFrance2026-07-26Dorl, James J Esq NEGOTIATION20Stephen Shaw
1033Octavia I NickaGermany2026-08-12Chanay, Jeffrey A Esq RENEWAL48Ivan Magalhaes
1034Leja A ButtCanada2026-07-27King, Christopher A Esq UNQUALIFIED78Asiya Javayant
1035Alejandro J BologniaRussia2026-07-28Benton, John B Jr UNQUALIFIED89Ioni Bowcher
1036Nicolas M WaycottUnited Kingdom2026-08-03Truhlar And Truhlar Attys RENEWAL42Ioni Bowcher
1037Darci I DarakjyArgentina2026-07-17Feiner Bros RENEWAL86Onyama Limba
1038Stacey Q CampainIndia2026-08-11Feltz Printing Service NEW0Ivan Magalhaes
1039Aika L OldroydBrazil2026-08-05Printing Dimensions PROPOSAL40Anna Fali
1040Tony L FlosiGermany2026-07-23Morlong Associates PROPOSAL97Ivan Magalhaes
1041Emily K VocelkaIndia2026-07-23Rousseaux, Michael Esq NEW20Ivan Magalhaes
1042Francesco I DoeJapan2026-07-26Feiner Bros RENEWAL74Stephen Shaw
1043Ivar B FigeroaUnited Kingdom2026-07-17Chanay, Jeffrey A Esq RENEWAL28Bernardo Dominic
1044Leon K AlbaresGermany2026-08-14King, Christopher A Esq RENEWAL39Elwin Sharvill
1045Johnson Z GillianUnited Kingdom2026-07-21Commercial Press NEGOTIATION40Ivan Magalhaes
1046Jefferson X VocelkaGermany2026-08-09Chapman, Ross E Esq UNQUALIFIED29Onyama Limba
1047Salvatore K GarufiRussia2026-08-14Feiner Bros PROPOSAL39Bernardo Dominic
1048Kaitlin M GauchoIndia2026-08-08Feiner Bros RENEWAL19Stephen Shaw
1049Greenwood X CaldareraJapan2026-08-04Dorl, James J Esq QUALIFIED67Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
David J MarrierGermanyElwin Sharvill NEW
Chavez U InouyeGermanyStephen Shaw UNQUALIFIED
Nicolas J AmigonBrazilXuxue Feng RENEWAL
Rodrigues U GarufiArgentinaBernardo Dominic UNQUALIFIED
Julie X ChuiCanadaAmy Elsner NEW
Mayumi B OldroydIndiaIvan Magalhaes PROPOSAL
Wickens S RutaItalyAmy Elsner NEGOTIATION
Maria Z VocelkaIndiaOnyama Limba NEGOTIATION
Misaki X PaprockiUnited KingdomAnna Fali RENEWAL
Izzy L SchemmerFranceElwin Sharvill RENEWAL
Murillo P MaletCanadaAsiya Javayant NEW
Julie R RoysterJapanIvan Magalhaes NEGOTIATION
Darci G VenereIndiaXuxue Feng NEW
Cody K MorascaFranceOnyama Limba QUALIFIED
David P WieserArgentinaOnyama Limba PROPOSAL
Izzy R VocelkaJapanStephen Shaw QUALIFIED
Misaki W SlusarskiArgentinaOnyama Limba PROPOSAL
Isabel S MaletIndiaAmy Elsner RENEWAL
Maria S ChuiAustraliaAsiya Javayant QUALIFIED
Wickens Y MaletBrazilOnyama Limba NEW
Leja P MaletBrazilBernardo Dominic NEGOTIATION
Darci G KuskoItalyAsiya Javayant UNQUALIFIED
Tony E PerinSpainIvan Magalhaes NEGOTIATION
David M DoeItalyAnna Fali RENEWAL
Stacey V KolmetzFranceXuxue Feng RENEWAL
Darci N GarufiArgentinaAsiya Javayant NEGOTIATION
Deepesh M AlbaresIndiaXuxue Feng NEW
Kadeem W WieserCanadaXuxue Feng NEGOTIATION
Salvatore V AlbaresArgentinaOnyama Limba UNQUALIFIED
Sinclair D StockhamIndiaAsiya Javayant QUALIFIED
Cody C FlosiBrazilAnna Fali RENEWAL
Emily D FlosiJapanElwin Sharvill QUALIFIED
Jefferson J ChuiRussiaXuxue Feng RENEWAL
Alejandro U MorascaSpainAsiya Javayant NEW
Jennifer K OldroydGermanyIvan Magalhaes NEGOTIATION
Murillo L MarrierSpainBernardo Dominic QUALIFIED
Faith F KuskoArgentinaBernardo Dominic UNQUALIFIED
Johnson O FollerIndiaBernardo Dominic UNQUALIFIED
Kaitlin L ShinkoGermanyIvan Magalhaes NEW
Misaki P PerinUnited KingdomAnna Fali NEGOTIATION
Costa Y GlickGermanyIoni Bowcher NEGOTIATION
Jefferson E NestleGermanyOnyama Limba QUALIFIED
Isabel P InouyeGermanyAsiya Javayant RENEWAL
Greenwood H CaudyBrazilAmy Elsner UNQUALIFIED
Costa I MacleadArgentinaElwin Sharvill NEW
Tony T StockhamGermanyElwin Sharvill NEW
Leon M BologniaBrazilElwin Sharvill NEW
Alejandro T FlosiItalyAnna Fali RENEWAL
Leon C RoysterAustraliaOnyama Limba RENEWAL
Juan O OstroskyGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Maria M Ruta
Julie V Foller
Cody G Ostrosky
Francesco R Doe
Salvatore I Waycott
David B Schemmer
Ashley G Rulapaugh
Silvio E Garufi
Jeanfrancois P Chui
Julie N Flosi
Juan Z Sergi
Greenwood O Kolmetz
Smith I Rulapaugh
Morrow S Campain
Ashley D Figeroa
Leon Z Inouye
Leon P Vocelka
Isabel D Darakjy
Leja G Venere
Maria P Tollner
Octavia Q Albares
Leon Z Slusarski
Aika Z Oldroyd
Mayumi W Marrier
Chavez I Wieser
Silvio L Gaucho
Nicolas J Iturbide
Ivar R Bowley
Morrow M Ferencz
Kaitlin O Butt
Aika E Sergi
Cody V Sergi
Maisha Y Paprocki
Kadeem N Rim
Smith S Oldroyd
Octavia G Whobrey
Kadeem E Paprocki
Misaki U Stockham
Clifford P Marrier
Ivar C Darakjy
Munro H Kusko
Antonio L Stenseth
Ashley Z Venere
Alejandro R Royster
Murillo R Sergi
Kadeem U Inouye
Tony T Saylors
Juan H Glick
Stacey S Gaucho
Greenwood V Perin
IdCountryDate
1000Australia2026-07-30
1001Australia2026-08-12
1002Brazil2026-07-17
1003France2026-07-25
1004Russia2026-07-24
1005France2026-08-02
1006Japan2026-07-31
1007Canada2026-08-14
1008Italy2026-08-07
1009India2026-07-26
1010Germany2026-07-17
1011Spain2026-08-05
1012Russia2026-07-30
1013Italy2026-07-25
1014Spain2026-08-05
1015Australia2026-07-30
1016Germany2026-08-14
1017Brazil2026-07-23
1018Brazil2026-08-06
1019France2026-07-28
1020Argentina2026-08-07
1021Brazil2026-07-29
1022Italy2026-07-22
1023Argentina2026-07-22
1024Germany2026-07-22
1025United Kingdom2026-07-16
1026India2026-07-21
1027United Kingdom2026-08-03
1028Argentina2026-07-20
1029France2026-07-31
1030India2026-08-08
1031Australia2026-08-14
1032Russia2026-07-18
1033Italy2026-08-04
1034Argentina2026-08-04
1035Japan2026-08-04
1036Japan2026-07-30
1037United Kingdom2026-08-10
1038India2026-08-02
1039France2026-07-30
1040Italy2026-08-12
1041India2026-08-06
1042India2026-08-10
1043France2026-08-10
1044Australia2026-08-13
1045Argentina2026-08-12
1046Brazil2026-08-10
1047Canada2026-07-26
1048Australia2026-07-26
1049Brazil2026-08-03

On-Demand Data

NameIdCountryDate
Nicolas K Bowley1000Italy2026-07-29
Claire T Vocelka1001Germany2026-07-28
Jones G Bowley1002France2026-07-31
Sinclair P Flosi1003Germany2026-07-28
Jefferson A Bowley1004France2026-08-08
Alejandro X Maclead1005Japan2026-07-25
Tony K Iturbide1006Brazil2026-08-01
Cody F Flosi1007Russia2026-07-19
Jeanfrancois U Gaucho1008France2026-07-19
Maria G Malet1009France2026-08-09
Mujtaba Y Malet1010Japan2026-08-11
Octavia H Gillian1011Italy2026-07-24
Chavez C Perin1012United Kingdom2026-07-24
Leja N Ruta1013Argentina2026-08-05
Munro B Stenseth1014Spain2026-08-04
Salvatore A Poquette1015Australia2026-08-04
Antonio X Ferencz1016Spain2026-07-29
Izzy Q Tollner1017Japan2026-07-16
Costa V Amigon1018Canada2026-07-23
Mujtaba E Foller1019Russia2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo V PerinJapanXuxue Feng NEW
Faith N InouyeAustraliaAsiya Javayant NEW
Alejandro E KolmetzCanadaOnyama Limba QUALIFIED
Johnson E WhobreyUnited KingdomAmy Elsner NEGOTIATION
Maisha T OldroydBrazilElwin Sharvill NEW
Julie D OstroskyGermanyElwin Sharvill NEW
David U WhobreyJapanAmy Elsner QUALIFIED
Mujtaba E MorascaJapanIvan Magalhaes UNQUALIFIED
Murillo U NickaArgentinaIvan Magalhaes RENEWAL
Adams K PoquetteGermanyBernardo Dominic NEW
Leja Q NestleIndiaBernardo Dominic NEW
David S OldroydFranceIvan Magalhaes RENEWAL
Ivar D DilliardJapanOnyama Limba NEW
Morrow Y RoysterRussiaElwin Sharvill UNQUALIFIED
Alejandro W StensethArgentinaXuxue Feng NEGOTIATION
Salvatore U DoeFranceElwin Sharvill QUALIFIED
Sinclair Q TollnerArgentinaStephen Shaw UNQUALIFIED
Tony D PaprockiJapanXuxue Feng UNQUALIFIED
Sinclair T VenereFranceXuxue Feng PROPOSAL
Aruna L BriddickGermanyIvan Magalhaes QUALIFIED
Emily S CampainGermanyAsiya Javayant QUALIFIED
Faith R MaletFranceIvan Magalhaes PROPOSAL
James W NickaItalyAmy Elsner PROPOSAL
Juan O FollerArgentinaBernardo Dominic RENEWAL
Munro F MorascaAustraliaBernardo Dominic QUALIFIED
Emily L RimSpainIoni Bowcher RENEWAL
Silvio X BowleyAustraliaBernardo Dominic NEW
Costa N RimCanadaXuxue Feng NEGOTIATION
Aditya S RimJapanOnyama Limba UNQUALIFIED
Johnson Y ShinkoRussiaBernardo Dominic PROPOSAL
Munro Y OstroskyUnited KingdomElwin Sharvill PROPOSAL
Cody M IturbideIndiaAmy Elsner NEGOTIATION
Jones Z BowleyUnited KingdomAsiya Javayant NEGOTIATION
Smith E AlbaresIndiaIoni Bowcher QUALIFIED
Kaitlin B StensethIndiaElwin Sharvill RENEWAL
Murillo R MaletItalyBernardo Dominic PROPOSAL
Antonio X BriddickGermanyIoni Bowcher QUALIFIED
Ashley T InouyeSpainIoni Bowcher NEGOTIATION
Faith L WaycottBrazilIvan Magalhaes PROPOSAL
Emily Z OldroydItalyElwin 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>