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
Munro X FerenczArgentinaXuxue Feng RENEWAL
Cody S WieserGermanyOnyama Limba PROPOSAL
Jeanfrancois M MarrierIndiaXuxue Feng RENEWAL
Adams Y DoeAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois C AmigonJapanStephen Shaw NEW
Murillo D SergiBrazilStephen Shaw NEW
Nicolas V FollerUnited KingdomAmy Elsner PROPOSAL
Juan J ShinkoJapanBernardo Dominic UNQUALIFIED
Maria Q ButtBrazilIoni Bowcher QUALIFIED
Silvio B FollerUnited KingdomIoni Bowcher NEW
Adams U FerenczFranceStephen Shaw NEW
Maisha V NestleFranceXuxue Feng PROPOSAL
Jones J MorascaBrazilAsiya Javayant UNQUALIFIED
Wickens P CaudyArgentinaStephen Shaw RENEWAL
Jennifer R RulapaughRussiaElwin Sharvill NEGOTIATION
Darci D TollnerAustraliaElwin Sharvill UNQUALIFIED
Emily O KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Aruna D AmigonArgentinaOnyama Limba QUALIFIED
Aika G WhobreyArgentinaOnyama Limba NEW
Izzy I GarufiJapanXuxue Feng PROPOSAL
Darci R GlickFranceAmy Elsner QUALIFIED
Leon W GauchoIndiaIvan Magalhaes UNQUALIFIED
Jennifer B SlusarskiJapanAmy Elsner NEGOTIATION
Ricardo K FollerRussiaOnyama Limba UNQUALIFIED
Emily U BriddickArgentinaElwin Sharvill RENEWAL
Stacey Y FlosiArgentinaStephen Shaw UNQUALIFIED
Morrow O OstroskyAustraliaIvan Magalhaes RENEWAL
Jefferson B WieserArgentinaElwin Sharvill NEGOTIATION
Mayumi B NickaIndiaIvan Magalhaes NEGOTIATION
Arvin O TollnerArgentinaElwin Sharvill NEW
Jennifer Z GarufiFranceAmy Elsner NEW
Aditya D InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin D SergiJapanOnyama Limba NEGOTIATION
Jennifer W CaudyBrazilIoni Bowcher UNQUALIFIED
Johnson Q OstroskyFranceAsiya Javayant PROPOSAL
Maisha P VenereCanadaStephen Shaw NEGOTIATION
Aditya N SchemmerCanadaAsiya Javayant NEGOTIATION
David O BologniaAustraliaIvan Magalhaes PROPOSAL
Chavez K ButtGermanyIvan Magalhaes NEGOTIATION
Greenwood K AmigonSpainOnyama Limba NEGOTIATION
Cody H PaprockiUnited KingdomBernardo Dominic QUALIFIED
David X GlickBrazilOnyama Limba PROPOSAL
Faith J OstroskyAustraliaXuxue Feng RENEWAL
Kadeem X RoysterFranceIvan Magalhaes NEW
Misaki W SergiArgentinaAmy Elsner PROPOSAL
Mayumi D GarufiAustraliaAmy Elsner RENEWAL
Adams R FerenczRussiaIvan Magalhaes RENEWAL
Morrow B KolmetzRussiaStephen Shaw NEGOTIATION
James J GarufiIndiaAmy Elsner QUALIFIED
Alejandro C ChuiUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Maisha B RoysterJapanStephen Shaw PROPOSAL
Murillo J GarufiBrazilAsiya Javayant QUALIFIED
Aika S VenereItalyAnna Fali NEGOTIATION
Antonio N IturbideRussiaOnyama Limba RENEWAL
Aditya Q MarrierRussiaAnna Fali UNQUALIFIED
Aditya X GlickAustraliaBernardo Dominic NEGOTIATION
Kadeem R SchemmerUnited KingdomElwin Sharvill PROPOSAL
Silvio O KolmetzGermanyAmy Elsner PROPOSAL
Isabel A InouyeSpainAsiya Javayant UNQUALIFIED
Kadeem Q KuskoItalyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba Y WieserBrazil2024-03-26Rangoni Of Florence UNQUALIFIED94Bernardo Dominic
1001Maria U SchemmerSpain2024-04-22Chapman, Ross E Esq RENEWAL73Amy Elsner
1002Faith U NestleUnited Kingdom2024-04-24Dorl, James J Esq NEGOTIATION67Xuxue Feng
1003Isabel T PaprockiRussia2024-04-07Feiner Bros PROPOSAL81Stephen Shaw
1004Octavia B IturbideAustralia2024-04-19Feiner Bros QUALIFIED98Ivan Magalhaes
1005Deepesh B DilliardAustralia2024-04-23Printing Dimensions UNQUALIFIED43Amy Elsner
1006Claire N MacleadItaly2024-04-01Chemel, James L Cpa QUALIFIED99Bernardo Dominic
1007Clifford Q StensethArgentina2024-04-02Rangoni Of Florence RENEWAL28Anna Fali
1008Stacey F PerinUnited Kingdom2024-04-20Chapman, Ross E Esq NEGOTIATION70Ivan Magalhaes
1009Darci S MarrierBrazil2024-03-26Rangoni Of Florence QUALIFIED3Xuxue Feng
1010Julie M PerinRussia2024-04-06Commercial Press NEGOTIATION77Ioni Bowcher
1011Izzy T MarrierArgentina2024-03-28Commercial Press UNQUALIFIED50Asiya Javayant
1012Rodrigues B NestleAustralia2024-04-23Dorl, James J Esq PROPOSAL32Onyama Limba
1013Aruna M RutaIndia2024-04-22Buckley Miller Wright PROPOSAL99Onyama Limba
1014Jefferson Q GlickGermany2024-04-04Feiner Bros QUALIFIED67Ivan Magalhaes
1015Isabel O MacleadIndia2024-04-19Buckley Miller Wright NEGOTIATION24Onyama Limba
1016James Q CaudySpain2024-04-10Commercial Press RENEWAL37Elwin Sharvill
1017Cody R SchemmerSpain2024-04-23King, Christopher A Esq RENEWAL74Xuxue Feng
1018Jeanfrancois B PaprockiRussia2024-04-09Chemel, James L Cpa RENEWAL97Anna Fali
1019Juan F TollnerSpain2024-04-03Feltz Printing Service NEGOTIATION15Onyama Limba
1020Julie Q VenereArgentina2024-04-16Rangoni Of Florence UNQUALIFIED98Xuxue Feng
1021Salvatore A OstroskyCanada2024-04-23Chemel, James L Cpa NEGOTIATION63Ioni Bowcher
1022Mayumi O ButtBrazil2024-04-19Benton, John B Jr PROPOSAL23Xuxue Feng
1023Ivar V FollerItaly2024-04-06Benton, John B Jr UNQUALIFIED14Xuxue Feng
1024Octavia E WaycottRussia2024-04-20Benton, John B Jr UNQUALIFIED25Anna Fali
1025Kadeem R CaldareraSpain2024-04-03Commercial Press RENEWAL45Xuxue Feng
1026Misaki K OldroydJapan2024-04-13Truhlar And Truhlar Attys NEGOTIATION12Asiya Javayant
1027Alejandro W NickaGermany2024-03-27Printing Dimensions NEW85Ivan Magalhaes
1028Jeanfrancois X GarufiGermany2024-04-22Benton, John B Jr PROPOSAL70Ioni Bowcher
1029Ivar B PerinRussia2024-04-21Rangoni Of Florence QUALIFIED99Bernardo Dominic
1030Aditya Y GlickUnited Kingdom2024-04-06Rangoni Of Florence QUALIFIED65Xuxue Feng
1031Alejandro E DilliardJapan2024-04-11King, Christopher A Esq QUALIFIED79Elwin Sharvill
1032Aditya K MarrierFrance2024-04-12Truhlar And Truhlar Attys PROPOSAL51Elwin Sharvill
1033Stacey C StockhamBrazil2024-04-10Buckley Miller Wright NEGOTIATION48Elwin Sharvill
1034Antonio P PaprockiUnited Kingdom2024-04-05Feltz Printing Service RENEWAL10Amy Elsner
1035Aruna Z WaycottUnited Kingdom2024-04-15Truhlar And Truhlar Attys QUALIFIED5Amy Elsner
1036Izzy K GillianCanada2024-04-02Buckley Miller Wright NEW55Stephen Shaw
1037Jefferson Y OstroskyFrance2024-04-13Benton, John B Jr RENEWAL88Anna Fali
1038Misaki W WieserSpain2024-03-29Morlong Associates QUALIFIED81Elwin Sharvill
1039Antonio R GarufiFrance2024-04-12Rousseaux, Michael Esq PROPOSAL21Bernardo Dominic
1040Ricardo K FlosiGermany2024-03-30Rousseaux, Michael Esq NEW7Bernardo Dominic
1041Smith Z StensethUnited Kingdom2024-03-29Chanay, Jeffrey A Esq UNQUALIFIED81Bernardo Dominic
1042Izzy K NestleCanada2024-04-06Commercial Press UNQUALIFIED59Anna Fali
1043Darci I FerenczArgentina2024-04-22Morlong Associates NEW97Anna Fali
1044Darci P NestleBrazil2024-03-31Feltz Printing Service NEGOTIATION2Stephen Shaw
1045Ashley Q AmigonGermany2024-04-09Commercial Press RENEWAL31Anna Fali
1046James K DarakjyGermany2024-03-29Commercial Press PROPOSAL59Asiya Javayant
1047Mujtaba K FollerUnited Kingdom2024-03-26Benton, John B Jr NEGOTIATION63Onyama Limba
1048Octavia Z WhobreyGermany2024-04-13Commercial Press UNQUALIFIED52Xuxue Feng
1049Smith B KolmetzRussia2024-03-31Morlong Associates UNQUALIFIED71Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Munro W IturbideGermanyIvan Magalhaes QUALIFIED
Aruna J FigeroaAustraliaElwin Sharvill NEGOTIATION
Cody Y CaudyFranceOnyama Limba NEW
Kaitlin P MaletIndiaIvan Magalhaes QUALIFIED
Jeanfrancois S FigeroaRussiaBernardo Dominic PROPOSAL
Clifford T KolmetzBrazilIoni Bowcher NEW
Smith P AmigonUnited KingdomAnna Fali PROPOSAL
Emily F MaletRussiaIvan Magalhaes PROPOSAL
Jefferson D MacleadItalyXuxue Feng PROPOSAL
Chavez X MaletRussiaAmy Elsner RENEWAL
Adams E SlusarskiFranceXuxue Feng RENEWAL
Julie N TollnerCanadaIoni Bowcher QUALIFIED
Claire H SlusarskiFranceAnna Fali QUALIFIED
Munro Q VenereFranceAmy Elsner NEW
Misaki K DoeArgentinaXuxue Feng UNQUALIFIED
Jennifer J CaldareraItalyBernardo Dominic NEW
Mujtaba F InouyeIndiaAmy Elsner NEW
Nicolas G VenereAustraliaAmy Elsner PROPOSAL
Johnson C CaldareraFranceAsiya Javayant NEW
Ricardo S PoquetteGermanyStephen Shaw PROPOSAL
Cody P OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer K DilliardSpainIvan Magalhaes NEW
Munro E CaldareraJapanIvan Magalhaes NEGOTIATION
Salvatore B RulapaughRussiaBernardo Dominic RENEWAL
Smith D VocelkaRussiaElwin Sharvill NEW
Antonio P DoeArgentinaStephen Shaw NEGOTIATION
Emily P NickaRussiaOnyama Limba UNQUALIFIED
Aika O FollerFranceAsiya Javayant PROPOSAL
Izzy D FerenczItalyStephen Shaw UNQUALIFIED
Juan V SlusarskiRussiaIvan Magalhaes RENEWAL
Ivar N VenereRussiaIvan Magalhaes UNQUALIFIED
Smith X StockhamCanadaIvan Magalhaes PROPOSAL
Stacey W MacleadCanadaIoni Bowcher QUALIFIED
Costa A WaycottGermanyIoni Bowcher NEGOTIATION
Sinclair R KolmetzItalyAmy Elsner RENEWAL
Morrow E GarufiGermanyXuxue Feng NEGOTIATION
Francesco A GillianJapanElwin Sharvill QUALIFIED
Maisha Z MaletBrazilXuxue Feng QUALIFIED
Wickens N RutaUnited KingdomAnna Fali NEW
Cody X StockhamUnited KingdomAsiya Javayant NEW
Jefferson K MorascaIndiaAnna Fali QUALIFIED
Wickens Z MorascaRussiaAnna Fali PROPOSAL
Darci T SchemmerAustraliaXuxue Feng RENEWAL
Deepesh L KuskoSpainXuxue Feng UNQUALIFIED
Julie C StensethIndiaAnna Fali RENEWAL
Jennifer W MarrierItalyBernardo Dominic NEGOTIATION
Faith K MorascaCanadaIvan Magalhaes UNQUALIFIED
Deepesh X MarrierRussiaElwin Sharvill RENEWAL
Isabel X PerinJapanAsiya Javayant RENEWAL
Stacey D ShinkoUnited KingdomAmy Elsner RENEWAL
Frozen Columns
Name
Cody F Sergi
Aruna F Sergi
Tony E Malet
Silvio Z Kolmetz
Ashley M Oldroyd
Ivar Z Ostrosky
Ivar A Doe
Kaitlin O Marrier
Greenwood V Ruta
Cody N Royster
Arvin D Vocelka
Francesco X Vocelka
Octavia M Morasca
Morrow Z Ruta
Costa V Albares
Adams S Nicka
Kaitlin V Foller
Tony Z Ruta
Aditya U Waycott
Adams M Foller
Adams S Stenseth
Johnson H Venere
Smith V Royster
Mayumi D Figeroa
Isabel E Perin
Leon I Campain
Clifford D Malet
Aditya B Schemmer
Mujtaba O Shinko
Greenwood E Briddick
Leon W Butt
Claire S Campain
Ivar M Malet
Morrow F Nicka
Stacey O Vocelka
Octavia Q Gaucho
Mayumi N Caldarera
Nicolas Z Malet
Munro X Figeroa
Alejandro L Nestle
Aika K Bowley
Smith K Saylors
Ricardo R Wieser
Greenwood R Nestle
Clifford M Tollner
Rodrigues J Waycott
Izzy W Ruta
Greenwood P Figeroa
Ashley C Gillian
Clifford C Shinko
IdCountryDate
1000Italy2024-04-20
1001Argentina2024-04-02
1002Brazil2024-04-04
1003Brazil2024-03-28
1004Russia2024-04-08
1005Australia2024-04-13
1006Brazil2024-04-10
1007Argentina2024-04-11
1008Spain2024-04-15
1009Germany2024-04-06
1010India2024-04-02
1011Brazil2024-04-18
1012Argentina2024-03-28
1013United Kingdom2024-04-10
1014France2024-04-06
1015Canada2024-04-10
1016India2024-04-03
1017India2024-04-24
1018Argentina2024-04-15
1019United Kingdom2024-04-10
1020Argentina2024-04-13
1021Spain2024-03-29
1022Russia2024-03-27
1023Italy2024-04-18
1024Italy2024-04-17
1025Argentina2024-04-10
1026Argentina2024-04-16
1027Italy2024-04-08
1028Brazil2024-03-26
1029France2024-04-12
1030Australia2024-04-03
1031Russia2024-04-16
1032Spain2024-03-28
1033France2024-04-20
1034Canada2024-04-09
1035France2024-04-15
1036Germany2024-03-28
1037India2024-04-17
1038Brazil2024-03-31
1039United Kingdom2024-04-24
1040Japan2024-03-28
1041France2024-04-22
1042Japan2024-04-01
1043Russia2024-04-07
1044India2024-04-22
1045Canada2024-04-21
1046Russia2024-04-07
1047Australia2024-04-23
1048United Kingdom2024-04-03
1049Italy2024-04-21

On-Demand Data

NameIdCountryDate
Smith V Vocelka1000Germany2024-04-21
Izzy K Garufi1001Italy2024-04-14
Smith K Royster1002Russia2024-03-29
Leon R Marrier1003Argentina2024-04-17
Maisha I Nestle1004United Kingdom2024-04-13
Darci A Bowley1005Australia2024-04-04
Murillo O Whobrey1006Japan2024-04-03
Silvio B Bolognia1007Spain2024-04-02
Munro V Sergi1008United Kingdom2024-04-15
Alejandro Z Ruta1009France2024-04-22
David H Campain1010Russia2024-04-18
David E Dilliard1011France2024-04-19
Silvio K Ostrosky1012Spain2024-04-15
Costa C Schemmer1013Argentina2024-04-04
Jones A Glick1014Spain2024-04-05
Stacey U Perin1015France2024-04-09
Misaki J Paprocki1016United Kingdom2024-04-13
Johnson W Saylors1017Australia2024-04-06
Munro F Maclead1018France2024-04-20
Isabel B Malet1019United Kingdom2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan C BologniaFranceAmy Elsner UNQUALIFIED
Mayumi N AlbaresSpainAsiya Javayant RENEWAL
Jeanfrancois O WieserJapanXuxue Feng NEGOTIATION
Maria S RulapaughArgentinaOnyama Limba UNQUALIFIED
Jones I IturbideFranceBernardo Dominic PROPOSAL
Darci U AmigonRussiaElwin Sharvill PROPOSAL
James N BriddickFranceBernardo Dominic PROPOSAL
Faith C TollnerGermanyAnna Fali PROPOSAL
Aruna I WhobreyItalyIvan Magalhaes RENEWAL
Tony G MorascaJapanAmy Elsner QUALIFIED
Stacey H AlbaresBrazilOnyama Limba NEW
Murillo N RoysterBrazilIvan Magalhaes RENEWAL
Leja R StockhamSpainAnna Fali RENEWAL
Kadeem Z NestleSpainElwin Sharvill RENEWAL
Sinclair P KolmetzSpainElwin Sharvill NEGOTIATION
Antonio J MaletItalyAmy Elsner NEW
Leja H CaudyIndiaIoni Bowcher QUALIFIED
Isabel Z NestleArgentinaElwin Sharvill PROPOSAL
Leja O VocelkaJapanStephen Shaw RENEWAL
Adams R RutaUnited KingdomAsiya Javayant PROPOSAL
Chavez C DilliardGermanyBernardo Dominic PROPOSAL
Ricardo H FerenczGermanyIoni Bowcher NEGOTIATION
Munro X CaudyItalyElwin Sharvill QUALIFIED
Ivar I StockhamFranceAsiya Javayant QUALIFIED
Faith L MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Izzy Z DilliardGermanyIvan Magalhaes NEGOTIATION
Arvin U NickaUnited KingdomBernardo Dominic PROPOSAL
James O OstroskyGermanyBernardo Dominic NEW
Kadeem Z FigeroaSpainOnyama Limba NEW
Ivar U SergiUnited KingdomIvan Magalhaes RENEWAL
Costa M MaletBrazilOnyama Limba RENEWAL
Nicolas J MaletJapanAsiya Javayant NEGOTIATION
Ivar J FlosiItalyBernardo Dominic UNQUALIFIED
Salvatore E GillianGermanyAmy Elsner QUALIFIED
Johnson B OstroskyAustraliaOnyama Limba QUALIFIED
Alejandro G ShinkoGermanyXuxue Feng UNQUALIFIED
Julie Q RutaBrazilXuxue Feng PROPOSAL
Misaki O CaudyIndiaIoni Bowcher NEGOTIATION
Aruna F StensethFranceXuxue Feng UNQUALIFIED
Costa F RulapaughSpainXuxue Feng 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>