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
Mujtaba E BowleyIndiaIoni Bowcher NEW
Julie J IturbideAustraliaIvan Magalhaes NEW
Juan G VenereItalyBernardo Dominic PROPOSAL
Mujtaba F GlickCanadaIoni Bowcher NEGOTIATION
Kadeem V KolmetzGermanyIoni Bowcher NEGOTIATION
Julie U PaprockiGermanyStephen Shaw NEW
Leja Q PoquetteJapanIvan Magalhaes PROPOSAL
Juan R IturbideBrazilOnyama Limba UNQUALIFIED
Murillo N AlbaresRussiaXuxue Feng PROPOSAL
Jeanfrancois R MarrierRussiaIvan Magalhaes UNQUALIFIED
Antonio U OstroskyAustraliaIvan Magalhaes PROPOSAL
Kadeem W PaprockiBrazilIoni Bowcher QUALIFIED
Chavez M SlusarskiFranceOnyama Limba NEW
James W NestleCanadaIvan Magalhaes PROPOSAL
Nicolas H SlusarskiIndiaAnna Fali RENEWAL
Aditya D RoysterIndiaIoni Bowcher NEGOTIATION
Ricardo S FigeroaRussiaXuxue Feng PROPOSAL
Kaitlin G PerinUnited KingdomAnna Fali RENEWAL
Jones X SchemmerIndiaAnna Fali PROPOSAL
Salvatore N ButtIndiaIvan Magalhaes QUALIFIED
Francesco G AlbaresIndiaIoni Bowcher RENEWAL
Morrow T AlbaresArgentinaIvan Magalhaes RENEWAL
Emily A FerenczFranceOnyama Limba RENEWAL
Francesco R ShinkoUnited KingdomAnna Fali PROPOSAL
Sinclair J MarrierItalyXuxue Feng NEW
Stacey X MaletSpainAnna Fali QUALIFIED
Emily X BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Murillo Z MacleadJapanAnna Fali NEW
Costa B VocelkaUnited KingdomAnna Fali PROPOSAL
Kadeem A GauchoGermanyBernardo Dominic UNQUALIFIED
Aditya T SlusarskiIndiaAmy Elsner NEGOTIATION
Cody E DilliardAustraliaBernardo Dominic QUALIFIED
Jefferson V RulapaughBrazilAsiya Javayant RENEWAL
Johnson E TollnerBrazilAnna Fali NEGOTIATION
Faith Q ChuiUnited KingdomAsiya Javayant QUALIFIED
Misaki I InouyeIndiaStephen Shaw QUALIFIED
Izzy X BriddickItalyElwin Sharvill NEGOTIATION
Sinclair S AlbaresUnited KingdomAnna Fali NEGOTIATION
Arvin U WhobreyIndiaAmy Elsner RENEWAL
Silvio K BowleyJapanAnna Fali UNQUALIFIED
Smith K OldroydRussiaAmy Elsner UNQUALIFIED
Stacey L PerinSpainStephen Shaw RENEWAL
Francesco U OstroskyGermanyOnyama Limba UNQUALIFIED
Nicolas K FigeroaCanadaAnna Fali PROPOSAL
Aditya X DoeSpainAmy Elsner QUALIFIED
Adams D RoysterCanadaIvan Magalhaes UNQUALIFIED
Jennifer M MacleadArgentinaElwin Sharvill PROPOSAL
Juan C AlbaresCanadaElwin Sharvill PROPOSAL
Aika Z MaletSpainStephen Shaw QUALIFIED
Antonio A KolmetzSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood Q AmigonAustraliaElwin Sharvill PROPOSAL
Juan M GillianItalyIoni Bowcher NEW
Sinclair A FlosiCanadaAnna Fali UNQUALIFIED
Munro O ChuiAustraliaAmy Elsner NEGOTIATION
Leon U MaletUnited KingdomOnyama Limba RENEWAL
Ricardo U ButtUnited KingdomOnyama Limba UNQUALIFIED
Maria E KolmetzUnited KingdomXuxue Feng PROPOSAL
Maisha O GauchoAustraliaAmy Elsner PROPOSAL
Darci Z IturbideArgentinaAnna Fali NEGOTIATION
Mayumi X ShinkoItalyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh M GauchoJapan2024-04-17Chanay, Jeffrey A Esq NEGOTIATION59Onyama Limba
1001Maisha Z KuskoGermany2024-04-15Buckley Miller Wright UNQUALIFIED56Anna Fali
1002Greenwood Q GarufiAustralia2024-04-25Morlong Associates RENEWAL25Bernardo Dominic
1003Leja B RimBrazil2024-04-18Chapman, Ross E Esq QUALIFIED56Bernardo Dominic
1004Tony Z DarakjyBrazil2024-04-10Morlong Associates PROPOSAL69Bernardo Dominic
1005Aruna R PaprockiArgentina2024-04-16Rousseaux, Michael Esq NEGOTIATION15Anna Fali
1006Ricardo Q KuskoRussia2024-04-24Rousseaux, Michael Esq RENEWAL32Onyama Limba
1007Chavez V AmigonJapan2024-04-28Printing Dimensions NEGOTIATION32Bernardo Dominic
1008Faith J ShinkoSpain2024-04-22Benton, John B Jr NEGOTIATION98Ioni Bowcher
1009Maria M KuskoItaly2024-04-02Commercial Press RENEWAL84Amy Elsner
1010Alejandro G GlickGermany2024-04-01Morlong Associates UNQUALIFIED84Xuxue Feng
1011Ricardo I SchemmerGermany2024-04-15Benton, John B Jr PROPOSAL86Bernardo Dominic
1012Leja Q BowleyUnited Kingdom2024-03-31Feltz Printing Service NEGOTIATION46Elwin Sharvill
1013Smith H MorascaGermany2024-04-22Commercial Press NEW39Ioni Bowcher
1014Isabel N ChuiUnited Kingdom2024-04-24Rousseaux, Michael Esq NEGOTIATION39Amy Elsner
1015Aditya T DoeItaly2024-04-14Dorl, James J Esq QUALIFIED78Elwin Sharvill
1016Julie D VenereGermany2024-04-10Feltz Printing Service NEGOTIATION97Amy Elsner
1017Salvatore J VocelkaIndia2024-04-27Buckley Miller Wright NEGOTIATION77Anna Fali
1018Maria C MarrierSpain2024-04-05Feltz Printing Service NEGOTIATION45Bernardo Dominic
1019Claire V RulapaughGermany2024-04-09Printing Dimensions UNQUALIFIED53Ioni Bowcher
1020Darci M SaylorsFrance2024-04-10Commercial Press RENEWAL1Ivan Magalhaes
1021Kadeem Q TollnerAustralia2024-04-05Feltz Printing Service NEW14Anna Fali
1022Costa K FlosiIndia2024-04-20Dorl, James J Esq QUALIFIED83Asiya Javayant
1023Aruna O WaycottJapan2024-04-04Rangoni Of Florence NEW39Bernardo Dominic
1024Morrow Z CampainBrazil2024-04-16Rousseaux, Michael Esq PROPOSAL65Amy Elsner
1025Ivar F KolmetzIndia2024-04-05Dorl, James J Esq NEGOTIATION74Asiya Javayant
1026Sinclair N StockhamBrazil2024-04-28Commercial Press PROPOSAL86Amy Elsner
1027Faith U IturbideJapan2024-04-27Chapman, Ross E Esq RENEWAL86Amy Elsner
1028Rodrigues Z FlosiUnited Kingdom2024-04-23Rangoni Of Florence RENEWAL39Amy Elsner
1029Deepesh P PerinItaly2024-04-08Rangoni Of Florence PROPOSAL4Anna Fali
1030Ivar U OldroydIndia2024-04-24Chemel, James L Cpa RENEWAL29Ivan Magalhaes
1031Mayumi K CaldareraItaly2024-04-01Chanay, Jeffrey A Esq NEGOTIATION28Asiya Javayant
1032Mujtaba B GillianRussia2024-04-24Buckley Miller Wright NEGOTIATION19Xuxue Feng
1033James X PaprockiUnited Kingdom2024-04-23Rangoni Of Florence NEW41Bernardo Dominic
1034Ivar I SlusarskiCanada2024-04-18Morlong Associates NEW90Ioni Bowcher
1035Faith Q SlusarskiSpain2024-04-18Truhlar And Truhlar Attys PROPOSAL58Amy Elsner
1036Tony G OldroydRussia2024-04-15Chapman, Ross E Esq NEW20Xuxue Feng
1037David S MacleadRussia2024-04-15Feiner Bros NEGOTIATION78Bernardo Dominic
1038Silvio U SaylorsJapan2024-04-19King, Christopher A Esq UNQUALIFIED79Anna Fali
1039Deepesh O InouyeCanada2024-04-07Commercial Press PROPOSAL46Stephen Shaw
1040Juan I VenereAustralia2024-04-19Dorl, James J Esq NEW64Ivan Magalhaes
1041Deepesh T ButtRussia2024-03-31Feiner Bros NEGOTIATION23Anna Fali
1042Claire C PerinGermany2024-04-23King, Christopher A Esq PROPOSAL7Bernardo Dominic
1043Murillo U GauchoRussia2024-04-08Dorl, James J Esq NEW51Bernardo Dominic
1044Jefferson F GlickItaly2024-04-17Buckley Miller Wright PROPOSAL56Anna Fali
1045Faith N VenereArgentina2024-04-03Chapman, Ross E Esq RENEWAL19Asiya Javayant
1046Wickens U KolmetzArgentina2024-03-31Truhlar And Truhlar Attys NEGOTIATION24Amy Elsner
1047Jennifer Q VocelkaArgentina2024-04-01Feiner Bros UNQUALIFIED77Onyama Limba
1048Jefferson T FlosiIndia2024-03-30Truhlar And Truhlar Attys UNQUALIFIED59Stephen Shaw
1049Emily N CaudyJapan2024-04-17Chapman, Ross E Esq RENEWAL77Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aditya F PoquetteItalyStephen Shaw NEGOTIATION
Juan Y BowleyItalyElwin Sharvill UNQUALIFIED
Clifford X MaletSpainIvan Magalhaes NEW
Munro O FerenczRussiaIvan Magalhaes PROPOSAL
Morrow M AmigonItalyIoni Bowcher QUALIFIED
Johnson T CampainAustraliaXuxue Feng NEW
Isabel N TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba G RoysterCanadaXuxue Feng PROPOSAL
Silvio Q CaudyItalyOnyama Limba NEW
David A PerinCanadaAnna Fali PROPOSAL
Murillo J WieserSpainElwin Sharvill NEGOTIATION
Munro F MorascaIndiaOnyama Limba RENEWAL
Antonio A StensethItalyStephen Shaw PROPOSAL
Isabel T CaldareraGermanyStephen Shaw NEW
Jennifer K BowleyGermanyElwin Sharvill NEW
Adams N VocelkaFranceElwin Sharvill PROPOSAL
Clifford D OstroskyItalyStephen Shaw RENEWAL
Munro L WaycottArgentinaAnna Fali UNQUALIFIED
Munro K BowleyJapanBernardo Dominic RENEWAL
Leon Q GauchoArgentinaIoni Bowcher NEGOTIATION
Juan O FollerJapanXuxue Feng RENEWAL
Juan P MaletSpainXuxue Feng UNQUALIFIED
Clifford M RutaFranceOnyama Limba NEGOTIATION
Emily P WieserJapanIvan Magalhaes UNQUALIFIED
Emily X GarufiItalyElwin Sharvill RENEWAL
Jefferson N RulapaughJapanAsiya Javayant UNQUALIFIED
Aruna Q ChuiSpainAsiya Javayant QUALIFIED
Aditya I WhobreyRussiaAnna Fali RENEWAL
Jefferson V WaycottBrazilIvan Magalhaes RENEWAL
Antonio T TollnerSpainXuxue Feng NEW
Clifford Y MacleadAustraliaStephen Shaw PROPOSAL
David M CaudyUnited KingdomIoni Bowcher NEW
Misaki U RimJapanIvan Magalhaes RENEWAL
Jeanfrancois S ChuiFranceAnna Fali NEGOTIATION
Chavez D RulapaughSpainXuxue Feng PROPOSAL
Munro D TollnerSpainXuxue Feng PROPOSAL
Deepesh K RimUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh X DoeBrazilElwin Sharvill NEW
Aruna L KuskoAustraliaStephen Shaw NEW
Nicolas L WieserArgentinaBernardo Dominic NEGOTIATION
James L ChuiItalyXuxue Feng NEGOTIATION
Antonio X SchemmerArgentinaAsiya Javayant QUALIFIED
Kaitlin F StensethJapanAmy Elsner PROPOSAL
James N AmigonCanadaStephen Shaw UNQUALIFIED
Clifford C BologniaAustraliaAmy Elsner NEGOTIATION
Aditya G CampainItalyAsiya Javayant PROPOSAL
Misaki L IturbideGermanyAnna Fali PROPOSAL
Tony J ShinkoItalyBernardo Dominic NEGOTIATION
Mayumi O NestleBrazilBernardo Dominic UNQUALIFIED
Darci A NestleBrazilIvan Magalhaes QUALIFIED
Frozen Columns
Name
Alejandro Q Slusarski
Ivar E Amigon
Aruna R Bolognia
Misaki Y Bowley
Mayumi E Caldarera
Tony G Kolmetz
Aika I Nestle
Octavia Y Schemmer
Silvio R Sergi
Silvio T Dilliard
Jones L Vocelka
David Y Gaucho
Aruna S Bolognia
Nicolas I Garufi
Ashley P Rim
Cody H Ferencz
Deepesh D Whobrey
Aika W Nicka
Aruna I Oldroyd
Clifford M Figeroa
Misaki M Figeroa
Leja Z Darakjy
Aruna V Iturbide
Tony S Briddick
David M Chui
Mujtaba M Campain
Maisha X Saylors
Maria N Dilliard
Clifford J Gaucho
Jones P Malet
Nicolas Z Foller
Clifford F Waycott
Faith Y Waycott
Francesco A Malet
James Z Rim
Rodrigues T Gaucho
Faith P Chui
Salvatore B Kolmetz
Emily D Oldroyd
Antonio W Figeroa
Jennifer A Malet
Sinclair K Inouye
Deepesh K Malet
Aditya T Whobrey
Aika X Waycott
Izzy N Butt
Johnson N Maclead
Jones C Doe
Wickens R Doe
Maria M Morasca
IdCountryDate
1000Brazil2024-03-31
1001Japan2024-04-13
1002India2024-04-17
1003Spain2024-04-07
1004Argentina2024-04-23
1005Australia2024-04-22
1006India2024-04-17
1007Japan2024-04-03
1008United Kingdom2024-03-31
1009India2024-04-25
1010Argentina2024-04-18
1011United Kingdom2024-04-18
1012Brazil2024-04-26
1013Italy2024-04-01
1014France2024-03-31
1015Argentina2024-04-16
1016Argentina2024-04-20
1017Argentina2024-04-28
1018Brazil2024-04-17
1019Australia2024-04-13
1020India2024-04-17
1021Argentina2024-04-21
1022Brazil2024-04-27
1023Argentina2024-04-25
1024Spain2024-04-27
1025Spain2024-04-16
1026Spain2024-04-18
1027Italy2024-04-27
1028Spain2024-04-27
1029Brazil2024-04-24
1030United Kingdom2024-04-26
1031France2024-04-15
1032Canada2024-04-10
1033Japan2024-04-17
1034France2024-04-06
1035United Kingdom2024-03-30
1036Japan2024-04-23
1037Italy2024-04-22
1038Russia2024-04-08
1039India2024-04-21
1040Australia2024-04-10
1041Italy2024-04-28
1042France2024-04-05
1043Italy2024-04-04
1044Australia2024-03-30
1045Australia2024-04-18
1046Japan2024-04-23
1047Spain2024-04-04
1048Canada2024-04-28
1049Italy2024-04-18

On-Demand Data

NameIdCountryDate
Salvatore I Caudy1000Brazil2024-03-31
Octavia C Rim1001Russia2024-04-06
Ivar D Albares1002France2024-04-14
Francesco Q Bolognia1003Australia2024-04-10
Leja A Sergi1004Italy2024-04-02
Ashley A Wieser1005Argentina2024-04-20
Faith K Ferencz1006Argentina2024-04-16
Faith H Doe1007Brazil2024-04-19
Ivar U Tollner1008Canada2024-04-18
Deepesh O Campain1009Argentina2024-04-09
Adams N Gaucho1010Germany2024-03-30
Aruna Y Oldroyd1011Japan2024-04-11
Izzy W Wieser1012France2024-04-18
Aika D Rim1013Japan2024-04-14
Maisha L Whobrey1014France2024-04-07
Ivar K Royster1015Australia2024-04-17
Kadeem B Whobrey1016Spain2024-04-25
Kaitlin W Albares1017India2024-04-20
Jeanfrancois O Briddick1018Spain2024-03-31
Octavia T Amigon1019Australia2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie R FlosiAustraliaIoni Bowcher PROPOSAL
Aika A NickaGermanyOnyama Limba NEW
Johnson Y SergiItalyIoni Bowcher NEW
Cody N OstroskyAustraliaElwin Sharvill NEW
Tony S BologniaJapanAnna Fali UNQUALIFIED
Aditya S WaycottJapanXuxue Feng UNQUALIFIED
Izzy G OldroydGermanyXuxue Feng RENEWAL
Isabel A InouyeUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois Z DoeItalyStephen Shaw UNQUALIFIED
Arvin B CaldareraArgentinaIoni Bowcher NEGOTIATION
Stacey W NickaBrazilAsiya Javayant NEW
Mujtaba R DilliardFranceBernardo Dominic NEGOTIATION
Leon B OstroskyCanadaBernardo Dominic NEW
Stacey J FlosiIndiaElwin Sharvill QUALIFIED
Francesco M PoquetteItalyIoni Bowcher NEW
Faith X CaldareraSpainOnyama Limba PROPOSAL
Adams I PerinRussiaAnna Fali QUALIFIED
Salvatore N MorascaFranceIoni Bowcher RENEWAL
Morrow W ChuiGermanyBernardo Dominic QUALIFIED
Costa R WaycottAustraliaIvan Magalhaes NEW
Faith Z RimCanadaBernardo Dominic QUALIFIED
Sinclair D StockhamCanadaIvan Magalhaes QUALIFIED
Mayumi U ButtUnited KingdomStephen Shaw NEGOTIATION
Rodrigues H NestleUnited KingdomOnyama Limba UNQUALIFIED
Alejandro A ChuiSpainIvan Magalhaes PROPOSAL
Kadeem N IturbideGermanyIvan Magalhaes NEW
Mayumi Z VocelkaItalyAsiya Javayant NEGOTIATION
Cody M KuskoArgentinaAnna Fali NEGOTIATION
Aika W FerenczCanadaAnna Fali PROPOSAL
Isabel L NestleJapanBernardo Dominic PROPOSAL
Adams D BriddickCanadaXuxue Feng RENEWAL
Aruna D PoquetteGermanyAmy Elsner UNQUALIFIED
Mujtaba Q IturbideFranceBernardo Dominic PROPOSAL
Mayumi A OstroskyUnited KingdomBernardo Dominic RENEWAL
Darci F GarufiUnited KingdomAnna Fali RENEWAL
James F PoquetteRussiaXuxue Feng NEW
Tony M NickaAustraliaAmy Elsner NEW
Emily V FerenczCanadaAsiya Javayant QUALIFIED
Salvatore K ButtUnited KingdomIoni Bowcher NEW
Nicolas M MaletJapanXuxue Feng 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>