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
Smith N RutaAustraliaIoni Bowcher NEW
David K FerenczAustraliaElwin Sharvill NEW
Costa L RutaCanadaIoni Bowcher NEW
Kadeem D WaycottUnited KingdomBernardo Dominic RENEWAL
David Z OstroskyGermanyBernardo Dominic QUALIFIED
Wickens N VocelkaArgentinaAsiya Javayant RENEWAL
Johnson I RutaItalyStephen Shaw UNQUALIFIED
Alejandro W StensethSpainAsiya Javayant NEW
David F OldroydArgentinaBernardo Dominic RENEWAL
Kaitlin V DilliardUnited KingdomAsiya Javayant PROPOSAL
Ricardo E PoquetteBrazilAsiya Javayant NEW
Aditya Q WieserItalyIoni Bowcher UNQUALIFIED
Johnson Y NickaFranceAnna Fali RENEWAL
Ivar J WaycottSpainElwin Sharvill RENEWAL
Munro O RutaGermanyElwin Sharvill QUALIFIED
Ashley V FlosiAustraliaBernardo Dominic QUALIFIED
Greenwood W RutaAustraliaXuxue Feng UNQUALIFIED
Alejandro U FerenczGermanyIvan Magalhaes PROPOSAL
Julie T KuskoAustraliaIvan Magalhaes PROPOSAL
Silvio F WaycottArgentinaAmy Elsner PROPOSAL
Jones X TollnerItalyIoni Bowcher NEGOTIATION
Wickens R IturbideArgentinaStephen Shaw UNQUALIFIED
Mujtaba C MorascaUnited KingdomXuxue Feng QUALIFIED
Claire V CaldareraSpainElwin Sharvill UNQUALIFIED
Deepesh V GillianItalyXuxue Feng PROPOSAL
Ivar D NestleArgentinaBernardo Dominic NEW
Maria D PerinCanadaAsiya Javayant NEW
Maria Q PaprockiSpainAsiya Javayant QUALIFIED
Adams H StensethFranceBernardo Dominic PROPOSAL
Greenwood O InouyeArgentinaAsiya Javayant NEW
Jones Q CampainIndiaXuxue Feng PROPOSAL
Nicolas S CaldareraUnited KingdomAsiya Javayant RENEWAL
Jennifer O StockhamCanadaStephen Shaw PROPOSAL
Murillo V GlickSpainAmy Elsner UNQUALIFIED
Deepesh G CaudyArgentinaAnna Fali QUALIFIED
Misaki D WieserBrazilXuxue Feng RENEWAL
Leja T OstroskyAustraliaIvan Magalhaes RENEWAL
Smith A BriddickBrazilBernardo Dominic NEGOTIATION
Maria M PerinArgentinaAsiya Javayant QUALIFIED
Deepesh Q KolmetzArgentinaOnyama Limba NEW
Morrow E RoysterItalyAsiya Javayant QUALIFIED
Kadeem C FerenczJapanAsiya Javayant NEGOTIATION
Costa O CampainJapanAsiya Javayant PROPOSAL
Emily C FollerJapanElwin Sharvill NEW
Salvatore A MorascaJapanBernardo Dominic QUALIFIED
Clifford O InouyeSpainStephen Shaw NEW
Jennifer U AlbaresItalyAmy Elsner UNQUALIFIED
Misaki U OldroydIndiaXuxue Feng NEGOTIATION
Ricardo C NestleAustraliaAnna Fali RENEWAL
James D NickaItalyElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Ashley Q SlusarskiRussiaAsiya Javayant QUALIFIED
Kaitlin H TollnerJapanElwin Sharvill NEGOTIATION
Ashley D FollerItalyAnna Fali NEGOTIATION
Antonio L MarrierBrazilXuxue Feng NEW
Faith W OldroydCanadaAnna Fali NEW
Deepesh Z BriddickItalyOnyama Limba QUALIFIED
Salvatore T WhobreyUnited KingdomAmy Elsner NEGOTIATION
Octavia M MaletSpainXuxue Feng NEW
Francesco K FollerFranceStephen Shaw UNQUALIFIED
Alejandro F InouyeCanadaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro M PaprockiBrazil2024-04-10Feiner Bros NEGOTIATION88Bernardo Dominic
1001Maria I MorascaAustralia2024-05-02Commercial Press NEW66Elwin Sharvill
1002Salvatore V SchemmerArgentina2024-04-20Buckley Miller Wright QUALIFIED58Onyama Limba
1003Jefferson E DoeGermany2024-05-04Chanay, Jeffrey A Esq PROPOSAL28Stephen Shaw
1004Kaitlin U StockhamCanada2024-05-03Chapman, Ross E Esq UNQUALIFIED4Ivan Magalhaes
1005Nicolas U MacleadRussia2024-04-27Rousseaux, Michael Esq PROPOSAL56Ioni Bowcher
1006Stacey G RimSpain2024-04-22Feltz Printing Service PROPOSAL92Ivan Magalhaes
1007Costa C SaylorsJapan2024-04-29Morlong Associates PROPOSAL93Anna Fali
1008Isabel C ButtItaly2024-04-09Chapman, Ross E Esq NEW26Anna Fali
1009Greenwood B OldroydUnited Kingdom2024-04-17Benton, John B Jr RENEWAL28Onyama Limba
1010Kaitlin U KuskoFrance2024-04-07Chapman, Ross E Esq NEW68Elwin Sharvill
1011Adams E MorascaAustralia2024-04-13Morlong Associates NEW53Amy Elsner
1012Jefferson A CampainArgentina2024-04-27Dorl, James J Esq NEW84Xuxue Feng
1013Maisha G DilliardFrance2024-04-23Feltz Printing Service RENEWAL22Stephen Shaw
1014Deepesh P MaletAustralia2024-04-13Rangoni Of Florence QUALIFIED48Asiya Javayant
1015Francesco Z MorascaIndia2024-04-21King, Christopher A Esq PROPOSAL39Asiya Javayant
1016Clifford Q StockhamIndia2024-04-28Truhlar And Truhlar Attys QUALIFIED77Amy Elsner
1017David X PerinSpain2024-04-11Rousseaux, Michael Esq UNQUALIFIED22Stephen Shaw
1018Rodrigues M OldroydRussia2024-04-25Commercial Press RENEWAL70Ioni Bowcher
1019Tony P PoquetteBrazil2024-04-30Rangoni Of Florence NEGOTIATION23Ivan Magalhaes
1020Misaki T BowleyBrazil2024-04-15Chanay, Jeffrey A Esq PROPOSAL23Amy Elsner
1021Nicolas H CampainGermany2024-04-29Chanay, Jeffrey A Esq NEW13Xuxue Feng
1022Morrow N VenereJapan2024-04-12Benton, John B Jr NEGOTIATION67Ivan Magalhaes
1023Tony R BowleySpain2024-04-05Truhlar And Truhlar Attys QUALIFIED35Elwin Sharvill
1024Clifford X DilliardUnited Kingdom2024-04-10Printing Dimensions QUALIFIED43Asiya Javayant
1025Isabel G WhobreyGermany2024-04-20Rangoni Of Florence UNQUALIFIED8Stephen Shaw
1026Darci Y MaletFrance2024-05-04King, Christopher A Esq QUALIFIED55Asiya Javayant
1027Deepesh V NickaUnited Kingdom2024-04-22Rangoni Of Florence NEW45Ioni Bowcher
1028Izzy G MorascaCanada2024-04-11Dorl, James J Esq NEGOTIATION29Stephen Shaw
1029Maisha U StensethAustralia2024-04-25Buckley Miller Wright NEW53Stephen Shaw
1030Nicolas N BowleyFrance2024-04-16Morlong Associates QUALIFIED54Onyama Limba
1031Kadeem W MaletIndia2024-04-10Commercial Press PROPOSAL56Bernardo Dominic
1032Kadeem R NestleBrazil2024-04-10Feltz Printing Service RENEWAL18Amy Elsner
1033Arvin R DoeItaly2024-04-10Feltz Printing Service RENEWAL55Onyama Limba
1034Wickens A BowleyItaly2024-04-25Chemel, James L Cpa NEGOTIATION2Ioni Bowcher
1035Isabel Y InouyeItaly2024-05-01Chapman, Ross E Esq UNQUALIFIED66Ioni Bowcher
1036Costa U TollnerBrazil2024-04-17Feiner Bros RENEWAL80Ioni Bowcher
1037Murillo S RoysterUnited Kingdom2024-04-06Rangoni Of Florence NEW8Ivan Magalhaes
1038Kadeem Q DilliardArgentina2024-05-02Chemel, James L Cpa RENEWAL67Ivan Magalhaes
1039Murillo A TollnerArgentina2024-05-04Morlong Associates NEGOTIATION76Stephen Shaw
1040Chavez H MarrierUnited Kingdom2024-05-04Truhlar And Truhlar Attys NEW49Xuxue Feng
1041Faith Y CampainBrazil2024-04-23Benton, John B Jr NEW44Amy Elsner
1042Jennifer S RulapaughRussia2024-04-11Chemel, James L Cpa RENEWAL58Stephen Shaw
1043Claire F NestleArgentina2024-04-29Benton, John B Jr UNQUALIFIED9Onyama Limba
1044Stacey C PoquetteArgentina2024-04-25Chemel, James L Cpa QUALIFIED15Ioni Bowcher
1045Silvio V CaudyGermany2024-04-16King, Christopher A Esq NEW11Xuxue Feng
1046Mayumi Y GarufiIndia2024-05-02King, Christopher A Esq PROPOSAL91Anna Fali
1047Chavez R GlickGermany2024-04-18Feiner Bros RENEWAL44Ivan Magalhaes
1048Darci R SergiGermany2024-04-20Benton, John B Jr PROPOSAL80Ivan Magalhaes
1049Aditya B InouyeAustralia2024-04-09Dorl, James J Esq NEGOTIATION68Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Octavia K GauchoGermanyBernardo Dominic PROPOSAL
Aditya T IturbideRussiaIoni Bowcher PROPOSAL
Wickens D ShinkoFranceOnyama Limba NEW
Jennifer A OstroskyCanadaIoni Bowcher UNQUALIFIED
Chavez A VenereUnited KingdomStephen Shaw NEW
Mujtaba S ShinkoSpainBernardo Dominic NEGOTIATION
Leja N RutaRussiaBernardo Dominic NEW
Maria O FlosiAustraliaBernardo Dominic NEW
Maria M FerenczGermanyXuxue Feng UNQUALIFIED
Murillo V GlickIndiaAmy Elsner UNQUALIFIED
Mayumi S MaletBrazilAnna Fali UNQUALIFIED
Morrow Z OldroydIndiaIvan Magalhaes NEW
Kaitlin I AmigonCanadaAmy Elsner QUALIFIED
Jennifer A PaprockiJapanAnna Fali UNQUALIFIED
Jefferson Z WieserArgentinaStephen Shaw RENEWAL
Nicolas L SaylorsRussiaAnna Fali PROPOSAL
Jeanfrancois A MacleadArgentinaElwin Sharvill UNQUALIFIED
Greenwood Q FollerIndiaIoni Bowcher RENEWAL
Isabel G PerinCanadaElwin Sharvill RENEWAL
Stacey M StockhamRussiaAsiya Javayant UNQUALIFIED
Arvin P AmigonAustraliaIoni Bowcher UNQUALIFIED
Cody D DarakjyIndiaIvan Magalhaes NEW
Kadeem J StockhamRussiaAsiya Javayant PROPOSAL
Johnson D MaletCanadaOnyama Limba QUALIFIED
Darci I GlickAustraliaIoni Bowcher PROPOSAL
Johnson H ShinkoSpainStephen Shaw RENEWAL
Mayumi C FigeroaItalyAmy Elsner UNQUALIFIED
Claire Q WieserIndiaAmy Elsner QUALIFIED
Munro E WaycottIndiaElwin Sharvill NEGOTIATION
Smith R ChuiJapanElwin Sharvill NEW
Antonio S VenereAustraliaIvan Magalhaes RENEWAL
Kadeem E MorascaJapanIvan Magalhaes NEGOTIATION
Adams R TollnerGermanyBernardo Dominic NEW
Mayumi G FerenczSpainAsiya Javayant NEGOTIATION
Munro U SlusarskiGermanyIoni Bowcher QUALIFIED
Ivar S ButtUnited KingdomBernardo Dominic NEW
Aditya N VenereFranceElwin Sharvill NEW
Faith U PoquetteSpainAnna Fali NEW
Misaki B OldroydUnited KingdomStephen Shaw RENEWAL
Costa T PoquetteIndiaElwin Sharvill NEGOTIATION
Salvatore V BologniaCanadaElwin Sharvill PROPOSAL
Ricardo P FerenczRussiaBernardo Dominic NEGOTIATION
Costa A SaylorsCanadaElwin Sharvill UNQUALIFIED
Isabel Y DilliardRussiaXuxue Feng RENEWAL
Jones B StensethAustraliaStephen Shaw PROPOSAL
Claire I DarakjyIndiaAsiya Javayant NEW
Arvin W RulapaughIndiaXuxue Feng QUALIFIED
Aika A AmigonFranceIvan Magalhaes RENEWAL
Morrow S RoysterJapanAnna Fali PROPOSAL
Aruna O RimGermanyXuxue Feng PROPOSAL
Frozen Columns
Name
Arvin I Vocelka
Leon X Bolognia
Claire N Amigon
Alejandro I Tollner
Arvin N Royster
Stacey C Briddick
Claire X Gaucho
Stacey H Iturbide
Rodrigues X Oldroyd
Antonio Q Slusarski
Ricardo A Caldarera
Sinclair R Glick
Maria D Morasca
Isabel V Inouye
Jefferson V Saylors
Leon D Ruta
David Q Kusko
Emily W Bolognia
Deepesh V Saylors
Juan P Stenseth
Octavia T Shinko
Faith R Nestle
Kaitlin O Poquette
Leon F Rim
David G Amigon
Morrow A Foller
Leon I Bowley
Mujtaba X Nicka
Mujtaba L Nestle
James D Vocelka
Ricardo Y Marrier
Misaki Q Morasca
Izzy A Caudy
Alejandro Z Sergi
Jones L Rim
Aditya S Caldarera
Juan R Flosi
Leja I Caldarera
Kadeem U Oldroyd
Jennifer D Schemmer
Maria G Stenseth
Mayumi J Flosi
Nicolas H Poquette
Kaitlin B Darakjy
Nicolas D Butt
Mayumi E Albares
Jeanfrancois A Malet
Wickens D Flosi
Antonio L Ostrosky
Jennifer L Albares
IdCountryDate
1000Italy2024-04-14
1001Australia2024-04-20
1002Russia2024-04-27
1003Germany2024-04-17
1004Argentina2024-04-25
1005France2024-04-26
1006Italy2024-04-11
1007India2024-04-09
1008Argentina2024-04-28
1009Japan2024-04-11
1010Japan2024-04-07
1011Germany2024-04-13
1012Canada2024-04-10
1013Argentina2024-04-11
1014Argentina2024-04-10
1015Germany2024-04-26
1016Australia2024-04-18
1017Japan2024-04-18
1018Japan2024-04-15
1019Canada2024-04-23
1020Australia2024-04-22
1021France2024-04-24
1022Italy2024-04-19
1023United Kingdom2024-04-07
1024United Kingdom2024-04-26
1025India2024-04-09
1026Spain2024-04-12
1027Japan2024-04-13
1028Italy2024-04-29
1029Argentina2024-05-01
1030Russia2024-04-05
1031Argentina2024-04-29
1032Australia2024-04-23
1033United Kingdom2024-04-30
1034France2024-04-16
1035Italy2024-04-30
1036India2024-04-09
1037India2024-05-04
1038Spain2024-04-13
1039Spain2024-04-14
1040Australia2024-05-03
1041Spain2024-04-30
1042Argentina2024-04-21
1043Argentina2024-04-24
1044United Kingdom2024-04-06
1045France2024-04-25
1046Germany2024-05-03
1047Canada2024-05-04
1048United Kingdom2024-04-22
1049India2024-04-14

On-Demand Data

NameIdCountryDate
Francesco V Morasca1000Italy2024-05-02
Aditya F Garufi1001Australia2024-04-23
Clifford I Inouye1002United Kingdom2024-04-28
Claire W Malet1003Argentina2024-04-09
Isabel L Sergi1004Germany2024-04-29
Leja N Stenseth1005India2024-04-07
Darci U Garufi1006Canada2024-04-17
Emily H Chui1007Canada2024-04-06
Murillo B Saylors1008France2024-04-13
Darci D Sergi1009Russia2024-04-24
Mayumi W Oldroyd1010France2024-04-05
Maria S Whobrey1011Russia2024-04-08
Julie U Amigon1012Japan2024-04-05
Julie Q Maclead1013Italy2024-04-27
Ricardo X Iturbide1014Argentina2024-04-20
Arvin X Butt1015Australia2024-04-06
Jefferson J Royster1016India2024-04-24
Isabel T Oldroyd1017Brazil2024-04-05
Arvin G Royster1018Japan2024-04-27
Ivar P Briddick1019United Kingdom2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy W SergiBrazilAmy Elsner UNQUALIFIED
Aruna R OstroskyJapanIvan Magalhaes NEW
Silvio F GarufiItalyElwin Sharvill PROPOSAL
Smith M SchemmerAustraliaAmy Elsner UNQUALIFIED
Claire F KuskoAustraliaXuxue Feng NEW
Aditya U WhobreyJapanIoni Bowcher RENEWAL
James Q OldroydGermanyAnna Fali RENEWAL
Adams S DilliardIndiaXuxue Feng NEW
Deepesh R BriddickUnited KingdomAsiya Javayant NEGOTIATION
Murillo X VocelkaBrazilXuxue Feng NEGOTIATION
Francesco B MaletRussiaIoni Bowcher QUALIFIED
Salvatore M GauchoGermanyAsiya Javayant QUALIFIED
Adams E KuskoJapanIvan Magalhaes RENEWAL
Silvio X OstroskySpainIoni Bowcher QUALIFIED
Maria G SchemmerArgentinaIvan Magalhaes NEW
Emily J BowleyArgentinaStephen Shaw UNQUALIFIED
Juan V RoysterJapanElwin Sharvill UNQUALIFIED
Smith S BologniaBrazilOnyama Limba NEW
Kaitlin G BologniaRussiaIvan Magalhaes RENEWAL
Francesco E ChuiRussiaIvan Magalhaes RENEWAL
Leon U MaletItalyElwin Sharvill NEGOTIATION
Cody D GillianSpainAmy Elsner RENEWAL
Clifford K RimFranceOnyama Limba UNQUALIFIED
Izzy D DoeCanadaStephen Shaw NEW
Smith S WieserCanadaStephen Shaw RENEWAL
Tony J AlbaresRussiaIvan Magalhaes RENEWAL
Izzy Z SaylorsGermanyAnna Fali PROPOSAL
Silvio U WieserAustraliaBernardo Dominic QUALIFIED
Sinclair D CaudyUnited KingdomOnyama Limba RENEWAL
Chavez H InouyeGermanyIvan Magalhaes RENEWAL
Juan N RimCanadaAsiya Javayant PROPOSAL
Ivar I MaletRussiaAmy Elsner PROPOSAL
Octavia M ButtBrazilAsiya Javayant NEGOTIATION
Leon T RimFranceIvan Magalhaes NEGOTIATION
Costa E RoysterBrazilAnna Fali RENEWAL
Leja X StensethFranceAmy Elsner QUALIFIED
David K BriddickItalyAsiya Javayant PROPOSAL
Silvio O StockhamBrazilIvan Magalhaes NEGOTIATION
Adams X DarakjyGermanyBernardo Dominic NEW
Ashley N AlbaresRussiaIvan Magalhaes PROPOSAL

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