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
Isabel H InouyeIndiaIoni Bowcher QUALIFIED
Kadeem P FigeroaFranceAsiya Javayant RENEWAL
Tony Y VenereFranceElwin Sharvill NEGOTIATION
Salvatore S ShinkoIndiaBernardo Dominic NEW
Misaki A CaldareraArgentinaIoni Bowcher PROPOSAL
Ashley A WaycottCanadaAsiya Javayant QUALIFIED
Leon M SaylorsRussiaAsiya Javayant NEW
Jones R ButtBrazilIvan Magalhaes NEW
Jennifer M SergiBrazilOnyama Limba NEGOTIATION
Costa R TollnerFranceXuxue Feng RENEWAL
Octavia W FigeroaGermanyAnna Fali RENEWAL
Claire Y MaletFranceAmy Elsner PROPOSAL
Emily D WaycottBrazilAmy Elsner PROPOSAL
Rodrigues K KuskoFranceIoni Bowcher UNQUALIFIED
Wickens R MaletAustraliaAnna Fali NEW
Clifford E KuskoItalyXuxue Feng PROPOSAL
Rodrigues T ShinkoSpainIvan Magalhaes QUALIFIED
Ivar E MarrierAustraliaAnna Fali QUALIFIED
Arvin S DoeItalyAmy Elsner UNQUALIFIED
Isabel R StockhamAustraliaStephen Shaw RENEWAL
Maisha Z MaletRussiaBernardo Dominic PROPOSAL
Deepesh T VocelkaAustraliaAnna Fali PROPOSAL
Aruna D StensethItalyAnna Fali NEW
Leja W MarrierArgentinaAsiya Javayant UNQUALIFIED
Jennifer S RulapaughIndiaOnyama Limba RENEWAL
Stacey Y FigeroaIndiaBernardo Dominic RENEWAL
Aika L SlusarskiJapanIoni Bowcher PROPOSAL
Arvin D PerinBrazilIoni Bowcher RENEWAL
David A GauchoAustraliaBernardo Dominic QUALIFIED
Munro F OldroydUnited KingdomAmy Elsner NEW
Jennifer C MaletItalyBernardo Dominic UNQUALIFIED
Aika K KolmetzRussiaAsiya Javayant PROPOSAL
Jefferson C CaudyRussiaAnna Fali NEW
Aditya U PerinArgentinaAnna Fali RENEWAL
James M RimRussiaElwin Sharvill RENEWAL
Juan E FlosiIndiaAmy Elsner NEW
Costa G SaylorsCanadaAmy Elsner RENEWAL
Wickens C DoeBrazilIoni Bowcher UNQUALIFIED
Costa R OstroskyRussiaOnyama Limba NEGOTIATION
Aika E ShinkoArgentinaStephen Shaw NEW
Rodrigues N MaletItalyElwin Sharvill NEW
Munro F PoquetteRussiaXuxue Feng QUALIFIED
Jennifer T GillianFranceAsiya Javayant NEW
Maisha B AmigonJapanBernardo Dominic RENEWAL
Emily Y FlosiRussiaAnna Fali UNQUALIFIED
Wickens L CaldareraRussiaIoni Bowcher RENEWAL
Emily O FerenczBrazilAnna Fali UNQUALIFIED
Darci X RutaCanadaBernardo Dominic PROPOSAL
Juan K DilliardBrazilOnyama Limba PROPOSAL
Juan P MarrierGermanyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha U BriddickIndiaXuxue Feng RENEWAL
Rodrigues C WieserCanadaAsiya Javayant UNQUALIFIED
Julie S BologniaUnited KingdomXuxue Feng QUALIFIED
Julie V FerenczSpainIoni Bowcher NEW
Leon W SaylorsArgentinaAnna Fali PROPOSAL
Jones W NickaUnited KingdomBernardo Dominic NEW
Ricardo D ButtCanadaOnyama Limba PROPOSAL
Tony D PaprockiIndiaAnna Fali NEGOTIATION
Leja B GarufiGermanyElwin Sharvill PROPOSAL
Alejandro D MacleadAustraliaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci R IturbideBrazil2026-08-06Feltz Printing Service NEGOTIATION64Ioni Bowcher
1001Clifford X SergiBrazil2026-08-21Truhlar And Truhlar Attys NEGOTIATION53Anna Fali
1002Emily O PaprockiGermany2026-08-16Chemel, James L Cpa RENEWAL61Ioni Bowcher
1003Cody T BologniaCanada2026-08-15Truhlar And Truhlar Attys QUALIFIED54Elwin Sharvill
1004Jones N VenereIndia2026-08-03Rangoni Of Florence NEW74Bernardo Dominic
1005Salvatore J CampainFrance2026-08-23King, Christopher A Esq PROPOSAL43Xuxue Feng
1006Alejandro F NestleJapan2026-08-14Morlong Associates QUALIFIED98Bernardo Dominic
1007Wickens B FerenczBrazil2026-08-20Buckley Miller Wright UNQUALIFIED25Asiya Javayant
1008David O GauchoItaly2026-08-13Rousseaux, Michael Esq NEGOTIATION17Elwin Sharvill
1009Aruna U ButtFrance2026-08-13Feltz Printing Service QUALIFIED63Xuxue Feng
1010Greenwood J PerinBrazil2026-08-20Chapman, Ross E Esq RENEWAL38Amy Elsner
1011Morrow K NestleCanada2026-08-16Benton, John B Jr NEGOTIATION93Onyama Limba
1012Ivar P RulapaughRussia2026-08-27Benton, John B Jr QUALIFIED34Stephen Shaw
1013James G BowleyCanada2026-08-18Rangoni Of Florence QUALIFIED7Amy Elsner
1014Ivar F DoeArgentina2026-08-23Rousseaux, Michael Esq NEGOTIATION45Xuxue Feng
1015Misaki H GlickFrance2026-08-29Benton, John B Jr QUALIFIED32Onyama Limba
1016Faith D SaylorsRussia2026-08-19Benton, John B Jr PROPOSAL5Bernardo Dominic
1017Salvatore Q ButtFrance2026-08-28Feltz Printing Service UNQUALIFIED48Asiya Javayant
1018Antonio Y BologniaAustralia2026-08-04Morlong Associates RENEWAL88Asiya Javayant
1019Maria T StockhamRussia2026-08-31Chanay, Jeffrey A Esq QUALIFIED42Ioni Bowcher
1020Kaitlin M FlosiSpain2026-08-22Buckley Miller Wright UNQUALIFIED97Xuxue Feng
1021Octavia S PerinIndia2026-08-04Chapman, Ross E Esq PROPOSAL73Ioni Bowcher
1022Tony D ShinkoUnited Kingdom2026-08-20Morlong Associates RENEWAL64Amy Elsner
1023Deepesh F RulapaughSpain2026-08-16Buckley Miller Wright NEGOTIATION26Elwin Sharvill
1024Nicolas W KuskoArgentina2026-08-09Truhlar And Truhlar Attys UNQUALIFIED33Stephen Shaw
1025Smith H DarakjyGermany2026-08-04Buckley Miller Wright UNQUALIFIED17Anna Fali
1026Aditya K MaletCanada2026-08-28Rangoni Of Florence PROPOSAL55Asiya Javayant
1027Smith Q ShinkoIndia2026-08-05King, Christopher A Esq UNQUALIFIED73Amy Elsner
1028Silvio G MarrierAustralia2026-08-24Rousseaux, Michael Esq NEGOTIATION53Amy Elsner
1029Murillo R FigeroaUnited Kingdom2026-08-10Chemel, James L Cpa UNQUALIFIED81Ivan Magalhaes
1030Jennifer C MaletUnited Kingdom2026-08-06King, Christopher A Esq NEGOTIATION93Asiya Javayant
1031Kaitlin J GauchoAustralia2026-08-23King, Christopher A Esq RENEWAL39Amy Elsner
1032Arvin H ShinkoUnited Kingdom2026-08-13Commercial Press QUALIFIED7Xuxue Feng
1033David F InouyeIndia2026-08-09Buckley Miller Wright NEW13Asiya Javayant
1034Murillo F GlickFrance2026-08-30Chanay, Jeffrey A Esq NEW10Ivan Magalhaes
1035Arvin M MarrierAustralia2026-08-18Dorl, James J Esq RENEWAL82Elwin Sharvill
1036Wickens I ButtSpain2026-08-23Chemel, James L Cpa PROPOSAL82Elwin Sharvill
1037Ivar Q OstroskyBrazil2026-08-04Rangoni Of Florence NEW49Bernardo Dominic
1038Jefferson B GarufiBrazil2026-08-10Feltz Printing Service UNQUALIFIED66Elwin Sharvill
1039David S KuskoAustralia2026-08-25Truhlar And Truhlar Attys UNQUALIFIED43Ivan Magalhaes
1040Julie Z ButtUnited Kingdom2026-08-07Dorl, James J Esq NEW57Onyama Limba
1041Maria L CaudyBrazil2026-08-25Feiner Bros UNQUALIFIED38Ivan Magalhaes
1042Arvin H OldroydItaly2026-08-11Benton, John B Jr NEW10Onyama Limba
1043Wickens K WhobreyJapan2026-08-09Benton, John B Jr NEGOTIATION65Elwin Sharvill
1044Smith W StockhamBrazil2026-08-11Buckley Miller Wright RENEWAL55Anna Fali
1045Kaitlin Y DoeFrance2026-08-23Chanay, Jeffrey A Esq NEGOTIATION20Anna Fali
1046Salvatore S MarrierCanada2026-08-21Chemel, James L Cpa NEGOTIATION25Amy Elsner
1047Wickens T MaletGermany2026-08-08Morlong Associates UNQUALIFIED30Onyama Limba
1048Adams T BowleyUnited Kingdom2026-08-19King, Christopher A Esq QUALIFIED79Onyama Limba
1049Alejandro U BologniaItaly2026-08-27Feiner Bros NEGOTIATION70Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Munro U MarrierCanadaAmy Elsner PROPOSAL
Deepesh Z RulapaughAustraliaStephen Shaw QUALIFIED
Misaki S ShinkoSpainIoni Bowcher NEGOTIATION
Stacey T BowleyBrazilAsiya Javayant QUALIFIED
Stacey Y MarrierFranceXuxue Feng NEGOTIATION
Kadeem M ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Ivar V SergiIndiaStephen Shaw RENEWAL
Tony Y RoysterFranceIoni Bowcher NEGOTIATION
Julie Y FerenczJapanAmy Elsner RENEWAL
Ricardo B AlbaresSpainElwin Sharvill UNQUALIFIED
Sinclair N CaudyAustraliaIvan Magalhaes QUALIFIED
Jefferson F FlosiItalyAmy Elsner RENEWAL
Antonio P InouyeArgentinaAsiya Javayant UNQUALIFIED
Deepesh D CampainJapanXuxue Feng PROPOSAL
Mujtaba H GlickJapanAsiya Javayant PROPOSAL
Darci J PerinFranceBernardo Dominic RENEWAL
Salvatore P MaletBrazilAsiya Javayant UNQUALIFIED
Leon A GillianRussiaXuxue Feng QUALIFIED
Maria F ButtAustraliaElwin Sharvill QUALIFIED
Cody U IturbideArgentinaBernardo Dominic NEGOTIATION
Jones Q WhobreyUnited KingdomIoni Bowcher NEW
Mayumi X StockhamGermanyAmy Elsner RENEWAL
Morrow E BowleyGermanyIoni Bowcher UNQUALIFIED
Darci W ChuiAustraliaIoni Bowcher NEW
Antonio N StockhamItalyXuxue Feng PROPOSAL
Johnson Y VocelkaItalyStephen Shaw UNQUALIFIED
Rodrigues L DarakjyFranceIoni Bowcher NEGOTIATION
Aruna V RulapaughCanadaXuxue Feng QUALIFIED
Jeanfrancois R PerinCanadaOnyama Limba PROPOSAL
Emily N RimCanadaBernardo Dominic NEW
Kaitlin Z ButtGermanyStephen Shaw NEGOTIATION
Ricardo I GillianAustraliaStephen Shaw RENEWAL
Misaki F SlusarskiSpainAmy Elsner PROPOSAL
James T CaldareraRussiaAmy Elsner QUALIFIED
Mayumi Q IturbideItalyAsiya Javayant PROPOSAL
Francesco Q SaylorsJapanOnyama Limba RENEWAL
Francesco C WaycottRussiaAsiya Javayant QUALIFIED
Silvio W NestleGermanyIoni Bowcher NEGOTIATION
Greenwood Z SlusarskiFranceXuxue Feng QUALIFIED
Antonio E NestleAustraliaStephen Shaw NEW
Johnson R BriddickIndiaStephen Shaw QUALIFIED
Mayumi I GlickCanadaOnyama Limba PROPOSAL
James L IturbideItalyElwin Sharvill QUALIFIED
Faith A AmigonAustraliaOnyama Limba PROPOSAL
Ivar X CaudyIndiaXuxue Feng RENEWAL
Jeanfrancois C BowleyGermanyStephen Shaw RENEWAL
Izzy H RoysterArgentinaAsiya Javayant PROPOSAL
Adams Q ButtUnited KingdomXuxue Feng UNQUALIFIED
Johnson Q KolmetzGermanyIvan Magalhaes RENEWAL
Leja J RoysterJapanBernardo Dominic NEW
Frozen Columns
Name
Antonio R Dilliard
Cody G Oldroyd
Isabel E Inouye
Ricardo H Marrier
Cody N Venere
Ivar U Waycott
Ricardo V Whobrey
Faith Z Campain
Silvio K Chui
Ivar H Garufi
Greenwood Z Shinko
Faith H Waycott
Clifford G Caldarera
Wickens X Royster
Isabel Z Stenseth
Jones D Gillian
Misaki D Malet
Aika J Schemmer
Tony Q Venere
Sinclair K Malet
Mujtaba G Inouye
Darci M Vocelka
Darci M Slusarski
Chavez Z Nestle
Adams W Perin
Salvatore X Oldroyd
Mujtaba A Bolognia
Isabel N Kolmetz
Greenwood T Gaucho
Kaitlin L Shinko
Adams W Albares
Ricardo R Caldarera
Jennifer F Doe
Rodrigues D Gaucho
David C Wieser
Aditya O Stockham
Francesco W Nicka
Ricardo D Campain
Antonio P Nicka
Sinclair J Darakjy
Alejandro V Tollner
Aruna F Nicka
Antonio E Ferencz
Clifford A Malet
Rodrigues O Amigon
Clifford T Kusko
Faith E Gillian
Ashley H Whobrey
Jones P Caldarera
Nicolas I Iturbide
IdCountryDate
1000Australia2026-08-06
1001United Kingdom2026-08-16
1002France2026-08-14
1003Argentina2026-08-22
1004United Kingdom2026-08-02
1005Canada2026-08-21
1006Japan2026-08-10
1007Argentina2026-08-02
1008Brazil2026-08-12
1009Australia2026-08-25
1010Italy2026-08-25
1011Japan2026-08-16
1012France2026-08-26
1013India2026-08-02
1014India2026-08-06
1015India2026-08-16
1016Canada2026-08-20
1017Japan2026-08-09
1018Japan2026-08-18
1019Germany2026-08-09
1020Argentina2026-08-31
1021Japan2026-08-11
1022United Kingdom2026-08-20
1023Italy2026-08-27
1024United Kingdom2026-08-13
1025Russia2026-08-29
1026Italy2026-08-26
1027India2026-08-29
1028Germany2026-08-18
1029Argentina2026-08-20
1030Australia2026-08-31
1031Canada2026-08-29
1032Russia2026-08-13
1033United Kingdom2026-08-04
1034India2026-08-31
1035Canada2026-08-21
1036India2026-08-16
1037India2026-08-04
1038Australia2026-08-09
1039India2026-08-26
1040Argentina2026-08-28
1041France2026-08-12
1042France2026-08-11
1043Brazil2026-08-03
1044United Kingdom2026-08-15
1045India2026-08-29
1046India2026-08-20
1047Canada2026-08-15
1048Spain2026-08-06
1049Australia2026-08-20

On-Demand Data

NameIdCountryDate
Chavez W Doe1000Canada2026-08-31
Jefferson S Paprocki1001Italy2026-08-05
Stacey V Foller1002Brazil2026-08-20
Leon E Oldroyd1003France2026-08-26
Jones X Kolmetz1004Italy2026-08-28
Smith F Garufi1005Argentina2026-08-29
Chavez A Waycott1006Japan2026-08-12
Emily D Campain1007Italy2026-08-09
Julie J Albares1008France2026-08-23
Rodrigues L Butt1009Italy2026-08-10
Izzy F Amigon1010Germany2026-08-15
Kaitlin G Vocelka1011Australia2026-08-10
Francesco G Tollner1012United Kingdom2026-08-12
Aruna J Kolmetz1013Italy2026-08-20
Deepesh C Iturbide1014United Kingdom2026-08-05
Izzy O Ostrosky1015Italy2026-08-04
Ashley N Ruta1016France2026-08-23
Darci K Rim1017Argentina2026-08-30
Jeanfrancois W Caldarera1018United Kingdom2026-08-03
David O Sergi1019Australia2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro V FollerAustraliaStephen Shaw PROPOSAL
Stacey J DarakjyBrazilElwin Sharvill NEW
Faith J SlusarskiSpainIoni Bowcher NEGOTIATION
Deepesh F CampainIndiaBernardo Dominic PROPOSAL
Aditya N AmigonGermanyXuxue Feng NEW
James G SaylorsJapanIoni Bowcher NEW
Francesco S FlosiAustraliaOnyama Limba QUALIFIED
Salvatore E RulapaughIndiaIoni Bowcher NEW
Sinclair H VenereFranceBernardo Dominic NEGOTIATION
David X WhobreyJapanElwin Sharvill UNQUALIFIED
Mujtaba W GauchoBrazilElwin Sharvill QUALIFIED
Claire V BologniaRussiaAnna Fali NEW
Cody T FigeroaArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois D CaldareraCanadaAmy Elsner UNQUALIFIED
Maria Y FigeroaJapanOnyama Limba QUALIFIED
Morrow L BologniaBrazilAmy Elsner QUALIFIED
Darci Y MorascaGermanyStephen Shaw QUALIFIED
Misaki O StensethIndiaElwin Sharvill UNQUALIFIED
James L CaudyJapanOnyama Limba PROPOSAL
Mujtaba I KuskoBrazilAmy Elsner RENEWAL
Greenwood X MarrierGermanyStephen Shaw PROPOSAL
Aruna D BowleyCanadaBernardo Dominic UNQUALIFIED
David J BowleyAustraliaAmy Elsner NEGOTIATION
Clifford P SlusarskiFranceBernardo Dominic NEW
Smith B InouyeIndiaAnna Fali QUALIFIED
Greenwood P SaylorsArgentinaAnna Fali QUALIFIED
Morrow L GillianItalyIoni Bowcher NEW
Maisha C GlickSpainIvan Magalhaes UNQUALIFIED
Smith I ShinkoItalyOnyama Limba NEW
Deepesh C SlusarskiBrazilOnyama Limba QUALIFIED
Murillo N WaycottArgentinaStephen Shaw PROPOSAL
Aruna J StockhamArgentinaIoni Bowcher RENEWAL
James M CampainRussiaAnna Fali RENEWAL
Smith E PoquetteSpainOnyama Limba NEW
Leja C AmigonJapanAsiya Javayant NEGOTIATION
Julie A BowleyJapanAnna Fali RENEWAL
James P ButtGermanyBernardo Dominic NEW
Munro W BologniaAustraliaStephen Shaw QUALIFIED
Leja A AlbaresGermanyIvan Magalhaes UNQUALIFIED
Misaki X FollerFranceElwin Sharvill 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>