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
Aika V GlickIndiaXuxue Feng RENEWAL
Julie V RimArgentinaElwin Sharvill UNQUALIFIED
Sinclair C OldroydBrazilAsiya Javayant PROPOSAL
Julie J KuskoBrazilElwin Sharvill NEGOTIATION
Cody P RoysterRussiaElwin Sharvill RENEWAL
Leja S CaldareraUnited KingdomElwin Sharvill NEW
Ashley B InouyeArgentinaStephen Shaw RENEWAL
Rodrigues S CaldareraCanadaStephen Shaw PROPOSAL
Ashley H GauchoUnited KingdomAsiya Javayant RENEWAL
Mujtaba U ButtJapanXuxue Feng PROPOSAL
Darci J RutaBrazilXuxue Feng RENEWAL
Kadeem B WaycottFranceAnna Fali NEW
Rodrigues Z AmigonCanadaIvan Magalhaes UNQUALIFIED
Aruna X MarrierGermanyAsiya Javayant PROPOSAL
Kadeem S BologniaUnited KingdomIoni Bowcher PROPOSAL
Faith W MaletJapanBernardo Dominic RENEWAL
Julie T SergiCanadaAmy Elsner QUALIFIED
Morrow R BowleyUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia E MorascaAustraliaBernardo Dominic QUALIFIED
Maisha F NestleIndiaOnyama Limba NEGOTIATION
Deepesh S RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Aditya U RulapaughRussiaStephen Shaw RENEWAL
Antonio Q DarakjySpainOnyama Limba NEGOTIATION
Chavez N SchemmerAustraliaAsiya Javayant RENEWAL
Jefferson Z ChuiAustraliaElwin Sharvill PROPOSAL
Francesco T MaletFranceAnna Fali RENEWAL
Tony A SchemmerFranceBernardo Dominic NEW
Octavia W OldroydRussiaOnyama Limba UNQUALIFIED
Rodrigues H MorascaItalyIvan Magalhaes UNQUALIFIED
Silvio Q GillianIndiaAmy Elsner QUALIFIED
Greenwood V GarufiItalyAnna Fali PROPOSAL
Chavez I MacleadJapanBernardo Dominic NEW
Aika D DarakjyBrazilElwin Sharvill NEW
Rodrigues T ButtGermanyOnyama Limba PROPOSAL
Tony I BriddickGermanyElwin Sharvill UNQUALIFIED
Ashley L VocelkaFranceAsiya Javayant QUALIFIED
James M ButtJapanIvan Magalhaes PROPOSAL
Maria U RutaGermanyAnna Fali NEGOTIATION
Ivar L FigeroaCanadaAsiya Javayant UNQUALIFIED
Smith N PerinUnited KingdomAmy Elsner RENEWAL
Alejandro C BologniaCanadaIoni Bowcher NEW
Misaki H SlusarskiArgentinaXuxue Feng PROPOSAL
Aika T WieserAustraliaStephen Shaw RENEWAL
Aika M SchemmerJapanBernardo Dominic NEW
Faith S RulapaughUnited KingdomOnyama Limba RENEWAL
Aditya W VenereJapanBernardo Dominic RENEWAL
Izzy H PerinArgentinaStephen Shaw UNQUALIFIED
Tony D GillianFranceXuxue Feng NEW
Misaki M IturbideGermanyXuxue Feng NEGOTIATION
Arvin A FerenczUnited KingdomAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa F DilliardIndiaIvan Magalhaes NEGOTIATION
James S InouyeAustraliaElwin Sharvill QUALIFIED
Rodrigues X GauchoJapanElwin Sharvill NEGOTIATION
Kaitlin J VenereFranceBernardo Dominic NEW
Faith B KolmetzJapanIvan Magalhaes RENEWAL
Jefferson V DarakjyJapanElwin Sharvill UNQUALIFIED
Aika X OldroydSpainOnyama Limba PROPOSAL
Jennifer H OldroydArgentinaStephen Shaw PROPOSAL
Aika X MaletIndiaAnna Fali NEW
Morrow R DilliardArgentinaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco Y FigeroaSpain2024-04-21Commercial Press UNQUALIFIED70Ioni Bowcher
1001Aika T NickaBrazil2024-04-13Chanay, Jeffrey A Esq NEGOTIATION54Onyama Limba
1002Alejandro F FollerGermany2024-04-25Morlong Associates RENEWAL13Onyama Limba
1003Tony T MarrierCanada2024-04-19Rousseaux, Michael Esq NEW9Anna Fali
1004David W StockhamArgentina2024-04-19Feiner Bros NEW14Xuxue Feng
1005Smith F RulapaughRussia2024-04-06Truhlar And Truhlar Attys QUALIFIED84Ivan Magalhaes
1006James Z RutaRussia2024-04-28Feltz Printing Service NEGOTIATION56Ivan Magalhaes
1007Ivar Y BriddickSpain2024-04-17Benton, John B Jr PROPOSAL56Bernardo Dominic
1008Antonio E MarrierGermany2024-04-06Buckley Miller Wright RENEWAL72Anna Fali
1009Antonio R IturbideRussia2024-04-07Rangoni Of Florence QUALIFIED70Anna Fali
1010Ivar R DarakjySpain2024-04-24Rangoni Of Florence RENEWAL71Stephen Shaw
1011Nicolas H KuskoGermany2024-04-09Morlong Associates PROPOSAL76Onyama Limba
1012Salvatore C GlickAustralia2024-04-29Feltz Printing Service PROPOSAL8Amy Elsner
1013Silvio N WaycottBrazil2024-04-26Truhlar And Truhlar Attys NEW62Elwin Sharvill
1014Aruna R IturbideCanada2024-04-29Chemel, James L Cpa NEW78Asiya Javayant
1015Silvio E PaprockiBrazil2024-04-29Chanay, Jeffrey A Esq NEW51Elwin Sharvill
1016Claire I SaylorsArgentina2024-04-12Printing Dimensions UNQUALIFIED49Elwin Sharvill
1017Wickens A CampainGermany2024-04-05Dorl, James J Esq UNQUALIFIED42Ioni Bowcher
1018Mayumi L FerenczSpain2024-04-05Benton, John B Jr RENEWAL21Ioni Bowcher
1019Sinclair V OldroydCanada2024-04-23Chanay, Jeffrey A Esq NEGOTIATION79Elwin Sharvill
1020Maria E SchemmerUnited Kingdom2024-04-22Chapman, Ross E Esq UNQUALIFIED3Amy Elsner
1021Francesco Y BriddickRussia2024-04-16Commercial Press UNQUALIFIED65Stephen Shaw
1022Kaitlin V DilliardUnited Kingdom2024-04-25Chanay, Jeffrey A Esq RENEWAL89Asiya Javayant
1023Jeanfrancois M SergiCanada2024-04-04Rangoni Of Florence PROPOSAL55Amy Elsner
1024Wickens P StockhamArgentina2024-04-10Feiner Bros RENEWAL72Ivan Magalhaes
1025Ivar Q VocelkaJapan2024-04-16Feiner Bros NEW53Xuxue Feng
1026David Y KuskoJapan2024-04-22Feiner Bros RENEWAL51Stephen Shaw
1027Emily V NestleFrance2024-04-03King, Christopher A Esq PROPOSAL96Elwin Sharvill
1028Mujtaba P StockhamBrazil2024-04-23Chapman, Ross E Esq NEW97Anna Fali
1029Octavia W WieserRussia2024-04-04Buckley Miller Wright NEGOTIATION71Onyama Limba
1030Emily S DilliardRussia2024-04-24Chemel, James L Cpa NEW8Onyama Limba
1031Francesco H StockhamArgentina2024-04-23King, Christopher A Esq RENEWAL48Xuxue Feng
1032Faith W KuskoBrazil2024-04-28Printing Dimensions RENEWAL54Anna Fali
1033Aditya Z OstroskySpain2024-04-24Buckley Miller Wright RENEWAL39Amy Elsner
1034Silvio I MacleadGermany2024-04-17Rousseaux, Michael Esq NEW59Bernardo Dominic
1035Aruna F WhobreySpain2024-04-07Truhlar And Truhlar Attys RENEWAL81Bernardo Dominic
1036Costa D OldroydGermany2024-04-19Buckley Miller Wright RENEWAL77Ivan Magalhaes
1037Aruna M GlickAustralia2024-04-24Benton, John B Jr QUALIFIED19Xuxue Feng
1038Sinclair O RutaGermany2024-04-30Chemel, James L Cpa UNQUALIFIED63Ivan Magalhaes
1039Jeanfrancois L AmigonAustralia2024-04-04Truhlar And Truhlar Attys RENEWAL94Anna Fali
1040Tony P BriddickCanada2024-04-06Chemel, James L Cpa QUALIFIED11Onyama Limba
1041Aika B RoysterAustralia2024-04-03King, Christopher A Esq NEW56Stephen Shaw
1042Izzy B GillianCanada2024-04-30Buckley Miller Wright NEGOTIATION24Ivan Magalhaes
1043Maisha S RoysterItaly2024-04-15Rangoni Of Florence UNQUALIFIED80Stephen Shaw
1044Francesco T SchemmerCanada2024-04-02Chapman, Ross E Esq QUALIFIED33Elwin Sharvill
1045Mayumi J MarrierUnited Kingdom2024-04-24Buckley Miller Wright NEGOTIATION11Asiya Javayant
1046Maria T CampainArgentina2024-04-24Chemel, James L Cpa QUALIFIED60Elwin Sharvill
1047Faith N IturbideUnited Kingdom2024-04-02Commercial Press QUALIFIED89Onyama Limba
1048Greenwood J DilliardFrance2024-04-14Chanay, Jeffrey A Esq NEW54Elwin Sharvill
1049Claire A RutaItaly2024-04-27Chanay, Jeffrey A Esq NEGOTIATION8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria T CaudyJapanXuxue Feng NEGOTIATION
Faith O StensethJapanAsiya Javayant NEW
Murillo E WhobreyIndiaIoni Bowcher UNQUALIFIED
Ashley Z BriddickFranceXuxue Feng UNQUALIFIED
Antonio Y FlosiBrazilAmy Elsner NEGOTIATION
Alejandro M PerinAustraliaBernardo Dominic RENEWAL
Izzy M WieserBrazilElwin Sharvill RENEWAL
Costa G FollerJapanXuxue Feng RENEWAL
Deepesh X StensethUnited KingdomAnna Fali NEGOTIATION
Emily D DilliardJapanIvan Magalhaes NEW
Jefferson O ButtArgentinaElwin Sharvill NEW
Maria K CaudyItalyAsiya Javayant QUALIFIED
Nicolas P StensethItalyAnna Fali PROPOSAL
Tony L KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Tony O FigeroaItalyIvan Magalhaes QUALIFIED
Aditya L ShinkoSpainXuxue Feng QUALIFIED
Jeanfrancois E ChuiUnited KingdomAnna Fali PROPOSAL
Ashley U RimCanadaAmy Elsner NEW
Faith D SaylorsUnited KingdomAmy Elsner NEW
Darci D BowleyUnited KingdomAsiya Javayant NEGOTIATION
Jennifer V WaycottCanadaAmy Elsner NEW
Salvatore D RimIndiaIvan Magalhaes PROPOSAL
Sinclair M WaycottRussiaXuxue Feng NEGOTIATION
Francesco Q IturbideAustraliaBernardo Dominic NEW
Mujtaba A BowleyAustraliaElwin Sharvill NEW
Juan L GlickCanadaBernardo Dominic PROPOSAL
Adams T StockhamBrazilBernardo Dominic NEGOTIATION
Juan A AmigonItalyIvan Magalhaes NEGOTIATION
Misaki X WieserJapanAnna Fali UNQUALIFIED
Rodrigues U SchemmerRussiaAnna Fali RENEWAL
Ashley J CampainFranceElwin Sharvill PROPOSAL
Aditya F TollnerSpainIoni Bowcher RENEWAL
Leja V RimAustraliaOnyama Limba UNQUALIFIED
Chavez P RutaAustraliaIoni Bowcher QUALIFIED
Johnson V SergiAustraliaAnna Fali NEGOTIATION
Arvin B AmigonIndiaElwin Sharvill UNQUALIFIED
Jefferson G GillianRussiaAnna Fali UNQUALIFIED
Juan H StensethIndiaStephen Shaw NEGOTIATION
Jefferson J FigeroaRussiaOnyama Limba NEW
Clifford L WieserItalyStephen Shaw NEGOTIATION
Chavez H GauchoItalyStephen Shaw QUALIFIED
Kadeem D SlusarskiRussiaElwin Sharvill NEW
Salvatore Q SergiJapanStephen Shaw NEGOTIATION
Claire F GlickIndiaBernardo Dominic RENEWAL
James A InouyeJapanXuxue Feng RENEWAL
Julie Y ChuiUnited KingdomAsiya Javayant NEGOTIATION
Juan X SlusarskiArgentinaElwin Sharvill PROPOSAL
Mayumi F ChuiFranceAnna Fali PROPOSAL
Nicolas F VenereRussiaOnyama Limba RENEWAL
Nicolas R RimUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Adams R Gillian
David T Doe
Cody M Royster
Jeanfrancois F Stenseth
Johnson B Flosi
Jennifer D Paprocki
Johnson N Malet
Johnson H Wieser
Ivar Q Tollner
Aika Z Glick
Darci Q Ostrosky
Aika J Kusko
Smith I Shinko
Aruna Y Schemmer
Cody Y Whobrey
Wickens K Perin
Smith E Iturbide
Rodrigues K Chui
Greenwood N Darakjy
Smith R Figeroa
Octavia F Darakjy
Maisha Q Shinko
Alejandro J Gaucho
Sinclair O Glick
Misaki Z Rim
Juan W Slusarski
Cody C Glick
Sinclair B Butt
Leja W Wieser
Darci M Butt
Juan H Waycott
Salvatore H Ostrosky
Isabel F Waycott
Darci W Ferencz
Ivar Y Maclead
Ivar A Paprocki
Johnson Z Dilliard
Cody M Venere
Chavez D Maclead
Ivar O Stockham
Emily Y Shinko
Kadeem Z Saylors
Claire J Vocelka
Aika O Ostrosky
Salvatore E Malet
Morrow P Royster
Stacey V Bowley
Leja U Dilliard
Misaki C Garufi
Leon W Perin
IdCountryDate
1000Brazil2024-04-27
1001Argentina2024-04-25
1002India2024-04-29
1003Spain2024-04-21
1004Russia2024-04-25
1005France2024-04-21
1006Russia2024-04-03
1007Italy2024-04-06
1008Japan2024-04-03
1009Germany2024-04-09
1010Germany2024-04-25
1011Canada2024-04-27
1012Argentina2024-04-13
1013Australia2024-04-20
1014Germany2024-04-08
1015Argentina2024-04-07
1016Canada2024-04-13
1017Australia2024-04-13
1018Brazil2024-04-05
1019India2024-04-20
1020Argentina2024-04-14
1021United Kingdom2024-04-17
1022Germany2024-04-03
1023Canada2024-04-25
1024Japan2024-04-21
1025Canada2024-04-12
1026Argentina2024-04-25
1027Spain2024-04-29
1028Italy2024-04-07
1029India2024-04-19
1030Argentina2024-04-29
1031France2024-04-23
1032Australia2024-04-25
1033United Kingdom2024-04-24
1034Australia2024-04-28
1035Brazil2024-04-25
1036Argentina2024-04-18
1037Germany2024-04-09
1038France2024-04-26
1039Spain2024-04-27
1040India2024-04-27
1041Japan2024-04-08
1042Japan2024-04-13
1043Brazil2024-04-25
1044Argentina2024-04-02
1045Russia2024-04-06
1046France2024-04-02
1047Spain2024-04-07
1048Italy2024-04-30
1049Russia2024-04-17

On-Demand Data

NameIdCountryDate
Mujtaba W Foller1000Brazil2024-04-27
Jones L Foller1001Russia2024-04-22
Jones F Butt1002United Kingdom2024-04-22
Rodrigues S Kolmetz1003France2024-04-18
Aditya K Ostrosky1004Germany2024-04-12
Tony D Venere1005Russia2024-05-01
Darci N Stockham1006Australia2024-04-11
Ricardo J Perin1007France2024-04-29
Stacey Y Briddick1008Germany2024-04-14
Claire O Ostrosky1009Italy2024-04-18
David Y Saylors1010Argentina2024-04-16
Mayumi E Morasca1011France2024-05-01
Claire H Chui1012France2024-04-15
Aruna K Poquette1013Canada2024-04-19
Jennifer Q Ferencz1014France2024-04-17
Jennifer V Dilliard1015Japan2024-04-11
Smith J Whobrey1016Italy2024-04-23
James O Butt1017India2024-04-05
Claire C Dilliard1018Australia2024-04-16
Arvin H Flosi1019Germany2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci P BriddickAustraliaBernardo Dominic NEW
Misaki Z WhobreyFranceStephen Shaw NEW
Antonio K AmigonFranceIvan Magalhaes PROPOSAL
Juan O StensethSpainAsiya Javayant NEW
Murillo E ChuiFranceAsiya Javayant UNQUALIFIED
Stacey B StensethIndiaXuxue Feng PROPOSAL
Morrow U OldroydRussiaIoni Bowcher QUALIFIED
Sinclair T OstroskyUnited KingdomAnna Fali UNQUALIFIED
Aruna N SlusarskiArgentinaElwin Sharvill NEGOTIATION
Smith O FollerCanadaOnyama Limba QUALIFIED
Smith P TollnerSpainAnna Fali UNQUALIFIED
Salvatore P RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Aruna W NickaUnited KingdomElwin Sharvill QUALIFIED
Aditya X MorascaIndiaAmy Elsner NEGOTIATION
Jennifer X DarakjySpainElwin Sharvill PROPOSAL
James E RulapaughIndiaOnyama Limba PROPOSAL
Salvatore M OstroskyFranceAnna Fali UNQUALIFIED
Leon S GauchoArgentinaXuxue Feng UNQUALIFIED
Aruna D CaldareraArgentinaAnna Fali QUALIFIED
Misaki H StockhamAustraliaStephen Shaw RENEWAL
Juan X VocelkaJapanAsiya Javayant QUALIFIED
Leon T InouyeArgentinaStephen Shaw RENEWAL
Munro F WaycottUnited KingdomIoni Bowcher QUALIFIED
Nicolas P KuskoArgentinaIvan Magalhaes NEGOTIATION
Johnson Y ShinkoUnited KingdomElwin Sharvill NEW
Kadeem I BologniaFranceAnna Fali QUALIFIED
Costa E FerenczSpainXuxue Feng RENEWAL
Aika H DilliardAustraliaIvan Magalhaes QUALIFIED
Julie C SlusarskiJapanAmy Elsner PROPOSAL
Emily M BriddickUnited KingdomBernardo Dominic RENEWAL
Mayumi G WaycottJapanAsiya Javayant RENEWAL
Clifford J CaldareraGermanyBernardo Dominic PROPOSAL
Salvatore A IturbideGermanyAmy Elsner NEW
Kadeem Z DilliardJapanOnyama Limba NEW
Murillo F KolmetzFranceAnna Fali UNQUALIFIED
Jennifer Q ChuiIndiaAsiya Javayant RENEWAL
David V AlbaresBrazilAnna Fali PROPOSAL
Adams F PaprockiUnited KingdomXuxue Feng RENEWAL
Mujtaba O FigeroaJapanIvan Magalhaes UNQUALIFIED
Smith T DarakjyAustraliaXuxue Feng 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>