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
Deepesh Q NickaSpainStephen Shaw QUALIFIED
Emily E FollerItalyBernardo Dominic PROPOSAL
Maria L RimJapanIoni Bowcher RENEWAL
Nicolas J RulapaughJapanXuxue Feng PROPOSAL
Julie G BologniaGermanyStephen Shaw UNQUALIFIED
Arvin J MacleadArgentinaAsiya Javayant NEGOTIATION
Cody B RulapaughAustraliaAnna Fali QUALIFIED
Francesco W GillianIndiaElwin Sharvill PROPOSAL
Jefferson B KolmetzBrazilOnyama Limba NEW
Chavez S ButtSpainIoni Bowcher NEW
Leon M PaprockiArgentinaElwin Sharvill RENEWAL
Francesco X SaylorsRussiaStephen Shaw UNQUALIFIED
Salvatore A WaycottIndiaBernardo Dominic QUALIFIED
Maria K RoysterBrazilAmy Elsner QUALIFIED
Stacey W DilliardRussiaAmy Elsner RENEWAL
Cody X DoeSpainStephen Shaw NEW
Aditya R PoquetteFranceOnyama Limba RENEWAL
Francesco A FlosiSpainElwin Sharvill QUALIFIED
Clifford E TollnerGermanyBernardo Dominic RENEWAL
Misaki T AlbaresBrazilIoni Bowcher RENEWAL
Adams C WhobreySpainAsiya Javayant NEGOTIATION
Julie A WhobreyJapanElwin Sharvill PROPOSAL
Jeanfrancois R VocelkaSpainXuxue Feng RENEWAL
Claire U IturbideFranceBernardo Dominic QUALIFIED
Arvin T StockhamAustraliaStephen Shaw NEW
Deepesh N ChuiBrazilElwin Sharvill NEW
Smith R RoysterRussiaElwin Sharvill NEGOTIATION
Julie J IturbideJapanBernardo Dominic QUALIFIED
Juan F RutaUnited KingdomAsiya Javayant QUALIFIED
Faith E RutaGermanyAsiya Javayant QUALIFIED
Isabel S PerinIndiaAsiya Javayant UNQUALIFIED
Sinclair X TollnerAustraliaBernardo Dominic PROPOSAL
Costa E PoquetteAustraliaAsiya Javayant UNQUALIFIED
Alejandro D MaletFranceAsiya Javayant NEW
Leon N VocelkaIndiaIoni Bowcher UNQUALIFIED
Mayumi F KolmetzGermanyAsiya Javayant NEGOTIATION
Leja B BriddickFranceBernardo Dominic QUALIFIED
Stacey K RutaCanadaElwin Sharvill RENEWAL
Francesco L FollerItalyXuxue Feng NEGOTIATION
Tony I BriddickBrazilStephen Shaw RENEWAL
Maria O StockhamJapanIoni Bowcher RENEWAL
Morrow M PaprockiItalyAmy Elsner NEW
Octavia T AmigonFranceElwin Sharvill NEW
Sinclair M RoysterBrazilOnyama Limba RENEWAL
Julie N KolmetzSpainIvan Magalhaes RENEWAL
Smith V KuskoUnited KingdomBernardo Dominic QUALIFIED
Claire I StockhamGermanyBernardo Dominic UNQUALIFIED
Leja N SergiJapanStephen Shaw NEW
Wickens N KuskoUnited KingdomIvan Magalhaes QUALIFIED
Cody Y RutaItalyAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair A AlbaresItalyXuxue Feng NEW
Maisha Z KuskoIndiaOnyama Limba PROPOSAL
Ivar B OstroskyArgentinaIoni Bowcher NEW
Deepesh U NestleRussiaXuxue Feng RENEWAL
Silvio J MarrierFranceAsiya Javayant RENEWAL
Johnson M InouyeUnited KingdomAmy Elsner RENEWAL
Stacey R GlickSpainStephen Shaw NEGOTIATION
Sinclair I OldroydGermanyElwin Sharvill UNQUALIFIED
Nicolas L BologniaArgentinaOnyama Limba NEGOTIATION
Leja E StensethArgentinaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna U CaudyRussia2024-04-07Rousseaux, Michael Esq QUALIFIED48Bernardo Dominic
1001Salvatore P GarufiRussia2024-04-20Dorl, James J Esq PROPOSAL27Amy Elsner
1002Isabel P ShinkoIndia2024-04-21Truhlar And Truhlar Attys PROPOSAL4Ivan Magalhaes
1003Claire A CaudyGermany2024-04-06Feltz Printing Service PROPOSAL49Ivan Magalhaes
1004Mujtaba S SergiBrazil2024-04-07Chanay, Jeffrey A Esq NEW85Asiya Javayant
1005Stacey Z IturbideRussia2024-04-10Chapman, Ross E Esq NEGOTIATION93Ioni Bowcher
1006David W TollnerIndia2024-04-22Buckley Miller Wright RENEWAL15Stephen Shaw
1007Juan S DoeRussia2024-04-22Truhlar And Truhlar Attys NEW17Elwin Sharvill
1008Wickens U GillianIndia2024-04-22Chanay, Jeffrey A Esq PROPOSAL70Ivan Magalhaes
1009Munro T VocelkaFrance2024-04-26King, Christopher A Esq NEGOTIATION80Asiya Javayant
1010Juan L BowleyArgentina2024-04-25Feltz Printing Service QUALIFIED91Onyama Limba
1011Aruna E SchemmerSpain2024-04-10Buckley Miller Wright QUALIFIED44Amy Elsner
1012Clifford T NickaIndia2024-04-23Truhlar And Truhlar Attys NEGOTIATION48Ioni Bowcher
1013Wickens Z StensethUnited Kingdom2024-04-02Printing Dimensions QUALIFIED14Onyama Limba
1014Morrow C RimRussia2024-04-28Chemel, James L Cpa RENEWAL30Ivan Magalhaes
1015Kadeem F RimRussia2024-04-26Chapman, Ross E Esq NEW6Elwin Sharvill
1016Sinclair B CaldareraBrazil2024-04-09Chemel, James L Cpa NEGOTIATION4Bernardo Dominic
1017Leon H GauchoRussia2024-04-18Rousseaux, Michael Esq PROPOSAL90Ioni Bowcher
1018Aditya C FerenczJapan2024-04-01Feltz Printing Service UNQUALIFIED96Stephen Shaw
1019Jefferson V KolmetzFrance2024-04-29King, Christopher A Esq RENEWAL63Xuxue Feng
1020Silvio O PerinRussia2024-04-10Buckley Miller Wright PROPOSAL66Stephen Shaw
1021Costa K BowleyJapan2024-04-11Morlong Associates UNQUALIFIED37Elwin Sharvill
1022Wickens K TollnerIndia2024-04-12Morlong Associates NEGOTIATION11Bernardo Dominic
1023Greenwood C InouyeAustralia2024-04-28King, Christopher A Esq PROPOSAL70Asiya Javayant
1024Alejandro I FlosiArgentina2024-04-01Dorl, James J Esq QUALIFIED29Bernardo Dominic
1025Faith H SchemmerSpain2024-04-16Morlong Associates QUALIFIED65Ioni Bowcher
1026Isabel X FlosiIndia2024-04-29King, Christopher A Esq PROPOSAL36Bernardo Dominic
1027Jeanfrancois A SlusarskiBrazil2024-04-24Chemel, James L Cpa UNQUALIFIED76Ivan Magalhaes
1028Adams Z AmigonArgentina2024-04-11Chemel, James L Cpa UNQUALIFIED78Asiya Javayant
1029Adams M IturbideArgentina2024-04-01Feltz Printing Service NEW54Amy Elsner
1030Mujtaba E AlbaresIndia2024-04-11Chemel, James L Cpa RENEWAL81Anna Fali
1031Francesco J IturbideFrance2024-04-14Rousseaux, Michael Esq UNQUALIFIED47Xuxue Feng
1032Darci O VocelkaRussia2024-04-29Feiner Bros RENEWAL93Amy Elsner
1033Arvin P CaudyUnited Kingdom2024-04-09Truhlar And Truhlar Attys RENEWAL47Anna Fali
1034Costa Q MaletGermany2024-04-06Rousseaux, Michael Esq NEW86Ivan Magalhaes
1035David X BowleyFrance2024-04-30Chapman, Ross E Esq QUALIFIED35Elwin Sharvill
1036Mayumi A BriddickBrazil2024-04-14King, Christopher A Esq NEW84Stephen Shaw
1037Greenwood R TollnerRussia2024-04-13Feltz Printing Service NEGOTIATION41Asiya Javayant
1038Mayumi S DoeJapan2024-04-07Chapman, Ross E Esq QUALIFIED72Anna Fali
1039Johnson E VenereIndia2024-04-05Chemel, James L Cpa RENEWAL96Asiya Javayant
1040Maria F KolmetzFrance2024-04-08Feltz Printing Service PROPOSAL42Xuxue Feng
1041Morrow R IturbideArgentina2024-04-22Buckley Miller Wright NEW4Amy Elsner
1042Morrow U DarakjySpain2024-04-03Commercial Press NEW97Ivan Magalhaes
1043Julie E StockhamAustralia2024-04-10Chemel, James L Cpa PROPOSAL38Ioni Bowcher
1044Alejandro W ButtAustralia2024-04-30Chemel, James L Cpa NEW77Onyama Limba
1045Salvatore A GarufiRussia2024-04-06Rousseaux, Michael Esq RENEWAL27Stephen Shaw
1046Aika Q FigeroaArgentina2024-04-27Dorl, James J Esq PROPOSAL11Stephen Shaw
1047Smith G OldroydUnited Kingdom2024-04-22Benton, John B Jr QUALIFIED58Anna Fali
1048James F KolmetzSpain2024-04-27Rousseaux, Michael Esq NEW30Anna Fali
1049Faith M CaudyItaly2024-04-01Dorl, James J Esq RENEWAL14Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ivar E CaudyItalyOnyama Limba QUALIFIED
Jefferson M IturbideArgentinaXuxue Feng QUALIFIED
Leon R NickaUnited KingdomElwin Sharvill PROPOSAL
Sinclair N SaylorsSpainIoni Bowcher PROPOSAL
Adams X IturbideRussiaAnna Fali PROPOSAL
Antonio H BologniaAustraliaAsiya Javayant NEGOTIATION
Isabel C WaycottSpainElwin Sharvill NEGOTIATION
Leja S RimSpainAnna Fali QUALIFIED
Clifford U OldroydJapanBernardo Dominic QUALIFIED
Chavez M AlbaresCanadaOnyama Limba UNQUALIFIED
Claire O WieserFranceAsiya Javayant UNQUALIFIED
Tony P TollnerGermanyOnyama Limba NEGOTIATION
Tony Z GlickFranceBernardo Dominic NEW
Arvin R StockhamGermanyOnyama Limba RENEWAL
Izzy R BowleyArgentinaAsiya Javayant NEW
Mayumi K GarufiAustraliaAmy Elsner PROPOSAL
Francesco E KuskoGermanyStephen Shaw PROPOSAL
Claire D ChuiIndiaElwin Sharvill RENEWAL
Maisha L BriddickCanadaStephen Shaw NEW
Ricardo P FerenczIndiaXuxue Feng UNQUALIFIED
Aika L BowleyFranceBernardo Dominic NEW
Nicolas P BologniaIndiaXuxue Feng NEW
Jefferson S DilliardBrazilAnna Fali RENEWAL
Octavia G AlbaresItalyStephen Shaw RENEWAL
Munro L RoysterSpainXuxue Feng QUALIFIED
Mujtaba O TollnerItalyBernardo Dominic NEW
Rodrigues K StockhamBrazilIvan Magalhaes NEW
Johnson Y RoysterItalyIoni Bowcher QUALIFIED
Jefferson Y GauchoIndiaBernardo Dominic UNQUALIFIED
Kaitlin N CaldareraIndiaBernardo Dominic PROPOSAL
Ashley J SchemmerSpainOnyama Limba QUALIFIED
Claire V MaletBrazilAnna Fali UNQUALIFIED
Antonio R AmigonCanadaElwin Sharvill QUALIFIED
Deepesh U ShinkoIndiaAsiya Javayant PROPOSAL
Greenwood V GillianAustraliaAsiya Javayant UNQUALIFIED
Jones D GarufiGermanyElwin Sharvill UNQUALIFIED
Julie R FigeroaRussiaIvan Magalhaes PROPOSAL
Ivar T PoquetteBrazilStephen Shaw QUALIFIED
Jennifer D GauchoFranceIoni Bowcher RENEWAL
Chavez E NestleGermanyAnna Fali RENEWAL
Chavez K FlosiUnited KingdomAmy Elsner QUALIFIED
Misaki D OstroskyItalyStephen Shaw RENEWAL
Faith R AlbaresJapanBernardo Dominic NEGOTIATION
Isabel W ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Emily M FollerUnited KingdomIvan Magalhaes RENEWAL
Darci O PerinIndiaAmy Elsner RENEWAL
Mayumi U FerenczItalyStephen Shaw QUALIFIED
Johnson R PerinIndiaXuxue Feng UNQUALIFIED
Morrow J RulapaughGermanyStephen Shaw RENEWAL
Emily A InouyeItalyStephen Shaw QUALIFIED
Frozen Columns
Name
Misaki F Schemmer
Francesco H Sergi
Isabel E Slusarski
Tony C Malet
Mujtaba Z Wieser
Leon L Gaucho
Emily D Kusko
Sinclair M Rim
Kaitlin U Garufi
Stacey N Darakjy
Salvatore R Wieser
Sinclair B Royster
Cody X Malet
Kadeem B Caudy
Cody A Amigon
Sinclair H Nicka
Aika B Paprocki
Jefferson S Kusko
Maisha N Marrier
David V Caudy
Sinclair F Whobrey
Murillo B Morasca
Alejandro J Ferencz
Salvatore A Sergi
Darci V Sergi
Tony Q Marrier
Johnson U Inouye
Kadeem A Venere
Johnson I Schemmer
Chavez F Flosi
Francesco N Royster
Jones P Venere
Maria N Maclead
Chavez V Stenseth
Rodrigues D Flosi
James G Bolognia
Aruna T Ostrosky
Ricardo N Doe
Mayumi I Chui
Isabel P Dilliard
Maisha X Tollner
Deepesh U Malet
Izzy X Sergi
Chavez L Gaucho
Stacey M Maclead
Isabel W Dilliard
Ashley R Maclead
Julie B Oldroyd
Julie L Chui
Costa W Ostrosky
IdCountryDate
1000United Kingdom2024-04-11
1001Spain2024-04-19
1002Germany2024-04-10
1003Brazil2024-04-30
1004Spain2024-04-08
1005Russia2024-04-10
1006Spain2024-04-07
1007India2024-04-29
1008Japan2024-04-21
1009Spain2024-04-09
1010Brazil2024-04-24
1011Canada2024-04-28
1012Japan2024-04-10
1013Canada2024-04-29
1014Brazil2024-04-26
1015France2024-04-28
1016Argentina2024-04-26
1017Japan2024-04-25
1018United Kingdom2024-04-04
1019Japan2024-04-14
1020France2024-04-18
1021Australia2024-04-30
1022Russia2024-04-05
1023Japan2024-04-02
1024France2024-04-18
1025Russia2024-04-06
1026United Kingdom2024-04-17
1027Germany2024-04-02
1028France2024-04-01
1029United Kingdom2024-04-28
1030Canada2024-04-11
1031Brazil2024-04-06
1032Russia2024-04-29
1033Japan2024-04-28
1034India2024-04-09
1035India2024-04-18
1036France2024-04-11
1037France2024-04-18
1038Japan2024-04-23
1039United Kingdom2024-04-23
1040Germany2024-04-19
1041United Kingdom2024-04-06
1042France2024-04-02
1043Japan2024-04-08
1044France2024-04-21
1045France2024-04-10
1046Australia2024-04-11
1047Germany2024-04-28
1048United Kingdom2024-04-24
1049Argentina2024-04-05

On-Demand Data

NameIdCountryDate
Costa W Darakjy1000India2024-04-02
Jennifer I Paprocki1001France2024-04-04
Silvio G Kolmetz1002Argentina2024-04-05
Emily T Ostrosky1003Spain2024-04-09
Ricardo F Malet1004Canada2024-04-09
Leon A Bolognia1005Australia2024-04-10
Munro Q Chui1006Brazil2024-04-05
Wickens T Nicka1007France2024-04-17
Ricardo V Tollner1008Brazil2024-04-15
Octavia I Tollner1009Argentina2024-04-09
Wickens W Bowley1010Russia2024-04-12
Maisha Y Maclead1011France2024-04-16
Chavez T Garufi1012Spain2024-04-03
Deepesh N Ostrosky1013Russia2024-04-22
Greenwood A Ferencz1014Brazil2024-04-03
Adams Z Waycott1015Japan2024-04-09
Adams X Flosi1016Italy2024-04-14
Faith C Royster1017Argentina2024-04-02
Sinclair X Iturbide1018Argentina2024-04-04
Leja R Kusko1019Argentina2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco L ButtUnited KingdomOnyama Limba NEGOTIATION
Rodrigues M GauchoSpainElwin Sharvill QUALIFIED
Stacey T RulapaughItalyAsiya Javayant PROPOSAL
Johnson L PaprockiArgentinaOnyama Limba UNQUALIFIED
Leon X DarakjyAustraliaOnyama Limba NEW
Adams J WhobreyBrazilAsiya Javayant NEW
Isabel R RutaCanadaAmy Elsner NEW
Salvatore Y DoeJapanIoni Bowcher NEGOTIATION
Stacey L VocelkaBrazilStephen Shaw UNQUALIFIED
Izzy E GarufiUnited KingdomIvan Magalhaes NEGOTIATION
Adams K KuskoUnited KingdomXuxue Feng NEW
Ricardo Z SchemmerFranceIvan Magalhaes NEGOTIATION
Jefferson E GlickRussiaStephen Shaw QUALIFIED
Jones Q NestleBrazilStephen Shaw NEGOTIATION
Clifford U DoeCanadaIvan Magalhaes RENEWAL
Chavez L CampainJapanStephen Shaw QUALIFIED
Tony O InouyeJapanBernardo Dominic RENEWAL
David T WaycottAustraliaXuxue Feng NEGOTIATION
Jeanfrancois T VenereIndiaElwin Sharvill RENEWAL
Nicolas F WaycottArgentinaStephen Shaw RENEWAL
Clifford X GillianFranceAmy Elsner PROPOSAL
Greenwood Y RulapaughAustraliaOnyama Limba NEW
Darci E MaletBrazilIoni Bowcher NEGOTIATION
Leon S BologniaSpainOnyama Limba NEGOTIATION
Munro L SergiItalyBernardo Dominic RENEWAL
Maria C CaudySpainStephen Shaw NEGOTIATION
Silvio P CampainUnited KingdomXuxue Feng QUALIFIED
Mujtaba D GillianUnited KingdomElwin Sharvill UNQUALIFIED
Misaki Q AmigonSpainAmy Elsner RENEWAL
Isabel M TollnerBrazilAsiya Javayant PROPOSAL
Wickens O MarrierUnited KingdomIvan Magalhaes QUALIFIED
Maisha V MaletUnited KingdomBernardo Dominic PROPOSAL
Murillo T NickaGermanyXuxue Feng UNQUALIFIED
Aditya Z RimItalyOnyama Limba NEGOTIATION
Chavez T BriddickAustraliaAnna Fali NEW
Izzy E MorascaUnited KingdomIoni Bowcher RENEWAL
Ashley P WieserArgentinaAmy Elsner NEW
Rodrigues X FlosiIndiaIoni Bowcher NEW
Salvatore R IturbideItalyIvan Magalhaes RENEWAL
Silvio L FerenczSpainStephen Shaw 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>