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
James U BriddickRussiaAnna Fali QUALIFIED
Darci A DilliardRussiaAnna Fali QUALIFIED
Darci P BologniaRussiaAsiya Javayant QUALIFIED
Murillo S FollerUnited KingdomXuxue Feng NEW
Nicolas O VenereUnited KingdomXuxue Feng RENEWAL
Nicolas R BowleyGermanyOnyama Limba QUALIFIED
Ivar P InouyeGermanyXuxue Feng NEW
Clifford G ButtIndiaStephen Shaw UNQUALIFIED
Wickens F VenereJapanIvan Magalhaes NEW
Misaki F VenereJapanIoni Bowcher RENEWAL
Juan W KolmetzArgentinaElwin Sharvill RENEWAL
James Y FigeroaSpainIvan Magalhaes NEGOTIATION
Juan U MaletItalyElwin Sharvill NEW
Rodrigues T InouyeAustraliaAmy Elsner QUALIFIED
Ivar U PaprockiRussiaBernardo Dominic UNQUALIFIED
Munro A GillianAustraliaXuxue Feng PROPOSAL
Munro D ButtGermanyOnyama Limba NEW
Kaitlin N CampainAustraliaXuxue Feng NEGOTIATION
Ashley T CaldareraSpainAmy Elsner PROPOSAL
Aruna E PaprockiJapanIoni Bowcher QUALIFIED
Ivar N PoquetteUnited KingdomBernardo Dominic RENEWAL
Stacey Z AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo Y AlbaresBrazilAsiya Javayant PROPOSAL
Chavez X KuskoSpainAsiya Javayant UNQUALIFIED
Antonio E RutaItalyAsiya Javayant NEGOTIATION
Octavia M KuskoAustraliaAnna Fali RENEWAL
Smith B RoysterGermanyIoni Bowcher RENEWAL
Chavez U AmigonAustraliaAmy Elsner UNQUALIFIED
Munro V ShinkoGermanyStephen Shaw QUALIFIED
Jennifer V PerinFranceIvan Magalhaes PROPOSAL
Silvio E AmigonUnited KingdomAsiya Javayant RENEWAL
Juan A AmigonRussiaXuxue Feng NEW
Smith K GarufiJapanAnna Fali RENEWAL
Emily L ButtSpainAsiya Javayant UNQUALIFIED
Johnson H MaletBrazilElwin Sharvill NEGOTIATION
Stacey Z MorascaRussiaStephen Shaw QUALIFIED
Claire C WaycottJapanIoni Bowcher UNQUALIFIED
Wickens J DilliardArgentinaAnna Fali QUALIFIED
Julie S SlusarskiFranceBernardo Dominic UNQUALIFIED
Izzy E TollnerArgentinaXuxue Feng RENEWAL
Arvin P MorascaSpainBernardo Dominic NEGOTIATION
Kadeem M CampainSpainIoni Bowcher NEGOTIATION
Johnson L DilliardCanadaIvan Magalhaes UNQUALIFIED
Aditya O RulapaughSpainXuxue Feng RENEWAL
Rodrigues N TollnerArgentinaAnna Fali RENEWAL
Jeanfrancois X ChuiItalyIoni Bowcher QUALIFIED
Alejandro W MarrierArgentinaXuxue Feng UNQUALIFIED
Sinclair T GillianFranceAmy Elsner QUALIFIED
Ricardo F StockhamUnited KingdomAsiya Javayant NEW
Morrow R KolmetzIndiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith W ChuiJapanBernardo Dominic NEGOTIATION
Izzy L MarrierSpainIoni Bowcher UNQUALIFIED
Salvatore B RimAustraliaXuxue Feng UNQUALIFIED
Murillo K KuskoUnited KingdomBernardo Dominic PROPOSAL
Aika C BriddickIndiaBernardo Dominic RENEWAL
Tony W SaylorsCanadaAnna Fali QUALIFIED
Maria N MaletCanadaXuxue Feng QUALIFIED
David K MacleadIndiaAsiya Javayant NEW
Tony L DilliardUnited KingdomBernardo Dominic NEW
Faith O CampainFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem K IturbideFrance2024-04-05Buckley Miller Wright NEW6Elwin Sharvill
1001Clifford H StensethSpain2024-03-31Printing Dimensions NEW94Bernardo Dominic
1002Nicolas U VocelkaAustralia2024-03-27Commercial Press NEGOTIATION62Asiya Javayant
1003Salvatore E RulapaughGermany2024-04-21Benton, John B Jr RENEWAL13Elwin Sharvill
1004Murillo A KuskoGermany2024-04-09Dorl, James J Esq QUALIFIED3Anna Fali
1005Julie X IturbideBrazil2024-04-13Rangoni Of Florence NEGOTIATION40Elwin Sharvill
1006Arvin I StockhamIndia2024-03-27Feiner Bros NEW92Amy Elsner
1007Jefferson F ShinkoJapan2024-03-28Rangoni Of Florence NEGOTIATION79Bernardo Dominic
1008Maisha Z GlickRussia2024-04-25Chapman, Ross E Esq UNQUALIFIED73Xuxue Feng
1009Mayumi I MorascaBrazil2024-04-12Chapman, Ross E Esq QUALIFIED63Anna Fali
1010Silvio T OstroskyFrance2024-04-18Rousseaux, Michael Esq UNQUALIFIED8Ivan Magalhaes
1011Sinclair A VocelkaBrazil2024-04-14Commercial Press PROPOSAL77Xuxue Feng
1012Costa S NickaUnited Kingdom2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED87Anna Fali
1013David O FigeroaFrance2024-03-30Rangoni Of Florence UNQUALIFIED37Stephen Shaw
1014Julie B ButtRussia2024-04-15Commercial Press NEGOTIATION72Stephen Shaw
1015Costa V WieserUnited Kingdom2024-03-30Chapman, Ross E Esq NEW0Ioni Bowcher
1016Misaki H PerinFrance2024-04-12Printing Dimensions QUALIFIED23Elwin Sharvill
1017Jones P SaylorsUnited Kingdom2024-04-04Chemel, James L Cpa NEW53Ivan Magalhaes
1018Deepesh O RulapaughAustralia2024-03-30Commercial Press QUALIFIED38Onyama Limba
1019Jones J StensethItaly2024-03-31Buckley Miller Wright PROPOSAL88Ivan Magalhaes
1020Isabel P MaletSpain2024-04-15Rousseaux, Michael Esq PROPOSAL94Anna Fali
1021Alejandro U WaycottBrazil2024-04-16Morlong Associates QUALIFIED65Anna Fali
1022Sinclair F WieserBrazil2024-04-25Feiner Bros PROPOSAL77Onyama Limba
1023Darci C RoysterRussia2024-04-19Rangoni Of Florence NEW76Ivan Magalhaes
1024Maisha K ButtSpain2024-04-25Dorl, James J Esq NEGOTIATION83Onyama Limba
1025Munro X WaycottCanada2024-04-17Chapman, Ross E Esq RENEWAL30Bernardo Dominic
1026James O DoeRussia2024-03-27Rangoni Of Florence NEGOTIATION17Asiya Javayant
1027Alejandro Z BologniaItaly2024-04-22Printing Dimensions NEW58Onyama Limba
1028Nicolas F GauchoRussia2024-04-22Truhlar And Truhlar Attys NEW38Bernardo Dominic
1029Ricardo B BowleyCanada2024-04-20Morlong Associates QUALIFIED76Xuxue Feng
1030Wickens Y SchemmerSpain2024-03-27Chanay, Jeffrey A Esq PROPOSAL51Anna Fali
1031Julie V VenereGermany2024-04-09Truhlar And Truhlar Attys NEW28Onyama Limba
1032Chavez G SaylorsCanada2024-04-15Buckley Miller Wright QUALIFIED63Stephen Shaw
1033Jones V MaletCanada2024-03-28Chanay, Jeffrey A Esq UNQUALIFIED56Ivan Magalhaes
1034Deepesh B DilliardIndia2024-04-01Chapman, Ross E Esq NEGOTIATION16Stephen Shaw
1035Aditya X CaudyBrazil2024-04-22Buckley Miller Wright PROPOSAL37Onyama Limba
1036Kadeem K RutaArgentina2024-04-07Benton, John B Jr UNQUALIFIED1Ioni Bowcher
1037Mayumi I AmigonFrance2024-04-14Chapman, Ross E Esq QUALIFIED18Stephen Shaw
1038Aika H BowleyJapan2024-04-01Benton, John B Jr NEGOTIATION10Ioni Bowcher
1039Johnson D DoeIndia2024-03-29Buckley Miller Wright RENEWAL92Ivan Magalhaes
1040Aditya L ButtSpain2024-04-25Feltz Printing Service PROPOSAL60Xuxue Feng
1041Octavia W MaletCanada2024-04-06Chanay, Jeffrey A Esq PROPOSAL60Amy Elsner
1042Wickens L WaycottBrazil2024-04-06Truhlar And Truhlar Attys QUALIFIED59Anna Fali
1043Emily Z FlosiFrance2024-04-12Commercial Press UNQUALIFIED25Ioni Bowcher
1044Jeanfrancois S BologniaGermany2024-04-19Dorl, James J Esq NEGOTIATION14Bernardo Dominic
1045Salvatore X SchemmerUnited Kingdom2024-03-27Truhlar And Truhlar Attys QUALIFIED74Ioni Bowcher
1046Cody W StockhamBrazil2024-04-12Morlong Associates UNQUALIFIED87Ioni Bowcher
1047Kadeem E FlosiAustralia2024-03-29King, Christopher A Esq NEGOTIATION31Ioni Bowcher
1048Maria L RulapaughIndia2024-04-21Feltz Printing Service RENEWAL91Amy Elsner
1049Silvio E SchemmerSpain2024-04-02Buckley Miller Wright PROPOSAL18Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jefferson B MaletItalyElwin Sharvill PROPOSAL
Misaki G BowleyFranceAmy Elsner QUALIFIED
Sinclair D WieserArgentinaElwin Sharvill RENEWAL
Jones R FigeroaRussiaXuxue Feng RENEWAL
David G CaudyBrazilAmy Elsner QUALIFIED
Jeanfrancois O GauchoIndiaIoni Bowcher NEGOTIATION
Maria L MorascaUnited KingdomElwin Sharvill NEW
David F PerinJapanAsiya Javayant UNQUALIFIED
Alejandro U CaudyBrazilAnna Fali NEW
James R FollerAustraliaAmy Elsner NEW
Leja J ShinkoItalyXuxue Feng UNQUALIFIED
Rodrigues E WieserCanadaIoni Bowcher UNQUALIFIED
Antonio E GillianRussiaXuxue Feng QUALIFIED
Silvio D NestleCanadaStephen Shaw NEGOTIATION
Alejandro B MarrierSpainIoni Bowcher RENEWAL
Ashley U GarufiRussiaIoni Bowcher RENEWAL
Antonio Y ShinkoSpainElwin Sharvill RENEWAL
Aditya Z SchemmerCanadaOnyama Limba UNQUALIFIED
Ivar X StockhamRussiaIoni Bowcher UNQUALIFIED
Emily D RoysterFranceIvan Magalhaes QUALIFIED
Juan E GauchoCanadaIvan Magalhaes NEGOTIATION
Rodrigues Q PaprockiGermanyOnyama Limba NEW
Jefferson K GlickIndiaAmy Elsner NEGOTIATION
Izzy J MacleadRussiaXuxue Feng RENEWAL
Jones U DarakjyArgentinaIvan Magalhaes QUALIFIED
Murillo Z DoeCanadaXuxue Feng PROPOSAL
Misaki E VocelkaUnited KingdomBernardo Dominic RENEWAL
Mayumi F FollerSpainOnyama Limba NEGOTIATION
Silvio A OldroydSpainAnna Fali RENEWAL
David B MorascaUnited KingdomXuxue Feng NEGOTIATION
Stacey K StensethArgentinaAmy Elsner UNQUALIFIED
Juan K DarakjyAustraliaBernardo Dominic UNQUALIFIED
Jefferson D NestleJapanXuxue Feng QUALIFIED
Claire O WaycottJapanBernardo Dominic UNQUALIFIED
Emily N MarrierBrazilAnna Fali PROPOSAL
Ricardo G RulapaughRussiaAmy Elsner QUALIFIED
Wickens E MacleadItalyBernardo Dominic NEW
Jeanfrancois K OstroskyJapanXuxue Feng UNQUALIFIED
Arvin C DilliardAustraliaBernardo Dominic NEGOTIATION
Ashley O FerenczIndiaBernardo Dominic PROPOSAL
Leon F PerinArgentinaAnna Fali UNQUALIFIED
Julie R BowleyItalyOnyama Limba NEW
Maria X GlickCanadaBernardo Dominic NEGOTIATION
Julie M MarrierCanadaStephen Shaw NEW
Greenwood I PerinCanadaIoni Bowcher NEGOTIATION
Kadeem C MorascaIndiaElwin Sharvill QUALIFIED
Wickens C PaprockiIndiaAmy Elsner PROPOSAL
Ricardo I VocelkaIndiaIvan Magalhaes QUALIFIED
Arvin Y RoysterItalyOnyama Limba UNQUALIFIED
Juan Z MaletAustraliaAnna Fali QUALIFIED
Frozen Columns
Name
Arvin A Morasca
Jennifer E Nicka
Mujtaba L Saylors
Kadeem Y Nestle
Izzy V Malet
Salvatore C Chui
James Y Bolognia
Maria C Figeroa
Izzy N Darakjy
James B Slusarski
Johnson I Malet
Jefferson O Iturbide
Wickens V Garufi
Jefferson W Whobrey
Maria V Foller
Octavia F Waycott
Cody O Poquette
Leon S Ruta
Sinclair Q Waycott
Stacey K Poquette
David H Bolognia
Stacey P Rim
Greenwood X Kusko
Cody I Rim
Julie V Whobrey
Ivar P Venere
Clifford P Shinko
Jennifer Q Waycott
Izzy D Foller
Emily N Bowley
Aruna L Ostrosky
Faith Z Flosi
Misaki O Ostrosky
Morrow N Bowley
James G Inouye
Antonio W Doe
Maria O Ruta
Octavia K Vocelka
Murillo U Kusko
Kaitlin W Stenseth
Maria F Venere
Smith F Bowley
Faith A Royster
Julie F Kusko
Ivar C Rulapaugh
Salvatore I Waycott
Ivar S Ferencz
James A Malet
Morrow A Ostrosky
Greenwood O Waycott
IdCountryDate
1000Argentina2024-04-06
1001Japan2024-04-13
1002India2024-04-21
1003India2024-04-11
1004Brazil2024-04-16
1005Argentina2024-04-21
1006India2024-04-04
1007Argentina2024-04-16
1008Canada2024-04-17
1009India2024-03-31
1010India2024-04-23
1011France2024-04-03
1012Argentina2024-03-31
1013United Kingdom2024-04-02
1014Australia2024-04-05
1015Australia2024-04-17
1016Argentina2024-04-19
1017Spain2024-04-13
1018Argentina2024-04-08
1019Australia2024-04-09
1020Germany2024-04-15
1021Spain2024-04-15
1022France2024-03-30
1023Canada2024-04-03
1024Brazil2024-04-15
1025Russia2024-03-31
1026India2024-04-17
1027Australia2024-04-23
1028France2024-04-20
1029India2024-04-12
1030Japan2024-03-29
1031Australia2024-04-20
1032Canada2024-04-14
1033Japan2024-04-18
1034Australia2024-04-21
1035Canada2024-04-15
1036Germany2024-04-07
1037Australia2024-03-27
1038Germany2024-04-12
1039Russia2024-03-29
1040Italy2024-03-29
1041United Kingdom2024-04-07
1042India2024-04-22
1043Argentina2024-04-03
1044France2024-04-03
1045Argentina2024-04-04
1046Canada2024-04-14
1047Canada2024-04-07
1048United Kingdom2024-04-08
1049United Kingdom2024-03-31

On-Demand Data

NameIdCountryDate
Misaki Y Marrier1000India2024-03-27
Ricardo I Iturbide1001Japan2024-04-02
Clifford V Chui1002Argentina2024-04-19
Cody L Rim1003Brazil2024-04-03
Faith I Butt1004Brazil2024-04-19
Munro B Doe1005Japan2024-04-03
Izzy I Morasca1006United Kingdom2024-04-08
Mujtaba G Inouye1007India2024-04-02
Munro E Ostrosky1008Russia2024-03-30
Claire U Ruta1009Brazil2024-04-09
Smith A Gaucho1010United Kingdom2024-04-07
David H Ruta1011India2024-04-24
Kadeem Q Ostrosky1012Brazil2024-04-12
Juan D Iturbide1013Australia2024-04-10
Leja K Poquette1014Argentina2024-03-31
Sinclair I Vocelka1015Germany2024-04-15
Izzy H Royster1016Australia2024-04-06
Murillo W Bowley1017Japan2024-04-23
Morrow D Poquette1018Italy2024-04-04
Salvatore M Darakjy1019France2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith I SlusarskiBrazilElwin Sharvill UNQUALIFIED
Antonio F WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Clifford K OstroskyAustraliaAnna Fali NEGOTIATION
Stacey J ShinkoBrazilXuxue Feng RENEWAL
Ashley M DarakjySpainAmy Elsner UNQUALIFIED
Costa H AmigonGermanyStephen Shaw UNQUALIFIED
Octavia B AlbaresAustraliaAnna Fali UNQUALIFIED
Leja B StensethIndiaElwin Sharvill PROPOSAL
Emily G InouyeAustraliaBernardo Dominic NEW
Arvin M BriddickJapanOnyama Limba UNQUALIFIED
Isabel U DoeJapanAmy Elsner NEGOTIATION
Francesco W ShinkoJapanIoni Bowcher QUALIFIED
Leja O VocelkaRussiaAsiya Javayant PROPOSAL
Aika P MaletIndiaStephen Shaw UNQUALIFIED
Ashley R SlusarskiAustraliaIoni Bowcher QUALIFIED
Kadeem M BologniaRussiaBernardo Dominic PROPOSAL
Ashley S OldroydRussiaAmy Elsner NEW
Emily N StensethJapanOnyama Limba UNQUALIFIED
Leon A GarufiItalyIoni Bowcher RENEWAL
Munro B ChuiFranceIvan Magalhaes RENEWAL
Stacey O FerenczFranceXuxue Feng RENEWAL
Maisha D WieserJapanAsiya Javayant QUALIFIED
Stacey Y DilliardAustraliaXuxue Feng NEW
Cody I AmigonRussiaAsiya Javayant QUALIFIED
Aruna M VocelkaSpainBernardo Dominic RENEWAL
Francesco Z DilliardAustraliaOnyama Limba PROPOSAL
Wickens J PoquetteItalyAmy Elsner RENEWAL
Misaki A OstroskyBrazilIoni Bowcher PROPOSAL
Jennifer U VocelkaAustraliaAsiya Javayant QUALIFIED
Sinclair K NickaSpainStephen Shaw PROPOSAL
Juan G OstroskyIndiaStephen Shaw UNQUALIFIED
Claire H IturbideIndiaIoni Bowcher RENEWAL
Darci A DoeAustraliaOnyama Limba QUALIFIED
Chavez B TollnerSpainXuxue Feng NEW
Morrow J WieserJapanBernardo Dominic QUALIFIED
Nicolas D FollerCanadaIoni Bowcher NEW
Johnson E CaudyItalyAnna Fali RENEWAL
Emily B OldroydArgentinaIvan Magalhaes NEGOTIATION
Juan O GillianFranceStephen Shaw QUALIFIED
Mujtaba V TollnerRussiaAnna 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>