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
Stacey I SergiBrazilAnna Fali PROPOSAL
Stacey G FollerBrazilXuxue Feng QUALIFIED
Faith M DilliardSpainAnna Fali NEW
Jennifer Y SlusarskiFranceXuxue Feng UNQUALIFIED
Izzy O PaprockiArgentinaIoni Bowcher NEGOTIATION
James H DilliardIndiaIoni Bowcher QUALIFIED
Claire K IturbideUnited KingdomOnyama Limba NEW
Jones Q FigeroaBrazilIvan Magalhaes NEW
Arvin U BriddickSpainAmy Elsner UNQUALIFIED
Mujtaba F ButtJapanOnyama Limba PROPOSAL
Silvio G CampainArgentinaXuxue Feng RENEWAL
Alejandro T KolmetzAustraliaAmy Elsner PROPOSAL
Ivar W OstroskyBrazilElwin Sharvill RENEWAL
Octavia L OldroydIndiaXuxue Feng QUALIFIED
Smith M WaycottFranceXuxue Feng PROPOSAL
Juan Q FigeroaIndiaAmy Elsner NEGOTIATION
Murillo C PaprockiAustraliaIoni Bowcher QUALIFIED
Salvatore K VenereAustraliaIvan Magalhaes QUALIFIED
Leon D BriddickCanadaBernardo Dominic NEW
Julie P WhobreyArgentinaStephen Shaw NEGOTIATION
Clifford K MarrierSpainOnyama Limba RENEWAL
Jones J VocelkaAustraliaOnyama Limba QUALIFIED
Jeanfrancois K DarakjyJapanIvan Magalhaes PROPOSAL
Ashley Y StensethAustraliaAsiya Javayant RENEWAL
Maisha W DarakjyUnited KingdomElwin Sharvill QUALIFIED
Leja M ButtItalyOnyama Limba QUALIFIED
Jennifer Q FlosiRussiaAmy Elsner NEW
Arvin O MaletFranceElwin Sharvill NEW
Sinclair U TollnerJapanStephen Shaw NEW
Adams C VenereItalyAmy Elsner PROPOSAL
Alejandro L FlosiAustraliaBernardo Dominic UNQUALIFIED
Claire M PaprockiItalyXuxue Feng NEW
Silvio J FigeroaCanadaIoni Bowcher RENEWAL
Rodrigues W WieserJapanAmy Elsner PROPOSAL
Maisha Y InouyeIndiaOnyama Limba QUALIFIED
Ashley B PoquetteAustraliaElwin Sharvill NEGOTIATION
Arvin G SlusarskiCanadaAsiya Javayant UNQUALIFIED
Leon D SlusarskiRussiaAsiya Javayant RENEWAL
Darci T ShinkoIndiaIoni Bowcher QUALIFIED
Alejandro I WhobreyArgentinaXuxue Feng NEGOTIATION
Alejandro Q TollnerUnited KingdomElwin Sharvill NEGOTIATION
Adams H ChuiGermanyXuxue Feng NEW
Costa Y WieserGermanyAmy Elsner QUALIFIED
Clifford U RimJapanOnyama Limba RENEWAL
Leja H KolmetzSpainIvan Magalhaes PROPOSAL
Aika R AmigonRussiaStephen Shaw UNQUALIFIED
Sinclair L CaldareraBrazilIoni Bowcher NEW
Izzy L PerinBrazilElwin Sharvill QUALIFIED
Misaki G PerinCanadaIoni Bowcher PROPOSAL
Julie H BologniaGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois K PerinBrazilAmy Elsner RENEWAL
Jones X CaudyItalyAmy Elsner NEGOTIATION
Claire N DoeCanadaIvan Magalhaes RENEWAL
Aditya B OstroskySpainBernardo Dominic NEW
Ivar R PerinRussiaAmy Elsner NEGOTIATION
Kaitlin N DarakjyBrazilStephen Shaw NEGOTIATION
Darci U DilliardIndiaAnna Fali RENEWAL
Cody E GlickGermanyStephen Shaw NEW
Salvatore P KuskoItalyAsiya Javayant QUALIFIED
Costa V KuskoGermanyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley G IturbideBrazil2024-04-28Feltz Printing Service NEGOTIATION64Xuxue Feng
1001Francesco T BowleyAustralia2024-04-20Rangoni Of Florence NEGOTIATION70Asiya Javayant
1002Maria R InouyeItaly2024-04-08Rousseaux, Michael Esq RENEWAL82Elwin Sharvill
1003Rodrigues V StockhamFrance2024-04-15Benton, John B Jr NEGOTIATION33Elwin Sharvill
1004Julie R BowleyCanada2024-04-19Buckley Miller Wright QUALIFIED86Ivan Magalhaes
1005Cody M KuskoFrance2024-04-06Chemel, James L Cpa QUALIFIED84Anna Fali
1006Jennifer Z BriddickItaly2024-04-07Truhlar And Truhlar Attys QUALIFIED75Bernardo Dominic
1007Antonio H WhobreyGermany2024-04-04Benton, John B Jr RENEWAL98Asiya Javayant
1008Alejandro Q StensethGermany2024-05-03Chapman, Ross E Esq UNQUALIFIED48Xuxue Feng
1009Jennifer L WieserRussia2024-04-23Morlong Associates NEGOTIATION9Xuxue Feng
1010Isabel H ChuiCanada2024-05-01Chanay, Jeffrey A Esq UNQUALIFIED11Asiya Javayant
1011Mayumi J MorascaFrance2024-04-04Dorl, James J Esq UNQUALIFIED75Elwin Sharvill
1012Isabel J RoysterJapan2024-04-20Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1013Kaitlin F GarufiSpain2024-05-01Feltz Printing Service UNQUALIFIED65Asiya Javayant
1014Octavia G GarufiSpain2024-04-12Truhlar And Truhlar Attys PROPOSAL64Ivan Magalhaes
1015Aika G OstroskyArgentina2024-04-04Chapman, Ross E Esq RENEWAL58Ivan Magalhaes
1016Munro U FigeroaBrazil2024-04-30Dorl, James J Esq NEGOTIATION68Ivan Magalhaes
1017Jennifer A StensethFrance2024-05-02Chemel, James L Cpa NEW87Elwin Sharvill
1018Morrow P NickaGermany2024-04-04Chanay, Jeffrey A Esq NEW69Ioni Bowcher
1019Claire Z SchemmerCanada2024-05-03Dorl, James J Esq PROPOSAL20Amy Elsner
1020Rodrigues X DoeRussia2024-04-20Buckley Miller Wright NEW67Onyama Limba
1021Morrow D FollerFrance2024-04-17Printing Dimensions UNQUALIFIED33Amy Elsner
1022Munro B MacleadGermany2024-04-29Chapman, Ross E Esq QUALIFIED0Asiya Javayant
1023Chavez J MaletFrance2024-05-02Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1024Maisha N RimItaly2024-04-24Chapman, Ross E Esq NEW39Asiya Javayant
1025Smith U RulapaughAustralia2024-04-27Dorl, James J Esq NEGOTIATION4Asiya Javayant
1026Emily Q NestleGermany2024-04-12Rangoni Of Florence QUALIFIED80Stephen Shaw
1027Maria H AlbaresBrazil2024-04-22Dorl, James J Esq UNQUALIFIED89Xuxue Feng
1028Ashley N FerenczItaly2024-04-18Buckley Miller Wright NEW34Asiya Javayant
1029Antonio I DilliardIndia2024-04-29Rousseaux, Michael Esq UNQUALIFIED73Anna Fali
1030Morrow X DarakjyBrazil2024-04-16King, Christopher A Esq NEW17Bernardo Dominic
1031Jefferson W VenereJapan2024-04-18Feltz Printing Service PROPOSAL65Ioni Bowcher
1032Octavia N RimFrance2024-04-17King, Christopher A Esq UNQUALIFIED22Onyama Limba
1033Izzy Y OstroskyRussia2024-04-14Feltz Printing Service PROPOSAL24Anna Fali
1034Aika A MacleadFrance2024-04-04Dorl, James J Esq NEGOTIATION91Ivan Magalhaes
1035Darci D PaprockiArgentina2024-04-17Rangoni Of Florence NEW15Ivan Magalhaes
1036Isabel M NestleRussia2024-04-14Chapman, Ross E Esq NEGOTIATION87Onyama Limba
1037Jennifer R WhobreyAustralia2024-04-13Rousseaux, Michael Esq NEGOTIATION46Elwin Sharvill
1038Tony T OldroydUnited Kingdom2024-04-26Rousseaux, Michael Esq NEW68Onyama Limba
1039David T FlosiItaly2024-04-13Printing Dimensions PROPOSAL79Ioni Bowcher
1040James B FigeroaArgentina2024-05-01Truhlar And Truhlar Attys PROPOSAL50Xuxue Feng
1041Aruna A GlickFrance2024-04-21Rangoni Of Florence PROPOSAL77Onyama Limba
1042Greenwood Y VenereJapan2024-04-16Feltz Printing Service UNQUALIFIED37Elwin Sharvill
1043Aruna U SchemmerRussia2024-05-02Chapman, Ross E Esq NEW10Anna Fali
1044David P MacleadItaly2024-04-15King, Christopher A Esq UNQUALIFIED96Anna Fali
1045Stacey C MacleadBrazil2024-04-22Rangoni Of Florence UNQUALIFIED67Onyama Limba
1046Claire H SlusarskiIndia2024-04-10Rangoni Of Florence RENEWAL61Xuxue Feng
1047Nicolas F SaylorsBrazil2024-04-04Printing Dimensions NEW54Asiya Javayant
1048Emily V NickaSpain2024-04-09Dorl, James J Esq QUALIFIED75Bernardo Dominic
1049Aruna M VenereArgentina2024-04-04Rangoni Of Florence NEGOTIATION82Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire S SaylorsCanadaXuxue Feng PROPOSAL
Aika U BowleyGermanyXuxue Feng UNQUALIFIED
Arvin V GillianJapanIvan Magalhaes NEW
Stacey P GarufiAustraliaElwin Sharvill NEW
Maisha L NickaBrazilAnna Fali RENEWAL
Julie N AmigonJapanElwin Sharvill PROPOSAL
Kadeem V KuskoFranceStephen Shaw RENEWAL
Johnson V SchemmerJapanAsiya Javayant NEW
Claire T FollerCanadaIoni Bowcher UNQUALIFIED
Tony N GlickIndiaIoni Bowcher QUALIFIED
Aika B DoeUnited KingdomIvan Magalhaes PROPOSAL
Johnson T KolmetzItalyAmy Elsner QUALIFIED
Silvio Z RimGermanyElwin Sharvill NEGOTIATION
Adams S OldroydCanadaOnyama Limba UNQUALIFIED
Misaki E KolmetzFranceStephen Shaw PROPOSAL
Kadeem F FollerAustraliaBernardo Dominic NEW
Darci H GlickJapanElwin Sharvill PROPOSAL
Ivar E WieserJapanIoni Bowcher NEW
Kadeem V CaudySpainAnna Fali NEGOTIATION
Julie B WieserFranceAsiya Javayant QUALIFIED
Maisha N PerinArgentinaBernardo Dominic UNQUALIFIED
Costa I FigeroaGermanyIvan Magalhaes RENEWAL
Alejandro I AlbaresCanadaAnna Fali NEW
Stacey G RutaGermanyBernardo Dominic NEW
Salvatore R MorascaSpainXuxue Feng NEW
Smith S GillianItalyStephen Shaw NEW
Sinclair A NickaAustraliaElwin Sharvill QUALIFIED
Emily T SaylorsRussiaElwin Sharvill NEGOTIATION
Maria A MacleadIndiaIvan Magalhaes RENEWAL
Rodrigues D GauchoBrazilElwin Sharvill NEGOTIATION
Aika T RutaAustraliaStephen Shaw NEGOTIATION
Ricardo U FollerSpainBernardo Dominic UNQUALIFIED
Adams W StockhamIndiaElwin Sharvill RENEWAL
Aruna A StockhamIndiaBernardo Dominic UNQUALIFIED
Jones J CaudyCanadaXuxue Feng QUALIFIED
Rodrigues C MorascaArgentinaXuxue Feng PROPOSAL
Ashley R ShinkoGermanyAsiya Javayant PROPOSAL
Aika D KuskoBrazilElwin Sharvill PROPOSAL
Maisha J WaycottSpainAnna Fali NEGOTIATION
Jones O GarufiIndiaElwin Sharvill RENEWAL
Adams C WaycottCanadaAnna Fali PROPOSAL
Mayumi H WhobreyArgentinaStephen Shaw RENEWAL
Isabel D AlbaresJapanBernardo Dominic PROPOSAL
Sinclair Q GarufiBrazilBernardo Dominic UNQUALIFIED
Emily H MaletRussiaElwin Sharvill PROPOSAL
Ivar S OstroskyItalyAmy Elsner NEGOTIATION
Ashley N WhobreyCanadaAsiya Javayant QUALIFIED
Francesco R VenereBrazilIvan Magalhaes RENEWAL
Adams W ShinkoCanadaOnyama Limba NEW
Emily C AmigonSpainAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Nicolas Z Paprocki
Sinclair L Iturbide
Johnson T Rulapaugh
Maria D Rim
Maria P Doe
Antonio X Bolognia
James U Whobrey
Isabel N Doe
Maisha A Figeroa
Wickens R Oldroyd
Stacey P Ruta
Costa B Figeroa
Misaki I Royster
Sinclair A Foller
Rodrigues S Vocelka
Aika P Rim
Johnson P Slusarski
Aditya G Rulapaugh
Deepesh Y Foller
Salvatore O Nestle
Francesco G Stockham
Jefferson Z Sergi
Salvatore S Inouye
Adams M Inouye
Tony C Campain
Ivar V Foller
Jennifer H Vocelka
Cody F Whobrey
Octavia N Whobrey
Mujtaba R Iturbide
Ricardo I Venere
Aditya Q Glick
Munro J Iturbide
Murillo Z Gaucho
Nicolas T Chui
Mayumi T Royster
Aika T Darakjy
Adams Y Glick
Smith T Foller
Rodrigues O Stenseth
Antonio J Poquette
Maria Z Darakjy
Maria P Nicka
Leja J Gaucho
Stacey Q Gaucho
Ashley J Whobrey
Jeanfrancois P Ferencz
Mayumi Z Briddick
Salvatore I Whobrey
Jennifer F Doe
IdCountryDate
1000Canada2024-04-17
1001India2024-04-06
1002France2024-04-06
1003United Kingdom2024-05-03
1004France2024-04-15
1005United Kingdom2024-04-24
1006Russia2024-04-23
1007Argentina2024-04-26
1008United Kingdom2024-04-04
1009Australia2024-04-09
1010India2024-04-16
1011Italy2024-04-12
1012Japan2024-04-15
1013Australia2024-04-26
1014Italy2024-04-11
1015Australia2024-04-22
1016France2024-04-16
1017Japan2024-04-06
1018United Kingdom2024-04-28
1019Russia2024-04-24
1020Argentina2024-04-27
1021Spain2024-04-16
1022France2024-04-07
1023Spain2024-04-04
1024Canada2024-04-29
1025Canada2024-04-12
1026France2024-05-03
1027Australia2024-04-12
1028Italy2024-04-08
1029Canada2024-04-20
1030Japan2024-04-28
1031Argentina2024-04-09
1032France2024-05-01
1033Italy2024-04-14
1034Canada2024-04-13
1035India2024-04-05
1036Spain2024-04-24
1037France2024-04-21
1038India2024-04-13
1039Italy2024-04-07
1040Russia2024-04-15
1041Russia2024-04-07
1042France2024-04-28
1043Brazil2024-04-06
1044Argentina2024-04-30
1045Canada2024-04-29
1046Argentina2024-04-26
1047France2024-04-14
1048France2024-04-09
1049India2024-04-21

On-Demand Data

NameIdCountryDate
Ashley C Perin1000Canada2024-04-24
Kaitlin R Nestle1001Japan2024-04-10
Julie F Morasca1002United Kingdom2024-04-08
Mayumi L Ostrosky1003Brazil2024-04-08
Julie T Chui1004Brazil2024-05-03
Maria P Dilliard1005Italy2024-04-08
Mujtaba M Rim1006India2024-04-22
Stacey Q Nicka1007Japan2024-05-01
Jeanfrancois L Figeroa1008France2024-04-15
Jones U Amigon1009India2024-04-22
Leon G Stenseth1010Germany2024-04-18
Smith D Albares1011Germany2024-04-27
David Z Albares1012India2024-04-19
Jefferson X Vocelka1013Japan2024-05-03
Octavia F Bowley1014Argentina2024-04-09
Ricardo E Slusarski1015Russia2024-04-30
Stacey T Maclead1016Canada2024-04-23
Cody K Butt1017Canada2024-04-20
Clifford U Iturbide1018Argentina2024-04-04
Rodrigues H Briddick1019Australia2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro H DarakjyCanadaAnna Fali PROPOSAL
Deepesh R DarakjyCanadaStephen Shaw RENEWAL
Alejandro E StensethJapanAsiya Javayant NEW
Cody A StockhamSpainBernardo Dominic PROPOSAL
Ricardo V StockhamCanadaIoni Bowcher NEW
Ivar E DilliardGermanyAnna Fali NEW
Stacey F NickaFranceStephen Shaw NEGOTIATION
Clifford E VenereFranceElwin Sharvill RENEWAL
Jones R VocelkaBrazilOnyama Limba RENEWAL
Mujtaba Q MaletIndiaOnyama Limba RENEWAL
Tony D SaylorsRussiaIoni Bowcher NEGOTIATION
David D InouyeSpainIvan Magalhaes UNQUALIFIED
Deepesh P MaletCanadaAmy Elsner PROPOSAL
Octavia W WhobreySpainStephen Shaw RENEWAL
David R MorascaRussiaXuxue Feng PROPOSAL
Clifford N SergiBrazilElwin Sharvill PROPOSAL
Adams R TollnerBrazilXuxue Feng UNQUALIFIED
Jefferson M GlickBrazilXuxue Feng RENEWAL
Mayumi Y CampainIndiaXuxue Feng NEGOTIATION
Maria H SergiBrazilIoni Bowcher NEGOTIATION
Aika W DoeCanadaXuxue Feng PROPOSAL
Mayumi R PaprockiBrazilXuxue Feng PROPOSAL
Murillo H FollerArgentinaAnna Fali PROPOSAL
Leon O GlickSpainOnyama Limba UNQUALIFIED
James T DilliardGermanyXuxue Feng QUALIFIED
Cody J MarrierIndiaAsiya Javayant UNQUALIFIED
Octavia O BowleyIndiaOnyama Limba PROPOSAL
Wickens T TollnerBrazilBernardo Dominic NEW
Kaitlin L GillianAustraliaIoni Bowcher NEGOTIATION
Alejandro J GlickJapanAsiya Javayant RENEWAL
Darci A VocelkaUnited KingdomAmy Elsner NEW
Jefferson H WieserJapanIvan Magalhaes RENEWAL
Maisha A StockhamGermanyXuxue Feng UNQUALIFIED
Wickens F InouyeCanadaXuxue Feng QUALIFIED
Octavia X ChuiJapanAsiya Javayant RENEWAL
Adams W BowleyItalyOnyama Limba PROPOSAL
David W SergiGermanyAsiya Javayant UNQUALIFIED
Misaki D TollnerItalyXuxue Feng NEGOTIATION
Tony G MarrierAustraliaStephen Shaw NEGOTIATION
Adams A ChuiCanadaAnna Fali NEW

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