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
Maria D KolmetzFranceIvan Magalhaes QUALIFIED
Mujtaba W FlosiSpainAsiya Javayant UNQUALIFIED
Octavia U ShinkoGermanyAnna Fali NEGOTIATION
Ashley V GillianUnited KingdomStephen Shaw QUALIFIED
Adams Y GillianGermanyAmy Elsner UNQUALIFIED
Salvatore U ButtItalyAsiya Javayant PROPOSAL
Maria F PoquetteJapanAmy Elsner PROPOSAL
Misaki X FlosiRussiaElwin Sharvill UNQUALIFIED
Izzy Z GillianFranceIoni Bowcher RENEWAL
Aditya C MarrierItalyElwin Sharvill QUALIFIED
Adams H DoeFranceIvan Magalhaes NEW
Isabel U OstroskyJapanIoni Bowcher QUALIFIED
Darci R GlickItalyAmy Elsner NEW
Isabel T FlosiUnited KingdomIoni Bowcher PROPOSAL
Maisha A BriddickFranceOnyama Limba UNQUALIFIED
Maisha U DilliardCanadaXuxue Feng NEW
Leja E NickaIndiaAnna Fali NEGOTIATION
Ivar Y GlickAustraliaElwin Sharvill RENEWAL
Faith U DoeArgentinaBernardo Dominic NEGOTIATION
Ashley R RulapaughJapanXuxue Feng NEW
Jeanfrancois J MaletBrazilBernardo Dominic NEGOTIATION
Aruna G SlusarskiCanadaAnna Fali UNQUALIFIED
Claire V InouyeSpainIoni Bowcher NEW
Emily K VenereJapanStephen Shaw NEGOTIATION
Aruna V CaudyArgentinaIvan Magalhaes QUALIFIED
Izzy C PerinArgentinaIvan Magalhaes UNQUALIFIED
Nicolas I SaylorsJapanXuxue Feng NEGOTIATION
Munro J FlosiUnited KingdomAnna Fali QUALIFIED
Aditya Z TollnerSpainElwin Sharvill RENEWAL
Darci K ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Costa J IturbideBrazilAsiya Javayant NEGOTIATION
Aditya R MarrierArgentinaElwin Sharvill RENEWAL
Cody X PaprockiAustraliaBernardo Dominic RENEWAL
Mujtaba Y MorascaIndiaAsiya Javayant PROPOSAL
Octavia P WhobreyJapanStephen Shaw PROPOSAL
Aditya R WieserJapanAnna Fali NEGOTIATION
Jones H FollerFranceXuxue Feng NEW
Chavez F GlickBrazilIoni Bowcher UNQUALIFIED
Silvio M BowleyBrazilAnna Fali RENEWAL
Juan J IturbideAustraliaAsiya Javayant UNQUALIFIED
Leja T VocelkaSpainAnna Fali PROPOSAL
David G NickaJapanIvan Magalhaes PROPOSAL
Maisha D FollerFranceOnyama Limba NEGOTIATION
Isabel V ChuiUnited KingdomIvan Magalhaes QUALIFIED
Jones O SlusarskiUnited KingdomAnna Fali QUALIFIED
Clifford S MorascaAustraliaIoni Bowcher UNQUALIFIED
Octavia G PaprockiArgentinaIvan Magalhaes PROPOSAL
Darci N OldroydFranceStephen Shaw RENEWAL
Salvatore T WaycottUnited KingdomOnyama Limba UNQUALIFIED
Mayumi R PerinSpainIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi R VenereItalyIoni Bowcher NEGOTIATION
Misaki B KuskoItalyAmy Elsner RENEWAL
Wickens R DoeUnited KingdomAnna Fali NEW
Salvatore U KolmetzAustraliaIoni Bowcher NEW
Julie V BologniaJapanStephen Shaw UNQUALIFIED
Isabel L AmigonIndiaStephen Shaw NEW
James L OstroskyCanadaXuxue Feng PROPOSAL
Leon N MacleadUnited KingdomBernardo Dominic PROPOSAL
Rodrigues M ButtItalyXuxue Feng PROPOSAL
Mujtaba C PoquetteRussiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley I KolmetzBrazil2024-04-26Feltz Printing Service NEGOTIATION66Ivan Magalhaes
1001Johnson K BologniaItaly2024-04-14Feltz Printing Service NEGOTIATION23Elwin Sharvill
1002Maria K MaletRussia2024-04-10Morlong Associates PROPOSAL49Onyama Limba
1003Johnson I InouyeJapan2024-04-17Morlong Associates QUALIFIED89Stephen Shaw
1004Faith N SlusarskiJapan2024-04-04Chemel, James L Cpa NEGOTIATION4Onyama Limba
1005Juan M RulapaughJapan2024-04-24Benton, John B Jr UNQUALIFIED88Xuxue Feng
1006Murillo T FigeroaIndia2024-04-06Chanay, Jeffrey A Esq PROPOSAL97Amy Elsner
1007Salvatore V PoquetteAustralia2024-04-05Rousseaux, Michael Esq RENEWAL69Ivan Magalhaes
1008Jennifer B ChuiGermany2024-04-21Rousseaux, Michael Esq QUALIFIED60Xuxue Feng
1009Tony J FerenczRussia2024-03-30Commercial Press PROPOSAL87Bernardo Dominic
1010Stacey J MacleadCanada2024-04-08Commercial Press NEW36Elwin Sharvill
1011Alejandro Y OldroydFrance2024-03-29Chemel, James L Cpa NEGOTIATION92Onyama Limba
1012Sinclair E GlickJapan2024-04-15King, Christopher A Esq RENEWAL69Ivan Magalhaes
1013Julie Q TollnerRussia2024-04-17Benton, John B Jr UNQUALIFIED38Stephen Shaw
1014Clifford Q PerinArgentina2024-04-07Feltz Printing Service NEW58Onyama Limba
1015Arvin L ShinkoAustralia2024-04-26Benton, John B Jr UNQUALIFIED58Ioni Bowcher
1016Stacey W FollerFrance2024-04-17Printing Dimensions UNQUALIFIED69Amy Elsner
1017Antonio B FigeroaSpain2024-03-28Morlong Associates RENEWAL49Ioni Bowcher
1018Costa S MaletGermany2024-04-03Commercial Press NEGOTIATION29Asiya Javayant
1019Wickens L WhobreyUnited Kingdom2024-03-31Morlong Associates NEGOTIATION38Ioni Bowcher
1020Aruna G MaletAustralia2024-04-09Morlong Associates PROPOSAL51Bernardo Dominic
1021Ricardo F ShinkoRussia2024-04-07Feltz Printing Service UNQUALIFIED88Bernardo Dominic
1022Jennifer J ChuiRussia2024-04-26Feltz Printing Service RENEWAL48Elwin Sharvill
1023Francesco H GlickBrazil2024-04-15Chapman, Ross E Esq QUALIFIED70Stephen Shaw
1024Clifford N BologniaRussia2024-04-13Chemel, James L Cpa QUALIFIED10Ivan Magalhaes
1025Ivar F PoquetteIndia2024-04-14Morlong Associates UNQUALIFIED96Elwin Sharvill
1026Leja L TollnerRussia2024-04-15Printing Dimensions NEGOTIATION4Anna Fali
1027Jones Y RoysterUnited Kingdom2024-04-21Buckley Miller Wright NEW29Asiya Javayant
1028Murillo F CampainGermany2024-03-30Rangoni Of Florence NEGOTIATION94Ivan Magalhaes
1029Nicolas V WieserCanada2024-04-03Buckley Miller Wright RENEWAL35Bernardo Dominic
1030Julie F DilliardSpain2024-04-12Feiner Bros NEGOTIATION11Elwin Sharvill
1031Tony E RoysterJapan2024-03-30King, Christopher A Esq UNQUALIFIED73Stephen Shaw
1032Clifford Y RimArgentina2024-04-03Feiner Bros UNQUALIFIED87Amy Elsner
1033Misaki Q GarufiRussia2024-04-13Benton, John B Jr UNQUALIFIED13Ivan Magalhaes
1034Wickens R DoeJapan2024-04-19Chemel, James L Cpa QUALIFIED58Bernardo Dominic
1035Arvin G PaprockiRussia2024-04-17Rousseaux, Michael Esq NEGOTIATION96Asiya Javayant
1036Juan I DilliardItaly2024-04-17Benton, John B Jr NEGOTIATION92Bernardo Dominic
1037Silvio V OldroydArgentina2024-04-22Printing Dimensions NEGOTIATION69Elwin Sharvill
1038Chavez S TollnerItaly2024-03-29Dorl, James J Esq PROPOSAL99Onyama Limba
1039Silvio O TollnerUnited Kingdom2024-04-12Chemel, James L Cpa PROPOSAL55Stephen Shaw
1040Kadeem X InouyeRussia2024-04-12Benton, John B Jr RENEWAL67Anna Fali
1041Maisha S PaprockiBrazil2024-04-20Buckley Miller Wright QUALIFIED24Bernardo Dominic
1042Maisha Q SaylorsIndia2024-04-13Rangoni Of Florence UNQUALIFIED74Anna Fali
1043Faith P KuskoFrance2024-04-05Benton, John B Jr QUALIFIED33Amy Elsner
1044Rodrigues I DilliardFrance2024-04-15Truhlar And Truhlar Attys NEW78Amy Elsner
1045Izzy G CaudyUnited Kingdom2024-04-01Printing Dimensions QUALIFIED53Anna Fali
1046Mayumi W FlosiArgentina2024-04-13Chanay, Jeffrey A Esq NEGOTIATION34Ioni Bowcher
1047Salvatore U NickaCanada2024-04-21Buckley Miller Wright PROPOSAL30Anna Fali
1048Arvin V NickaFrance2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED38Xuxue Feng
1049Ivar L ShinkoCanada2024-04-12Dorl, James J Esq NEW23Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Claire P GauchoBrazilAsiya Javayant NEGOTIATION
Jefferson D FollerJapanOnyama Limba PROPOSAL
Nicolas P IturbideRussiaAnna Fali PROPOSAL
Ashley Y FerenczIndiaElwin Sharvill UNQUALIFIED
Francesco D CaudyIndiaAnna Fali NEGOTIATION
Rodrigues T BowleySpainOnyama Limba PROPOSAL
Arvin C WieserArgentinaXuxue Feng RENEWAL
Morrow Q MaletIndiaIvan Magalhaes NEW
Juan X MacleadGermanyElwin Sharvill QUALIFIED
Octavia W RulapaughArgentinaXuxue Feng RENEWAL
Greenwood T PerinJapanAnna Fali RENEWAL
Adams A SergiUnited KingdomXuxue Feng NEGOTIATION
Mayumi X AlbaresItalyAnna Fali NEGOTIATION
Juan Q CaudyFranceStephen Shaw RENEWAL
Antonio I RoysterIndiaIoni Bowcher NEW
Maisha Z StensethSpainAmy Elsner NEW
James X MaletGermanyIoni Bowcher PROPOSAL
James J WaycottArgentinaOnyama Limba PROPOSAL
Clifford W WaycottSpainElwin Sharvill UNQUALIFIED
Aditya A KolmetzUnited KingdomAnna Fali NEGOTIATION
Alejandro K SlusarskiAustraliaAnna Fali NEW
David K FigeroaRussiaElwin Sharvill RENEWAL
Rodrigues X SaylorsUnited KingdomIvan Magalhaes RENEWAL
Greenwood G FerenczFranceIoni Bowcher UNQUALIFIED
Chavez A ButtItalyAnna Fali RENEWAL
Rodrigues R DilliardGermanyIvan Magalhaes RENEWAL
Isabel O ChuiItalyStephen Shaw NEW
Johnson J SergiRussiaXuxue Feng QUALIFIED
Munro J IturbideCanadaAmy Elsner UNQUALIFIED
Antonio B DoeFranceElwin Sharvill PROPOSAL
Isabel V WaycottUnited KingdomOnyama Limba NEGOTIATION
Ashley U PerinJapanAnna Fali PROPOSAL
Kaitlin E MacleadSpainXuxue Feng PROPOSAL
Jones L KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Rodrigues I DoeBrazilAnna Fali RENEWAL
Leja Z WieserCanadaAmy Elsner UNQUALIFIED
Ivar M OstroskyAustraliaOnyama Limba UNQUALIFIED
Arvin B MorascaJapanBernardo Dominic RENEWAL
Izzy D WhobreyJapanBernardo Dominic RENEWAL
Munro I RulapaughAustraliaBernardo Dominic UNQUALIFIED
James H CampainUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood T WaycottJapanIoni Bowcher NEGOTIATION
Ricardo Q MaletUnited KingdomStephen Shaw RENEWAL
Jennifer K InouyeJapanElwin Sharvill RENEWAL
Clifford H VenereSpainIoni Bowcher RENEWAL
Adams X RimAustraliaAmy Elsner UNQUALIFIED
Ricardo C TollnerArgentinaBernardo Dominic UNQUALIFIED
Adams M SergiRussiaIoni Bowcher PROPOSAL
Antonio O ChuiCanadaStephen Shaw NEGOTIATION
Misaki U PoquetteBrazilBernardo Dominic RENEWAL
Frozen Columns
Name
Aditya D Ruta
Leja W Nicka
Leja T Butt
Salvatore G Whobrey
Aditya I Wieser
Deepesh A Amigon
Greenwood E Stenseth
Juan R Sergi
Ashley R Ruta
Adams F Gaucho
Tony L Nestle
Ricardo V Paprocki
Sinclair E Iturbide
Francesco H Chui
Jones S Venere
Isabel G Wieser
Leon J Albares
Chavez V Malet
Maisha A Ruta
James B Figeroa
Ivar X Stenseth
Arvin O Maclead
Nicolas E Ostrosky
Ricardo Z Maclead
Chavez T Tollner
Deepesh H Briddick
Claire W Rim
Jefferson M Marrier
Kaitlin U Gaucho
Juan E Royster
Morrow N Marrier
Kadeem E Wieser
Emily G Morasca
Silvio H Waycott
David M Foller
Leja L Nicka
Jeanfrancois V Caldarera
Kaitlin I Marrier
James R Venere
Chavez E Dilliard
Murillo M Saylors
Johnson D Caudy
Murillo Q Stockham
Kaitlin E Rulapaugh
Jennifer V Stockham
Francesco F Nestle
Deepesh P Malet
Rodrigues A Iturbide
Julie L Nestle
Juan W Butt
IdCountryDate
1000Germany2024-04-26
1001Russia2024-04-24
1002Australia2024-04-10
1003Italy2024-04-17
1004India2024-04-16
1005Brazil2024-04-05
1006Spain2024-04-04
1007Argentina2024-04-06
1008India2024-04-05
1009United Kingdom2024-04-19
1010Japan2024-04-02
1011Germany2024-03-28
1012Germany2024-04-03
1013United Kingdom2024-04-04
1014Argentina2024-04-10
1015France2024-04-04
1016India2024-04-06
1017Germany2024-04-03
1018Brazil2024-04-04
1019Spain2024-04-01
1020United Kingdom2024-04-09
1021Spain2024-03-30
1022United Kingdom2024-04-08
1023India2024-04-11
1024United Kingdom2024-04-23
1025Brazil2024-04-21
1026Japan2024-04-07
1027United Kingdom2024-04-25
1028Australia2024-04-04
1029United Kingdom2024-04-06
1030Italy2024-04-01
1031Brazil2024-04-09
1032United Kingdom2024-04-19
1033Germany2024-04-12
1034Spain2024-04-19
1035Argentina2024-04-21
1036Australia2024-04-06
1037Australia2024-03-29
1038Brazil2024-04-19
1039Russia2024-04-19
1040Germany2024-04-26
1041Canada2024-03-30
1042France2024-04-16
1043Italy2024-04-17
1044France2024-04-12
1045Spain2024-04-15
1046United Kingdom2024-04-18
1047Italy2024-04-24
1048France2024-03-28
1049Spain2024-04-15

On-Demand Data

NameIdCountryDate
Antonio J Sergi1000Spain2024-04-25
Silvio R Kusko1001Spain2024-04-04
Antonio C Kolmetz1002Italy2024-04-05
Munro L Chui1003Italy2024-04-17
Aditya B Maclead1004India2024-04-03
Claire D Stockham1005Brazil2024-04-19
Greenwood G Gaucho1006Brazil2024-04-01
Mayumi M Caldarera1007France2024-03-28
Morrow M Venere1008Australia2024-03-28
Stacey E Wieser1009Argentina2024-03-31
Jefferson W Foller1010Brazil2024-04-07
Julie L Iturbide1011United Kingdom2024-04-20
Stacey K Schemmer1012India2024-04-07
Johnson T Inouye1013Germany2024-04-12
Faith L Morasca1014Canada2024-04-22
Ashley K Oldroyd1015India2024-04-03
Mujtaba I Stockham1016India2024-03-28
Tony M Venere1017Japan2024-04-05
Mayumi M Butt1018Japan2024-04-13
Mujtaba M Stenseth1019India2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois L FigeroaItalyIoni Bowcher RENEWAL
Costa P StockhamCanadaOnyama Limba UNQUALIFIED
Izzy M ButtIndiaElwin Sharvill QUALIFIED
Maisha K WieserFranceIvan Magalhaes NEGOTIATION
Julie O WhobreyArgentinaIoni Bowcher PROPOSAL
Stacey R WaycottItalyStephen Shaw UNQUALIFIED
Kadeem K KolmetzCanadaAsiya Javayant NEGOTIATION
Aditya N NestleAustraliaXuxue Feng RENEWAL
Ashley P GlickGermanyXuxue Feng NEW
Ricardo M FigeroaArgentinaElwin Sharvill NEGOTIATION
Leon L RulapaughGermanyOnyama Limba UNQUALIFIED
Alejandro Q VocelkaCanadaXuxue Feng PROPOSAL
Rodrigues K StensethItalyBernardo Dominic RENEWAL
Clifford K StockhamCanadaAmy Elsner RENEWAL
Greenwood S VenereIndiaAsiya Javayant UNQUALIFIED
Smith X RimUnited KingdomIoni Bowcher QUALIFIED
Octavia F FlosiItalyBernardo Dominic QUALIFIED
Alejandro N FerenczGermanyAmy Elsner QUALIFIED
Octavia G CampainAustraliaStephen Shaw QUALIFIED
Smith Z VocelkaGermanyOnyama Limba NEGOTIATION
Sinclair D FlosiFranceAsiya Javayant RENEWAL
Smith C KuskoRussiaElwin Sharvill QUALIFIED
Tony M MacleadIndiaAmy Elsner UNQUALIFIED
Smith U KolmetzArgentinaAmy Elsner NEW
Claire M GarufiCanadaElwin Sharvill NEGOTIATION
Darci S SlusarskiIndiaStephen Shaw PROPOSAL
Izzy R PoquetteSpainOnyama Limba NEGOTIATION
Ivar F RutaBrazilAnna Fali PROPOSAL
Cody P PoquetteSpainAnna Fali QUALIFIED
Aruna L StensethAustraliaIoni Bowcher NEW
Maisha V GillianArgentinaIoni Bowcher UNQUALIFIED
Jones F RulapaughBrazilAnna Fali NEGOTIATION
Antonio L PoquetteSpainIvan Magalhaes QUALIFIED
Jones S BriddickUnited KingdomBernardo Dominic RENEWAL
James D GlickAustraliaElwin Sharvill QUALIFIED
Rodrigues A MarrierGermanyOnyama Limba NEW
Wickens R SaylorsCanadaBernardo Dominic NEW
Julie H WieserAustraliaIoni Bowcher RENEWAL
Sinclair I DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Murillo D DoeIndiaStephen Shaw NEW

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