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
Tony P RimAustraliaStephen Shaw RENEWAL
Jones N SlusarskiSpainAnna Fali QUALIFIED
James F AmigonBrazilIvan Magalhaes NEW
Leja Q OstroskyCanadaBernardo Dominic NEGOTIATION
Aika E MorascaSpainIvan Magalhaes NEGOTIATION
Costa C BologniaAustraliaIvan Magalhaes NEW
Jeanfrancois O MarrierCanadaIvan Magalhaes NEW
Costa M GarufiCanadaOnyama Limba PROPOSAL
Greenwood B BowleySpainBernardo Dominic QUALIFIED
Wickens V PaprockiUnited KingdomAmy Elsner QUALIFIED
Jones E PaprockiArgentinaOnyama Limba PROPOSAL
Claire C GarufiFranceOnyama Limba RENEWAL
Chavez E NickaSpainIvan Magalhaes PROPOSAL
Emily I RoysterBrazilAmy Elsner PROPOSAL
Aruna J PaprockiBrazilXuxue Feng PROPOSAL
Sinclair S MarrierGermanyIvan Magalhaes UNQUALIFIED
Claire F CaldareraJapanAmy Elsner PROPOSAL
Jeanfrancois U DilliardIndiaIvan Magalhaes PROPOSAL
Sinclair T BowleyIndiaAnna Fali RENEWAL
Clifford M MarrierAustraliaIvan Magalhaes PROPOSAL
Clifford R OstroskySpainStephen Shaw NEGOTIATION
Clifford F WhobreyIndiaOnyama Limba RENEWAL
Aruna L FerenczAustraliaAsiya Javayant NEW
Antonio L IturbideSpainStephen Shaw RENEWAL
Maria M RutaBrazilBernardo Dominic NEGOTIATION
Darci P MaletSpainIvan Magalhaes UNQUALIFIED
Kaitlin N VocelkaBrazilOnyama Limba NEGOTIATION
Mujtaba B FigeroaAustraliaElwin Sharvill NEGOTIATION
Leja K FigeroaBrazilStephen Shaw QUALIFIED
Rodrigues H CaldareraJapanStephen Shaw NEW
Mujtaba K MaletArgentinaAnna Fali NEGOTIATION
James Y DarakjyItalyElwin Sharvill UNQUALIFIED
Julie V SaylorsAustraliaAnna Fali UNQUALIFIED
Emily P PerinRussiaAsiya Javayant QUALIFIED
Octavia F VocelkaArgentinaAnna Fali QUALIFIED
Julie Q ShinkoAustraliaOnyama Limba RENEWAL
Costa U PerinGermanyOnyama Limba RENEWAL
Costa R PerinIndiaAnna Fali NEW
Morrow N FlosiCanadaElwin Sharvill PROPOSAL
Salvatore E GauchoJapanAmy Elsner RENEWAL
Julie J TollnerJapanXuxue Feng PROPOSAL
Jeanfrancois M ShinkoFranceIvan Magalhaes NEGOTIATION
Kaitlin P MaletAustraliaIoni Bowcher PROPOSAL
Maisha R VocelkaAustraliaBernardo Dominic PROPOSAL
Ashley P PerinUnited KingdomAsiya Javayant NEGOTIATION
Murillo H MorascaRussiaIvan Magalhaes NEGOTIATION
Francesco Z SlusarskiIndiaAnna Fali NEW
Francesco F SchemmerRussiaElwin Sharvill QUALIFIED
Jeanfrancois L SlusarskiItalyElwin Sharvill NEW
Deepesh H BologniaBrazilAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin W IturbideItalyIoni Bowcher RENEWAL
Emily T StensethArgentinaAmy Elsner PROPOSAL
Jefferson J ShinkoArgentinaElwin Sharvill NEGOTIATION
Murillo C FlosiRussiaOnyama Limba RENEWAL
Jones B ButtJapanAnna Fali RENEWAL
Rodrigues Q InouyeSpainOnyama Limba PROPOSAL
Silvio T PoquetteJapanBernardo Dominic NEGOTIATION
Greenwood A WaycottJapanXuxue Feng NEW
Aika K OstroskyItalyAnna Fali QUALIFIED
Faith F RimItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro B PerinItaly2024-04-08Benton, John B Jr NEGOTIATION55Elwin Sharvill
1001Tony M FlosiGermany2024-03-31Printing Dimensions UNQUALIFIED37Anna Fali
1002Stacey Y MacleadUnited Kingdom2024-04-15Chapman, Ross E Esq UNQUALIFIED69Xuxue Feng
1003Nicolas Y VenereItaly2024-04-01Printing Dimensions UNQUALIFIED86Ioni Bowcher
1004Smith D FigeroaFrance2024-04-17Commercial Press PROPOSAL78Anna Fali
1005Rodrigues X KolmetzFrance2024-04-16Chapman, Ross E Esq PROPOSAL5Ivan Magalhaes
1006Leon P WieserArgentina2024-04-22Feltz Printing Service NEGOTIATION52Bernardo Dominic
1007Emily F VocelkaFrance2024-04-21Morlong Associates NEW65Onyama Limba
1008Chavez B BowleyItaly2024-04-21Truhlar And Truhlar Attys NEW11Amy Elsner
1009Johnson F StensethBrazil2024-04-02Dorl, James J Esq PROPOSAL21Elwin Sharvill
1010Maria F MaletFrance2024-04-28Benton, John B Jr NEW5Elwin Sharvill
1011Claire L StensethGermany2024-04-25Rousseaux, Michael Esq QUALIFIED4Ioni Bowcher
1012Adams X MaletJapan2024-04-12Buckley Miller Wright RENEWAL71Elwin Sharvill
1013David B VenereAustralia2024-04-16King, Christopher A Esq QUALIFIED12Anna Fali
1014Faith K VenereBrazil2024-04-18Feiner Bros NEGOTIATION64Stephen Shaw
1015Juan I GauchoBrazil2024-04-12Feiner Bros QUALIFIED24Asiya Javayant
1016Jefferson V CaudyArgentina2024-04-06Dorl, James J Esq RENEWAL11Anna Fali
1017Mayumi Y FigeroaBrazil2024-04-26Benton, John B Jr NEGOTIATION93Bernardo Dominic
1018Emily C WieserAustralia2024-04-01Rangoni Of Florence NEGOTIATION42Anna Fali
1019Julie G RutaCanada2024-04-22Feiner Bros RENEWAL68Elwin Sharvill
1020Murillo K NestleItaly2024-04-20King, Christopher A Esq NEGOTIATION82Elwin Sharvill
1021Maria W PaprockiAustralia2024-04-20Truhlar And Truhlar Attys UNQUALIFIED40Xuxue Feng
1022Jefferson A PaprockiSpain2024-04-12Morlong Associates PROPOSAL49Amy Elsner
1023Ivar K FollerUnited Kingdom2024-04-19Truhlar And Truhlar Attys NEW69Asiya Javayant
1024Antonio I VenereIndia2024-04-05Morlong Associates RENEWAL38Ivan Magalhaes
1025Jeanfrancois O MaletRussia2024-04-17Commercial Press RENEWAL2Ioni Bowcher
1026Aruna C WaycottSpain2024-04-08Rangoni Of Florence UNQUALIFIED93Stephen Shaw
1027Emily H KuskoArgentina2024-04-20Feltz Printing Service RENEWAL15Ivan Magalhaes
1028Greenwood H CaldareraGermany2024-04-22Morlong Associates QUALIFIED56Stephen Shaw
1029Wickens A CampainFrance2024-04-29Buckley Miller Wright NEGOTIATION82Stephen Shaw
1030Julie A ButtItaly2024-04-11Benton, John B Jr QUALIFIED70Ivan Magalhaes
1031Leon V NestleAustralia2024-04-06Feltz Printing Service QUALIFIED65Ioni Bowcher
1032Rodrigues V NickaFrance2024-04-12Chemel, James L Cpa QUALIFIED50Onyama Limba
1033Jones K SlusarskiUnited Kingdom2024-04-21Feltz Printing Service RENEWAL49Stephen Shaw
1034Ricardo V OstroskyAustralia2024-04-20Chemel, James L Cpa QUALIFIED3Ioni Bowcher
1035Arvin N CaudyItaly2024-04-07Chanay, Jeffrey A Esq UNQUALIFIED31Ioni Bowcher
1036Jones Z OldroydCanada2024-04-16Dorl, James J Esq QUALIFIED25Xuxue Feng
1037Misaki Q IturbideBrazil2024-04-18Morlong Associates UNQUALIFIED49Elwin Sharvill
1038Wickens W StockhamUnited Kingdom2024-04-12Truhlar And Truhlar Attys UNQUALIFIED90Asiya Javayant
1039Aruna P FerenczAustralia2024-04-28Rangoni Of Florence NEW54Onyama Limba
1040Ivar Z FerenczUnited Kingdom2024-04-07Morlong Associates UNQUALIFIED91Amy Elsner
1041Deepesh F RimRussia2024-04-12Morlong Associates NEW66Asiya Javayant
1042Jeanfrancois G GauchoCanada2024-04-23Chemel, James L Cpa RENEWAL84Stephen Shaw
1043Antonio I SchemmerItaly2024-04-03Dorl, James J Esq NEW61Elwin Sharvill
1044Isabel Y ShinkoGermany2024-04-29Feltz Printing Service NEW39Ioni Bowcher
1045Maisha X ChuiBrazil2024-03-31Chemel, James L Cpa UNQUALIFIED32Anna Fali
1046Leja C CampainFrance2024-04-24Chanay, Jeffrey A Esq PROPOSAL26Stephen Shaw
1047Kadeem V PaprockiFrance2024-04-11Morlong Associates NEGOTIATION21Asiya Javayant
1048Mayumi M ChuiGermany2024-04-06Morlong Associates QUALIFIED12Stephen Shaw
1049Maria F RutaGermany2024-04-19Chemel, James L Cpa RENEWAL73Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci S FigeroaUnited KingdomAnna Fali UNQUALIFIED
Munro D FigeroaCanadaStephen Shaw RENEWAL
Aruna G WieserRussiaElwin Sharvill UNQUALIFIED
Wickens V SergiJapanIoni Bowcher PROPOSAL
Murillo B VenereIndiaAsiya Javayant PROPOSAL
Munro W RulapaughFranceOnyama Limba QUALIFIED
Aruna B MaletUnited KingdomBernardo Dominic PROPOSAL
Wickens F FlosiArgentinaAmy Elsner QUALIFIED
Adams U NickaRussiaOnyama Limba RENEWAL
Juan M MarrierFranceStephen Shaw NEW
Darci Q GauchoBrazilBernardo Dominic RENEWAL
Jones J RulapaughItalyOnyama Limba PROPOSAL
Ashley U OstroskyItalyAmy Elsner QUALIFIED
Isabel O ButtGermanyXuxue Feng NEGOTIATION
Salvatore V TollnerItalyAmy Elsner UNQUALIFIED
Arvin M DarakjyBrazilElwin Sharvill UNQUALIFIED
Isabel I RulapaughSpainAmy Elsner QUALIFIED
Faith R SchemmerJapanAmy Elsner NEW
Octavia K StensethAustraliaAsiya Javayant QUALIFIED
Kaitlin X StensethFranceElwin Sharvill PROPOSAL
Sinclair H GauchoArgentinaOnyama Limba PROPOSAL
Chavez B StensethFranceOnyama Limba UNQUALIFIED
Greenwood L StensethItalyAsiya Javayant UNQUALIFIED
Greenwood D PaprockiArgentinaAsiya Javayant UNQUALIFIED
Chavez V TollnerItalyAmy Elsner UNQUALIFIED
Octavia B BowleyRussiaIoni Bowcher NEW
Maisha C SaylorsJapanAsiya Javayant PROPOSAL
Izzy O FerenczCanadaIvan Magalhaes UNQUALIFIED
Chavez O InouyeRussiaStephen Shaw QUALIFIED
Juan S StockhamIndiaStephen Shaw NEW
Silvio Y PoquetteGermanyXuxue Feng QUALIFIED
Jeanfrancois K SergiFranceElwin Sharvill NEGOTIATION
Jennifer P WieserCanadaIvan Magalhaes QUALIFIED
Francesco L RutaGermanyIoni Bowcher NEW
Claire E StensethUnited KingdomIoni Bowcher QUALIFIED
Emily F SaylorsGermanyStephen Shaw UNQUALIFIED
Isabel A CaudyCanadaIvan Magalhaes PROPOSAL
Wickens C ButtUnited KingdomXuxue Feng UNQUALIFIED
Cody H GlickUnited KingdomAsiya Javayant RENEWAL
David N MaletSpainStephen Shaw QUALIFIED
Darci J RoysterItalyElwin Sharvill PROPOSAL
Misaki T AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin U WieserGermanyAnna Fali NEW
Ashley A MarrierGermanyElwin Sharvill RENEWAL
Johnson D CaudyIndiaAmy Elsner NEW
Johnson W NickaGermanyIoni Bowcher NEW
Claire Y RimUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio Y FigeroaRussiaStephen Shaw QUALIFIED
Nicolas L MaletJapanIoni Bowcher NEW
Jennifer L PoquetteAustraliaIoni Bowcher RENEWAL
Frozen Columns
Name
Julie U Shinko
Smith K Saylors
James H Foller
Claire Q Amigon
Sinclair G Briddick
David K Schemmer
Mujtaba Z Rim
Antonio I Garufi
Deepesh R Amigon
Darci H Iturbide
Faith A Inouye
Ivar S Dilliard
Morrow B Glick
Arvin L Foller
Julie I Iturbide
Juan O Caudy
Arvin B Glick
Izzy Z Malet
Mujtaba X Figeroa
Isabel D Slusarski
Faith K Whobrey
Ricardo B Inouye
Antonio M Royster
Rodrigues Y Campain
Ashley K Royster
Antonio V Slusarski
Ashley K Malet
Darci E Waycott
Darci Y Sergi
Morrow B Perin
Isabel T Kusko
Jones B Ruta
Izzy C Stockham
Aruna G Oldroyd
Alejandro K Stenseth
Aruna Y Ruta
Darci F Kolmetz
Chavez V Albares
Mujtaba S Venere
Kadeem Z Inouye
Alejandro K Gaucho
Antonio S Albares
Jones J Poquette
James J Saylors
Emily U Ruta
Maisha F Schemmer
Jennifer K Tollner
Jones O Caudy
Kadeem U Chui
Leja B Darakjy
IdCountryDate
1000Italy2024-04-13
1001United Kingdom2024-04-13
1002India2024-04-26
1003Australia2024-04-09
1004Germany2024-04-16
1005Brazil2024-04-18
1006United Kingdom2024-04-20
1007Spain2024-04-28
1008Germany2024-04-16
1009India2024-04-26
1010Russia2024-04-03
1011France2024-04-23
1012India2024-04-19
1013Germany2024-04-10
1014Australia2024-04-10
1015Canada2024-03-31
1016Brazil2024-04-19
1017Germany2024-04-21
1018Canada2024-04-01
1019Germany2024-04-04
1020Canada2024-04-21
1021Canada2024-04-10
1022Japan2024-04-09
1023France2024-04-28
1024France2024-04-14
1025Argentina2024-04-07
1026Spain2024-04-18
1027United Kingdom2024-04-06
1028Spain2024-04-05
1029Germany2024-04-28
1030Italy2024-04-07
1031Australia2024-04-20
1032India2024-04-14
1033Australia2024-04-11
1034Russia2024-04-18
1035Australia2024-04-23
1036Germany2024-04-04
1037Spain2024-04-17
1038United Kingdom2024-04-15
1039Australia2024-04-26
1040Japan2024-04-16
1041United Kingdom2024-04-11
1042Germany2024-04-10
1043India2024-04-01
1044United Kingdom2024-04-08
1045Russia2024-04-27
1046Canada2024-04-15
1047Germany2024-04-22
1048Russia2024-04-16
1049Spain2024-04-26

On-Demand Data

NameIdCountryDate
Faith P Paprocki1000Argentina2024-04-20
Claire H Ostrosky1001Japan2024-04-26
Maria D Amigon1002Japan2024-04-26
Alejandro H Perin1003Argentina2024-04-08
Jeanfrancois Z Flosi1004Brazil2024-04-05
Maria I Ostrosky1005India2024-04-04
Adams U Maclead1006India2024-04-16
Sinclair Y Ostrosky1007Italy2024-04-23
Misaki W Perin1008United Kingdom2024-04-16
Jennifer I Rulapaugh1009France2024-04-28
Clifford Y Campain1010Italy2024-04-07
Nicolas S Nicka1011India2024-04-08
Chavez Z Royster1012Canada2024-04-17
Antonio Y Maclead1013Spain2024-04-22
Alejandro N Royster1014Spain2024-04-04
James T Rulapaugh1015France2024-04-16
Smith L Rim1016United Kingdom2024-04-18
Kaitlin Q Royster1017Australia2024-04-13
Aika E Nestle1018India2024-04-09
Antonio U Inouye1019Italy2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow E IturbideItalyIoni Bowcher UNQUALIFIED
Kadeem S BologniaArgentinaStephen Shaw PROPOSAL
Kadeem R MaletJapanIvan Magalhaes PROPOSAL
Leon Q DarakjyIndiaStephen Shaw UNQUALIFIED
Julie S InouyeSpainIvan Magalhaes RENEWAL
Alejandro Y RoysterBrazilAsiya Javayant NEGOTIATION
Tony M MaletRussiaOnyama Limba QUALIFIED
Claire M SaylorsFranceAsiya Javayant NEGOTIATION
David W ShinkoCanadaBernardo Dominic PROPOSAL
Izzy Y GarufiIndiaBernardo Dominic NEW
Leon K RimSpainXuxue Feng QUALIFIED
Rodrigues Z StockhamGermanyXuxue Feng RENEWAL
Faith T DoeFranceXuxue Feng QUALIFIED
Smith S PoquetteFranceAsiya Javayant RENEWAL
Ashley Y VocelkaBrazilAsiya Javayant PROPOSAL
Nicolas P MarrierBrazilAmy Elsner NEW
Jones T NestleCanadaIoni Bowcher UNQUALIFIED
Kaitlin A CaudySpainBernardo Dominic RENEWAL
Arvin A MaletJapanStephen Shaw NEW
Stacey R GillianAustraliaAnna Fali QUALIFIED
Misaki P MaletArgentinaIoni Bowcher RENEWAL
Isabel K BowleyFranceBernardo Dominic QUALIFIED
Maria X BologniaGermanyOnyama Limba PROPOSAL
Jefferson P NestleFranceElwin Sharvill NEGOTIATION
Chavez C RimIndiaAmy Elsner QUALIFIED
Aruna Y OstroskyArgentinaAnna Fali RENEWAL
Darci J BologniaJapanIoni Bowcher QUALIFIED
Greenwood B MorascaCanadaIoni Bowcher NEGOTIATION
Ivar J GarufiSpainIoni Bowcher RENEWAL
Tony B DoeFranceIvan Magalhaes PROPOSAL
David T FerenczUnited KingdomStephen Shaw RENEWAL
Aika D SlusarskiCanadaElwin Sharvill UNQUALIFIED
Jefferson J RulapaughAustraliaStephen Shaw NEGOTIATION
Mayumi B PaprockiBrazilAsiya Javayant NEW
Murillo F MorascaFranceElwin Sharvill PROPOSAL
Juan H PoquetteBrazilXuxue Feng NEW
Octavia R BologniaUnited KingdomAsiya Javayant QUALIFIED
Sinclair D DarakjyFranceIvan Magalhaes QUALIFIED
Mayumi H DoeGermanyAmy Elsner RENEWAL
Aditya Y DoeJapanOnyama Limba 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>