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
Munro S FlosiUnited KingdomAsiya Javayant NEW
Johnson K WaycottSpainAsiya Javayant RENEWAL
Jones Y AlbaresArgentinaIoni Bowcher PROPOSAL
Costa W OldroydIndiaBernardo Dominic UNQUALIFIED
Leja J GlickGermanyAsiya Javayant NEW
Darci S PerinIndiaElwin Sharvill RENEWAL
Izzy J TollnerSpainXuxue Feng QUALIFIED
Jones X KuskoIndiaBernardo Dominic PROPOSAL
Deepesh Z FerenczIndiaAnna Fali UNQUALIFIED
Misaki E BologniaUnited KingdomXuxue Feng UNQUALIFIED
Faith A PoquetteArgentinaAmy Elsner QUALIFIED
Johnson A FerenczAustraliaAnna Fali UNQUALIFIED
Wickens Z IturbideGermanyAnna Fali NEGOTIATION
Greenwood P KuskoUnited KingdomIoni Bowcher PROPOSAL
Izzy V MarrierUnited KingdomStephen Shaw UNQUALIFIED
Darci R WieserSpainBernardo Dominic NEW
Rodrigues Z RutaAustraliaElwin Sharvill RENEWAL
Jennifer Q RulapaughBrazilStephen Shaw UNQUALIFIED
Emily X RoysterItalyOnyama Limba PROPOSAL
Ricardo R ChuiArgentinaIvan Magalhaes QUALIFIED
Wickens I WaycottJapanAnna Fali UNQUALIFIED
James Q GillianItalyElwin Sharvill QUALIFIED
Jones P WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer M FollerBrazilStephen Shaw NEW
Jeanfrancois Z GauchoArgentinaOnyama Limba NEGOTIATION
James E GlickCanadaXuxue Feng QUALIFIED
Faith X VocelkaIndiaIvan Magalhaes PROPOSAL
Antonio Y PoquetteIndiaIvan Magalhaes UNQUALIFIED
James C OstroskyBrazilBernardo Dominic NEW
Juan B DarakjyBrazilIvan Magalhaes NEW
David C FollerJapanIvan Magalhaes RENEWAL
Emily D AmigonAustraliaAmy Elsner PROPOSAL
Jones T DarakjyJapanStephen Shaw QUALIFIED
Costa U RutaUnited KingdomIvan Magalhaes NEGOTIATION
Silvio O GlickArgentinaXuxue Feng PROPOSAL
Misaki X SlusarskiItalyStephen Shaw NEW
Darci S CaldareraRussiaAmy Elsner NEW
Isabel B RoysterIndiaAmy Elsner RENEWAL
Cody B SchemmerItalyIoni Bowcher PROPOSAL
Clifford P FigeroaIndiaStephen Shaw PROPOSAL
Faith E AmigonFranceIvan Magalhaes NEW
Adams R MaletRussiaOnyama Limba NEW
Clifford E SaylorsBrazilIvan Magalhaes RENEWAL
Sinclair B NickaGermanyAsiya Javayant NEW
Jones X PaprockiCanadaElwin Sharvill NEW
Darci A ChuiUnited KingdomIoni Bowcher NEW
Jennifer N VocelkaJapanAmy Elsner NEW
Antonio Z ShinkoJapanBernardo Dominic PROPOSAL
Leja M GlickAustraliaOnyama Limba NEGOTIATION
Johnson C NestleItalyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Tony R SergiSpainBernardo Dominic PROPOSAL
Nicolas H DoeFranceIvan Magalhaes QUALIFIED
Jefferson L StensethBrazilIvan Magalhaes NEW
Izzy L ShinkoAustraliaElwin Sharvill NEW
Jeanfrancois B BriddickJapanIoni Bowcher NEGOTIATION
Aruna L AmigonUnited KingdomIoni Bowcher RENEWAL
Adams U FollerBrazilAsiya Javayant NEGOTIATION
Stacey T GarufiCanadaXuxue Feng NEGOTIATION
James J CaudyItalyIoni Bowcher NEW
Deepesh D CaldareraGermanyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson Z MacleadArgentina2024-04-18King, Christopher A Esq PROPOSAL76Stephen Shaw
1001Wickens I NestleRussia2024-04-20Rousseaux, Michael Esq NEGOTIATION51Stephen Shaw
1002Kaitlin M PaprockiArgentina2024-04-09Morlong Associates PROPOSAL9Amy Elsner
1003Kaitlin N RulapaughRussia2024-04-15Dorl, James J Esq PROPOSAL66Anna Fali
1004Isabel U DilliardArgentina2024-04-17Truhlar And Truhlar Attys NEGOTIATION73Ioni Bowcher
1005Jones M FollerFrance2024-03-31Chanay, Jeffrey A Esq NEW51Amy Elsner
1006Arvin D OstroskyItaly2024-03-29Chanay, Jeffrey A Esq RENEWAL76Bernardo Dominic
1007Aruna K SchemmerGermany2024-03-30Dorl, James J Esq PROPOSAL94Anna Fali
1008Mayumi I ButtAustralia2024-04-21Feltz Printing Service RENEWAL46Asiya Javayant
1009Clifford K WhobreySpain2024-04-21Rangoni Of Florence NEW69Ivan Magalhaes
1010Leon I NestleGermany2024-03-28King, Christopher A Esq UNQUALIFIED40Amy Elsner
1011Arvin A WieserJapan2024-04-20Rousseaux, Michael Esq NEGOTIATION70Stephen Shaw
1012Claire Y RutaSpain2024-04-15Rousseaux, Michael Esq UNQUALIFIED32Ivan Magalhaes
1013Aruna P AmigonItaly2024-03-31Commercial Press RENEWAL3Bernardo Dominic
1014Morrow K RutaGermany2024-04-06Rousseaux, Michael Esq NEW57Ioni Bowcher
1015Mujtaba B KuskoSpain2024-04-17Rousseaux, Michael Esq NEGOTIATION9Anna Fali
1016Stacey F ShinkoBrazil2024-04-09King, Christopher A Esq UNQUALIFIED15Xuxue Feng
1017Jefferson I StensethArgentina2024-04-22Rousseaux, Michael Esq PROPOSAL89Xuxue Feng
1018Antonio C ChuiGermany2024-03-31Rangoni Of Florence UNQUALIFIED93Stephen Shaw
1019Antonio L SlusarskiCanada2024-03-27Chapman, Ross E Esq NEGOTIATION2Amy Elsner
1020Jeanfrancois Q OldroydIndia2024-04-20Dorl, James J Esq RENEWAL7Ioni Bowcher
1021Emily J MarrierAustralia2024-04-11Buckley Miller Wright RENEWAL22Anna Fali
1022Izzy A GlickSpain2024-04-01Benton, John B Jr PROPOSAL37Bernardo Dominic
1023Murillo U OldroydAustralia2024-04-09Morlong Associates QUALIFIED99Ioni Bowcher
1024Mayumi O ButtItaly2024-04-18Rousseaux, Michael Esq UNQUALIFIED42Onyama Limba
1025Kadeem E FigeroaIndia2024-04-18Buckley Miller Wright RENEWAL33Amy Elsner
1026Antonio V SchemmerCanada2024-03-31Feltz Printing Service PROPOSAL34Asiya Javayant
1027Morrow R IturbideGermany2024-04-11Truhlar And Truhlar Attys RENEWAL65Stephen Shaw
1028Rodrigues X MacleadIndia2024-04-02Rangoni Of Florence UNQUALIFIED46Xuxue Feng
1029Darci A IturbideJapan2024-04-09Truhlar And Truhlar Attys NEW67Ivan Magalhaes
1030Mujtaba H KuskoUnited Kingdom2024-04-25Rangoni Of Florence PROPOSAL34Amy Elsner
1031Francesco J SaylorsUnited Kingdom2024-04-09Printing Dimensions NEW17Asiya Javayant
1032Costa B FlosiAustralia2024-04-18Buckley Miller Wright QUALIFIED68Ioni Bowcher
1033Faith X VocelkaAustralia2024-04-20Chapman, Ross E Esq PROPOSAL10Ivan Magalhaes
1034Ashley G CaldareraJapan2024-04-03Truhlar And Truhlar Attys RENEWAL98Asiya Javayant
1035Cody G WieserFrance2024-04-11Morlong Associates NEW36Onyama Limba
1036Wickens I KolmetzSpain2024-04-23Rangoni Of Florence RENEWAL21Onyama Limba
1037Arvin H GillianArgentina2024-04-16Truhlar And Truhlar Attys NEGOTIATION47Elwin Sharvill
1038Murillo P AlbaresIndia2024-04-03Morlong Associates UNQUALIFIED22Stephen Shaw
1039Cody M AmigonArgentina2024-04-24King, Christopher A Esq NEGOTIATION59Onyama Limba
1040Aruna R OldroydCanada2024-04-05Truhlar And Truhlar Attys NEW55Xuxue Feng
1041Ashley K BriddickBrazil2024-04-11Printing Dimensions UNQUALIFIED76Asiya Javayant
1042Sinclair F ButtGermany2024-04-23Feltz Printing Service NEGOTIATION28Anna Fali
1043Aika T StockhamIndia2024-03-31Feiner Bros PROPOSAL11Stephen Shaw
1044Leon U FerenczCanada2024-04-12Rangoni Of Florence PROPOSAL28Ivan Magalhaes
1045Salvatore R AmigonFrance2024-04-13Chemel, James L Cpa NEW48Xuxue Feng
1046Tony S AlbaresCanada2024-04-20Commercial Press QUALIFIED52Amy Elsner
1047Costa Y ShinkoAustralia2024-04-22Rangoni Of Florence QUALIFIED14Bernardo Dominic
1048Ricardo O FerenczArgentina2024-04-14Chemel, James L Cpa RENEWAL2Ioni Bowcher
1049Stacey J KuskoFrance2024-04-13King, Christopher A Esq QUALIFIED28Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams X OstroskyItalyIoni Bowcher RENEWAL
Claire R RutaUnited KingdomIvan Magalhaes NEGOTIATION
Juan P GarufiFranceBernardo Dominic PROPOSAL
Greenwood L NestleCanadaAnna Fali UNQUALIFIED
Aika P GarufiAustraliaBernardo Dominic NEGOTIATION
Morrow G DoeGermanyIvan Magalhaes RENEWAL
Deepesh R PoquetteUnited KingdomXuxue Feng NEGOTIATION
Murillo F RimSpainAmy Elsner UNQUALIFIED
Aditya N VenereJapanAmy Elsner NEW
Cody W MarrierRussiaStephen Shaw PROPOSAL
Murillo F VocelkaArgentinaIvan Magalhaes QUALIFIED
Julie H DarakjyIndiaElwin Sharvill QUALIFIED
James P FigeroaBrazilAnna Fali NEGOTIATION
Kaitlin Y MorascaItalyStephen Shaw RENEWAL
Isabel H BowleySpainStephen Shaw RENEWAL
Jeanfrancois Z ChuiJapanIoni Bowcher QUALIFIED
Kadeem K PoquetteIndiaBernardo Dominic UNQUALIFIED
Tony D DoeGermanyIoni Bowcher RENEWAL
Ivar P WaycottGermanyXuxue Feng PROPOSAL
Adams N TollnerIndiaElwin Sharvill NEW
Nicolas J MarrierUnited KingdomAsiya Javayant NEW
Kadeem A MarrierGermanyAnna Fali RENEWAL
Antonio W ChuiRussiaStephen Shaw UNQUALIFIED
Claire C SaylorsBrazilAsiya Javayant RENEWAL
Kaitlin V ChuiRussiaOnyama Limba PROPOSAL
Emily O SergiIndiaBernardo Dominic NEW
Greenwood T InouyeJapanIoni Bowcher QUALIFIED
Smith L SergiIndiaXuxue Feng NEW
Morrow E CampainIndiaAmy Elsner PROPOSAL
Adams Z MorascaGermanyBernardo Dominic QUALIFIED
Ricardo P AmigonBrazilAsiya Javayant RENEWAL
Kadeem X AmigonUnited KingdomXuxue Feng QUALIFIED
Izzy V InouyeCanadaElwin Sharvill PROPOSAL
Emily E VenereArgentinaBernardo Dominic RENEWAL
Adams G DarakjySpainAsiya Javayant NEW
Misaki S CaudyUnited KingdomAsiya Javayant QUALIFIED
Leon D StockhamSpainIoni Bowcher UNQUALIFIED
Jefferson R WieserBrazilIvan Magalhaes PROPOSAL
Clifford G StockhamAustraliaIvan Magalhaes RENEWAL
Isabel H RoysterJapanAnna Fali NEW
Julie T FerenczUnited KingdomAnna Fali UNQUALIFIED
Johnson T MaletBrazilStephen Shaw PROPOSAL
Silvio P RulapaughJapanXuxue Feng QUALIFIED
Maria S ButtArgentinaElwin Sharvill PROPOSAL
Ashley P OstroskyIndiaBernardo Dominic NEGOTIATION
Jennifer O GauchoSpainAsiya Javayant NEW
Maisha Q SaylorsUnited KingdomIoni Bowcher QUALIFIED
Emily T VenereCanadaIoni Bowcher PROPOSAL
Cody X VenereUnited KingdomAsiya Javayant NEW
Maisha I PaprockiSpainStephen Shaw UNQUALIFIED
Frozen Columns
Name
Octavia Z Caldarera
Murillo H Malet
Rodrigues Z Garufi
Ivar K Foller
Smith U Shinko
Arvin M Ferencz
Stacey A Oldroyd
Jennifer O Inouye
Wickens Z Inouye
Misaki Y Perin
Adams Z Perin
Mujtaba C Gaucho
Maria L Ostrosky
Alejandro P Caudy
Sinclair N Gaucho
Morrow F Nestle
Ivar E Vocelka
Francesco I Morasca
Chavez R Perin
Maria R Caldarera
Francesco Y Venere
Johnson I Bowley
Nicolas H Flosi
Munro C Ostrosky
Maisha D Garufi
Mujtaba J Chui
Wickens C Dilliard
Smith X Campain
Kaitlin I Bowley
Jones I Dilliard
Antonio B Rulapaugh
Stacey P Vocelka
Costa T Kusko
Aika T Chui
Izzy L Ferencz
Mujtaba S Ferencz
Nicolas B Rim
Jones T Kolmetz
Antonio B Perin
Aika V Inouye
Adams W Sergi
Ricardo A Iturbide
James S Whobrey
Murillo T Glick
Silvio E Caudy
Juan U Bowley
Johnson L Rim
Francesco Y Perin
Kadeem S Tollner
Smith B Iturbide
IdCountryDate
1000Japan2024-04-04
1001Germany2024-04-22
1002France2024-03-31
1003Canada2024-04-08
1004Japan2024-04-11
1005France2024-04-13
1006Russia2024-04-23
1007Italy2024-04-05
1008Spain2024-04-10
1009Italy2024-04-10
1010Italy2024-04-17
1011India2024-04-01
1012Canada2024-04-20
1013Brazil2024-03-28
1014Spain2024-04-22
1015United Kingdom2024-04-01
1016Canada2024-04-09
1017Russia2024-04-22
1018Spain2024-04-06
1019Spain2024-04-25
1020Italy2024-04-01
1021India2024-04-25
1022Italy2024-04-08
1023Spain2024-03-31
1024Russia2024-04-13
1025United Kingdom2024-04-22
1026Japan2024-03-28
1027Brazil2024-04-20
1028Japan2024-04-24
1029Brazil2024-04-15
1030Germany2024-04-22
1031Japan2024-04-01
1032India2024-04-07
1033Russia2024-04-05
1034Japan2024-04-15
1035Russia2024-04-06
1036India2024-04-05
1037Russia2024-04-04
1038Spain2024-04-09
1039India2024-04-06
1040Germany2024-03-28
1041Italy2024-04-02
1042Australia2024-04-15
1043Argentina2024-03-29
1044Russia2024-04-20
1045Argentina2024-04-10
1046Canada2024-04-08
1047Spain2024-04-12
1048Spain2024-04-19
1049Spain2024-04-22

On-Demand Data

NameIdCountryDate
Clifford E Flosi1000Brazil2024-03-27
Mujtaba L Vocelka1001Argentina2024-03-28
Aditya F Butt1002Argentina2024-04-12
Ashley Z Briddick1003Canada2024-04-07
Cody I Poquette1004Argentina2024-04-07
Emily Y Caldarera1005Spain2024-04-10
Isabel F Ruta1006Italy2024-04-10
Rodrigues Q Albares1007India2024-03-30
Munro C Garufi1008Argentina2024-04-11
Emily H Marrier1009Japan2024-04-25
Arvin G Garufi1010Japan2024-03-28
Kaitlin M Briddick1011Brazil2024-04-02
Salvatore Z Perin1012France2024-04-17
Alejandro V Butt1013Spain2024-04-23
Johnson H Poquette1014United Kingdom2024-04-16
Nicolas G Campain1015Germany2024-04-23
Aruna M Stockham1016Brazil2024-04-18
Maisha S Chui1017India2024-04-03
Chavez C Tollner1018Germany2024-04-21
Salvatore P Gaucho1019United Kingdom2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily U DarakjyGermanyBernardo Dominic PROPOSAL
Faith E MarrierArgentinaBernardo Dominic RENEWAL
Ivar C MarrierFranceStephen Shaw NEGOTIATION
Mujtaba K DoeArgentinaBernardo Dominic NEGOTIATION
Isabel X OldroydArgentinaAnna Fali NEGOTIATION
Chavez N NestleAustraliaXuxue Feng NEGOTIATION
Munro X MacleadGermanyXuxue Feng PROPOSAL
Izzy W FollerFranceIoni Bowcher QUALIFIED
Rodrigues T PerinRussiaXuxue Feng PROPOSAL
Ashley R CaldareraIndiaAmy Elsner NEGOTIATION
Jennifer Y BowleySpainAnna Fali PROPOSAL
Francesco O NickaSpainAsiya Javayant QUALIFIED
Stacey E KolmetzIndiaAsiya Javayant PROPOSAL
Kadeem T PaprockiIndiaAmy Elsner QUALIFIED
Salvatore T SlusarskiUnited KingdomOnyama Limba RENEWAL
Deepesh P WieserArgentinaElwin Sharvill NEGOTIATION
Adams B GillianJapanXuxue Feng RENEWAL
Adams A MacleadCanadaStephen Shaw QUALIFIED
Francesco K NickaGermanyXuxue Feng PROPOSAL
Ricardo M BowleyAustraliaElwin Sharvill NEGOTIATION
Tony W TollnerCanadaAnna Fali PROPOSAL
Adams Z InouyeArgentinaXuxue Feng QUALIFIED
Costa C SchemmerFranceIvan Magalhaes NEW
Tony C FlosiUnited KingdomAnna Fali RENEWAL
Costa W NestleItalyStephen Shaw UNQUALIFIED
Aditya W RimBrazilBernardo Dominic UNQUALIFIED
Sinclair Q ButtFranceAnna Fali QUALIFIED
Faith C VocelkaGermanyElwin Sharvill RENEWAL
Ivar J MorascaJapanIoni Bowcher PROPOSAL
Kadeem Z WaycottSpainAsiya Javayant NEGOTIATION
Leja H MarrierGermanyStephen Shaw NEGOTIATION
Costa H ShinkoJapanElwin Sharvill QUALIFIED
Morrow C SaylorsRussiaAsiya Javayant UNQUALIFIED
Francesco K MaletSpainBernardo Dominic UNQUALIFIED
Kadeem I VenereSpainAsiya Javayant QUALIFIED
Stacey G MacleadSpainAsiya Javayant QUALIFIED
Juan U MaletItalyXuxue Feng UNQUALIFIED
Clifford B VenereSpainAnna Fali NEGOTIATION
Smith I CaudyGermanyIvan Magalhaes NEW
Arvin D InouyeBrazilIoni Bowcher PROPOSAL

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