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
Faith Y VocelkaUnited KingdomOnyama Limba PROPOSAL
Deepesh T TollnerRussiaElwin Sharvill RENEWAL
Jeanfrancois V GillianAustraliaBernardo Dominic QUALIFIED
Cody X SaylorsRussiaAmy Elsner PROPOSAL
Costa R ButtItalyElwin Sharvill NEGOTIATION
Kadeem O NestleSpainStephen Shaw QUALIFIED
Wickens M WaycottArgentinaAsiya Javayant NEGOTIATION
Arvin S GlickGermanyAnna Fali UNQUALIFIED
Julie U DarakjyArgentinaOnyama Limba NEW
Tony T MaletItalyIoni Bowcher NEW
Cody U CaldareraCanadaXuxue Feng PROPOSAL
Aruna R GarufiCanadaIvan Magalhaes UNQUALIFIED
Aruna L KuskoSpainStephen Shaw PROPOSAL
David A OstroskyFranceXuxue Feng NEGOTIATION
Isabel Z CaldareraSpainElwin Sharvill UNQUALIFIED
Salvatore G AlbaresArgentinaOnyama Limba RENEWAL
Stacey S DarakjyIndiaOnyama Limba NEGOTIATION
Tony K FerenczUnited KingdomAsiya Javayant RENEWAL
Julie X KolmetzIndiaIvan Magalhaes RENEWAL
Stacey M MaletRussiaXuxue Feng RENEWAL
Costa M GillianJapanOnyama Limba QUALIFIED
Juan T ButtCanadaAnna Fali RENEWAL
Maria W CaudyFranceIoni Bowcher PROPOSAL
Darci O NestleIndiaStephen Shaw PROPOSAL
Adams J FlosiSpainIvan Magalhaes NEGOTIATION
Sinclair S ChuiBrazilXuxue Feng NEGOTIATION
Faith V BowleyJapanIoni Bowcher NEGOTIATION
Stacey Z BowleyAustraliaOnyama Limba UNQUALIFIED
Maisha M FerenczFranceAnna Fali RENEWAL
Jefferson E DilliardAustraliaIvan Magalhaes NEGOTIATION
Maria U FlosiUnited KingdomIoni Bowcher RENEWAL
Deepesh Q SchemmerJapanStephen Shaw PROPOSAL
Rodrigues G AmigonRussiaIvan Magalhaes RENEWAL
Mayumi E MarrierSpainBernardo Dominic RENEWAL
Morrow Q SaylorsAustraliaAsiya Javayant RENEWAL
Clifford K NestleUnited KingdomBernardo Dominic UNQUALIFIED
Misaki S GillianJapanIvan Magalhaes NEW
Kaitlin V DarakjyRussiaXuxue Feng NEW
James N NestleGermanyElwin Sharvill RENEWAL
Aika G NestleGermanyIvan Magalhaes NEW
Antonio S PerinIndiaXuxue Feng NEGOTIATION
Rodrigues R PerinItalyAnna Fali RENEWAL
Aika G InouyeSpainXuxue Feng PROPOSAL
Jennifer C MorascaUnited KingdomAmy Elsner UNQUALIFIED
Juan B BologniaFranceBernardo Dominic UNQUALIFIED
Aruna N OstroskyGermanyAnna Fali RENEWAL
Wickens U DarakjyBrazilOnyama Limba NEW
Tony P BriddickUnited KingdomXuxue Feng RENEWAL
Johnson L AmigonAustraliaBernardo Dominic NEW
Mayumi K FigeroaIndiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha F GillianSpainAmy Elsner QUALIFIED
Johnson B SaylorsFranceBernardo Dominic UNQUALIFIED
Kaitlin I ShinkoIndiaAsiya Javayant NEGOTIATION
Ashley I ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Claire W ChuiFranceAsiya Javayant RENEWAL
Maria S NickaSpainStephen Shaw PROPOSAL
Alejandro I FerenczUnited KingdomXuxue Feng RENEWAL
Silvio D GauchoSpainElwin Sharvill UNQUALIFIED
Aditya U PerinJapanIoni Bowcher QUALIFIED
Mujtaba S SchemmerItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony L NestleArgentina2024-04-20Chapman, Ross E Esq NEW93Amy Elsner
1001Ivar M VenereItaly2024-05-02Dorl, James J Esq QUALIFIED62Ivan Magalhaes
1002David G DilliardIndia2024-04-06Dorl, James J Esq NEW28Anna Fali
1003Octavia F RulapaughIndia2024-05-02Buckley Miller Wright UNQUALIFIED53Stephen Shaw
1004Ricardo O OstroskyAustralia2024-04-11Truhlar And Truhlar Attys PROPOSAL8Anna Fali
1005Leon M ButtItaly2024-05-04Morlong Associates PROPOSAL3Anna Fali
1006Kaitlin N RutaCanada2024-05-02King, Christopher A Esq RENEWAL11Amy Elsner
1007Alejandro C BologniaCanada2024-04-19Chemel, James L Cpa QUALIFIED56Amy Elsner
1008Julie H SergiGermany2024-04-17Chapman, Ross E Esq NEW96Bernardo Dominic
1009Rodrigues S SaylorsAustralia2024-04-09King, Christopher A Esq RENEWAL40Onyama Limba
1010Juan O MaletIndia2024-04-16Dorl, James J Esq QUALIFIED7Xuxue Feng
1011Leja V OstroskyIndia2024-04-23Feiner Bros RENEWAL64Asiya Javayant
1012Faith Z KolmetzArgentina2024-04-21Feiner Bros PROPOSAL63Anna Fali
1013Octavia J NickaFrance2024-04-18Chapman, Ross E Esq NEW49Anna Fali
1014Aditya P FlosiFrance2024-05-01Truhlar And Truhlar Attys UNQUALIFIED21Amy Elsner
1015Johnson H WieserGermany2024-04-29Chanay, Jeffrey A Esq PROPOSAL90Xuxue Feng
1016Claire M BowleyItaly2024-04-25Truhlar And Truhlar Attys QUALIFIED7Xuxue Feng
1017Smith B IturbideUnited Kingdom2024-04-09Chemel, James L Cpa NEGOTIATION2Amy Elsner
1018Maisha Y ShinkoAustralia2024-04-23Chemel, James L Cpa UNQUALIFIED73Onyama Limba
1019Aika F FollerAustralia2024-04-14Commercial Press UNQUALIFIED94Onyama Limba
1020Mayumi X GillianBrazil2024-04-07Morlong Associates RENEWAL71Anna Fali
1021Misaki L IturbideUnited Kingdom2024-04-15Printing Dimensions PROPOSAL6Elwin Sharvill
1022Clifford F AmigonAustralia2024-04-22King, Christopher A Esq UNQUALIFIED9Bernardo Dominic
1023Darci G BologniaJapan2024-04-25Chemel, James L Cpa QUALIFIED63Elwin Sharvill
1024Misaki A FerenczGermany2024-04-13Rangoni Of Florence RENEWAL70Asiya Javayant
1025Stacey N FlosiAustralia2024-04-28Printing Dimensions RENEWAL72Elwin Sharvill
1026Salvatore S BologniaUnited Kingdom2024-04-06Feiner Bros PROPOSAL3Amy Elsner
1027Sinclair C StockhamSpain2024-05-02King, Christopher A Esq RENEWAL37Ivan Magalhaes
1028Mayumi Z ChuiIndia2024-04-13Benton, John B Jr QUALIFIED21Amy Elsner
1029Izzy E KuskoGermany2024-04-26Printing Dimensions UNQUALIFIED96Amy Elsner
1030Aditya N OldroydRussia2024-04-11Benton, John B Jr NEGOTIATION97Stephen Shaw
1031Silvio S RoysterUnited Kingdom2024-04-11King, Christopher A Esq NEGOTIATION75Ivan Magalhaes
1032Maria M VenereJapan2024-04-21Chanay, Jeffrey A Esq NEW25Anna Fali
1033Claire R MaletFrance2024-05-04Rangoni Of Florence NEW29Anna Fali
1034Salvatore L AlbaresArgentina2024-04-17Truhlar And Truhlar Attys UNQUALIFIED33Anna Fali
1035James N FerenczUnited Kingdom2024-04-11Morlong Associates UNQUALIFIED23Xuxue Feng
1036Francesco J BowleyAustralia2024-04-22Feiner Bros UNQUALIFIED33Anna Fali
1037Munro J StensethRussia2024-04-28Benton, John B Jr PROPOSAL60Onyama Limba
1038David L CaldareraItaly2024-04-22Commercial Press PROPOSAL42Onyama Limba
1039Kadeem V GlickAustralia2024-04-24Feltz Printing Service PROPOSAL94Anna Fali
1040Maria X InouyeRussia2024-04-06Morlong Associates NEGOTIATION61Asiya Javayant
1041Octavia H MaletFrance2024-04-10Printing Dimensions RENEWAL8Elwin Sharvill
1042Maisha Z InouyeBrazil2024-05-01Chapman, Ross E Esq UNQUALIFIED47Onyama Limba
1043Octavia A VenereAustralia2024-05-01Feltz Printing Service PROPOSAL86Xuxue Feng
1044Ricardo O BriddickRussia2024-04-15Chemel, James L Cpa NEW86Stephen Shaw
1045Morrow P StockhamCanada2024-04-30Chanay, Jeffrey A Esq NEGOTIATION90Ioni Bowcher
1046Ricardo O FlosiCanada2024-04-15Feiner Bros UNQUALIFIED20Stephen Shaw
1047Tony B InouyeGermany2024-04-13King, Christopher A Esq RENEWAL35Amy Elsner
1048Silvio R OldroydIndia2024-04-18Commercial Press NEW85Asiya Javayant
1049Alejandro L SaylorsJapan2024-04-30Benton, John B Jr UNQUALIFIED74Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Izzy C BologniaSpainBernardo Dominic NEW
Ivar E StensethArgentinaAnna Fali RENEWAL
Aruna P RutaItalyAmy Elsner NEGOTIATION
Adams H BologniaBrazilXuxue Feng PROPOSAL
Misaki C BowleyJapanAmy Elsner PROPOSAL
Murillo H DoeItalyAsiya Javayant NEGOTIATION
Rodrigues K AmigonCanadaXuxue Feng UNQUALIFIED
Faith X FollerBrazilStephen Shaw PROPOSAL
Chavez G SergiAustraliaBernardo Dominic NEW
Mujtaba N WaycottArgentinaBernardo Dominic UNQUALIFIED
Tony T RoysterRussiaAmy Elsner RENEWAL
Wickens M MaletRussiaIoni Bowcher NEW
Leon C StensethItalyIvan Magalhaes UNQUALIFIED
Misaki D SlusarskiItalyAsiya Javayant UNQUALIFIED
Octavia T BowleyCanadaStephen Shaw UNQUALIFIED
Stacey J GauchoAustraliaElwin Sharvill QUALIFIED
Nicolas D KolmetzItalyBernardo Dominic RENEWAL
Nicolas Y MacleadUnited KingdomOnyama Limba NEGOTIATION
Kaitlin Z GlickJapanIoni Bowcher QUALIFIED
Tony W ChuiRussiaAsiya Javayant NEGOTIATION
Ivar W ButtRussiaAmy Elsner RENEWAL
James E GlickFranceOnyama Limba NEW
Chavez P FigeroaJapanElwin Sharvill NEGOTIATION
Leon I StockhamBrazilIoni Bowcher QUALIFIED
Murillo D InouyeFranceElwin Sharvill RENEWAL
Stacey M ShinkoJapanIoni Bowcher RENEWAL
Nicolas I CaudyJapanOnyama Limba PROPOSAL
Jeanfrancois R CaudyRussiaElwin Sharvill RENEWAL
Darci R CampainCanadaElwin Sharvill UNQUALIFIED
Aditya K PaprockiRussiaXuxue Feng NEGOTIATION
Ivar F CaldareraAustraliaIvan Magalhaes PROPOSAL
Darci W FlosiCanadaAmy Elsner NEW
Izzy U GlickFranceAmy Elsner RENEWAL
Chavez M SergiIndiaIvan Magalhaes QUALIFIED
James Q PaprockiGermanyElwin Sharvill PROPOSAL
Nicolas S RutaGermanyAmy Elsner PROPOSAL
Leja C VocelkaIndiaAnna Fali PROPOSAL
Munro J IturbideItalyIvan Magalhaes UNQUALIFIED
Alejandro W DoeArgentinaXuxue Feng NEGOTIATION
Faith U KuskoIndiaIoni Bowcher QUALIFIED
Jennifer I DoeIndiaBernardo Dominic NEGOTIATION
Maisha R VocelkaCanadaAmy Elsner UNQUALIFIED
Ashley B RimRussiaStephen Shaw PROPOSAL
Faith X InouyeJapanAnna Fali NEGOTIATION
Jefferson A MorascaCanadaAmy Elsner PROPOSAL
Antonio U TollnerArgentinaIoni Bowcher PROPOSAL
Juan V IturbideIndiaAsiya Javayant NEW
Mayumi X MaletJapanXuxue Feng RENEWAL
Tony F VenereAustraliaOnyama Limba RENEWAL
Clifford C FollerIndiaBernardo Dominic NEW
Frozen Columns
Name
Aruna P Ostrosky
Silvio J Ferencz
Octavia M Kolmetz
Emily P Garufi
Darci H Vocelka
Maria A Chui
Darci Y Perin
Mayumi P Shinko
Kaitlin E Stockham
Murillo B Poquette
Izzy P Darakjy
Smith Q Ostrosky
Rodrigues A Wieser
Claire B Iturbide
Adams M Ferencz
Misaki W Amigon
Stacey T Stenseth
Murillo A Ruta
Julie E Inouye
Maisha O Foller
Smith F Briddick
Murillo B Paprocki
Jones S Iturbide
Smith A Iturbide
Kaitlin B Ruta
Jones V Iturbide
Clifford E Waycott
Francesco H Perin
Mayumi J Stenseth
Jones E Waycott
Misaki D Foller
Kaitlin I Dilliard
Francesco M Butt
Munro L Iturbide
Ashley A Venere
Tony J Glick
Sinclair I Gillian
Juan R Perin
Juan X Sergi
Stacey R Tollner
Leon H Caudy
Antonio T Marrier
Jennifer Y Iturbide
Rodrigues Y Vocelka
Julie Z Kolmetz
Maria I Inouye
Antonio F Bolognia
Smith K Albares
Johnson G Rim
Jennifer B Tollner
IdCountryDate
1000Argentina2024-04-18
1001India2024-04-23
1002India2024-04-08
1003Brazil2024-04-28
1004Australia2024-04-17
1005Brazil2024-04-08
1006Canada2024-04-16
1007Australia2024-04-29
1008India2024-04-28
1009Germany2024-04-30
1010Canada2024-04-21
1011Japan2024-05-05
1012Germany2024-04-13
1013Argentina2024-04-11
1014Canada2024-04-24
1015United Kingdom2024-04-22
1016Germany2024-04-22
1017Brazil2024-04-09
1018Brazil2024-04-23
1019United Kingdom2024-04-12
1020France2024-04-07
1021Russia2024-04-22
1022Australia2024-05-05
1023Brazil2024-04-10
1024Russia2024-04-22
1025France2024-04-30
1026Argentina2024-04-20
1027Brazil2024-04-11
1028Japan2024-04-20
1029Japan2024-05-05
1030Australia2024-05-05
1031India2024-04-26
1032France2024-04-20
1033India2024-05-04
1034Germany2024-04-13
1035Australia2024-04-08
1036India2024-04-11
1037Germany2024-05-01
1038Spain2024-05-04
1039Australia2024-04-09
1040Russia2024-04-16
1041United Kingdom2024-04-21
1042India2024-04-15
1043Argentina2024-04-15
1044Canada2024-05-02
1045France2024-04-14
1046France2024-05-03
1047Russia2024-04-20
1048United Kingdom2024-04-16
1049Japan2024-04-21

On-Demand Data

NameIdCountryDate
Costa U Campain1000Italy2024-05-04
Aika O Briddick1001Russia2024-04-08
Stacey Q Morasca1002Russia2024-04-10
Morrow J Glick1003Spain2024-04-28
Silvio P Inouye1004Germany2024-04-18
Costa Y Slusarski1005Germany2024-05-05
Stacey M Albares1006Brazil2024-04-29
Arvin O Royster1007Canada2024-04-25
Julie U Wieser1008Brazil2024-05-04
David I Stockham1009Germany2024-04-25
Octavia H Vocelka1010Japan2024-04-19
Chavez Q Shinko1011India2024-04-15
Cody V Perin1012India2024-04-22
Faith G Saylors1013Brazil2024-04-13
Jefferson H Glick1014Russia2024-04-23
Clifford Z Oldroyd1015United Kingdom2024-05-04
Leja S Stockham1016Germany2024-04-11
Salvatore Z Stenseth1017Canada2024-04-06
Misaki U Garufi1018Canada2024-04-20
Leon L Garufi1019Spain2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood B BowleyGermanyIoni Bowcher UNQUALIFIED
Maria W WhobreySpainOnyama Limba QUALIFIED
Arvin N FollerFranceAnna Fali NEW
David U MaletCanadaAnna Fali UNQUALIFIED
Mayumi R AlbaresItalyIvan Magalhaes PROPOSAL
Johnson H GlickUnited KingdomIoni Bowcher NEW
Jennifer V PaprockiArgentinaAmy Elsner PROPOSAL
Adams O MarrierItalyOnyama Limba PROPOSAL
David W KuskoAustraliaXuxue Feng UNQUALIFIED
Costa A RulapaughRussiaAmy Elsner NEGOTIATION
Jones E FlosiFranceIoni Bowcher RENEWAL
Clifford M PaprockiArgentinaAsiya Javayant RENEWAL
Octavia K PoquetteGermanyElwin Sharvill NEW
James L GlickIndiaElwin Sharvill NEW
James S DilliardSpainAnna Fali NEGOTIATION
Juan D VocelkaArgentinaAnna Fali PROPOSAL
Ashley V WaycottJapanStephen Shaw UNQUALIFIED
Ashley X KuskoRussiaAmy Elsner NEGOTIATION
Greenwood U ChuiArgentinaOnyama Limba UNQUALIFIED
Claire E MacleadUnited KingdomAmy Elsner QUALIFIED
Aditya J WhobreySpainOnyama Limba RENEWAL
Nicolas S FollerGermanyBernardo Dominic PROPOSAL
Claire U KuskoJapanIvan Magalhaes NEGOTIATION
Julie V BowleyArgentinaIoni Bowcher QUALIFIED
Arvin U TollnerRussiaElwin Sharvill QUALIFIED
Murillo N GillianArgentinaAmy Elsner QUALIFIED
David Y FerenczArgentinaElwin Sharvill PROPOSAL
Julie E SaylorsJapanXuxue Feng NEGOTIATION
Jefferson I CaudySpainBernardo Dominic NEW
Nicolas Q BologniaArgentinaXuxue Feng QUALIFIED
Kaitlin X BowleyGermanyBernardo Dominic QUALIFIED
Julie I FollerItalyAmy Elsner QUALIFIED
Emily D SaylorsCanadaStephen Shaw NEW
Ashley P NickaItalyStephen Shaw QUALIFIED
Ricardo F ShinkoRussiaStephen Shaw UNQUALIFIED
Murillo X InouyeGermanyIoni Bowcher RENEWAL
Wickens Y KolmetzUnited KingdomBernardo Dominic NEW
Clifford E MaletBrazilAmy Elsner RENEWAL
Jefferson R StensethFranceIvan Magalhaes PROPOSAL
Greenwood K MorascaArgentinaIvan Magalhaes NEW

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