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 R IturbideRussiaIoni Bowcher QUALIFIED
Adams M PaprockiJapanAnna Fali NEW
Stacey H WhobreyItalyXuxue Feng NEGOTIATION
Jones S PaprockiUnited KingdomAsiya Javayant RENEWAL
Julie R FerenczItalyXuxue Feng RENEWAL
Kadeem L FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Emily X SchemmerGermanyBernardo Dominic UNQUALIFIED
Kadeem A OldroydAustraliaXuxue Feng QUALIFIED
Smith K MorascaIndiaXuxue Feng PROPOSAL
Johnson X PaprockiCanadaElwin Sharvill UNQUALIFIED
Aruna D VenereCanadaStephen Shaw NEGOTIATION
Chavez U InouyeSpainIoni Bowcher RENEWAL
Juan L OstroskyIndiaAmy Elsner NEW
Emily I DilliardRussiaElwin Sharvill UNQUALIFIED
Clifford R MaletCanadaXuxue Feng NEGOTIATION
Silvio Z BowleyAustraliaAnna Fali QUALIFIED
Leja I KuskoItalyOnyama Limba UNQUALIFIED
Ashley G SchemmerAustraliaIoni Bowcher NEW
Tony E RulapaughJapanBernardo Dominic UNQUALIFIED
Izzy O WaycottIndiaBernardo Dominic RENEWAL
Deepesh R StensethUnited KingdomElwin Sharvill NEGOTIATION
Aditya Q PerinGermanyAsiya Javayant NEW
Rodrigues G MarrierArgentinaAnna Fali RENEWAL
Julie Q MarrierFranceXuxue Feng RENEWAL
Jefferson N DarakjyJapanAnna Fali NEW
Deepesh Q AlbaresCanadaOnyama Limba NEGOTIATION
Stacey I BowleyJapanOnyama Limba NEGOTIATION
Jennifer I FerenczIndiaAsiya Javayant RENEWAL
Salvatore L WieserUnited KingdomStephen Shaw NEGOTIATION
Emily K SchemmerArgentinaAsiya Javayant RENEWAL
Munro L VocelkaIndiaIvan Magalhaes PROPOSAL
Morrow W SlusarskiItalyXuxue Feng UNQUALIFIED
Faith T StockhamGermanyBernardo Dominic UNQUALIFIED
Mujtaba D DilliardBrazilOnyama Limba QUALIFIED
Aruna P StensethGermanyAsiya Javayant NEW
Aruna Q MarrierIndiaAmy Elsner NEGOTIATION
Aika K MaletItalyAmy Elsner PROPOSAL
Misaki D AlbaresRussiaOnyama Limba PROPOSAL
Munro U CaudyFranceElwin Sharvill PROPOSAL
Deepesh P RutaFranceAmy Elsner UNQUALIFIED
Rodrigues I DarakjyRussiaElwin Sharvill NEGOTIATION
Ashley Y BriddickItalyElwin Sharvill UNQUALIFIED
Cody M StockhamCanadaAnna Fali UNQUALIFIED
Tony C WaycottArgentinaAsiya Javayant QUALIFIED
Claire P SlusarskiAustraliaAnna Fali QUALIFIED
Greenwood F NestleArgentinaXuxue Feng NEGOTIATION
Mujtaba F GauchoJapanStephen Shaw UNQUALIFIED
Juan W PerinFranceIvan Magalhaes NEW
Kadeem B RoysterUnited KingdomElwin Sharvill QUALIFIED
Deepesh N DoeRussiaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna K MacleadUnited KingdomOnyama Limba NEGOTIATION
Stacey Y TollnerArgentinaAmy Elsner NEGOTIATION
Rodrigues M SergiCanadaAsiya Javayant NEGOTIATION
Aika H WaycottSpainXuxue Feng PROPOSAL
Misaki P RulapaughItalyIvan Magalhaes RENEWAL
Leon Z MarrierUnited KingdomIoni Bowcher NEW
Rodrigues P MaletArgentinaIoni Bowcher UNQUALIFIED
Claire Y PerinIndiaXuxue Feng PROPOSAL
Adams P FerenczCanadaBernardo Dominic PROPOSAL
Emily S GillianJapanIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith Q IturbideBrazil2024-04-30Truhlar And Truhlar Attys NEGOTIATION77Xuxue Feng
1001Leon O GauchoAustralia2024-04-23Chanay, Jeffrey A Esq PROPOSAL30Bernardo Dominic
1002Francesco I BologniaGermany2024-04-25Feltz Printing Service UNQUALIFIED74Ivan Magalhaes
1003Greenwood G GillianSpain2024-04-29Feiner Bros QUALIFIED67Stephen Shaw
1004Aika W RoysterAustralia2024-04-18Chapman, Ross E Esq PROPOSAL15Ivan Magalhaes
1005Julie S WieserRussia2024-05-02Chapman, Ross E Esq UNQUALIFIED61Onyama Limba
1006Jeanfrancois G DoeCanada2024-04-19Chemel, James L Cpa RENEWAL15Anna Fali
1007Mujtaba C SchemmerFrance2024-04-22Printing Dimensions NEW96Bernardo Dominic
1008Isabel Q SergiFrance2024-04-20Dorl, James J Esq PROPOSAL13Bernardo Dominic
1009Adams R SergiFrance2024-04-22Truhlar And Truhlar Attys RENEWAL37Anna Fali
1010Francesco K SaylorsRussia2024-04-30Chapman, Ross E Esq PROPOSAL9Amy Elsner
1011Ivar S AmigonRussia2024-04-16Printing Dimensions QUALIFIED54Xuxue Feng
1012David Z GauchoAustralia2024-04-20Chapman, Ross E Esq NEGOTIATION2Asiya Javayant
1013Silvio P ShinkoCanada2024-04-22King, Christopher A Esq QUALIFIED82Asiya Javayant
1014Kaitlin X StockhamUnited Kingdom2024-04-23Dorl, James J Esq UNQUALIFIED44Xuxue Feng
1015Octavia V BriddickRussia2024-04-27Rousseaux, Michael Esq QUALIFIED58Amy Elsner
1016James Z PaprockiGermany2024-04-11Rangoni Of Florence UNQUALIFIED93Stephen Shaw
1017Arvin A WaycottItaly2024-04-07Buckley Miller Wright NEGOTIATION57Ivan Magalhaes
1018Darci H GauchoIndia2024-05-02Commercial Press PROPOSAL36Xuxue Feng
1019Izzy Y DarakjyItaly2024-04-11Chemel, James L Cpa RENEWAL3Amy Elsner
1020Jeanfrancois Z GauchoFrance2024-04-26Chanay, Jeffrey A Esq NEW0Elwin Sharvill
1021Antonio U ButtGermany2024-04-05King, Christopher A Esq NEGOTIATION11Bernardo Dominic
1022Octavia X FollerGermany2024-04-21Chapman, Ross E Esq RENEWAL12Ioni Bowcher
1023Juan H AmigonJapan2024-04-14King, Christopher A Esq PROPOSAL60Elwin Sharvill
1024Arvin Z VenereSpain2024-05-02Feiner Bros NEGOTIATION90Asiya Javayant
1025Mujtaba N SaylorsFrance2024-04-07Commercial Press NEW22Anna Fali
1026Claire O MorascaCanada2024-05-01Benton, John B Jr NEW83Elwin Sharvill
1027Mayumi Y ChuiArgentina2024-04-20Rangoni Of Florence NEW86Amy Elsner
1028David A MaletAustralia2024-04-21King, Christopher A Esq PROPOSAL73Amy Elsner
1029Munro H SchemmerSpain2024-05-02Chanay, Jeffrey A Esq UNQUALIFIED41Xuxue Feng
1030Isabel E ChuiGermany2024-05-04Rangoni Of Florence NEGOTIATION18Asiya Javayant
1031Chavez F MacleadJapan2024-04-21Feiner Bros RENEWAL58Bernardo Dominic
1032Isabel X NestleGermany2024-04-13Truhlar And Truhlar Attys NEW0Xuxue Feng
1033Aruna O InouyeItaly2024-05-03King, Christopher A Esq RENEWAL89Bernardo Dominic
1034Jones V IturbideArgentina2024-04-26Feltz Printing Service PROPOSAL30Amy Elsner
1035James R FollerItaly2024-04-09Truhlar And Truhlar Attys NEGOTIATION36Onyama Limba
1036Wickens B FerenczCanada2024-05-03Rangoni Of Florence QUALIFIED95Amy Elsner
1037Arvin Z FlosiCanada2024-04-29Chemel, James L Cpa PROPOSAL22Bernardo Dominic
1038Antonio H IturbideItaly2024-04-11Feiner Bros QUALIFIED54Stephen Shaw
1039Tony S MorascaRussia2024-05-03Feltz Printing Service RENEWAL55Bernardo Dominic
1040Leon N PoquetteRussia2024-04-19Printing Dimensions NEW0Amy Elsner
1041Greenwood B OstroskyFrance2024-04-27Buckley Miller Wright QUALIFIED58Ivan Magalhaes
1042Tony D WhobreyCanada2024-04-21Chapman, Ross E Esq UNQUALIFIED98Stephen Shaw
1043Leja L GillianIndia2024-05-03Feltz Printing Service UNQUALIFIED81Onyama Limba
1044Salvatore Y MaletSpain2024-04-15King, Christopher A Esq UNQUALIFIED46Stephen Shaw
1045Stacey U BowleyArgentina2024-04-28Benton, John B Jr NEGOTIATION24Amy Elsner
1046Aruna D PoquetteJapan2024-05-02Feltz Printing Service UNQUALIFIED98Bernardo Dominic
1047Smith N FerenczItaly2024-04-25Chemel, James L Cpa RENEWAL6Xuxue Feng
1048Isabel F GarufiAustralia2024-04-29Benton, John B Jr RENEWAL18Asiya Javayant
1049Mayumi P VenereSpain2024-04-17Chanay, Jeffrey A Esq RENEWAL29Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
James A BowleyFranceIoni Bowcher NEGOTIATION
Mujtaba A StensethFranceStephen Shaw NEGOTIATION
Alejandro J FigeroaSpainStephen Shaw PROPOSAL
Morrow O FollerItalyOnyama Limba NEW
Emily I NestleFranceIvan Magalhaes NEW
Nicolas Y BologniaUnited KingdomOnyama Limba NEW
Salvatore W FigeroaItalyIoni Bowcher NEW
Chavez E GillianGermanyElwin Sharvill QUALIFIED
Maisha D SchemmerArgentinaIoni Bowcher NEGOTIATION
Kadeem O FlosiUnited KingdomAnna Fali UNQUALIFIED
Stacey L NickaItalyBernardo Dominic PROPOSAL
Julie S PerinItalyIvan Magalhaes NEGOTIATION
Deepesh M SaylorsBrazilXuxue Feng QUALIFIED
Silvio P WieserItalyXuxue Feng NEW
Mujtaba T PaprockiFranceBernardo Dominic RENEWAL
Silvio F KuskoJapanXuxue Feng UNQUALIFIED
Octavia Z WieserSpainXuxue Feng NEW
Wickens L SaylorsJapanOnyama Limba NEGOTIATION
Salvatore O InouyeJapanOnyama Limba RENEWAL
Ricardo B CaldareraSpainXuxue Feng QUALIFIED
Faith Z MarrierItalyXuxue Feng NEW
Wickens M SergiAustraliaAnna Fali RENEWAL
Deepesh Z OldroydGermanyIvan Magalhaes NEGOTIATION
Misaki M InouyeJapanXuxue Feng NEGOTIATION
Nicolas Y WhobreyJapanAnna Fali QUALIFIED
Sinclair X BriddickItalyIvan Magalhaes RENEWAL
Maria G BowleyAustraliaOnyama Limba NEW
Isabel K CaudyIndiaOnyama Limba PROPOSAL
Jennifer G DilliardSpainXuxue Feng NEGOTIATION
Johnson Z WieserFranceIvan Magalhaes NEW
Aditya R WaycottArgentinaOnyama Limba QUALIFIED
Leon A SaylorsIndiaElwin Sharvill UNQUALIFIED
Salvatore A WhobreyGermanyStephen Shaw RENEWAL
Jennifer B MacleadItalyXuxue Feng NEW
Isabel X MorascaUnited KingdomElwin Sharvill RENEWAL
Deepesh O DoeArgentinaIoni Bowcher RENEWAL
Kadeem L KuskoAustraliaStephen Shaw NEW
Misaki J FerenczCanadaIoni Bowcher PROPOSAL
Greenwood E OldroydIndiaOnyama Limba UNQUALIFIED
Sinclair C PaprockiSpainAsiya Javayant NEGOTIATION
Silvio S FigeroaJapanAmy Elsner UNQUALIFIED
Emily G MaletUnited KingdomAsiya Javayant QUALIFIED
Maisha G CaudyUnited KingdomXuxue Feng NEW
Wickens T GauchoAustraliaElwin Sharvill NEW
Munro U BowleyUnited KingdomOnyama Limba UNQUALIFIED
Leja V AlbaresArgentinaAsiya Javayant UNQUALIFIED
Izzy Z DoeAustraliaBernardo Dominic QUALIFIED
Alejandro M CaldareraSpainIvan Magalhaes PROPOSAL
Jennifer W SergiGermanyIoni Bowcher PROPOSAL
Morrow N GarufiIndiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Salvatore G Briddick
Darci E Morasca
Antonio N Nestle
Cody B Campain
Greenwood C Venere
Chavez P Butt
Silvio Y Garufi
Aditya L Flosi
Leon S Perin
Cody O Kusko
Kadeem V Chui
Costa W Waycott
Murillo C Nestle
Maisha F Dilliard
Munro N Gillian
Murillo V Malet
James Z Rim
Chavez D Caldarera
Jones B Campain
Sinclair J Ruta
Greenwood W Nicka
Ivar F Caudy
Sinclair Q Oldroyd
Ivar F Ferencz
Munro W Darakjy
Nicolas C Schemmer
Johnson D Inouye
Nicolas F Glick
Deepesh R Dilliard
Aika P Malet
Adams T Shinko
Salvatore E Malet
Aika R Flosi
Mujtaba I Ruta
Mayumi U Malet
Costa F Bowley
Julie V Rulapaugh
Darci D Glick
Faith D Tollner
Julie T Nicka
Izzy P Nestle
Mujtaba T Stockham
Maisha M Albares
Maisha M Slusarski
Costa Y Foller
Leon R Iturbide
Nicolas L Gaucho
Chavez F Ferencz
Julie V Garufi
Rodrigues J Rulapaugh
IdCountryDate
1000India2024-05-01
1001France2024-05-01
1002United Kingdom2024-04-12
1003Italy2024-04-05
1004Canada2024-04-14
1005Japan2024-04-30
1006Brazil2024-04-14
1007Italy2024-05-02
1008France2024-04-27
1009United Kingdom2024-04-22
1010United Kingdom2024-04-16
1011Germany2024-04-21
1012Russia2024-04-21
1013Argentina2024-04-23
1014Australia2024-04-09
1015Japan2024-04-18
1016France2024-04-29
1017Spain2024-04-13
1018Canada2024-04-24
1019Germany2024-04-09
1020India2024-04-13
1021Canada2024-04-25
1022Brazil2024-04-05
1023India2024-04-23
1024France2024-05-04
1025Canada2024-04-28
1026Spain2024-05-04
1027Italy2024-04-16
1028Russia2024-04-12
1029India2024-04-26
1030Australia2024-04-23
1031Japan2024-04-22
1032Japan2024-04-05
1033Brazil2024-04-10
1034Russia2024-04-28
1035Russia2024-05-01
1036France2024-04-08
1037France2024-04-27
1038Spain2024-04-26
1039Brazil2024-05-03
1040Spain2024-04-20
1041Italy2024-04-21
1042Argentina2024-04-29
1043United Kingdom2024-05-02
1044Italy2024-04-08
1045Japan2024-04-29
1046Brazil2024-04-19
1047Italy2024-05-01
1048Italy2024-05-01
1049United Kingdom2024-05-04

On-Demand Data

NameIdCountryDate
Clifford H Ferencz1000United Kingdom2024-04-17
Silvio X Nestle1001Japan2024-05-02
Rodrigues E Inouye1002Russia2024-04-10
Ashley M Perin1003Japan2024-04-14
Mujtaba Q Malet1004Italy2024-04-13
Francesco M Gillian1005Canada2024-04-18
Alejandro R Stockham1006Italy2024-04-11
Kaitlin C Kolmetz1007India2024-04-08
Mujtaba H Saylors1008India2024-04-26
Maisha I Campain1009Japan2024-04-17
Aruna N Saylors1010Germany2024-04-10
Jones P Malet1011Japan2024-04-25
Nicolas M Shinko1012Brazil2024-04-30
Kadeem B Darakjy1013Australia2024-04-10
Greenwood E Flosi1014Argentina2024-04-09
Cody E Wieser1015Germany2024-04-29
Adams V Dilliard1016France2024-04-17
Munro G Chui1017Russia2024-04-08
Smith J Glick1018United Kingdom2024-04-23
Jones A Nestle1019Japan2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Z DoeFranceAsiya Javayant QUALIFIED
Alejandro U OldroydArgentinaXuxue Feng NEW
Deepesh Z BriddickGermanyAsiya Javayant RENEWAL
Claire J VocelkaFranceAnna Fali QUALIFIED
Ricardo P WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Maria G AmigonRussiaBernardo Dominic NEW
Tony Y CaldareraItalyBernardo Dominic PROPOSAL
Alejandro E FerenczCanadaAmy Elsner RENEWAL
Rodrigues R NestleIndiaXuxue Feng RENEWAL
Greenwood W NickaRussiaAsiya Javayant NEGOTIATION
Arvin M CaldareraSpainOnyama Limba PROPOSAL
Rodrigues G CaldareraSpainAmy Elsner UNQUALIFIED
Maria D PoquetteItalyStephen Shaw UNQUALIFIED
Arvin Y RoysterCanadaElwin Sharvill QUALIFIED
Juan H BowleyUnited KingdomElwin Sharvill QUALIFIED
Emily P StensethUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues A WhobreyAustraliaOnyama Limba QUALIFIED
Aika V GlickSpainStephen Shaw NEGOTIATION
Misaki Z IturbideSpainAsiya Javayant UNQUALIFIED
Leon J ShinkoArgentinaXuxue Feng UNQUALIFIED
Emily M TollnerAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois E AmigonRussiaStephen Shaw QUALIFIED
Antonio L ShinkoSpainAnna Fali QUALIFIED
Ivar Z BowleyRussiaOnyama Limba QUALIFIED
Sinclair Q CaudyIndiaElwin Sharvill NEGOTIATION
Arvin Z PerinItalyOnyama Limba NEW
Jones H NickaItalyAnna Fali PROPOSAL
Silvio Q PerinRussiaAnna Fali RENEWAL
Cody O ButtFranceIvan Magalhaes NEGOTIATION
Darci K MaletItalyAsiya Javayant PROPOSAL
Isabel I GillianGermanyAnna Fali QUALIFIED
Ricardo C VocelkaCanadaStephen Shaw NEW
Jones D GillianIndiaOnyama Limba PROPOSAL
Emily V FerenczRussiaBernardo Dominic PROPOSAL
Sinclair J BologniaJapanAnna Fali RENEWAL
Maisha B StensethFranceAsiya Javayant PROPOSAL
Jeanfrancois R RoysterGermanyAsiya Javayant NEW
Clifford M CampainCanadaElwin Sharvill RENEWAL
Julie M AmigonRussiaElwin Sharvill NEGOTIATION
Claire M GarufiUnited KingdomElwin Sharvill 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>