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
Cody K WieserRussiaStephen Shaw PROPOSAL
Murillo E PerinItalyIvan Magalhaes RENEWAL
Mayumi W FerenczCanadaStephen Shaw PROPOSAL
Rodrigues G CaudyArgentinaStephen Shaw PROPOSAL
Munro K OstroskyItalyStephen Shaw RENEWAL
James J MaletJapanBernardo Dominic NEGOTIATION
Smith R InouyeIndiaOnyama Limba NEW
Rodrigues A MorascaItalyBernardo Dominic RENEWAL
Nicolas Q VenereUnited KingdomBernardo Dominic UNQUALIFIED
Silvio Y InouyeArgentinaOnyama Limba NEGOTIATION
Greenwood M KolmetzFranceStephen Shaw RENEWAL
Misaki K SergiUnited KingdomIoni Bowcher RENEWAL
Clifford F DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Chavez U AlbaresUnited KingdomAmy Elsner PROPOSAL
Arvin H BriddickFranceBernardo Dominic RENEWAL
Costa R SchemmerIndiaIoni Bowcher UNQUALIFIED
James E WaycottItalyAsiya Javayant QUALIFIED
Jones T WaycottCanadaBernardo Dominic NEGOTIATION
Juan B MarrierAustraliaAnna Fali QUALIFIED
Octavia Y MaletGermanyOnyama Limba UNQUALIFIED
Mayumi I FollerJapanAmy Elsner UNQUALIFIED
Kaitlin E DarakjyCanadaXuxue Feng PROPOSAL
Ricardo J VenereSpainXuxue Feng PROPOSAL
Aditya S IturbideFranceAnna Fali UNQUALIFIED
Rodrigues C SergiRussiaIoni Bowcher QUALIFIED
Francesco W NickaBrazilAmy Elsner RENEWAL
Silvio Y DilliardCanadaAnna Fali RENEWAL
Aika A KuskoItalyBernardo Dominic PROPOSAL
Nicolas L NestleArgentinaStephen Shaw QUALIFIED
James C StensethItalyBernardo Dominic UNQUALIFIED
Cody A ButtUnited KingdomStephen Shaw QUALIFIED
Maisha Q VenereArgentinaElwin Sharvill PROPOSAL
Costa S FigeroaRussiaOnyama Limba PROPOSAL
Sinclair N BologniaFranceAnna Fali NEGOTIATION
Antonio Z KuskoFranceStephen Shaw PROPOSAL
Salvatore W RulapaughItalyAsiya Javayant NEGOTIATION
Kadeem F RulapaughArgentinaIoni Bowcher QUALIFIED
Isabel T BriddickItalyIvan Magalhaes NEW
Darci U DarakjyRussiaStephen Shaw RENEWAL
Costa P GillianBrazilAsiya Javayant QUALIFIED
Alejandro K SlusarskiIndiaOnyama Limba QUALIFIED
Silvio Q PaprockiFranceAsiya Javayant UNQUALIFIED
Mayumi U ChuiCanadaXuxue Feng UNQUALIFIED
Cody Q NestleUnited KingdomBernardo Dominic UNQUALIFIED
Cody E PerinCanadaAmy Elsner NEW
Johnson Z StockhamIndiaOnyama Limba UNQUALIFIED
Emily C SchemmerItalyElwin Sharvill NEGOTIATION
Darci X VocelkaGermanyAmy Elsner PROPOSAL
Smith X FlosiJapanOnyama Limba UNQUALIFIED
Johnson I MaletItalyElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin D BriddickJapanAsiya Javayant NEGOTIATION
Morrow G SlusarskiArgentinaIoni Bowcher QUALIFIED
Isabel A PoquetteSpainAnna Fali QUALIFIED
Smith J StensethJapanIoni Bowcher RENEWAL
Mujtaba X CaldareraGermanyAsiya Javayant PROPOSAL
Octavia M ShinkoRussiaXuxue Feng QUALIFIED
Jefferson I FerenczIndiaAnna Fali NEW
Ricardo D AmigonCanadaStephen Shaw NEW
Salvatore E PerinUnited KingdomOnyama Limba QUALIFIED
Jones J SergiArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco H SergiArgentina2024-03-27Dorl, James J Esq NEW99Ivan Magalhaes
1001Octavia L StockhamJapan2024-03-26Chanay, Jeffrey A Esq RENEWAL75Onyama Limba
1002Jefferson S DilliardSpain2024-04-16Commercial Press RENEWAL29Xuxue Feng
1003Claire Q OldroydUnited Kingdom2024-04-03Rousseaux, Michael Esq NEW52Onyama Limba
1004Maisha A SchemmerGermany2024-03-29Morlong Associates NEW52Xuxue Feng
1005Kaitlin G StockhamSpain2024-04-07Chapman, Ross E Esq PROPOSAL21Elwin Sharvill
1006Stacey G BowleyJapan2024-04-19Benton, John B Jr QUALIFIED68Bernardo Dominic
1007Clifford R RimCanada2024-04-08Chapman, Ross E Esq PROPOSAL44Asiya Javayant
1008Mayumi X VenereFrance2024-04-14Dorl, James J Esq NEW73Elwin Sharvill
1009Adams C InouyeGermany2024-04-05Truhlar And Truhlar Attys UNQUALIFIED47Ivan Magalhaes
1010Leon F ChuiSpain2024-04-13Buckley Miller Wright NEW73Stephen Shaw
1011Cody A GauchoGermany2024-04-20Dorl, James J Esq NEW77Ivan Magalhaes
1012Stacey W RutaIndia2024-04-01King, Christopher A Esq UNQUALIFIED10Xuxue Feng
1013Jefferson I FigeroaRussia2024-04-09Rousseaux, Michael Esq NEGOTIATION22Onyama Limba
1014Ricardo L BowleyFrance2024-03-27Chapman, Ross E Esq NEW52Stephen Shaw
1015Julie C OstroskyAustralia2024-04-07King, Christopher A Esq PROPOSAL55Amy Elsner
1016Alejandro H SergiUnited Kingdom2024-03-27Rangoni Of Florence QUALIFIED76Anna Fali
1017Adams U BologniaGermany2024-04-01Dorl, James J Esq NEW12Ivan Magalhaes
1018Adams E VenereAustralia2024-03-26Chapman, Ross E Esq NEW43Asiya Javayant
1019Rodrigues Y DoeGermany2024-04-17Feltz Printing Service NEW10Asiya Javayant
1020Mayumi S AlbaresArgentina2024-04-20Benton, John B Jr RENEWAL73Ivan Magalhaes
1021Deepesh B IturbideArgentina2024-04-03Benton, John B Jr PROPOSAL57Amy Elsner
1022Tony N IturbideFrance2024-04-21Buckley Miller Wright UNQUALIFIED61Elwin Sharvill
1023Arvin I StensethRussia2024-03-27Chanay, Jeffrey A Esq QUALIFIED60Xuxue Feng
1024Silvio H ChuiBrazil2024-04-08Commercial Press NEW16Onyama Limba
1025David L NickaArgentina2024-04-03Dorl, James J Esq NEGOTIATION10Ioni Bowcher
1026Antonio N PaprockiArgentina2024-04-24Chapman, Ross E Esq UNQUALIFIED62Xuxue Feng
1027Faith M FollerJapan2024-04-08King, Christopher A Esq QUALIFIED51Asiya Javayant
1028Murillo R InouyeIndia2024-04-07King, Christopher A Esq NEGOTIATION4Bernardo Dominic
1029Jefferson Z PoquetteGermany2024-04-06King, Christopher A Esq NEW70Amy Elsner
1030Darci C PaprockiIndia2024-04-16Chemel, James L Cpa NEGOTIATION50Xuxue Feng
1031Darci F OldroydSpain2024-04-17Chemel, James L Cpa RENEWAL98Ioni Bowcher
1032Clifford X KolmetzIndia2024-04-02Commercial Press QUALIFIED53Onyama Limba
1033Ivar K ShinkoSpain2024-04-09Feiner Bros NEGOTIATION19Asiya Javayant
1034David Q TollnerBrazil2024-04-12Benton, John B Jr UNQUALIFIED69Elwin Sharvill
1035Smith M OstroskySpain2024-04-11Chemel, James L Cpa RENEWAL67Ioni Bowcher
1036Jones K TollnerIndia2024-04-12Chanay, Jeffrey A Esq NEW33Ivan Magalhaes
1037Octavia A KolmetzSpain2024-04-23Buckley Miller Wright NEGOTIATION32Amy Elsner
1038Leja X BowleySpain2024-03-31Dorl, James J Esq QUALIFIED0Elwin Sharvill
1039Juan D SchemmerSpain2024-04-05Dorl, James J Esq PROPOSAL8Amy Elsner
1040Leon A TollnerGermany2024-04-08Feltz Printing Service RENEWAL82Ioni Bowcher
1041Ricardo S WaycottIndia2024-04-20Printing Dimensions UNQUALIFIED62Ioni Bowcher
1042Julie X BowleyJapan2024-04-17Rousseaux, Michael Esq UNQUALIFIED18Stephen Shaw
1043Isabel M GillianIndia2024-04-21Rangoni Of Florence UNQUALIFIED48Ioni Bowcher
1044Octavia F FigeroaRussia2024-04-17Rangoni Of Florence NEW52Ioni Bowcher
1045Sinclair S GarufiBrazil2024-04-04Rousseaux, Michael Esq NEGOTIATION66Anna Fali
1046Leon J KuskoJapan2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED42Amy Elsner
1047Kaitlin C ChuiItaly2024-04-11Buckley Miller Wright NEGOTIATION76Bernardo Dominic
1048Munro F DoeSpain2024-04-08Truhlar And Truhlar Attys RENEWAL65Ioni Bowcher
1049Leon H SaylorsAustralia2024-03-30Dorl, James J Esq PROPOSAL92Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Octavia C SergiIndiaElwin Sharvill QUALIFIED
Costa U SaylorsRussiaOnyama Limba NEW
Antonio J GauchoGermanyIvan Magalhaes PROPOSAL
Cody Q NestleFranceXuxue Feng QUALIFIED
Maisha S SergiAustraliaStephen Shaw RENEWAL
Nicolas Y NestleFranceStephen Shaw UNQUALIFIED
Nicolas P RoysterUnited KingdomIoni Bowcher NEGOTIATION
Julie M NestleFranceStephen Shaw UNQUALIFIED
Emily K IturbideBrazilXuxue Feng RENEWAL
Juan K SergiItalyElwin Sharvill UNQUALIFIED
Nicolas U AlbaresCanadaIoni Bowcher NEGOTIATION
Faith S VocelkaCanadaElwin Sharvill PROPOSAL
Mujtaba P MaletArgentinaIvan Magalhaes RENEWAL
Adams P CampainAustraliaElwin Sharvill PROPOSAL
Murillo I FollerCanadaAnna Fali RENEWAL
Leja Z FlosiUnited KingdomStephen Shaw NEGOTIATION
Claire V GlickItalyElwin Sharvill NEGOTIATION
Greenwood J GlickSpainAnna Fali RENEWAL
Deepesh J BriddickRussiaAmy Elsner NEGOTIATION
Smith V RutaItalyBernardo Dominic PROPOSAL
Juan E NestleSpainAnna Fali RENEWAL
Darci D GauchoItalyXuxue Feng PROPOSAL
Jones F RoysterAustraliaXuxue Feng NEGOTIATION
Isabel R SchemmerCanadaElwin Sharvill PROPOSAL
Julie F RoysterGermanyBernardo Dominic UNQUALIFIED
Izzy P MorascaBrazilOnyama Limba QUALIFIED
Leon P MorascaJapanXuxue Feng NEW
Silvio D FlosiGermanyAnna Fali RENEWAL
Adams I FigeroaIndiaIvan Magalhaes RENEWAL
Maisha T CampainItalyXuxue Feng QUALIFIED
Mujtaba S BriddickFranceAsiya Javayant QUALIFIED
Wickens Q FerenczItalyElwin Sharvill PROPOSAL
Claire O ButtItalyStephen Shaw UNQUALIFIED
Salvatore C TollnerRussiaXuxue Feng RENEWAL
Isabel T OldroydGermanyIoni Bowcher UNQUALIFIED
Ricardo P FerenczUnited KingdomIoni Bowcher PROPOSAL
Murillo A VenereGermanyBernardo Dominic QUALIFIED
Costa Q CaudyGermanyStephen Shaw RENEWAL
Ivar D PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Deepesh X MorascaIndiaAnna Fali QUALIFIED
Greenwood Q AlbaresRussiaStephen Shaw UNQUALIFIED
Maria H MaletGermanyAnna Fali RENEWAL
Misaki B FerenczCanadaOnyama Limba RENEWAL
Arvin D BowleyUnited KingdomElwin Sharvill PROPOSAL
Aika B BriddickArgentinaStephen Shaw RENEWAL
Kadeem C MacleadUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin I StockhamUnited KingdomOnyama Limba PROPOSAL
Isabel Y FerenczArgentinaAnna Fali QUALIFIED
Isabel B PerinIndiaStephen Shaw QUALIFIED
Wickens O NickaItalyStephen Shaw NEGOTIATION
Frozen Columns
Name
Ricardo U Rim
Misaki Z Doe
Silvio S Venere
Aditya L Nicka
Adams H Gaucho
Julie F Wieser
Jefferson Y Dilliard
Deepesh J Iturbide
Ivar I Perin
Leja L Foller
Munro I Kolmetz
Alejandro B Gillian
Jones U Stockham
Johnson N Figeroa
Maria F Kolmetz
Faith T Garufi
Ricardo X Inouye
Izzy E Wieser
Arvin U Perin
Misaki Z Caudy
Ashley I Nestle
Rodrigues E Saylors
Kaitlin T Slusarski
Claire X Bowley
Jeanfrancois T Inouye
Murillo J Perin
Jones Z Kusko
Mujtaba Y Maclead
Faith J Kusko
Maria N Maclead
Munro E Rim
Julie G Campain
Aika B Venere
Tony P Maclead
Arvin Z Chui
Wickens N Ferencz
Emily O Perin
David M Nestle
Nicolas V Venere
Adams J Venere
Sinclair X Marrier
Claire T Stenseth
Salvatore T Oldroyd
Isabel J Bolognia
Smith B Figeroa
Aruna Y Paprocki
Juan K Doe
Arvin L Butt
David L Iturbide
Smith U Schemmer
IdCountryDate
1000Canada2024-03-28
1001Australia2024-03-29
1002France2024-04-16
1003Germany2024-04-18
1004Brazil2024-04-04
1005Brazil2024-04-02
1006Spain2024-04-21
1007India2024-04-15
1008United Kingdom2024-04-22
1009France2024-04-11
1010Germany2024-04-01
1011Russia2024-04-12
1012Japan2024-04-19
1013Argentina2024-03-31
1014France2024-04-24
1015India2024-04-12
1016Japan2024-03-29
1017Italy2024-04-03
1018Spain2024-04-18
1019Russia2024-04-19
1020India2024-04-08
1021Russia2024-04-05
1022Canada2024-04-07
1023Canada2024-04-15
1024France2024-04-22
1025Spain2024-04-15
1026France2024-04-20
1027Russia2024-03-31
1028Spain2024-04-22
1029Canada2024-04-14
1030Italy2024-04-03
1031Russia2024-04-07
1032Canada2024-04-19
1033India2024-04-04
1034France2024-04-01
1035Argentina2024-03-27
1036Argentina2024-04-23
1037Canada2024-03-27
1038Australia2024-04-01
1039Argentina2024-04-05
1040Spain2024-04-07
1041Italy2024-04-15
1042France2024-03-28
1043Germany2024-04-14
1044India2024-04-18
1045France2024-03-29
1046United Kingdom2024-04-15
1047Spain2024-04-21
1048Australia2024-04-12
1049Russia2024-04-07

On-Demand Data

NameIdCountryDate
Maria M Doe1000France2024-04-16
Greenwood F Doe1001Brazil2024-03-31
Leon U Stockham1002Australia2024-04-14
Maisha J Marrier1003Spain2024-04-11
James M Whobrey1004Argentina2024-03-31
Claire T Rim1005Canada2024-04-12
Nicolas R Inouye1006Germany2024-04-22
Morrow C Iturbide1007Italy2024-04-17
Jeanfrancois O Dilliard1008Argentina2024-04-18
Izzy F Malet1009France2024-04-19
Ivar V Tollner1010Germany2024-04-03
Clifford I Darakjy1011Australia2024-04-19
Jones O Doe1012United Kingdom2024-04-23
Mujtaba H Dilliard1013France2024-04-16
Leon H Butt1014Japan2024-04-18
Adams Q Caudy1015France2024-03-31
Aruna X Vocelka1016India2024-04-10
Alejandro N Sergi1017Australia2024-04-14
Mujtaba B Gaucho1018France2024-03-30
Leja M Slusarski1019United Kingdom2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois Q MorascaItalyAsiya Javayant NEW
Morrow P FerenczJapanIoni Bowcher RENEWAL
Aika C SergiArgentinaXuxue Feng PROPOSAL
Smith B CaldareraBrazilStephen Shaw NEW
Octavia X KolmetzItalyOnyama Limba QUALIFIED
Octavia J NestleRussiaStephen Shaw UNQUALIFIED
Octavia U ButtSpainElwin Sharvill QUALIFIED
Ashley N GarufiBrazilAnna Fali NEGOTIATION
Ricardo R PerinRussiaAnna Fali RENEWAL
Mujtaba P OldroydCanadaAnna Fali PROPOSAL
Ashley K VenereIndiaOnyama Limba NEW
Sinclair Q MorascaItalyIoni Bowcher PROPOSAL
Isabel Z WhobreyGermanyStephen Shaw QUALIFIED
Jeanfrancois Q CaldareraUnited KingdomAmy Elsner RENEWAL
Aika M RulapaughItalyOnyama Limba NEGOTIATION
Deepesh S MorascaSpainStephen Shaw UNQUALIFIED
Jefferson N GlickRussiaIvan Magalhaes PROPOSAL
Ivar I WaycottGermanyIvan Magalhaes NEW
Emily B WaycottFranceXuxue Feng UNQUALIFIED
Isabel C SergiSpainIvan Magalhaes PROPOSAL
Jeanfrancois T FlosiIndiaElwin Sharvill RENEWAL
Faith A VocelkaBrazilElwin Sharvill NEGOTIATION
Stacey V PerinUnited KingdomBernardo Dominic NEW
Morrow P FlosiSpainAnna Fali RENEWAL
Ashley B SlusarskiBrazilElwin Sharvill PROPOSAL
Juan Y MacleadArgentinaXuxue Feng NEGOTIATION
Juan P BologniaRussiaAsiya Javayant PROPOSAL
Adams P AlbaresRussiaAnna Fali NEW
Antonio Z GarufiArgentinaIoni Bowcher NEGOTIATION
Faith F RoysterSpainAnna Fali RENEWAL
Tony N DarakjyGermanyElwin Sharvill PROPOSAL
Maisha K GauchoArgentinaStephen Shaw RENEWAL
Ricardo E GlickCanadaAmy Elsner NEGOTIATION
Salvatore K DoeItalyAnna Fali NEW
Murillo C KuskoFranceIoni Bowcher UNQUALIFIED
Stacey Y PoquetteIndiaIoni Bowcher NEGOTIATION
Juan R WaycottUnited KingdomXuxue Feng QUALIFIED
David I RutaJapanAsiya Javayant PROPOSAL
Ricardo A BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Johnson L AmigonUnited KingdomBernardo Dominic 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>