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
Jennifer V SlusarskiSpainElwin Sharvill NEGOTIATION
Munro I SaylorsGermanyElwin Sharvill NEW
Arvin I InouyeRussiaOnyama Limba RENEWAL
Kaitlin Z GauchoRussiaBernardo Dominic NEGOTIATION
Johnson N SlusarskiUnited KingdomXuxue Feng PROPOSAL
Tony O CaldareraAustraliaElwin Sharvill QUALIFIED
Antonio H BowleyFranceIvan Magalhaes PROPOSAL
Jennifer J BriddickIndiaOnyama Limba NEW
Leja Y OldroydBrazilAsiya Javayant UNQUALIFIED
Maisha D CampainGermanyAnna Fali NEW
Mujtaba P NestleSpainIvan Magalhaes NEW
Kaitlin G KolmetzItalyIoni Bowcher QUALIFIED
Mayumi Z SaylorsJapanAmy Elsner NEW
Alejandro Q ButtUnited KingdomStephen Shaw PROPOSAL
Tony U GarufiSpainIvan Magalhaes NEGOTIATION
Salvatore K GillianJapanXuxue Feng RENEWAL
Ricardo P KuskoItalyBernardo Dominic NEGOTIATION
Wickens H BologniaCanadaAnna Fali PROPOSAL
David E KolmetzItalyAsiya Javayant PROPOSAL
Kaitlin M MaletBrazilXuxue Feng NEGOTIATION
Claire A ButtBrazilXuxue Feng NEW
Cody F RoysterRussiaAsiya Javayant QUALIFIED
Juan A GauchoArgentinaAsiya Javayant NEW
Adams F BriddickJapanIoni Bowcher UNQUALIFIED
Antonio J GillianAustraliaIvan Magalhaes QUALIFIED
Aruna J FerenczCanadaAmy Elsner PROPOSAL
Francesco P SchemmerIndiaElwin Sharvill UNQUALIFIED
Alejandro L SergiItalyIvan Magalhaes NEW
Claire G PoquetteIndiaAsiya Javayant RENEWAL
Emily R CampainCanadaElwin Sharvill NEGOTIATION
Aruna I DoeIndiaIoni Bowcher PROPOSAL
Tony S GarufiArgentinaAmy Elsner QUALIFIED
Kadeem G RulapaughJapanOnyama Limba NEGOTIATION
Murillo I FerenczArgentinaOnyama Limba NEW
Stacey P RutaSpainBernardo Dominic NEW
Leon K KolmetzIndiaXuxue Feng NEGOTIATION
Leja I PoquetteGermanyElwin Sharvill NEGOTIATION
Maria O CaudyItalyIvan Magalhaes QUALIFIED
Claire T SlusarskiCanadaOnyama Limba NEGOTIATION
Costa T KolmetzArgentinaBernardo Dominic UNQUALIFIED
Faith H FerenczSpainAnna Fali QUALIFIED
Chavez K MarrierIndiaAnna Fali NEW
Julie G GauchoSpainStephen Shaw UNQUALIFIED
Clifford N GauchoItalyBernardo Dominic RENEWAL
Clifford B MarrierIndiaBernardo Dominic RENEWAL
Mayumi R MaletFranceAnna Fali UNQUALIFIED
Julie W TollnerAustraliaBernardo Dominic PROPOSAL
David L GauchoAustraliaOnyama Limba PROPOSAL
Sinclair U GillianUnited KingdomBernardo Dominic PROPOSAL
Salvatore Z GarufiAustraliaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ivar K OldroydRussiaElwin Sharvill NEGOTIATION
Darci C PerinFranceAsiya Javayant RENEWAL
Leon A SlusarskiArgentinaXuxue Feng PROPOSAL
Jefferson W BriddickSpainBernardo Dominic NEGOTIATION
Johnson Y OstroskyBrazilXuxue Feng NEGOTIATION
Kaitlin S GauchoUnited KingdomBernardo Dominic QUALIFIED
Aditya V TollnerFranceXuxue Feng NEW
James F TollnerUnited KingdomBernardo Dominic RENEWAL
Darci O WieserRussiaAnna Fali UNQUALIFIED
Emily C PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh H CaudyFrance2024-04-07Truhlar And Truhlar Attys RENEWAL18Bernardo Dominic
1001David W OstroskyUnited Kingdom2024-04-16Chemel, James L Cpa RENEWAL38Bernardo Dominic
1002Wickens S RoysterFrance2024-04-03Commercial Press UNQUALIFIED22Onyama Limba
1003Ivar U CaldareraGermany2024-04-15Dorl, James J Esq UNQUALIFIED62Amy Elsner
1004Rodrigues P RoysterSpain2024-04-03Feltz Printing Service NEGOTIATION65Amy Elsner
1005Aruna I DoeBrazil2024-04-24Chapman, Ross E Esq QUALIFIED10Ivan Magalhaes
1006Ashley E SergiItaly2024-04-07Printing Dimensions NEW3Ioni Bowcher
1007Emily V AlbaresArgentina2024-04-15Commercial Press NEW14Ioni Bowcher
1008Kaitlin Z CampainRussia2024-04-09Chapman, Ross E Esq NEW13Stephen Shaw
1009Ivar I DarakjyJapan2024-04-28Feltz Printing Service RENEWAL96Asiya Javayant
1010Silvio M GauchoItaly2024-04-08Rousseaux, Michael Esq UNQUALIFIED46Stephen Shaw
1011Jones G GlickUnited Kingdom2024-04-25Buckley Miller Wright NEW2Ivan Magalhaes
1012Leon A VenereIndia2024-04-29Morlong Associates NEGOTIATION16Ioni Bowcher
1013Darci C MorascaIndia2024-04-15Commercial Press QUALIFIED95Ivan Magalhaes
1014Aruna T KuskoUnited Kingdom2024-04-05Chemel, James L Cpa QUALIFIED77Xuxue Feng
1015Morrow Z ChuiFrance2024-04-22Morlong Associates NEGOTIATION28Elwin Sharvill
1016Aditya H AmigonFrance2024-04-23Feiner Bros NEGOTIATION45Anna Fali
1017Rodrigues M SaylorsSpain2024-04-24Feiner Bros NEGOTIATION85Ivan Magalhaes
1018Mayumi D DoeFrance2024-04-08Dorl, James J Esq NEGOTIATION21Ioni Bowcher
1019Aditya G BologniaFrance2024-04-02Truhlar And Truhlar Attys RENEWAL53Asiya Javayant
1020Jennifer Z KolmetzGermany2024-04-05King, Christopher A Esq RENEWAL97Onyama Limba
1021Silvio B DilliardUnited Kingdom2024-04-14Buckley Miller Wright UNQUALIFIED62Elwin Sharvill
1022Nicolas D FerenczJapan2024-04-17Feiner Bros NEW31Asiya Javayant
1023Stacey Y MorascaAustralia2024-04-16Morlong Associates QUALIFIED37Xuxue Feng
1024Octavia A MaletUnited Kingdom2024-04-10Feltz Printing Service RENEWAL67Ivan Magalhaes
1025Kaitlin Q TollnerCanada2024-04-26Dorl, James J Esq PROPOSAL18Ioni Bowcher
1026Maria H FigeroaSpain2024-04-18Commercial Press PROPOSAL12Onyama Limba
1027Aika L SchemmerFrance2024-04-18Rangoni Of Florence NEGOTIATION16Asiya Javayant
1028Faith G MaletArgentina2024-04-21Feltz Printing Service NEW33Amy Elsner
1029Faith J MacleadSpain2024-04-14Truhlar And Truhlar Attys RENEWAL34Stephen Shaw
1030Maria Q NickaUnited Kingdom2024-04-30King, Christopher A Esq RENEWAL60Onyama Limba
1031Salvatore Z OstroskyAustralia2024-04-23Rousseaux, Michael Esq UNQUALIFIED70Stephen Shaw
1032David S InouyeRussia2024-04-12Morlong Associates PROPOSAL34Stephen Shaw
1033Claire V FigeroaIndia2024-04-12Commercial Press UNQUALIFIED58Onyama Limba
1034Kadeem J MacleadIndia2024-04-06Chanay, Jeffrey A Esq PROPOSAL65Onyama Limba
1035Morrow O WhobreyItaly2024-04-15Morlong Associates NEW36Elwin Sharvill
1036Francesco N CaldareraJapan2024-04-17Buckley Miller Wright PROPOSAL2Amy Elsner
1037Cody T MorascaCanada2024-04-08Morlong Associates QUALIFIED89Ivan Magalhaes
1038Ricardo A IturbideAustralia2024-04-27Truhlar And Truhlar Attys QUALIFIED98Asiya Javayant
1039Rodrigues O SaylorsRussia2024-04-16Benton, John B Jr NEW78Amy Elsner
1040Claire T MacleadIndia2024-04-13Benton, John B Jr NEGOTIATION80Bernardo Dominic
1041Morrow V DoeUnited Kingdom2024-04-22Chemel, James L Cpa UNQUALIFIED63Ioni Bowcher
1042Izzy W KuskoGermany2024-04-16Feiner Bros QUALIFIED71Elwin Sharvill
1043Ashley W ButtRussia2024-04-22King, Christopher A Esq UNQUALIFIED48Asiya Javayant
1044Morrow I PaprockiBrazil2024-04-03Chapman, Ross E Esq NEW62Asiya Javayant
1045Jones A CaldareraRussia2024-04-18King, Christopher A Esq RENEWAL31Ioni Bowcher
1046Faith H MaletCanada2024-04-15Benton, John B Jr NEW33Anna Fali
1047Cody F ChuiArgentina2024-05-01Feiner Bros NEW62Anna Fali
1048Adams H GlickBrazil2024-04-15Commercial Press RENEWAL19Anna Fali
1049Isabel H BowleyBrazil2024-04-14Chemel, James L Cpa PROPOSAL12Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Costa X AlbaresItalyIoni Bowcher UNQUALIFIED
Ashley U SlusarskiArgentinaBernardo Dominic RENEWAL
Clifford E SchemmerJapanAnna Fali NEGOTIATION
Izzy E CaldareraItalyElwin Sharvill PROPOSAL
Clifford I CaldareraArgentinaIoni Bowcher NEGOTIATION
Greenwood L CaldareraItalyElwin Sharvill NEW
Salvatore L RimArgentinaStephen Shaw RENEWAL
Leja Z GlickRussiaStephen Shaw UNQUALIFIED
Mayumi S NickaRussiaStephen Shaw NEW
Johnson I NestleItalyAnna Fali PROPOSAL
Cody Y SchemmerAustraliaAnna Fali NEW
Cody S BologniaItalyStephen Shaw NEW
Maisha H WaycottRussiaIoni Bowcher RENEWAL
Jefferson B BowleyBrazilIoni Bowcher PROPOSAL
Silvio I StockhamSpainOnyama Limba RENEWAL
James Q ChuiSpainElwin Sharvill PROPOSAL
Ricardo P GlickItalyOnyama Limba NEGOTIATION
Aruna I VocelkaCanadaStephen Shaw UNQUALIFIED
Sinclair Q ButtIndiaElwin Sharvill QUALIFIED
Jeanfrancois Y BologniaCanadaOnyama Limba UNQUALIFIED
Rodrigues U PerinSpainAnna Fali PROPOSAL
Costa O RulapaughFranceIoni Bowcher NEGOTIATION
Misaki M GauchoRussiaIvan Magalhaes UNQUALIFIED
Stacey Q MarrierUnited KingdomAnna Fali RENEWAL
Misaki M TollnerArgentinaBernardo Dominic QUALIFIED
Deepesh V WaycottItalyAsiya Javayant UNQUALIFIED
Jones Z DoeCanadaAmy Elsner NEW
Ashley R StockhamArgentinaBernardo Dominic RENEWAL
Ashley J FigeroaGermanyAnna Fali NEGOTIATION
Maria H DarakjyIndiaAnna Fali NEGOTIATION
Mayumi B DilliardSpainAnna Fali NEW
Octavia I RimRussiaAmy Elsner QUALIFIED
Kadeem W TollnerAustraliaXuxue Feng NEW
Misaki W TollnerItalyAsiya Javayant QUALIFIED
Leon V MarrierItalyStephen Shaw NEW
Octavia S AlbaresRussiaIoni Bowcher UNQUALIFIED
Antonio B GillianGermanyIvan Magalhaes NEGOTIATION
Alejandro H FollerAustraliaAsiya Javayant QUALIFIED
Johnson M VenereJapanStephen Shaw QUALIFIED
Greenwood G FlosiItalyAnna Fali PROPOSAL
Murillo L PaprockiAustraliaAsiya Javayant QUALIFIED
Mayumi P ShinkoSpainXuxue Feng NEW
Emily D NestleAustraliaBernardo Dominic UNQUALIFIED
Claire L WieserAustraliaXuxue Feng PROPOSAL
Deepesh T WieserArgentinaIvan Magalhaes RENEWAL
Kadeem F AlbaresItalyBernardo Dominic NEGOTIATION
Ivar R CaudyBrazilOnyama Limba NEW
Arvin U InouyeUnited KingdomStephen Shaw RENEWAL
Rodrigues P RulapaughCanadaIoni Bowcher NEW
Deepesh Y ButtItalyIvan Magalhaes NEW
Frozen Columns
Name
Leon U Briddick
Cody L Amigon
Salvatore Y Waycott
Izzy I Sergi
Mujtaba D Foller
Greenwood W Dilliard
Juan U Garufi
Juan K Kusko
Darci Q Bowley
Juan Y Amigon
Sinclair W Gaucho
Murillo I Bolognia
Maria L Stenseth
Mayumi F Oldroyd
Adams G Doe
Johnson V Bolognia
Tony I Gaucho
Adams S Rulapaugh
James O Bowley
Antonio Y Waycott
Chavez R Bolognia
Mujtaba Z Marrier
Nicolas T Schemmer
Cody O Schemmer
Costa Q Rim
Costa P Amigon
Nicolas V Chui
Salvatore Y Doe
Ricardo P Campain
Rodrigues I Caldarera
Francesco G Caldarera
Smith L Nicka
Aika Y Butt
Juan H Shinko
Smith S Ostrosky
Sinclair N Glick
Faith B Sergi
Tony B Garufi
Wickens W Figeroa
Claire N Bolognia
Darci O Chui
Greenwood F Whobrey
Ashley S Malet
James A Wieser
Tony T Paprocki
Mujtaba C Shinko
Nicolas O Marrier
Alejandro J Kusko
Octavia L Malet
Johnson A Dilliard
IdCountryDate
1000India2024-04-02
1001Australia2024-04-23
1002Spain2024-04-23
1003Germany2024-04-17
1004United Kingdom2024-04-04
1005Canada2024-04-11
1006Brazil2024-04-07
1007Russia2024-04-24
1008United Kingdom2024-04-20
1009Russia2024-04-16
1010Spain2024-05-01
1011India2024-04-15
1012United Kingdom2024-04-08
1013Spain2024-04-05
1014Spain2024-04-21
1015United Kingdom2024-04-29
1016Spain2024-04-03
1017Australia2024-04-20
1018Argentina2024-04-22
1019Japan2024-04-12
1020Brazil2024-04-30
1021France2024-04-17
1022Italy2024-04-17
1023Canada2024-04-10
1024Russia2024-04-04
1025United Kingdom2024-04-29
1026India2024-04-28
1027Italy2024-04-12
1028Canada2024-04-07
1029Germany2024-04-06
1030Brazil2024-04-11
1031Germany2024-04-23
1032Spain2024-04-28
1033Australia2024-04-29
1034India2024-04-08
1035Spain2024-04-24
1036Japan2024-04-05
1037Argentina2024-05-01
1038Spain2024-04-10
1039Canada2024-04-03
1040Russia2024-04-18
1041Argentina2024-04-05
1042Argentina2024-04-26
1043Italy2024-04-16
1044Australia2024-04-22
1045Japan2024-04-23
1046Germany2024-04-11
1047France2024-04-28
1048Canada2024-04-08
1049India2024-04-22

On-Demand Data

NameIdCountryDate
Ivar H Butt1000Japan2024-04-12
Aruna F Nicka1001Spain2024-04-27
Misaki I Ferencz1002France2024-05-01
Munro Z Figeroa1003Germany2024-05-01
Darci N Vocelka1004Australia2024-04-14
Maria V Figeroa1005France2024-04-10
Aruna L Nicka1006Argentina2024-04-29
Smith C Bolognia1007United Kingdom2024-04-26
Rodrigues N Foller1008France2024-04-02
Kaitlin W Nestle1009France2024-04-16
Francesco X Nicka1010Canada2024-04-28
Antonio P Nestle1011Russia2024-04-20
Morrow R Dilliard1012Japan2024-04-22
Silvio K Iturbide1013Australia2024-04-26
Claire N Sergi1014Japan2024-05-01
James I Saylors1015Argentina2024-04-25
Greenwood Z Albares1016Australia2024-04-07
Mujtaba Z Rulapaugh1017Canada2024-04-07
Jefferson I Perin1018Australia2024-04-04
Emily K Flosi1019Russia2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro S PerinRussiaAsiya Javayant NEW
Munro Y StockhamGermanyAmy Elsner QUALIFIED
James H BologniaJapanOnyama Limba QUALIFIED
Alejandro V MaletJapanAsiya Javayant UNQUALIFIED
Misaki F MacleadBrazilXuxue Feng QUALIFIED
Izzy Y RimFranceIvan Magalhaes PROPOSAL
Johnson U MaletAustraliaStephen Shaw NEGOTIATION
Stacey R KuskoUnited KingdomStephen Shaw NEW
Jones N GillianJapanOnyama Limba NEGOTIATION
Jeanfrancois W MaletIndiaIvan Magalhaes UNQUALIFIED
Smith K WaycottRussiaAmy Elsner NEGOTIATION
Munro V NickaJapanElwin Sharvill QUALIFIED
Costa L StensethIndiaAnna Fali NEGOTIATION
Salvatore X MaletCanadaAnna Fali NEW
Isabel G SaylorsIndiaXuxue Feng QUALIFIED
Jeanfrancois K RimArgentinaStephen Shaw QUALIFIED
Julie C StockhamFranceBernardo Dominic QUALIFIED
Munro D SaylorsIndiaBernardo Dominic QUALIFIED
Izzy J GlickBrazilElwin Sharvill PROPOSAL
Juan S ChuiUnited KingdomElwin Sharvill QUALIFIED
Stacey J PoquetteBrazilAmy Elsner PROPOSAL
Antonio D WaycottJapanStephen Shaw NEW
Leon N CaudyFranceElwin Sharvill NEGOTIATION
Adams S FerenczSpainOnyama Limba QUALIFIED
Costa I FlosiSpainAnna Fali RENEWAL
Jeanfrancois Z CaudyIndiaElwin Sharvill RENEWAL
Sinclair Y WaycottUnited KingdomAsiya Javayant RENEWAL
Tony Q PoquetteUnited KingdomElwin Sharvill PROPOSAL
Kadeem B GauchoIndiaAnna Fali UNQUALIFIED
Stacey R DilliardJapanXuxue Feng RENEWAL
Costa E SaylorsUnited KingdomAnna Fali UNQUALIFIED
Aika C DarakjyGermanyAsiya Javayant NEW
Alejandro U StockhamCanadaElwin Sharvill NEGOTIATION
David O GlickRussiaOnyama Limba UNQUALIFIED
Sinclair H SchemmerFranceIoni Bowcher NEGOTIATION
Ashley H SchemmerArgentinaAmy Elsner UNQUALIFIED
Wickens W RimArgentinaIoni Bowcher NEGOTIATION
David K KolmetzGermanyOnyama Limba PROPOSAL
Antonio A RoysterFranceStephen Shaw QUALIFIED
Emily B BriddickRussiaXuxue Feng RENEWAL

<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>