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
Jones F InouyeJapanAsiya Javayant NEW
Ricardo E KolmetzItalyStephen Shaw RENEWAL
James W InouyeGermanyAsiya Javayant RENEWAL
Mujtaba C ChuiSpainAnna Fali PROPOSAL
Jones V FigeroaUnited KingdomStephen Shaw RENEWAL
Silvio N WieserRussiaIvan Magalhaes UNQUALIFIED
Jones O FigeroaArgentinaIoni Bowcher QUALIFIED
Costa R PaprockiSpainXuxue Feng UNQUALIFIED
Faith L SaylorsArgentinaXuxue Feng NEW
Sinclair D WieserGermanyBernardo Dominic NEGOTIATION
Ashley L CampainFranceBernardo Dominic NEW
Arvin N StensethBrazilIvan Magalhaes RENEWAL
Ricardo I CampainUnited KingdomAnna Fali QUALIFIED
Leon L ButtBrazilIoni Bowcher RENEWAL
Stacey J OldroydArgentinaIoni Bowcher RENEWAL
Silvio S CaudyGermanyXuxue Feng NEGOTIATION
Ivar O CaudyJapanXuxue Feng RENEWAL
Antonio O TollnerUnited KingdomAnna Fali RENEWAL
James T DoeAustraliaStephen Shaw UNQUALIFIED
Faith G BowleyUnited KingdomAnna Fali QUALIFIED
Mujtaba N VenereCanadaAsiya Javayant NEGOTIATION
Antonio F CampainRussiaBernardo Dominic PROPOSAL
Juan O PerinSpainBernardo Dominic PROPOSAL
Salvatore I BowleySpainIoni Bowcher UNQUALIFIED
Rodrigues R KuskoUnited KingdomAmy Elsner UNQUALIFIED
Nicolas N OstroskyRussiaIvan Magalhaes QUALIFIED
Kadeem D WaycottSpainAsiya Javayant PROPOSAL
Antonio S MarrierFranceStephen Shaw QUALIFIED
Jeanfrancois W OldroydSpainElwin Sharvill PROPOSAL
Isabel H BriddickArgentinaStephen Shaw NEGOTIATION
Maria G ChuiCanadaBernardo Dominic UNQUALIFIED
Kaitlin L RutaArgentinaElwin Sharvill PROPOSAL
Julie I CaldareraArgentinaAsiya Javayant QUALIFIED
Antonio G KolmetzArgentinaAmy Elsner NEGOTIATION
Tony E IturbideBrazilBernardo Dominic PROPOSAL
Isabel Q GlickFranceStephen Shaw NEGOTIATION
Rodrigues W RimAustraliaElwin Sharvill QUALIFIED
Silvio A WaycottCanadaAnna Fali UNQUALIFIED
Emily T TollnerSpainOnyama Limba RENEWAL
Jennifer M CaudyCanadaIoni Bowcher RENEWAL
Mayumi B MacleadAustraliaIvan Magalhaes UNQUALIFIED
Francesco F SergiRussiaStephen Shaw NEW
Murillo Y ShinkoIndiaOnyama Limba QUALIFIED
Aruna N SlusarskiRussiaBernardo Dominic QUALIFIED
Deepesh K FigeroaAustraliaAnna Fali RENEWAL
Smith P AlbaresCanadaAmy Elsner PROPOSAL
Mujtaba I RutaSpainAmy Elsner QUALIFIED
Murillo J StensethFranceAnna Fali RENEWAL
Leja G GauchoItalyAsiya Javayant PROPOSAL
Maisha A MacleadAustraliaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Emily S CaudyGermanyAsiya Javayant UNQUALIFIED
Rodrigues V WaycottIndiaStephen Shaw PROPOSAL
Adams G MarrierAustraliaBernardo Dominic PROPOSAL
Stacey Z OstroskyAustraliaAmy Elsner UNQUALIFIED
Mayumi Z ChuiIndiaAmy Elsner QUALIFIED
Maisha H DilliardItalyIvan Magalhaes PROPOSAL
Arvin H PerinArgentinaBernardo Dominic PROPOSAL
Jones D PaprockiAustraliaOnyama Limba PROPOSAL
Darci Y GauchoAustraliaXuxue Feng NEW
Isabel R AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio A BologniaSpain2024-04-28Benton, John B Jr PROPOSAL88Xuxue Feng
1001Leon B PerinCanada2024-04-19Truhlar And Truhlar Attys PROPOSAL31Ioni Bowcher
1002Chavez H CampainUnited Kingdom2024-04-28Feiner Bros PROPOSAL21Xuxue Feng
1003Wickens I GarufiSpain2024-04-24Truhlar And Truhlar Attys PROPOSAL41Bernardo Dominic
1004Murillo C WaycottJapan2024-04-26Chanay, Jeffrey A Esq QUALIFIED65Bernardo Dominic
1005Faith J StockhamFrance2024-04-24Feltz Printing Service NEGOTIATION53Onyama Limba
1006Ivar R PaprockiBrazil2024-04-17Rangoni Of Florence UNQUALIFIED66Ioni Bowcher
1007Mujtaba P CaldareraSpain2024-04-20Chanay, Jeffrey A Esq PROPOSAL87Elwin Sharvill
1008Aika W VenereGermany2024-04-28Morlong Associates NEW55Asiya Javayant
1009Smith I DilliardGermany2024-04-03Rangoni Of Florence UNQUALIFIED92Amy Elsner
1010Greenwood L BologniaRussia2024-04-12Benton, John B Jr QUALIFIED86Xuxue Feng
1011Ivar M TollnerCanada2024-04-16Commercial Press RENEWAL12Ioni Bowcher
1012Aika V OstroskyRussia2024-04-06Commercial Press PROPOSAL76Anna Fali
1013Munro E WhobreyBrazil2024-04-23Buckley Miller Wright NEW38Bernardo Dominic
1014Leon L IturbideIndia2024-04-05Feltz Printing Service NEW29Anna Fali
1015Leon J StockhamSpain2024-04-25Buckley Miller Wright QUALIFIED0Elwin Sharvill
1016Aruna O FerenczCanada2024-04-25Printing Dimensions UNQUALIFIED2Elwin Sharvill
1017Costa U NickaArgentina2024-04-24Morlong Associates UNQUALIFIED28Amy Elsner
1018Misaki J WieserIndia2024-04-11Rousseaux, Michael Esq RENEWAL32Ioni Bowcher
1019Greenwood Y WaycottArgentina2024-04-27Rangoni Of Florence NEGOTIATION5Ivan Magalhaes
1020Mayumi A CaudyUnited Kingdom2024-04-13Printing Dimensions NEGOTIATION91Ivan Magalhaes
1021Adams I DoeAustralia2024-04-25Commercial Press NEW4Ioni Bowcher
1022Claire I DarakjyIndia2024-04-09Feiner Bros PROPOSAL41Stephen Shaw
1023Leon R BologniaFrance2024-04-21Truhlar And Truhlar Attys NEW62Bernardo Dominic
1024Emily K KolmetzBrazil2024-04-30Feltz Printing Service RENEWAL96Anna Fali
1025Antonio Q VocelkaSpain2024-04-05Buckley Miller Wright NEW35Elwin Sharvill
1026Mayumi O OstroskyRussia2024-04-24Buckley Miller Wright QUALIFIED98Anna Fali
1027Francesco D FlosiCanada2024-04-06King, Christopher A Esq NEW80Ioni Bowcher
1028Jones H DarakjyBrazil2024-04-11Chanay, Jeffrey A Esq NEW56Amy Elsner
1029James D SaylorsRussia2024-04-03Morlong Associates NEGOTIATION38Asiya Javayant
1030Rodrigues X WhobreyGermany2024-04-04Chapman, Ross E Esq PROPOSAL28Ivan Magalhaes
1031Murillo E FigeroaFrance2024-04-09Buckley Miller Wright QUALIFIED53Stephen Shaw
1032Leja B InouyeAustralia2024-04-22Benton, John B Jr QUALIFIED46Onyama Limba
1033Leja C DilliardIndia2024-04-03Buckley Miller Wright PROPOSAL28Bernardo Dominic
1034Aditya S NestleArgentina2024-04-02Feltz Printing Service NEW82Ivan Magalhaes
1035Alejandro J BowleyItaly2024-04-12Rousseaux, Michael Esq QUALIFIED90Onyama Limba
1036Maisha W MorascaRussia2024-04-07King, Christopher A Esq UNQUALIFIED50Ivan Magalhaes
1037Sinclair R AlbaresGermany2024-04-06Feltz Printing Service PROPOSAL95Bernardo Dominic
1038Darci S OstroskyCanada2024-04-26Chemel, James L Cpa QUALIFIED25Xuxue Feng
1039Wickens K IturbideItaly2024-04-09Rousseaux, Michael Esq NEW9Asiya Javayant
1040Johnson M CaudyGermany2024-04-28Truhlar And Truhlar Attys RENEWAL46Ivan Magalhaes
1041Munro H AmigonItaly2024-04-03Commercial Press PROPOSAL89Onyama Limba
1042Rodrigues V RulapaughRussia2024-04-21Feltz Printing Service UNQUALIFIED52Elwin Sharvill
1043Clifford C SchemmerArgentina2024-04-11Rousseaux, Michael Esq RENEWAL2Anna Fali
1044Darci B AlbaresFrance2024-04-26Chapman, Ross E Esq NEGOTIATION37Ivan Magalhaes
1045Francesco B MarrierRussia2024-04-24Printing Dimensions RENEWAL58Bernardo Dominic
1046Ivar S NickaBrazil2024-04-26Commercial Press NEGOTIATION40Asiya Javayant
1047Octavia P BowleyAustralia2024-04-13Rousseaux, Michael Esq PROPOSAL15Bernardo Dominic
1048Cody E BowleyArgentina2024-04-25Dorl, James J Esq NEGOTIATION28Ioni Bowcher
1049Salvatore O CaudyFrance2024-04-26Morlong Associates NEGOTIATION58Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas C OstroskyUnited KingdomIoni Bowcher PROPOSAL
Chavez L RutaItalyAsiya Javayant UNQUALIFIED
Aika T OldroydItalyAsiya Javayant PROPOSAL
Kadeem O BriddickSpainIoni Bowcher QUALIFIED
Cody H DoeAustraliaAnna Fali RENEWAL
Greenwood L CampainCanadaBernardo Dominic RENEWAL
Maisha G ButtAustraliaAmy Elsner RENEWAL
Kaitlin U SlusarskiRussiaIvan Magalhaes RENEWAL
Tony B MaletArgentinaIvan Magalhaes QUALIFIED
Ricardo H FerenczSpainOnyama Limba RENEWAL
Mayumi Y FollerSpainIvan Magalhaes NEGOTIATION
Salvatore K BriddickAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois C VenereRussiaOnyama Limba RENEWAL
Morrow P CaudyUnited KingdomIoni Bowcher PROPOSAL
Mujtaba R GillianBrazilAmy Elsner NEW
Maria D MorascaFranceAnna Fali NEW
Leja B WhobreyRussiaOnyama Limba PROPOSAL
Morrow A MaletBrazilBernardo Dominic NEGOTIATION
Alejandro V PoquetteArgentinaIvan Magalhaes NEW
Aika M MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
David H KolmetzItalyIoni Bowcher NEGOTIATION
Stacey C GauchoItalyAmy Elsner PROPOSAL
Ivar T PerinArgentinaStephen Shaw QUALIFIED
Smith R NickaJapanOnyama Limba PROPOSAL
Silvio T VenereAustraliaAnna Fali NEGOTIATION
Misaki H GlickJapanOnyama Limba PROPOSAL
Maria K StensethCanadaBernardo Dominic NEW
Leon W GlickFranceStephen Shaw QUALIFIED
Chavez T RutaRussiaIvan Magalhaes UNQUALIFIED
Nicolas G BriddickRussiaStephen Shaw QUALIFIED
Faith S SchemmerSpainOnyama Limba NEW
Izzy S RoysterUnited KingdomOnyama Limba PROPOSAL
Alejandro K AmigonSpainIvan Magalhaes RENEWAL
Nicolas B WaycottUnited KingdomOnyama Limba NEW
Leon T CaudyJapanStephen Shaw UNQUALIFIED
Rodrigues Q OldroydBrazilOnyama Limba PROPOSAL
Greenwood W RutaFranceIoni Bowcher NEGOTIATION
Leja Q DarakjyUnited KingdomAnna Fali UNQUALIFIED
Adams Z StockhamAustraliaBernardo Dominic NEW
Munro Y ShinkoRussiaBernardo Dominic QUALIFIED
Mujtaba P AlbaresArgentinaAsiya Javayant QUALIFIED
Maria I WieserRussiaBernardo Dominic RENEWAL
Chavez W ShinkoFranceXuxue Feng QUALIFIED
Ricardo E GarufiGermanyXuxue Feng RENEWAL
Ricardo A DoeAustraliaAnna Fali NEW
Silvio V MorascaBrazilIvan Magalhaes UNQUALIFIED
Nicolas P DoeItalyBernardo Dominic NEW
Faith B PoquetteSpainBernardo Dominic RENEWAL
Faith W GauchoIndiaElwin Sharvill RENEWAL
Tony I InouyeArgentinaIoni Bowcher QUALIFIED
Frozen Columns
Name
Wickens K Whobrey
Mujtaba J Dilliard
Julie G Iturbide
Ricardo M Poquette
Johnson T Sergi
Leon C Doe
Rodrigues N Briddick
Sinclair X Butt
Sinclair U Darakjy
Silvio W Butt
Adams Y Royster
Ivar X Ruta
Isabel E Nicka
Rodrigues W Iturbide
Aditya N Waycott
Greenwood O Tollner
Jennifer R Gillian
Maisha I Flosi
Darci R Malet
Ashley M Caudy
Alejandro U Ostrosky
Clifford J Morasca
Chavez N Oldroyd
Maisha L Butt
Kadeem Z Saylors
Kadeem X Chui
Arvin E Bowley
Kaitlin I Ruta
Arvin B Campain
Cody P Morasca
Ashley R Amigon
Munro F Malet
James Y Maclead
Munro L Garufi
Rodrigues D Malet
James T Venere
Izzy T Albares
Wickens K Caudy
Izzy I Foller
Jefferson S Foller
Leon L Oldroyd
Ashley S Rulapaugh
Stacey Y Dilliard
Morrow Z Shinko
Jefferson N Slusarski
Deepesh S Bowley
Cody Z Marrier
Antonio N Rulapaugh
Isabel I Glick
Jennifer U Paprocki
IdCountryDate
1000Russia2024-04-19
1001Canada2024-04-06
1002Australia2024-04-14
1003Japan2024-04-26
1004India2024-04-27
1005Canada2024-04-22
1006France2024-04-14
1007Brazil2024-04-06
1008Spain2024-04-02
1009Spain2024-04-29
1010India2024-04-30
1011Brazil2024-04-29
1012Germany2024-04-26
1013Italy2024-04-03
1014Canada2024-04-21
1015Argentina2024-04-30
1016Italy2024-04-22
1017Spain2024-04-16
1018Italy2024-04-03
1019Italy2024-04-23
1020Australia2024-04-15
1021France2024-04-21
1022Italy2024-04-06
1023Russia2024-04-12
1024Canada2024-04-01
1025United Kingdom2024-04-04
1026Japan2024-04-06
1027Germany2024-04-11
1028France2024-04-13
1029Russia2024-04-26
1030India2024-04-16
1031Spain2024-04-03
1032Germany2024-04-02
1033Canada2024-04-22
1034Germany2024-04-24
1035Canada2024-04-24
1036Russia2024-04-17
1037France2024-04-24
1038United Kingdom2024-04-04
1039Australia2024-04-29
1040Germany2024-04-28
1041Germany2024-04-01
1042Argentina2024-04-17
1043United Kingdom2024-04-21
1044Spain2024-04-09
1045Canada2024-04-26
1046India2024-04-18
1047India2024-04-19
1048Russia2024-04-09
1049Australia2024-04-21

On-Demand Data

NameIdCountryDate
Maisha Q Malet1000Russia2024-04-15
Maisha O Nestle1001Brazil2024-04-02
Kadeem Z Ostrosky1002Spain2024-04-14
Misaki Q Marrier1003India2024-04-09
Isabel H Wieser1004India2024-04-24
Maisha H Briddick1005Australia2024-04-15
Ashley O Darakjy1006Australia2024-04-13
Ashley C Marrier1007Canada2024-04-27
Ivar X Butt1008France2024-04-02
Johnson S Malet1009Argentina2024-04-12
Murillo R Rulapaugh1010Japan2024-04-07
Kaitlin L Bowley1011Canada2024-04-17
Sinclair C Butt1012France2024-04-09
Jeanfrancois J Flosi1013Russia2024-04-28
Murillo S Sergi1014Russia2024-04-19
Maria P Glick1015India2024-04-26
Jeanfrancois M Gaucho1016Spain2024-04-10
Antonio Z Bolognia1017Spain2024-04-29
Ivar F Wieser1018France2024-04-25
Jeanfrancois D Tollner1019Russia2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood U IturbideArgentinaXuxue Feng PROPOSAL
Jones K GlickArgentinaAsiya Javayant NEGOTIATION
Francesco M SaylorsBrazilElwin Sharvill PROPOSAL
Mayumi H RutaRussiaAmy Elsner UNQUALIFIED
Adams U BriddickItalyOnyama Limba UNQUALIFIED
Mujtaba I CampainFranceStephen Shaw UNQUALIFIED
Antonio B NickaArgentinaAsiya Javayant PROPOSAL
Jones M WaycottBrazilXuxue Feng RENEWAL
Mujtaba G RimIndiaIoni Bowcher NEGOTIATION
Aruna P GlickGermanyStephen Shaw PROPOSAL
Darci B FigeroaArgentinaIoni Bowcher PROPOSAL
Kaitlin C VenereCanadaAnna Fali QUALIFIED
Isabel H DilliardCanadaAsiya Javayant NEW
Rodrigues S RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Aruna Z CaldareraItalyAmy Elsner PROPOSAL
Munro Q MaletRussiaStephen Shaw RENEWAL
Emily T DarakjyFranceAmy Elsner RENEWAL
Sinclair H SergiUnited KingdomAmy Elsner NEGOTIATION
Claire I MacleadFranceIoni Bowcher RENEWAL
Nicolas E BriddickIndiaAnna Fali PROPOSAL
Leon W MorascaSpainAmy Elsner UNQUALIFIED
Mayumi T MarrierIndiaStephen Shaw NEW
Clifford R WhobreyBrazilAmy Elsner QUALIFIED
Leon G PerinArgentinaStephen Shaw NEGOTIATION
Mujtaba G GarufiIndiaAmy Elsner NEGOTIATION
Aruna G FlosiAustraliaAmy Elsner NEW
Julie X DoeSpainStephen Shaw NEGOTIATION
Greenwood B StensethUnited KingdomOnyama Limba QUALIFIED
Sinclair H DoeUnited KingdomBernardo Dominic QUALIFIED
Leja R KolmetzRussiaBernardo Dominic UNQUALIFIED
Leon A NestleFranceOnyama Limba RENEWAL
Silvio I PerinBrazilXuxue Feng PROPOSAL
Misaki J AmigonIndiaIvan Magalhaes QUALIFIED
Aditya Q RulapaughFranceAsiya Javayant PROPOSAL
Mujtaba O OstroskyCanadaStephen Shaw PROPOSAL
Tony S DilliardItalyBernardo Dominic UNQUALIFIED
Ashley N RoysterItalyIoni Bowcher NEGOTIATION
David F CaldareraUnited KingdomElwin Sharvill NEW
Cody G KolmetzItalyElwin Sharvill UNQUALIFIED
Costa I WaycottArgentinaBernardo Dominic PROPOSAL

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