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
Kaitlin U FigeroaIndiaOnyama Limba PROPOSAL
Maisha P BriddickSpainAnna Fali NEGOTIATION
Costa F CaldareraGermanyIvan Magalhaes NEW
Wickens L InouyeItalyStephen Shaw RENEWAL
Adams P SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Salvatore P VenereJapanBernardo Dominic QUALIFIED
Stacey E AlbaresJapanIoni Bowcher UNQUALIFIED
Maisha E CampainAustraliaAnna Fali NEW
Jennifer P CampainSpainIvan Magalhaes NEGOTIATION
Sinclair V MaletUnited KingdomAmy Elsner QUALIFIED
Antonio Y GlickAustraliaIvan Magalhaes PROPOSAL
Ashley F AmigonAustraliaXuxue Feng UNQUALIFIED
Aditya W MarrierIndiaElwin Sharvill NEGOTIATION
Ashley Z MarrierItalyAnna Fali NEGOTIATION
Cody E GillianItalyAsiya Javayant NEW
Mayumi E WaycottItalyOnyama Limba PROPOSAL
Clifford W FollerJapanXuxue Feng PROPOSAL
Johnson K VenereUnited KingdomElwin Sharvill UNQUALIFIED
Clifford Q GarufiJapanBernardo Dominic QUALIFIED
Cody U FlosiIndiaXuxue Feng QUALIFIED
Jennifer T GlickSpainXuxue Feng NEW
Clifford W FerenczUnited KingdomAnna Fali RENEWAL
Jeanfrancois N WieserBrazilAsiya Javayant NEW
Izzy D SlusarskiSpainAnna Fali NEGOTIATION
Stacey P PerinRussiaAmy Elsner NEGOTIATION
Greenwood L SlusarskiJapanOnyama Limba PROPOSAL
Maisha U WhobreyArgentinaXuxue Feng NEW
Octavia H StockhamArgentinaIoni Bowcher PROPOSAL
Darci F GauchoUnited KingdomBernardo Dominic QUALIFIED
David X RimRussiaStephen Shaw QUALIFIED
Kaitlin L OstroskyBrazilAnna Fali NEW
Costa N PerinCanadaIvan Magalhaes RENEWAL
David N CampainGermanyXuxue Feng QUALIFIED
Aruna Y GarufiAustraliaXuxue Feng QUALIFIED
Francesco X FerenczGermanyOnyama Limba NEGOTIATION
Deepesh J StensethBrazilElwin Sharvill RENEWAL
Cody Q PoquetteBrazilOnyama Limba NEW
Mujtaba S KuskoCanadaOnyama Limba NEW
Cody H GlickAustraliaAmy Elsner UNQUALIFIED
Smith X ButtItalyStephen Shaw QUALIFIED
Ashley N VocelkaCanadaXuxue Feng QUALIFIED
Aditya R RoysterCanadaElwin Sharvill NEGOTIATION
Leon G CaudyUnited KingdomStephen Shaw NEW
Kaitlin H CaudyAustraliaAnna Fali QUALIFIED
Darci Z OldroydSpainAmy Elsner PROPOSAL
Misaki A MacleadSpainAsiya Javayant PROPOSAL
Ricardo J DilliardRussiaElwin Sharvill UNQUALIFIED
Tony K InouyeUnited KingdomStephen Shaw RENEWAL
Faith R RulapaughFranceAnna Fali NEW
Ricardo E PerinCanadaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer N FerenczGermanyElwin Sharvill UNQUALIFIED
Greenwood W MaletRussiaXuxue Feng RENEWAL
Kadeem M RoysterItalyOnyama Limba NEGOTIATION
Johnson G GauchoArgentinaAsiya Javayant QUALIFIED
Juan T SaylorsFranceElwin Sharvill QUALIFIED
Leon S SchemmerSpainAmy Elsner NEW
Rodrigues T StensethIndiaIoni Bowcher NEGOTIATION
Johnson V GlickSpainAmy Elsner UNQUALIFIED
Wickens M GillianItalyXuxue Feng RENEWAL
Jones Y OstroskyArgentinaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley M OldroydIndia2024-04-28Chapman, Ross E Esq NEGOTIATION21Ivan Magalhaes
1001Aruna R SchemmerFrance2024-04-06Printing Dimensions NEGOTIATION47Ivan Magalhaes
1002Jones Y ButtFrance2024-04-12Rangoni Of Florence NEW4Stephen Shaw
1003Jefferson C AmigonArgentina2024-03-30Rousseaux, Michael Esq UNQUALIFIED77Bernardo Dominic
1004Kaitlin S MaletGermany2024-03-31Benton, John B Jr UNQUALIFIED84Amy Elsner
1005Mujtaba I GauchoIndia2024-04-12Commercial Press NEGOTIATION26Bernardo Dominic
1006Munro T InouyeIndia2024-04-17Chanay, Jeffrey A Esq NEW45Onyama Limba
1007Rodrigues J BologniaItaly2024-04-19Feltz Printing Service NEW10Stephen Shaw
1008Wickens Y NestleGermany2024-04-17Dorl, James J Esq UNQUALIFIED93Anna Fali
1009Jennifer Q BologniaGermany2024-04-14Rousseaux, Michael Esq RENEWAL87Elwin Sharvill
1010Deepesh M FlosiUnited Kingdom2024-04-05Chanay, Jeffrey A Esq PROPOSAL34Asiya Javayant
1011Aika S MaletUnited Kingdom2024-04-24Benton, John B Jr NEGOTIATION57Anna Fali
1012Darci J SaylorsFrance2024-04-18Benton, John B Jr PROPOSAL53Onyama Limba
1013Salvatore M VenereRussia2024-04-01Dorl, James J Esq UNQUALIFIED16Onyama Limba
1014Munro M MaletUnited Kingdom2024-04-09Commercial Press NEW64Anna Fali
1015Silvio C PaprockiCanada2024-03-31Chapman, Ross E Esq UNQUALIFIED86Asiya Javayant
1016Smith Q DilliardAustralia2024-04-03King, Christopher A Esq NEW60Stephen Shaw
1017Greenwood X MarrierCanada2024-04-28Benton, John B Jr QUALIFIED26Onyama Limba
1018Jeanfrancois S StensethBrazil2024-04-16Buckley Miller Wright NEW0Elwin Sharvill
1019Izzy H FlosiJapan2024-04-10Chapman, Ross E Esq RENEWAL20Anna Fali
1020Jeanfrancois E MacleadBrazil2024-04-21Benton, John B Jr PROPOSAL92Ioni Bowcher
1021Misaki H FerenczRussia2024-04-15Chapman, Ross E Esq NEGOTIATION24Ivan Magalhaes
1022Cody N RimArgentina2024-04-20Morlong Associates PROPOSAL80Bernardo Dominic
1023Aditya F KolmetzAustralia2024-04-19Commercial Press RENEWAL26Amy Elsner
1024Aruna O VocelkaFrance2024-03-31Commercial Press UNQUALIFIED81Ivan Magalhaes
1025Chavez F RimRussia2024-04-11Chapman, Ross E Esq UNQUALIFIED55Ioni Bowcher
1026Deepesh J KuskoIndia2024-04-17Dorl, James J Esq NEGOTIATION57Ioni Bowcher
1027Arvin G DoeUnited Kingdom2024-04-05Morlong Associates QUALIFIED50Onyama Limba
1028Francesco P FerenczFrance2024-03-30Feltz Printing Service UNQUALIFIED11Ioni Bowcher
1029Wickens Y OldroydSpain2024-04-03Truhlar And Truhlar Attys RENEWAL24Ioni Bowcher
1030Salvatore F DarakjyCanada2024-04-26Benton, John B Jr NEW68Elwin Sharvill
1031Stacey D OstroskyUnited Kingdom2024-04-26Rangoni Of Florence NEGOTIATION12Onyama Limba
1032Chavez R NestleGermany2024-04-23Chapman, Ross E Esq RENEWAL24Asiya Javayant
1033Adams Z GauchoItaly2024-04-18Truhlar And Truhlar Attys NEGOTIATION1Stephen Shaw
1034Cody G RoysterArgentina2024-04-22King, Christopher A Esq PROPOSAL71Anna Fali
1035Rodrigues U KuskoSpain2024-04-13Truhlar And Truhlar Attys UNQUALIFIED5Anna Fali
1036Claire U SergiCanada2024-04-04Dorl, James J Esq PROPOSAL1Xuxue Feng
1037Ricardo Z StockhamRussia2024-04-17Morlong Associates UNQUALIFIED53Onyama Limba
1038Jones E FlosiJapan2024-04-03Printing Dimensions NEW91Amy Elsner
1039Leja M AlbaresGermany2024-04-06Chemel, James L Cpa UNQUALIFIED44Xuxue Feng
1040Julie I WhobreyCanada2024-04-11Truhlar And Truhlar Attys NEGOTIATION16Xuxue Feng
1041Sinclair G IturbideItaly2024-04-27Chanay, Jeffrey A Esq QUALIFIED35Xuxue Feng
1042Leon E GauchoItaly2024-04-09Printing Dimensions RENEWAL74Onyama Limba
1043Wickens R GlickUnited Kingdom2024-04-03Buckley Miller Wright NEGOTIATION29Stephen Shaw
1044Greenwood Y OstroskyAustralia2024-04-08Truhlar And Truhlar Attys RENEWAL21Xuxue Feng
1045Cody X SaylorsAustralia2024-04-21Buckley Miller Wright UNQUALIFIED59Ivan Magalhaes
1046Maisha C NickaIndia2024-04-17Chanay, Jeffrey A Esq NEGOTIATION14Asiya Javayant
1047Mujtaba B InouyeAustralia2024-04-15Commercial Press RENEWAL21Anna Fali
1048Darci J WaycottArgentina2024-04-08Commercial Press QUALIFIED59Stephen Shaw
1049Octavia G DoeBrazil2024-04-20King, Christopher A Esq RENEWAL19Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
James M SchemmerFranceBernardo Dominic PROPOSAL
Salvatore C RimUnited KingdomAmy Elsner PROPOSAL
Tony U MorascaSpainAmy Elsner QUALIFIED
Francesco Z FlosiItalyXuxue Feng UNQUALIFIED
Greenwood O PaprockiItalyElwin Sharvill UNQUALIFIED
Adams D NickaFranceAnna Fali NEW
Tony N DarakjyBrazilIoni Bowcher QUALIFIED
Leon U OldroydCanadaAmy Elsner UNQUALIFIED
Aditya T GillianRussiaBernardo Dominic QUALIFIED
Aika O IturbideSpainAnna Fali PROPOSAL
Deepesh J InouyeBrazilAnna Fali QUALIFIED
Kaitlin O RoysterFranceAmy Elsner NEGOTIATION
Ashley J NickaRussiaIvan Magalhaes PROPOSAL
Rodrigues U OldroydBrazilBernardo Dominic PROPOSAL
Jones O SlusarskiRussiaElwin Sharvill UNQUALIFIED
Julie R KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin Y DoeFranceStephen Shaw QUALIFIED
Aditya X VocelkaSpainStephen Shaw QUALIFIED
Misaki M VenereFranceStephen Shaw NEGOTIATION
Ricardo T GillianBrazilAmy Elsner RENEWAL
Jones K TollnerAustraliaElwin Sharvill NEW
Izzy D KuskoArgentinaElwin Sharvill PROPOSAL
Ricardo Z FerenczGermanyIoni Bowcher PROPOSAL
Jeanfrancois F InouyeJapanElwin Sharvill UNQUALIFIED
Jeanfrancois B ShinkoItalyElwin Sharvill NEGOTIATION
Cody R ButtArgentinaBernardo Dominic QUALIFIED
Costa L StensethAustraliaXuxue Feng QUALIFIED
Jeanfrancois J NickaUnited KingdomAmy Elsner QUALIFIED
James K RulapaughRussiaBernardo Dominic PROPOSAL
Jefferson N GillianGermanyElwin Sharvill UNQUALIFIED
Juan T FollerAustraliaIoni Bowcher NEGOTIATION
Ashley G PoquetteBrazilAsiya Javayant NEW
Izzy W ShinkoItalyElwin Sharvill QUALIFIED
Faith O CampainUnited KingdomOnyama Limba NEW
Silvio N WaycottItalyOnyama Limba NEW
Salvatore N VenereRussiaIoni Bowcher RENEWAL
Aruna S IturbideUnited KingdomBernardo Dominic PROPOSAL
Mayumi A VenereItalyIoni Bowcher RENEWAL
Antonio X BriddickJapanIvan Magalhaes QUALIFIED
Johnson F MarrierArgentinaElwin Sharvill NEW
Ricardo L SchemmerBrazilIoni Bowcher RENEWAL
Adams P GillianRussiaAmy Elsner PROPOSAL
Deepesh F CampainBrazilBernardo Dominic RENEWAL
Smith B NestleGermanyAmy Elsner NEW
Salvatore X WaycottFranceAsiya Javayant NEGOTIATION
Sinclair Z AmigonArgentinaIoni Bowcher NEW
Francesco W OstroskyJapanAmy Elsner RENEWAL
James L VocelkaJapanStephen Shaw UNQUALIFIED
Tony N SlusarskiRussiaOnyama Limba UNQUALIFIED
Sinclair P KuskoCanadaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Isabel S Butt
Juan L Sergi
Izzy S Gillian
Misaki C Flosi
Isabel D Chui
Mujtaba J Rim
Cody F Rulapaugh
Cody C Stockham
Ricardo Q Flosi
Leja C Caldarera
Juan B Waycott
Maisha V Garufi
Izzy C Slusarski
Mayumi B Rim
Ricardo I Foller
Izzy J Stockham
Aika L Stenseth
Arvin Q Morasca
Maria M Kolmetz
Silvio O Butt
Arvin G Dilliard
Silvio E Perin
Rodrigues S Perin
Mayumi M Kolmetz
Darci R Ruta
Stacey X Malet
Clifford Y Slusarski
Leja C Bowley
Cody R Perin
Kadeem C Figeroa
Antonio P Campain
Jones Z Gillian
Claire F Briddick
Ricardo E Figeroa
Nicolas C Nestle
Juan J Venere
Greenwood J Nestle
Munro D Gaucho
Maisha I Schemmer
Darci F Perin
Wickens W Wieser
Alejandro D Dilliard
Jones I Whobrey
Costa M Foller
Francesco L Malet
Faith L Rulapaugh
Cody U Royster
Mayumi L Stockham
Kaitlin L Tollner
Deepesh U Maclead
IdCountryDate
1000India2024-04-16
1001France2024-04-09
1002Germany2024-04-18
1003Argentina2024-04-22
1004Russia2024-04-28
1005Canada2024-04-05
1006Australia2024-04-28
1007Argentina2024-04-03
1008Russia2024-04-28
1009United Kingdom2024-04-08
1010Germany2024-04-14
1011Germany2024-04-01
1012Italy2024-04-09
1013Japan2024-04-03
1014Italy2024-04-01
1015Australia2024-04-16
1016Argentina2024-04-03
1017France2024-04-28
1018India2024-04-27
1019India2024-04-17
1020France2024-04-19
1021Argentina2024-04-16
1022France2024-04-22
1023France2024-04-21
1024Spain2024-04-08
1025Canada2024-04-16
1026France2024-04-20
1027India2024-04-23
1028France2024-04-25
1029India2024-04-09
1030Russia2024-04-18
1031Russia2024-04-20
1032Argentina2024-04-10
1033Italy2024-04-07
1034Argentina2024-04-14
1035United Kingdom2024-04-13
1036Spain2024-04-22
1037India2024-04-16
1038Brazil2024-04-15
1039Russia2024-03-31
1040Brazil2024-04-25
1041France2024-04-05
1042Brazil2024-04-17
1043France2024-04-26
1044Spain2024-04-20
1045Japan2024-04-21
1046Canada2024-04-13
1047France2024-04-23
1048Germany2024-04-06
1049Japan2024-04-16

On-Demand Data

NameIdCountryDate
James G Albares1000Brazil2024-04-03
Greenwood Q Sergi1001Italy2024-04-18
Ashley X Inouye1002Argentina2024-04-17
Darci S Nicka1003Argentina2024-04-27
Leon U Maclead1004Australia2024-04-09
Misaki U Poquette1005United Kingdom2024-04-28
Darci Y Amigon1006Spain2024-04-23
Murillo O Garufi1007Italy2024-04-20
Nicolas J Nicka1008Brazil2024-04-25
Jeanfrancois P Maclead1009Italy2024-04-13
Greenwood X Foller1010United Kingdom2024-04-09
Sinclair V Gillian1011Spain2024-04-07
Rodrigues H Stockham1012Canada2024-04-13
Smith L Glick1013Argentina2024-04-12
Octavia S Morasca1014Russia2024-04-25
Emily D Chui1015Argentina2024-04-05
Wickens Y Ostrosky1016Spain2024-04-13
Deepesh F Waycott1017Russia2024-04-26
Juan M Slusarski1018Italy2024-04-26
Jeanfrancois V Glick1019Germany2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel H DarakjyUnited KingdomAmy Elsner QUALIFIED
Smith K StockhamGermanyElwin Sharvill NEGOTIATION
Francesco L BowleyBrazilAnna Fali UNQUALIFIED
Murillo O FlosiIndiaBernardo Dominic UNQUALIFIED
Jefferson C PoquetteGermanyStephen Shaw PROPOSAL
Maria Y MorascaSpainIoni Bowcher QUALIFIED
Jeanfrancois Z GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Claire N ShinkoUnited KingdomAsiya Javayant RENEWAL
Kadeem S WaycottJapanAnna Fali UNQUALIFIED
Ivar Y DilliardItalyAsiya Javayant QUALIFIED
Alejandro E FollerUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh F StockhamGermanyStephen Shaw NEW
Adams J RoysterItalyAnna Fali PROPOSAL
Isabel P BowleyCanadaAmy Elsner NEW
Adams U RoysterAustraliaXuxue Feng QUALIFIED
Aruna T KolmetzArgentinaAnna Fali NEW
Faith N VenereSpainAnna Fali UNQUALIFIED
Ricardo O CaldareraAustraliaAnna Fali NEW
Ashley F DilliardFranceXuxue Feng RENEWAL
Jefferson F GauchoGermanyElwin Sharvill PROPOSAL
Adams S SergiFranceAnna Fali NEGOTIATION
Maria V OstroskyUnited KingdomAsiya Javayant RENEWAL
Darci D FlosiAustraliaStephen Shaw NEW
James A ShinkoSpainBernardo Dominic PROPOSAL
Aika K MaletFranceIvan Magalhaes NEW
Clifford Q DilliardItalyXuxue Feng RENEWAL
Maria N InouyeUnited KingdomXuxue Feng NEGOTIATION
Morrow S DilliardUnited KingdomAmy Elsner NEW
Deepesh M DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Maria W DilliardItalyAnna Fali NEW
Clifford M SchemmerRussiaStephen Shaw NEGOTIATION
Jefferson L DarakjySpainElwin Sharvill UNQUALIFIED
Jeanfrancois Z SaylorsBrazilIoni Bowcher NEGOTIATION
Ashley F DilliardJapanIvan Magalhaes NEGOTIATION
Aika D CaldareraRussiaStephen Shaw NEW
Murillo X VenereItalyBernardo Dominic PROPOSAL
David N VocelkaItalyAmy Elsner RENEWAL
Kaitlin P PaprockiRussiaAnna Fali NEGOTIATION
Mujtaba S BologniaAustraliaStephen Shaw QUALIFIED
Johnson O MarrierBrazilStephen Shaw 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>