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
Maria J OldroydGermanyElwin Sharvill PROPOSAL
Misaki M IturbideCanadaBernardo Dominic PROPOSAL
Greenwood N KolmetzGermanyStephen Shaw QUALIFIED
Octavia P StensethFranceOnyama Limba NEW
Rodrigues Y PoquetteItalyXuxue Feng UNQUALIFIED
Alejandro S SlusarskiCanadaAnna Fali RENEWAL
Ivar L FollerAustraliaAsiya Javayant PROPOSAL
Munro L RutaItalyElwin Sharvill NEGOTIATION
Octavia I FollerUnited KingdomElwin Sharvill RENEWAL
Isabel J DilliardItalyIoni Bowcher NEW
Aruna M AmigonUnited KingdomElwin Sharvill RENEWAL
Jefferson E RulapaughSpainAnna Fali NEW
Silvio C FollerIndiaOnyama Limba RENEWAL
Aditya F BowleyArgentinaStephen Shaw QUALIFIED
Francesco B SlusarskiArgentinaOnyama Limba NEW
Darci M VocelkaFranceAnna Fali PROPOSAL
Morrow H FerenczIndiaStephen Shaw NEW
Greenwood Q CampainIndiaStephen Shaw UNQUALIFIED
Johnson J DilliardRussiaElwin Sharvill PROPOSAL
Izzy M ShinkoArgentinaIoni Bowcher UNQUALIFIED
Ricardo A NickaUnited KingdomIoni Bowcher QUALIFIED
Mayumi A SlusarskiIndiaXuxue Feng QUALIFIED
Smith N FigeroaGermanyAnna Fali PROPOSAL
Isabel V RutaUnited KingdomAmy Elsner NEW
Tony O ShinkoFranceXuxue Feng UNQUALIFIED
Johnson X WieserAustraliaOnyama Limba NEW
Sinclair D SlusarskiGermanyAnna Fali RENEWAL
Sinclair S KolmetzFranceElwin Sharvill PROPOSAL
Jennifer K OstroskyCanadaAsiya Javayant NEGOTIATION
Antonio W InouyeJapanAsiya Javayant NEW
Mujtaba W WaycottSpainXuxue Feng NEW
Maisha Q ChuiCanadaAmy Elsner QUALIFIED
Sinclair N InouyeUnited KingdomIoni Bowcher RENEWAL
Clifford K IturbideRussiaElwin Sharvill UNQUALIFIED
Salvatore G MaletArgentinaElwin Sharvill RENEWAL
Cody Q GauchoGermanyIvan Magalhaes NEGOTIATION
Izzy U GauchoItalyBernardo Dominic RENEWAL
Cody H KolmetzArgentinaAsiya Javayant NEGOTIATION
Alejandro T DarakjySpainBernardo Dominic NEW
Rodrigues Z OstroskyItalyElwin Sharvill PROPOSAL
Murillo W RoysterArgentinaXuxue Feng NEW
Misaki Q DoeSpainAsiya Javayant NEW
Wickens F InouyeIndiaIvan Magalhaes UNQUALIFIED
Francesco G GarufiAustraliaAnna Fali UNQUALIFIED
Juan T PaprockiGermanyAmy Elsner QUALIFIED
David F WaycottAustraliaIoni Bowcher PROPOSAL
Juan N SlusarskiUnited KingdomAmy Elsner QUALIFIED
Maisha M VocelkaGermanyAnna Fali QUALIFIED
Maisha L PaprockiBrazilIoni Bowcher UNQUALIFIED
Murillo O DilliardSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin G GillianCanadaIvan Magalhaes NEW
Silvio D CampainCanadaBernardo Dominic QUALIFIED
Aditya S MarrierGermanyAsiya Javayant UNQUALIFIED
Misaki Q WieserAustraliaXuxue Feng QUALIFIED
Maria D MaletRussiaIoni Bowcher RENEWAL
Juan I KuskoRussiaAnna Fali PROPOSAL
Wickens P KolmetzArgentinaXuxue Feng RENEWAL
Chavez C SchemmerSpainIvan Magalhaes QUALIFIED
Murillo I BologniaItalyOnyama Limba NEW
Costa K GlickJapanBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon C ButtJapan2024-04-01Printing Dimensions NEGOTIATION54Asiya Javayant
1001David X MaletSpain2024-04-16Truhlar And Truhlar Attys UNQUALIFIED35Ivan Magalhaes
1002Salvatore J WieserRussia2024-04-02Feiner Bros NEW9Amy Elsner
1003Silvio Y FollerIndia2024-04-17Feiner Bros UNQUALIFIED76Stephen Shaw
1004Jeanfrancois X DarakjyFrance2024-04-21Rangoni Of Florence NEW57Asiya Javayant
1005Deepesh P MorascaFrance2024-04-17King, Christopher A Esq UNQUALIFIED24Anna Fali
1006Alejandro T AmigonSpain2024-04-12Commercial Press UNQUALIFIED86Stephen Shaw
1007Morrow Q IturbideJapan2024-04-06Morlong Associates NEW58Xuxue Feng
1008Chavez B PaprockiIndia2024-04-03Feltz Printing Service PROPOSAL19Ioni Bowcher
1009Salvatore Z ShinkoIndia2024-04-06Rangoni Of Florence NEGOTIATION55Anna Fali
1010Isabel X KuskoItaly2024-04-25Benton, John B Jr QUALIFIED95Stephen Shaw
1011Chavez V BologniaArgentina2024-04-21Feiner Bros NEW72Onyama Limba
1012Jennifer O MaletUnited Kingdom2024-04-15Morlong Associates NEW35Amy Elsner
1013Aruna I GarufiSpain2024-03-28Rousseaux, Michael Esq QUALIFIED72Anna Fali
1014Alejandro T FerenczRussia2024-04-19Feltz Printing Service NEGOTIATION75Amy Elsner
1015Silvio U NestleRussia2024-04-04Chanay, Jeffrey A Esq NEGOTIATION42Onyama Limba
1016Julie R TollnerBrazil2024-04-04Truhlar And Truhlar Attys UNQUALIFIED30Amy Elsner
1017James E OstroskyBrazil2024-04-05Chanay, Jeffrey A Esq PROPOSAL77Elwin Sharvill
1018Maria H SaylorsCanada2024-04-25Chapman, Ross E Esq QUALIFIED27Anna Fali
1019Jones I RimRussia2024-04-13Feiner Bros NEGOTIATION2Amy Elsner
1020Jones Y WieserFrance2024-04-16Chanay, Jeffrey A Esq RENEWAL0Bernardo Dominic
1021Jeanfrancois A FigeroaRussia2024-04-13Rousseaux, Michael Esq RENEWAL83Amy Elsner
1022Tony D BowleyAustralia2024-04-08Chapman, Ross E Esq NEW95Ivan Magalhaes
1023Wickens E RulapaughSpain2024-04-07Truhlar And Truhlar Attys QUALIFIED57Xuxue Feng
1024Rodrigues W KuskoGermany2024-04-18Printing Dimensions NEGOTIATION20Amy Elsner
1025Clifford J RimArgentina2024-04-09Buckley Miller Wright RENEWAL22Bernardo Dominic
1026Leja V MacleadIndia2024-03-29Commercial Press NEGOTIATION54Ioni Bowcher
1027Juan T MorascaGermany2024-04-01Buckley Miller Wright QUALIFIED19Asiya Javayant
1028Smith U ButtCanada2024-03-31King, Christopher A Esq QUALIFIED5Ivan Magalhaes
1029Rodrigues J CampainJapan2024-03-30Chapman, Ross E Esq QUALIFIED23Xuxue Feng
1030Aditya O ButtArgentina2024-04-21Buckley Miller Wright RENEWAL57Stephen Shaw
1031Jennifer H OstroskySpain2024-04-21King, Christopher A Esq NEW96Anna Fali
1032Munro G OstroskySpain2024-04-13Morlong Associates NEW30Ivan Magalhaes
1033Jefferson I WhobreyBrazil2024-04-01Chanay, Jeffrey A Esq NEW10Stephen Shaw
1034Emily N OstroskyCanada2024-04-03Commercial Press UNQUALIFIED47Anna Fali
1035Sinclair K FollerBrazil2024-04-02Morlong Associates RENEWAL43Xuxue Feng
1036Munro H FlosiAustralia2024-03-30Morlong Associates UNQUALIFIED29Stephen Shaw
1037Ashley U NickaSpain2024-04-09Rangoni Of Florence NEGOTIATION42Bernardo Dominic
1038Francesco R ShinkoUnited Kingdom2024-04-09Morlong Associates NEW60Amy Elsner
1039Aditya Z MorascaRussia2024-03-30Morlong Associates NEGOTIATION73Amy Elsner
1040Ashley A IturbideGermany2024-04-25Printing Dimensions QUALIFIED75Ivan Magalhaes
1041Ashley N SchemmerFrance2024-04-14Printing Dimensions NEGOTIATION25Ioni Bowcher
1042Juan Q PaprockiGermany2024-04-14Commercial Press NEGOTIATION82Amy Elsner
1043Juan R GillianRussia2024-04-23Rousseaux, Michael Esq RENEWAL11Amy Elsner
1044Smith U GarufiRussia2024-04-12Dorl, James J Esq QUALIFIED6Anna Fali
1045Rodrigues A RimItaly2024-04-15Morlong Associates NEW9Amy Elsner
1046Clifford Y MaletSpain2024-04-04Chemel, James L Cpa UNQUALIFIED52Ioni Bowcher
1047Isabel Y AlbaresSpain2024-04-06Rousseaux, Michael Esq PROPOSAL3Onyama Limba
1048Arvin E ShinkoFrance2024-04-23Benton, John B Jr NEGOTIATION6Anna Fali
1049Rodrigues E DoeSpain2024-04-24Rousseaux, Michael Esq NEW90Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan M MaletBrazilBernardo Dominic NEW
Faith T GlickArgentinaIvan Magalhaes NEGOTIATION
Rodrigues R StensethAustraliaAnna Fali PROPOSAL
Greenwood G TollnerRussiaOnyama Limba UNQUALIFIED
Munro P RulapaughCanadaAnna Fali UNQUALIFIED
Maria G FlosiCanadaStephen Shaw QUALIFIED
Faith I RulapaughUnited KingdomBernardo Dominic RENEWAL
Chavez L PoquetteIndiaOnyama Limba PROPOSAL
Ashley W SaylorsFranceBernardo Dominic PROPOSAL
Aditya J DilliardRussiaAnna Fali QUALIFIED
Jeanfrancois E RutaUnited KingdomIoni Bowcher NEW
Tony Y SaylorsArgentinaAnna Fali NEW
James M GlickBrazilAnna Fali NEGOTIATION
Tony V ButtBrazilElwin Sharvill UNQUALIFIED
Jennifer P GillianSpainElwin Sharvill PROPOSAL
Antonio Y PaprockiSpainAsiya Javayant NEW
Deepesh I SergiBrazilBernardo Dominic NEW
Smith Q GarufiUnited KingdomAmy Elsner NEW
Aika X KolmetzCanadaAmy Elsner PROPOSAL
Ivar F FollerRussiaOnyama Limba RENEWAL
Darci R RutaFranceStephen Shaw NEW
Munro R PerinUnited KingdomAmy Elsner UNQUALIFIED
Chavez K NickaCanadaIoni Bowcher UNQUALIFIED
Claire S CampainIndiaIvan Magalhaes RENEWAL
Francesco D MacleadBrazilIoni Bowcher NEGOTIATION
Claire A GlickSpainIvan Magalhaes QUALIFIED
Sinclair R BologniaCanadaIvan Magalhaes NEW
Juan V AlbaresArgentinaOnyama Limba NEW
Nicolas V MorascaGermanyOnyama Limba NEW
Deepesh T FlosiAustraliaElwin Sharvill UNQUALIFIED
Chavez O PaprockiSpainIvan Magalhaes NEGOTIATION
Jennifer N ShinkoSpainBernardo Dominic NEGOTIATION
Arvin F GillianFranceIoni Bowcher PROPOSAL
Mayumi Z DoeBrazilBernardo Dominic RENEWAL
Leja F FollerAustraliaIoni Bowcher UNQUALIFIED
Ivar O IturbideIndiaAmy Elsner QUALIFIED
Jones W CampainArgentinaStephen Shaw PROPOSAL
Kadeem Q ShinkoGermanyXuxue Feng PROPOSAL
James I RulapaughCanadaElwin Sharvill QUALIFIED
Kaitlin U RimGermanyIoni Bowcher NEGOTIATION
Ashley K RoysterAustraliaStephen Shaw QUALIFIED
Leon R StockhamUnited KingdomIoni Bowcher PROPOSAL
Jefferson X GauchoArgentinaAsiya Javayant QUALIFIED
Murillo U RutaAustraliaAmy Elsner UNQUALIFIED
Arvin W BologniaItalyStephen Shaw RENEWAL
Mayumi M MaletUnited KingdomElwin Sharvill NEGOTIATION
Mayumi K RoysterIndiaBernardo Dominic NEW
Silvio F AlbaresIndiaIvan Magalhaes PROPOSAL
Aditya N RulapaughSpainIoni Bowcher PROPOSAL
Arvin Q MacleadJapanIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Maria S Amigon
Tony Z Slusarski
Jefferson H Iturbide
Darci H Figeroa
Smith Z Poquette
Nicolas X Stockham
Silvio Q Darakjy
Darci N Amigon
Ivar C Stenseth
Jones E Vocelka
Kadeem V Albares
Aruna K Campain
Chavez K Slusarski
Darci X Glick
Jefferson W Schemmer
Clifford P Foller
Costa Q Kolmetz
Faith T Caudy
Wickens C Slusarski
Morrow V Gaucho
Munro O Malet
Kaitlin A Figeroa
Wickens E Whobrey
Sinclair T Slusarski
Faith B Saylors
Smith H Stenseth
Smith P Waycott
Kadeem A Kusko
Claire G Poquette
Izzy N Campain
Rodrigues Y Saylors
Munro R Nicka
Arvin T Venere
Sinclair A Tollner
Emily G Rulapaugh
Jennifer W Rulapaugh
Clifford X Perin
Costa N Rulapaugh
Smith I Schemmer
Izzy V Gaucho
Aditya O Waycott
Claire Z Doe
Silvio R Morasca
Jefferson H Flosi
Aditya K Iturbide
Greenwood M Nicka
Alejandro F Gaucho
Rodrigues F Marrier
Cody Q Dilliard
Kaitlin H Saylors
IdCountryDate
1000Germany2024-04-15
1001Canada2024-04-15
1002Brazil2024-04-03
1003India2024-04-10
1004Brazil2024-04-18
1005Italy2024-04-03
1006United Kingdom2024-04-10
1007Germany2024-04-15
1008Australia2024-04-01
1009Italy2024-04-24
1010Argentina2024-04-22
1011Russia2024-04-09
1012France2024-04-22
1013Italy2024-04-04
1014France2024-04-10
1015United Kingdom2024-04-22
1016Spain2024-04-19
1017Brazil2024-04-17
1018Russia2024-04-04
1019Brazil2024-04-26
1020United Kingdom2024-04-04
1021Canada2024-04-08
1022Australia2024-04-07
1023Germany2024-04-10
1024Spain2024-04-16
1025Spain2024-04-19
1026Japan2024-04-15
1027Argentina2024-04-09
1028Spain2024-03-31
1029United Kingdom2024-04-18
1030Germany2024-04-17
1031India2024-04-09
1032Spain2024-03-30
1033Germany2024-04-22
1034Argentina2024-04-03
1035Germany2024-04-03
1036Germany2024-04-26
1037Russia2024-04-04
1038France2024-04-15
1039Argentina2024-04-25
1040Russia2024-04-20
1041France2024-04-07
1042Brazil2024-04-04
1043Germany2024-04-23
1044Germany2024-03-29
1045France2024-04-08
1046Italy2024-04-01
1047Germany2024-04-15
1048Japan2024-04-08
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Morrow O Whobrey1000Brazil2024-04-09
Chavez P Venere1001Argentina2024-04-18
Julie H Foller1002Canada2024-04-20
Deepesh N Rulapaugh1003Russia2024-04-12
Smith J Caldarera1004Canada2024-04-13
Mujtaba L Rulapaugh1005Spain2024-04-15
Maria F Kolmetz1006Germany2024-04-01
Aditya G Glick1007Brazil2024-04-08
Mujtaba C Garufi1008United Kingdom2024-04-20
Jeanfrancois L Glick1009Brazil2024-03-30
Salvatore A Malet1010India2024-04-22
Antonio V Perin1011Spain2024-04-12
Morrow X Bolognia1012Japan2024-04-15
Emily L Venere1013Russia2024-04-04
Jeanfrancois I Caudy1014Japan2024-03-28
Cody U Stenseth1015Spain2024-04-13
Isabel R Butt1016Japan2024-04-05
Antonio A Shinko1017France2024-04-26
Murillo O Marrier1018Japan2024-04-23
Alejandro I Slusarski1019Russia2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas X OldroydFranceElwin Sharvill PROPOSAL
Sinclair A RutaJapanXuxue Feng QUALIFIED
Adams X InouyeAustraliaXuxue Feng NEW
Maisha M BriddickGermanyStephen Shaw QUALIFIED
Alejandro S PaprockiFranceXuxue Feng UNQUALIFIED
Darci L KolmetzCanadaBernardo Dominic NEW
Leon J NestleFranceAnna Fali UNQUALIFIED
Antonio G StensethFranceAmy Elsner RENEWAL
Jefferson Z MorascaArgentinaXuxue Feng PROPOSAL
Morrow G MorascaUnited KingdomXuxue Feng RENEWAL
Emily L PerinRussiaIoni Bowcher UNQUALIFIED
Rodrigues M AlbaresCanadaAsiya Javayant NEGOTIATION
Morrow G MorascaIndiaIoni Bowcher UNQUALIFIED
Maisha W InouyeGermanyXuxue Feng PROPOSAL
Faith Q ChuiBrazilBernardo Dominic QUALIFIED
Costa K CaldareraGermanyOnyama Limba UNQUALIFIED
Jennifer I PaprockiArgentinaAmy Elsner RENEWAL
Morrow W InouyeIndiaAsiya Javayant RENEWAL
Sinclair Z PoquetteUnited KingdomAsiya Javayant NEW
Kaitlin C ShinkoRussiaIvan Magalhaes PROPOSAL
Morrow N PerinArgentinaAnna Fali QUALIFIED
Octavia J RutaArgentinaAnna Fali UNQUALIFIED
Morrow Q SchemmerIndiaXuxue Feng PROPOSAL
Leon Y GauchoBrazilIoni Bowcher NEW
Francesco A BowleyAustraliaStephen Shaw PROPOSAL
Murillo T CampainJapanXuxue Feng NEW
Tony U IturbideFranceXuxue Feng PROPOSAL
Jennifer L DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Francesco Y KuskoRussiaAmy Elsner NEGOTIATION
Mayumi T RutaIndiaOnyama Limba NEGOTIATION
Claire K GillianRussiaElwin Sharvill PROPOSAL
Alejandro S FerenczFranceBernardo Dominic UNQUALIFIED
Deepesh O NestleJapanBernardo Dominic QUALIFIED
Leon P RimUnited KingdomElwin Sharvill QUALIFIED
Francesco E GillianRussiaAnna Fali NEGOTIATION
Rodrigues R WieserRussiaBernardo Dominic NEW
Kadeem B SchemmerAustraliaIoni Bowcher RENEWAL
Claire I DarakjyItalyOnyama Limba NEGOTIATION
Adams D AlbaresArgentinaAsiya Javayant UNQUALIFIED
Morrow E DilliardUnited KingdomOnyama Limba 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>