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
Francesco R NestleJapanAsiya Javayant NEW
Jeanfrancois W RimArgentinaIoni Bowcher UNQUALIFIED
Deepesh M WieserSpainAnna Fali PROPOSAL
Antonio M SergiArgentinaIoni Bowcher RENEWAL
Francesco T FollerSpainIoni Bowcher PROPOSAL
Tony I SlusarskiIndiaAsiya Javayant PROPOSAL
Kadeem K ButtFranceStephen Shaw RENEWAL
Juan I GillianBrazilStephen Shaw QUALIFIED
Maria M BowleyCanadaAnna Fali RENEWAL
Ashley Y GauchoItalyElwin Sharvill QUALIFIED
Darci U RulapaughIndiaStephen Shaw RENEWAL
Aruna M MorascaIndiaElwin Sharvill QUALIFIED
Silvio A FigeroaIndiaXuxue Feng PROPOSAL
Wickens M MacleadGermanyStephen Shaw NEW
David Z ShinkoCanadaXuxue Feng NEGOTIATION
Izzy C BowleyJapanAmy Elsner UNQUALIFIED
James K IturbideGermanyOnyama Limba NEW
Jeanfrancois Q KolmetzBrazilIvan Magalhaes UNQUALIFIED
James W KolmetzIndiaIoni Bowcher PROPOSAL
Mujtaba N DilliardSpainIvan Magalhaes NEW
Sinclair P PaprockiCanadaAsiya Javayant RENEWAL
Faith K OldroydIndiaStephen Shaw QUALIFIED
Chavez N GarufiFranceElwin Sharvill NEGOTIATION
Ivar Y MaletJapanAnna Fali NEW
Ricardo S KolmetzAustraliaElwin Sharvill PROPOSAL
Jeanfrancois K FollerSpainAnna Fali PROPOSAL
Aruna V SchemmerArgentinaAnna Fali NEGOTIATION
David N MarrierFranceStephen Shaw PROPOSAL
David N ButtArgentinaBernardo Dominic QUALIFIED
David S DarakjyIndiaXuxue Feng RENEWAL
Wickens B MorascaItalyAsiya Javayant NEW
Ashley A RutaGermanyOnyama Limba NEW
Kadeem T RoysterFranceElwin Sharvill UNQUALIFIED
Sinclair G BologniaUnited KingdomAnna Fali PROPOSAL
Claire O GauchoIndiaXuxue Feng PROPOSAL
Deepesh P InouyeBrazilIvan Magalhaes NEGOTIATION
Maisha Q DarakjyRussiaIoni Bowcher RENEWAL
Ashley E StensethBrazilBernardo Dominic UNQUALIFIED
Leja Z TollnerBrazilAmy Elsner RENEWAL
Johnson S FerenczFranceAsiya Javayant NEGOTIATION
Wickens B DilliardBrazilAsiya Javayant NEW
Jeanfrancois M RutaUnited KingdomAsiya Javayant RENEWAL
Kadeem O OldroydIndiaOnyama Limba NEGOTIATION
Arvin P ButtFranceIoni Bowcher RENEWAL
Jennifer P StockhamRussiaIoni Bowcher UNQUALIFIED
Johnson Z IturbideSpainXuxue Feng QUALIFIED
Deepesh F BologniaAustraliaStephen Shaw PROPOSAL
Izzy I GarufiArgentinaOnyama Limba UNQUALIFIED
Adams E MarrierBrazilIoni Bowcher RENEWAL
Rodrigues Q SaylorsAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones N MaletBrazilIvan Magalhaes NEW
Mujtaba T FlosiCanadaElwin Sharvill NEGOTIATION
Maisha O RimSpainAsiya Javayant NEGOTIATION
Isabel H AmigonJapanOnyama Limba UNQUALIFIED
Clifford B MaletJapanStephen Shaw PROPOSAL
Kaitlin I SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Mayumi F RutaFranceAsiya Javayant QUALIFIED
Arvin S ChuiRussiaAnna Fali NEGOTIATION
Isabel W MorascaCanadaAmy Elsner UNQUALIFIED
Aditya E IturbideBrazilAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo H BriddickJapan2024-04-01Benton, John B Jr UNQUALIFIED15Bernardo Dominic
1001Greenwood L OldroydAustralia2024-04-16Rangoni Of Florence RENEWAL43Amy Elsner
1002Clifford N FlosiFrance2024-04-09Morlong Associates RENEWAL26Anna Fali
1003Ivar K PoquetteFrance2024-04-17Dorl, James J Esq RENEWAL45Anna Fali
1004Wickens Z PoquetteJapan2024-04-15Chanay, Jeffrey A Esq RENEWAL23Anna Fali
1005Faith W BologniaSpain2024-04-14Rousseaux, Michael Esq NEGOTIATION0Onyama Limba
1006Adams E AlbaresUnited Kingdom2024-04-23Commercial Press RENEWAL97Onyama Limba
1007David D GauchoIndia2024-04-20Buckley Miller Wright PROPOSAL96Elwin Sharvill
1008Maria M OldroydBrazil2024-04-19Benton, John B Jr PROPOSAL73Anna Fali
1009Kadeem U GillianRussia2024-04-15Benton, John B Jr PROPOSAL83Onyama Limba
1010Aditya B SlusarskiSpain2024-04-29Chapman, Ross E Esq PROPOSAL49Stephen Shaw
1011Arvin N PaprockiAustralia2024-04-02Commercial Press QUALIFIED32Onyama Limba
1012Maria V GillianFrance2024-04-23Printing Dimensions NEGOTIATION65Bernardo Dominic
1013Maria F BologniaCanada2024-04-12Commercial Press NEGOTIATION32Stephen Shaw
1014Maria P GillianFrance2024-04-06Printing Dimensions NEW67Asiya Javayant
1015Misaki D RutaArgentina2024-04-10Buckley Miller Wright NEGOTIATION89Amy Elsner
1016Isabel Q SlusarskiRussia2024-04-13Chemel, James L Cpa NEW66Onyama Limba
1017Clifford V MaletGermany2024-04-15Printing Dimensions QUALIFIED21Stephen Shaw
1018Arvin Z SchemmerArgentina2024-03-31Feiner Bros QUALIFIED32Ivan Magalhaes
1019Octavia X PerinJapan2024-04-07Feiner Bros NEGOTIATION64Asiya Javayant
1020Costa D NestleItaly2024-04-08Feltz Printing Service NEW51Stephen Shaw
1021Nicolas T DilliardRussia2024-04-05Feiner Bros PROPOSAL43Onyama Limba
1022Aditya J NickaRussia2024-04-15Buckley Miller Wright QUALIFIED16Xuxue Feng
1023Izzy X PaprockiUnited Kingdom2024-04-01Rangoni Of Florence RENEWAL43Ioni Bowcher
1024Nicolas P KuskoBrazil2024-04-16Buckley Miller Wright NEW53Anna Fali
1025Tony V VocelkaCanada2024-04-25King, Christopher A Esq QUALIFIED51Anna Fali
1026Chavez T VocelkaJapan2024-04-28Rangoni Of Florence PROPOSAL52Ioni Bowcher
1027Darci O StensethSpain2024-04-28Chapman, Ross E Esq RENEWAL70Asiya Javayant
1028Greenwood W VocelkaIndia2024-04-29Feiner Bros NEW77Onyama Limba
1029Deepesh D PoquetteRussia2024-04-16Morlong Associates NEW49Xuxue Feng
1030Kaitlin W ButtJapan2024-04-15Truhlar And Truhlar Attys RENEWAL91Elwin Sharvill
1031Maisha C MaletIndia2024-04-24King, Christopher A Esq PROPOSAL55Anna Fali
1032Chavez D DoeArgentina2024-04-14Morlong Associates NEGOTIATION37Stephen Shaw
1033Murillo X StockhamUnited Kingdom2024-04-05Feltz Printing Service PROPOSAL81Bernardo Dominic
1034Kaitlin I SlusarskiGermany2024-04-17Rousseaux, Michael Esq PROPOSAL64Bernardo Dominic
1035Ivar F StensethRussia2024-04-21Chapman, Ross E Esq UNQUALIFIED7Ioni Bowcher
1036Julie J RulapaughCanada2024-04-21Benton, John B Jr PROPOSAL75Anna Fali
1037Rodrigues G BologniaSpain2024-04-14Morlong Associates NEGOTIATION87Onyama Limba
1038Misaki G DoeUnited Kingdom2024-03-31Truhlar And Truhlar Attys UNQUALIFIED84Ioni Bowcher
1039Leon S NickaRussia2024-04-13Chemel, James L Cpa QUALIFIED15Stephen Shaw
1040Octavia L RutaCanada2024-04-09Benton, John B Jr RENEWAL32Elwin Sharvill
1041Faith B FerenczRussia2024-04-06Dorl, James J Esq UNQUALIFIED11Xuxue Feng
1042Julie O DarakjyItaly2024-04-07Truhlar And Truhlar Attys UNQUALIFIED96Xuxue Feng
1043Ricardo V ChuiJapan2024-04-04Morlong Associates NEW88Elwin Sharvill
1044Jefferson A StensethJapan2024-04-09Feltz Printing Service NEGOTIATION39Anna Fali
1045Clifford Y WaycottSpain2024-04-19Chanay, Jeffrey A Esq QUALIFIED23Amy Elsner
1046Johnson B FigeroaBrazil2024-04-18Rangoni Of Florence NEW29Stephen Shaw
1047Emily Y TollnerFrance2024-04-12Feiner Bros RENEWAL8Amy Elsner
1048Costa H WhobreyGermany2024-03-31Truhlar And Truhlar Attys PROPOSAL52Ioni Bowcher
1049Kaitlin B KuskoJapan2024-04-22Feiner Bros PROPOSAL79Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Silvio F ShinkoIndiaBernardo Dominic RENEWAL
Silvio R CampainRussiaIvan Magalhaes NEGOTIATION
Jennifer V MorascaBrazilAmy Elsner RENEWAL
Claire M MacleadGermanyElwin Sharvill UNQUALIFIED
Johnson G KuskoRussiaAmy Elsner NEGOTIATION
Adams F RulapaughArgentinaBernardo Dominic RENEWAL
Sinclair B OstroskyBrazilElwin Sharvill PROPOSAL
Chavez R GillianAustraliaIvan Magalhaes QUALIFIED
Mujtaba K DilliardJapanIoni Bowcher NEW
Claire G KolmetzAustraliaIvan Magalhaes PROPOSAL
Misaki C VocelkaItalyElwin Sharvill NEW
Aika Q RimIndiaAmy Elsner PROPOSAL
Munro R CaudyItalyAnna Fali NEW
James Q MacleadSpainElwin Sharvill QUALIFIED
Mayumi Q StensethBrazilAsiya Javayant NEGOTIATION
Adams H AmigonIndiaOnyama Limba NEGOTIATION
Misaki F BowleyJapanOnyama Limba NEGOTIATION
Izzy Q DilliardCanadaAmy Elsner QUALIFIED
Octavia Y SchemmerJapanOnyama Limba NEW
David S CaldareraBrazilOnyama Limba QUALIFIED
James E MaletJapanStephen Shaw RENEWAL
Ashley J DarakjyGermanyAmy Elsner NEW
Juan N InouyeAustraliaIoni Bowcher NEW
Jeanfrancois N CaudyAustraliaOnyama Limba QUALIFIED
Cody M SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Ricardo V SlusarskiIndiaXuxue Feng NEGOTIATION
Jefferson I StockhamCanadaStephen Shaw UNQUALIFIED
Mujtaba B MaletCanadaAmy Elsner NEW
Aruna Q DarakjySpainAmy Elsner QUALIFIED
Jones W WaycottItalyAnna Fali UNQUALIFIED
Jennifer F WaycottRussiaStephen Shaw NEGOTIATION
Octavia C FollerJapanStephen Shaw RENEWAL
Julie M WhobreyAustraliaOnyama Limba QUALIFIED
Izzy Q WaycottAustraliaAsiya Javayant QUALIFIED
Darci X AmigonJapanXuxue Feng NEW
Deepesh Y RutaIndiaIvan Magalhaes NEGOTIATION
Leon D RutaIndiaElwin Sharvill RENEWAL
Juan Y RimUnited KingdomXuxue Feng NEGOTIATION
Nicolas X SchemmerJapanOnyama Limba NEW
Munro J GarufiItalyStephen Shaw PROPOSAL
Aditya O DarakjyGermanyIoni Bowcher NEW
Alejandro R GarufiBrazilBernardo Dominic NEW
Francesco H PaprockiGermanyIvan Magalhaes NEGOTIATION
Emily C WaycottUnited KingdomIoni Bowcher RENEWAL
Deepesh C PoquetteGermanyBernardo Dominic PROPOSAL
Smith J VenereUnited KingdomAnna Fali QUALIFIED
Aika O SlusarskiIndiaStephen Shaw QUALIFIED
Wickens Q RutaRussiaIvan Magalhaes PROPOSAL
Juan C GlickAustraliaAnna Fali NEW
Isabel H PoquetteSpainXuxue Feng UNQUALIFIED
Frozen Columns
Name
Misaki Z Rulapaugh
Darci L Kolmetz
Mujtaba Q Bolognia
Arvin O Malet
Francesco B Malet
Misaki K Perin
Jennifer K Malet
Cody F Stockham
Kadeem H Venere
Chavez Z Perin
Jeanfrancois L Oldroyd
Maria O Chui
Clifford U Paprocki
Murillo I Ostrosky
Octavia D Amigon
James O Caudy
Mujtaba J Shinko
Smith D Waycott
Emily L Whobrey
Izzy Z Caldarera
Mayumi R Morasca
Jones B Chui
Aika Z Nicka
Kadeem U Amigon
Tony H Caudy
James P Bowley
Arvin Z Kolmetz
Ashley S Rim
Sinclair Y Shinko
Alejandro O Oldroyd
Deepesh E Iturbide
Ivar Y Doe
Smith D Oldroyd
Wickens W Darakjy
Costa X Marrier
Clifford V Iturbide
Rodrigues N Vocelka
Juan X Nicka
Kaitlin D Chui
Misaki U Vocelka
Leon R Poquette
Greenwood G Rim
Stacey J Stockham
Tony R Rulapaugh
Juan I Butt
Antonio H Inouye
David Q Schemmer
Leja G Iturbide
Aditya V Kusko
Kaitlin I Rim
IdCountryDate
1000Germany2024-04-26
1001United Kingdom2024-04-15
1002Japan2024-04-14
1003Italy2024-04-15
1004Spain2024-03-31
1005Russia2024-04-23
1006Brazil2024-04-29
1007Italy2024-04-04
1008Spain2024-04-07
1009Spain2024-04-12
1010Argentina2024-04-24
1011Australia2024-04-22
1012Italy2024-04-28
1013Italy2024-04-01
1014Russia2024-04-20
1015Brazil2024-04-21
1016Brazil2024-04-29
1017United Kingdom2024-04-23
1018Argentina2024-04-02
1019France2024-04-03
1020Australia2024-04-22
1021Canada2024-04-18
1022Russia2024-04-03
1023Australia2024-04-29
1024Brazil2024-04-19
1025United Kingdom2024-04-04
1026Canada2024-04-20
1027Japan2024-04-24
1028India2024-04-13
1029Argentina2024-04-21
1030Spain2024-04-20
1031Australia2024-04-08
1032United Kingdom2024-04-05
1033Argentina2024-04-25
1034France2024-04-01
1035Italy2024-04-25
1036Italy2024-04-18
1037Spain2024-04-04
1038India2024-04-29
1039Australia2024-04-25
1040United Kingdom2024-04-07
1041Brazil2024-04-21
1042Japan2024-04-04
1043Germany2024-04-07
1044India2024-04-23
1045Australia2024-04-24
1046France2024-04-29
1047Japan2024-04-22
1048Germany2024-04-04
1049Italy2024-04-26

On-Demand Data

NameIdCountryDate
Leja T Albares1000United Kingdom2024-04-07
Francesco Y Whobrey1001Australia2024-04-11
Greenwood V Wieser1002France2024-04-11
Francesco U Kusko1003Australia2024-04-07
Francesco U Albares1004Italy2024-04-27
Johnson I Slusarski1005Brazil2024-04-04
James Q Malet1006Canada2024-04-24
Munro C Campain1007Spain2024-04-06
Ivar Y Garufi1008Germany2024-03-31
Kadeem Q Rim1009Italy2024-04-06
Leja M Nestle1010Canada2024-04-17
James F Maclead1011Spain2024-04-22
Munro I Bolognia1012United Kingdom2024-04-15
Juan B Waycott1013Germany2024-04-23
Maisha K Vocelka1014Argentina2024-04-06
Alejandro J Kolmetz1015Russia2024-04-23
Ashley Q Darakjy1016Australia2024-04-29
Costa U Darakjy1017Russia2024-03-31
Emily D Tollner1018Argentina2024-04-08
Ivar A Amigon1019India2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci K AlbaresArgentinaXuxue Feng QUALIFIED
Silvio F OstroskyCanadaOnyama Limba NEGOTIATION
Isabel V VocelkaRussiaAnna Fali NEGOTIATION
Morrow H AmigonArgentinaStephen Shaw UNQUALIFIED
Smith V DarakjyUnited KingdomOnyama Limba RENEWAL
Aika Q MorascaArgentinaBernardo Dominic NEW
Leja I KolmetzSpainAmy Elsner RENEWAL
Silvio S AmigonSpainAnna Fali NEGOTIATION
Maisha P BriddickSpainXuxue Feng RENEWAL
David L FlosiArgentinaOnyama Limba PROPOSAL
Ashley M MaletIndiaBernardo Dominic QUALIFIED
Morrow B MaletFranceIvan Magalhaes UNQUALIFIED
Leja N DilliardAustraliaAsiya Javayant NEGOTIATION
Arvin O DoeSpainIvan Magalhaes NEGOTIATION
Salvatore X MarrierIndiaStephen Shaw RENEWAL
Emily W NestleFranceIvan Magalhaes RENEWAL
Mayumi E NickaItalyXuxue Feng PROPOSAL
Smith P BowleyRussiaOnyama Limba NEGOTIATION
David R BologniaUnited KingdomBernardo Dominic NEGOTIATION
Aruna S FlosiAustraliaBernardo Dominic PROPOSAL
Munro C MarrierRussiaAsiya Javayant QUALIFIED
Costa U KolmetzBrazilOnyama Limba PROPOSAL
Munro F NestleBrazilAsiya Javayant RENEWAL
Maria U SergiGermanyAmy Elsner PROPOSAL
Jeanfrancois W InouyeItalyStephen Shaw UNQUALIFIED
Mayumi B FollerArgentinaAnna Fali NEW
Jefferson Z AmigonFranceAsiya Javayant NEGOTIATION
Cody Y GillianArgentinaXuxue Feng NEW
Silvio Y FollerBrazilXuxue Feng UNQUALIFIED
James H VenereArgentinaAsiya Javayant NEGOTIATION
Arvin X RimBrazilBernardo Dominic NEGOTIATION
Antonio T MarrierAustraliaStephen Shaw PROPOSAL
Sinclair Y DilliardArgentinaOnyama Limba UNQUALIFIED
Tony O GillianItalyStephen Shaw PROPOSAL
Ashley E GauchoRussiaBernardo Dominic NEW
Salvatore C GlickRussiaAmy Elsner NEW
Claire T MarrierAustraliaIoni Bowcher NEGOTIATION
Cody F ButtGermanyElwin Sharvill NEW
Izzy R RulapaughBrazilBernardo Dominic UNQUALIFIED
Kaitlin N CaldareraArgentinaAsiya Javayant 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>