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
Octavia E CaldareraJapanXuxue Feng QUALIFIED
David T StensethJapanAnna Fali RENEWAL
Leja H MaletSpainStephen Shaw UNQUALIFIED
Morrow I StensethArgentinaStephen Shaw NEW
Sinclair F AlbaresJapanOnyama Limba NEGOTIATION
Arvin T RimSpainIoni Bowcher RENEWAL
Izzy I NestleGermanyAsiya Javayant RENEWAL
Adams V RimBrazilXuxue Feng PROPOSAL
Clifford J RutaArgentinaIvan Magalhaes QUALIFIED
Mujtaba Q PerinIndiaIvan Magalhaes RENEWAL
Arvin E FlosiItalyXuxue Feng PROPOSAL
Munro K RulapaughGermanyStephen Shaw QUALIFIED
Leja S GillianFranceAnna Fali RENEWAL
Izzy C WaycottJapanOnyama Limba QUALIFIED
Ricardo W SlusarskiFranceOnyama Limba RENEWAL
Ashley H MarrierSpainStephen Shaw NEGOTIATION
Mayumi D StensethGermanyBernardo Dominic UNQUALIFIED
Munro N BriddickBrazilStephen Shaw RENEWAL
Nicolas H MarrierItalyOnyama Limba UNQUALIFIED
Kadeem O SaylorsItalyAnna Fali PROPOSAL
Wickens E BriddickBrazilAnna Fali RENEWAL
Kaitlin I GlickBrazilElwin Sharvill QUALIFIED
Mayumi P DarakjyIndiaBernardo Dominic PROPOSAL
Jeanfrancois L MaletBrazilElwin Sharvill NEGOTIATION
Munro Z RutaItalyAnna Fali NEW
Jennifer M RutaJapanIoni Bowcher NEGOTIATION
Jones F ButtItalyOnyama Limba NEW
Munro M RimFranceAsiya Javayant UNQUALIFIED
Ivar Z GarufiGermanyBernardo Dominic PROPOSAL
Costa M VocelkaItalyElwin Sharvill PROPOSAL
Sinclair A StensethIndiaAsiya Javayant PROPOSAL
Aditya D MorascaFranceIvan Magalhaes PROPOSAL
Ivar J MacleadSpainAmy Elsner NEGOTIATION
Isabel C RutaRussiaAmy Elsner NEGOTIATION
Deepesh I GlickItalyOnyama Limba QUALIFIED
Costa K WaycottGermanyAnna Fali QUALIFIED
Johnson D BriddickAustraliaAmy Elsner PROPOSAL
Alejandro X StockhamBrazilXuxue Feng RENEWAL
Salvatore J CampainRussiaAnna Fali RENEWAL
Wickens S GillianGermanyElwin Sharvill RENEWAL
Johnson W WhobreyItalyOnyama Limba NEGOTIATION
Francesco S BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Maria U MacleadSpainElwin Sharvill PROPOSAL
Maria P RulapaughUnited KingdomXuxue Feng QUALIFIED
Octavia V MaletArgentinaXuxue Feng NEGOTIATION
Ricardo L VenereCanadaIvan Magalhaes UNQUALIFIED
Emily I ChuiCanadaBernardo Dominic QUALIFIED
Sinclair V BologniaSpainStephen Shaw RENEWAL
Ashley G PerinRussiaIvan Magalhaes UNQUALIFIED
Maria J MorascaBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo O NickaBrazilStephen Shaw NEGOTIATION
Kaitlin J RoysterRussiaAsiya Javayant UNQUALIFIED
Smith Y RulapaughArgentinaElwin Sharvill RENEWAL
Deepesh I DilliardGermanyOnyama Limba RENEWAL
Clifford F InouyeCanadaBernardo Dominic NEGOTIATION
Cody E GlickGermanyAmy Elsner RENEWAL
Mayumi O PaprockiArgentinaAnna Fali RENEWAL
Murillo C CaldareraIndiaAsiya Javayant NEW
Costa P TollnerItalyIvan Magalhaes RENEWAL
Jeanfrancois W DarakjyRussiaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley O GillianCanada2026-07-04Chemel, James L Cpa PROPOSAL51Anna Fali
1001Aditya C MaletArgentina2026-06-21King, Christopher A Esq NEW82Elwin Sharvill
1002Deepesh A RimRussia2026-07-07Truhlar And Truhlar Attys UNQUALIFIED32Asiya Javayant
1003Aika T DoeItaly2026-06-17Feltz Printing Service PROPOSAL76Asiya Javayant
1004Deepesh W SaylorsItaly2026-06-27Chapman, Ross E Esq QUALIFIED52Asiya Javayant
1005Murillo X DilliardRussia2026-06-20Benton, John B Jr UNQUALIFIED6Anna Fali
1006Francesco Q FlosiItaly2026-06-14Rousseaux, Michael Esq PROPOSAL78Amy Elsner
1007Munro O ButtItaly2026-06-21Benton, John B Jr QUALIFIED40Ioni Bowcher
1008Adams A AmigonAustralia2026-06-21Feiner Bros QUALIFIED1Bernardo Dominic
1009Jennifer Q ButtItaly2026-07-05Buckley Miller Wright RENEWAL4Anna Fali
1010Murillo O DoeUnited Kingdom2026-06-30Chemel, James L Cpa NEGOTIATION83Asiya Javayant
1011Morrow P VenereItaly2026-06-17Buckley Miller Wright UNQUALIFIED80Anna Fali
1012Johnson J FollerAustralia2026-06-20Printing Dimensions RENEWAL22Asiya Javayant
1013Aruna W MaletRussia2026-06-11Buckley Miller Wright PROPOSAL8Stephen Shaw
1014Smith E FollerSpain2026-06-09Dorl, James J Esq NEGOTIATION99Elwin Sharvill
1015Mujtaba S WieserAustralia2026-06-22Benton, John B Jr NEGOTIATION32Amy Elsner
1016Maria M ChuiFrance2026-07-04Buckley Miller Wright NEW60Ivan Magalhaes
1017Morrow V DarakjyArgentina2026-06-20King, Christopher A Esq UNQUALIFIED27Anna Fali
1018Misaki D MaletSpain2026-06-14Buckley Miller Wright QUALIFIED90Ivan Magalhaes
1019Munro E NickaAustralia2026-07-08Buckley Miller Wright RENEWAL30Stephen Shaw
1020Isabel F CaldareraSpain2026-06-25Printing Dimensions NEW78Anna Fali
1021Rodrigues Y NestleBrazil2026-06-29Truhlar And Truhlar Attys NEW24Amy Elsner
1022Morrow D KolmetzAustralia2026-06-23Benton, John B Jr NEGOTIATION16Onyama Limba
1023Sinclair D PerinCanada2026-06-18Morlong Associates PROPOSAL28Xuxue Feng
1024Jennifer R IturbideGermany2026-06-24Rousseaux, Michael Esq NEGOTIATION82Xuxue Feng
1025Juan K BologniaUnited Kingdom2026-07-01Rousseaux, Michael Esq NEW85Bernardo Dominic
1026Sinclair W PaprockiIndia2026-07-05Truhlar And Truhlar Attys UNQUALIFIED20Ivan Magalhaes
1027Faith I BowleyGermany2026-07-03Rousseaux, Michael Esq QUALIFIED63Xuxue Feng
1028Smith O VocelkaAustralia2026-07-01Commercial Press NEW68Stephen Shaw
1029Nicolas D PoquetteRussia2026-06-24Rangoni Of Florence QUALIFIED39Xuxue Feng
1030Maria Z SaylorsItaly2026-06-21Rangoni Of Florence NEGOTIATION78Onyama Limba
1031Greenwood X KolmetzJapan2026-06-30Dorl, James J Esq UNQUALIFIED37Ivan Magalhaes
1032Cody G GauchoCanada2026-06-16Commercial Press QUALIFIED39Onyama Limba
1033Wickens F GauchoBrazil2026-06-20Commercial Press NEW38Ivan Magalhaes
1034Alejandro N MorascaAustralia2026-06-13Buckley Miller Wright UNQUALIFIED81Ivan Magalhaes
1035Kadeem C FollerBrazil2026-06-16Chanay, Jeffrey A Esq UNQUALIFIED64Ivan Magalhaes
1036Maria L DarakjyAustralia2026-06-16Dorl, James J Esq UNQUALIFIED46Anna Fali
1037Misaki T PerinGermany2026-06-27Printing Dimensions NEW31Amy Elsner
1038Munro U MaletCanada2026-06-14Chapman, Ross E Esq NEW53Xuxue Feng
1039Jones C BowleyJapan2026-06-29King, Christopher A Esq RENEWAL70Asiya Javayant
1040Costa T MarrierRussia2026-07-08Feiner Bros UNQUALIFIED9Asiya Javayant
1041Silvio P DarakjyJapan2026-06-14Rangoni Of Florence NEW77Xuxue Feng
1042Isabel K AmigonFrance2026-07-07Commercial Press QUALIFIED75Bernardo Dominic
1043Aditya C FollerJapan2026-06-12Benton, John B Jr UNQUALIFIED57Anna Fali
1044Antonio M SaylorsAustralia2026-06-14Commercial Press NEGOTIATION36Asiya Javayant
1045Salvatore V GauchoSpain2026-06-19Chemel, James L Cpa UNQUALIFIED29Anna Fali
1046Emily A DilliardCanada2026-07-04Benton, John B Jr NEW95Asiya Javayant
1047Leon E ShinkoGermany2026-06-12Rangoni Of Florence NEW68Amy Elsner
1048Ivar P WaycottBrazil2026-06-16Commercial Press NEW57Onyama Limba
1049Antonio V DoeAustralia2026-06-13Rangoni Of Florence PROPOSAL65Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Clifford O BriddickArgentinaIoni Bowcher PROPOSAL
Alejandro I FigeroaGermanyAnna Fali UNQUALIFIED
Ashley S GauchoFranceAsiya Javayant RENEWAL
Claire D BologniaItalyStephen Shaw RENEWAL
Faith L MarrierUnited KingdomIvan Magalhaes RENEWAL
Rodrigues R WieserFranceElwin Sharvill NEGOTIATION
Mujtaba T InouyeUnited KingdomIoni Bowcher NEGOTIATION
Chavez S DarakjyBrazilIvan Magalhaes UNQUALIFIED
Leon P VenereSpainIoni Bowcher PROPOSAL
Jefferson Q RimSpainBernardo Dominic NEGOTIATION
Stacey W KuskoIndiaStephen Shaw PROPOSAL
Costa F PerinIndiaElwin Sharvill RENEWAL
Cody Q KuskoUnited KingdomAmy Elsner NEGOTIATION
Ashley M RoysterGermanyIvan Magalhaes UNQUALIFIED
Leja X GillianFranceStephen Shaw RENEWAL
Chavez T OldroydFranceAnna Fali UNQUALIFIED
Maisha U RulapaughFranceAmy Elsner RENEWAL
Smith B CaudyBrazilIvan Magalhaes QUALIFIED
Francesco Q GarufiArgentinaAmy Elsner NEW
Adams E RutaSpainAmy Elsner UNQUALIFIED
James H GillianGermanyAnna Fali QUALIFIED
Sinclair H GlickIndiaAnna Fali QUALIFIED
Jefferson L GarufiGermanyAsiya Javayant UNQUALIFIED
Darci D WaycottIndiaAnna Fali UNQUALIFIED
Antonio D VenereRussiaIvan Magalhaes UNQUALIFIED
Clifford H SchemmerUnited KingdomAsiya Javayant NEW
Nicolas R SlusarskiSpainAnna Fali RENEWAL
Jones F MorascaCanadaElwin Sharvill UNQUALIFIED
Ivar X MacleadUnited KingdomAmy Elsner NEW
Rodrigues L PoquetteUnited KingdomAsiya Javayant PROPOSAL
Jones J RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Nicolas H PoquetteJapanStephen Shaw QUALIFIED
Ashley K WhobreySpainAmy Elsner UNQUALIFIED
Ricardo S DoeJapanOnyama Limba PROPOSAL
Jones F MacleadJapanElwin Sharvill PROPOSAL
Jones B PerinBrazilAmy Elsner NEW
Aika F MarrierAustraliaElwin Sharvill NEW
Emily Y StockhamArgentinaBernardo Dominic PROPOSAL
Leon B SergiIndiaElwin Sharvill NEW
Clifford I SchemmerAustraliaIoni Bowcher RENEWAL
Jefferson I RoysterItalyAmy Elsner RENEWAL
Smith H WhobreyJapanAnna Fali PROPOSAL
Silvio U ChuiGermanyBernardo Dominic UNQUALIFIED
Wickens Q WieserJapanOnyama Limba NEW
Smith F MarrierAustraliaXuxue Feng NEGOTIATION
Jefferson T FigeroaBrazilXuxue Feng PROPOSAL
Juan K GauchoUnited KingdomStephen Shaw PROPOSAL
Nicolas A AlbaresArgentinaAnna Fali NEGOTIATION
Aika H RulapaughAustraliaElwin Sharvill RENEWAL
Misaki D WhobreyRussiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Jones L Shinko
Rodrigues A Foller
Kadeem X Saylors
Jennifer U Bolognia
Leon E Doe
Munro B Tollner
Munro W Briddick
Leja D Vocelka
Ashley J Garufi
Emily U Saylors
Emily M Butt
Salvatore A Caldarera
Greenwood V Paprocki
Maria Q Nestle
Murillo P Whobrey
Murillo Z Garufi
Wickens U Kolmetz
Izzy J Venere
Deepesh W Ferencz
Jennifer K Ferencz
David C Garufi
Maria Y Shinko
Johnson C Nicka
Ricardo Y Schemmer
Juan P Maclead
James V Stenseth
Alejandro W Briddick
Ashley G Kolmetz
Jeanfrancois D Garufi
Cody Y Stockham
Francesco E Venere
Chavez Q Bowley
Isabel N Rim
Aditya E Oldroyd
Ashley W Malet
Tony S Stockham
Clifford S Briddick
Wickens T Morasca
Cody V Dilliard
Deepesh A Tollner
Mujtaba M Briddick
Deepesh I Inouye
David T Rulapaugh
Kadeem V Flosi
Isabel M Gaucho
Arvin D Tollner
Jeanfrancois P Shinko
Smith J Waycott
James U Inouye
Sinclair U Malet
IdCountryDate
1000Brazil2026-06-18
1001Australia2026-06-17
1002Germany2026-06-12
1003Canada2026-06-27
1004United Kingdom2026-06-18
1005Germany2026-06-20
1006Argentina2026-06-25
1007Spain2026-06-17
1008Australia2026-07-01
1009Spain2026-06-15
1010Japan2026-06-16
1011Spain2026-07-01
1012Japan2026-07-08
1013India2026-06-30
1014Argentina2026-07-06
1015United Kingdom2026-06-14
1016Italy2026-06-27
1017Italy2026-06-12
1018Japan2026-07-01
1019France2026-06-25
1020Brazil2026-07-06
1021Russia2026-06-15
1022Italy2026-07-06
1023Russia2026-06-20
1024Italy2026-07-03
1025Australia2026-06-25
1026Germany2026-06-11
1027Germany2026-06-15
1028Australia2026-06-28
1029Argentina2026-07-08
1030Canada2026-06-22
1031Argentina2026-06-24
1032Germany2026-07-04
1033India2026-07-05
1034United Kingdom2026-06-10
1035Italy2026-06-20
1036France2026-06-23
1037Argentina2026-07-02
1038Germany2026-06-27
1039Russia2026-06-16
1040France2026-07-03
1041Russia2026-07-04
1042Argentina2026-06-15
1043Canada2026-06-30
1044Argentina2026-06-16
1045United Kingdom2026-06-21
1046Germany2026-06-14
1047Australia2026-06-17
1048Japan2026-06-22
1049Brazil2026-06-28

On-Demand Data

NameIdCountryDate
Maisha E Ostrosky1000France2026-06-15
Ivar A Oldroyd1001Spain2026-06-11
Darci B Iturbide1002Italy2026-06-15
James Z Saylors1003Australia2026-06-24
Costa H Schemmer1004Spain2026-06-14
Darci Q Paprocki1005Russia2026-07-08
Aditya X Iturbide1006Spain2026-07-07
Jones G Ferencz1007United Kingdom2026-06-13
Aruna R Stockham1008Germany2026-06-21
Nicolas W Whobrey1009Germany2026-06-11
Leja Y Gillian1010Italy2026-07-06
Aditya X Flosi1011Canada2026-07-01
Julie H Paprocki1012Japan2026-06-26
Mayumi U Chui1013Brazil2026-06-29
Leon P Inouye1014Australia2026-06-24
Johnson S Gaucho1015Italy2026-06-16
Ricardo L Butt1016France2026-07-02
Smith B Iturbide1017United Kingdom2026-07-04
Murillo S Saylors1018Spain2026-07-05
Faith K Ruta1019Canada2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer I MaletAustraliaIoni Bowcher UNQUALIFIED
Juan D GauchoFranceIvan Magalhaes NEW
James D IturbideGermanyElwin Sharvill PROPOSAL
Nicolas E WaycottAustraliaIvan Magalhaes NEGOTIATION
Isabel I FigeroaJapanStephen Shaw PROPOSAL
Smith X BologniaItalyXuxue Feng QUALIFIED
Misaki J KuskoRussiaAnna Fali QUALIFIED
Izzy B OldroydCanadaIvan Magalhaes PROPOSAL
Aika R SergiRussiaAnna Fali NEW
Munro W ButtItalyAnna Fali RENEWAL
Deepesh N NestleIndiaOnyama Limba QUALIFIED
Leon R ButtItalyXuxue Feng RENEWAL
Maria C NestleItalyElwin Sharvill QUALIFIED
Smith S BriddickFranceXuxue Feng UNQUALIFIED
Jones B MaletArgentinaAsiya Javayant UNQUALIFIED
Kaitlin M RulapaughFranceOnyama Limba QUALIFIED
James F BriddickArgentinaAnna Fali NEW
Emily I ShinkoGermanyAnna Fali QUALIFIED
Smith D SaylorsItalyXuxue Feng NEGOTIATION
Aditya O MaletFranceOnyama Limba UNQUALIFIED
Rodrigues V InouyeIndiaIoni Bowcher UNQUALIFIED
Munro E MorascaBrazilIoni Bowcher PROPOSAL
Adams U CampainItalyAsiya Javayant NEW
Silvio T MorascaIndiaBernardo Dominic NEGOTIATION
Julie Z CaldareraArgentinaAmy Elsner UNQUALIFIED
Jones Q AmigonUnited KingdomIoni Bowcher QUALIFIED
Salvatore C WhobreyItalyIoni Bowcher RENEWAL
Jeanfrancois Y OldroydSpainIvan Magalhaes PROPOSAL
Stacey T AmigonAustraliaAsiya Javayant UNQUALIFIED
Salvatore D RimGermanyElwin Sharvill RENEWAL
James E BologniaArgentinaAnna Fali RENEWAL
Julie A DarakjyBrazilIoni Bowcher PROPOSAL
Julie E FollerSpainStephen Shaw QUALIFIED
Antonio X StockhamJapanAnna Fali QUALIFIED
Nicolas Q PerinBrazilAnna Fali UNQUALIFIED
Ricardo L SaylorsGermanyBernardo Dominic UNQUALIFIED
Alejandro L GillianFranceAmy Elsner PROPOSAL
Jefferson R TollnerGermanyAmy Elsner NEGOTIATION
Deepesh Y AmigonJapanIvan Magalhaes NEW
Clifford H KolmetzSpainIoni Bowcher PROPOSAL

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