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
Morrow R IturbideFranceStephen Shaw RENEWAL
Nicolas K WhobreyIndiaAnna Fali PROPOSAL
Darci D WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Jones X AlbaresItalyAmy Elsner PROPOSAL
Claire G CaudyRussiaAmy Elsner QUALIFIED
Leja S IturbideArgentinaElwin Sharvill RENEWAL
Mayumi F SergiBrazilAmy Elsner QUALIFIED
Smith P OldroydFranceXuxue Feng NEW
Isabel J FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Munro Z AmigonSpainElwin Sharvill QUALIFIED
Sinclair H BologniaGermanyXuxue Feng QUALIFIED
Emily P ChuiJapanStephen Shaw QUALIFIED
Misaki S AmigonRussiaStephen Shaw PROPOSAL
Faith F BologniaBrazilIoni Bowcher UNQUALIFIED
Misaki F GillianArgentinaStephen Shaw UNQUALIFIED
Claire P RulapaughIndiaAmy Elsner RENEWAL
Murillo N BriddickArgentinaBernardo Dominic PROPOSAL
James M GlickJapanBernardo Dominic RENEWAL
Ricardo W IturbideJapanOnyama Limba RENEWAL
Kadeem N MarrierJapanXuxue Feng NEW
Octavia K SergiJapanIoni Bowcher RENEWAL
Jones Q ShinkoUnited KingdomOnyama Limba NEW
Jennifer U MacleadGermanyElwin Sharvill UNQUALIFIED
Jennifer E PerinUnited KingdomIoni Bowcher NEW
Aika E RutaSpainElwin Sharvill NEGOTIATION
Costa E PoquetteFranceAnna Fali QUALIFIED
Francesco Z StockhamItalyAmy Elsner NEW
Aditya X GarufiRussiaAmy Elsner UNQUALIFIED
Maria F DilliardIndiaStephen Shaw NEGOTIATION
Jeanfrancois T MorascaAustraliaAsiya Javayant QUALIFIED
Clifford R RulapaughCanadaAmy Elsner PROPOSAL
Nicolas R CaldareraRussiaStephen Shaw PROPOSAL
Francesco Z DarakjyFranceAsiya Javayant NEW
Cody K AlbaresIndiaElwin Sharvill UNQUALIFIED
James A OldroydSpainAsiya Javayant QUALIFIED
Salvatore R CaldareraIndiaElwin Sharvill PROPOSAL
Aruna L BowleyItalyAnna Fali RENEWAL
Aruna Q BowleyIndiaAmy Elsner NEW
Munro P RulapaughArgentinaIoni Bowcher PROPOSAL
Faith Q KolmetzFranceAnna Fali NEW
Francesco C FerenczAustraliaAsiya Javayant NEW
Francesco W NestleIndiaBernardo Dominic RENEWAL
Arvin R FollerCanadaAnna Fali UNQUALIFIED
James O FollerItalyAsiya Javayant NEGOTIATION
Morrow H PaprockiItalyBernardo Dominic RENEWAL
Munro O RoysterRussiaIvan Magalhaes NEW
Morrow P PerinArgentinaElwin Sharvill PROPOSAL
Jennifer L IturbideItalyBernardo Dominic RENEWAL
Antonio I BriddickBrazilBernardo Dominic NEW
Silvio C IturbideSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody H IturbideGermanyAsiya Javayant UNQUALIFIED
Nicolas E OldroydRussiaStephen Shaw NEGOTIATION
Ashley O RoysterItalyAmy Elsner NEW
James A TollnerSpainXuxue Feng NEGOTIATION
Adams W CampainJapanAnna Fali RENEWAL
Claire C VenereJapanXuxue Feng QUALIFIED
Antonio W FigeroaUnited KingdomAnna Fali NEGOTIATION
Morrow M OldroydArgentinaAsiya Javayant NEGOTIATION
Jefferson S SaylorsItalyIvan Magalhaes NEGOTIATION
Rodrigues A KuskoArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro M DarakjyItaly2024-05-11Rousseaux, Michael Esq NEW86Anna Fali
1001Murillo B SlusarskiRussia2024-05-16Chanay, Jeffrey A Esq NEGOTIATION35Asiya Javayant
1002Nicolas I GlickSpain2024-04-27Printing Dimensions NEGOTIATION1Bernardo Dominic
1003Mujtaba J KolmetzArgentina2024-04-25King, Christopher A Esq QUALIFIED48Elwin Sharvill
1004Stacey H MacleadIndia2024-04-30Chanay, Jeffrey A Esq QUALIFIED61Onyama Limba
1005Octavia S StensethAustralia2024-05-08Feiner Bros NEW47Stephen Shaw
1006Leja O DilliardArgentina2024-05-19Benton, John B Jr QUALIFIED8Xuxue Feng
1007David J StensethSpain2024-05-13Dorl, James J Esq RENEWAL97Ioni Bowcher
1008Adams U BologniaUnited Kingdom2024-05-05Commercial Press RENEWAL43Ivan Magalhaes
1009Jennifer Q RoysterCanada2024-04-28Truhlar And Truhlar Attys NEGOTIATION76Amy Elsner
1010Stacey B AmigonGermany2024-05-11Benton, John B Jr NEW82Bernardo Dominic
1011Morrow F VenereCanada2024-05-02Chapman, Ross E Esq PROPOSAL96Asiya Javayant
1012Arvin G NestleArgentina2024-04-23Dorl, James J Esq QUALIFIED2Onyama Limba
1013Chavez M MaletGermany2024-04-23King, Christopher A Esq UNQUALIFIED11Xuxue Feng
1014Nicolas P ChuiAustralia2024-04-22Rangoni Of Florence UNQUALIFIED47Bernardo Dominic
1015David M AmigonItaly2024-04-24Feiner Bros RENEWAL36Ivan Magalhaes
1016Aruna R CaldareraArgentina2024-05-17Commercial Press UNQUALIFIED6Bernardo Dominic
1017Jeanfrancois T ShinkoSpain2024-05-16Buckley Miller Wright UNQUALIFIED1Stephen Shaw
1018Misaki E MacleadAustralia2024-04-27Benton, John B Jr NEW87Amy Elsner
1019Isabel G CampainUnited Kingdom2024-05-20Rousseaux, Michael Esq RENEWAL70Amy Elsner
1020Wickens F FigeroaUnited Kingdom2024-05-04Feltz Printing Service QUALIFIED32Onyama Limba
1021Tony X NickaIndia2024-05-09Rangoni Of Florence RENEWAL35Anna Fali
1022Adams Y DarakjySpain2024-05-14Printing Dimensions UNQUALIFIED35Asiya Javayant
1023Jennifer X BowleyArgentina2024-05-09King, Christopher A Esq PROPOSAL12Amy Elsner
1024Mujtaba C FerenczIndia2024-05-04Benton, John B Jr NEGOTIATION90Anna Fali
1025Mujtaba D RutaFrance2024-05-02Buckley Miller Wright RENEWAL60Amy Elsner
1026Mujtaba R KuskoJapan2024-05-05Benton, John B Jr QUALIFIED28Asiya Javayant
1027Darci D SergiUnited Kingdom2024-05-06King, Christopher A Esq QUALIFIED83Ivan Magalhaes
1028Isabel M BologniaJapan2024-04-28Feltz Printing Service NEW18Bernardo Dominic
1029Julie M WhobreySpain2024-05-15Morlong Associates NEGOTIATION11Stephen Shaw
1030Cody G KuskoIndia2024-05-09Benton, John B Jr QUALIFIED84Anna Fali
1031Jennifer F MaletJapan2024-04-24Rousseaux, Michael Esq PROPOSAL64Asiya Javayant
1032Stacey J MaletBrazil2024-05-19Chapman, Ross E Esq PROPOSAL59Ivan Magalhaes
1033Costa J AmigonIndia2024-05-08Feltz Printing Service RENEWAL73Stephen Shaw
1034Sinclair J SchemmerGermany2024-05-17Printing Dimensions RENEWAL77Anna Fali
1035Morrow R OstroskyJapan2024-04-30Printing Dimensions NEW0Stephen Shaw
1036Kaitlin L CampainBrazil2024-04-25Truhlar And Truhlar Attys UNQUALIFIED85Stephen Shaw
1037Aruna P OstroskyItaly2024-04-26Feiner Bros QUALIFIED18Ivan Magalhaes
1038Maria U MorascaFrance2024-05-19Feltz Printing Service QUALIFIED90Asiya Javayant
1039Wickens Z PoquetteCanada2024-05-14Chemel, James L Cpa UNQUALIFIED34Onyama Limba
1040David W TollnerGermany2024-05-18Truhlar And Truhlar Attys PROPOSAL0Stephen Shaw
1041Faith U NickaBrazil2024-05-12Chanay, Jeffrey A Esq RENEWAL5Onyama Limba
1042Octavia G RutaSpain2024-04-29Commercial Press NEW62Ivan Magalhaes
1043Cody L KuskoUnited Kingdom2024-04-30Rangoni Of Florence QUALIFIED53Asiya Javayant
1044Jeanfrancois L WhobreyIndia2024-05-11Dorl, James J Esq NEGOTIATION26Onyama Limba
1045Cody F RutaCanada2024-05-09Feltz Printing Service NEW81Ioni Bowcher
1046Aruna S OstroskyItaly2024-05-12Buckley Miller Wright QUALIFIED24Ivan Magalhaes
1047Murillo O NickaRussia2024-04-28Rousseaux, Michael Esq RENEWAL54Amy Elsner
1048Mujtaba A BowleyArgentina2024-05-17Chanay, Jeffrey A Esq NEGOTIATION30Ioni Bowcher
1049Nicolas W CampainGermany2024-04-26Truhlar And Truhlar Attys NEGOTIATION94Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Murillo Z FerenczBrazilBernardo Dominic QUALIFIED
Johnson R PaprockiIndiaIvan Magalhaes QUALIFIED
Jefferson F WieserJapanStephen Shaw PROPOSAL
James N GillianArgentinaElwin Sharvill NEW
Mujtaba S ChuiSpainBernardo Dominic QUALIFIED
Silvio O DarakjyCanadaAnna Fali PROPOSAL
Alejandro K GillianIndiaIoni Bowcher NEGOTIATION
Murillo W MaletSpainIoni Bowcher NEW
Octavia X MaletItalyAnna Fali NEW
Rodrigues T RoysterJapanIoni Bowcher NEW
Aika K PoquetteUnited KingdomAsiya Javayant NEW
Misaki Q MaletCanadaAnna Fali NEGOTIATION
Silvio H NestleCanadaAnna Fali PROPOSAL
Jeanfrancois X OldroydRussiaAmy Elsner QUALIFIED
James D FollerFranceOnyama Limba QUALIFIED
Morrow N MarrierBrazilOnyama Limba NEGOTIATION
Alejandro T StockhamFranceStephen Shaw NEGOTIATION
Silvio Q AlbaresBrazilBernardo Dominic QUALIFIED
David E MaletUnited KingdomXuxue Feng UNQUALIFIED
Ivar F GillianFranceIvan Magalhaes RENEWAL
Kaitlin B TollnerAustraliaStephen Shaw UNQUALIFIED
James Y VocelkaIndiaElwin Sharvill NEGOTIATION
Chavez R KuskoUnited KingdomAmy Elsner QUALIFIED
Aika V NestleRussiaAnna Fali QUALIFIED
Emily Y RimAustraliaBernardo Dominic NEW
Kaitlin U StockhamRussiaIvan Magalhaes PROPOSAL
Antonio N PoquetteGermanyStephen Shaw NEW
Murillo P GillianRussiaBernardo Dominic NEGOTIATION
Jennifer C KuskoArgentinaAmy Elsner QUALIFIED
Alejandro A KolmetzFranceBernardo Dominic NEW
Ashley M ChuiFranceStephen Shaw RENEWAL
Chavez M WaycottUnited KingdomOnyama Limba RENEWAL
Sinclair P TollnerJapanAnna Fali PROPOSAL
Jones F KolmetzSpainOnyama Limba QUALIFIED
Cody W BriddickAustraliaIoni Bowcher NEGOTIATION
Sinclair D KolmetzJapanXuxue Feng NEGOTIATION
Leon W SaylorsGermanyIoni Bowcher NEW
Smith J VocelkaSpainAmy Elsner NEGOTIATION
Leon B VenereBrazilAsiya Javayant RENEWAL
Alejandro H SaylorsBrazilElwin Sharvill NEGOTIATION
Kadeem L InouyeIndiaOnyama Limba NEW
Munro O FollerJapanIvan Magalhaes NEW
Aditya R MorascaAustraliaAmy Elsner UNQUALIFIED
Francesco Q MaletArgentinaAnna Fali RENEWAL
Aruna K MarrierArgentinaIvan Magalhaes NEGOTIATION
Antonio W DarakjyGermanyAsiya Javayant UNQUALIFIED
Leon P MorascaUnited KingdomAnna Fali UNQUALIFIED
Mayumi L OstroskyCanadaAsiya Javayant PROPOSAL
Leon Q RulapaughJapanAnna Fali RENEWAL
Johnson E PoquetteIndiaOnyama Limba NEW
Frozen Columns
Name
Nicolas S Chui
Johnson D Bowley
Antonio C Maclead
Greenwood T Stenseth
Munro R Kolmetz
Adams P Slusarski
Julie I Vocelka
Silvio L Dilliard
Misaki L Waycott
Stacey G Gillian
Aruna G Glick
Clifford E Darakjy
Alejandro S Inouye
Morrow H Royster
Antonio J Albares
Aditya Y Flosi
Mayumi L Flosi
Adams F Whobrey
Greenwood C Oldroyd
Adams D Bowley
Misaki A Vocelka
Mujtaba M Saylors
Faith O Ruta
Murillo B Malet
Aditya K Kusko
Greenwood J Amigon
Octavia N Bowley
Morrow V Stenseth
Chavez X Marrier
Cody U Butt
Clifford P Iturbide
Stacey M Butt
Salvatore G Vocelka
Darci U Darakjy
Tony V Waycott
Aruna E Ruta
Misaki F Doe
Maisha P Dilliard
Arvin W Ruta
Aruna F Dilliard
Kadeem B Nicka
Clifford H Royster
Nicolas Y Bolognia
Ivar X Slusarski
Stacey T Gillian
Octavia F Waycott
Maisha B Kusko
Ivar O Tollner
Adams A Ostrosky
Morrow E Kusko
IdCountryDate
1000Spain2024-05-01
1001Japan2024-05-02
1002India2024-05-07
1003Argentina2024-04-30
1004Italy2024-05-03
1005France2024-05-11
1006Germany2024-05-07
1007Canada2024-05-11
1008Japan2024-05-16
1009Canada2024-04-30
1010India2024-04-23
1011Italy2024-05-21
1012Spain2024-05-01
1013United Kingdom2024-05-02
1014France2024-05-12
1015France2024-05-07
1016India2024-05-02
1017Canada2024-05-08
1018Spain2024-05-04
1019Japan2024-04-26
1020France2024-05-13
1021United Kingdom2024-05-10
1022Canada2024-05-08
1023United Kingdom2024-05-04
1024Italy2024-04-24
1025Japan2024-05-08
1026Spain2024-05-09
1027Germany2024-05-20
1028Brazil2024-04-27
1029Italy2024-05-21
1030France2024-05-12
1031United Kingdom2024-04-23
1032India2024-05-01
1033Italy2024-05-06
1034Spain2024-04-25
1035Japan2024-05-07
1036Germany2024-04-27
1037United Kingdom2024-05-03
1038Argentina2024-05-17
1039Italy2024-05-16
1040Italy2024-05-08
1041Australia2024-05-04
1042Australia2024-05-14
1043Australia2024-04-25
1044Russia2024-04-25
1045Australia2024-05-03
1046Spain2024-05-21
1047Japan2024-05-14
1048Russia2024-05-15
1049Australia2024-04-30

On-Demand Data

NameIdCountryDate
Ricardo Y Figeroa1000Canada2024-05-18
Aditya N Perin1001Germany2024-04-25
Maria G Glick1002Russia2024-05-07
Munro A Oldroyd1003Japan2024-05-05
Izzy Z Butt1004Russia2024-05-15
Munro V Caldarera1005Spain2024-05-12
Jeanfrancois I Chui1006France2024-05-07
Smith M Inouye1007Brazil2024-05-20
Mujtaba Q Tollner1008Argentina2024-05-10
Adams Y Ostrosky1009Japan2024-04-25
Faith Z Campain1010Italy2024-05-12
Adams T Nicka1011France2024-05-05
Octavia P Poquette1012Argentina2024-05-08
Adams B Malet1013Argentina2024-04-29
Chavez F Slusarski1014Russia2024-05-17
Faith A Poquette1015United Kingdom2024-05-12
Salvatore U Morasca1016Spain2024-05-10
Octavia J Nicka1017Canada2024-05-12
Costa W Campain1018Australia2024-05-04
Munro O Inouye1019Germany2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody E MacleadCanadaAsiya Javayant PROPOSAL
Murillo M NickaGermanyOnyama Limba QUALIFIED
Aruna V ShinkoSpainAsiya Javayant PROPOSAL
Jennifer L PerinFranceXuxue Feng NEW
Morrow C BowleyBrazilStephen Shaw NEGOTIATION
Jones Y RutaArgentinaAnna Fali PROPOSAL
Octavia D GlickArgentinaAmy Elsner NEW
Deepesh D DoeBrazilAmy Elsner NEGOTIATION
Octavia D NestleAustraliaAmy Elsner PROPOSAL
Deepesh G PerinArgentinaIoni Bowcher QUALIFIED
Arvin T MacleadJapanIvan Magalhaes NEW
Maria F FlosiJapanStephen Shaw RENEWAL
Mujtaba A MacleadGermanyElwin Sharvill RENEWAL
Tony M SaylorsGermanyIvan Magalhaes NEW
Julie Z WieserCanadaXuxue Feng UNQUALIFIED
Silvio C ChuiSpainIoni Bowcher QUALIFIED
Rodrigues K RutaFranceIoni Bowcher NEGOTIATION
Izzy E InouyeSpainAsiya Javayant RENEWAL
Izzy M PoquetteUnited KingdomStephen Shaw NEGOTIATION
Antonio R MacleadIndiaAsiya Javayant RENEWAL
Cody W FerenczAustraliaIvan Magalhaes NEGOTIATION
Silvio M DoeFranceBernardo Dominic NEW
Munro L InouyeJapanIoni Bowcher NEGOTIATION
Misaki H GarufiJapanElwin Sharvill RENEWAL
Maria C AlbaresJapanBernardo Dominic UNQUALIFIED
Aruna W MaletRussiaBernardo Dominic UNQUALIFIED
Clifford V BowleyJapanOnyama Limba NEW
Claire T RimGermanyIvan Magalhaes RENEWAL
Munro I CaudyJapanBernardo Dominic NEW
Greenwood Z KuskoIndiaIoni Bowcher NEW
Leja L WieserFranceAsiya Javayant PROPOSAL
Emily Q CaldareraAustraliaAnna Fali PROPOSAL
Costa J RulapaughJapanIoni Bowcher QUALIFIED
Smith N SchemmerItalyElwin Sharvill RENEWAL
James Z CampainIndiaAsiya Javayant UNQUALIFIED
Silvio U FollerSpainAsiya Javayant UNQUALIFIED
Emily J FerenczGermanyAmy Elsner QUALIFIED
Wickens K OldroydSpainAnna Fali PROPOSAL
Wickens U RutaFranceStephen Shaw UNQUALIFIED
Aditya U CampainUnited KingdomAmy Elsner 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>