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
Antonio O ButtSpainElwin Sharvill NEW
Tony N FlosiUnited KingdomOnyama Limba QUALIFIED
Aditya V NestleItalyXuxue Feng UNQUALIFIED
Aika H RutaAustraliaAmy Elsner QUALIFIED
Isabel K RimRussiaElwin Sharvill NEW
Mujtaba G StockhamUnited KingdomXuxue Feng UNQUALIFIED
Stacey D TollnerRussiaAsiya Javayant NEW
Munro L AmigonFranceAnna Fali QUALIFIED
Alejandro G PaprockiBrazilIoni Bowcher NEW
Tony N DarakjyFranceOnyama Limba QUALIFIED
Stacey R GlickIndiaBernardo Dominic PROPOSAL
Mayumi G DoeSpainStephen Shaw NEW
Leja W FlosiItalyAmy Elsner QUALIFIED
Aika G ChuiGermanyElwin Sharvill PROPOSAL
Jefferson D FlosiGermanyIvan Magalhaes NEW
Murillo F SchemmerAustraliaOnyama Limba UNQUALIFIED
Maria D DoeGermanyElwin Sharvill QUALIFIED
Morrow V WaycottJapanAmy Elsner NEGOTIATION
Munro X AmigonFranceIvan Magalhaes QUALIFIED
Jones X StockhamCanadaAsiya Javayant NEGOTIATION
Morrow Z AmigonCanadaAsiya Javayant RENEWAL
Jeanfrancois O IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Octavia M DilliardGermanyOnyama Limba NEGOTIATION
Rodrigues U PerinItalyIvan Magalhaes NEW
Clifford F CaudyGermanyAsiya Javayant NEW
Rodrigues G FigeroaItalyOnyama Limba UNQUALIFIED
Smith E CampainJapanElwin Sharvill QUALIFIED
Francesco L GlickRussiaAnna Fali RENEWAL
Mayumi F WhobreySpainElwin Sharvill QUALIFIED
Emily N ShinkoItalyXuxue Feng RENEWAL
Wickens U GillianCanadaXuxue Feng RENEWAL
Aruna Z PaprockiCanadaOnyama Limba RENEWAL
Greenwood N AmigonItalyAnna Fali RENEWAL
Claire R SlusarskiItalyStephen Shaw NEW
Emily B PoquetteBrazilElwin Sharvill QUALIFIED
Salvatore G WaycottFranceIvan Magalhaes RENEWAL
Smith P IturbideBrazilElwin Sharvill PROPOSAL
Munro K MaletJapanElwin Sharvill QUALIFIED
Antonio X PoquetteArgentinaXuxue Feng NEW
Aditya Q ShinkoAustraliaAsiya Javayant NEW
Munro Y KolmetzIndiaBernardo Dominic NEGOTIATION
Alejandro Z CaldareraItalyAmy Elsner UNQUALIFIED
Morrow N CaudyJapanOnyama Limba RENEWAL
Faith Q CaldareraSpainBernardo Dominic RENEWAL
Julie D FerenczIndiaBernardo Dominic QUALIFIED
Ashley P BologniaFranceBernardo Dominic NEGOTIATION
Maisha K RoysterFranceIoni Bowcher QUALIFIED
Aika O ShinkoCanadaOnyama Limba RENEWAL
Aruna J StensethRussiaAsiya Javayant NEGOTIATION
Munro G MacleadBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James F MaletAustraliaAnna Fali RENEWAL
Mujtaba Z StensethRussiaElwin Sharvill NEW
Costa S FlosiSpainBernardo Dominic UNQUALIFIED
Johnson R MaletArgentinaAsiya Javayant QUALIFIED
Izzy K KolmetzArgentinaOnyama Limba QUALIFIED
Murillo P GauchoArgentinaAsiya Javayant QUALIFIED
Antonio O StensethItalyAnna Fali NEGOTIATION
Adams T BowleySpainXuxue Feng NEW
Jefferson G VocelkaCanadaIvan Magalhaes NEGOTIATION
Aditya T GlickAustraliaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha K CampainItaly2024-04-27Dorl, James J Esq QUALIFIED85Ioni Bowcher
1001Faith F SchemmerArgentina2024-04-26Benton, John B Jr PROPOSAL35Elwin Sharvill
1002Leja V BowleyBrazil2024-04-25Feltz Printing Service QUALIFIED3Anna Fali
1003Ashley Z AmigonFrance2024-03-30Benton, John B Jr RENEWAL86Onyama Limba
1004Ricardo M MorascaFrance2024-04-18Rousseaux, Michael Esq PROPOSAL81Onyama Limba
1005Clifford B SaylorsCanada2024-04-22Rangoni Of Florence NEW80Anna Fali
1006Octavia S SchemmerFrance2024-04-26Commercial Press NEW75Stephen Shaw
1007Smith Z PerinJapan2024-04-19King, Christopher A Esq PROPOSAL79Asiya Javayant
1008Sinclair E AlbaresUnited Kingdom2024-04-10Rangoni Of Florence RENEWAL60Elwin Sharvill
1009Jefferson M DarakjyUnited Kingdom2024-04-10Chemel, James L Cpa RENEWAL99Anna Fali
1010Ashley G WaycottRussia2024-04-11King, Christopher A Esq PROPOSAL92Elwin Sharvill
1011Faith Y OstroskyAustralia2024-04-23Chemel, James L Cpa PROPOSAL32Bernardo Dominic
1012Smith F CampainBrazil2024-04-26Printing Dimensions NEGOTIATION65Ioni Bowcher
1013Aika W RulapaughJapan2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED8Elwin Sharvill
1014Cody S BowleySpain2024-03-31Truhlar And Truhlar Attys QUALIFIED39Ivan Magalhaes
1015Octavia T DarakjyCanada2024-04-08Morlong Associates PROPOSAL80Ivan Magalhaes
1016Leja N GauchoAustralia2024-04-23Feltz Printing Service RENEWAL15Ioni Bowcher
1017Leja A SaylorsJapan2024-03-31Commercial Press UNQUALIFIED89Amy Elsner
1018Darci G VenereJapan2024-04-21Commercial Press UNQUALIFIED37Bernardo Dominic
1019James T FlosiUnited Kingdom2024-04-02Morlong Associates NEW45Ioni Bowcher
1020Chavez H PerinItaly2024-04-24Chemel, James L Cpa PROPOSAL72Onyama Limba
1021Maria C AlbaresGermany2024-04-12Chapman, Ross E Esq QUALIFIED1Onyama Limba
1022Wickens I FlosiBrazil2024-04-03Morlong Associates NEGOTIATION70Onyama Limba
1023David Q FigeroaItaly2024-04-27Printing Dimensions NEGOTIATION30Stephen Shaw
1024Murillo U AmigonIndia2024-04-13Dorl, James J Esq UNQUALIFIED1Onyama Limba
1025Jones D GarufiUnited Kingdom2024-04-03Morlong Associates NEW97Stephen Shaw
1026Deepesh K FlosiFrance2024-04-04Chemel, James L Cpa UNQUALIFIED66Asiya Javayant
1027Izzy S RoysterItaly2024-04-06Morlong Associates RENEWAL97Amy Elsner
1028Darci H PerinBrazil2024-04-21King, Christopher A Esq NEW50Asiya Javayant
1029Murillo W MaletFrance2024-03-31Truhlar And Truhlar Attys PROPOSAL81Stephen Shaw
1030Jeanfrancois O AlbaresAustralia2024-04-27Commercial Press NEGOTIATION48Ioni Bowcher
1031Antonio C IturbideAustralia2024-04-23Chemel, James L Cpa UNQUALIFIED11Xuxue Feng
1032Costa D PerinCanada2024-04-19Dorl, James J Esq NEW70Asiya Javayant
1033Salvatore H StockhamArgentina2024-04-18Dorl, James J Esq RENEWAL60Amy Elsner
1034Emily D VocelkaBrazil2024-04-10Feiner Bros NEGOTIATION3Onyama Limba
1035James X VocelkaItaly2024-04-24Printing Dimensions UNQUALIFIED17Ioni Bowcher
1036Cody I StensethCanada2024-04-08Commercial Press QUALIFIED98Ioni Bowcher
1037Adams J StensethIndia2024-04-01Feltz Printing Service NEGOTIATION37Elwin Sharvill
1038Mujtaba N PerinUnited Kingdom2024-03-30Chapman, Ross E Esq QUALIFIED22Asiya Javayant
1039Leon A NickaCanada2024-04-16Rousseaux, Michael Esq UNQUALIFIED45Onyama Limba
1040Maria W MorascaAustralia2024-04-07Rousseaux, Michael Esq QUALIFIED17Amy Elsner
1041Maria B WaycottFrance2024-04-25Dorl, James J Esq UNQUALIFIED95Asiya Javayant
1042Munro T MarrierJapan2024-04-01King, Christopher A Esq NEW56Anna Fali
1043James M OstroskyAustralia2024-04-02Buckley Miller Wright QUALIFIED0Amy Elsner
1044Jefferson P BowleyJapan2024-04-24Dorl, James J Esq RENEWAL9Anna Fali
1045Salvatore O PerinSpain2024-04-08Printing Dimensions RENEWAL75Ivan Magalhaes
1046Munro D SergiSpain2024-04-11Chapman, Ross E Esq NEGOTIATION56Stephen Shaw
1047Julie L NestleGermany2024-04-10Morlong Associates RENEWAL44Onyama Limba
1048Ashley R WieserArgentina2024-04-19Chapman, Ross E Esq UNQUALIFIED19Asiya Javayant
1049Munro K InouyeFrance2024-04-07Chemel, James L Cpa PROPOSAL67Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jennifer U DoeUnited KingdomAmy Elsner QUALIFIED
Antonio J DarakjyRussiaOnyama Limba UNQUALIFIED
Morrow V RutaUnited KingdomIvan Magalhaes NEW
Aruna G OstroskyBrazilElwin Sharvill UNQUALIFIED
Francesco K BologniaAustraliaElwin Sharvill QUALIFIED
Clifford Q StensethJapanAmy Elsner PROPOSAL
Stacey G VenereArgentinaXuxue Feng QUALIFIED
Costa L GillianBrazilStephen Shaw QUALIFIED
Emily X StensethItalyAnna Fali QUALIFIED
Munro J ChuiUnited KingdomStephen Shaw UNQUALIFIED
James T FigeroaJapanXuxue Feng NEW
Isabel A NestleUnited KingdomXuxue Feng UNQUALIFIED
Antonio E MorascaCanadaIoni Bowcher QUALIFIED
David L CampainBrazilAnna Fali PROPOSAL
Arvin T CaldareraUnited KingdomElwin Sharvill QUALIFIED
Aika X IturbideBrazilStephen Shaw NEW
Greenwood L ButtAustraliaIvan Magalhaes NEGOTIATION
Costa B StockhamUnited KingdomElwin Sharvill RENEWAL
Cody O GlickGermanyAsiya Javayant RENEWAL
Wickens R CaldareraJapanBernardo Dominic NEW
Julie U FlosiBrazilAmy Elsner QUALIFIED
Jones Y PoquetteCanadaAsiya Javayant QUALIFIED
Isabel P NestleArgentinaAnna Fali QUALIFIED
Salvatore Z SergiFranceStephen Shaw QUALIFIED
James P WaycottIndiaIvan Magalhaes NEW
Maria B ButtFranceXuxue Feng RENEWAL
Julie V CaudyAustraliaAsiya Javayant QUALIFIED
Kaitlin I VenereUnited KingdomIvan Magalhaes RENEWAL
Kaitlin A WhobreyJapanAsiya Javayant NEW
Leja J MaletCanadaStephen Shaw NEW
Kadeem H MarrierFranceIvan Magalhaes QUALIFIED
Faith E FlosiItalyElwin Sharvill RENEWAL
Julie Q CaudyItalyAmy Elsner QUALIFIED
Stacey Y FerenczJapanXuxue Feng RENEWAL
Mujtaba Q BriddickFranceBernardo Dominic UNQUALIFIED
Octavia I SlusarskiAustraliaAsiya Javayant QUALIFIED
Leon C FlosiBrazilIvan Magalhaes PROPOSAL
Juan P AlbaresJapanBernardo Dominic NEGOTIATION
Wickens Y WieserGermanyIoni Bowcher NEW
Munro O MacleadBrazilXuxue Feng QUALIFIED
Aika I WhobreyJapanIoni Bowcher QUALIFIED
Adams O SchemmerGermanyElwin Sharvill QUALIFIED
Nicolas M SchemmerBrazilAmy Elsner QUALIFIED
Salvatore Z VocelkaItalyAnna Fali QUALIFIED
Sinclair S RulapaughRussiaElwin Sharvill NEW
Aruna C BologniaItalyBernardo Dominic PROPOSAL
Emily P CaldareraAustraliaAnna Fali QUALIFIED
Cody D PaprockiJapanXuxue Feng QUALIFIED
Rodrigues W CaudyUnited KingdomXuxue Feng NEW
Smith L SergiSpainXuxue Feng UNQUALIFIED
Frozen Columns
Name
Alejandro I Ostrosky
Octavia P Royster
Nicolas P Vocelka
Clifford O Figeroa
Julie S Sergi
Darci G Caldarera
Kadeem Z Garufi
Francesco U Darakjy
Rodrigues N Figeroa
Antonio I Flosi
Arvin F Gillian
Smith S Darakjy
Leon Z Inouye
Maisha J Bowley
Faith W Perin
Maisha R Figeroa
Wickens T Ostrosky
Munro B Garufi
Salvatore J Ostrosky
Mujtaba H Caldarera
Izzy F Caldarera
Johnson M Nestle
Octavia V Schemmer
Wickens X Maclead
Johnson Y Slusarski
Ashley Q Rim
Smith G Slusarski
James V Kolmetz
Maisha Q Waycott
Kaitlin A Royster
Arvin Y Dilliard
Silvio U Albares
Greenwood I Nestle
Clifford X Kusko
Wickens F Royster
Darci P Slusarski
Rodrigues J Venere
Alejandro B Gillian
Adams W Venere
Greenwood T Campain
Clifford R Glick
Darci M Malet
Jeanfrancois E Maclead
Francesco E Kusko
Adams U Malet
Izzy B Caudy
Aditya D Schemmer
Darci X Wieser
Greenwood S Kolmetz
Aditya E Whobrey
IdCountryDate
1000India2024-04-13
1001Japan2024-04-17
1002United Kingdom2024-04-11
1003United Kingdom2024-04-23
1004Australia2024-04-22
1005Germany2024-04-04
1006Brazil2024-04-15
1007Canada2024-04-17
1008Japan2024-04-09
1009India2024-04-17
1010Australia2024-04-17
1011Canada2024-04-05
1012Canada2024-04-03
1013Argentina2024-04-12
1014Russia2024-04-26
1015Argentina2024-04-13
1016Brazil2024-04-06
1017Germany2024-04-28
1018Brazil2024-04-08
1019India2024-04-23
1020France2024-04-15
1021Argentina2024-04-19
1022Italy2024-04-25
1023Argentina2024-04-12
1024France2024-04-20
1025Australia2024-04-01
1026Canada2024-04-19
1027Brazil2024-04-13
1028India2024-04-11
1029France2024-04-19
1030Canada2024-04-04
1031Brazil2024-04-27
1032United Kingdom2024-04-12
1033Brazil2024-04-05
1034France2024-04-03
1035Russia2024-04-04
1036Australia2024-04-16
1037Germany2024-04-15
1038Russia2024-04-18
1039India2024-04-19
1040Canada2024-04-06
1041Russia2024-04-26
1042Russia2024-04-20
1043France2024-04-01
1044Canada2024-04-14
1045United Kingdom2024-04-14
1046Germany2024-04-07
1047Germany2024-04-04
1048United Kingdom2024-04-05
1049India2024-04-18

On-Demand Data

NameIdCountryDate
Jeanfrancois G Poquette1000Italy2024-04-17
Mayumi D Foller1001Argentina2024-04-27
Mujtaba P Flosi1002Spain2024-04-07
Clifford Z Shinko1003India2024-04-11
Jefferson S Perin1004Russia2024-04-28
Silvio J Figeroa1005Brazil2024-04-27
David U Ruta1006Australia2024-04-19
Greenwood R Doe1007Brazil2024-04-13
Alejandro G Whobrey1008Spain2024-04-16
Jennifer G Flosi1009Japan2024-03-31
Maria N Gillian1010Japan2024-04-12
David B Gillian1011Japan2024-04-07
Leja F Rim1012Argentina2024-04-01
Chavez P Kolmetz1013Argentina2024-04-20
Johnson C Rulapaugh1014India2024-04-16
Antonio T Dilliard1015Argentina2024-04-01
Adams H Tollner1016Germany2024-04-14
Salvatore J Inouye1017Russia2024-04-05
Nicolas E Ferencz1018Russia2024-04-17
Smith T Iturbide1019France2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez G GlickRussiaXuxue Feng PROPOSAL
Faith R FollerItalyAmy Elsner NEGOTIATION
Maisha A MarrierJapanIvan Magalhaes QUALIFIED
Salvatore Z FlosiAustraliaBernardo Dominic NEW
Smith U CampainRussiaIoni Bowcher NEGOTIATION
Stacey D OldroydSpainAsiya Javayant RENEWAL
Smith W StockhamCanadaStephen Shaw QUALIFIED
Jennifer C RoysterJapanAsiya Javayant NEGOTIATION
Maisha I FerenczBrazilAsiya Javayant NEGOTIATION
James I MaletFranceElwin Sharvill NEW
Silvio L RutaUnited KingdomAmy Elsner UNQUALIFIED
Faith U NickaGermanyAsiya Javayant QUALIFIED
Ivar P StensethGermanyAnna Fali RENEWAL
Alejandro U WieserSpainAsiya Javayant QUALIFIED
Jones T DarakjyBrazilAsiya Javayant RENEWAL
Mayumi V NickaUnited KingdomAmy Elsner RENEWAL
Leja Z VenereCanadaAsiya Javayant NEW
Julie J SergiCanadaXuxue Feng UNQUALIFIED
Misaki F FlosiCanadaAmy Elsner NEGOTIATION
Emily B OstroskyUnited KingdomXuxue Feng PROPOSAL
Aika Q OldroydArgentinaIoni Bowcher PROPOSAL
Jeanfrancois F GauchoFranceBernardo Dominic RENEWAL
Ivar K OldroydSpainIvan Magalhaes UNQUALIFIED
Nicolas N CampainRussiaStephen Shaw RENEWAL
Stacey Q ChuiJapanIoni Bowcher NEGOTIATION
Ivar Y IturbideAustraliaAnna Fali NEGOTIATION
Leon G FollerBrazilBernardo Dominic RENEWAL
Deepesh I OstroskyItalyOnyama Limba QUALIFIED
Stacey W RimJapanXuxue Feng PROPOSAL
Costa S NestleArgentinaStephen Shaw NEW
Salvatore M ShinkoGermanyElwin Sharvill NEW
Jennifer E CaudyItalyAnna Fali PROPOSAL
Stacey S FerenczUnited KingdomAmy Elsner UNQUALIFIED
Jefferson G WaycottIndiaAsiya Javayant QUALIFIED
Isabel Q GarufiGermanyBernardo Dominic RENEWAL
Mujtaba J PerinItalyElwin Sharvill UNQUALIFIED
Murillo G SchemmerGermanyOnyama Limba NEW
Greenwood W ChuiUnited KingdomOnyama Limba QUALIFIED
Claire V RoysterIndiaBernardo Dominic QUALIFIED
Deepesh X AmigonCanadaElwin Sharvill 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>