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
Clifford I RulapaughIndiaAmy Elsner QUALIFIED
Darci B DoeUnited KingdomAnna Fali NEGOTIATION
Ashley N ShinkoJapanAmy Elsner NEGOTIATION
Salvatore O BologniaJapanAnna Fali NEGOTIATION
Wickens M PerinItalyStephen Shaw QUALIFIED
Mujtaba F CaudyIndiaIvan Magalhaes UNQUALIFIED
Antonio U RulapaughGermanyBernardo Dominic NEW
Isabel A FollerIndiaStephen Shaw NEW
Munro R RulapaughItalyXuxue Feng NEGOTIATION
Tony Q StockhamGermanyAsiya Javayant NEW
Ricardo S NestleCanadaAsiya Javayant NEGOTIATION
Nicolas C CaudyCanadaElwin Sharvill NEW
Isabel F SergiItalyBernardo Dominic QUALIFIED
Silvio A StensethUnited KingdomElwin Sharvill RENEWAL
Cody B BologniaArgentinaIvan Magalhaes NEW
Costa V FigeroaIndiaAnna Fali RENEWAL
Ashley P WieserArgentinaElwin Sharvill NEGOTIATION
Kadeem U RimItalyOnyama Limba NEGOTIATION
Izzy B RimSpainAnna Fali UNQUALIFIED
Silvio K MarrierCanadaBernardo Dominic UNQUALIFIED
Aditya D GillianAustraliaIvan Magalhaes UNQUALIFIED
Tony B FerenczJapanAmy Elsner RENEWAL
Darci A FollerCanadaBernardo Dominic RENEWAL
Cody Q MaletJapanElwin Sharvill RENEWAL
Alejandro K GlickIndiaIvan Magalhaes UNQUALIFIED
Maria P ButtIndiaAnna Fali UNQUALIFIED
Aditya V RulapaughRussiaIvan Magalhaes UNQUALIFIED
Juan V WieserCanadaIvan Magalhaes RENEWAL
Leon C TollnerJapanXuxue Feng PROPOSAL
Alejandro B AlbaresItalyAnna Fali PROPOSAL
Smith X ShinkoIndiaOnyama Limba NEW
Jennifer T StensethGermanyIoni Bowcher QUALIFIED
Adams E SchemmerUnited KingdomBernardo Dominic PROPOSAL
Aika D BriddickRussiaOnyama Limba RENEWAL
Johnson R VocelkaItalyAnna Fali NEGOTIATION
Mayumi F StockhamBrazilAsiya Javayant QUALIFIED
Claire J OstroskySpainAmy Elsner PROPOSAL
Mayumi I DarakjyRussiaElwin Sharvill UNQUALIFIED
Smith L ChuiItalyAnna Fali NEGOTIATION
Adams Z WaycottJapanElwin Sharvill RENEWAL
Leon K InouyeIndiaIvan Magalhaes NEGOTIATION
Jennifer R ChuiIndiaXuxue Feng QUALIFIED
Cody F ShinkoAustraliaBernardo Dominic UNQUALIFIED
Misaki V FollerItalyElwin Sharvill NEGOTIATION
Leon H WhobreyRussiaAnna Fali RENEWAL
Chavez D ChuiArgentinaXuxue Feng UNQUALIFIED
Kaitlin L WieserUnited KingdomAmy Elsner UNQUALIFIED
Wickens T SlusarskiFranceXuxue Feng QUALIFIED
Misaki M WhobreyUnited KingdomStephen Shaw NEW
Chavez C AmigonAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones R StensethSpainIoni Bowcher RENEWAL
Cody J SchemmerUnited KingdomAnna Fali PROPOSAL
Johnson N CampainCanadaIvan Magalhaes QUALIFIED
Rodrigues H ButtUnited KingdomXuxue Feng RENEWAL
Francesco I ChuiCanadaBernardo Dominic RENEWAL
Costa N VocelkaArgentinaAnna Fali NEGOTIATION
Sinclair S SergiArgentinaOnyama Limba QUALIFIED
Faith D SlusarskiItalyElwin Sharvill UNQUALIFIED
Arvin G NickaBrazilElwin Sharvill NEW
Aika M SlusarskiRussiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy V RulapaughArgentina2024-04-11Truhlar And Truhlar Attys PROPOSAL82Onyama Limba
1001Jeanfrancois C InouyeUnited Kingdom2024-04-05Feltz Printing Service RENEWAL66Stephen Shaw
1002Isabel K ButtUnited Kingdom2024-03-20Chapman, Ross E Esq RENEWAL45Anna Fali
1003Jones A GauchoSpain2024-04-14Chanay, Jeffrey A Esq PROPOSAL5Ioni Bowcher
1004Mujtaba X KolmetzItaly2024-04-10Morlong Associates NEGOTIATION51Xuxue Feng
1005Octavia Y StensethItaly2024-04-03Printing Dimensions QUALIFIED15Amy Elsner
1006Darci S GarufiUnited Kingdom2024-04-15Feltz Printing Service PROPOSAL43Asiya Javayant
1007Maria N ChuiItaly2024-04-08Buckley Miller Wright QUALIFIED13Ioni Bowcher
1008Jones M CaudyBrazil2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED55Ivan Magalhaes
1009Leja X RutaRussia2024-04-16Morlong Associates NEGOTIATION75Stephen Shaw
1010David P PaprockiItaly2024-03-31Chemel, James L Cpa NEGOTIATION6Asiya Javayant
1011Sinclair Q InouyeGermany2024-03-29King, Christopher A Esq NEW17Ivan Magalhaes
1012Jeanfrancois R SlusarskiArgentina2024-04-16King, Christopher A Esq UNQUALIFIED7Amy Elsner
1013Wickens N SchemmerRussia2024-03-22Commercial Press PROPOSAL88Onyama Limba
1014Maria V StockhamIndia2024-03-20Morlong Associates QUALIFIED87Bernardo Dominic
1015Tony R VocelkaRussia2024-04-10Rangoni Of Florence NEGOTIATION79Bernardo Dominic
1016Kaitlin X InouyeFrance2024-03-27Printing Dimensions QUALIFIED9Anna Fali
1017Stacey U SchemmerRussia2024-04-02Benton, John B Jr NEW55Anna Fali
1018Leon S SaylorsItaly2024-04-14Buckley Miller Wright NEW8Amy Elsner
1019Ashley Z ChuiBrazil2024-03-30Buckley Miller Wright NEGOTIATION21Bernardo Dominic
1020Aika H PoquetteGermany2024-04-15Truhlar And Truhlar Attys UNQUALIFIED76Anna Fali
1021Alejandro N VenereSpain2024-03-25Feiner Bros QUALIFIED36Ivan Magalhaes
1022Izzy K NestleIndia2024-04-16Feiner Bros UNQUALIFIED94Bernardo Dominic
1023Cody V NickaFrance2024-03-20Feiner Bros NEGOTIATION89Xuxue Feng
1024Costa L CaldareraBrazil2024-03-29Buckley Miller Wright NEGOTIATION5Ivan Magalhaes
1025Smith C IturbideRussia2024-04-01Printing Dimensions PROPOSAL0Amy Elsner
1026Maisha J GlickAustralia2024-03-26King, Christopher A Esq NEW63Onyama Limba
1027Mayumi C IturbideGermany2024-04-01Rangoni Of Florence RENEWAL42Stephen Shaw
1028Leon E StockhamIndia2024-04-08King, Christopher A Esq NEW28Ioni Bowcher
1029Juan D KolmetzCanada2024-04-03Feltz Printing Service PROPOSAL28Anna Fali
1030Murillo D OstroskyRussia2024-04-15Feiner Bros NEGOTIATION58Onyama Limba
1031Murillo O GillianBrazil2024-04-06Benton, John B Jr UNQUALIFIED13Onyama Limba
1032Kadeem Q GarufiGermany2024-04-14Morlong Associates UNQUALIFIED17Elwin Sharvill
1033Jefferson W SaylorsGermany2024-04-11Benton, John B Jr PROPOSAL11Elwin Sharvill
1034Nicolas L KuskoGermany2024-03-25Rangoni Of Florence PROPOSAL39Onyama Limba
1035James T KuskoSpain2024-04-17Rangoni Of Florence NEGOTIATION93Xuxue Feng
1036Stacey L FlosiUnited Kingdom2024-03-23Benton, John B Jr PROPOSAL59Elwin Sharvill
1037Jones S RoysterItaly2024-04-17Feiner Bros NEGOTIATION19Bernardo Dominic
1038Maria I FerenczIndia2024-03-25King, Christopher A Esq NEW12Elwin Sharvill
1039Silvio J SergiSpain2024-03-23Rangoni Of Florence RENEWAL17Ivan Magalhaes
1040Izzy X RutaArgentina2024-04-15Buckley Miller Wright RENEWAL12Ioni Bowcher
1041Greenwood T PaprockiIndia2024-04-16Truhlar And Truhlar Attys UNQUALIFIED6Ioni Bowcher
1042Kaitlin D KolmetzFrance2024-04-17Chapman, Ross E Esq NEW71Asiya Javayant
1043Wickens O FigeroaIndia2024-04-17Morlong Associates PROPOSAL62Amy Elsner
1044Octavia N PaprockiAustralia2024-03-28Truhlar And Truhlar Attys NEGOTIATION69Bernardo Dominic
1045Adams N WaycottRussia2024-03-30Printing Dimensions UNQUALIFIED77Ioni Bowcher
1046Faith B CaldareraRussia2024-04-16Morlong Associates NEGOTIATION86Asiya Javayant
1047Clifford W FigeroaRussia2024-03-30Benton, John B Jr RENEWAL89Asiya Javayant
1048Maisha A MaletCanada2024-04-01King, Christopher A Esq NEGOTIATION80Ivan Magalhaes
1049Leja T FlosiUnited Kingdom2024-03-31Chanay, Jeffrey A Esq PROPOSAL28Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith X DilliardSpainXuxue Feng NEW
Tony O DarakjyCanadaIvan Magalhaes PROPOSAL
Chavez M PaprockiSpainIvan Magalhaes PROPOSAL
Emily O RulapaughCanadaAsiya Javayant RENEWAL
Izzy G KolmetzUnited KingdomBernardo Dominic NEW
Salvatore S KolmetzIndiaBernardo Dominic RENEWAL
Aruna W MorascaBrazilAsiya Javayant RENEWAL
Rodrigues B SergiBrazilAsiya Javayant PROPOSAL
Silvio J DoeItalyIoni Bowcher UNQUALIFIED
Misaki X WieserUnited KingdomOnyama Limba RENEWAL
Stacey H RutaFranceAmy Elsner RENEWAL
Darci Y IturbideRussiaBernardo Dominic RENEWAL
Silvio B MaletSpainAsiya Javayant PROPOSAL
Antonio J RoysterUnited KingdomXuxue Feng QUALIFIED
Mujtaba F AmigonAustraliaOnyama Limba UNQUALIFIED
Cody Z NickaJapanIvan Magalhaes QUALIFIED
Nicolas K ButtSpainXuxue Feng PROPOSAL
Octavia S BowleyUnited KingdomStephen Shaw NEW
Ashley O SaylorsArgentinaStephen Shaw PROPOSAL
Leon K StensethCanadaIoni Bowcher RENEWAL
Ivar A StensethJapanElwin Sharvill QUALIFIED
Salvatore H MarrierCanadaOnyama Limba NEGOTIATION
Kadeem M WieserSpainIoni Bowcher RENEWAL
David W SergiFranceBernardo Dominic QUALIFIED
Juan N ChuiUnited KingdomStephen Shaw RENEWAL
James I RoysterRussiaAnna Fali UNQUALIFIED
Aika N DoeIndiaAsiya Javayant PROPOSAL
Silvio M CampainFranceBernardo Dominic RENEWAL
Antonio W ChuiArgentinaIoni Bowcher PROPOSAL
Johnson X ButtJapanXuxue Feng NEW
David C BologniaSpainIoni Bowcher QUALIFIED
Mayumi Y BowleyCanadaBernardo Dominic RENEWAL
Octavia S RulapaughArgentinaAmy Elsner RENEWAL
Faith Y DilliardCanadaIoni Bowcher NEW
Maisha Z SchemmerSpainXuxue Feng PROPOSAL
Octavia Y RutaItalyXuxue Feng PROPOSAL
Chavez T TollnerJapanAmy Elsner NEGOTIATION
Morrow O InouyeSpainIvan Magalhaes RENEWAL
Chavez Y StockhamRussiaAnna Fali QUALIFIED
Emily M BowleyUnited KingdomAsiya Javayant QUALIFIED
Ashley C MaletFranceElwin Sharvill QUALIFIED
Morrow D GarufiItalyBernardo Dominic PROPOSAL
Emily D RutaIndiaAnna Fali NEW
Maria I MacleadAustraliaStephen Shaw NEGOTIATION
Ashley Q IturbideJapanAmy Elsner QUALIFIED
James E FlosiItalyIoni Bowcher PROPOSAL
Ricardo A GillianCanadaStephen Shaw PROPOSAL
Stacey T DilliardSpainAmy Elsner UNQUALIFIED
Faith K CaudySpainAnna Fali QUALIFIED
Emily U AlbaresBrazilAnna Fali PROPOSAL
Frozen Columns
Name
Ashley I Glick
Salvatore N Ruta
Leja V Royster
Mayumi N Caldarera
Cody J Wieser
Cody I Butt
Morrow U Bolognia
Maria G Tollner
Morrow S Figeroa
Jones N Sergi
Aruna Y Doe
Stacey P Nestle
Aditya R Gaucho
Claire V Doe
Izzy U Schemmer
Wickens F Rim
Costa R Paprocki
Jones Y Chui
Silvio D Sergi
Silvio W Sergi
Arvin M Butt
Jefferson O Foller
Sinclair Z Whobrey
Izzy T Foller
Aruna X Wieser
Francesco Y Stockham
Morrow I Schemmer
Antonio X Slusarski
Rodrigues Y Kusko
Kadeem T Tollner
Ricardo D Bolognia
Izzy J Paprocki
David H Sergi
Leon K Inouye
Sinclair A Darakjy
Aruna Q Royster
Francesco L Figeroa
Clifford N Bowley
Morrow R Vocelka
Aruna S Campain
Kadeem N Figeroa
Nicolas G Caldarera
Wickens A Butt
Cody Q Oldroyd
Emily W Shinko
Johnson D Kusko
Deepesh Y Ruta
Salvatore M Briddick
Tony U Maclead
Aika T Malet
IdCountryDate
1000United Kingdom2024-03-31
1001Japan2024-04-04
1002Germany2024-04-09
1003Argentina2024-04-10
1004Argentina2024-04-09
1005Russia2024-03-30
1006Japan2024-04-11
1007Germany2024-04-18
1008Italy2024-03-24
1009Spain2024-04-18
1010United Kingdom2024-04-16
1011France2024-04-02
1012Argentina2024-03-25
1013Japan2024-04-16
1014Argentina2024-04-03
1015Argentina2024-04-09
1016Brazil2024-03-20
1017Brazil2024-03-31
1018India2024-04-11
1019Canada2024-04-02
1020Canada2024-04-09
1021Italy2024-03-25
1022Italy2024-04-14
1023Germany2024-04-16
1024Spain2024-04-02
1025Canada2024-04-01
1026Australia2024-04-13
1027Italy2024-04-06
1028Brazil2024-03-31
1029Australia2024-04-16
1030Russia2024-04-10
1031Japan2024-04-15
1032Japan2024-04-03
1033Argentina2024-03-25
1034Canada2024-04-04
1035Russia2024-04-03
1036Italy2024-04-02
1037Japan2024-04-09
1038France2024-04-02
1039Germany2024-03-24
1040Italy2024-04-16
1041Australia2024-04-02
1042France2024-04-05
1043India2024-03-31
1044Italy2024-03-24
1045Argentina2024-04-18
1046France2024-03-24
1047Argentina2024-03-30
1048France2024-04-13
1049Australia2024-04-18

On-Demand Data

NameIdCountryDate
Misaki A Foller1000Argentina2024-04-05
Murillo V Maclead1001Spain2024-04-18
Izzy F Gillian1002United Kingdom2024-04-16
Silvio X Briddick1003Germany2024-04-07
Adams D Ferencz1004Germany2024-04-08
Munro Y Figeroa1005United Kingdom2024-04-14
Darci F Nicka1006Spain2024-04-07
Julie Q Poquette1007Germany2024-03-20
Silvio X Saylors1008Australia2024-03-29
Ricardo B Schemmer1009France2024-03-27
Clifford Q Slusarski1010United Kingdom2024-03-31
Kadeem A Shinko1011Spain2024-04-07
Cody G Stenseth1012Argentina2024-04-06
Jones E Rulapaugh1013Russia2024-04-17
Silvio V Sergi1014Canada2024-04-03
Mujtaba D Vocelka1015Brazil2024-04-10
Jeanfrancois Z Slusarski1016Canada2024-04-04
Kaitlin N Butt1017United Kingdom2024-04-07
Munro N Shinko1018Canada2024-04-16
Mayumi D Ferencz1019Australia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones G RoysterSpainIoni Bowcher UNQUALIFIED
Alejandro K GarufiItalyBernardo Dominic UNQUALIFIED
Maisha R FlosiBrazilOnyama Limba NEGOTIATION
Ricardo T MaletAustraliaAnna Fali UNQUALIFIED
Izzy X WaycottUnited KingdomStephen Shaw UNQUALIFIED
Claire K SaylorsFranceAnna Fali PROPOSAL
James U CaudyFranceIoni Bowcher NEW
Aika S MaletArgentinaIvan Magalhaes RENEWAL
Sinclair I ChuiRussiaOnyama Limba NEW
Aika N SaylorsIndiaElwin Sharvill RENEWAL
Sinclair R NickaArgentinaBernardo Dominic RENEWAL
Jefferson I OldroydRussiaAnna Fali QUALIFIED
Julie C PoquetteFranceBernardo Dominic PROPOSAL
Antonio P RoysterArgentinaXuxue Feng UNQUALIFIED
Morrow C KolmetzRussiaStephen Shaw UNQUALIFIED
Kadeem F MacleadGermanyStephen Shaw QUALIFIED
Misaki S DarakjyItalyAmy Elsner QUALIFIED
Maria U WhobreyAustraliaAsiya Javayant PROPOSAL
Aika Z FigeroaArgentinaXuxue Feng NEW
Munro R DoeItalyStephen Shaw PROPOSAL
Mayumi R ShinkoIndiaStephen Shaw NEW
Kaitlin Y WaycottFranceXuxue Feng PROPOSAL
Mujtaba S OldroydArgentinaOnyama Limba RENEWAL
Mujtaba X AmigonAustraliaAnna Fali NEW
Aditya H CaudyRussiaAnna Fali NEGOTIATION
Costa R MaletItalyStephen Shaw NEGOTIATION
Julie R InouyeGermanyStephen Shaw PROPOSAL
Ashley Z MorascaGermanyIoni Bowcher NEGOTIATION
Johnson R MorascaCanadaAnna Fali NEW
Izzy T MarrierFranceXuxue Feng RENEWAL
Munro H ShinkoArgentinaStephen Shaw NEGOTIATION
Aditya H NestleArgentinaStephen Shaw RENEWAL
Jennifer N FerenczArgentinaXuxue Feng PROPOSAL
Francesco E RutaIndiaStephen Shaw UNQUALIFIED
Juan Y GauchoAustraliaIoni Bowcher UNQUALIFIED
Costa Y FerenczSpainAsiya Javayant PROPOSAL
Tony R WieserRussiaAmy Elsner NEGOTIATION
Morrow W RimUnited KingdomStephen Shaw QUALIFIED
Ashley A WaycottFranceElwin Sharvill RENEWAL
Izzy I GlickAustraliaIoni Bowcher PROPOSAL

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