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
Arvin U AmigonCanadaIoni Bowcher NEGOTIATION
Ivar U FigeroaAustraliaBernardo Dominic UNQUALIFIED
Adams O MaletCanadaStephen Shaw NEGOTIATION
Wickens C PaprockiSpainIoni Bowcher QUALIFIED
Maria S TollnerUnited KingdomOnyama Limba QUALIFIED
Jennifer O InouyeCanadaIvan Magalhaes UNQUALIFIED
Ivar J CampainGermanyOnyama Limba NEW
Ashley E RoysterAustraliaOnyama Limba PROPOSAL
Julie U MorascaGermanyBernardo Dominic NEW
Emily Y BriddickBrazilIoni Bowcher NEGOTIATION
Octavia K DarakjyArgentinaBernardo Dominic NEW
Arvin P MacleadGermanyIoni Bowcher NEW
Aditya F MaletCanadaIvan Magalhaes NEW
Costa B NickaUnited KingdomAmy Elsner RENEWAL
Izzy H WaycottIndiaIvan Magalhaes UNQUALIFIED
Adams U GarufiItalyXuxue Feng PROPOSAL
Silvio F PoquetteGermanyBernardo Dominic RENEWAL
Morrow E VenereCanadaAsiya Javayant NEW
Octavia N CaudyUnited KingdomOnyama Limba RENEWAL
Morrow Q GillianIndiaElwin Sharvill QUALIFIED
Darci I GarufiFranceBernardo Dominic NEGOTIATION
Morrow N StensethAustraliaElwin Sharvill NEGOTIATION
Darci U WaycottBrazilIoni Bowcher NEGOTIATION
Deepesh Z MaletUnited KingdomElwin Sharvill NEGOTIATION
Stacey R RoysterItalyAmy Elsner PROPOSAL
Francesco D BriddickIndiaAnna Fali RENEWAL
Jones M StockhamArgentinaOnyama Limba QUALIFIED
Maria N NestleIndiaElwin Sharvill NEGOTIATION
Wickens M RutaSpainXuxue Feng PROPOSAL
Adams Q GauchoAustraliaBernardo Dominic QUALIFIED
Antonio O GarufiIndiaIvan Magalhaes QUALIFIED
Izzy R KuskoArgentinaElwin Sharvill QUALIFIED
Maria G SaylorsItalyXuxue Feng UNQUALIFIED
Jennifer V CampainFranceElwin Sharvill NEGOTIATION
Deepesh Z VocelkaJapanAmy Elsner NEW
Aruna W GarufiIndiaStephen Shaw NEGOTIATION
Leja P MorascaAustraliaBernardo Dominic NEGOTIATION
Faith B IturbideRussiaBernardo Dominic PROPOSAL
Leja W RutaBrazilOnyama Limba NEW
Rodrigues U MaletUnited KingdomAmy Elsner NEW
Izzy X RimGermanyAsiya Javayant QUALIFIED
Kadeem T FerenczAustraliaOnyama Limba QUALIFIED
Greenwood P OldroydAustraliaXuxue Feng NEW
James T StensethCanadaAsiya Javayant QUALIFIED
Faith Q ChuiIndiaAsiya Javayant QUALIFIED
Munro J KuskoIndiaOnyama Limba NEGOTIATION
Munro A KolmetzSpainIvan Magalhaes NEGOTIATION
Ashley K PerinRussiaAmy Elsner PROPOSAL
Jefferson K OldroydSpainIoni Bowcher UNQUALIFIED
Clifford W RimRussiaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois E FollerBrazilElwin Sharvill UNQUALIFIED
Ashley P GlickCanadaAsiya Javayant PROPOSAL
Clifford G StensethGermanyXuxue Feng QUALIFIED
Leja M IturbideAustraliaIoni Bowcher PROPOSAL
Leja A RoysterSpainAsiya Javayant UNQUALIFIED
Murillo R SlusarskiArgentinaXuxue Feng PROPOSAL
James P WhobreyItalyXuxue Feng NEW
Costa N GlickArgentinaAnna Fali RENEWAL
Adams O CaldareraIndiaBernardo Dominic NEW
James U CaldareraCanadaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin H TollnerRussia2024-04-02King, Christopher A Esq NEGOTIATION28Ioni Bowcher
1001Maisha Y MaletRussia2024-04-02Dorl, James J Esq NEW41Elwin Sharvill
1002Morrow P WhobreyJapan2024-04-09Chemel, James L Cpa NEGOTIATION87Xuxue Feng
1003Aruna L DoeItaly2024-04-26Rangoni Of Florence QUALIFIED10Amy Elsner
1004Leon Y DarakjySpain2024-04-13Commercial Press NEW80Ivan Magalhaes
1005Murillo I WieserSpain2024-04-03Feltz Printing Service UNQUALIFIED61Asiya Javayant
1006Cody J GauchoSpain2024-04-21Chanay, Jeffrey A Esq NEW54Asiya Javayant
1007Costa O BologniaArgentina2024-04-25Chanay, Jeffrey A Esq PROPOSAL17Bernardo Dominic
1008Misaki O WieserFrance2024-04-10Dorl, James J Esq NEGOTIATION73Elwin Sharvill
1009Mujtaba T OstroskyBrazil2024-04-01King, Christopher A Esq RENEWAL16Elwin Sharvill
1010Aika W FerenczFrance2024-04-10Chemel, James L Cpa UNQUALIFIED8Amy Elsner
1011David S FollerSpain2024-04-01King, Christopher A Esq UNQUALIFIED8Elwin Sharvill
1012Francesco N FigeroaGermany2024-04-09Chapman, Ross E Esq NEW35Asiya Javayant
1013Stacey X GauchoJapan2024-04-05Rangoni Of Florence NEGOTIATION61Elwin Sharvill
1014Adams L AlbaresFrance2024-04-14Rousseaux, Michael Esq UNQUALIFIED57Bernardo Dominic
1015Maria D GlickFrance2024-04-05Feiner Bros PROPOSAL89Stephen Shaw
1016Ivar L GillianIndia2024-04-08Rangoni Of Florence NEW97Bernardo Dominic
1017Chavez R MaletUnited Kingdom2024-04-04Dorl, James J Esq NEW64Asiya Javayant
1018Mujtaba H MaletFrance2024-04-25Chemel, James L Cpa QUALIFIED56Ioni Bowcher
1019Nicolas D GauchoBrazil2024-04-15Chemel, James L Cpa QUALIFIED46Onyama Limba
1020Aditya I GarufiBrazil2024-04-17Morlong Associates QUALIFIED73Onyama Limba
1021Izzy N RutaFrance2024-04-10Chapman, Ross E Esq UNQUALIFIED25Ioni Bowcher
1022Faith L RimArgentina2024-04-24Buckley Miller Wright PROPOSAL28Amy Elsner
1023James L AlbaresArgentina2024-03-29Commercial Press QUALIFIED51Asiya Javayant
1024Julie R ChuiItaly2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED50Ioni Bowcher
1025James G StockhamJapan2024-04-05Chemel, James L Cpa RENEWAL41Anna Fali
1026Wickens E GillianItaly2024-04-15Chapman, Ross E Esq QUALIFIED67Onyama Limba
1027Costa S IturbideFrance2024-04-13King, Christopher A Esq QUALIFIED28Anna Fali
1028Arvin O GillianCanada2024-04-26King, Christopher A Esq RENEWAL78Elwin Sharvill
1029Munro B GlickBrazil2024-04-05Dorl, James J Esq NEGOTIATION49Stephen Shaw
1030Aruna M MorascaSpain2024-04-21Chanay, Jeffrey A Esq NEW5Bernardo Dominic
1031Clifford V OstroskyRussia2024-04-09Buckley Miller Wright PROPOSAL66Bernardo Dominic
1032Maisha Q InouyeJapan2024-04-06Chanay, Jeffrey A Esq NEW97Ivan Magalhaes
1033Alejandro A FlosiUnited Kingdom2024-04-19Dorl, James J Esq NEW18Amy Elsner
1034Sinclair O DoeItaly2024-03-28Chanay, Jeffrey A Esq NEGOTIATION39Elwin Sharvill
1035Mujtaba S BowleySpain2024-04-09Rousseaux, Michael Esq NEGOTIATION6Elwin Sharvill
1036Murillo Y GauchoUnited Kingdom2024-04-08Chemel, James L Cpa QUALIFIED14Stephen Shaw
1037Juan D OldroydSpain2024-04-02Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1038Maria I FollerItaly2024-04-13Feltz Printing Service RENEWAL50Onyama Limba
1039Juan W AlbaresFrance2024-03-28Rousseaux, Michael Esq RENEWAL85Ivan Magalhaes
1040Smith U AmigonBrazil2024-04-17Benton, John B Jr RENEWAL63Onyama Limba
1041Cody T BologniaRussia2024-04-14Chemel, James L Cpa NEW5Ioni Bowcher
1042Alejandro C CaudyUnited Kingdom2024-03-31Chemel, James L Cpa NEGOTIATION60Bernardo Dominic
1043Leon U OldroydArgentina2024-04-03Feiner Bros NEGOTIATION32Asiya Javayant
1044Munro U RulapaughItaly2024-03-29Morlong Associates RENEWAL79Elwin Sharvill
1045Adams L WieserJapan2024-04-21Truhlar And Truhlar Attys NEGOTIATION5Onyama Limba
1046Darci E BriddickSpain2024-04-12Buckley Miller Wright NEGOTIATION18Anna Fali
1047Munro O BologniaItaly2024-04-13Buckley Miller Wright RENEWAL69Bernardo Dominic
1048Morrow A BologniaBrazil2024-04-12Morlong Associates NEGOTIATION76Anna Fali
1049Darci L InouyeUnited Kingdom2024-04-10Truhlar And Truhlar Attys NEGOTIATION63Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Silvio K WaycottItalyElwin Sharvill RENEWAL
Emily L VenereItalyElwin Sharvill NEW
Aika S MarrierRussiaBernardo Dominic NEW
Francesco N MaletFranceBernardo Dominic QUALIFIED
Ivar B FigeroaIndiaXuxue Feng NEW
David S BowleySpainAmy Elsner QUALIFIED
Antonio Q RutaUnited KingdomBernardo Dominic NEW
Smith S ShinkoAustraliaAsiya Javayant UNQUALIFIED
Julie P BowleyRussiaAnna Fali NEW
Misaki C DarakjyCanadaAmy Elsner NEW
Stacey A PerinSpainAsiya Javayant QUALIFIED
Silvio S MacleadCanadaIoni Bowcher NEW
Jones U CaudySpainAsiya Javayant NEGOTIATION
David R AmigonSpainElwin Sharvill NEW
Jennifer J OldroydRussiaOnyama Limba QUALIFIED
Costa F CaldareraGermanyOnyama Limba UNQUALIFIED
Octavia R RoysterSpainElwin Sharvill PROPOSAL
Maria L MaletIndiaAnna Fali PROPOSAL
Jones Q IturbideUnited KingdomIvan Magalhaes NEW
Johnson Q GlickUnited KingdomStephen Shaw NEW
Ashley F RoysterUnited KingdomStephen Shaw UNQUALIFIED
Sinclair D NickaAustraliaAnna Fali QUALIFIED
Ricardo B IturbideGermanyStephen Shaw PROPOSAL
Juan A AlbaresRussiaAmy Elsner NEGOTIATION
Mayumi W MorascaItalyStephen Shaw RENEWAL
Munro Y BriddickBrazilBernardo Dominic NEW
David F FigeroaSpainAnna Fali NEW
Smith W IturbideItalyElwin Sharvill QUALIFIED
Faith X BologniaCanadaIoni Bowcher UNQUALIFIED
Deepesh T PerinUnited KingdomStephen Shaw UNQUALIFIED
Octavia D RutaArgentinaAmy Elsner UNQUALIFIED
Sinclair U BowleyIndiaBernardo Dominic NEGOTIATION
Darci T SaylorsSpainBernardo Dominic RENEWAL
Ivar C GillianSpainIoni Bowcher NEGOTIATION
Rodrigues W ButtArgentinaStephen Shaw QUALIFIED
Mujtaba S BriddickIndiaAnna Fali QUALIFIED
Kadeem I SergiFranceAmy Elsner QUALIFIED
Deepesh Q CampainFranceIvan Magalhaes QUALIFIED
Misaki G DoeCanadaIvan Magalhaes QUALIFIED
Juan H FerenczItalyXuxue Feng NEW
Rodrigues S SchemmerIndiaIvan Magalhaes QUALIFIED
Juan L GlickAustraliaStephen Shaw RENEWAL
Alejandro N DilliardSpainIoni Bowcher RENEWAL
Adams M FlosiRussiaIoni Bowcher RENEWAL
Chavez F MarrierRussiaElwin Sharvill RENEWAL
Arvin R MorascaAustraliaXuxue Feng NEW
Chavez V FollerUnited KingdomBernardo Dominic NEGOTIATION
Nicolas M ButtBrazilXuxue Feng UNQUALIFIED
Ricardo V ButtRussiaAnna Fali UNQUALIFIED
Maria B MorascaSpainBernardo Dominic NEGOTIATION
Frozen Columns
Name
Izzy H Nicka
Adams V Rulapaugh
Salvatore N Foller
Emily C Caldarera
Rodrigues R Royster
Maisha V Bowley
Deepesh T Wieser
Deepesh M Malet
Misaki O Maclead
Kaitlin X Malet
Octavia H Ostrosky
Tony R Nestle
Ivar V Ferencz
Rodrigues J Flosi
Adams G Ostrosky
Clifford Z Malet
Octavia W Glick
James W Saylors
Octavia Y Foller
Misaki U Rulapaugh
Aditya L Figeroa
Nicolas M Saylors
Nicolas D Gillian
Faith W Kusko
Ivar K Kusko
Leja N Vocelka
Johnson Q Caudy
Ricardo M Darakjy
Izzy P Iturbide
Salvatore Q Foller
Smith I Whobrey
Leja S Ruta
Arvin A Amigon
Izzy Q Malet
Nicolas W Gillian
Darci I Slusarski
Aruna O Tollner
Leja S Maclead
Jones P Malet
Aditya E Morasca
Jeanfrancois P Paprocki
Nicolas F Figeroa
Claire S Doe
Jones I Tollner
Ricardo K Stockham
Jefferson X Poquette
Stacey S Gillian
Juan B Nicka
Morrow O Nicka
Tony H Paprocki
IdCountryDate
1000Australia2024-04-18
1001Brazil2024-04-15
1002Italy2024-04-16
1003Brazil2024-04-18
1004United Kingdom2024-04-10
1005Russia2024-04-16
1006Italy2024-04-07
1007Australia2024-04-06
1008Spain2024-04-22
1009Spain2024-04-08
1010Italy2024-04-08
1011Italy2024-04-13
1012Argentina2024-04-09
1013Argentina2024-04-19
1014France2024-04-12
1015Argentina2024-04-22
1016Australia2024-04-16
1017Argentina2024-04-15
1018Australia2024-04-02
1019France2024-04-19
1020Australia2024-04-08
1021India2024-03-31
1022Canada2024-04-04
1023Japan2024-03-28
1024Russia2024-04-14
1025Russia2024-04-10
1026United Kingdom2024-04-11
1027Argentina2024-04-09
1028Japan2024-04-04
1029United Kingdom2024-04-09
1030France2024-04-06
1031Argentina2024-04-01
1032Italy2024-04-14
1033Canada2024-04-19
1034Australia2024-04-11
1035Spain2024-04-20
1036Brazil2024-04-09
1037Australia2024-04-02
1038Italy2024-04-04
1039Australia2024-04-02
1040India2024-04-22
1041Australia2024-04-09
1042United Kingdom2024-04-22
1043Russia2024-04-24
1044Australia2024-04-11
1045Spain2024-04-15
1046Japan2024-04-16
1047Russia2024-04-18
1048Japan2024-04-13
1049Spain2024-03-28

On-Demand Data

NameIdCountryDate
Munro Z Nicka1000United Kingdom2024-04-21
Costa J Gillian1001Argentina2024-03-31
Jennifer Z Vocelka1002Italy2024-04-18
Aditya I Oldroyd1003Brazil2024-04-10
Nicolas Y Saylors1004Australia2024-04-11
Faith X Stockham1005India2024-04-18
Johnson L Albares1006Italy2024-04-18
Leon L Venere1007United Kingdom2024-04-15
Smith P Saylors1008Brazil2024-04-19
Smith F Ferencz1009Australia2024-04-19
Deepesh T Venere1010Japan2024-04-12
Faith D Chui1011United Kingdom2024-04-26
Kaitlin E Caudy1012Italy2024-04-20
James B Kusko1013Argentina2024-04-09
Greenwood T Foller1014Italy2024-04-23
Jeanfrancois J Ruta1015Germany2024-04-08
Antonio E Stockham1016Brazil2024-04-18
Izzy V Rulapaugh1017Japan2024-04-01
Claire A Campain1018Germany2024-04-17
Arvin N Perin1019France2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika V PerinItalyBernardo Dominic RENEWAL
Izzy F IturbideArgentinaBernardo Dominic NEW
Leon C MacleadCanadaStephen Shaw PROPOSAL
Clifford Y AmigonFranceIvan Magalhaes NEW
Izzy Z StockhamIndiaAmy Elsner NEGOTIATION
Isabel O MorascaGermanyAmy Elsner RENEWAL
Jones J WhobreyArgentinaAsiya Javayant NEGOTIATION
Octavia P StockhamIndiaIoni Bowcher NEGOTIATION
Aditya E DoeItalyAnna Fali QUALIFIED
Aditya H RoysterRussiaStephen Shaw RENEWAL
Deepesh Z PoquetteGermanyBernardo Dominic RENEWAL
Alejandro J AmigonCanadaIvan Magalhaes QUALIFIED
Aditya Q OstroskyBrazilXuxue Feng UNQUALIFIED
Tony N WieserArgentinaAsiya Javayant NEGOTIATION
Kadeem P VenereBrazilAmy Elsner RENEWAL
Silvio N TollnerFranceXuxue Feng RENEWAL
Smith H MaletRussiaAmy Elsner QUALIFIED
Faith J RulapaughCanadaBernardo Dominic PROPOSAL
Misaki D PerinArgentinaStephen Shaw QUALIFIED
Izzy M RimItalyStephen Shaw NEGOTIATION
Rodrigues B MaletUnited KingdomAmy Elsner UNQUALIFIED
Leja H RimIndiaAnna Fali PROPOSAL
Costa E FlosiCanadaIvan Magalhaes UNQUALIFIED
Antonio J OldroydUnited KingdomAmy Elsner QUALIFIED
Mujtaba M SlusarskiItalyAmy Elsner NEGOTIATION
Leon B GillianItalyAsiya Javayant NEGOTIATION
Tony D DilliardItalyElwin Sharvill QUALIFIED
Cody K MorascaIndiaOnyama Limba PROPOSAL
Chavez J SergiIndiaXuxue Feng NEGOTIATION
Misaki T BologniaItalyOnyama Limba PROPOSAL
Leon O BriddickBrazilOnyama Limba NEGOTIATION
Alejandro K KolmetzItalyAnna Fali RENEWAL
Francesco I OldroydBrazilXuxue Feng NEW
Izzy M CaudyRussiaBernardo Dominic PROPOSAL
Stacey J CampainArgentinaStephen Shaw NEGOTIATION
Maisha I SergiFranceBernardo Dominic UNQUALIFIED
Jennifer A TollnerAustraliaIvan Magalhaes RENEWAL
Cody A NestleIndiaXuxue Feng RENEWAL
Alejandro X DilliardSpainStephen Shaw NEW
Ashley D DarakjyIndiaBernardo 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>