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
Octavia F NickaAustraliaBernardo Dominic QUALIFIED
Munro R RoysterGermanyAsiya Javayant NEW
Aditya N NickaAustraliaBernardo Dominic RENEWAL
Aditya R RoysterCanadaIoni Bowcher RENEWAL
Julie P MarrierGermanyAsiya Javayant PROPOSAL
Alejandro G SlusarskiIndiaStephen Shaw NEW
Leja U CaudyArgentinaStephen Shaw RENEWAL
Maisha Q RoysterAustraliaAmy Elsner RENEWAL
Nicolas I MorascaIndiaXuxue Feng NEGOTIATION
Leon O IturbideSpainAsiya Javayant PROPOSAL
Deepesh M KolmetzGermanyAsiya Javayant PROPOSAL
Chavez H InouyeIndiaBernardo Dominic QUALIFIED
Octavia T BriddickBrazilIoni Bowcher RENEWAL
Emily N AmigonIndiaBernardo Dominic QUALIFIED
Wickens O IturbideBrazilAsiya Javayant PROPOSAL
Jones K NickaIndiaIoni Bowcher QUALIFIED
Jones U IturbideUnited KingdomIoni Bowcher PROPOSAL
Mayumi E MaletJapanAsiya Javayant NEW
Jeanfrancois J SchemmerJapanOnyama Limba RENEWAL
Kaitlin O WieserAustraliaIvan Magalhaes PROPOSAL
Octavia M ButtJapanOnyama Limba RENEWAL
Chavez D KolmetzFranceXuxue Feng RENEWAL
Murillo S AmigonJapanStephen Shaw PROPOSAL
Greenwood A MorascaItalyBernardo Dominic NEGOTIATION
Stacey G BowleyBrazilAnna Fali NEW
Antonio G KuskoJapanOnyama Limba QUALIFIED
Nicolas J AlbaresIndiaAmy Elsner NEGOTIATION
Murillo E FlosiJapanIoni Bowcher QUALIFIED
Leja G CaudyJapanXuxue Feng NEGOTIATION
Leja Z IturbideJapanOnyama Limba PROPOSAL
Antonio F SaylorsRussiaAmy Elsner RENEWAL
James V MaletItalyOnyama Limba PROPOSAL
Maisha Q SchemmerFranceIvan Magalhaes NEW
Maria V SaylorsJapanStephen Shaw RENEWAL
Wickens M CampainFranceAsiya Javayant NEW
Munro D KuskoGermanyStephen Shaw NEW
Aditya E OldroydArgentinaAnna Fali RENEWAL
Munro F CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Leja P MarrierUnited KingdomIvan Magalhaes RENEWAL
Kadeem G ButtGermanyAsiya Javayant UNQUALIFIED
Julie D KuskoAustraliaXuxue Feng PROPOSAL
Francesco W NickaBrazilIvan Magalhaes UNQUALIFIED
Arvin E GillianAustraliaElwin Sharvill RENEWAL
Jefferson Z DilliardFranceAnna Fali NEW
Sinclair N MorascaGermanyOnyama Limba RENEWAL
Alejandro G RimUnited KingdomOnyama Limba NEW
Kadeem M KolmetzBrazilIvan Magalhaes NEGOTIATION
Jones Z DilliardItalyIvan Magalhaes NEGOTIATION
Leon R DilliardBrazilAnna Fali NEGOTIATION
Aruna T MaletItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro U PoquetteJapanElwin Sharvill UNQUALIFIED
Alejandro K MaletUnited KingdomBernardo Dominic QUALIFIED
Jennifer B OldroydBrazilStephen Shaw PROPOSAL
Wickens X PaprockiSpainAmy Elsner RENEWAL
Adams C DilliardJapanAnna Fali NEW
Leon B AmigonRussiaAnna Fali NEW
Misaki X MarrierAustraliaOnyama Limba NEW
Maisha Z StensethAustraliaBernardo Dominic QUALIFIED
Jennifer F SaylorsAustraliaAmy Elsner QUALIFIED
Jeanfrancois F CaudyBrazilElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood W ShinkoGermany2024-04-26Buckley Miller Wright NEW39Amy Elsner
1001James V VenereBrazil2024-04-02Chapman, Ross E Esq PROPOSAL92Asiya Javayant
1002Jeanfrancois G AlbaresFrance2024-04-14Buckley Miller Wright RENEWAL90Xuxue Feng
1003Costa W CampainJapan2024-04-07Commercial Press RENEWAL68Ioni Bowcher
1004Mayumi X InouyeIndia2024-04-26Morlong Associates NEGOTIATION7Onyama Limba
1005Emily U GauchoIndia2024-04-04Chanay, Jeffrey A Esq QUALIFIED70Ivan Magalhaes
1006Adams K VenereFrance2024-04-12Truhlar And Truhlar Attys RENEWAL7Asiya Javayant
1007Juan B NickaSpain2024-04-16Chanay, Jeffrey A Esq RENEWAL37Stephen Shaw
1008Chavez R KolmetzFrance2024-03-29Chapman, Ross E Esq PROPOSAL34Ioni Bowcher
1009Salvatore F BowleyUnited Kingdom2024-04-22Chanay, Jeffrey A Esq RENEWAL4Ioni Bowcher
1010Sinclair C WaycottIndia2024-04-25Rangoni Of Florence RENEWAL25Anna Fali
1011Clifford W SaylorsBrazil2024-04-12Rousseaux, Michael Esq NEGOTIATION68Ioni Bowcher
1012James C RutaIndia2024-03-30Feiner Bros RENEWAL73Ivan Magalhaes
1013Aika C StensethGermany2024-04-11Commercial Press NEGOTIATION61Ivan Magalhaes
1014Maria Y FollerIndia2024-04-16Printing Dimensions NEGOTIATION67Amy Elsner
1015Wickens K RimFrance2024-04-16Rangoni Of Florence NEGOTIATION75Elwin Sharvill
1016Jennifer H RoysterAustralia2024-04-01Commercial Press RENEWAL11Ivan Magalhaes
1017Adams Q MacleadGermany2024-04-22Feltz Printing Service NEGOTIATION24Asiya Javayant
1018Arvin Q CaldareraRussia2024-04-10Rangoni Of Florence RENEWAL7Elwin Sharvill
1019Kadeem T PerinAustralia2024-04-20Truhlar And Truhlar Attys QUALIFIED81Ioni Bowcher
1020Greenwood Z AmigonFrance2024-04-25Truhlar And Truhlar Attys QUALIFIED87Ioni Bowcher
1021Darci U SergiItaly2024-03-28Benton, John B Jr UNQUALIFIED94Asiya Javayant
1022Kaitlin P RimUnited Kingdom2024-04-02Chemel, James L Cpa NEGOTIATION65Onyama Limba
1023Maisha P MacleadGermany2024-04-14Rangoni Of Florence NEGOTIATION30Xuxue Feng
1024James M VocelkaUnited Kingdom2024-04-09Feiner Bros NEGOTIATION86Elwin Sharvill
1025Smith X MorascaFrance2024-04-09Commercial Press PROPOSAL69Xuxue Feng
1026Julie B AlbaresFrance2024-04-14Rangoni Of Florence UNQUALIFIED58Elwin Sharvill
1027Rodrigues D PerinCanada2024-04-05Rousseaux, Michael Esq NEW76Elwin Sharvill
1028Greenwood M RimIndia2024-03-28Rangoni Of Florence PROPOSAL45Stephen Shaw
1029Sinclair X VenereCanada2024-04-04Dorl, James J Esq NEGOTIATION63Ivan Magalhaes
1030Munro K SchemmerSpain2024-04-07Dorl, James J Esq PROPOSAL37Onyama Limba
1031Murillo R RulapaughArgentina2024-04-01King, Christopher A Esq QUALIFIED65Elwin Sharvill
1032Ricardo Z BologniaArgentina2024-03-28Feltz Printing Service RENEWAL85Asiya Javayant
1033Izzy B GillianGermany2024-04-05Morlong Associates NEW76Onyama Limba
1034Jefferson E PaprockiJapan2024-04-05Morlong Associates UNQUALIFIED49Onyama Limba
1035Silvio W GillianAustralia2024-04-03Feiner Bros NEGOTIATION21Asiya Javayant
1036Mujtaba A IturbideUnited Kingdom2024-04-23Rousseaux, Michael Esq PROPOSAL70Amy Elsner
1037Jefferson X FlosiJapan2024-04-23Commercial Press RENEWAL78Anna Fali
1038Kadeem J GauchoFrance2024-03-31Dorl, James J Esq NEW38Asiya Javayant
1039Aika B SchemmerGermany2024-04-06King, Christopher A Esq NEGOTIATION26Ivan Magalhaes
1040Faith L KolmetzBrazil2024-03-31Morlong Associates RENEWAL20Elwin Sharvill
1041Misaki J FlosiGermany2024-04-25Truhlar And Truhlar Attys NEGOTIATION92Amy Elsner
1042Francesco J GarufiJapan2024-04-22Feiner Bros PROPOSAL30Asiya Javayant
1043Aruna W MaletArgentina2024-04-17Morlong Associates PROPOSAL21Anna Fali
1044Juan V MorascaItaly2024-04-11Morlong Associates NEGOTIATION88Ioni Bowcher
1045David N FollerGermany2024-04-03Truhlar And Truhlar Attys NEGOTIATION74Xuxue Feng
1046Ivar P StensethBrazil2024-04-11Chapman, Ross E Esq NEGOTIATION67Elwin Sharvill
1047Silvio A PaprockiFrance2024-03-30Rangoni Of Florence NEW76Xuxue Feng
1048Julie Q KuskoIndia2024-04-05Chemel, James L Cpa RENEWAL90Ivan Magalhaes
1049Claire S MacleadArgentina2024-04-07Buckley Miller Wright NEGOTIATION70Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maisha F VocelkaIndiaXuxue Feng NEGOTIATION
Arvin X PerinAustraliaIoni Bowcher QUALIFIED
Munro Y ChuiGermanyAsiya Javayant NEGOTIATION
Faith V SergiFranceAnna Fali UNQUALIFIED
Izzy Q BologniaIndiaIoni Bowcher NEW
Claire M ChuiItalyAmy Elsner NEW
Julie L GauchoRussiaIvan Magalhaes UNQUALIFIED
Mayumi A RoysterArgentinaBernardo Dominic RENEWAL
Jefferson I GauchoBrazilIoni Bowcher PROPOSAL
Johnson L KuskoSpainBernardo Dominic UNQUALIFIED
Antonio S OstroskyJapanAmy Elsner PROPOSAL
Clifford J MaletFranceElwin Sharvill RENEWAL
Izzy O GillianUnited KingdomAnna Fali NEGOTIATION
Greenwood G ShinkoRussiaAsiya Javayant RENEWAL
Arvin O IturbideAustraliaOnyama Limba UNQUALIFIED
Mujtaba P GarufiSpainStephen Shaw RENEWAL
Jennifer X WaycottAustraliaIvan Magalhaes UNQUALIFIED
Maisha P ShinkoIndiaAmy Elsner UNQUALIFIED
Antonio S SlusarskiJapanOnyama Limba NEGOTIATION
Adams F PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Misaki D MacleadSpainIoni Bowcher UNQUALIFIED
Stacey D GauchoBrazilOnyama Limba NEGOTIATION
Mujtaba G SchemmerCanadaIoni Bowcher PROPOSAL
Ashley O MorascaIndiaOnyama Limba RENEWAL
Sinclair J OldroydRussiaAsiya Javayant UNQUALIFIED
Tony G NickaGermanyElwin Sharvill UNQUALIFIED
Tony N BriddickAustraliaAsiya Javayant RENEWAL
Arvin O PerinFranceStephen Shaw NEW
Isabel V FlosiGermanyBernardo Dominic NEGOTIATION
Kaitlin H SaylorsAustraliaAsiya Javayant NEW
Tony S BologniaSpainElwin Sharvill RENEWAL
Deepesh K GauchoFranceAmy Elsner QUALIFIED
Jones E RutaRussiaXuxue Feng UNQUALIFIED
Adams Z GillianGermanyAmy Elsner QUALIFIED
Mayumi E NestleArgentinaStephen Shaw UNQUALIFIED
Francesco D KolmetzRussiaBernardo Dominic RENEWAL
Maisha Z DarakjyCanadaXuxue Feng QUALIFIED
Rodrigues Y GillianIndiaOnyama Limba NEGOTIATION
Costa T KolmetzAustraliaXuxue Feng NEGOTIATION
Tony Q WieserBrazilIvan Magalhaes QUALIFIED
David N FigeroaArgentinaXuxue Feng UNQUALIFIED
Deepesh S OldroydGermanyBernardo Dominic UNQUALIFIED
Emily B CampainCanadaBernardo Dominic QUALIFIED
Darci L FigeroaBrazilXuxue Feng RENEWAL
Munro T BologniaCanadaIvan Magalhaes UNQUALIFIED
Clifford H TollnerUnited KingdomBernardo Dominic NEW
Ricardo T SlusarskiFranceXuxue Feng UNQUALIFIED
Darci F FollerIndiaOnyama Limba RENEWAL
Murillo U WaycottJapanBernardo Dominic NEGOTIATION
Mujtaba I CampainBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Rodrigues L Rim
Aditya T Ferencz
Maria A Nestle
Salvatore D Ruta
Kadeem N Darakjy
Clifford D Royster
Darci R Shinko
Francesco W Slusarski
Claire L Chui
Johnson C Figeroa
Stacey Z Paprocki
Smith M Tollner
Aika D Iturbide
Salvatore P Flosi
Ashley Q Vocelka
Jones K Campain
Rodrigues A Kusko
Jones Y Poquette
Salvatore P Figeroa
Mayumi S Saylors
Morrow Z Chui
Ricardo Y Ferencz
Clifford O Nicka
Aditya N Kusko
Ricardo V Marrier
Jeanfrancois D Venere
Aruna K Chui
Francesco M Inouye
Juan D Shinko
Ivar A Oldroyd
Rodrigues A Caldarera
Deepesh P Venere
Emily H Ruta
Morrow H Ruta
Maisha X Schemmer
Claire Y Nestle
Ivar O Campain
Maisha S Malet
Leja W Kolmetz
Sinclair A Stenseth
David U Malet
Wickens V Wieser
Maria E Slusarski
Johnson D Malet
Juan E Schemmer
Johnson O Bowley
Leon K Campain
Arvin R Iturbide
Murillo V Paprocki
Aika R Amigon
IdCountryDate
1000Australia2024-03-30
1001Italy2024-04-18
1002Russia2024-04-09
1003Japan2024-04-20
1004Australia2024-04-24
1005Russia2024-04-14
1006Spain2024-04-20
1007Spain2024-04-05
1008Argentina2024-04-20
1009Germany2024-03-31
1010Spain2024-04-24
1011United Kingdom2024-04-24
1012Brazil2024-04-23
1013Germany2024-03-30
1014United Kingdom2024-04-24
1015Brazil2024-04-20
1016Russia2024-04-10
1017India2024-03-31
1018Russia2024-04-06
1019Canada2024-04-07
1020France2024-04-26
1021Italy2024-04-20
1022India2024-03-29
1023Japan2024-04-13
1024France2024-04-21
1025United Kingdom2024-03-28
1026Italy2024-04-02
1027France2024-04-26
1028Russia2024-04-06
1029Russia2024-04-26
1030France2024-04-22
1031Australia2024-04-15
1032Brazil2024-03-29
1033Australia2024-04-02
1034Russia2024-04-01
1035France2024-04-04
1036Russia2024-04-18
1037Spain2024-04-19
1038Germany2024-04-03
1039Canada2024-04-02
1040France2024-04-10
1041India2024-04-10
1042Canada2024-03-29
1043Australia2024-04-25
1044Canada2024-04-23
1045Australia2024-04-09
1046Germany2024-04-13
1047Italy2024-04-01
1048Japan2024-04-21
1049Argentina2024-04-25

On-Demand Data

NameIdCountryDate
David H Shinko1000India2024-03-30
Aditya W Rulapaugh1001Brazil2024-04-05
Aditya N Chui1002Australia2024-04-02
Morrow A Poquette1003Argentina2024-04-09
Francesco D Malet1004France2024-04-12
Smith O Kusko1005Canada2024-04-15
Mayumi T Morasca1006Australia2024-04-08
Costa U Ferencz1007Canada2024-04-26
Maria Y Oldroyd1008Brazil2024-04-09
James I Chui1009Germany2024-04-15
Isabel K Figeroa1010Spain2024-03-30
Deepesh L Gaucho1011France2024-04-01
Aditya O Amigon1012United Kingdom2024-04-10
Wickens F Kolmetz1013Germany2024-04-09
Faith A Bolognia1014Spain2024-04-04
David C Saylors1015Italy2024-04-04
Nicolas G Shinko1016France2024-04-08
Leja Q Nestle1017Japan2024-03-31
Kadeem S Stenseth1018Spain2024-04-11
Tony W Royster1019France2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley U PaprockiIndiaStephen Shaw RENEWAL
James D FerenczSpainIoni Bowcher QUALIFIED
Izzy G WieserCanadaXuxue Feng QUALIFIED
Jeanfrancois N KuskoIndiaAmy Elsner RENEWAL
Mayumi B AmigonJapanStephen Shaw RENEWAL
Jones S VocelkaSpainStephen Shaw PROPOSAL
Arvin L GauchoIndiaAsiya Javayant QUALIFIED
Tony O InouyeGermanyBernardo Dominic QUALIFIED
Emily H CampainUnited KingdomAnna Fali PROPOSAL
Aditya Z GillianUnited KingdomStephen Shaw RENEWAL
Deepesh C StensethAustraliaBernardo Dominic PROPOSAL
Nicolas J DoeGermanyAsiya Javayant UNQUALIFIED
Maisha M IturbideIndiaIvan Magalhaes QUALIFIED
Emily V ButtCanadaStephen Shaw UNQUALIFIED
Smith R KolmetzRussiaStephen Shaw NEW
Jeanfrancois L WaycottFranceAsiya Javayant PROPOSAL
Emily U StockhamJapanAsiya Javayant NEW
Stacey F ShinkoIndiaAsiya Javayant NEW
Cody D RulapaughSpainIvan Magalhaes QUALIFIED
Maisha O VocelkaUnited KingdomIvan Magalhaes NEW
Greenwood I InouyeIndiaIoni Bowcher QUALIFIED
Faith O RulapaughCanadaStephen Shaw UNQUALIFIED
Izzy E RimSpainIvan Magalhaes UNQUALIFIED
Faith B MaletBrazilIvan Magalhaes RENEWAL
Smith H FerenczJapanOnyama Limba NEGOTIATION
Maisha Q ButtJapanIoni Bowcher PROPOSAL
Claire B NestleAustraliaIvan Magalhaes RENEWAL
Greenwood I MaletSpainAmy Elsner NEW
Johnson F RulapaughIndiaIvan Magalhaes NEGOTIATION
Faith K IturbideIndiaIoni Bowcher UNQUALIFIED
Jennifer I MorascaFranceAmy Elsner UNQUALIFIED
Francesco V RoysterGermanyXuxue Feng PROPOSAL
David K AlbaresFranceElwin Sharvill NEW
Wickens L RulapaughCanadaElwin Sharvill RENEWAL
Rodrigues N VenereIndiaStephen Shaw QUALIFIED
Arvin R AlbaresJapanAsiya Javayant NEGOTIATION
Silvio J AmigonRussiaAsiya Javayant PROPOSAL
Salvatore I StockhamRussiaBernardo Dominic UNQUALIFIED
Sinclair Y PaprockiAustraliaBernardo Dominic RENEWAL
Ashley L CampainJapanAnna Fali PROPOSAL

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