Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Cody F DarakjyGermanyElwin Sharvill UNQUALIFIED
Antonio A NestleItalyStephen Shaw NEGOTIATION
David Y RulapaughUnited KingdomAmy Elsner QUALIFIED
Silvio I BriddickBrazilIoni Bowcher NEW
Maria H TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Cody R FerenczAustraliaXuxue Feng PROPOSAL
Jeanfrancois M VocelkaUnited KingdomAnna Fali QUALIFIED
Arvin P StockhamCanadaIvan Magalhaes PROPOSAL
Nicolas Z OstroskyCanadaOnyama Limba QUALIFIED
Maria A DoeRussiaIoni Bowcher NEGOTIATION
Jeanfrancois Q PaprockiGermanyStephen Shaw PROPOSAL
Tony I MarrierSpainBernardo Dominic PROPOSAL
Costa N OstroskySpainXuxue Feng PROPOSAL
Tony M OstroskyJapanXuxue Feng NEGOTIATION
Jones F ButtSpainIvan Magalhaes NEW
Maisha F RimJapanAnna Fali RENEWAL
Jones C GlickItalyAmy Elsner QUALIFIED
Francesco W GauchoSpainXuxue Feng PROPOSAL
Misaki M MorascaSpainAnna Fali PROPOSAL
Mujtaba T MacleadArgentinaBernardo Dominic PROPOSAL
Silvio H DilliardGermanyIoni Bowcher RENEWAL
Izzy Q RutaSpainAsiya Javayant QUALIFIED
Jefferson C AmigonUnited KingdomXuxue Feng NEW
Aditya V GillianIndiaStephen Shaw UNQUALIFIED
Octavia P OldroydCanadaXuxue Feng UNQUALIFIED
Darci D BologniaAustraliaIvan Magalhaes NEGOTIATION
Kadeem M SchemmerCanadaStephen Shaw UNQUALIFIED
Aditya O PoquetteArgentinaStephen Shaw NEGOTIATION
Chavez Y PerinArgentinaBernardo Dominic QUALIFIED
Stacey M DoeIndiaBernardo Dominic UNQUALIFIED
Clifford Q VenereCanadaBernardo Dominic NEGOTIATION
Alejandro L AlbaresRussiaAnna Fali NEGOTIATION
Julie X GillianAustraliaAsiya Javayant PROPOSAL
Julie L NickaRussiaStephen Shaw NEW
Leon L CaldareraAustraliaElwin Sharvill NEW
David M DoeIndiaIvan Magalhaes RENEWAL
Julie B SlusarskiSpainAsiya Javayant QUALIFIED
Salvatore M WhobreyBrazilAsiya Javayant PROPOSAL
Ricardo N GarufiItalyStephen Shaw QUALIFIED
Ivar N NestleSpainBernardo Dominic PROPOSAL
Adams V ShinkoBrazilIoni Bowcher UNQUALIFIED
Juan F StensethSpainStephen Shaw NEW
David B MacleadIndiaAmy Elsner PROPOSAL
Isabel T ChuiBrazilOnyama Limba UNQUALIFIED
Darci M StockhamJapanIvan Magalhaes NEW
Mayumi T VenereArgentinaBernardo Dominic UNQUALIFIED
Leon B CaldareraIndiaStephen Shaw RENEWAL
Maisha L CaldareraSpainOnyama Limba UNQUALIFIED
Kadeem W MaletJapanIoni Bowcher PROPOSAL
Clifford Q NickaSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois O DoeSpainIoni Bowcher NEW
Ashley F MarrierItalyStephen Shaw UNQUALIFIED
James L CaldareraFranceElwin Sharvill RENEWAL
Antonio Z WaycottSpainElwin Sharvill RENEWAL
Deepesh E GlickItalyAsiya Javayant NEGOTIATION
Cody R CaldareraRussiaAmy Elsner PROPOSAL
Salvatore C SlusarskiBrazilIoni Bowcher PROPOSAL
Claire Y GauchoArgentinaIvan Magalhaes PROPOSAL
Leon C FollerGermanyAsiya Javayant PROPOSAL
Claire M SergiItalyOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams R CaldareraSpain2024-04-14Truhlar And Truhlar Attys QUALIFIED51Amy Elsner
1001James T DoeRussia2024-04-12Chemel, James L Cpa PROPOSAL15Amy Elsner
1002Octavia A ChuiGermany2024-04-18Dorl, James J Esq RENEWAL15Stephen Shaw
1003Kadeem L DoeFrance2024-04-04Feltz Printing Service NEGOTIATION34Onyama Limba
1004Ivar A MacleadItaly2024-04-08Feltz Printing Service RENEWAL36Amy Elsner
1005Stacey A SlusarskiJapan2024-04-23Feltz Printing Service NEGOTIATION74Bernardo Dominic
1006Chavez L StensethUnited Kingdom2024-04-17King, Christopher A Esq UNQUALIFIED75Stephen Shaw
1007Costa M PaprockiCanada2024-04-05Rousseaux, Michael Esq QUALIFIED85Asiya Javayant
1008Silvio N GarufiCanada2024-04-02Commercial Press NEW10Ioni Bowcher
1009Mayumi F RoysterItaly2024-04-08Feltz Printing Service QUALIFIED47Ivan Magalhaes
1010Greenwood Y ShinkoCanada2024-04-15Dorl, James J Esq NEGOTIATION39Onyama Limba
1011Jennifer C AlbaresBrazil2024-04-24Feiner Bros QUALIFIED62Elwin Sharvill
1012Ashley K WhobreyUnited Kingdom2024-04-08Feiner Bros QUALIFIED37Amy Elsner
1013Costa T RulapaughSpain2024-04-07Benton, John B Jr NEGOTIATION44Ioni Bowcher
1014Emily A TollnerRussia2024-03-28King, Christopher A Esq NEW26Amy Elsner
1015Arvin G AmigonUnited Kingdom2024-04-11Chapman, Ross E Esq QUALIFIED7Ioni Bowcher
1016Antonio R DilliardIndia2024-04-21Feltz Printing Service NEGOTIATION90Bernardo Dominic
1017Alejandro J KolmetzBrazil2024-04-26Rousseaux, Michael Esq QUALIFIED97Stephen Shaw
1018Rodrigues C GillianArgentina2024-04-12King, Christopher A Esq QUALIFIED58Anna Fali
1019Jennifer J WhobreyGermany2024-03-30Chanay, Jeffrey A Esq UNQUALIFIED22Xuxue Feng
1020Johnson M RutaSpain2024-04-12King, Christopher A Esq RENEWAL47Ioni Bowcher
1021Cody H PaprockiUnited Kingdom2024-04-01Rousseaux, Michael Esq NEGOTIATION5Bernardo Dominic
1022Alejandro C MorascaFrance2024-04-21Chanay, Jeffrey A Esq NEGOTIATION46Elwin Sharvill
1023Munro R VocelkaJapan2024-04-13Benton, John B Jr RENEWAL53Bernardo Dominic
1024Maria I KuskoJapan2024-04-22Feltz Printing Service QUALIFIED8Elwin Sharvill
1025Johnson B WieserSpain2024-04-19Benton, John B Jr NEGOTIATION69Elwin Sharvill
1026Claire O StensethIndia2024-04-20Chapman, Ross E Esq QUALIFIED72Anna Fali
1027Murillo X DoeGermany2024-04-02Feiner Bros UNQUALIFIED37Onyama Limba
1028Greenwood M MorascaArgentina2024-04-02Chapman, Ross E Esq NEW64Bernardo Dominic
1029Leja O OldroydSpain2024-04-22Benton, John B Jr NEW95Stephen Shaw
1030Murillo S PoquetteCanada2024-04-16Rousseaux, Michael Esq RENEWAL72Xuxue Feng
1031Claire C FollerSpain2024-03-31Rangoni Of Florence QUALIFIED86Ivan Magalhaes
1032Greenwood D RutaIndia2024-04-18Morlong Associates NEGOTIATION66Xuxue Feng
1033Alejandro A ShinkoSpain2024-04-07Rangoni Of Florence NEW81Asiya Javayant
1034Tony Y WhobreyItaly2024-03-29Chemel, James L Cpa NEW40Onyama Limba
1035Nicolas V MaletAustralia2024-04-20Feltz Printing Service QUALIFIED37Amy Elsner
1036Aditya C SaylorsGermany2024-04-11Feltz Printing Service RENEWAL57Stephen Shaw
1037Kaitlin Q WieserItaly2024-04-01Dorl, James J Esq NEGOTIATION6Ioni Bowcher
1038Leja H OldroydSpain2024-04-03Rangoni Of Florence NEGOTIATION74Amy Elsner
1039Leon G DarakjySpain2024-04-26Chapman, Ross E Esq UNQUALIFIED64Stephen Shaw
1040Kadeem F CaldareraBrazil2024-04-02Rousseaux, Michael Esq PROPOSAL21Ioni Bowcher
1041Darci E StensethRussia2024-04-20Chapman, Ross E Esq RENEWAL87Bernardo Dominic
1042Greenwood G SlusarskiCanada2024-04-03Feltz Printing Service NEGOTIATION61Stephen Shaw
1043Maisha A NickaBrazil2024-03-28Feltz Printing Service NEGOTIATION45Ioni Bowcher
1044Greenwood S OldroydRussia2024-04-05Chemel, James L Cpa QUALIFIED73Xuxue Feng
1045Misaki F WaycottRussia2024-04-03Truhlar And Truhlar Attys RENEWAL0Ivan Magalhaes
1046Aditya M MaletRussia2024-04-10Chapman, Ross E Esq UNQUALIFIED45Xuxue Feng
1047Rodrigues E DilliardGermany2024-04-22Feltz Printing Service RENEWAL72Xuxue Feng
1048Darci M FigeroaUnited Kingdom2024-04-21Rangoni Of Florence NEW72Elwin Sharvill
1049Clifford L MaletFrance2024-04-02Benton, John B Jr NEGOTIATION73Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba U FerenczArgentinaIoni Bowcher QUALIFIED
Aika T StockhamJapanElwin Sharvill NEGOTIATION
Cody L CaudyGermanyBernardo Dominic UNQUALIFIED
Silvio K WieserRussiaIoni Bowcher NEW
Cody L SergiSpainElwin Sharvill QUALIFIED
Leon A FigeroaArgentinaIvan Magalhaes NEW
Clifford F FlosiSpainStephen Shaw QUALIFIED
Maisha X FollerJapanIvan Magalhaes QUALIFIED
Deepesh Q FlosiSpainAnna Fali NEW
Stacey R FollerUnited KingdomBernardo Dominic NEW
Costa I DoeUnited KingdomAnna Fali NEGOTIATION
Munro U GauchoArgentinaBernardo Dominic NEW
Rodrigues D FlosiArgentinaIoni Bowcher NEW
Munro D NickaArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois E SlusarskiArgentinaAnna Fali UNQUALIFIED
Maisha F ShinkoAustraliaBernardo Dominic NEW
Kadeem R StensethIndiaAsiya Javayant PROPOSAL
Smith X MacleadGermanyAnna Fali PROPOSAL
Aruna B OstroskyArgentinaAmy Elsner NEGOTIATION
Mujtaba D FlosiBrazilXuxue Feng PROPOSAL
Kadeem E DarakjyRussiaBernardo Dominic NEGOTIATION
Emily Q ButtFranceAnna Fali QUALIFIED
Nicolas O BowleyArgentinaAnna Fali NEGOTIATION
Isabel C DilliardUnited KingdomAnna Fali NEGOTIATION
Murillo K GlickBrazilXuxue Feng NEW
Tony F PaprockiArgentinaElwin Sharvill NEW
Sinclair N FlosiArgentinaOnyama Limba NEGOTIATION
Aika X VenereAustraliaXuxue Feng NEGOTIATION
Aditya J ButtCanadaXuxue Feng UNQUALIFIED
Clifford V AmigonRussiaIoni Bowcher NEW
Leja B DarakjyIndiaElwin Sharvill NEW
Leon A AlbaresArgentinaAsiya Javayant NEW
Isabel V MorascaGermanyAsiya Javayant QUALIFIED
Antonio Y NestleArgentinaStephen Shaw QUALIFIED
James U RulapaughUnited KingdomAsiya Javayant PROPOSAL
Morrow J InouyeFranceElwin Sharvill PROPOSAL
Aditya U GauchoBrazilOnyama Limba QUALIFIED
Juan T NestleArgentinaIoni Bowcher NEW
Julie C CaudyUnited KingdomXuxue Feng RENEWAL
Antonio T ChuiFranceOnyama Limba NEW
Francesco K AmigonAustraliaAsiya Javayant NEW
Salvatore H ShinkoUnited KingdomBernardo Dominic NEW
Octavia T BologniaGermanyIoni Bowcher QUALIFIED
Salvatore A NickaRussiaXuxue Feng QUALIFIED
Tony U MaletRussiaAnna Fali UNQUALIFIED
Munro Z GarufiRussiaAsiya Javayant NEGOTIATION
Silvio J RoysterBrazilAsiya Javayant NEGOTIATION
Cody Q DarakjyItalyAmy Elsner NEW
Leja U CaudyRussiaAmy Elsner NEW
Leja M FerenczArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
David T Waycott
Kadeem E Caldarera
Rodrigues D Stockham
Maisha I Maclead
Rodrigues Q Shinko
Greenwood R Rim
Izzy S Malet
Kaitlin H Stockham
David P Waycott
Francesco G Royster
Murillo E Gaucho
Faith J Rulapaugh
Mayumi U Rulapaugh
Greenwood F Amigon
Faith S Dilliard
Greenwood D Paprocki
Izzy H Bowley
Deepesh M Bolognia
Mujtaba O Nestle
Kadeem N Bolognia
Leja J Ferencz
Maria I Malet
Jefferson N Foller
Francesco Y Sergi
Tony B Doe
Aika E Glick
Nicolas F Bowley
Kadeem U Saylors
Aika E Butt
Costa G Butt
Wickens V Morasca
Faith S Rim
Mujtaba C Caudy
Cody Z Oldroyd
Faith B Nicka
Octavia C Iturbide
Munro Y Kusko
Deepesh Q Caudy
Misaki J Slusarski
Adams M Wieser
Nicolas D Vocelka
Misaki G Whobrey
Arvin L Nestle
Leja G Inouye
Smith I Doe
Sinclair F Flosi
Alejandro X Stockham
Nicolas S Ostrosky
Aditya A Tollner
Aruna X Rulapaugh
IdCountryDate
1000Germany2024-04-20
1001India2024-04-23
1002France2024-04-14
1003Spain2024-04-11
1004Italy2024-04-17
1005Argentina2024-04-20
1006Australia2024-03-29
1007Japan2024-03-28
1008France2024-04-03
1009Japan2024-04-09
1010Argentina2024-04-08
1011Italy2024-04-03
1012Russia2024-04-06
1013Spain2024-04-06
1014Australia2024-03-31
1015United Kingdom2024-04-04
1016Spain2024-04-20
1017United Kingdom2024-04-03
1018Italy2024-04-15
1019Australia2024-04-09
1020Brazil2024-04-24
1021Australia2024-04-15
1022Argentina2024-04-14
1023France2024-03-31
1024Germany2024-04-08
1025Germany2024-04-10
1026Japan2024-03-31
1027Italy2024-04-03
1028Brazil2024-04-13
1029Spain2024-04-14
1030Spain2024-04-09
1031United Kingdom2024-04-18
1032Italy2024-04-23
1033Brazil2024-03-30
1034Brazil2024-04-17
1035France2024-04-02
1036Italy2024-03-30
1037Russia2024-03-31
1038France2024-04-14
1039Italy2024-04-08
1040France2024-04-16
1041Australia2024-04-19
1042Brazil2024-03-28
1043Spain2024-04-14
1044Japan2024-04-05
1045France2024-03-30
1046Japan2024-04-05
1047Australia2024-04-17
1048Spain2024-04-06
1049Spain2024-04-02

On-Demand Data

NameIdCountryDate
Mujtaba V Kusko1000Italy2024-04-20
Julie F Vocelka1001Italy2024-04-26
Rodrigues V Maclead1002Canada2024-04-14
James A Waycott1003Germany2024-04-11
Deepesh Q Maclead1004United Kingdom2024-04-08
Alejandro Y Glick1005Germany2024-04-21
Antonio V Rulapaugh1006Japan2024-04-02
Salvatore T Inouye1007Brazil2024-04-13
Rodrigues A Vocelka1008Spain2024-04-18
Darci E Shinko1009Argentina2024-04-10
Costa H Poquette1010Brazil2024-04-14
Leja Y Foller1011Germany2024-04-13
Tony D Gillian1012Germany2024-04-14
Mujtaba C Bowley1013Argentina2024-04-16
Johnson Y Slusarski1014India2024-04-15
Juan B Saylors1015Australia2024-04-12
Claire N Campain1016Spain2024-04-09
Ashley J Darakjy1017France2024-04-02
Aika F Gaucho1018Japan2024-04-19
Nicolas A Sergi1019Germany2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer V StensethCanadaXuxue Feng NEW
Chavez M PoquetteUnited KingdomIoni Bowcher NEW
Stacey S SchemmerRussiaStephen Shaw PROPOSAL
Cody V FigeroaJapanStephen Shaw NEW
Tony D DoeBrazilBernardo Dominic QUALIFIED
Jefferson I TollnerItalyAmy Elsner QUALIFIED
Murillo J DarakjyAustraliaXuxue Feng PROPOSAL
Aditya H FerenczBrazilXuxue Feng RENEWAL
Kadeem J ShinkoBrazilOnyama Limba QUALIFIED
Aruna L RulapaughRussiaXuxue Feng QUALIFIED
David B PoquetteGermanyAnna Fali UNQUALIFIED
Adams E BowleyBrazilOnyama Limba PROPOSAL
Arvin K StensethArgentinaAmy Elsner UNQUALIFIED
Leon G VocelkaFranceAmy Elsner UNQUALIFIED
Aika Y OstroskyIndiaBernardo Dominic NEGOTIATION
Chavez Z CampainArgentinaOnyama Limba RENEWAL
Tony R WieserIndiaElwin Sharvill PROPOSAL
Cody B FlosiFranceIvan Magalhaes UNQUALIFIED
Kadeem C FigeroaSpainBernardo Dominic RENEWAL
David L StockhamFranceIoni Bowcher UNQUALIFIED
Stacey K GauchoSpainXuxue Feng RENEWAL
Kaitlin A PerinRussiaAnna Fali NEGOTIATION
Chavez M FlosiJapanIoni Bowcher RENEWAL
Salvatore P GlickCanadaAsiya Javayant QUALIFIED
Morrow R RutaCanadaElwin Sharvill RENEWAL
Aruna Y PaprockiCanadaIvan Magalhaes RENEWAL
Leon K RoysterCanadaXuxue Feng NEW
Aika A GlickJapanAmy Elsner UNQUALIFIED
Adams I NickaCanadaElwin Sharvill NEGOTIATION
Ivar B WaycottSpainStephen Shaw RENEWAL
Faith Y StockhamCanadaIvan Magalhaes NEGOTIATION
Ricardo K GarufiJapanAnna Fali UNQUALIFIED
Deepesh I GauchoArgentinaAnna Fali PROPOSAL
Mujtaba M IturbideArgentinaXuxue Feng RENEWAL
Isabel H ButtCanadaIvan Magalhaes QUALIFIED
Munro T SaylorsGermanyIoni Bowcher NEW
Arvin U DoeJapanBernardo Dominic PROPOSAL
Mujtaba V GauchoFranceAmy Elsner NEW
Aditya R AlbaresItalyAmy Elsner RENEWAL
Murillo L MacleadBrazilIoni Bowcher 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>