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
Jefferson G ButtSpainElwin Sharvill UNQUALIFIED
Mujtaba B OldroydRussiaIvan Magalhaes PROPOSAL
Chavez K BowleyArgentinaBernardo Dominic PROPOSAL
Leja W VenereAustraliaAmy Elsner NEW
Mayumi V CaudyCanadaIvan Magalhaes PROPOSAL
Salvatore F VenereUnited KingdomStephen Shaw QUALIFIED
Deepesh X MacleadBrazilOnyama Limba RENEWAL
Aditya N MorascaArgentinaAnna Fali PROPOSAL
Aika S CampainAustraliaBernardo Dominic NEGOTIATION
Aika W SlusarskiSpainIvan Magalhaes QUALIFIED
Salvatore S ShinkoCanadaBernardo Dominic NEW
Maria N WhobreyAustraliaXuxue Feng NEW
Jefferson M StockhamArgentinaIoni Bowcher UNQUALIFIED
Ashley T ShinkoRussiaAmy Elsner RENEWAL
Mujtaba A CaldareraSpainElwin Sharvill PROPOSAL
Wickens K PaprockiIndiaElwin Sharvill QUALIFIED
Maisha L StockhamGermanyAmy Elsner QUALIFIED
Leja N SchemmerFranceOnyama Limba UNQUALIFIED
Morrow U MaletFranceXuxue Feng QUALIFIED
Emily M MarrierIndiaAsiya Javayant RENEWAL
Claire S AmigonJapanBernardo Dominic RENEWAL
Faith U BowleyFranceStephen Shaw PROPOSAL
Jennifer Y BriddickItalyStephen Shaw QUALIFIED
Clifford F CampainBrazilXuxue Feng QUALIFIED
Morrow D MacleadSpainStephen Shaw PROPOSAL
Alejandro B FigeroaFranceIoni Bowcher PROPOSAL
Deepesh U RutaUnited KingdomXuxue Feng NEGOTIATION
Jeanfrancois K MorascaBrazilStephen Shaw PROPOSAL
Juan R GauchoBrazilOnyama Limba UNQUALIFIED
Juan X FlosiJapanOnyama Limba NEGOTIATION
Jefferson P DilliardAustraliaStephen Shaw NEW
Jefferson C WaycottGermanyXuxue Feng PROPOSAL
Izzy W RimJapanElwin Sharvill NEW
Kadeem T KolmetzItalyIvan Magalhaes PROPOSAL
Cody U GarufiRussiaBernardo Dominic RENEWAL
Ivar H CaldareraFranceAnna Fali RENEWAL
Deepesh H RimSpainIvan Magalhaes NEGOTIATION
Costa O NestleUnited KingdomOnyama Limba RENEWAL
Morrow R SaylorsAustraliaAmy Elsner RENEWAL
Nicolas D RulapaughIndiaStephen Shaw PROPOSAL
Misaki R SlusarskiJapanStephen Shaw NEGOTIATION
Ivar Z InouyeIndiaAnna Fali NEGOTIATION
Aruna T MaletIndiaXuxue Feng NEW
Kadeem I WhobreyIndiaElwin Sharvill QUALIFIED
Costa I DilliardIndiaElwin Sharvill NEW
James S BologniaAustraliaElwin Sharvill UNQUALIFIED
Johnson H FigeroaFranceAmy Elsner PROPOSAL
Jennifer E FigeroaFranceBernardo Dominic QUALIFIED
James J IturbideRussiaElwin Sharvill QUALIFIED
Jeanfrancois V TollnerFranceXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia E GillianGermanyXuxue Feng QUALIFIED
Juan P BriddickFranceAmy Elsner NEW
Antonio Y CampainJapanBernardo Dominic RENEWAL
Antonio Q KuskoSpainIvan Magalhaes NEW
Wickens H StensethGermanyAsiya Javayant NEGOTIATION
Ricardo T StensethIndiaIvan Magalhaes UNQUALIFIED
Aika X MarrierItalyAsiya Javayant NEW
Adams W RimArgentinaXuxue Feng RENEWAL
Claire J MorascaSpainElwin Sharvill NEW
Jeanfrancois N BowleyJapanIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro I FollerBrazil2024-04-16King, Christopher A Esq QUALIFIED50Amy Elsner
1001Stacey I SlusarskiUnited Kingdom2024-04-10Benton, John B Jr UNQUALIFIED76Bernardo Dominic
1002Aika E RutaSpain2024-03-28Buckley Miller Wright RENEWAL49Onyama Limba
1003David G TollnerJapan2024-03-31Printing Dimensions QUALIFIED58Xuxue Feng
1004Adams S FigeroaFrance2024-04-14Printing Dimensions NEGOTIATION6Onyama Limba
1005Jones C FollerArgentina2024-04-04Feiner Bros NEW57Anna Fali
1006Misaki Q CaldareraFrance2024-04-06Truhlar And Truhlar Attys NEGOTIATION6Xuxue Feng
1007Ricardo R StockhamItaly2024-03-27Chemel, James L Cpa NEGOTIATION84Anna Fali
1008Alejandro E FerenczArgentina2024-04-03Dorl, James J Esq PROPOSAL77Elwin Sharvill
1009Arvin G FlosiFrance2024-04-07Rangoni Of Florence NEW27Amy Elsner
1010Jeanfrancois T BologniaIndia2024-04-01Dorl, James J Esq UNQUALIFIED13Asiya Javayant
1011Aika C GlickSpain2024-04-07Benton, John B Jr PROPOSAL15Stephen Shaw
1012Aruna D MaletItaly2024-03-23Commercial Press RENEWAL13Onyama Limba
1013Octavia T VocelkaJapan2024-04-18Feltz Printing Service QUALIFIED3Amy Elsner
1014Kaitlin N SlusarskiSpain2024-04-09Rangoni Of Florence NEW13Xuxue Feng
1015Ashley E SchemmerCanada2024-03-25Chanay, Jeffrey A Esq PROPOSAL81Ivan Magalhaes
1016Stacey F KolmetzIndia2024-03-24Chapman, Ross E Esq NEW1Asiya Javayant
1017Deepesh U PerinSpain2024-03-29King, Christopher A Esq NEGOTIATION99Ivan Magalhaes
1018Tony X InouyeIndia2024-03-23Dorl, James J Esq PROPOSAL8Anna Fali
1019Arvin F RulapaughJapan2024-03-30King, Christopher A Esq RENEWAL97Xuxue Feng
1020Aruna D OstroskyAustralia2024-04-18Dorl, James J Esq NEW81Stephen Shaw
1021Kadeem H SergiItaly2024-03-29Rousseaux, Michael Esq UNQUALIFIED80Amy Elsner
1022Aditya F MacleadSpain2024-04-09Dorl, James J Esq NEW54Stephen Shaw
1023Rodrigues X ButtItaly2024-03-23Truhlar And Truhlar Attys UNQUALIFIED80Asiya Javayant
1024Wickens Y RimUnited Kingdom2024-04-05Dorl, James J Esq NEW49Bernardo Dominic
1025Jeanfrancois Y GarufiJapan2024-03-21Rousseaux, Michael Esq RENEWAL81Bernardo Dominic
1026Wickens R FerenczJapan2024-03-27Morlong Associates NEW29Bernardo Dominic
1027Chavez B MarrierCanada2024-04-02Benton, John B Jr NEGOTIATION45Ioni Bowcher
1028Nicolas W GlickCanada2024-03-24Commercial Press UNQUALIFIED94Onyama Limba
1029Jeanfrancois P RimIndia2024-04-05Commercial Press UNQUALIFIED6Ioni Bowcher
1030Silvio P CampainItaly2024-03-23Buckley Miller Wright PROPOSAL36Ioni Bowcher
1031Aditya E CaudySpain2024-04-09Commercial Press NEW19Bernardo Dominic
1032Arvin M AmigonCanada2024-04-09Dorl, James J Esq UNQUALIFIED44Ioni Bowcher
1033Wickens H MarrierJapan2024-03-31Rousseaux, Michael Esq UNQUALIFIED63Xuxue Feng
1034Mayumi X WieserCanada2024-03-27Feltz Printing Service RENEWAL47Onyama Limba
1035Darci B OstroskySpain2024-04-15Morlong Associates QUALIFIED39Anna Fali
1036Misaki B WhobreyAustralia2024-03-25Benton, John B Jr PROPOSAL4Xuxue Feng
1037Greenwood I DilliardBrazil2024-03-29Rangoni Of Florence UNQUALIFIED66Ioni Bowcher
1038Izzy M SaylorsFrance2024-04-16Commercial Press UNQUALIFIED95Ivan Magalhaes
1039Maria U FollerGermany2024-04-15Printing Dimensions NEW88Onyama Limba
1040Greenwood M StensethSpain2024-04-02Commercial Press NEW94Ivan Magalhaes
1041Johnson G ChuiFrance2024-03-23Benton, John B Jr QUALIFIED1Ivan Magalhaes
1042Misaki K MarrierAustralia2024-04-17Truhlar And Truhlar Attys RENEWAL69Ioni Bowcher
1043Aditya L BowleyIndia2024-04-03Buckley Miller Wright QUALIFIED29Amy Elsner
1044Kadeem E IturbideRussia2024-04-15Chemel, James L Cpa NEW27Onyama Limba
1045Jones Z CaldareraCanada2024-04-13Commercial Press NEW51Asiya Javayant
1046Ivar W CampainUnited Kingdom2024-04-03Buckley Miller Wright UNQUALIFIED78Ioni Bowcher
1047Leon D RoysterSpain2024-04-01Morlong Associates PROPOSAL21Bernardo Dominic
1048Octavia W RulapaughArgentina2024-04-02Truhlar And Truhlar Attys NEW34Bernardo Dominic
1049Octavia A GauchoArgentina2024-04-05Buckley Miller Wright QUALIFIED1Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio D FigeroaAustraliaXuxue Feng UNQUALIFIED
Izzy V StockhamSpainXuxue Feng QUALIFIED
Arvin Q IturbideJapanOnyama Limba PROPOSAL
Kadeem J WaycottItalyElwin Sharvill NEGOTIATION
Clifford U GlickItalyIvan Magalhaes NEGOTIATION
Leon F GauchoSpainAnna Fali PROPOSAL
Ivar A WieserItalyOnyama Limba NEGOTIATION
Izzy M PoquetteFranceXuxue Feng NEW
Silvio O SlusarskiCanadaAnna Fali RENEWAL
Kaitlin J KolmetzJapanBernardo Dominic QUALIFIED
Murillo B WhobreyUnited KingdomStephen Shaw PROPOSAL
Julie B FerenczItalyBernardo Dominic NEW
Maisha R MarrierCanadaElwin Sharvill NEGOTIATION
Julie A VocelkaSpainBernardo Dominic NEW
Alejandro S PerinUnited KingdomIvan Magalhaes NEW
Emily H RulapaughSpainElwin Sharvill NEW
Smith O StensethCanadaIoni Bowcher UNQUALIFIED
Francesco H NickaRussiaOnyama Limba QUALIFIED
James Z OstroskyFranceElwin Sharvill UNQUALIFIED
Claire U ChuiIndiaBernardo Dominic PROPOSAL
Stacey O BowleySpainOnyama Limba NEW
Adams O RutaCanadaStephen Shaw PROPOSAL
Julie Z CaldareraAustraliaAnna Fali NEW
Rodrigues D GlickItalyXuxue Feng QUALIFIED
Misaki G RimGermanyStephen Shaw RENEWAL
Julie R KuskoJapanIvan Magalhaes RENEWAL
Nicolas C GauchoSpainAmy Elsner QUALIFIED
Julie A AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair P RimCanadaStephen Shaw QUALIFIED
Johnson X StensethItalyAmy Elsner NEW
Chavez I VenereAustraliaXuxue Feng NEGOTIATION
Isabel I DoeJapanOnyama Limba QUALIFIED
Murillo V MorascaUnited KingdomXuxue Feng NEGOTIATION
Jones A FerenczBrazilIoni Bowcher UNQUALIFIED
Murillo N RoysterFranceOnyama Limba NEW
Mujtaba Z GarufiAustraliaAmy Elsner QUALIFIED
James T AmigonRussiaAsiya Javayant PROPOSAL
Darci C IturbideSpainAsiya Javayant NEGOTIATION
Ashley O BriddickBrazilIvan Magalhaes PROPOSAL
Rodrigues F WaycottArgentinaBernardo Dominic RENEWAL
Darci T RimFranceIoni Bowcher PROPOSAL
Antonio I SlusarskiRussiaAmy Elsner RENEWAL
Maria I VenereAustraliaIoni Bowcher UNQUALIFIED
Isabel R KolmetzRussiaAmy Elsner NEW
Leja K WhobreyAustraliaStephen Shaw NEW
Ashley J NestleArgentinaBernardo Dominic PROPOSAL
Murillo T MaletCanadaOnyama Limba QUALIFIED
Adams Z MorascaBrazilOnyama Limba UNQUALIFIED
Clifford Z SlusarskiArgentinaStephen Shaw PROPOSAL
Ivar A SaylorsItalyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Ricardo M Garufi
Salvatore A Chui
Tony P Rim
Mayumi B Darakjy
Jones N Glick
Smith R Dilliard
Kadeem W Oldroyd
Misaki A Waycott
Jennifer F Briddick
Octavia Y Garufi
Smith Y Marrier
Aruna O Kusko
Chavez S Slusarski
Mujtaba Q Waycott
Ashley W Caldarera
Aika B Amigon
Kadeem V Oldroyd
Alejandro G Shinko
Cody G Waycott
Arvin R Albares
Johnson W Nicka
Mujtaba O Briddick
Johnson P Flosi
Ashley T Royster
Salvatore N Gillian
Ricardo I Wieser
Clifford D Waycott
Johnson O Poquette
Izzy G Flosi
Octavia B Dilliard
Emily F Rim
Chavez Y Morasca
Antonio C Whobrey
Jennifer W Butt
Munro E Chui
Ricardo N Malet
Alejandro U Campain
Sinclair S Doe
Stacey J Gaucho
Wickens C Venere
Nicolas T Campain
Faith K Ruta
Emily V Foller
Aika U Nestle
Costa R Gaucho
Silvio T Briddick
Kadeem P Dilliard
Smith W Tollner
Arvin G Rim
Silvio L Malet
IdCountryDate
1000India2024-03-27
1001Russia2024-04-12
1002France2024-04-11
1003Japan2024-04-08
1004Canada2024-04-06
1005Australia2024-03-23
1006Spain2024-03-23
1007Italy2024-03-25
1008Russia2024-04-03
1009France2024-04-17
1010Italy2024-04-19
1011Italy2024-03-22
1012Canada2024-04-13
1013Spain2024-04-14
1014Australia2024-04-06
1015India2024-03-21
1016Russia2024-03-22
1017Australia2024-03-26
1018United Kingdom2024-04-14
1019Brazil2024-03-21
1020Brazil2024-04-06
1021Russia2024-03-21
1022Italy2024-04-08
1023India2024-04-11
1024Australia2024-04-03
1025Australia2024-04-14
1026France2024-04-19
1027Germany2024-03-27
1028Germany2024-04-08
1029Spain2024-03-28
1030India2024-04-19
1031Canada2024-03-24
1032Brazil2024-04-10
1033Spain2024-04-19
1034Brazil2024-03-23
1035Spain2024-04-09
1036Canada2024-03-26
1037France2024-04-19
1038United Kingdom2024-04-11
1039Argentina2024-03-30
1040United Kingdom2024-04-11
1041United Kingdom2024-04-12
1042Canada2024-03-31
1043Japan2024-04-01
1044Canada2024-04-15
1045Australia2024-03-24
1046Japan2024-04-04
1047Australia2024-03-23
1048Canada2024-03-31
1049Spain2024-03-21

On-Demand Data

NameIdCountryDate
Smith U Oldroyd1000Italy2024-03-24
Isabel G Gillian1001Canada2024-04-18
Cody W Glick1002Japan2024-03-29
Deepesh Z Slusarski1003Australia2024-03-24
Salvatore C Dilliard1004France2024-03-25
Jones V Poquette1005France2024-04-04
Adams Z Flosi1006France2024-03-26
Claire M Inouye1007Germany2024-04-18
Sinclair C Nicka1008Argentina2024-03-28
Wickens H Inouye1009Argentina2024-03-26
Adams Z Dilliard1010Italy2024-04-10
Salvatore Q Amigon1011France2024-04-01
Adams S Slusarski1012Argentina2024-04-10
Smith L Figeroa1013Argentina2024-04-19
Jones B Maclead1014Germany2024-03-22
Arvin Z Marrier1015Spain2024-03-26
Morrow M Bowley1016Italy2024-03-26
Mayumi C Darakjy1017Canada2024-04-14
Kaitlin S Campain1018Spain2024-04-01
Stacey Y Nicka1019Argentina2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois X OldroydItalyElwin Sharvill NEW
Arvin B DilliardCanadaOnyama Limba NEW
Adams R StockhamItalyIvan Magalhaes PROPOSAL
Faith Q IturbideRussiaAsiya Javayant NEW
Juan L VocelkaJapanIvan Magalhaes PROPOSAL
Rodrigues V KuskoItalyIoni Bowcher RENEWAL
Juan M ShinkoSpainOnyama Limba QUALIFIED
David Q CaudyArgentinaAsiya Javayant PROPOSAL
Aruna F SergiUnited KingdomOnyama Limba RENEWAL
Jones A NestleJapanAnna Fali RENEWAL
Kaitlin M MacleadGermanyOnyama Limba NEGOTIATION
Leon B PerinUnited KingdomStephen Shaw NEW
Darci A OstroskyIndiaAmy Elsner NEW
Octavia H BowleyFranceOnyama Limba NEGOTIATION
Kaitlin E BriddickRussiaAnna Fali NEGOTIATION
Mayumi I IturbideFranceXuxue Feng UNQUALIFIED
Ricardo E DoeCanadaIoni Bowcher PROPOSAL
Maisha M SlusarskiCanadaStephen Shaw RENEWAL
Misaki Y VenereBrazilOnyama Limba QUALIFIED
Kaitlin H OstroskyFranceAsiya Javayant UNQUALIFIED
Leon J GauchoBrazilIoni Bowcher RENEWAL
Aika V SaylorsIndiaAmy Elsner PROPOSAL
Octavia X GauchoFranceIoni Bowcher RENEWAL
Ashley Y MarrierUnited KingdomOnyama Limba QUALIFIED
Nicolas N RimIndiaIvan Magalhaes QUALIFIED
David P DarakjyItalyIoni Bowcher UNQUALIFIED
Emily F GarufiGermanyAmy Elsner UNQUALIFIED
Maria G FerenczGermanyAnna Fali RENEWAL
Johnson J SaylorsAustraliaIoni Bowcher NEW
Ricardo J OldroydItalyXuxue Feng QUALIFIED
Ricardo P VocelkaSpainBernardo Dominic PROPOSAL
Mayumi K NickaIndiaIoni Bowcher NEGOTIATION
Adams O MaletIndiaStephen Shaw RENEWAL
David N BriddickItalyBernardo Dominic RENEWAL
Maisha G WaycottSpainOnyama Limba QUALIFIED
Jones V SlusarskiGermanyAmy Elsner NEW
Octavia E StensethArgentinaElwin Sharvill NEGOTIATION
Leon P TollnerRussiaBernardo Dominic QUALIFIED
Jefferson R CaldareraArgentinaBernardo Dominic NEGOTIATION
Deepesh D MaletFranceAnna Fali 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>