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
Misaki O SergiAustraliaXuxue Feng RENEWAL
Clifford N PoquetteItalyElwin Sharvill PROPOSAL
Mujtaba J NestleArgentinaAsiya Javayant UNQUALIFIED
Aruna N PerinRussiaOnyama Limba PROPOSAL
Jeanfrancois L TollnerBrazilXuxue Feng NEW
Maria B RimSpainElwin Sharvill RENEWAL
Jeanfrancois Y SlusarskiItalyBernardo Dominic RENEWAL
Francesco V GauchoCanadaElwin Sharvill RENEWAL
James L DoeCanadaBernardo Dominic QUALIFIED
Adams W StensethFranceAmy Elsner UNQUALIFIED
Jefferson T InouyeGermanyXuxue Feng UNQUALIFIED
Adams Y BriddickArgentinaAmy Elsner UNQUALIFIED
Aika K MarrierRussiaAnna Fali QUALIFIED
Antonio P BowleyCanadaElwin Sharvill NEGOTIATION
Kadeem T RimRussiaAnna Fali PROPOSAL
Maria A SlusarskiGermanyIvan Magalhaes PROPOSAL
Leon C CampainSpainXuxue Feng NEGOTIATION
Wickens H TollnerSpainStephen Shaw PROPOSAL
Faith X CaudyUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois B DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair F OldroydRussiaIoni Bowcher NEW
Johnson H AlbaresFranceIoni Bowcher PROPOSAL
Deepesh M StockhamJapanAnna Fali NEW
Tony R NestleIndiaIoni Bowcher NEGOTIATION
Johnson J DoeJapanBernardo Dominic QUALIFIED
Francesco Q AlbaresFranceOnyama Limba UNQUALIFIED
Jones A OstroskyAustraliaBernardo Dominic NEW
Maria T PoquetteJapanXuxue Feng PROPOSAL
Claire S MorascaSpainOnyama Limba RENEWAL
Leon N FlosiUnited KingdomBernardo Dominic PROPOSAL
Octavia L NickaGermanyIvan Magalhaes NEGOTIATION
Leja Z BologniaRussiaIvan Magalhaes NEW
James X ButtGermanyOnyama Limba UNQUALIFIED
Murillo T PaprockiBrazilIoni Bowcher RENEWAL
Arvin P MorascaCanadaElwin Sharvill PROPOSAL
Ivar A DoeArgentinaStephen Shaw NEGOTIATION
Clifford S CaldareraFranceXuxue Feng NEW
Emily S SlusarskiCanadaStephen Shaw QUALIFIED
Murillo D MorascaIndiaAnna Fali RENEWAL
Wickens T StockhamAustraliaXuxue Feng RENEWAL
Aika V WieserGermanyOnyama Limba NEW
Mayumi L RoysterGermanyIvan Magalhaes NEW
James T BriddickArgentinaOnyama Limba NEGOTIATION
Munro M MorascaItalyElwin Sharvill UNQUALIFIED
Greenwood D DarakjyBrazilStephen Shaw UNQUALIFIED
Jones R DoeBrazilIvan Magalhaes QUALIFIED
Jefferson A MaletUnited KingdomStephen Shaw QUALIFIED
Leja E RoysterItalyAsiya Javayant UNQUALIFIED
Jones E CampainJapanXuxue Feng QUALIFIED
Sinclair F ButtFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi L GillianIndiaBernardo Dominic RENEWAL
Emily J GillianJapanOnyama Limba NEGOTIATION
Murillo Z StockhamSpainIvan Magalhaes UNQUALIFIED
Francesco K SergiCanadaXuxue Feng PROPOSAL
Johnson T IturbideAustraliaIoni Bowcher NEW
Tony Z CaldareraArgentinaBernardo Dominic NEGOTIATION
Wickens Q VenereArgentinaElwin Sharvill NEGOTIATION
Arvin A NestleGermanyOnyama Limba UNQUALIFIED
Nicolas R BologniaArgentinaStephen Shaw UNQUALIFIED
Smith S KolmetzBrazilElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith V MaletArgentina2024-04-09King, Christopher A Esq NEW73Ioni Bowcher
1001Ashley D BowleyGermany2024-04-08Chanay, Jeffrey A Esq QUALIFIED81Ioni Bowcher
1002James C DarakjyUnited Kingdom2024-04-08Feiner Bros PROPOSAL89Onyama Limba
1003Adams A GillianArgentina2024-04-10Feiner Bros PROPOSAL97Ioni Bowcher
1004Jeanfrancois F DarakjyIndia2024-04-25Benton, John B Jr QUALIFIED13Ivan Magalhaes
1005Silvio K GillianFrance2024-04-06Benton, John B Jr UNQUALIFIED94Elwin Sharvill
1006Sinclair M AlbaresCanada2024-04-01King, Christopher A Esq QUALIFIED67Stephen Shaw
1007Juan M IturbideCanada2024-04-24Commercial Press NEW11Anna Fali
1008Arvin U KuskoAustralia2024-04-27Feltz Printing Service QUALIFIED34Amy Elsner
1009Rodrigues W IturbideSpain2024-04-02Feltz Printing Service UNQUALIFIED67Anna Fali
1010Aditya W OstroskyUnited Kingdom2024-04-24Feiner Bros NEW18Elwin Sharvill
1011Kaitlin X SchemmerUnited Kingdom2024-04-21Buckley Miller Wright RENEWAL88Onyama Limba
1012Rodrigues N VenereAustralia2024-04-23Rousseaux, Michael Esq RENEWAL85Amy Elsner
1013Ivar R FigeroaRussia2024-04-14Morlong Associates QUALIFIED81Xuxue Feng
1014Cody F PerinBrazil2024-04-17Dorl, James J Esq NEGOTIATION68Stephen Shaw
1015Kadeem T GarufiJapan2024-04-22Truhlar And Truhlar Attys RENEWAL16Ioni Bowcher
1016Jennifer K WhobreyFrance2024-04-16Chapman, Ross E Esq RENEWAL10Amy Elsner
1017Arvin N ChuiIndia2024-04-07Feltz Printing Service NEGOTIATION60Anna Fali
1018Alejandro R FollerJapan2024-04-17Feiner Bros NEGOTIATION73Anna Fali
1019Darci X GauchoGermany2024-04-14Dorl, James J Esq PROPOSAL83Ivan Magalhaes
1020Izzy L WaycottCanada2024-03-31Chemel, James L Cpa UNQUALIFIED44Bernardo Dominic
1021Alejandro W FollerRussia2024-03-31King, Christopher A Esq PROPOSAL19Bernardo Dominic
1022Costa I IturbideUnited Kingdom2024-04-26Commercial Press UNQUALIFIED80Stephen Shaw
1023Salvatore X BowleyBrazil2024-04-06Feiner Bros NEW67Amy Elsner
1024Jefferson G PaprockiSpain2024-04-19Buckley Miller Wright RENEWAL27Ivan Magalhaes
1025Francesco L GlickAustralia2024-04-15Dorl, James J Esq UNQUALIFIED65Stephen Shaw
1026Jones I TollnerJapan2024-03-31Feltz Printing Service PROPOSAL61Bernardo Dominic
1027David Y DilliardAustralia2024-04-27Rangoni Of Florence RENEWAL65Elwin Sharvill
1028Aika O MacleadCanada2024-04-17Commercial Press PROPOSAL92Elwin Sharvill
1029Maisha O AmigonItaly2024-04-16Buckley Miller Wright UNQUALIFIED35Anna Fali
1030Murillo L OldroydCanada2024-04-02King, Christopher A Esq NEGOTIATION87Amy Elsner
1031Jennifer N FerenczIndia2024-04-10Rousseaux, Michael Esq QUALIFIED52Xuxue Feng
1032Ivar A ShinkoIndia2024-04-27Rousseaux, Michael Esq RENEWAL77Ivan Magalhaes
1033Jennifer Y IturbideRussia2024-04-21Rangoni Of Florence NEW18Elwin Sharvill
1034Ricardo C BologniaBrazil2024-04-24Buckley Miller Wright NEGOTIATION93Anna Fali
1035Sinclair Z BriddickAustralia2024-04-09King, Christopher A Esq QUALIFIED85Xuxue Feng
1036Aditya V AmigonGermany2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED20Ivan Magalhaes
1037Isabel M SaylorsItaly2024-04-18Chapman, Ross E Esq NEW51Ivan Magalhaes
1038Silvio P AlbaresArgentina2024-04-08Chemel, James L Cpa RENEWAL50Ioni Bowcher
1039Ricardo W MaletArgentina2024-04-20Feltz Printing Service PROPOSAL95Amy Elsner
1040Morrow U StockhamCanada2024-04-13Commercial Press UNQUALIFIED72Amy Elsner
1041Leon C DoeJapan2024-04-26Chemel, James L Cpa UNQUALIFIED72Ivan Magalhaes
1042Kadeem B BologniaSpain2024-04-03Morlong Associates PROPOSAL20Amy Elsner
1043Tony M RimIndia2024-04-23Morlong Associates QUALIFIED86Asiya Javayant
1044Alejandro G PerinSpain2024-04-12Chapman, Ross E Esq RENEWAL59Stephen Shaw
1045Misaki Y GillianFrance2024-04-07Feiner Bros NEGOTIATION67Xuxue Feng
1046Sinclair L BologniaRussia2024-04-19Rousseaux, Michael Esq NEW19Bernardo Dominic
1047Ricardo Y InouyeJapan2024-04-16Buckley Miller Wright RENEWAL66Amy Elsner
1048Munro U GauchoUnited Kingdom2024-04-27Rangoni Of Florence NEGOTIATION26Stephen Shaw
1049James M InouyeGermany2024-04-21Feiner Bros RENEWAL62Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Antonio D WieserSpainBernardo Dominic NEW
Wickens Q KuskoUnited KingdomOnyama Limba PROPOSAL
Aruna J CaudyIndiaXuxue Feng PROPOSAL
Aditya U MaletRussiaIoni Bowcher PROPOSAL
Izzy M StensethSpainElwin Sharvill UNQUALIFIED
Juan Z GauchoFranceBernardo Dominic PROPOSAL
Rodrigues U WieserIndiaElwin Sharvill NEGOTIATION
Sinclair J OstroskyCanadaBernardo Dominic NEGOTIATION
Izzy N RulapaughArgentinaOnyama Limba NEW
Ricardo F BologniaBrazilElwin Sharvill RENEWAL
Faith B ChuiBrazilAnna Fali QUALIFIED
Chavez J ShinkoFranceIvan Magalhaes NEW
Jennifer N IturbideCanadaStephen Shaw QUALIFIED
Jones Y ButtAustraliaIoni Bowcher NEGOTIATION
Julie Z BologniaAustraliaBernardo Dominic NEGOTIATION
Arvin Q AmigonUnited KingdomAnna Fali PROPOSAL
Leja U NestleJapanElwin Sharvill NEGOTIATION
Juan U CaudyItalyXuxue Feng NEW
James X SchemmerJapanElwin Sharvill QUALIFIED
Jeanfrancois Z IturbideIndiaAnna Fali NEGOTIATION
Julie F CaldareraBrazilAnna Fali PROPOSAL
Greenwood I PaprockiRussiaAsiya Javayant QUALIFIED
Antonio R StockhamJapanXuxue Feng NEGOTIATION
Jennifer W AlbaresJapanAmy Elsner RENEWAL
Rodrigues R WieserFranceIoni Bowcher PROPOSAL
Claire J IturbideAustraliaElwin Sharvill QUALIFIED
Costa U MaletIndiaOnyama Limba RENEWAL
Octavia G BologniaAustraliaXuxue Feng UNQUALIFIED
Leon S TollnerBrazilIvan Magalhaes UNQUALIFIED
Wickens R SaylorsCanadaAsiya Javayant NEGOTIATION
Misaki O CaudyAustraliaIoni Bowcher PROPOSAL
Leon H GlickBrazilXuxue Feng NEGOTIATION
Costa R BologniaItalyIoni Bowcher QUALIFIED
Sinclair M GauchoCanadaOnyama Limba PROPOSAL
Jeanfrancois C CampainUnited KingdomAnna Fali RENEWAL
Kaitlin Y TollnerUnited KingdomBernardo Dominic PROPOSAL
Kadeem W PerinAustraliaIvan Magalhaes NEGOTIATION
Antonio P FigeroaJapanStephen Shaw RENEWAL
Faith J AmigonAustraliaXuxue Feng RENEWAL
Aruna T BriddickUnited KingdomAmy Elsner NEGOTIATION
Julie A MaletAustraliaStephen Shaw NEW
Julie F MacleadCanadaOnyama Limba NEGOTIATION
James Z SergiItalyIvan Magalhaes UNQUALIFIED
Stacey R ChuiAustraliaElwin Sharvill QUALIFIED
Tony Z WaycottCanadaAmy Elsner UNQUALIFIED
Chavez J MorascaCanadaElwin Sharvill QUALIFIED
Arvin M GauchoRussiaOnyama Limba NEGOTIATION
Mayumi B WhobreyJapanBernardo Dominic NEGOTIATION
Darci O ChuiUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois W MaletFranceIoni Bowcher NEW
Frozen Columns
Name
Salvatore M Doe
Misaki Q Wieser
Tony A Iturbide
Jefferson W Glick
Jennifer Z Nestle
Sinclair X Ferencz
David P Gillian
Tony U Malet
Isabel S Figeroa
Kaitlin X Darakjy
Leon D Tollner
Leon X Nicka
Leja A Glick
Izzy F Amigon
Munro Q Briddick
Sinclair Y Dilliard
Francesco G Ostrosky
Mayumi I Amigon
Faith B Campain
Emily I Albares
Wickens I Iturbide
Kaitlin W Campain
Isabel G Wieser
Greenwood I Poquette
Juan Y Wieser
Deepesh A Inouye
Emily P Flosi
Smith E Wieser
Adams S Flosi
Aruna O Slusarski
Costa H Campain
Salvatore A Morasca
Faith T Butt
Leon Z Nestle
Kaitlin D Waycott
Aditya I Garufi
Kaitlin G Dilliard
Antonio Q Darakjy
Stacey R Shinko
Deepesh V Albares
Tony Y Ostrosky
Alejandro Q Venere
Jones C Whobrey
Kaitlin D Stenseth
Murillo W Amigon
Ricardo V Glick
Maria Q Dilliard
Sinclair N Nicka
Costa J Kolmetz
Johnson F Glick
IdCountryDate
1000Spain2024-04-01
1001Germany2024-04-06
1002Spain2024-04-20
1003Brazil2024-04-25
1004Australia2024-04-15
1005United Kingdom2024-04-28
1006France2024-04-18
1007Japan2024-04-23
1008Japan2024-04-25
1009United Kingdom2024-04-27
1010United Kingdom2024-04-25
1011Russia2024-03-31
1012Italy2024-04-23
1013Spain2024-04-01
1014Spain2024-04-06
1015Canada2024-04-15
1016Germany2024-04-28
1017Russia2024-04-12
1018Italy2024-04-05
1019Japan2024-04-23
1020Argentina2024-04-12
1021India2024-04-04
1022United Kingdom2024-04-24
1023India2024-04-18
1024Canada2024-04-09
1025United Kingdom2024-04-25
1026Russia2024-04-15
1027Italy2024-04-03
1028India2024-04-25
1029India2024-04-16
1030France2024-04-04
1031Australia2024-04-14
1032Argentina2024-04-22
1033United Kingdom2024-04-25
1034Canada2024-04-12
1035Japan2024-04-19
1036United Kingdom2024-04-14
1037Australia2024-04-25
1038Germany2024-04-19
1039Brazil2024-03-31
1040Italy2024-04-01
1041Japan2024-04-10
1042Brazil2024-04-21
1043Canada2024-04-21
1044Germany2024-04-08
1045Italy2024-04-04
1046Canada2024-04-24
1047India2024-04-11
1048Canada2024-04-08
1049Italy2024-04-08

On-Demand Data

NameIdCountryDate
Greenwood R Shinko1000Russia2024-04-02
Murillo C Wieser1001Canada2024-04-09
Costa R Amigon1002Germany2024-03-31
Rodrigues R Dilliard1003Brazil2024-04-17
Isabel B Ferencz1004Germany2024-03-31
Jones M Morasca1005Russia2024-04-15
Murillo N Amigon1006Italy2024-03-31
Wickens E Inouye1007Japan2024-04-02
Jennifer O Dilliard1008Spain2024-04-16
Nicolas A Darakjy1009France2024-04-07
Deepesh D Albares1010Japan2024-04-14
Francesco N Perin1011Argentina2024-04-24
Nicolas K Paprocki1012Japan2024-04-15
Cody Y Rulapaugh1013Argentina2024-04-06
Costa C Nestle1014Brazil2024-04-24
Maria K Oldroyd1015India2024-04-03
Chavez E Tollner1016Spain2024-04-18
Juan C Doe1017Italy2024-04-03
Jones F Shinko1018Germany2024-04-20
Silvio L Ostrosky1019Brazil2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci Q GillianAustraliaIvan Magalhaes QUALIFIED
Maria H AlbaresItalyStephen Shaw NEGOTIATION
Stacey T VocelkaBrazilOnyama Limba NEW
Wickens M KuskoUnited KingdomIoni Bowcher RENEWAL
Juan Y GauchoGermanyAsiya Javayant UNQUALIFIED
Ashley D DoeFranceIvan Magalhaes UNQUALIFIED
Jennifer R PerinAustraliaIoni Bowcher RENEWAL
Julie O SaylorsRussiaXuxue Feng NEGOTIATION
Adams N PoquetteGermanyBernardo Dominic UNQUALIFIED
Francesco F SergiJapanXuxue Feng UNQUALIFIED
Kaitlin U FigeroaArgentinaAsiya Javayant RENEWAL
Aditya O VocelkaSpainXuxue Feng RENEWAL
Johnson Q RoysterUnited KingdomElwin Sharvill PROPOSAL
Costa C KolmetzArgentinaIoni Bowcher QUALIFIED
Aika K CaldareraAustraliaStephen Shaw RENEWAL
Jones A SchemmerItalyStephen Shaw PROPOSAL
Faith H VenereItalyOnyama Limba NEGOTIATION
Cody H BriddickItalyOnyama Limba PROPOSAL
Leon E PerinAustraliaAmy Elsner UNQUALIFIED
Juan I StensethArgentinaXuxue Feng PROPOSAL
Wickens Q MorascaSpainAnna Fali PROPOSAL
Greenwood Q DilliardJapanOnyama Limba RENEWAL
Jennifer S RimItalyElwin Sharvill UNQUALIFIED
Misaki I FigeroaGermanyStephen Shaw NEW
Rodrigues K ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Maria X BriddickRussiaOnyama Limba NEW
Mayumi I StensethIndiaElwin Sharvill NEGOTIATION
James K GarufiIndiaStephen Shaw RENEWAL
Alejandro P CaldareraCanadaIoni Bowcher QUALIFIED
Jeanfrancois P GlickCanadaStephen Shaw RENEWAL
Emily F InouyeGermanyStephen Shaw QUALIFIED
Cody B OldroydArgentinaAnna Fali RENEWAL
Antonio P StockhamRussiaBernardo Dominic NEGOTIATION
Leon P BriddickIndiaIvan Magalhaes NEW
Kadeem Q CampainUnited KingdomOnyama Limba RENEWAL
Jones Z FollerJapanAmy Elsner UNQUALIFIED
Silvio E RulapaughItalyIvan Magalhaes RENEWAL
Chavez A KolmetzSpainOnyama Limba NEW
Mujtaba Q GarufiAustraliaAnna Fali UNQUALIFIED
Rodrigues F BriddickBrazilOnyama Limba QUALIFIED

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