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
Izzy W SergiItalyIoni Bowcher NEW
Leon K GlickFranceAnna Fali PROPOSAL
Sinclair S RutaItalyIoni Bowcher PROPOSAL
Jefferson Q AmigonGermanyAsiya Javayant NEW
Tony Y KolmetzCanadaAmy Elsner RENEWAL
Maria J VocelkaJapanXuxue Feng PROPOSAL
Ricardo P MaletAustraliaIoni Bowcher UNQUALIFIED
Aditya T BologniaUnited KingdomXuxue Feng NEGOTIATION
Kaitlin W KolmetzArgentinaBernardo Dominic PROPOSAL
Chavez R RulapaughArgentinaOnyama Limba NEW
Greenwood E GarufiJapanOnyama Limba PROPOSAL
Aika X DilliardIndiaElwin Sharvill NEGOTIATION
Ivar Y RulapaughFranceIvan Magalhaes NEW
Octavia S OstroskyGermanyAmy Elsner PROPOSAL
Deepesh M ButtGermanyAnna Fali UNQUALIFIED
Costa E DarakjyIndiaAnna Fali NEW
Alejandro U FerenczGermanyIoni Bowcher NEW
Aika B RoysterArgentinaIvan Magalhaes PROPOSAL
Faith B AlbaresUnited KingdomAmy Elsner PROPOSAL
Juan F OstroskyArgentinaBernardo Dominic UNQUALIFIED
Isabel O NestleUnited KingdomBernardo Dominic PROPOSAL
Darci P RulapaughSpainBernardo Dominic PROPOSAL
Julie U GlickArgentinaElwin Sharvill NEW
Stacey P PoquetteJapanXuxue Feng NEGOTIATION
Aditya F FlosiCanadaStephen Shaw PROPOSAL
Deepesh U CaudyUnited KingdomAnna Fali NEW
Tony N NickaAustraliaXuxue Feng RENEWAL
Ashley Q CaudySpainStephen Shaw RENEWAL
Misaki F GlickIndiaIoni Bowcher UNQUALIFIED
Octavia C FerenczGermanyAmy Elsner QUALIFIED
David L BriddickFranceBernardo Dominic NEW
Johnson M NestleArgentinaIvan Magalhaes PROPOSAL
Munro I PaprockiItalyOnyama Limba NEGOTIATION
Munro E SaylorsAustraliaXuxue Feng PROPOSAL
Aditya M RoysterIndiaBernardo Dominic NEGOTIATION
Ivar G PerinItalyElwin Sharvill UNQUALIFIED
Adams S OstroskyGermanyAmy Elsner RENEWAL
Jones X DoeArgentinaXuxue Feng UNQUALIFIED
Francesco J CaudyItalyIoni Bowcher RENEWAL
Isabel D WieserCanadaIvan Magalhaes QUALIFIED
Izzy B RulapaughUnited KingdomAsiya Javayant NEW
Ivar N SaylorsUnited KingdomOnyama Limba RENEWAL
Cody J OstroskyItalyAnna Fali PROPOSAL
Jennifer C IturbideRussiaBernardo Dominic RENEWAL
David G RimRussiaOnyama Limba RENEWAL
Alejandro J SergiJapanIvan Magalhaes QUALIFIED
Izzy H BriddickCanadaAnna Fali RENEWAL
Rodrigues J NickaSpainXuxue Feng NEW
Salvatore S SaylorsUnited KingdomBernardo Dominic RENEWAL
Izzy C WhobreyArgentinaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair J TollnerIndiaAmy Elsner PROPOSAL
Kaitlin S ButtJapanXuxue Feng NEGOTIATION
Mayumi F BologniaSpainXuxue Feng QUALIFIED
Mujtaba B DoeAustraliaStephen Shaw PROPOSAL
Deepesh P PerinBrazilAmy Elsner RENEWAL
Maisha O PoquetteCanadaBernardo Dominic QUALIFIED
Francesco R BriddickSpainElwin Sharvill NEGOTIATION
Jefferson X AlbaresAustraliaAsiya Javayant UNQUALIFIED
Maria N BowleyAustraliaIvan Magalhaes PROPOSAL
Aika N MacleadItalyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci S SchemmerUnited Kingdom2024-03-31Truhlar And Truhlar Attys NEW56Anna Fali
1001Ivar T DarakjyUnited Kingdom2024-04-24Rousseaux, Michael Esq RENEWAL74Elwin Sharvill
1002Isabel L GillianRussia2024-04-18Printing Dimensions PROPOSAL41Bernardo Dominic
1003Sinclair E SergiSpain2024-04-22Chemel, James L Cpa NEGOTIATION89Amy Elsner
1004Jennifer I NestleArgentina2024-04-18Buckley Miller Wright RENEWAL37Ioni Bowcher
1005Jones D GlickIndia2024-04-25Feiner Bros PROPOSAL47Bernardo Dominic
1006Clifford U VocelkaItaly2024-04-11Printing Dimensions NEGOTIATION62Ioni Bowcher
1007Mayumi W WhobreyIndia2024-04-11Dorl, James J Esq RENEWAL58Anna Fali
1008Tony U InouyeJapan2024-03-29Truhlar And Truhlar Attys RENEWAL89Bernardo Dominic
1009Salvatore B PoquetteJapan2024-04-20Feltz Printing Service UNQUALIFIED5Ioni Bowcher
1010Sinclair M GlickSpain2024-04-20Chemel, James L Cpa PROPOSAL42Xuxue Feng
1011Jeanfrancois A NickaUnited Kingdom2024-04-19Truhlar And Truhlar Attys RENEWAL52Xuxue Feng
1012Silvio Q NickaUnited Kingdom2024-04-09Feltz Printing Service NEW80Ioni Bowcher
1013Deepesh G TollnerIndia2024-04-20King, Christopher A Esq PROPOSAL63Elwin Sharvill
1014Misaki M StensethJapan2024-04-21Chemel, James L Cpa NEW23Elwin Sharvill
1015Aditya J GlickIndia2024-04-09Printing Dimensions RENEWAL71Ivan Magalhaes
1016Jeanfrancois C PaprockiIndia2024-04-12Chapman, Ross E Esq NEGOTIATION92Anna Fali
1017Faith A DarakjyItaly2024-03-31Feltz Printing Service RENEWAL75Bernardo Dominic
1018Deepesh Q OstroskyRussia2024-04-19Benton, John B Jr QUALIFIED23Amy Elsner
1019Jones G BowleyAustralia2024-04-13Chanay, Jeffrey A Esq QUALIFIED68Xuxue Feng
1020Jefferson Z MacleadAustralia2024-04-18Rangoni Of Florence NEGOTIATION56Onyama Limba
1021Costa X InouyeGermany2024-04-11Feiner Bros NEGOTIATION68Xuxue Feng
1022Adams B OldroydFrance2024-04-15Truhlar And Truhlar Attys PROPOSAL51Bernardo Dominic
1023Maisha Y GarufiSpain2024-04-24Buckley Miller Wright RENEWAL26Ioni Bowcher
1024Salvatore P RoysterSpain2024-03-28Printing Dimensions QUALIFIED36Xuxue Feng
1025Misaki X ShinkoItaly2024-04-25Rangoni Of Florence NEW8Bernardo Dominic
1026Deepesh Q GillianArgentina2024-04-23Morlong Associates PROPOSAL70Asiya Javayant
1027Costa O SaylorsRussia2024-04-16Commercial Press NEW10Elwin Sharvill
1028Jeanfrancois K StensethRussia2024-04-15Benton, John B Jr NEW33Ioni Bowcher
1029Aika G AmigonItaly2024-04-21Rousseaux, Michael Esq NEW16Ioni Bowcher
1030Morrow F FlosiFrance2024-04-21Feiner Bros UNQUALIFIED40Stephen Shaw
1031Leon J RulapaughFrance2024-04-02Printing Dimensions PROPOSAL44Ivan Magalhaes
1032Jefferson W TollnerJapan2024-03-29Truhlar And Truhlar Attys NEW36Ivan Magalhaes
1033Stacey F BowleyRussia2024-04-13Commercial Press QUALIFIED27Onyama Limba
1034Leja E DoeSpain2024-04-11Chapman, Ross E Esq PROPOSAL76Bernardo Dominic
1035Jones D RutaGermany2024-03-31Dorl, James J Esq NEGOTIATION66Stephen Shaw
1036Francesco H NickaIndia2024-04-03Truhlar And Truhlar Attys QUALIFIED66Ivan Magalhaes
1037Leja T NickaRussia2024-04-18Feltz Printing Service NEW77Amy Elsner
1038Sinclair X MorascaSpain2024-04-06Buckley Miller Wright PROPOSAL60Xuxue Feng
1039Cody E KuskoUnited Kingdom2024-04-20Commercial Press NEW43Bernardo Dominic
1040Ivar V FigeroaJapan2024-04-11Buckley Miller Wright UNQUALIFIED73Amy Elsner
1041Faith M BowleyJapan2024-04-15Morlong Associates PROPOSAL76Ivan Magalhaes
1042Emily U NestleCanada2024-04-03Chapman, Ross E Esq PROPOSAL81Bernardo Dominic
1043Leon S PaprockiArgentina2024-04-13Dorl, James J Esq RENEWAL28Stephen Shaw
1044Izzy T KolmetzRussia2024-04-16Rangoni Of Florence UNQUALIFIED20Elwin Sharvill
1045Jones G OstroskyCanada2024-04-17Commercial Press RENEWAL95Onyama Limba
1046Silvio Z GarufiJapan2024-04-06Chemel, James L Cpa PROPOSAL71Ivan Magalhaes
1047Leja I OstroskyAustralia2024-04-07Printing Dimensions UNQUALIFIED30Amy Elsner
1048Misaki E ChuiItaly2024-04-13Commercial Press NEGOTIATION92Ioni Bowcher
1049Costa H SchemmerItaly2024-04-24Rangoni Of Florence PROPOSAL0Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Juan S FigeroaUnited KingdomIvan Magalhaes NEW
Morrow S MaletItalyStephen Shaw RENEWAL
Julie V FlosiBrazilAnna Fali QUALIFIED
Sinclair D PaprockiSpainAsiya Javayant UNQUALIFIED
Jones Q PaprockiBrazilIoni Bowcher UNQUALIFIED
Octavia K BologniaSpainElwin Sharvill RENEWAL
Isabel Y RimSpainBernardo Dominic PROPOSAL
Chavez Y NestleUnited KingdomElwin Sharvill PROPOSAL
Ivar B MaletUnited KingdomOnyama Limba RENEWAL
Aditya V KolmetzItalyIoni Bowcher NEW
Clifford V WaycottAustraliaIoni Bowcher PROPOSAL
Chavez E WhobreyJapanAnna Fali UNQUALIFIED
Jones B FlosiSpainIvan Magalhaes NEW
Morrow P IturbideGermanyIoni Bowcher QUALIFIED
David G FigeroaBrazilBernardo Dominic UNQUALIFIED
Tony N FigeroaGermanyAsiya Javayant QUALIFIED
Greenwood R OldroydRussiaIvan Magalhaes NEGOTIATION
Juan S StensethUnited KingdomBernardo Dominic PROPOSAL
Morrow X KuskoItalyOnyama Limba NEGOTIATION
Maria O VocelkaSpainAmy Elsner NEW
Octavia P OldroydGermanyBernardo Dominic PROPOSAL
Johnson Z InouyeUnited KingdomElwin Sharvill NEW
Izzy B BriddickSpainAnna Fali UNQUALIFIED
Salvatore B MacleadBrazilBernardo Dominic NEGOTIATION
Adams I GauchoRussiaAnna Fali QUALIFIED
Rodrigues P DilliardIndiaIvan Magalhaes PROPOSAL
Smith N NestleUnited KingdomAnna Fali NEGOTIATION
Emily O DoeAustraliaXuxue Feng UNQUALIFIED
Mujtaba I IturbideArgentinaOnyama Limba RENEWAL
James U ChuiCanadaOnyama Limba RENEWAL
Kadeem A BologniaGermanyAmy Elsner NEGOTIATION
Deepesh T BriddickGermanyOnyama Limba NEW
Deepesh R WhobreySpainAmy Elsner PROPOSAL
Deepesh K FigeroaCanadaElwin Sharvill NEW
Francesco B DarakjyArgentinaOnyama Limba RENEWAL
Izzy F StensethGermanyBernardo Dominic QUALIFIED
Emily O OstroskyRussiaElwin Sharvill RENEWAL
Adams W RulapaughCanadaStephen Shaw PROPOSAL
Mujtaba R StockhamFranceXuxue Feng NEW
Mujtaba F DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Kadeem P MorascaCanadaAmy Elsner UNQUALIFIED
Kaitlin A ChuiJapanElwin Sharvill NEGOTIATION
Deepesh M StockhamJapanElwin Sharvill NEGOTIATION
Jefferson R SaylorsIndiaXuxue Feng PROPOSAL
Johnson Y RimJapanAsiya Javayant PROPOSAL
Jennifer O VocelkaItalyAmy Elsner NEW
Rodrigues J MaletRussiaAnna Fali NEGOTIATION
Leon N WieserCanadaOnyama Limba PROPOSAL
James P DoeSpainAsiya Javayant NEW
Izzy J PoquetteGermanyOnyama Limba QUALIFIED
Frozen Columns
Name
Rodrigues R Perin
Clifford N Chui
Julie C Chui
Mujtaba S Venere
Ivar I Wieser
Leon F Figeroa
Misaki L Darakjy
Mujtaba F Gillian
Wickens O Saylors
Emily C Ruta
Kaitlin V Tollner
Jefferson F Kolmetz
Aditya J Waycott
Aruna U Venere
Sinclair H Poquette
Aruna I Briddick
Faith D Stenseth
Leja Q Garufi
Aditya U Kolmetz
Greenwood P Ruta
Greenwood L Amigon
James M Marrier
Ricardo N Rim
Ivar K Rulapaugh
Costa C Ruta
Leja K Maclead
Adams U Wieser
Ashley U Darakjy
Aika R Darakjy
Chavez O Ferencz
Emily V Gillian
Nicolas T Perin
Maria N Marrier
Nicolas A Malet
Morrow Q Ferencz
Salvatore K Morasca
Julie J Caldarera
Izzy L Malet
Ivar K Garufi
Arvin O Bolognia
Darci U Whobrey
Smith U Bolognia
Antonio M Nestle
Munro Y Maclead
Johnson X Gaucho
Ivar I Shinko
Aika P Schemmer
Mujtaba Y Rulapaugh
Jeanfrancois M Iturbide
Kaitlin L Vocelka
IdCountryDate
1000France2024-04-08
1001Spain2024-04-12
1002Italy2024-04-03
1003Canada2024-04-18
1004Germany2024-04-17
1005Canada2024-04-18
1006Brazil2024-03-30
1007Germany2024-04-22
1008Argentina2024-04-02
1009United Kingdom2024-03-30
1010India2024-04-23
1011Italy2024-04-21
1012Italy2024-03-29
1013Australia2024-03-30
1014India2024-03-29
1015Russia2024-04-25
1016Italy2024-04-14
1017Canada2024-04-24
1018Germany2024-04-13
1019France2024-04-20
1020Germany2024-04-16
1021Germany2024-04-08
1022Russia2024-04-19
1023Brazil2024-03-31
1024Italy2024-04-17
1025Canada2024-04-24
1026Australia2024-03-31
1027Japan2024-04-16
1028Russia2024-04-16
1029Russia2024-03-29
1030United Kingdom2024-03-30
1031France2024-04-11
1032Russia2024-03-28
1033India2024-04-09
1034Russia2024-04-11
1035India2024-04-01
1036Canada2024-04-22
1037Spain2024-04-04
1038France2024-04-13
1039Spain2024-04-02
1040Japan2024-04-14
1041Canada2024-04-01
1042Japan2024-04-01
1043United Kingdom2024-03-31
1044Australia2024-04-17
1045Spain2024-04-05
1046France2024-04-21
1047Japan2024-04-03
1048United Kingdom2024-04-25
1049India2024-04-06

On-Demand Data

NameIdCountryDate
Izzy H Ruta1000United Kingdom2024-03-29
Chavez U Garufi1001Russia2024-04-12
Jefferson V Flosi1002Australia2024-04-17
Alejandro G Marrier1003India2024-04-20
Emily F Campain1004Spain2024-04-25
Misaki R Stockham1005France2024-03-29
Leon M Schemmer1006France2024-04-10
Maria R Butt1007India2024-04-13
Mayumi P Doe1008Spain2024-04-05
Leon B Paprocki1009Canada2024-04-12
Emily G Briddick1010France2024-04-20
Salvatore B Butt1011Spain2024-04-16
Leon N Slusarski1012Brazil2024-04-25
Wickens R Paprocki1013Japan2024-04-14
Faith G Rim1014Italy2024-03-30
Francesco S Butt1015Japan2024-04-17
Munro F Gillian1016Brazil2024-04-18
Julie X Rulapaugh1017Japan2024-04-26
Clifford K Royster1018Russia2024-04-13
Tony J Albares1019Spain2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody O GarufiRussiaOnyama Limba UNQUALIFIED
Isabel Z VenereJapanElwin Sharvill QUALIFIED
Antonio X PaprockiFranceElwin Sharvill NEGOTIATION
Greenwood R ButtItalyAsiya Javayant NEGOTIATION
Greenwood N OldroydItalyIvan Magalhaes QUALIFIED
Cody Q OstroskyIndiaElwin Sharvill UNQUALIFIED
Maisha T OldroydArgentinaAnna Fali NEGOTIATION
Darci B GauchoBrazilStephen Shaw QUALIFIED
Jeanfrancois Q CaudyCanadaElwin Sharvill RENEWAL
Deepesh Q BowleyIndiaAnna Fali NEGOTIATION
Juan K WaycottCanadaBernardo Dominic RENEWAL
Faith Q DilliardCanadaOnyama Limba NEGOTIATION
Wickens Z CaldareraAustraliaAsiya Javayant NEGOTIATION
Costa K NestleIndiaIvan Magalhaes RENEWAL
Aditya H GarufiItalyAnna Fali PROPOSAL
Greenwood Q MacleadJapanAnna Fali UNQUALIFIED
Wickens N NestleSpainAmy Elsner RENEWAL
Nicolas L GillianItalyAnna Fali NEGOTIATION
Greenwood W AlbaresBrazilElwin Sharvill RENEWAL
Silvio H KuskoAustraliaElwin Sharvill QUALIFIED
Octavia S TollnerAustraliaIoni Bowcher NEW
Claire U BowleyFranceXuxue Feng RENEWAL
Isabel P GarufiItalyXuxue Feng PROPOSAL
Nicolas U InouyeUnited KingdomAmy Elsner NEW
Isabel C WaycottJapanIoni Bowcher RENEWAL
Johnson S PaprockiIndiaAmy Elsner QUALIFIED
Chavez O StensethBrazilOnyama Limba NEGOTIATION
Jennifer L PerinCanadaAmy Elsner RENEWAL
Smith R MaletItalyAmy Elsner NEGOTIATION
Juan U CaudySpainElwin Sharvill NEW
Kaitlin D MacleadRussiaStephen Shaw RENEWAL
Johnson L AlbaresItalyOnyama Limba NEW
Jefferson B IturbideFranceIoni Bowcher UNQUALIFIED
Cody W FlosiSpainIoni Bowcher UNQUALIFIED
Isabel H DoeBrazilIoni Bowcher PROPOSAL
Salvatore Y MaletRussiaAnna Fali PROPOSAL
Francesco P KolmetzSpainElwin Sharvill UNQUALIFIED
Emily B WieserJapanAmy Elsner QUALIFIED
Darci Y InouyeFranceAmy Elsner QUALIFIED
Izzy D OstroskyGermanyAnna Fali 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>