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
Morrow B AmigonRussiaOnyama Limba NEW
Kaitlin F PoquetteSpainOnyama Limba PROPOSAL
Salvatore M MacleadCanadaBernardo Dominic QUALIFIED
Sinclair J RoysterGermanyBernardo Dominic QUALIFIED
James R SlusarskiUnited KingdomAnna Fali NEGOTIATION
Smith T VocelkaRussiaElwin Sharvill QUALIFIED
Aika L FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Juan K NestleRussiaElwin Sharvill NEW
Costa V InouyeJapanXuxue Feng QUALIFIED
Izzy K AmigonFranceAsiya Javayant NEW
Silvio K FollerSpainStephen Shaw NEW
Maisha S AmigonArgentinaElwin Sharvill UNQUALIFIED
Maria K DarakjyBrazilIvan Magalhaes NEGOTIATION
Cody Z DoeJapanAsiya Javayant PROPOSAL
Izzy P BriddickGermanyElwin Sharvill PROPOSAL
Maisha J SlusarskiAustraliaIoni Bowcher PROPOSAL
Kaitlin Y KuskoBrazilXuxue Feng NEW
Silvio Y NestleRussiaAsiya Javayant NEW
Kadeem N WieserBrazilStephen Shaw NEGOTIATION
Ricardo H BriddickUnited KingdomElwin Sharvill RENEWAL
Alejandro I GarufiArgentinaIvan Magalhaes NEW
Jefferson Z KolmetzJapanIvan Magalhaes UNQUALIFIED
Tony A VocelkaFranceAnna Fali QUALIFIED
Antonio B AmigonCanadaElwin Sharvill UNQUALIFIED
Juan R FollerGermanyElwin Sharvill NEW
Tony H SergiFranceOnyama Limba QUALIFIED
David D FollerFranceOnyama Limba QUALIFIED
Silvio X OstroskyIndiaStephen Shaw RENEWAL
Claire C CaldareraUnited KingdomOnyama Limba NEGOTIATION
Mujtaba O ChuiArgentinaElwin Sharvill UNQUALIFIED
Clifford X ButtIndiaXuxue Feng UNQUALIFIED
Murillo A CaudyFranceOnyama Limba QUALIFIED
James B KolmetzIndiaBernardo Dominic QUALIFIED
Mayumi C KuskoFranceAsiya Javayant PROPOSAL
Ashley G InouyeGermanyAmy Elsner NEGOTIATION
Darci Y IturbideAustraliaAmy Elsner UNQUALIFIED
Costa B OldroydCanadaOnyama Limba QUALIFIED
Antonio L SergiUnited KingdomBernardo Dominic NEGOTIATION
Kaitlin S RoysterCanadaAmy Elsner RENEWAL
Kadeem P ChuiAustraliaBernardo Dominic UNQUALIFIED
Aditya P FlosiCanadaOnyama Limba NEGOTIATION
Salvatore X MacleadFranceIoni Bowcher QUALIFIED
Isabel O CampainFranceAsiya Javayant QUALIFIED
Chavez E PoquetteAustraliaStephen Shaw RENEWAL
Salvatore E CaldareraIndiaAnna Fali NEW
Nicolas G GauchoFranceElwin Sharvill RENEWAL
Maisha V CaldareraJapanAmy Elsner NEGOTIATION
Greenwood G OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Aditya A VenereArgentinaXuxue Feng UNQUALIFIED
Cody Z MacleadFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony F MacleadUnited KingdomAmy Elsner UNQUALIFIED
Tony H WieserFranceIoni Bowcher PROPOSAL
Misaki C MorascaIndiaXuxue Feng NEW
Alejandro Q PoquetteIndiaBernardo Dominic UNQUALIFIED
Maria T SlusarskiArgentinaStephen Shaw QUALIFIED
Jones R SaylorsRussiaStephen Shaw PROPOSAL
Jones O NestleBrazilStephen Shaw UNQUALIFIED
Clifford B DoeArgentinaBernardo Dominic PROPOSAL
Julie J ButtArgentinaStephen Shaw NEW
Wickens Q DoeBrazilOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily B FigeroaCanada2024-04-17Feltz Printing Service UNQUALIFIED25Elwin Sharvill
1001Tony A GillianAustralia2024-03-30Rangoni Of Florence NEW96Stephen Shaw
1002Aditya Q FlosiUnited Kingdom2024-04-07Benton, John B Jr NEW63Onyama Limba
1003Julie K MacleadAustralia2024-04-02Commercial Press PROPOSAL48Onyama Limba
1004Munro R AlbaresUnited Kingdom2024-04-09Chapman, Ross E Esq NEGOTIATION15Ioni Bowcher
1005Mayumi X OstroskyJapan2024-04-20Rousseaux, Michael Esq RENEWAL62Ioni Bowcher
1006Nicolas G BowleySpain2024-03-30Chemel, James L Cpa NEW9Ioni Bowcher
1007Darci I VocelkaAustralia2024-03-27Commercial Press NEGOTIATION82Ioni Bowcher
1008Rodrigues J NickaSpain2024-04-10Commercial Press QUALIFIED52Asiya Javayant
1009Aruna M VocelkaUnited Kingdom2024-04-02Morlong Associates NEGOTIATION64Ioni Bowcher
1010Darci J BriddickCanada2024-04-20Feiner Bros NEW77Ioni Bowcher
1011Arvin Y WaycottRussia2024-04-09Feltz Printing Service NEW94Asiya Javayant
1012Faith D SaylorsRussia2024-03-30Benton, John B Jr QUALIFIED98Elwin Sharvill
1013Stacey H InouyeSpain2024-04-09Chapman, Ross E Esq QUALIFIED46Anna Fali
1014Tony G SaylorsGermany2024-04-22Morlong Associates NEW13Onyama Limba
1015Alejandro Q DoeAustralia2024-03-24King, Christopher A Esq PROPOSAL24Amy Elsner
1016Clifford D ShinkoSpain2024-04-10Chanay, Jeffrey A Esq RENEWAL62Elwin Sharvill
1017Maria Y CaldareraRussia2024-03-24Benton, John B Jr NEW72Xuxue Feng
1018Francesco I CaudyAustralia2024-04-09Buckley Miller Wright QUALIFIED30Asiya Javayant
1019Faith Y SaylorsItaly2024-03-25Benton, John B Jr NEW62Bernardo Dominic
1020Aruna V CampainFrance2024-04-05Buckley Miller Wright RENEWAL57Xuxue Feng
1021Sinclair E BowleyAustralia2024-04-17Rangoni Of Florence NEW15Amy Elsner
1022Greenwood Z DoeJapan2024-04-01Rousseaux, Michael Esq QUALIFIED41Bernardo Dominic
1023Chavez X OstroskySpain2024-04-11King, Christopher A Esq QUALIFIED20Asiya Javayant
1024Leja R MorascaItaly2024-03-28Rousseaux, Michael Esq RENEWAL73Bernardo Dominic
1025Aditya I MaletSpain2024-03-29King, Christopher A Esq PROPOSAL60Anna Fali
1026Ricardo J ChuiGermany2024-04-01Commercial Press RENEWAL23Bernardo Dominic
1027Salvatore B PaprockiBrazil2024-04-18Commercial Press PROPOSAL85Ioni Bowcher
1028Silvio M SlusarskiBrazil2024-04-13Morlong Associates UNQUALIFIED70Stephen Shaw
1029Jeanfrancois I NestleItaly2024-04-15Rangoni Of Florence UNQUALIFIED33Xuxue Feng
1030Munro O PoquetteItaly2024-03-27Dorl, James J Esq PROPOSAL72Amy Elsner
1031James K WieserSpain2024-03-30Truhlar And Truhlar Attys QUALIFIED64Amy Elsner
1032Silvio H FigeroaAustralia2024-04-03Rousseaux, Michael Esq QUALIFIED12Stephen Shaw
1033Kadeem N FigeroaAustralia2024-04-22Feiner Bros NEGOTIATION85Elwin Sharvill
1034Kadeem Q BologniaItaly2024-04-04Benton, John B Jr NEW21Anna Fali
1035James L CaldareraGermany2024-04-22Chanay, Jeffrey A Esq QUALIFIED77Elwin Sharvill
1036Silvio R IturbideJapan2024-04-09Buckley Miller Wright NEW27Bernardo Dominic
1037Leja B WaycottUnited Kingdom2024-04-15Printing Dimensions QUALIFIED56Bernardo Dominic
1038Alejandro V ChuiUnited Kingdom2024-04-06Printing Dimensions NEW6Asiya Javayant
1039Kadeem K BowleySpain2024-03-27Morlong Associates QUALIFIED48Amy Elsner
1040Munro Y GauchoItaly2024-03-26Feiner Bros QUALIFIED85Ivan Magalhaes
1041Mayumi M ShinkoIndia2024-04-04Truhlar And Truhlar Attys PROPOSAL67Amy Elsner
1042Tony N RulapaughCanada2024-04-07Commercial Press NEW6Stephen Shaw
1043Deepesh Q GarufiSpain2024-03-31Chanay, Jeffrey A Esq RENEWAL68Stephen Shaw
1044Morrow Q WaycottArgentina2024-04-13Truhlar And Truhlar Attys UNQUALIFIED30Xuxue Feng
1045Julie F FollerIndia2024-03-27King, Christopher A Esq NEGOTIATION19Bernardo Dominic
1046Jones A OldroydGermany2024-04-20Dorl, James J Esq PROPOSAL67Elwin Sharvill
1047Kaitlin Y VocelkaAustralia2024-04-21Buckley Miller Wright QUALIFIED48Stephen Shaw
1048Misaki H RimAustralia2024-03-29Rangoni Of Florence PROPOSAL26Amy Elsner
1049Cody C BowleySpain2024-04-07Morlong Associates RENEWAL3Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leon E MarrierIndiaXuxue Feng RENEWAL
James X CampainBrazilAnna Fali PROPOSAL
Jefferson A PaprockiArgentinaAmy Elsner RENEWAL
Chavez V FollerFranceOnyama Limba PROPOSAL
Faith P ButtItalyElwin Sharvill QUALIFIED
Salvatore E CaldareraSpainStephen Shaw UNQUALIFIED
Rodrigues R RimCanadaAmy Elsner RENEWAL
Clifford W NickaSpainAmy Elsner NEGOTIATION
Johnson C GlickJapanXuxue Feng UNQUALIFIED
Claire V NickaJapanAmy Elsner QUALIFIED
Stacey H KolmetzUnited KingdomAmy Elsner PROPOSAL
Salvatore C WaycottRussiaBernardo Dominic NEW
Julie F AmigonArgentinaIvan Magalhaes UNQUALIFIED
Mayumi H RoysterGermanyIvan Magalhaes NEW
Clifford L StensethBrazilAsiya Javayant PROPOSAL
Antonio J BriddickRussiaOnyama Limba RENEWAL
Julie H NickaGermanyXuxue Feng NEGOTIATION
Jones V FerenczArgentinaAnna Fali UNQUALIFIED
Ricardo W WhobreyItalyAsiya Javayant PROPOSAL
Faith D VenereCanadaIoni Bowcher NEGOTIATION
Kadeem A FigeroaRussiaAsiya Javayant UNQUALIFIED
Munro R StensethAustraliaElwin Sharvill QUALIFIED
Antonio J IturbideSpainOnyama Limba NEGOTIATION
Maisha N RutaRussiaElwin Sharvill QUALIFIED
Claire U RimRussiaBernardo Dominic UNQUALIFIED
James Y VenereSpainIoni Bowcher QUALIFIED
Jones F AlbaresAustraliaAmy Elsner NEGOTIATION
Greenwood N KolmetzAustraliaIoni Bowcher UNQUALIFIED
Juan K DarakjyFranceStephen Shaw NEGOTIATION
Ricardo G ChuiCanadaBernardo Dominic UNQUALIFIED
Emily H PoquetteAustraliaBernardo Dominic RENEWAL
Kadeem Z KolmetzGermanyOnyama Limba RENEWAL
Jones N NickaRussiaStephen Shaw UNQUALIFIED
Deepesh I CampainSpainAnna Fali PROPOSAL
Clifford O MaletSpainElwin Sharvill RENEWAL
Greenwood X WieserAustraliaStephen Shaw PROPOSAL
Adams U KuskoRussiaAsiya Javayant QUALIFIED
Juan X StensethFranceAnna Fali NEGOTIATION
Johnson U BowleyRussiaStephen Shaw UNQUALIFIED
Julie M MacleadItalyAnna Fali NEGOTIATION
Morrow Q FollerUnited KingdomOnyama Limba PROPOSAL
David U BowleyRussiaXuxue Feng NEGOTIATION
Costa Q PaprockiBrazilAsiya Javayant RENEWAL
Francesco G MaletJapanBernardo Dominic PROPOSAL
Morrow X SergiCanadaStephen Shaw NEW
Clifford E OldroydBrazilIoni Bowcher UNQUALIFIED
Izzy G AlbaresGermanyAmy Elsner PROPOSAL
Clifford H ChuiIndiaOnyama Limba PROPOSAL
Faith X GauchoGermanyAsiya Javayant QUALIFIED
David B RulapaughIndiaAmy Elsner RENEWAL
Frozen Columns
Name
Maria Y Tollner
Aruna V Waycott
Cody X Chui
Johnson P Kusko
Mayumi I Garufi
David Z Schemmer
Izzy B Doe
Jones R Waycott
Izzy H Waycott
Ricardo E Ostrosky
Stacey S Dilliard
Leja Z Stockham
Izzy M Bowley
Emily U Slusarski
Stacey A Paprocki
Maisha K Briddick
Faith L Bowley
Kaitlin Z Amigon
Clifford D Darakjy
Aditya X Albares
Deepesh S Stenseth
Kaitlin J Caldarera
Misaki X Vocelka
Julie J Royster
Deepesh U Ruta
Maisha P Vocelka
Adams Q Royster
Misaki Z Morasca
Kadeem S Campain
Darci P Gillian
Ricardo I Malet
Sinclair I Caudy
Maria V Wieser
Julie C Dilliard
Mujtaba I Royster
Deepesh W Kusko
Arvin D Gaucho
Darci X Waycott
Octavia U Sergi
Jennifer H Ruta
Smith Z Kusko
Jefferson R Vocelka
Rodrigues V Amigon
Kadeem M Glick
Jennifer H Chui
Aditya H Gaucho
Jennifer T Malet
Misaki G Caldarera
Deepesh H Slusarski
Jeanfrancois R Ruta
IdCountryDate
1000Brazil2024-03-25
1001United Kingdom2024-04-11
1002France2024-04-14
1003Spain2024-03-27
1004India2024-04-19
1005Brazil2024-03-26
1006Argentina2024-04-08
1007Germany2024-04-20
1008Brazil2024-04-04
1009United Kingdom2024-04-13
1010India2024-04-21
1011United Kingdom2024-03-29
1012Russia2024-04-07
1013Australia2024-04-03
1014Italy2024-03-26
1015Japan2024-04-11
1016United Kingdom2024-04-04
1017Germany2024-04-22
1018Germany2024-04-09
1019Germany2024-03-26
1020United Kingdom2024-04-19
1021Australia2024-04-14
1022United Kingdom2024-03-24
1023France2024-03-28
1024Argentina2024-03-29
1025Brazil2024-04-13
1026Brazil2024-03-30
1027Germany2024-04-19
1028Italy2024-04-17
1029Argentina2024-04-04
1030United Kingdom2024-03-31
1031United Kingdom2024-04-11
1032France2024-04-18
1033Canada2024-04-05
1034France2024-04-03
1035Germany2024-04-01
1036Japan2024-04-13
1037Brazil2024-04-13
1038Argentina2024-04-12
1039Italy2024-04-08
1040France2024-04-08
1041Russia2024-03-29
1042India2024-03-29
1043Spain2024-04-17
1044Brazil2024-04-04
1045Italy2024-04-07
1046Germany2024-04-12
1047France2024-04-18
1048Italy2024-04-14
1049Germany2024-04-17

On-Demand Data

NameIdCountryDate
Jeanfrancois F Kolmetz1000India2024-04-04
Aika U Inouye1001Argentina2024-04-14
Alejandro A Maclead1002Spain2024-04-22
Johnson K Caldarera1003India2024-04-20
Octavia Y Ferencz1004India2024-03-25
Mayumi P Inouye1005Australia2024-03-24
Faith Q Dilliard1006Germany2024-03-29
Maria E Flosi1007Italy2024-04-13
Deepesh C Flosi1008Russia2024-04-17
Johnson P Garufi1009France2024-04-03
Tony P Schemmer1010Russia2024-04-09
Cody E Royster1011Germany2024-03-28
Francesco S Oldroyd1012Germany2024-04-02
Wickens S Bolognia1013Spain2024-04-11
Leja M Campain1014France2024-04-10
Aika B Darakjy1015Canada2024-04-13
Deepesh I Oldroyd1016Canada2024-04-18
James F Sergi1017United Kingdom2024-04-12
Ricardo E Perin1018Germany2024-04-01
Mayumi B Shinko1019Spain2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie F InouyeFranceIvan Magalhaes NEGOTIATION
Jefferson S InouyeJapanIoni Bowcher NEGOTIATION
Tony L NickaSpainAnna Fali PROPOSAL
Maria Q KolmetzSpainBernardo Dominic RENEWAL
Darci T GauchoSpainXuxue Feng NEGOTIATION
Salvatore I MaletItalyAnna Fali NEW
Faith T FigeroaCanadaOnyama Limba RENEWAL
Wickens J NickaIndiaOnyama Limba NEW
Rodrigues A PoquetteIndiaXuxue Feng NEW
Chavez I RutaBrazilXuxue Feng QUALIFIED
Sinclair H IturbideAustraliaOnyama Limba UNQUALIFIED
Leja R DoeRussiaStephen Shaw NEGOTIATION
Mujtaba S PaprockiSpainAmy Elsner NEGOTIATION
Maria D GauchoCanadaStephen Shaw QUALIFIED
Aditya X GlickJapanIoni Bowcher UNQUALIFIED
Kaitlin Q GarufiJapanStephen Shaw PROPOSAL
Costa K InouyeRussiaIoni Bowcher UNQUALIFIED
Mayumi D BologniaCanadaAnna Fali QUALIFIED
Costa W DoeIndiaAsiya Javayant NEW
James B GarufiRussiaOnyama Limba UNQUALIFIED
Leon N ChuiGermanyIvan Magalhaes QUALIFIED
Claire X GlickSpainIvan Magalhaes RENEWAL
Emily S ChuiItalyIvan Magalhaes PROPOSAL
Salvatore J DilliardIndiaAmy Elsner NEW
Greenwood J TollnerFranceBernardo Dominic NEGOTIATION
Adams B ButtUnited KingdomIvan Magalhaes NEW
Aruna F ButtRussiaElwin Sharvill UNQUALIFIED
Darci S MacleadCanadaAnna Fali UNQUALIFIED
Mayumi F DilliardBrazilXuxue Feng RENEWAL
Julie O KuskoArgentinaIvan Magalhaes UNQUALIFIED
Arvin P StensethGermanyAnna Fali QUALIFIED
Emily D NickaItalyElwin Sharvill QUALIFIED
Kadeem Z FollerIndiaBernardo Dominic RENEWAL
David M OldroydCanadaAsiya Javayant UNQUALIFIED
David A SlusarskiIndiaIoni Bowcher NEGOTIATION
Nicolas E OldroydJapanAmy Elsner PROPOSAL
Leon G FlosiSpainIoni Bowcher NEGOTIATION
Nicolas O PerinItalyBernardo Dominic QUALIFIED
Aika Z BowleyAustraliaBernardo Dominic RENEWAL
Deepesh A VocelkaAustraliaStephen Shaw 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>