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
Kaitlin O FollerFranceIvan Magalhaes NEGOTIATION
Stacey L MaletRussiaAmy Elsner NEW
Faith X FigeroaUnited KingdomIoni Bowcher QUALIFIED
Tony P BriddickAustraliaBernardo Dominic NEW
Stacey G ChuiSpainIvan Magalhaes RENEWAL
Mayumi B SergiRussiaOnyama Limba NEGOTIATION
Adams A GlickUnited KingdomStephen Shaw NEW
Nicolas D OstroskySpainStephen Shaw QUALIFIED
Adams N MorascaAustraliaIvan Magalhaes PROPOSAL
Costa F StensethGermanyAsiya Javayant NEW
Jennifer Q DoeGermanyIvan Magalhaes RENEWAL
Aruna P ChuiFranceIvan Magalhaes RENEWAL
Kadeem S MaletSpainIoni Bowcher NEW
Faith U CaldareraCanadaBernardo Dominic UNQUALIFIED
Faith P StockhamUnited KingdomElwin Sharvill NEGOTIATION
Jennifer Y KolmetzRussiaIoni Bowcher NEW
Jeanfrancois I SergiIndiaElwin Sharvill QUALIFIED
Misaki D StockhamIndiaAnna Fali RENEWAL
James Y ShinkoRussiaIoni Bowcher PROPOSAL
Tony K SaylorsArgentinaBernardo Dominic UNQUALIFIED
Jones H CaudyCanadaIoni Bowcher PROPOSAL
Jones C OldroydArgentinaAnna Fali QUALIFIED
Ivar Q MaletAustraliaAmy Elsner UNQUALIFIED
Johnson I VenereIndiaAmy Elsner PROPOSAL
Chavez B BriddickAustraliaAmy Elsner PROPOSAL
Mayumi F WaycottCanadaXuxue Feng QUALIFIED
Johnson W FigeroaFranceAmy Elsner RENEWAL
Morrow Y PerinFranceIoni Bowcher QUALIFIED
Mujtaba F CaldareraBrazilIvan Magalhaes RENEWAL
Cody J AlbaresCanadaAsiya Javayant NEW
Leja T StensethItalyStephen Shaw QUALIFIED
Chavez Q CaudyArgentinaBernardo Dominic NEGOTIATION
Ashley N MaletUnited KingdomXuxue Feng PROPOSAL
Alejandro F NickaJapanBernardo Dominic UNQUALIFIED
Smith S MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois L DoeGermanyIvan Magalhaes NEW
Darci R TollnerIndiaXuxue Feng UNQUALIFIED
Smith W StockhamIndiaStephen Shaw NEW
Maisha Y GillianGermanyAnna Fali UNQUALIFIED
Ivar P VocelkaSpainAnna Fali PROPOSAL
Kaitlin W GlickGermanyBernardo Dominic NEW
Morrow Q PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Aditya Q WieserFranceOnyama Limba RENEWAL
David I GarufiAustraliaIoni Bowcher PROPOSAL
Ricardo B PoquetteUnited KingdomXuxue Feng PROPOSAL
Aika Q SaylorsGermanyAsiya Javayant PROPOSAL
Jennifer S MorascaJapanAnna Fali NEW
Greenwood O MaletCanadaBernardo Dominic UNQUALIFIED
Morrow G MaletRussiaIoni Bowcher NEGOTIATION
Jeanfrancois W PoquetteBrazilAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan D BriddickItalyAmy Elsner QUALIFIED
Julie H CampainItalyAmy Elsner NEGOTIATION
Jefferson N SergiJapanIvan Magalhaes PROPOSAL
Misaki L BriddickArgentinaElwin Sharvill NEGOTIATION
Antonio M BowleyFranceXuxue Feng RENEWAL
Aika H SaylorsAustraliaIvan Magalhaes QUALIFIED
Stacey W FerenczAustraliaElwin Sharvill NEW
Alejandro K DoeGermanyOnyama Limba NEGOTIATION
Ashley I VocelkaUnited KingdomBernardo Dominic RENEWAL
Mujtaba Y RoysterSpainStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson V KuskoItaly2024-03-27Buckley Miller Wright NEGOTIATION86Onyama Limba
1001Leon C WhobreySpain2024-03-26Truhlar And Truhlar Attys RENEWAL15Xuxue Feng
1002Chavez S DarakjyJapan2024-03-22Benton, John B Jr QUALIFIED38Xuxue Feng
1003Ashley L IturbideJapan2024-03-27Feiner Bros PROPOSAL45Ivan Magalhaes
1004Ricardo P StensethArgentina2024-04-17King, Christopher A Esq NEGOTIATION4Xuxue Feng
1005Johnson C NestleAustralia2024-03-27Benton, John B Jr NEW13Asiya Javayant
1006Jeanfrancois F AmigonItaly2024-04-11Dorl, James J Esq NEW71Asiya Javayant
1007Francesco T FollerAustralia2024-04-14Rangoni Of Florence NEGOTIATION13Anna Fali
1008Leon V StockhamCanada2024-04-14Rangoni Of Florence RENEWAL45Stephen Shaw
1009Ricardo R KolmetzItaly2024-04-12Rangoni Of Florence RENEWAL92Elwin Sharvill
1010Leja Y VocelkaArgentina2024-04-13Chemel, James L Cpa UNQUALIFIED15Bernardo Dominic
1011Greenwood N SlusarskiFrance2024-03-28Commercial Press NEGOTIATION75Stephen Shaw
1012Juan J AlbaresFrance2024-04-13Dorl, James J Esq NEW95Onyama Limba
1013Misaki Q BologniaIndia2024-04-07Chapman, Ross E Esq PROPOSAL65Ivan Magalhaes
1014Julie S DilliardSpain2024-04-02Chanay, Jeffrey A Esq NEW97Elwin Sharvill
1015Nicolas Z VenereIndia2024-03-28Rousseaux, Michael Esq PROPOSAL29Xuxue Feng
1016Jefferson K ButtFrance2024-03-27Chemel, James L Cpa NEW46Xuxue Feng
1017Ivar X SaylorsIndia2024-04-02Feltz Printing Service UNQUALIFIED6Anna Fali
1018Costa S SchemmerIndia2024-03-23Chemel, James L Cpa QUALIFIED19Ivan Magalhaes
1019Alejandro M BriddickBrazil2024-04-10Buckley Miller Wright NEGOTIATION77Amy Elsner
1020Aruna Z RutaUnited Kingdom2024-04-12Chemel, James L Cpa UNQUALIFIED40Ivan Magalhaes
1021Izzy C FlosiCanada2024-04-12Rangoni Of Florence PROPOSAL51Stephen Shaw
1022Maria U CaudyIndia2024-03-22Commercial Press NEGOTIATION1Ivan Magalhaes
1023Isabel D BowleyRussia2024-04-17Chemel, James L Cpa RENEWAL64Ivan Magalhaes
1024Chavez U PerinSpain2024-03-30Feltz Printing Service QUALIFIED85Onyama Limba
1025Claire Y OstroskyBrazil2024-04-02Rangoni Of Florence NEGOTIATION6Anna Fali
1026Maria O VocelkaBrazil2024-04-04Commercial Press QUALIFIED45Elwin Sharvill
1027Jefferson K InouyeGermany2024-04-06Dorl, James J Esq RENEWAL34Elwin Sharvill
1028Aika I MaletItaly2024-03-27Printing Dimensions UNQUALIFIED23Ivan Magalhaes
1029Wickens C ChuiUnited Kingdom2024-03-29Commercial Press UNQUALIFIED78Anna Fali
1030Sinclair F DoeJapan2024-03-30Rousseaux, Michael Esq NEW69Xuxue Feng
1031Darci L ShinkoSpain2024-04-17King, Christopher A Esq NEW40Ioni Bowcher
1032Jeanfrancois I WaycottArgentina2024-04-03Dorl, James J Esq NEGOTIATION87Stephen Shaw
1033Costa X VocelkaArgentina2024-04-09Chemel, James L Cpa QUALIFIED26Asiya Javayant
1034Smith T OstroskySpain2024-03-31King, Christopher A Esq NEGOTIATION90Xuxue Feng
1035Aruna W RutaCanada2024-04-02Morlong Associates NEGOTIATION41Xuxue Feng
1036Faith Z SchemmerBrazil2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED35Anna Fali
1037Silvio T FerenczUnited Kingdom2024-03-27Chapman, Ross E Esq NEW84Ioni Bowcher
1038Johnson S KolmetzRussia2024-03-21Dorl, James J Esq NEGOTIATION52Ioni Bowcher
1039Darci P RulapaughBrazil2024-04-02Benton, John B Jr UNQUALIFIED47Ioni Bowcher
1040Tony U GarufiIndia2024-03-29Commercial Press NEW58Bernardo Dominic
1041Juan G ShinkoIndia2024-03-29Dorl, James J Esq QUALIFIED84Asiya Javayant
1042Kaitlin V ShinkoFrance2024-03-31Feiner Bros NEGOTIATION40Xuxue Feng
1043Mujtaba L OldroydArgentina2024-04-01Commercial Press PROPOSAL54Bernardo Dominic
1044Jefferson P ShinkoSpain2024-04-16Chapman, Ross E Esq UNQUALIFIED64Elwin Sharvill
1045Juan N SergiJapan2024-03-25Feiner Bros NEGOTIATION26Amy Elsner
1046Leon Y BologniaFrance2024-04-14King, Christopher A Esq QUALIFIED73Amy Elsner
1047Leon F GarufiRussia2024-04-12Feiner Bros UNQUALIFIED86Xuxue Feng
1048Chavez X RulapaughIndia2024-04-04Morlong Associates RENEWAL55Stephen Shaw
1049Cody K MorascaCanada2024-04-01King, Christopher A Esq QUALIFIED90Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin T GarufiBrazilAsiya Javayant QUALIFIED
Cody A BriddickFranceIvan Magalhaes NEGOTIATION
Clifford M AmigonSpainStephen Shaw RENEWAL
Mayumi U PaprockiArgentinaAsiya Javayant PROPOSAL
Arvin Z IturbideSpainAnna Fali QUALIFIED
Alejandro G ChuiIndiaIvan Magalhaes NEGOTIATION
Cody V BologniaIndiaAmy Elsner NEGOTIATION
Stacey Q KuskoBrazilStephen Shaw PROPOSAL
Mujtaba C GlickCanadaIvan Magalhaes UNQUALIFIED
Arvin V ShinkoIndiaAmy Elsner RENEWAL
Octavia R AmigonFranceAmy Elsner NEW
Deepesh E SchemmerRussiaStephen Shaw NEGOTIATION
Octavia P DarakjyBrazilElwin Sharvill NEGOTIATION
Nicolas G VenereCanadaBernardo Dominic UNQUALIFIED
Maria I KolmetzRussiaElwin Sharvill NEW
Emily J PaprockiJapanIoni Bowcher NEGOTIATION
Silvio X FigeroaSpainIoni Bowcher UNQUALIFIED
Silvio F CampainSpainAnna Fali PROPOSAL
Juan F MorascaFranceAsiya Javayant QUALIFIED
Costa Q OstroskyFranceAmy Elsner QUALIFIED
Aruna N DilliardGermanyStephen Shaw PROPOSAL
Morrow E IturbideJapanAmy Elsner PROPOSAL
Izzy E KolmetzJapanAmy Elsner PROPOSAL
Aditya O GlickJapanStephen Shaw PROPOSAL
Adams L PerinAustraliaIoni Bowcher NEGOTIATION
Leon B DilliardSpainBernardo Dominic QUALIFIED
Maisha H MacleadArgentinaIoni Bowcher QUALIFIED
Deepesh U OldroydGermanyAmy Elsner PROPOSAL
Ivar R VocelkaJapanAsiya Javayant QUALIFIED
Kadeem A OldroydItalyBernardo Dominic QUALIFIED
Kaitlin W OstroskyGermanyAnna Fali PROPOSAL
Jeanfrancois G SergiJapanAmy Elsner UNQUALIFIED
Aruna J GlickBrazilAsiya Javayant NEGOTIATION
Arvin Y PaprockiUnited KingdomIoni Bowcher QUALIFIED
Leon I FollerBrazilAnna Fali UNQUALIFIED
Wickens P ChuiFranceAsiya Javayant RENEWAL
Leja D MacleadCanadaAmy Elsner NEW
Misaki V KuskoUnited KingdomXuxue Feng RENEWAL
Morrow Z PaprockiSpainAnna Fali UNQUALIFIED
Stacey C CaldareraGermanyBernardo Dominic QUALIFIED
Rodrigues P SlusarskiBrazilStephen Shaw QUALIFIED
Jeanfrancois T WhobreySpainElwin Sharvill NEGOTIATION
Costa K RoysterBrazilIvan Magalhaes NEGOTIATION
Arvin W RulapaughGermanyOnyama Limba RENEWAL
Jones V DilliardAustraliaOnyama Limba UNQUALIFIED
James L MarrierBrazilElwin Sharvill PROPOSAL
Aika S PerinCanadaAsiya Javayant UNQUALIFIED
Darci B GillianJapanXuxue Feng UNQUALIFIED
Faith U FlosiRussiaAnna Fali PROPOSAL
Murillo H CaudyGermanyOnyama Limba PROPOSAL
Frozen Columns
Name
Nicolas J Gillian
Munro X Royster
Darci O Briddick
Izzy V Oldroyd
Claire R Caldarera
Munro J Flosi
Johnson F Stenseth
Salvatore L Sergi
Ashley U Malet
Emily Z Poquette
Leja M Poquette
Izzy H Slusarski
Maisha P Caudy
Darci D Kolmetz
Ashley C Campain
Mayumi U Kusko
Deepesh J Ostrosky
Mayumi W Slusarski
Salvatore Y Garufi
Murillo Y Flosi
Isabel J Wieser
Kaitlin V Kusko
Morrow H Royster
Darci E Marrier
Isabel U Malet
Wickens Z Ostrosky
Leon F Whobrey
Claire O Bolognia
Smith B Kusko
Jeanfrancois G Venere
Aditya T Saylors
Costa R Garufi
Aika U Malet
Maisha K Briddick
Mujtaba M Garufi
Morrow P Bolognia
Faith S Darakjy
Francesco U Garufi
Johnson H Kolmetz
Adams V Figeroa
Julie P Bolognia
Greenwood H Flosi
Emily A Tollner
Morrow K Kusko
Misaki G Albares
Jones B Briddick
Juan V Foller
David A Rim
Francesco U Marrier
Adams P Butt
IdCountryDate
1000Canada2024-03-25
1001Canada2024-03-21
1002Italy2024-03-23
1003United Kingdom2024-03-22
1004Germany2024-04-14
1005Canada2024-04-03
1006United Kingdom2024-04-18
1007Canada2024-04-15
1008Brazil2024-04-16
1009Russia2024-03-21
1010Germany2024-03-23
1011Canada2024-04-09
1012Germany2024-03-24
1013Spain2024-03-29
1014Brazil2024-04-15
1015United Kingdom2024-03-24
1016Canada2024-04-06
1017Australia2024-03-26
1018Germany2024-04-09
1019Spain2024-04-13
1020Argentina2024-04-05
1021Argentina2024-04-19
1022Spain2024-03-23
1023Spain2024-03-21
1024United Kingdom2024-03-29
1025United Kingdom2024-04-15
1026Canada2024-04-11
1027Germany2024-03-30
1028Germany2024-04-11
1029Australia2024-03-29
1030Argentina2024-04-13
1031Argentina2024-03-21
1032Germany2024-03-29
1033Japan2024-03-23
1034Germany2024-03-23
1035India2024-03-31
1036Australia2024-03-21
1037United Kingdom2024-04-13
1038Spain2024-04-17
1039Japan2024-03-23
1040Russia2024-04-18
1041Germany2024-03-21
1042Brazil2024-04-10
1043Italy2024-04-04
1044Germany2024-04-09
1045Argentina2024-03-21
1046Spain2024-04-10
1047Argentina2024-04-08
1048Argentina2024-04-01
1049United Kingdom2024-03-21

On-Demand Data

NameIdCountryDate
Izzy T Malet1000Spain2024-03-25
Salvatore O Darakjy1001Japan2024-03-31
Darci B Briddick1002Japan2024-04-05
Mayumi I Saylors1003Brazil2024-04-18
Chavez U Morasca1004Canada2024-03-26
Leja L Briddick1005India2024-04-15
Emily U Caudy1006India2024-03-25
David Z Sergi1007Brazil2024-03-23
Deepesh Q Nicka1008Spain2024-03-22
Adams T Malet1009Russia2024-04-06
Mayumi H Ferencz1010Russia2024-03-27
Aditya D Briddick1011India2024-03-30
Darci S Chui1012Spain2024-04-15
Clifford H Slusarski1013Germany2024-04-16
Morrow Z Dilliard1014Argentina2024-03-29
Morrow R Ferencz1015Italy2024-04-04
Izzy J Gaucho1016Russia2024-03-30
Ashley H Caldarera1017Australia2024-03-29
Rodrigues K Schemmer1018United Kingdom2024-04-02
Sinclair N Iturbide1019Argentina2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin U SergiCanadaAnna Fali RENEWAL
Silvio O RulapaughIndiaIvan Magalhaes QUALIFIED
Chavez A ButtItalyAnna Fali QUALIFIED
Alejandro C WaycottSpainStephen Shaw QUALIFIED
Deepesh N RoysterItalyOnyama Limba UNQUALIFIED
Johnson P PoquetteAustraliaElwin Sharvill PROPOSAL
Juan C CaldareraJapanAnna Fali UNQUALIFIED
Darci W StensethRussiaXuxue Feng NEW
Leja X MacleadRussiaElwin Sharvill PROPOSAL
Antonio F KuskoBrazilAsiya Javayant UNQUALIFIED
Leja P RulapaughBrazilIoni Bowcher QUALIFIED
David F SlusarskiRussiaXuxue Feng NEGOTIATION
Aditya Z FlosiRussiaOnyama Limba RENEWAL
Emily Q AlbaresArgentinaStephen Shaw NEW
Smith F KolmetzUnited KingdomBernardo Dominic RENEWAL
Mujtaba H FerenczItalyXuxue Feng NEW
Morrow A StensethRussiaStephen Shaw RENEWAL
Salvatore W AmigonJapanXuxue Feng QUALIFIED
Kaitlin N WhobreyRussiaXuxue Feng NEW
Leon D KuskoIndiaXuxue Feng RENEWAL
Murillo N AmigonAustraliaAnna Fali NEGOTIATION
Ashley Y MarrierSpainAsiya Javayant NEW
Costa K KuskoJapanStephen Shaw NEGOTIATION
Ivar V FerenczItalyAsiya Javayant UNQUALIFIED
Johnson Y RimUnited KingdomBernardo Dominic QUALIFIED
Stacey K SergiIndiaOnyama Limba NEW
Izzy M DarakjyItalyIoni Bowcher NEGOTIATION
Leja F GauchoIndiaAnna Fali QUALIFIED
James J MarrierSpainIvan Magalhaes PROPOSAL
Jones Q MaletAustraliaStephen Shaw RENEWAL
Izzy N VocelkaIndiaAmy Elsner QUALIFIED
Misaki Q VenereIndiaStephen Shaw RENEWAL
Silvio E WhobreyJapanIvan Magalhaes PROPOSAL
Ashley Z RulapaughBrazilAmy Elsner QUALIFIED
Aditya E AmigonGermanyElwin Sharvill NEGOTIATION
Aditya N WaycottGermanyElwin Sharvill RENEWAL
Tony U DilliardGermanyAmy Elsner NEW
Francesco Y ShinkoRussiaIvan Magalhaes PROPOSAL
Rodrigues Z PoquetteBrazilAnna Fali NEW
Smith G GlickRussiaXuxue Feng NEGOTIATION

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