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
Octavia N ChuiItalyAnna Fali NEW
Johnson M CampainSpainElwin Sharvill RENEWAL
Aruna B CampainItalyIvan Magalhaes NEW
Kadeem P TollnerGermanyStephen Shaw PROPOSAL
Claire E RoysterUnited KingdomAmy Elsner RENEWAL
Adams J SergiArgentinaElwin Sharvill PROPOSAL
James V BowleyArgentinaXuxue Feng UNQUALIFIED
Faith O GlickFranceIoni Bowcher PROPOSAL
Julie C NestleFranceAsiya Javayant NEW
Ricardo C WaycottCanadaIoni Bowcher NEW
Morrow V RutaSpainOnyama Limba UNQUALIFIED
Deepesh J WieserBrazilIoni Bowcher PROPOSAL
Tony V RulapaughSpainStephen Shaw NEGOTIATION
Nicolas E WaycottCanadaXuxue Feng NEW
Aditya A VenereItalyAmy Elsner QUALIFIED
James B KolmetzCanadaElwin Sharvill PROPOSAL
Chavez M MaletJapanAsiya Javayant UNQUALIFIED
Silvio M OstroskyUnited KingdomBernardo Dominic RENEWAL
Maria I OstroskyJapanStephen Shaw PROPOSAL
Silvio Q RulapaughCanadaAmy Elsner QUALIFIED
Kaitlin B DarakjyGermanyElwin Sharvill NEGOTIATION
Smith F WhobreyUnited KingdomAnna Fali QUALIFIED
Julie V DoeAustraliaIoni Bowcher UNQUALIFIED
Misaki H AlbaresIndiaElwin Sharvill RENEWAL
Johnson N ButtCanadaElwin Sharvill NEGOTIATION
Salvatore Q InouyeItalyIoni Bowcher QUALIFIED
Antonio H MaletUnited KingdomAsiya Javayant QUALIFIED
David V GarufiCanadaAsiya Javayant UNQUALIFIED
Alejandro P GlickArgentinaStephen Shaw UNQUALIFIED
Darci Q BriddickRussiaBernardo Dominic NEGOTIATION
Ivar Q GarufiFranceBernardo Dominic NEW
Sinclair M KolmetzItalyAsiya Javayant NEGOTIATION
Misaki L RulapaughBrazilAnna Fali QUALIFIED
Maria L MacleadArgentinaAnna Fali NEGOTIATION
Tony U ChuiCanadaXuxue Feng QUALIFIED
Tony I OstroskyItalyStephen Shaw PROPOSAL
Leon U ButtGermanyAnna Fali RENEWAL
Johnson A GlickArgentinaIvan Magalhaes NEGOTIATION
Misaki V RimSpainAsiya Javayant NEW
Clifford E StensethJapanXuxue Feng RENEWAL
Darci X GillianJapanIoni Bowcher NEGOTIATION
Wickens T RutaAustraliaStephen Shaw NEGOTIATION
Cody W MaletSpainAmy Elsner RENEWAL
Murillo P MacleadGermanyAmy Elsner QUALIFIED
Leja L CaudyJapanAmy Elsner QUALIFIED
Maria V BowleyUnited KingdomIvan Magalhaes QUALIFIED
Sinclair Q CaldareraIndiaAnna Fali RENEWAL
Munro F RulapaughCanadaStephen Shaw NEGOTIATION
Sinclair P ButtArgentinaAmy Elsner QUALIFIED
Kadeem B SaylorsCanadaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin S DarakjySpainIvan Magalhaes UNQUALIFIED
Salvatore I SchemmerFranceXuxue Feng NEW
Izzy T DoeSpainOnyama Limba PROPOSAL
Wickens B BriddickJapanOnyama Limba PROPOSAL
Deepesh G WieserCanadaIoni Bowcher PROPOSAL
Leon V SaylorsUnited KingdomElwin Sharvill QUALIFIED
Jefferson J OstroskyRussiaBernardo Dominic NEGOTIATION
Ashley T GlickFranceXuxue Feng PROPOSAL
Antonio I RoysterBrazilOnyama Limba QUALIFIED
Stacey G PerinAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore Y GillianIndia2024-04-16Buckley Miller Wright NEW83Asiya Javayant
1001Clifford B VenereBrazil2024-04-07Buckley Miller Wright NEGOTIATION95Anna Fali
1002Mayumi J WaycottAustralia2024-03-26Morlong Associates NEW15Onyama Limba
1003Sinclair E GauchoItaly2024-04-20Buckley Miller Wright NEGOTIATION55Elwin Sharvill
1004Izzy B CaldareraJapan2024-04-20Chemel, James L Cpa RENEWAL58Amy Elsner
1005Alejandro A AlbaresBrazil2024-04-03Feiner Bros UNQUALIFIED44Anna Fali
1006Salvatore B BriddickArgentina2024-04-14Commercial Press NEGOTIATION71Anna Fali
1007Stacey F StensethAustralia2024-04-20Commercial Press NEGOTIATION87Elwin Sharvill
1008Greenwood B DilliardCanada2024-04-17King, Christopher A Esq NEGOTIATION1Xuxue Feng
1009Julie J GillianAustralia2024-04-02Buckley Miller Wright RENEWAL50Stephen Shaw
1010Rodrigues J FlosiArgentina2024-04-02Chapman, Ross E Esq QUALIFIED2Anna Fali
1011Aika W KolmetzUnited Kingdom2024-03-31Printing Dimensions RENEWAL13Elwin Sharvill
1012Munro Q FlosiAustralia2024-04-22Morlong Associates QUALIFIED21Bernardo Dominic
1013Stacey G FigeroaCanada2024-04-09Chapman, Ross E Esq NEGOTIATION44Anna Fali
1014Antonio R GillianSpain2024-04-12Benton, John B Jr NEW81Amy Elsner
1015Izzy E BriddickRussia2024-03-26Chapman, Ross E Esq QUALIFIED58Asiya Javayant
1016Misaki X BologniaCanada2024-04-12Chemel, James L Cpa RENEWAL87Onyama Limba
1017Rodrigues G SchemmerArgentina2024-04-23Chanay, Jeffrey A Esq PROPOSAL1Stephen Shaw
1018Aditya R NestleIndia2024-03-29Truhlar And Truhlar Attys NEW94Elwin Sharvill
1019Wickens H CampainArgentina2024-04-10King, Christopher A Esq PROPOSAL88Asiya Javayant
1020Ashley W CaldareraJapan2024-04-22Buckley Miller Wright UNQUALIFIED79Xuxue Feng
1021Julie L MaletIndia2024-03-30King, Christopher A Esq UNQUALIFIED94Bernardo Dominic
1022Wickens L WaycottSpain2024-04-24Printing Dimensions QUALIFIED65Xuxue Feng
1023Aika K BriddickSpain2024-04-04King, Christopher A Esq PROPOSAL58Stephen Shaw
1024Silvio S StensethGermany2024-04-15Morlong Associates NEGOTIATION43Anna Fali
1025Isabel F ChuiArgentina2024-04-21Printing Dimensions RENEWAL28Anna Fali
1026Johnson D GillianGermany2024-04-04Commercial Press NEGOTIATION66Ioni Bowcher
1027Izzy L OstroskySpain2024-04-21Feltz Printing Service NEGOTIATION38Stephen Shaw
1028Tony I BriddickCanada2024-03-26Feiner Bros NEW58Ioni Bowcher
1029David F SlusarskiAustralia2024-04-13Morlong Associates NEW65Amy Elsner
1030Cody E KolmetzItaly2024-03-27Dorl, James J Esq RENEWAL73Elwin Sharvill
1031Emily D VocelkaItaly2024-03-31King, Christopher A Esq RENEWAL86Onyama Limba
1032Jones I FollerFrance2024-04-12King, Christopher A Esq RENEWAL8Elwin Sharvill
1033Emily A KuskoCanada2024-03-28Dorl, James J Esq PROPOSAL36Bernardo Dominic
1034Kaitlin X FerenczFrance2024-04-19Buckley Miller Wright UNQUALIFIED7Asiya Javayant
1035Clifford C PaprockiSpain2024-04-13Feltz Printing Service NEGOTIATION75Xuxue Feng
1036Kadeem T MaletAustralia2024-04-11Feltz Printing Service PROPOSAL40Bernardo Dominic
1037Juan G TollnerAustralia2024-03-29Rangoni Of Florence RENEWAL63Ivan Magalhaes
1038Deepesh Y CaudyIndia2024-04-06Dorl, James J Esq QUALIFIED62Asiya Javayant
1039Aika D FerenczJapan2024-03-31Feiner Bros PROPOSAL12Ioni Bowcher
1040Ashley C StockhamRussia2024-04-05Chanay, Jeffrey A Esq NEGOTIATION82Amy Elsner
1041Cody B DoeItaly2024-04-14Morlong Associates PROPOSAL17Amy Elsner
1042Alejandro S PoquetteIndia2024-03-30Feltz Printing Service NEW6Anna Fali
1043Faith M ButtItaly2024-04-08Buckley Miller Wright NEGOTIATION50Anna Fali
1044Misaki I DoeJapan2024-04-19Feiner Bros PROPOSAL41Ivan Magalhaes
1045Izzy N BologniaItaly2024-04-06King, Christopher A Esq QUALIFIED89Elwin Sharvill
1046Leon S MacleadSpain2024-04-17Benton, John B Jr NEGOTIATION29Ivan Magalhaes
1047Morrow Z MarrierSpain2024-04-10Dorl, James J Esq RENEWAL34Asiya Javayant
1048Julie C VocelkaItaly2024-03-30Printing Dimensions QUALIFIED85Xuxue Feng
1049Ivar V StockhamIndia2024-04-21Truhlar And Truhlar Attys QUALIFIED2Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jones B MaletSpainIvan Magalhaes NEW
Johnson U NestleCanadaIoni Bowcher NEW
Kaitlin B IturbideAustraliaIoni Bowcher PROPOSAL
Jefferson T FigeroaRussiaIoni Bowcher NEW
Kaitlin P AlbaresGermanyElwin Sharvill NEW
Leon V DilliardUnited KingdomOnyama Limba UNQUALIFIED
Silvio R MaletCanadaOnyama Limba QUALIFIED
Deepesh D StockhamBrazilOnyama Limba NEGOTIATION
Murillo Q CaudyArgentinaElwin Sharvill RENEWAL
Isabel D VocelkaCanadaAnna Fali PROPOSAL
Murillo V MorascaAustraliaBernardo Dominic UNQUALIFIED
Mayumi C WieserFranceAnna Fali QUALIFIED
Arvin M BriddickArgentinaAsiya Javayant QUALIFIED
Ricardo J WaycottAustraliaElwin Sharvill RENEWAL
Nicolas J DilliardArgentinaBernardo Dominic NEGOTIATION
Mujtaba Z VenereUnited KingdomAmy Elsner NEGOTIATION
Alejandro N AmigonFranceStephen Shaw NEGOTIATION
Jeanfrancois B CaldareraJapanIvan Magalhaes PROPOSAL
Ashley L DoeItalyStephen Shaw QUALIFIED
Aditya F CaudyUnited KingdomBernardo Dominic NEW
Tony M MarrierBrazilOnyama Limba PROPOSAL
Chavez S InouyeAustraliaAnna Fali UNQUALIFIED
Jefferson O FigeroaBrazilStephen Shaw NEGOTIATION
Tony Y VenereGermanyAsiya Javayant NEW
Aruna O PerinAustraliaXuxue Feng NEW
Tony G SchemmerAustraliaOnyama Limba QUALIFIED
Darci U CampainUnited KingdomStephen Shaw PROPOSAL
Smith N WieserGermanyXuxue Feng PROPOSAL
Mayumi V WieserRussiaAmy Elsner RENEWAL
Wickens V WhobreyCanadaAnna Fali UNQUALIFIED
Cody G MaletJapanAnna Fali NEGOTIATION
James Z RulapaughIndiaAsiya Javayant QUALIFIED
Munro Y StensethArgentinaIvan Magalhaes NEGOTIATION
Kaitlin W VocelkaItalyAnna Fali UNQUALIFIED
Deepesh J MarrierGermanyIvan Magalhaes PROPOSAL
Misaki X WhobreyJapanXuxue Feng UNQUALIFIED
Mayumi Z KuskoIndiaAsiya Javayant RENEWAL
Ricardo T WhobreySpainStephen Shaw NEW
David K WaycottRussiaOnyama Limba RENEWAL
Maisha B DarakjyIndiaElwin Sharvill PROPOSAL
Francesco F MacleadFranceElwin Sharvill NEGOTIATION
Clifford Q FlosiFranceBernardo Dominic UNQUALIFIED
Mayumi Q MarrierAustraliaAsiya Javayant NEW
Jeanfrancois N OldroydUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues Y BriddickSpainOnyama Limba NEW
Ivar U BriddickBrazilAsiya Javayant NEW
Wickens G ChuiBrazilBernardo Dominic RENEWAL
Greenwood W RutaArgentinaIvan Magalhaes NEGOTIATION
Adams L MacleadGermanyOnyama Limba PROPOSAL
Ivar O CampainGermanyStephen Shaw RENEWAL
Frozen Columns
Name
Leja J Caldarera
Ricardo D Malet
Aika R Amigon
Chavez J Shinko
Octavia T Ruta
Aruna B Tollner
Octavia T Kusko
Faith R Iturbide
Munro Q Campain
Jeanfrancois I Malet
Arvin P Kusko
Tony X Figeroa
Jeanfrancois R Doe
James M Royster
Emily S Iturbide
Jennifer O Ostrosky
Aditya U Malet
James A Dilliard
Arvin T Caudy
Mujtaba K Maclead
Julie E Gaucho
Mayumi P Nicka
Misaki W Malet
Ricardo V Gillian
Stacey P Rulapaugh
Antonio R Slusarski
Sinclair R Glick
Leon X Schemmer
Arvin Y Shinko
David O Malet
Jones A Oldroyd
Costa J Saylors
Jones I Venere
Munro D Albares
Aruna N Perin
Francesco B Caudy
Sinclair B Slusarski
Jefferson S Kusko
Francesco P Darakjy
Ashley Z Perin
Ivar S Kusko
Murillo G Darakjy
Jeanfrancois W Bolognia
Mujtaba V Inouye
Mayumi Q Albares
Jeanfrancois H Stockham
Smith T Tollner
Izzy M Nestle
Munro Q Nestle
Aika T Sergi
IdCountryDate
1000Italy2024-04-06
1001India2024-04-07
1002Italy2024-04-10
1003France2024-03-30
1004Argentina2024-04-18
1005Russia2024-04-09
1006Russia2024-04-12
1007France2024-04-09
1008Germany2024-03-27
1009Canada2024-03-28
1010France2024-04-08
1011Japan2024-04-13
1012Argentina2024-04-14
1013Canada2024-04-01
1014Canada2024-04-12
1015Italy2024-04-20
1016Italy2024-03-29
1017Australia2024-04-18
1018France2024-04-22
1019Germany2024-04-19
1020Argentina2024-04-17
1021Russia2024-04-13
1022France2024-04-22
1023Russia2024-04-09
1024India2024-03-31
1025United Kingdom2024-04-17
1026Russia2024-03-30
1027Russia2024-04-04
1028Germany2024-04-15
1029Brazil2024-04-18
1030India2024-04-15
1031Japan2024-04-19
1032Brazil2024-04-17
1033Russia2024-04-10
1034United Kingdom2024-03-31
1035United Kingdom2024-04-17
1036Brazil2024-03-28
1037Brazil2024-03-29
1038Brazil2024-03-30
1039Japan2024-04-05
1040France2024-04-19
1041France2024-04-05
1042Canada2024-04-18
1043Italy2024-04-21
1044Germany2024-04-13
1045Australia2024-04-16
1046Japan2024-03-28
1047United Kingdom2024-04-23
1048Australia2024-04-13
1049United Kingdom2024-04-12

On-Demand Data

NameIdCountryDate
Chavez V Kolmetz1000France2024-04-20
Francesco Z Briddick1001Italy2024-04-22
Leja Y Kolmetz1002Japan2024-04-07
Isabel E Darakjy1003United Kingdom2024-04-10
Johnson R Sergi1004Japan2024-04-21
Izzy C Rim1005Brazil2024-03-26
Nicolas A Poquette1006Australia2024-04-04
Cody Y Whobrey1007Australia2024-03-30
Chavez O Doe1008United Kingdom2024-04-02
Clifford Z Poquette1009Japan2024-03-31
Jefferson S Flosi1010France2024-03-28
Ricardo K Garufi1011France2024-03-26
Murillo M Tollner1012Russia2024-04-10
Faith U Albares1013Italy2024-04-08
Faith N Caldarera1014Spain2024-04-12
Alejandro E Campain1015Brazil2024-03-29
Kaitlin H Inouye1016Argentina2024-04-22
Aditya Q Inouye1017Russia2024-04-21
Deepesh I Stockham1018Canada2024-04-12
Clifford V Inouye1019Italy2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci J KolmetzUnited KingdomAsiya Javayant PROPOSAL
Francesco C GauchoRussiaIvan Magalhaes PROPOSAL
Mujtaba M WaycottBrazilIoni Bowcher QUALIFIED
Greenwood R GlickCanadaStephen Shaw RENEWAL
Mujtaba I DoeCanadaBernardo Dominic NEGOTIATION
Cody K WaycottIndiaBernardo Dominic NEGOTIATION
Emily G RimSpainXuxue Feng PROPOSAL
Alejandro P WhobreyFranceBernardo Dominic UNQUALIFIED
Alejandro L SaylorsFranceBernardo Dominic RENEWAL
Clifford B StensethAustraliaElwin Sharvill QUALIFIED
Morrow N CaudyCanadaAsiya Javayant UNQUALIFIED
Faith V CaldareraAustraliaXuxue Feng RENEWAL
Silvio D ShinkoBrazilAmy Elsner UNQUALIFIED
Aika Y AmigonGermanyIvan Magalhaes PROPOSAL
Sinclair Y PerinCanadaOnyama Limba UNQUALIFIED
Kadeem L AlbaresBrazilOnyama Limba UNQUALIFIED
Julie X PaprockiSpainIvan Magalhaes NEGOTIATION
Costa S MaletIndiaOnyama Limba UNQUALIFIED
Nicolas A BowleyGermanyElwin Sharvill RENEWAL
James B FerenczCanadaIoni Bowcher QUALIFIED
Ivar Z StockhamRussiaOnyama Limba NEW
Sinclair A DarakjyArgentinaStephen Shaw UNQUALIFIED
Murillo Q BologniaItalyStephen Shaw UNQUALIFIED
Costa P BologniaJapanAnna Fali NEGOTIATION
Kaitlin N CampainFranceAsiya Javayant RENEWAL
Rodrigues E SaylorsCanadaIvan Magalhaes UNQUALIFIED
Greenwood A DilliardUnited KingdomAmy Elsner NEW
Misaki J SaylorsRussiaElwin Sharvill PROPOSAL
Ricardo C SaylorsIndiaAmy Elsner RENEWAL
Antonio C MarrierCanadaOnyama Limba QUALIFIED
Maisha K CaldareraFranceIvan Magalhaes NEW
Johnson U KuskoAustraliaIvan Magalhaes PROPOSAL
Claire G InouyeBrazilBernardo Dominic NEW
Aika G WhobreyGermanyOnyama Limba NEGOTIATION
Stacey M GauchoArgentinaAnna Fali NEW
Leja K BowleyItalyAsiya Javayant RENEWAL
Cody X WaycottItalyIvan Magalhaes RENEWAL
Claire Z GillianCanadaStephen Shaw RENEWAL
Jennifer Z GarufiRussiaStephen Shaw PROPOSAL
David A SaylorsItalyXuxue Feng 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>