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
Clifford N RulapaughUnited KingdomAnna Fali PROPOSAL
Wickens Y OldroydItalyIvan Magalhaes NEGOTIATION
Costa M ButtArgentinaAmy Elsner NEGOTIATION
Aditya B PaprockiUnited KingdomAnna Fali RENEWAL
Maisha F SaylorsRussiaIoni Bowcher RENEWAL
Smith R CaldareraSpainOnyama Limba QUALIFIED
Claire G BologniaSpainAmy Elsner UNQUALIFIED
Johnson U DoeSpainOnyama Limba PROPOSAL
Faith V FigeroaFranceAnna Fali NEW
Leon B OstroskyAustraliaBernardo Dominic NEW
Julie U PaprockiCanadaStephen Shaw PROPOSAL
Jones K KolmetzIndiaAsiya Javayant NEW
Francesco R MaletSpainElwin Sharvill NEGOTIATION
Cody M FerenczGermanyAnna Fali PROPOSAL
Murillo L PerinRussiaAsiya Javayant NEGOTIATION
Smith U GarufiJapanElwin Sharvill QUALIFIED
Rodrigues D AlbaresArgentinaIoni Bowcher NEGOTIATION
Jennifer C NestleAustraliaElwin Sharvill NEGOTIATION
Faith X AlbaresSpainAsiya Javayant QUALIFIED
Mayumi D PerinGermanyElwin Sharvill NEGOTIATION
Jeanfrancois T SchemmerBrazilBernardo Dominic NEGOTIATION
Tony S SergiCanadaAsiya Javayant QUALIFIED
Leon V GillianRussiaElwin Sharvill NEGOTIATION
Izzy W NickaBrazilIvan Magalhaes NEGOTIATION
Tony Q RoysterSpainXuxue Feng UNQUALIFIED
Deepesh K RulapaughFranceElwin Sharvill UNQUALIFIED
Maria N RimIndiaAsiya Javayant PROPOSAL
Adams O RulapaughArgentinaOnyama Limba NEW
Antonio U MaletRussiaIvan Magalhaes UNQUALIFIED
Jefferson Y SchemmerBrazilIvan Magalhaes NEW
Stacey B MaletJapanXuxue Feng PROPOSAL
Isabel Q GauchoBrazilIvan Magalhaes NEW
Antonio I RimIndiaIvan Magalhaes QUALIFIED
Sinclair U FollerItalyAmy Elsner UNQUALIFIED
Murillo R CaldareraAustraliaIvan Magalhaes QUALIFIED
Jones N KolmetzFranceAsiya Javayant NEW
Aika R FerenczIndiaAmy Elsner QUALIFIED
Aditya E FigeroaJapanAmy Elsner NEW
Darci Y GauchoFranceOnyama Limba NEGOTIATION
Aruna X ShinkoCanadaAnna Fali NEGOTIATION
Jefferson T PaprockiUnited KingdomBernardo Dominic NEW
Darci A BriddickIndiaBernardo Dominic PROPOSAL
Ivar J AlbaresUnited KingdomBernardo Dominic RENEWAL
Aruna M IturbideBrazilAsiya Javayant NEW
Emily U RimCanadaAnna Fali PROPOSAL
Cody V SlusarskiArgentinaAsiya Javayant PROPOSAL
Salvatore W BriddickSpainIoni Bowcher NEGOTIATION
Ricardo K PoquetteItalyAnna Fali QUALIFIED
Jennifer Q TollnerSpainIvan Magalhaes PROPOSAL
Alejandro U RutaRussiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Stacey A CaldareraSpainIoni Bowcher NEW
Leja Y RoysterArgentinaIoni Bowcher QUALIFIED
Silvio Z MacleadUnited KingdomAnna Fali PROPOSAL
Johnson U WaycottGermanyStephen Shaw QUALIFIED
Stacey A AlbaresItalyXuxue Feng RENEWAL
Jeanfrancois H RoysterSpainAsiya Javayant RENEWAL
Stacey J PoquetteAustraliaIvan Magalhaes QUALIFIED
Antonio C RulapaughItalyIvan Magalhaes QUALIFIED
Salvatore U GarufiAustraliaXuxue Feng PROPOSAL
Claire P PerinBrazilStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Q RulapaughSpain2024-04-20Benton, John B Jr QUALIFIED28Anna Fali
1001Mayumi B RoysterJapan2024-04-05Feiner Bros RENEWAL7Anna Fali
1002Ashley L BriddickArgentina2024-04-09Morlong Associates PROPOSAL69Anna Fali
1003Ricardo Q SergiItaly2024-03-27Commercial Press NEW74Elwin Sharvill
1004Rodrigues U IturbideRussia2024-04-13Chapman, Ross E Esq QUALIFIED51Ioni Bowcher
1005Costa N DilliardArgentina2024-04-07King, Christopher A Esq NEGOTIATION21Amy Elsner
1006Silvio L RoysterGermany2024-04-11Chemel, James L Cpa NEGOTIATION79Onyama Limba
1007Izzy U MacleadUnited Kingdom2024-04-23Commercial Press RENEWAL33Elwin Sharvill
1008Alejandro K SergiAustralia2024-04-21Feiner Bros QUALIFIED74Ivan Magalhaes
1009Silvio N BologniaFrance2024-03-26Rousseaux, Michael Esq RENEWAL63Onyama Limba
1010Octavia N WieserItaly2024-04-03Truhlar And Truhlar Attys QUALIFIED92Asiya Javayant
1011Maria L MorascaIndia2024-04-15Printing Dimensions NEW60Elwin Sharvill
1012Leon N IturbideBrazil2024-04-23Printing Dimensions RENEWAL73Stephen Shaw
1013Alejandro X NestleIndia2024-03-31Truhlar And Truhlar Attys NEW26Anna Fali
1014Wickens R AlbaresJapan2024-03-26Chapman, Ross E Esq UNQUALIFIED97Anna Fali
1015Maria M NickaBrazil2024-03-31Chapman, Ross E Esq NEW66Anna Fali
1016Claire N OstroskySpain2024-03-31Truhlar And Truhlar Attys RENEWAL44Anna Fali
1017Faith M WaycottAustralia2024-04-02Buckley Miller Wright NEW0Anna Fali
1018Greenwood I DarakjyRussia2024-04-03Morlong Associates UNQUALIFIED25Asiya Javayant
1019Maisha P FigeroaAustralia2024-04-12King, Christopher A Esq NEW24Asiya Javayant
1020Ivar X ButtCanada2024-04-05Printing Dimensions NEGOTIATION74Asiya Javayant
1021Mayumi C ShinkoJapan2024-04-13Chemel, James L Cpa NEW45Stephen Shaw
1022Jefferson W RulapaughBrazil2024-04-09Chapman, Ross E Esq PROPOSAL22Amy Elsner
1023Mayumi G FerenczCanada2024-04-20Rangoni Of Florence NEGOTIATION60Bernardo Dominic
1024Alejandro R OldroydIndia2024-04-17King, Christopher A Esq UNQUALIFIED92Amy Elsner
1025Kaitlin Y PerinItaly2024-04-23Feiner Bros RENEWAL80Onyama Limba
1026Ricardo G GlickSpain2024-04-11Buckley Miller Wright QUALIFIED79Ivan Magalhaes
1027Claire G PerinJapan2024-04-13Rangoni Of Florence PROPOSAL64Amy Elsner
1028Alejandro E BologniaCanada2024-04-02Chapman, Ross E Esq QUALIFIED52Amy Elsner
1029Maria G WieserCanada2024-04-19Rangoni Of Florence NEW97Stephen Shaw
1030Wickens J SchemmerArgentina2024-04-06Feiner Bros QUALIFIED90Stephen Shaw
1031Mujtaba D SaylorsJapan2024-04-24Rangoni Of Florence PROPOSAL53Xuxue Feng
1032Aika W RulapaughItaly2024-04-12Morlong Associates UNQUALIFIED74Ioni Bowcher
1033Faith O IturbideUnited Kingdom2024-04-17Rangoni Of Florence RENEWAL25Elwin Sharvill
1034Aika D FlosiSpain2024-04-14Feltz Printing Service RENEWAL40Ioni Bowcher
1035Ivar X BowleyBrazil2024-04-18Commercial Press UNQUALIFIED39Asiya Javayant
1036Isabel J CaudyJapan2024-04-15Dorl, James J Esq UNQUALIFIED96Onyama Limba
1037Jones R BriddickJapan2024-04-04Feiner Bros NEW27Ioni Bowcher
1038Deepesh U NestleGermany2024-04-23Benton, John B Jr PROPOSAL4Anna Fali
1039Morrow W InouyeItaly2024-04-13Truhlar And Truhlar Attys QUALIFIED13Stephen Shaw
1040Alejandro P WieserGermany2024-04-05Chemel, James L Cpa NEGOTIATION18Bernardo Dominic
1041Mujtaba Z PerinIndia2024-03-27Feiner Bros QUALIFIED28Asiya Javayant
1042Munro M CampainGermany2024-04-15Feltz Printing Service NEGOTIATION27Ioni Bowcher
1043Clifford S MarrierUnited Kingdom2024-03-31Printing Dimensions NEGOTIATION17Onyama Limba
1044Ricardo A PerinUnited Kingdom2024-03-30Chanay, Jeffrey A Esq NEW82Xuxue Feng
1045Jones J GarufiBrazil2024-04-17Rangoni Of Florence PROPOSAL26Ivan Magalhaes
1046Smith Y BriddickJapan2024-04-10Buckley Miller Wright NEW31Stephen Shaw
1047Costa B TollnerCanada2024-04-13Commercial Press PROPOSAL27Ivan Magalhaes
1048Stacey H DilliardRussia2024-04-21Commercial Press UNQUALIFIED18Amy Elsner
1049Wickens L MarrierSpain2024-04-24Benton, John B Jr PROPOSAL14Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily F OldroydItalyXuxue Feng PROPOSAL
Maria C DarakjyBrazilIvan Magalhaes PROPOSAL
Darci N CaudyBrazilIvan Magalhaes RENEWAL
Kadeem V PoquetteCanadaAsiya Javayant RENEWAL
Smith N WhobreyCanadaStephen Shaw PROPOSAL
Francesco R MaletGermanyAnna Fali RENEWAL
Aruna Z PaprockiBrazilXuxue Feng UNQUALIFIED
Leja C PoquetteBrazilIoni Bowcher RENEWAL
Tony O VenereCanadaElwin Sharvill NEGOTIATION
Silvio W AmigonArgentinaAmy Elsner NEGOTIATION
Ivar A KuskoGermanyXuxue Feng PROPOSAL
Munro S OstroskyGermanyAmy Elsner UNQUALIFIED
Arvin I ShinkoArgentinaIoni Bowcher PROPOSAL
Morrow M GlickItalyOnyama Limba UNQUALIFIED
Jeanfrancois R StensethJapanAsiya Javayant PROPOSAL
Adams S VenereJapanIoni Bowcher QUALIFIED
Aditya Z BriddickIndiaIoni Bowcher RENEWAL
Costa K RutaFranceXuxue Feng RENEWAL
Wickens X FerenczCanadaIoni Bowcher QUALIFIED
Emily H SergiUnited KingdomIvan Magalhaes NEW
Francesco E PaprockiBrazilXuxue Feng RENEWAL
Maria F CampainGermanyAsiya Javayant RENEWAL
Mayumi B FlosiAustraliaAnna Fali NEW
Darci A MaletGermanyBernardo Dominic QUALIFIED
Kaitlin Z MacleadSpainOnyama Limba RENEWAL
Julie U ButtUnited KingdomStephen Shaw PROPOSAL
Morrow V MaletAustraliaOnyama Limba RENEWAL
Morrow D VocelkaSpainIoni Bowcher QUALIFIED
Costa X WieserFranceIoni Bowcher UNQUALIFIED
Murillo L BriddickIndiaAnna Fali NEW
Alejandro D ButtUnited KingdomAmy Elsner UNQUALIFIED
Ashley L BriddickAustraliaIoni Bowcher QUALIFIED
Cody G RulapaughAustraliaAnna Fali NEW
Costa M AlbaresBrazilOnyama Limba NEW
Salvatore Q CampainCanadaAmy Elsner PROPOSAL
Maisha U MorascaGermanyBernardo Dominic RENEWAL
Arvin M VocelkaSpainIvan Magalhaes UNQUALIFIED
Tony G MacleadJapanOnyama Limba RENEWAL
Morrow P GillianBrazilBernardo Dominic NEW
Ivar Z VenereItalyAmy Elsner QUALIFIED
Clifford K RutaSpainAnna Fali NEW
Misaki M CampainBrazilAnna Fali PROPOSAL
Cody B WieserItalyIvan Magalhaes PROPOSAL
Faith C FlosiCanadaIvan Magalhaes NEW
Mujtaba B WaycottIndiaOnyama Limba NEGOTIATION
Wickens I AlbaresArgentinaAsiya Javayant NEW
Francesco C MacleadFranceXuxue Feng NEW
Juan M KuskoJapanAsiya Javayant QUALIFIED
Smith M DarakjyJapanBernardo Dominic PROPOSAL
Jeanfrancois X MarrierRussiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Johnson F Ferencz
Mayumi K Tollner
Cody M Maclead
James V Foller
Chavez J Stockham
Wickens C Venere
Adams N Waycott
Antonio S Schemmer
Greenwood D Foller
Jeanfrancois I Darakjy
Jeanfrancois N Stockham
Misaki D Doe
Aditya K Shinko
Costa H Maclead
Antonio X Rim
Silvio N Foller
Greenwood Q Rim
Maisha P Nestle
Johnson G Inouye
Kadeem E Perin
Isabel C Doe
Aika A Gillian
Murillo D Ostrosky
Wickens B Schemmer
Stacey W Maclead
Jennifer J Ostrosky
David F Nicka
Alejandro Y Stenseth
Aika H Rim
Chavez G Rim
Maria M Glick
Leon V Campain
Sinclair P Stockham
Ashley P Butt
Sinclair K Campain
Johnson W Stenseth
Leon P Paprocki
Nicolas D Nicka
Mujtaba B Poquette
Arvin B Darakjy
Misaki R Doe
Mayumi H Stockham
Johnson T Schemmer
Mayumi W Flosi
Stacey K Paprocki
Aruna E Flosi
Clifford D Kusko
Murillo Y Perin
Faith Q Amigon
Aruna N Perin
IdCountryDate
1000United Kingdom2024-04-07
1001United Kingdom2024-04-17
1002Canada2024-04-10
1003Canada2024-04-10
1004Spain2024-04-22
1005India2024-04-24
1006Japan2024-04-18
1007Argentina2024-04-11
1008Argentina2024-04-22
1009United Kingdom2024-04-03
1010Argentina2024-03-26
1011Russia2024-04-10
1012Australia2024-03-30
1013Russia2024-04-20
1014Japan2024-03-26
1015Spain2024-04-22
1016Australia2024-04-06
1017Russia2024-04-02
1018France2024-04-18
1019Spain2024-03-29
1020Germany2024-04-09
1021Germany2024-04-08
1022United Kingdom2024-04-10
1023Brazil2024-04-10
1024France2024-04-05
1025United Kingdom2024-03-28
1026Japan2024-04-18
1027Canada2024-04-11
1028France2024-04-02
1029Brazil2024-04-14
1030Argentina2024-04-04
1031Canada2024-04-19
1032Japan2024-04-24
1033Canada2024-04-02
1034Italy2024-04-12
1035Italy2024-04-04
1036India2024-04-19
1037United Kingdom2024-04-10
1038Australia2024-04-21
1039Italy2024-04-06
1040India2024-04-20
1041Spain2024-04-05
1042Canada2024-04-01
1043Argentina2024-04-23
1044France2024-03-27
1045Italy2024-04-23
1046Russia2024-04-04
1047Germany2024-04-02
1048Spain2024-04-02
1049Japan2024-04-14

On-Demand Data

NameIdCountryDate
Izzy V Venere1000Australia2024-04-18
Isabel Y Wieser1001Russia2024-04-12
Mayumi G Royster1002Japan2024-04-05
Ivar W Vocelka1003Canada2024-04-18
Aika C Stockham1004Brazil2024-04-12
Cody E Perin1005Spain2024-03-27
Mayumi A Saylors1006France2024-04-04
Jefferson P Caldarera1007Germany2024-03-29
Aditya V Malet1008Australia2024-04-19
Smith Q Perin1009Australia2024-03-28
Tony C Campain1010Canada2024-04-03
Stacey K Bolognia1011Argentina2024-04-15
Smith F Maclead1012Argentina2024-04-23
Greenwood E Rim1013France2024-04-05
Jefferson L Poquette1014Japan2024-04-05
Jennifer P Poquette1015Spain2024-04-16
Deepesh E Saylors1016United Kingdom2024-03-26
Mujtaba O Rim1017France2024-04-14
Octavia J Waycott1018Japan2024-04-14
Munro O Tollner1019Canada2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore U GillianIndiaAmy Elsner PROPOSAL
Ricardo M NestleGermanyOnyama Limba NEGOTIATION
Cody O AlbaresSpainStephen Shaw UNQUALIFIED
Aika U NickaCanadaIvan Magalhaes RENEWAL
Murillo Z ButtAustraliaAnna Fali NEGOTIATION
Munro X SergiSpainAsiya Javayant RENEWAL
Aditya I FigeroaFranceAnna Fali QUALIFIED
Aruna L MaletCanadaXuxue Feng RENEWAL
Aruna E GarufiArgentinaStephen Shaw PROPOSAL
Maria N ButtSpainIoni Bowcher QUALIFIED
Maria R CampainGermanyAnna Fali NEGOTIATION
Francesco X SergiIndiaIoni Bowcher PROPOSAL
James C IturbideAustraliaAnna Fali UNQUALIFIED
Deepesh K DarakjyCanadaAmy Elsner NEGOTIATION
Salvatore N KuskoItalyXuxue Feng RENEWAL
Clifford J VocelkaUnited KingdomStephen Shaw NEGOTIATION
Cody N RoysterIndiaAnna Fali UNQUALIFIED
Leon W NickaGermanyElwin Sharvill PROPOSAL
Cody G RutaRussiaOnyama Limba NEGOTIATION
Aruna G GauchoAustraliaXuxue Feng PROPOSAL
Ricardo R MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez D VenereGermanyOnyama Limba QUALIFIED
Sinclair R GarufiBrazilAsiya Javayant PROPOSAL
Ashley T ShinkoGermanyXuxue Feng PROPOSAL
Tony E AmigonCanadaAsiya Javayant NEW
Chavez P GillianAustraliaXuxue Feng RENEWAL
Jefferson O GlickFranceIvan Magalhaes PROPOSAL
Murillo U MarrierFranceAnna Fali RENEWAL
Sinclair C CaudyCanadaBernardo Dominic NEGOTIATION
David L OstroskySpainIoni Bowcher RENEWAL
Faith D PaprockiCanadaAmy Elsner RENEWAL
Misaki V GillianJapanXuxue Feng RENEWAL
Munro K RulapaughJapanOnyama Limba NEW
Isabel M WhobreyUnited KingdomStephen Shaw PROPOSAL
Murillo C DarakjyJapanIvan Magalhaes NEW
Mujtaba C MorascaIndiaAsiya Javayant RENEWAL
Antonio H TollnerUnited KingdomAnna Fali QUALIFIED
Ashley E DoeSpainAsiya Javayant PROPOSAL
Munro W DoeSpainElwin Sharvill UNQUALIFIED
Maisha U FlosiRussiaStephen Shaw RENEWAL

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