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
Nicolas J InouyeArgentinaAnna Fali UNQUALIFIED
Smith C GauchoIndiaBernardo Dominic NEGOTIATION
Faith L PoquetteSpainAmy Elsner NEGOTIATION
Smith Z OldroydJapanIoni Bowcher NEW
Antonio A StensethFranceAsiya Javayant PROPOSAL
Misaki C RimArgentinaAnna Fali UNQUALIFIED
Stacey V SchemmerArgentinaIoni Bowcher QUALIFIED
Costa H WieserSpainAsiya Javayant UNQUALIFIED
Morrow D BowleyIndiaElwin Sharvill PROPOSAL
Greenwood A FlosiJapanBernardo Dominic UNQUALIFIED
Antonio K ChuiGermanyElwin Sharvill RENEWAL
Murillo C NestleFranceStephen Shaw PROPOSAL
Jeanfrancois A CaldareraArgentinaStephen Shaw QUALIFIED
Johnson P BologniaArgentinaIvan Magalhaes RENEWAL
Clifford P MorascaItalyStephen Shaw PROPOSAL
Misaki Y StensethFranceElwin Sharvill NEW
Chavez Y RutaUnited KingdomAsiya Javayant NEW
Salvatore A PaprockiSpainAsiya Javayant NEGOTIATION
Mujtaba Y SchemmerJapanAnna Fali PROPOSAL
Faith M NickaArgentinaAmy Elsner NEGOTIATION
Costa B IturbideUnited KingdomAmy Elsner NEGOTIATION
Izzy O CaldareraItalyElwin Sharvill RENEWAL
Salvatore V TollnerBrazilIoni Bowcher QUALIFIED
Adams C RimRussiaStephen Shaw NEGOTIATION
Morrow P SergiFranceAmy Elsner PROPOSAL
Misaki A ButtBrazilXuxue Feng QUALIFIED
Aruna V StensethAustraliaIvan Magalhaes NEW
Stacey A FerenczItalyAmy Elsner PROPOSAL
Jones R GillianIndiaElwin Sharvill NEGOTIATION
Arvin N PerinUnited KingdomXuxue Feng QUALIFIED
Chavez A OldroydItalyAnna Fali UNQUALIFIED
Claire Q InouyeJapanIoni Bowcher RENEWAL
Adams Q AlbaresJapanIoni Bowcher NEW
Nicolas W DarakjyIndiaXuxue Feng NEW
Emily Q SchemmerCanadaAnna Fali PROPOSAL
Leja M GauchoAustraliaAnna Fali NEGOTIATION
Adams C FigeroaArgentinaElwin Sharvill PROPOSAL
Octavia J SchemmerAustraliaStephen Shaw QUALIFIED
Antonio I ButtBrazilOnyama Limba PROPOSAL
Morrow Y MorascaIndiaBernardo Dominic QUALIFIED
Claire H CaldareraRussiaOnyama Limba UNQUALIFIED
Sinclair K AlbaresArgentinaAnna Fali NEGOTIATION
Kadeem I ShinkoAustraliaIoni Bowcher NEGOTIATION
Wickens B FlosiArgentinaXuxue Feng RENEWAL
Jones W StockhamAustraliaBernardo Dominic NEW
Silvio T FerenczJapanStephen Shaw UNQUALIFIED
Jeanfrancois Z CaudyJapanIoni Bowcher UNQUALIFIED
Jefferson D WhobreyFranceAsiya Javayant PROPOSAL
Octavia M PaprockiFranceBernardo Dominic NEW
Leja N NickaIndiaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha L FerenczUnited KingdomElwin Sharvill NEGOTIATION
Maisha D MacleadArgentinaAmy Elsner NEGOTIATION
Mujtaba Q VenereIndiaOnyama Limba NEW
Smith L TollnerSpainBernardo Dominic UNQUALIFIED
James W RoysterSpainIoni Bowcher UNQUALIFIED
Morrow N RulapaughUnited KingdomAnna Fali QUALIFIED
Cody A WaycottRussiaAsiya Javayant PROPOSAL
Jefferson W RutaUnited KingdomAsiya Javayant NEGOTIATION
Ricardo X SaylorsCanadaAnna Fali NEGOTIATION
Julie S FollerAustraliaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo X OstroskyArgentina2024-04-12Commercial Press RENEWAL78Elwin Sharvill
1001Emily B StensethRussia2024-04-11Chapman, Ross E Esq NEW65Elwin Sharvill
1002Izzy B VenereCanada2024-04-04Buckley Miller Wright PROPOSAL64Xuxue Feng
1003Chavez T ShinkoCanada2024-04-25Printing Dimensions UNQUALIFIED46Bernardo Dominic
1004Isabel F MacleadArgentina2024-04-23Chapman, Ross E Esq PROPOSAL50Anna Fali
1005Nicolas P GauchoSpain2024-04-21Chapman, Ross E Esq NEW11Onyama Limba
1006David M GlickItaly2024-04-12King, Christopher A Esq NEW58Bernardo Dominic
1007Stacey V SergiFrance2024-04-11Chanay, Jeffrey A Esq QUALIFIED95Onyama Limba
1008Maisha U MarrierItaly2024-04-06Chanay, Jeffrey A Esq NEW42Elwin Sharvill
1009Arvin B WhobreyUnited Kingdom2024-04-05King, Christopher A Esq QUALIFIED35Onyama Limba
1010Cody O BowleyJapan2024-04-11Printing Dimensions NEW90Ivan Magalhaes
1011Ricardo A AmigonRussia2024-04-27Rangoni Of Florence PROPOSAL41Elwin Sharvill
1012Chavez I OstroskyRussia2024-04-05Benton, John B Jr PROPOSAL84Stephen Shaw
1013Leja L BologniaSpain2024-04-20Buckley Miller Wright RENEWAL3Elwin Sharvill
1014Smith H RutaAustralia2024-04-12Feiner Bros NEW54Asiya Javayant
1015Darci C FigeroaRussia2024-04-15Chemel, James L Cpa RENEWAL62Elwin Sharvill
1016Leon D MacleadUnited Kingdom2024-04-23Chapman, Ross E Esq NEGOTIATION41Stephen Shaw
1017Alejandro X OldroydGermany2024-04-29Commercial Press UNQUALIFIED69Amy Elsner
1018Kadeem C GauchoIndia2024-04-17King, Christopher A Esq NEW96Onyama Limba
1019Arvin A ShinkoArgentina2024-04-11Chanay, Jeffrey A Esq PROPOSAL69Bernardo Dominic
1020Mujtaba H MacleadAustralia2024-04-05Morlong Associates PROPOSAL41Bernardo Dominic
1021Leja S DarakjyFrance2024-04-29Benton, John B Jr QUALIFIED0Elwin Sharvill
1022Salvatore B RimArgentina2024-04-13Truhlar And Truhlar Attys RENEWAL79Amy Elsner
1023Jennifer H StensethItaly2024-04-28Commercial Press PROPOSAL68Anna Fali
1024Jones R FollerAustralia2024-04-03Chapman, Ross E Esq UNQUALIFIED80Xuxue Feng
1025Clifford D NickaJapan2024-04-27Benton, John B Jr QUALIFIED69Xuxue Feng
1026Mujtaba Z IturbideBrazil2024-04-22Chemel, James L Cpa UNQUALIFIED57Xuxue Feng
1027Salvatore R AlbaresFrance2024-04-08Chemel, James L Cpa QUALIFIED12Amy Elsner
1028Aika V NestleItaly2024-04-05Buckley Miller Wright NEGOTIATION12Xuxue Feng
1029Murillo X RoysterBrazil2024-04-16Morlong Associates RENEWAL87Ioni Bowcher
1030Octavia O DarakjyGermany2024-04-23Commercial Press PROPOSAL69Onyama Limba
1031Julie K ShinkoSpain2024-04-17Feiner Bros NEW26Ivan Magalhaes
1032Jeanfrancois C KolmetzJapan2024-04-24Chemel, James L Cpa UNQUALIFIED67Asiya Javayant
1033Wickens B RoysterRussia2024-04-04Chapman, Ross E Esq UNQUALIFIED46Ivan Magalhaes
1034Kaitlin I SaylorsAustralia2024-04-05Commercial Press QUALIFIED3Bernardo Dominic
1035Chavez L MarrierCanada2024-04-26Benton, John B Jr UNQUALIFIED18Onyama Limba
1036Nicolas K AlbaresUnited Kingdom2024-04-08King, Christopher A Esq NEGOTIATION21Ioni Bowcher
1037Isabel T WhobreyUnited Kingdom2024-04-21Dorl, James J Esq RENEWAL38Elwin Sharvill
1038Costa D MaletItaly2024-04-18Printing Dimensions UNQUALIFIED51Ioni Bowcher
1039Jefferson S DarakjyGermany2024-04-20Printing Dimensions NEW75Stephen Shaw
1040Greenwood Q KolmetzArgentina2024-04-13Feltz Printing Service PROPOSAL42Asiya Javayant
1041Tony I FigeroaArgentina2024-04-11King, Christopher A Esq NEGOTIATION63Asiya Javayant
1042Rodrigues Z InouyeArgentina2024-04-02Feltz Printing Service RENEWAL46Elwin Sharvill
1043Wickens K NestleGermany2024-04-04Truhlar And Truhlar Attys NEGOTIATION84Onyama Limba
1044Jefferson X NestleSpain2024-04-22Dorl, James J Esq NEGOTIATION20Ivan Magalhaes
1045Aditya Y MarrierBrazil2024-04-29Truhlar And Truhlar Attys NEGOTIATION63Amy Elsner
1046Aruna W WaycottFrance2024-04-24Printing Dimensions QUALIFIED53Anna Fali
1047Mujtaba Q PerinJapan2024-04-05Rousseaux, Michael Esq NEW61Anna Fali
1048Francesco G FerenczAustralia2024-04-09Rousseaux, Michael Esq QUALIFIED28Onyama Limba
1049Maisha A RutaFrance2024-04-21Chapman, Ross E Esq NEGOTIATION68Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Darci C PerinRussiaAmy Elsner UNQUALIFIED
Octavia D StensethFranceElwin Sharvill NEW
Isabel X OstroskyGermanyAmy Elsner NEGOTIATION
Stacey G MacleadIndiaIvan Magalhaes QUALIFIED
Maria S PaprockiSpainAmy Elsner PROPOSAL
Ashley L FlosiUnited KingdomAnna Fali QUALIFIED
Costa P DoeGermanyXuxue Feng UNQUALIFIED
Leja N AlbaresUnited KingdomStephen Shaw QUALIFIED
Ashley O CaldareraAustraliaOnyama Limba NEW
Ivar K RimItalyStephen Shaw PROPOSAL
Jeanfrancois Q OldroydBrazilIoni Bowcher NEGOTIATION
Jennifer G RutaSpainIoni Bowcher NEGOTIATION
Stacey A StockhamGermanyIoni Bowcher NEGOTIATION
James U VocelkaBrazilOnyama Limba RENEWAL
Sinclair H FerenczFranceStephen Shaw QUALIFIED
Costa W GillianItalyAsiya Javayant NEW
Ivar R ChuiBrazilBernardo Dominic NEW
Maisha Y MaletItalyAsiya Javayant NEGOTIATION
Jones S KolmetzItalyAmy Elsner NEGOTIATION
Juan E CaudyArgentinaElwin Sharvill NEGOTIATION
Maisha H MarrierFranceAmy Elsner QUALIFIED
Darci J TollnerAustraliaAmy Elsner RENEWAL
Jefferson D OstroskyGermanyElwin Sharvill QUALIFIED
Arvin X VocelkaGermanyElwin Sharvill PROPOSAL
Darci Z ButtIndiaAnna Fali NEGOTIATION
Julie C VocelkaArgentinaOnyama Limba RENEWAL
Misaki X CampainUnited KingdomXuxue Feng UNQUALIFIED
Salvatore B MarrierArgentinaElwin Sharvill NEGOTIATION
Maria B PerinBrazilXuxue Feng QUALIFIED
Misaki V PaprockiJapanBernardo Dominic PROPOSAL
Johnson T ButtArgentinaAsiya Javayant RENEWAL
Adams B DoeGermanyAmy Elsner NEGOTIATION
Mujtaba C KuskoFranceAnna Fali RENEWAL
Silvio H CampainItalyElwin Sharvill QUALIFIED
Mujtaba E WaycottFranceAsiya Javayant NEGOTIATION
Kadeem B BriddickUnited KingdomAnna Fali PROPOSAL
Morrow S CampainGermanyAnna Fali NEGOTIATION
Kaitlin F WhobreyItalyIvan Magalhaes NEW
Kadeem R FollerRussiaXuxue Feng PROPOSAL
Cody L TollnerSpainXuxue Feng RENEWAL
Emily S FigeroaItalyXuxue Feng NEGOTIATION
Morrow M GlickAustraliaAmy Elsner NEW
Nicolas A AmigonGermanyIoni Bowcher UNQUALIFIED
Cody D GarufiAustraliaElwin Sharvill PROPOSAL
Faith D IturbideSpainXuxue Feng UNQUALIFIED
Arvin U ButtSpainOnyama Limba NEGOTIATION
Emily D NickaAustraliaStephen Shaw QUALIFIED
Leon J DarakjyBrazilElwin Sharvill UNQUALIFIED
Misaki T ButtJapanAnna Fali QUALIFIED
Deepesh U WaycottIndiaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Ricardo K Vocelka
Jefferson W Paprocki
Salvatore X Saylors
Aruna L Whobrey
Octavia C Perin
Salvatore O Caldarera
Maisha W Rim
Izzy A Briddick
Murillo U Waycott
Mayumi H Ostrosky
Juan D Garufi
Jefferson X Sergi
Emily S Bowley
Maisha W Flosi
Juan O Rulapaugh
James O Waycott
Maisha K Garufi
Adams B Kusko
Aruna X Waycott
Mujtaba Q Vocelka
Maisha M Perin
Ashley A Caldarera
Cody M Caldarera
Maisha D Malet
Greenwood Z Dilliard
Kaitlin R Rulapaugh
Faith O Flosi
Leon G Rim
Deepesh Q Paprocki
Leja P Stenseth
Aditya F Malet
Alejandro G Glick
Misaki N Malet
Wickens V Figeroa
Arvin U Slusarski
Darci D Malet
Nicolas L Vocelka
Francesco O Stockham
Juan H Shinko
Leon R Garufi
David F Perin
Julie C Nestle
Arvin H Saylors
Ashley M Inouye
James T Kolmetz
Murillo B Nicka
Nicolas S Schemmer
Deepesh Q Butt
Aika H Vocelka
Mujtaba S Campain
IdCountryDate
1000Italy2024-04-25
1001Australia2024-04-16
1002Italy2024-04-10
1003United Kingdom2024-04-10
1004Russia2024-04-01
1005Spain2024-03-31
1006Italy2024-04-20
1007Brazil2024-04-04
1008Germany2024-04-07
1009Japan2024-04-26
1010Canada2024-04-25
1011Brazil2024-04-11
1012Spain2024-04-10
1013Germany2024-04-13
1014Italy2024-04-20
1015Japan2024-04-08
1016Canada2024-04-22
1017India2024-04-07
1018Italy2024-04-18
1019France2024-04-09
1020Russia2024-04-18
1021Japan2024-04-19
1022Germany2024-04-11
1023Spain2024-04-19
1024Brazil2024-04-16
1025Argentina2024-04-20
1026Japan2024-04-25
1027France2024-04-01
1028Canada2024-04-04
1029Italy2024-04-18
1030Spain2024-04-06
1031France2024-04-20
1032United Kingdom2024-04-29
1033Japan2024-04-09
1034Russia2024-04-25
1035Spain2024-03-31
1036Australia2024-04-15
1037Germany2024-04-06
1038United Kingdom2024-04-05
1039Brazil2024-04-03
1040India2024-04-02
1041Japan2024-04-03
1042Italy2024-04-20
1043Germany2024-04-19
1044Australia2024-04-17
1045Russia2024-04-07
1046Brazil2024-04-05
1047Russia2024-04-05
1048Russia2024-04-04
1049Brazil2024-04-01

On-Demand Data

NameIdCountryDate
Isabel I Iturbide1000Spain2024-04-01
Octavia F Albares1001Italy2024-04-15
Tony X Caldarera1002Canada2024-04-27
Morrow A Figeroa1003Argentina2024-04-20
Leja M Caudy1004Canada2024-04-16
Wickens E Ferencz1005Argentina2024-04-26
Francesco I Wieser1006Japan2024-04-14
Jeanfrancois C Nestle1007Spain2024-04-08
Chavez D Whobrey1008Brazil2024-04-19
Ashley E Glick1009Japan2024-04-23
Costa W Stenseth1010France2024-04-02
Costa O Shinko1011Argentina2024-04-28
Rodrigues E Figeroa1012France2024-04-15
Nicolas R Flosi1013Canada2024-04-25
Aditya N Kolmetz1014Japan2024-04-16
Kadeem H Slusarski1015Argentina2024-04-05
David M Amigon1016Germany2024-04-02
Tony H Foller1017France2024-04-12
Deepesh K Garufi1018Australia2024-04-12
Murillo Y Flosi1019Germany2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens C PaprockiBrazilIvan Magalhaes NEGOTIATION
Rodrigues Q VocelkaFranceElwin Sharvill UNQUALIFIED
Arvin Y NickaAustraliaAmy Elsner QUALIFIED
Chavez R VenereJapanAsiya Javayant QUALIFIED
Costa N ShinkoSpainAnna Fali PROPOSAL
Aika H GlickRussiaStephen Shaw NEGOTIATION
Tony K OstroskyItalyOnyama Limba RENEWAL
Chavez M GarufiJapanStephen Shaw RENEWAL
Ashley G BriddickAustraliaAmy Elsner NEGOTIATION
Octavia E DarakjyArgentinaAnna Fali RENEWAL
Adams G ShinkoArgentinaAmy Elsner NEW
Ivar Q MaletItalyIvan Magalhaes NEGOTIATION
Salvatore I WaycottUnited KingdomIoni Bowcher NEW
Nicolas H KuskoBrazilXuxue Feng UNQUALIFIED
Faith Y FigeroaJapanElwin Sharvill NEW
Stacey G CampainJapanIoni Bowcher QUALIFIED
Juan M ButtCanadaAmy Elsner PROPOSAL
Aika C PaprockiJapanAmy Elsner RENEWAL
Mujtaba X OldroydSpainXuxue Feng NEGOTIATION
Leon V MacleadRussiaStephen Shaw RENEWAL
Jones X GauchoFranceOnyama Limba PROPOSAL
Jones M GarufiIndiaAnna Fali QUALIFIED
Clifford S CaldareraFranceElwin Sharvill RENEWAL
Deepesh J PaprockiSpainAnna Fali NEGOTIATION
Ashley W PoquetteGermanyOnyama Limba PROPOSAL
Deepesh M MaletGermanyIvan Magalhaes NEW
Arvin N VenereFranceIoni Bowcher NEW
Aruna D DilliardBrazilStephen Shaw NEW
Rodrigues B GarufiRussiaXuxue Feng UNQUALIFIED
Clifford C ButtJapanAnna Fali NEGOTIATION
Wickens B RimItalyXuxue Feng NEW
Mujtaba T StensethGermanyAmy Elsner QUALIFIED
Greenwood W PoquetteBrazilIoni Bowcher RENEWAL
Jennifer Z KolmetzBrazilIoni Bowcher QUALIFIED
Darci Z IturbideJapanOnyama Limba NEW
Jeanfrancois R MaletArgentinaStephen Shaw NEW
Deepesh G FigeroaRussiaXuxue Feng UNQUALIFIED
Jones N BologniaCanadaOnyama Limba RENEWAL
Adams V KolmetzItalyOnyama Limba NEGOTIATION
Mayumi X SlusarskiItalyBernardo Dominic 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>