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
Adams K GauchoSpainAnna Fali QUALIFIED
Salvatore H FerenczGermanyStephen Shaw PROPOSAL
Mayumi B ButtCanadaXuxue Feng NEGOTIATION
Salvatore J RoysterCanadaIoni Bowcher NEGOTIATION
Adams P BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Wickens K GillianJapanAnna Fali QUALIFIED
Tony X AmigonArgentinaBernardo Dominic PROPOSAL
Johnson Q DoeSpainAmy Elsner PROPOSAL
Misaki O StensethIndiaXuxue Feng PROPOSAL
Izzy T StensethUnited KingdomStephen Shaw PROPOSAL
Emily Z CaldareraRussiaAmy Elsner NEW
David U DoeRussiaAnna Fali NEW
Johnson P WaycottJapanIoni Bowcher PROPOSAL
Salvatore C BriddickBrazilAmy Elsner UNQUALIFIED
Jeanfrancois U VenereRussiaAnna Fali PROPOSAL
Leon A VocelkaAustraliaAnna Fali PROPOSAL
Deepesh Q WhobreyIndiaBernardo Dominic NEGOTIATION
Juan H VenereArgentinaBernardo Dominic RENEWAL
Silvio C FlosiUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues W DilliardSpainBernardo Dominic QUALIFIED
Emily H RutaGermanyAnna Fali NEGOTIATION
Kaitlin S StockhamBrazilXuxue Feng QUALIFIED
Morrow Q GarufiAustraliaStephen Shaw RENEWAL
James P CampainIndiaXuxue Feng NEW
Tony Y MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Octavia W AlbaresAustraliaAsiya Javayant UNQUALIFIED
Murillo Z PaprockiArgentinaAnna Fali QUALIFIED
Misaki Q MorascaArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois C OstroskyUnited KingdomElwin Sharvill QUALIFIED
Tony Z WaycottAustraliaOnyama Limba NEGOTIATION
Aruna W StockhamGermanyIvan Magalhaes NEGOTIATION
Nicolas E OstroskySpainXuxue Feng NEGOTIATION
Munro A BologniaGermanyXuxue Feng QUALIFIED
Murillo E InouyeArgentinaBernardo Dominic NEGOTIATION
Ashley Z BowleySpainAmy Elsner NEGOTIATION
Claire Z FigeroaCanadaAsiya Javayant PROPOSAL
Silvio E RutaGermanyAmy Elsner NEGOTIATION
Cody K KuskoRussiaAsiya Javayant PROPOSAL
Nicolas C CaldareraItalyBernardo Dominic UNQUALIFIED
Morrow N SchemmerBrazilElwin Sharvill PROPOSAL
Emily C MaletArgentinaElwin Sharvill UNQUALIFIED
Francesco F GauchoCanadaIoni Bowcher UNQUALIFIED
Stacey Y FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Francesco R SergiFranceAmy Elsner NEW
Jeanfrancois A MaletAustraliaXuxue Feng UNQUALIFIED
Aditya D RimBrazilIoni Bowcher QUALIFIED
Nicolas M GillianItalyAsiya Javayant NEW
Greenwood C DarakjyJapanAmy Elsner NEW
Ashley F ShinkoSpainElwin Sharvill RENEWAL
Aditya W GillianItalyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford O GarufiJapanIoni Bowcher PROPOSAL
David V DoeCanadaStephen Shaw NEW
Costa W PoquetteRussiaIvan Magalhaes QUALIFIED
Julie K PoquetteArgentinaStephen Shaw UNQUALIFIED
Greenwood D OstroskyGermanyElwin Sharvill RENEWAL
Misaki D AmigonGermanyIoni Bowcher QUALIFIED
Munro C FollerCanadaAnna Fali RENEWAL
Juan I RimBrazilXuxue Feng PROPOSAL
Jones W KuskoJapanAnna Fali RENEWAL
Costa O KolmetzSpainBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson D BologniaBrazil2024-04-22Buckley Miller Wright NEW79Asiya Javayant
1001Tony T SergiGermany2024-04-19Chemel, James L Cpa NEW10Xuxue Feng
1002Emily Z ChuiBrazil2024-04-20King, Christopher A Esq UNQUALIFIED66Ioni Bowcher
1003Mujtaba I CampainBrazil2024-04-16Morlong Associates UNQUALIFIED48Asiya Javayant
1004Stacey S DarakjyArgentina2024-04-15Chemel, James L Cpa NEW30Ioni Bowcher
1005Wickens R ShinkoJapan2024-04-17Buckley Miller Wright PROPOSAL58Ivan Magalhaes
1006Jeanfrancois X GarufiAustralia2024-04-14Dorl, James J Esq UNQUALIFIED58Stephen Shaw
1007Julie B GarufiJapan2024-04-07Buckley Miller Wright UNQUALIFIED46Asiya Javayant
1008Leja T RoysterSpain2024-04-21Chapman, Ross E Esq NEGOTIATION48Ioni Bowcher
1009Salvatore P WhobreyGermany2024-04-10Dorl, James J Esq PROPOSAL43Xuxue Feng
1010Francesco Y BologniaArgentina2024-04-12Chemel, James L Cpa PROPOSAL82Amy Elsner
1011Aditya G GillianGermany2024-04-15Chapman, Ross E Esq NEGOTIATION61Bernardo Dominic
1012Octavia D NestleItaly2024-04-17Printing Dimensions UNQUALIFIED72Elwin Sharvill
1013Aditya Z IturbideJapan2024-04-09Buckley Miller Wright PROPOSAL58Bernardo Dominic
1014Misaki Y SchemmerCanada2024-04-26Chemel, James L Cpa PROPOSAL89Amy Elsner
1015Leja R StensethJapan2024-04-07Benton, John B Jr NEGOTIATION49Amy Elsner
1016Greenwood X PerinSpain2024-04-07Feltz Printing Service PROPOSAL97Elwin Sharvill
1017Juan K BowleyCanada2024-04-13Commercial Press NEGOTIATION60Ioni Bowcher
1018Misaki I GarufiBrazil2024-04-02Chapman, Ross E Esq NEW21Ioni Bowcher
1019Darci C InouyeItaly2024-04-16Chemel, James L Cpa UNQUALIFIED78Ivan Magalhaes
1020Aditya O GauchoIndia2024-04-20Printing Dimensions QUALIFIED7Elwin Sharvill
1021Mujtaba U NickaJapan2024-04-16Chapman, Ross E Esq QUALIFIED78Xuxue Feng
1022Leja K BologniaCanada2024-04-26Rousseaux, Michael Esq QUALIFIED32Stephen Shaw
1023Maisha O PoquetteJapan2024-04-18Truhlar And Truhlar Attys RENEWAL6Ivan Magalhaes
1024Octavia L NestleSpain2024-04-02Printing Dimensions RENEWAL65Amy Elsner
1025Chavez P DarakjyJapan2024-04-15Chapman, Ross E Esq NEW25Onyama Limba
1026Juan S AlbaresFrance2024-03-30Feiner Bros NEGOTIATION9Onyama Limba
1027Stacey H BriddickItaly2024-04-27Rangoni Of Florence PROPOSAL95Ivan Magalhaes
1028Deepesh B VenereSpain2024-04-05Buckley Miller Wright PROPOSAL62Xuxue Feng
1029Mayumi E InouyeAustralia2024-04-02Benton, John B Jr PROPOSAL85Amy Elsner
1030Greenwood S MarrierJapan2024-04-02Rousseaux, Michael Esq QUALIFIED26Bernardo Dominic
1031Faith J GauchoAustralia2024-04-20Benton, John B Jr RENEWAL87Onyama Limba
1032Murillo A WaycottGermany2024-04-20King, Christopher A Esq UNQUALIFIED91Elwin Sharvill
1033James N MorascaGermany2024-04-22Benton, John B Jr NEW69Xuxue Feng
1034David O TollnerCanada2024-04-01Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1035Leon Z MaletAustralia2024-04-03Chanay, Jeffrey A Esq NEW53Elwin Sharvill
1036Juan D KolmetzSpain2024-04-10Feiner Bros RENEWAL45Ioni Bowcher
1037Leon C StockhamAustralia2024-04-20Rangoni Of Florence QUALIFIED58Amy Elsner
1038Faith N RulapaughGermany2024-04-20Commercial Press QUALIFIED32Ivan Magalhaes
1039Greenwood D MaletUnited Kingdom2024-03-30Feltz Printing Service NEGOTIATION3Xuxue Feng
1040Francesco V MacleadIndia2024-03-29Dorl, James J Esq UNQUALIFIED78Ioni Bowcher
1041Salvatore B OstroskyItaly2024-03-31Buckley Miller Wright RENEWAL44Ivan Magalhaes
1042Alejandro I OldroydAustralia2024-04-04Feiner Bros NEW4Asiya Javayant
1043Francesco X GarufiGermany2024-03-29Chemel, James L Cpa NEGOTIATION26Onyama Limba
1044Darci V CaldareraFrance2024-04-04Feiner Bros QUALIFIED39Ivan Magalhaes
1045Alejandro L WieserAustralia2024-04-05Chemel, James L Cpa UNQUALIFIED6Elwin Sharvill
1046Ashley V SchemmerArgentina2024-04-16Chanay, Jeffrey A Esq QUALIFIED66Anna Fali
1047Francesco K MacleadBrazil2024-04-20King, Christopher A Esq RENEWAL45Bernardo Dominic
1048Deepesh I GlickFrance2024-04-05Rangoni Of Florence PROPOSAL6Ivan Magalhaes
1049Aditya K GlickJapan2024-04-21King, Christopher A Esq UNQUALIFIED89Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony H MaletBrazilStephen Shaw PROPOSAL
Munro U OstroskyCanadaIvan Magalhaes NEW
Munro D KuskoCanadaStephen Shaw NEGOTIATION
Emily Z GauchoRussiaOnyama Limba UNQUALIFIED
Rodrigues Q StensethSpainAsiya Javayant NEGOTIATION
Murillo K FollerCanadaIvan Magalhaes QUALIFIED
Maria E BologniaCanadaIoni Bowcher UNQUALIFIED
Octavia Y GillianItalyElwin Sharvill RENEWAL
Deepesh H FollerItalyXuxue Feng RENEWAL
David B FigeroaBrazilAnna Fali RENEWAL
Kaitlin A CampainSpainElwin Sharvill PROPOSAL
Ashley N MaletBrazilIvan Magalhaes NEGOTIATION
Tony G KuskoArgentinaBernardo Dominic NEW
Aika N ButtSpainAmy Elsner NEGOTIATION
Greenwood W BriddickUnited KingdomBernardo Dominic QUALIFIED
Leon X BologniaAustraliaAmy Elsner RENEWAL
Greenwood B GillianIndiaBernardo Dominic NEGOTIATION
Arvin L CampainRussiaElwin Sharvill NEGOTIATION
Jones B RulapaughJapanStephen Shaw RENEWAL
Ricardo N KuskoSpainXuxue Feng RENEWAL
Francesco R BriddickGermanyAmy Elsner NEGOTIATION
Costa O FlosiArgentinaAsiya Javayant PROPOSAL
Sinclair W MarrierItalyIvan Magalhaes NEW
Sinclair Z BriddickCanadaAmy Elsner QUALIFIED
Greenwood H NickaArgentinaBernardo Dominic NEGOTIATION
Jefferson E DilliardGermanyIoni Bowcher UNQUALIFIED
Faith A IturbideGermanyAsiya Javayant QUALIFIED
Leja R PoquetteIndiaStephen Shaw PROPOSAL
Tony T FlosiBrazilIvan Magalhaes RENEWAL
Jones P NickaItalyXuxue Feng RENEWAL
Nicolas Z NickaItalyBernardo Dominic NEW
Claire D FigeroaItalyBernardo Dominic PROPOSAL
Faith F RimIndiaOnyama Limba RENEWAL
Kadeem E FigeroaRussiaOnyama Limba RENEWAL
Adams S FigeroaAustraliaElwin Sharvill NEGOTIATION
Jefferson I CaldareraAustraliaAsiya Javayant NEW
Misaki M GillianGermanyElwin Sharvill NEGOTIATION
Munro Y CampainUnited KingdomAmy Elsner UNQUALIFIED
Wickens G PaprockiIndiaXuxue Feng UNQUALIFIED
Aditya D WaycottGermanyAmy Elsner NEGOTIATION
Greenwood N OstroskyRussiaStephen Shaw PROPOSAL
Antonio B OstroskySpainIvan Magalhaes NEGOTIATION
Octavia L CampainIndiaElwin Sharvill NEGOTIATION
Rodrigues T DoeFranceStephen Shaw PROPOSAL
Cody Z CaldareraRussiaAnna Fali NEW
Morrow R DilliardAustraliaStephen Shaw NEGOTIATION
Murillo X PoquetteFranceBernardo Dominic PROPOSAL
Maisha X TollnerJapanStephen Shaw NEGOTIATION
Kadeem O BriddickGermanyAnna Fali PROPOSAL
Adams B GillianBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Clifford F Flosi
Stacey Y Ferencz
Morrow G Albares
Jeanfrancois K Schemmer
Greenwood Y Glick
Darci E Saylors
Ricardo V Dilliard
David E Vocelka
Aruna Z Iturbide
Costa M Royster
Tony Y Iturbide
Francesco C Albares
Stacey C Rim
Jefferson B Poquette
Rodrigues E Iturbide
Isabel J Stenseth
Ivar T Tollner
James C Chui
Isabel J Iturbide
Clifford F Campain
Leon U Kusko
Francesco O Doe
Morrow Y Nestle
Maisha R Inouye
Jennifer D Venere
James U Butt
Leon U Dilliard
David Q Caldarera
Francesco H Caldarera
Emily V Marrier
Isabel J Nestle
Ivar Q Dilliard
Faith U Darakjy
Aditya M Caudy
Silvio F Rulapaugh
Aditya F Stockham
Salvatore V Oldroyd
Tony Q Amigon
Aruna L Rim
Rodrigues K Darakjy
Emily Y Figeroa
Clifford B Briddick
Leon P Oldroyd
Rodrigues P Stenseth
Leon R Malet
Izzy U Ferencz
Tony R Kusko
Aditya G Dilliard
Jefferson Y Nicka
Costa L Briddick
IdCountryDate
1000Australia2024-04-22
1001United Kingdom2024-03-31
1002Australia2024-04-27
1003Australia2024-03-30
1004Australia2024-04-25
1005Germany2024-04-01
1006Italy2024-04-24
1007Canada2024-04-08
1008Spain2024-04-24
1009Russia2024-04-10
1010Japan2024-03-29
1011United Kingdom2024-04-02
1012Canada2024-04-03
1013India2024-04-05
1014Australia2024-04-18
1015Italy2024-04-21
1016Argentina2024-03-29
1017Australia2024-04-10
1018Brazil2024-04-15
1019Argentina2024-04-01
1020Germany2024-04-04
1021Argentina2024-04-20
1022Spain2024-04-02
1023Brazil2024-04-13
1024Brazil2024-04-17
1025Brazil2024-04-20
1026Argentina2024-04-06
1027Italy2024-03-30
1028United Kingdom2024-04-04
1029Russia2024-04-07
1030Spain2024-04-20
1031Russia2024-04-08
1032Spain2024-04-19
1033Japan2024-04-01
1034Australia2024-04-15
1035Germany2024-04-06
1036Brazil2024-04-17
1037Russia2024-04-19
1038Australia2024-04-12
1039Brazil2024-04-17
1040Russia2024-04-17
1041India2024-04-07
1042Russia2024-04-07
1043Russia2024-04-03
1044Russia2024-04-13
1045Russia2024-04-16
1046Japan2024-04-12
1047Australia2024-04-15
1048Russia2024-04-26
1049Brazil2024-04-10

On-Demand Data

NameIdCountryDate
Izzy B Wieser1000Australia2024-04-25
Antonio R Waycott1001Australia2024-04-13
Emily V Caldarera1002Argentina2024-04-21
Izzy U Saylors1003Japan2024-04-23
Ivar Q Flosi1004Italy2024-04-03
Ashley H Perin1005Japan2024-04-17
Clifford N Briddick1006Russia2024-04-01
Ricardo B Butt1007Canada2024-04-24
Julie T Waycott1008Canada2024-04-15
Kaitlin M Rim1009Germany2024-04-27
Misaki N Garufi1010India2024-04-06
Greenwood O Oldroyd1011Italy2024-04-13
Leja Y Iturbide1012Italy2024-04-04
Izzy F Whobrey1013Russia2024-04-22
Aditya Q Amigon1014Brazil2024-04-10
Kadeem X Venere1015Germany2024-04-01
Claire R Caldarera1016Italy2024-04-08
Francesco T Ferencz1017France2024-04-20
Antonio H Kolmetz1018Brazil2024-04-19
Johnson N Ferencz1019Russia2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin H ButtCanadaElwin Sharvill NEW
Darci U MorascaGermanyElwin Sharvill QUALIFIED
Jeanfrancois X RulapaughAustraliaOnyama Limba NEW
Aditya G BowleyUnited KingdomAsiya Javayant QUALIFIED
Julie B StensethFranceAsiya Javayant NEW
Misaki Q NestleIndiaIvan Magalhaes QUALIFIED
Antonio K PerinArgentinaStephen Shaw QUALIFIED
Murillo W NickaSpainAsiya Javayant NEW
David Q KolmetzSpainIoni Bowcher NEW
Aruna S WieserGermanyAnna Fali QUALIFIED
Darci M BriddickRussiaBernardo Dominic PROPOSAL
Aika L FlosiJapanAmy Elsner PROPOSAL
Clifford A PoquetteFranceAsiya Javayant QUALIFIED
David I MorascaRussiaAnna Fali QUALIFIED
Johnson K AmigonRussiaXuxue Feng PROPOSAL
Kaitlin E ChuiArgentinaAmy Elsner NEGOTIATION
Maisha X WhobreySpainElwin Sharvill QUALIFIED
Leon Y NestleIndiaAnna Fali RENEWAL
Kaitlin V InouyeBrazilIvan Magalhaes NEGOTIATION
Adams B MaletArgentinaIvan Magalhaes PROPOSAL
Antonio A IturbideCanadaAmy Elsner NEGOTIATION
Ivar R IturbideIndiaXuxue Feng UNQUALIFIED
Rodrigues U VocelkaRussiaElwin Sharvill UNQUALIFIED
Jefferson M VocelkaGermanyAmy Elsner RENEWAL
Isabel T OldroydSpainAsiya Javayant UNQUALIFIED
Morrow X MorascaCanadaElwin Sharvill UNQUALIFIED
David N DarakjyAustraliaXuxue Feng NEGOTIATION
Jeanfrancois V VenereBrazilXuxue Feng RENEWAL
Kadeem J MaletFranceIvan Magalhaes NEGOTIATION
Greenwood H FerenczItalyAmy Elsner NEGOTIATION
Maisha D CaudyJapanIvan Magalhaes PROPOSAL
Mujtaba A WieserAustraliaXuxue Feng NEGOTIATION
Julie C SlusarskiCanadaBernardo Dominic NEGOTIATION
Sinclair V GauchoAustraliaStephen Shaw NEW
Antonio P PerinAustraliaBernardo Dominic NEGOTIATION
Sinclair U TollnerGermanyBernardo Dominic RENEWAL
Leja R CaudyArgentinaOnyama Limba RENEWAL
Antonio J CampainBrazilIoni Bowcher PROPOSAL
Ricardo I SergiAustraliaBernardo Dominic RENEWAL
Chavez L FollerUnited KingdomAnna Fali RENEWAL

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