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
Stacey D WieserFranceOnyama Limba UNQUALIFIED
Cody G FigeroaSpainXuxue Feng UNQUALIFIED
Isabel M MaletGermanyStephen Shaw NEW
Munro M FollerJapanAmy Elsner NEGOTIATION
Ricardo R WhobreyCanadaIoni Bowcher PROPOSAL
Isabel G GauchoCanadaIoni Bowcher QUALIFIED
Maria C NestleAustraliaAnna Fali NEW
Jennifer U SergiBrazilOnyama Limba QUALIFIED
Emily B FollerJapanXuxue Feng UNQUALIFIED
Mujtaba V VenereGermanyAsiya Javayant RENEWAL
Kaitlin N VocelkaAustraliaAsiya Javayant NEGOTIATION
Deepesh U WhobreyUnited KingdomAnna Fali NEGOTIATION
Antonio L RulapaughCanadaIvan Magalhaes NEW
Claire S BologniaFranceIoni Bowcher NEW
Nicolas T GillianIndiaOnyama Limba QUALIFIED
Adams T BriddickBrazilXuxue Feng QUALIFIED
Octavia H BriddickRussiaStephen Shaw QUALIFIED
Jennifer T MarrierJapanIvan Magalhaes QUALIFIED
Ivar T WieserFranceAmy Elsner NEGOTIATION
Jennifer O DilliardRussiaBernardo Dominic NEW
Ashley K StensethBrazilXuxue Feng RENEWAL
Rodrigues Q PaprockiRussiaAsiya Javayant NEGOTIATION
Emily D GauchoUnited KingdomIvan Magalhaes NEW
Julie E VenereCanadaStephen Shaw NEW
Claire W IturbideAustraliaElwin Sharvill QUALIFIED
Kadeem V RoysterRussiaElwin Sharvill QUALIFIED
Stacey E OldroydAustraliaElwin Sharvill NEW
Faith F SaylorsSpainElwin Sharvill NEW
Juan Q WaycottCanadaAmy Elsner UNQUALIFIED
Jennifer U BologniaAustraliaXuxue Feng QUALIFIED
Smith G KolmetzBrazilElwin Sharvill RENEWAL
Leja L PaprockiItalyAmy Elsner UNQUALIFIED
Ricardo A GarufiUnited KingdomBernardo Dominic NEW
Jones N CampainItalyAmy Elsner RENEWAL
Rodrigues T OldroydJapanOnyama Limba PROPOSAL
Francesco Y DilliardGermanyElwin Sharvill RENEWAL
Leja B BologniaAustraliaIvan Magalhaes NEW
Adams R FollerIndiaXuxue Feng RENEWAL
Jeanfrancois J SchemmerFranceAmy Elsner NEGOTIATION
Chavez B BowleyItalyAsiya Javayant RENEWAL
David I PerinItalyStephen Shaw PROPOSAL
Mujtaba C DilliardUnited KingdomStephen Shaw QUALIFIED
Rodrigues Z BologniaGermanyXuxue Feng NEW
Antonio V StensethItalyXuxue Feng UNQUALIFIED
Francesco S DoeBrazilAnna Fali PROPOSAL
Mujtaba L RoysterJapanElwin Sharvill QUALIFIED
Greenwood R SaylorsRussiaAnna Fali RENEWAL
Aditya I RimCanadaOnyama Limba NEW
David L BologniaItalyXuxue Feng QUALIFIED
Antonio Z MorascaFranceAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel R RimArgentinaAnna Fali QUALIFIED
Mujtaba U SlusarskiItalyAnna Fali UNQUALIFIED
Tony O ShinkoBrazilOnyama Limba NEGOTIATION
Silvio V OldroydJapanOnyama Limba UNQUALIFIED
Salvatore C ButtItalyIvan Magalhaes NEGOTIATION
Isabel J MarrierBrazilOnyama Limba NEW
Tony W StockhamBrazilAnna Fali NEW
Greenwood Z BologniaCanadaIoni Bowcher UNQUALIFIED
James S OldroydRussiaIoni Bowcher RENEWAL
Deepesh F MacleadAustraliaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Z ButtBrazil2024-04-02Rangoni Of Florence RENEWAL88Ioni Bowcher
1001Misaki C InouyeJapan2024-04-19Rangoni Of Florence UNQUALIFIED9Elwin Sharvill
1002Ivar M GlickArgentina2024-04-24Rousseaux, Michael Esq QUALIFIED42Bernardo Dominic
1003Kaitlin Z PaprockiJapan2024-04-01Printing Dimensions PROPOSAL29Asiya Javayant
1004Mayumi E SlusarskiIndia2024-03-27Chemel, James L Cpa NEGOTIATION63Elwin Sharvill
1005Leon M ChuiIndia2024-04-12Truhlar And Truhlar Attys NEW61Anna Fali
1006Greenwood A SchemmerUnited Kingdom2024-04-03Chemel, James L Cpa UNQUALIFIED56Amy Elsner
1007David M GauchoGermany2024-03-30Rangoni Of Florence RENEWAL21Ioni Bowcher
1008Juan U MaletIndia2024-04-21Morlong Associates RENEWAL3Onyama Limba
1009Clifford X BriddickBrazil2024-03-28Commercial Press PROPOSAL99Ivan Magalhaes
1010Alejandro E DarakjyCanada2024-04-01Benton, John B Jr PROPOSAL23Xuxue Feng
1011Mujtaba I RulapaughJapan2024-04-21Benton, John B Jr UNQUALIFIED17Elwin Sharvill
1012Claire Y MarrierAustralia2024-04-25Buckley Miller Wright UNQUALIFIED69Bernardo Dominic
1013Octavia G TollnerSpain2024-04-03Feiner Bros PROPOSAL63Amy Elsner
1014Faith O KuskoSpain2024-03-27Chanay, Jeffrey A Esq NEW97Elwin Sharvill
1015Arvin Y SlusarskiArgentina2024-04-16Feiner Bros NEGOTIATION86Ivan Magalhaes
1016Cody S StockhamCanada2024-03-27Benton, John B Jr PROPOSAL88Bernardo Dominic
1017Greenwood R CaudySpain2024-03-30Rangoni Of Florence QUALIFIED59Amy Elsner
1018Ivar H ChuiBrazil2024-04-13Buckley Miller Wright UNQUALIFIED52Onyama Limba
1019Silvio H ButtIndia2024-03-31Chemel, James L Cpa QUALIFIED40Bernardo Dominic
1020Isabel H MacleadItaly2024-04-08Printing Dimensions QUALIFIED44Anna Fali
1021Salvatore V NestleArgentina2024-03-30Rousseaux, Michael Esq NEGOTIATION42Asiya Javayant
1022Isabel W ButtSpain2024-04-16Truhlar And Truhlar Attys NEW79Stephen Shaw
1023Leja T SchemmerCanada2024-04-22Printing Dimensions NEW10Asiya Javayant
1024Francesco X PaprockiCanada2024-04-20Morlong Associates PROPOSAL18Bernardo Dominic
1025James A FigeroaCanada2024-04-24Dorl, James J Esq UNQUALIFIED70Amy Elsner
1026Juan I MaletArgentina2024-04-06Truhlar And Truhlar Attys PROPOSAL81Anna Fali
1027Costa Z SlusarskiArgentina2024-04-25Chemel, James L Cpa UNQUALIFIED58Ioni Bowcher
1028Tony B AmigonCanada2024-03-31Rousseaux, Michael Esq NEGOTIATION84Elwin Sharvill
1029Wickens Q SlusarskiGermany2024-04-16King, Christopher A Esq UNQUALIFIED95Onyama Limba
1030Murillo U KolmetzArgentina2024-04-10Chapman, Ross E Esq QUALIFIED36Stephen Shaw
1031Johnson M MaletJapan2024-04-01Commercial Press NEGOTIATION93Onyama Limba
1032James G VocelkaArgentina2024-04-09Buckley Miller Wright UNQUALIFIED82Ivan Magalhaes
1033Ashley K OldroydCanada2024-04-21Feltz Printing Service QUALIFIED18Bernardo Dominic
1034Munro C ChuiAustralia2024-04-09Rangoni Of Florence QUALIFIED42Anna Fali
1035Wickens A CaudyCanada2024-04-11Chapman, Ross E Esq PROPOSAL84Stephen Shaw
1036Antonio E AlbaresSpain2024-04-11Benton, John B Jr NEW81Ivan Magalhaes
1037Kaitlin P OstroskyItaly2024-04-07Dorl, James J Esq QUALIFIED42Elwin Sharvill
1038Costa Q RimCanada2024-04-07Feiner Bros QUALIFIED7Elwin Sharvill
1039Jeanfrancois C SergiUnited Kingdom2024-04-01Feiner Bros PROPOSAL94Elwin Sharvill
1040Chavez T WaycottItaly2024-04-12Chapman, Ross E Esq NEGOTIATION23Anna Fali
1041Silvio V BologniaSpain2024-04-20Feltz Printing Service UNQUALIFIED24Xuxue Feng
1042Johnson N NestleGermany2024-03-30King, Christopher A Esq PROPOSAL94Stephen Shaw
1043Morrow N PoquetteIndia2024-04-16Chanay, Jeffrey A Esq RENEWAL77Xuxue Feng
1044Ashley I IturbideCanada2024-04-15Morlong Associates QUALIFIED2Elwin Sharvill
1045Munro Y BriddickCanada2024-04-19Commercial Press PROPOSAL38Bernardo Dominic
1046Aditya I NickaSpain2024-04-23Feltz Printing Service RENEWAL77Stephen Shaw
1047Misaki X AlbaresRussia2024-04-19Chanay, Jeffrey A Esq NEGOTIATION8Ivan Magalhaes
1048Claire M PoquetteArgentina2024-04-08Benton, John B Jr RENEWAL72Amy Elsner
1049Silvio S DarakjyBrazil2024-04-11Printing Dimensions NEW83Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony M StensethItalyElwin Sharvill NEGOTIATION
Aditya N InouyeItalyIvan Magalhaes QUALIFIED
Murillo C FlosiFranceAsiya Javayant NEW
Jennifer E OstroskyAustraliaStephen Shaw NEW
Cody L MarrierGermanyOnyama Limba RENEWAL
Greenwood Q TollnerJapanBernardo Dominic NEGOTIATION
James I DilliardSpainElwin Sharvill QUALIFIED
Jefferson D RulapaughFranceBernardo Dominic NEGOTIATION
Nicolas U MorascaBrazilXuxue Feng QUALIFIED
Claire F ChuiUnited KingdomAsiya Javayant QUALIFIED
Arvin G BologniaRussiaXuxue Feng NEW
Izzy K PoquetteSpainElwin Sharvill UNQUALIFIED
Claire S AlbaresBrazilIoni Bowcher NEW
Tony M FollerItalyAmy Elsner RENEWAL
Costa T WieserUnited KingdomStephen Shaw QUALIFIED
Arvin Y DoeAustraliaIvan Magalhaes PROPOSAL
Claire F SergiArgentinaXuxue Feng UNQUALIFIED
Tony B AmigonFranceIoni Bowcher NEW
Wickens V AlbaresAustraliaAsiya Javayant QUALIFIED
Murillo X FollerSpainOnyama Limba QUALIFIED
Mayumi A CaldareraGermanyAmy Elsner NEW
Tony O VocelkaAustraliaAnna Fali PROPOSAL
Greenwood P FlosiGermanyElwin Sharvill RENEWAL
Octavia I GauchoUnited KingdomBernardo Dominic RENEWAL
Mayumi P VenereItalyOnyama Limba QUALIFIED
Sinclair Q AmigonItalyAsiya Javayant NEW
Stacey R DoeItalyBernardo Dominic NEW
Smith N FollerArgentinaAmy Elsner NEGOTIATION
Faith M GarufiUnited KingdomBernardo Dominic QUALIFIED
Antonio X SlusarskiArgentinaXuxue Feng NEGOTIATION
Rodrigues N IturbideFranceOnyama Limba UNQUALIFIED
Wickens D NickaUnited KingdomIoni Bowcher NEGOTIATION
Jones V OstroskyIndiaIvan Magalhaes UNQUALIFIED
Deepesh K DilliardBrazilAnna Fali RENEWAL
Juan B CampainAustraliaIoni Bowcher PROPOSAL
Arvin P NickaSpainIoni Bowcher NEGOTIATION
Rodrigues W PerinBrazilBernardo Dominic RENEWAL
Costa H MorascaIndiaXuxue Feng UNQUALIFIED
Deepesh G MaletRussiaXuxue Feng UNQUALIFIED
Murillo F IturbideIndiaXuxue Feng NEW
Jefferson I MaletBrazilIvan Magalhaes RENEWAL
Darci J ChuiUnited KingdomBernardo Dominic QUALIFIED
Salvatore D SaylorsBrazilAmy Elsner UNQUALIFIED
Aika X SaylorsFranceStephen Shaw NEW
Aika C SchemmerItalyOnyama Limba NEGOTIATION
Izzy R AlbaresIndiaIoni Bowcher RENEWAL
Murillo Z AlbaresArgentinaOnyama Limba PROPOSAL
Jennifer K GauchoUnited KingdomBernardo Dominic QUALIFIED
Salvatore S RulapaughRussiaAmy Elsner UNQUALIFIED
Rodrigues Z FerenczSpainAmy Elsner NEW
Frozen Columns
Name
Izzy Y Shinko
Juan Z Caldarera
Munro Q Maclead
Ivar I Ferencz
Arvin F Ferencz
Greenwood E Ruta
Greenwood E Campain
Smith Z Bolognia
Leon M Tollner
Smith M Ruta
Misaki R Sergi
Ricardo Y Stenseth
Ashley A Paprocki
Leon Y Garufi
Francesco Z Gaucho
Smith L Schemmer
Chavez A Paprocki
Greenwood W Stockham
Izzy W Darakjy
Julie P Bolognia
Maria R Saylors
Jennifer G Dilliard
Octavia G Caudy
Darci U Amigon
Greenwood B Darakjy
Octavia N Dilliard
Greenwood Q Ruta
Greenwood M Malet
Jones A Maclead
James H Malet
Kadeem H Caldarera
Kadeem Z Kolmetz
Octavia M Stenseth
Julie A Perin
Adams Z Caudy
Antonio N Albares
Kadeem H Gaucho
Emily H Flosi
Alejandro N Maclead
Deepesh I Campain
Greenwood S Tollner
Silvio Y Doe
Costa C Campain
Sinclair F Whobrey
Maria I Tollner
Octavia E Venere
Aika W Schemmer
Sinclair F Iturbide
Nicolas S Figeroa
Wickens I Rulapaugh
IdCountryDate
1000Australia2024-04-01
1001Japan2024-04-12
1002Argentina2024-04-18
1003Russia2024-04-18
1004Germany2024-04-04
1005Japan2024-04-06
1006Germany2024-04-02
1007Japan2024-03-28
1008Canada2024-04-25
1009Japan2024-04-05
1010Canada2024-04-16
1011Italy2024-04-08
1012Russia2024-03-31
1013Japan2024-04-22
1014France2024-04-12
1015Canada2024-04-18
1016Australia2024-04-16
1017Australia2024-04-25
1018Argentina2024-04-14
1019Japan2024-04-22
1020Russia2024-04-14
1021India2024-04-17
1022Canada2024-04-23
1023Germany2024-04-15
1024Australia2024-04-18
1025Russia2024-04-08
1026Australia2024-03-29
1027France2024-03-28
1028Australia2024-04-06
1029France2024-03-28
1030France2024-04-10
1031Italy2024-04-22
1032United Kingdom2024-04-12
1033Canada2024-04-04
1034France2024-04-12
1035Germany2024-04-07
1036Argentina2024-04-09
1037Canada2024-03-30
1038United Kingdom2024-04-02
1039France2024-03-30
1040Japan2024-04-15
1041Argentina2024-04-24
1042Brazil2024-03-29
1043Japan2024-04-08
1044Germany2024-04-25
1045Russia2024-04-24
1046France2024-03-28
1047Canada2024-04-15
1048India2024-04-06
1049France2024-04-03

On-Demand Data

NameIdCountryDate
Isabel I Amigon1000France2024-04-07
Maisha I Ferencz1001Russia2024-04-18
Claire Z Darakjy1002Canada2024-04-11
Smith O Ostrosky1003France2024-04-23
Silvio L Ostrosky1004India2024-04-03
Ricardo G Waycott1005Argentina2024-04-09
Octavia Z Darakjy1006Brazil2024-04-07
Kaitlin X Nicka1007Spain2024-03-28
Stacey V Maclead1008Russia2024-04-01
Izzy R Whobrey1009Canada2024-04-18
Arvin R Slusarski1010Brazil2024-04-17
Leon E Nestle1011Japan2024-04-19
Cody F Ferencz1012Japan2024-04-05
Sinclair W Venere1013India2024-03-31
Nicolas Y Kusko1014Russia2024-04-13
Stacey E Glick1015United Kingdom2024-04-14
Mujtaba C Doe1016Italy2024-04-06
Jeanfrancois W Tollner1017France2024-04-07
Ashley L Campain1018Japan2024-04-18
Chavez Z Figeroa1019Canada2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony X DoeIndiaIoni Bowcher RENEWAL
Jennifer B ChuiBrazilAmy Elsner QUALIFIED
Cody L RoysterItalyIvan Magalhaes QUALIFIED
Johnson Z SchemmerJapanStephen Shaw QUALIFIED
Tony V AlbaresGermanyElwin Sharvill NEGOTIATION
Antonio T TollnerUnited KingdomAsiya Javayant RENEWAL
Juan E NestleItalyOnyama Limba QUALIFIED
Greenwood E GauchoAustraliaAmy Elsner NEW
Greenwood N ButtFranceStephen Shaw RENEWAL
Silvio V FollerFranceOnyama Limba PROPOSAL
Alejandro H FlosiGermanyAsiya Javayant QUALIFIED
Ashley O ButtUnited KingdomIvan Magalhaes NEW
Sinclair I FlosiAustraliaAnna Fali NEGOTIATION
Darci M GarufiItalyElwin Sharvill PROPOSAL
Emily W IturbideRussiaIvan Magalhaes RENEWAL
Adams C OstroskyFranceBernardo Dominic PROPOSAL
Mujtaba H FigeroaBrazilAsiya Javayant NEW
Leja T TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Arvin C GarufiCanadaAmy Elsner PROPOSAL
Alejandro C FigeroaItalyElwin Sharvill RENEWAL
Jefferson V MaletSpainBernardo Dominic NEW
Morrow K RimArgentinaStephen Shaw NEGOTIATION
Kadeem Z OstroskyRussiaAsiya Javayant RENEWAL
Jennifer X SchemmerJapanElwin Sharvill RENEWAL
Ivar W WieserGermanyAmy Elsner UNQUALIFIED
Isabel A SchemmerAustraliaStephen Shaw PROPOSAL
Izzy F DilliardUnited KingdomOnyama Limba UNQUALIFIED
Smith N PerinGermanyAsiya Javayant RENEWAL
Smith C RimItalyAnna Fali PROPOSAL
Kaitlin T SergiItalyXuxue Feng UNQUALIFIED
Octavia Y SergiFranceIoni Bowcher RENEWAL
Salvatore P BologniaItalyXuxue Feng PROPOSAL
Aruna V WaycottIndiaElwin Sharvill PROPOSAL
Maisha V KolmetzSpainXuxue Feng QUALIFIED
Jefferson D SlusarskiIndiaOnyama Limba NEW
Isabel F StensethRussiaAnna Fali QUALIFIED
Greenwood Q FlosiBrazilBernardo Dominic RENEWAL
Octavia Q KuskoAustraliaOnyama Limba UNQUALIFIED
Ricardo V SlusarskiArgentinaBernardo Dominic QUALIFIED
Stacey N MorascaIndiaOnyama Limba 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>