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
Julie M RulapaughFranceIvan Magalhaes QUALIFIED
Rodrigues I OldroydArgentinaOnyama Limba UNQUALIFIED
Julie P ChuiItalyAmy Elsner UNQUALIFIED
Claire B SergiCanadaXuxue Feng PROPOSAL
Deepesh B CaldareraBrazilIoni Bowcher UNQUALIFIED
Claire F CaldareraBrazilXuxue Feng NEGOTIATION
Tony C MaletFranceOnyama Limba UNQUALIFIED
Chavez N GauchoJapanElwin Sharvill QUALIFIED
Jefferson N ShinkoUnited KingdomElwin Sharvill QUALIFIED
Arvin G RutaSpainIoni Bowcher QUALIFIED
Deepesh C DoeSpainXuxue Feng RENEWAL
Faith M DoeAustraliaXuxue Feng UNQUALIFIED
Morrow A KolmetzUnited KingdomOnyama Limba NEGOTIATION
Maisha G VenereItalyBernardo Dominic UNQUALIFIED
Johnson Z KolmetzBrazilElwin Sharvill PROPOSAL
Tony Q AmigonBrazilXuxue Feng UNQUALIFIED
Ashley U GillianJapanOnyama Limba NEGOTIATION
Cody Q RimArgentinaOnyama Limba NEGOTIATION
Arvin C StockhamSpainElwin Sharvill NEW
Antonio H BriddickFranceElwin Sharvill RENEWAL
Ivar S AlbaresRussiaOnyama Limba RENEWAL
Cody J OldroydIndiaIoni Bowcher NEGOTIATION
Ivar M NickaArgentinaStephen Shaw RENEWAL
Johnson G CaudyGermanyAmy Elsner UNQUALIFIED
Antonio T PoquetteUnited KingdomBernardo Dominic PROPOSAL
Emily T PerinRussiaAmy Elsner RENEWAL
Darci M ShinkoItalyOnyama Limba RENEWAL
Kaitlin U WhobreyRussiaIoni Bowcher NEW
Leja V CampainIndiaElwin Sharvill RENEWAL
Deepesh C IturbideIndiaOnyama Limba PROPOSAL
Mayumi Z CaldareraUnited KingdomOnyama Limba PROPOSAL
Antonio J SlusarskiRussiaAsiya Javayant PROPOSAL
Clifford Y KuskoAustraliaXuxue Feng UNQUALIFIED
David L InouyeUnited KingdomIoni Bowcher NEGOTIATION
Cody S AlbaresItalyAmy Elsner RENEWAL
David Y GauchoGermanyStephen Shaw PROPOSAL
Munro M MarrierGermanyAmy Elsner QUALIFIED
David G CaldareraGermanyStephen Shaw NEW
Smith L FigeroaCanadaAsiya Javayant NEGOTIATION
Kaitlin U ButtSpainElwin Sharvill NEGOTIATION
Leja G FerenczUnited KingdomElwin Sharvill PROPOSAL
Jennifer Z FollerAustraliaBernardo Dominic NEGOTIATION
Johnson A DoeJapanAmy Elsner NEW
Rodrigues Z SaylorsAustraliaStephen Shaw UNQUALIFIED
Ivar H DoeJapanStephen Shaw NEGOTIATION
Jennifer S RimUnited KingdomOnyama Limba QUALIFIED
Cody R VocelkaFranceStephen Shaw QUALIFIED
Jefferson F TollnerIndiaElwin Sharvill UNQUALIFIED
Alejandro A SchemmerCanadaAnna Fali NEW
Murillo F ShinkoFranceIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa K KuskoSpainBernardo Dominic QUALIFIED
Maisha Z WaycottAustraliaAsiya Javayant UNQUALIFIED
Wickens L RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Clifford W SlusarskiRussiaAnna Fali QUALIFIED
Murillo D KolmetzItalyIoni Bowcher RENEWAL
Stacey G BowleyCanadaAnna Fali RENEWAL
Jefferson L CaudyCanadaElwin Sharvill PROPOSAL
Isabel J GlickRussiaAmy Elsner PROPOSAL
Maisha O AlbaresUnited KingdomAsiya Javayant PROPOSAL
Smith E MaletJapanXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams V RutaArgentina2024-04-28Benton, John B Jr NEW98Anna Fali
1001Emily A RimIndia2024-04-12Rousseaux, Michael Esq PROPOSAL7Amy Elsner
1002James L GlickArgentina2024-05-05Chapman, Ross E Esq NEGOTIATION1Anna Fali
1003Aruna Q SaylorsJapan2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED2Asiya Javayant
1004Smith V TollnerUnited Kingdom2024-04-25Rousseaux, Michael Esq QUALIFIED70Anna Fali
1005Faith M ShinkoGermany2024-04-29Feiner Bros RENEWAL99Asiya Javayant
1006Clifford K SlusarskiSpain2024-05-05Chanay, Jeffrey A Esq QUALIFIED93Xuxue Feng
1007Adams B StockhamArgentina2024-04-08Chapman, Ross E Esq QUALIFIED94Ioni Bowcher
1008Stacey S GauchoGermany2024-05-06Truhlar And Truhlar Attys RENEWAL33Elwin Sharvill
1009Izzy B GillianJapan2024-04-08Truhlar And Truhlar Attys RENEWAL3Anna Fali
1010Mayumi K MarrierAustralia2024-04-12Dorl, James J Esq QUALIFIED48Bernardo Dominic
1011Salvatore W FerenczArgentina2024-04-24Rousseaux, Michael Esq PROPOSAL81Amy Elsner
1012Emily C TollnerSpain2024-04-26Feiner Bros RENEWAL67Asiya Javayant
1013Sinclair D GillianSpain2024-04-17Morlong Associates NEW54Ioni Bowcher
1014Aruna H RutaItaly2024-04-18Chanay, Jeffrey A Esq NEW50Anna Fali
1015Misaki U TollnerUnited Kingdom2024-04-10Rousseaux, Michael Esq PROPOSAL12Elwin Sharvill
1016Alejandro L CaldareraIndia2024-04-29Benton, John B Jr NEGOTIATION46Asiya Javayant
1017Aika M ChuiRussia2024-04-25Dorl, James J Esq RENEWAL47Amy Elsner
1018Izzy E VenereSpain2024-04-09Chapman, Ross E Esq UNQUALIFIED66Ivan Magalhaes
1019Clifford W OstroskyBrazil2024-05-07Feltz Printing Service RENEWAL76Asiya Javayant
1020Clifford P MacleadSpain2024-04-21Feiner Bros RENEWAL7Bernardo Dominic
1021Nicolas X MaletSpain2024-04-14Dorl, James J Esq NEGOTIATION7Xuxue Feng
1022Ricardo H RoysterRussia2024-04-09King, Christopher A Esq QUALIFIED92Bernardo Dominic
1023David K ChuiSpain2024-04-22Chanay, Jeffrey A Esq RENEWAL51Ioni Bowcher
1024Misaki P WhobreyItaly2024-04-21Chemel, James L Cpa UNQUALIFIED48Anna Fali
1025Silvio H TollnerItaly2024-04-12Benton, John B Jr NEW18Xuxue Feng
1026Leja L StockhamArgentina2024-04-29Feltz Printing Service NEW16Onyama Limba
1027Sinclair R MaletArgentina2024-04-27Buckley Miller Wright NEGOTIATION38Ivan Magalhaes
1028Nicolas C FollerGermany2024-04-23Chemel, James L Cpa RENEWAL79Amy Elsner
1029Maria X MarrierIndia2024-04-30Dorl, James J Esq QUALIFIED43Stephen Shaw
1030Johnson W StensethRussia2024-04-08King, Christopher A Esq PROPOSAL10Ioni Bowcher
1031Emily Y RoysterIndia2024-04-09Truhlar And Truhlar Attys PROPOSAL50Asiya Javayant
1032Jefferson W WieserAustralia2024-04-26King, Christopher A Esq NEW41Asiya Javayant
1033Aditya B DilliardRussia2024-04-17Rousseaux, Michael Esq RENEWAL6Asiya Javayant
1034Ricardo U CaldareraJapan2024-04-15Chemel, James L Cpa UNQUALIFIED41Stephen Shaw
1035Sinclair T CampainGermany2024-04-15Dorl, James J Esq QUALIFIED30Anna Fali
1036Wickens B MarrierBrazil2024-04-27Dorl, James J Esq RENEWAL82Amy Elsner
1037Ivar W WaycottCanada2024-04-25King, Christopher A Esq NEW18Amy Elsner
1038Faith E ShinkoJapan2024-05-02Rousseaux, Michael Esq UNQUALIFIED1Anna Fali
1039Greenwood Z NickaIndia2024-04-20Buckley Miller Wright QUALIFIED30Amy Elsner
1040Darci F FerenczUnited Kingdom2024-04-10Morlong Associates PROPOSAL64Bernardo Dominic
1041Claire X SaylorsIndia2024-05-05Truhlar And Truhlar Attys UNQUALIFIED80Amy Elsner
1042Nicolas I OstroskyItaly2024-04-29Buckley Miller Wright NEW82Ivan Magalhaes
1043Kadeem E CaldareraArgentina2024-04-18Morlong Associates RENEWAL41Asiya Javayant
1044Mujtaba P StensethUnited Kingdom2024-04-13Benton, John B Jr RENEWAL62Elwin Sharvill
1045Salvatore V FollerSpain2024-04-23Chapman, Ross E Esq NEGOTIATION20Onyama Limba
1046Leon S CaudySpain2024-04-12Commercial Press RENEWAL30Elwin Sharvill
1047Emily N GarufiArgentina2024-04-26Feiner Bros RENEWAL29Asiya Javayant
1048Darci B GlickBrazil2024-05-02Chemel, James L Cpa RENEWAL13Anna Fali
1049Leja J SchemmerFrance2024-04-25Feltz Printing Service PROPOSAL73Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Adams D RimBrazilAnna Fali QUALIFIED
Chavez F StensethItalyStephen Shaw NEW
Claire N CaldareraCanadaElwin Sharvill UNQUALIFIED
Stacey P RoysterGermanyXuxue Feng NEW
Mayumi C DilliardGermanyXuxue Feng RENEWAL
Aruna H RimItalyAsiya Javayant NEGOTIATION
Kadeem C PaprockiBrazilAnna Fali QUALIFIED
Maria M PaprockiArgentinaAmy Elsner NEW
Munro G FollerBrazilAnna Fali RENEWAL
Arvin V ChuiAustraliaElwin Sharvill NEW
Aika A NestleUnited KingdomAmy Elsner RENEWAL
Leon P DarakjyRussiaIvan Magalhaes NEGOTIATION
Salvatore Q WieserUnited KingdomAmy Elsner NEW
Aika K GarufiRussiaAsiya Javayant QUALIFIED
Mayumi N VenereFranceBernardo Dominic QUALIFIED
Isabel F RoysterIndiaIoni Bowcher QUALIFIED
Smith Y InouyeGermanyStephen Shaw PROPOSAL
Jeanfrancois T SlusarskiRussiaIoni Bowcher RENEWAL
Octavia L PoquetteJapanStephen Shaw NEW
Arvin T TollnerFranceXuxue Feng QUALIFIED
Rodrigues P KuskoSpainElwin Sharvill NEGOTIATION
Clifford K FlosiJapanAnna Fali QUALIFIED
Francesco L WhobreyRussiaOnyama Limba UNQUALIFIED
Cody F GarufiAustraliaAsiya Javayant PROPOSAL
Kadeem C BowleyUnited KingdomBernardo Dominic QUALIFIED
Salvatore Z InouyeItalyIoni Bowcher RENEWAL
Sinclair X VocelkaAustraliaOnyama Limba PROPOSAL
Nicolas U DarakjySpainOnyama Limba NEW
Cody Q FlosiSpainAnna Fali PROPOSAL
Aruna N FerenczIndiaElwin Sharvill NEGOTIATION
Wickens M MaletSpainAnna Fali UNQUALIFIED
Adams O SlusarskiJapanOnyama Limba UNQUALIFIED
Kaitlin Y BologniaArgentinaOnyama Limba NEGOTIATION
Wickens K StockhamJapanStephen Shaw PROPOSAL
Emily L DoeIndiaIoni Bowcher RENEWAL
Maria D ShinkoFranceXuxue Feng NEW
Juan T MorascaItalyIoni Bowcher UNQUALIFIED
Jeanfrancois F TollnerSpainBernardo Dominic RENEWAL
Ashley H DoeUnited KingdomAsiya Javayant QUALIFIED
Adams X NickaCanadaAnna Fali RENEWAL
Julie Z RoysterJapanOnyama Limba NEGOTIATION
Silvio R VenereUnited KingdomAsiya Javayant NEW
Francesco X FerenczGermanyStephen Shaw QUALIFIED
Kadeem Q CampainUnited KingdomBernardo Dominic PROPOSAL
Francesco L FollerArgentinaOnyama Limba PROPOSAL
Julie V FigeroaJapanAmy Elsner NEGOTIATION
Chavez P PerinUnited KingdomXuxue Feng NEGOTIATION
Ivar F SchemmerAustraliaAsiya Javayant NEW
Misaki S IturbideFranceAsiya Javayant UNQUALIFIED
Antonio V RutaItalyXuxue Feng PROPOSAL
Frozen Columns
Name
Rodrigues J Kusko
Greenwood Y Campain
Faith B Ruta
Claire C Wieser
Francesco D Gaucho
Johnson M Perin
Francesco D Morasca
Silvio L Schemmer
Misaki V Gaucho
Johnson L Morasca
Wickens K Foller
Octavia L Darakjy
Aika F Saylors
James H Amigon
Aika B Doe
Nicolas P Inouye
Mayumi U Waycott
Deepesh Y Poquette
Isabel S Ruta
Leja B Slusarski
Misaki M Schemmer
Juan T Ferencz
Misaki U Shinko
Maria R Bolognia
Jefferson H Shinko
Jones C Venere
Nicolas H Rim
Leja N Maclead
Greenwood D Schemmer
Isabel X Morasca
Tony I Rim
Misaki E Poquette
Antonio G Marrier
Misaki D Nestle
Ashley P Amigon
Tony P Ostrosky
Emily T Stenseth
Leja E Venere
Mayumi B Malet
Arvin O Inouye
Kadeem W Amigon
Salvatore V Amigon
Kadeem F Campain
Leja J Schemmer
Greenwood V Poquette
Maria K Chui
Isabel D Caudy
Wickens G Malet
Cody T Briddick
Francesco X Vocelka
IdCountryDate
1000Japan2024-04-13
1001Brazil2024-04-14
1002Japan2024-04-15
1003Argentina2024-04-10
1004Japan2024-04-13
1005Brazil2024-05-03
1006Italy2024-04-15
1007Canada2024-04-24
1008Spain2024-04-23
1009Spain2024-04-08
1010France2024-04-18
1011Japan2024-04-20
1012Canada2024-04-16
1013United Kingdom2024-04-23
1014France2024-04-08
1015India2024-04-13
1016Japan2024-04-14
1017Australia2024-04-16
1018India2024-04-29
1019Brazil2024-04-09
1020Spain2024-05-07
1021France2024-04-09
1022Australia2024-04-16
1023Russia2024-04-27
1024Italy2024-04-18
1025Argentina2024-04-25
1026Germany2024-05-04
1027France2024-05-04
1028India2024-04-08
1029Canada2024-05-03
1030Argentina2024-04-14
1031Argentina2024-04-11
1032India2024-04-13
1033Australia2024-04-12
1034Italy2024-04-24
1035United Kingdom2024-04-16
1036Australia2024-04-12
1037France2024-04-12
1038United Kingdom2024-04-11
1039Canada2024-05-06
1040Australia2024-04-08
1041Brazil2024-04-09
1042Australia2024-05-03
1043Argentina2024-04-09
1044Brazil2024-05-03
1045Japan2024-05-03
1046Germany2024-05-06
1047Spain2024-05-03
1048Italy2024-04-24
1049Canada2024-04-24

On-Demand Data

NameIdCountryDate
Arvin Q Briddick1000United Kingdom2024-05-06
Ivar J Inouye1001Australia2024-04-10
Arvin K Caudy1002Russia2024-04-20
Clifford R Inouye1003India2024-04-16
Alejandro E Butt1004Russia2024-04-24
Kaitlin X Whobrey1005United Kingdom2024-04-30
Darci U Oldroyd1006Brazil2024-04-26
Silvio P Iturbide1007India2024-04-13
Salvatore A Butt1008Spain2024-05-06
Maisha U Saylors1009Canada2024-04-22
Leon X Tollner1010Germany2024-04-22
Adams I Sergi1011Australia2024-04-24
Nicolas S Kolmetz1012Australia2024-04-29
Morrow D Darakjy1013Argentina2024-04-11
Francesco A Tollner1014United Kingdom2024-04-10
Costa D Paprocki1015Spain2024-04-09
Isabel Z Shinko1016Spain2024-04-21
Darci J Campain1017Canada2024-04-21
Stacey O Tollner1018United Kingdom2024-04-27
Antonio A Nicka1019Russia2024-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria I SaylorsItalyAsiya Javayant PROPOSAL
Aruna S SlusarskiBrazilElwin Sharvill NEW
Faith K ChuiUnited KingdomIvan Magalhaes NEW
Stacey T BologniaArgentinaAnna Fali NEGOTIATION
Jeanfrancois F IturbideItalyAmy Elsner PROPOSAL
Octavia T FollerUnited KingdomIvan Magalhaes RENEWAL
Greenwood U ChuiFranceIvan Magalhaes QUALIFIED
Darci Y NestleArgentinaAnna Fali NEGOTIATION
Ashley K IturbideAustraliaAnna Fali UNQUALIFIED
Rodrigues D KolmetzArgentinaXuxue Feng NEW
Stacey C StockhamItalyIvan Magalhaes PROPOSAL
Rodrigues P FerenczGermanyStephen Shaw QUALIFIED
Antonio Y DoeIndiaIoni Bowcher NEGOTIATION
Jones E PaprockiIndiaAsiya Javayant NEGOTIATION
David L OstroskyCanadaAmy Elsner PROPOSAL
Deepesh Y IturbideCanadaOnyama Limba RENEWAL
Faith A PerinSpainXuxue Feng UNQUALIFIED
Leja R PoquetteBrazilIoni Bowcher QUALIFIED
Kaitlin P DilliardJapanStephen Shaw UNQUALIFIED
Aruna C PerinCanadaIoni Bowcher NEGOTIATION
Ivar B VocelkaFranceXuxue Feng PROPOSAL
Nicolas G BologniaFranceElwin Sharvill RENEWAL
Leon W FigeroaSpainOnyama Limba QUALIFIED
Chavez H RutaArgentinaAsiya Javayant RENEWAL
Emily H VenereAustraliaOnyama Limba UNQUALIFIED
Darci E StensethAustraliaAsiya Javayant NEGOTIATION
Kaitlin X AlbaresRussiaBernardo Dominic PROPOSAL
Aditya E CaudyAustraliaXuxue Feng QUALIFIED
Julie N TollnerJapanAnna Fali NEW
Claire W SaylorsAustraliaBernardo Dominic NEW
Arvin O SaylorsCanadaIoni Bowcher PROPOSAL
Adams C CaudyCanadaAsiya Javayant QUALIFIED
Aditya W GlickJapanStephen Shaw QUALIFIED
Alejandro J MorascaJapanBernardo Dominic NEW
Smith M DoeUnited KingdomXuxue Feng RENEWAL
Antonio R MorascaIndiaOnyama Limba PROPOSAL
Leja N InouyeJapanAmy Elsner NEW
Claire X WieserArgentinaOnyama Limba UNQUALIFIED
Cody N WaycottArgentinaElwin Sharvill RENEWAL
Aika L WieserIndiaAmy Elsner 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>