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 I ShinkoIndiaAnna Fali RENEWAL
David W MacleadAustraliaStephen Shaw PROPOSAL
Stacey O NickaIndiaAmy Elsner UNQUALIFIED
Francesco D DarakjyBrazilAsiya Javayant RENEWAL
Kaitlin S MacleadCanadaAmy Elsner RENEWAL
Leon U KuskoAustraliaStephen Shaw QUALIFIED
Julie G CaldareraFranceIoni Bowcher QUALIFIED
Maisha K KuskoUnited KingdomOnyama Limba NEGOTIATION
Claire W GarufiAustraliaAsiya Javayant RENEWAL
Murillo O FlosiAustraliaStephen Shaw QUALIFIED
Deepesh X MaletGermanyIvan Magalhaes PROPOSAL
Faith U FerenczJapanStephen Shaw QUALIFIED
Octavia U GarufiAustraliaIoni Bowcher RENEWAL
Adams R GarufiArgentinaElwin Sharvill PROPOSAL
Maisha H MarrierJapanIoni Bowcher UNQUALIFIED
Ashley B ButtUnited KingdomIvan Magalhaes NEW
Tony Y ButtIndiaStephen Shaw UNQUALIFIED
David F MorascaSpainOnyama Limba QUALIFIED
Mujtaba Y InouyeAustraliaIoni Bowcher UNQUALIFIED
Rodrigues Q MorascaArgentinaStephen Shaw QUALIFIED
Jeanfrancois I SaylorsFranceOnyama Limba NEW
Darci F BriddickArgentinaIoni Bowcher QUALIFIED
Maisha K VenereFranceOnyama Limba QUALIFIED
Mujtaba D TollnerSpainOnyama Limba UNQUALIFIED
Faith K CampainUnited KingdomStephen Shaw QUALIFIED
Clifford T StensethUnited KingdomAnna Fali PROPOSAL
Maisha I FerenczJapanIoni Bowcher PROPOSAL
Rodrigues W WaycottArgentinaBernardo Dominic QUALIFIED
Ivar B AlbaresJapanBernardo Dominic NEW
James S OstroskySpainBernardo Dominic RENEWAL
Emily V KuskoSpainElwin Sharvill RENEWAL
Rodrigues H RulapaughItalyElwin Sharvill RENEWAL
Maria T NestleSpainIoni Bowcher RENEWAL
Antonio T GillianItalyElwin Sharvill PROPOSAL
Deepesh Q BologniaUnited KingdomIoni Bowcher RENEWAL
Aika B ShinkoJapanIvan Magalhaes UNQUALIFIED
Silvio J MaletSpainElwin Sharvill PROPOSAL
Aika B InouyeAustraliaAnna Fali RENEWAL
Greenwood N PaprockiGermanyOnyama Limba UNQUALIFIED
Juan Z RoysterIndiaXuxue Feng NEW
Jones O AmigonJapanBernardo Dominic UNQUALIFIED
Aruna S WhobreyArgentinaOnyama Limba PROPOSAL
Maisha W SchemmerSpainAnna Fali NEW
Jefferson U GauchoFranceAmy Elsner RENEWAL
Faith P FollerItalyElwin Sharvill NEGOTIATION
Nicolas I SlusarskiGermanyAsiya Javayant RENEWAL
Rodrigues E WieserSpainOnyama Limba UNQUALIFIED
Clifford Z KolmetzIndiaStephen Shaw NEW
Ivar T StockhamItalyAnna Fali NEW
Rodrigues L PoquetteFranceXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa F WaycottArgentinaBernardo Dominic NEW
Tony Y DarakjyAustraliaAnna Fali PROPOSAL
Tony H RimItalyBernardo Dominic RENEWAL
Maria R FollerFranceIvan Magalhaes UNQUALIFIED
Morrow C AmigonRussiaIvan Magalhaes QUALIFIED
Darci N GillianSpainAnna Fali QUALIFIED
Antonio J KuskoJapanAsiya Javayant NEW
Jefferson R SergiJapanIoni Bowcher RENEWAL
Chavez C BriddickArgentinaIvan Magalhaes UNQUALIFIED
Jones G InouyeRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja R RulapaughFrance2024-04-06Chapman, Ross E Esq QUALIFIED83Onyama Limba
1001Jeanfrancois N StensethBrazil2024-04-21King, Christopher A Esq QUALIFIED17Onyama Limba
1002Wickens U MacleadArgentina2024-04-23Buckley Miller Wright UNQUALIFIED49Anna Fali
1003David A GlickJapan2024-04-22Chemel, James L Cpa NEW63Onyama Limba
1004Francesco X FlosiJapan2024-04-02Benton, John B Jr PROPOSAL29Amy Elsner
1005Emily H StockhamUnited Kingdom2024-04-07Chanay, Jeffrey A Esq NEGOTIATION29Xuxue Feng
1006David V PaprockiJapan2024-03-31Feiner Bros NEGOTIATION96Anna Fali
1007Rodrigues Y MacleadItaly2024-04-02Feiner Bros NEGOTIATION91Asiya Javayant
1008Nicolas I InouyeBrazil2024-04-03Truhlar And Truhlar Attys RENEWAL39Anna Fali
1009Jefferson E MaletBrazil2024-04-12Chapman, Ross E Esq NEW71Amy Elsner
1010Murillo Z SlusarskiJapan2024-04-12Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1011Francesco J NestleRussia2024-04-08King, Christopher A Esq NEW54Ioni Bowcher
1012Tony U DarakjyJapan2024-04-13Chemel, James L Cpa UNQUALIFIED86Asiya Javayant
1013Aruna N SchemmerSpain2024-04-09Rangoni Of Florence UNQUALIFIED15Stephen Shaw
1014Mujtaba Y WhobreyItaly2024-04-22Chemel, James L Cpa RENEWAL71Onyama Limba
1015Salvatore R CaldareraGermany2024-04-20Benton, John B Jr QUALIFIED70Xuxue Feng
1016Mayumi D KuskoAustralia2024-04-22Morlong Associates RENEWAL42Stephen Shaw
1017Jefferson G PerinGermany2024-04-09Feltz Printing Service RENEWAL10Bernardo Dominic
1018Ashley F StensethGermany2024-04-03Rangoni Of Florence NEW94Onyama Limba
1019Leja G StensethAustralia2024-04-19Chapman, Ross E Esq RENEWAL39Ivan Magalhaes
1020Smith H IturbideBrazil2024-04-12Feiner Bros PROPOSAL20Asiya Javayant
1021Darci U BriddickRussia2024-04-10Dorl, James J Esq NEW39Anna Fali
1022Alejandro U PoquetteSpain2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED72Onyama Limba
1023Jennifer L VocelkaFrance2024-04-02Chemel, James L Cpa NEW3Bernardo Dominic
1024Claire O KuskoFrance2024-04-20Benton, John B Jr UNQUALIFIED10Stephen Shaw
1025Deepesh M TollnerRussia2024-04-07Rousseaux, Michael Esq PROPOSAL64Ivan Magalhaes
1026Julie J WhobreyUnited Kingdom2024-04-14Commercial Press QUALIFIED92Xuxue Feng
1027Silvio S GauchoItaly2024-04-19Rousseaux, Michael Esq NEGOTIATION92Ioni Bowcher
1028Smith Y FerenczIndia2024-04-09Benton, John B Jr NEW70Stephen Shaw
1029Morrow J RoysterSpain2024-04-20Rangoni Of Florence NEGOTIATION52Onyama Limba
1030Octavia N GlickIndia2024-04-18Chemel, James L Cpa NEW71Asiya Javayant
1031Morrow K FigeroaFrance2024-04-20Truhlar And Truhlar Attys RENEWAL84Elwin Sharvill
1032Mujtaba X StensethItaly2024-04-02Buckley Miller Wright QUALIFIED21Ivan Magalhaes
1033Morrow U NickaUnited Kingdom2024-04-22Rousseaux, Michael Esq PROPOSAL61Xuxue Feng
1034Octavia L NickaIndia2024-04-19Morlong Associates QUALIFIED15Stephen Shaw
1035Wickens A RutaAustralia2024-04-21Buckley Miller Wright RENEWAL23Asiya Javayant
1036Leja K GillianFrance2024-04-20Printing Dimensions UNQUALIFIED7Amy Elsner
1037Julie H DilliardArgentina2024-04-25King, Christopher A Esq RENEWAL58Bernardo Dominic
1038Aika J SaylorsItaly2024-03-28Feiner Bros RENEWAL14Onyama Limba
1039Mayumi O SlusarskiSpain2024-04-19Rangoni Of Florence NEGOTIATION64Ivan Magalhaes
1040Claire U NickaItaly2024-04-20Commercial Press NEGOTIATION21Stephen Shaw
1041Izzy H VenereCanada2024-04-11Printing Dimensions NEW10Xuxue Feng
1042Isabel M NickaSpain2024-04-13Chemel, James L Cpa NEW33Amy Elsner
1043Johnson D MaletJapan2024-04-01Buckley Miller Wright PROPOSAL18Elwin Sharvill
1044Emily V ChuiItaly2024-04-11King, Christopher A Esq NEGOTIATION48Ioni Bowcher
1045Silvio M RoysterItaly2024-04-24Benton, John B Jr UNQUALIFIED21Xuxue Feng
1046Arvin C AlbaresSpain2024-04-12Benton, John B Jr UNQUALIFIED84Elwin Sharvill
1047Juan C AlbaresItaly2024-04-21Benton, John B Jr PROPOSAL83Onyama Limba
1048Leon P WhobreyIndia2024-04-08Chemel, James L Cpa QUALIFIED71Stephen Shaw
1049Kaitlin W ButtUnited Kingdom2024-04-10Printing Dimensions PROPOSAL6Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Johnson T SchemmerSpainStephen Shaw NEGOTIATION
Isabel S CampainItalyAsiya Javayant NEW
Aika G OstroskyCanadaStephen Shaw NEW
Johnson E FigeroaBrazilAsiya Javayant RENEWAL
Jefferson E MarrierArgentinaIoni Bowcher NEW
James E MaletIndiaStephen Shaw NEW
Costa X NickaBrazilAmy Elsner PROPOSAL
Julie A CampainUnited KingdomElwin Sharvill QUALIFIED
Francesco S GauchoAustraliaIoni Bowcher NEGOTIATION
Juan M WaycottSpainBernardo Dominic UNQUALIFIED
Murillo X AlbaresItalyIoni Bowcher NEW
Stacey C OstroskyIndiaIoni Bowcher PROPOSAL
Ricardo V StockhamRussiaAmy Elsner NEW
Kaitlin I BowleySpainXuxue Feng UNQUALIFIED
Morrow J AmigonJapanXuxue Feng QUALIFIED
Ashley R FigeroaItalyIvan Magalhaes UNQUALIFIED
Wickens Y SergiSpainIvan Magalhaes NEW
Mujtaba Z WhobreyIndiaXuxue Feng PROPOSAL
Adams M DoeCanadaIvan Magalhaes PROPOSAL
Leon N MaletJapanIoni Bowcher NEW
Ivar R MacleadJapanAsiya Javayant PROPOSAL
Claire D NestleFranceIoni Bowcher RENEWAL
Jennifer W RimRussiaStephen Shaw RENEWAL
Costa X PoquetteUnited KingdomIvan Magalhaes RENEWAL
Murillo H BologniaFranceOnyama Limba QUALIFIED
Jeanfrancois S RoysterSpainXuxue Feng NEW
Aditya S MorascaBrazilAnna Fali PROPOSAL
Chavez W WaycottJapanStephen Shaw PROPOSAL
Tony Y AlbaresUnited KingdomXuxue Feng NEW
Aika D KuskoCanadaXuxue Feng QUALIFIED
Alejandro Q RoysterItalyIoni Bowcher RENEWAL
Maisha M GauchoIndiaBernardo Dominic QUALIFIED
Claire A StockhamCanadaIvan Magalhaes UNQUALIFIED
Adams V MarrierJapanAmy Elsner NEW
Francesco H CampainItalyIoni Bowcher RENEWAL
Aruna X CampainAustraliaIoni Bowcher NEGOTIATION
Greenwood V GlickFranceOnyama Limba NEW
Izzy S NickaArgentinaIoni Bowcher UNQUALIFIED
Mujtaba N MaletGermanyAsiya Javayant NEGOTIATION
Wickens A WieserGermanyAmy Elsner NEW
Arvin N GillianRussiaIvan Magalhaes PROPOSAL
Kadeem G FollerArgentinaOnyama Limba PROPOSAL
Johnson O VenereGermanyBernardo Dominic QUALIFIED
Maria M WaycottSpainStephen Shaw QUALIFIED
Aika D RimSpainAsiya Javayant NEW
Jefferson A TollnerCanadaXuxue Feng QUALIFIED
Ivar F BowleyIndiaAnna Fali UNQUALIFIED
Adams U ChuiRussiaAnna Fali NEW
Isabel P GauchoFranceBernardo Dominic NEGOTIATION
Silvio K CaldareraRussiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Nicolas P Maclead
Faith F Foller
Murillo V Doe
Nicolas H Bowley
Wickens X Ostrosky
Kadeem N Gaucho
Francesco E Albares
Aruna E Tollner
Ivar L Figeroa
Costa W Venere
Smith N Iturbide
Wickens K Morasca
Morrow N Slusarski
Murillo F Darakjy
Clifford T Campain
Aika L Dilliard
Cody C Tollner
Deepesh T Caudy
Clifford F Albares
Maisha Q Marrier
Octavia L Nestle
Kaitlin B Morasca
Arvin Q Dilliard
Aruna X Caudy
Alejandro O Albares
Izzy Y Schemmer
Cody W Caldarera
Izzy B Sergi
Aditya S Butt
Greenwood M Wieser
Cody E Rim
Murillo Y Inouye
Kadeem J Bolognia
Wickens D Saylors
Chavez D Darakjy
Isabel Z Ruta
Cody L Perin
Faith J Chui
Tony Z Darakjy
Costa J Wieser
Chavez N Rulapaugh
Leon C Butt
Cody I Foller
Rodrigues I Inouye
Jefferson M Gillian
Alejandro T Dilliard
Deepesh H Malet
Jefferson S Ferencz
James W Briddick
Francesco U Saylors
IdCountryDate
1000India2024-04-07
1001United Kingdom2024-04-21
1002United Kingdom2024-04-12
1003Canada2024-03-30
1004France2024-04-01
1005Russia2024-04-11
1006India2024-04-14
1007France2024-04-04
1008Russia2024-04-13
1009Italy2024-04-09
1010France2024-04-26
1011Argentina2024-03-31
1012Australia2024-04-01
1013Australia2024-04-08
1014France2024-03-29
1015Italy2024-04-26
1016United Kingdom2024-03-29
1017Canada2024-03-31
1018Australia2024-03-29
1019Germany2024-04-02
1020Germany2024-04-05
1021Canada2024-04-12
1022Japan2024-04-15
1023France2024-04-03
1024United Kingdom2024-04-07
1025United Kingdom2024-03-31
1026India2024-04-03
1027Brazil2024-03-28
1028Italy2024-04-01
1029Japan2024-04-10
1030United Kingdom2024-04-04
1031Spain2024-04-14
1032Australia2024-04-16
1033Italy2024-04-22
1034Spain2024-04-03
1035India2024-04-20
1036Brazil2024-04-04
1037Italy2024-04-12
1038Argentina2024-04-12
1039Spain2024-04-15
1040Germany2024-04-20
1041Australia2024-04-22
1042Italy2024-04-07
1043Italy2024-03-30
1044Brazil2024-04-26
1045Australia2024-04-08
1046India2024-04-14
1047Brazil2024-04-14
1048United Kingdom2024-03-30
1049Russia2024-04-16

On-Demand Data

NameIdCountryDate
Isabel G Campain1000Brazil2024-04-01
Jennifer C Marrier1001Brazil2024-04-10
Ashley U Whobrey1002France2024-04-07
Julie P Poquette1003Australia2024-04-07
Salvatore U Inouye1004Spain2024-04-05
James H Kusko1005Italy2024-04-02
Sinclair E Ruta1006India2024-04-09
Jones M Marrier1007Germany2024-03-28
Munro J Oldroyd1008Japan2024-04-03
Antonio R Bolognia1009Canada2024-04-03
Jeanfrancois Q Amigon1010Argentina2024-04-08
Adams H Wieser1011Spain2024-04-20
Jefferson L Slusarski1012United Kingdom2024-04-15
Adams E Slusarski1013Russia2024-04-18
Salvatore O Maclead1014France2024-04-17
Chavez F Nestle1015Russia2024-04-03
David H Iturbide1016Canada2024-04-25
Isabel D Gillian1017Germany2024-04-19
Ivar X Campain1018Italy2024-04-19
Francesco Z Perin1019Brazil2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore F WhobreyUnited KingdomStephen Shaw NEW
Tony U BriddickArgentinaAnna Fali RENEWAL
Aruna K RoysterUnited KingdomXuxue Feng RENEWAL
Smith Z FlosiArgentinaIoni Bowcher QUALIFIED
Deepesh U BologniaUnited KingdomXuxue Feng NEGOTIATION
Misaki P KuskoBrazilStephen Shaw RENEWAL
Aditya P PaprockiItalyAmy Elsner NEW
Ricardo E NestleSpainOnyama Limba UNQUALIFIED
Izzy Q PoquetteFranceBernardo Dominic NEW
Julie I ButtAustraliaBernardo Dominic NEW
Isabel N MorascaIndiaIoni Bowcher NEW
Jennifer C KuskoSpainAsiya Javayant NEGOTIATION
Jones K GarufiGermanyOnyama Limba RENEWAL
Rodrigues J MaletCanadaIoni Bowcher NEW
Izzy V RutaBrazilAnna Fali RENEWAL
Murillo P OldroydIndiaStephen Shaw NEW
Stacey X BowleyJapanStephen Shaw RENEWAL
Faith Q KuskoSpainAnna Fali PROPOSAL
Alejandro U OldroydGermanyAnna Fali PROPOSAL
Faith Z MaletCanadaAmy Elsner RENEWAL
Jefferson O FerenczUnited KingdomXuxue Feng QUALIFIED
Rodrigues I GarufiItalyAmy Elsner RENEWAL
Isabel W PaprockiItalyAmy Elsner UNQUALIFIED
Adams O PerinUnited KingdomIoni Bowcher PROPOSAL
Ashley H MaletUnited KingdomIvan Magalhaes RENEWAL
Claire F GillianCanadaAnna Fali PROPOSAL
Jeanfrancois Y CaldareraCanadaStephen Shaw NEW
Silvio I AlbaresFranceAmy Elsner NEW
Adams H GillianGermanyStephen Shaw NEW
Leja D KuskoArgentinaElwin Sharvill UNQUALIFIED
Ricardo N KolmetzRussiaBernardo Dominic QUALIFIED
Julie A MaletJapanAnna Fali UNQUALIFIED
Jones Y RutaBrazilXuxue Feng QUALIFIED
Octavia A CampainIndiaIoni Bowcher RENEWAL
David F StensethJapanAnna Fali UNQUALIFIED
Tony A CampainArgentinaAmy Elsner NEGOTIATION
Antonio P WieserGermanyIoni Bowcher NEW
Salvatore A NickaAustraliaAnna Fali NEW
Jennifer B GauchoUnited KingdomBernardo Dominic NEW
Faith J DoeArgentinaIvan Magalhaes RENEWAL

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