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
Ashley J TollnerIndiaAnna Fali NEW
Claire W ShinkoArgentinaXuxue Feng QUALIFIED
Antonio V CaldareraIndiaAsiya Javayant PROPOSAL
Darci U SaylorsJapanAmy Elsner UNQUALIFIED
Johnson W AmigonFranceIvan Magalhaes QUALIFIED
Jones C BowleyFranceBernardo Dominic NEW
Cody J OldroydGermanyXuxue Feng NEGOTIATION
Chavez B BologniaBrazilElwin Sharvill QUALIFIED
Mujtaba J SergiGermanyElwin Sharvill UNQUALIFIED
David M GlickArgentinaAnna Fali RENEWAL
Darci T CaldareraCanadaBernardo Dominic NEW
Ivar N DoeIndiaIvan Magalhaes NEW
Darci O StockhamIndiaElwin Sharvill QUALIFIED
Maisha M NestleCanadaOnyama Limba QUALIFIED
Faith J WieserIndiaAnna Fali RENEWAL
Isabel Q BriddickRussiaOnyama Limba NEW
Clifford M StensethGermanyOnyama Limba NEGOTIATION
Cody L CampainItalyBernardo Dominic RENEWAL
Ashley U GarufiUnited KingdomIoni Bowcher NEGOTIATION
Ivar V PerinArgentinaStephen Shaw NEW
Chavez Z FerenczUnited KingdomElwin Sharvill QUALIFIED
Kaitlin K GillianItalyElwin Sharvill PROPOSAL
Ashley S IturbideSpainBernardo Dominic UNQUALIFIED
Jefferson Z GauchoIndiaStephen Shaw UNQUALIFIED
Leon F PoquetteItalyElwin Sharvill NEGOTIATION
Deepesh A GauchoArgentinaAsiya Javayant RENEWAL
Costa Q GlickUnited KingdomStephen Shaw NEW
Faith U CampainAustraliaIvan Magalhaes NEGOTIATION
Wickens K PoquetteJapanElwin Sharvill NEW
Maria K OstroskyJapanBernardo Dominic QUALIFIED
Leja D DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Kadeem R OldroydItalyElwin Sharvill QUALIFIED
Isabel X TollnerSpainAsiya Javayant QUALIFIED
Antonio L WaycottCanadaXuxue Feng PROPOSAL
Juan S FlosiIndiaOnyama Limba NEW
Jennifer D DoeFranceBernardo Dominic RENEWAL
Francesco E WaycottUnited KingdomAmy Elsner NEGOTIATION
Jefferson A FigeroaGermanyIoni Bowcher NEGOTIATION
Octavia F FollerGermanyBernardo Dominic NEW
Morrow S StensethCanadaXuxue Feng NEW
Francesco V GauchoAustraliaStephen Shaw NEGOTIATION
Ashley M VocelkaAustraliaElwin Sharvill NEGOTIATION
Clifford Q NickaGermanyIoni Bowcher UNQUALIFIED
Mujtaba W FerenczCanadaIoni Bowcher PROPOSAL
Murillo E MaletUnited KingdomBernardo Dominic NEW
Silvio I BriddickCanadaBernardo Dominic NEGOTIATION
Deepesh B ChuiRussiaAnna Fali UNQUALIFIED
Emily F DoeItalyAnna Fali RENEWAL
Leon G RoysterCanadaIvan Magalhaes PROPOSAL
Arvin J GillianSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer R GlickItalyBernardo Dominic RENEWAL
Aditya G VenereGermanyIoni Bowcher UNQUALIFIED
Jefferson U KuskoJapanAnna Fali PROPOSAL
Izzy W GarufiBrazilBernardo Dominic PROPOSAL
Cody S OstroskyBrazilOnyama Limba UNQUALIFIED
Aruna Q BologniaSpainElwin Sharvill UNQUALIFIED
Jeanfrancois I ShinkoRussiaOnyama Limba PROPOSAL
Maisha G InouyeRussiaIvan Magalhaes PROPOSAL
Jennifer X PerinBrazilStephen Shaw QUALIFIED
Juan P GauchoSpainXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David L ButtFrance2024-04-24King, Christopher A Esq NEW1Stephen Shaw
1001Leja Z ShinkoAustralia2024-04-24Chemel, James L Cpa PROPOSAL30Onyama Limba
1002Kaitlin C RimCanada2024-04-17Commercial Press PROPOSAL83Ioni Bowcher
1003Aika K FollerJapan2024-05-12Truhlar And Truhlar Attys UNQUALIFIED92Stephen Shaw
1004Murillo F InouyeGermany2024-04-15Feiner Bros NEGOTIATION34Anna Fali
1005Antonio K DoeArgentina2024-04-19Chemel, James L Cpa QUALIFIED41Anna Fali
1006Jennifer J DilliardFrance2024-05-06Feltz Printing Service QUALIFIED82Onyama Limba
1007Wickens B FollerJapan2024-04-21Buckley Miller Wright NEGOTIATION99Amy Elsner
1008Ricardo U WieserFrance2024-05-04Rousseaux, Michael Esq UNQUALIFIED96Elwin Sharvill
1009Greenwood Q OldroydCanada2024-05-03Feiner Bros RENEWAL60Amy Elsner
1010Faith O RoysterJapan2024-04-30Buckley Miller Wright UNQUALIFIED9Onyama Limba
1011Murillo L RoysterArgentina2024-05-02Chanay, Jeffrey A Esq NEW47Onyama Limba
1012Jefferson V BologniaJapan2024-05-03Buckley Miller Wright QUALIFIED90Stephen Shaw
1013Leja P FlosiArgentina2024-04-22Feiner Bros NEGOTIATION66Onyama Limba
1014James Q IturbideItaly2024-05-11Commercial Press NEW83Xuxue Feng
1015Rodrigues M OstroskyCanada2024-04-20Feltz Printing Service PROPOSAL49Bernardo Dominic
1016Mujtaba Z VenereCanada2024-04-14Chapman, Ross E Esq QUALIFIED26Amy Elsner
1017Claire K FlosiBrazil2024-04-28Commercial Press UNQUALIFIED32Asiya Javayant
1018Julie E VocelkaJapan2024-05-11Chapman, Ross E Esq QUALIFIED98Ivan Magalhaes
1019Maria N KuskoJapan2024-04-22Chapman, Ross E Esq RENEWAL67Stephen Shaw
1020Kaitlin U NestleItaly2024-04-20Buckley Miller Wright UNQUALIFIED36Amy Elsner
1021Izzy J KuskoAustralia2024-04-21Commercial Press QUALIFIED91Ioni Bowcher
1022Aika T SchemmerCanada2024-04-30Rousseaux, Michael Esq QUALIFIED62Elwin Sharvill
1023Leja D CaudySpain2024-04-27Truhlar And Truhlar Attys RENEWAL97Xuxue Feng
1024Wickens Z GauchoItaly2024-05-08Buckley Miller Wright QUALIFIED20Asiya Javayant
1025Jennifer Y GarufiRussia2024-05-09Benton, John B Jr PROPOSAL60Bernardo Dominic
1026Ashley C FlosiIndia2024-04-29Chapman, Ross E Esq NEW69Onyama Limba
1027Octavia U TollnerRussia2024-04-30Chapman, Ross E Esq QUALIFIED49Stephen Shaw
1028Arvin G WhobreyGermany2024-04-18Chemel, James L Cpa UNQUALIFIED3Xuxue Feng
1029Chavez E GauchoGermany2024-05-10Feltz Printing Service QUALIFIED17Xuxue Feng
1030James K WaycottSpain2024-04-17Commercial Press NEW96Bernardo Dominic
1031Julie C BologniaUnited Kingdom2024-04-20Chanay, Jeffrey A Esq NEW80Onyama Limba
1032Clifford Y NickaIndia2024-05-10Printing Dimensions QUALIFIED49Xuxue Feng
1033Ricardo P GarufiItaly2024-04-23Feltz Printing Service PROPOSAL64Onyama Limba
1034Ricardo U PaprockiGermany2024-05-02Rousseaux, Michael Esq RENEWAL70Stephen Shaw
1035Kadeem P IturbideCanada2024-05-01Commercial Press RENEWAL43Amy Elsner
1036Francesco D ShinkoItaly2024-04-26Chemel, James L Cpa NEW53Anna Fali
1037Adams Q BologniaAustralia2024-05-11Buckley Miller Wright PROPOSAL22Xuxue Feng
1038Nicolas W VenereFrance2024-05-01Benton, John B Jr NEGOTIATION69Amy Elsner
1039Ivar V RimRussia2024-04-24Benton, John B Jr QUALIFIED97Anna Fali
1040Chavez S MorascaFrance2024-04-16Benton, John B Jr PROPOSAL64Bernardo Dominic
1041Francesco F NestleCanada2024-05-10Benton, John B Jr UNQUALIFIED31Elwin Sharvill
1042Leon U DarakjyJapan2024-05-11Rangoni Of Florence QUALIFIED31Xuxue Feng
1043Alejandro O MacleadSpain2024-04-15Chemel, James L Cpa NEW96Bernardo Dominic
1044Greenwood A ShinkoAustralia2024-04-14Rousseaux, Michael Esq RENEWAL94Xuxue Feng
1045Cody U RutaArgentina2024-04-27Chanay, Jeffrey A Esq QUALIFIED46Ivan Magalhaes
1046Antonio F RutaRussia2024-05-04Morlong Associates NEW62Xuxue Feng
1047Maisha X BologniaSpain2024-05-05Buckley Miller Wright UNQUALIFIED66Ivan Magalhaes
1048David D SlusarskiBrazil2024-05-08Truhlar And Truhlar Attys NEW51Anna Fali
1049James R VenereJapan2024-04-21Chanay, Jeffrey A Esq NEGOTIATION89Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Adams K SchemmerGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois F VocelkaCanadaAnna Fali QUALIFIED
Jennifer V MaletGermanyIoni Bowcher PROPOSAL
Kadeem G NestleArgentinaIvan Magalhaes QUALIFIED
Deepesh S PerinAustraliaIoni Bowcher NEGOTIATION
Nicolas R ChuiSpainElwin Sharvill UNQUALIFIED
Chavez J AmigonBrazilAsiya Javayant PROPOSAL
Maisha S IturbideFranceAmy Elsner QUALIFIED
Alejandro T MaletBrazilBernardo Dominic UNQUALIFIED
Greenwood V CaldareraGermanyStephen Shaw UNQUALIFIED
Kadeem K GillianUnited KingdomBernardo Dominic NEW
Emily L SchemmerRussiaStephen Shaw NEGOTIATION
Jeanfrancois G DoeCanadaStephen Shaw PROPOSAL
Ashley D BologniaGermanyIoni Bowcher QUALIFIED
Mayumi J ButtItalyIoni Bowcher RENEWAL
Darci O MaletGermanyIvan Magalhaes NEW
Tony B BowleyGermanyBernardo Dominic QUALIFIED
Jones J GauchoAustraliaStephen Shaw NEW
Deepesh E FollerUnited KingdomAnna Fali RENEWAL
Aruna G RimIndiaAnna Fali PROPOSAL
Faith X SaylorsIndiaIoni Bowcher NEGOTIATION
Kaitlin D GarufiIndiaIvan Magalhaes RENEWAL
Misaki J DoeIndiaXuxue Feng PROPOSAL
Rodrigues M FollerSpainElwin Sharvill NEGOTIATION
Claire B MaletJapanAmy Elsner UNQUALIFIED
Claire U InouyeItalyAnna Fali NEW
Tony I BologniaAustraliaOnyama Limba PROPOSAL
Murillo G StensethUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore E BriddickIndiaXuxue Feng RENEWAL
James N RulapaughRussiaAmy Elsner QUALIFIED
Alejandro Y MacleadIndiaOnyama Limba PROPOSAL
Salvatore J BologniaArgentinaAnna Fali RENEWAL
Maisha U GarufiGermanyIvan Magalhaes RENEWAL
Nicolas V ChuiArgentinaElwin Sharvill RENEWAL
Aruna C SlusarskiGermanyBernardo Dominic NEGOTIATION
Costa P NickaArgentinaIoni Bowcher NEW
Costa A MarrierItalyBernardo Dominic PROPOSAL
Maria L IturbideAustraliaXuxue Feng RENEWAL
Aika S BologniaSpainIvan Magalhaes NEGOTIATION
Ashley S ChuiCanadaIoni Bowcher UNQUALIFIED
Misaki D MaletAustraliaBernardo Dominic NEW
Alejandro Z InouyeArgentinaIoni Bowcher PROPOSAL
Francesco D NestleGermanyIvan Magalhaes UNQUALIFIED
Mujtaba T CampainGermanyIvan Magalhaes PROPOSAL
Jones O CaldareraItalyXuxue Feng NEW
Aditya M StockhamFranceAnna Fali NEW
Claire H KolmetzGermanyAnna Fali PROPOSAL
Aditya K MaletFranceIoni Bowcher RENEWAL
Mujtaba G OldroydBrazilIvan Magalhaes RENEWAL
Rodrigues Z InouyeItalyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Mujtaba S Darakjy
Ricardo Y Slusarski
Murillo B Stenseth
Kadeem V Doe
Octavia X Foller
Adams W Chui
Ricardo Y Garufi
Emily I Stenseth
David W Bowley
Chavez H Stenseth
Jones N Whobrey
Smith K Albares
Chavez D Saylors
Antonio T Waycott
Ricardo Q Kolmetz
Ivar R Venere
Adams V Nicka
Chavez T Caudy
Faith G Maclead
Mujtaba H Caldarera
Leja C Maclead
Deepesh J Nicka
Octavia L Glick
Greenwood O Paprocki
Tony W Caldarera
Francesco C Dilliard
Morrow K Doe
Izzy R Ostrosky
Wickens G Paprocki
Alejandro G Rim
Aruna O Gillian
Deepesh Y Chui
Octavia M Chui
James L Whobrey
Misaki A Nestle
Mujtaba F Dilliard
Cody E Caldarera
Aditya A Flosi
Murillo F Waycott
Sinclair A Perin
Leon V Waycott
Isabel S Schemmer
Darci B Wieser
Jefferson P Dilliard
Kaitlin V Venere
James E Butt
Wickens I Waycott
Isabel O Ostrosky
Arvin X Caldarera
Costa X Glick
IdCountryDate
1000Russia2024-04-20
1001Japan2024-05-09
1002Argentina2024-04-19
1003Brazil2024-04-15
1004India2024-05-10
1005India2024-05-06
1006Australia2024-05-03
1007Italy2024-05-03
1008India2024-05-10
1009Canada2024-04-21
1010Germany2024-05-10
1011Canada2024-04-15
1012Russia2024-04-18
1013Russia2024-05-03
1014Australia2024-05-10
1015United Kingdom2024-05-01
1016Russia2024-04-24
1017Australia2024-04-25
1018Germany2024-05-12
1019Russia2024-04-29
1020Brazil2024-05-13
1021Italy2024-05-08
1022Japan2024-04-29
1023France2024-04-15
1024Japan2024-04-24
1025Spain2024-05-10
1026Germany2024-05-03
1027France2024-04-21
1028Germany2024-04-27
1029France2024-05-04
1030Germany2024-04-25
1031Canada2024-04-21
1032Italy2024-04-24
1033Australia2024-04-17
1034Japan2024-04-25
1035Australia2024-04-17
1036Brazil2024-05-09
1037India2024-04-21
1038Australia2024-04-22
1039Spain2024-05-12
1040Brazil2024-05-04
1041Australia2024-05-10
1042United Kingdom2024-04-21
1043Australia2024-04-30
1044United Kingdom2024-05-07
1045Australia2024-04-15
1046Canada2024-04-16
1047Spain2024-05-10
1048Spain2024-05-04
1049Japan2024-05-10

On-Demand Data

NameIdCountryDate
Munro H Kolmetz1000Australia2024-05-08
Antonio A Shinko1001France2024-05-08
Jones B Royster1002Italy2024-04-18
Kaitlin C Ostrosky1003Russia2024-05-02
Murillo S Stenseth1004Italy2024-05-09
James Y Whobrey1005Germany2024-04-17
Clifford X Kolmetz1006France2024-05-03
Sinclair J Marrier1007France2024-05-08
Misaki G Gillian1008Canada2024-04-22
Johnson S Wieser1009Australia2024-04-15
Leon O Stockham1010Australia2024-04-22
Francesco O Albares1011Italy2024-04-20
Greenwood Z Kolmetz1012Canada2024-04-22
Silvio N Gillian1013India2024-04-19
Ashley L Caudy1014Canada2024-04-23
Jones G Ostrosky1015Argentina2024-05-12
Ashley Z Butt1016Spain2024-05-04
Francesco I Briddick1017Spain2024-05-07
Maria Q Maclead1018United Kingdom2024-04-22
Tony X Chui1019Germany2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya T MacleadArgentinaAmy Elsner NEGOTIATION
Isabel A MarrierGermanyAmy Elsner UNQUALIFIED
Costa W ShinkoJapanXuxue Feng RENEWAL
Mayumi E IturbideBrazilAmy Elsner RENEWAL
Kadeem W FerenczItalyXuxue Feng NEGOTIATION
Leja N DilliardItalyAnna Fali QUALIFIED
Aruna O AmigonIndiaIoni Bowcher RENEWAL
Cody L NestleGermanyIvan Magalhaes NEGOTIATION
Leja D TollnerItalyBernardo Dominic NEW
Mayumi L ChuiCanadaAsiya Javayant QUALIFIED
Arvin K ButtFranceXuxue Feng PROPOSAL
Nicolas A SlusarskiUnited KingdomAnna Fali QUALIFIED
Maria P RoysterBrazilAnna Fali NEW
Jones L AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Julie N AmigonUnited KingdomAnna Fali QUALIFIED
Alejandro U GillianAustraliaAnna Fali NEW
Rodrigues K SchemmerArgentinaAmy Elsner NEW
Stacey M DarakjySpainIvan Magalhaes UNQUALIFIED
Ricardo H BriddickCanadaElwin Sharvill NEGOTIATION
Alejandro Z RulapaughJapanAmy Elsner NEGOTIATION
Silvio C NickaRussiaAsiya Javayant QUALIFIED
Francesco N GillianItalyBernardo Dominic NEGOTIATION
Isabel Z ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Jones B MaletUnited KingdomStephen Shaw UNQUALIFIED
Deepesh H NickaItalyIvan Magalhaes NEW
Jefferson K GillianBrazilIoni Bowcher RENEWAL
Misaki D MorascaAustraliaOnyama Limba NEGOTIATION
Alejandro L SaylorsUnited KingdomIvan Magalhaes NEW
Arvin S IturbideAustraliaIoni Bowcher UNQUALIFIED
Clifford S MorascaBrazilStephen Shaw PROPOSAL
Jennifer O KolmetzRussiaAmy Elsner QUALIFIED
David Q DarakjyBrazilAsiya Javayant PROPOSAL
Francesco A MorascaCanadaBernardo Dominic PROPOSAL
Julie F RutaJapanAnna Fali UNQUALIFIED
Emily V ButtItalyAsiya Javayant RENEWAL
Chavez X KuskoSpainAsiya Javayant NEGOTIATION
Jones D VocelkaFranceStephen Shaw PROPOSAL
Misaki V MaletAustraliaIoni Bowcher NEW
Costa O PaprockiItalyBernardo Dominic QUALIFIED
Juan V FlosiBrazilOnyama Limba 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>