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
Jones X GillianJapanIvan Magalhaes PROPOSAL
Nicolas B MaletAustraliaBernardo Dominic UNQUALIFIED
Leja A FigeroaJapanOnyama Limba QUALIFIED
Rodrigues T MaletGermanyAmy Elsner UNQUALIFIED
Salvatore W RoysterCanadaBernardo Dominic NEW
Wickens D GarufiGermanyElwin Sharvill NEW
Sinclair R MaletUnited KingdomAmy Elsner UNQUALIFIED
Greenwood O KuskoBrazilAnna Fali RENEWAL
Jennifer T KuskoJapanAmy Elsner NEW
Morrow S OstroskyItalyXuxue Feng UNQUALIFIED
Sinclair W MorascaSpainOnyama Limba QUALIFIED
Morrow M NestleSpainAmy Elsner UNQUALIFIED
Ashley V SlusarskiSpainAsiya Javayant NEGOTIATION
Aruna Q ChuiItalyBernardo Dominic PROPOSAL
Leon D RoysterUnited KingdomXuxue Feng QUALIFIED
Aika N MacleadBrazilIvan Magalhaes NEGOTIATION
Ivar F GillianRussiaIvan Magalhaes NEW
Jeanfrancois P RutaSpainAnna Fali NEGOTIATION
Morrow P SergiBrazilStephen Shaw UNQUALIFIED
Kaitlin I ShinkoAustraliaIoni Bowcher UNQUALIFIED
Munro V NestleRussiaXuxue Feng RENEWAL
Deepesh P KolmetzRussiaAmy Elsner QUALIFIED
Jennifer G CaldareraRussiaIoni Bowcher QUALIFIED
Deepesh X FerenczUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois J KuskoGermanyXuxue Feng NEW
Stacey I BriddickIndiaStephen Shaw UNQUALIFIED
Arvin D StensethArgentinaAsiya Javayant UNQUALIFIED
Clifford D NickaArgentinaAmy Elsner PROPOSAL
Deepesh Y VenereRussiaXuxue Feng NEW
Silvio U BowleyFranceAsiya Javayant NEGOTIATION
Salvatore E OstroskyUnited KingdomOnyama Limba NEW
Arvin Q MacleadItalyIoni Bowcher RENEWAL
Ricardo P MaletIndiaIvan Magalhaes NEGOTIATION
Darci P GauchoAustraliaBernardo Dominic QUALIFIED
James S GauchoAustraliaStephen Shaw NEGOTIATION
Maria R RoysterSpainOnyama Limba NEW
Misaki V SergiBrazilAmy Elsner RENEWAL
Smith O GarufiRussiaElwin Sharvill UNQUALIFIED
Ricardo G InouyeBrazilBernardo Dominic NEW
Silvio V DarakjyJapanElwin Sharvill RENEWAL
Jones J CaudyAustraliaAmy Elsner RENEWAL
Faith V RoysterArgentinaOnyama Limba QUALIFIED
Aika Y SaylorsFranceIvan Magalhaes RENEWAL
Aditya M FerenczCanadaAsiya Javayant PROPOSAL
James D AlbaresCanadaOnyama Limba RENEWAL
Kadeem C RutaRussiaIoni Bowcher PROPOSAL
Faith X NestleGermanyAmy Elsner NEGOTIATION
Wickens F BowleyAustraliaIoni Bowcher PROPOSAL
Cody Y SchemmerFranceBernardo Dominic RENEWAL
Alejandro A PerinItalyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley W CaldareraUnited KingdomAmy Elsner NEGOTIATION
Arvin V StensethSpainIoni Bowcher NEGOTIATION
Stacey U SlusarskiJapanStephen Shaw UNQUALIFIED
Maria Q ChuiIndiaBernardo Dominic QUALIFIED
Clifford X ChuiFranceBernardo Dominic PROPOSAL
Francesco A TollnerRussiaElwin Sharvill UNQUALIFIED
Antonio X GlickIndiaAmy Elsner NEW
Claire H ButtIndiaIvan Magalhaes NEGOTIATION
Jones J KolmetzAustraliaIvan Magalhaes NEGOTIATION
Ivar X FlosiGermanyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan Y WaycottAustralia2024-03-31Chapman, Ross E Esq RENEWAL28Anna Fali
1001Kadeem U SchemmerAustralia2024-04-20Truhlar And Truhlar Attys RENEWAL78Asiya Javayant
1002Leon H ShinkoJapan2024-04-28King, Christopher A Esq PROPOSAL61Amy Elsner
1003Kaitlin N SlusarskiGermany2024-04-14King, Christopher A Esq NEGOTIATION50Anna Fali
1004Cody G VocelkaItaly2024-04-02Printing Dimensions QUALIFIED33Xuxue Feng
1005Jeanfrancois T IturbideItaly2024-04-25King, Christopher A Esq UNQUALIFIED34Asiya Javayant
1006Stacey L FlosiCanada2024-04-22Rousseaux, Michael Esq QUALIFIED80Stephen Shaw
1007Deepesh F SlusarskiUnited Kingdom2024-04-01Commercial Press UNQUALIFIED32Onyama Limba
1008Adams I FigeroaItaly2024-04-14Commercial Press NEW12Onyama Limba
1009Adams V OstroskyGermany2024-03-31Chanay, Jeffrey A Esq QUALIFIED95Amy Elsner
1010Kaitlin A FerenczGermany2024-04-27Chemel, James L Cpa NEGOTIATION75Xuxue Feng
1011Izzy Q ChuiGermany2024-04-22Benton, John B Jr QUALIFIED95Onyama Limba
1012Mayumi S CaldareraIndia2024-04-05Buckley Miller Wright PROPOSAL75Bernardo Dominic
1013Leja G CaldareraCanada2024-04-02Chemel, James L Cpa QUALIFIED84Anna Fali
1014Adams H FollerUnited Kingdom2024-04-08Rousseaux, Michael Esq NEW50Asiya Javayant
1015Darci X RulapaughAustralia2024-04-04Chemel, James L Cpa NEW91Bernardo Dominic
1016Greenwood E InouyeUnited Kingdom2024-04-18Rangoni Of Florence RENEWAL0Amy Elsner
1017Octavia N MarrierSpain2024-04-13Rangoni Of Florence UNQUALIFIED26Ivan Magalhaes
1018Misaki V SchemmerBrazil2024-04-17Chapman, Ross E Esq NEGOTIATION82Stephen Shaw
1019James M VocelkaArgentina2024-04-07Feltz Printing Service NEW99Onyama Limba
1020Stacey H WhobreyIndia2024-04-26Feltz Printing Service PROPOSAL20Anna Fali
1021Faith W CaldareraUnited Kingdom2024-04-10Morlong Associates UNQUALIFIED5Ivan Magalhaes
1022Emily C VenereArgentina2024-04-17Rousseaux, Michael Esq RENEWAL79Onyama Limba
1023Maria R RimRussia2024-04-20Buckley Miller Wright UNQUALIFIED59Stephen Shaw
1024James R FlosiRussia2024-04-11Commercial Press PROPOSAL70Asiya Javayant
1025Leon K DarakjyUnited Kingdom2024-04-22Benton, John B Jr RENEWAL77Bernardo Dominic
1026Aika P AlbaresAustralia2024-04-08Dorl, James J Esq NEGOTIATION91Ioni Bowcher
1027Johnson P BowleyIndia2024-04-03Dorl, James J Esq NEW14Ivan Magalhaes
1028Jeanfrancois Y SlusarskiBrazil2024-04-10Benton, John B Jr PROPOSAL5Ivan Magalhaes
1029Adams G ChuiUnited Kingdom2024-04-02Buckley Miller Wright RENEWAL45Stephen Shaw
1030Chavez H BologniaIndia2024-03-31King, Christopher A Esq NEGOTIATION72Ivan Magalhaes
1031Isabel E BologniaBrazil2024-04-28Commercial Press UNQUALIFIED44Ivan Magalhaes
1032Salvatore Z OldroydAustralia2024-04-22Feltz Printing Service NEW95Stephen Shaw
1033Julie G CaldareraJapan2024-04-05Dorl, James J Esq NEGOTIATION94Xuxue Feng
1034Nicolas B OstroskyArgentina2024-04-14King, Christopher A Esq QUALIFIED88Onyama Limba
1035Costa L KuskoBrazil2024-04-05Rangoni Of Florence PROPOSAL72Xuxue Feng
1036Aruna S CaudyGermany2024-04-07Commercial Press PROPOSAL88Ioni Bowcher
1037Aika Q MaletSpain2024-04-11King, Christopher A Esq QUALIFIED48Ivan Magalhaes
1038Claire Q PoquetteAustralia2024-04-23Commercial Press RENEWAL81Stephen Shaw
1039Ashley G SlusarskiItaly2024-04-20Chapman, Ross E Esq RENEWAL9Anna Fali
1040Mujtaba V MaletItaly2024-04-02Feltz Printing Service NEW21Asiya Javayant
1041Silvio X SaylorsIndia2024-04-07Chanay, Jeffrey A Esq QUALIFIED69Onyama Limba
1042Tony L AlbaresAustralia2024-04-07Printing Dimensions QUALIFIED69Amy Elsner
1043Isabel B PerinFrance2024-04-23Benton, John B Jr RENEWAL87Stephen Shaw
1044Aditya N PoquetteIndia2024-04-29Morlong Associates QUALIFIED43Anna Fali
1045Mujtaba L ButtBrazil2024-04-06Feiner Bros NEGOTIATION71Onyama Limba
1046Alejandro Q PaprockiCanada2024-03-31Dorl, James J Esq QUALIFIED62Xuxue Feng
1047Aika O RutaAustralia2024-04-15Chapman, Ross E Esq UNQUALIFIED25Elwin Sharvill
1048Adams D PerinFrance2024-04-22Morlong Associates PROPOSAL16Ivan Magalhaes
1049Aika Y CaldareraJapan2024-04-07Commercial Press NEW78Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Z WaycottJapanIvan Magalhaes NEW
Kaitlin Z GlickAustraliaElwin Sharvill QUALIFIED
Claire E WhobreyUnited KingdomElwin Sharvill RENEWAL
Mujtaba O VenereCanadaBernardo Dominic QUALIFIED
Chavez J WhobreyRussiaAsiya Javayant QUALIFIED
Julie Z GarufiRussiaXuxue Feng UNQUALIFIED
Aruna G SaylorsBrazilAsiya Javayant RENEWAL
Ricardo H FerenczRussiaOnyama Limba UNQUALIFIED
Aruna I AlbaresJapanElwin Sharvill NEW
Nicolas T SchemmerCanadaXuxue Feng UNQUALIFIED
Stacey K NickaSpainAmy Elsner NEGOTIATION
Aruna H SlusarskiAustraliaXuxue Feng PROPOSAL
Jennifer B RutaArgentinaAsiya Javayant NEGOTIATION
Wickens H FollerIndiaOnyama Limba RENEWAL
Clifford K KolmetzIndiaBernardo Dominic RENEWAL
Leon H AmigonJapanAmy Elsner PROPOSAL
Stacey N InouyeSpainAsiya Javayant PROPOSAL
Morrow R GlickSpainStephen Shaw PROPOSAL
Aditya Z FollerArgentinaElwin Sharvill NEW
Kadeem L DarakjyUnited KingdomIvan Magalhaes RENEWAL
Jennifer H ShinkoUnited KingdomAsiya Javayant NEW
Aika W RulapaughJapanAsiya Javayant PROPOSAL
Costa O BologniaUnited KingdomOnyama Limba NEW
Smith D MaletBrazilBernardo Dominic UNQUALIFIED
Johnson C DoeItalyOnyama Limba RENEWAL
Deepesh V AmigonRussiaAnna Fali QUALIFIED
Francesco Y MarrierGermanyAsiya Javayant RENEWAL
Octavia S ButtCanadaStephen Shaw QUALIFIED
Adams C BowleyIndiaOnyama Limba NEGOTIATION
Izzy H RulapaughItalyXuxue Feng QUALIFIED
Salvatore L CampainFranceOnyama Limba PROPOSAL
Arvin J DarakjyFranceBernardo Dominic PROPOSAL
Aika W BologniaArgentinaBernardo Dominic NEGOTIATION
Stacey T SaylorsCanadaElwin Sharvill QUALIFIED
Faith H VocelkaAustraliaOnyama Limba RENEWAL
Misaki F MaletAustraliaAsiya Javayant RENEWAL
Morrow Q FollerSpainAnna Fali NEW
Morrow N StockhamFranceIvan Magalhaes NEGOTIATION
Leja S KuskoGermanyIvan Magalhaes RENEWAL
Misaki M RoysterSpainXuxue Feng QUALIFIED
Sinclair C FerenczIndiaOnyama Limba PROPOSAL
Munro U TollnerFranceAmy Elsner NEGOTIATION
Rodrigues M StensethAustraliaIvan Magalhaes UNQUALIFIED
Morrow N SaylorsUnited KingdomIvan Magalhaes PROPOSAL
David Y FerenczCanadaAsiya Javayant PROPOSAL
Silvio V BowleyFranceAnna Fali UNQUALIFIED
David D RutaCanadaBernardo Dominic NEW
Wickens C CampainItalyAmy Elsner PROPOSAL
Aditya J BologniaRussiaAsiya Javayant PROPOSAL
Octavia C VenereUnited KingdomBernardo Dominic NEGOTIATION
Frozen Columns
Name
Clifford F Slusarski
Greenwood G Royster
Julie D Gillian
Maria W Shinko
Izzy C Campain
Francesco C Nicka
Morrow Z Garufi
Wickens Z Gillian
Faith Y Nestle
Munro P Bowley
Adams I Saylors
Cody N Campain
Kadeem Z Morasca
Jones Q Vocelka
Maria A Marrier
Aditya O Perin
Aika F Caldarera
Maisha V Oldroyd
Wickens R Ruta
Maisha M Caudy
Aika U Perin
Isabel X Foller
Leon V Bolognia
Octavia Z Flosi
Wickens W Chui
Greenwood J Shinko
Aruna X Ferencz
Leja L Nicka
Sinclair B Dilliard
Jones S Ferencz
Mujtaba U Caudy
Julie R Iturbide
Aditya W Inouye
Nicolas M Doe
Deepesh O Paprocki
Francesco H Gaucho
Aruna G Gillian
Greenwood Y Morasca
Costa X Glick
Mayumi S Vocelka
Maria U Stenseth
Faith W Foller
Antonio Q Briddick
Julie N Nicka
Jones L Shinko
Izzy O Stockham
Cody A Paprocki
James S Morasca
Aika M Bowley
David Y Whobrey
IdCountryDate
1000India2024-04-08
1001Japan2024-04-10
1002India2024-04-27
1003United Kingdom2024-04-17
1004Japan2024-04-26
1005Australia2024-04-26
1006Germany2024-04-09
1007Germany2024-04-05
1008Brazil2024-04-18
1009Argentina2024-04-01
1010United Kingdom2024-04-16
1011France2024-04-15
1012Italy2024-04-01
1013Australia2024-04-03
1014France2024-04-07
1015Russia2024-04-04
1016France2024-04-21
1017Germany2024-04-16
1018Russia2024-04-01
1019India2024-04-02
1020Brazil2024-04-07
1021Germany2024-04-11
1022Germany2024-04-24
1023Brazil2024-03-31
1024Canada2024-04-18
1025France2024-04-07
1026Italy2024-04-23
1027Japan2024-04-11
1028Argentina2024-04-27
1029Australia2024-04-06
1030Canada2024-04-18
1031Canada2024-04-22
1032Argentina2024-04-13
1033United Kingdom2024-04-21
1034France2024-04-10
1035United Kingdom2024-04-25
1036Russia2024-04-22
1037Brazil2024-04-16
1038France2024-04-15
1039Canada2024-04-07
1040Australia2024-04-05
1041Australia2024-04-29
1042Japan2024-04-13
1043Argentina2024-04-01
1044Japan2024-03-31
1045Argentina2024-04-18
1046Germany2024-04-04
1047Italy2024-04-01
1048Australia2024-04-04
1049India2024-04-23

On-Demand Data

NameIdCountryDate
Juan L Wieser1000Germany2024-04-13
Sinclair P Dilliard1001Australia2024-04-04
Wickens D Maclead1002Germany2024-04-22
Chavez J Ostrosky1003France2024-04-17
David P Flosi1004Australia2024-04-03
Aruna L Perin1005United Kingdom2024-04-29
Faith N Nestle1006Brazil2024-03-31
Kadeem N Maclead1007Australia2024-04-10
David S Nicka1008France2024-04-24
Mayumi J Campain1009United Kingdom2024-04-27
Morrow I Darakjy1010Germany2024-04-03
Darci A Kusko1011France2024-04-11
Julie Z Stockham1012Argentina2024-04-27
Morrow N Stenseth1013Argentina2024-04-16
Chavez F Poquette1014Japan2024-04-13
Adams M Whobrey1015France2024-04-16
Smith P Schemmer1016Australia2024-04-14
Leon V Caudy1017Germany2024-04-21
Izzy Z Malet1018India2024-04-21
Alejandro M Nicka1019France2024-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon J BowleyBrazilStephen Shaw RENEWAL
Rodrigues D WhobreyAustraliaXuxue Feng QUALIFIED
Misaki K AlbaresBrazilElwin Sharvill RENEWAL
Stacey W InouyeRussiaAmy Elsner RENEWAL
Aruna M ShinkoSpainAmy Elsner NEW
Leja C RoysterSpainAnna Fali NEW
Maria L WhobreyFranceBernardo Dominic NEGOTIATION
Clifford A PerinRussiaElwin Sharvill RENEWAL
Rodrigues O NickaBrazilElwin Sharvill NEW
Darci T OstroskyCanadaXuxue Feng UNQUALIFIED
Munro N MorascaJapanXuxue Feng NEW
Tony T VenereBrazilAsiya Javayant PROPOSAL
Aruna U PoquetteItalyAsiya Javayant PROPOSAL
Julie M GauchoJapanStephen Shaw NEW
Maria D BologniaItalyStephen Shaw QUALIFIED
Rodrigues P OstroskyGermanyBernardo Dominic RENEWAL
Silvio E InouyeItalyAmy Elsner UNQUALIFIED
Ashley D BologniaSpainAsiya Javayant QUALIFIED
Aika I FerenczGermanyOnyama Limba NEW
Nicolas L MarrierItalyStephen Shaw NEGOTIATION
Izzy L SergiJapanStephen Shaw UNQUALIFIED
Antonio I WhobreyFranceIoni Bowcher NEW
Faith V VenereJapanIvan Magalhaes NEGOTIATION
Octavia L PoquetteGermanyBernardo Dominic UNQUALIFIED
Clifford H PerinArgentinaIvan Magalhaes UNQUALIFIED
Isabel X FigeroaGermanyIvan Magalhaes NEW
Arvin Z WieserFranceAnna Fali PROPOSAL
Mayumi T CaldareraGermanyElwin Sharvill PROPOSAL
Silvio Y AlbaresRussiaAnna Fali NEW
Ashley Q PerinArgentinaIvan Magalhaes PROPOSAL
Darci W WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Ashley I MaletSpainIvan Magalhaes NEGOTIATION
Greenwood U GauchoGermanyAsiya Javayant UNQUALIFIED
Octavia M ChuiItalyIvan Magalhaes UNQUALIFIED
Ivar U VocelkaArgentinaAsiya Javayant NEGOTIATION
Claire S PoquetteGermanyBernardo Dominic RENEWAL
Arvin S NickaJapanAnna Fali UNQUALIFIED
Silvio P BriddickItalyElwin Sharvill PROPOSAL
Nicolas M FigeroaAustraliaIoni Bowcher RENEWAL
Darci Z GarufiRussiaAmy Elsner UNQUALIFIED

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