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 H DarakjyArgentinaXuxue Feng NEGOTIATION
Darci P GarufiArgentinaAsiya Javayant PROPOSAL
Ivar N GauchoArgentinaIoni Bowcher UNQUALIFIED
Leon V TollnerFranceAmy Elsner RENEWAL
Francesco Q ButtAustraliaIvan Magalhaes UNQUALIFIED
Claire H GlickItalyStephen Shaw PROPOSAL
Faith S IturbideBrazilElwin Sharvill NEGOTIATION
Emily Z GarufiAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois S StockhamSpainStephen Shaw UNQUALIFIED
Mujtaba G SaylorsRussiaOnyama Limba NEW
Jefferson I KolmetzItalyXuxue Feng RENEWAL
Juan T DarakjyAustraliaOnyama Limba QUALIFIED
Claire G MaletAustraliaAsiya Javayant UNQUALIFIED
Morrow O StockhamRussiaStephen Shaw NEW
Cody I PoquetteGermanyElwin Sharvill UNQUALIFIED
Cody V MaletJapanStephen Shaw RENEWAL
Antonio G WieserFranceAnna Fali PROPOSAL
Aika U KuskoCanadaElwin Sharvill RENEWAL
Aditya F MorascaItalyBernardo Dominic QUALIFIED
David J StockhamRussiaIoni Bowcher PROPOSAL
Cody P FerenczSpainXuxue Feng PROPOSAL
Rodrigues B NestleIndiaStephen Shaw RENEWAL
Ashley L RimArgentinaXuxue Feng UNQUALIFIED
Sinclair V FlosiItalyAmy Elsner NEW
Emily L OldroydAustraliaElwin Sharvill PROPOSAL
Salvatore H DarakjyArgentinaAnna Fali NEGOTIATION
Ashley I RimGermanyBernardo Dominic NEW
Ivar T MacleadIndiaXuxue Feng PROPOSAL
Sinclair N BowleyCanadaElwin Sharvill QUALIFIED
Jefferson K SaylorsSpainAnna Fali PROPOSAL
Kadeem J GauchoArgentinaAmy Elsner QUALIFIED
Antonio X BowleyGermanyElwin Sharvill QUALIFIED
Sinclair E CaudyCanadaIoni Bowcher NEW
Leja M AmigonGermanyOnyama Limba NEGOTIATION
Costa D MaletSpainStephen Shaw RENEWAL
Kaitlin G KuskoFranceStephen Shaw RENEWAL
Aruna N KolmetzAustraliaIvan Magalhaes NEW
Octavia H InouyeFranceBernardo Dominic NEGOTIATION
James S BriddickUnited KingdomBernardo Dominic NEW
Maisha C RutaGermanyBernardo Dominic NEW
Leon B CampainFranceStephen Shaw UNQUALIFIED
Darci T IturbideUnited KingdomBernardo Dominic UNQUALIFIED
David A CaudyUnited KingdomElwin Sharvill QUALIFIED
Mujtaba Q GillianJapanAsiya Javayant QUALIFIED
Tony B RulapaughRussiaBernardo Dominic NEW
Jennifer L CampainBrazilBernardo Dominic UNQUALIFIED
Kadeem F BologniaGermanyAmy Elsner UNQUALIFIED
Silvio S KolmetzJapanAsiya Javayant NEGOTIATION
Munro U SchemmerIndiaStephen Shaw NEGOTIATION
Misaki D NestleJapanStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Arvin K DilliardAustraliaBernardo Dominic QUALIFIED
Leja Q VocelkaUnited KingdomAnna Fali UNQUALIFIED
Faith K GauchoBrazilElwin Sharvill NEW
Deepesh T BologniaUnited KingdomAsiya Javayant RENEWAL
Leon F KuskoJapanStephen Shaw NEGOTIATION
James K FollerAustraliaAnna Fali NEGOTIATION
Deepesh K OldroydCanadaElwin Sharvill QUALIFIED
James O FigeroaRussiaIoni Bowcher QUALIFIED
Tony Q BowleyUnited KingdomIvan Magalhaes NEW
Francesco Y GlickGermanyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood U ShinkoJapan2024-04-23Printing Dimensions UNQUALIFIED88Xuxue Feng
1001Johnson W PaprockiSpain2024-04-03Rangoni Of Florence QUALIFIED89Elwin Sharvill
1002Morrow C PerinCanada2024-04-15Feiner Bros UNQUALIFIED92Amy Elsner
1003Isabel X FerenczFrance2024-04-27Chemel, James L Cpa PROPOSAL31Stephen Shaw
1004Faith C ChuiSpain2024-04-24Chapman, Ross E Esq UNQUALIFIED19Stephen Shaw
1005Smith E AlbaresBrazil2024-04-07Rangoni Of Florence UNQUALIFIED4Onyama Limba
1006James P MarrierBrazil2024-04-22Rousseaux, Michael Esq QUALIFIED34Amy Elsner
1007Juan C FigeroaCanada2024-04-12Feltz Printing Service NEGOTIATION52Onyama Limba
1008Nicolas V FollerSpain2024-04-10Truhlar And Truhlar Attys QUALIFIED13Bernardo Dominic
1009Costa V RulapaughItaly2024-04-07Rousseaux, Michael Esq RENEWAL32Amy Elsner
1010Misaki K RutaRussia2024-04-23Commercial Press RENEWAL93Elwin Sharvill
1011Mayumi M GauchoCanada2024-04-05Printing Dimensions NEGOTIATION38Ioni Bowcher
1012Adams H SaylorsGermany2024-04-30Rousseaux, Michael Esq UNQUALIFIED65Anna Fali
1013Juan H GlickSpain2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED48Stephen Shaw
1014Chavez H BowleyRussia2024-04-28Morlong Associates UNQUALIFIED52Amy Elsner
1015Wickens O ShinkoBrazil2024-04-09Chemel, James L Cpa RENEWAL11Xuxue Feng
1016Faith C DilliardJapan2024-04-11Buckley Miller Wright NEGOTIATION59Amy Elsner
1017Stacey L NestleRussia2024-04-29Rangoni Of Florence RENEWAL72Amy Elsner
1018Leon O MorascaAustralia2024-04-30Printing Dimensions UNQUALIFIED11Asiya Javayant
1019Francesco K KuskoGermany2024-04-26Chemel, James L Cpa NEW23Asiya Javayant
1020Antonio J OstroskyFrance2024-04-17Printing Dimensions RENEWAL69Ioni Bowcher
1021Sinclair N VocelkaAustralia2024-04-19Feltz Printing Service NEGOTIATION13Elwin Sharvill
1022Ivar J GlickArgentina2024-04-18Chapman, Ross E Esq NEW5Bernardo Dominic
1023Wickens W VocelkaSpain2024-04-03Buckley Miller Wright RENEWAL82Stephen Shaw
1024Isabel M RimItaly2024-04-13Commercial Press NEGOTIATION15Bernardo Dominic
1025Murillo K WieserGermany2024-04-29Truhlar And Truhlar Attys RENEWAL5Asiya Javayant
1026Jefferson W SaylorsGermany2024-05-02Buckley Miller Wright NEGOTIATION52Elwin Sharvill
1027Francesco V TollnerSpain2024-04-30Chemel, James L Cpa UNQUALIFIED22Asiya Javayant
1028Arvin Y WieserSpain2024-04-13Morlong Associates QUALIFIED3Onyama Limba
1029Claire B PerinCanada2024-04-15Chapman, Ross E Esq NEGOTIATION41Ivan Magalhaes
1030Jones B GauchoCanada2024-04-24Rangoni Of Florence UNQUALIFIED54Stephen Shaw
1031James X VenereSpain2024-04-25Feltz Printing Service QUALIFIED75Ioni Bowcher
1032Francesco C NickaIndia2024-04-12Rousseaux, Michael Esq QUALIFIED20Xuxue Feng
1033Sinclair A GarufiIndia2024-04-17Feiner Bros NEW32Stephen Shaw
1034Morrow P ShinkoCanada2024-04-26Feiner Bros NEGOTIATION73Ivan Magalhaes
1035Mujtaba V AmigonItaly2024-04-22Benton, John B Jr NEGOTIATION27Anna Fali
1036Kadeem F StensethSpain2024-04-14Morlong Associates QUALIFIED27Elwin Sharvill
1037Aika T PoquetteRussia2024-04-28Morlong Associates NEW92Amy Elsner
1038Kadeem G FlosiCanada2024-04-19Rousseaux, Michael Esq RENEWAL64Elwin Sharvill
1039Claire I PerinJapan2024-04-20King, Christopher A Esq RENEWAL60Stephen Shaw
1040Mujtaba R KolmetzGermany2024-04-19King, Christopher A Esq NEW2Elwin Sharvill
1041Rodrigues A SergiAustralia2024-04-03Rangoni Of Florence PROPOSAL55Amy Elsner
1042Antonio Z InouyeJapan2024-04-14Feiner Bros PROPOSAL74Stephen Shaw
1043Claire Q OldroydRussia2024-04-11Feltz Printing Service UNQUALIFIED3Stephen Shaw
1044Leja Z StockhamFrance2024-04-20Commercial Press UNQUALIFIED40Asiya Javayant
1045Misaki M PaprockiAustralia2024-04-20King, Christopher A Esq QUALIFIED12Onyama Limba
1046Ricardo B DarakjyJapan2024-04-03Commercial Press QUALIFIED22Onyama Limba
1047Jeanfrancois N CaldareraAustralia2024-04-03Rousseaux, Michael Esq PROPOSAL34Ivan Magalhaes
1048Kaitlin T RoysterJapan2024-05-02Commercial Press UNQUALIFIED57Onyama Limba
1049Leja K FlosiCanada2024-04-18Commercial Press NEW8Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David Z GarufiFranceIvan Magalhaes RENEWAL
Jones R SchemmerFranceIvan Magalhaes NEW
Deepesh O DilliardItalyStephen Shaw RENEWAL
Juan G MorascaItalyAnna Fali NEGOTIATION
Costa W MaletFranceBernardo Dominic UNQUALIFIED
Morrow O OstroskyIndiaBernardo Dominic PROPOSAL
Silvio J DilliardArgentinaAmy Elsner RENEWAL
Jeanfrancois K NestleRussiaBernardo Dominic QUALIFIED
Arvin C KuskoGermanyAmy Elsner NEGOTIATION
Emily C SchemmerAustraliaStephen Shaw NEW
Salvatore B VocelkaCanadaOnyama Limba QUALIFIED
Juan V TollnerJapanAmy Elsner QUALIFIED
Jefferson J InouyeGermanyAsiya Javayant QUALIFIED
Claire X PaprockiArgentinaAsiya Javayant QUALIFIED
Jones R RimRussiaAsiya Javayant QUALIFIED
Sinclair E SergiIndiaIvan Magalhaes UNQUALIFIED
Kadeem G VocelkaIndiaElwin Sharvill UNQUALIFIED
Francesco G BowleyGermanyOnyama Limba UNQUALIFIED
Aika D FerenczUnited KingdomBernardo Dominic PROPOSAL
Jennifer X MaletIndiaIoni Bowcher NEGOTIATION
Aika B FigeroaRussiaBernardo Dominic UNQUALIFIED
Stacey P DarakjyAustraliaAnna Fali UNQUALIFIED
Wickens K DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Silvio V BriddickFranceStephen Shaw QUALIFIED
Mujtaba I KuskoCanadaAnna Fali PROPOSAL
Alejandro V PoquetteSpainAnna Fali QUALIFIED
Aditya M KolmetzGermanyElwin Sharvill NEGOTIATION
Ashley J GauchoJapanIvan Magalhaes RENEWAL
Jeanfrancois I TollnerAustraliaAsiya Javayant PROPOSAL
Chavez G SchemmerUnited KingdomXuxue Feng NEGOTIATION
David Z PaprockiGermanyBernardo Dominic QUALIFIED
Sinclair K RutaSpainIvan Magalhaes QUALIFIED
Jeanfrancois R MacleadFranceXuxue Feng NEGOTIATION
Chavez Z CaudyCanadaIvan Magalhaes RENEWAL
Isabel R FollerRussiaStephen Shaw RENEWAL
Leon Z RimFranceStephen Shaw PROPOSAL
Costa B PaprockiAustraliaOnyama Limba NEW
Stacey Q SaylorsBrazilAsiya Javayant NEGOTIATION
Maisha W SchemmerRussiaOnyama Limba NEW
Juan L SlusarskiGermanyBernardo Dominic UNQUALIFIED
James B BowleyAustraliaElwin Sharvill NEW
Faith M RoysterCanadaXuxue Feng PROPOSAL
Rodrigues J RimBrazilXuxue Feng NEGOTIATION
Aruna Q FerenczGermanyIoni Bowcher PROPOSAL
Juan A ButtGermanyBernardo Dominic RENEWAL
Sinclair B MaletFranceIvan Magalhaes NEW
Maisha K WieserRussiaBernardo Dominic UNQUALIFIED
James H FlosiItalyBernardo Dominic QUALIFIED
Darci F StockhamItalyBernardo Dominic QUALIFIED
Ricardo G RoysterArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Cody Q Bowley
Octavia N Chui
Misaki J Stenseth
Jefferson J Morasca
Claire U Venere
Aditya P Flosi
Maisha B Royster
Claire L Campain
Morrow N Poquette
Kaitlin G Gillian
Jones V Ferencz
Isabel B Royster
Jones Y Nicka
Rodrigues R Royster
Rodrigues W Doe
Leja F Foller
Ricardo I Marrier
Jones W Maclead
Izzy H Malet
Nicolas T Saylors
Kadeem P Ostrosky
Ricardo Y Glick
Deepesh J Schemmer
Emily I Figeroa
Jeanfrancois G Shinko
Misaki U Gaucho
Chavez H Perin
Alejandro D Foller
Greenwood E Vocelka
Arvin K Whobrey
Isabel G Flosi
Ricardo L Poquette
Salvatore W Tollner
Izzy M Ferencz
Wickens V Bowley
Salvatore S Caldarera
Ashley F Perin
Costa C Dilliard
Izzy I Royster
Ricardo A Kolmetz
Deepesh R Oldroyd
Claire I Ostrosky
Octavia N Maclead
Francesco R Malet
Antonio C Bowley
Jennifer W Stockham
Kadeem N Caldarera
Kaitlin K Bowley
Silvio Q Glick
Emily F Maclead
IdCountryDate
1000Russia2024-04-25
1001United Kingdom2024-04-20
1002Australia2024-04-13
1003Australia2024-04-28
1004Brazil2024-04-10
1005Italy2024-04-27
1006Italy2024-04-30
1007France2024-04-18
1008Germany2024-04-26
1009Russia2024-04-28
1010France2024-05-02
1011Russia2024-04-10
1012Argentina2024-04-12
1013Russia2024-04-14
1014Argentina2024-04-29
1015United Kingdom2024-04-05
1016Canada2024-04-24
1017India2024-04-18
1018United Kingdom2024-04-05
1019Argentina2024-05-02
1020Germany2024-04-11
1021Canada2024-04-11
1022Canada2024-04-21
1023Spain2024-04-14
1024Italy2024-04-17
1025Australia2024-04-28
1026France2024-04-22
1027Brazil2024-04-03
1028United Kingdom2024-05-02
1029Australia2024-04-19
1030Australia2024-04-05
1031Spain2024-04-19
1032Italy2024-04-09
1033Canada2024-04-29
1034Germany2024-04-24
1035India2024-04-14
1036France2024-04-20
1037France2024-04-28
1038United Kingdom2024-04-16
1039Italy2024-04-24
1040France2024-04-14
1041Germany2024-04-13
1042Italy2024-04-11
1043Canada2024-04-17
1044Australia2024-05-02
1045Canada2024-04-24
1046Russia2024-04-10
1047France2024-04-17
1048Japan2024-04-07
1049Australia2024-04-04

On-Demand Data

NameIdCountryDate
Maisha J Paprocki1000Brazil2024-04-16
Smith R Gaucho1001France2024-04-23
Tony A Garufi1002Japan2024-04-11
Izzy O Venere1003India2024-04-23
Faith K Royster1004Germany2024-04-19
Jennifer W Wieser1005Brazil2024-04-03
Claire M Shinko1006Australia2024-04-05
Claire Y Saylors1007India2024-04-15
Ricardo A Poquette1008Spain2024-05-02
Julie I Caldarera1009India2024-04-24
Mayumi G Iturbide1010Spain2024-04-29
Morrow U Nestle1011Brazil2024-04-16
Jefferson F Gillian1012Spain2024-04-11
Jones P Figeroa1013Canada2024-05-01
Cody M Darakjy1014Brazil2024-04-15
Silvio H Wieser1015Japan2024-04-09
Greenwood N Butt1016Australia2024-04-09
Jeanfrancois U Wieser1017France2024-04-14
Clifford S Gaucho1018Russia2024-04-20
Nicolas K Campain1019France2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro R IturbideUnited KingdomOnyama Limba RENEWAL
Claire Y PoquetteRussiaBernardo Dominic NEW
James E NestleRussiaIoni Bowcher RENEWAL
Kadeem H StockhamCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois M AmigonAustraliaAmy Elsner NEW
Morrow B BriddickJapanIvan Magalhaes NEW
Arvin F PerinJapanAmy Elsner UNQUALIFIED
Jones Y ChuiUnited KingdomStephen Shaw NEGOTIATION
Kaitlin X MaletJapanOnyama Limba RENEWAL
Wickens S RimAustraliaXuxue Feng NEW
Smith P GauchoGermanyIoni Bowcher NEW
Kadeem R VocelkaArgentinaOnyama Limba NEGOTIATION
Aruna W MaletCanadaAnna Fali NEW
Deepesh W FlosiBrazilIoni Bowcher NEGOTIATION
Silvio X CampainIndiaIoni Bowcher QUALIFIED
Octavia S SergiItalyAnna Fali UNQUALIFIED
Izzy P GarufiGermanyElwin Sharvill RENEWAL
Antonio X GarufiFranceIvan Magalhaes QUALIFIED
Octavia X OldroydRussiaAmy Elsner UNQUALIFIED
Aditya I ShinkoCanadaElwin Sharvill UNQUALIFIED
Jennifer R StockhamFranceIoni Bowcher QUALIFIED
Mayumi E AmigonJapanXuxue Feng PROPOSAL
Izzy D StensethGermanyIoni Bowcher QUALIFIED
Clifford J GlickBrazilAsiya Javayant QUALIFIED
Emily H FigeroaSpainAsiya Javayant NEGOTIATION
Sinclair O PoquetteGermanyIvan Magalhaes UNQUALIFIED
Rodrigues A CaldareraIndiaAnna Fali UNQUALIFIED
Nicolas Q ButtArgentinaIvan Magalhaes UNQUALIFIED
Morrow N SchemmerIndiaAsiya Javayant QUALIFIED
Munro Y KolmetzRussiaElwin Sharvill RENEWAL
Ashley S MaletJapanStephen Shaw NEGOTIATION
Aruna Y GillianArgentinaElwin Sharvill UNQUALIFIED
Darci A VocelkaAustraliaBernardo Dominic NEW
Ivar C IturbideBrazilIvan Magalhaes QUALIFIED
Sinclair D FigeroaAustraliaAmy Elsner QUALIFIED
Alejandro V CaldareraAustraliaAmy Elsner UNQUALIFIED
Maisha Z WaycottAustraliaIoni Bowcher UNQUALIFIED
Deepesh N StensethFranceIoni Bowcher RENEWAL
Leon L GarufiSpainElwin Sharvill RENEWAL
Jennifer W SaylorsRussiaAmy Elsner QUALIFIED

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