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
Wickens M MaletSpainElwin Sharvill UNQUALIFIED
Leja V MacleadGermanyAsiya Javayant RENEWAL
Jefferson M CampainIndiaIoni Bowcher QUALIFIED
Leja X ChuiBrazilStephen Shaw UNQUALIFIED
Aditya B IturbideJapanAnna Fali PROPOSAL
Tony P WaycottBrazilAmy Elsner PROPOSAL
Jennifer L WieserAustraliaOnyama Limba RENEWAL
Jefferson V GlickAustraliaAnna Fali PROPOSAL
Wickens S WhobreyGermanyXuxue Feng QUALIFIED
Munro O IturbideIndiaIoni Bowcher RENEWAL
Jones F StensethBrazilElwin Sharvill NEGOTIATION
Morrow S DoeRussiaAsiya Javayant PROPOSAL
Greenwood O RulapaughItalyXuxue Feng UNQUALIFIED
Stacey V CaldareraAustraliaAnna Fali NEGOTIATION
Kaitlin Y FollerBrazilXuxue Feng NEW
Jones Y WaycottGermanyAsiya Javayant UNQUALIFIED
Leon A FigeroaRussiaIoni Bowcher RENEWAL
Juan H SaylorsJapanXuxue Feng QUALIFIED
Aruna V ChuiAustraliaAsiya Javayant UNQUALIFIED
Costa L GarufiJapanBernardo Dominic NEGOTIATION
Mayumi M GarufiSpainOnyama Limba QUALIFIED
Julie L NestleSpainIoni Bowcher PROPOSAL
Stacey Y WhobreyJapanOnyama Limba RENEWAL
Francesco M BriddickJapanIvan Magalhaes PROPOSAL
Faith J ChuiCanadaStephen Shaw NEGOTIATION
Adams R BologniaItalyXuxue Feng RENEWAL
Aruna R WhobreyFranceOnyama Limba NEGOTIATION
Costa Y DarakjyIndiaElwin Sharvill NEW
Ashley P DarakjyGermanyElwin Sharvill RENEWAL
Misaki X RulapaughRussiaIvan Magalhaes RENEWAL
Alejandro C FerenczItalyElwin Sharvill UNQUALIFIED
Arvin Y FerenczAustraliaElwin Sharvill NEW
Murillo M PaprockiItalyElwin Sharvill NEW
Emily A StockhamSpainStephen Shaw NEGOTIATION
Munro U OldroydBrazilIoni Bowcher NEGOTIATION
Johnson Q GlickAustraliaAmy Elsner NEGOTIATION
Ivar V OstroskyItalyAnna Fali UNQUALIFIED
Faith B DilliardGermanyAmy Elsner QUALIFIED
Claire Z VenereSpainBernardo Dominic PROPOSAL
Jennifer G SergiFranceAsiya Javayant QUALIFIED
Tony K FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Faith V GarufiFranceStephen Shaw PROPOSAL
Johnson D WhobreyArgentinaStephen Shaw NEW
Nicolas N DilliardUnited KingdomXuxue Feng QUALIFIED
Aditya F FollerJapanOnyama Limba QUALIFIED
Murillo B KolmetzCanadaAnna Fali RENEWAL
Munro J AlbaresCanadaXuxue Feng UNQUALIFIED
Jones W StensethCanadaBernardo Dominic UNQUALIFIED
Izzy O GauchoArgentinaBernardo Dominic RENEWAL
Aruna U SergiAustraliaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez X KuskoUnited KingdomAmy Elsner NEGOTIATION
Ricardo F StockhamItalyOnyama Limba QUALIFIED
Alejandro F PaprockiRussiaAnna Fali QUALIFIED
Antonio B WaycottFranceAnna Fali QUALIFIED
Kadeem F SergiRussiaBernardo Dominic NEGOTIATION
Claire K KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba W FollerAustraliaAnna Fali PROPOSAL
Isabel A KolmetzArgentinaAmy Elsner NEGOTIATION
Mayumi F WieserIndiaAmy Elsner QUALIFIED
Greenwood M FollerRussiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer S ShinkoItaly2024-04-17Chanay, Jeffrey A Esq NEGOTIATION0Bernardo Dominic
1001Smith R TollnerCanada2024-04-03Morlong Associates NEW24Asiya Javayant
1002Leon T WaycottArgentina2024-04-23Rangoni Of Florence QUALIFIED34Elwin Sharvill
1003Francesco T SergiBrazil2024-04-02Chapman, Ross E Esq NEGOTIATION52Ioni Bowcher
1004James Q CaudyGermany2024-04-14Rangoni Of Florence NEGOTIATION49Asiya Javayant
1005Maria E GarufiSpain2024-03-28Feiner Bros RENEWAL20Stephen Shaw
1006Ricardo R KolmetzArgentina2024-04-09Rangoni Of Florence NEW65Stephen Shaw
1007Arvin U KuskoUnited Kingdom2024-04-20Chemel, James L Cpa QUALIFIED66Amy Elsner
1008Leja I FollerCanada2024-04-24Morlong Associates NEGOTIATION23Xuxue Feng
1009Claire D StockhamUnited Kingdom2024-03-31Rangoni Of Florence PROPOSAL74Xuxue Feng
1010Jones Y CampainRussia2024-04-20Feiner Bros UNQUALIFIED80Amy Elsner
1011Kadeem U GauchoUnited Kingdom2024-04-16Morlong Associates PROPOSAL27Stephen Shaw
1012Emily C StockhamBrazil2024-04-17Benton, John B Jr PROPOSAL71Amy Elsner
1013Darci I PoquetteArgentina2024-04-05Morlong Associates NEW23Anna Fali
1014Silvio H DarakjySpain2024-04-25Benton, John B Jr PROPOSAL81Asiya Javayant
1015Julie Q VocelkaFrance2024-04-17Chanay, Jeffrey A Esq NEGOTIATION9Stephen Shaw
1016Murillo L AlbaresUnited Kingdom2024-04-01Rangoni Of Florence NEW51Anna Fali
1017Greenwood H CaldareraJapan2024-04-13Feiner Bros NEW75Amy Elsner
1018Nicolas E DarakjyJapan2024-04-17Chemel, James L Cpa NEW61Asiya Javayant
1019Kadeem X NestleRussia2024-03-30Rangoni Of Florence RENEWAL35Ivan Magalhaes
1020Murillo E MacleadSpain2024-04-22Rangoni Of Florence QUALIFIED79Elwin Sharvill
1021Isabel Z StockhamGermany2024-04-11Printing Dimensions RENEWAL84Ivan Magalhaes
1022Murillo E DilliardGermany2024-03-28Buckley Miller Wright UNQUALIFIED64Onyama Limba
1023Leon F WhobreyItaly2024-04-21Truhlar And Truhlar Attys NEW32Elwin Sharvill
1024Jefferson W NestleJapan2024-04-08King, Christopher A Esq QUALIFIED48Elwin Sharvill
1025Nicolas C AmigonBrazil2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED26Anna Fali
1026Darci U GillianAustralia2024-04-10Rangoni Of Florence UNQUALIFIED73Stephen Shaw
1027Silvio X TollnerUnited Kingdom2024-04-23Buckley Miller Wright NEGOTIATION49Ivan Magalhaes
1028Nicolas N CaldareraFrance2024-04-24Commercial Press RENEWAL51Stephen Shaw
1029Morrow L SchemmerAustralia2024-04-20Benton, John B Jr RENEWAL48Ioni Bowcher
1030Adams Z ButtAustralia2024-04-16Feltz Printing Service QUALIFIED82Xuxue Feng
1031Darci M PoquetteUnited Kingdom2024-03-31Rousseaux, Michael Esq PROPOSAL83Amy Elsner
1032Maisha Y RimIndia2024-04-12Truhlar And Truhlar Attys PROPOSAL72Ivan Magalhaes
1033Stacey N WieserItaly2024-03-28Truhlar And Truhlar Attys NEW52Bernardo Dominic
1034Antonio C NestleItaly2024-04-14King, Christopher A Esq UNQUALIFIED46Xuxue Feng
1035Cody G SlusarskiGermany2024-04-08Buckley Miller Wright NEW91Asiya Javayant
1036Jefferson T BologniaBrazil2024-04-21Commercial Press QUALIFIED16Elwin Sharvill
1037Izzy J GarufiGermany2024-04-14Chapman, Ross E Esq RENEWAL29Amy Elsner
1038Maisha U ButtUnited Kingdom2024-04-09Buckley Miller Wright PROPOSAL43Elwin Sharvill
1039Francesco B DilliardAustralia2024-03-30Chapman, Ross E Esq NEGOTIATION63Ivan Magalhaes
1040Maisha A CaudyCanada2024-04-14Chapman, Ross E Esq UNQUALIFIED76Ivan Magalhaes
1041Octavia K InouyeGermany2024-04-11Feiner Bros UNQUALIFIED57Bernardo Dominic
1042Maisha G BologniaBrazil2024-04-25Printing Dimensions NEGOTIATION27Elwin Sharvill
1043David Z GauchoCanada2024-04-05Dorl, James J Esq NEGOTIATION90Ioni Bowcher
1044Aika Z RutaGermany2024-04-17Dorl, James J Esq UNQUALIFIED80Stephen Shaw
1045Isabel N KuskoJapan2024-04-22Commercial Press NEGOTIATION24Ivan Magalhaes
1046Francesco H FollerRussia2024-04-21Printing Dimensions UNQUALIFIED21Anna Fali
1047Arvin T FerenczGermany2024-04-11Rousseaux, Michael Esq RENEWAL70Asiya Javayant
1048Antonio A BologniaSpain2024-04-17Feltz Printing Service PROPOSAL4Anna Fali
1049Antonio O KuskoJapan2024-04-09Commercial Press NEW96Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Salvatore D MacleadFranceIvan Magalhaes RENEWAL
Clifford P PaprockiJapanIvan Magalhaes NEGOTIATION
Ricardo C FlosiIndiaOnyama Limba RENEWAL
Alejandro D RoysterAustraliaStephen Shaw NEW
Stacey I VocelkaCanadaStephen Shaw RENEWAL
Adams K WieserSpainAnna Fali PROPOSAL
Izzy C AmigonAustraliaOnyama Limba NEW
Adams F RimUnited KingdomXuxue Feng RENEWAL
Claire G TollnerUnited KingdomElwin Sharvill NEW
Mujtaba U RutaGermanyAsiya Javayant UNQUALIFIED
Arvin Q MorascaIndiaIoni Bowcher QUALIFIED
Johnson H DoeSpainIoni Bowcher UNQUALIFIED
Murillo J KolmetzItalyBernardo Dominic RENEWAL
Clifford Z CaudyIndiaAsiya Javayant UNQUALIFIED
David D ChuiArgentinaBernardo Dominic NEW
Clifford H PerinCanadaOnyama Limba UNQUALIFIED
Rodrigues N GlickUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem G DoeItalyOnyama Limba PROPOSAL
Rodrigues F OstroskyGermanyElwin Sharvill RENEWAL
Ricardo Q OldroydSpainIvan Magalhaes RENEWAL
Nicolas O BriddickSpainAmy Elsner NEGOTIATION
James H SchemmerArgentinaOnyama Limba RENEWAL
Leja D StensethIndiaStephen Shaw PROPOSAL
Ashley T ButtRussiaIvan Magalhaes NEW
Misaki O MarrierSpainIvan Magalhaes PROPOSAL
Ricardo B WhobreyFranceIoni Bowcher NEW
Alejandro Z WhobreyAustraliaIvan Magalhaes NEW
Johnson M WaycottCanadaAmy Elsner RENEWAL
Morrow I SlusarskiArgentinaAmy Elsner NEW
Juan G BologniaSpainAsiya Javayant UNQUALIFIED
Kaitlin R SergiJapanBernardo Dominic PROPOSAL
Julie V DarakjySpainOnyama Limba PROPOSAL
David V RimCanadaIoni Bowcher QUALIFIED
Mujtaba C WieserJapanAsiya Javayant QUALIFIED
Leja N MaletRussiaBernardo Dominic QUALIFIED
Jefferson I FerenczAustraliaBernardo Dominic RENEWAL
Izzy R CaudyRussiaIvan Magalhaes PROPOSAL
Mujtaba V NickaRussiaBernardo Dominic PROPOSAL
Izzy R NestleRussiaElwin Sharvill NEW
Maisha W TollnerSpainAsiya Javayant NEW
Smith A VocelkaJapanElwin Sharvill UNQUALIFIED
Jones Z ChuiSpainAnna Fali QUALIFIED
Jennifer A MaletItalyElwin Sharvill QUALIFIED
Juan N BriddickSpainAnna Fali NEW
Misaki Y DilliardBrazilStephen Shaw RENEWAL
Nicolas J NickaIndiaXuxue Feng NEGOTIATION
Chavez G CaudyItalyXuxue Feng PROPOSAL
Adams X DarakjyGermanyIoni Bowcher RENEWAL
James L CampainArgentinaBernardo Dominic NEW
Mayumi R KolmetzBrazilOnyama Limba NEW
Frozen Columns
Name
Alejandro U Ostrosky
Claire F Flosi
Adams R Oldroyd
Munro D Nestle
Tony K Caldarera
James F Royster
Nicolas M Bowley
Greenwood O Chui
Antonio T Flosi
Jefferson G Albares
Ricardo I Sergi
Cody P Malet
Misaki U Shinko
Cody Y Venere
Ashley W Morasca
Juan U Rim
Silvio N Garufi
Leja Q Rulapaugh
Darci J Briddick
Alejandro V Stenseth
Munro A Foller
Adams G Ostrosky
Claire B Malet
Maisha O Poquette
Sinclair K Kusko
Jones L Doe
Ivar N Doe
Jones F Paprocki
Salvatore Z Rim
Morrow A Paprocki
Wickens W Chui
Costa B Sergi
Isabel U Stenseth
Johnson J Inouye
Leja W Morasca
Kaitlin Z Iturbide
Misaki X Maclead
Sinclair I Tollner
Jeanfrancois J Nicka
Nicolas F Chui
Francesco L Flosi
James A Ostrosky
Aika S Briddick
Francesco V Perin
Ricardo V Iturbide
Faith R Saylors
Adams G Caldarera
Leon I Figeroa
Alejandro P Garufi
Sinclair R Glick
IdCountryDate
1000Japan2024-04-10
1001Brazil2024-03-31
1002Canada2024-04-13
1003Italy2024-03-29
1004Spain2024-04-07
1005Brazil2024-04-12
1006Argentina2024-04-12
1007Brazil2024-04-03
1008Italy2024-04-08
1009Russia2024-04-03
1010France2024-04-05
1011Brazil2024-03-27
1012Russia2024-04-01
1013France2024-04-07
1014India2024-04-19
1015Australia2024-04-25
1016Brazil2024-04-04
1017France2024-04-02
1018United Kingdom2024-04-12
1019Germany2024-04-15
1020United Kingdom2024-04-15
1021France2024-03-28
1022United Kingdom2024-04-16
1023Australia2024-04-01
1024India2024-04-07
1025Italy2024-04-20
1026Spain2024-04-14
1027United Kingdom2024-04-06
1028United Kingdom2024-03-31
1029Japan2024-04-17
1030Spain2024-04-03
1031Australia2024-03-28
1032Argentina2024-04-23
1033Argentina2024-04-06
1034Spain2024-04-19
1035Russia2024-03-30
1036Italy2024-04-11
1037Spain2024-04-14
1038Italy2024-03-29
1039France2024-04-25
1040United Kingdom2024-03-28
1041Canada2024-04-11
1042Japan2024-04-05
1043United Kingdom2024-04-08
1044Brazil2024-04-24
1045Japan2024-04-22
1046Japan2024-04-05
1047Spain2024-04-17
1048Canada2024-04-06
1049Brazil2024-04-04

On-Demand Data

NameIdCountryDate
Octavia L Gaucho1000Spain2024-04-12
Clifford G Ferencz1001Italy2024-04-19
Kadeem A Inouye1002Brazil2024-04-18
Johnson Q Paprocki1003Australia2024-03-27
Arvin M Waycott1004India2024-04-18
Izzy S Amigon1005France2024-04-21
Jones J Briddick1006Canada2024-04-13
Clifford T Caudy1007Italy2024-04-25
Ashley U Stenseth1008Argentina2024-04-15
Juan D Campain1009United Kingdom2024-04-14
Claire X Nicka1010Canada2024-04-12
Ivar L Wieser1011United Kingdom2024-04-13
Jennifer N Briddick1012France2024-04-20
Antonio T Rulapaugh1013Canada2024-04-06
Greenwood D Rim1014Germany2024-04-23
Ricardo N Shinko1015Canada2024-04-16
Juan I Rim1016France2024-04-12
Jeanfrancois V Rim1017Germany2024-04-04
David A Campain1018Japan2024-04-19
Ricardo A Rim1019Germany2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo Q PerinSpainStephen Shaw PROPOSAL
Ashley A IturbideArgentinaIoni Bowcher PROPOSAL
Leon L RoysterIndiaStephen Shaw QUALIFIED
Aditya I SaylorsFranceStephen Shaw UNQUALIFIED
Aditya R AlbaresSpainIoni Bowcher PROPOSAL
Greenwood T MorascaIndiaAmy Elsner QUALIFIED
David U StockhamFranceIoni Bowcher RENEWAL
Leon I GauchoItalyStephen Shaw NEGOTIATION
Jennifer L PaprockiBrazilAnna Fali NEW
Chavez Z FigeroaArgentinaStephen Shaw PROPOSAL
Morrow B BowleyAustraliaAnna Fali PROPOSAL
Chavez N OstroskySpainIvan Magalhaes RENEWAL
Kadeem R GauchoBrazilOnyama Limba NEGOTIATION
David Z DarakjyJapanXuxue Feng PROPOSAL
Leja T PerinSpainBernardo Dominic QUALIFIED
Julie E NickaArgentinaIvan Magalhaes RENEWAL
Ashley N SergiIndiaStephen Shaw UNQUALIFIED
Aruna T WaycottGermanyStephen Shaw UNQUALIFIED
Rodrigues X VenereCanadaAmy Elsner RENEWAL
Faith Z BowleyUnited KingdomXuxue Feng NEW
Greenwood C OstroskyItalyElwin Sharvill PROPOSAL
Morrow R CaldareraFranceAsiya Javayant QUALIFIED
Sinclair O ButtFranceAsiya Javayant NEGOTIATION
Juan M DarakjyCanadaElwin Sharvill RENEWAL
Wickens O BologniaItalyBernardo Dominic QUALIFIED
Cody N SergiItalyOnyama Limba NEGOTIATION
Ashley C SergiUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas O GarufiGermanyAmy Elsner PROPOSAL
Jefferson C FigeroaGermanyIoni Bowcher NEW
Alejandro L VenereJapanAmy Elsner NEGOTIATION
Francesco U OstroskyJapanOnyama Limba NEGOTIATION
Kaitlin U GillianRussiaAsiya Javayant NEW
Jefferson W CaudyBrazilAnna Fali RENEWAL
Wickens C StensethCanadaIvan Magalhaes NEGOTIATION
Johnson K PoquetteCanadaOnyama Limba PROPOSAL
Octavia L BriddickGermanyIoni Bowcher NEW
Misaki Y AmigonAustraliaBernardo Dominic PROPOSAL
Juan J SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Emily S WieserIndiaAsiya Javayant QUALIFIED
Cody I FerenczBrazilElwin Sharvill 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>