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
Mujtaba Z PerinSpainAmy Elsner QUALIFIED
Leja Y RutaCanadaIoni Bowcher UNQUALIFIED
Cody K BologniaItalyAmy Elsner QUALIFIED
Chavez R WaycottAustraliaBernardo Dominic RENEWAL
Salvatore X SchemmerRussiaStephen Shaw NEGOTIATION
Adams G PaprockiFranceIvan Magalhaes QUALIFIED
Clifford L TollnerFranceIoni Bowcher QUALIFIED
Antonio Q OldroydArgentinaStephen Shaw RENEWAL
Darci Y DilliardGermanyAmy Elsner RENEWAL
Smith D RoysterGermanyIoni Bowcher NEW
Aditya C BowleyAustraliaElwin Sharvill UNQUALIFIED
Cody L FollerItalyStephen Shaw NEW
Mujtaba J RimBrazilAmy Elsner UNQUALIFIED
Clifford O MacleadIndiaOnyama Limba PROPOSAL
Sinclair R IturbideIndiaXuxue Feng NEW
Leja T GarufiIndiaElwin Sharvill PROPOSAL
Wickens H SlusarskiSpainAnna Fali NEW
Smith J DoeIndiaIvan Magalhaes QUALIFIED
Rodrigues E MacleadIndiaAsiya Javayant NEW
Chavez O WhobreyItalyIoni Bowcher RENEWAL
Wickens V PerinRussiaStephen Shaw QUALIFIED
Claire X GauchoArgentinaAnna Fali RENEWAL
Kadeem O NestleCanadaOnyama Limba QUALIFIED
Jefferson X ButtSpainXuxue Feng RENEWAL
Johnson C PerinArgentinaIoni Bowcher NEW
Johnson Y MorascaUnited KingdomIvan Magalhaes PROPOSAL
Jennifer O SaylorsUnited KingdomAnna Fali PROPOSAL
Isabel W BologniaSpainAmy Elsner RENEWAL
Izzy V AlbaresSpainIvan Magalhaes QUALIFIED
Morrow J ChuiItalyIoni Bowcher NEGOTIATION
Izzy R DilliardAustraliaIoni Bowcher NEW
Maria Y AmigonJapanAmy Elsner UNQUALIFIED
Arvin H GarufiIndiaIoni Bowcher UNQUALIFIED
Wickens K FollerIndiaElwin Sharvill QUALIFIED
Antonio M MacleadUnited KingdomAsiya Javayant PROPOSAL
Leon A KuskoIndiaElwin Sharvill NEGOTIATION
Adams I MorascaSpainIvan Magalhaes NEW
Tony U KolmetzAustraliaAmy Elsner NEW
Aditya D FlosiCanadaBernardo Dominic QUALIFIED
Aditya A BologniaJapanAnna Fali NEW
James V GarufiGermanyXuxue Feng PROPOSAL
Antonio R KuskoFranceAmy Elsner RENEWAL
Wickens W RimRussiaAmy Elsner RENEWAL
Claire B RoysterItalyIvan Magalhaes PROPOSAL
Kadeem A RimAustraliaOnyama Limba PROPOSAL
Misaki Z StockhamAustraliaAsiya Javayant UNQUALIFIED
Costa W MacleadArgentinaAsiya Javayant QUALIFIED
James V InouyeJapanElwin Sharvill RENEWAL
Ivar C FlosiUnited KingdomStephen Shaw QUALIFIED
Smith Q WhobreyGermanyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel O SchemmerIndiaIoni Bowcher UNQUALIFIED
Jennifer L DoeRussiaElwin Sharvill NEGOTIATION
Maisha G FollerSpainIvan Magalhaes RENEWAL
Clifford W FigeroaIndiaAnna Fali QUALIFIED
Faith F DoeAustraliaBernardo Dominic UNQUALIFIED
Alejandro V CaudyFranceAnna Fali QUALIFIED
Jones F MarrierArgentinaIoni Bowcher UNQUALIFIED
Juan Q CaldareraArgentinaBernardo Dominic RENEWAL
Juan U RimItalyIoni Bowcher UNQUALIFIED
Jeanfrancois C VenereFranceOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois F SlusarskiArgentina2024-04-26Dorl, James J Esq NEW21Xuxue Feng
1001Aika B MaletArgentina2024-04-02Rousseaux, Michael Esq NEW37Anna Fali
1002Jefferson A SchemmerFrance2024-04-15Feltz Printing Service UNQUALIFIED21Bernardo Dominic
1003Maisha Y KolmetzCanada2024-04-25King, Christopher A Esq UNQUALIFIED55Bernardo Dominic
1004Morrow P ButtItaly2024-04-27Rangoni Of Florence QUALIFIED15Anna Fali
1005Johnson I ShinkoJapan2024-04-05Rangoni Of Florence NEGOTIATION82Ioni Bowcher
1006Sinclair L MarrierItaly2024-04-08Rousseaux, Michael Esq RENEWAL20Elwin Sharvill
1007Chavez V TollnerArgentina2024-04-09Rousseaux, Michael Esq RENEWAL74Ioni Bowcher
1008Jefferson B GillianGermany2024-04-03Morlong Associates RENEWAL42Stephen Shaw
1009Mujtaba Q SlusarskiJapan2024-04-13Buckley Miller Wright NEGOTIATION8Xuxue Feng
1010Clifford M FollerAustralia2024-04-13Feiner Bros NEGOTIATION98Ivan Magalhaes
1011Leon E DarakjyGermany2024-04-04King, Christopher A Esq NEGOTIATION81Anna Fali
1012Antonio Z WhobreyAustralia2024-04-19Morlong Associates RENEWAL59Onyama Limba
1013Izzy Z TollnerArgentina2024-03-30Chemel, James L Cpa UNQUALIFIED49Stephen Shaw
1014Smith E SchemmerSpain2024-03-30King, Christopher A Esq UNQUALIFIED99Anna Fali
1015Alejandro B GillianFrance2024-04-13Rousseaux, Michael Esq NEW75Ioni Bowcher
1016Munro D VenereJapan2024-04-12Printing Dimensions RENEWAL35Bernardo Dominic
1017Arvin T GlickItaly2024-04-05Rangoni Of Florence PROPOSAL65Ivan Magalhaes
1018Maisha V FigeroaAustralia2024-04-23Printing Dimensions QUALIFIED22Xuxue Feng
1019Leon W PerinFrance2024-04-13Morlong Associates QUALIFIED42Ivan Magalhaes
1020Jefferson C WieserJapan2024-04-15Chanay, Jeffrey A Esq QUALIFIED95Anna Fali
1021Francesco K MorascaSpain2024-03-30Dorl, James J Esq QUALIFIED6Anna Fali
1022Maria J MarrierFrance2024-04-19Feltz Printing Service NEGOTIATION89Stephen Shaw
1023Munro N SchemmerGermany2024-04-16Dorl, James J Esq UNQUALIFIED49Asiya Javayant
1024Octavia J PerinAustralia2024-04-15King, Christopher A Esq RENEWAL43Amy Elsner
1025Wickens J VenereJapan2024-04-22Feltz Printing Service PROPOSAL99Ioni Bowcher
1026Wickens R BologniaIndia2024-04-13Printing Dimensions NEW15Asiya Javayant
1027Morrow F BriddickArgentina2024-04-25Feiner Bros QUALIFIED72Amy Elsner
1028Kaitlin G StockhamBrazil2024-04-07Printing Dimensions RENEWAL8Elwin Sharvill
1029Wickens H RulapaughArgentina2024-04-22Buckley Miller Wright UNQUALIFIED8Xuxue Feng
1030Jeanfrancois H SchemmerFrance2024-04-19Printing Dimensions UNQUALIFIED94Anna Fali
1031Adams G GlickGermany2024-04-22Chapman, Ross E Esq UNQUALIFIED10Onyama Limba
1032Jennifer S RimSpain2024-04-12Buckley Miller Wright RENEWAL50Ivan Magalhaes
1033Alejandro S NestleFrance2024-04-10Rangoni Of Florence UNQUALIFIED88Amy Elsner
1034Aruna E FigeroaIndia2024-04-24Printing Dimensions NEW68Anna Fali
1035Murillo N OstroskySpain2024-04-14Dorl, James J Esq NEW38Asiya Javayant
1036David I ShinkoSpain2024-04-11Commercial Press UNQUALIFIED58Anna Fali
1037David E FerenczAustralia2024-04-26Rousseaux, Michael Esq UNQUALIFIED77Ioni Bowcher
1038Aika J NickaFrance2024-03-31Benton, John B Jr NEW24Onyama Limba
1039Salvatore W PoquetteArgentina2024-04-25King, Christopher A Esq UNQUALIFIED65Xuxue Feng
1040Aditya Y MorascaBrazil2024-04-17Morlong Associates NEGOTIATION7Stephen Shaw
1041Munro O FigeroaJapan2024-03-30Chemel, James L Cpa QUALIFIED68Elwin Sharvill
1042James W ShinkoArgentina2024-04-04Commercial Press NEGOTIATION55Bernardo Dominic
1043Adams V PoquetteBrazil2024-04-08Rousseaux, Michael Esq NEW44Anna Fali
1044Chavez Z RimBrazil2024-04-16Benton, John B Jr QUALIFIED1Asiya Javayant
1045Jefferson R FollerFrance2024-04-12Commercial Press RENEWAL75Bernardo Dominic
1046Kadeem D SaylorsFrance2024-03-30Rousseaux, Michael Esq NEW5Stephen Shaw
1047Leon Y BowleyArgentina2024-04-20Buckley Miller Wright NEW35Anna Fali
1048Chavez Y BologniaSpain2024-04-10Chapman, Ross E Esq NEW58Amy Elsner
1049Francesco U BologniaArgentina2024-04-01Chanay, Jeffrey A Esq RENEWAL49Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Morrow T SlusarskiSpainIvan Magalhaes PROPOSAL
David T NestleBrazilIvan Magalhaes NEGOTIATION
Adams I FerenczCanadaAsiya Javayant PROPOSAL
Smith T CaudyFranceAmy Elsner QUALIFIED
Darci W NickaGermanyOnyama Limba RENEWAL
Isabel S BriddickIndiaAnna Fali PROPOSAL
Jefferson P MaletCanadaAsiya Javayant RENEWAL
Sinclair G FigeroaAustraliaAnna Fali NEW
Jennifer K AlbaresBrazilBernardo Dominic NEW
Cody J FerenczArgentinaAnna Fali NEW
Jennifer W ChuiSpainIoni Bowcher UNQUALIFIED
Ivar B DilliardJapanXuxue Feng PROPOSAL
Jennifer X BologniaArgentinaBernardo Dominic UNQUALIFIED
Aika K ShinkoCanadaAnna Fali UNQUALIFIED
Greenwood I NestleAustraliaIoni Bowcher PROPOSAL
Rodrigues S SlusarskiIndiaAnna Fali NEGOTIATION
Maria K StockhamCanadaOnyama Limba UNQUALIFIED
Silvio J WieserAustraliaStephen Shaw UNQUALIFIED
Deepesh M MacleadFranceIoni Bowcher UNQUALIFIED
James N MacleadBrazilElwin Sharvill QUALIFIED
Johnson U OstroskyArgentinaBernardo Dominic PROPOSAL
Misaki L SchemmerCanadaXuxue Feng RENEWAL
David L StockhamAustraliaElwin Sharvill PROPOSAL
Emily Q AlbaresAustraliaStephen Shaw NEW
Juan L MarrierSpainAmy Elsner NEW
Mayumi V StensethGermanyBernardo Dominic NEGOTIATION
Julie S SchemmerCanadaAmy Elsner UNQUALIFIED
Faith A WaycottItalyOnyama Limba QUALIFIED
Salvatore U GlickGermanyAsiya Javayant RENEWAL
James R SchemmerBrazilOnyama Limba NEW
Deepesh O VocelkaIndiaAnna Fali RENEWAL
Emily M NickaItalyXuxue Feng NEW
Cody F SlusarskiJapanAmy Elsner NEW
Faith T RoysterGermanyElwin Sharvill RENEWAL
Jeanfrancois D SlusarskiBrazilElwin Sharvill QUALIFIED
Cody X ButtAustraliaBernardo Dominic QUALIFIED
Tony L GauchoCanadaIoni Bowcher RENEWAL
Murillo T AmigonArgentinaBernardo Dominic UNQUALIFIED
Isabel X WhobreyIndiaBernardo Dominic QUALIFIED
Kadeem C NestleItalyAmy Elsner NEW
Jennifer S CaldareraRussiaAsiya Javayant NEGOTIATION
Ricardo U FerenczItalyAnna Fali PROPOSAL
Wickens M CaudyJapanOnyama Limba RENEWAL
Claire X DilliardUnited KingdomAnna Fali NEGOTIATION
Antonio R PaprockiRussiaAmy Elsner UNQUALIFIED
Aditya I RutaRussiaIvan Magalhaes NEGOTIATION
Leon W FigeroaAustraliaBernardo Dominic NEW
Darci F IturbideFranceXuxue Feng PROPOSAL
Wickens X FollerIndiaAmy Elsner NEW
Maria H FigeroaRussiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Chavez E Ferencz
Leja P Albares
Leon M Butt
Antonio B Foller
Julie Q Morasca
Mujtaba O Flosi
Aditya Y Nestle
Maria V Inouye
Mujtaba Q Inouye
Jefferson B Slusarski
Silvio G Perin
Leja U Doe
Morrow E Bowley
Aditya V Malet
Stacey Z Nicka
Maisha H Malet
Clifford G Maclead
Alejandro O Waycott
Francesco S Stenseth
Adams C Rulapaugh
Julie E Ostrosky
Jefferson N Dilliard
Mayumi Z Shinko
David A Nestle
Stacey W Oldroyd
Cody S Nestle
Wickens E Rim
Ricardo H Glick
Sinclair S Gaucho
Jeanfrancois S Figeroa
Silvio C Marrier
Kadeem A Ferencz
Ashley O Garufi
Chavez V Ruta
Kaitlin F Gillian
Cody N Garufi
Leja N Paprocki
Ricardo N Wieser
Maisha I Caldarera
Aditya I Sergi
Aruna Z Venere
Cody B Venere
Emily M Caldarera
Ivar N Gillian
Maisha T Stockham
Aditya E Dilliard
Johnson W Darakjy
Antonio E Dilliard
Sinclair M Bowley
Salvatore I Nestle
IdCountryDate
1000Brazil2024-04-26
1001France2024-04-27
1002Argentina2024-04-24
1003Russia2024-04-01
1004Germany2024-04-24
1005Japan2024-04-19
1006United Kingdom2024-04-18
1007Spain2024-04-13
1008Germany2024-04-19
1009Germany2024-04-09
1010Australia2024-04-24
1011France2024-04-15
1012Argentina2024-04-04
1013Brazil2024-04-28
1014Brazil2024-04-12
1015Russia2024-04-04
1016Japan2024-04-25
1017Italy2024-04-16
1018Spain2024-04-03
1019Argentina2024-04-24
1020Argentina2024-04-22
1021Spain2024-04-27
1022Italy2024-04-12
1023India2024-04-13
1024Argentina2024-04-20
1025France2024-04-17
1026France2024-04-13
1027Italy2024-04-22
1028Germany2024-04-27
1029Russia2024-04-13
1030United Kingdom2024-04-02
1031Japan2024-04-22
1032Canada2024-04-11
1033Germany2024-04-05
1034Italy2024-04-16
1035India2024-04-26
1036Argentina2024-04-27
1037Canada2024-04-25
1038Italy2024-04-23
1039India2024-04-23
1040Argentina2024-04-25
1041United Kingdom2024-04-13
1042United Kingdom2024-04-14
1043Brazil2024-04-09
1044Italy2024-04-17
1045United Kingdom2024-04-16
1046India2024-04-01
1047Spain2024-04-14
1048Italy2024-04-15
1049Argentina2024-04-26

On-Demand Data

NameIdCountryDate
Jennifer U Amigon1000India2024-04-14
Emily O Flosi1001Argentina2024-04-22
Alejandro V Royster1002United Kingdom2024-04-10
Deepesh K Rulapaugh1003Russia2024-04-03
Francesco N Kusko1004Brazil2024-04-23
Sinclair Y Waycott1005United Kingdom2024-04-06
Kadeem C Wieser1006India2024-04-25
Maisha Z Poquette1007Canada2024-03-31
Mujtaba U Maclead1008Spain2024-04-25
Darci K Gaucho1009Spain2024-04-15
Cody J Venere1010Australia2024-04-20
Faith T Vocelka1011Australia2024-04-07
Jones K Malet1012India2024-03-31
Octavia V Campain1013France2024-04-12
Salvatore F Malet1014Brazil2024-04-23
Tony Z Royster1015Italy2024-04-25
Nicolas N Campain1016Italy2024-04-23
Julie Y Malet1017France2024-04-21
Julie Z Briddick1018India2024-04-08
Aika S Sergi1019Canada2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel Z CaldareraGermanyElwin Sharvill UNQUALIFIED
Rodrigues L SergiIndiaBernardo Dominic PROPOSAL
Ricardo H MarrierGermanyIvan Magalhaes NEGOTIATION
Clifford C FigeroaItalyAsiya Javayant RENEWAL
Johnson Z TollnerIndiaAnna Fali NEGOTIATION
Izzy E FollerCanadaAmy Elsner RENEWAL
Kaitlin I PaprockiJapanElwin Sharvill UNQUALIFIED
Greenwood N KuskoSpainBernardo Dominic UNQUALIFIED
Smith W DilliardSpainBernardo Dominic UNQUALIFIED
Morrow S InouyeIndiaAmy Elsner QUALIFIED
Smith F FlosiGermanyIvan Magalhaes NEW
Smith L RutaJapanBernardo Dominic RENEWAL
Salvatore L GarufiAustraliaAsiya Javayant NEW
Jennifer H BriddickUnited KingdomIvan Magalhaes RENEWAL
Mujtaba J PerinBrazilStephen Shaw QUALIFIED
Juan W BowleyFranceAsiya Javayant NEGOTIATION
Sinclair F MaletUnited KingdomStephen Shaw NEW
Aruna Y BriddickAustraliaIvan Magalhaes NEGOTIATION
Nicolas Q StockhamUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin X KuskoArgentinaIoni Bowcher PROPOSAL
Ashley V ButtUnited KingdomElwin Sharvill QUALIFIED
Rodrigues U SergiSpainElwin Sharvill NEW
Aika Y FerenczArgentinaIvan Magalhaes NEW
Jeanfrancois X StensethGermanyXuxue Feng QUALIFIED
Costa Y FlosiBrazilElwin Sharvill NEGOTIATION
Salvatore L CaudyUnited KingdomBernardo Dominic UNQUALIFIED
James S CaudyGermanyBernardo Dominic PROPOSAL
Isabel Z WhobreyArgentinaOnyama Limba PROPOSAL
Wickens P GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues F DarakjyArgentinaOnyama Limba QUALIFIED
Tony X MaletUnited KingdomIvan Magalhaes NEGOTIATION
Ivar B WhobreyUnited KingdomXuxue Feng NEGOTIATION
Mayumi A WhobreyGermanyOnyama Limba RENEWAL
Cody A SergiSpainAsiya Javayant PROPOSAL
Aditya Y WieserArgentinaAsiya Javayant RENEWAL
Ivar E SchemmerIndiaAsiya Javayant UNQUALIFIED
Maria D StensethAustraliaStephen Shaw PROPOSAL
Emily S SergiUnited KingdomXuxue Feng NEGOTIATION
Stacey H SchemmerJapanIoni Bowcher QUALIFIED
Tony Y WieserCanadaAmy Elsner RENEWAL

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