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
Salvatore Q FerenczCanadaStephen Shaw NEGOTIATION
Mayumi A AlbaresIndiaAmy Elsner RENEWAL
Cody G IturbideRussiaAnna Fali PROPOSAL
Clifford V VenereCanadaAnna Fali NEGOTIATION
James G BriddickItalyIoni Bowcher UNQUALIFIED
Clifford B KuskoIndiaStephen Shaw NEW
Mayumi D OstroskyItalyAmy Elsner NEGOTIATION
Clifford X DilliardBrazilIoni Bowcher UNQUALIFIED
Jefferson Q GarufiFranceAnna Fali NEW
Maisha Z StensethArgentinaStephen Shaw PROPOSAL
Deepesh S MaletSpainAnna Fali QUALIFIED
Stacey J WieserIndiaAmy Elsner PROPOSAL
David Y WaycottIndiaStephen Shaw NEGOTIATION
Mujtaba J SaylorsGermanyIoni Bowcher UNQUALIFIED
Aditya K ShinkoFranceAsiya Javayant QUALIFIED
Adams B WieserBrazilStephen Shaw QUALIFIED
Claire F MarrierGermanyOnyama Limba RENEWAL
Johnson F BriddickItalyElwin Sharvill UNQUALIFIED
Mayumi I DoeIndiaAsiya Javayant QUALIFIED
Kadeem Y WaycottRussiaIvan Magalhaes PROPOSAL
Antonio L NestleCanadaOnyama Limba RENEWAL
Arvin M ChuiUnited KingdomAsiya Javayant RENEWAL
Aika F CaudyFranceXuxue Feng RENEWAL
Nicolas T MarrierJapanAnna Fali NEGOTIATION
Jones I FlosiIndiaAmy Elsner NEW
Leon Q StensethIndiaElwin Sharvill RENEWAL
Johnson I StockhamRussiaAsiya Javayant UNQUALIFIED
Claire Y OldroydRussiaIvan Magalhaes QUALIFIED
Ivar V KuskoArgentinaAmy Elsner NEW
Silvio R StensethJapanStephen Shaw UNQUALIFIED
Clifford R GarufiFranceAmy Elsner UNQUALIFIED
Morrow E BologniaArgentinaXuxue Feng NEW
Adams R FlosiRussiaAmy Elsner PROPOSAL
Ashley V FollerFranceElwin Sharvill NEW
Ricardo Y DoeFranceIoni Bowcher UNQUALIFIED
Costa S SchemmerArgentinaElwin Sharvill QUALIFIED
Rodrigues V NestleCanadaXuxue Feng UNQUALIFIED
Deepesh N BowleyJapanBernardo Dominic QUALIFIED
Ivar I IturbideFranceAsiya Javayant NEW
Tony C NestleCanadaBernardo Dominic NEGOTIATION
Claire V SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Silvio M KuskoArgentinaOnyama Limba RENEWAL
Adams K ChuiIndiaXuxue Feng NEW
James B MarrierBrazilXuxue Feng PROPOSAL
Chavez H SaylorsJapanStephen Shaw NEGOTIATION
Morrow N RutaBrazilAmy Elsner PROPOSAL
Leon J StockhamJapanOnyama Limba RENEWAL
Jefferson C SaylorsRussiaAmy Elsner UNQUALIFIED
Cody U DilliardAustraliaAsiya Javayant NEGOTIATION
Munro G GarufiGermanyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony F RoysterCanadaIoni Bowcher NEW
Aika V InouyeAustraliaAmy Elsner UNQUALIFIED
Antonio D BologniaItalyAnna Fali NEW
Deepesh Y MarrierArgentinaIoni Bowcher PROPOSAL
Mayumi I WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Maria L BriddickBrazilIoni Bowcher NEW
Mujtaba J BriddickItalyOnyama Limba RENEWAL
Jones W SergiItalyAnna Fali UNQUALIFIED
Misaki S FollerRussiaStephen Shaw PROPOSAL
Stacey Q DoeBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois P CaudyAustralia2026-07-02Feltz Printing Service RENEWAL50Anna Fali
1001Cody M NestleIndia2026-07-28Benton, John B Jr QUALIFIED32Elwin Sharvill
1002Johnson B BologniaAustralia2026-07-19Truhlar And Truhlar Attys PROPOSAL85Xuxue Feng
1003Cody A PaprockiItaly2026-07-16Morlong Associates QUALIFIED52Asiya Javayant
1004Tony S MaletFrance2026-07-20King, Christopher A Esq UNQUALIFIED10Elwin Sharvill
1005Claire Y RimCanada2026-07-20Buckley Miller Wright QUALIFIED70Anna Fali
1006Misaki H SergiGermany2026-07-28Benton, John B Jr QUALIFIED59Onyama Limba
1007Cody P CaldareraAustralia2026-07-07Benton, John B Jr UNQUALIFIED95Ivan Magalhaes
1008Tony U NickaIndia2026-07-14Benton, John B Jr UNQUALIFIED59Onyama Limba
1009Sinclair J RimUnited Kingdom2026-07-07Buckley Miller Wright RENEWAL46Xuxue Feng
1010Silvio O InouyeBrazil2026-07-04Commercial Press QUALIFIED41Stephen Shaw
1011Wickens Y NestleBrazil2026-07-11Commercial Press QUALIFIED63Stephen Shaw
1012Leon Y NickaRussia2026-06-29Truhlar And Truhlar Attys NEGOTIATION27Elwin Sharvill
1013Sinclair O DarakjyFrance2026-07-11Chanay, Jeffrey A Esq PROPOSAL71Anna Fali
1014Isabel B SergiCanada2026-07-05Rangoni Of Florence NEGOTIATION81Onyama Limba
1015Aruna M FerenczSpain2026-07-21Morlong Associates RENEWAL64Asiya Javayant
1016Jennifer C OstroskyGermany2026-07-02Chanay, Jeffrey A Esq PROPOSAL24Xuxue Feng
1017Jennifer D SlusarskiGermany2026-07-11Printing Dimensions NEW20Stephen Shaw
1018Aditya U MorascaGermany2026-07-24Feiner Bros QUALIFIED41Xuxue Feng
1019Jefferson K KuskoGermany2026-07-20Rangoni Of Florence QUALIFIED89Xuxue Feng
1020Darci Z DarakjyRussia2026-07-20Chemel, James L Cpa UNQUALIFIED70Anna Fali
1021Leon F WieserItaly2026-07-03Morlong Associates UNQUALIFIED14Xuxue Feng
1022Aika A CampainItaly2026-07-10Chanay, Jeffrey A Esq RENEWAL29Xuxue Feng
1023Rodrigues X SergiGermany2026-07-22Printing Dimensions UNQUALIFIED58Onyama Limba
1024Leon C GlickGermany2026-07-16Printing Dimensions NEGOTIATION6Xuxue Feng
1025Kadeem O AmigonRussia2026-07-23Chemel, James L Cpa RENEWAL27Asiya Javayant
1026Nicolas E PoquetteAustralia2026-07-20Chapman, Ross E Esq PROPOSAL46Elwin Sharvill
1027Munro V VenereBrazil2026-07-01Printing Dimensions PROPOSAL82Asiya Javayant
1028Cody R NickaJapan2026-07-01Printing Dimensions RENEWAL75Bernardo Dominic
1029Ricardo J InouyeFrance2026-07-27Chemel, James L Cpa RENEWAL32Xuxue Feng
1030Ivar Z RutaIndia2026-07-15King, Christopher A Esq NEW71Asiya Javayant
1031Sinclair N CaldareraJapan2026-07-17Buckley Miller Wright UNQUALIFIED13Amy Elsner
1032Sinclair X ChuiArgentina2026-07-08Chemel, James L Cpa PROPOSAL88Bernardo Dominic
1033Izzy W DoeRussia2026-07-10Chapman, Ross E Esq RENEWAL27Bernardo Dominic
1034David W PerinFrance2026-07-05Rousseaux, Michael Esq NEGOTIATION33Bernardo Dominic
1035Smith T AmigonGermany2026-07-15Dorl, James J Esq NEGOTIATION39Anna Fali
1036Silvio I MaletIndia2026-07-25Chemel, James L Cpa NEGOTIATION55Bernardo Dominic
1037Kadeem K WieserUnited Kingdom2026-07-11Benton, John B Jr PROPOSAL66Onyama Limba
1038David Y StockhamSpain2026-07-25Rousseaux, Michael Esq UNQUALIFIED25Ivan Magalhaes
1039Deepesh W ButtItaly2026-06-29Benton, John B Jr NEW64Xuxue Feng
1040Ricardo N GarufiAustralia2026-07-18Morlong Associates RENEWAL83Onyama Limba
1041Ivar T GarufiRussia2026-07-05Benton, John B Jr UNQUALIFIED81Ivan Magalhaes
1042Morrow B AmigonGermany2026-07-17Morlong Associates RENEWAL41Ivan Magalhaes
1043Costa C TollnerRussia2026-07-26Chemel, James L Cpa UNQUALIFIED22Anna Fali
1044Johnson L StensethBrazil2026-07-15Printing Dimensions NEW69Xuxue Feng
1045James F RoysterFrance2026-07-17Rangoni Of Florence NEW24Xuxue Feng
1046Silvio L FigeroaBrazil2026-07-21Chemel, James L Cpa NEGOTIATION7Ioni Bowcher
1047Maria Q RoysterRussia2026-07-11Benton, John B Jr NEW87Elwin Sharvill
1048Ivar K MorascaBrazil2026-07-02Printing Dimensions NEGOTIATION97Xuxue Feng
1049Jones H FerenczBrazil2026-07-21Rousseaux, Michael Esq UNQUALIFIED88Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez B DilliardItalyAsiya Javayant NEW
James B StensethFranceAnna Fali QUALIFIED
Arvin D AmigonItalyStephen Shaw NEGOTIATION
Julie Q InouyeJapanAsiya Javayant QUALIFIED
Munro E MaletAustraliaStephen Shaw PROPOSAL
Aditya H RoysterFranceIoni Bowcher RENEWAL
Cody V SchemmerSpainIvan Magalhaes NEGOTIATION
Octavia V StockhamJapanIoni Bowcher UNQUALIFIED
Murillo B FerenczJapanAsiya Javayant PROPOSAL
Adams X PerinGermanyXuxue Feng QUALIFIED
Izzy Y RulapaughBrazilIvan Magalhaes RENEWAL
Arvin T BowleyArgentinaIoni Bowcher QUALIFIED
Aditya R NestleGermanyIvan Magalhaes PROPOSAL
Emily U MorascaRussiaAmy Elsner PROPOSAL
Munro F DoeCanadaBernardo Dominic PROPOSAL
Julie L DilliardAustraliaXuxue Feng NEW
James O CaudyGermanyOnyama Limba QUALIFIED
Francesco D BologniaRussiaIvan Magalhaes PROPOSAL
Kaitlin S FerenczIndiaXuxue Feng NEGOTIATION
Leon D RoysterBrazilIvan Magalhaes NEW
Sinclair F IturbideIndiaAnna Fali QUALIFIED
Leja J DarakjyUnited KingdomAnna Fali RENEWAL
Mujtaba O RulapaughSpainAmy Elsner NEW
Julie A PoquetteJapanIvan Magalhaes PROPOSAL
Aruna U ShinkoRussiaIoni Bowcher PROPOSAL
Leja Q TollnerSpainOnyama Limba NEW
Maisha R StockhamBrazilElwin Sharvill UNQUALIFIED
Cody B ShinkoFranceAsiya Javayant RENEWAL
Ricardo H CampainArgentinaOnyama Limba QUALIFIED
James F VenereItalyIoni Bowcher QUALIFIED
Leon R KuskoGermanyOnyama Limba NEGOTIATION
Kadeem E CampainIndiaElwin Sharvill UNQUALIFIED
Ashley Z AlbaresArgentinaStephen Shaw UNQUALIFIED
Ashley J WhobreyBrazilElwin Sharvill QUALIFIED
Aika V GlickFranceOnyama Limba PROPOSAL
Wickens M BriddickGermanyAsiya Javayant PROPOSAL
Cody H VocelkaJapanOnyama Limba RENEWAL
David J NickaCanadaXuxue Feng RENEWAL
Johnson Y VocelkaUnited KingdomStephen Shaw PROPOSAL
Mayumi O WieserIndiaXuxue Feng RENEWAL
Murillo C ButtAustraliaAsiya Javayant NEW
Isabel B SchemmerItalyElwin Sharvill PROPOSAL
Rodrigues U GauchoBrazilStephen Shaw PROPOSAL
Johnson Y CaldareraUnited KingdomXuxue Feng PROPOSAL
Kaitlin M RimBrazilAnna Fali NEW
Jeanfrancois R RutaBrazilXuxue Feng PROPOSAL
James O IturbideFranceAsiya Javayant RENEWAL
Smith J DilliardArgentinaAmy Elsner QUALIFIED
Ashley R FlosiAustraliaOnyama Limba UNQUALIFIED
Juan I GillianAustraliaOnyama Limba QUALIFIED
Frozen Columns
Name
Jeanfrancois K Whobrey
Adams G Tollner
Claire E Briddick
Julie C Stenseth
Maisha T Paprocki
Jones T Ostrosky
Leja I Oldroyd
Aruna O Caldarera
Francesco M Chui
Nicolas U Chui
Murillo U Shinko
Mujtaba Y Waycott
Ricardo H Royster
Jennifer N Wieser
Silvio W Ruta
Smith L Doe
Adams J Butt
Misaki X Tollner
Jeanfrancois U Ferencz
Stacey A Sergi
Julie A Ferencz
Chavez J Paprocki
Kaitlin D Figeroa
David V Campain
James M Nicka
Costa P Garufi
Morrow Z Paprocki
Tony N Vocelka
Aika P Inouye
Aika M Malet
Octavia T Maclead
Deepesh Q Ferencz
Salvatore S Butt
Kadeem L Marrier
Cody E Caldarera
Ivar W Paprocki
Misaki W Malet
Isabel K Poquette
Rodrigues R Oldroyd
Emily S Oldroyd
Ricardo Y Rulapaugh
Adams D Stenseth
Silvio U Campain
Darci Y Malet
Jennifer F Malet
Antonio E Ostrosky
Isabel U Ostrosky
Jones D Royster
Kaitlin Z Kolmetz
Emily M Nestle
IdCountryDate
1000United Kingdom2026-07-02
1001United Kingdom2026-07-11
1002France2026-07-22
1003United Kingdom2026-07-28
1004France2026-07-23
1005Argentina2026-07-05
1006Canada2026-06-29
1007Japan2026-07-05
1008India2026-06-30
1009United Kingdom2026-07-27
1010Italy2026-06-29
1011Italy2026-07-17
1012Japan2026-07-16
1013Japan2026-07-05
1014India2026-07-10
1015Spain2026-06-29
1016Spain2026-07-18
1017Germany2026-07-17
1018India2026-07-07
1019Germany2026-07-19
1020Australia2026-07-03
1021Australia2026-07-10
1022Italy2026-07-03
1023Spain2026-07-09
1024Argentina2026-07-21
1025Argentina2026-07-17
1026Spain2026-07-25
1027Brazil2026-07-09
1028Brazil2026-07-13
1029Italy2026-07-21
1030India2026-06-29
1031Argentina2026-07-25
1032Australia2026-07-07
1033Japan2026-07-07
1034Australia2026-07-28
1035Germany2026-07-19
1036Brazil2026-06-30
1037Russia2026-06-30
1038Germany2026-07-22
1039United Kingdom2026-07-25
1040Canada2026-07-27
1041Russia2026-07-09
1042Italy2026-06-29
1043France2026-07-17
1044Russia2026-07-19
1045Japan2026-07-25
1046Italy2026-06-29
1047France2026-07-07
1048Argentina2026-06-30
1049United Kingdom2026-07-08

On-Demand Data

NameIdCountryDate
Leon K Albares1000Australia2026-07-08
Mujtaba R Tollner1001Argentina2026-07-19
Ashley R Gillian1002France2026-07-19
Antonio P Venere1003Russia2026-07-27
Ivar O Bowley1004United Kingdom2026-07-01
Emily C Iturbide1005Russia2026-07-14
Tony T Caudy1006United Kingdom2026-07-26
Julie B Wieser1007Russia2026-06-29
Faith P Flosi1008Spain2026-06-30
Ashley D Kusko1009Spain2026-07-03
Clifford G Ruta1010India2026-07-18
James M Saylors1011Brazil2026-07-22
Stacey X Perin1012Canada2026-07-04
Murillo F Schemmer1013Russia2026-07-11
Murillo W Paprocki1014France2026-07-16
Jeanfrancois O Tollner1015Brazil2026-07-27
Arvin X Royster1016United Kingdom2026-07-01
Jefferson J Stenseth1017Spain2026-07-03
Izzy F Albares1018Argentina2026-06-29
Aruna T Amigon1019Japan2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba S DoeFranceXuxue Feng NEGOTIATION
Jeanfrancois W VocelkaGermanyAsiya Javayant NEW
Julie E DoeBrazilElwin Sharvill NEGOTIATION
Aditya H SlusarskiIndiaAmy Elsner PROPOSAL
Claire O MarrierIndiaXuxue Feng NEW
Smith Y IturbideGermanyIvan Magalhaes RENEWAL
Claire H GillianRussiaElwin Sharvill UNQUALIFIED
Deepesh E WhobreyCanadaAnna Fali UNQUALIFIED
Ivar R WieserJapanElwin Sharvill RENEWAL
Jeanfrancois F WhobreyJapanIoni Bowcher PROPOSAL
Octavia A MaletGermanyAmy Elsner UNQUALIFIED
Ricardo X FerenczGermanyStephen Shaw NEGOTIATION
Jones V NestleBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois B ChuiIndiaAsiya Javayant NEW
Emily O MacleadFranceAmy Elsner NEGOTIATION
Adams I ButtBrazilOnyama Limba NEW
Darci Y DarakjyCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois D NickaSpainAmy Elsner NEW
Jefferson F AlbaresIndiaAmy Elsner PROPOSAL
Alejandro J AlbaresUnited KingdomAnna Fali UNQUALIFIED
Julie P VocelkaGermanyElwin Sharvill PROPOSAL
Juan X WhobreyRussiaAsiya Javayant RENEWAL
Greenwood R RutaItalyIoni Bowcher RENEWAL
Kadeem Q MorascaFranceBernardo Dominic UNQUALIFIED
Johnson H RimArgentinaElwin Sharvill NEGOTIATION
Alejandro M PaprockiUnited KingdomBernardo Dominic PROPOSAL
Izzy R RutaRussiaBernardo Dominic QUALIFIED
Sinclair V StockhamAustraliaStephen Shaw PROPOSAL
Leja Q OstroskyIndiaIvan Magalhaes UNQUALIFIED
Murillo N FlosiFranceBernardo Dominic PROPOSAL
Francesco J CampainAustraliaAsiya Javayant NEW
Adams V DarakjyIndiaAmy Elsner QUALIFIED
Claire B WhobreySpainBernardo Dominic RENEWAL
Isabel H MaletIndiaBernardo Dominic QUALIFIED
Chavez V SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Leon T VenereUnited KingdomAsiya Javayant PROPOSAL
Morrow S SaylorsItalyAmy Elsner PROPOSAL
Misaki J MaletItalyXuxue Feng UNQUALIFIED
Johnson W MaletIndiaStephen Shaw NEW
Munro Z BologniaIndiaAnna Fali NEW

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