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
James V PaprockiFranceXuxue Feng UNQUALIFIED
Antonio G RutaBrazilIvan Magalhaes RENEWAL
Mayumi D PoquetteGermanyOnyama Limba QUALIFIED
Cody U SchemmerItalyAnna Fali UNQUALIFIED
Ashley T OstroskyUnited KingdomStephen Shaw QUALIFIED
Ashley I WaycottAustraliaXuxue Feng NEGOTIATION
Maisha S SaylorsIndiaElwin Sharvill PROPOSAL
Aditya Y NestleSpainIoni Bowcher PROPOSAL
Leon Y GillianItalyIvan Magalhaes UNQUALIFIED
Munro Y WaycottArgentinaXuxue Feng RENEWAL
Octavia P GlickJapanBernardo Dominic RENEWAL
Julie Y StensethSpainIvan Magalhaes RENEWAL
Mayumi B OldroydAustraliaIoni Bowcher UNQUALIFIED
Greenwood U PaprockiBrazilAmy Elsner RENEWAL
Leon O ButtUnited KingdomAmy Elsner NEGOTIATION
Leon H BriddickUnited KingdomOnyama Limba UNQUALIFIED
Ashley F IturbideFranceXuxue Feng NEGOTIATION
Morrow F ButtCanadaElwin Sharvill RENEWAL
Costa T ButtUnited KingdomAsiya Javayant UNQUALIFIED
Leon U BologniaArgentinaAnna Fali PROPOSAL
Jennifer Q VocelkaCanadaBernardo Dominic QUALIFIED
Jennifer Q BologniaIndiaBernardo Dominic NEGOTIATION
Maria K FlosiRussiaAsiya Javayant NEGOTIATION
Ricardo U StensethItalyOnyama Limba PROPOSAL
Juan M SchemmerSpainXuxue Feng UNQUALIFIED
Mujtaba Z NickaGermanyElwin Sharvill UNQUALIFIED
Aditya W PaprockiAustraliaOnyama Limba QUALIFIED
Morrow S OstroskyCanadaOnyama Limba NEW
Cody I NestleUnited KingdomXuxue Feng RENEWAL
Jones R RimRussiaIoni Bowcher UNQUALIFIED
Rodrigues X ButtFranceStephen Shaw PROPOSAL
Tony Y PaprockiFranceXuxue Feng QUALIFIED
David W MorascaItalyOnyama Limba RENEWAL
Aditya S BologniaSpainIoni Bowcher NEW
Johnson C WhobreyCanadaOnyama Limba RENEWAL
Izzy M AlbaresSpainIoni Bowcher NEW
Johnson S RulapaughUnited KingdomAsiya Javayant NEW
Maisha N SaylorsIndiaStephen Shaw RENEWAL
Tony I RimJapanAnna Fali QUALIFIED
Aruna N BologniaArgentinaBernardo Dominic NEW
Aditya H ButtSpainElwin Sharvill UNQUALIFIED
Aika L TollnerRussiaAmy Elsner NEW
Izzy C CaldareraAustraliaAmy Elsner NEGOTIATION
Wickens Q ButtSpainAsiya Javayant NEGOTIATION
Leja G FollerRussiaAmy Elsner UNQUALIFIED
Emily F NickaIndiaOnyama Limba RENEWAL
Jeanfrancois J StockhamIndiaElwin Sharvill QUALIFIED
Kadeem L WhobreyAustraliaOnyama Limba PROPOSAL
Maisha O FlosiRussiaBernardo Dominic NEW
David B ChuiAustraliaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James F DilliardGermanyIoni Bowcher PROPOSAL
Aditya K OldroydRussiaElwin Sharvill PROPOSAL
Aruna O MaletGermanyAnna Fali RENEWAL
Cody F StockhamSpainElwin Sharvill RENEWAL
Julie K FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Aditya I PerinRussiaIvan Magalhaes UNQUALIFIED
Maisha N PoquetteAustraliaAnna Fali UNQUALIFIED
Nicolas V GlickCanadaXuxue Feng PROPOSAL
Francesco V KolmetzAustraliaAsiya Javayant RENEWAL
Arvin F ChuiAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody U BowleyFrance2024-04-11Morlong Associates NEW7Bernardo Dominic
1001Aruna U OstroskySpain2024-04-10King, Christopher A Esq PROPOSAL30Xuxue Feng
1002Greenwood P NestleIndia2024-04-18Printing Dimensions NEW31Bernardo Dominic
1003Silvio G CaudyArgentina2024-04-23Benton, John B Jr UNQUALIFIED46Asiya Javayant
1004Juan Q RulapaughGermany2024-04-19Printing Dimensions QUALIFIED0Bernardo Dominic
1005Chavez W IturbideJapan2024-04-27Chanay, Jeffrey A Esq PROPOSAL92Ivan Magalhaes
1006David Y TollnerAustralia2024-04-12Benton, John B Jr UNQUALIFIED17Stephen Shaw
1007Wickens L WaycottJapan2024-04-08Chanay, Jeffrey A Esq NEGOTIATION77Xuxue Feng
1008Murillo T NestleCanada2024-04-01Chapman, Ross E Esq QUALIFIED22Anna Fali
1009Chavez S OldroydCanada2024-04-12Chanay, Jeffrey A Esq NEGOTIATION19Onyama Limba
1010Mujtaba L WhobreyItaly2024-04-29Rangoni Of Florence RENEWAL54Xuxue Feng
1011Faith Z WieserBrazil2024-04-06Commercial Press NEGOTIATION21Amy Elsner
1012Maria O TollnerJapan2024-04-22Rangoni Of Florence RENEWAL46Ioni Bowcher
1013Maria D RutaIndia2024-04-17Buckley Miller Wright NEGOTIATION56Onyama Limba
1014Kadeem X MaletGermany2024-04-29Morlong Associates NEW65Bernardo Dominic
1015Claire R NestleArgentina2024-04-25Printing Dimensions NEW56Anna Fali
1016Darci K NickaSpain2024-04-25Printing Dimensions NEGOTIATION10Stephen Shaw
1017Tony O KuskoRussia2024-04-17Rangoni Of Florence QUALIFIED81Stephen Shaw
1018Clifford J InouyeIndia2024-04-08Buckley Miller Wright QUALIFIED93Onyama Limba
1019Greenwood K FlosiCanada2024-04-11King, Christopher A Esq UNQUALIFIED22Amy Elsner
1020Arvin V RutaRussia2024-04-26Morlong Associates RENEWAL96Stephen Shaw
1021Nicolas Z ShinkoBrazil2024-04-06Rangoni Of Florence PROPOSAL38Bernardo Dominic
1022David F MaletAustralia2024-04-02Rousseaux, Michael Esq QUALIFIED6Ioni Bowcher
1023Mayumi C VenereRussia2024-03-31Truhlar And Truhlar Attys QUALIFIED92Amy Elsner
1024Leon E MaletItaly2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED73Ioni Bowcher
1025Wickens K SchemmerFrance2024-04-29Truhlar And Truhlar Attys RENEWAL33Onyama Limba
1026Murillo I PoquetteSpain2024-04-17Rangoni Of Florence UNQUALIFIED85Ivan Magalhaes
1027Kadeem F CaudyAustralia2024-04-24Feltz Printing Service UNQUALIFIED14Elwin Sharvill
1028Misaki T RulapaughIndia2024-04-01Feltz Printing Service NEGOTIATION24Ivan Magalhaes
1029Izzy Y WaycottFrance2024-04-29Chapman, Ross E Esq NEW4Xuxue Feng
1030Nicolas W DoeArgentina2024-04-09Printing Dimensions PROPOSAL24Stephen Shaw
1031Wickens A GarufiAustralia2024-04-08Feiner Bros PROPOSAL61Bernardo Dominic
1032Ricardo N PaprockiFrance2024-04-09Morlong Associates PROPOSAL67Onyama Limba
1033Adams E RulapaughSpain2024-04-02Chemel, James L Cpa RENEWAL88Amy Elsner
1034Greenwood F RimUnited Kingdom2024-04-21Benton, John B Jr QUALIFIED96Stephen Shaw
1035Murillo D BowleyIndia2024-04-23Feiner Bros NEGOTIATION20Stephen Shaw
1036Aruna Y SchemmerArgentina2024-04-21Truhlar And Truhlar Attys NEGOTIATION91Stephen Shaw
1037Cody Y GarufiRussia2024-04-14Benton, John B Jr NEGOTIATION73Ivan Magalhaes
1038Misaki N MarrierCanada2024-04-14Feltz Printing Service RENEWAL21Bernardo Dominic
1039Nicolas R TollnerCanada2024-04-13Rousseaux, Michael Esq NEW34Asiya Javayant
1040Wickens J KuskoItaly2024-04-05Rangoni Of Florence NEGOTIATION22Elwin Sharvill
1041Julie C AlbaresJapan2024-04-12Truhlar And Truhlar Attys QUALIFIED47Bernardo Dominic
1042Chavez Q InouyeBrazil2024-04-03Feltz Printing Service QUALIFIED7Stephen Shaw
1043Arvin U RimJapan2024-04-10Printing Dimensions UNQUALIFIED2Amy Elsner
1044Ivar O NestleCanada2024-04-05King, Christopher A Esq PROPOSAL85Stephen Shaw
1045Aditya I FollerItaly2024-04-03King, Christopher A Esq NEW8Amy Elsner
1046James D OstroskyJapan2024-04-10Morlong Associates NEGOTIATION39Elwin Sharvill
1047Ashley V SlusarskiGermany2024-04-10Rousseaux, Michael Esq UNQUALIFIED4Onyama Limba
1048Deepesh E KuskoSpain2024-04-18Benton, John B Jr NEW29Asiya Javayant
1049Darci J VocelkaIndia2024-04-16Feiner Bros UNQUALIFIED14Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Izzy E NickaIndiaAsiya Javayant RENEWAL
James I MaletIndiaIoni Bowcher NEGOTIATION
Darci P ShinkoCanadaAmy Elsner NEGOTIATION
Chavez B CaldareraIndiaIvan Magalhaes QUALIFIED
Alejandro F WaycottBrazilXuxue Feng UNQUALIFIED
Leon K IturbideAustraliaIvan Magalhaes RENEWAL
Arvin W VenereGermanyStephen Shaw UNQUALIFIED
Faith Q GarufiGermanyIvan Magalhaes UNQUALIFIED
Rodrigues T VocelkaAustraliaElwin Sharvill NEW
Chavez I WaycottFranceIvan Magalhaes NEGOTIATION
Jefferson L FigeroaIndiaElwin Sharvill QUALIFIED
Aruna C RimRussiaIoni Bowcher NEGOTIATION
Sinclair U WhobreyCanadaAmy Elsner UNQUALIFIED
James P BriddickUnited KingdomStephen Shaw NEGOTIATION
Mayumi T GillianArgentinaBernardo Dominic PROPOSAL
Clifford T RimJapanAmy Elsner NEGOTIATION
Emily O StensethGermanyXuxue Feng QUALIFIED
David O CaudyArgentinaAsiya Javayant NEGOTIATION
Greenwood P InouyeJapanIoni Bowcher RENEWAL
David O DilliardRussiaBernardo Dominic NEW
Cody Q GillianJapanElwin Sharvill NEGOTIATION
Emily I CampainJapanIvan Magalhaes UNQUALIFIED
Johnson P PaprockiArgentinaIoni Bowcher UNQUALIFIED
Octavia M SlusarskiItalyElwin Sharvill QUALIFIED
Kadeem X ButtArgentinaXuxue Feng NEGOTIATION
Nicolas H NestleArgentinaStephen Shaw RENEWAL
Ashley L BowleyArgentinaIvan Magalhaes NEW
Salvatore Q MaletGermanyIvan Magalhaes UNQUALIFIED
Kadeem G KolmetzBrazilAmy Elsner NEW
Jones F WieserUnited KingdomAsiya Javayant UNQUALIFIED
Leja T StensethFranceIvan Magalhaes NEW
Juan V GauchoBrazilAnna Fali UNQUALIFIED
Nicolas T MaletSpainBernardo Dominic NEGOTIATION
Clifford N WhobreyIndiaXuxue Feng QUALIFIED
Kaitlin N FerenczFranceElwin Sharvill PROPOSAL
Smith V RutaUnited KingdomAmy Elsner NEW
Kaitlin I NickaGermanyIvan Magalhaes RENEWAL
Aditya A CaudyIndiaAsiya Javayant NEW
Murillo Q FollerJapanXuxue Feng PROPOSAL
Greenwood Q KolmetzBrazilStephen Shaw PROPOSAL
Jeanfrancois R GlickItalyAmy Elsner NEGOTIATION
Sinclair H PoquetteSpainBernardo Dominic UNQUALIFIED
Chavez K RulapaughJapanAnna Fali NEW
Wickens V VenereItalyOnyama Limba NEGOTIATION
Greenwood X RimBrazilAsiya Javayant NEGOTIATION
Octavia S MarrierCanadaAnna Fali NEW
Aika R FlosiRussiaXuxue Feng UNQUALIFIED
Aika X DilliardSpainXuxue Feng RENEWAL
Maisha N PerinUnited KingdomXuxue Feng UNQUALIFIED
Greenwood H PerinAustraliaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Aika Y Tollner
Claire R Caudy
Greenwood W Perin
James N Briddick
Jones C Nestle
Tony O Ferencz
Kadeem E Slusarski
Murillo V Gillian
Alejandro K Rulapaugh
David B Darakjy
Jones R Poquette
Maria H Butt
Kadeem R Saylors
Jeanfrancois T Malet
Jones R Nestle
Ivar I Stenseth
Alejandro Z Ostrosky
Aruna Z Vocelka
James G Inouye
Aditya K Bolognia
Greenwood N Shinko
Wickens M Ruta
Jones H Schemmer
Clifford U Whobrey
Aruna I Kolmetz
Maisha G Whobrey
Faith N Saylors
Tony V Darakjy
Tony S Rim
Wickens T Dilliard
Darci V Briddick
Ivar O Rulapaugh
Aruna E Doe
Isabel P Stockham
Izzy C Stenseth
Francesco F Doe
Kaitlin F Garufi
Murillo A Ruta
Munro O Inouye
Alejandro A Maclead
Deepesh G Iturbide
Kaitlin Z Whobrey
Nicolas B Glick
Clifford L Dilliard
Costa R Stenseth
Jennifer T Campain
Munro D Caldarera
Johnson S Campain
Kadeem R Paprocki
Johnson O Maclead
IdCountryDate
1000Italy2024-04-18
1001Argentina2024-04-12
1002Canada2024-04-24
1003Italy2024-04-26
1004France2024-04-15
1005Brazil2024-04-06
1006Brazil2024-04-27
1007Australia2024-04-17
1008Australia2024-04-26
1009Australia2024-04-20
1010Russia2024-04-02
1011Spain2024-04-26
1012Argentina2024-04-24
1013Russia2024-04-24
1014Spain2024-04-16
1015Germany2024-04-01
1016France2024-04-04
1017Canada2024-04-29
1018Russia2024-04-03
1019Russia2024-04-03
1020Germany2024-04-19
1021Australia2024-04-21
1022Spain2024-04-28
1023Canada2024-04-18
1024Australia2024-04-23
1025Italy2024-04-11
1026Russia2024-04-22
1027India2024-04-22
1028Italy2024-04-26
1029France2024-04-03
1030Spain2024-04-28
1031Japan2024-04-11
1032Russia2024-04-26
1033France2024-04-23
1034Argentina2024-04-20
1035Canada2024-04-24
1036Germany2024-04-23
1037United Kingdom2024-04-25
1038Japan2024-04-25
1039Brazil2024-04-04
1040Canada2024-04-16
1041Brazil2024-04-11
1042France2024-04-08
1043Argentina2024-04-09
1044Italy2024-04-12
1045Spain2024-04-24
1046Italy2024-04-29
1047Japan2024-04-03
1048Brazil2024-04-03
1049Argentina2024-04-29

On-Demand Data

NameIdCountryDate
Julie I Malet1000France2024-04-27
Chavez K Oldroyd1001Argentina2024-04-08
Emily H Malet1002Italy2024-04-18
Mujtaba S Bolognia1003Italy2024-04-26
Salvatore Y Malet1004India2024-04-27
Leon L Shinko1005India2024-04-12
Claire W Waycott1006India2024-04-06
Mujtaba E Bolognia1007Spain2024-04-24
Maria H Doe1008Spain2024-04-01
Ricardo D Caldarera1009Australia2024-04-17
Nicolas Y Darakjy1010Australia2024-04-27
Ivar X Kolmetz1011Russia2024-04-09
Maria V Saylors1012Spain2024-04-21
Julie T Stenseth1013India2024-04-20
Tony V Amigon1014Australia2024-04-12
Munro F Saylors1015Brazil2024-04-16
Jefferson Y Foller1016Germany2024-04-11
Juan Q Royster1017India2024-04-18
David H Garufi1018Spain2024-04-19
Alejandro O Inouye1019Canada2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja C WieserItalyOnyama Limba NEGOTIATION
Jeanfrancois K BowleyFranceStephen Shaw QUALIFIED
Kaitlin M GlickIndiaIoni Bowcher UNQUALIFIED
Chavez V MorascaItalyAsiya Javayant PROPOSAL
Chavez L FollerUnited KingdomAmy Elsner NEW
Munro R MaletAustraliaAnna Fali RENEWAL
Kadeem Z CampainJapanIvan Magalhaes QUALIFIED
Darci T NickaJapanBernardo Dominic NEW
Silvio J CampainJapanAsiya Javayant PROPOSAL
Maria N GarufiRussiaStephen Shaw QUALIFIED
Ivar G BologniaSpainAsiya Javayant PROPOSAL
Aruna Q KolmetzIndiaXuxue Feng UNQUALIFIED
Costa B StensethCanadaOnyama Limba UNQUALIFIED
Silvio M TollnerSpainIoni Bowcher PROPOSAL
Johnson F BowleySpainIoni Bowcher NEW
Ivar Q CaldareraIndiaBernardo Dominic NEW
Aika D DarakjyGermanyXuxue Feng QUALIFIED
Leja O AmigonJapanAmy Elsner NEGOTIATION
Jones V DilliardFranceIvan Magalhaes NEW
Ricardo H StockhamFranceIoni Bowcher QUALIFIED
Ashley S DilliardIndiaAmy Elsner PROPOSAL
Emily J PoquetteBrazilBernardo Dominic QUALIFIED
Ashley O AmigonFranceAsiya Javayant RENEWAL
Chavez O WaycottSpainIvan Magalhaes NEW
Munro V GillianGermanyIvan Magalhaes QUALIFIED
Tony A CampainRussiaAsiya Javayant UNQUALIFIED
Wickens I MorascaFranceOnyama Limba PROPOSAL
Silvio X PerinArgentinaOnyama Limba RENEWAL
Izzy U OstroskyItalyIvan Magalhaes RENEWAL
Arvin R FlosiItalyAmy Elsner NEGOTIATION
Arvin R RutaIndiaIvan Magalhaes NEGOTIATION
Cody Z AlbaresGermanyAsiya Javayant NEW
Alejandro K MaletArgentinaAsiya Javayant NEW
Stacey Y WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Leon A MarrierBrazilElwin Sharvill QUALIFIED
Ivar E PoquetteCanadaAsiya Javayant UNQUALIFIED
Jones W OldroydRussiaElwin Sharvill QUALIFIED
Maria K TollnerItalyAnna Fali QUALIFIED
Ricardo G WieserItalyStephen Shaw NEW
Jeanfrancois L FerenczJapanStephen Shaw QUALIFIED

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