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
Juan D IturbideFranceAmy Elsner QUALIFIED
Silvio V FollerAustraliaAmy Elsner NEGOTIATION
Jennifer B SlusarskiIndiaBernardo Dominic NEGOTIATION
Aruna Y DoeAustraliaIoni Bowcher QUALIFIED
Salvatore L MorascaAustraliaAsiya Javayant NEGOTIATION
Adams K DilliardBrazilAsiya Javayant PROPOSAL
Adams U VocelkaUnited KingdomOnyama Limba QUALIFIED
Leja W AlbaresBrazilXuxue Feng QUALIFIED
Johnson D MarrierJapanElwin Sharvill NEW
Leja J OstroskySpainElwin Sharvill QUALIFIED
Aruna G VenereUnited KingdomElwin Sharvill NEGOTIATION
Julie O MaletJapanAnna Fali QUALIFIED
Costa M WaycottJapanXuxue Feng QUALIFIED
Emily Q StensethArgentinaAnna Fali NEW
Jeanfrancois Y PerinSpainBernardo Dominic PROPOSAL
Silvio V DarakjyItalyAnna Fali PROPOSAL
Maria W ChuiSpainIvan Magalhaes RENEWAL
Kaitlin R BriddickUnited KingdomIoni Bowcher NEW
Maisha Q NestleUnited KingdomAsiya Javayant NEW
Darci X GauchoRussiaOnyama Limba PROPOSAL
Leon B FlosiUnited KingdomXuxue Feng NEGOTIATION
Clifford W TollnerJapanAnna Fali NEW
Johnson Z StensethGermanyAsiya Javayant QUALIFIED
Jones R RimIndiaBernardo Dominic QUALIFIED
Costa O MorascaBrazilAnna Fali UNQUALIFIED
Ivar Q MarrierArgentinaIoni Bowcher RENEWAL
Jennifer U FerenczItalyXuxue Feng UNQUALIFIED
Juan J CampainUnited KingdomAnna Fali RENEWAL
Ashley L IturbideRussiaAmy Elsner UNQUALIFIED
Leja T VocelkaItalyXuxue Feng QUALIFIED
Tony L MorascaUnited KingdomStephen Shaw RENEWAL
Jeanfrancois F BriddickArgentinaBernardo Dominic NEGOTIATION
Arvin Q DarakjyCanadaStephen Shaw NEGOTIATION
Clifford X RimBrazilIvan Magalhaes RENEWAL
Jeanfrancois A DoeGermanyElwin Sharvill UNQUALIFIED
Francesco U DoeJapanAmy Elsner RENEWAL
David O AlbaresCanadaOnyama Limba RENEWAL
Munro A VocelkaRussiaIvan Magalhaes NEW
Deepesh R AlbaresIndiaIoni Bowcher QUALIFIED
Adams Q IturbideUnited KingdomAmy Elsner QUALIFIED
Morrow Q FlosiIndiaIvan Magalhaes RENEWAL
James K SchemmerFranceAmy Elsner RENEWAL
Silvio R DarakjyAustraliaStephen Shaw NEGOTIATION
David U RutaRussiaStephen Shaw NEW
Morrow E InouyeFranceStephen Shaw NEW
Costa Y OstroskyCanadaAnna Fali PROPOSAL
Maria K MorascaFranceIvan Magalhaes RENEWAL
Aditya S IturbideCanadaIvan Magalhaes PROPOSAL
Nicolas X PoquetteFranceXuxue Feng UNQUALIFIED
Aika P OldroydSpainStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba W OstroskyBrazilOnyama Limba UNQUALIFIED
Izzy N SlusarskiIndiaStephen Shaw PROPOSAL
Murillo V DilliardUnited KingdomAnna Fali UNQUALIFIED
Morrow I VocelkaAustraliaAnna Fali NEW
Munro R AlbaresRussiaXuxue Feng RENEWAL
Costa P WaycottJapanIoni Bowcher NEW
Mujtaba N DoeBrazilAnna Fali RENEWAL
Mujtaba O GarufiBrazilIvan Magalhaes QUALIFIED
Octavia Q InouyeGermanyXuxue Feng UNQUALIFIED
Antonio B SchemmerAustraliaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro N KolmetzArgentina2024-04-25Feiner Bros PROPOSAL68Bernardo Dominic
1001Aditya H MaletUnited Kingdom2024-04-12Printing Dimensions UNQUALIFIED13Asiya Javayant
1002Francesco I CaudySpain2024-04-17Dorl, James J Esq NEGOTIATION75Amy Elsner
1003Ricardo Y SaylorsAustralia2024-04-10Chapman, Ross E Esq NEGOTIATION56Xuxue Feng
1004Silvio L NestleJapan2024-04-08Chanay, Jeffrey A Esq NEGOTIATION99Asiya Javayant
1005Mayumi V ButtArgentina2024-04-22Feiner Bros PROPOSAL27Ioni Bowcher
1006Isabel R SergiArgentina2024-04-01Feltz Printing Service RENEWAL55Bernardo Dominic
1007Leja S GillianBrazil2024-03-30Chanay, Jeffrey A Esq RENEWAL79Anna Fali
1008Leja W FollerArgentina2024-04-24Feltz Printing Service PROPOSAL61Xuxue Feng
1009Octavia D FlosiSpain2024-04-01Chapman, Ross E Esq PROPOSAL66Stephen Shaw
1010Chavez T MaletCanada2024-04-18Rangoni Of Florence NEW16Ioni Bowcher
1011Kadeem L DoeJapan2024-04-11Dorl, James J Esq NEW61Xuxue Feng
1012Adams P MacleadSpain2024-04-17Chanay, Jeffrey A Esq PROPOSAL25Onyama Limba
1013Antonio K BologniaGermany2024-04-09Rousseaux, Michael Esq RENEWAL98Bernardo Dominic
1014Nicolas E GillianBrazil2024-04-23Chanay, Jeffrey A Esq NEGOTIATION63Ioni Bowcher
1015Aika M ButtJapan2024-04-22Rousseaux, Michael Esq PROPOSAL83Onyama Limba
1016Ashley U CaudyRussia2024-03-28Feltz Printing Service UNQUALIFIED81Asiya Javayant
1017Tony H BriddickItaly2024-04-01Morlong Associates QUALIFIED98Stephen Shaw
1018Francesco F MorascaArgentina2024-04-12Feiner Bros QUALIFIED87Anna Fali
1019Arvin P DarakjyItaly2024-04-14Benton, John B Jr PROPOSAL85Xuxue Feng
1020Leja D ChuiGermany2024-04-02Chemel, James L Cpa NEGOTIATION26Ioni Bowcher
1021David Y MorascaIndia2024-04-07Dorl, James J Esq NEW5Stephen Shaw
1022Rodrigues Y GarufiAustralia2024-04-05Dorl, James J Esq UNQUALIFIED60Ioni Bowcher
1023Johnson K IturbideUnited Kingdom2024-04-03Morlong Associates PROPOSAL2Bernardo Dominic
1024Jones F NestleArgentina2024-04-18Chapman, Ross E Esq PROPOSAL6Asiya Javayant
1025David D WieserJapan2024-04-17Truhlar And Truhlar Attys RENEWAL66Onyama Limba
1026Stacey Y WaycottFrance2024-03-29Rousseaux, Michael Esq RENEWAL47Bernardo Dominic
1027Francesco H AlbaresGermany2024-04-15Buckley Miller Wright NEW31Ivan Magalhaes
1028Cody O FerenczUnited Kingdom2024-03-30Chemel, James L Cpa NEGOTIATION16Elwin Sharvill
1029Rodrigues E ButtCanada2024-04-23Chanay, Jeffrey A Esq QUALIFIED63Stephen Shaw
1030Stacey D OldroydJapan2024-04-23Truhlar And Truhlar Attys NEW89Amy Elsner
1031Leon H AlbaresCanada2024-04-01Rousseaux, Michael Esq RENEWAL88Bernardo Dominic
1032Munro V FigeroaIndia2024-04-04Rangoni Of Florence NEGOTIATION90Ivan Magalhaes
1033Aditya A RoysterJapan2024-04-07Truhlar And Truhlar Attys QUALIFIED39Stephen Shaw
1034Faith S RulapaughArgentina2024-04-07Buckley Miller Wright RENEWAL52Bernardo Dominic
1035Leja E NestleGermany2024-04-19Chapman, Ross E Esq PROPOSAL46Ivan Magalhaes
1036Costa C RimJapan2024-04-08King, Christopher A Esq RENEWAL21Amy Elsner
1037Emily Y OstroskyArgentina2024-04-01Chanay, Jeffrey A Esq NEGOTIATION67Stephen Shaw
1038Mayumi H RutaIndia2024-03-29Buckley Miller Wright NEGOTIATION18Amy Elsner
1039Jennifer U ShinkoItaly2024-03-28Benton, John B Jr UNQUALIFIED64Stephen Shaw
1040Aruna B DoeArgentina2024-03-28Feltz Printing Service UNQUALIFIED96Amy Elsner
1041Mayumi K FigeroaIndia2024-04-21King, Christopher A Esq RENEWAL88Xuxue Feng
1042Aruna I BowleyUnited Kingdom2024-04-15Feltz Printing Service PROPOSAL63Onyama Limba
1043Adams P NickaItaly2024-04-25Chanay, Jeffrey A Esq NEW97Onyama Limba
1044Mujtaba O VocelkaIndia2024-04-22King, Christopher A Esq NEGOTIATION75Amy Elsner
1045Leja T CaldareraSpain2024-04-14Chapman, Ross E Esq UNQUALIFIED77Ioni Bowcher
1046Leja K CampainItaly2024-04-01Morlong Associates UNQUALIFIED47Onyama Limba
1047Aditya R GlickArgentina2024-04-16Buckley Miller Wright QUALIFIED67Ioni Bowcher
1048Smith P DarakjyFrance2024-04-11Feiner Bros UNQUALIFIED60Ioni Bowcher
1049Ricardo M AlbaresUnited Kingdom2024-04-21Benton, John B Jr RENEWAL82Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Francesco C PaprockiBrazilAsiya Javayant PROPOSAL
Arvin Y DoeItalyIvan Magalhaes QUALIFIED
Alejandro A DoeAustraliaIvan Magalhaes UNQUALIFIED
Deepesh P RoysterArgentinaIvan Magalhaes UNQUALIFIED
Silvio W DilliardUnited KingdomAsiya Javayant RENEWAL
Clifford K MaletJapanBernardo Dominic NEGOTIATION
Ricardo M DarakjyRussiaStephen Shaw PROPOSAL
Kadeem P StockhamArgentinaAsiya Javayant QUALIFIED
James E WaycottItalyStephen Shaw PROPOSAL
Francesco B BowleySpainAsiya Javayant UNQUALIFIED
Aika L AlbaresFranceBernardo Dominic RENEWAL
Morrow Z SaylorsSpainElwin Sharvill UNQUALIFIED
Clifford V DarakjyItalyIvan Magalhaes QUALIFIED
Jones S DoeArgentinaBernardo Dominic PROPOSAL
Jennifer B OstroskyCanadaAnna Fali UNQUALIFIED
Jefferson C BologniaJapanXuxue Feng NEW
Greenwood X OldroydGermanyAmy Elsner PROPOSAL
Ricardo D SergiSpainXuxue Feng NEGOTIATION
Ricardo R VocelkaSpainStephen Shaw PROPOSAL
Francesco H SlusarskiUnited KingdomAsiya Javayant RENEWAL
Leon A SchemmerAustraliaAsiya Javayant UNQUALIFIED
Smith N StensethFranceIvan Magalhaes PROPOSAL
Costa Z GauchoSpainAnna Fali UNQUALIFIED
Isabel F RutaFranceStephen Shaw UNQUALIFIED
Darci F BologniaGermanyElwin Sharvill PROPOSAL
Wickens B KuskoSpainAsiya Javayant NEW
Sinclair R FollerCanadaOnyama Limba QUALIFIED
Greenwood V ChuiArgentinaBernardo Dominic PROPOSAL
Alejandro K GlickRussiaOnyama Limba QUALIFIED
Kaitlin C DilliardSpainStephen Shaw UNQUALIFIED
Adams H TollnerFranceOnyama Limba QUALIFIED
Leja L KolmetzAustraliaElwin Sharvill QUALIFIED
James R NickaSpainStephen Shaw PROPOSAL
Leon L GillianIndiaElwin Sharvill QUALIFIED
Murillo U PaprockiAustraliaAnna Fali PROPOSAL
Octavia C GillianGermanyIvan Magalhaes NEGOTIATION
Jefferson W CaldareraArgentinaAnna Fali RENEWAL
Ashley P BowleyFranceXuxue Feng RENEWAL
Leon R SergiIndiaIvan Magalhaes NEW
Sinclair R WhobreyGermanyElwin Sharvill PROPOSAL
Sinclair F SlusarskiBrazilIvan Magalhaes QUALIFIED
Silvio A ShinkoJapanIoni Bowcher NEW
Morrow D ChuiArgentinaElwin Sharvill UNQUALIFIED
Stacey B GlickSpainAmy Elsner PROPOSAL
Mujtaba X OstroskyArgentinaElwin Sharvill QUALIFIED
Costa O BologniaJapanAnna Fali UNQUALIFIED
Jefferson N PaprockiUnited KingdomAsiya Javayant QUALIFIED
Misaki V BowleyBrazilIoni Bowcher NEW
Adams V CaudyUnited KingdomXuxue Feng RENEWAL
Octavia G GlickJapanElwin Sharvill QUALIFIED
Frozen Columns
Name
Aditya I Paprocki
David U Glick
Maisha I Foller
Leja P Marrier
Deepesh F Iturbide
Antonio C Flosi
Greenwood B Inouye
Rodrigues T Butt
Darci N Maclead
Sinclair J Kolmetz
Claire E Ferencz
Francesco I Foller
Darci M Ferencz
Juan Y Butt
Aditya D Nicka
Octavia Q Malet
Arvin H Inouye
Costa I Tollner
Darci M Ostrosky
Aruna G Bolognia
Izzy R Iturbide
Kaitlin F Kusko
Jennifer W Dilliard
Cody D Marrier
Leja A Perin
Jennifer H Kusko
Aruna Y Doe
Silvio A Albares
Jeanfrancois G Albares
James V Glick
David A Darakjy
Deepesh K Whobrey
Maria L Tollner
Salvatore K Morasca
Adams V Waycott
Deepesh B Foller
Adams G Vocelka
Rodrigues G Stenseth
Juan Z Gillian
Jones F Morasca
Mayumi O Kusko
Rodrigues C Ferencz
Aruna Y Glick
Maria G Figeroa
Greenwood O Vocelka
Murillo C Gaucho
Cody U Venere
Faith F Campain
Misaki P Bolognia
Leon U Malet
IdCountryDate
1000India2024-04-23
1001Germany2024-04-22
1002Japan2024-04-11
1003Italy2024-04-12
1004Spain2024-04-25
1005Spain2024-04-22
1006Japan2024-04-20
1007United Kingdom2024-04-14
1008United Kingdom2024-04-14
1009Italy2024-04-21
1010Italy2024-04-22
1011Argentina2024-03-29
1012United Kingdom2024-04-13
1013Australia2024-03-30
1014India2024-03-29
1015India2024-04-08
1016France2024-04-24
1017Canada2024-04-04
1018Brazil2024-03-29
1019Germany2024-04-05
1020Brazil2024-04-02
1021Canada2024-04-09
1022Germany2024-03-29
1023France2024-04-21
1024Russia2024-04-26
1025Germany2024-04-13
1026Argentina2024-04-02
1027Russia2024-04-19
1028Argentina2024-04-04
1029Germany2024-04-24
1030Germany2024-04-22
1031India2024-04-26
1032Italy2024-04-20
1033Canada2024-04-03
1034Canada2024-04-01
1035Russia2024-04-20
1036United Kingdom2024-03-31
1037Argentina2024-04-09
1038Spain2024-04-07
1039Russia2024-04-23
1040Italy2024-04-20
1041Germany2024-04-03
1042Canada2024-04-03
1043India2024-04-03
1044Australia2024-04-21
1045Germany2024-04-08
1046Japan2024-04-15
1047Russia2024-04-01
1048Brazil2024-04-22
1049Italy2024-04-19

On-Demand Data

NameIdCountryDate
Leon V Chui1000Germany2024-04-17
Morrow I Saylors1001Australia2024-04-05
Aika V Stockham1002Australia2024-04-20
Darci L Oldroyd1003India2024-04-21
Isabel Y Inouye1004Canada2024-04-01
Faith R Gillian1005Russia2024-04-12
Ashley Z Saylors1006Australia2024-04-11
Silvio D Butt1007Australia2024-04-07
Mayumi Z Ostrosky1008France2024-04-13
Maisha Y Stenseth1009Japan2024-04-05
Francesco C Caldarera1010Australia2024-04-23
Deepesh W Waycott1011Italy2024-04-04
Jeanfrancois X Ferencz1012Australia2024-04-19
Faith W Iturbide1013Brazil2024-04-16
Silvio L Stockham1014India2024-04-17
Julie N Poquette1015Japan2024-04-11
Wickens T Whobrey1016India2024-04-02
Jefferson R Campain1017India2024-04-22
Maria S Gillian1018Japan2024-04-23
Silvio H Perin1019Japan2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio O PoquetteSpainXuxue Feng NEW
David E RoysterFranceAnna Fali UNQUALIFIED
Rodrigues C FlosiSpainAmy Elsner PROPOSAL
Morrow B WaycottArgentinaXuxue Feng NEW
Mayumi U SaylorsArgentinaIvan Magalhaes PROPOSAL
Greenwood J VocelkaRussiaStephen Shaw UNQUALIFIED
Kadeem J ShinkoItalyIvan Magalhaes PROPOSAL
Maisha R OstroskyJapanIoni Bowcher UNQUALIFIED
Wickens U WieserRussiaStephen Shaw PROPOSAL
Nicolas A GillianItalyElwin Sharvill RENEWAL
Claire B FigeroaGermanyAnna Fali NEGOTIATION
Octavia H NestleIndiaAmy Elsner UNQUALIFIED
David Y InouyeCanadaOnyama Limba PROPOSAL
Ashley J AlbaresCanadaBernardo Dominic NEGOTIATION
Rodrigues C OstroskyAustraliaIoni Bowcher NEW
Francesco M WhobreyAustraliaStephen Shaw PROPOSAL
Antonio Q PerinBrazilBernardo Dominic RENEWAL
Stacey Z DilliardUnited KingdomOnyama Limba RENEWAL
Jeanfrancois R GauchoJapanIvan Magalhaes QUALIFIED
Ashley W OstroskyBrazilOnyama Limba NEW
Arvin N FerenczSpainIoni Bowcher QUALIFIED
Aditya V FlosiIndiaAmy Elsner NEW
Chavez A FlosiGermanyAnna Fali NEW
Sinclair T TollnerIndiaBernardo Dominic NEW
Johnson T WieserJapanStephen Shaw NEGOTIATION
Misaki R StensethAustraliaOnyama Limba QUALIFIED
Jennifer Z InouyeIndiaIoni Bowcher PROPOSAL
Octavia E BologniaBrazilElwin Sharvill RENEWAL
Alejandro W DarakjySpainAnna Fali NEW
Aika H DoeRussiaIvan Magalhaes QUALIFIED
Rodrigues Z KolmetzGermanyElwin Sharvill NEW
Kadeem V PoquetteUnited KingdomElwin Sharvill PROPOSAL
Cody F StockhamArgentinaXuxue Feng UNQUALIFIED
Nicolas Q RoysterJapanXuxue Feng QUALIFIED
Faith B GauchoFranceAsiya Javayant PROPOSAL
Tony V KolmetzItalyBernardo Dominic QUALIFIED
Maisha G RimIndiaAsiya Javayant PROPOSAL
Sinclair G VocelkaGermanyOnyama Limba RENEWAL
Kadeem U MaletGermanyOnyama Limba UNQUALIFIED
Munro X ChuiFranceXuxue Feng 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>