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
Aika N AmigonFranceElwin Sharvill NEGOTIATION
Mayumi Z SaylorsAustraliaAmy Elsner QUALIFIED
Maisha L VocelkaGermanyAnna Fali RENEWAL
Wickens W GauchoUnited KingdomXuxue Feng RENEWAL
Alejandro W GarufiAustraliaAmy Elsner QUALIFIED
Leja H MaletArgentinaAsiya Javayant QUALIFIED
Leja Z ButtGermanyIvan Magalhaes NEW
Nicolas O SchemmerAustraliaOnyama Limba PROPOSAL
Arvin O OldroydGermanyOnyama Limba UNQUALIFIED
Emily P TollnerAustraliaAsiya Javayant UNQUALIFIED
Juan S FollerSpainIoni Bowcher RENEWAL
David R AmigonBrazilStephen Shaw QUALIFIED
Salvatore F CampainJapanAnna Fali NEW
Wickens S BriddickItalyElwin Sharvill NEW
Cody J MaletBrazilAsiya Javayant UNQUALIFIED
Mujtaba C VenereItalyElwin Sharvill NEW
Claire C BowleyJapanIoni Bowcher QUALIFIED
Salvatore J BowleyItalyAnna Fali UNQUALIFIED
Francesco A RulapaughIndiaOnyama Limba PROPOSAL
Alejandro C TollnerSpainElwin Sharvill NEGOTIATION
Jones G CampainUnited KingdomAmy Elsner UNQUALIFIED
Salvatore T CaldareraItalyXuxue Feng UNQUALIFIED
Kadeem N WaycottGermanyIoni Bowcher PROPOSAL
Aika Q WhobreyItalyElwin Sharvill PROPOSAL
Ricardo M RutaUnited KingdomStephen Shaw NEGOTIATION
Maria M TollnerUnited KingdomXuxue Feng RENEWAL
Cody D OldroydRussiaAnna Fali RENEWAL
Leja M OldroydGermanyIvan Magalhaes NEW
Morrow W IturbideRussiaBernardo Dominic NEGOTIATION
James I CaldareraSpainXuxue Feng NEGOTIATION
Ricardo W KuskoIndiaElwin Sharvill UNQUALIFIED
Murillo M BowleyItalyAmy Elsner RENEWAL
Antonio W AmigonArgentinaOnyama Limba RENEWAL
Salvatore G BowleyItalyOnyama Limba UNQUALIFIED
Aika B PoquetteFranceIvan Magalhaes NEW
Morrow Z OldroydBrazilAmy Elsner PROPOSAL
Tony W MorascaRussiaAnna Fali UNQUALIFIED
Munro H ChuiBrazilAmy Elsner RENEWAL
Leon D WhobreyFranceStephen Shaw UNQUALIFIED
Tony Y OstroskyGermanyAmy Elsner QUALIFIED
Kaitlin T BowleyItalyStephen Shaw NEW
Kaitlin V FerenczBrazilIvan Magalhaes UNQUALIFIED
Greenwood Z KuskoItalyIoni Bowcher NEGOTIATION
Silvio U GarufiIndiaOnyama Limba NEW
Kadeem B BriddickUnited KingdomAnna Fali NEGOTIATION
Rodrigues R InouyeSpainAnna Fali PROPOSAL
Stacey Z TollnerArgentinaXuxue Feng NEW
Aditya Q KolmetzCanadaAnna Fali NEGOTIATION
Aruna F WaycottCanadaElwin Sharvill NEGOTIATION
Jennifer S GlickBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair U WaycottBrazilAmy Elsner NEW
Ashley T BologniaBrazilStephen Shaw NEW
Rodrigues F VenereUnited KingdomElwin Sharvill NEW
Antonio V FlosiGermanyAmy Elsner NEGOTIATION
Chavez X StockhamRussiaElwin Sharvill UNQUALIFIED
Jones B MorascaJapanStephen Shaw RENEWAL
Chavez G ButtIndiaXuxue Feng PROPOSAL
Stacey V MaletRussiaAmy Elsner UNQUALIFIED
Aditya N ChuiJapanAsiya Javayant NEGOTIATION
Kaitlin K BriddickItalyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco K NickaUnited Kingdom2024-04-03Printing Dimensions NEW88Bernardo Dominic
1001Aika D DoeIndia2024-04-23Feltz Printing Service QUALIFIED77Ioni Bowcher
1002Francesco X RutaGermany2024-04-28Rousseaux, Michael Esq NEW78Asiya Javayant
1003Jones H StockhamCanada2024-04-04Feltz Printing Service NEGOTIATION38Anna Fali
1004Johnson D RulapaughBrazil2024-04-18Morlong Associates NEW97Stephen Shaw
1005Mujtaba H WaycottCanada2024-04-01Dorl, James J Esq NEGOTIATION89Ivan Magalhaes
1006Greenwood I StensethGermany2024-04-11Printing Dimensions QUALIFIED26Stephen Shaw
1007Kaitlin M SergiIndia2024-04-16Printing Dimensions UNQUALIFIED96Onyama Limba
1008Greenwood W VocelkaItaly2024-04-06Truhlar And Truhlar Attys RENEWAL9Asiya Javayant
1009Izzy B WhobreyRussia2024-04-19Dorl, James J Esq QUALIFIED73Stephen Shaw
1010Johnson L DilliardFrance2024-04-10Buckley Miller Wright QUALIFIED38Bernardo Dominic
1011Wickens P WieserItaly2024-04-02Chemel, James L Cpa PROPOSAL89Xuxue Feng
1012Salvatore Q RutaAustralia2024-04-20Chemel, James L Cpa UNQUALIFIED91Ioni Bowcher
1013Jeanfrancois X SchemmerUnited Kingdom2024-04-17Rangoni Of Florence PROPOSAL11Amy Elsner
1014Octavia P PerinJapan2024-04-10Dorl, James J Esq PROPOSAL64Onyama Limba
1015Arvin D VenereCanada2024-04-23Buckley Miller Wright UNQUALIFIED16Ioni Bowcher
1016Chavez R GillianUnited Kingdom2024-04-10Rangoni Of Florence RENEWAL79Anna Fali
1017Nicolas E GauchoBrazil2024-04-01Feltz Printing Service UNQUALIFIED95Ivan Magalhaes
1018Leja C DarakjyCanada2024-04-13Morlong Associates NEGOTIATION36Ivan Magalhaes
1019Sinclair S OldroydUnited Kingdom2024-04-24Commercial Press UNQUALIFIED69Bernardo Dominic
1020James Q BriddickCanada2024-04-04Rangoni Of Florence NEGOTIATION45Amy Elsner
1021Francesco G WhobreySpain2024-04-25Commercial Press QUALIFIED84Amy Elsner
1022Jennifer R KolmetzFrance2024-04-24Morlong Associates NEGOTIATION78Stephen Shaw
1023Julie E FlosiFrance2024-04-27Chemel, James L Cpa PROPOSAL49Xuxue Feng
1024Sinclair F WieserAustralia2024-04-05Chemel, James L Cpa PROPOSAL16Ivan Magalhaes
1025Emily C StensethJapan2024-04-16Buckley Miller Wright NEGOTIATION52Elwin Sharvill
1026Sinclair C AmigonFrance2024-04-22Commercial Press NEGOTIATION94Bernardo Dominic
1027Clifford R StockhamJapan2024-04-27Morlong Associates PROPOSAL48Ivan Magalhaes
1028Kaitlin X StensethRussia2024-04-21Rousseaux, Michael Esq RENEWAL35Stephen Shaw
1029Darci P WieserIndia2024-04-15Dorl, James J Esq NEW65Stephen Shaw
1030Antonio Q DilliardIndia2024-04-09Buckley Miller Wright PROPOSAL75Stephen Shaw
1031Deepesh K SergiUnited Kingdom2024-04-24Rangoni Of Florence NEGOTIATION71Stephen Shaw
1032Maisha B IturbideItaly2024-04-27Chapman, Ross E Esq RENEWAL95Bernardo Dominic
1033Adams H DilliardItaly2024-04-08Commercial Press PROPOSAL3Onyama Limba
1034Claire Y VenereCanada2024-04-23King, Christopher A Esq NEGOTIATION0Amy Elsner
1035Salvatore L BologniaSpain2024-04-24Chanay, Jeffrey A Esq QUALIFIED48Ivan Magalhaes
1036Smith V WhobreyAustralia2024-04-16Dorl, James J Esq QUALIFIED98Elwin Sharvill
1037Darci Y CaldareraGermany2024-04-28Chemel, James L Cpa PROPOSAL12Ivan Magalhaes
1038Wickens V SergiFrance2024-04-09Chemel, James L Cpa PROPOSAL65Amy Elsner
1039Aika T BriddickJapan2024-04-09Commercial Press QUALIFIED71Ioni Bowcher
1040Juan Z MaletAustralia2024-04-27Chemel, James L Cpa QUALIFIED57Onyama Limba
1041Cody R PerinAustralia2024-04-27Chapman, Ross E Esq QUALIFIED8Amy Elsner
1042Ricardo Y GauchoArgentina2024-04-18Buckley Miller Wright RENEWAL73Bernardo Dominic
1043Costa Z FerenczRussia2024-04-08Chanay, Jeffrey A Esq PROPOSAL55Onyama Limba
1044Jennifer N PoquetteFrance2024-03-31Morlong Associates NEW59Anna Fali
1045Aditya L MacleadAustralia2024-04-08Chapman, Ross E Esq PROPOSAL10Onyama Limba
1046Antonio Z KolmetzItaly2024-03-31King, Christopher A Esq NEW98Asiya Javayant
1047Maria N BowleyGermany2024-04-27Dorl, James J Esq PROPOSAL20Stephen Shaw
1048Jennifer E KuskoUnited Kingdom2024-03-30Truhlar And Truhlar Attys UNQUALIFIED32Amy Elsner
1049Aditya R RimRussia2024-04-25Chanay, Jeffrey A Esq RENEWAL58Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey A WhobreyJapanElwin Sharvill NEW
Ashley L GauchoSpainBernardo Dominic NEW
Jefferson X BologniaItalyIvan Magalhaes PROPOSAL
Emily M SchemmerUnited KingdomAnna Fali NEGOTIATION
Murillo M FigeroaSpainXuxue Feng NEGOTIATION
Kaitlin D VenereCanadaBernardo Dominic PROPOSAL
Emily C SlusarskiBrazilAsiya Javayant NEGOTIATION
Aika S AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Cody S OstroskyJapanElwin Sharvill RENEWAL
Murillo X GarufiCanadaIvan Magalhaes NEGOTIATION
Ivar P NickaGermanyStephen Shaw PROPOSAL
Nicolas V ChuiArgentinaAmy Elsner UNQUALIFIED
Alejandro L BologniaAustraliaAmy Elsner NEW
Maria V CampainFranceXuxue Feng PROPOSAL
James A MarrierBrazilAsiya Javayant NEGOTIATION
Arvin B FlosiArgentinaBernardo Dominic RENEWAL
Faith Q FigeroaJapanStephen Shaw NEW
Jeanfrancois Z KuskoJapanAnna Fali UNQUALIFIED
Izzy A DilliardGermanyAsiya Javayant QUALIFIED
Rodrigues Y NestleJapanIvan Magalhaes QUALIFIED
Nicolas Z FlosiFranceXuxue Feng NEGOTIATION
Maisha X MaletJapanIvan Magalhaes PROPOSAL
Salvatore Q FerenczUnited KingdomAmy Elsner QUALIFIED
Morrow A StockhamArgentinaAsiya Javayant UNQUALIFIED
Aika H VenereCanadaAnna Fali QUALIFIED
James V NickaFranceStephen Shaw NEGOTIATION
Nicolas N MaletCanadaAsiya Javayant RENEWAL
Rodrigues Z ShinkoAustraliaBernardo Dominic UNQUALIFIED
Jones M TollnerFranceBernardo Dominic NEGOTIATION
Aditya L MorascaJapanOnyama Limba NEGOTIATION
Nicolas N RimFranceAsiya Javayant QUALIFIED
Deepesh B OstroskyFranceAmy Elsner UNQUALIFIED
David N DilliardIndiaBernardo Dominic QUALIFIED
Munro T DilliardUnited KingdomElwin Sharvill NEGOTIATION
Adams A FollerBrazilStephen Shaw RENEWAL
Octavia C RimSpainAnna Fali UNQUALIFIED
Salvatore S WaycottIndiaOnyama Limba PROPOSAL
Murillo R InouyeBrazilXuxue Feng UNQUALIFIED
Misaki J MaletBrazilIoni Bowcher NEGOTIATION
Julie U StockhamIndiaIvan Magalhaes NEGOTIATION
James C TollnerRussiaElwin Sharvill PROPOSAL
James S NestleArgentinaOnyama Limba NEW
Ricardo H BologniaGermanyAnna Fali RENEWAL
Isabel J MarrierSpainStephen Shaw NEGOTIATION
Misaki M DoeBrazilOnyama Limba UNQUALIFIED
Misaki G VocelkaIndiaIvan Magalhaes RENEWAL
Mujtaba N OstroskyAustraliaAsiya Javayant NEW
Nicolas H NickaArgentinaStephen Shaw NEW
Chavez S PaprockiItalyIvan Magalhaes QUALIFIED
Emily B WhobreyIndiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Morrow L Malet
Octavia D Glick
Deepesh W Butt
Ashley A Whobrey
Ricardo R Malet
Francesco F Ferencz
James Z Shinko
Ashley Y Nestle
Johnson M Briddick
Aika R Caudy
Jones P Sergi
Salvatore V Waycott
Julie X Tollner
Tony S Malet
Costa A Stenseth
Deepesh H Flosi
James I Amigon
Cody P Kusko
Jeanfrancois S Whobrey
Leon L Caldarera
Wickens S Poquette
Jennifer T Wieser
Johnson O Whobrey
Cody A Nicka
Darci G Malet
Francesco U Caldarera
Aruna I Marrier
Misaki J Darakjy
Deepesh Y Rim
James W Chui
Ricardo X Doe
Ricardo I Campain
Silvio E Glick
Jeanfrancois P Poquette
Arvin D Flosi
Munro A Malet
Kadeem S Glick
Aditya Z Inouye
Alejandro H Gillian
Aditya V Bowley
Aruna O Ferencz
Costa V Ostrosky
Rodrigues O Campain
Aditya X Nicka
Octavia D Tollner
Julie J Stockham
Ricardo R Gaucho
Maria Y Wieser
Stacey V Marrier
Maria B Shinko
IdCountryDate
1000Australia2024-04-03
1001Italy2024-04-03
1002India2024-03-31
1003Canada2024-04-02
1004France2024-04-24
1005Canada2024-04-22
1006Brazil2024-04-12
1007Germany2024-04-08
1008France2024-03-30
1009Spain2024-04-09
1010Argentina2024-04-02
1011France2024-04-20
1012Germany2024-04-01
1013United Kingdom2024-04-04
1014United Kingdom2024-04-04
1015United Kingdom2024-04-07
1016United Kingdom2024-04-24
1017Spain2024-04-17
1018Spain2024-04-03
1019Argentina2024-04-07
1020Australia2024-04-12
1021Japan2024-04-05
1022Italy2024-04-04
1023United Kingdom2024-04-27
1024Spain2024-04-15
1025Argentina2024-03-31
1026Australia2024-04-01
1027India2024-04-04
1028Canada2024-04-14
1029Australia2024-03-31
1030Spain2024-04-11
1031Russia2024-04-19
1032United Kingdom2024-04-20
1033Argentina2024-04-01
1034Japan2024-04-12
1035United Kingdom2024-04-01
1036Canada2024-04-18
1037Canada2024-04-15
1038Australia2024-04-21
1039India2024-04-12
1040United Kingdom2024-04-25
1041Russia2024-03-30
1042France2024-04-24
1043India2024-04-13
1044Italy2024-04-04
1045United Kingdom2024-04-04
1046Argentina2024-04-21
1047Canada2024-04-07
1048Germany2024-04-20
1049Spain2024-04-02

On-Demand Data

NameIdCountryDate
Ricardo R Amigon1000Russia2024-04-12
Ashley I Caldarera1001Argentina2024-04-25
Maisha F Albares1002Spain2024-04-23
Jones S Nestle1003Germany2024-04-26
Smith G Kolmetz1004Australia2024-04-22
Leja Y Albares1005Japan2024-04-02
Misaki B Malet1006India2024-04-10
Cody Y Caudy1007Russia2024-03-30
Juan W Wieser1008India2024-04-05
Stacey X Ferencz1009United Kingdom2024-03-31
Claire N Malet1010Italy2024-04-24
Isabel R Flosi1011Italy2024-04-09
Chavez X Sergi1012Canada2024-04-07
Isabel O Saylors1013France2024-04-07
Mayumi K Kolmetz1014United Kingdom2024-04-08
Izzy X Paprocki1015Japan2024-04-08
Faith R Doe1016Italy2024-04-16
Ivar R Gillian1017United Kingdom2024-04-10
Mujtaba O Schemmer1018Russia2024-04-03
Adams D Chui1019Germany2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues N SchemmerArgentinaBernardo Dominic NEGOTIATION
Aruna J StockhamArgentinaOnyama Limba NEW
Arvin F SaylorsAustraliaAsiya Javayant QUALIFIED
Kadeem X MaletFranceIoni Bowcher NEW
Munro G DarakjyRussiaXuxue Feng NEW
Smith W PerinUnited KingdomAmy Elsner RENEWAL
Salvatore K BriddickFranceOnyama Limba RENEWAL
Costa Q SergiSpainElwin Sharvill UNQUALIFIED
Johnson V NestleJapanAnna Fali NEW
Faith T StockhamFranceAnna Fali PROPOSAL
Faith Q ChuiIndiaBernardo Dominic UNQUALIFIED
Alejandro O FlosiSpainAnna Fali QUALIFIED
Deepesh B AmigonSpainElwin Sharvill NEW
Darci U WaycottItalyIoni Bowcher NEW
Stacey E BologniaUnited KingdomBernardo Dominic PROPOSAL
Darci O DilliardFranceBernardo Dominic UNQUALIFIED
Murillo N FlosiItalyAnna Fali NEGOTIATION
Misaki W NestleRussiaStephen Shaw NEGOTIATION
Aika D ChuiRussiaStephen Shaw RENEWAL
Julie Z GauchoBrazilIvan Magalhaes NEW
Sinclair D MaletArgentinaIvan Magalhaes QUALIFIED
Misaki X WaycottCanadaXuxue Feng UNQUALIFIED
Darci T SlusarskiBrazilBernardo Dominic RENEWAL
Ivar M KolmetzSpainXuxue Feng QUALIFIED
Alejandro I GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Francesco F KuskoGermanyIvan Magalhaes NEW
Aruna I AmigonUnited KingdomAnna Fali NEGOTIATION
Darci O FlosiUnited KingdomStephen Shaw RENEWAL
Misaki E WhobreyGermanyBernardo Dominic UNQUALIFIED
Adams U SchemmerAustraliaIvan Magalhaes NEW
Jefferson B FerenczGermanyIvan Magalhaes PROPOSAL
Aditya F VenereBrazilXuxue Feng NEW
Jennifer Q BriddickRussiaOnyama Limba NEGOTIATION
Stacey E GauchoSpainIoni Bowcher NEGOTIATION
Emily S DilliardCanadaAmy Elsner RENEWAL
Alejandro K AmigonArgentinaAmy Elsner UNQUALIFIED
Leja Y GauchoUnited KingdomStephen Shaw PROPOSAL
Wickens Y GillianSpainAsiya Javayant PROPOSAL
Morrow G ButtBrazilIvan Magalhaes RENEWAL
Maisha X FollerArgentinaBernardo Dominic UNQUALIFIED

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