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
Leja E RutaGermanyBernardo Dominic NEW
Munro U CaudyItalyBernardo Dominic NEW
Alejandro R WaycottAustraliaIoni Bowcher NEGOTIATION
Arvin J CaldareraJapanElwin Sharvill NEGOTIATION
Kadeem Y MaletAustraliaIoni Bowcher RENEWAL
Darci M ButtArgentinaOnyama Limba RENEWAL
Alejandro D MacleadFranceElwin Sharvill RENEWAL
Cody F MaletJapanStephen Shaw NEGOTIATION
Ivar N SergiAustraliaXuxue Feng UNQUALIFIED
Mujtaba L SergiGermanyXuxue Feng QUALIFIED
Murillo J SaylorsCanadaOnyama Limba RENEWAL
Adams V BowleyGermanyBernardo Dominic QUALIFIED
Costa B WieserSpainIoni Bowcher NEGOTIATION
Tony B SergiJapanIvan Magalhaes NEGOTIATION
Wickens F BologniaCanadaAsiya Javayant QUALIFIED
Kadeem Y TollnerUnited KingdomXuxue Feng RENEWAL
Kaitlin M MaletSpainElwin Sharvill PROPOSAL
Costa T AmigonJapanOnyama Limba QUALIFIED
Jones U PoquetteIndiaIoni Bowcher NEW
Ashley W DarakjyArgentinaBernardo Dominic PROPOSAL
Mujtaba Q BowleyUnited KingdomElwin Sharvill PROPOSAL
Silvio N DoeGermanyIoni Bowcher NEGOTIATION
Rodrigues P CampainCanadaElwin Sharvill RENEWAL
Wickens C NickaBrazilIvan Magalhaes RENEWAL
Darci U PoquetteSpainAmy Elsner QUALIFIED
Smith C MaletAustraliaAnna Fali PROPOSAL
Julie J RimSpainAnna Fali RENEWAL
Aruna B RutaGermanyIoni Bowcher NEW
Costa J IturbideCanadaAmy Elsner NEGOTIATION
Stacey O AmigonItalyAsiya Javayant UNQUALIFIED
Jeanfrancois C DilliardGermanyStephen Shaw QUALIFIED
Stacey W RulapaughGermanyStephen Shaw RENEWAL
Munro R RoysterBrazilAnna Fali RENEWAL
Johnson H MacleadCanadaElwin Sharvill QUALIFIED
Mayumi X RimUnited KingdomAnna Fali UNQUALIFIED
James O OldroydAustraliaIvan Magalhaes PROPOSAL
Julie U SlusarskiAustraliaOnyama Limba RENEWAL
Izzy H WhobreySpainAmy Elsner NEGOTIATION
Julie K ShinkoGermanyAsiya Javayant NEW
Mayumi D MaletIndiaStephen Shaw NEGOTIATION
Kaitlin M ShinkoJapanAmy Elsner NEW
Silvio M RimArgentinaAmy Elsner UNQUALIFIED
Murillo L NickaItalyStephen Shaw NEGOTIATION
Cody Z FerenczAustraliaIvan Magalhaes RENEWAL
Leja I InouyeBrazilIoni Bowcher UNQUALIFIED
Costa W FigeroaSpainIoni Bowcher UNQUALIFIED
Octavia C WaycottIndiaIvan Magalhaes QUALIFIED
Francesco X CampainJapanIoni Bowcher NEW
David Q NickaArgentinaIvan Magalhaes RENEWAL
Silvio T MorascaIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez W BowleyIndiaOnyama Limba PROPOSAL
Kadeem X NestleRussiaElwin Sharvill RENEWAL
Aditya Z GillianIndiaIvan Magalhaes QUALIFIED
Arvin L SlusarskiAustraliaElwin Sharvill PROPOSAL
Nicolas D PaprockiUnited KingdomAmy Elsner RENEWAL
Stacey O MorascaItalyIoni Bowcher NEGOTIATION
Arvin B CaldareraUnited KingdomStephen Shaw PROPOSAL
Ricardo L MarrierGermanyXuxue Feng UNQUALIFIED
David T MorascaCanadaIoni Bowcher NEW
Costa S CaudyJapanAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey F ShinkoGermany2024-04-26Buckley Miller Wright PROPOSAL31Bernardo Dominic
1001Greenwood L GauchoAustralia2024-04-05Chanay, Jeffrey A Esq PROPOSAL61Amy Elsner
1002Leja P MarrierIndia2024-03-29Chapman, Ross E Esq NEW28Amy Elsner
1003Johnson S SergiFrance2024-03-31Truhlar And Truhlar Attys NEGOTIATION23Bernardo Dominic
1004Munro J RoysterUnited Kingdom2024-04-14Rousseaux, Michael Esq NEW84Elwin Sharvill
1005James I PerinBrazil2024-04-25Rangoni Of Florence NEGOTIATION7Ivan Magalhaes
1006Kaitlin F TollnerBrazil2024-04-04Morlong Associates QUALIFIED25Xuxue Feng
1007Octavia B FigeroaFrance2024-04-05Morlong Associates PROPOSAL71Ioni Bowcher
1008Juan S ButtGermany2024-04-17Rousseaux, Michael Esq UNQUALIFIED6Bernardo Dominic
1009Jefferson S StensethItaly2024-04-23Truhlar And Truhlar Attys NEW74Bernardo Dominic
1010Misaki X AlbaresArgentina2024-04-21Truhlar And Truhlar Attys PROPOSAL34Xuxue Feng
1011Leon Q FerenczUnited Kingdom2024-04-11Commercial Press PROPOSAL60Ivan Magalhaes
1012Jones C SchemmerFrance2024-04-22Dorl, James J Esq RENEWAL30Elwin Sharvill
1013Ivar A VocelkaItaly2024-04-24Commercial Press PROPOSAL97Onyama Limba
1014Costa M DilliardIndia2024-04-17Feltz Printing Service NEGOTIATION3Ivan Magalhaes
1015Aika X AlbaresArgentina2024-04-02King, Christopher A Esq QUALIFIED5Onyama Limba
1016Murillo Z MacleadAustralia2024-03-31Benton, John B Jr UNQUALIFIED85Anna Fali
1017Arvin Y PerinFrance2024-03-31Chanay, Jeffrey A Esq PROPOSAL29Bernardo Dominic
1018Clifford P MarrierCanada2024-04-07Commercial Press NEW49Anna Fali
1019Morrow Q VenereBrazil2024-04-12Chemel, James L Cpa RENEWAL89Stephen Shaw
1020Adams Y OldroydArgentina2024-04-12Chapman, Ross E Esq NEGOTIATION38Xuxue Feng
1021Johnson G VenereCanada2024-04-03Chanay, Jeffrey A Esq QUALIFIED60Bernardo Dominic
1022Munro T VenereCanada2024-04-21Feiner Bros RENEWAL74Bernardo Dominic
1023Stacey L PaprockiCanada2024-04-17Chapman, Ross E Esq QUALIFIED31Bernardo Dominic
1024David W WaycottUnited Kingdom2024-04-15Printing Dimensions QUALIFIED74Bernardo Dominic
1025Wickens V CaldareraRussia2024-04-22Rangoni Of Florence NEW81Xuxue Feng
1026Ivar L StockhamUnited Kingdom2024-04-02Morlong Associates PROPOSAL13Anna Fali
1027Darci R AmigonJapan2024-04-25Truhlar And Truhlar Attys UNQUALIFIED61Stephen Shaw
1028Smith E StockhamGermany2024-04-03Buckley Miller Wright QUALIFIED39Asiya Javayant
1029Ivar J PoquetteItaly2024-04-06Chemel, James L Cpa PROPOSAL69Xuxue Feng
1030Darci M DoeFrance2024-04-07Chanay, Jeffrey A Esq QUALIFIED88Asiya Javayant
1031Rodrigues R RimItaly2024-04-06Truhlar And Truhlar Attys NEW17Onyama Limba
1032Johnson D ShinkoGermany2024-04-09King, Christopher A Esq PROPOSAL64Elwin Sharvill
1033Aika O DarakjyUnited Kingdom2024-03-29Chapman, Ross E Esq RENEWAL1Anna Fali
1034Jeanfrancois K MaletBrazil2024-04-14Buckley Miller Wright NEGOTIATION76Asiya Javayant
1035Leon Z GillianGermany2024-04-10Chapman, Ross E Esq NEW2Xuxue Feng
1036Aruna K MaletAustralia2024-04-02King, Christopher A Esq RENEWAL4Xuxue Feng
1037Emily P ChuiFrance2024-04-03Commercial Press QUALIFIED61Asiya Javayant
1038Mujtaba H PerinSpain2024-04-22Rangoni Of Florence NEGOTIATION4Asiya Javayant
1039Juan M AmigonFrance2024-04-07Printing Dimensions RENEWAL60Anna Fali
1040Isabel H InouyeRussia2024-04-11Truhlar And Truhlar Attys UNQUALIFIED44Stephen Shaw
1041Morrow Z SchemmerFrance2024-04-19Morlong Associates QUALIFIED32Bernardo Dominic
1042Ashley I IturbideGermany2024-03-29Chapman, Ross E Esq QUALIFIED36Ioni Bowcher
1043Murillo T CaudyCanada2024-04-23King, Christopher A Esq RENEWAL90Xuxue Feng
1044Faith L MarrierFrance2024-04-03Morlong Associates RENEWAL38Xuxue Feng
1045Francesco V MacleadIndia2024-04-03Rangoni Of Florence PROPOSAL74Onyama Limba
1046Mujtaba B KolmetzCanada2024-03-28Truhlar And Truhlar Attys PROPOSAL34Ivan Magalhaes
1047Johnson F CaudyBrazil2024-04-01Commercial Press QUALIFIED93Stephen Shaw
1048David P WieserSpain2024-04-26King, Christopher A Esq NEW65Bernardo Dominic
1049Maria M SchemmerArgentina2024-04-13Dorl, James J Esq NEGOTIATION33Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Julie Y WieserJapanIvan Magalhaes UNQUALIFIED
Jennifer I KuskoFranceIoni Bowcher RENEWAL
Kaitlin J BologniaUnited KingdomBernardo Dominic PROPOSAL
Ricardo B PerinAustraliaAnna Fali RENEWAL
Adams G GillianCanadaIoni Bowcher RENEWAL
Jefferson H IturbideItalyAsiya Javayant RENEWAL
Stacey V BriddickGermanyAnna Fali RENEWAL
Sinclair O GauchoSpainAsiya Javayant NEGOTIATION
Jeanfrancois N TollnerSpainBernardo Dominic RENEWAL
Nicolas J SlusarskiCanadaIoni Bowcher NEW
Julie R AmigonUnited KingdomElwin Sharvill PROPOSAL
Ricardo E NestleItalyIvan Magalhaes UNQUALIFIED
Adams I AlbaresGermanyAsiya Javayant QUALIFIED
Ashley U DoeItalyIoni Bowcher NEGOTIATION
Octavia I TollnerGermanyAsiya Javayant NEW
Cody X ShinkoFranceStephen Shaw PROPOSAL
Misaki I MacleadRussiaAnna Fali NEW
Adams D MarrierCanadaAsiya Javayant QUALIFIED
Aika I SergiUnited KingdomIvan Magalhaes NEGOTIATION
Francesco J NestleRussiaStephen Shaw NEW
Costa J FigeroaRussiaAsiya Javayant QUALIFIED
Francesco T SergiSpainAsiya Javayant NEW
David V ButtGermanyBernardo Dominic RENEWAL
Antonio Y OldroydIndiaStephen Shaw NEW
Chavez R ShinkoSpainAmy Elsner QUALIFIED
Claire D StensethArgentinaAnna Fali PROPOSAL
Maisha R FlosiRussiaStephen Shaw UNQUALIFIED
Darci Q StensethCanadaElwin Sharvill QUALIFIED
Julie G RutaBrazilIvan Magalhaes UNQUALIFIED
Darci I SchemmerIndiaBernardo Dominic RENEWAL
Claire E StensethIndiaXuxue Feng UNQUALIFIED
Salvatore H TollnerRussiaXuxue Feng UNQUALIFIED
Ashley Z RulapaughGermanyIoni Bowcher UNQUALIFIED
Costa M RimAustraliaIvan Magalhaes QUALIFIED
Rodrigues U RulapaughCanadaStephen Shaw NEGOTIATION
Johnson B PoquetteSpainAmy Elsner UNQUALIFIED
Rodrigues H GauchoJapanAsiya Javayant PROPOSAL
Darci A CaudySpainElwin Sharvill NEGOTIATION
Aika H MorascaSpainAsiya Javayant NEGOTIATION
Clifford O RimArgentinaAmy Elsner NEGOTIATION
Maisha E BriddickItalyAsiya Javayant RENEWAL
Faith D BologniaSpainIvan Magalhaes UNQUALIFIED
Adams Q TollnerRussiaOnyama Limba PROPOSAL
Emily E DoeAustraliaAsiya Javayant NEGOTIATION
Rodrigues X OldroydIndiaOnyama Limba PROPOSAL
Stacey N SaylorsItalyStephen Shaw QUALIFIED
Claire N SergiArgentinaStephen Shaw QUALIFIED
Jeanfrancois P MarrierBrazilElwin Sharvill PROPOSAL
Sinclair H ButtJapanAsiya Javayant UNQUALIFIED
Munro Z SchemmerRussiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Morrow H Ferencz
Ivar O Kusko
Clifford X Waycott
Isabel J Shinko
Izzy Z Marrier
Stacey O Caldarera
Munro G Rim
Chavez I Sergi
Kadeem Q Briddick
Kaitlin Q Poquette
Misaki R Stenseth
Salvatore W Amigon
Leja X Malet
Leja B Paprocki
Cody H Tollner
Tony G Perin
Jefferson Q Rim
Chavez C Flosi
Munro D Saylors
Morrow F Maclead
Morrow T Whobrey
Chavez K Venere
Johnson X Ostrosky
Stacey Y Nicka
Munro L Maclead
Deepesh O Oldroyd
David L Gillian
Emily U Ostrosky
Antonio N Butt
Leon T Ruta
Francesco H Poquette
Johnson X Darakjy
Chavez E Caudy
Mayumi Q Chui
David S Maclead
Aditya K Kusko
James R Darakjy
Alejandro N Ostrosky
Maisha F Kusko
Julie W Garufi
Adams S Perin
Chavez C Oldroyd
Deepesh H Iturbide
Aika G Briddick
Murillo Q Ferencz
Maisha L Perin
Isabel G Waycott
Francesco S Inouye
Mujtaba K Schemmer
Smith C Gillian
IdCountryDate
1000Italy2024-04-01
1001Canada2024-04-25
1002Spain2024-04-07
1003Canada2024-04-26
1004United Kingdom2024-04-24
1005Germany2024-04-03
1006Spain2024-04-13
1007Australia2024-04-19
1008United Kingdom2024-04-12
1009Argentina2024-04-15
1010Japan2024-04-18
1011Italy2024-04-13
1012Russia2024-04-04
1013India2024-04-15
1014Australia2024-04-16
1015France2024-04-07
1016Australia2024-04-09
1017Japan2024-04-26
1018France2024-04-14
1019Argentina2024-03-31
1020United Kingdom2024-04-07
1021Japan2024-04-17
1022Germany2024-04-22
1023Russia2024-04-25
1024United Kingdom2024-04-02
1025Spain2024-04-17
1026Germany2024-04-24
1027Japan2024-03-28
1028India2024-04-03
1029United Kingdom2024-04-22
1030United Kingdom2024-04-20
1031Canada2024-04-14
1032Germany2024-03-29
1033Italy2024-04-11
1034Russia2024-03-28
1035Russia2024-04-01
1036Brazil2024-04-20
1037Brazil2024-04-03
1038Spain2024-04-10
1039Italy2024-04-04
1040India2024-03-28
1041France2024-04-02
1042Argentina2024-04-06
1043Germany2024-04-19
1044India2024-03-28
1045Canada2024-03-28
1046Canada2024-04-16
1047Canada2024-04-18
1048Italy2024-04-18
1049India2024-04-18

On-Demand Data

NameIdCountryDate
Ashley J Foller1000Germany2024-03-28
Mayumi B Malet1001France2024-03-30
Arvin H Inouye1002Russia2024-04-17
David S Rulapaugh1003Italy2024-03-31
Francesco C Waycott1004India2024-04-19
Isabel E Stockham1005Japan2024-04-24
Nicolas K Butt1006Brazil2024-04-05
Maisha J Gillian1007France2024-04-09
Johnson B Caldarera1008India2024-03-30
Johnson H Butt1009Brazil2024-04-01
Julie A Gillian1010India2024-04-14
Julie F Figeroa1011United Kingdom2024-04-02
Rodrigues X Glick1012Australia2024-04-04
Aruna W Malet1013Russia2024-04-24
Julie E Stenseth1014France2024-04-10
Claire S Glick1015Argentina2024-04-08
Nicolas K Ferencz1016France2024-03-28
Kaitlin Q Glick1017Canada2024-04-05
Emily M Garufi1018France2024-04-18
Maria Q Kolmetz1019Argentina2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci J GlickArgentinaAmy Elsner RENEWAL
Stacey H KuskoBrazilAsiya Javayant NEGOTIATION
Emily N GillianIndiaBernardo Dominic PROPOSAL
David W GlickIndiaOnyama Limba NEW
Francesco R OldroydRussiaAsiya Javayant UNQUALIFIED
Silvio S ShinkoUnited KingdomStephen Shaw NEGOTIATION
Ashley X CaudyItalyAsiya Javayant PROPOSAL
Leja C MaletUnited KingdomXuxue Feng RENEWAL
Costa L DoeRussiaXuxue Feng NEGOTIATION
Aditya T DilliardJapanStephen Shaw PROPOSAL
Kaitlin N TollnerJapanIoni Bowcher QUALIFIED
Mayumi K SaylorsSpainAnna Fali NEGOTIATION
Juan F MacleadFranceBernardo Dominic QUALIFIED
Stacey P RulapaughCanadaIvan Magalhaes PROPOSAL
Chavez G GillianIndiaElwin Sharvill UNQUALIFIED
David E FigeroaFranceAsiya Javayant PROPOSAL
David M AlbaresUnited KingdomElwin Sharvill NEW
Johnson A NestleFranceAnna Fali QUALIFIED
Maria Y NestleIndiaIoni Bowcher NEGOTIATION
Jeanfrancois I OldroydAustraliaXuxue Feng RENEWAL
Mayumi X AlbaresUnited KingdomAsiya Javayant QUALIFIED
Francesco S NestleRussiaAmy Elsner NEGOTIATION
Antonio A OldroydSpainStephen Shaw NEGOTIATION
Greenwood C CaudySpainIoni Bowcher NEGOTIATION
Francesco L GlickRussiaBernardo Dominic UNQUALIFIED
Mujtaba W SlusarskiSpainAmy Elsner NEGOTIATION
Aika V RutaJapanElwin Sharvill QUALIFIED
Ivar F ShinkoCanadaIvan Magalhaes NEGOTIATION
Johnson F MorascaCanadaElwin Sharvill UNQUALIFIED
Tony I StensethUnited KingdomAmy Elsner RENEWAL
Johnson C WhobreyCanadaElwin Sharvill UNQUALIFIED
Julie I RimGermanyOnyama Limba UNQUALIFIED
James F FollerArgentinaElwin Sharvill RENEWAL
Munro M SchemmerCanadaBernardo Dominic NEW
Tony C GarufiGermanyXuxue Feng PROPOSAL
Aditya L MaletArgentinaIvan Magalhaes PROPOSAL
Salvatore P FlosiJapanAmy Elsner QUALIFIED
Maisha S FollerCanadaIvan Magalhaes PROPOSAL
Juan N MarrierJapanAmy Elsner RENEWAL
Smith K FlosiBrazilStephen Shaw UNQUALIFIED

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