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
Kadeem E GauchoBrazilBernardo Dominic QUALIFIED
Deepesh B RulapaughJapanOnyama Limba RENEWAL
Leja J TollnerArgentinaIoni Bowcher UNQUALIFIED
Morrow U DarakjyFranceAmy Elsner NEW
Morrow J ButtBrazilIoni Bowcher UNQUALIFIED
Antonio L RimFranceXuxue Feng NEGOTIATION
Jeanfrancois E NickaRussiaAnna Fali RENEWAL
Chavez L WhobreyFranceAsiya Javayant UNQUALIFIED
Cody U KuskoJapanBernardo Dominic PROPOSAL
Jefferson E GlickRussiaBernardo Dominic UNQUALIFIED
Aika Q RutaItalyAsiya Javayant PROPOSAL
Murillo Z ButtAustraliaIoni Bowcher NEGOTIATION
Maisha I KolmetzFranceBernardo Dominic NEW
Izzy H PaprockiArgentinaXuxue Feng NEW
James E PerinItalyAsiya Javayant UNQUALIFIED
Aika A WieserCanadaAmy Elsner RENEWAL
Aika N ShinkoCanadaBernardo Dominic QUALIFIED
Maisha E FerenczArgentinaIvan Magalhaes QUALIFIED
Silvio O GarufiRussiaIoni Bowcher QUALIFIED
Juan Z BologniaBrazilOnyama Limba NEW
Jeanfrancois D FollerAustraliaElwin Sharvill NEW
Juan N InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh T GlickCanadaBernardo Dominic NEW
Chavez J MarrierItalyBernardo Dominic NEGOTIATION
Ivar T CaldareraIndiaAmy Elsner UNQUALIFIED
Mujtaba K CampainIndiaAsiya Javayant NEGOTIATION
Jeanfrancois B VenereArgentinaStephen Shaw QUALIFIED
David Z FigeroaSpainAsiya Javayant RENEWAL
Stacey T MacleadSpainAnna Fali RENEWAL
Munro X DarakjySpainIoni Bowcher NEGOTIATION
James U OstroskyCanadaIoni Bowcher PROPOSAL
Rodrigues K PaprockiIndiaIvan Magalhaes PROPOSAL
Faith U CampainCanadaIoni Bowcher UNQUALIFIED
Maisha L WhobreyFranceAsiya Javayant UNQUALIFIED
Costa J ButtJapanXuxue Feng NEW
Wickens B StockhamIndiaAsiya Javayant UNQUALIFIED
Johnson H IturbideCanadaOnyama Limba PROPOSAL
Rodrigues Q RulapaughAustraliaAmy Elsner QUALIFIED
Aruna A PoquetteSpainIoni Bowcher UNQUALIFIED
Clifford B VenereFranceIvan Magalhaes RENEWAL
Isabel A FlosiCanadaAsiya Javayant RENEWAL
Misaki T FollerAustraliaAsiya Javayant NEW
Ivar M OldroydUnited KingdomOnyama Limba QUALIFIED
David Q MaletAustraliaOnyama Limba UNQUALIFIED
Chavez C BowleyAustraliaElwin Sharvill UNQUALIFIED
Ashley A DilliardIndiaStephen Shaw NEW
Chavez L FigeroaItalyElwin Sharvill NEGOTIATION
Juan Y TollnerRussiaOnyama Limba UNQUALIFIED
James T SergiCanadaIoni Bowcher QUALIFIED
David C MarrierGermanyIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow Y GauchoAustraliaAmy Elsner PROPOSAL
Alejandro I SchemmerCanadaXuxue Feng UNQUALIFIED
Clifford X ShinkoAustraliaElwin Sharvill PROPOSAL
Murillo V MaletArgentinaBernardo Dominic NEGOTIATION
Antonio Y DoeBrazilElwin Sharvill NEW
Silvio H OldroydIndiaBernardo Dominic UNQUALIFIED
Costa N BowleySpainAnna Fali NEGOTIATION
Darci Y RulapaughUnited KingdomAnna Fali PROPOSAL
Stacey J AmigonAustraliaBernardo Dominic UNQUALIFIED
Rodrigues E GarufiArgentinaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin E KuskoSpain2024-04-09Morlong Associates UNQUALIFIED24Anna Fali
1001Francesco U PoquetteBrazil2024-04-10Printing Dimensions QUALIFIED81Anna Fali
1002Johnson D GauchoIndia2024-03-25Truhlar And Truhlar Attys PROPOSAL89Onyama Limba
1003Chavez P MarrierAustralia2024-03-28Commercial Press NEGOTIATION2Bernardo Dominic
1004Misaki B BowleyCanada2024-04-05Printing Dimensions RENEWAL13Ivan Magalhaes
1005Darci P GauchoCanada2024-04-07Buckley Miller Wright NEW99Elwin Sharvill
1006Juan A VocelkaRussia2024-04-11Buckley Miller Wright RENEWAL62Xuxue Feng
1007Leja G GauchoFrance2024-04-09King, Christopher A Esq NEW83Asiya Javayant
1008Stacey A KolmetzJapan2024-03-27Truhlar And Truhlar Attys NEGOTIATION58Anna Fali
1009Tony Y OstroskySpain2024-04-11Rousseaux, Michael Esq QUALIFIED12Asiya Javayant
1010Faith H CaudyItaly2024-03-30Commercial Press UNQUALIFIED11Ivan Magalhaes
1011Aditya D ChuiArgentina2024-03-30Printing Dimensions QUALIFIED19Amy Elsner
1012Adams I CaudyFrance2024-04-04Chapman, Ross E Esq NEGOTIATION89Amy Elsner
1013Maisha U CaldareraUnited Kingdom2024-04-11Rousseaux, Michael Esq UNQUALIFIED88Bernardo Dominic
1014Sinclair T PoquetteItaly2024-04-21Chemel, James L Cpa QUALIFIED92Elwin Sharvill
1015David W FigeroaSpain2024-04-21Dorl, James J Esq PROPOSAL93Bernardo Dominic
1016Claire P VocelkaFrance2024-03-28Truhlar And Truhlar Attys NEGOTIATION13Elwin Sharvill
1017Francesco W KuskoIndia2024-04-07Chemel, James L Cpa NEGOTIATION47Xuxue Feng
1018Juan H NestleCanada2024-04-10Chanay, Jeffrey A Esq NEGOTIATION72Anna Fali
1019Adams I SlusarskiBrazil2024-04-02Chanay, Jeffrey A Esq RENEWAL58Xuxue Feng
1020Maria F BologniaJapan2024-04-15Commercial Press QUALIFIED42Onyama Limba
1021Kadeem A RimGermany2024-04-02King, Christopher A Esq NEGOTIATION59Ivan Magalhaes
1022Chavez O TollnerCanada2024-04-17Commercial Press NEW57Stephen Shaw
1023Aditya O KolmetzItaly2024-03-27Printing Dimensions PROPOSAL85Anna Fali
1024Ashley T GauchoGermany2024-04-13Buckley Miller Wright NEGOTIATION44Anna Fali
1025Ivar M StensethGermany2024-03-28Feiner Bros QUALIFIED1Anna Fali
1026James K GarufiFrance2024-04-12Dorl, James J Esq UNQUALIFIED54Ivan Magalhaes
1027Claire Q AmigonGermany2024-03-27Rousseaux, Michael Esq RENEWAL54Onyama Limba
1028Clifford F BologniaSpain2024-04-01Rousseaux, Michael Esq NEW79Ioni Bowcher
1029Costa P NestleIndia2024-04-08King, Christopher A Esq NEGOTIATION31Asiya Javayant
1030Ricardo Q CampainIndia2024-03-25Rangoni Of Florence QUALIFIED64Stephen Shaw
1031Chavez E CaldareraFrance2024-04-12Commercial Press NEW86Ioni Bowcher
1032Misaki Q NestleSpain2024-03-31Rousseaux, Michael Esq NEGOTIATION97Elwin Sharvill
1033James A GlickAustralia2024-04-20Chemel, James L Cpa RENEWAL19Stephen Shaw
1034Jeanfrancois K DoeArgentina2024-04-21Chapman, Ross E Esq NEW17Xuxue Feng
1035Deepesh W VocelkaArgentina2024-04-06Rousseaux, Michael Esq NEGOTIATION1Asiya Javayant
1036Chavez X StockhamRussia2024-04-09Truhlar And Truhlar Attys PROPOSAL69Ivan Magalhaes
1037Maria Y FlosiJapan2024-04-02Chanay, Jeffrey A Esq PROPOSAL19Anna Fali
1038Morrow O SchemmerItaly2024-04-09Chanay, Jeffrey A Esq NEGOTIATION32Elwin Sharvill
1039Rodrigues Y ButtSpain2024-04-03Rangoni Of Florence NEGOTIATION52Ioni Bowcher
1040Stacey I IturbideRussia2024-04-19Rangoni Of Florence QUALIFIED81Xuxue Feng
1041Octavia C RutaGermany2024-04-04Morlong Associates UNQUALIFIED99Elwin Sharvill
1042Adams N RimBrazil2024-04-16Feltz Printing Service PROPOSAL66Stephen Shaw
1043Aruna T RulapaughGermany2024-04-14Morlong Associates NEGOTIATION97Bernardo Dominic
1044Leja M BologniaUnited Kingdom2024-04-01Chapman, Ross E Esq QUALIFIED97Elwin Sharvill
1045Aditya U CaldareraFrance2024-04-09Chanay, Jeffrey A Esq QUALIFIED79Bernardo Dominic
1046Johnson O VocelkaBrazil2024-04-16Rangoni Of Florence NEGOTIATION75Asiya Javayant
1047Jennifer O FlosiArgentina2024-04-11King, Christopher A Esq UNQUALIFIED7Bernardo Dominic
1048Darci I GarufiFrance2024-03-30Buckley Miller Wright QUALIFIED36Anna Fali
1049Rodrigues F FollerRussia2024-04-11Truhlar And Truhlar Attys NEW37Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jefferson P CaudyArgentinaAmy Elsner NEGOTIATION
Chavez N ShinkoItalyIoni Bowcher QUALIFIED
Silvio K WieserAustraliaIvan Magalhaes RENEWAL
Munro J RulapaughIndiaStephen Shaw RENEWAL
Ashley I NickaSpainStephen Shaw QUALIFIED
Ivar M CaudyBrazilAmy Elsner NEW
Jeanfrancois G CaldareraSpainXuxue Feng RENEWAL
Deepesh P SchemmerGermanyIoni Bowcher QUALIFIED
Mujtaba V DarakjyJapanXuxue Feng PROPOSAL
Antonio G NestleGermanyBernardo Dominic RENEWAL
Kadeem K IturbideBrazilStephen Shaw NEW
Aika F InouyeFranceBernardo Dominic RENEWAL
Kaitlin N CaudySpainXuxue Feng UNQUALIFIED
Ricardo C MarrierFranceAmy Elsner UNQUALIFIED
Leon L RutaIndiaXuxue Feng NEW
Mujtaba S OldroydSpainStephen Shaw NEW
Morrow P CaudyBrazilElwin Sharvill NEGOTIATION
Aruna R MacleadUnited KingdomAnna Fali QUALIFIED
Maria H VenereArgentinaIvan Magalhaes NEGOTIATION
Faith L BowleyAustraliaIvan Magalhaes PROPOSAL
Izzy S FollerFranceAmy Elsner QUALIFIED
Aika F StockhamGermanyIoni Bowcher PROPOSAL
Ricardo Q TollnerArgentinaAnna Fali NEGOTIATION
Tony O AlbaresSpainAnna Fali UNQUALIFIED
Jeanfrancois H OldroydSpainBernardo Dominic QUALIFIED
Maria Q MaletRussiaXuxue Feng UNQUALIFIED
Maisha Q OldroydBrazilIoni Bowcher NEW
Adams J OldroydJapanAmy Elsner QUALIFIED
Alejandro S IturbideFranceStephen Shaw NEW
Deepesh C GauchoRussiaStephen Shaw UNQUALIFIED
Jeanfrancois V SaylorsIndiaAsiya Javayant NEGOTIATION
Maisha P FerenczBrazilElwin Sharvill UNQUALIFIED
Kadeem G SchemmerGermanyAmy Elsner PROPOSAL
Salvatore K RoysterAustraliaAnna Fali PROPOSAL
Stacey X StensethAustraliaBernardo Dominic UNQUALIFIED
Tony L KolmetzIndiaAmy Elsner PROPOSAL
Antonio H RutaGermanyOnyama Limba RENEWAL
Darci O NestleCanadaXuxue Feng NEW
Isabel V TollnerCanadaAmy Elsner QUALIFIED
Kaitlin S NestleSpainXuxue Feng NEGOTIATION
Tony U TollnerCanadaAsiya Javayant QUALIFIED
Silvio C SchemmerCanadaAmy Elsner QUALIFIED
Misaki G DarakjyJapanElwin Sharvill QUALIFIED
Antonio E MaletArgentinaElwin Sharvill NEW
Mujtaba I OstroskyArgentinaBernardo Dominic NEW
Misaki L KuskoFranceElwin Sharvill UNQUALIFIED
David J SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Johnson Z RulapaughSpainXuxue Feng NEGOTIATION
Misaki B PaprockiSpainBernardo Dominic RENEWAL
Ashley V OldroydFranceOnyama Limba RENEWAL
Frozen Columns
Name
Rodrigues Y Tollner
Wickens G Glick
Jennifer L Royster
Cody B Inouye
Julie L Kolmetz
Izzy A Dilliard
Jefferson K Rulapaugh
Maisha S Ruta
Morrow G Slusarski
Ivar O Sergi
Aditya S Figeroa
Ivar U Garufi
Sinclair T Rulapaugh
Smith J Wieser
Silvio L Albares
Kaitlin P Whobrey
Munro A Sergi
Tony J Gaucho
Chavez V Garufi
Francesco D Flosi
Julie O Nestle
Leja G Malet
Juan B Malet
Greenwood O Albares
Greenwood K Maclead
Nicolas K Doe
Deepesh U Ferencz
Jennifer C Bowley
Alejandro I Albares
Deepesh Z Albares
Ivar Y Figeroa
Aruna R Figeroa
Isabel K Ruta
Darci R Ferencz
Mujtaba U Figeroa
Claire C Tollner
Morrow W Ruta
Isabel Q Malet
Jones Z Rim
Alejandro B Albares
Aditya H Campain
Isabel Q Inouye
Octavia P Waycott
Murillo H Garufi
Arvin H Malet
Nicolas A Ostrosky
Salvatore X Figeroa
Faith X Nestle
Arvin T Whobrey
Maisha B Ruta
IdCountryDate
1000Spain2024-03-29
1001Argentina2024-04-09
1002Germany2024-04-17
1003United Kingdom2024-04-16
1004Argentina2024-04-13
1005United Kingdom2024-04-06
1006Spain2024-04-11
1007Italy2024-03-28
1008Australia2024-04-01
1009Australia2024-04-06
1010Germany2024-03-26
1011Russia2024-04-09
1012Russia2024-04-23
1013Brazil2024-04-16
1014Argentina2024-03-31
1015Germany2024-04-15
1016Argentina2024-04-18
1017Canada2024-04-08
1018India2024-04-10
1019Canada2024-04-13
1020India2024-03-25
1021France2024-04-05
1022India2024-04-01
1023Canada2024-04-15
1024Spain2024-04-11
1025Canada2024-03-26
1026United Kingdom2024-04-18
1027Spain2024-04-11
1028Australia2024-04-19
1029Japan2024-04-18
1030Spain2024-04-23
1031Argentina2024-04-10
1032United Kingdom2024-04-04
1033Brazil2024-04-06
1034Italy2024-04-13
1035Russia2024-04-21
1036Russia2024-04-16
1037Spain2024-04-05
1038Brazil2024-03-30
1039United Kingdom2024-03-25
1040India2024-04-11
1041India2024-04-14
1042Russia2024-04-21
1043France2024-04-20
1044Canada2024-04-19
1045Canada2024-04-12
1046Russia2024-04-18
1047Australia2024-04-18
1048United Kingdom2024-04-19
1049Russia2024-04-20

On-Demand Data

NameIdCountryDate
Jennifer V Stockham1000Italy2024-03-25
Nicolas H Glick1001Russia2024-04-13
Aditya W Nicka1002Argentina2024-04-03
Jennifer H Briddick1003Argentina2024-04-17
David S Royster1004India2024-03-29
Emily K Flosi1005Brazil2024-04-16
Chavez G Inouye1006Japan2024-04-07
Maria J Butt1007Argentina2024-04-17
Julie J Wieser1008France2024-04-22
Adams P Briddick1009Italy2024-04-03
Smith J Oldroyd1010Italy2024-03-29
Munro W Briddick1011Japan2024-03-25
Murillo F Briddick1012Argentina2024-04-03
Alejandro F Venere1013India2024-04-21
Kadeem X Kusko1014Russia2024-04-12
Alejandro E Whobrey1015Brazil2024-04-15
Julie O Amigon1016Spain2024-04-07
Leja Q Nestle1017Japan2024-04-05
Claire H Slusarski1018Italy2024-04-05
Morrow S Waycott1019Russia2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna S WhobreyItalyAmy Elsner UNQUALIFIED
Aika G DilliardBrazilAmy Elsner PROPOSAL
Jones Q BologniaGermanyAsiya Javayant NEGOTIATION
Morrow F NestleRussiaAnna Fali QUALIFIED
Leja D KuskoRussiaAmy Elsner UNQUALIFIED
Aika A NestleUnited KingdomAmy Elsner NEW
Clifford H ChuiUnited KingdomIvan Magalhaes NEW
Isabel H GlickBrazilStephen Shaw NEGOTIATION
Jones H PerinArgentinaIoni Bowcher QUALIFIED
Costa Z VenereIndiaBernardo Dominic PROPOSAL
Claire A NickaFranceIvan Magalhaes QUALIFIED
Arvin E GillianUnited KingdomElwin Sharvill PROPOSAL
Aruna Z ShinkoGermanyAnna Fali PROPOSAL
Isabel L GarufiRussiaIoni Bowcher PROPOSAL
Kaitlin M RulapaughGermanyElwin Sharvill NEGOTIATION
Chavez B SaylorsArgentinaOnyama Limba RENEWAL
Costa K BowleyRussiaStephen Shaw PROPOSAL
Morrow A MorascaRussiaOnyama Limba NEGOTIATION
Aditya J StensethSpainIoni Bowcher NEW
Chavez U CaldareraArgentinaIvan Magalhaes NEW
Ivar L GillianCanadaXuxue Feng NEW
Kadeem X RulapaughJapanOnyama Limba NEW
Salvatore Y GauchoAustraliaOnyama Limba QUALIFIED
Sinclair R GarufiGermanyXuxue Feng UNQUALIFIED
Julie W RulapaughBrazilAmy Elsner QUALIFIED
Clifford B KolmetzSpainAnna Fali QUALIFIED
Adams T GarufiRussiaStephen Shaw RENEWAL
Ivar G SlusarskiRussiaOnyama Limba UNQUALIFIED
Deepesh X FigeroaIndiaStephen Shaw QUALIFIED
Munro X InouyeItalyAnna Fali NEGOTIATION
Adams V NickaSpainStephen Shaw QUALIFIED
Ricardo H GlickArgentinaAmy Elsner NEW
Claire I CaudyGermanyBernardo Dominic NEW
Morrow W MaletRussiaAmy Elsner UNQUALIFIED
Leja Z VocelkaIndiaAmy Elsner NEW
Julie R CampainFranceAnna Fali RENEWAL
Costa F MaletFranceAnna Fali RENEWAL
Mujtaba L BriddickArgentinaIvan Magalhaes NEGOTIATION
Aruna X ShinkoArgentinaElwin Sharvill PROPOSAL
Munro C OldroydSpainXuxue Feng 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>