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
Greenwood X RimGermanyElwin Sharvill PROPOSAL
Leja F SchemmerRussiaOnyama Limba RENEWAL
Claire T MorascaArgentinaElwin Sharvill RENEWAL
Julie T WieserSpainXuxue Feng NEGOTIATION
Greenwood Y AlbaresJapanOnyama Limba QUALIFIED
Aruna M DilliardUnited KingdomIvan Magalhaes NEW
Tony P PerinRussiaAmy Elsner PROPOSAL
Jefferson F ChuiAustraliaElwin Sharvill NEW
Alejandro E PaprockiAustraliaIvan Magalhaes NEW
Ivar S BriddickAustraliaIoni Bowcher NEW
Costa L StensethCanadaAmy Elsner NEGOTIATION
Sinclair O FigeroaGermanyIvan Magalhaes NEGOTIATION
Ivar Z RimAustraliaBernardo Dominic QUALIFIED
Maisha F VenereIndiaElwin Sharvill UNQUALIFIED
Deepesh L WhobreyRussiaAsiya Javayant QUALIFIED
Deepesh P MacleadRussiaBernardo Dominic NEW
Francesco F MarrierSpainAnna Fali NEGOTIATION
Faith W GillianRussiaElwin Sharvill NEGOTIATION
Morrow Y MaletBrazilOnyama Limba QUALIFIED
Nicolas J AmigonAustraliaBernardo Dominic QUALIFIED
Juan C MarrierItalyElwin Sharvill RENEWAL
Izzy T IturbideCanadaIvan Magalhaes NEW
Munro P InouyeUnited KingdomAnna Fali NEGOTIATION
Leon D PaprockiAustraliaXuxue Feng PROPOSAL
Clifford G WhobreyGermanyBernardo Dominic NEW
David X GlickAustraliaStephen Shaw UNQUALIFIED
Claire D PoquetteRussiaAnna Fali QUALIFIED
Julie I StensethUnited KingdomAnna Fali UNQUALIFIED
Nicolas Y InouyeSpainIvan Magalhaes UNQUALIFIED
Mayumi X FerenczGermanyIvan Magalhaes RENEWAL
Izzy C CaudySpainStephen Shaw QUALIFIED
Smith Q ChuiArgentinaElwin Sharvill UNQUALIFIED
Isabel Q GauchoFranceOnyama Limba RENEWAL
Maisha D IturbideCanadaStephen Shaw PROPOSAL
Costa I GarufiItalyAnna Fali UNQUALIFIED
Arvin P AmigonUnited KingdomAnna Fali RENEWAL
Mayumi Z SchemmerArgentinaStephen Shaw PROPOSAL
Wickens N SergiIndiaXuxue Feng QUALIFIED
Cody S StensethIndiaAsiya Javayant NEGOTIATION
Ivar M WhobreyGermanyAmy Elsner RENEWAL
Nicolas B MorascaGermanyIoni Bowcher PROPOSAL
Nicolas N IturbideFranceOnyama Limba RENEWAL
Silvio P BowleyCanadaAsiya Javayant NEGOTIATION
Jennifer I AmigonRussiaAnna Fali NEW
Salvatore N GarufiCanadaOnyama Limba UNQUALIFIED
Arvin O WhobreySpainBernardo Dominic NEGOTIATION
Greenwood H MaletBrazilBernardo Dominic NEW
Ricardo T FigeroaSpainAmy Elsner UNQUALIFIED
Octavia Q WaycottItalyAnna Fali UNQUALIFIED
Rodrigues D DilliardAustraliaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo M AlbaresArgentinaAmy Elsner QUALIFIED
Cody X PerinFranceOnyama Limba RENEWAL
Emily K KuskoGermanyIoni Bowcher NEW
Nicolas B FlosiSpainOnyama Limba UNQUALIFIED
Kadeem P DarakjyAustraliaAmy Elsner NEGOTIATION
Costa S MaletFranceOnyama Limba NEW
Silvio Q KolmetzIndiaIoni Bowcher PROPOSAL
Clifford T GillianFranceOnyama Limba RENEWAL
Alejandro Q SergiIndiaElwin Sharvill QUALIFIED
Greenwood F DarakjyBrazilAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois C WieserAustralia2024-04-11Printing Dimensions QUALIFIED91Ioni Bowcher
1001Aditya J WhobreyUnited Kingdom2024-04-11Rangoni Of Florence NEGOTIATION40Ioni Bowcher
1002Ivar M MacleadItaly2024-04-04Dorl, James J Esq RENEWAL6Onyama Limba
1003Johnson M PaprockiAustralia2024-04-07Chemel, James L Cpa UNQUALIFIED50Ivan Magalhaes
1004Darci N CaldareraCanada2024-04-17Benton, John B Jr QUALIFIED93Asiya Javayant
1005Morrow X RimRussia2024-03-27Morlong Associates QUALIFIED56Stephen Shaw
1006Greenwood M OldroydArgentina2024-04-08Commercial Press NEGOTIATION67Stephen Shaw
1007Ivar R MorascaCanada2024-04-02Feltz Printing Service NEW26Asiya Javayant
1008Juan J ShinkoFrance2024-04-01Chemel, James L Cpa QUALIFIED74Bernardo Dominic
1009Misaki S TollnerItaly2024-04-12Feltz Printing Service PROPOSAL67Onyama Limba
1010James L SchemmerRussia2024-04-23Rangoni Of Florence NEW41Xuxue Feng
1011Tony A MarrierIndia2024-03-29Commercial Press NEW88Onyama Limba
1012Darci P ChuiFrance2024-03-30Printing Dimensions NEGOTIATION5Bernardo Dominic
1013Greenwood X CaldareraItaly2024-03-31Feiner Bros RENEWAL25Ivan Magalhaes
1014Clifford B FerenczItaly2024-04-17Commercial Press PROPOSAL39Bernardo Dominic
1015Antonio W NickaAustralia2024-04-03Benton, John B Jr PROPOSAL10Asiya Javayant
1016Sinclair T VocelkaItaly2024-04-02Chapman, Ross E Esq QUALIFIED98Xuxue Feng
1017James D SergiUnited Kingdom2024-04-16Morlong Associates NEW78Ioni Bowcher
1018Julie J DilliardSpain2024-04-12Truhlar And Truhlar Attys QUALIFIED88Bernardo Dominic
1019Mayumi T RimGermany2024-04-06Buckley Miller Wright UNQUALIFIED31Elwin Sharvill
1020Julie O PerinBrazil2024-04-19Chanay, Jeffrey A Esq QUALIFIED4Xuxue Feng
1021Ricardo K GarufiBrazil2024-04-13Chemel, James L Cpa RENEWAL32Amy Elsner
1022Emily X CampainFrance2024-03-29Feiner Bros NEW36Asiya Javayant
1023Jeanfrancois I DarakjyCanada2024-04-11Printing Dimensions PROPOSAL83Bernardo Dominic
1024Costa I VocelkaUnited Kingdom2024-04-14Benton, John B Jr RENEWAL84Ivan Magalhaes
1025Costa H GillianItaly2024-04-16Rangoni Of Florence RENEWAL98Ivan Magalhaes
1026Salvatore N GlickArgentina2024-03-31Chemel, James L Cpa UNQUALIFIED82Bernardo Dominic
1027Wickens L PoquetteIndia2024-04-03Rangoni Of Florence NEW35Bernardo Dominic
1028Morrow Y PerinGermany2024-03-29Buckley Miller Wright RENEWAL97Xuxue Feng
1029David P CaldareraCanada2024-04-10Chanay, Jeffrey A Esq QUALIFIED89Stephen Shaw
1030Izzy R BriddickFrance2024-04-05Chemel, James L Cpa UNQUALIFIED64Elwin Sharvill
1031Aditya Y AlbaresIndia2024-04-18Printing Dimensions RENEWAL65Xuxue Feng
1032Nicolas J VenereUnited Kingdom2024-04-01Feiner Bros QUALIFIED52Ivan Magalhaes
1033Misaki D MaletFrance2024-04-13Rangoni Of Florence UNQUALIFIED63Asiya Javayant
1034Mayumi C FerenczFrance2024-04-13Benton, John B Jr NEGOTIATION87Amy Elsner
1035Faith X SchemmerSpain2024-04-22Dorl, James J Esq PROPOSAL75Anna Fali
1036Mayumi X BologniaFrance2024-04-16Chanay, Jeffrey A Esq RENEWAL39Anna Fali
1037Johnson M KuskoSpain2024-04-02Morlong Associates UNQUALIFIED18Bernardo Dominic
1038David N VocelkaJapan2024-04-05Benton, John B Jr UNQUALIFIED29Amy Elsner
1039Munro O GarufiBrazil2024-04-20Printing Dimensions NEGOTIATION60Ioni Bowcher
1040Ashley J GarufiIndia2024-04-16Feltz Printing Service NEGOTIATION12Stephen Shaw
1041Faith R SchemmerItaly2024-04-04Feiner Bros UNQUALIFIED87Ivan Magalhaes
1042Jefferson H BowleyFrance2024-03-28Commercial Press NEW72Stephen Shaw
1043Aruna F GlickAustralia2024-04-21Chemel, James L Cpa NEW62Elwin Sharvill
1044Mujtaba H StensethJapan2024-04-02Rangoni Of Florence UNQUALIFIED87Anna Fali
1045Clifford E SergiBrazil2024-04-23Feiner Bros QUALIFIED85Bernardo Dominic
1046Morrow M IturbideArgentina2024-04-16Rangoni Of Florence NEW95Bernardo Dominic
1047Alejandro M SergiSpain2024-04-10King, Christopher A Esq NEGOTIATION27Stephen Shaw
1048Smith L GarufiCanada2024-04-13Chapman, Ross E Esq QUALIFIED75Xuxue Feng
1049Tony B RimArgentina2024-04-14King, Christopher A Esq QUALIFIED17Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Arvin W MacleadFranceElwin Sharvill NEW
Faith E CaudyAustraliaAmy Elsner NEGOTIATION
Claire N PoquetteIndiaIvan Magalhaes NEW
Octavia A FollerCanadaOnyama Limba RENEWAL
Sinclair B MacleadIndiaStephen Shaw NEW
Johnson V MacleadFranceIvan Magalhaes NEGOTIATION
Adams Y NestleFranceXuxue Feng NEGOTIATION
Ivar S OldroydBrazilStephen Shaw PROPOSAL
Nicolas A TollnerArgentinaStephen Shaw PROPOSAL
Costa X SergiItalyXuxue Feng NEGOTIATION
Clifford B ShinkoGermanyIoni Bowcher NEW
Maria T DarakjyItalyElwin Sharvill UNQUALIFIED
Greenwood E PoquetteRussiaElwin Sharvill QUALIFIED
James C CaudyArgentinaIoni Bowcher NEGOTIATION
Antonio F CaudyBrazilAsiya Javayant NEGOTIATION
Rodrigues G WaycottBrazilOnyama Limba QUALIFIED
Faith Q SchemmerGermanyXuxue Feng NEGOTIATION
Arvin H GlickUnited KingdomAnna Fali QUALIFIED
Maisha Y BologniaFranceAsiya Javayant RENEWAL
Juan J NickaGermanyIvan Magalhaes NEGOTIATION
Munro T SergiUnited KingdomXuxue Feng NEGOTIATION
Leja O KolmetzItalyAnna Fali PROPOSAL
Costa N ChuiItalyElwin Sharvill QUALIFIED
Munro G RoysterItalyStephen Shaw PROPOSAL
Aika R DilliardBrazilAmy Elsner NEGOTIATION
Misaki Q OstroskyIndiaOnyama Limba NEW
Cody Y GillianAustraliaAmy Elsner QUALIFIED
Julie Z WaycottGermanyAmy Elsner PROPOSAL
Tony P InouyeCanadaAsiya Javayant RENEWAL
Aditya G CaldareraSpainBernardo Dominic NEW
Johnson K ButtJapanElwin Sharvill NEW
Chavez A BologniaUnited KingdomAsiya Javayant QUALIFIED
Cody L GlickAustraliaAmy Elsner NEW
David D DilliardUnited KingdomElwin Sharvill NEW
David X InouyeSpainIoni Bowcher PROPOSAL
Maria U CaudyCanadaAsiya Javayant PROPOSAL
Aditya S StockhamCanadaOnyama Limba QUALIFIED
Mujtaba U GlickArgentinaElwin Sharvill NEGOTIATION
Smith D MarrierRussiaIvan Magalhaes QUALIFIED
Mayumi N WaycottJapanOnyama Limba RENEWAL
Jeanfrancois U FerenczFranceAsiya Javayant PROPOSAL
Emily V RutaAustraliaElwin Sharvill QUALIFIED
Ivar D MacleadItalyOnyama Limba QUALIFIED
Greenwood H WaycottAustraliaOnyama Limba PROPOSAL
Julie S ChuiFranceAsiya Javayant RENEWAL
Maria M MarrierFranceIoni Bowcher UNQUALIFIED
Costa G PerinItalyIvan Magalhaes RENEWAL
Chavez G SchemmerFranceBernardo Dominic NEGOTIATION
Munro Z RimRussiaElwin Sharvill RENEWAL
Ricardo Q CaudyArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Antonio G Caudy
Clifford J Marrier
Mayumi M Butt
Jennifer S Nestle
Greenwood U Gillian
Ivar K Venere
Maria Q Perin
Kadeem N Saylors
Adams R Inouye
Arvin B Foller
Johnson R Caldarera
Murillo E Morasca
Ivar R Ferencz
Murillo F Stenseth
Emily P Flosi
Chavez Y Kusko
Alejandro T Bowley
Costa D Saylors
Emily W Slusarski
Julie Q Royster
Clifford T Kusko
Jeanfrancois W Chui
Deepesh R Campain
Jefferson S Rim
Johnson G Albares
Claire Q Darakjy
Jeanfrancois N Iturbide
Johnson Q Bowley
Aruna B Nicka
Kaitlin F Maclead
Alejandro I Perin
Ricardo K Bowley
Salvatore V Iturbide
Darci P Chui
Morrow P Ferencz
Izzy D Campain
Deepesh H Butt
Stacey D Gaucho
Claire M Poquette
Alejandro B Morasca
Aditya V Venere
Silvio H Figeroa
Jennifer G Rulapaugh
Octavia F Paprocki
Leon I Figeroa
Clifford X Doe
Misaki J Malet
Maisha W Sergi
Ivar I Bolognia
Sinclair O Foller
IdCountryDate
1000Australia2024-04-17
1001Brazil2024-04-02
1002Italy2024-03-29
1003Spain2024-03-29
1004Japan2024-04-06
1005Australia2024-04-24
1006France2024-04-08
1007Italy2024-03-30
1008Argentina2024-04-09
1009Russia2024-03-30
1010Argentina2024-04-23
1011India2024-04-17
1012Japan2024-04-02
1013Japan2024-04-18
1014Russia2024-04-23
1015United Kingdom2024-04-10
1016Spain2024-04-03
1017United Kingdom2024-04-04
1018United Kingdom2024-04-03
1019India2024-04-15
1020Italy2024-04-15
1021Germany2024-03-29
1022United Kingdom2024-04-25
1023India2024-04-19
1024Russia2024-04-09
1025Canada2024-04-13
1026Argentina2024-04-13
1027Italy2024-03-31
1028Japan2024-04-16
1029United Kingdom2024-04-22
1030Brazil2024-04-07
1031Argentina2024-04-04
1032Russia2024-03-31
1033Argentina2024-04-19
1034Argentina2024-03-29
1035Argentina2024-03-28
1036Australia2024-04-25
1037United Kingdom2024-04-19
1038United Kingdom2024-03-31
1039Brazil2024-04-16
1040Canada2024-04-11
1041United Kingdom2024-04-16
1042Germany2024-04-10
1043France2024-03-29
1044United Kingdom2024-04-06
1045Canada2024-03-30
1046Australia2024-04-12
1047Canada2024-04-08
1048Germany2024-04-22
1049Argentina2024-04-05

On-Demand Data

NameIdCountryDate
Rodrigues C Briddick1000India2024-04-24
Aditya O Doe1001Australia2024-03-29
Aruna E Ruta1002Australia2024-04-24
Juan C Malet1003India2024-04-24
Tony W Campain1004Brazil2024-03-31
Arvin X Ostrosky1005Brazil2024-03-31
Jennifer D Foller1006France2024-03-30
David Q Briddick1007Australia2024-04-03
Jones H Iturbide1008Spain2024-04-08
Jeanfrancois P Flosi1009France2024-04-25
Mayumi F Whobrey1010United Kingdom2024-04-08
Claire L Kolmetz1011Italy2024-04-11
David O Albares1012Italy2024-04-16
Jennifer W Glick1013France2024-04-07
Cody H Flosi1014Russia2024-04-07
James E Shinko1015Italy2024-04-12
Ashley G Briddick1016Brazil2024-04-23
Faith Q Wieser1017Australia2024-04-15
Munro H Kolmetz1018Argentina2024-04-21
Ricardo N Marrier1019Germany2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel N PoquetteCanadaStephen Shaw PROPOSAL
Nicolas A ButtItalyAmy Elsner RENEWAL
Munro I ChuiArgentinaStephen Shaw NEGOTIATION
Aika D NestleJapanOnyama Limba PROPOSAL
Jefferson N GarufiSpainStephen Shaw NEW
Jones D DoeAustraliaStephen Shaw NEGOTIATION
Munro I AlbaresIndiaElwin Sharvill NEW
Jones S GauchoItalyAmy Elsner QUALIFIED
Chavez B WieserFranceIvan Magalhaes NEW
Deepesh H BriddickGermanyAnna Fali RENEWAL
Arvin U StockhamArgentinaIvan Magalhaes RENEWAL
Francesco V KolmetzArgentinaXuxue Feng QUALIFIED
Emily B ChuiBrazilIvan Magalhaes NEW
Jennifer Y PaprockiIndiaElwin Sharvill NEGOTIATION
Leon V RutaItalyElwin Sharvill UNQUALIFIED
Emily Z DarakjyGermanyXuxue Feng UNQUALIFIED
Maisha I BowleyBrazilElwin Sharvill QUALIFIED
David Z FlosiBrazilIvan Magalhaes PROPOSAL
Greenwood I GillianSpainBernardo Dominic NEW
Jones I FollerUnited KingdomAmy Elsner QUALIFIED
Izzy T MarrierBrazilElwin Sharvill PROPOSAL
Nicolas Z RoysterBrazilAsiya Javayant PROPOSAL
Alejandro M FerenczArgentinaStephen Shaw UNQUALIFIED
Octavia H GlickGermanyIvan Magalhaes RENEWAL
Francesco P WaycottArgentinaOnyama Limba NEW
Faith D DoeFranceStephen Shaw RENEWAL
Kadeem H MacleadAustraliaAmy Elsner NEW
Kaitlin M ShinkoJapanAnna Fali NEW
Ivar C WieserAustraliaAmy Elsner UNQUALIFIED
Cody L TollnerArgentinaOnyama Limba UNQUALIFIED
Leja X StensethItalyIoni Bowcher PROPOSAL
Tony B CaldareraSpainXuxue Feng NEW
Stacey P IturbideUnited KingdomStephen Shaw QUALIFIED
David B MaletSpainXuxue Feng PROPOSAL
Izzy P SaylorsJapanStephen Shaw NEW
Nicolas U BriddickCanadaIoni Bowcher QUALIFIED
Alejandro G MorascaGermanyStephen Shaw QUALIFIED
Emily B ShinkoGermanyAsiya Javayant RENEWAL
Nicolas B RoysterSpainStephen Shaw NEGOTIATION
Smith Q NickaCanadaAsiya Javayant RENEWAL

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