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
Alejandro G NickaGermanyBernardo Dominic QUALIFIED
Julie H NickaGermanyStephen Shaw NEW
Claire C WaycottSpainIoni Bowcher QUALIFIED
Ivar L MorascaJapanIoni Bowcher NEW
Murillo V WieserUnited KingdomOnyama Limba NEW
Jefferson U GlickUnited KingdomXuxue Feng UNQUALIFIED
Maisha I PoquetteCanadaAmy Elsner NEGOTIATION
Silvio N FigeroaAustraliaIvan Magalhaes NEGOTIATION
Johnson E PerinCanadaAnna Fali NEW
Aditya U FigeroaJapanIvan Magalhaes UNQUALIFIED
Francesco N DilliardRussiaStephen Shaw QUALIFIED
Cody Z StockhamBrazilIvan Magalhaes RENEWAL
Tony V VocelkaArgentinaElwin Sharvill QUALIFIED
Adams G WieserAustraliaStephen Shaw UNQUALIFIED
Mayumi V WieserUnited KingdomBernardo Dominic RENEWAL
Isabel H TollnerCanadaXuxue Feng PROPOSAL
Jones J MaletUnited KingdomOnyama Limba RENEWAL
Antonio H DoeCanadaIoni Bowcher PROPOSAL
Maisha Y GillianAustraliaXuxue Feng QUALIFIED
Francesco U ButtItalyAnna Fali UNQUALIFIED
Julie S RutaRussiaStephen Shaw NEGOTIATION
Ivar F BowleyCanadaStephen Shaw NEGOTIATION
David T MaletUnited KingdomElwin Sharvill NEW
Francesco U RoysterSpainStephen Shaw RENEWAL
Julie Q FollerUnited KingdomAnna Fali PROPOSAL
Sinclair T BriddickRussiaBernardo Dominic NEW
Mujtaba K BriddickUnited KingdomIvan Magalhaes NEGOTIATION
Aruna D InouyeUnited KingdomBernardo Dominic QUALIFIED
Tony K MaletItalyIoni Bowcher PROPOSAL
Cody T BologniaCanadaIvan Magalhaes UNQUALIFIED
Julie I StockhamJapanAnna Fali QUALIFIED
Darci P FerenczUnited KingdomXuxue Feng RENEWAL
Maria P VenereFranceOnyama Limba UNQUALIFIED
Jones B SchemmerCanadaBernardo Dominic RENEWAL
Antonio M SergiArgentinaIvan Magalhaes RENEWAL
David T NestleGermanyElwin Sharvill PROPOSAL
Clifford X PerinIndiaIoni Bowcher NEW
Murillo H AlbaresJapanElwin Sharvill UNQUALIFIED
Stacey T DoeAustraliaElwin Sharvill PROPOSAL
Misaki C KuskoGermanyBernardo Dominic UNQUALIFIED
Jennifer T InouyeIndiaAsiya Javayant QUALIFIED
Nicolas A ShinkoGermanyXuxue Feng QUALIFIED
Smith X FerenczSpainBernardo Dominic NEGOTIATION
Ricardo Z InouyeGermanyAsiya Javayant QUALIFIED
Greenwood W PerinIndiaElwin Sharvill NEGOTIATION
Salvatore Y AlbaresGermanyAnna Fali QUALIFIED
Wickens H SergiBrazilIoni Bowcher UNQUALIFIED
Juan W FigeroaCanadaXuxue Feng NEW
Greenwood Y SlusarskiJapanAmy Elsner QUALIFIED
Clifford Y StockhamBrazilStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey M SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Clifford Z InouyeGermanyOnyama Limba NEW
Greenwood C PoquetteBrazilOnyama Limba NEGOTIATION
Wickens C BowleyArgentinaStephen Shaw NEGOTIATION
Adams O KolmetzAustraliaAmy Elsner PROPOSAL
Jones M RutaCanadaAnna Fali UNQUALIFIED
Cody O ShinkoJapanElwin Sharvill NEGOTIATION
Smith U BowleyGermanyElwin Sharvill NEGOTIATION
Julie I OstroskyUnited KingdomBernardo Dominic PROPOSAL
Costa Q MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Y KolmetzArgentina2024-04-02Benton, John B Jr QUALIFIED3Elwin Sharvill
1001Maisha E CampainBrazil2024-04-07Commercial Press NEW35Stephen Shaw
1002Leon Y NickaArgentina2024-04-08Dorl, James J Esq RENEWAL3Stephen Shaw
1003Faith X DarakjyGermany2024-04-25Truhlar And Truhlar Attys RENEWAL63Xuxue Feng
1004Morrow Z KuskoItaly2024-04-24Feltz Printing Service QUALIFIED45Anna Fali
1005Emily C RoysterAustralia2024-04-11Chapman, Ross E Esq PROPOSAL19Ivan Magalhaes
1006Francesco S StockhamUnited Kingdom2024-03-28Commercial Press UNQUALIFIED68Onyama Limba
1007Francesco Y WaycottIndia2024-04-18Buckley Miller Wright UNQUALIFIED7Bernardo Dominic
1008Jefferson Q PerinAustralia2024-04-10Commercial Press NEGOTIATION70Anna Fali
1009Adams D RutaJapan2024-04-03Feiner Bros RENEWAL76Stephen Shaw
1010Morrow V InouyeRussia2024-04-15Dorl, James J Esq RENEWAL83Ioni Bowcher
1011Sinclair X VocelkaJapan2024-03-28Chapman, Ross E Esq RENEWAL27Ioni Bowcher
1012Antonio A PerinRussia2024-04-06Commercial Press UNQUALIFIED92Xuxue Feng
1013Izzy G KuskoItaly2024-04-13Rangoni Of Florence QUALIFIED86Bernardo Dominic
1014David I SergiArgentina2024-04-06Feltz Printing Service PROPOSAL72Xuxue Feng
1015Maisha R NestleItaly2024-04-22Commercial Press UNQUALIFIED63Bernardo Dominic
1016Aika G MarrierCanada2024-04-25Chanay, Jeffrey A Esq RENEWAL99Asiya Javayant
1017Sinclair H MaletCanada2024-03-30Morlong Associates NEW81Onyama Limba
1018Leja H KolmetzUnited Kingdom2024-04-16Chanay, Jeffrey A Esq NEW1Anna Fali
1019Stacey H ChuiCanada2024-04-16Buckley Miller Wright PROPOSAL60Bernardo Dominic
1020Jones K ShinkoCanada2024-04-10Buckley Miller Wright UNQUALIFIED10Elwin Sharvill
1021Julie P IturbideRussia2024-04-18Feiner Bros UNQUALIFIED33Xuxue Feng
1022Nicolas R CampainGermany2024-04-22Feiner Bros NEW92Asiya Javayant
1023Julie I RoysterJapan2024-04-22Chemel, James L Cpa PROPOSAL51Asiya Javayant
1024Greenwood C GarufiUnited Kingdom2024-04-06Dorl, James J Esq NEW11Ivan Magalhaes
1025Jennifer X OldroydIndia2024-04-13Rangoni Of Florence PROPOSAL36Xuxue Feng
1026Juan J VenereUnited Kingdom2024-04-15Dorl, James J Esq NEW66Elwin Sharvill
1027Arvin O RulapaughUnited Kingdom2024-03-31Benton, John B Jr RENEWAL76Ioni Bowcher
1028Claire G VocelkaBrazil2024-04-21Dorl, James J Esq QUALIFIED75Anna Fali
1029Misaki W PerinArgentina2024-04-13Chapman, Ross E Esq QUALIFIED38Ioni Bowcher
1030Juan V SergiRussia2024-04-11Feiner Bros UNQUALIFIED46Amy Elsner
1031Francesco O RoysterItaly2024-04-24Morlong Associates PROPOSAL71Ioni Bowcher
1032Adams T ChuiRussia2024-03-29Feltz Printing Service UNQUALIFIED1Ioni Bowcher
1033Cody X RimJapan2024-04-23Dorl, James J Esq RENEWAL33Onyama Limba
1034Juan V MaletCanada2024-04-24Morlong Associates QUALIFIED87Asiya Javayant
1035Maisha Q FollerArgentina2024-04-25Chanay, Jeffrey A Esq NEGOTIATION19Anna Fali
1036Smith M GarufiSpain2024-04-09King, Christopher A Esq UNQUALIFIED30Onyama Limba
1037Munro Q StensethGermany2024-03-31Buckley Miller Wright RENEWAL50Bernardo Dominic
1038Ivar S RoysterJapan2024-04-04Chanay, Jeffrey A Esq NEW76Xuxue Feng
1039Rodrigues G GauchoUnited Kingdom2024-04-16King, Christopher A Esq PROPOSAL34Xuxue Feng
1040Juan W StensethIndia2024-04-21Chemel, James L Cpa NEW63Xuxue Feng
1041Leon L StensethRussia2024-04-25Dorl, James J Esq QUALIFIED70Ivan Magalhaes
1042Leja P VenereSpain2024-04-09Feltz Printing Service NEW11Ivan Magalhaes
1043Clifford O OstroskySpain2024-04-22Benton, John B Jr NEW51Elwin Sharvill
1044Jeanfrancois G StockhamGermany2024-04-20King, Christopher A Esq NEGOTIATION36Stephen Shaw
1045Mujtaba N FlosiIndia2024-04-21Feltz Printing Service RENEWAL38Ioni Bowcher
1046Isabel U FerenczSpain2024-04-17Printing Dimensions QUALIFIED79Elwin Sharvill
1047Salvatore R SergiBrazil2024-04-07Feiner Bros PROPOSAL94Asiya Javayant
1048Isabel Y SaylorsAustralia2024-04-19Chapman, Ross E Esq QUALIFIED9Amy Elsner
1049Claire R CaudyIndia2024-04-21Dorl, James J Esq PROPOSAL91Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Tony Z VocelkaSpainAnna Fali NEW
Faith N CaldareraRussiaBernardo Dominic NEGOTIATION
Juan B OstroskyAustraliaStephen Shaw UNQUALIFIED
Arvin B SchemmerGermanyIoni Bowcher RENEWAL
Jeanfrancois P KuskoRussiaIoni Bowcher RENEWAL
Juan C KolmetzGermanyIvan Magalhaes RENEWAL
Arvin C DarakjyUnited KingdomOnyama Limba NEGOTIATION
Maisha M StensethRussiaElwin Sharvill NEGOTIATION
Maria B TollnerGermanyAnna Fali RENEWAL
Mujtaba D BowleyItalyIvan Magalhaes QUALIFIED
Murillo E WaycottRussiaAsiya Javayant NEW
Octavia D PoquetteItalyXuxue Feng PROPOSAL
Ivar R OldroydSpainIvan Magalhaes NEGOTIATION
Darci H MarrierUnited KingdomStephen Shaw UNQUALIFIED
Costa W DarakjyJapanElwin Sharvill QUALIFIED
Arvin Y WaycottJapanAnna Fali NEGOTIATION
Greenwood S AmigonItalyAmy Elsner UNQUALIFIED
Tony S SchemmerAustraliaAmy Elsner UNQUALIFIED
Ivar M GillianGermanyAsiya Javayant NEGOTIATION
Octavia T NestleSpainAmy Elsner NEW
Darci V SaylorsAustraliaStephen Shaw QUALIFIED
Greenwood D MarrierJapanAmy Elsner UNQUALIFIED
Smith S RulapaughItalyAmy Elsner UNQUALIFIED
Greenwood O GarufiUnited KingdomAnna Fali PROPOSAL
Ricardo C FlosiAustraliaIoni Bowcher NEGOTIATION
David Z VocelkaIndiaElwin Sharvill QUALIFIED
Izzy R WaycottJapanIoni Bowcher QUALIFIED
Deepesh R BologniaGermanyAsiya Javayant NEW
Munro Q TollnerGermanyXuxue Feng UNQUALIFIED
Claire A MaletIndiaElwin Sharvill PROPOSAL
Costa P FlosiCanadaOnyama Limba RENEWAL
Mayumi M BowleyJapanAsiya Javayant UNQUALIFIED
Juan C MaletFranceIoni Bowcher NEW
Maisha Y RoysterItalyIvan Magalhaes PROPOSAL
Salvatore B GauchoBrazilAmy Elsner UNQUALIFIED
Aditya L BowleyRussiaIvan Magalhaes NEGOTIATION
Maria C ShinkoSpainXuxue Feng RENEWAL
Alejandro J ButtFranceAsiya Javayant QUALIFIED
Stacey T GillianRussiaElwin Sharvill PROPOSAL
Sinclair K KuskoAustraliaAmy Elsner UNQUALIFIED
Rodrigues N InouyeJapanXuxue Feng PROPOSAL
Jefferson B OstroskyFranceOnyama Limba PROPOSAL
Jones U ShinkoGermanyOnyama Limba NEW
Izzy D SergiIndiaXuxue Feng UNQUALIFIED
Aika W WaycottAustraliaAsiya Javayant PROPOSAL
Faith X CaldareraFranceAmy Elsner PROPOSAL
Johnson T NickaSpainOnyama Limba RENEWAL
Silvio S ButtRussiaAsiya Javayant RENEWAL
Morrow O RimItalyElwin Sharvill RENEWAL
David N FigeroaCanadaAnna Fali PROPOSAL
Frozen Columns
Name
Munro D Dilliard
Emily S Oldroyd
Kadeem C Campain
Murillo B Chui
Emily G Gillian
Rodrigues G Gaucho
Izzy R Caldarera
Chavez R Inouye
James I Figeroa
Emily C Butt
Maisha Q Inouye
Izzy N Flosi
Murillo O Tollner
Salvatore V Marrier
Juan B Marrier
Salvatore L Garufi
Murillo O Perin
Munro E Flosi
Darci F Albares
Stacey S Albares
Julie C Figeroa
Julie X Campain
Silvio W Kusko
Kaitlin R Glick
Claire L Royster
Ricardo N Kolmetz
Jones K Dilliard
Tony J Whobrey
Cody O Bolognia
Leon M Caldarera
Maisha O Ostrosky
Jones D Butt
Jefferson S Stenseth
Jones J Paprocki
Adams X Oldroyd
Faith L Kolmetz
Murillo M Ostrosky
Aditya W Whobrey
Greenwood U Briddick
Silvio G Schemmer
Cody C Ruta
Ricardo K Amigon
Antonio A Shinko
Clifford X Iturbide
Faith L Figeroa
Ashley Y Poquette
Jones J Iturbide
Octavia Y Slusarski
Leon C Ostrosky
Arvin H Gaucho
IdCountryDate
1000Spain2024-04-16
1001Germany2024-04-04
1002India2024-04-19
1003France2024-03-27
1004United Kingdom2024-04-15
1005Argentina2024-04-01
1006Russia2024-03-29
1007France2024-04-10
1008Russia2024-04-09
1009Spain2024-04-24
1010Spain2024-04-23
1011Brazil2024-03-28
1012Australia2024-04-24
1013Australia2024-04-07
1014United Kingdom2024-04-20
1015India2024-04-16
1016India2024-04-21
1017Brazil2024-04-14
1018United Kingdom2024-03-30
1019India2024-04-16
1020Argentina2024-04-08
1021Russia2024-04-22
1022Spain2024-04-14
1023Japan2024-04-03
1024Spain2024-04-16
1025Canada2024-04-21
1026Australia2024-04-07
1027Canada2024-04-24
1028Canada2024-04-15
1029Brazil2024-04-18
1030Italy2024-04-12
1031Brazil2024-03-30
1032Japan2024-03-27
1033Spain2024-03-29
1034Australia2024-04-07
1035Russia2024-04-24
1036Australia2024-04-12
1037Russia2024-04-22
1038India2024-04-05
1039Italy2024-04-06
1040Japan2024-04-15
1041Germany2024-04-06
1042Italy2024-04-08
1043Canada2024-04-21
1044France2024-04-23
1045Brazil2024-04-21
1046Brazil2024-04-11
1047Russia2024-04-02
1048Germany2024-03-29
1049Brazil2024-04-13

On-Demand Data

NameIdCountryDate
Alejandro I Wieser1000Russia2024-03-31
Jennifer C Darakjy1001France2024-03-29
Rodrigues C Vocelka1002Brazil2024-04-24
Rodrigues J Shinko1003Canada2024-04-25
Ashley G Figeroa1004France2024-04-25
Sinclair J Dilliard1005India2024-04-25
Maria Y Flosi1006Argentina2024-04-15
Juan V Paprocki1007India2024-04-21
Sinclair N Bolognia1008Spain2024-04-13
Maisha Y Tollner1009Russia2024-04-19
Cody M Foller1010Japan2024-04-15
Sinclair L Malet1011Germany2024-04-21
David Q Nestle1012Italy2024-04-24
Murillo D Malet1013Germany2024-04-10
Isabel H Briddick1014Japan2024-04-10
David I Ostrosky1015United Kingdom2024-04-07
Leon G Albares1016Brazil2024-04-08
Arvin Z Rulapaugh1017Russia2024-04-22
Clifford T Malet1018Russia2024-04-24
Stacey A Shinko1019Germany2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams E GauchoGermanyStephen Shaw NEGOTIATION
Chavez A PaprockiGermanyAsiya Javayant PROPOSAL
Chavez I PoquetteItalyXuxue Feng NEW
Misaki O NestleBrazilAsiya Javayant UNQUALIFIED
Francesco R BowleyJapanAsiya Javayant NEGOTIATION
Silvio F TollnerArgentinaIvan Magalhaes UNQUALIFIED
Deepesh Z AlbaresAustraliaAsiya Javayant NEGOTIATION
Silvio M SaylorsArgentinaIoni Bowcher PROPOSAL
Rodrigues R GarufiItalyElwin Sharvill RENEWAL
Octavia U WieserFranceAsiya Javayant NEW
Jefferson P NickaAustraliaAnna Fali RENEWAL
Adams Q GlickCanadaAmy Elsner NEGOTIATION
Smith W ButtSpainIvan Magalhaes UNQUALIFIED
Jefferson F MorascaIndiaOnyama Limba QUALIFIED
Sinclair V VenereUnited KingdomXuxue Feng QUALIFIED
Mujtaba E CaudyRussiaIoni Bowcher NEGOTIATION
Tony J GlickSpainAnna Fali UNQUALIFIED
Greenwood Q KuskoFranceIvan Magalhaes UNQUALIFIED
Ricardo G ChuiJapanOnyama Limba RENEWAL
Salvatore F BologniaIndiaXuxue Feng PROPOSAL
Aditya R PerinUnited KingdomElwin Sharvill QUALIFIED
Izzy R WhobreyRussiaBernardo Dominic NEGOTIATION
Arvin Q DarakjyItalyElwin Sharvill NEW
Johnson B KuskoFranceElwin Sharvill NEGOTIATION
Salvatore D PoquetteGermanyOnyama Limba NEW
Emily Q WieserCanadaIvan Magalhaes PROPOSAL
Wickens C OstroskyGermanyIvan Magalhaes UNQUALIFIED
David I AmigonGermanyOnyama Limba RENEWAL
Faith D FollerJapanAnna Fali RENEWAL
Jennifer G FlosiUnited KingdomStephen Shaw NEGOTIATION
Francesco Z SaylorsAustraliaXuxue Feng RENEWAL
Murillo M MaletSpainIvan Magalhaes NEGOTIATION
Alejandro B BowleyCanadaIoni Bowcher NEW
Emily G GlickCanadaOnyama Limba NEGOTIATION
Nicolas B OldroydSpainAsiya Javayant RENEWAL
Nicolas X SergiSpainStephen Shaw PROPOSAL
Aika V NestleIndiaIoni Bowcher QUALIFIED
Faith K GarufiFranceXuxue Feng NEGOTIATION
Leja M CampainBrazilXuxue Feng RENEWAL
Smith O FollerIndiaBernardo Dominic NEW

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