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
Tony C CaudySpainAmy Elsner PROPOSAL
Juan Q ChuiJapanAnna Fali UNQUALIFIED
Jefferson X MacleadUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois F StockhamJapanAnna Fali RENEWAL
Kaitlin H WaycottItalyBernardo Dominic PROPOSAL
Greenwood O AlbaresSpainAmy Elsner RENEWAL
Juan W FigeroaIndiaIoni Bowcher QUALIFIED
Kadeem L BologniaGermanyOnyama Limba NEGOTIATION
Tony Q CaldareraFranceBernardo Dominic QUALIFIED
Emily F MacleadCanadaXuxue Feng PROPOSAL
Stacey M RimBrazilAnna Fali PROPOSAL
Greenwood W CaudyCanadaBernardo Dominic QUALIFIED
Faith G PoquetteGermanyAmy Elsner PROPOSAL
Leon E InouyeGermanyXuxue Feng QUALIFIED
Jennifer R DarakjyUnited KingdomXuxue Feng RENEWAL
Wickens J BologniaArgentinaIvan Magalhaes NEW
Morrow O MaletUnited KingdomStephen Shaw PROPOSAL
Nicolas D SlusarskiAustraliaAmy Elsner NEGOTIATION
Arvin J DarakjyItalyAnna Fali QUALIFIED
Darci K CampainItalyIvan Magalhaes PROPOSAL
Munro M MaletArgentinaAmy Elsner PROPOSAL
Sinclair L RutaIndiaIvan Magalhaes RENEWAL
Maisha J DilliardBrazilAsiya Javayant UNQUALIFIED
Julie N ButtUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues A FerenczItalyStephen Shaw UNQUALIFIED
Isabel S WhobreyItalyOnyama Limba NEW
Juan E StensethIndiaStephen Shaw PROPOSAL
Costa U FerenczGermanyBernardo Dominic UNQUALIFIED
Juan L DarakjySpainAmy Elsner QUALIFIED
Kadeem Z MorascaIndiaAnna Fali RENEWAL
Munro R IturbideCanadaAmy Elsner NEW
Kaitlin G StensethAustraliaBernardo Dominic PROPOSAL
Julie C SaylorsAustraliaXuxue Feng NEW
Faith Z SergiAustraliaOnyama Limba RENEWAL
Francesco Y WhobreyBrazilElwin Sharvill NEW
Murillo G TollnerFranceIvan Magalhaes PROPOSAL
Jones H OstroskySpainIoni Bowcher QUALIFIED
Mayumi U WieserIndiaIoni Bowcher NEW
Maisha R FerenczArgentinaAsiya Javayant NEGOTIATION
Octavia N FollerCanadaAmy Elsner RENEWAL
Claire R SchemmerUnited KingdomOnyama Limba QUALIFIED
Jennifer A DoeUnited KingdomAsiya Javayant RENEWAL
Stacey D SergiIndiaAmy Elsner NEW
Julie T FerenczFranceElwin Sharvill UNQUALIFIED
Johnson R StensethIndiaIoni Bowcher NEW
Antonio H FlosiCanadaIvan Magalhaes UNQUALIFIED
Johnson P SlusarskiUnited KingdomStephen Shaw PROPOSAL
Chavez Q PerinBrazilAsiya Javayant QUALIFIED
Leja L StensethIndiaIoni Bowcher RENEWAL
Deepesh W CaldareraRussiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore O CaudyGermanyBernardo Dominic UNQUALIFIED
Maisha Z ShinkoIndiaBernardo Dominic NEGOTIATION
Kadeem Y PoquetteRussiaAsiya Javayant RENEWAL
James I DarakjySpainAmy Elsner UNQUALIFIED
Munro X DilliardArgentinaAmy Elsner NEW
Arvin S PaprockiFranceAsiya Javayant NEGOTIATION
James V PerinIndiaAsiya Javayant NEW
Darci J BriddickRussiaStephen Shaw NEW
Wickens D IturbideJapanAmy Elsner NEGOTIATION
Jeanfrancois U VocelkaUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith K VenereItaly2024-05-17Buckley Miller Wright NEW46Xuxue Feng
1001Arvin T WhobreyAustralia2024-04-29Feiner Bros PROPOSAL97Bernardo Dominic
1002Murillo F SergiIndia2024-04-24Commercial Press NEGOTIATION10Onyama Limba
1003Leon U WhobreyArgentina2024-05-02Truhlar And Truhlar Attys QUALIFIED72Ivan Magalhaes
1004Clifford J DarakjyUnited Kingdom2024-05-19Rousseaux, Michael Esq QUALIFIED70Onyama Limba
1005Antonio S FollerRussia2024-05-07Feiner Bros PROPOSAL41Ivan Magalhaes
1006Aika D MaletItaly2024-05-03Morlong Associates PROPOSAL15Elwin Sharvill
1007Claire T InouyeCanada2024-05-10Dorl, James J Esq PROPOSAL82Bernardo Dominic
1008Julie J GauchoGermany2024-04-26Feiner Bros UNQUALIFIED97Xuxue Feng
1009Izzy I MorascaJapan2024-04-27Chemel, James L Cpa PROPOSAL21Stephen Shaw
1010Maria D KolmetzFrance2024-04-29King, Christopher A Esq UNQUALIFIED97Stephen Shaw
1011Darci S MaletSpain2024-05-01Morlong Associates PROPOSAL30Ioni Bowcher
1012Adams H InouyeItaly2024-05-14King, Christopher A Esq RENEWAL74Xuxue Feng
1013Mujtaba M PerinJapan2024-04-23Feiner Bros NEGOTIATION13Anna Fali
1014Arvin V RimSpain2024-04-29Dorl, James J Esq QUALIFIED24Amy Elsner
1015Rodrigues U StockhamGermany2024-04-23Printing Dimensions RENEWAL98Amy Elsner
1016Jeanfrancois N PaprockiUnited Kingdom2024-05-05Chemel, James L Cpa NEW44Xuxue Feng
1017Ivar U RulapaughSpain2024-05-12Feiner Bros NEGOTIATION15Ivan Magalhaes
1018James S RutaBrazil2024-04-23Chapman, Ross E Esq NEW14Asiya Javayant
1019Izzy Q PerinGermany2024-05-15Printing Dimensions NEW10Stephen Shaw
1020Clifford D GlickAustralia2024-04-24Rousseaux, Michael Esq QUALIFIED82Amy Elsner
1021Aruna R MaletBrazil2024-05-07King, Christopher A Esq RENEWAL3Elwin Sharvill
1022Greenwood Z MaletRussia2024-05-02Commercial Press PROPOSAL30Ivan Magalhaes
1023Ricardo Z DoeBrazil2024-04-28Printing Dimensions UNQUALIFIED89Ioni Bowcher
1024Deepesh D PaprockiAustralia2024-05-13Feltz Printing Service QUALIFIED28Bernardo Dominic
1025Jones P DarakjySpain2024-05-06Printing Dimensions PROPOSAL38Ioni Bowcher
1026Isabel Y TollnerItaly2024-04-22Benton, John B Jr UNQUALIFIED60Amy Elsner
1027Morrow Y MorascaBrazil2024-05-21Commercial Press NEW22Xuxue Feng
1028Antonio L PaprockiGermany2024-05-17Chapman, Ross E Esq RENEWAL89Ivan Magalhaes
1029Mayumi C PaprockiIndia2024-04-26Rangoni Of Florence NEW92Xuxue Feng
1030Costa Q PerinJapan2024-05-04Buckley Miller Wright QUALIFIED0Xuxue Feng
1031Alejandro W BowleyFrance2024-04-29Dorl, James J Esq RENEWAL84Bernardo Dominic
1032Izzy M CampainCanada2024-04-26King, Christopher A Esq UNQUALIFIED86Anna Fali
1033Wickens Q NestleRussia2024-05-16Chanay, Jeffrey A Esq UNQUALIFIED14Elwin Sharvill
1034Stacey V WieserGermany2024-04-28Morlong Associates NEGOTIATION47Onyama Limba
1035Aditya U DoeItaly2024-05-09Rangoni Of Florence PROPOSAL87Onyama Limba
1036Leon V InouyeIndia2024-05-03Feltz Printing Service NEW64Amy Elsner
1037Jennifer K DarakjyIndia2024-04-25Rousseaux, Michael Esq PROPOSAL85Amy Elsner
1038Mujtaba Z StockhamIndia2024-05-19Morlong Associates QUALIFIED6Stephen Shaw
1039David R InouyeFrance2024-05-13Dorl, James J Esq UNQUALIFIED6Elwin Sharvill
1040Cody H KuskoIndia2024-04-25Morlong Associates QUALIFIED61Asiya Javayant
1041Wickens X SaylorsCanada2024-04-24Rangoni Of Florence NEW11Asiya Javayant
1042Johnson B VenereItaly2024-05-14Chapman, Ross E Esq QUALIFIED12Amy Elsner
1043Octavia G RimIndia2024-04-27King, Christopher A Esq NEGOTIATION1Elwin Sharvill
1044Octavia B DilliardAustralia2024-04-28Chapman, Ross E Esq PROPOSAL33Anna Fali
1045Julie C BriddickCanada2024-04-26Rangoni Of Florence PROPOSAL3Ioni Bowcher
1046Nicolas G RutaBrazil2024-04-28Feltz Printing Service QUALIFIED35Elwin Sharvill
1047Chavez L RutaJapan2024-04-25Rangoni Of Florence PROPOSAL77Onyama Limba
1048Julie X FerenczJapan2024-05-05Chemel, James L Cpa QUALIFIED95Amy Elsner
1049Jennifer G TollnerJapan2024-05-18Rangoni Of Florence QUALIFIED98Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aika H RutaArgentinaOnyama Limba QUALIFIED
Octavia J WieserRussiaIoni Bowcher RENEWAL
Kadeem G RimIndiaAmy Elsner UNQUALIFIED
Nicolas Q NickaArgentinaXuxue Feng NEGOTIATION
Mujtaba M GlickGermanyIoni Bowcher NEGOTIATION
Ricardo U SergiAustraliaStephen Shaw UNQUALIFIED
Jones J KolmetzUnited KingdomStephen Shaw PROPOSAL
Leja H NestleGermanyOnyama Limba NEGOTIATION
Kadeem G PaprockiUnited KingdomXuxue Feng QUALIFIED
Silvio C DarakjyIndiaIoni Bowcher NEW
Claire D PaprockiFranceElwin Sharvill NEW
Greenwood F WhobreyFranceIvan Magalhaes PROPOSAL
Aika P FerenczIndiaIvan Magalhaes NEW
Kadeem M WieserGermanyAsiya Javayant RENEWAL
Maisha H GauchoGermanyAsiya Javayant QUALIFIED
James U CampainCanadaXuxue Feng RENEWAL
Smith E VocelkaSpainXuxue Feng UNQUALIFIED
Cody L GarufiAustraliaBernardo Dominic RENEWAL
Nicolas H SlusarskiItalyStephen Shaw NEGOTIATION
Kadeem W WieserIndiaStephen Shaw PROPOSAL
Antonio E CaudyGermanyAsiya Javayant NEGOTIATION
Kadeem B SchemmerItalyStephen Shaw NEW
Maria F PaprockiRussiaAnna Fali QUALIFIED
Isabel X AmigonUnited KingdomElwin Sharvill RENEWAL
Leja P OstroskyGermanyAnna Fali NEW
Murillo Y SlusarskiItalyIvan Magalhaes UNQUALIFIED
Francesco U GauchoCanadaOnyama Limba UNQUALIFIED
Munro Z RoysterFranceIvan Magalhaes PROPOSAL
Chavez K CampainFranceIoni Bowcher NEGOTIATION
Leja D KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Aruna D GlickIndiaOnyama Limba UNQUALIFIED
James A SchemmerCanadaIoni Bowcher QUALIFIED
Izzy Y FlosiIndiaAsiya Javayant NEGOTIATION
Ivar A DilliardGermanyAnna Fali PROPOSAL
Wickens Q IturbideJapanStephen Shaw UNQUALIFIED
Kadeem S NickaSpainElwin Sharvill QUALIFIED
Isabel F MacleadSpainAmy Elsner UNQUALIFIED
Faith D InouyeBrazilXuxue Feng QUALIFIED
Mujtaba L RoysterSpainIoni Bowcher NEGOTIATION
Salvatore T WhobreyFranceAsiya Javayant NEGOTIATION
Deepesh A ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Jefferson Q StockhamAustraliaOnyama Limba QUALIFIED
Smith G AmigonSpainOnyama Limba QUALIFIED
Julie X FlosiUnited KingdomStephen Shaw NEGOTIATION
Jones F WaycottGermanyIvan Magalhaes QUALIFIED
Johnson S RutaGermanyIoni Bowcher QUALIFIED
Wickens P PaprockiRussiaIvan Magalhaes NEGOTIATION
Smith O RulapaughIndiaAsiya Javayant UNQUALIFIED
Jeanfrancois T RutaCanadaIvan Magalhaes PROPOSAL
Kaitlin R ChuiRussiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Smith S Venere
Leja H Figeroa
James S Gillian
Claire M Bowley
Leja L Doe
Isabel D Whobrey
Darci A Garufi
Emily P Rim
Julie N Figeroa
Greenwood J Bowley
Chavez H Royster
Costa T Royster
Jeanfrancois U Vocelka
Faith T Nestle
Julie X Foller
Darci C Campain
Nicolas W Ferencz
Silvio H Flosi
Leja W Waycott
Salvatore M Perin
Octavia U Albares
Salvatore Y Maclead
Jefferson K Bowley
Cody I Schemmer
Ricardo D Venere
Aruna T Shinko
Ashley A Whobrey
Sinclair N Caudy
Darci N Ostrosky
Nicolas P Schemmer
Adams R Garufi
Maisha H Caudy
Leon X Caudy
Rodrigues O Tollner
Wickens D Iturbide
Ashley J Stockham
Aika U Iturbide
Adams U Ferencz
Antonio P Schemmer
Maisha D Saylors
David F Whobrey
Mujtaba Y Marrier
Ashley N Vocelka
Maria W Stockham
Leon D Albares
Darci I Briddick
James C Sergi
Jones X Shinko
Leon Y Malet
Tony T Royster
IdCountryDate
1000Australia2024-05-17
1001Brazil2024-04-30
1002United Kingdom2024-05-19
1003Russia2024-05-01
1004Canada2024-04-24
1005Canada2024-05-04
1006Italy2024-05-13
1007Australia2024-05-20
1008Australia2024-05-13
1009Australia2024-04-22
1010India2024-05-03
1011France2024-04-25
1012Argentina2024-05-08
1013Japan2024-05-18
1014Japan2024-05-02
1015India2024-04-26
1016Japan2024-05-20
1017Brazil2024-04-23
1018Australia2024-05-10
1019Italy2024-05-04
1020Brazil2024-05-07
1021Japan2024-05-17
1022Japan2024-05-01
1023Germany2024-05-08
1024Russia2024-05-15
1025Brazil2024-05-18
1026Canada2024-05-21
1027Spain2024-05-11
1028India2024-05-06
1029Spain2024-05-02
1030India2024-05-12
1031Japan2024-05-20
1032Germany2024-04-22
1033Spain2024-05-14
1034France2024-05-12
1035Spain2024-05-07
1036Germany2024-04-25
1037Spain2024-05-01
1038India2024-05-07
1039Italy2024-05-17
1040United Kingdom2024-05-07
1041Brazil2024-05-02
1042France2024-04-23
1043Russia2024-05-18
1044France2024-04-23
1045Russia2024-05-17
1046Argentina2024-05-13
1047India2024-05-09
1048Spain2024-04-22
1049France2024-05-01

On-Demand Data

NameIdCountryDate
Adams R Maclead1000Germany2024-05-17
Misaki Q Poquette1001Japan2024-05-14
Jeanfrancois H Nicka1002Australia2024-05-19
Ashley R Figeroa1003Italy2024-04-27
Smith V Stockham1004Germany2024-05-13
Isabel L Paprocki1005Spain2024-05-08
Morrow S Amigon1006Germany2024-04-27
Juan Z Amigon1007Italy2024-05-09
Mayumi P Morasca1008India2024-04-26
Morrow A Briddick1009Australia2024-05-20
Silvio O Malet1010Italy2024-05-03
Alejandro H Ferencz1011Russia2024-05-04
Jefferson F Oldroyd1012India2024-04-30
Faith T Stockham1013Germany2024-05-11
Wickens Y Doe1014United Kingdom2024-05-16
Rodrigues Z Perin1015Argentina2024-05-18
Kadeem G Morasca1016Argentina2024-05-07
Jones W Whobrey1017Russia2024-05-03
Deepesh U Gillian1018France2024-05-11
Rodrigues B Wieser1019Brazil2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues P VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Morrow W BowleySpainElwin Sharvill QUALIFIED
Greenwood V CaldareraArgentinaAsiya Javayant UNQUALIFIED
Mayumi Z KuskoRussiaAnna Fali UNQUALIFIED
Juan K TollnerSpainAnna Fali NEW
Stacey B PerinUnited KingdomIvan Magalhaes RENEWAL
Jennifer D SlusarskiItalyBernardo Dominic NEW
Aruna M BriddickAustraliaOnyama Limba RENEWAL
Greenwood W SaylorsItalyAnna Fali NEGOTIATION
Kaitlin E InouyeUnited KingdomAsiya Javayant RENEWAL
Kaitlin N NestleItalyBernardo Dominic NEGOTIATION
Deepesh Q MacleadIndiaOnyama Limba UNQUALIFIED
Deepesh U GlickRussiaAsiya Javayant QUALIFIED
Isabel T ShinkoUnited KingdomStephen Shaw QUALIFIED
Jones V WhobreyUnited KingdomXuxue Feng NEW
Jefferson D PoquetteBrazilIoni Bowcher NEW
Claire O NickaRussiaOnyama Limba RENEWAL
Rodrigues L StockhamItalyAnna Fali UNQUALIFIED
Jefferson H StockhamFranceAsiya Javayant NEW
Aruna N PoquetteArgentinaIvan Magalhaes NEGOTIATION
Aruna B DarakjyRussiaStephen Shaw PROPOSAL
David B WieserUnited KingdomAnna Fali PROPOSAL
Alejandro D NestleAustraliaBernardo Dominic PROPOSAL
Maria E FollerJapanXuxue Feng NEGOTIATION
Mujtaba D ShinkoFranceXuxue Feng NEGOTIATION
David J VocelkaItalyXuxue Feng PROPOSAL
Maria E KuskoSpainStephen Shaw UNQUALIFIED
Francesco A FlosiIndiaAsiya Javayant NEW
Jennifer E SchemmerJapanAnna Fali NEGOTIATION
Cody P RimBrazilAmy Elsner NEW
Ashley F PerinFranceOnyama Limba NEGOTIATION
Chavez C MacleadCanadaAnna Fali NEGOTIATION
Ricardo W DilliardSpainIoni Bowcher NEW
Julie M SlusarskiUnited KingdomStephen Shaw NEGOTIATION
Wickens S DoeJapanStephen Shaw QUALIFIED
David V MarrierItalyAmy Elsner RENEWAL
Maisha G InouyeUnited KingdomBernardo Dominic RENEWAL
Francesco B FollerAustraliaAmy Elsner QUALIFIED
Jeanfrancois T StensethCanadaIvan Magalhaes UNQUALIFIED
Mayumi W MacleadItalyAnna Fali 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>