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
Julie L KolmetzGermanyStephen Shaw NEW
Aditya T SlusarskiCanadaXuxue Feng NEGOTIATION
Antonio U RulapaughArgentinaIvan Magalhaes QUALIFIED
Stacey I ChuiRussiaXuxue Feng UNQUALIFIED
Munro A FigeroaRussiaAsiya Javayant QUALIFIED
Munro C DoeAustraliaOnyama Limba PROPOSAL
Silvio T IturbideArgentinaAsiya Javayant QUALIFIED
Jefferson N RulapaughRussiaAmy Elsner QUALIFIED
Murillo B StockhamRussiaOnyama Limba NEW
Kaitlin S BriddickUnited KingdomIoni Bowcher NEW
Munro A MaletCanadaStephen Shaw NEGOTIATION
Emily V DarakjyItalyXuxue Feng NEW
Smith Y GillianAustraliaStephen Shaw NEGOTIATION
Deepesh O RutaCanadaAmy Elsner UNQUALIFIED
Murillo N NickaSpainIvan Magalhaes NEW
Greenwood S ButtJapanBernardo Dominic PROPOSAL
Tony H StockhamItalyAsiya Javayant RENEWAL
David I CaldareraGermanyIoni Bowcher PROPOSAL
Smith B GlickRussiaAsiya Javayant NEW
Wickens A OstroskySpainStephen Shaw NEW
Costa D BowleyFranceOnyama Limba NEGOTIATION
Rodrigues N GillianIndiaStephen Shaw PROPOSAL
Arvin Q IturbideItalyAsiya Javayant RENEWAL
Cody G SaylorsUnited KingdomAmy Elsner NEW
Chavez R FollerArgentinaBernardo Dominic NEGOTIATION
Johnson X FigeroaCanadaOnyama Limba RENEWAL
Maria W ChuiCanadaAsiya Javayant PROPOSAL
Kaitlin L RoysterUnited KingdomOnyama Limba UNQUALIFIED
Arvin W RimGermanyStephen Shaw NEW
Ashley Z AmigonFranceOnyama Limba NEW
Nicolas W KolmetzJapanIoni Bowcher PROPOSAL
Wickens H CaudyAustraliaAmy Elsner RENEWAL
Costa V GarufiCanadaBernardo Dominic PROPOSAL
Kadeem I DarakjyJapanStephen Shaw UNQUALIFIED
Nicolas H NestleRussiaOnyama Limba UNQUALIFIED
David F FlosiIndiaStephen Shaw PROPOSAL
Misaki S MorascaBrazilAnna Fali UNQUALIFIED
Rodrigues D CampainSpainXuxue Feng RENEWAL
Murillo J WhobreyRussiaStephen Shaw UNQUALIFIED
Morrow D OldroydRussiaElwin Sharvill NEGOTIATION
Izzy X WaycottCanadaOnyama Limba PROPOSAL
Ivar B MaletBrazilAnna Fali PROPOSAL
Murillo N ShinkoBrazilAmy Elsner QUALIFIED
Adams C RoysterAustraliaXuxue Feng NEGOTIATION
Alejandro F KolmetzIndiaElwin Sharvill NEW
David C MorascaBrazilXuxue Feng UNQUALIFIED
Francesco X KuskoFranceStephen Shaw QUALIFIED
Sinclair U WaycottUnited KingdomXuxue Feng NEGOTIATION
Stacey A FerenczJapanAnna Fali QUALIFIED
Mujtaba Q PerinJapanAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois L RulapaughGermanyAnna Fali QUALIFIED
Tony P BowleyUnited KingdomIoni Bowcher NEW
Deepesh A MorascaBrazilStephen Shaw RENEWAL
Claire I KolmetzIndiaAmy Elsner NEGOTIATION
Jennifer T StensethJapanBernardo Dominic NEW
Jeanfrancois U VocelkaCanadaStephen Shaw NEW
Aruna U InouyeRussiaXuxue Feng PROPOSAL
Sinclair S OldroydCanadaAmy Elsner NEW
Francesco B KuskoCanadaAnna Fali UNQUALIFIED
Nicolas U RulapaughAustraliaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro B RimItaly2024-04-13Buckley Miller Wright RENEWAL93Ivan Magalhaes
1001Maria O RoysterItaly2024-04-10Feltz Printing Service NEW90Asiya Javayant
1002Silvio G VenereFrance2024-04-25Feltz Printing Service UNQUALIFIED85Onyama Limba
1003Ashley O AlbaresRussia2024-04-06Chapman, Ross E Esq RENEWAL92Onyama Limba
1004Ashley U WaycottAustralia2024-04-09King, Christopher A Esq QUALIFIED73Amy Elsner
1005Jefferson M TollnerItaly2024-04-22Rangoni Of Florence QUALIFIED64Ioni Bowcher
1006Aditya J RoysterRussia2024-04-26Rangoni Of Florence NEGOTIATION37Anna Fali
1007Wickens K KuskoIndia2024-04-25Chemel, James L Cpa NEGOTIATION0Onyama Limba
1008Maria G FlosiUnited Kingdom2024-04-07Truhlar And Truhlar Attys UNQUALIFIED34Stephen Shaw
1009Alejandro Z VenereRussia2024-04-18Feiner Bros UNQUALIFIED13Ioni Bowcher
1010Stacey O CaudyBrazil2024-04-27Commercial Press PROPOSAL88Asiya Javayant
1011Greenwood G MaletRussia2024-04-06Morlong Associates PROPOSAL47Ivan Magalhaes
1012Aika C CaldareraFrance2024-04-13Rangoni Of Florence PROPOSAL36Xuxue Feng
1013Izzy L PaprockiFrance2024-04-10Rangoni Of Florence NEGOTIATION59Bernardo Dominic
1014Arvin I RimCanada2024-04-12Rangoni Of Florence PROPOSAL83Asiya Javayant
1015Costa C DoeIndia2024-04-17Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1016Jennifer O WieserFrance2024-04-29Truhlar And Truhlar Attys QUALIFIED35Amy Elsner
1017Johnson P GarufiAustralia2024-04-13Feltz Printing Service RENEWAL55Xuxue Feng
1018Sinclair N PerinItaly2024-04-02King, Christopher A Esq NEGOTIATION57Amy Elsner
1019Clifford I AlbaresArgentina2024-04-26Rousseaux, Michael Esq NEW46Anna Fali
1020Kaitlin X VenereBrazil2024-04-23King, Christopher A Esq RENEWAL23Ioni Bowcher
1021Izzy Q AmigonArgentina2024-04-10King, Christopher A Esq PROPOSAL78Stephen Shaw
1022Silvio I TollnerRussia2024-04-11Feltz Printing Service QUALIFIED4Ivan Magalhaes
1023Salvatore H MaletIndia2024-04-10Chemel, James L Cpa NEW1Anna Fali
1024Francesco Z CaudyCanada2024-04-20Feiner Bros PROPOSAL89Asiya Javayant
1025James N OstroskyItaly2024-04-18Dorl, James J Esq PROPOSAL80Anna Fali
1026Alejandro U GarufiFrance2024-04-22Chapman, Ross E Esq RENEWAL21Amy Elsner
1027Leon Q DilliardGermany2024-04-21Commercial Press RENEWAL1Bernardo Dominic
1028Aika B GillianUnited Kingdom2024-04-14Rousseaux, Michael Esq PROPOSAL67Ioni Bowcher
1029Isabel L RimGermany2024-04-24Morlong Associates QUALIFIED80Elwin Sharvill
1030Ashley R KolmetzFrance2024-04-17Printing Dimensions PROPOSAL92Bernardo Dominic
1031Tony D RimBrazil2024-04-19Truhlar And Truhlar Attys PROPOSAL48Onyama Limba
1032Arvin S NestleBrazil2024-04-08Feiner Bros QUALIFIED96Amy Elsner
1033Ricardo I CaudyUnited Kingdom2024-04-26Morlong Associates NEW78Bernardo Dominic
1034Claire A BologniaGermany2024-04-22Rangoni Of Florence RENEWAL85Xuxue Feng
1035Francesco B CaudyArgentina2024-04-14Chanay, Jeffrey A Esq RENEWAL76Ivan Magalhaes
1036Tony D MacleadAustralia2024-04-07Morlong Associates PROPOSAL25Ioni Bowcher
1037Ashley S AlbaresUnited Kingdom2024-04-26Chemel, James L Cpa UNQUALIFIED75Bernardo Dominic
1038Mujtaba X DilliardCanada2024-04-07Buckley Miller Wright PROPOSAL41Amy Elsner
1039Antonio X PerinIndia2024-04-12Buckley Miller Wright UNQUALIFIED54Onyama Limba
1040Murillo S OldroydJapan2024-04-28King, Christopher A Esq RENEWAL90Ivan Magalhaes
1041Kaitlin I DoeJapan2024-04-20Benton, John B Jr NEGOTIATION60Onyama Limba
1042Isabel R RoysterFrance2024-04-29Buckley Miller Wright NEW32Stephen Shaw
1043Faith O SlusarskiRussia2024-04-18Feltz Printing Service QUALIFIED13Anna Fali
1044Emily A AlbaresIndia2024-04-09Dorl, James J Esq RENEWAL91Bernardo Dominic
1045James F WhobreyArgentina2024-04-16Morlong Associates NEW23Ivan Magalhaes
1046Wickens F MorascaAustralia2024-04-07Commercial Press NEGOTIATION63Elwin Sharvill
1047Ashley C StockhamUnited Kingdom2024-04-12Rousseaux, Michael Esq NEGOTIATION65Onyama Limba
1048Silvio B CampainIndia2024-04-01Feiner Bros NEW91Elwin Sharvill
1049Cody P GauchoIndia2024-04-02Morlong Associates RENEWAL7Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Greenwood U RoysterJapanIoni Bowcher NEW
Maisha V KuskoBrazilAnna Fali PROPOSAL
Johnson P RutaGermanyAmy Elsner NEGOTIATION
Maria F SchemmerGermanyAsiya Javayant RENEWAL
Izzy I InouyeIndiaAnna Fali QUALIFIED
Claire K AmigonItalyStephen Shaw NEGOTIATION
Francesco P WaycottArgentinaIoni Bowcher QUALIFIED
Claire Y MacleadArgentinaStephen Shaw PROPOSAL
Johnson F DarakjyCanadaIoni Bowcher NEW
Silvio Z VenereBrazilElwin Sharvill QUALIFIED
Alejandro R StensethCanadaIvan Magalhaes UNQUALIFIED
Jefferson Q RimGermanyStephen Shaw QUALIFIED
Aditya G MarrierFranceIoni Bowcher NEGOTIATION
Faith C SlusarskiRussiaAsiya Javayant RENEWAL
Juan R AmigonAustraliaAmy Elsner NEGOTIATION
Jones S PaprockiArgentinaAnna Fali NEW
Munro V AmigonBrazilStephen Shaw QUALIFIED
Isabel H RutaGermanyBernardo Dominic PROPOSAL
Francesco S InouyeBrazilXuxue Feng NEW
Aruna P KuskoUnited KingdomAnna Fali NEGOTIATION
Murillo R DarakjyBrazilXuxue Feng NEW
Leon V NickaBrazilBernardo Dominic UNQUALIFIED
Jennifer Q GillianCanadaAsiya Javayant NEW
Jeanfrancois P FigeroaCanadaStephen Shaw QUALIFIED
Costa H KolmetzCanadaOnyama Limba NEW
Silvio M PaprockiUnited KingdomIoni Bowcher NEW
Izzy O DoeItalyIoni Bowcher NEGOTIATION
Kadeem L BriddickIndiaOnyama Limba UNQUALIFIED
Darci R BologniaIndiaStephen Shaw PROPOSAL
Kaitlin P SergiArgentinaXuxue Feng NEGOTIATION
Darci D MorascaArgentinaStephen Shaw QUALIFIED
Nicolas R AlbaresItalyElwin Sharvill RENEWAL
Kaitlin M RulapaughArgentinaAmy Elsner UNQUALIFIED
Wickens C PaprockiBrazilStephen Shaw NEGOTIATION
Antonio Q FlosiFranceAmy Elsner PROPOSAL
Darci V RimBrazilAmy Elsner NEW
Salvatore N SaylorsBrazilAmy Elsner QUALIFIED
Leja I GillianCanadaAmy Elsner RENEWAL
Stacey G RutaGermanyAmy Elsner NEGOTIATION
James M GillianRussiaAnna Fali PROPOSAL
Emily R FerenczGermanyIoni Bowcher RENEWAL
Claire I DilliardBrazilStephen Shaw NEW
Jeanfrancois S MaletJapanIvan Magalhaes RENEWAL
Isabel A ChuiIndiaBernardo Dominic RENEWAL
Ivar F FlosiBrazilElwin Sharvill QUALIFIED
Salvatore W AlbaresCanadaOnyama Limba NEW
Ricardo I DilliardBrazilElwin Sharvill NEGOTIATION
Darci R PerinJapanElwin Sharvill NEGOTIATION
Maria U FlosiFranceIoni Bowcher RENEWAL
Ricardo I SergiFranceAnna Fali NEW
Frozen Columns
Name
Kaitlin F Nicka
Julie W Paprocki
Juan J Chui
Cody P Albares
Misaki O Bolognia
Deepesh F Sergi
Aika T Dilliard
Ivar Y Caudy
Claire P Amigon
James W Maclead
Jefferson R Iturbide
Octavia B Dilliard
Sinclair R Vocelka
Tony I Royster
James T Malet
James S Ferencz
Sinclair E Inouye
Ashley A Tollner
Emily Z Kusko
Julie V Tollner
Juan G Sergi
Costa N Rulapaugh
Leja H Gaucho
Misaki T Marrier
Maria D Waycott
Aditya X Doe
Greenwood S Vocelka
Misaki Y Schemmer
Claire O Foller
Emily L Glick
Kaitlin N Chui
Arvin U Stockham
Alejandro V Paprocki
Alejandro T Dilliard
Silvio N Vocelka
Emily E Shinko
Juan Q Rim
Clifford P Whobrey
Jennifer F Bowley
Aditya X Gaucho
Octavia O Doe
Clifford C Ruta
Izzy U Darakjy
Leja N Glick
Jones J Nicka
Rodrigues U Venere
Greenwood D Rulapaugh
Tony S Royster
Morrow R Nestle
Rodrigues M Gaucho
IdCountryDate
1000Spain2024-04-01
1001Canada2024-04-30
1002Italy2024-04-26
1003Argentina2024-04-08
1004India2024-04-03
1005Italy2024-04-03
1006Germany2024-04-29
1007Japan2024-04-25
1008Brazil2024-04-12
1009Canada2024-04-05
1010Russia2024-04-08
1011Russia2024-04-11
1012Italy2024-04-22
1013Russia2024-04-23
1014Spain2024-04-04
1015Canada2024-04-14
1016France2024-04-02
1017India2024-04-22
1018Brazil2024-04-27
1019India2024-04-02
1020India2024-04-06
1021Spain2024-04-02
1022Russia2024-04-06
1023Brazil2024-04-26
1024Brazil2024-04-07
1025Italy2024-04-19
1026Italy2024-04-18
1027France2024-04-27
1028Italy2024-04-22
1029Canada2024-04-17
1030Russia2024-04-29
1031Australia2024-04-07
1032Italy2024-04-30
1033Spain2024-04-07
1034United Kingdom2024-04-09
1035Germany2024-04-17
1036Spain2024-04-10
1037India2024-04-12
1038Australia2024-04-01
1039Spain2024-04-04
1040Canada2024-04-13
1041Russia2024-04-22
1042United Kingdom2024-04-16
1043India2024-04-18
1044Argentina2024-04-24
1045Italy2024-04-24
1046Spain2024-04-09
1047Spain2024-04-13
1048France2024-04-21
1049Australia2024-04-11

On-Demand Data

NameIdCountryDate
Greenwood A Figeroa1000Argentina2024-04-04
Francesco U Stockham1001France2024-04-04
Emily C Sergi1002Argentina2024-04-22
Izzy Z Perin1003Spain2024-04-25
Claire Z Nicka1004Japan2024-04-28
Maisha G Malet1005Brazil2024-04-01
Costa C Briddick1006Brazil2024-04-09
Silvio N Saylors1007United Kingdom2024-04-27
Misaki Q Foller1008Germany2024-04-25
Johnson V Bowley1009Germany2024-04-16
James I Gaucho1010Japan2024-04-01
James Q Oldroyd1011Australia2024-04-22
Jeanfrancois V Garufi1012United Kingdom2024-04-06
Mayumi N Chui1013France2024-04-22
Jones D Rim1014Italy2024-04-01
Arvin F Nestle1015Italy2024-04-23
Arvin Q Darakjy1016United Kingdom2024-04-24
Morrow O Vocelka1017Germany2024-04-20
Murillo J Tollner1018Australia2024-04-30
Mayumi R Morasca1019Brazil2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford G SaylorsAustraliaAsiya Javayant NEW
Mujtaba M MaletGermanyBernardo Dominic PROPOSAL
Ricardo F DarakjyGermanyOnyama Limba NEGOTIATION
Johnson N SaylorsAustraliaIvan Magalhaes NEW
Adams I FollerArgentinaOnyama Limba UNQUALIFIED
Adams N DilliardIndiaAmy Elsner NEGOTIATION
Jeanfrancois H ShinkoArgentinaElwin Sharvill QUALIFIED
Tony M SlusarskiJapanStephen Shaw NEW
Greenwood P OldroydArgentinaAsiya Javayant QUALIFIED
Ricardo A ShinkoArgentinaElwin Sharvill RENEWAL
Chavez W PerinBrazilStephen Shaw PROPOSAL
Cody P NickaCanadaIoni Bowcher QUALIFIED
Julie L WaycottItalyOnyama Limba PROPOSAL
Mujtaba O GlickRussiaIoni Bowcher NEGOTIATION
Mujtaba B GillianArgentinaAsiya Javayant UNQUALIFIED
Johnson V OldroydJapanIvan Magalhaes QUALIFIED
Maisha I ChuiArgentinaOnyama Limba NEW
Maria D GarufiRussiaElwin Sharvill RENEWAL
Ashley J StensethJapanAnna Fali UNQUALIFIED
Jeanfrancois K SaylorsAustraliaOnyama Limba UNQUALIFIED
Francesco R RoysterRussiaIvan Magalhaes NEW
Aruna W GillianCanadaIoni Bowcher UNQUALIFIED
Greenwood C ChuiItalyElwin Sharvill NEW
Isabel L FigeroaJapanBernardo Dominic UNQUALIFIED
Wickens R DilliardUnited KingdomXuxue Feng UNQUALIFIED
Deepesh G WhobreyAustraliaBernardo Dominic NEW
Smith Z GarufiGermanyStephen Shaw UNQUALIFIED
Ricardo C DarakjyRussiaAsiya Javayant NEW
Maisha B KuskoUnited KingdomBernardo Dominic QUALIFIED
Tony C SergiArgentinaIvan Magalhaes UNQUALIFIED
Julie J KuskoIndiaStephen Shaw RENEWAL
Kaitlin L DilliardCanadaStephen Shaw UNQUALIFIED
Nicolas P PaprockiAustraliaBernardo Dominic NEW
Maisha O ChuiAustraliaIvan Magalhaes QUALIFIED
Ricardo I PaprockiCanadaIvan Magalhaes QUALIFIED
Ivar V FerenczSpainStephen Shaw UNQUALIFIED
Jones V GauchoUnited KingdomIoni Bowcher NEGOTIATION
James K TollnerJapanIvan Magalhaes NEW
Arvin L CaudyFranceAsiya Javayant NEGOTIATION
Stacey Z DarakjyBrazilAmy Elsner 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>