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
Octavia P RulapaughAustraliaAmy Elsner QUALIFIED
Arvin D WieserBrazilXuxue Feng PROPOSAL
Aditya B GarufiJapanAmy Elsner QUALIFIED
Chavez R KuskoGermanyAsiya Javayant NEW
Smith Q ChuiRussiaAnna Fali PROPOSAL
Arvin Q StockhamUnited KingdomElwin Sharvill UNQUALIFIED
David D SaylorsUnited KingdomStephen Shaw NEW
Ivar R DarakjyBrazilOnyama Limba QUALIFIED
Francesco E FlosiFranceAmy Elsner PROPOSAL
Antonio J RimGermanyIvan Magalhaes NEW
Julie L SlusarskiArgentinaAmy Elsner NEW
Jones W KuskoFranceAsiya Javayant PROPOSAL
Morrow S RoysterIndiaOnyama Limba NEW
Jefferson N AlbaresItalyXuxue Feng QUALIFIED
Leon H OldroydItalyAnna Fali PROPOSAL
Emily R OldroydCanadaOnyama Limba NEGOTIATION
Adams E PoquetteArgentinaAnna Fali QUALIFIED
Claire A ChuiArgentinaElwin Sharvill QUALIFIED
Jennifer M NestleFranceXuxue Feng NEW
Stacey I FerenczJapanAnna Fali NEGOTIATION
Maisha I OstroskyIndiaOnyama Limba UNQUALIFIED
Kaitlin I TollnerSpainStephen Shaw NEGOTIATION
Jennifer I DoeSpainIoni Bowcher NEGOTIATION
Tony Z GarufiFranceAnna Fali QUALIFIED
Leon C MarrierCanadaElwin Sharvill PROPOSAL
Maria I BriddickAustraliaAnna Fali PROPOSAL
Nicolas S DoeSpainElwin Sharvill RENEWAL
Greenwood I BowleyBrazilElwin Sharvill NEW
Cody O WhobreyIndiaXuxue Feng UNQUALIFIED
Deepesh E FerenczCanadaAmy Elsner NEGOTIATION
Aditya S DoeUnited KingdomOnyama Limba RENEWAL
Mayumi D AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Ivar Z FerenczJapanXuxue Feng UNQUALIFIED
Sinclair T GauchoBrazilIoni Bowcher NEW
Francesco S PaprockiJapanOnyama Limba RENEWAL
Julie B NickaRussiaIvan Magalhaes NEGOTIATION
Jefferson U InouyeUnited KingdomXuxue Feng PROPOSAL
Ashley Q CaudyItalyXuxue Feng PROPOSAL
Jeanfrancois O NestleAustraliaAnna Fali NEW
Clifford R AmigonRussiaIoni Bowcher RENEWAL
Adams V FlosiJapanBernardo Dominic NEW
Francesco R CampainIndiaAmy Elsner QUALIFIED
Aika P MacleadItalyElwin Sharvill UNQUALIFIED
Tony L SchemmerFranceStephen Shaw NEGOTIATION
Claire R KolmetzItalyOnyama Limba UNQUALIFIED
Chavez B DarakjyAustraliaElwin Sharvill RENEWAL
Faith B GillianItalyIoni Bowcher UNQUALIFIED
Johnson R AmigonSpainOnyama Limba NEW
Claire R DilliardArgentinaOnyama Limba NEGOTIATION
Leja E ChuiUnited KingdomAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
James B GarufiBrazilIvan Magalhaes NEGOTIATION
Tony Y PoquetteItalyOnyama Limba PROPOSAL
Sinclair E GlickUnited KingdomAsiya Javayant UNQUALIFIED
Wickens V MorascaRussiaAnna Fali RENEWAL
Octavia Q RoysterItalyIoni Bowcher PROPOSAL
James A MacleadSpainOnyama Limba QUALIFIED
Nicolas S RoysterJapanAmy Elsner UNQUALIFIED
Ivar W DilliardBrazilAnna Fali UNQUALIFIED
Rodrigues D SchemmerSpainIvan Magalhaes RENEWAL
Salvatore B BowleyArgentinaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem I NickaIndia2024-04-09Chemel, James L Cpa RENEWAL12Asiya Javayant
1001Jennifer P PaprockiArgentina2024-04-29Dorl, James J Esq QUALIFIED54Ivan Magalhaes
1002Cody T ButtJapan2024-04-15Benton, John B Jr NEW89Anna Fali
1003Maisha R GlickFrance2024-04-02Rousseaux, Michael Esq RENEWAL20Ioni Bowcher
1004Jeanfrancois H AlbaresArgentina2024-04-04King, Christopher A Esq QUALIFIED48Xuxue Feng
1005Ashley X KolmetzItaly2024-04-11Feltz Printing Service NEGOTIATION0Amy Elsner
1006Aditya B DoeAustralia2024-04-24Benton, John B Jr RENEWAL20Onyama Limba
1007Kaitlin L RoysterSpain2024-04-15Feltz Printing Service PROPOSAL41Onyama Limba
1008Kadeem R CampainRussia2024-04-11Dorl, James J Esq NEW29Stephen Shaw
1009Stacey W ButtGermany2024-04-23Benton, John B Jr QUALIFIED43Asiya Javayant
1010Ivar P IturbideCanada2024-04-22Rousseaux, Michael Esq NEW88Amy Elsner
1011David C PerinRussia2024-04-20Morlong Associates RENEWAL58Elwin Sharvill
1012Ivar S SchemmerItaly2024-04-06Rangoni Of Florence NEGOTIATION40Bernardo Dominic
1013Antonio U GarufiCanada2024-04-19Chanay, Jeffrey A Esq RENEWAL90Ivan Magalhaes
1014James P WaycottBrazil2024-04-01Morlong Associates NEGOTIATION16Asiya Javayant
1015Mayumi P MorascaArgentina2024-04-22Feiner Bros PROPOSAL48Stephen Shaw
1016David Z SchemmerCanada2024-04-22Chapman, Ross E Esq QUALIFIED14Elwin Sharvill
1017Kaitlin Q OldroydGermany2024-04-07Dorl, James J Esq NEGOTIATION7Anna Fali
1018Leja Q StensethCanada2024-04-21Printing Dimensions NEW80Stephen Shaw
1019Arvin E WaycottFrance2024-04-27Truhlar And Truhlar Attys NEGOTIATION77Ivan Magalhaes
1020Ivar M VocelkaArgentina2024-04-15Buckley Miller Wright NEGOTIATION93Xuxue Feng
1021David T SchemmerFrance2024-04-11Printing Dimensions QUALIFIED52Ivan Magalhaes
1022Nicolas Y GillianArgentina2024-04-12Rousseaux, Michael Esq NEGOTIATION6Anna Fali
1023Costa Z ChuiAustralia2024-04-18Feiner Bros RENEWAL24Stephen Shaw
1024Julie P CaudyIndia2024-04-11Rangoni Of Florence RENEWAL15Onyama Limba
1025James S SaylorsCanada2024-04-21Morlong Associates NEW90Elwin Sharvill
1026Chavez B PaprockiCanada2024-04-04Dorl, James J Esq PROPOSAL1Stephen Shaw
1027Chavez H OstroskyCanada2024-04-08Benton, John B Jr NEW98Bernardo Dominic
1028Rodrigues Q AmigonJapan2024-04-26Rousseaux, Michael Esq NEW6Ivan Magalhaes
1029Sinclair B BologniaBrazil2024-04-29Rousseaux, Michael Esq RENEWAL27Onyama Limba
1030Aditya L GauchoArgentina2024-04-13Chemel, James L Cpa PROPOSAL7Amy Elsner
1031Jefferson T NestleSpain2024-04-19Commercial Press PROPOSAL30Xuxue Feng
1032Leon G DarakjyItaly2024-04-15Commercial Press PROPOSAL37Elwin Sharvill
1033Costa A CampainRussia2024-04-01Rousseaux, Michael Esq QUALIFIED10Ioni Bowcher
1034Rodrigues D RoysterAustralia2024-04-16Buckley Miller Wright QUALIFIED10Stephen Shaw
1035Claire O SergiRussia2024-03-31Buckley Miller Wright PROPOSAL26Amy Elsner
1036Ricardo F VocelkaArgentina2024-04-03Rousseaux, Michael Esq RENEWAL41Asiya Javayant
1037Ashley R OldroydUnited Kingdom2024-03-31Morlong Associates RENEWAL41Ioni Bowcher
1038Mujtaba K SchemmerIndia2024-04-21Buckley Miller Wright NEGOTIATION0Xuxue Feng
1039Kaitlin D OstroskyFrance2024-04-03Feltz Printing Service QUALIFIED76Stephen Shaw
1040Jeanfrancois Q CampainSpain2024-04-18Commercial Press PROPOSAL62Ioni Bowcher
1041Clifford D MaletJapan2024-04-15Commercial Press RENEWAL33Asiya Javayant
1042Adams T RulapaughUnited Kingdom2024-04-09King, Christopher A Esq NEW23Anna Fali
1043James F PerinUnited Kingdom2024-04-27Chapman, Ross E Esq NEGOTIATION90Elwin Sharvill
1044Munro C IturbideJapan2024-04-20Morlong Associates NEW22Ivan Magalhaes
1045Maisha X ChuiItaly2024-04-26Truhlar And Truhlar Attys RENEWAL97Stephen Shaw
1046Faith I InouyeAustralia2024-04-08King, Christopher A Esq QUALIFIED94Elwin Sharvill
1047Darci P SaylorsIndia2024-04-09Chapman, Ross E Esq PROPOSAL24Bernardo Dominic
1048Juan R FigeroaCanada2024-04-15Rangoni Of Florence RENEWAL5Amy Elsner
1049Julie S OstroskyIndia2024-03-31Buckley Miller Wright NEGOTIATION43Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Arvin N MarrierFranceAsiya Javayant NEGOTIATION
Aruna A NickaItalyAmy Elsner RENEWAL
Misaki I MacleadBrazilStephen Shaw NEW
Jeanfrancois H IturbideAustraliaAsiya Javayant NEGOTIATION
Mayumi R OstroskyBrazilIvan Magalhaes QUALIFIED
Darci B SchemmerBrazilElwin Sharvill PROPOSAL
Octavia M WaycottArgentinaElwin Sharvill NEGOTIATION
Jefferson N FlosiArgentinaAnna Fali UNQUALIFIED
Darci L BowleySpainElwin Sharvill NEGOTIATION
Leon X CaudyFranceOnyama Limba RENEWAL
Jones D StockhamArgentinaAmy Elsner PROPOSAL
Ricardo R CampainJapanStephen Shaw NEGOTIATION
Kadeem O RulapaughAustraliaIoni Bowcher PROPOSAL
Misaki N GauchoJapanElwin Sharvill NEW
Chavez X InouyeItalyIoni Bowcher NEGOTIATION
Jennifer J BriddickRussiaAnna Fali QUALIFIED
Jeanfrancois K RutaIndiaAmy Elsner PROPOSAL
Costa V DilliardBrazilAnna Fali PROPOSAL
Mayumi D GarufiCanadaBernardo Dominic RENEWAL
Ricardo X VenereAustraliaAsiya Javayant UNQUALIFIED
Rodrigues Q WieserArgentinaElwin Sharvill RENEWAL
Emily Q CaudyGermanyElwin Sharvill RENEWAL
Ivar H DarakjyCanadaBernardo Dominic RENEWAL
Octavia S WaycottItalyOnyama Limba RENEWAL
Izzy Z PaprockiAustraliaOnyama Limba QUALIFIED
Mayumi M MacleadIndiaIoni Bowcher UNQUALIFIED
Juan V KolmetzJapanAnna Fali RENEWAL
Misaki M MarrierBrazilBernardo Dominic QUALIFIED
Mujtaba W RoysterAustraliaXuxue Feng NEW
Mujtaba R SergiArgentinaOnyama Limba NEW
Izzy Z MorascaBrazilElwin Sharvill PROPOSAL
Mayumi Y CampainSpainAnna Fali PROPOSAL
Claire C MaletItalyElwin Sharvill QUALIFIED
Tony C NickaFranceAnna Fali QUALIFIED
Claire P RoysterAustraliaAsiya Javayant NEW
Smith I StensethAustraliaIoni Bowcher UNQUALIFIED
Emily R GauchoRussiaXuxue Feng PROPOSAL
Aika Z BowleyUnited KingdomAnna Fali NEGOTIATION
Smith F SaylorsArgentinaAmy Elsner UNQUALIFIED
David P RulapaughItalyAnna Fali UNQUALIFIED
Jeanfrancois Y CaudyItalyAmy Elsner NEW
Stacey T WhobreySpainElwin Sharvill RENEWAL
Misaki H WaycottJapanXuxue Feng NEW
Maria P PoquetteCanadaAmy Elsner RENEWAL
Mayumi K RimArgentinaAmy Elsner RENEWAL
Kaitlin L NestleRussiaElwin Sharvill NEW
Izzy M VenereGermanyAnna Fali NEW
Jefferson Z GauchoUnited KingdomAnna Fali UNQUALIFIED
Ricardo G KuskoCanadaXuxue Feng RENEWAL
Murillo K FigeroaArgentinaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Greenwood T Royster
Darci F Whobrey
Kadeem A Bolognia
Jennifer E Oldroyd
Smith H Maclead
Smith Y Campain
Wickens S Flosi
Kadeem W Caudy
Juan Z Malet
Sinclair S Briddick
Alejandro N Darakjy
Nicolas V Campain
David D Perin
Salvatore C Vocelka
Stacey C Maclead
Tony G Iturbide
Misaki Y Gaucho
Silvio Y Rulapaugh
Francesco C Kusko
Ashley A Glick
Leon H Stockham
Aruna O Briddick
Izzy C Stockham
David L Flosi
Salvatore E Perin
Morrow W Shinko
Ricardo J Saylors
Ricardo L Gaucho
Claire F Amigon
Johnson P Butt
Costa F Shinko
Munro I Vocelka
Aditya X Marrier
Jeanfrancois J Morasca
Greenwood Q Rulapaugh
Cody L Shinko
Cody Q Ruta
Chavez D Dilliard
Mujtaba Y Vocelka
Aruna X Gillian
Johnson Y Iturbide
Faith S Rulapaugh
Mujtaba L Vocelka
Julie Z Flosi
Maisha E Malet
Silvio Y Ferencz
Octavia S Waycott
Tony B Nicka
Jefferson O Morasca
Alejandro V Figeroa
IdCountryDate
1000Argentina2024-04-21
1001United Kingdom2024-04-21
1002Russia2024-04-23
1003India2024-04-19
1004Brazil2024-04-17
1005Russia2024-04-07
1006Italy2024-04-05
1007Russia2024-04-10
1008Russia2024-04-29
1009India2024-04-15
1010India2024-04-06
1011United Kingdom2024-04-17
1012Brazil2024-04-11
1013Italy2024-04-18
1014Italy2024-04-08
1015Germany2024-04-21
1016Australia2024-04-08
1017France2024-03-31
1018France2024-04-27
1019India2024-04-28
1020Argentina2024-04-03
1021France2024-04-09
1022India2024-04-29
1023Spain2024-04-12
1024Italy2024-04-05
1025United Kingdom2024-04-17
1026Russia2024-04-22
1027United Kingdom2024-04-15
1028Canada2024-04-11
1029France2024-04-27
1030Russia2024-04-18
1031Italy2024-04-13
1032Spain2024-04-25
1033Argentina2024-04-12
1034Spain2024-04-18
1035Spain2024-04-28
1036Spain2024-04-18
1037Argentina2024-04-09
1038Germany2024-04-09
1039United Kingdom2024-04-26
1040Spain2024-04-09
1041Canada2024-04-02
1042Australia2024-04-27
1043Brazil2024-04-15
1044Germany2024-04-27
1045Japan2024-04-11
1046Italy2024-03-31
1047Argentina2024-04-27
1048Italy2024-04-03
1049Brazil2024-04-04

On-Demand Data

NameIdCountryDate
Jones S Ruta1000United Kingdom2024-04-24
Jeanfrancois C Venere1001Japan2024-04-27
Silvio W Vocelka1002India2024-04-07
Leja V Amigon1003Japan2024-04-06
Darci C Ferencz1004Australia2024-04-02
Octavia J Kusko1005Italy2024-04-18
Julie E Amigon1006Russia2024-04-19
Mujtaba X Kusko1007Spain2024-04-11
Aruna S Amigon1008India2024-03-31
Stacey P Maclead1009United Kingdom2024-04-18
James Q Perin1010Italy2024-04-23
Kaitlin X Malet1011Argentina2024-04-07
Jones G Malet1012Spain2024-04-22
Cody S Malet1013Australia2024-04-15
Kaitlin M Tollner1014Spain2024-04-09
Juan A Ruta1015Canada2024-04-05
Aditya E Paprocki1016Australia2024-04-19
Faith H Garufi1017France2024-04-27
Isabel N Shinko1018Japan2024-04-23
Claire V Doe1019Australia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie K CaldareraFranceAnna Fali NEW
Aruna M SlusarskiFranceBernardo Dominic PROPOSAL
Jones A MorascaSpainElwin Sharvill QUALIFIED
Kadeem A StockhamSpainStephen Shaw PROPOSAL
Murillo B DarakjyRussiaAsiya Javayant NEGOTIATION
Stacey Y WhobreyItalyBernardo Dominic PROPOSAL
Salvatore L SergiItalyIoni Bowcher RENEWAL
Adams X SchemmerArgentinaElwin Sharvill NEGOTIATION
Isabel B GlickJapanAnna Fali NEGOTIATION
Leja V KolmetzGermanyXuxue Feng RENEWAL
Silvio L StensethIndiaAmy Elsner QUALIFIED
Morrow P RutaGermanyOnyama Limba RENEWAL
Sinclair O FerenczGermanyIvan Magalhaes NEGOTIATION
Cody I AmigonGermanyElwin Sharvill PROPOSAL
Leon K VenereRussiaIoni Bowcher NEGOTIATION
Emily S WaycottIndiaAsiya Javayant RENEWAL
Greenwood L MaletUnited KingdomAnna Fali RENEWAL
Adams W SchemmerAustraliaAsiya Javayant UNQUALIFIED
Smith V SlusarskiGermanyStephen Shaw QUALIFIED
Sinclair Y IturbideArgentinaElwin Sharvill QUALIFIED
Julie Y SergiArgentinaAsiya Javayant NEW
Jones C DilliardAustraliaXuxue Feng RENEWAL
Julie V WieserCanadaAnna Fali RENEWAL
Leja X RutaSpainIoni Bowcher NEW
Chavez T StockhamArgentinaXuxue Feng NEGOTIATION
Costa O WhobreyAustraliaStephen Shaw NEGOTIATION
Munro S RimJapanAsiya Javayant NEW
Jeanfrancois R CaldareraItalyIoni Bowcher NEGOTIATION
David P KolmetzFranceAsiya Javayant PROPOSAL
Nicolas C SergiArgentinaElwin Sharvill PROPOSAL
Silvio P StensethIndiaStephen Shaw UNQUALIFIED
Cody C VenereFranceXuxue Feng UNQUALIFIED
Jeanfrancois Y ButtCanadaAmy Elsner NEW
Maisha A AlbaresIndiaIvan Magalhaes PROPOSAL
Aika R MacleadArgentinaBernardo Dominic PROPOSAL
Mayumi V AmigonItalyIoni Bowcher UNQUALIFIED
Stacey H FigeroaArgentinaXuxue Feng NEGOTIATION
Salvatore F WhobreySpainStephen Shaw UNQUALIFIED
Murillo Z MarrierJapanElwin Sharvill NEGOTIATION
Chavez N WaycottGermanyAsiya Javayant 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>