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
Johnson S FlosiCanadaAmy Elsner QUALIFIED
Rodrigues T MacleadUnited KingdomIoni Bowcher PROPOSAL
Claire S CaldareraIndiaIvan Magalhaes PROPOSAL
Clifford J CampainSpainAmy Elsner NEGOTIATION
James X VenereAustraliaAsiya Javayant PROPOSAL
Claire M SchemmerArgentinaAmy Elsner NEW
Munro C IturbideCanadaIvan Magalhaes NEGOTIATION
Aika N BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Arvin J GarufiBrazilOnyama Limba UNQUALIFIED
Silvio M FlosiCanadaAnna Fali NEW
Emily M ShinkoSpainOnyama Limba PROPOSAL
Costa K DoeSpainBernardo Dominic PROPOSAL
Kadeem E MacleadArgentinaElwin Sharvill NEGOTIATION
Deepesh M DilliardGermanyStephen Shaw NEW
Rodrigues U StensethIndiaAmy Elsner NEW
Julie B BowleyJapanAmy Elsner PROPOSAL
Stacey Q StockhamJapanBernardo Dominic RENEWAL
Smith J DarakjyGermanyXuxue Feng NEGOTIATION
Faith C CaudyCanadaAsiya Javayant PROPOSAL
Octavia O MacleadCanadaBernardo Dominic NEW
Jeanfrancois Q WhobreyAustraliaIoni Bowcher PROPOSAL
Munro M InouyeBrazilBernardo Dominic RENEWAL
Claire S KolmetzAustraliaOnyama Limba RENEWAL
Juan N GillianJapanAsiya Javayant RENEWAL
Ricardo X DilliardFranceIoni Bowcher RENEWAL
Clifford L OstroskyJapanOnyama Limba PROPOSAL
David F ButtIndiaAsiya Javayant QUALIFIED
Mujtaba D FollerItalyStephen Shaw UNQUALIFIED
Maisha Q WieserBrazilOnyama Limba NEW
Antonio C NickaAustraliaAsiya Javayant NEW
Juan X VocelkaArgentinaXuxue Feng QUALIFIED
Silvio E MarrierArgentinaAsiya Javayant NEW
David Y SergiArgentinaElwin Sharvill NEGOTIATION
Arvin K WhobreySpainIvan Magalhaes QUALIFIED
James R VocelkaArgentinaStephen Shaw NEW
Chavez Y ChuiRussiaAnna Fali NEGOTIATION
Isabel J KuskoRussiaOnyama Limba RENEWAL
Cody M DoeFranceBernardo Dominic QUALIFIED
Jennifer E SlusarskiRussiaElwin Sharvill PROPOSAL
Johnson K RulapaughSpainAmy Elsner NEGOTIATION
Johnson C ButtFranceAmy Elsner PROPOSAL
Stacey T StockhamAustraliaAnna Fali RENEWAL
Kadeem H BriddickItalyXuxue Feng NEGOTIATION
Sinclair M VenereArgentinaBernardo Dominic NEGOTIATION
Aruna G RutaItalyAsiya Javayant RENEWAL
Munro V RutaSpainIvan Magalhaes NEGOTIATION
Cody T OstroskyArgentinaIvan Magalhaes QUALIFIED
Murillo F RulapaughAustraliaBernardo Dominic RENEWAL
Smith H SchemmerGermanyStephen Shaw QUALIFIED
Rodrigues D GarufiAustraliaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson Y AlbaresAustraliaElwin Sharvill RENEWAL
Silvio I RoysterRussiaAmy Elsner RENEWAL
Aruna V MarrierCanadaIoni Bowcher RENEWAL
Kaitlin O MaletJapanIvan Magalhaes UNQUALIFIED
James Y ChuiRussiaStephen Shaw QUALIFIED
Aruna C SaylorsItalyOnyama Limba PROPOSAL
Darci X VocelkaItalyAmy Elsner QUALIFIED
Kadeem D BologniaSpainStephen Shaw UNQUALIFIED
Morrow G InouyeBrazilIoni Bowcher NEW
Claire M FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco G NestleArgentina2024-04-26King, Christopher A Esq RENEWAL84Ivan Magalhaes
1001Alejandro I GillianSpain2024-04-20Chemel, James L Cpa PROPOSAL17Bernardo Dominic
1002James C StensethBrazil2024-05-09Feltz Printing Service PROPOSAL13Ivan Magalhaes
1003Morrow U RutaFrance2024-05-16Truhlar And Truhlar Attys QUALIFIED15Asiya Javayant
1004Ashley L MaletUnited Kingdom2024-05-12Commercial Press RENEWAL3Amy Elsner
1005Aruna D SchemmerFrance2024-05-09Benton, John B Jr NEW58Onyama Limba
1006Stacey E MaletUnited Kingdom2024-04-21Printing Dimensions NEGOTIATION7Ioni Bowcher
1007Wickens K AmigonBrazil2024-05-04Morlong Associates RENEWAL0Ioni Bowcher
1008Antonio W WaycottJapan2024-04-29Rangoni Of Florence QUALIFIED27Ivan Magalhaes
1009Ashley L MaletRussia2024-04-26Rangoni Of Florence PROPOSAL47Amy Elsner
1010Deepesh C RulapaughArgentina2024-05-13Rousseaux, Michael Esq NEW46Amy Elsner
1011Munro I CaldareraArgentina2024-05-13Rangoni Of Florence QUALIFIED62Onyama Limba
1012Darci R CampainArgentina2024-05-12Chanay, Jeffrey A Esq NEGOTIATION23Asiya Javayant
1013Julie T RulapaughGermany2024-05-01Benton, John B Jr NEGOTIATION30Amy Elsner
1014Kadeem H MorascaFrance2024-05-15Feiner Bros QUALIFIED91Bernardo Dominic
1015Deepesh L ShinkoIndia2024-05-07Benton, John B Jr UNQUALIFIED80Elwin Sharvill
1016Leja A NickaFrance2024-04-21Buckley Miller Wright QUALIFIED42Amy Elsner
1017Antonio Q SergiAustralia2024-05-03Benton, John B Jr NEGOTIATION99Elwin Sharvill
1018Deepesh N AmigonFrance2024-04-20Feltz Printing Service NEW46Onyama Limba
1019Ricardo M ButtFrance2024-05-12Benton, John B Jr PROPOSAL54Asiya Javayant
1020Mayumi I SchemmerRussia2024-05-06Benton, John B Jr NEGOTIATION58Elwin Sharvill
1021Ivar A KolmetzGermany2024-04-30Chanay, Jeffrey A Esq RENEWAL17Anna Fali
1022Stacey H ShinkoGermany2024-05-15Morlong Associates NEGOTIATION75Amy Elsner
1023Mujtaba E BowleyBrazil2024-05-05Dorl, James J Esq QUALIFIED77Onyama Limba
1024Wickens Q GarufiUnited Kingdom2024-04-29King, Christopher A Esq UNQUALIFIED67Asiya Javayant
1025Aditya G RutaCanada2024-04-30Feiner Bros PROPOSAL38Stephen Shaw
1026Aruna L BologniaItaly2024-04-23King, Christopher A Esq UNQUALIFIED36Anna Fali
1027Mayumi C WhobreyJapan2024-05-08Rousseaux, Michael Esq NEGOTIATION49Bernardo Dominic
1028Antonio X RimBrazil2024-05-06Printing Dimensions NEGOTIATION81Ioni Bowcher
1029Jennifer A ChuiFrance2024-04-21Printing Dimensions NEW64Ioni Bowcher
1030Arvin W AlbaresIndia2024-05-06Feiner Bros NEGOTIATION64Stephen Shaw
1031Murillo S GlickJapan2024-05-05Morlong Associates UNQUALIFIED43Stephen Shaw
1032Mujtaba K OstroskyUnited Kingdom2024-04-18Feiner Bros PROPOSAL39Stephen Shaw
1033Aditya T NickaCanada2024-05-12Commercial Press QUALIFIED51Asiya Javayant
1034Jennifer A AlbaresItaly2024-04-21Chanay, Jeffrey A Esq NEW80Anna Fali
1035Morrow C GlickArgentina2024-05-05Rangoni Of Florence NEW59Stephen Shaw
1036Leja H BologniaRussia2024-05-05Dorl, James J Esq NEW77Amy Elsner
1037James D CaldareraItaly2024-04-21Chemel, James L Cpa QUALIFIED96Amy Elsner
1038Kadeem E KolmetzIndia2024-04-21Rangoni Of Florence RENEWAL84Anna Fali
1039Arvin B PaprockiFrance2024-05-16Buckley Miller Wright RENEWAL67Xuxue Feng
1040Adams Z StensethBrazil2024-05-07Truhlar And Truhlar Attys PROPOSAL60Asiya Javayant
1041Maisha O PoquetteUnited Kingdom2024-05-16Commercial Press NEW82Xuxue Feng
1042Johnson L TollnerCanada2024-04-21Printing Dimensions QUALIFIED41Elwin Sharvill
1043Maria U SlusarskiAustralia2024-04-29Buckley Miller Wright QUALIFIED32Amy Elsner
1044Aruna W TollnerItaly2024-05-07Dorl, James J Esq NEGOTIATION50Xuxue Feng
1045Salvatore C InouyeRussia2024-04-28Benton, John B Jr QUALIFIED55Stephen Shaw
1046Arvin K RutaGermany2024-04-21King, Christopher A Esq UNQUALIFIED13Asiya Javayant
1047Munro W FigeroaJapan2024-04-19Buckley Miller Wright PROPOSAL84Stephen Shaw
1048Darci E DarakjyAustralia2024-05-01Rangoni Of Florence NEGOTIATION89Stephen Shaw
1049Jennifer E DoeRussia2024-04-24Rangoni Of Florence QUALIFIED75Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
James P CaldareraItalyAsiya Javayant NEW
Francesco I NickaIndiaIoni Bowcher UNQUALIFIED
Julie E GlickArgentinaAmy Elsner UNQUALIFIED
Jennifer I GillianIndiaBernardo Dominic RENEWAL
Jeanfrancois Z GauchoRussiaBernardo Dominic NEW
Jennifer H MacleadRussiaAsiya Javayant PROPOSAL
Clifford J BowleyJapanBernardo Dominic NEGOTIATION
Izzy O CampainGermanyIoni Bowcher UNQUALIFIED
Francesco N DarakjyArgentinaAsiya Javayant RENEWAL
Jeanfrancois C IturbideRussiaIvan Magalhaes QUALIFIED
Leja R ShinkoJapanXuxue Feng QUALIFIED
Aditya I TollnerCanadaAmy Elsner QUALIFIED
Nicolas O GauchoArgentinaOnyama Limba NEGOTIATION
Nicolas V GauchoItalyOnyama Limba PROPOSAL
Antonio C VenereCanadaAmy Elsner PROPOSAL
Ivar J RoysterJapanAnna Fali NEW
Aika M ButtFranceAmy Elsner PROPOSAL
Kadeem Z WhobreyIndiaIvan Magalhaes RENEWAL
Greenwood K RulapaughArgentinaStephen Shaw UNQUALIFIED
Maisha U FollerFranceAmy Elsner UNQUALIFIED
Morrow M InouyeArgentinaIoni Bowcher PROPOSAL
Deepesh J PaprockiCanadaIvan Magalhaes NEGOTIATION
David B OldroydJapanElwin Sharvill PROPOSAL
Mayumi H SlusarskiSpainIoni Bowcher QUALIFIED
Morrow O FollerArgentinaIvan Magalhaes NEGOTIATION
Silvio M SaylorsAustraliaAsiya Javayant NEW
Kadeem A WieserItalyAsiya Javayant QUALIFIED
Tony Y GarufiArgentinaIvan Magalhaes QUALIFIED
Leja H PerinUnited KingdomAmy Elsner NEW
Chavez R FlosiSpainStephen Shaw NEGOTIATION
Alejandro P FollerGermanyXuxue Feng PROPOSAL
Murillo E RulapaughUnited KingdomStephen Shaw NEW
Arvin G WhobreyBrazilIoni Bowcher UNQUALIFIED
Ricardo J MaletGermanyBernardo Dominic NEW
Tony C DoeJapanIoni Bowcher NEGOTIATION
Morrow L OldroydUnited KingdomAnna Fali NEGOTIATION
Jefferson Q RoysterCanadaStephen Shaw NEW
Jefferson X StensethRussiaXuxue Feng NEGOTIATION
Nicolas S FlosiSpainStephen Shaw RENEWAL
Mayumi A SergiIndiaAmy Elsner NEGOTIATION
Clifford I DarakjySpainXuxue Feng RENEWAL
Johnson F GillianGermanyAnna Fali PROPOSAL
Ricardo S MarrierFranceBernardo Dominic PROPOSAL
Aika F PerinArgentinaStephen Shaw NEW
Isabel U MaletBrazilIoni Bowcher PROPOSAL
Clifford R KolmetzGermanyStephen Shaw QUALIFIED
Maria R ShinkoIndiaAnna Fali NEGOTIATION
Aditya M SaylorsBrazilXuxue Feng QUALIFIED
Jefferson I CaldareraItalyAsiya Javayant NEW
Mayumi V GlickItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Wickens A Oldroyd
Munro D Amigon
Cody U Stockham
Aditya I Figeroa
Jennifer F Albares
Faith I Stockham
James C Flosi
Munro A Foller
Francesco A Gaucho
Darci K Royster
Johnson R Morasca
Clifford C Bowley
Murillo M Briddick
Costa U Flosi
Jefferson M Slusarski
Rodrigues M Marrier
Misaki W Maclead
Salvatore X Bolognia
Leja R Flosi
Munro B Campain
Leja Q Dilliard
Jeanfrancois N Ferencz
Johnson F Amigon
Jefferson M Malet
Johnson R Stenseth
Jones O Figeroa
Rodrigues H Whobrey
Costa F Rulapaugh
Maisha Z Stockham
Alejandro B Gaucho
Jefferson U Foller
Munro J Paprocki
Maisha W Wieser
Izzy A Ostrosky
Kadeem Q Dilliard
Rodrigues T Rulapaugh
Aruna G Nicka
Antonio Q Maclead
Greenwood P Saylors
Costa F Nestle
Tony C Caldarera
Darci W Butt
Greenwood U Ferencz
Francesco D Wieser
Costa C Caldarera
Salvatore Q Perin
Rodrigues V Shinko
Silvio Y Flosi
Jeanfrancois K Amigon
Emily M Ruta
IdCountryDate
1000Brazil2024-05-09
1001Spain2024-04-29
1002Australia2024-04-28
1003Canada2024-04-30
1004Australia2024-05-16
1005Brazil2024-05-06
1006Argentina2024-05-07
1007Australia2024-04-22
1008Canada2024-05-03
1009Canada2024-05-08
1010Russia2024-05-14
1011Canada2024-04-18
1012Russia2024-05-04
1013Russia2024-04-23
1014Australia2024-05-14
1015Brazil2024-04-23
1016Argentina2024-04-20
1017India2024-04-24
1018France2024-04-18
1019United Kingdom2024-05-13
1020India2024-05-05
1021Argentina2024-04-30
1022Australia2024-05-10
1023Brazil2024-05-10
1024Russia2024-05-05
1025Russia2024-04-25
1026Brazil2024-05-05
1027India2024-05-16
1028Spain2024-05-15
1029Argentina2024-05-15
1030India2024-05-01
1031France2024-04-22
1032Japan2024-05-06
1033Russia2024-04-30
1034Germany2024-04-17
1035Italy2024-05-01
1036Japan2024-05-12
1037Brazil2024-05-08
1038France2024-05-02
1039Russia2024-04-24
1040Canada2024-04-20
1041Canada2024-05-12
1042India2024-04-25
1043Japan2024-05-05
1044Spain2024-04-29
1045Australia2024-04-28
1046Australia2024-05-09
1047Russia2024-05-01
1048Japan2024-05-06
1049Canada2024-04-19

On-Demand Data

NameIdCountryDate
Jefferson P Kolmetz1000Spain2024-05-01
Silvio H Maclead1001Australia2024-05-15
Ricardo N Vocelka1002France2024-05-14
Isabel S Schemmer1003Brazil2024-05-11
Salvatore J Maclead1004Russia2024-04-27
Aika O Briddick1005Russia2024-04-19
Isabel N Stenseth1006France2024-05-14
Cody U Rulapaugh1007Italy2024-05-01
Tony D Darakjy1008Canada2024-04-30
Cody D Chui1009Argentina2024-05-07
Cody W Flosi1010India2024-04-25
Maisha D Ostrosky1011Australia2024-05-11
Leon X Glick1012Canada2024-04-20
Mayumi I Venere1013Canada2024-05-06
Juan O Kolmetz1014Argentina2024-04-19
Sinclair K Kolmetz1015United Kingdom2024-05-14
Francesco R Waycott1016United Kingdom2024-04-20
Isabel N Chui1017Russia2024-04-25
Costa R Stockham1018Canada2024-05-05
Jefferson G Rulapaugh1019Germany2024-05-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo K CampainAustraliaAnna Fali PROPOSAL
Ashley L SchemmerUnited KingdomBernardo Dominic QUALIFIED
Arvin J RimFranceXuxue Feng NEGOTIATION
Aruna Q VocelkaJapanAsiya Javayant RENEWAL
Ashley Y DoeJapanAnna Fali QUALIFIED
Rodrigues J MaletAustraliaElwin Sharvill QUALIFIED
Misaki W MaletIndiaIoni Bowcher PROPOSAL
Isabel V ButtUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues A FlosiIndiaElwin Sharvill PROPOSAL
Arvin I OstroskyItalyBernardo Dominic RENEWAL
Kaitlin Q SaylorsFranceIoni Bowcher NEGOTIATION
Leja S AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Izzy R StockhamAustraliaIoni Bowcher NEGOTIATION
Wickens W GillianIndiaStephen Shaw PROPOSAL
Aruna D WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Francesco R MaletJapanBernardo Dominic QUALIFIED
Tony Q BriddickJapanElwin Sharvill NEGOTIATION
Mujtaba Q OldroydArgentinaXuxue Feng UNQUALIFIED
Julie A VocelkaArgentinaOnyama Limba NEGOTIATION
Aruna U DilliardJapanXuxue Feng RENEWAL
Jennifer I RoysterJapanAnna Fali NEW
Adams W GillianCanadaOnyama Limba QUALIFIED
Johnson O RutaArgentinaAnna Fali NEGOTIATION
Johnson T WhobreyItalyIoni Bowcher PROPOSAL
Ricardo K MaletIndiaXuxue Feng NEGOTIATION
Leja W RimUnited KingdomIvan Magalhaes QUALIFIED
Clifford T RimFranceElwin Sharvill NEW
David F StockhamRussiaOnyama Limba QUALIFIED
Ivar E ButtFranceElwin Sharvill NEW
Maria E NickaBrazilStephen Shaw QUALIFIED
Leja J GarufiFranceIvan Magalhaes PROPOSAL
Emily A TollnerGermanyAnna Fali UNQUALIFIED
Maria G AmigonArgentinaStephen Shaw QUALIFIED
Maisha C ButtIndiaIvan Magalhaes NEGOTIATION
Mujtaba H ButtGermanyAsiya Javayant PROPOSAL
Murillo Z VenereArgentinaElwin Sharvill NEW
Faith A MacleadFranceAsiya Javayant QUALIFIED
Julie A OstroskyIndiaAmy Elsner NEGOTIATION
Clifford X VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar A FlosiRussiaElwin 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>