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
Alejandro B SergiIndiaIvan Magalhaes RENEWAL
Clifford G NickaRussiaAnna Fali QUALIFIED
Julie M ShinkoRussiaElwin Sharvill RENEWAL
Leja E NickaIndiaElwin Sharvill RENEWAL
Cody V CaldareraBrazilAnna Fali NEGOTIATION
Wickens D OldroydCanadaOnyama Limba RENEWAL
Ashley K TollnerJapanBernardo Dominic QUALIFIED
Clifford C StockhamIndiaBernardo Dominic RENEWAL
Ivar Q SchemmerItalyStephen Shaw NEW
Murillo B RoysterGermanyAnna Fali PROPOSAL
Emily D PaprockiJapanAmy Elsner UNQUALIFIED
Wickens P CaudyGermanyElwin Sharvill NEGOTIATION
Jones H PerinBrazilAsiya Javayant UNQUALIFIED
Chavez L DarakjyArgentinaBernardo Dominic NEGOTIATION
Isabel K IturbideGermanyAsiya Javayant PROPOSAL
Antonio L DilliardItalyElwin Sharvill PROPOSAL
Isabel C MaletRussiaIvan Magalhaes PROPOSAL
Tony J SaylorsItalyAnna Fali RENEWAL
Maisha A BowleyUnited KingdomOnyama Limba PROPOSAL
Deepesh T KolmetzCanadaAmy Elsner QUALIFIED
Jennifer A CaldareraBrazilIvan Magalhaes PROPOSAL
Maria P DoeFranceElwin Sharvill NEGOTIATION
Adams E RimItalyElwin Sharvill RENEWAL
David K AlbaresBrazilIvan Magalhaes NEW
Emily H PaprockiFranceXuxue Feng RENEWAL
Jeanfrancois L ChuiFranceAnna Fali NEGOTIATION
Jones T GauchoAustraliaElwin Sharvill QUALIFIED
Murillo J CaldareraAustraliaAmy Elsner QUALIFIED
Maisha X KolmetzIndiaIoni Bowcher NEGOTIATION
Alejandro E MaletAustraliaAnna Fali NEW
Isabel Q GarufiJapanOnyama Limba UNQUALIFIED
Mujtaba V GillianIndiaAmy Elsner PROPOSAL
Jennifer Y DilliardUnited KingdomOnyama Limba UNQUALIFIED
David T CaldareraItalyXuxue Feng RENEWAL
Rodrigues M ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Aika S KolmetzUnited KingdomElwin Sharvill QUALIFIED
Costa H NickaFranceXuxue Feng PROPOSAL
Antonio Z SchemmerCanadaElwin Sharvill NEGOTIATION
Ivar Z GarufiJapanOnyama Limba QUALIFIED
Maisha A ButtAustraliaElwin Sharvill NEGOTIATION
Nicolas E DarakjyItalyBernardo Dominic UNQUALIFIED
Morrow M FollerFranceIoni Bowcher PROPOSAL
Greenwood X RimJapanOnyama Limba QUALIFIED
Smith X NickaUnited KingdomBernardo Dominic NEGOTIATION
Wickens L ButtFranceOnyama Limba NEW
Juan T SaylorsRussiaIoni Bowcher NEGOTIATION
Ricardo V RutaSpainXuxue Feng RENEWAL
Juan C BologniaBrazilIvan Magalhaes NEW
Antonio S StensethItalyAsiya Javayant RENEWAL
Sinclair A AmigonSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair Z FerenczFranceAmy Elsner PROPOSAL
Mujtaba Q DarakjyIndiaAsiya Javayant NEW
Darci Y NestleCanadaElwin Sharvill PROPOSAL
Jeanfrancois N RulapaughGermanyAmy Elsner PROPOSAL
Francesco P IturbideFranceAsiya Javayant UNQUALIFIED
Maria H WieserIndiaBernardo Dominic QUALIFIED
Francesco G NickaBrazilAnna Fali NEGOTIATION
Maria U PerinUnited KingdomOnyama Limba NEGOTIATION
Misaki B NickaFranceIoni Bowcher NEGOTIATION
Ivar G CampainSpainIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey X VenereIndia2024-04-01Benton, John B Jr UNQUALIFIED87Stephen Shaw
1001Octavia I BowleyArgentina2024-04-19Chemel, James L Cpa RENEWAL40Ivan Magalhaes
1002Aditya Z RoysterFrance2024-04-04Chapman, Ross E Esq NEW64Xuxue Feng
1003Julie X ChuiUnited Kingdom2024-04-29Commercial Press QUALIFIED6Xuxue Feng
1004Leon M OldroydCanada2024-04-22Printing Dimensions UNQUALIFIED20Ivan Magalhaes
1005David L VocelkaCanada2024-03-31Chanay, Jeffrey A Esq RENEWAL60Stephen Shaw
1006Johnson C MaletUnited Kingdom2024-04-28Feiner Bros PROPOSAL39Ioni Bowcher
1007Wickens P SchemmerGermany2024-04-26Commercial Press UNQUALIFIED99Anna Fali
1008Smith Y ChuiUnited Kingdom2024-04-28Printing Dimensions NEGOTIATION8Onyama Limba
1009Cody H WieserSpain2024-04-25Rousseaux, Michael Esq UNQUALIFIED4Ioni Bowcher
1010Octavia L IturbideRussia2024-04-11Truhlar And Truhlar Attys UNQUALIFIED97Asiya Javayant
1011Nicolas J SaylorsAustralia2024-04-24Benton, John B Jr RENEWAL50Stephen Shaw
1012Adams E RulapaughIndia2024-04-02Truhlar And Truhlar Attys UNQUALIFIED11Amy Elsner
1013Smith J ShinkoAustralia2024-04-13Chanay, Jeffrey A Esq RENEWAL54Onyama Limba
1014Jefferson Y SlusarskiCanada2024-04-03Truhlar And Truhlar Attys UNQUALIFIED26Anna Fali
1015Francesco P OstroskyArgentina2024-04-22Morlong Associates UNQUALIFIED75Elwin Sharvill
1016Kaitlin T GauchoFrance2024-04-26Chemel, James L Cpa QUALIFIED0Bernardo Dominic
1017Greenwood I RutaAustralia2024-04-26King, Christopher A Esq PROPOSAL68Ivan Magalhaes
1018Isabel I SlusarskiCanada2024-04-25Buckley Miller Wright QUALIFIED86Stephen Shaw
1019Sinclair T WhobreyBrazil2024-04-14Morlong Associates PROPOSAL10Amy Elsner
1020Jefferson R CaudyUnited Kingdom2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED98Ioni Bowcher
1021James C GlickUnited Kingdom2024-04-26Truhlar And Truhlar Attys NEGOTIATION49Onyama Limba
1022Jones X DilliardJapan2024-04-09King, Christopher A Esq NEW90Xuxue Feng
1023Francesco V MaletUnited Kingdom2024-04-04King, Christopher A Esq NEGOTIATION83Anna Fali
1024Ivar P RulapaughFrance2024-04-09Rousseaux, Michael Esq NEW38Onyama Limba
1025Antonio K FerenczItaly2024-04-19Buckley Miller Wright RENEWAL93Bernardo Dominic
1026Aditya D SergiSpain2024-04-21Chanay, Jeffrey A Esq RENEWAL29Anna Fali
1027Deepesh O SaylorsSpain2024-04-26Feltz Printing Service PROPOSAL22Asiya Javayant
1028Smith E SaylorsAustralia2024-04-20Chemel, James L Cpa QUALIFIED91Ioni Bowcher
1029Chavez S FigeroaFrance2024-04-25Chemel, James L Cpa NEW40Onyama Limba
1030Mujtaba Z BriddickBrazil2024-04-16Morlong Associates UNQUALIFIED86Amy Elsner
1031Wickens C KolmetzGermany2024-04-21Rousseaux, Michael Esq QUALIFIED48Amy Elsner
1032Jefferson I BowleyAustralia2024-04-15Feiner Bros UNQUALIFIED95Anna Fali
1033Maisha L WhobreySpain2024-04-22Dorl, James J Esq RENEWAL76Stephen Shaw
1034Francesco K PaprockiIndia2024-04-26Rousseaux, Michael Esq NEW25Amy Elsner
1035Isabel N PoquetteArgentina2024-04-18Morlong Associates QUALIFIED75Bernardo Dominic
1036Murillo D KuskoArgentina2024-04-28Rangoni Of Florence NEW78Elwin Sharvill
1037Wickens I VocelkaCanada2024-04-20Commercial Press RENEWAL1Xuxue Feng
1038Greenwood P MarrierBrazil2024-04-22King, Christopher A Esq RENEWAL93Elwin Sharvill
1039Chavez E DarakjyGermany2024-04-25Dorl, James J Esq UNQUALIFIED40Bernardo Dominic
1040Jones O MarrierUnited Kingdom2024-04-25Rangoni Of Florence RENEWAL25Xuxue Feng
1041Tony R ShinkoAustralia2024-04-13Rangoni Of Florence NEGOTIATION74Elwin Sharvill
1042Aika B WhobreyArgentina2024-04-07Dorl, James J Esq RENEWAL18Stephen Shaw
1043Mayumi N ShinkoItaly2024-04-26Truhlar And Truhlar Attys NEW24Elwin Sharvill
1044James O InouyeIndia2024-04-03Chemel, James L Cpa QUALIFIED98Stephen Shaw
1045Ashley G PoquetteCanada2024-04-28Chanay, Jeffrey A Esq UNQUALIFIED78Ivan Magalhaes
1046Sinclair U CampainSpain2024-04-24Buckley Miller Wright NEGOTIATION66Onyama Limba
1047Arvin O GillianJapan2024-04-20Chemel, James L Cpa NEGOTIATION79Ivan Magalhaes
1048Faith E MaletSpain2024-04-06Rousseaux, Michael Esq PROPOSAL19Amy Elsner
1049Leon J FlosiUnited Kingdom2024-04-16Feiner Bros UNQUALIFIED4Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leon R FlosiSpainXuxue Feng UNQUALIFIED
Rodrigues V MaletArgentinaOnyama Limba UNQUALIFIED
Faith H ChuiGermanyStephen Shaw QUALIFIED
Cody K FerenczAustraliaBernardo Dominic NEW
Mayumi L TollnerCanadaXuxue Feng PROPOSAL
Rodrigues G MaletCanadaOnyama Limba UNQUALIFIED
Kaitlin X AlbaresCanadaXuxue Feng UNQUALIFIED
Juan N NickaCanadaStephen Shaw RENEWAL
Stacey Z RimJapanIoni Bowcher QUALIFIED
James V KuskoSpainIvan Magalhaes QUALIFIED
Isabel E StensethCanadaXuxue Feng NEGOTIATION
Mujtaba A AmigonSpainIvan Magalhaes NEW
Faith V VenereIndiaAsiya Javayant UNQUALIFIED
Greenwood X ButtUnited KingdomXuxue Feng RENEWAL
Salvatore Z SlusarskiArgentinaAmy Elsner NEGOTIATION
Faith E RoysterJapanIvan Magalhaes NEW
Darci W AlbaresArgentinaBernardo Dominic RENEWAL
Aruna T MaletRussiaAnna Fali QUALIFIED
Juan W PerinRussiaOnyama Limba NEW
Adams P DilliardUnited KingdomXuxue Feng PROPOSAL
Darci N FigeroaAustraliaAnna Fali PROPOSAL
Aditya J MaletCanadaAmy Elsner QUALIFIED
Francesco D TollnerArgentinaElwin Sharvill PROPOSAL
Darci R SergiIndiaAmy Elsner NEW
Clifford J SchemmerAustraliaAnna Fali UNQUALIFIED
Deepesh Q MarrierJapanElwin Sharvill NEW
Mujtaba I PaprockiIndiaAnna Fali UNQUALIFIED
Murillo I CaudyArgentinaAsiya Javayant UNQUALIFIED
Sinclair S NestleJapanOnyama Limba QUALIFIED
Ivar D RimIndiaIoni Bowcher RENEWAL
Claire F TollnerFranceStephen Shaw RENEWAL
Deepesh V OldroydIndiaAsiya Javayant UNQUALIFIED
Wickens B KuskoItalyAsiya Javayant QUALIFIED
Juan A OstroskyCanadaIoni Bowcher NEGOTIATION
Leja P FlosiBrazilStephen Shaw PROPOSAL
Rodrigues P FlosiItalyXuxue Feng RENEWAL
Maria J GillianItalyIvan Magalhaes PROPOSAL
Deepesh I SaylorsSpainAmy Elsner NEW
Costa A DoeFranceAnna Fali NEW
Adams O BriddickBrazilIvan Magalhaes QUALIFIED
Deepesh S RulapaughFranceAsiya Javayant UNQUALIFIED
Isabel R AmigonArgentinaAnna Fali PROPOSAL
Jeanfrancois Z ShinkoBrazilAmy Elsner NEGOTIATION
Mayumi M DoeBrazilAsiya Javayant QUALIFIED
Wickens U SchemmerIndiaElwin Sharvill QUALIFIED
Misaki X ShinkoUnited KingdomIoni Bowcher QUALIFIED
Aditya V KolmetzBrazilOnyama Limba NEGOTIATION
Leja O WaycottItalyElwin Sharvill UNQUALIFIED
Murillo M ChuiCanadaXuxue Feng UNQUALIFIED
James M MaletIndiaXuxue Feng PROPOSAL
Frozen Columns
Name
David O Figeroa
Ivar P Darakjy
Alejandro N Gillian
Jeanfrancois Z Paprocki
Smith U Ostrosky
Alejandro W Paprocki
Claire C Slusarski
Julie I Albares
Mujtaba Q Ostrosky
Costa W Caldarera
Jones W Royster
Aika U Flosi
Jefferson W Rulapaugh
Wickens C Marrier
Emily O Rim
Mayumi A Iturbide
Morrow X Slusarski
Murillo E Perin
James H Briddick
Munro M Darakjy
Emily C Shinko
Kadeem A Shinko
Aditya P Malet
Ricardo E Nicka
Alejandro C Shinko
Aika P Saylors
Alejandro Y Darakjy
Jeanfrancois H Doe
Nicolas W Venere
Kadeem I Malet
Aika U Kusko
Greenwood Z Glick
Munro J Gaucho
Ivar U Morasca
Misaki B Glick
Jefferson E Sergi
Deepesh E Foller
Sinclair A Campain
Aditya O Malet
Chavez K Shinko
Silvio N Iturbide
Salvatore E Oldroyd
Octavia C Venere
Leon E Rulapaugh
Isabel Y Dilliard
Aika U Gaucho
Costa V Marrier
Salvatore P Rulapaugh
Smith Q Maclead
Sinclair P Gillian
IdCountryDate
1000Canada2024-04-16
1001Argentina2024-04-07
1002Japan2024-04-23
1003Italy2024-04-06
1004United Kingdom2024-03-31
1005Russia2024-04-28
1006Germany2024-04-06
1007Italy2024-04-27
1008Japan2024-04-23
1009United Kingdom2024-04-29
1010India2024-04-26
1011Japan2024-04-27
1012Brazil2024-04-14
1013Germany2024-04-12
1014Canada2024-04-28
1015Germany2024-04-16
1016Italy2024-04-02
1017Italy2024-04-18
1018Japan2024-04-16
1019Brazil2024-04-20
1020Australia2024-04-02
1021Spain2024-04-15
1022Brazil2024-04-29
1023Italy2024-04-21
1024Canada2024-04-23
1025Argentina2024-04-16
1026Italy2024-04-10
1027Argentina2024-04-05
1028Brazil2024-03-31
1029United Kingdom2024-04-16
1030Canada2024-04-25
1031France2024-03-31
1032France2024-04-22
1033Argentina2024-04-23
1034Brazil2024-04-29
1035Canada2024-04-23
1036Canada2024-04-25
1037Russia2024-04-09
1038Germany2024-04-11
1039Australia2024-03-31
1040Japan2024-04-25
1041India2024-04-24
1042Spain2024-04-15
1043Australia2024-03-31
1044Spain2024-04-01
1045Italy2024-04-04
1046Spain2024-04-12
1047Canada2024-04-07
1048France2024-03-31
1049Spain2024-04-27

On-Demand Data

NameIdCountryDate
Julie C Perin1000Spain2024-04-25
Kadeem O Nestle1001Italy2024-04-11
Ivar M Nicka1002Italy2024-04-15
Stacey K Glick1003France2024-04-01
Aditya D Caldarera1004Australia2024-04-19
Jeanfrancois H Paprocki1005Russia2024-04-22
Sinclair X Rim1006Spain2024-04-23
Chavez K Whobrey1007France2024-04-27
Aditya K Nicka1008Argentina2024-04-25
Leja I Iturbide1009Japan2024-04-07
Stacey I Maclead1010Germany2024-04-24
Kadeem M Waycott1011Germany2024-04-10
Ricardo X Venere1012Argentina2024-04-03
Aditya P Flosi1013Spain2024-04-28
Ashley Z Gillian1014Spain2024-04-14
Chavez B Nicka1015Brazil2024-04-13
Jefferson J Foller1016India2024-04-18
Greenwood K Morasca1017Canada2024-04-09
Silvio V Flosi1018Australia2024-04-05
Tony F Royster1019United Kingdom2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones G PoquetteAustraliaAsiya Javayant RENEWAL
Silvio M MarrierSpainBernardo Dominic PROPOSAL
Francesco F BriddickRussiaIoni Bowcher NEGOTIATION
Aika R FigeroaIndiaStephen Shaw UNQUALIFIED
Deepesh F RulapaughUnited KingdomIoni Bowcher NEW
Kaitlin C GillianGermanyElwin Sharvill PROPOSAL
Octavia J ShinkoJapanIoni Bowcher PROPOSAL
Maisha T BowleyAustraliaAmy Elsner NEW
Isabel X TollnerIndiaIoni Bowcher NEW
Mujtaba B WaycottItalyIvan Magalhaes QUALIFIED
Clifford H RutaGermanyStephen Shaw UNQUALIFIED
Greenwood R FerenczFranceIvan Magalhaes NEGOTIATION
Kaitlin F BologniaJapanBernardo Dominic NEGOTIATION
Salvatore F BriddickJapanAnna Fali RENEWAL
Julie Z StensethGermanyAnna Fali PROPOSAL
Nicolas J GlickArgentinaAnna Fali PROPOSAL
Jennifer O AlbaresArgentinaStephen Shaw RENEWAL
Morrow R CaldareraSpainOnyama Limba RENEWAL
Jeanfrancois H PaprockiRussiaAnna Fali NEW
Rodrigues W RulapaughIndiaAsiya Javayant UNQUALIFIED
Johnson J SchemmerRussiaAsiya Javayant PROPOSAL
Mujtaba U KuskoJapanOnyama Limba UNQUALIFIED
Aruna Y IturbideIndiaOnyama Limba PROPOSAL
Nicolas O VenereArgentinaAmy Elsner RENEWAL
Deepesh W GauchoUnited KingdomXuxue Feng NEGOTIATION
Jennifer V PerinUnited KingdomXuxue Feng NEW
Johnson F OldroydGermanyIvan Magalhaes UNQUALIFIED
Ricardo Q VocelkaIndiaBernardo Dominic UNQUALIFIED
Munro N StockhamRussiaStephen Shaw UNQUALIFIED
Greenwood V PoquetteBrazilOnyama Limba QUALIFIED
Jeanfrancois Z GillianIndiaAnna Fali NEGOTIATION
Tony B PoquetteJapanXuxue Feng PROPOSAL
Greenwood O MacleadCanadaElwin Sharvill UNQUALIFIED
Morrow W NestleSpainXuxue Feng PROPOSAL
Aika T OldroydCanadaBernardo Dominic NEW
Costa V RutaRussiaXuxue Feng NEGOTIATION
Leon B OstroskyUnited KingdomOnyama Limba NEGOTIATION
Stacey G CaudyIndiaBernardo Dominic NEGOTIATION
Francesco W WaycottUnited KingdomXuxue Feng NEW
Juan Y StockhamCanadaBernardo 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>