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
Jennifer E SchemmerSpainElwin Sharvill PROPOSAL
Maria U CaldareraAustraliaOnyama Limba NEGOTIATION
Ricardo L DoeGermanyXuxue Feng UNQUALIFIED
Maria Z StockhamArgentinaAsiya Javayant QUALIFIED
James J SlusarskiCanadaStephen Shaw PROPOSAL
Jones K MacleadGermanyBernardo Dominic PROPOSAL
Francesco R RulapaughIndiaAmy Elsner UNQUALIFIED
Ivar Q OstroskyUnited KingdomAmy Elsner NEW
Greenwood T OldroydCanadaElwin Sharvill QUALIFIED
Cody Q GarufiGermanyIoni Bowcher PROPOSAL
Kadeem T VocelkaJapanOnyama Limba RENEWAL
Francesco V FigeroaAustraliaAsiya Javayant RENEWAL
David R AmigonItalyBernardo Dominic NEGOTIATION
Leja V NickaFranceOnyama Limba UNQUALIFIED
Kaitlin O BowleyRussiaXuxue Feng NEW
Stacey U WaycottGermanyAsiya Javayant PROPOSAL
Kadeem D ShinkoArgentinaStephen Shaw QUALIFIED
Isabel Y StockhamItalyOnyama Limba NEW
Julie F IturbideJapanIvan Magalhaes RENEWAL
Izzy E KolmetzJapanAmy Elsner PROPOSAL
Emily L RimBrazilAnna Fali PROPOSAL
Leja R CaldareraCanadaIvan Magalhaes NEW
Antonio L SaylorsSpainAnna Fali RENEWAL
Jennifer C StensethCanadaOnyama Limba UNQUALIFIED
Costa A DilliardFranceBernardo Dominic QUALIFIED
Murillo E AmigonUnited KingdomIvan Magalhaes RENEWAL
Kadeem C SchemmerGermanyAnna Fali UNQUALIFIED
Silvio D VenereUnited KingdomElwin Sharvill NEGOTIATION
Johnson Y TollnerCanadaIoni Bowcher NEW
Leon Y FigeroaJapanStephen Shaw RENEWAL
Rodrigues W OstroskyGermanyIoni Bowcher UNQUALIFIED
Leon L GlickArgentinaAnna Fali QUALIFIED
Maisha O MaletBrazilXuxue Feng NEW
Greenwood T DilliardSpainStephen Shaw QUALIFIED
Wickens K ButtItalyStephen Shaw PROPOSAL
David W CampainUnited KingdomXuxue Feng UNQUALIFIED
Munro U ButtFranceAnna Fali UNQUALIFIED
Izzy J FerenczArgentinaStephen Shaw NEGOTIATION
Jeanfrancois T FlosiUnited KingdomStephen Shaw UNQUALIFIED
Isabel G WaycottJapanIoni Bowcher NEW
Jeanfrancois R OldroydAustraliaElwin Sharvill NEW
Cody U MaletAustraliaIoni Bowcher QUALIFIED
Morrow Y SlusarskiGermanyAnna Fali PROPOSAL
David T WhobreyItalyStephen Shaw RENEWAL
Cody R GlickArgentinaElwin Sharvill NEGOTIATION
Darci K BologniaUnited KingdomBernardo Dominic RENEWAL
James C WaycottArgentinaStephen Shaw NEGOTIATION
Stacey T CampainSpainIoni Bowcher NEGOTIATION
Antonio Y SaylorsIndiaIvan Magalhaes NEGOTIATION
Costa H IturbideFranceXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro P FlosiIndiaStephen Shaw NEGOTIATION
Maisha W RutaRussiaIoni Bowcher QUALIFIED
Nicolas O MaletIndiaBernardo Dominic RENEWAL
Mujtaba P RutaFranceOnyama Limba PROPOSAL
Aruna U WaycottBrazilAnna Fali NEW
Wickens K StensethUnited KingdomAnna Fali UNQUALIFIED
Wickens J MaletCanadaOnyama Limba NEGOTIATION
Ricardo F NestleItalyAnna Fali PROPOSAL
Murillo W PaprockiRussiaXuxue Feng PROPOSAL
Jeanfrancois Q FerenczCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja V BologniaBrazil2024-04-13Morlong Associates UNQUALIFIED14Anna Fali
1001Juan M CaudyUnited Kingdom2024-04-10Feiner Bros NEW95Anna Fali
1002Ricardo K BowleyFrance2024-04-19Chanay, Jeffrey A Esq NEW29Stephen Shaw
1003Octavia D KolmetzRussia2024-04-18Morlong Associates NEW57Xuxue Feng
1004Kaitlin L GillianRussia2024-04-21Chemel, James L Cpa UNQUALIFIED59Elwin Sharvill
1005Arvin Z DilliardArgentina2024-04-18Dorl, James J Esq UNQUALIFIED27Amy Elsner
1006Mayumi Y WieserGermany2024-04-06Buckley Miller Wright UNQUALIFIED98Xuxue Feng
1007Octavia M ShinkoItaly2024-04-06Chapman, Ross E Esq NEGOTIATION47Onyama Limba
1008Morrow T NickaFrance2024-04-02Morlong Associates NEW82Elwin Sharvill
1009Octavia T OldroydBrazil2024-03-30Feiner Bros PROPOSAL35Asiya Javayant
1010Misaki W TollnerAustralia2024-04-06Buckley Miller Wright UNQUALIFIED15Elwin Sharvill
1011Emily T StockhamJapan2024-04-19Commercial Press NEGOTIATION4Xuxue Feng
1012Mujtaba I StockhamFrance2024-03-31Dorl, James J Esq NEGOTIATION78Ioni Bowcher
1013Johnson N PaprockiAustralia2024-04-07Feltz Printing Service UNQUALIFIED14Elwin Sharvill
1014Jefferson B RulapaughAustralia2024-04-03Commercial Press PROPOSAL19Elwin Sharvill
1015Adams S MorascaItaly2024-04-10Dorl, James J Esq NEW14Elwin Sharvill
1016Leon H CaldareraIndia2024-04-14Chemel, James L Cpa UNQUALIFIED87Xuxue Feng
1017Morrow Q NestleUnited Kingdom2024-04-25Rangoni Of Florence QUALIFIED84Elwin Sharvill
1018Costa G ButtJapan2024-04-06Chemel, James L Cpa NEGOTIATION76Anna Fali
1019Tony A GarufiIndia2024-04-19Chanay, Jeffrey A Esq QUALIFIED60Ioni Bowcher
1020Francesco N BowleyArgentina2024-04-04Chemel, James L Cpa UNQUALIFIED41Amy Elsner
1021Arvin S ChuiCanada2024-04-02Chapman, Ross E Esq NEW1Asiya Javayant
1022Ivar N CaldareraJapan2024-03-31Truhlar And Truhlar Attys QUALIFIED98Amy Elsner
1023Juan N FigeroaIndia2024-04-14Feiner Bros NEGOTIATION11Onyama Limba
1024Jennifer S NickaBrazil2024-04-08Rousseaux, Michael Esq PROPOSAL75Onyama Limba
1025Ivar Z StensethSpain2024-04-09Chemel, James L Cpa UNQUALIFIED17Elwin Sharvill
1026Aruna S SergiItaly2024-04-07Commercial Press QUALIFIED22Bernardo Dominic
1027Ricardo R KuskoUnited Kingdom2024-04-21Chanay, Jeffrey A Esq NEGOTIATION16Ioni Bowcher
1028Cody A FerenczSpain2024-04-09King, Christopher A Esq PROPOSAL93Amy Elsner
1029Kadeem Y PaprockiJapan2024-03-29Benton, John B Jr NEGOTIATION19Onyama Limba
1030Ashley O NestleRussia2024-03-30Truhlar And Truhlar Attys QUALIFIED18Ioni Bowcher
1031Kaitlin B FigeroaArgentina2024-04-24Buckley Miller Wright NEGOTIATION65Amy Elsner
1032Emily P DoeItaly2024-03-28Chanay, Jeffrey A Esq NEGOTIATION29Onyama Limba
1033Rodrigues V GlickBrazil2024-04-06Chanay, Jeffrey A Esq NEW72Amy Elsner
1034Sinclair E CaudyItaly2024-04-22King, Christopher A Esq RENEWAL76Asiya Javayant
1035Mujtaba I MacleadGermany2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED8Elwin Sharvill
1036Darci O GlickCanada2024-04-12Morlong Associates NEGOTIATION71Asiya Javayant
1037Adams J DoeGermany2024-04-16Chanay, Jeffrey A Esq PROPOSAL78Anna Fali
1038Ashley I GlickUnited Kingdom2024-04-24Printing Dimensions UNQUALIFIED96Ivan Magalhaes
1039Morrow Y StockhamArgentina2024-04-04Rangoni Of Florence QUALIFIED82Ioni Bowcher
1040Izzy U PerinAustralia2024-03-31Chanay, Jeffrey A Esq QUALIFIED79Onyama Limba
1041Isabel M MaletAustralia2024-04-19Dorl, James J Esq NEW16Ivan Magalhaes
1042Morrow O MaletRussia2024-04-19King, Christopher A Esq NEGOTIATION62Elwin Sharvill
1043Tony X DilliardJapan2024-04-20Commercial Press NEW40Ivan Magalhaes
1044Adams K VocelkaBrazil2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED91Xuxue Feng
1045Antonio G MorascaFrance2024-04-15Morlong Associates PROPOSAL68Elwin Sharvill
1046Leja D SergiIndia2024-03-28Chanay, Jeffrey A Esq RENEWAL12Xuxue Feng
1047Wickens O InouyeItaly2024-04-22Dorl, James J Esq NEGOTIATION1Bernardo Dominic
1048Aika T MacleadAustralia2024-04-08Chapman, Ross E Esq QUALIFIED10Asiya Javayant
1049Jefferson F SlusarskiBrazil2024-04-24Benton, John B Jr UNQUALIFIED81Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois I AmigonJapanAmy Elsner PROPOSAL
Claire Y FerenczRussiaAmy Elsner PROPOSAL
Silvio Z KolmetzUnited KingdomElwin Sharvill RENEWAL
Arvin D BologniaItalyXuxue Feng UNQUALIFIED
Ashley G StensethBrazilIvan Magalhaes PROPOSAL
Misaki I AmigonUnited KingdomAmy Elsner RENEWAL
Kaitlin M ChuiArgentinaAmy Elsner RENEWAL
Claire Q AmigonJapanIoni Bowcher QUALIFIED
Johnson A BowleyGermanyIvan Magalhaes NEW
Morrow M RulapaughIndiaAnna Fali NEGOTIATION
Tony M PaprockiBrazilAnna Fali PROPOSAL
Jones N BowleyArgentinaElwin Sharvill NEW
Adams I MarrierAustraliaOnyama Limba QUALIFIED
Ivar T GlickUnited KingdomAnna Fali UNQUALIFIED
Maisha B InouyeBrazilElwin Sharvill UNQUALIFIED
Ivar X TollnerCanadaStephen Shaw NEGOTIATION
Mayumi Z RutaBrazilOnyama Limba NEW
Adams Q DarakjySpainStephen Shaw UNQUALIFIED
Smith S RoysterItalyAsiya Javayant NEGOTIATION
Smith K PoquetteGermanyAmy Elsner NEGOTIATION
Juan J RoysterArgentinaAsiya Javayant NEGOTIATION
Maisha K GauchoBrazilAmy Elsner NEGOTIATION
Emily G BologniaUnited KingdomAmy Elsner QUALIFIED
Salvatore I PoquetteAustraliaStephen Shaw UNQUALIFIED
Maria I FlosiBrazilAsiya Javayant NEW
Cody O DoeItalyElwin Sharvill UNQUALIFIED
Morrow F IturbideRussiaIvan Magalhaes PROPOSAL
Stacey U BowleyBrazilStephen Shaw NEGOTIATION
Wickens H ShinkoSpainElwin Sharvill QUALIFIED
Tony S BriddickJapanAmy Elsner PROPOSAL
Nicolas C WaycottUnited KingdomAsiya Javayant NEGOTIATION
Ivar X FollerRussiaBernardo Dominic NEW
Stacey Q CampainSpainAmy Elsner NEGOTIATION
Julie S BriddickAustraliaAmy Elsner PROPOSAL
Tony F BowleyBrazilAsiya Javayant NEW
Mayumi P ShinkoArgentinaOnyama Limba QUALIFIED
Jennifer I StensethFranceIoni Bowcher RENEWAL
Greenwood S FigeroaUnited KingdomIoni Bowcher NEW
Kadeem T VocelkaCanadaBernardo Dominic PROPOSAL
Maria V IturbideItalyAnna Fali QUALIFIED
David U SaylorsBrazilStephen Shaw QUALIFIED
James B OldroydIndiaAsiya Javayant NEGOTIATION
Sinclair T MarrierUnited KingdomAmy Elsner RENEWAL
Stacey H BowleyIndiaBernardo Dominic NEGOTIATION
Deepesh Q BologniaSpainIvan Magalhaes PROPOSAL
Stacey Y GillianSpainAsiya Javayant NEGOTIATION
Rodrigues L StensethItalyOnyama Limba UNQUALIFIED
Johnson N FerenczBrazilAnna Fali QUALIFIED
Leja U FlosiRussiaIoni Bowcher NEW
Deepesh E BriddickSpainAsiya Javayant QUALIFIED
Frozen Columns
Name
Tony Z Ferencz
Francesco V Oldroyd
Isabel R Venere
Ashley A Inouye
Smith P Bowley
Antonio N Shinko
Arvin G Gaucho
Misaki U Nicka
Aika X Chui
Emily V Inouye
Aruna U Bowley
Chavez L Malet
Deepesh E Sergi
Maisha Y Dilliard
Antonio R Ferencz
Faith A Darakjy
Alejandro R Poquette
Mujtaba J Gaucho
Ricardo D Maclead
Greenwood X Shinko
Silvio X Stenseth
Costa C Rim
Stacey Q Ferencz
Claire U Albares
Misaki J Ruta
Arvin S Doe
Chavez Z Briddick
Nicolas W Nicka
Claire D Butt
Ivar E Bowley
Maisha R Caldarera
Maisha F Albares
Clifford S Malet
Johnson S Gillian
Chavez K Inouye
Arvin T Albares
Claire V Gaucho
Claire P Paprocki
Clifford A Royster
Wickens Y Caudy
Misaki S Caudy
Costa C Malet
Rodrigues J Kolmetz
Adams E Glick
James Q Butt
Wickens W Waycott
Morrow F Sergi
Mayumi F Garufi
Morrow S Nicka
Julie P Waycott
IdCountryDate
1000France2024-04-18
1001Italy2024-04-20
1002Japan2024-04-01
1003Canada2024-04-22
1004Argentina2024-04-08
1005Italy2024-03-29
1006India2024-04-02
1007Argentina2024-04-16
1008United Kingdom2024-04-21
1009Canada2024-04-25
1010Brazil2024-04-14
1011Brazil2024-03-31
1012Brazil2024-04-19
1013France2024-03-31
1014France2024-04-20
1015Brazil2024-04-09
1016Argentina2024-04-06
1017Russia2024-04-10
1018Germany2024-04-20
1019Brazil2024-04-15
1020Italy2024-03-28
1021Italy2024-04-07
1022Argentina2024-04-05
1023Canada2024-04-24
1024France2024-04-22
1025Russia2024-04-15
1026Canada2024-04-09
1027United Kingdom2024-04-19
1028Italy2024-04-05
1029Brazil2024-04-15
1030Australia2024-04-01
1031Brazil2024-04-24
1032France2024-04-10
1033Australia2024-04-22
1034India2024-03-28
1035India2024-04-15
1036United Kingdom2024-04-05
1037Brazil2024-04-12
1038Germany2024-04-02
1039Australia2024-04-17
1040Italy2024-04-12
1041United Kingdom2024-03-31
1042Japan2024-04-15
1043Japan2024-04-12
1044Germany2024-03-31
1045Italy2024-04-06
1046Canada2024-04-22
1047France2024-04-08
1048Canada2024-04-17
1049Brazil2024-04-22

On-Demand Data

NameIdCountryDate
Francesco W Ruta1000India2024-03-31
Claire A Tollner1001Canada2024-04-07
Cody U Poquette1002Brazil2024-04-01
Misaki D Glick1003Argentina2024-04-09
Clifford I Iturbide1004Italy2024-04-08
Antonio X Doe1005Germany2024-04-14
Isabel S Malet1006Spain2024-03-29
Tony D Saylors1007India2024-04-02
Chavez I Schemmer1008France2024-04-19
Octavia C Doe1009Spain2024-04-19
Cody E Briddick1010Spain2024-04-13
Octavia P Kolmetz1011Canada2024-04-01
Munro S Oldroyd1012Brazil2024-04-21
Costa A Butt1013France2024-03-30
Munro V Stockham1014Spain2024-03-29
Smith M Ruta1015Germany2024-04-22
Jefferson J Paprocki1016Canada2024-04-22
Francesco S Poquette1017France2024-03-28
Leja T Wieser1018Germany2024-04-05
Rodrigues A Ferencz1019Spain2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody G RutaSpainAsiya Javayant NEW
Faith J VenereFranceStephen Shaw QUALIFIED
Kadeem W FlosiCanadaXuxue Feng NEW
Murillo D ButtIndiaElwin Sharvill QUALIFIED
Aika L MarrierJapanIvan Magalhaes PROPOSAL
Claire F WieserAustraliaXuxue Feng NEW
Tony X StensethIndiaIoni Bowcher QUALIFIED
Maisha V CaudyItalyBernardo Dominic PROPOSAL
Salvatore Y AmigonArgentinaAsiya Javayant NEGOTIATION
David V DoeSpainIvan Magalhaes NEW
Izzy U FlosiUnited KingdomAnna Fali NEW
David G PerinCanadaBernardo Dominic NEW
Rodrigues W DoeGermanyXuxue Feng RENEWAL
Jones K OstroskyRussiaXuxue Feng NEGOTIATION
Francesco U DoeArgentinaOnyama Limba PROPOSAL
Isabel F FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Wickens Y FollerUnited KingdomStephen Shaw PROPOSAL
Cody P TollnerGermanyAnna Fali QUALIFIED
Aruna B KuskoUnited KingdomXuxue Feng NEW
Murillo M WieserFranceAmy Elsner NEGOTIATION
Leon W MarrierRussiaElwin Sharvill NEW
Tony J CampainJapanIvan Magalhaes NEGOTIATION
Izzy L ShinkoIndiaElwin Sharvill QUALIFIED
Munro C KuskoRussiaOnyama Limba UNQUALIFIED
Francesco D RulapaughAustraliaXuxue Feng NEGOTIATION
Morrow S IturbideCanadaAsiya Javayant NEW
Johnson L RoysterBrazilIvan Magalhaes PROPOSAL
Deepesh X DilliardAustraliaXuxue Feng PROPOSAL
Smith N NestleJapanAsiya Javayant UNQUALIFIED
Silvio D GarufiArgentinaStephen Shaw NEW
Emily M IturbideGermanyXuxue Feng NEGOTIATION
Nicolas L ChuiItalyBernardo Dominic QUALIFIED
Silvio H SaylorsJapanStephen Shaw PROPOSAL
Munro P TollnerRussiaIvan Magalhaes NEW
Murillo Q GarufiArgentinaOnyama Limba QUALIFIED
Claire N InouyeFranceAmy Elsner NEGOTIATION
Rodrigues Y VenereIndiaAnna Fali PROPOSAL
Wickens L ShinkoBrazilIvan Magalhaes UNQUALIFIED
Jennifer E BologniaGermanyOnyama Limba NEGOTIATION
Claire G AmigonArgentinaBernardo 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>