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
David E ChuiItalyAsiya Javayant NEW
James Q ChuiUnited KingdomElwin Sharvill RENEWAL
Jefferson C NestleJapanAsiya Javayant RENEWAL
Cody E SergiIndiaBernardo Dominic PROPOSAL
Ricardo N RulapaughFranceBernardo Dominic NEGOTIATION
Jennifer G GillianIndiaAnna Fali NEGOTIATION
Leja H FerenczFranceIoni Bowcher RENEWAL
Costa W GarufiFranceBernardo Dominic NEW
Misaki H NickaBrazilAmy Elsner RENEWAL
Jones E CaldareraItalyOnyama Limba RENEWAL
Antonio R RoysterCanadaXuxue Feng RENEWAL
Smith X VocelkaIndiaBernardo Dominic PROPOSAL
Faith B SchemmerIndiaAmy Elsner NEW
Claire X OstroskyBrazilStephen Shaw NEW
Clifford X BriddickJapanElwin Sharvill RENEWAL
Jennifer M AmigonGermanyElwin Sharvill NEGOTIATION
Aika N GarufiBrazilBernardo Dominic PROPOSAL
Isabel L PoquetteFranceAsiya Javayant PROPOSAL
Stacey O MaletFranceIvan Magalhaes PROPOSAL
Costa G GarufiItalyAmy Elsner RENEWAL
Darci C NestleAustraliaElwin Sharvill NEGOTIATION
Arvin R MacleadFranceIoni Bowcher PROPOSAL
Darci X RimBrazilAsiya Javayant RENEWAL
Aika E VenereBrazilIoni Bowcher PROPOSAL
Izzy E MaletUnited KingdomAmy Elsner NEW
Kaitlin B FerenczCanadaXuxue Feng QUALIFIED
Jennifer T RulapaughAustraliaAsiya Javayant NEGOTIATION
Jones F PerinGermanyAnna Fali QUALIFIED
Maria J DarakjyArgentinaOnyama Limba PROPOSAL
Cody Y PoquetteAustraliaAnna Fali NEW
Maria R DilliardFranceAsiya Javayant QUALIFIED
Maria R MorascaAustraliaXuxue Feng NEGOTIATION
Morrow B VocelkaBrazilStephen Shaw NEW
Salvatore M RoysterFranceElwin Sharvill PROPOSAL
Aditya B TollnerItalyAsiya Javayant QUALIFIED
Juan W AlbaresGermanyIvan Magalhaes PROPOSAL
Johnson H ButtUnited KingdomAnna Fali UNQUALIFIED
Morrow X GlickAustraliaBernardo Dominic PROPOSAL
Alejandro G InouyeFranceXuxue Feng RENEWAL
Mayumi S RutaFranceIvan Magalhaes NEGOTIATION
Salvatore N NestleRussiaIoni Bowcher NEGOTIATION
Wickens E CampainGermanyOnyama Limba PROPOSAL
Chavez M OstroskyArgentinaXuxue Feng RENEWAL
Adams P KolmetzItalyElwin Sharvill NEW
Leja X NickaAustraliaAnna Fali UNQUALIFIED
Nicolas W MorascaJapanIoni Bowcher NEW
Morrow I SaylorsAustraliaOnyama Limba RENEWAL
Maisha Z NickaUnited KingdomOnyama Limba UNQUALIFIED
Murillo M WhobreyItalyOnyama Limba NEGOTIATION
Octavia Z MacleadRussiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore M RutaRussiaElwin Sharvill NEGOTIATION
Mujtaba Y NestleArgentinaOnyama Limba NEGOTIATION
Ivar B OldroydSpainStephen Shaw QUALIFIED
Ashley B GarufiJapanAmy Elsner RENEWAL
Jeanfrancois R WieserArgentinaAsiya Javayant QUALIFIED
Aika P PerinItalyAsiya Javayant PROPOSAL
Deepesh T BologniaArgentinaIvan Magalhaes NEW
Kaitlin G VenereSpainStephen Shaw NEW
Darci E BologniaIndiaElwin Sharvill UNQUALIFIED
Deepesh U SergiIndiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens I WieserSpain2024-04-19Morlong Associates NEW11Asiya Javayant
1001Alejandro P AmigonItaly2024-03-27Printing Dimensions RENEWAL28Ivan Magalhaes
1002Morrow X CaudyFrance2024-04-14King, Christopher A Esq NEGOTIATION25Amy Elsner
1003Deepesh U VocelkaBrazil2024-04-13Buckley Miller Wright RENEWAL49Xuxue Feng
1004David K CaudySpain2024-04-23Truhlar And Truhlar Attys NEW33Bernardo Dominic
1005Juan W VocelkaUnited Kingdom2024-04-11Chapman, Ross E Esq RENEWAL20Xuxue Feng
1006Cody F MaletSpain2024-04-01Feltz Printing Service NEW81Asiya Javayant
1007Adams C RimArgentina2024-04-03Rangoni Of Florence UNQUALIFIED28Elwin Sharvill
1008Juan Q TollnerJapan2024-04-14Feltz Printing Service RENEWAL43Elwin Sharvill
1009Mujtaba G GillianFrance2024-04-04Truhlar And Truhlar Attys RENEWAL35Anna Fali
1010Isabel Z FollerRussia2024-04-07Feiner Bros NEW69Bernardo Dominic
1011Clifford D MacleadRussia2024-04-21Feltz Printing Service NEW31Onyama Limba
1012Emily O RulapaughJapan2024-03-28Feiner Bros NEGOTIATION80Ivan Magalhaes
1013Juan W InouyeBrazil2024-03-27Chanay, Jeffrey A Esq NEW62Bernardo Dominic
1014David Z BowleyUnited Kingdom2024-04-04Rangoni Of Florence QUALIFIED95Anna Fali
1015Costa Z MaletRussia2024-04-20Printing Dimensions NEGOTIATION40Amy Elsner
1016Smith Z SchemmerJapan2024-04-06Chapman, Ross E Esq NEGOTIATION65Elwin Sharvill
1017Claire P DilliardJapan2024-04-17Chemel, James L Cpa UNQUALIFIED9Onyama Limba
1018Darci V GlickAustralia2024-04-03Feiner Bros PROPOSAL91Onyama Limba
1019Cody Q ShinkoFrance2024-04-17Commercial Press PROPOSAL49Ioni Bowcher
1020Faith Y KuskoCanada2024-04-09Rangoni Of Florence UNQUALIFIED26Ioni Bowcher
1021Faith I PaprockiIndia2024-04-01Feltz Printing Service NEW33Anna Fali
1022Izzy B OldroydFrance2024-04-10Feiner Bros NEW56Asiya Javayant
1023Ricardo K PoquetteItaly2024-04-10Chemel, James L Cpa UNQUALIFIED72Stephen Shaw
1024Claire G RimUnited Kingdom2024-03-26Printing Dimensions PROPOSAL97Amy Elsner
1025Mayumi V ChuiUnited Kingdom2024-04-10Commercial Press NEGOTIATION57Bernardo Dominic
1026Tony M AlbaresItaly2024-04-22Dorl, James J Esq UNQUALIFIED99Anna Fali
1027Juan G GarufiItaly2024-03-29Commercial Press RENEWAL12Stephen Shaw
1028Johnson U WaycottJapan2024-04-22Chemel, James L Cpa RENEWAL76Elwin Sharvill
1029Octavia Z WieserBrazil2024-04-20King, Christopher A Esq PROPOSAL34Ioni Bowcher
1030Jones T OstroskyAustralia2024-04-08Printing Dimensions NEW59Bernardo Dominic
1031James A CaudyGermany2024-04-11Chemel, James L Cpa NEGOTIATION32Amy Elsner
1032Silvio Y RutaArgentina2024-04-22Printing Dimensions QUALIFIED68Amy Elsner
1033Kaitlin H SlusarskiSpain2024-04-04Dorl, James J Esq PROPOSAL83Ioni Bowcher
1034James Q MaletUnited Kingdom2024-03-29Chemel, James L Cpa NEGOTIATION40Onyama Limba
1035Alejandro L PoquetteArgentina2024-04-19Dorl, James J Esq NEW30Ivan Magalhaes
1036Cody G IturbideAustralia2024-03-28Buckley Miller Wright NEW0Bernardo Dominic
1037Smith U FollerArgentina2024-04-12Truhlar And Truhlar Attys QUALIFIED74Onyama Limba
1038Tony T TollnerAustralia2024-04-09Commercial Press NEW68Onyama Limba
1039Ivar A AmigonJapan2024-04-09Rousseaux, Michael Esq NEW14Amy Elsner
1040Chavez K FerenczArgentina2024-03-28Rangoni Of Florence RENEWAL8Ioni Bowcher
1041Octavia O CaudyGermany2024-03-28Feiner Bros PROPOSAL56Elwin Sharvill
1042Sinclair C NestleSpain2024-04-04Benton, John B Jr NEW50Anna Fali
1043Ivar J StockhamAustralia2024-04-10Chemel, James L Cpa NEGOTIATION90Elwin Sharvill
1044Francesco D ChuiJapan2024-04-09Truhlar And Truhlar Attys QUALIFIED45Asiya Javayant
1045Chavez L CampainFrance2024-04-03Rousseaux, Michael Esq UNQUALIFIED14Elwin Sharvill
1046Kaitlin I NestleCanada2024-04-21Chapman, Ross E Esq RENEWAL14Asiya Javayant
1047Francesco V AlbaresJapan2024-04-23Buckley Miller Wright QUALIFIED35Ioni Bowcher
1048David K BriddickUnited Kingdom2024-04-10Commercial Press QUALIFIED46Anna Fali
1049Misaki U SaylorsIndia2024-04-15Commercial Press QUALIFIED49Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Antonio U DilliardRussiaAnna Fali QUALIFIED
Izzy L ButtArgentinaAnna Fali UNQUALIFIED
Silvio U WieserJapanIvan Magalhaes PROPOSAL
Adams B NickaIndiaAmy Elsner PROPOSAL
David G OstroskyUnited KingdomOnyama Limba RENEWAL
Morrow Q IturbideItalyStephen Shaw QUALIFIED
Izzy V NickaSpainOnyama Limba UNQUALIFIED
Ashley D AlbaresIndiaElwin Sharvill NEGOTIATION
Murillo B SchemmerFranceIoni Bowcher QUALIFIED
Isabel I ChuiItalyBernardo Dominic RENEWAL
Silvio A DilliardCanadaElwin Sharvill PROPOSAL
David J CaudyUnited KingdomXuxue Feng NEGOTIATION
Smith R SergiAustraliaAsiya Javayant RENEWAL
Jones S KuskoIndiaBernardo Dominic RENEWAL
Ashley W VocelkaGermanyIvan Magalhaes NEGOTIATION
Ashley B BowleyBrazilElwin Sharvill QUALIFIED
Nicolas U StockhamUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois Y BriddickFranceAmy Elsner NEW
Aditya R SergiCanadaAsiya Javayant NEW
Francesco O TollnerUnited KingdomStephen Shaw NEGOTIATION
Emily R KolmetzItalyXuxue Feng NEW
Alejandro P ChuiArgentinaOnyama Limba PROPOSAL
Misaki H ShinkoUnited KingdomAmy Elsner RENEWAL
Kaitlin R WhobreyCanadaXuxue Feng RENEWAL
Leon S PaprockiRussiaIoni Bowcher NEW
David R VocelkaBrazilAsiya Javayant RENEWAL
Jones E BologniaItalyBernardo Dominic NEW
Silvio U OldroydAustraliaBernardo Dominic NEW
Misaki L GillianItalyElwin Sharvill QUALIFIED
Sinclair R MarrierItalyOnyama Limba UNQUALIFIED
Kaitlin B MarrierItalyElwin Sharvill PROPOSAL
Rodrigues C ShinkoRussiaAmy Elsner PROPOSAL
Francesco K FerenczAustraliaElwin Sharvill RENEWAL
Isabel K DilliardItalyStephen Shaw PROPOSAL
Arvin A TollnerItalyBernardo Dominic QUALIFIED
Jones F GlickUnited KingdomIvan Magalhaes RENEWAL
Claire Y SchemmerRussiaOnyama Limba RENEWAL
Clifford R AlbaresGermanyOnyama Limba QUALIFIED
Smith O FerenczCanadaXuxue Feng RENEWAL
Aruna P CaldareraBrazilIvan Magalhaes UNQUALIFIED
Rodrigues D CaudyUnited KingdomAmy Elsner RENEWAL
Wickens D RulapaughBrazilOnyama Limba NEGOTIATION
Nicolas G StockhamGermanyAsiya Javayant UNQUALIFIED
Kadeem I RulapaughAustraliaBernardo Dominic NEGOTIATION
Wickens S TollnerAustraliaBernardo Dominic NEW
Leon N ChuiCanadaIoni Bowcher PROPOSAL
Costa F FigeroaUnited KingdomOnyama Limba NEW
Tony K GlickRussiaIoni Bowcher RENEWAL
David P ShinkoUnited KingdomStephen Shaw NEGOTIATION
Smith H VenereAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Aditya O Rulapaugh
Greenwood E Schemmer
Rodrigues Y Dilliard
Johnson O Royster
Leja J Malet
Antonio W Kolmetz
Juan P Malet
Alejandro N Briddick
Julie Y Ferencz
James G Shinko
Clifford V Malet
Jones H Nicka
Aika G Caudy
Nicolas U Briddick
Darci I Gaucho
Emily U Wieser
Arvin B Malet
Aditya Y Figeroa
Misaki E Ruta
Johnson W Kolmetz
Chavez L Oldroyd
Ricardo C Venere
Murillo G Nicka
Izzy Y Malet
Claire Q Rim
Maria G Malet
Nicolas G Dilliard
Ricardo V Whobrey
Darci A Sergi
Leon A Campain
Maisha T Morasca
Isabel V Schemmer
Cody D Bowley
Murillo S Waycott
Arvin E Maclead
Kaitlin K Albares
Arvin I Venere
Chavez V Nicka
Stacey A Albares
Leja M Dilliard
Clifford U Campain
James X Morasca
Salvatore T Stockham
Izzy Q Tollner
Alejandro D Stenseth
Claire Y Sergi
Silvio V Rulapaugh
Costa W Waycott
Jefferson B Albares
Maisha U Caldarera
IdCountryDate
1000United Kingdom2024-03-30
1001Brazil2024-04-08
1002Japan2024-04-21
1003Brazil2024-04-09
1004Italy2024-04-08
1005Spain2024-04-01
1006Germany2024-03-30
1007Russia2024-04-16
1008India2024-04-07
1009Japan2024-04-09
1010Canada2024-03-28
1011Canada2024-04-01
1012France2024-04-19
1013Japan2024-04-03
1014France2024-04-03
1015France2024-04-20
1016France2024-04-10
1017Spain2024-04-19
1018Japan2024-04-23
1019Russia2024-04-13
1020Argentina2024-04-16
1021Germany2024-04-08
1022France2024-03-30
1023United Kingdom2024-04-14
1024Argentina2024-04-01
1025Argentina2024-04-01
1026Japan2024-04-04
1027Argentina2024-03-30
1028Italy2024-03-27
1029Germany2024-04-11
1030Canada2024-04-03
1031India2024-04-02
1032Italy2024-04-14
1033Argentina2024-04-23
1034Argentina2024-03-27
1035Argentina2024-04-10
1036Germany2024-04-03
1037Spain2024-04-23
1038India2024-04-23
1039Argentina2024-04-17
1040United Kingdom2024-04-06
1041Spain2024-04-15
1042Australia2024-04-23
1043France2024-04-01
1044Spain2024-04-17
1045France2024-03-31
1046Canada2024-04-05
1047Italy2024-04-20
1048Brazil2024-04-18
1049Spain2024-04-24

On-Demand Data

NameIdCountryDate
Jefferson I Glick1000Argentina2024-04-24
Emily P Briddick1001Spain2024-04-20
Izzy W Malet1002United Kingdom2024-03-26
Clifford J Caldarera1003Russia2024-04-15
Isabel F Wieser1004United Kingdom2024-04-11
Adams U Bolognia1005Germany2024-04-22
Ricardo U Saylors1006United Kingdom2024-03-29
Emily U Garufi1007Japan2024-04-16
Jones V Garufi1008Germany2024-04-04
Maria A Foller1009Italy2024-03-30
Octavia U Wieser1010Australia2024-04-09
Jefferson P Kolmetz1011Argentina2024-04-02
Aditya S Saylors1012Japan2024-04-11
Francesco L Stockham1013Brazil2024-04-04
James A Ruta1014India2024-03-26
Morrow I Inouye1015Brazil2024-04-17
Faith Z Schemmer1016India2024-04-24
Emily V Waycott1017United Kingdom2024-04-18
Nicolas P Glick1018India2024-04-13
Sinclair G Stockham1019Brazil2024-03-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba J RutaUnited KingdomAmy Elsner QUALIFIED
Sinclair L VocelkaItalyAnna Fali PROPOSAL
Clifford L VenereJapanIvan Magalhaes NEW
Mayumi R DoeCanadaElwin Sharvill RENEWAL
Alejandro L GarufiSpainAsiya Javayant NEGOTIATION
Ivar I MacleadFranceAmy Elsner NEGOTIATION
James F GillianIndiaAnna Fali NEGOTIATION
Kaitlin G StockhamRussiaStephen Shaw NEGOTIATION
Jones B OstroskyItalyAnna Fali NEGOTIATION
Julie Q DoeRussiaStephen Shaw UNQUALIFIED
Izzy B ButtItalyBernardo Dominic UNQUALIFIED
Chavez U BowleyGermanyOnyama Limba NEGOTIATION
Darci S FigeroaItalyAnna Fali UNQUALIFIED
Greenwood B VenereUnited KingdomIvan Magalhaes RENEWAL
Juan L TollnerFranceBernardo Dominic PROPOSAL
Maisha D FollerBrazilOnyama Limba PROPOSAL
Rodrigues K AlbaresSpainStephen Shaw RENEWAL
Rodrigues T WaycottJapanAsiya Javayant NEGOTIATION
Maisha K CaldareraItalyAnna Fali QUALIFIED
Isabel J DoeSpainIvan Magalhaes RENEWAL
Maisha Z FollerRussiaOnyama Limba NEGOTIATION
Wickens O WhobreyIndiaStephen Shaw RENEWAL
Alejandro M BologniaArgentinaElwin Sharvill NEW
Murillo K WieserGermanyIvan Magalhaes RENEWAL
Aika M ButtRussiaAnna Fali RENEWAL
Rodrigues K CaldareraIndiaElwin Sharvill NEW
Ivar P PoquetteFranceAmy Elsner PROPOSAL
Maisha W PaprockiFranceIoni Bowcher NEW
Ricardo N DilliardAustraliaAmy Elsner PROPOSAL
Isabel L MaletUnited KingdomBernardo Dominic PROPOSAL
Claire H AmigonFranceStephen Shaw NEGOTIATION
Julie F FlosiBrazilIoni Bowcher UNQUALIFIED
Jones O RulapaughRussiaIvan Magalhaes QUALIFIED
Jefferson X StensethCanadaXuxue Feng NEW
Jeanfrancois A KuskoSpainIvan Magalhaes PROPOSAL
Adams O SchemmerItalyAnna Fali UNQUALIFIED
Munro R WaycottBrazilAsiya Javayant NEW
Antonio Q FlosiBrazilAnna Fali PROPOSAL
Stacey K SchemmerBrazilStephen Shaw QUALIFIED
Alejandro S CaudyGermanyElwin Sharvill 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>