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
Isabel K SchemmerArgentinaAmy Elsner PROPOSAL
Chavez L RoysterBrazilAnna Fali PROPOSAL
Kaitlin O BologniaRussiaIvan Magalhaes QUALIFIED
Greenwood N DilliardCanadaAmy Elsner PROPOSAL
Mayumi Z RimAustraliaOnyama Limba UNQUALIFIED
Maisha O SlusarskiUnited KingdomStephen Shaw NEW
Misaki T CampainBrazilIoni Bowcher UNQUALIFIED
Maisha K PaprockiAustraliaAmy Elsner NEGOTIATION
Emily X CampainRussiaAmy Elsner QUALIFIED
Sinclair Y VenereArgentinaIoni Bowcher RENEWAL
Leon S FollerUnited KingdomStephen Shaw PROPOSAL
Mujtaba M RimUnited KingdomStephen Shaw NEGOTIATION
Mayumi B ChuiRussiaStephen Shaw RENEWAL
Faith K SchemmerCanadaBernardo Dominic NEGOTIATION
Cody S SchemmerBrazilIoni Bowcher NEW
Jones K WaycottCanadaAnna Fali QUALIFIED
Adams C StensethCanadaAsiya Javayant NEW
Jeanfrancois U ChuiBrazilBernardo Dominic NEW
Nicolas I WaycottCanadaIvan Magalhaes NEGOTIATION
Salvatore K OldroydAustraliaOnyama Limba RENEWAL
Jones U SaylorsAustraliaBernardo Dominic NEGOTIATION
Jennifer L CaudyRussiaAsiya Javayant NEW
Silvio M MacleadRussiaStephen Shaw NEGOTIATION
Arvin F NestleAustraliaAmy Elsner UNQUALIFIED
Claire D SaylorsArgentinaIoni Bowcher UNQUALIFIED
Alejandro H GillianAustraliaIoni Bowcher PROPOSAL
Misaki I PerinRussiaOnyama Limba RENEWAL
Sinclair L GillianJapanIvan Magalhaes UNQUALIFIED
Jones Y PaprockiIndiaBernardo Dominic NEGOTIATION
Claire H WhobreyRussiaXuxue Feng RENEWAL
Salvatore J AlbaresSpainOnyama Limba UNQUALIFIED
Leja X CaldareraJapanBernardo Dominic NEGOTIATION
Arvin W KuskoSpainAsiya Javayant PROPOSAL
Arvin G VenereFranceElwin Sharvill NEGOTIATION
Leon M OldroydArgentinaBernardo Dominic PROPOSAL
Maisha K GlickRussiaIoni Bowcher RENEWAL
Izzy F KolmetzIndiaElwin Sharvill NEGOTIATION
Munro O CaldareraBrazilBernardo Dominic PROPOSAL
Juan F RoysterUnited KingdomBernardo Dominic PROPOSAL
Costa U AmigonRussiaOnyama Limba RENEWAL
Alejandro G DoeCanadaOnyama Limba PROPOSAL
Isabel V FerenczGermanyElwin Sharvill PROPOSAL
Murillo H WhobreyGermanyIvan Magalhaes RENEWAL
Tony J FigeroaFranceStephen Shaw RENEWAL
Isabel J WaycottItalyIvan Magalhaes NEW
Salvatore R FerenczJapanXuxue Feng RENEWAL
Chavez G SaylorsFranceStephen Shaw NEGOTIATION
Tony T VenereRussiaElwin Sharvill NEGOTIATION
Clifford T SlusarskiAustraliaIoni Bowcher PROPOSAL
Greenwood X RutaArgentinaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja N ButtBrazilXuxue Feng UNQUALIFIED
Ricardo F MarrierIndiaAnna Fali NEW
Leon M MaletRussiaAnna Fali UNQUALIFIED
Leon Y RimBrazilIoni Bowcher NEW
Greenwood H SchemmerCanadaElwin Sharvill NEW
Mujtaba X RutaArgentinaOnyama Limba PROPOSAL
Salvatore N GauchoFranceXuxue Feng RENEWAL
Izzy S BriddickJapanBernardo Dominic QUALIFIED
Morrow K NestleUnited KingdomAnna Fali UNQUALIFIED
Wickens K IturbideRussiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya X MorascaAustralia2024-04-23Rousseaux, Michael Esq QUALIFIED29Asiya Javayant
1001Leja W MorascaArgentina2024-04-13Benton, John B Jr QUALIFIED93Stephen Shaw
1002Kaitlin T DoeUnited Kingdom2024-04-22Dorl, James J Esq NEGOTIATION90Ioni Bowcher
1003Deepesh N GarufiGermany2024-04-08King, Christopher A Esq RENEWAL59Stephen Shaw
1004Ivar V KolmetzRussia2024-04-20Chapman, Ross E Esq PROPOSAL35Amy Elsner
1005Antonio A RoysterCanada2024-04-14Rousseaux, Michael Esq NEW4Xuxue Feng
1006Leon Z RimArgentina2024-04-06Buckley Miller Wright PROPOSAL14Xuxue Feng
1007Aika O GarufiIndia2024-04-19Rangoni Of Florence UNQUALIFIED87Asiya Javayant
1008Leja L GlickIndia2024-04-27Morlong Associates RENEWAL85Elwin Sharvill
1009Greenwood Y DilliardAustralia2024-04-27Buckley Miller Wright NEW77Amy Elsner
1010Mayumi J ButtBrazil2024-04-29Benton, John B Jr NEGOTIATION67Elwin Sharvill
1011Aditya V FollerRussia2024-04-12Dorl, James J Esq NEW24Stephen Shaw
1012David Z RulapaughFrance2024-04-28Commercial Press PROPOSAL54Asiya Javayant
1013Aruna H OldroydItaly2024-04-04Rousseaux, Michael Esq QUALIFIED96Amy Elsner
1014Chavez C GarufiJapan2024-04-29Printing Dimensions NEW14Amy Elsner
1015Morrow U SlusarskiFrance2024-04-23Feiner Bros NEW89Asiya Javayant
1016Claire V BriddickArgentina2024-04-15Morlong Associates PROPOSAL14Elwin Sharvill
1017Jeanfrancois G MorascaArgentina2024-04-13Printing Dimensions PROPOSAL84Asiya Javayant
1018Salvatore T BologniaJapan2024-04-14Feiner Bros RENEWAL40Ivan Magalhaes
1019Silvio F BriddickArgentina2024-04-09Rousseaux, Michael Esq PROPOSAL19Asiya Javayant
1020Maria H GarufiRussia2024-04-02Dorl, James J Esq UNQUALIFIED0Ioni Bowcher
1021Wickens O PerinAustralia2024-04-20Truhlar And Truhlar Attys QUALIFIED1Bernardo Dominic
1022Emily R MacleadArgentina2024-04-29Commercial Press UNQUALIFIED3Xuxue Feng
1023Antonio M ShinkoFrance2024-04-05Rousseaux, Michael Esq PROPOSAL14Stephen Shaw
1024Jeanfrancois B WhobreyCanada2024-04-30Buckley Miller Wright RENEWAL32Ivan Magalhaes
1025Ricardo X GauchoItaly2024-04-01Benton, John B Jr QUALIFIED28Bernardo Dominic
1026Aditya R TollnerItaly2024-04-17Dorl, James J Esq UNQUALIFIED59Bernardo Dominic
1027Maria D DoeIndia2024-04-02Truhlar And Truhlar Attys UNQUALIFIED80Xuxue Feng
1028Chavez Q KuskoCanada2024-04-27Truhlar And Truhlar Attys PROPOSAL33Elwin Sharvill
1029Jennifer C MarrierItaly2024-04-16Buckley Miller Wright PROPOSAL72Onyama Limba
1030Adams Q AlbaresFrance2024-04-01Buckley Miller Wright QUALIFIED65Asiya Javayant
1031Greenwood A RulapaughRussia2024-04-02Feiner Bros QUALIFIED80Ivan Magalhaes
1032David W FollerCanada2024-04-06Feltz Printing Service RENEWAL43Ivan Magalhaes
1033Antonio W SaylorsCanada2024-04-01Chemel, James L Cpa RENEWAL37Onyama Limba
1034Antonio R ButtGermany2024-04-28Feiner Bros QUALIFIED11Ioni Bowcher
1035Greenwood Y AlbaresAustralia2024-04-14Commercial Press PROPOSAL74Anna Fali
1036David T PoquetteAustralia2024-04-26Buckley Miller Wright QUALIFIED95Stephen Shaw
1037Octavia R SchemmerGermany2024-04-10Rangoni Of Florence QUALIFIED54Asiya Javayant
1038Faith S FlosiRussia2024-04-08Dorl, James J Esq RENEWAL70Amy Elsner
1039Ashley H RoysterSpain2024-04-12King, Christopher A Esq QUALIFIED54Elwin Sharvill
1040Mayumi B StensethBrazil2024-04-07Chemel, James L Cpa NEGOTIATION87Onyama Limba
1041David K VenereSpain2024-04-04Rousseaux, Michael Esq PROPOSAL10Elwin Sharvill
1042Alejandro P KolmetzCanada2024-04-07King, Christopher A Esq NEGOTIATION45Xuxue Feng
1043Jones J MaletArgentina2024-04-08Chemel, James L Cpa NEGOTIATION91Amy Elsner
1044Jefferson E KuskoRussia2024-04-02Commercial Press QUALIFIED70Anna Fali
1045Johnson Q OstroskyCanada2024-04-05Commercial Press PROPOSAL20Asiya Javayant
1046Tony Y PerinAustralia2024-04-21Benton, John B Jr RENEWAL66Ivan Magalhaes
1047Aditya U DilliardItaly2024-04-30Feiner Bros NEGOTIATION58Ivan Magalhaes
1048Murillo Q SchemmerRussia2024-04-16Rangoni Of Florence NEW24Anna Fali
1049Julie K CaudyIndia2024-04-12King, Christopher A Esq RENEWAL48Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Clifford K MarrierGermanyStephen Shaw PROPOSAL
Francesco H NestleArgentinaXuxue Feng PROPOSAL
Silvio X ShinkoFranceIvan Magalhaes UNQUALIFIED
Smith T CaudyAustraliaIoni Bowcher NEGOTIATION
Sinclair C BriddickJapanElwin Sharvill RENEWAL
Silvio U RutaSpainAnna Fali UNQUALIFIED
Nicolas U NickaCanadaOnyama Limba RENEWAL
Maria K VocelkaIndiaAsiya Javayant RENEWAL
Cody W MacleadBrazilXuxue Feng NEW
Ricardo F ButtArgentinaIvan Magalhaes PROPOSAL
Cody F MarrierFranceOnyama Limba QUALIFIED
Ashley O BowleyArgentinaAnna Fali RENEWAL
Francesco B WaycottRussiaIoni Bowcher RENEWAL
Alejandro Y SaylorsAustraliaXuxue Feng QUALIFIED
Morrow K BowleyAustraliaIoni Bowcher UNQUALIFIED
Kadeem U AlbaresFranceIoni Bowcher QUALIFIED
Aruna N SlusarskiIndiaIoni Bowcher NEGOTIATION
Wickens D ButtUnited KingdomAsiya Javayant PROPOSAL
Mayumi Q GauchoAustraliaOnyama Limba PROPOSAL
Clifford T WaycottFranceAnna Fali PROPOSAL
Francesco Y MaletIndiaIvan Magalhaes QUALIFIED
Munro O RutaCanadaIvan Magalhaes UNQUALIFIED
Misaki O BologniaItalyElwin Sharvill NEGOTIATION
Mayumi S OstroskyFranceIoni Bowcher PROPOSAL
Cody X BologniaFranceXuxue Feng RENEWAL
Morrow U FigeroaSpainIoni Bowcher NEGOTIATION
David P ChuiArgentinaElwin Sharvill NEGOTIATION
Jefferson P RutaGermanyElwin Sharvill PROPOSAL
Jefferson F SaylorsSpainBernardo Dominic QUALIFIED
Greenwood F OstroskyItalyIoni Bowcher NEW
Salvatore K NestleIndiaElwin Sharvill NEW
Rodrigues P BowleyCanadaIvan Magalhaes NEW
Antonio R GillianIndiaAnna Fali UNQUALIFIED
Sinclair D SergiRussiaAnna Fali NEW
Tony Y ButtUnited KingdomIoni Bowcher RENEWAL
Francesco H SchemmerRussiaAmy Elsner NEW
Aika D AmigonArgentinaAmy Elsner PROPOSAL
Mayumi N WhobreyCanadaAmy Elsner RENEWAL
Isabel L MorascaFranceIvan Magalhaes QUALIFIED
Francesco T StensethJapanAnna Fali NEW
Faith P StockhamUnited KingdomElwin Sharvill NEGOTIATION
Juan M SergiGermanyBernardo Dominic NEW
Aditya C FerenczGermanyAsiya Javayant QUALIFIED
Nicolas I AmigonSpainAmy Elsner NEGOTIATION
Munro Y GlickBrazilElwin Sharvill PROPOSAL
Maisha H VenereGermanyAnna Fali QUALIFIED
Mujtaba L VenereCanadaAmy Elsner PROPOSAL
Leon E SlusarskiSpainAsiya Javayant NEW
Kaitlin R IturbideFranceIvan Magalhaes PROPOSAL
Deepesh P AlbaresJapanAmy Elsner PROPOSAL
Frozen Columns
Name
Jones N Iturbide
Misaki A Ruta
Kaitlin J Chui
Maria H Caudy
James N Morasca
Wickens R Campain
Ivar C Butt
Alejandro S Schemmer
Octavia S Bowley
Antonio O Stockham
Morrow E Bolognia
Rodrigues L Wieser
Ivar M Gillian
Ricardo G Waycott
Ricardo Z Ruta
Stacey R Figeroa
Francesco R Kolmetz
Murillo E Nestle
Clifford I Albares
Chavez L Stenseth
Aditya L Marrier
Stacey O Iturbide
Stacey W Ruta
Tony E Glick
Maisha K Chui
Aika N Iturbide
Ashley V Darakjy
Johnson V Malet
Darci K Oldroyd
Francesco B Iturbide
Misaki W Dilliard
Kaitlin J Rulapaugh
Jones X Maclead
Kadeem J Stockham
Kaitlin N Chui
Jefferson A Briddick
Arvin B Figeroa
Faith R Bolognia
Ivar K Shinko
Wickens V Inouye
Ivar F Marrier
Leja B Kolmetz
Nicolas E Darakjy
Jennifer C Butt
Julie G Gillian
Mayumi L Figeroa
Tony M Inouye
Julie M Garufi
Wickens D Gillian
James L Garufi
IdCountryDate
1000Argentina2024-04-03
1001Spain2024-04-01
1002Australia2024-04-23
1003Australia2024-04-29
1004Italy2024-04-27
1005Australia2024-04-16
1006India2024-04-16
1007Germany2024-04-05
1008India2024-04-10
1009Japan2024-04-23
1010Russia2024-04-13
1011Germany2024-04-01
1012Brazil2024-04-02
1013Italy2024-04-27
1014Australia2024-04-29
1015Argentina2024-04-23
1016Italy2024-04-18
1017Japan2024-04-21
1018Italy2024-04-09
1019Brazil2024-04-10
1020Germany2024-04-15
1021Spain2024-04-03
1022Russia2024-04-27
1023Russia2024-04-02
1024France2024-04-13
1025Canada2024-04-29
1026France2024-04-29
1027Germany2024-04-13
1028India2024-04-12
1029Spain2024-04-20
1030Russia2024-04-03
1031France2024-04-18
1032Argentina2024-04-06
1033Argentina2024-04-17
1034France2024-04-29
1035France2024-04-16
1036India2024-04-12
1037Australia2024-04-26
1038Australia2024-04-27
1039United Kingdom2024-04-01
1040Spain2024-04-21
1041Australia2024-04-10
1042Brazil2024-04-10
1043France2024-04-25
1044Germany2024-04-08
1045Argentina2024-04-29
1046United Kingdom2024-04-01
1047Spain2024-04-18
1048Japan2024-04-14
1049Australia2024-04-23

On-Demand Data

NameIdCountryDate
Ashley E Waycott1000India2024-04-22
Salvatore F Gillian1001France2024-04-05
Emily K Briddick1002Brazil2024-04-20
Smith R Shinko1003Japan2024-04-13
Julie W Garufi1004France2024-04-12
Smith A Whobrey1005Italy2024-04-24
Jones A Royster1006United Kingdom2024-04-02
Rodrigues W Rulapaugh1007Germany2024-04-03
Nicolas H Royster1008United Kingdom2024-04-10
Aditya S Campain1009France2024-04-05
Emily P Butt1010Italy2024-04-08
Aditya Z Rim1011Argentina2024-04-13
Chavez Z Vocelka1012Russia2024-04-15
Emily W Marrier1013Spain2024-04-29
Aditya Q Ferencz1014Argentina2024-04-19
James P Caldarera1015Germany2024-04-18
Mujtaba Y Sergi1016Brazil2024-04-18
Rodrigues Z Perin1017Japan2024-04-03
Murillo C Albares1018Argentina2024-04-03
Nicolas K Gillian1019Brazil2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody I SchemmerGermanyElwin Sharvill NEGOTIATION
Juan O SlusarskiAustraliaAnna Fali NEGOTIATION
Juan A DilliardItalyIoni Bowcher PROPOSAL
Jones H IturbideGermanyAsiya Javayant NEGOTIATION
Tony K FigeroaBrazilIoni Bowcher UNQUALIFIED
Sinclair X RulapaughAustraliaIoni Bowcher NEW
Faith H PoquetteUnited KingdomOnyama Limba NEW
Antonio S NestleJapanOnyama Limba RENEWAL
Ricardo K VenereFranceIoni Bowcher QUALIFIED
Julie N SaylorsFranceElwin Sharvill UNQUALIFIED
Chavez J FlosiArgentinaBernardo Dominic RENEWAL
Clifford P BologniaGermanyAmy Elsner PROPOSAL
Maria S KolmetzArgentinaElwin Sharvill PROPOSAL
Sinclair C FlosiUnited KingdomXuxue Feng NEW
Alejandro J WaycottJapanAmy Elsner RENEWAL
Juan T BologniaJapanBernardo Dominic UNQUALIFIED
Claire S AlbaresAustraliaAsiya Javayant NEGOTIATION
Mujtaba A AmigonJapanElwin Sharvill QUALIFIED
Isabel U DilliardCanadaXuxue Feng NEW
Jones N CaldareraItalyXuxue Feng NEW
Morrow G StockhamGermanyAmy Elsner PROPOSAL
Isabel E PaprockiIndiaStephen Shaw UNQUALIFIED
Adams H FerenczArgentinaAsiya Javayant UNQUALIFIED
Aika I ChuiJapanBernardo Dominic UNQUALIFIED
Ricardo C ButtCanadaAsiya Javayant NEW
Stacey F MarrierAustraliaAsiya Javayant PROPOSAL
Antonio R GillianArgentinaXuxue Feng NEW
Ricardo Z CaldareraBrazilStephen Shaw NEGOTIATION
Munro W FollerSpainAsiya Javayant NEGOTIATION
Jennifer C DarakjyCanadaStephen Shaw QUALIFIED
Wickens J AlbaresUnited KingdomXuxue Feng NEGOTIATION
Darci C KolmetzJapanStephen Shaw RENEWAL
Munro X PerinFranceXuxue Feng NEGOTIATION
Ricardo P InouyeAustraliaAsiya Javayant RENEWAL
Murillo I RimSpainOnyama Limba UNQUALIFIED
Leon Q RulapaughAustraliaAsiya Javayant NEGOTIATION
Aruna Z RimUnited KingdomAsiya Javayant PROPOSAL
Misaki A GlickUnited KingdomOnyama Limba NEGOTIATION
James X ChuiGermanyAsiya Javayant RENEWAL
Ashley T DilliardSpainStephen Shaw 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>