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
Misaki X RutaSpainIoni Bowcher QUALIFIED
Antonio I NickaUnited KingdomXuxue Feng QUALIFIED
Juan W AlbaresGermanyAnna Fali RENEWAL
Alejandro Q AlbaresSpainElwin Sharvill QUALIFIED
Sinclair F GauchoAustraliaStephen Shaw QUALIFIED
Rodrigues F VocelkaBrazilOnyama Limba QUALIFIED
Maria C FerenczItalyStephen Shaw PROPOSAL
Leon C KuskoAustraliaElwin Sharvill UNQUALIFIED
Sinclair B SlusarskiFranceIoni Bowcher QUALIFIED
Stacey H GauchoBrazilAmy Elsner NEGOTIATION
Francesco S MorascaJapanElwin Sharvill PROPOSAL
Cody O ButtArgentinaBernardo Dominic RENEWAL
Johnson W MarrierSpainBernardo Dominic QUALIFIED
Jennifer O ShinkoFranceIoni Bowcher RENEWAL
Juan G PoquetteAustraliaBernardo Dominic QUALIFIED
Claire U RutaJapanAnna Fali PROPOSAL
Arvin E KolmetzSpainOnyama Limba PROPOSAL
Darci Z KuskoItalyXuxue Feng NEGOTIATION
Mayumi M CaudyIndiaStephen Shaw QUALIFIED
Johnson N GlickBrazilXuxue Feng UNQUALIFIED
Cody W CampainIndiaAnna Fali UNQUALIFIED
Ivar C KolmetzCanadaIvan Magalhaes PROPOSAL
Jennifer O ButtGermanyOnyama Limba NEGOTIATION
Isabel P AmigonIndiaBernardo Dominic PROPOSAL
Mayumi D ButtArgentinaBernardo Dominic NEW
Jennifer G NickaIndiaOnyama Limba PROPOSAL
Smith U VenereGermanyElwin Sharvill NEGOTIATION
Rodrigues V BowleyRussiaIvan Magalhaes NEGOTIATION
Maisha Y GauchoItalyBernardo Dominic NEW
Sinclair E DilliardRussiaIoni Bowcher QUALIFIED
Stacey T RutaBrazilElwin Sharvill UNQUALIFIED
Jones J RimCanadaAsiya Javayant UNQUALIFIED
Johnson V RoysterBrazilOnyama Limba PROPOSAL
Juan T PoquetteArgentinaOnyama Limba NEGOTIATION
Julie O DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Izzy B MacleadAustraliaStephen Shaw NEGOTIATION
Kaitlin T GauchoUnited KingdomStephen Shaw RENEWAL
Kaitlin G BowleySpainElwin Sharvill NEGOTIATION
Isabel I RoysterFranceAmy Elsner QUALIFIED
Maria D OldroydAustraliaBernardo Dominic UNQUALIFIED
Jones I GlickUnited KingdomIoni Bowcher RENEWAL
Leon D NestleSpainBernardo Dominic RENEWAL
Smith J SchemmerBrazilAnna Fali UNQUALIFIED
Costa F MacleadGermanyIvan Magalhaes NEW
Mujtaba D PoquetteArgentinaIvan Magalhaes PROPOSAL
Ivar S NestleBrazilElwin Sharvill UNQUALIFIED
Leon U OstroskyFranceStephen Shaw NEW
Deepesh B WhobreyFranceAnna Fali PROPOSAL
Murillo X SergiJapanAnna Fali UNQUALIFIED
Aika F StockhamRussiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin Z VenereRussiaBernardo Dominic QUALIFIED
Ricardo C MaletIndiaIvan Magalhaes UNQUALIFIED
Claire E StensethSpainIoni Bowcher NEW
Silvio S MaletGermanyAnna Fali NEGOTIATION
Isabel H VenereFranceBernardo Dominic RENEWAL
Ivar Y AmigonArgentinaStephen Shaw NEW
Tony P CaldareraItalyXuxue Feng NEGOTIATION
Julie Z KolmetzSpainXuxue Feng QUALIFIED
Sinclair B NestleArgentinaElwin Sharvill RENEWAL
Jeanfrancois D KolmetzAustraliaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia R AlbaresSpain2024-04-08Benton, John B Jr QUALIFIED2Onyama Limba
1001James T NickaItaly2024-04-16Chemel, James L Cpa UNQUALIFIED77Anna Fali
1002Johnson A MaletBrazil2024-04-07Chapman, Ross E Esq NEGOTIATION29Elwin Sharvill
1003James Y TollnerItaly2024-04-21Morlong Associates NEW77Xuxue Feng
1004Arvin N MaletSpain2024-04-07Morlong Associates PROPOSAL27Elwin Sharvill
1005Costa Z DilliardAustralia2024-04-16Chanay, Jeffrey A Esq NEGOTIATION68Ioni Bowcher
1006Darci I FollerAustralia2024-04-16Printing Dimensions UNQUALIFIED67Xuxue Feng
1007Johnson U OldroydArgentina2024-04-05Buckley Miller Wright UNQUALIFIED64Onyama Limba
1008Jones P PaprockiJapan2024-03-31Benton, John B Jr NEW92Stephen Shaw
1009Leon X BriddickAustralia2024-03-30Commercial Press PROPOSAL97Xuxue Feng
1010Murillo Q SchemmerUnited Kingdom2024-04-09Buckley Miller Wright UNQUALIFIED93Asiya Javayant
1011Francesco F IturbideFrance2024-03-26Feiner Bros NEGOTIATION7Ivan Magalhaes
1012Adams I GlickCanada2024-04-03Chapman, Ross E Esq PROPOSAL24Onyama Limba
1013Adams Y FollerSpain2024-04-16Morlong Associates PROPOSAL95Anna Fali
1014Leja E AlbaresJapan2024-04-24Commercial Press NEGOTIATION31Bernardo Dominic
1015Jeanfrancois A SaylorsIndia2024-04-08Chapman, Ross E Esq NEW74Ioni Bowcher
1016Rodrigues T KolmetzIndia2024-04-08Chapman, Ross E Esq NEW79Anna Fali
1017Isabel C NickaJapan2024-04-20Buckley Miller Wright NEW60Stephen Shaw
1018Mayumi A CampainCanada2024-04-01Truhlar And Truhlar Attys UNQUALIFIED56Anna Fali
1019Isabel H KolmetzJapan2024-04-24Truhlar And Truhlar Attys NEGOTIATION16Ivan Magalhaes
1020Antonio F MacleadArgentina2024-04-04Printing Dimensions RENEWAL60Asiya Javayant
1021Jennifer R WhobreyRussia2024-04-08Printing Dimensions NEGOTIATION65Stephen Shaw
1022Misaki G SergiRussia2024-04-02King, Christopher A Esq UNQUALIFIED46Asiya Javayant
1023Salvatore U RutaGermany2024-04-13Truhlar And Truhlar Attys NEGOTIATION29Stephen Shaw
1024Jones F MorascaItaly2024-04-13Feiner Bros NEW23Stephen Shaw
1025Emily O RoysterUnited Kingdom2024-04-02Feiner Bros RENEWAL6Anna Fali
1026Salvatore R BologniaAustralia2024-03-29Rousseaux, Michael Esq NEGOTIATION73Ioni Bowcher
1027Leja V MorascaAustralia2024-03-28King, Christopher A Esq PROPOSAL44Stephen Shaw
1028Stacey H NestleUnited Kingdom2024-04-04Truhlar And Truhlar Attys RENEWAL63Xuxue Feng
1029Antonio O GlickIndia2024-04-19King, Christopher A Esq RENEWAL38Ioni Bowcher
1030Octavia W VenereSpain2024-04-12Morlong Associates NEW71Ioni Bowcher
1031Jeanfrancois M BowleyGermany2024-03-30Dorl, James J Esq UNQUALIFIED71Anna Fali
1032Octavia K GlickItaly2024-04-11Feiner Bros NEW26Stephen Shaw
1033Misaki X KuskoJapan2024-04-11Dorl, James J Esq QUALIFIED81Elwin Sharvill
1034Leja X SaylorsUnited Kingdom2024-03-31Benton, John B Jr RENEWAL77Bernardo Dominic
1035James I PoquetteIndia2024-04-07Commercial Press UNQUALIFIED45Anna Fali
1036Arvin N BriddickSpain2024-04-03Benton, John B Jr PROPOSAL54Amy Elsner
1037Antonio T RutaArgentina2024-04-04Chanay, Jeffrey A Esq NEGOTIATION67Ivan Magalhaes
1038Aruna V VenereBrazil2024-04-20Feltz Printing Service NEW8Onyama Limba
1039Leon K KolmetzCanada2024-04-19Benton, John B Jr PROPOSAL10Elwin Sharvill
1040Ricardo C TollnerBrazil2024-04-18King, Christopher A Esq RENEWAL35Asiya Javayant
1041Deepesh R MarrierItaly2024-03-29Buckley Miller Wright NEGOTIATION67Amy Elsner
1042Octavia L BriddickAustralia2024-04-21Feltz Printing Service QUALIFIED90Ioni Bowcher
1043Faith W MaletJapan2024-04-13Chemel, James L Cpa QUALIFIED59Onyama Limba
1044Tony E MacleadIndia2024-04-21Rousseaux, Michael Esq PROPOSAL93Bernardo Dominic
1045Juan E AlbaresSpain2024-04-01Rousseaux, Michael Esq UNQUALIFIED21Elwin Sharvill
1046Isabel P DoeBrazil2024-04-19Benton, John B Jr NEGOTIATION89Elwin Sharvill
1047Chavez E RutaItaly2024-03-30Dorl, James J Esq NEW85Onyama Limba
1048Maria B MaletArgentina2024-03-29Chemel, James L Cpa NEGOTIATION72Stephen Shaw
1049Emily W WaycottAustralia2024-04-07Chapman, Ross E Esq QUALIFIED32Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Murillo S IturbideBrazilIoni Bowcher PROPOSAL
Nicolas E MarrierIndiaIvan Magalhaes PROPOSAL
Rodrigues S PoquetteFranceElwin Sharvill NEW
Alejandro T DarakjyRussiaAmy Elsner NEW
Leja M DarakjyUnited KingdomAmy Elsner NEGOTIATION
Isabel I GarufiRussiaXuxue Feng RENEWAL
Sinclair B InouyeGermanyBernardo Dominic RENEWAL
Chavez S GauchoAustraliaBernardo Dominic QUALIFIED
Nicolas J WaycottCanadaAsiya Javayant PROPOSAL
Jefferson N MarrierArgentinaIvan Magalhaes QUALIFIED
Francesco J PerinFranceOnyama Limba PROPOSAL
Faith Y MorascaJapanBernardo Dominic PROPOSAL
Maisha V RoysterArgentinaXuxue Feng UNQUALIFIED
Adams E FlosiCanadaAsiya Javayant UNQUALIFIED
Maisha O RoysterBrazilAsiya Javayant UNQUALIFIED
Morrow R DoeAustraliaAnna Fali NEGOTIATION
Adams J VenereRussiaElwin Sharvill NEW
Mayumi N AmigonUnited KingdomBernardo Dominic QUALIFIED
Kaitlin U KuskoCanadaElwin Sharvill UNQUALIFIED
Chavez X BriddickItalyXuxue Feng RENEWAL
Francesco X SergiSpainAmy Elsner QUALIFIED
Aika N MaletUnited KingdomElwin Sharvill QUALIFIED
Isabel Z RimSpainIoni Bowcher RENEWAL
Mayumi M GillianItalyIoni Bowcher QUALIFIED
Clifford Z OldroydGermanyOnyama Limba RENEWAL
Arvin T StockhamItalyXuxue Feng NEGOTIATION
Morrow N RutaFranceIoni Bowcher RENEWAL
Jefferson M StockhamIndiaStephen Shaw UNQUALIFIED
Stacey L AmigonCanadaXuxue Feng UNQUALIFIED
Murillo V KuskoItalyBernardo Dominic NEW
Morrow F WaycottRussiaOnyama Limba PROPOSAL
Cody C ChuiUnited KingdomAnna Fali RENEWAL
Izzy B GlickUnited KingdomOnyama Limba NEGOTIATION
Smith F MorascaItalyIoni Bowcher NEW
Rodrigues J ButtUnited KingdomAnna Fali QUALIFIED
Mayumi X MacleadAustraliaAnna Fali PROPOSAL
Tony K CaldareraIndiaXuxue Feng RENEWAL
Adams X RoysterRussiaAnna Fali RENEWAL
Aruna M FerenczUnited KingdomIoni Bowcher NEW
Salvatore M DilliardFranceAmy Elsner UNQUALIFIED
Chavez S StockhamJapanOnyama Limba UNQUALIFIED
Jefferson A ChuiAustraliaStephen Shaw NEW
Clifford S DoeSpainAnna Fali RENEWAL
Cody L FlosiIndiaStephen Shaw RENEWAL
Claire R IturbideSpainElwin Sharvill NEGOTIATION
Misaki K TollnerItalyOnyama Limba QUALIFIED
James L WhobreyArgentinaAnna Fali NEW
Murillo I BowleyItalyXuxue Feng PROPOSAL
Maria V WhobreyArgentinaAnna Fali QUALIFIED
Ivar T PaprockiAustraliaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Maisha Y Foller
Maisha B Ferencz
Tony B Tollner
Sinclair K Kolmetz
Johnson U Caudy
Kadeem T Stenseth
Maria U Garufi
Johnson F Ruta
Octavia I Amigon
Leja M Slusarski
Misaki V Nestle
Jeanfrancois M Glick
Nicolas O Stenseth
Aruna U Ostrosky
Salvatore L Caudy
Johnson G Butt
Maisha V Paprocki
Smith P Waycott
Smith O Malet
Jefferson B Schemmer
Smith U Albares
Wickens G Gaucho
Emily S Albares
Deepesh C Sergi
Arvin T Tollner
Johnson Y Iturbide
Francesco V Foller
David E Stockham
Jones X Bolognia
Claire M Whobrey
Kaitlin A Schemmer
Morrow P Nicka
Rodrigues T Dilliard
Maria O Glick
Julie O Kusko
Maisha S Rulapaugh
Alejandro I Butt
Isabel P Briddick
Juan E Morasca
Sinclair M Paprocki
Julie A Butt
Jones Y Campain
Stacey G Inouye
Jennifer T Caudy
Maisha R Nicka
Izzy S Bowley
Francesco I Bowley
Arvin Y Bowley
Ivar X Poquette
Jefferson P Paprocki
IdCountryDate
1000United Kingdom2024-04-24
1001Germany2024-04-18
1002Spain2024-04-05
1003Argentina2024-04-02
1004Italy2024-04-14
1005Argentina2024-04-11
1006France2024-04-17
1007United Kingdom2024-04-20
1008Italy2024-04-19
1009Germany2024-04-08
1010India2024-04-19
1011France2024-04-02
1012Japan2024-04-23
1013Canada2024-03-28
1014United Kingdom2024-03-28
1015Australia2024-04-24
1016Italy2024-04-20
1017India2024-04-13
1018United Kingdom2024-04-18
1019France2024-04-03
1020United Kingdom2024-04-06
1021Canada2024-04-06
1022United Kingdom2024-03-31
1023Argentina2024-04-14
1024Brazil2024-04-16
1025Australia2024-04-23
1026Italy2024-04-10
1027Germany2024-04-02
1028Russia2024-04-04
1029France2024-04-11
1030United Kingdom2024-04-19
1031Argentina2024-04-13
1032Germany2024-04-15
1033Spain2024-04-15
1034Spain2024-04-08
1035Germany2024-04-20
1036India2024-04-16
1037India2024-04-23
1038France2024-03-31
1039India2024-03-28
1040France2024-04-20
1041Japan2024-04-20
1042Russia2024-04-11
1043United Kingdom2024-04-24
1044Australia2024-04-03
1045Australia2024-04-20
1046Canada2024-04-24
1047Argentina2024-04-08
1048Australia2024-03-31
1049Russia2024-04-15

On-Demand Data

NameIdCountryDate
Aditya I Wieser1000Italy2024-03-30
Silvio T Kolmetz1001Canada2024-04-22
Costa H Kusko1002France2024-04-15
Juan Z Figeroa1003Brazil2024-03-30
Ricardo G Shinko1004Brazil2024-04-12
Darci E Stenseth1005Germany2024-04-22
Leon X Nicka1006Australia2024-03-31
Jennifer F Morasca1007Canada2024-04-16
Jennifer C Stockham1008United Kingdom2024-04-13
Juan D Inouye1009Argentina2024-04-16
David O Garufi1010Spain2024-04-09
Leja J Ostrosky1011Australia2024-03-28
Silvio N Saylors1012United Kingdom2024-03-29
Morrow X Amigon1013India2024-04-21
Jones T Doe1014Russia2024-04-08
Mujtaba T Shinko1015Argentina2024-03-26
Kadeem A Oldroyd1016Argentina2024-04-21
Isabel G Kolmetz1017United Kingdom2024-04-01
Faith E Doe1018Italy2024-04-05
Faith Z Maclead1019Japan2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio P NickaJapanAnna Fali NEGOTIATION
Silvio B MacleadAustraliaXuxue Feng UNQUALIFIED
Greenwood J DilliardRussiaElwin Sharvill NEW
Misaki X GillianArgentinaBernardo Dominic UNQUALIFIED
Aruna D StensethCanadaAsiya Javayant UNQUALIFIED
Mujtaba W RutaItalyAsiya Javayant UNQUALIFIED
Izzy Q PoquetteRussiaAnna Fali NEW
Smith S ChuiFranceOnyama Limba PROPOSAL
Nicolas N ChuiFranceIoni Bowcher QUALIFIED
Jeanfrancois X ButtRussiaStephen Shaw UNQUALIFIED
Jeanfrancois E MaletBrazilOnyama Limba UNQUALIFIED
Nicolas J ChuiItalyIvan Magalhaes UNQUALIFIED
Salvatore W InouyeItalyStephen Shaw NEW
Jennifer T PaprockiFranceOnyama Limba RENEWAL
Ashley R DoeGermanyAnna Fali RENEWAL
Emily D MarrierUnited KingdomElwin Sharvill NEW
Clifford P RimArgentinaElwin Sharvill PROPOSAL
Arvin S NickaItalyAnna Fali UNQUALIFIED
Silvio M NestleSpainBernardo Dominic QUALIFIED
Misaki Y WaycottBrazilAsiya Javayant PROPOSAL
David Y WaycottArgentinaAsiya Javayant RENEWAL
Isabel J KolmetzJapanElwin Sharvill UNQUALIFIED
Arvin B SergiAustraliaAnna Fali PROPOSAL
Johnson B MacleadAustraliaAmy Elsner QUALIFIED
Chavez T BowleyIndiaAnna Fali QUALIFIED
Mayumi F DarakjyFranceElwin Sharvill RENEWAL
Jones Q VocelkaItalyOnyama Limba PROPOSAL
Mujtaba A FollerJapanBernardo Dominic PROPOSAL
Faith Z FlosiUnited KingdomBernardo Dominic QUALIFIED
Leon W RutaJapanBernardo Dominic NEW
Francesco N FollerArgentinaAsiya Javayant RENEWAL
Mujtaba W FigeroaJapanIoni Bowcher NEW
Mujtaba X KolmetzCanadaBernardo Dominic UNQUALIFIED
Kaitlin C FigeroaSpainAsiya Javayant QUALIFIED
Antonio Q CampainArgentinaIoni Bowcher UNQUALIFIED
Salvatore Q SaylorsGermanyIvan Magalhaes RENEWAL
Claire B PerinSpainXuxue Feng QUALIFIED
Leja U RoysterItalyXuxue Feng RENEWAL
Emily Y InouyeGermanyBernardo Dominic NEGOTIATION
Misaki S KuskoSpainXuxue Feng 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>