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
Maisha I FigeroaItalyElwin Sharvill RENEWAL
Aruna J OstroskyArgentinaAmy Elsner NEGOTIATION
Aika F PoquetteArgentinaAmy Elsner QUALIFIED
Salvatore M ShinkoGermanyAnna Fali NEW
Morrow A CaudyJapanAnna Fali NEW
Smith N ButtJapanOnyama Limba RENEWAL
Johnson A SlusarskiIndiaAmy Elsner NEGOTIATION
Jones S WaycottJapanOnyama Limba RENEWAL
Rodrigues I FigeroaAustraliaElwin Sharvill PROPOSAL
Maisha L GarufiGermanyStephen Shaw RENEWAL
Wickens X AmigonBrazilBernardo Dominic RENEWAL
Jefferson C ButtGermanyAnna Fali QUALIFIED
Deepesh O TollnerJapanElwin Sharvill NEGOTIATION
Tony M VenereUnited KingdomAnna Fali RENEWAL
Leja T DoeAustraliaXuxue Feng UNQUALIFIED
Maisha F ChuiJapanElwin Sharvill NEW
Chavez K CaudyItalyXuxue Feng RENEWAL
Aruna O ButtAustraliaAmy Elsner PROPOSAL
Izzy U MorascaItalyStephen Shaw NEW
Deepesh R DoeAustraliaOnyama Limba RENEWAL
Ashley F SergiSpainXuxue Feng QUALIFIED
Johnson V RoysterAustraliaIoni Bowcher QUALIFIED
Tony C OstroskyCanadaIvan Magalhaes UNQUALIFIED
Jefferson Q TollnerItalyStephen Shaw RENEWAL
Juan N OldroydGermanyXuxue Feng NEGOTIATION
Morrow W StockhamAustraliaElwin Sharvill NEW
Darci W GarufiGermanyAsiya Javayant UNQUALIFIED
Jefferson T FlosiArgentinaOnyama Limba NEGOTIATION
Izzy V SlusarskiBrazilAnna Fali QUALIFIED
Wickens U OldroydGermanyIvan Magalhaes RENEWAL
Nicolas O PoquetteRussiaXuxue Feng NEGOTIATION
Emily Q SergiBrazilIoni Bowcher NEGOTIATION
Deepesh S SaylorsBrazilStephen Shaw RENEWAL
James N InouyeUnited KingdomAmy Elsner QUALIFIED
Ivar O OldroydArgentinaAnna Fali NEW
Julie H GarufiRussiaAsiya Javayant PROPOSAL
Jeanfrancois A PoquetteSpainAmy Elsner RENEWAL
Sinclair N WaycottItalyAnna Fali UNQUALIFIED
Kaitlin J AlbaresJapanBernardo Dominic QUALIFIED
James G MaletGermanyAnna Fali NEGOTIATION
Juan B MacleadJapanIvan Magalhaes NEW
Nicolas T BowleyJapanBernardo Dominic NEGOTIATION
Tony R ChuiArgentinaAmy Elsner RENEWAL
Faith H SchemmerGermanyAmy Elsner UNQUALIFIED
Stacey Z GlickCanadaXuxue Feng UNQUALIFIED
Kadeem A ShinkoAustraliaAmy Elsner NEW
Mujtaba A AlbaresAustraliaAsiya Javayant PROPOSAL
Jefferson L FollerArgentinaIoni Bowcher RENEWAL
Munro Z CaudyRussiaAmy Elsner NEGOTIATION
Octavia O KuskoArgentinaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha F ChuiAustraliaElwin Sharvill NEGOTIATION
Morrow G WaycottBrazilStephen Shaw QUALIFIED
Jeanfrancois V GlickGermanyBernardo Dominic NEGOTIATION
Smith F CampainItalyStephen Shaw NEGOTIATION
Francesco N DoeSpainAmy Elsner PROPOSAL
Murillo M BowleyJapanOnyama Limba UNQUALIFIED
Munro X MarrierCanadaAmy Elsner QUALIFIED
Sinclair A KuskoBrazilAnna Fali UNQUALIFIED
Smith O AmigonItalyAmy Elsner UNQUALIFIED
Cody L MacleadItalyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Y GlickArgentina2024-04-02Buckley Miller Wright QUALIFIED2Anna Fali
1001Costa I CaudySpain2024-04-15Dorl, James J Esq RENEWAL74Ivan Magalhaes
1002David N NestleItaly2024-03-24Buckley Miller Wright NEW66Stephen Shaw
1003Ricardo I GlickGermany2024-03-26Morlong Associates RENEWAL59Ioni Bowcher
1004Morrow Z RimGermany2024-03-28Truhlar And Truhlar Attys NEW40Amy Elsner
1005Tony V GlickSpain2024-03-28Chemel, James L Cpa RENEWAL6Elwin Sharvill
1006Rodrigues Z RulapaughBrazil2024-03-29Printing Dimensions NEGOTIATION25Anna Fali
1007Mujtaba C SergiIndia2024-03-31Truhlar And Truhlar Attys RENEWAL89Asiya Javayant
1008Sinclair T InouyeCanada2024-03-31Feltz Printing Service PROPOSAL40Elwin Sharvill
1009Antonio Z MarrierIndia2024-03-23Printing Dimensions UNQUALIFIED58Stephen Shaw
1010Murillo E BologniaFrance2024-04-05Benton, John B Jr NEGOTIATION71Stephen Shaw
1011Claire Z FollerArgentina2024-04-06Buckley Miller Wright UNQUALIFIED51Amy Elsner
1012Adams Q WhobreyBrazil2024-04-11Dorl, James J Esq QUALIFIED14Elwin Sharvill
1013Faith O IturbideGermany2024-03-21Rangoni Of Florence PROPOSAL40Amy Elsner
1014Chavez D OstroskyCanada2024-04-07Chapman, Ross E Esq NEW67Onyama Limba
1015Adams Z MaletSpain2024-03-25Buckley Miller Wright RENEWAL98Amy Elsner
1016Aika W TollnerArgentina2024-04-03Benton, John B Jr QUALIFIED36Bernardo Dominic
1017Claire V RimSpain2024-03-23King, Christopher A Esq NEW28Ioni Bowcher
1018Tony H BriddickFrance2024-03-31Dorl, James J Esq UNQUALIFIED3Anna Fali
1019Chavez K PoquetteJapan2024-03-22Truhlar And Truhlar Attys QUALIFIED46Asiya Javayant
1020Aruna I BologniaSpain2024-03-21Chapman, Ross E Esq NEGOTIATION66Amy Elsner
1021Aika Z RulapaughBrazil2024-03-21Morlong Associates PROPOSAL44Ioni Bowcher
1022Cody P GarufiArgentina2024-03-25Chanay, Jeffrey A Esq UNQUALIFIED36Amy Elsner
1023Darci X VenereUnited Kingdom2024-04-07Rangoni Of Florence PROPOSAL5Elwin Sharvill
1024Cody I NickaSpain2024-04-13Chemel, James L Cpa NEW66Elwin Sharvill
1025Leja S GillianIndia2024-04-09Feiner Bros NEGOTIATION16Bernardo Dominic
1026Jennifer A StensethRussia2024-04-15Chapman, Ross E Esq QUALIFIED6Asiya Javayant
1027David Y RoysterGermany2024-04-03Printing Dimensions PROPOSAL46Ivan Magalhaes
1028Mayumi Y ButtFrance2024-03-30Dorl, James J Esq UNQUALIFIED24Elwin Sharvill
1029Nicolas C RutaRussia2024-03-31Feltz Printing Service PROPOSAL15Asiya Javayant
1030Antonio B ButtAustralia2024-04-09Morlong Associates NEGOTIATION3Anna Fali
1031Ricardo S PerinCanada2024-04-06Morlong Associates QUALIFIED36Ivan Magalhaes
1032Emily E IturbideArgentina2024-04-05Printing Dimensions NEGOTIATION82Ioni Bowcher
1033Darci X NickaGermany2024-04-07Chemel, James L Cpa UNQUALIFIED2Elwin Sharvill
1034Juan J ChuiRussia2024-03-23Buckley Miller Wright RENEWAL44Ioni Bowcher
1035Costa V RulapaughRussia2024-04-10Printing Dimensions QUALIFIED74Asiya Javayant
1036Rodrigues B NestleCanada2024-03-24Morlong Associates RENEWAL4Bernardo Dominic
1037Mujtaba J SergiArgentina2024-04-06Printing Dimensions NEGOTIATION17Stephen Shaw
1038Silvio H CampainGermany2024-03-24Feiner Bros PROPOSAL17Bernardo Dominic
1039Octavia R RulapaughItaly2024-04-05Chapman, Ross E Esq NEGOTIATION66Ioni Bowcher
1040Cody Z MacleadCanada2024-03-30Commercial Press RENEWAL56Stephen Shaw
1041Julie H FigeroaSpain2024-03-29Buckley Miller Wright RENEWAL81Stephen Shaw
1042Ricardo S DarakjyJapan2024-04-03Truhlar And Truhlar Attys RENEWAL25Elwin Sharvill
1043Mayumi H MaletRussia2024-03-23Rangoni Of Florence NEW3Asiya Javayant
1044Stacey A CaudyUnited Kingdom2024-03-31Chanay, Jeffrey A Esq PROPOSAL30Onyama Limba
1045Emily A RulapaughJapan2024-04-11Chapman, Ross E Esq NEW44Stephen Shaw
1046Izzy P InouyeArgentina2024-04-11Buckley Miller Wright PROPOSAL31Ivan Magalhaes
1047Jones E GillianUnited Kingdom2024-03-24Morlong Associates NEW50Asiya Javayant
1048Octavia J ShinkoSpain2024-04-03Morlong Associates NEW43Onyama Limba
1049Sinclair O KolmetzArgentina2024-04-16Chemel, James L Cpa RENEWAL75Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Cody U MorascaBrazilAnna Fali RENEWAL
Deepesh P VocelkaAustraliaStephen Shaw PROPOSAL
Greenwood I RimJapanAnna Fali QUALIFIED
Maisha C AlbaresRussiaElwin Sharvill RENEWAL
Silvio L IturbideRussiaBernardo Dominic QUALIFIED
Cody R TollnerFranceAsiya Javayant PROPOSAL
Silvio I SlusarskiArgentinaIvan Magalhaes RENEWAL
Izzy P CampainRussiaAmy Elsner RENEWAL
Claire R NickaFranceBernardo Dominic NEW
Morrow S KolmetzIndiaAnna Fali RENEWAL
Aruna E CampainBrazilOnyama Limba NEW
Julie C RutaArgentinaAmy Elsner UNQUALIFIED
Arvin A OstroskyGermanyAnna Fali RENEWAL
Ricardo L RulapaughSpainElwin Sharvill NEGOTIATION
Antonio U RutaAustraliaAmy Elsner NEW
Leon P FerenczBrazilAsiya Javayant NEGOTIATION
Ashley O DarakjyAustraliaElwin Sharvill QUALIFIED
Jeanfrancois N PoquetteArgentinaIoni Bowcher UNQUALIFIED
Wickens A GillianUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo N GauchoIndiaIvan Magalhaes QUALIFIED
Jefferson Z DarakjyBrazilElwin Sharvill QUALIFIED
Leon G DarakjyItalyIoni Bowcher QUALIFIED
Clifford Y PerinUnited KingdomXuxue Feng NEW
Darci D FigeroaRussiaElwin Sharvill UNQUALIFIED
Kadeem J GlickAustraliaOnyama Limba NEGOTIATION
Clifford J MaletUnited KingdomXuxue Feng UNQUALIFIED
James I SaylorsArgentinaIvan Magalhaes NEW
Maria D MarrierItalyAnna Fali UNQUALIFIED
Leon Q DarakjyIndiaAsiya Javayant RENEWAL
Sinclair E MacleadCanadaXuxue Feng NEGOTIATION
Kadeem T KuskoCanadaBernardo Dominic NEGOTIATION
Maria R PerinSpainElwin Sharvill NEGOTIATION
Aika H WieserJapanElwin Sharvill NEW
Wickens Q AlbaresItalyElwin Sharvill RENEWAL
Costa B VenereFranceAsiya Javayant RENEWAL
Jeanfrancois C KuskoSpainIvan Magalhaes NEW
David Z GarufiBrazilXuxue Feng UNQUALIFIED
Aditya O MaletAustraliaAmy Elsner RENEWAL
Johnson P VenereAustraliaAsiya Javayant PROPOSAL
Darci S ChuiCanadaAsiya Javayant NEGOTIATION
Julie Z WaycottItalyAnna Fali NEW
Chavez Z TollnerUnited KingdomAnna Fali PROPOSAL
Mayumi H BriddickJapanIoni Bowcher NEW
Ashley O CaldareraSpainOnyama Limba PROPOSAL
Jennifer Y StensethUnited KingdomAnna Fali QUALIFIED
Arvin K IturbideAustraliaAmy Elsner QUALIFIED
Smith S IturbideArgentinaAnna Fali NEW
Greenwood L MaletUnited KingdomElwin Sharvill QUALIFIED
Jones O GarufiFranceIvan Magalhaes UNQUALIFIED
Clifford L FerenczJapanBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Clifford C Malet
Morrow X Saylors
Cody E Caldarera
Nicolas W Wieser
Antonio D Caudy
Smith K Caudy
Francesco D Waycott
Kaitlin H Stockham
Claire E Wieser
Salvatore Q Schemmer
Greenwood W Morasca
Rodrigues W Rulapaugh
Aditya X Ferencz
Maisha T Saylors
Maria U Darakjy
Deepesh Z Amigon
Munro I Ferencz
Aruna R Amigon
Clifford M Poquette
Juan M Sergi
David C Sergi
Wickens F Ferencz
Rodrigues F Malet
Ivar O Tollner
Antonio V Malet
Leja T Chui
Cody A Slusarski
Salvatore S Paprocki
Costa T Poquette
Silvio Q Inouye
Adams T Whobrey
Octavia L Bolognia
Leja C Figeroa
Antonio S Gaucho
Costa W Ostrosky
Mayumi J Malet
Smith H Maclead
Munro S Ferencz
Kaitlin L Chui
Mayumi W Albares
Aruna J Royster
Silvio I Albares
Darci Q Inouye
Kaitlin C Albares
Clifford Z Briddick
Stacey J Ostrosky
Silvio Y Maclead
Darci U Whobrey
Juan A Maclead
Arvin M Dilliard
IdCountryDate
1000India2024-04-08
1001United Kingdom2024-03-26
1002Spain2024-04-01
1003Argentina2024-04-08
1004France2024-04-17
1005Russia2024-03-26
1006Argentina2024-04-01
1007Argentina2024-03-26
1008Japan2024-03-26
1009India2024-04-13
1010Russia2024-04-15
1011Germany2024-04-05
1012Brazil2024-04-07
1013United Kingdom2024-04-06
1014Brazil2024-04-11
1015India2024-04-13
1016Italy2024-04-14
1017Spain2024-04-11
1018United Kingdom2024-03-29
1019Japan2024-04-09
1020Brazil2024-03-26
1021Canada2024-04-11
1022Canada2024-04-13
1023France2024-03-27
1024Argentina2024-03-25
1025Brazil2024-04-04
1026Brazil2024-03-25
1027Australia2024-04-12
1028Italy2024-04-07
1029United Kingdom2024-04-02
1030Brazil2024-04-05
1031United Kingdom2024-04-03
1032United Kingdom2024-04-02
1033Russia2024-04-05
1034India2024-04-06
1035Canada2024-04-09
1036Argentina2024-04-04
1037Spain2024-04-10
1038Canada2024-03-20
1039India2024-04-15
1040India2024-04-06
1041India2024-04-17
1042Argentina2024-04-17
1043Canada2024-03-27
1044Argentina2024-03-27
1045United Kingdom2024-03-31
1046Australia2024-03-29
1047Germany2024-04-11
1048Canada2024-04-17
1049United Kingdom2024-03-30

On-Demand Data

NameIdCountryDate
Cody H Schemmer1000Brazil2024-04-02
Jeanfrancois F Poquette1001Argentina2024-04-06
Isabel G Doe1002Brazil2024-03-22
Aruna U Malet1003Japan2024-04-17
Murillo T Malet1004Canada2024-03-21
Murillo M Whobrey1005Argentina2024-04-18
Isabel Z Doe1006France2024-03-30
Julie A Wieser1007Australia2024-03-26
Munro G Bowley1008Germany2024-04-01
Salvatore X Figeroa1009Italy2024-04-04
Munro H Morasca1010Brazil2024-04-06
Antonio A Flosi1011United Kingdom2024-03-31
Izzy E Nestle1012India2024-04-01
Leon O Perin1013Russia2024-04-07
Jennifer B Stenseth1014Germany2024-04-12
Isabel Y Rulapaugh1015Brazil2024-04-02
Jones J Garufi1016Australia2024-03-30
Stacey G Gillian1017Brazil2024-03-31
Ricardo B Rim1018Argentina2024-04-02
Aditya K Schemmer1019Australia2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel D ButtIndiaIoni Bowcher QUALIFIED
Morrow S MaletAustraliaOnyama Limba NEGOTIATION
Ashley N GauchoGermanyStephen Shaw QUALIFIED
Maria C RulapaughItalyBernardo Dominic UNQUALIFIED
Murillo K StensethIndiaElwin Sharvill PROPOSAL
Aika R WhobreyFranceIvan Magalhaes PROPOSAL
Jeanfrancois M GarufiIndiaIvan Magalhaes PROPOSAL
Tony T CaldareraAustraliaElwin Sharvill NEW
Mayumi V MaletBrazilIvan Magalhaes NEW
Murillo S NestleArgentinaBernardo Dominic UNQUALIFIED
Kaitlin O PaprockiArgentinaStephen Shaw QUALIFIED
Francesco T OldroydFranceBernardo Dominic PROPOSAL
Octavia G WhobreyIndiaAsiya Javayant RENEWAL
Johnson E GillianFranceIoni Bowcher RENEWAL
Kadeem Y RulapaughSpainElwin Sharvill QUALIFIED
Smith M MarrierAustraliaStephen Shaw NEW
Ivar T DoeCanadaAsiya Javayant RENEWAL
Aruna J SergiBrazilAmy Elsner QUALIFIED
Munro O FerenczItalyElwin Sharvill NEW
Ivar I KuskoFranceXuxue Feng PROPOSAL
Misaki H DilliardItalyOnyama Limba UNQUALIFIED
Costa J FigeroaJapanAmy Elsner QUALIFIED
Cody M MarrierGermanyOnyama Limba RENEWAL
Costa G FlosiGermanyIvan Magalhaes NEGOTIATION
Isabel L PaprockiAustraliaIvan Magalhaes NEGOTIATION
Ashley B DarakjyFranceAsiya Javayant NEGOTIATION
David V FlosiGermanyIoni Bowcher PROPOSAL
Julie H CaldareraRussiaStephen Shaw UNQUALIFIED
David T SergiFranceAmy Elsner PROPOSAL
Francesco N BriddickArgentinaAsiya Javayant UNQUALIFIED
Kaitlin Q OstroskyBrazilAsiya Javayant NEGOTIATION
Cody P MaletFranceXuxue Feng UNQUALIFIED
Morrow B KolmetzJapanIoni Bowcher NEW
Silvio C BowleyItalyIvan Magalhaes NEW
Mujtaba Z MacleadSpainAmy Elsner PROPOSAL
Mayumi Q ButtRussiaIvan Magalhaes NEW
Wickens Y MaletFranceAmy Elsner NEW
Adams A RutaSpainAmy Elsner NEGOTIATION
Stacey U MaletIndiaAnna Fali PROPOSAL
Mayumi U PerinFranceAnna Fali QUALIFIED

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