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 A WhobreyItalyIoni Bowcher NEW
Aika Y CampainFranceIvan Magalhaes QUALIFIED
Misaki E MaletRussiaBernardo Dominic NEGOTIATION
Jefferson L SlusarskiArgentinaBernardo Dominic NEGOTIATION
Nicolas W GlickGermanyAsiya Javayant RENEWAL
Greenwood Q InouyeCanadaBernardo Dominic PROPOSAL
David C SaylorsAustraliaAnna Fali UNQUALIFIED
Jeanfrancois S AlbaresSpainIvan Magalhaes UNQUALIFIED
Leon Z WhobreyAustraliaXuxue Feng RENEWAL
Jennifer H FollerAustraliaAmy Elsner QUALIFIED
Maria X SlusarskiBrazilIoni Bowcher PROPOSAL
Kaitlin H FlosiSpainElwin Sharvill NEGOTIATION
Chavez W MorascaArgentinaStephen Shaw RENEWAL
Isabel R AlbaresGermanyAsiya Javayant QUALIFIED
Octavia B TollnerBrazilIoni Bowcher QUALIFIED
Ivar H AmigonJapanAnna Fali RENEWAL
Leja O DilliardCanadaXuxue Feng UNQUALIFIED
James X AmigonSpainIvan Magalhaes UNQUALIFIED
Jones X GauchoItalyStephen Shaw NEGOTIATION
Misaki R DilliardIndiaAsiya Javayant QUALIFIED
Mujtaba X PoquetteFranceIoni Bowcher PROPOSAL
Tony T WaycottIndiaElwin Sharvill UNQUALIFIED
Leon M SergiBrazilAsiya Javayant NEGOTIATION
Morrow D OldroydArgentinaAnna Fali NEGOTIATION
Octavia F MorascaBrazilAnna Fali QUALIFIED
Greenwood R MaletCanadaAnna Fali NEW
Isabel J BriddickFranceOnyama Limba PROPOSAL
Munro C IturbideFranceIoni Bowcher RENEWAL
Arvin E GauchoGermanyAmy Elsner NEW
Clifford P RulapaughGermanyStephen Shaw NEGOTIATION
Ricardo O KolmetzUnited KingdomStephen Shaw PROPOSAL
Johnson T GillianSpainIvan Magalhaes QUALIFIED
Chavez C VocelkaBrazilXuxue Feng PROPOSAL
Mujtaba G SergiUnited KingdomAnna Fali UNQUALIFIED
Francesco M WaycottFranceBernardo Dominic NEGOTIATION
Alejandro E WieserRussiaBernardo Dominic NEW
Jennifer K GarufiSpainXuxue Feng UNQUALIFIED
Maria V TollnerBrazilIoni Bowcher RENEWAL
Aruna R GillianSpainStephen Shaw NEGOTIATION
Johnson E VocelkaFranceElwin Sharvill NEGOTIATION
Ricardo I MacleadFranceIvan Magalhaes NEW
Jones P FerenczCanadaIvan Magalhaes NEW
Jones J CaudyBrazilIoni Bowcher NEW
Clifford R KolmetzRussiaBernardo Dominic QUALIFIED
Emily E WhobreyJapanStephen Shaw NEW
Maisha F BriddickFranceXuxue Feng QUALIFIED
Murillo Y FigeroaUnited KingdomBernardo Dominic RENEWAL
Costa P DilliardAustraliaBernardo Dominic NEW
Morrow V RimIndiaAmy Elsner NEGOTIATION
Leja S DarakjySpainAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin A InouyeCanadaIoni Bowcher RENEWAL
Octavia W KuskoRussiaAmy Elsner QUALIFIED
Francesco W DilliardSpainOnyama Limba NEGOTIATION
Stacey X WhobreyCanadaBernardo Dominic UNQUALIFIED
Silvio Y FollerGermanyAsiya Javayant QUALIFIED
Kaitlin X KolmetzRussiaBernardo Dominic UNQUALIFIED
Deepesh I FollerArgentinaIvan Magalhaes QUALIFIED
Tony Y WaycottJapanAsiya Javayant QUALIFIED
Cody M StensethItalyAsiya Javayant RENEWAL
Jennifer O FerenczCanadaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika T GarufiItaly2024-03-24Buckley Miller Wright UNQUALIFIED30Xuxue Feng
1001Tony O KuskoJapan2024-04-16Commercial Press QUALIFIED30Onyama Limba
1002Jefferson C AlbaresGermany2024-04-06Feltz Printing Service PROPOSAL41Asiya Javayant
1003Jones P DilliardGermany2024-04-04Feiner Bros UNQUALIFIED39Amy Elsner
1004Antonio T IturbideArgentina2024-03-20Truhlar And Truhlar Attys NEGOTIATION58Amy Elsner
1005Costa A WhobreyBrazil2024-04-13King, Christopher A Esq NEGOTIATION69Onyama Limba
1006Nicolas Q BowleyUnited Kingdom2024-03-21Rousseaux, Michael Esq UNQUALIFIED47Onyama Limba
1007Mayumi D GillianJapan2024-04-03Morlong Associates RENEWAL74Elwin Sharvill
1008Deepesh T RoysterRussia2024-04-16Benton, John B Jr NEW6Asiya Javayant
1009Munro S AlbaresBrazil2024-04-05Truhlar And Truhlar Attys RENEWAL12Ioni Bowcher
1010Kadeem B OstroskyCanada2024-04-11Chemel, James L Cpa NEGOTIATION16Elwin Sharvill
1011Wickens W ButtJapan2024-04-17Rousseaux, Michael Esq RENEWAL0Anna Fali
1012Jones V ShinkoSpain2024-03-27Rangoni Of Florence NEGOTIATION66Xuxue Feng
1013Deepesh S AmigonIndia2024-04-06Dorl, James J Esq RENEWAL0Ivan Magalhaes
1014Ivar T GillianItaly2024-04-17Rousseaux, Michael Esq PROPOSAL4Ivan Magalhaes
1015Ricardo N DoeSpain2024-03-23Chemel, James L Cpa RENEWAL68Amy Elsner
1016Faith M TollnerFrance2024-03-24Feltz Printing Service PROPOSAL82Ioni Bowcher
1017Morrow N VenereGermany2024-04-08Printing Dimensions QUALIFIED71Ivan Magalhaes
1018Sinclair I MaletCanada2024-04-04Rousseaux, Michael Esq UNQUALIFIED51Ivan Magalhaes
1019Kadeem C KuskoBrazil2024-04-18Chanay, Jeffrey A Esq RENEWAL36Onyama Limba
1020James I MarrierRussia2024-03-23Feltz Printing Service NEGOTIATION30Amy Elsner
1021Deepesh A CaldareraUnited Kingdom2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED31Ioni Bowcher
1022Morrow S ShinkoBrazil2024-03-27Truhlar And Truhlar Attys UNQUALIFIED13Amy Elsner
1023Rodrigues W AmigonGermany2024-03-31Dorl, James J Esq NEW63Ioni Bowcher
1024Aditya Q BowleyRussia2024-04-01Chapman, Ross E Esq PROPOSAL78Elwin Sharvill
1025Ivar F VenereFrance2024-03-22Chanay, Jeffrey A Esq UNQUALIFIED90Ivan Magalhaes
1026Jefferson V MarrierJapan2024-04-17Commercial Press NEGOTIATION61Anna Fali
1027Kaitlin X VenereUnited Kingdom2024-04-14King, Christopher A Esq PROPOSAL8Amy Elsner
1028Adams G NestleIndia2024-04-01Buckley Miller Wright NEGOTIATION55Amy Elsner
1029Emily T ShinkoItaly2024-04-06Feltz Printing Service NEGOTIATION48Asiya Javayant
1030Darci N OldroydAustralia2024-03-26Truhlar And Truhlar Attys QUALIFIED88Bernardo Dominic
1031Ivar Z SlusarskiGermany2024-03-25Morlong Associates PROPOSAL30Stephen Shaw
1032Maisha Q WaycottAustralia2024-03-31Truhlar And Truhlar Attys NEW84Xuxue Feng
1033Silvio G NestleAustralia2024-04-14King, Christopher A Esq NEW77Elwin Sharvill
1034Jennifer H StensethIndia2024-04-10Chanay, Jeffrey A Esq QUALIFIED37Elwin Sharvill
1035Faith W WaycottSpain2024-04-02Morlong Associates PROPOSAL40Asiya Javayant
1036Wickens N WhobreyGermany2024-03-20Morlong Associates RENEWAL93Stephen Shaw
1037Kadeem Z DoeBrazil2024-04-04Rousseaux, Michael Esq UNQUALIFIED41Bernardo Dominic
1038Isabel C NestleItaly2024-04-05Feiner Bros NEW93Stephen Shaw
1039Silvio Q RoysterFrance2024-04-17Feltz Printing Service NEGOTIATION40Asiya Javayant
1040Antonio Y FerenczArgentina2024-03-20Morlong Associates NEW62Anna Fali
1041Tony U InouyeCanada2024-03-24Commercial Press NEGOTIATION95Stephen Shaw
1042Arvin G MarrierSpain2024-03-26Feltz Printing Service QUALIFIED21Bernardo Dominic
1043Julie J MacleadSpain2024-04-14Buckley Miller Wright QUALIFIED90Elwin Sharvill
1044Morrow U SlusarskiItaly2024-04-08Benton, John B Jr UNQUALIFIED97Onyama Limba
1045Sinclair S StockhamFrance2024-03-25Chapman, Ross E Esq NEGOTIATION91Anna Fali
1046Faith E BowleyAustralia2024-03-28Truhlar And Truhlar Attys QUALIFIED53Ivan Magalhaes
1047Jefferson I GarufiRussia2024-04-10Feltz Printing Service PROPOSAL13Ivan Magalhaes
1048Wickens P MorascaRussia2024-04-05King, Christopher A Esq NEW63Ivan Magalhaes
1049Izzy J ChuiBrazil2024-04-09Rousseaux, Michael Esq NEW2Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel O CampainJapanIvan Magalhaes PROPOSAL
Ricardo N AmigonRussiaAmy Elsner UNQUALIFIED
Jones H SergiBrazilElwin Sharvill QUALIFIED
Smith F NestleAustraliaIvan Magalhaes UNQUALIFIED
Sinclair S NickaSpainXuxue Feng RENEWAL
Clifford X WieserIndiaAmy Elsner UNQUALIFIED
Leon Q TollnerFranceAnna Fali NEW
Wickens B VocelkaGermanyOnyama Limba RENEWAL
Antonio A ChuiJapanAsiya Javayant NEGOTIATION
Ashley D WieserFranceIoni Bowcher NEGOTIATION
Aruna W WhobreyJapanBernardo Dominic NEW
Sinclair C IturbideBrazilAsiya Javayant QUALIFIED
Juan V FerenczFranceOnyama Limba UNQUALIFIED
Emily U WaycottCanadaBernardo Dominic PROPOSAL
Aditya N FollerIndiaBernardo Dominic NEW
Ricardo N IturbideItalyAmy Elsner RENEWAL
Emily F RimAustraliaElwin Sharvill RENEWAL
James R GillianRussiaIvan Magalhaes QUALIFIED
Deepesh Z FerenczItalyStephen Shaw PROPOSAL
Rodrigues H NickaGermanyAsiya Javayant UNQUALIFIED
James K FlosiAustraliaIvan Magalhaes QUALIFIED
Salvatore F DilliardAustraliaAmy Elsner NEGOTIATION
Mayumi P VocelkaJapanAmy Elsner QUALIFIED
Salvatore L WieserGermanyAsiya Javayant PROPOSAL
Kaitlin R SergiArgentinaAnna Fali NEW
Ashley A TollnerBrazilIvan Magalhaes NEW
Isabel W GarufiCanadaStephen Shaw PROPOSAL
Aika R BriddickCanadaIvan Magalhaes PROPOSAL
Deepesh X BowleySpainXuxue Feng NEW
James V GarufiAustraliaIvan Magalhaes PROPOSAL
Leja E VocelkaIndiaAmy Elsner NEW
Misaki G InouyeArgentinaElwin Sharvill UNQUALIFIED
Adams Y SlusarskiArgentinaElwin Sharvill PROPOSAL
Murillo H DarakjyUnited KingdomBernardo Dominic PROPOSAL
Deepesh H BologniaArgentinaAmy Elsner NEGOTIATION
Leon U PoquetteAustraliaAmy Elsner NEGOTIATION
Adams D RulapaughArgentinaOnyama Limba RENEWAL
Francesco R RimItalyBernardo Dominic NEW
Emily R InouyeSpainBernardo Dominic NEW
Jeanfrancois K StensethUnited KingdomStephen Shaw NEGOTIATION
Aika P ShinkoAustraliaElwin Sharvill PROPOSAL
Darci J KuskoUnited KingdomStephen Shaw PROPOSAL
Ricardo N AmigonIndiaXuxue Feng NEW
Murillo E MaletJapanBernardo Dominic PROPOSAL
Ivar R SchemmerUnited KingdomXuxue Feng QUALIFIED
Mayumi Z StockhamArgentinaIoni Bowcher NEGOTIATION
Ricardo O MaletIndiaAnna Fali QUALIFIED
Mujtaba U RoysterUnited KingdomStephen Shaw PROPOSAL
Greenwood B RulapaughAustraliaOnyama Limba NEGOTIATION
Ivar X GlickFranceIoni Bowcher RENEWAL
Frozen Columns
Name
Clifford I Stenseth
Juan W Poquette
Salvatore L Flosi
Smith H Rulapaugh
Munro A Morasca
Kadeem N Foller
Antonio I Gaucho
Aditya C Malet
Silvio V Caudy
Darci A Foller
Chavez W Caldarera
Costa A Slusarski
Faith R Morasca
Julie E Schemmer
Faith T Darakjy
Stacey F Slusarski
David T Briddick
Kaitlin Q Garufi
Rodrigues H Butt
Izzy T Inouye
Chavez E Saylors
Aruna N Oldroyd
Aditya M Ruta
Silvio B Caudy
David L Wieser
Deepesh F Rim
Ivar P Flosi
Smith H Gaucho
Rodrigues Q Bowley
James C Kusko
Stacey Y Paprocki
Leja A Butt
Ashley X Perin
Kadeem L Caudy
Octavia P Gillian
Kaitlin J Slusarski
Kaitlin W Gaucho
Antonio E Figeroa
Francesco P Vocelka
Aika F Vocelka
David D Maclead
Antonio M Dilliard
Nicolas J Marrier
Aika T Kolmetz
Kadeem W Nicka
Johnson K Amigon
Cody N Perin
Ivar I Rim
Johnson Q Chui
Alejandro D Butt
IdCountryDate
1000France2024-04-18
1001Italy2024-03-26
1002Germany2024-04-09
1003Australia2024-04-01
1004United Kingdom2024-04-05
1005Russia2024-03-22
1006Germany2024-04-13
1007Germany2024-04-17
1008United Kingdom2024-04-08
1009Brazil2024-03-27
1010Canada2024-03-24
1011Italy2024-04-12
1012Brazil2024-04-16
1013United Kingdom2024-04-13
1014France2024-04-15
1015Spain2024-04-04
1016India2024-04-02
1017Australia2024-03-28
1018Brazil2024-03-29
1019Argentina2024-04-15
1020Australia2024-04-13
1021Canada2024-04-15
1022Spain2024-04-12
1023Brazil2024-04-08
1024Spain2024-04-06
1025Canada2024-03-28
1026Canada2024-04-07
1027Brazil2024-04-18
1028India2024-03-28
1029Argentina2024-03-22
1030Australia2024-03-31
1031Australia2024-04-15
1032Russia2024-04-04
1033Germany2024-04-05
1034Argentina2024-04-02
1035Brazil2024-03-23
1036Spain2024-03-27
1037Russia2024-03-29
1038Brazil2024-03-26
1039Canada2024-03-20
1040Canada2024-04-04
1041Canada2024-04-01
1042France2024-04-03
1043Brazil2024-03-22
1044Argentina2024-03-22
1045France2024-03-21
1046India2024-04-16
1047Germany2024-04-18
1048Germany2024-04-17
1049Argentina2024-04-03

On-Demand Data

NameIdCountryDate
Ashley M Waycott1000Australia2024-04-07
Isabel Y Wieser1001Russia2024-04-17
Morrow J Ruta1002Brazil2024-03-28
Mujtaba W Stenseth1003Spain2024-03-26
Jones E Dilliard1004Japan2024-03-30
Chavez F Kolmetz1005Spain2024-04-16
Claire Y Waycott1006United Kingdom2024-04-11
Adams A Butt1007Germany2024-04-03
Kadeem L Inouye1008Spain2024-04-03
James K Ostrosky1009Canada2024-04-12
Chavez J Bowley1010Brazil2024-04-05
Wickens D Paprocki1011Spain2024-04-11
Izzy N Waycott1012Spain2024-03-20
Silvio Q Shinko1013Japan2024-03-21
Mayumi W Kusko1014Canada2024-04-03
Ricardo J Butt1015Japan2024-03-31
Alejandro T Whobrey1016India2024-03-28
Chavez E Shinko1017United Kingdom2024-03-30
David J Amigon1018United Kingdom2024-04-15
Ivar U Dilliard1019France2024-03-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh A CaldareraIndiaAsiya Javayant PROPOSAL
Juan P DoeSpainAnna Fali NEW
Smith T MaletUnited KingdomStephen Shaw NEGOTIATION
Darci U BriddickSpainIvan Magalhaes NEW
Kaitlin U FigeroaItalyAsiya Javayant PROPOSAL
Deepesh J WaycottUnited KingdomIvan Magalhaes RENEWAL
Arvin Z VenereIndiaAsiya Javayant QUALIFIED
Darci W NestleCanadaAsiya Javayant NEW
Murillo O WhobreyJapanElwin Sharvill PROPOSAL
Antonio D IturbideItalyIoni Bowcher UNQUALIFIED
Costa D FigeroaSpainIoni Bowcher RENEWAL
Francesco Q CaudyIndiaOnyama Limba RENEWAL
Morrow G OldroydItalyIoni Bowcher PROPOSAL
Wickens D DarakjyGermanyStephen Shaw RENEWAL
Kaitlin F KuskoItalyXuxue Feng QUALIFIED
Aruna X NickaGermanyIoni Bowcher RENEWAL
Johnson R NestleArgentinaAsiya Javayant NEW
Munro G MacleadRussiaXuxue Feng UNQUALIFIED
David X InouyeJapanIoni Bowcher NEGOTIATION
Kaitlin E GauchoBrazilStephen Shaw RENEWAL
Aika S MarrierBrazilAsiya Javayant RENEWAL
Salvatore S MaletGermanyIoni Bowcher PROPOSAL
Rodrigues O OldroydArgentinaBernardo Dominic PROPOSAL
Emily F CaldareraArgentinaStephen Shaw PROPOSAL
Tony E SlusarskiRussiaAnna Fali NEGOTIATION
Sinclair L ButtIndiaXuxue Feng NEW
Maria P ButtItalyXuxue Feng NEW
Ashley M BowleySpainElwin Sharvill NEW
Maisha G GarufiIndiaIoni Bowcher NEW
Deepesh L AmigonJapanAsiya Javayant QUALIFIED
Sinclair E SlusarskiItalyElwin Sharvill PROPOSAL
Darci X GauchoUnited KingdomStephen Shaw NEGOTIATION
Misaki E RoysterItalyAnna Fali NEGOTIATION
Sinclair Y GarufiAustraliaOnyama Limba NEGOTIATION
Aditya S MaletCanadaStephen Shaw QUALIFIED
Chavez A CampainGermanyIoni Bowcher UNQUALIFIED
Clifford U CampainCanadaIvan Magalhaes QUALIFIED
Francesco R OldroydCanadaOnyama Limba NEW
Claire E BowleyBrazilAsiya Javayant UNQUALIFIED
Nicolas K ButtSpainBernardo Dominic UNQUALIFIED

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