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 M VenereFranceAmy Elsner QUALIFIED
Silvio W TollnerUnited KingdomIoni Bowcher PROPOSAL
Julie H ShinkoCanadaAnna Fali QUALIFIED
Leon A GillianBrazilIoni Bowcher UNQUALIFIED
Juan Y PoquetteBrazilIvan Magalhaes UNQUALIFIED
David L RoysterRussiaXuxue Feng QUALIFIED
Maisha U FerenczItalyIvan Magalhaes NEW
Munro U PoquetteIndiaAmy Elsner QUALIFIED
Clifford R StensethJapanOnyama Limba QUALIFIED
Mujtaba I FlosiJapanAsiya Javayant QUALIFIED
Claire H CampainItalyBernardo Dominic RENEWAL
Silvio O ChuiUnited KingdomXuxue Feng NEW
Greenwood C AlbaresFranceAmy Elsner QUALIFIED
Jeanfrancois U PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Silvio E MacleadSpainAsiya Javayant UNQUALIFIED
Chavez Z RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Juan X StensethFranceOnyama Limba QUALIFIED
Kaitlin N InouyeCanadaIvan Magalhaes RENEWAL
David K WieserGermanyStephen Shaw PROPOSAL
Darci A MaletArgentinaOnyama Limba PROPOSAL
Jennifer B SergiGermanyAmy Elsner NEW
Cody B PerinGermanyIoni Bowcher PROPOSAL
Salvatore E WieserGermanyStephen Shaw QUALIFIED
Smith H MacleadFranceBernardo Dominic RENEWAL
Adams B InouyeUnited KingdomAnna Fali NEW
David J WieserItalyIoni Bowcher UNQUALIFIED
Isabel E SaylorsUnited KingdomXuxue Feng RENEWAL
Munro I BriddickAustraliaBernardo Dominic PROPOSAL
Jones N DarakjyFranceXuxue Feng NEW
Smith Q StensethArgentinaOnyama Limba RENEWAL
David P RulapaughArgentinaOnyama Limba NEW
Chavez O ButtRussiaIoni Bowcher NEW
Maria Z DilliardItalyIvan Magalhaes NEW
Kadeem C BologniaItalyIoni Bowcher UNQUALIFIED
Smith Q SaylorsItalyElwin Sharvill NEW
Deepesh A CaudyGermanyBernardo Dominic QUALIFIED
Greenwood L VocelkaFranceOnyama Limba NEGOTIATION
Izzy E TollnerGermanyIvan Magalhaes NEW
Jones P MaletSpainAnna Fali QUALIFIED
Ashley O VenereSpainAmy Elsner QUALIFIED
Alejandro L BowleyRussiaOnyama Limba RENEWAL
Mayumi V WaycottArgentinaAmy Elsner QUALIFIED
Claire Z GauchoBrazilAnna Fali NEGOTIATION
Mayumi A FerenczFranceXuxue Feng NEGOTIATION
Ivar T PoquetteJapanBernardo Dominic QUALIFIED
Isabel U ChuiAustraliaBernardo Dominic QUALIFIED
James K KolmetzGermanyAmy Elsner QUALIFIED
Cody H OldroydItalyBernardo Dominic PROPOSAL
Mayumi J FlosiCanadaAmy Elsner NEW
Aika E SlusarskiSpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Faith R DilliardJapanElwin Sharvill NEGOTIATION
Antonio D MacleadItalyAmy Elsner NEGOTIATION
Jeanfrancois E KuskoBrazilIvan Magalhaes QUALIFIED
Kadeem T FlosiItalyIvan Magalhaes RENEWAL
Sinclair H KolmetzGermanyElwin Sharvill UNQUALIFIED
Leon B FigeroaJapanIvan Magalhaes PROPOSAL
Faith Q ButtBrazilAnna Fali QUALIFIED
Julie A VenereSpainIvan Magalhaes NEW
Murillo P MorascaIndiaStephen Shaw NEGOTIATION
Izzy F GarufiFranceIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood S OstroskySpain2024-04-02Feiner Bros QUALIFIED83Xuxue Feng
1001Wickens B ShinkoIndia2024-04-01Chapman, Ross E Esq NEW8Elwin Sharvill
1002Jones X PoquetteBrazil2024-03-28Buckley Miller Wright NEW63Bernardo Dominic
1003Wickens A ChuiRussia2024-04-02Buckley Miller Wright UNQUALIFIED89Bernardo Dominic
1004Ivar O MarrierCanada2024-04-16Morlong Associates QUALIFIED4Bernardo Dominic
1005Silvio Y AlbaresArgentina2024-04-14Chanay, Jeffrey A Esq PROPOSAL8Bernardo Dominic
1006Kaitlin Y KuskoUnited Kingdom2024-03-21Chanay, Jeffrey A Esq PROPOSAL12Ioni Bowcher
1007Cody O MarrierGermany2024-03-24King, Christopher A Esq QUALIFIED8Asiya Javayant
1008Jones P StensethItaly2024-04-03Feltz Printing Service PROPOSAL51Ioni Bowcher
1009Jones Y ButtCanada2024-04-11Commercial Press QUALIFIED15Ivan Magalhaes
1010Faith E TollnerBrazil2024-04-13Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1011Emily R PerinItaly2024-04-11Chemel, James L Cpa RENEWAL96Ioni Bowcher
1012Juan J BologniaFrance2024-04-04Rousseaux, Michael Esq QUALIFIED91Asiya Javayant
1013Johnson W AlbaresJapan2024-03-31Chanay, Jeffrey A Esq RENEWAL99Elwin Sharvill
1014Nicolas V GlickJapan2024-04-16Truhlar And Truhlar Attys UNQUALIFIED46Ivan Magalhaes
1015Maisha H WaycottRussia2024-04-02Benton, John B Jr QUALIFIED56Stephen Shaw
1016Mujtaba J AlbaresSpain2024-03-31Chanay, Jeffrey A Esq NEGOTIATION21Ioni Bowcher
1017Deepesh U GillianArgentina2024-04-09Benton, John B Jr QUALIFIED14Xuxue Feng
1018Mayumi P InouyeItaly2024-03-24Rousseaux, Michael Esq UNQUALIFIED84Asiya Javayant
1019Claire A WieserJapan2024-04-13Printing Dimensions NEGOTIATION90Xuxue Feng
1020Chavez I FigeroaBrazil2024-04-02King, Christopher A Esq NEGOTIATION10Ivan Magalhaes
1021Chavez B FerenczFrance2024-04-15Rousseaux, Michael Esq PROPOSAL75Stephen Shaw
1022Salvatore D StockhamCanada2024-04-06Chanay, Jeffrey A Esq RENEWAL76Xuxue Feng
1023Wickens B BowleyAustralia2024-04-15Printing Dimensions NEW38Stephen Shaw
1024Adams R RulapaughGermany2024-03-25Printing Dimensions QUALIFIED95Stephen Shaw
1025Darci L PaprockiFrance2024-03-29Morlong Associates NEW78Onyama Limba
1026Chavez Y OstroskyRussia2024-04-07Rousseaux, Michael Esq PROPOSAL28Anna Fali
1027Alejandro Z ChuiFrance2024-03-23Feiner Bros RENEWAL83Ivan Magalhaes
1028Wickens Y PoquetteArgentina2024-03-25Chemel, James L Cpa NEW53Asiya Javayant
1029Munro X VocelkaItaly2024-04-12Printing Dimensions PROPOSAL27Bernardo Dominic
1030Kadeem I OldroydArgentina2024-03-23Morlong Associates NEW52Amy Elsner
1031Aditya A OstroskyBrazil2024-03-26Rousseaux, Michael Esq RENEWAL83Anna Fali
1032Alejandro C DilliardArgentina2024-03-22Rangoni Of Florence RENEWAL76Amy Elsner
1033Ashley Z CampainJapan2024-03-22Dorl, James J Esq NEW93Ioni Bowcher
1034Tony M WaycottGermany2024-04-05Morlong Associates NEW45Onyama Limba
1035Greenwood J ChuiUnited Kingdom2024-04-03Buckley Miller Wright QUALIFIED97Bernardo Dominic
1036Emily L SaylorsFrance2024-04-12Rangoni Of Florence UNQUALIFIED2Xuxue Feng
1037Darci Z WhobreyArgentina2024-03-29Rangoni Of Florence NEGOTIATION1Onyama Limba
1038Misaki V WhobreyBrazil2024-03-24Rousseaux, Michael Esq QUALIFIED26Ivan Magalhaes
1039Mujtaba E CaudyIndia2024-04-08King, Christopher A Esq RENEWAL65Anna Fali
1040Munro Z ShinkoAustralia2024-04-14Benton, John B Jr PROPOSAL97Amy Elsner
1041Mayumi N IturbideFrance2024-03-21Benton, John B Jr NEGOTIATION36Stephen Shaw
1042Cody N StensethIndia2024-04-16Printing Dimensions NEGOTIATION39Ioni Bowcher
1043Rodrigues Q FigeroaGermany2024-04-03Chapman, Ross E Esq UNQUALIFIED92Elwin Sharvill
1044Mujtaba P DoeItaly2024-04-09Chanay, Jeffrey A Esq QUALIFIED26Xuxue Feng
1045Clifford C GauchoGermany2024-03-30King, Christopher A Esq RENEWAL73Amy Elsner
1046Ricardo M AlbaresRussia2024-04-06Truhlar And Truhlar Attys UNQUALIFIED35Bernardo Dominic
1047Julie V WaycottFrance2024-04-04Rousseaux, Michael Esq NEGOTIATION71Onyama Limba
1048Aruna M TollnerArgentina2024-04-12Benton, John B Jr RENEWAL26Bernardo Dominic
1049Julie U FollerAustralia2024-04-19Benton, John B Jr PROPOSAL91Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues H DoeJapanIvan Magalhaes RENEWAL
Jefferson Z BowleyAustraliaElwin Sharvill UNQUALIFIED
Leon C AlbaresSpainAsiya Javayant NEW
Nicolas U PerinArgentinaAnna Fali NEW
Arvin D VocelkaBrazilAmy Elsner NEGOTIATION
Wickens E GarufiUnited KingdomIvan Magalhaes NEW
Aditya V IturbideFranceAnna Fali RENEWAL
Faith N DilliardItalyAsiya Javayant QUALIFIED
Aika L FerenczBrazilBernardo Dominic UNQUALIFIED
Alejandro V FollerFranceXuxue Feng QUALIFIED
Leon R GauchoGermanyBernardo Dominic RENEWAL
Juan U StensethSpainIoni Bowcher PROPOSAL
Misaki R WaycottRussiaBernardo Dominic UNQUALIFIED
Aika A GillianGermanyAnna Fali UNQUALIFIED
Leja C ChuiJapanAsiya Javayant NEGOTIATION
Clifford B SergiGermanyAmy Elsner NEW
Adams V DoeGermanyElwin Sharvill RENEWAL
Kaitlin B FigeroaGermanyStephen Shaw PROPOSAL
Ivar J KolmetzArgentinaIoni Bowcher QUALIFIED
Maisha Q SchemmerItalyElwin Sharvill PROPOSAL
Claire X InouyeItalyStephen Shaw NEW
Misaki U MaletAustraliaBernardo Dominic NEW
Kadeem S FigeroaArgentinaBernardo Dominic RENEWAL
Juan U InouyeGermanyAsiya Javayant PROPOSAL
James P DoeAustraliaXuxue Feng UNQUALIFIED
Isabel Z AlbaresArgentinaStephen Shaw NEGOTIATION
Jeanfrancois Q KolmetzGermanyXuxue Feng RENEWAL
Aruna E CaudyFranceAnna Fali NEW
Aruna X BriddickIndiaAnna Fali NEW
Leja S VenereBrazilStephen Shaw RENEWAL
Smith K TollnerIndiaElwin Sharvill QUALIFIED
Wickens S MaletArgentinaIvan Magalhaes NEGOTIATION
Nicolas J RutaUnited KingdomBernardo Dominic RENEWAL
Cody M DoeBrazilIvan Magalhaes PROPOSAL
Mujtaba Y AlbaresRussiaAsiya Javayant NEW
Darci F FerenczIndiaIvan Magalhaes UNQUALIFIED
Jones C StensethRussiaXuxue Feng RENEWAL
Maisha K IturbideSpainXuxue Feng UNQUALIFIED
Mujtaba N SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Maisha L ChuiAustraliaIoni Bowcher NEGOTIATION
Ricardo G WhobreyJapanOnyama Limba NEGOTIATION
Octavia J SaylorsAustraliaElwin Sharvill UNQUALIFIED
Nicolas Z FollerRussiaElwin Sharvill PROPOSAL
Cody D GillianSpainIvan Magalhaes UNQUALIFIED
Costa M AmigonAustraliaAsiya Javayant NEW
Rodrigues J MarrierRussiaAsiya Javayant NEW
Nicolas O MarrierSpainOnyama Limba QUALIFIED
Tony G ButtSpainAnna Fali NEW
Ivar U WieserGermanyAmy Elsner NEGOTIATION
Julie Y CampainBrazilAmy Elsner PROPOSAL
Frozen Columns
Name
Wickens I Nestle
Greenwood C Malet
Mujtaba T Vocelka
Isabel W Foller
Darci G Albares
Jefferson Y Butt
Julie P Amigon
Costa K Amigon
Silvio H Rim
Misaki L Glick
Clifford Z Amigon
Faith G Vocelka
Isabel S Schemmer
Greenwood A Butt
Deepesh C Caldarera
Mayumi Y Tollner
Rodrigues L Marrier
Morrow I Butt
Adams W Venere
Julie D Nestle
Sinclair J Vocelka
Cody O Briddick
Morrow F Chui
Kadeem O Shinko
Kaitlin G Darakjy
Ivar R Saylors
Leja B Whobrey
Morrow F Waycott
Costa K Gaucho
Salvatore U Bolognia
Alejandro R Garufi
Faith Y Glick
Kadeem J Nestle
Wickens B Wieser
Ivar V Chui
James D Kolmetz
Costa T Perin
David A Flosi
Octavia I Darakjy
Chavez R Sergi
Alejandro C Waycott
James N Ferencz
Aika E Ostrosky
Jefferson X Rulapaugh
Faith E Bowley
Juan W Venere
Munro I Ruta
Kadeem G Malet
Costa S Gaucho
Darci U Doe
IdCountryDate
1000United Kingdom2024-03-29
1001Spain2024-03-28
1002Argentina2024-03-24
1003Brazil2024-04-04
1004Brazil2024-03-23
1005United Kingdom2024-03-31
1006Spain2024-03-26
1007Brazil2024-04-03
1008India2024-03-25
1009Spain2024-04-18
1010Spain2024-03-26
1011Japan2024-04-17
1012Germany2024-03-25
1013Australia2024-04-17
1014Japan2024-04-13
1015Italy2024-03-23
1016Japan2024-03-23
1017Russia2024-04-17
1018Japan2024-03-31
1019Japan2024-03-23
1020United Kingdom2024-04-13
1021Italy2024-04-05
1022Argentina2024-04-10
1023Germany2024-03-21
1024Argentina2024-04-13
1025Germany2024-04-06
1026Italy2024-03-27
1027Brazil2024-04-14
1028Russia2024-04-05
1029United Kingdom2024-04-06
1030France2024-03-25
1031United Kingdom2024-04-07
1032Canada2024-04-11
1033Japan2024-04-11
1034Australia2024-04-02
1035Argentina2024-04-14
1036Australia2024-04-13
1037Canada2024-03-21
1038Argentina2024-04-18
1039Argentina2024-03-27
1040Russia2024-04-04
1041Italy2024-03-28
1042Australia2024-04-10
1043Japan2024-04-15
1044Russia2024-03-29
1045France2024-04-18
1046Spain2024-04-12
1047India2024-03-27
1048United Kingdom2024-03-25
1049Italy2024-04-13

On-Demand Data

NameIdCountryDate
Leja P Dilliard1000Brazil2024-04-05
Mujtaba E Whobrey1001Russia2024-03-23
Costa B Dilliard1002India2024-03-24
Chavez W Malet1003Argentina2024-04-06
Clifford L Rulapaugh1004Brazil2024-04-03
Nicolas S Morasca1005Italy2024-04-09
Ashley M Rim1006Canada2024-03-30
Maria Z Sergi1007Japan2024-04-15
Ivar W Albares1008Canada2024-04-19
David T Foller1009Japan2024-04-15
Clifford F Dilliard1010Brazil2024-03-21
Jeanfrancois L Bowley1011Australia2024-03-27
Claire H Stenseth1012Argentina2024-04-06
Johnson C Whobrey1013Argentina2024-04-13
Kadeem U Caudy1014Japan2024-04-09
Faith A Gillian1015Brazil2024-03-26
Sinclair U Iturbide1016Japan2024-04-02
Francesco O Figeroa1017Japan2024-04-10
Misaki B Butt1018Canada2024-04-05
Jeanfrancois S Flosi1019Japan2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan L DilliardBrazilAsiya Javayant NEW
Leon K DoeJapanBernardo Dominic NEW
Octavia X NickaJapanAsiya Javayant PROPOSAL
Francesco X GarufiIndiaAnna Fali PROPOSAL
Chavez D ButtSpainAsiya Javayant PROPOSAL
Wickens X MaletGermanyAmy Elsner NEW
Julie E InouyeCanadaIvan Magalhaes UNQUALIFIED
Chavez K BologniaBrazilAsiya Javayant RENEWAL
Clifford I AmigonArgentinaBernardo Dominic QUALIFIED
Darci O FerenczArgentinaOnyama Limba NEW
Wickens R BowleySpainOnyama Limba RENEWAL
Tony B SchemmerUnited KingdomStephen Shaw NEGOTIATION
Maria H RutaJapanAsiya Javayant QUALIFIED
Aruna G MarrierIndiaXuxue Feng RENEWAL
Johnson F SergiGermanyIoni Bowcher UNQUALIFIED
Kadeem S MacleadRussiaIvan Magalhaes PROPOSAL
Jones I AmigonUnited KingdomXuxue Feng NEGOTIATION
Morrow H FollerFranceIvan Magalhaes QUALIFIED
Clifford G MaletRussiaOnyama Limba PROPOSAL
Maisha G SchemmerCanadaAnna Fali QUALIFIED
James X MarrierAustraliaIoni Bowcher RENEWAL
Costa K GlickArgentinaAsiya Javayant UNQUALIFIED
Mujtaba A BologniaIndiaXuxue Feng PROPOSAL
Leon W SchemmerSpainAnna Fali PROPOSAL
Darci J FigeroaItalyElwin Sharvill QUALIFIED
Mayumi Q FlosiAustraliaAmy Elsner RENEWAL
Mujtaba A KolmetzIndiaBernardo Dominic NEGOTIATION
Julie X DarakjyFranceXuxue Feng NEW
Adams Y SlusarskiCanadaAnna Fali NEW
Murillo A BriddickJapanAsiya Javayant NEW
Aruna V SaylorsItalyAnna Fali NEW
Kaitlin Q NickaItalyAmy Elsner RENEWAL
Wickens Q StockhamJapanIvan Magalhaes UNQUALIFIED
Tony J CaudyUnited KingdomOnyama Limba NEGOTIATION
Aditya S OldroydCanadaXuxue Feng UNQUALIFIED
Smith Q GarufiGermanyAsiya Javayant UNQUALIFIED
Juan Q SlusarskiUnited KingdomElwin Sharvill NEW
Darci A FlosiRussiaAmy Elsner UNQUALIFIED
Stacey O ChuiIndiaIoni Bowcher RENEWAL
Jefferson D WieserArgentinaBernardo Dominic 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>