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
Murillo W StockhamItalyXuxue Feng UNQUALIFIED
Mayumi P NickaJapanIoni Bowcher NEGOTIATION
Kadeem W CampainIndiaXuxue Feng QUALIFIED
Maria A SaylorsCanadaAnna Fali UNQUALIFIED
Maria H VocelkaFranceIoni Bowcher RENEWAL
Chavez A PaprockiRussiaAmy Elsner NEGOTIATION
Deepesh X VenereBrazilBernardo Dominic NEW
Smith O FigeroaIndiaAsiya Javayant PROPOSAL
Munro A RulapaughArgentinaAmy Elsner QUALIFIED
Ivar M CaudyRussiaIoni Bowcher NEW
Isabel T KuskoBrazilIoni Bowcher UNQUALIFIED
Smith J NestleBrazilAnna Fali PROPOSAL
Kadeem E AlbaresJapanBernardo Dominic NEW
Jones M AlbaresArgentinaAsiya Javayant QUALIFIED
Francesco U MaletSpainOnyama Limba QUALIFIED
David J CaldareraFranceIoni Bowcher NEW
Leja U PerinItalyIoni Bowcher NEW
Mujtaba M ShinkoIndiaIvan Magalhaes PROPOSAL
Smith G CaldareraJapanIoni Bowcher PROPOSAL
Jefferson Y BologniaArgentinaBernardo Dominic NEW
Juan B RimFranceAnna Fali RENEWAL
Morrow F InouyeJapanBernardo Dominic RENEWAL
Maria M WieserAustraliaBernardo Dominic RENEWAL
Ivar U MacleadAustraliaAsiya Javayant UNQUALIFIED
Mujtaba K NickaBrazilAmy Elsner RENEWAL
Aditya Z WieserItalyBernardo Dominic NEW
Maisha C GillianGermanyAnna Fali PROPOSAL
Mayumi F NestleJapanIvan Magalhaes RENEWAL
Murillo W CaldareraFranceAnna Fali NEW
Faith C NestleFranceAsiya Javayant PROPOSAL
Juan I VenereFranceElwin Sharvill NEGOTIATION
Stacey T NickaIndiaIvan Magalhaes RENEWAL
Stacey G MarrierCanadaStephen Shaw QUALIFIED
Mujtaba I RulapaughUnited KingdomIoni Bowcher NEW
Leon E ChuiGermanyElwin Sharvill NEW
Cody B KolmetzSpainAsiya Javayant NEW
Greenwood F SlusarskiGermanyIoni Bowcher PROPOSAL
Deepesh N AmigonJapanAmy Elsner UNQUALIFIED
Leon V KolmetzIndiaOnyama Limba RENEWAL
Jones Y GarufiRussiaAmy Elsner QUALIFIED
Kadeem N IturbideJapanXuxue Feng PROPOSAL
Sinclair F MarrierJapanIvan Magalhaes NEGOTIATION
Morrow B SergiBrazilOnyama Limba NEGOTIATION
Stacey O RulapaughCanadaAnna Fali RENEWAL
Sinclair K AmigonJapanOnyama Limba UNQUALIFIED
Faith T OldroydAustraliaBernardo Dominic NEW
Jennifer X ShinkoJapanAnna Fali PROPOSAL
Arvin H MarrierRussiaIoni Bowcher NEGOTIATION
Jefferson H NickaIndiaXuxue Feng QUALIFIED
Misaki W RimSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem C GarufiAustraliaElwin Sharvill NEGOTIATION
Emily O FerenczUnited KingdomIoni Bowcher RENEWAL
Clifford W TollnerSpainAmy Elsner NEGOTIATION
Rodrigues I RulapaughAustraliaIvan Magalhaes RENEWAL
Kadeem X CaldareraArgentinaOnyama Limba QUALIFIED
Clifford K SchemmerArgentinaAnna Fali QUALIFIED
Alejandro Q DarakjyRussiaIvan Magalhaes NEW
Misaki Z FerenczFranceOnyama Limba QUALIFIED
Nicolas T BriddickCanadaIoni Bowcher RENEWAL
Clifford G TollnerCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson H PaprockiRussia2024-05-06Rousseaux, Michael Esq QUALIFIED93Onyama Limba
1001Kaitlin T CaldareraArgentina2024-05-05Feiner Bros NEGOTIATION65Asiya Javayant
1002Johnson R MaletJapan2024-04-26Buckley Miller Wright UNQUALIFIED9Anna Fali
1003Aditya K KuskoItaly2024-04-28Commercial Press QUALIFIED90Bernardo Dominic
1004Juan Z StensethSpain2024-04-28Feltz Printing Service RENEWAL78Elwin Sharvill
1005Darci S GauchoSpain2024-04-30Chanay, Jeffrey A Esq NEW96Elwin Sharvill
1006Maisha Q SchemmerUnited Kingdom2024-04-21Rousseaux, Michael Esq UNQUALIFIED25Asiya Javayant
1007Aditya R RulapaughRussia2024-04-20Chapman, Ross E Esq QUALIFIED77Stephen Shaw
1008Deepesh E PoquetteIndia2024-04-19Chemel, James L Cpa QUALIFIED9Onyama Limba
1009Mayumi V WaycottJapan2024-04-26Rangoni Of Florence NEGOTIATION34Ivan Magalhaes
1010Costa U SergiAustralia2024-04-29Dorl, James J Esq PROPOSAL0Ioni Bowcher
1011Mayumi H TollnerAustralia2024-04-09Chemel, James L Cpa NEW70Bernardo Dominic
1012Isabel Q MacleadBrazil2024-04-26Chanay, Jeffrey A Esq PROPOSAL85Elwin Sharvill
1013Jones W OldroydBrazil2024-04-09Commercial Press UNQUALIFIED9Asiya Javayant
1014Darci W GillianIndia2024-04-07King, Christopher A Esq NEGOTIATION18Amy Elsner
1015James M RulapaughJapan2024-04-10Dorl, James J Esq NEW2Amy Elsner
1016Francesco H MaletArgentina2024-04-08Rousseaux, Michael Esq PROPOSAL13Anna Fali
1017Ricardo E RulapaughJapan2024-04-16Rousseaux, Michael Esq PROPOSAL76Anna Fali
1018Izzy L MarrierFrance2024-04-23Rangoni Of Florence RENEWAL45Onyama Limba
1019Jefferson N MaletArgentina2024-05-06Rangoni Of Florence NEW7Anna Fali
1020Aika O WieserItaly2024-04-15Buckley Miller Wright NEW81Bernardo Dominic
1021Aika E MacleadRussia2024-04-09Commercial Press NEW3Xuxue Feng
1022Chavez G KuskoCanada2024-04-24Feltz Printing Service NEW59Ioni Bowcher
1023Stacey L PoquetteBrazil2024-04-23Buckley Miller Wright PROPOSAL65Ioni Bowcher
1024Ricardo Y AmigonIndia2024-04-20Buckley Miller Wright PROPOSAL37Asiya Javayant
1025Antonio D FigeroaIndia2024-04-28Commercial Press RENEWAL26Asiya Javayant
1026Jefferson D StockhamIndia2024-04-23Chapman, Ross E Esq NEW83Elwin Sharvill
1027Kadeem V MaletUnited Kingdom2024-04-14Chemel, James L Cpa NEW72Ioni Bowcher
1028Ricardo D GillianBrazil2024-04-13King, Christopher A Esq QUALIFIED76Amy Elsner
1029Silvio N AlbaresIndia2024-04-26Rangoni Of Florence RENEWAL47Elwin Sharvill
1030Munro D StockhamSpain2024-04-09Commercial Press NEGOTIATION57Anna Fali
1031Leon V ChuiArgentina2024-04-13Morlong Associates RENEWAL39Bernardo Dominic
1032Mujtaba N CampainIndia2024-04-29Feiner Bros RENEWAL65Onyama Limba
1033David L MorascaIndia2024-04-11King, Christopher A Esq NEW91Elwin Sharvill
1034Ashley L MaletJapan2024-04-25Benton, John B Jr PROPOSAL74Stephen Shaw
1035Octavia C SaylorsJapan2024-04-29Printing Dimensions NEW2Anna Fali
1036Tony I FollerRussia2024-04-17Chapman, Ross E Esq RENEWAL73Amy Elsner
1037Ivar L FigeroaCanada2024-04-07Truhlar And Truhlar Attys NEW84Anna Fali
1038Arvin R WhobreyIndia2024-04-11Rangoni Of Florence PROPOSAL95Ivan Magalhaes
1039Costa S OstroskyGermany2024-04-09Chanay, Jeffrey A Esq PROPOSAL24Ioni Bowcher
1040Maria M PerinUnited Kingdom2024-04-24King, Christopher A Esq NEW80Anna Fali
1041Tony G GauchoUnited Kingdom2024-04-19Morlong Associates QUALIFIED40Onyama Limba
1042Greenwood K OstroskyIndia2024-05-06Feltz Printing Service PROPOSAL80Xuxue Feng
1043Stacey L FollerJapan2024-04-26King, Christopher A Esq UNQUALIFIED15Stephen Shaw
1044Nicolas A VenereGermany2024-04-09Rousseaux, Michael Esq RENEWAL74Asiya Javayant
1045Ricardo Y FlosiAustralia2024-04-27Truhlar And Truhlar Attys NEGOTIATION11Bernardo Dominic
1046Maisha H VocelkaBrazil2024-05-03Printing Dimensions UNQUALIFIED37Bernardo Dominic
1047Jefferson D MorascaIndia2024-04-19King, Christopher A Esq NEW72Bernardo Dominic
1048Rodrigues L MacleadFrance2024-05-06Morlong Associates UNQUALIFIED47Stephen Shaw
1049Julie J InouyeArgentina2024-04-26Dorl, James J Esq QUALIFIED68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Salvatore O GarufiItalyAsiya Javayant RENEWAL
Tony T CampainItalyXuxue Feng NEW
Jones E WaycottFranceAmy Elsner RENEWAL
Chavez H SlusarskiRussiaBernardo Dominic UNQUALIFIED
Murillo D WieserUnited KingdomAmy Elsner NEW
Francesco C DoeFranceStephen Shaw NEGOTIATION
Johnson P AmigonIndiaOnyama Limba PROPOSAL
Juan T GillianUnited KingdomAsiya Javayant NEW
Faith A RutaJapanElwin Sharvill NEW
Jefferson Q DilliardAustraliaIoni Bowcher NEGOTIATION
Jefferson F PoquetteBrazilElwin Sharvill RENEWAL
Adams S VocelkaIndiaXuxue Feng UNQUALIFIED
Francesco L RimSpainAsiya Javayant PROPOSAL
Aika A MacleadArgentinaIoni Bowcher QUALIFIED
Mayumi Q VocelkaGermanyElwin Sharvill UNQUALIFIED
Ashley E SchemmerGermanyElwin Sharvill UNQUALIFIED
Antonio Q KolmetzIndiaBernardo Dominic QUALIFIED
Costa B BriddickCanadaOnyama Limba QUALIFIED
David Q GlickFranceAsiya Javayant QUALIFIED
Stacey C WieserRussiaAmy Elsner NEW
Darci S BologniaItalyBernardo Dominic NEW
Clifford R CaldareraSpainAmy Elsner NEGOTIATION
Jennifer D VocelkaJapanAmy Elsner RENEWAL
Wickens A CampainAustraliaAnna Fali QUALIFIED
Adams C DoeArgentinaXuxue Feng QUALIFIED
Jeanfrancois S FerenczUnited KingdomAmy Elsner PROPOSAL
Ivar Z IturbideSpainAnna Fali NEGOTIATION
Ashley I SlusarskiItalyIoni Bowcher NEW
Adams E NickaCanadaAsiya Javayant RENEWAL
Deepesh O CampainRussiaAsiya Javayant PROPOSAL
Antonio V MaletGermanyBernardo Dominic PROPOSAL
Johnson N MaletJapanBernardo Dominic QUALIFIED
Mayumi A KolmetzIndiaOnyama Limba UNQUALIFIED
Chavez H WhobreyArgentinaElwin Sharvill QUALIFIED
Aditya Q RulapaughCanadaAsiya Javayant UNQUALIFIED
Leon S OstroskyIndiaAsiya Javayant RENEWAL
Ricardo Y GauchoJapanIoni Bowcher RENEWAL
Julie R VocelkaGermanyAnna Fali NEW
Julie X MaletGermanyAsiya Javayant PROPOSAL
Johnson K GarufiItalyBernardo Dominic NEGOTIATION
Costa Y GillianUnited KingdomXuxue Feng NEGOTIATION
Johnson X GillianRussiaXuxue Feng UNQUALIFIED
Antonio E RulapaughItalyIvan Magalhaes NEW
Mayumi H PaprockiCanadaAsiya Javayant NEW
Jefferson I ChuiAustraliaAmy Elsner RENEWAL
Murillo W OldroydItalyIvan Magalhaes UNQUALIFIED
Kaitlin U TollnerFranceAsiya Javayant PROPOSAL
Mayumi N SchemmerBrazilIvan Magalhaes UNQUALIFIED
Izzy B FerenczJapanBernardo Dominic UNQUALIFIED
Tony M SaylorsArgentinaStephen Shaw RENEWAL
Frozen Columns
Name
Adams L Chui
David M Gillian
Isabel G Figeroa
Tony H Briddick
Jones X Bolognia
Maisha N Doe
Leon W Amigon
Clifford O Amigon
Wickens J Sergi
Smith D Albares
Leja Z Glick
Sinclair H Royster
Leja Y Paprocki
Ivar W Caldarera
Octavia W Maclead
David Q Briddick
Claire O Caldarera
Murillo G Waycott
Kaitlin S Doe
Arvin F Bowley
Darci N Whobrey
Aika Y Wieser
Faith E Amigon
Jones T Slusarski
Jeanfrancois P Nicka
Francesco R Garufi
Deepesh Z Tollner
Maria Q Malet
Misaki C Royster
Aika V Rim
Jefferson Y Ferencz
James U Bowley
Claire S Marrier
Kaitlin W Caldarera
Salvatore L Royster
Jefferson X Morasca
Stacey D Saylors
Isabel K Slusarski
Darci W Marrier
Ivar K Rulapaugh
Smith O Stenseth
Rodrigues T Iturbide
Emily R Figeroa
Salvatore D Gillian
Juan O Caudy
Leja E Chui
Jeanfrancois R Amigon
Aruna E Poquette
Sinclair K Nicka
Aika V Schemmer
IdCountryDate
1000Japan2024-04-27
1001Germany2024-04-08
1002Japan2024-04-26
1003Japan2024-04-11
1004Canada2024-04-14
1005Brazil2024-04-19
1006Argentina2024-04-13
1007Japan2024-05-03
1008United Kingdom2024-04-30
1009Japan2024-05-02
1010Brazil2024-04-27
1011Australia2024-05-06
1012Italy2024-04-21
1013Italy2024-04-29
1014United Kingdom2024-04-17
1015Spain2024-04-18
1016Japan2024-04-14
1017Spain2024-04-14
1018Italy2024-05-03
1019United Kingdom2024-04-27
1020United Kingdom2024-04-23
1021United Kingdom2024-04-22
1022France2024-05-06
1023Germany2024-04-20
1024Spain2024-04-24
1025Brazil2024-05-01
1026Spain2024-04-30
1027Argentina2024-04-21
1028France2024-04-22
1029Germany2024-04-27
1030Australia2024-04-17
1031Australia2024-04-25
1032Russia2024-04-11
1033Russia2024-05-02
1034Japan2024-04-15
1035Russia2024-04-19
1036Australia2024-04-28
1037Germany2024-04-13
1038Russia2024-05-03
1039Japan2024-04-12
1040Germany2024-04-19
1041Italy2024-05-03
1042United Kingdom2024-04-24
1043Japan2024-04-08
1044Russia2024-04-10
1045Russia2024-04-09
1046Spain2024-04-30
1047Germany2024-04-18
1048Italy2024-04-19
1049Russia2024-04-15

On-Demand Data

NameIdCountryDate
Maria K Kolmetz1000Japan2024-05-02
Smith Z Venere1001United Kingdom2024-04-29
Cody P Ferencz1002Germany2024-04-25
Emily R Iturbide1003Russia2024-04-19
Ivar Z Campain1004United Kingdom2024-04-10
Wickens V Doe1005France2024-04-14
Jefferson C Amigon1006Canada2024-04-07
Nicolas M Chui1007India2024-04-21
Costa R Butt1008Australia2024-05-03
Chavez Q Malet1009Australia2024-04-27
Maisha X Rulapaugh1010Spain2024-04-12
Sinclair B Bolognia1011France2024-04-28
Izzy G Bolognia1012United Kingdom2024-04-13
Francesco Z Bowley1013Brazil2024-04-18
Leon V Kolmetz1014Canada2024-05-04
Izzy G Marrier1015France2024-04-21
Smith T Slusarski1016Russia2024-04-27
Francesco E Ostrosky1017Italy2024-04-07
Costa H Wieser1018United Kingdom2024-04-21
Murillo Y Campain1019Spain2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley N VenereGermanyAmy Elsner NEGOTIATION
Faith K FerenczJapanIvan Magalhaes NEW
Jefferson X BologniaSpainAsiya Javayant QUALIFIED
Greenwood Z RutaCanadaStephen Shaw NEW
Clifford A StensethItalyBernardo Dominic PROPOSAL
Isabel H FlosiUnited KingdomAsiya Javayant NEW
Julie G GlickUnited KingdomBernardo Dominic QUALIFIED
Sinclair K PerinRussiaStephen Shaw QUALIFIED
Chavez T RulapaughCanadaBernardo Dominic QUALIFIED
Ashley U RutaItalyAnna Fali UNQUALIFIED
Ricardo Z RulapaughRussiaElwin Sharvill QUALIFIED
Julie Z FerenczCanadaAsiya Javayant QUALIFIED
Jennifer F SchemmerUnited KingdomElwin Sharvill QUALIFIED
Claire W VenereIndiaIoni Bowcher QUALIFIED
Costa F KuskoItalyBernardo Dominic QUALIFIED
Antonio C FollerRussiaStephen Shaw PROPOSAL
Stacey W SchemmerFranceElwin Sharvill RENEWAL
Octavia R BowleyAustraliaAnna Fali NEGOTIATION
Darci L RoysterSpainStephen Shaw UNQUALIFIED
Salvatore D OstroskyRussiaElwin Sharvill PROPOSAL
Cody P StockhamCanadaElwin Sharvill RENEWAL
Murillo S MaletGermanyAsiya Javayant NEW
Adams J ShinkoRussiaIoni Bowcher UNQUALIFIED
Isabel R SchemmerSpainIoni Bowcher PROPOSAL
Octavia W OstroskyFranceOnyama Limba QUALIFIED
Greenwood Z StockhamIndiaIoni Bowcher QUALIFIED
Isabel D GarufiCanadaAmy Elsner RENEWAL
Arvin I RoysterFranceAmy Elsner RENEWAL
James O FollerIndiaAnna Fali QUALIFIED
Aditya O BowleyCanadaIoni Bowcher UNQUALIFIED
Leja Z StockhamCanadaIvan Magalhaes NEW
Salvatore I StensethRussiaAmy Elsner QUALIFIED
Francesco C SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba V AmigonAustraliaXuxue Feng NEW
Jennifer N DilliardCanadaIvan Magalhaes QUALIFIED
Izzy K WaycottIndiaElwin Sharvill UNQUALIFIED
Maisha S FlosiCanadaAnna Fali PROPOSAL
Juan D KolmetzItalyIoni Bowcher UNQUALIFIED
Maisha S StensethUnited KingdomAnna Fali RENEWAL
Jones T TollnerUnited 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>