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
Leon M OldroydIndiaIoni Bowcher NEW
Arvin Y PerinItalyStephen Shaw PROPOSAL
Faith U WieserGermanyIoni Bowcher NEW
Leon F CampainAustraliaAmy Elsner PROPOSAL
Salvatore W OldroydBrazilStephen Shaw NEGOTIATION
Ashley N InouyeRussiaIoni Bowcher QUALIFIED
Munro H OldroydUnited KingdomAnna Fali RENEWAL
Kaitlin U ChuiGermanyAmy Elsner NEW
Sinclair V SergiIndiaBernardo Dominic QUALIFIED
Jones F MaletJapanElwin Sharvill PROPOSAL
Ashley S RutaJapanAsiya Javayant PROPOSAL
Arvin K AmigonRussiaBernardo Dominic UNQUALIFIED
Smith C GlickRussiaOnyama Limba NEW
Faith R ButtIndiaOnyama Limba NEGOTIATION
Rodrigues D MaletSpainOnyama Limba NEGOTIATION
Munro D FollerBrazilOnyama Limba PROPOSAL
Aditya L InouyeItalyStephen Shaw PROPOSAL
Emily P ChuiAustraliaElwin Sharvill NEW
David M MacleadItalyAmy Elsner NEW
Adams Q BologniaBrazilXuxue Feng NEW
Ricardo R RimItalyElwin Sharvill NEW
Chavez N MorascaIndiaAnna Fali NEGOTIATION
Stacey X SchemmerBrazilIvan Magalhaes NEGOTIATION
James L SaylorsItalyAmy Elsner PROPOSAL
Antonio Q ButtFranceAnna Fali NEGOTIATION
Misaki U ButtSpainAsiya Javayant UNQUALIFIED
Faith M BowleyCanadaIoni Bowcher RENEWAL
James J FerenczAustraliaOnyama Limba NEW
Leon V PoquetteIndiaXuxue Feng UNQUALIFIED
Julie V MorascaFranceIoni Bowcher RENEWAL
James V RutaGermanyBernardo Dominic QUALIFIED
Ivar F IturbideUnited KingdomStephen Shaw UNQUALIFIED
Juan L ShinkoAustraliaAsiya Javayant PROPOSAL
Munro E PerinItalyOnyama Limba NEW
Ricardo M InouyeCanadaAsiya Javayant RENEWAL
Costa J TollnerFranceIvan Magalhaes NEW
Faith C PaprockiGermanyIvan Magalhaes QUALIFIED
Greenwood M IturbideRussiaBernardo Dominic UNQUALIFIED
Nicolas N FerenczJapanAsiya Javayant NEW
Faith D GauchoRussiaOnyama Limba QUALIFIED
Morrow W SergiAustraliaIoni Bowcher QUALIFIED
Morrow P CaldareraSpainAnna Fali NEW
Arvin Q TollnerBrazilAnna Fali NEGOTIATION
Salvatore C RulapaughIndiaAmy Elsner NEW
Faith O DoeAustraliaAnna Fali NEW
Aika R PaprockiGermanyIvan Magalhaes QUALIFIED
Deepesh E SaylorsJapanAnna Fali PROPOSAL
Ashley N OldroydUnited KingdomBernardo Dominic RENEWAL
Kadeem O SaylorsIndiaIvan Magalhaes RENEWAL
Mayumi I MaletUnited KingdomXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan Z PoquetteCanadaXuxue Feng NEGOTIATION
Aditya B SlusarskiAustraliaAnna Fali UNQUALIFIED
Silvio W MacleadIndiaAmy Elsner PROPOSAL
Ricardo S MorascaIndiaAsiya Javayant PROPOSAL
Jeanfrancois F NickaBrazilIoni Bowcher NEW
Wickens G GauchoUnited KingdomXuxue Feng RENEWAL
Emily N MaletGermanyAnna Fali NEGOTIATION
Juan W NestleGermanyAnna Fali UNQUALIFIED
Morrow M SchemmerArgentinaOnyama Limba PROPOSAL
Maisha A StensethFranceXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia T ButtBrazil2024-04-06Buckley Miller Wright NEGOTIATION24Bernardo Dominic
1001Misaki X StensethFrance2024-04-03Buckley Miller Wright UNQUALIFIED80Anna Fali
1002Jeanfrancois X NickaAustralia2024-04-06Printing Dimensions RENEWAL5Xuxue Feng
1003Stacey W KuskoGermany2024-04-12Printing Dimensions UNQUALIFIED13Onyama Limba
1004Murillo Q NestleRussia2024-04-05Feltz Printing Service QUALIFIED27Elwin Sharvill
1005Faith Y StockhamGermany2024-03-27Chapman, Ross E Esq PROPOSAL13Amy Elsner
1006Julie Y FerenczCanada2024-04-05Rangoni Of Florence PROPOSAL51Anna Fali
1007Antonio F SlusarskiArgentina2024-04-13Chemel, James L Cpa RENEWAL0Elwin Sharvill
1008Jones C MaletJapan2024-03-31Rousseaux, Michael Esq QUALIFIED43Onyama Limba
1009Adams K KuskoAustralia2024-04-10King, Christopher A Esq NEW71Stephen Shaw
1010Johnson K VenereFrance2024-04-04Feiner Bros UNQUALIFIED47Ioni Bowcher
1011Arvin W InouyeFrance2024-04-01Dorl, James J Esq UNQUALIFIED53Ivan Magalhaes
1012James H PerinUnited Kingdom2024-04-14Printing Dimensions NEW85Ivan Magalhaes
1013Claire Q AlbaresAustralia2024-04-15Chanay, Jeffrey A Esq QUALIFIED13Amy Elsner
1014Octavia P AlbaresAustralia2024-03-29Printing Dimensions NEW68Anna Fali
1015Aika N KuskoItaly2024-03-31Rangoni Of Florence UNQUALIFIED7Elwin Sharvill
1016Octavia F MarrierAustralia2024-03-28Feiner Bros UNQUALIFIED33Asiya Javayant
1017Jones D CaudySpain2024-04-10Chemel, James L Cpa NEGOTIATION43Elwin Sharvill
1018Ivar W DoeIndia2024-04-07Printing Dimensions UNQUALIFIED11Ioni Bowcher
1019Misaki A StockhamAustralia2024-03-30Truhlar And Truhlar Attys NEGOTIATION6Elwin Sharvill
1020Arvin U RulapaughAustralia2024-04-19Rousseaux, Michael Esq PROPOSAL4Ivan Magalhaes
1021Alejandro S AlbaresBrazil2024-04-22Rousseaux, Michael Esq UNQUALIFIED81Anna Fali
1022Costa N MacleadItaly2024-04-08Chemel, James L Cpa RENEWAL97Bernardo Dominic
1023Emily R StensethItaly2024-04-13Feltz Printing Service RENEWAL36Xuxue Feng
1024Costa F KolmetzSpain2024-03-30Morlong Associates NEGOTIATION15Xuxue Feng
1025Arvin O StensethBrazil2024-04-21Buckley Miller Wright NEGOTIATION44Bernardo Dominic
1026Kaitlin L VocelkaUnited Kingdom2024-04-16King, Christopher A Esq PROPOSAL34Bernardo Dominic
1027Ivar Z DoeItaly2024-04-25Feiner Bros PROPOSAL35Stephen Shaw
1028Aruna A IturbideAustralia2024-04-12Chemel, James L Cpa QUALIFIED4Elwin Sharvill
1029Francesco E TollnerAustralia2024-04-12Rangoni Of Florence RENEWAL73Onyama Limba
1030Juan Z MorascaSpain2024-04-15Rousseaux, Michael Esq NEGOTIATION91Ioni Bowcher
1031Jeanfrancois K DarakjyUnited Kingdom2024-04-14Commercial Press NEGOTIATION85Stephen Shaw
1032Alejandro H WieserItaly2024-03-31Feiner Bros RENEWAL16Ivan Magalhaes
1033Ricardo K FlosiFrance2024-04-02Rangoni Of Florence PROPOSAL99Ivan Magalhaes
1034Leja K BowleyAustralia2024-04-15King, Christopher A Esq QUALIFIED86Elwin Sharvill
1035Cody D ChuiArgentina2024-04-09Feltz Printing Service NEGOTIATION35Elwin Sharvill
1036Leja I AlbaresRussia2024-04-08Buckley Miller Wright QUALIFIED13Ioni Bowcher
1037Mujtaba A RoysterUnited Kingdom2024-04-01Dorl, James J Esq NEGOTIATION31Ioni Bowcher
1038Octavia O RoysterArgentina2024-04-07Chemel, James L Cpa NEGOTIATION69Xuxue Feng
1039Jefferson J TollnerJapan2024-04-16Rangoni Of Florence QUALIFIED84Stephen Shaw
1040Sinclair X WaycottSpain2024-04-21Rangoni Of Florence NEGOTIATION40Amy Elsner
1041Costa K OldroydSpain2024-04-25Feiner Bros NEW7Amy Elsner
1042Johnson X ButtAustralia2024-03-29Commercial Press PROPOSAL30Asiya Javayant
1043Nicolas W OstroskyItaly2024-03-30Commercial Press NEGOTIATION58Asiya Javayant
1044Chavez W WhobreyRussia2024-04-10Chapman, Ross E Esq UNQUALIFIED93Stephen Shaw
1045Ricardo V FollerIndia2024-04-02Chemel, James L Cpa NEGOTIATION14Anna Fali
1046Rodrigues A SlusarskiCanada2024-04-01Benton, John B Jr NEGOTIATION26Bernardo Dominic
1047Maisha O ShinkoSpain2024-04-12Feiner Bros NEW92Ioni Bowcher
1048Aruna O FlosiItaly2024-03-27Printing Dimensions UNQUALIFIED44Ivan Magalhaes
1049Cody J DarakjyItaly2024-04-19Feltz Printing Service RENEWAL27Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo O ChuiCanadaAmy Elsner PROPOSAL
Stacey B GillianCanadaAnna Fali PROPOSAL
Izzy L FlosiJapanAnna Fali PROPOSAL
Jeanfrancois F NickaAustraliaAmy Elsner RENEWAL
Adams J PaprockiItalyXuxue Feng PROPOSAL
Nicolas E MarrierBrazilIvan Magalhaes UNQUALIFIED
Izzy M SchemmerJapanXuxue Feng NEW
David P DoeSpainIoni Bowcher QUALIFIED
Wickens E MorascaUnited KingdomAmy Elsner RENEWAL
Cody W RutaJapanIoni Bowcher PROPOSAL
Leja G RulapaughItalyAnna Fali RENEWAL
Adams R VocelkaFranceXuxue Feng NEGOTIATION
Antonio S KolmetzJapanElwin Sharvill NEW
Morrow S RoysterBrazilAnna Fali PROPOSAL
Mayumi O GauchoAustraliaOnyama Limba UNQUALIFIED
Ricardo U NestleCanadaElwin Sharvill NEW
Darci Y FerenczArgentinaAmy Elsner NEGOTIATION
Smith I FigeroaUnited KingdomAsiya Javayant PROPOSAL
Rodrigues J CaldareraAustraliaAnna Fali PROPOSAL
Octavia Y DoeSpainStephen Shaw UNQUALIFIED
Julie T FerenczRussiaIvan Magalhaes UNQUALIFIED
Deepesh Q CaldareraCanadaOnyama Limba RENEWAL
Kaitlin H BriddickBrazilAsiya Javayant RENEWAL
Salvatore D WieserFranceOnyama Limba RENEWAL
Sinclair B WaycottBrazilElwin Sharvill RENEWAL
Misaki K RutaFranceIoni Bowcher PROPOSAL
James L MaletItalyAnna Fali NEGOTIATION
Octavia B VocelkaArgentinaAnna Fali QUALIFIED
Aruna J InouyeGermanyAsiya Javayant NEGOTIATION
Misaki S IturbideIndiaStephen Shaw NEGOTIATION
Emily U SaylorsFranceAmy Elsner NEW
Isabel Z ButtBrazilIvan Magalhaes NEGOTIATION
Sinclair H RulapaughIndiaOnyama Limba QUALIFIED
Deepesh D PoquetteItalyIvan Magalhaes RENEWAL
Murillo W SchemmerIndiaStephen Shaw QUALIFIED
Stacey O MaletGermanyElwin Sharvill NEW
David W SaylorsCanadaBernardo Dominic RENEWAL
Aruna G SergiIndiaAnna Fali PROPOSAL
Adams X InouyeIndiaAnna Fali NEW
Cody Z NickaAustraliaAmy Elsner NEGOTIATION
Arvin U AmigonCanadaElwin Sharvill RENEWAL
Octavia U NickaGermanyStephen Shaw UNQUALIFIED
Chavez F RutaArgentinaElwin Sharvill RENEWAL
Smith B IturbideRussiaElwin Sharvill NEGOTIATION
Stacey A BriddickRussiaIvan Magalhaes NEGOTIATION
Silvio L SaylorsRussiaAsiya Javayant NEW
Ricardo J KuskoCanadaOnyama Limba PROPOSAL
Francesco R PerinJapanXuxue Feng UNQUALIFIED
Murillo H GlickJapanXuxue Feng NEGOTIATION
Leja G DoeSpainXuxue Feng UNQUALIFIED
Frozen Columns
Name
Chavez C Vocelka
Sinclair L Figeroa
Costa Y Glick
Arvin L Garufi
Ivar R Malet
Sinclair W Kolmetz
Stacey C Slusarski
Smith E Albares
Juan S Iturbide
Cody N Campain
Octavia K Amigon
Ricardo O Venere
Antonio Q Paprocki
Deepesh G Nestle
Leja F Gillian
Salvatore D Iturbide
Darci P Briddick
Ivar M Kusko
Ashley Y Venere
Alejandro J Stockham
Murillo Y Ferencz
Tony W Slusarski
Wickens W Bolognia
Jennifer F Morasca
Costa U Nicka
Misaki S Poquette
Aruna K Gillian
Darci N Bowley
Emily Q Iturbide
Darci M Gaucho
Morrow S Doe
Misaki W Butt
Ashley W Gillian
Kaitlin W Briddick
Clifford X Bowley
Mujtaba L Shinko
Adams S Venere
Faith B Perin
Claire E Ruta
Johnson R Figeroa
Costa O Poquette
Mujtaba Z Perin
Maria L Saylors
Stacey Q Malet
Faith G Waycott
Adams O Stenseth
Aruna F Ostrosky
Juan B Slusarski
Morrow Y Stenseth
Tony P Venere
IdCountryDate
1000France2024-04-15
1001Canada2024-04-15
1002France2024-04-08
1003Australia2024-04-22
1004India2024-04-25
1005Russia2024-03-27
1006Germany2024-03-28
1007Brazil2024-04-22
1008France2024-04-25
1009Japan2024-03-29
1010Japan2024-04-06
1011Australia2024-04-06
1012Italy2024-04-22
1013India2024-04-10
1014Spain2024-04-19
1015United Kingdom2024-03-29
1016Spain2024-04-25
1017Argentina2024-03-28
1018Italy2024-04-03
1019Italy2024-04-10
1020Italy2024-04-03
1021France2024-03-29
1022Italy2024-04-15
1023United Kingdom2024-04-22
1024Russia2024-04-25
1025Brazil2024-04-10
1026Germany2024-04-22
1027Germany2024-04-23
1028Canada2024-04-04
1029Italy2024-04-14
1030United Kingdom2024-04-03
1031Australia2024-04-01
1032Russia2024-04-02
1033Japan2024-03-29
1034Spain2024-04-10
1035United Kingdom2024-04-19
1036France2024-04-25
1037Italy2024-04-21
1038Germany2024-04-23
1039Canada2024-04-02
1040United Kingdom2024-04-22
1041Australia2024-04-22
1042Japan2024-04-05
1043Germany2024-04-22
1044Argentina2024-04-14
1045Australia2024-04-25
1046France2024-04-06
1047Argentina2024-04-14
1048Japan2024-03-27
1049Canada2024-04-16

On-Demand Data

NameIdCountryDate
Munro O Ruta1000India2024-04-09
Rodrigues I Glick1001India2024-04-25
Mujtaba O Saylors1002Brazil2024-04-17
Misaki Y Malet1003France2024-04-13
Jefferson L Dilliard1004France2024-04-05
Isabel N Stenseth1005Brazil2024-04-10
Munro D Campain1006Canada2024-04-15
Jones T Bolognia1007Brazil2024-04-05
Tony F Wieser1008Russia2024-04-04
Rodrigues F Gaucho1009France2024-04-15
Claire W Kolmetz1010United Kingdom2024-03-28
Wickens L Schemmer1011India2024-04-04
James V Venere1012Spain2024-04-03
Leja G Stockham1013Russia2024-04-21
Morrow E Nicka1014France2024-04-21
Silvio B Sergi1015Germany2024-03-31
Aditya R Doe1016Russia2024-04-18
Costa H Glick1017Argentina2024-04-14
Leja K Stenseth1018Japan2024-04-21
Claire O Butt1019Australia2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow H MarrierBrazilOnyama Limba NEGOTIATION
Leon O NickaIndiaAmy Elsner NEW
Juan A DarakjySpainBernardo Dominic UNQUALIFIED
Francesco Q AlbaresAustraliaBernardo Dominic UNQUALIFIED
Darci H AlbaresSpainAmy Elsner NEGOTIATION
Sinclair Z CaudyCanadaIoni Bowcher NEW
Misaki V FigeroaFranceAnna Fali NEGOTIATION
Salvatore O WieserRussiaIoni Bowcher QUALIFIED
Tony Z OldroydBrazilOnyama Limba NEW
Tony Z WieserIndiaIoni Bowcher UNQUALIFIED
Greenwood J RulapaughItalyAmy Elsner QUALIFIED
Chavez G MorascaCanadaElwin Sharvill NEGOTIATION
Salvatore G StensethSpainBernardo Dominic QUALIFIED
Ricardo X OldroydGermanyBernardo Dominic UNQUALIFIED
Maisha K ShinkoJapanAnna Fali PROPOSAL
Wickens K FigeroaUnited KingdomIvan Magalhaes NEW
Maria M PoquetteItalyIvan Magalhaes NEW
Emily D RoysterIndiaElwin Sharvill UNQUALIFIED
Sinclair H DarakjyBrazilAmy Elsner NEW
Aika P SergiGermanyXuxue Feng PROPOSAL
Alejandro Y NestleArgentinaBernardo Dominic QUALIFIED
Adams L GillianCanadaBernardo Dominic NEGOTIATION
Maria L PoquetteBrazilAnna Fali PROPOSAL
Juan D SaylorsCanadaAmy Elsner NEW
Ivar U RulapaughCanadaOnyama Limba PROPOSAL
Aruna J BriddickArgentinaIoni Bowcher PROPOSAL
Darci G TollnerFranceIoni Bowcher PROPOSAL
Chavez O DarakjyAustraliaXuxue Feng NEW
Julie G PaprockiFranceXuxue Feng QUALIFIED
Adams P DilliardBrazilStephen Shaw NEW
Jefferson Q GarufiBrazilElwin Sharvill PROPOSAL
Julie Z WaycottGermanyStephen Shaw NEW
Clifford I ButtFranceBernardo Dominic QUALIFIED
Aruna G OstroskyAustraliaElwin Sharvill NEGOTIATION
Jennifer E CaldareraItalyBernardo Dominic RENEWAL
Antonio B OldroydBrazilIoni Bowcher QUALIFIED
Salvatore M OldroydUnited KingdomXuxue Feng UNQUALIFIED
Antonio O PaprockiIndiaOnyama Limba UNQUALIFIED
Greenwood J SaylorsCanadaXuxue Feng PROPOSAL
Jefferson G RoysterBrazilOnyama Limba NEGOTIATION

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