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
Mujtaba J FerenczArgentinaIoni Bowcher QUALIFIED
Izzy E DoeSpainOnyama Limba NEW
Claire P StockhamRussiaIoni Bowcher RENEWAL
Claire N CaudyItalyElwin Sharvill PROPOSAL
Salvatore C GauchoAustraliaAmy Elsner NEW
Jones E MacleadGermanyElwin Sharvill UNQUALIFIED
Maria Q RoysterUnited KingdomStephen Shaw UNQUALIFIED
James L FigeroaAustraliaXuxue Feng UNQUALIFIED
Costa M MacleadArgentinaXuxue Feng UNQUALIFIED
Jennifer B KolmetzBrazilXuxue Feng RENEWAL
Adams D StockhamCanadaOnyama Limba QUALIFIED
Nicolas F GauchoFranceElwin Sharvill PROPOSAL
Jennifer D IturbideItalyAnna Fali UNQUALIFIED
Alejandro Y WaycottJapanBernardo Dominic PROPOSAL
Maisha H PerinAustraliaOnyama Limba NEGOTIATION
Izzy E SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro C StensethAustraliaXuxue Feng NEGOTIATION
Kaitlin L GarufiFranceElwin Sharvill RENEWAL
Leon U WhobreyRussiaBernardo Dominic NEW
Maisha T BowleyIndiaIoni Bowcher PROPOSAL
Johnson Y OstroskyGermanyXuxue Feng UNQUALIFIED
Aika Z BriddickIndiaAsiya Javayant UNQUALIFIED
Smith T FigeroaUnited KingdomBernardo Dominic PROPOSAL
Sinclair S DilliardUnited KingdomAsiya Javayant QUALIFIED
Alejandro B RulapaughGermanyBernardo Dominic NEW
Nicolas R GauchoFranceOnyama Limba QUALIFIED
Misaki O MaletJapanIoni Bowcher RENEWAL
Jones Y WaycottJapanAsiya Javayant PROPOSAL
Jeanfrancois H VocelkaArgentinaXuxue Feng PROPOSAL
Leja U CaudyFranceBernardo Dominic NEGOTIATION
Mayumi C GillianFranceAmy Elsner UNQUALIFIED
Chavez V NestleArgentinaAnna Fali RENEWAL
Rodrigues S OstroskyArgentinaAnna Fali UNQUALIFIED
Cody B CaudyItalyXuxue Feng NEGOTIATION
Aditya E NestleSpainAsiya Javayant PROPOSAL
Cody R FlosiJapanIoni Bowcher NEW
Murillo Z MaletItalyBernardo Dominic PROPOSAL
Aika B SlusarskiAustraliaAnna Fali NEGOTIATION
Faith B VenereUnited KingdomIvan Magalhaes QUALIFIED
Kadeem A SchemmerJapanAnna Fali PROPOSAL
Chavez T MacleadIndiaAnna Fali NEW
Mayumi Y WhobreyUnited KingdomStephen Shaw NEW
Salvatore J PerinArgentinaAsiya Javayant PROPOSAL
Arvin D MacleadCanadaIvan Magalhaes NEGOTIATION
Chavez C CaldareraIndiaElwin Sharvill NEGOTIATION
Smith H GauchoArgentinaIoni Bowcher NEW
Francesco U AlbaresSpainStephen Shaw QUALIFIED
Maisha Q DarakjyAustraliaIvan Magalhaes QUALIFIED
Isabel O RutaBrazilStephen Shaw NEGOTIATION
Nicolas Q ChuiFranceIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria D NestleBrazilStephen Shaw UNQUALIFIED
Claire J PaprockiSpainXuxue Feng QUALIFIED
Cody O RutaUnited KingdomStephen Shaw PROPOSAL
Smith W GlickFranceIvan Magalhaes NEW
Leja A KuskoIndiaIoni Bowcher RENEWAL
Ricardo W SaylorsFranceAmy Elsner NEW
Tony J MacleadItalyAmy Elsner NEW
Isabel J RoysterUnited KingdomOnyama Limba UNQUALIFIED
Silvio P SaylorsBrazilIvan Magalhaes QUALIFIED
Chavez P SlusarskiCanadaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones T KolmetzRussia2024-04-02Chemel, James L Cpa NEW70Stephen Shaw
1001David A PerinUnited Kingdom2024-04-26Chanay, Jeffrey A Esq NEGOTIATION91Anna Fali
1002Francesco K IturbideIndia2024-04-14Benton, John B Jr UNQUALIFIED5Anna Fali
1003Mujtaba L RimGermany2024-04-21Morlong Associates NEGOTIATION22Asiya Javayant
1004Leon K OldroydGermany2024-04-18Rangoni Of Florence PROPOSAL61Asiya Javayant
1005Faith Y FlosiBrazil2024-04-12Commercial Press NEW62Amy Elsner
1006Faith H DilliardIndia2024-04-10Rousseaux, Michael Esq NEW22Asiya Javayant
1007Stacey A PerinArgentina2024-04-16King, Christopher A Esq RENEWAL90Stephen Shaw
1008Morrow I SchemmerRussia2024-04-17Buckley Miller Wright RENEWAL71Amy Elsner
1009Aika K GillianCanada2024-04-14Benton, John B Jr NEW73Bernardo Dominic
1010Alejandro G RimBrazil2024-04-11Dorl, James J Esq PROPOSAL20Stephen Shaw
1011Alejandro V BriddickUnited Kingdom2024-04-07Buckley Miller Wright PROPOSAL72Onyama Limba
1012Ricardo Z StensethGermany2024-04-23Truhlar And Truhlar Attys RENEWAL55Bernardo Dominic
1013Julie P GarufiGermany2024-04-16Morlong Associates NEW41Xuxue Feng
1014Tony S KolmetzIndia2024-04-06Benton, John B Jr NEGOTIATION16Stephen Shaw
1015Emily B VenereGermany2024-03-29Feltz Printing Service QUALIFIED66Stephen Shaw
1016Munro O VenereSpain2024-04-14Buckley Miller Wright UNQUALIFIED58Asiya Javayant
1017Jefferson E MorascaIndia2024-04-05Feiner Bros RENEWAL30Onyama Limba
1018Octavia B FollerBrazil2024-04-05Rousseaux, Michael Esq RENEWAL78Elwin Sharvill
1019Tony J OldroydBrazil2024-04-22Chapman, Ross E Esq PROPOSAL70Onyama Limba
1020Izzy I MaletAustralia2024-04-03Commercial Press NEW80Amy Elsner
1021Leja T RoysterCanada2024-04-07Buckley Miller Wright PROPOSAL85Anna Fali
1022Octavia E FerenczJapan2024-04-19Printing Dimensions PROPOSAL89Stephen Shaw
1023Stacey H AmigonCanada2024-04-13Chanay, Jeffrey A Esq PROPOSAL8Onyama Limba
1024Aika D IturbideIndia2024-03-30Buckley Miller Wright NEW9Elwin Sharvill
1025Silvio A GlickSpain2024-04-16Rousseaux, Michael Esq QUALIFIED21Bernardo Dominic
1026Smith Y GillianAustralia2024-04-02Morlong Associates NEW63Onyama Limba
1027Julie N RutaIndia2024-04-13Morlong Associates QUALIFIED39Elwin Sharvill
1028Misaki T WieserRussia2024-04-21Truhlar And Truhlar Attys RENEWAL26Amy Elsner
1029Julie A AlbaresJapan2024-04-23Rangoni Of Florence PROPOSAL13Asiya Javayant
1030Jefferson T CaldareraArgentina2024-04-19Feiner Bros NEW32Elwin Sharvill
1031Chavez I FigeroaJapan2024-04-09Printing Dimensions UNQUALIFIED22Bernardo Dominic
1032Juan W SergiFrance2024-04-25Rangoni Of Florence NEGOTIATION71Amy Elsner
1033Leon O MaletItaly2024-03-28Dorl, James J Esq RENEWAL98Elwin Sharvill
1034Arvin K CaldareraUnited Kingdom2024-03-28Dorl, James J Esq RENEWAL65Ivan Magalhaes
1035Aruna F TollnerCanada2024-04-11Feiner Bros RENEWAL58Ioni Bowcher
1036Claire O BowleyGermany2024-04-24Rangoni Of Florence RENEWAL87Amy Elsner
1037Octavia G InouyeFrance2024-04-13Feiner Bros UNQUALIFIED89Bernardo Dominic
1038Smith Y StensethAustralia2024-04-02Feiner Bros NEGOTIATION30Amy Elsner
1039Cody Z FerenczCanada2024-03-30Rousseaux, Michael Esq NEW85Anna Fali
1040Julie W CaldareraArgentina2024-04-07Rangoni Of Florence PROPOSAL46Bernardo Dominic
1041David C CaudySpain2024-04-17Chapman, Ross E Esq PROPOSAL64Anna Fali
1042Greenwood F BriddickGermany2024-04-24Feltz Printing Service QUALIFIED28Stephen Shaw
1043Antonio B RoysterIndia2024-04-23Printing Dimensions RENEWAL75Ivan Magalhaes
1044Silvio Y GillianIndia2024-04-04Rangoni Of Florence PROPOSAL11Bernardo Dominic
1045Faith D FigeroaBrazil2024-04-03Dorl, James J Esq NEGOTIATION31Stephen Shaw
1046Juan R GlickIndia2024-04-23Rangoni Of Florence UNQUALIFIED55Bernardo Dominic
1047Nicolas T StockhamUnited Kingdom2024-04-22Chemel, James L Cpa NEW58Ioni Bowcher
1048Misaki V PaprockiUnited Kingdom2024-04-17Benton, John B Jr QUALIFIED88Stephen Shaw
1049Faith U InouyeIndia2024-04-02Truhlar And Truhlar Attys UNQUALIFIED26Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin S IturbideFranceAsiya Javayant NEGOTIATION
Deepesh I SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Claire J DilliardAustraliaOnyama Limba UNQUALIFIED
Wickens Y InouyeArgentinaAmy Elsner PROPOSAL
Ricardo P MaletJapanBernardo Dominic RENEWAL
Adams N StockhamRussiaAnna Fali NEGOTIATION
Deepesh P SlusarskiFranceIvan Magalhaes NEW
Deepesh L CaudyIndiaBernardo Dominic RENEWAL
Morrow F PaprockiBrazilElwin Sharvill NEW
Arvin Z GillianFranceIoni Bowcher UNQUALIFIED
Jefferson D RoysterUnited KingdomBernardo Dominic NEW
Kaitlin Y GillianCanadaBernardo Dominic UNQUALIFIED
Alejandro C MacleadUnited KingdomIoni Bowcher NEGOTIATION
Rodrigues Y ChuiArgentinaElwin Sharvill PROPOSAL
Munro I GillianSpainElwin Sharvill UNQUALIFIED
Darci J GillianGermanyOnyama Limba NEW
James I FlosiFranceAmy Elsner QUALIFIED
Faith N FerenczJapanAmy Elsner NEGOTIATION
David Y IturbideBrazilAsiya Javayant NEGOTIATION
Smith D GauchoFranceElwin Sharvill NEGOTIATION
James N BriddickFranceAnna Fali PROPOSAL
Johnson I GarufiIndiaIoni Bowcher NEGOTIATION
Clifford U KuskoSpainElwin Sharvill PROPOSAL
Greenwood F StensethCanadaAsiya Javayant QUALIFIED
Tony Y CampainAustraliaAsiya Javayant PROPOSAL
Clifford W MorascaGermanyBernardo Dominic RENEWAL
Murillo R ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford E AmigonUnited KingdomAmy Elsner RENEWAL
Izzy E RimJapanAnna Fali UNQUALIFIED
Adams F AmigonRussiaAmy Elsner RENEWAL
David P IturbideUnited KingdomElwin Sharvill NEW
Adams L PaprockiJapanBernardo Dominic QUALIFIED
Silvio U WieserIndiaStephen Shaw UNQUALIFIED
Ricardo O KuskoArgentinaElwin Sharvill UNQUALIFIED
Clifford I SaylorsArgentinaStephen Shaw UNQUALIFIED
Leon B MaletGermanyOnyama Limba RENEWAL
Kaitlin R DoeBrazilBernardo Dominic NEGOTIATION
Faith H KuskoArgentinaXuxue Feng NEW
Claire E MaletJapanOnyama Limba UNQUALIFIED
Aruna I SaylorsSpainAsiya Javayant QUALIFIED
Isabel D RutaFranceOnyama Limba UNQUALIFIED
Salvatore A MacleadIndiaAmy Elsner QUALIFIED
Francesco K MorascaIndiaOnyama Limba NEGOTIATION
Aditya M RutaGermanyBernardo Dominic QUALIFIED
Ashley B PoquetteItalyElwin Sharvill QUALIFIED
Francesco Z BowleyAustraliaAmy Elsner QUALIFIED
Smith R KuskoFranceAsiya Javayant PROPOSAL
Munro I VenereRussiaBernardo Dominic RENEWAL
Mujtaba A MaletCanadaElwin Sharvill UNQUALIFIED
Rodrigues W TollnerItalyIoni Bowcher QUALIFIED
Frozen Columns
Name
Jones Z Amigon
Kadeem T Caudy
Octavia W Kusko
Francesco G Sergi
Tony R Saylors
Salvatore O Briddick
Francesco S Doe
Isabel H Vocelka
Stacey O Figeroa
Adams N Sergi
Deepesh E Chui
Ashley A Poquette
Ivar H Gillian
Deepesh P Glick
Munro B Morasca
Aruna B Bowley
Francesco J Venere
Mayumi C Perin
Aika X Tollner
Mujtaba S Sergi
Emily C Ferencz
Mujtaba A Waycott
Emily E Waycott
Jeanfrancois P Gillian
Maria H Shinko
Nicolas P Amigon
Maria Y Maclead
Kaitlin P Malet
Cody L Foller
Mujtaba Z Albares
Aika T Waycott
Aditya H Albares
Aditya T Poquette
Mujtaba I Slusarski
Arvin D Tollner
Adams G Ferencz
Antonio U Whobrey
Smith W Foller
Darci K Vocelka
Greenwood E Paprocki
Morrow H Stockham
Mujtaba O Marrier
Octavia D Stenseth
Leja D Campain
Leja S Stockham
Cody F Nestle
Kadeem P Sergi
Mayumi J Kolmetz
Claire W Kusko
Aika E Stockham
IdCountryDate
1000United Kingdom2024-04-03
1001Japan2024-04-13
1002United Kingdom2024-04-23
1003Canada2024-04-14
1004Australia2024-04-15
1005France2024-04-12
1006Spain2024-04-24
1007Canada2024-04-01
1008Italy2024-04-01
1009Brazil2024-04-20
1010Italy2024-04-15
1011Canada2024-03-31
1012Italy2024-04-24
1013Russia2024-03-30
1014Canada2024-04-25
1015Canada2024-04-13
1016Argentina2024-04-20
1017Argentina2024-04-17
1018Brazil2024-04-14
1019Spain2024-04-20
1020Canada2024-04-08
1021Germany2024-04-25
1022Spain2024-03-29
1023Germany2024-03-30
1024Argentina2024-04-19
1025Brazil2024-03-31
1026India2024-04-18
1027Australia2024-04-04
1028Russia2024-04-06
1029Russia2024-04-01
1030Germany2024-04-06
1031Germany2024-04-26
1032Italy2024-04-09
1033Brazil2024-04-21
1034Russia2024-03-31
1035Spain2024-04-02
1036India2024-04-16
1037Canada2024-04-13
1038Spain2024-04-01
1039India2024-04-21
1040Italy2024-04-05
1041Italy2024-04-25
1042Canada2024-04-04
1043Brazil2024-03-29
1044Russia2024-04-15
1045Spain2024-04-24
1046Japan2024-04-14
1047Italy2024-04-23
1048Italy2024-04-18
1049Brazil2024-04-05

On-Demand Data

NameIdCountryDate
Ashley N Briddick1000Spain2024-03-29
Adams E Rim1001Australia2024-04-14
Silvio A Oldroyd1002France2024-04-11
Arvin O Albares1003Italy2024-03-28
Leon O Oldroyd1004France2024-04-06
Leon U Kolmetz1005Russia2024-04-03
Kaitlin M Tollner1006France2024-04-19
Chavez G Perin1007Argentina2024-04-16
Claire W Flosi1008Canada2024-04-02
Morrow Y Nicka1009Spain2024-04-17
Jennifer R Gaucho1010Canada2024-04-16
Salvatore Z Flosi1011Germany2024-04-08
Jennifer F Sergi1012Canada2024-04-08
Morrow N Oldroyd1013Brazil2024-04-07
Kadeem P Ostrosky1014United Kingdom2024-04-23
Greenwood C Flosi1015Canada2024-04-03
Stacey I Ostrosky1016India2024-04-14
Aditya U Slusarski1017Brazil2024-04-26
Munro O Rim1018Australia2024-04-17
Ricardo K Flosi1019Brazil2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore Y SaylorsJapanStephen Shaw PROPOSAL
Misaki D GlickArgentinaStephen Shaw NEW
David W RutaSpainIoni Bowcher RENEWAL
Ivar M VocelkaFranceElwin Sharvill PROPOSAL
Octavia R GlickGermanyStephen Shaw QUALIFIED
Maria F WaycottAustraliaElwin Sharvill UNQUALIFIED
Sinclair K FlosiAustraliaXuxue Feng UNQUALIFIED
Sinclair D DoeAustraliaXuxue Feng QUALIFIED
Aruna G WieserSpainOnyama Limba PROPOSAL
Mayumi F RutaArgentinaStephen Shaw QUALIFIED
Aika P StensethUnited KingdomElwin Sharvill NEGOTIATION
Ivar Y CampainIndiaAsiya Javayant NEGOTIATION
Jefferson B SergiArgentinaAmy Elsner NEGOTIATION
Aika S SchemmerArgentinaAsiya Javayant UNQUALIFIED
Misaki W SchemmerArgentinaBernardo Dominic RENEWAL
Arvin I GarufiGermanyAmy Elsner NEGOTIATION
Ivar W WhobreyCanadaAnna Fali NEGOTIATION
Maisha N FigeroaFranceAnna Fali PROPOSAL
Chavez J OldroydIndiaOnyama Limba NEGOTIATION
Octavia G OldroydIndiaElwin Sharvill QUALIFIED
Murillo E SergiRussiaIvan Magalhaes NEGOTIATION
Ivar A GlickGermanyAsiya Javayant NEW
Greenwood M GauchoIndiaElwin Sharvill NEW
Mayumi P CaudyRussiaIoni Bowcher NEGOTIATION
Emily G GlickFranceAmy Elsner UNQUALIFIED
Deepesh V GauchoJapanAmy Elsner QUALIFIED
Morrow N StensethArgentinaAsiya Javayant UNQUALIFIED
Costa X ChuiFranceIvan Magalhaes PROPOSAL
Clifford E PerinCanadaAnna Fali QUALIFIED
Alejandro A VenereCanadaAmy Elsner QUALIFIED
Mujtaba I RulapaughRussiaAnna Fali PROPOSAL
Alejandro W NestleIndiaAnna Fali RENEWAL
Faith O StensethFranceIoni Bowcher NEW
Francesco Y SchemmerFranceXuxue Feng UNQUALIFIED
Faith F GauchoGermanyOnyama Limba NEW
Maisha S StockhamUnited KingdomStephen Shaw QUALIFIED
Munro L PerinCanadaIoni Bowcher RENEWAL
Costa R NickaIndiaXuxue Feng UNQUALIFIED
Salvatore R PoquetteJapanXuxue Feng NEW
Kadeem S AmigonSpainAnna Fali NEW

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