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
James E TollnerBrazilBernardo Dominic PROPOSAL
Octavia R InouyeCanadaIoni Bowcher QUALIFIED
Faith H VocelkaFranceAsiya Javayant PROPOSAL
Smith N DilliardUnited KingdomOnyama Limba QUALIFIED
Johnson O RoysterUnited KingdomAnna Fali QUALIFIED
Ivar G PaprockiRussiaStephen Shaw NEW
Misaki Y KolmetzItalyAsiya Javayant UNQUALIFIED
Francesco I SaylorsUnited KingdomElwin Sharvill RENEWAL
Ivar M RulapaughFranceIvan Magalhaes NEW
Jeanfrancois K DoeArgentinaAsiya Javayant PROPOSAL
Kaitlin C CaudyBrazilElwin Sharvill PROPOSAL
Aditya C GarufiArgentinaIoni Bowcher UNQUALIFIED
Darci X KolmetzItalyAsiya Javayant UNQUALIFIED
Aruna L GarufiUnited KingdomOnyama Limba UNQUALIFIED
Maria J ButtAustraliaStephen Shaw PROPOSAL
Ivar X SaylorsFranceStephen Shaw QUALIFIED
Jeanfrancois X GauchoItalyXuxue Feng NEGOTIATION
Kadeem U KuskoArgentinaIoni Bowcher NEW
Nicolas Z RoysterRussiaAnna Fali NEW
Ashley N FerenczCanadaAnna Fali NEGOTIATION
Costa I RutaBrazilOnyama Limba NEGOTIATION
Antonio W GillianItalyAsiya Javayant UNQUALIFIED
Johnson F NickaFranceStephen Shaw NEGOTIATION
Silvio D RutaJapanStephen Shaw QUALIFIED
Adams J AlbaresSpainAsiya Javayant PROPOSAL
Kadeem Q VenereGermanyAnna Fali QUALIFIED
Jennifer M DarakjyFranceAmy Elsner RENEWAL
Leja U WhobreyJapanXuxue Feng RENEWAL
Smith P RutaBrazilOnyama Limba RENEWAL
Sinclair A MarrierItalyXuxue Feng NEGOTIATION
Aruna Y ButtSpainBernardo Dominic UNQUALIFIED
Cody M MorascaItalyOnyama Limba NEW
Ashley C NestleSpainBernardo Dominic PROPOSAL
Sinclair G CampainAustraliaOnyama Limba RENEWAL
Stacey E PerinItalyBernardo Dominic NEW
Faith Y ChuiUnited KingdomStephen Shaw UNQUALIFIED
Faith C WhobreyJapanIoni Bowcher UNQUALIFIED
Adams O MarrierGermanyIoni Bowcher PROPOSAL
Jeanfrancois H NestleJapanIvan Magalhaes UNQUALIFIED
Misaki K CaudyRussiaXuxue Feng UNQUALIFIED
Stacey M PaprockiGermanyStephen Shaw RENEWAL
Faith V RutaSpainXuxue Feng NEW
Deepesh Z DilliardGermanyXuxue Feng QUALIFIED
Claire V SergiBrazilElwin Sharvill NEW
Faith G StensethFranceAsiya Javayant UNQUALIFIED
Alejandro F OldroydRussiaAnna Fali UNQUALIFIED
Alejandro G SlusarskiSpainAnna Fali UNQUALIFIED
James C MaletAustraliaBernardo Dominic NEW
Leon S RutaGermanyStephen Shaw QUALIFIED
Clifford T WaycottArgentinaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Alejandro W GauchoCanadaIvan Magalhaes RENEWAL
Arvin R InouyeGermanyIvan Magalhaes NEGOTIATION
Emily W OstroskyArgentinaBernardo Dominic NEW
Aditya H GauchoSpainAmy Elsner UNQUALIFIED
Aika J FlosiBrazilAsiya Javayant QUALIFIED
Greenwood C GlickJapanStephen Shaw NEW
Mayumi W PaprockiArgentinaAsiya Javayant RENEWAL
Silvio X PaprockiGermanyAmy Elsner QUALIFIED
Emily R SaylorsItalyAmy Elsner NEW
Ricardo Y SergiUnited KingdomStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja K BologniaCanada2026-07-25Rangoni Of Florence NEGOTIATION3Amy Elsner
1001Mujtaba L DoeBrazil2026-07-20Morlong Associates PROPOSAL31Asiya Javayant
1002Darci D CaudyBrazil2026-08-08Buckley Miller Wright PROPOSAL85Anna Fali
1003Leon N CaldareraBrazil2026-07-28Dorl, James J Esq UNQUALIFIED55Xuxue Feng
1004Stacey K PaprockiUnited Kingdom2026-07-28Benton, John B Jr UNQUALIFIED21Onyama Limba
1005Jefferson H CampainCanada2026-08-11Benton, John B Jr NEW63Elwin Sharvill
1006Salvatore Z StensethCanada2026-07-16Feltz Printing Service RENEWAL0Ioni Bowcher
1007Ivar K NickaCanada2026-08-07Feiner Bros RENEWAL59Ioni Bowcher
1008Smith L ShinkoAustralia2026-08-09Morlong Associates QUALIFIED56Anna Fali
1009Johnson T MorascaIndia2026-08-09Buckley Miller Wright PROPOSAL73Anna Fali
1010Jones B VocelkaSpain2026-07-15Feiner Bros QUALIFIED46Bernardo Dominic
1011Aditya Q GarufiSpain2026-07-21Commercial Press RENEWAL71Xuxue Feng
1012Aruna B WieserBrazil2026-07-25Benton, John B Jr RENEWAL91Anna Fali
1013Ivar H BowleyItaly2026-08-11Chanay, Jeffrey A Esq NEW41Ivan Magalhaes
1014Faith I GarufiBrazil2026-08-09Benton, John B Jr QUALIFIED22Anna Fali
1015Costa P StockhamJapan2026-07-30Truhlar And Truhlar Attys QUALIFIED52Stephen Shaw
1016Nicolas E NestleItaly2026-08-08Commercial Press UNQUALIFIED75Amy Elsner
1017Misaki A IturbideIndia2026-07-15Rangoni Of Florence QUALIFIED51Xuxue Feng
1018Francesco J MorascaArgentina2026-07-26Rangoni Of Florence UNQUALIFIED1Asiya Javayant
1019Silvio O RimArgentina2026-08-08Chanay, Jeffrey A Esq PROPOSAL7Onyama Limba
1020Julie H WieserRussia2026-07-26Printing Dimensions PROPOSAL22Xuxue Feng
1021Misaki Q DarakjyBrazil2026-08-08Printing Dimensions RENEWAL42Ivan Magalhaes
1022Munro I MorascaRussia2026-07-17Feiner Bros NEW4Elwin Sharvill
1023James V AlbaresBrazil2026-07-22Rangoni Of Florence PROPOSAL34Bernardo Dominic
1024Ashley C KuskoBrazil2026-07-18Feltz Printing Service RENEWAL15Amy Elsner
1025Arvin M VenereCanada2026-08-11Buckley Miller Wright QUALIFIED64Asiya Javayant
1026Silvio V PerinUnited Kingdom2026-07-23King, Christopher A Esq RENEWAL72Amy Elsner
1027Misaki R VenereAustralia2026-07-30Buckley Miller Wright RENEWAL35Onyama Limba
1028Jefferson J SchemmerUnited Kingdom2026-07-13Printing Dimensions NEW25Ioni Bowcher
1029Francesco K KuskoItaly2026-07-27Rangoni Of Florence PROPOSAL41Onyama Limba
1030Maisha X MorascaSpain2026-07-18Chanay, Jeffrey A Esq NEW83Asiya Javayant
1031Arvin O PaprockiRussia2026-07-26Feltz Printing Service NEW28Stephen Shaw
1032Stacey G AlbaresFrance2026-08-05Commercial Press QUALIFIED77Onyama Limba
1033Claire I NestleUnited Kingdom2026-07-13Truhlar And Truhlar Attys NEW20Bernardo Dominic
1034Maisha Q VenereCanada2026-07-30Chapman, Ross E Esq QUALIFIED12Amy Elsner
1035Darci F DarakjyJapan2026-07-14Chapman, Ross E Esq UNQUALIFIED95Anna Fali
1036Aditya Q WieserBrazil2026-08-05Printing Dimensions NEW2Elwin Sharvill
1037Darci U FerenczBrazil2026-07-29Printing Dimensions NEW39Onyama Limba
1038Jeanfrancois L CampainItaly2026-07-20Chapman, Ross E Esq PROPOSAL3Bernardo Dominic
1039Murillo G StockhamItaly2026-07-15Buckley Miller Wright RENEWAL22Anna Fali
1040Juan V KuskoRussia2026-08-09Feltz Printing Service QUALIFIED20Asiya Javayant
1041Aika D BriddickRussia2026-07-18Commercial Press NEW35Amy Elsner
1042Mujtaba W VocelkaAustralia2026-07-13Truhlar And Truhlar Attys NEGOTIATION22Ioni Bowcher
1043Leon B GillianItaly2026-07-15Buckley Miller Wright RENEWAL34Onyama Limba
1044Costa R SaylorsUnited Kingdom2026-08-07King, Christopher A Esq NEGOTIATION50Amy Elsner
1045Francesco A KolmetzAustralia2026-07-20Rangoni Of Florence UNQUALIFIED64Amy Elsner
1046Nicolas I TollnerUnited Kingdom2026-07-13Commercial Press RENEWAL57Ivan Magalhaes
1047Aika B MacleadBrazil2026-08-09King, Christopher A Esq NEGOTIATION21Asiya Javayant
1048Sinclair Z TollnerItaly2026-07-16King, Christopher A Esq RENEWAL93Stephen Shaw
1049Nicolas O PerinBrazil2026-07-15Feltz Printing Service NEW55Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues R DarakjyBrazilIvan Magalhaes NEGOTIATION
Deepesh X KolmetzIndiaAnna Fali QUALIFIED
Cody Q DarakjyArgentinaAsiya Javayant NEGOTIATION
Aika D MacleadIndiaAmy Elsner UNQUALIFIED
Greenwood A TollnerItalyElwin Sharvill NEGOTIATION
Salvatore H NestleIndiaOnyama Limba RENEWAL
Rodrigues S FerenczIndiaBernardo Dominic UNQUALIFIED
Aika T FigeroaArgentinaAnna Fali NEGOTIATION
Ivar U DarakjyJapanAnna Fali QUALIFIED
Salvatore V GlickUnited KingdomIvan Magalhaes QUALIFIED
Jennifer R RutaJapanIoni Bowcher NEGOTIATION
Clifford A ShinkoArgentinaAmy Elsner NEGOTIATION
Greenwood C ButtArgentinaOnyama Limba QUALIFIED
Misaki R PaprockiBrazilAsiya Javayant NEW
Morrow Y SchemmerAustraliaOnyama Limba PROPOSAL
Greenwood H AmigonRussiaElwin Sharvill NEGOTIATION
Aruna Z AlbaresIndiaElwin Sharvill UNQUALIFIED
Morrow P SaylorsGermanyIvan Magalhaes PROPOSAL
David X AmigonRussiaAmy Elsner NEGOTIATION
Tony J CaldareraJapanBernardo Dominic NEW
Stacey O CampainAustraliaBernardo Dominic RENEWAL
Morrow M PoquetteSpainIvan Magalhaes NEW
Jefferson G FigeroaBrazilStephen Shaw PROPOSAL
Salvatore Z WaycottFranceElwin Sharvill NEGOTIATION
Alejandro L FerenczFranceAnna Fali NEW
Darci R PoquetteIndiaBernardo Dominic PROPOSAL
Faith X InouyeArgentinaAmy Elsner RENEWAL
Aika S NestleArgentinaAnna Fali QUALIFIED
Leon P RimAustraliaAnna Fali PROPOSAL
Ashley A GarufiBrazilXuxue Feng RENEWAL
Isabel X GauchoJapanElwin Sharvill UNQUALIFIED
Arvin W NestleUnited KingdomIoni Bowcher NEGOTIATION
Julie C ShinkoIndiaOnyama Limba QUALIFIED
Chavez H TollnerIndiaOnyama Limba PROPOSAL
Morrow E FollerArgentinaIoni Bowcher NEW
Aditya R AmigonJapanBernardo Dominic NEW
Maisha P DilliardItalyStephen Shaw NEW
Aditya C VocelkaJapanElwin Sharvill RENEWAL
Aika T GarufiUnited KingdomAmy Elsner UNQUALIFIED
Misaki C InouyeCanadaOnyama Limba UNQUALIFIED
Arvin V BologniaAustraliaOnyama Limba RENEWAL
Ivar F CampainJapanElwin Sharvill NEW
Julie W MaletAustraliaOnyama Limba NEGOTIATION
Rodrigues H FerenczArgentinaBernardo Dominic RENEWAL
Juan P MacleadGermanyElwin Sharvill QUALIFIED
Darci S OstroskySpainAnna Fali PROPOSAL
Julie A OldroydUnited KingdomAsiya Javayant RENEWAL
Chavez B RimFranceBernardo Dominic NEGOTIATION
Isabel D VenereUnited KingdomStephen Shaw QUALIFIED
Smith I CaldareraIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Salvatore E Dilliard
Alejandro G Iturbide
Isabel B Caldarera
Chavez F Rulapaugh
Mayumi I Glick
Munro I Marrier
Ricardo J Kolmetz
Chavez J Tollner
Juan K Sergi
Rodrigues U Gaucho
Greenwood H Figeroa
Johnson A Caldarera
Morrow M Darakjy
Nicolas C Bolognia
Jefferson P Ferencz
Arvin M Dilliard
Izzy Z Nestle
Mayumi T Whobrey
Tony R Gillian
Kaitlin I Rim
Chavez D Briddick
Munro H Schemmer
Deepesh U Dilliard
Rodrigues L Caldarera
Salvatore X Butt
Murillo E Whobrey
Ivar S Maclead
Julie V Ruta
Morrow L Rim
Jones P Ferencz
Jefferson H Perin
Chavez O Briddick
Maisha X Caudy
Francesco V Stenseth
Maria P Flosi
Leja J Venere
Deepesh G Maclead
Faith O Butt
Costa B Chui
Leja K Marrier
Sinclair V Amigon
Leja V Wieser
Izzy N Marrier
Johnson C Vocelka
Jones P Malet
Arvin H Vocelka
Cody P Ferencz
Aruna Q Schemmer
Leja Q Shinko
Faith T Venere
IdCountryDate
1000Brazil2026-08-11
1001Russia2026-07-14
1002Canada2026-07-29
1003France2026-07-29
1004United Kingdom2026-07-17
1005Argentina2026-08-07
1006India2026-07-30
1007Spain2026-08-01
1008India2026-08-02
1009Russia2026-07-24
1010France2026-07-24
1011Russia2026-08-08
1012France2026-07-27
1013Australia2026-08-05
1014Spain2026-08-05
1015India2026-07-24
1016India2026-07-29
1017Argentina2026-08-05
1018France2026-08-08
1019Spain2026-07-19
1020Argentina2026-07-26
1021Italy2026-07-14
1022Spain2026-07-16
1023Italy2026-07-13
1024Brazil2026-07-15
1025Germany2026-08-01
1026Spain2026-08-11
1027Russia2026-08-11
1028Germany2026-08-07
1029Italy2026-08-01
1030India2026-08-11
1031Brazil2026-07-20
1032Argentina2026-08-09
1033Italy2026-07-14
1034Brazil2026-07-27
1035Russia2026-07-22
1036Australia2026-08-04
1037Canada2026-07-31
1038United Kingdom2026-07-18
1039Australia2026-08-03
1040Brazil2026-07-18
1041France2026-07-22
1042Australia2026-07-15
1043Brazil2026-08-11
1044Italy2026-07-21
1045Canada2026-08-06
1046Canada2026-08-11
1047Germany2026-08-08
1048Italy2026-07-21
1049Brazil2026-07-22

On-Demand Data

NameIdCountryDate
Sinclair V Poquette1000France2026-08-05
Silvio J Rim1001Japan2026-07-19
Smith X Oldroyd1002Spain2026-07-21
Kaitlin S Stenseth1003Russia2026-07-22
Greenwood I Stockham1004Japan2026-07-21
Juan Z Malet1005Japan2026-08-06
Wickens U Waycott1006Spain2026-07-23
Costa G Chui1007Italy2026-07-15
Johnson H Royster1008Japan2026-07-29
Kaitlin R Iturbide1009Canada2026-07-17
Aruna W Bowley1010Australia2026-08-06
Tony X Bolognia1011Italy2026-08-09
Wickens S Doe1012Russia2026-07-20
Maisha T Nestle1013Brazil2026-07-21
Greenwood X Tollner1014France2026-07-30
Jones E Nicka1015Canada2026-07-20
Aditya P Tollner1016Germany2026-07-20
Cody B Perin1017Australia2026-07-14
Wickens F Briddick1018Argentina2026-07-22
Octavia J Bowley1019Australia2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia D MorascaFranceStephen Shaw NEW
Aika J RimBrazilElwin Sharvill RENEWAL
Aika P SlusarskiArgentinaIoni Bowcher RENEWAL
Juan I InouyeBrazilOnyama Limba UNQUALIFIED
Costa H PerinSpainBernardo Dominic RENEWAL
Darci B GarufiJapanXuxue Feng NEGOTIATION
Murillo K GauchoSpainElwin Sharvill QUALIFIED
Kaitlin S ChuiArgentinaIvan Magalhaes RENEWAL
Isabel S DoeJapanBernardo Dominic NEW
Silvio V PoquetteCanadaAmy Elsner NEGOTIATION
Munro M AmigonArgentinaElwin Sharvill NEGOTIATION
Stacey E SergiUnited KingdomIoni Bowcher UNQUALIFIED
Cody B ButtRussiaStephen Shaw UNQUALIFIED
Claire T CaldareraBrazilElwin Sharvill PROPOSAL
Alejandro C BriddickArgentinaIoni Bowcher RENEWAL
Munro R RimArgentinaOnyama Limba UNQUALIFIED
Deepesh W WieserSpainOnyama Limba NEW
Aditya V GarufiIndiaStephen Shaw NEGOTIATION
Darci Q RutaUnited KingdomOnyama Limba PROPOSAL
Sinclair Y RutaUnited KingdomAsiya Javayant UNQUALIFIED
Kadeem W GillianBrazilBernardo Dominic NEW
Nicolas K VenereArgentinaBernardo Dominic PROPOSAL
Kadeem X FollerGermanyStephen Shaw RENEWAL
Maisha Q VocelkaAustraliaBernardo Dominic UNQUALIFIED
Deepesh C MorascaUnited KingdomAnna Fali NEW
Darci A RimCanadaAmy Elsner PROPOSAL
Jones G ChuiItalyOnyama Limba NEW
Deepesh K MarrierCanadaIoni Bowcher RENEWAL
Jones F CampainIndiaBernardo Dominic NEGOTIATION
Julie X SchemmerIndiaStephen Shaw NEW
Jones J KolmetzBrazilElwin Sharvill PROPOSAL
Clifford C StensethIndiaXuxue Feng RENEWAL
Jennifer U GillianSpainElwin Sharvill RENEWAL
Deepesh X DilliardCanadaElwin Sharvill UNQUALIFIED
Nicolas V CaudyUnited KingdomBernardo Dominic PROPOSAL
Claire W WieserItalyIvan Magalhaes UNQUALIFIED
Jeanfrancois V GlickCanadaIvan Magalhaes PROPOSAL
Jefferson S WhobreyUnited KingdomAnna Fali NEW
Deepesh P SlusarskiBrazilIvan Magalhaes RENEWAL
Octavia W DilliardJapanAmy Elsner QUALIFIED

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