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
Salvatore V GlickCanadaOnyama Limba NEGOTIATION
Ricardo G DilliardArgentinaIoni Bowcher UNQUALIFIED
Leon I ButtGermanyBernardo Dominic RENEWAL
Salvatore B FigeroaItalyIvan Magalhaes NEGOTIATION
Claire K GarufiCanadaAmy Elsner QUALIFIED
Smith U BowleyRussiaAmy Elsner NEW
Faith E GauchoFranceElwin Sharvill NEGOTIATION
Maria K FlosiAustraliaElwin Sharvill PROPOSAL
Ivar W RulapaughRussiaAnna Fali PROPOSAL
Deepesh W AlbaresSpainAmy Elsner NEW
Jones X RoysterFranceStephen Shaw NEGOTIATION
Alejandro G RutaFranceAsiya Javayant RENEWAL
Arvin W SaylorsJapanElwin Sharvill UNQUALIFIED
Aruna E NestleJapanAnna Fali UNQUALIFIED
Octavia P VocelkaItalyIvan Magalhaes NEW
Emily F RulapaughCanadaStephen Shaw NEGOTIATION
Faith T KuskoRussiaIvan Magalhaes QUALIFIED
Maisha O KolmetzFranceAmy Elsner QUALIFIED
Maria K CaudyCanadaIoni Bowcher QUALIFIED
Arvin R VocelkaArgentinaOnyama Limba UNQUALIFIED
Munro F SlusarskiAustraliaElwin Sharvill NEW
Claire H KolmetzRussiaAmy Elsner PROPOSAL
Aika T PoquetteIndiaStephen Shaw RENEWAL
Silvio G RimAustraliaIoni Bowcher NEGOTIATION
Murillo V AmigonSpainBernardo Dominic RENEWAL
Stacey B MaletBrazilAmy Elsner PROPOSAL
Adams E VocelkaJapanAnna Fali NEGOTIATION
Alejandro X RutaSpainOnyama Limba NEGOTIATION
Costa R FigeroaFranceAsiya Javayant NEW
Sinclair Q MacleadGermanyStephen Shaw RENEWAL
Munro U WieserItalyOnyama Limba UNQUALIFIED
Juan O PerinBrazilStephen Shaw PROPOSAL
Antonio H CaldareraArgentinaIoni Bowcher NEW
Octavia Z WhobreyJapanIoni Bowcher QUALIFIED
Ivar C FollerRussiaElwin Sharvill RENEWAL
Deepesh B OstroskyBrazilAnna Fali UNQUALIFIED
Francesco G PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Kadeem Z GlickAustraliaOnyama Limba NEGOTIATION
Ricardo X RoysterJapanAsiya Javayant PROPOSAL
Smith E MarrierBrazilXuxue Feng NEW
Tony V RoysterAustraliaIvan Magalhaes NEW
Aditya J PoquetteRussiaBernardo Dominic PROPOSAL
Julie E SaylorsArgentinaOnyama Limba UNQUALIFIED
Nicolas S SergiGermanyBernardo Dominic PROPOSAL
Julie R CaldareraFranceAmy Elsner NEW
Arvin G CaudyItalyAnna Fali UNQUALIFIED
Clifford A PerinGermanyIvan Magalhaes PROPOSAL
Clifford T WieserArgentinaIoni Bowcher NEW
Silvio N PaprockiItalyIvan Magalhaes RENEWAL
Kadeem X PaprockiGermanyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Deepesh T AmigonIndiaAmy Elsner RENEWAL
Claire I StockhamSpainIvan Magalhaes UNQUALIFIED
Antonio Y StockhamJapanOnyama Limba NEGOTIATION
Clifford J DoeGermanyAmy Elsner UNQUALIFIED
Salvatore B KolmetzAustraliaXuxue Feng NEW
Nicolas Q CampainAustraliaAnna Fali NEW
Wickens O RimJapanElwin Sharvill UNQUALIFIED
Alejandro K SaylorsGermanyOnyama Limba NEW
Kaitlin B DilliardIndiaBernardo Dominic PROPOSAL
Misaki H RutaIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin G StensethCanada2024-04-05Printing Dimensions NEGOTIATION63Xuxue Feng
1001Morrow O MarrierRussia2024-03-26Dorl, James J Esq PROPOSAL94Ivan Magalhaes
1002Adams L WaycottFrance2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED41Onyama Limba
1003Jeanfrancois L BowleyBrazil2024-03-24Morlong Associates QUALIFIED63Ivan Magalhaes
1004Leja B FlosiUnited Kingdom2024-03-21Printing Dimensions PROPOSAL81Onyama Limba
1005Johnson P OstroskyIndia2024-04-13Benton, John B Jr QUALIFIED78Stephen Shaw
1006Wickens U CaudyItaly2024-04-15Feltz Printing Service NEW94Anna Fali
1007Stacey F KuskoIndia2024-03-31Chapman, Ross E Esq NEGOTIATION10Ioni Bowcher
1008Costa S SaylorsUnited Kingdom2024-04-14Rangoni Of Florence QUALIFIED81Elwin Sharvill
1009Maisha N PerinFrance2024-04-13Printing Dimensions QUALIFIED92Elwin Sharvill
1010Johnson G OldroydRussia2024-04-06King, Christopher A Esq PROPOSAL15Ivan Magalhaes
1011Deepesh S NickaBrazil2024-04-03Chapman, Ross E Esq RENEWAL50Anna Fali
1012Morrow M GarufiJapan2024-03-21Commercial Press NEW93Amy Elsner
1013Smith Z MaletRussia2024-03-30Rangoni Of Florence QUALIFIED30Bernardo Dominic
1014Aditya V WieserIndia2024-04-05Dorl, James J Esq QUALIFIED1Asiya Javayant
1015Mujtaba W NestleItaly2024-04-07Truhlar And Truhlar Attys PROPOSAL33Asiya Javayant
1016James N KuskoFrance2024-03-27Dorl, James J Esq QUALIFIED57Ivan Magalhaes
1017Mayumi J DarakjyArgentina2024-03-31Chapman, Ross E Esq UNQUALIFIED9Onyama Limba
1018Mujtaba Y DarakjyGermany2024-04-02Benton, John B Jr PROPOSAL26Bernardo Dominic
1019Salvatore Q TollnerJapan2024-03-29Printing Dimensions QUALIFIED93Anna Fali
1020Munro T VenereSpain2024-04-01Dorl, James J Esq NEGOTIATION15Elwin Sharvill
1021Mujtaba M KuskoBrazil2024-04-11Dorl, James J Esq RENEWAL89Bernardo Dominic
1022Aika X ChuiUnited Kingdom2024-04-13Commercial Press PROPOSAL92Onyama Limba
1023Tony Z BriddickFrance2024-03-26Chapman, Ross E Esq UNQUALIFIED66Asiya Javayant
1024Murillo L CaldareraAustralia2024-04-17King, Christopher A Esq NEW2Bernardo Dominic
1025Mayumi D ButtBrazil2024-04-03Feiner Bros NEGOTIATION55Bernardo Dominic
1026Darci M VocelkaFrance2024-04-19Chanay, Jeffrey A Esq NEW35Onyama Limba
1027Clifford Z GarufiRussia2024-04-13Truhlar And Truhlar Attys QUALIFIED90Ivan Magalhaes
1028Clifford G BowleyRussia2024-04-05Buckley Miller Wright RENEWAL57Ivan Magalhaes
1029Emily T PaprockiRussia2024-04-14Chanay, Jeffrey A Esq RENEWAL28Asiya Javayant
1030Greenwood U WhobreyRussia2024-04-14Buckley Miller Wright QUALIFIED84Bernardo Dominic
1031Munro L RulapaughRussia2024-04-16Printing Dimensions PROPOSAL10Onyama Limba
1032Chavez Q VenereBrazil2024-04-05King, Christopher A Esq PROPOSAL37Bernardo Dominic
1033Claire U SlusarskiCanada2024-03-31Morlong Associates RENEWAL46Ioni Bowcher
1034Murillo M MarrierCanada2024-04-02Printing Dimensions QUALIFIED34Asiya Javayant
1035Octavia B BowleyJapan2024-03-26Feiner Bros NEW84Elwin Sharvill
1036Maria L StensethArgentina2024-04-10Benton, John B Jr PROPOSAL75Xuxue Feng
1037Silvio A BowleyUnited Kingdom2024-03-24Truhlar And Truhlar Attys QUALIFIED22Asiya Javayant
1038Leon G MaletSpain2024-03-24Feltz Printing Service PROPOSAL87Stephen Shaw
1039David P RulapaughIndia2024-04-11Commercial Press QUALIFIED96Asiya Javayant
1040Ivar Y KolmetzAustralia2024-03-23Rousseaux, Michael Esq RENEWAL15Amy Elsner
1041Tony H GillianAustralia2024-03-30Commercial Press PROPOSAL17Elwin Sharvill
1042Claire N AmigonJapan2024-04-14Benton, John B Jr NEGOTIATION45Onyama Limba
1043Darci T BologniaUnited Kingdom2024-03-22Buckley Miller Wright NEW78Anna Fali
1044Darci I SaylorsCanada2024-04-06Chemel, James L Cpa NEW90Anna Fali
1045Faith F OldroydUnited Kingdom2024-03-29Commercial Press NEW93Elwin Sharvill
1046Emily P OstroskyUnited Kingdom2024-03-24Dorl, James J Esq RENEWAL41Stephen Shaw
1047Julie B BowleyGermany2024-03-31Rangoni Of Florence NEW45Anna Fali
1048Misaki R BologniaArgentina2024-04-11Commercial Press RENEWAL69Ivan Magalhaes
1049Chavez Z FollerSpain2024-03-31Feltz Printing Service QUALIFIED67Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ricardo L BowleyFranceStephen Shaw PROPOSAL
Arvin P RulapaughIndiaBernardo Dominic UNQUALIFIED
Kadeem R StockhamIndiaBernardo Dominic NEW
Aika G NickaSpainStephen Shaw RENEWAL
Alejandro J KolmetzUnited KingdomAnna Fali NEGOTIATION
James R BriddickJapanOnyama Limba QUALIFIED
Julie Z BologniaArgentinaAnna Fali PROPOSAL
Ashley X PaprockiCanadaAsiya Javayant NEW
Jones V RoysterArgentinaAsiya Javayant QUALIFIED
Jennifer B VenereRussiaElwin Sharvill QUALIFIED
Octavia B InouyeIndiaAnna Fali RENEWAL
Kadeem X GauchoAustraliaIvan Magalhaes QUALIFIED
Jennifer C KolmetzSpainElwin Sharvill UNQUALIFIED
Isabel T FerenczSpainBernardo Dominic PROPOSAL
Mujtaba I MacleadGermanyOnyama Limba UNQUALIFIED
Salvatore S RulapaughIndiaIvan Magalhaes RENEWAL
Leja Y PerinUnited KingdomElwin Sharvill NEGOTIATION
Leja K GauchoIndiaBernardo Dominic QUALIFIED
Mayumi Y MorascaSpainIoni Bowcher NEW
Stacey E GlickItalyBernardo Dominic NEGOTIATION
James L PaprockiRussiaElwin Sharvill UNQUALIFIED
Antonio K GauchoUnited KingdomIvan Magalhaes PROPOSAL
Cody A NestleGermanyStephen Shaw NEW
Costa C RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Leja U RoysterBrazilBernardo Dominic UNQUALIFIED
Kadeem S VenereIndiaIoni Bowcher UNQUALIFIED
Nicolas T MorascaIndiaIoni Bowcher UNQUALIFIED
Leon T GarufiItalyStephen Shaw PROPOSAL
Rodrigues Y PaprockiGermanyBernardo Dominic QUALIFIED
Maria K MaletRussiaAsiya Javayant RENEWAL
Misaki Z DarakjyAustraliaOnyama Limba NEW
Alejandro J GarufiBrazilOnyama Limba UNQUALIFIED
Emily A MarrierBrazilElwin Sharvill NEGOTIATION
Aditya V ShinkoItalyElwin Sharvill PROPOSAL
Maisha B SchemmerBrazilAmy Elsner RENEWAL
Rodrigues V GarufiRussiaBernardo Dominic QUALIFIED
Alejandro P KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Salvatore E KuskoRussiaIvan Magalhaes PROPOSAL
Mayumi I BologniaItalyStephen Shaw NEGOTIATION
Jeanfrancois L StensethJapanAsiya Javayant RENEWAL
Costa Z RimAustraliaAnna Fali NEW
Greenwood A PaprockiFranceStephen Shaw RENEWAL
Francesco W CaldareraIndiaElwin Sharvill NEGOTIATION
Darci B TollnerFranceXuxue Feng NEGOTIATION
Francesco Z RutaArgentinaOnyama Limba NEGOTIATION
Deepesh H MarrierAustraliaAmy Elsner NEW
Jennifer A StensethRussiaAnna Fali NEW
Jefferson Z BowleyItalyElwin Sharvill PROPOSAL
Izzy E ShinkoJapanIoni Bowcher QUALIFIED
Misaki P DarakjyCanadaXuxue Feng PROPOSAL
Frozen Columns
Name
Aditya W Garufi
Francesco R Foller
Octavia Z Caldarera
Costa Y Ruta
Ivar W Nicka
Murillo U Kusko
Julie S Stockham
Claire U Malet
Darci N Iturbide
Johnson Y Ferencz
Leja X Darakjy
Juan Z Garufi
Ashley S Perin
Aditya A Ostrosky
Nicolas V Whobrey
Jeanfrancois Y Rulapaugh
Mujtaba N Briddick
Julie R Wieser
Greenwood B Kusko
Ricardo Z Perin
Francesco A Iturbide
Francesco S Tollner
Nicolas F Whobrey
Jeanfrancois Q Bowley
Francesco I Figeroa
Morrow H Ruta
Leja G Bolognia
Misaki N Vocelka
Izzy I Malet
Julie L Maclead
Jones P Rulapaugh
Isabel N Slusarski
Clifford N Tollner
Deepesh Z Malet
Kaitlin X Morasca
Leon S Bolognia
Kaitlin S Venere
Greenwood Y Stenseth
Deepesh H Shinko
Stacey A Dilliard
Adams H Nicka
Aditya E Kolmetz
Salvatore C Amigon
Claire J Shinko
Adams G Glick
Smith G Ferencz
Leon P Waycott
Mayumi W Chui
Ivar Y Schemmer
Alejandro J Vocelka
IdCountryDate
1000Australia2024-03-27
1001France2024-04-13
1002Japan2024-04-08
1003Russia2024-03-22
1004Brazil2024-03-27
1005Russia2024-04-10
1006United Kingdom2024-03-30
1007France2024-04-04
1008Brazil2024-04-12
1009Russia2024-04-09
1010Germany2024-04-13
1011India2024-04-02
1012Australia2024-04-03
1013Japan2024-04-04
1014Canada2024-03-28
1015Spain2024-03-27
1016Russia2024-04-09
1017United Kingdom2024-04-05
1018India2024-03-31
1019Russia2024-03-23
1020Brazil2024-04-10
1021United Kingdom2024-04-06
1022Italy2024-04-06
1023Australia2024-04-08
1024Australia2024-03-22
1025France2024-04-16
1026Spain2024-04-10
1027Spain2024-04-13
1028Brazil2024-04-13
1029United Kingdom2024-04-02
1030Russia2024-04-12
1031Spain2024-04-07
1032Argentina2024-04-05
1033India2024-04-05
1034France2024-04-03
1035France2024-04-17
1036Russia2024-04-06
1037Canada2024-04-05
1038Argentina2024-04-02
1039Germany2024-03-26
1040Japan2024-04-09
1041Japan2024-04-14
1042Canada2024-03-22
1043Spain2024-03-25
1044France2024-04-13
1045Australia2024-04-17
1046Russia2024-04-17
1047Brazil2024-04-16
1048Brazil2024-04-03
1049India2024-03-24

On-Demand Data

NameIdCountryDate
Adams C Wieser1000Brazil2024-03-21
Aika C Slusarski1001Brazil2024-04-15
Nicolas N Inouye1002Brazil2024-03-23
Isabel K Stenseth1003Australia2024-03-24
James F Iturbide1004United Kingdom2024-03-30
Munro B Sergi1005Canada2024-03-26
David F Butt1006Brazil2024-04-06
David X Saylors1007Argentina2024-04-11
Aika R Wieser1008Australia2024-03-26
Rodrigues C Caudy1009Australia2024-03-29
Kadeem I Iturbide1010Italy2024-03-29
Mayumi J Perin1011Brazil2024-04-05
Emily J Rim1012Argentina2024-03-26
Maria W Gillian1013Canada2024-04-07
Aruna V Gaucho1014Russia2024-04-10
Alejandro Q Sergi1015Italy2024-04-16
Murillo O Kusko1016Argentina2024-04-02
Aika I Bolognia1017United Kingdom2024-04-08
Aditya L Ferencz1018India2024-04-03
Johnson J Caudy1019Germany2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith Q SaylorsAustraliaElwin Sharvill PROPOSAL
Jefferson V GlickGermanyAmy Elsner PROPOSAL
Stacey A KolmetzFranceIvan Magalhaes UNQUALIFIED
Jones Q StensethItalyStephen Shaw PROPOSAL
Salvatore H MaletAustraliaAmy Elsner PROPOSAL
David X SchemmerIndiaOnyama Limba NEGOTIATION
Morrow I PaprockiBrazilAsiya Javayant NEW
Morrow N SaylorsJapanXuxue Feng RENEWAL
Munro Y GarufiJapanBernardo Dominic NEGOTIATION
Johnson E MarrierCanadaElwin Sharvill NEW
Darci W DilliardJapanIvan Magalhaes PROPOSAL
Tony E KolmetzItalyStephen Shaw QUALIFIED
Deepesh T DoeIndiaElwin Sharvill PROPOSAL
Leja K IturbideSpainStephen Shaw UNQUALIFIED
Ivar R VocelkaArgentinaOnyama Limba RENEWAL
Francesco Z PerinCanadaOnyama Limba PROPOSAL
Darci E ButtCanadaAmy Elsner NEW
Mayumi O GlickGermanyAnna Fali NEW
Jeanfrancois O FigeroaSpainIoni Bowcher NEW
Mujtaba H CaudyCanadaAnna Fali QUALIFIED
Alejandro D OldroydIndiaElwin Sharvill QUALIFIED
Rodrigues Y CaudyArgentinaStephen Shaw NEGOTIATION
Stacey D StensethArgentinaElwin Sharvill QUALIFIED
Nicolas M PaprockiArgentinaOnyama Limba QUALIFIED
Leon H RutaJapanAsiya Javayant QUALIFIED
Salvatore J FlosiJapanXuxue Feng NEW
Faith Q PerinItalyAsiya Javayant PROPOSAL
Johnson R DilliardArgentinaAsiya Javayant QUALIFIED
Antonio B KuskoIndiaElwin Sharvill NEW
James Q InouyeCanadaElwin Sharvill PROPOSAL
Aditya A FerenczUnited KingdomAsiya Javayant PROPOSAL
Faith K PoquetteAustraliaAmy Elsner QUALIFIED
Greenwood S ChuiJapanAmy Elsner QUALIFIED
Ashley I VocelkaGermanyBernardo Dominic NEW
Faith A MacleadBrazilOnyama Limba QUALIFIED
Izzy H KuskoIndiaStephen Shaw RENEWAL
Greenwood W MorascaCanadaIvan Magalhaes RENEWAL
Juan I MaletIndiaElwin Sharvill RENEWAL
Cody A RutaSpainAmy Elsner NEW
Kadeem E GauchoBrazilAnna Fali NEW

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