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 G PaprockiAustraliaAnna Fali NEW
Mujtaba O ShinkoIndiaBernardo Dominic NEW
Ashley B NickaCanadaAnna Fali NEGOTIATION
Cody I SlusarskiItalyOnyama Limba PROPOSAL
David R PaprockiArgentinaXuxue Feng RENEWAL
Antonio Q MarrierFranceBernardo Dominic QUALIFIED
Kaitlin U RimIndiaElwin Sharvill NEGOTIATION
David C TollnerBrazilElwin Sharvill RENEWAL
Juan L CampainArgentinaAmy Elsner NEGOTIATION
Francesco C MaletRussiaIvan Magalhaes QUALIFIED
Julie V KolmetzJapanAnna Fali UNQUALIFIED
Maisha S FlosiRussiaAmy Elsner NEW
Sinclair C SergiIndiaIvan Magalhaes NEW
Aditya N ChuiCanadaIvan Magalhaes QUALIFIED
Julie A PaprockiBrazilAsiya Javayant PROPOSAL
Ivar P MorascaUnited KingdomStephen Shaw NEGOTIATION
Aruna M MacleadGermanyOnyama Limba UNQUALIFIED
Kaitlin F SergiSpainIvan Magalhaes NEGOTIATION
Ashley B ChuiAustraliaOnyama Limba NEGOTIATION
Stacey F RulapaughItalyIoni Bowcher RENEWAL
Munro S RutaGermanyXuxue Feng NEW
Leon M KolmetzUnited KingdomOnyama Limba QUALIFIED
Munro N AmigonAustraliaAnna Fali UNQUALIFIED
Juan B MorascaFranceIvan Magalhaes PROPOSAL
Clifford J BriddickFranceXuxue Feng UNQUALIFIED
Silvio D MacleadGermanyOnyama Limba PROPOSAL
Ivar P PaprockiArgentinaStephen Shaw PROPOSAL
Jeanfrancois L InouyeUnited KingdomBernardo Dominic NEW
Faith S KuskoItalyStephen Shaw NEGOTIATION
Sinclair Y CampainArgentinaXuxue Feng NEGOTIATION
Darci O PoquetteRussiaOnyama Limba NEGOTIATION
Johnson Y RulapaughArgentinaBernardo Dominic PROPOSAL
Johnson D NestleJapanXuxue Feng NEGOTIATION
Silvio P WaycottCanadaAnna Fali QUALIFIED
Kaitlin A RulapaughGermanyXuxue Feng NEGOTIATION
Rodrigues H FollerSpainOnyama Limba QUALIFIED
Misaki F FerenczAustraliaOnyama Limba QUALIFIED
Ivar A RutaBrazilBernardo Dominic PROPOSAL
Munro E ChuiJapanOnyama Limba QUALIFIED
Antonio Q FerenczBrazilIoni Bowcher NEGOTIATION
Arvin Y PerinBrazilXuxue Feng NEGOTIATION
Antonio C VocelkaCanadaBernardo Dominic NEW
Clifford T WaycottAustraliaOnyama Limba UNQUALIFIED
Antonio X FollerIndiaIvan Magalhaes QUALIFIED
Ashley M MarrierUnited KingdomXuxue Feng NEW
Murillo H FigeroaIndiaAnna Fali QUALIFIED
Arvin F WhobreyUnited KingdomBernardo Dominic QUALIFIED
Johnson X MacleadAustraliaAsiya Javayant PROPOSAL
Izzy J NickaRussiaAsiya Javayant NEGOTIATION
Julie X GauchoSpainStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair Q FollerRussiaBernardo Dominic UNQUALIFIED
Ricardo V MacleadItalyOnyama Limba QUALIFIED
Darci O PoquetteSpainAmy Elsner NEGOTIATION
Isabel Q MorascaCanadaElwin Sharvill PROPOSAL
Silvio R OldroydCanadaIvan Magalhaes NEW
Antonio Q OstroskyJapanAmy Elsner PROPOSAL
Faith O DilliardJapanIvan Magalhaes PROPOSAL
Morrow W SlusarskiJapanAsiya Javayant RENEWAL
Chavez X SaylorsFranceAsiya Javayant PROPOSAL
Arvin B GillianAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith I MaletUnited Kingdom2024-04-18King, Christopher A Esq NEW16Bernardo Dominic
1001Alejandro J DilliardFrance2024-04-22Rangoni Of Florence PROPOSAL2Anna Fali
1002Emily D GillianJapan2024-04-07Feiner Bros NEGOTIATION96Elwin Sharvill
1003Wickens C SaylorsItaly2024-03-28Rangoni Of Florence QUALIFIED92Bernardo Dominic
1004Leon C GauchoAustralia2024-04-21Truhlar And Truhlar Attys PROPOSAL48Onyama Limba
1005Ivar C MacleadCanada2024-03-28Feiner Bros NEGOTIATION98Onyama Limba
1006Tony Y RulapaughItaly2024-03-27Dorl, James J Esq QUALIFIED43Ioni Bowcher
1007Emily M BowleyItaly2024-04-13Chemel, James L Cpa UNQUALIFIED89Stephen Shaw
1008Salvatore O FigeroaSpain2024-04-02Chanay, Jeffrey A Esq NEGOTIATION1Bernardo Dominic
1009Nicolas M WhobreyUnited Kingdom2024-04-15Buckley Miller Wright PROPOSAL38Xuxue Feng
1010Silvio Z BologniaAustralia2024-04-05Commercial Press UNQUALIFIED14Anna Fali
1011Greenwood N GillianArgentina2024-03-28Feltz Printing Service NEW68Amy Elsner
1012Misaki E StensethFrance2024-03-26Rangoni Of Florence RENEWAL38Xuxue Feng
1013Chavez N PaprockiRussia2024-03-30Benton, John B Jr PROPOSAL87Amy Elsner
1014Mayumi B CaudyBrazil2024-04-24Commercial Press UNQUALIFIED81Stephen Shaw
1015Chavez D AlbaresGermany2024-04-22Morlong Associates NEW75Ivan Magalhaes
1016Claire O MorascaSpain2024-04-06Benton, John B Jr RENEWAL74Xuxue Feng
1017Mujtaba L MaletAustralia2024-04-06Feiner Bros QUALIFIED60Asiya Javayant
1018Octavia S KuskoRussia2024-04-15Benton, John B Jr QUALIFIED22Ioni Bowcher
1019Maisha R SergiFrance2024-03-31Chemel, James L Cpa UNQUALIFIED16Amy Elsner
1020Smith X TollnerItaly2024-04-13Commercial Press UNQUALIFIED93Anna Fali
1021Alejandro J VenereGermany2024-04-22Chapman, Ross E Esq UNQUALIFIED81Stephen Shaw
1022Isabel M BowleyCanada2024-04-04Chapman, Ross E Esq PROPOSAL25Asiya Javayant
1023Greenwood W MacleadCanada2024-04-03King, Christopher A Esq QUALIFIED46Anna Fali
1024Darci E OldroydGermany2024-04-19Feltz Printing Service NEW20Ioni Bowcher
1025Jennifer B MaletJapan2024-03-27Chapman, Ross E Esq PROPOSAL62Asiya Javayant
1026Munro N WieserFrance2024-04-13Benton, John B Jr RENEWAL61Asiya Javayant
1027Faith D KuskoItaly2024-03-27Chapman, Ross E Esq NEGOTIATION54Onyama Limba
1028Arvin Y CampainBrazil2024-04-02Printing Dimensions NEW18Amy Elsner
1029Alejandro D OstroskyFrance2024-04-21Commercial Press QUALIFIED51Bernardo Dominic
1030Silvio V MarrierUnited Kingdom2024-04-21Dorl, James J Esq NEW92Anna Fali
1031Munro U AmigonGermany2024-04-12Feiner Bros QUALIFIED31Anna Fali
1032Johnson T ChuiBrazil2024-03-29Buckley Miller Wright NEW15Elwin Sharvill
1033Aika S FlosiAustralia2024-04-01Benton, John B Jr NEW88Amy Elsner
1034Ivar B SergiCanada2024-04-09Rangoni Of Florence NEW17Xuxue Feng
1035Faith T AlbaresJapan2024-04-11Commercial Press RENEWAL0Amy Elsner
1036Alejandro T MaletSpain2024-04-12Commercial Press QUALIFIED71Ioni Bowcher
1037Misaki Q BologniaJapan2024-04-19Chanay, Jeffrey A Esq QUALIFIED76Elwin Sharvill
1038Clifford M OldroydIndia2024-04-09Feltz Printing Service NEW91Ivan Magalhaes
1039Smith D DoeUnited Kingdom2024-03-27Morlong Associates NEGOTIATION69Ivan Magalhaes
1040Jeanfrancois B PaprockiItaly2024-04-20Printing Dimensions NEW45Ioni Bowcher
1041Kaitlin A OstroskyArgentina2024-03-27Rangoni Of Florence NEW95Amy Elsner
1042Aika Y KuskoArgentina2024-03-27Benton, John B Jr NEGOTIATION47Ivan Magalhaes
1043Morrow R SaylorsUnited Kingdom2024-03-29Printing Dimensions NEW25Ivan Magalhaes
1044Octavia N ShinkoSpain2024-04-06Printing Dimensions PROPOSAL85Elwin Sharvill
1045Maria U DilliardUnited Kingdom2024-04-09Printing Dimensions NEW23Onyama Limba
1046Leon U BowleyAustralia2024-04-06Buckley Miller Wright RENEWAL27Xuxue Feng
1047James W CaudyGermany2024-04-06Chemel, James L Cpa UNQUALIFIED99Asiya Javayant
1048Rodrigues J NestleArgentina2024-04-21Rangoni Of Florence PROPOSAL98Amy Elsner
1049Maria M AmigonAustralia2024-04-04Chemel, James L Cpa NEW63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Faith D FollerUnited KingdomIvan Magalhaes QUALIFIED
Jefferson C IturbideFranceAsiya Javayant PROPOSAL
Ivar B RoysterJapanBernardo Dominic PROPOSAL
Faith I RoysterIndiaIoni Bowcher NEW
Ashley J GlickIndiaBernardo Dominic NEGOTIATION
Claire C MorascaJapanElwin Sharvill RENEWAL
Cody B DilliardGermanyIoni Bowcher NEW
Aruna D WieserUnited KingdomAsiya Javayant RENEWAL
Cody W RulapaughBrazilStephen Shaw PROPOSAL
Octavia A NestleAustraliaAnna Fali QUALIFIED
Jones F MaletSpainIvan Magalhaes NEW
James K SergiFranceAnna Fali PROPOSAL
Faith O SaylorsCanadaStephen Shaw NEGOTIATION
Emily S GarufiSpainIvan Magalhaes NEGOTIATION
Aika C WieserRussiaElwin Sharvill NEGOTIATION
Aruna D OstroskyJapanAsiya Javayant RENEWAL
Isabel E FollerUnited KingdomXuxue Feng QUALIFIED
Aditya Z GarufiGermanyAmy Elsner NEW
Smith S PoquetteIndiaAmy Elsner QUALIFIED
Murillo Z MaletCanadaAmy Elsner NEW
Deepesh M ShinkoItalyAmy Elsner PROPOSAL
Isabel S PoquetteFranceAnna Fali RENEWAL
James X FlosiCanadaStephen Shaw QUALIFIED
Isabel W DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Leja O IturbideArgentinaOnyama Limba PROPOSAL
Deepesh K MaletAustraliaStephen Shaw RENEWAL
Maisha X FigeroaCanadaIvan Magalhaes UNQUALIFIED
Ricardo B MorascaAustraliaIoni Bowcher NEW
Arvin H TollnerFranceStephen Shaw PROPOSAL
James R InouyeCanadaXuxue Feng RENEWAL
Jefferson X FlosiGermanyStephen Shaw RENEWAL
Ricardo M IturbideUnited KingdomIoni Bowcher QUALIFIED
Francesco S RimCanadaIvan Magalhaes UNQUALIFIED
Isabel F CaudyFranceXuxue Feng QUALIFIED
Adams L AlbaresSpainXuxue Feng PROPOSAL
Greenwood T FerenczCanadaStephen Shaw NEW
Morrow Y FerenczFranceOnyama Limba PROPOSAL
Deepesh B StockhamIndiaAnna Fali QUALIFIED
Morrow A GauchoJapanAsiya Javayant NEW
Arvin E BologniaFranceOnyama Limba NEW
Antonio U OstroskyIndiaIoni Bowcher NEW
Faith Z KuskoSpainOnyama Limba NEGOTIATION
Isabel Z NestleCanadaIvan Magalhaes RENEWAL
Aika I RulapaughAustraliaAnna Fali NEGOTIATION
Arvin W ShinkoBrazilAnna Fali NEGOTIATION
Kaitlin N TollnerFranceAnna Fali QUALIFIED
Julie Y MacleadAustraliaIoni Bowcher PROPOSAL
David K NickaUnited KingdomAmy Elsner NEGOTIATION
Smith Z BologniaCanadaIoni Bowcher UNQUALIFIED
Mujtaba C ButtSpainIvan Magalhaes NEW
Frozen Columns
Name
Maisha H Darakjy
Johnson N Caudy
Octavia S Morasca
Kadeem P Flosi
Mujtaba X Gillian
Munro R Maclead
Juan Y Bowley
Wickens A Shinko
Leon S Kolmetz
Wickens T Briddick
Claire R Tollner
Murillo G Caudy
Jefferson N Kusko
Greenwood I Bowley
Mayumi G Caudy
Juan P Kolmetz
Wickens S Malet
James W Flosi
Octavia J Poquette
Maisha X Venere
Aditya F Paprocki
Juan W Bowley
Rodrigues Q Caudy
Misaki K Butt
Jones A Slusarski
Misaki E Saylors
Munro C Oldroyd
Misaki E Wieser
Emily F Amigon
Octavia P Wieser
David T Bolognia
Deepesh D Darakjy
Nicolas W Waycott
Ivar H Vocelka
Murillo S Oldroyd
Izzy K Nicka
Johnson W Darakjy
Antonio U Sergi
Morrow Z Albares
Greenwood E Malet
Costa A Rulapaugh
Wickens D Stockham
Kaitlin V Malet
Jefferson P Chui
Antonio Q Waycott
Kadeem S Rim
Smith P Ostrosky
Maria Q Kolmetz
Murillo K Shinko
Smith U Flosi
IdCountryDate
1000United Kingdom2024-04-20
1001Italy2024-04-09
1002Australia2024-03-29
1003Argentina2024-03-29
1004Canada2024-04-07
1005Russia2024-04-15
1006India2024-04-05
1007Russia2024-03-26
1008Japan2024-03-31
1009Argentina2024-03-29
1010Canada2024-04-04
1011India2024-04-21
1012United Kingdom2024-04-21
1013Argentina2024-04-19
1014India2024-04-04
1015Italy2024-03-29
1016Germany2024-04-20
1017Brazil2024-04-21
1018United Kingdom2024-04-12
1019Spain2024-04-02
1020Germany2024-04-08
1021Argentina2024-04-08
1022Spain2024-04-02
1023Brazil2024-04-17
1024United Kingdom2024-04-20
1025France2024-04-04
1026Germany2024-04-11
1027Spain2024-03-30
1028India2024-04-09
1029Italy2024-04-20
1030Italy2024-04-14
1031Italy2024-04-16
1032Spain2024-03-26
1033France2024-04-23
1034Italy2024-04-02
1035Spain2024-04-24
1036Germany2024-04-09
1037Spain2024-04-11
1038India2024-04-09
1039United Kingdom2024-04-10
1040Italy2024-03-29
1041Germany2024-04-22
1042India2024-04-03
1043Argentina2024-04-10
1044India2024-03-27
1045France2024-04-10
1046Brazil2024-04-21
1047Russia2024-03-27
1048Argentina2024-03-31
1049Spain2024-03-30

On-Demand Data

NameIdCountryDate
Cody S Perin1000Argentina2024-04-10
Leon S Waycott1001Germany2024-04-13
Jeanfrancois A Waycott1002Germany2024-04-24
Wickens A Whobrey1003India2024-04-12
Clifford N Albares1004India2024-04-07
Antonio T Morasca1005Japan2024-04-19
Darci Z Albares1006United Kingdom2024-04-13
Ivar G Bolognia1007Canada2024-04-11
Deepesh T Whobrey1008Argentina2024-03-30
Jennifer H Iturbide1009United Kingdom2024-04-01
Nicolas S Maclead1010Australia2024-04-04
Jennifer O Malet1011Brazil2024-03-30
Murillo Q Doe1012France2024-04-05
Antonio R Gillian1013Canada2024-04-15
Stacey I Shinko1014Argentina2024-04-13
James H Caldarera1015India2024-04-14
Maria N Stenseth1016Spain2024-04-13
Cody T Bowley1017Russia2024-04-02
Juan T Sergi1018Spain2024-04-11
Izzy D Kolmetz1019Germany2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria G MaletFranceBernardo Dominic PROPOSAL
Claire R AmigonAustraliaStephen Shaw QUALIFIED
Johnson P ChuiJapanAmy Elsner RENEWAL
Jefferson N FlosiItalyAmy Elsner QUALIFIED
Maisha X OldroydUnited KingdomBernardo Dominic RENEWAL
Maisha M RimFranceStephen Shaw UNQUALIFIED
Clifford R GauchoSpainElwin Sharvill RENEWAL
Chavez V MaletFranceAmy Elsner NEGOTIATION
Alejandro Z InouyeItalyAsiya Javayant NEGOTIATION
Jennifer L WaycottAustraliaIvan Magalhaes QUALIFIED
Faith H FlosiJapanElwin Sharvill UNQUALIFIED
Jones T VocelkaItalyAsiya Javayant PROPOSAL
Nicolas O KolmetzIndiaIvan Magalhaes UNQUALIFIED
Johnson A WieserUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois X ChuiItalyIoni Bowcher NEGOTIATION
Isabel Z BologniaGermanyAmy Elsner PROPOSAL
Emily S MacleadAustraliaOnyama Limba NEGOTIATION
David Z ShinkoUnited KingdomAmy Elsner PROPOSAL
Ricardo D StockhamJapanXuxue Feng NEW
Johnson G DarakjyBrazilOnyama Limba NEW
Izzy M MorascaSpainIoni Bowcher QUALIFIED
Greenwood P SchemmerJapanBernardo Dominic NEW
Julie V KolmetzItalyXuxue Feng RENEWAL
Faith F GillianArgentinaBernardo Dominic RENEWAL
Aruna O WaycottIndiaAsiya Javayant RENEWAL
Jeanfrancois R DilliardGermanyElwin Sharvill QUALIFIED
Jefferson M KolmetzGermanyIvan Magalhaes NEW
Jones R NickaArgentinaElwin Sharvill NEW
Jeanfrancois S InouyeAustraliaElwin Sharvill RENEWAL
Izzy I FollerFranceXuxue Feng UNQUALIFIED
Chavez Q StockhamBrazilBernardo Dominic RENEWAL
Sinclair Y FerenczBrazilElwin Sharvill PROPOSAL
Emily S FlosiIndiaBernardo Dominic UNQUALIFIED
Murillo Q ChuiIndiaAsiya Javayant NEGOTIATION
Emily I GillianUnited KingdomAnna Fali PROPOSAL
Rodrigues W NickaArgentinaIvan Magalhaes NEW
Nicolas I MorascaCanadaAmy Elsner PROPOSAL
Cody S SergiRussiaIvan Magalhaes NEGOTIATION
Kadeem C GarufiRussiaAnna Fali NEW
Aditya R GlickGermanyAsiya Javayant 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>