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
Morrow K RimBrazilOnyama Limba NEW
Silvio F InouyeBrazilAsiya Javayant RENEWAL
Emily N RimRussiaOnyama Limba NEW
Clifford W BologniaBrazilAsiya Javayant UNQUALIFIED
Mayumi W InouyeJapanAmy Elsner UNQUALIFIED
Faith I GlickCanadaIvan Magalhaes UNQUALIFIED
Antonio A RulapaughUnited KingdomAnna Fali NEGOTIATION
Wickens R ChuiArgentinaBernardo Dominic NEW
Maisha S RimCanadaBernardo Dominic UNQUALIFIED
Tony O SaylorsIndiaAnna Fali PROPOSAL
Jefferson F SergiCanadaIoni Bowcher UNQUALIFIED
Arvin I VocelkaCanadaStephen Shaw UNQUALIFIED
Ivar D VocelkaArgentinaAnna Fali QUALIFIED
Salvatore J ButtAustraliaAnna Fali UNQUALIFIED
Cody H CaudyAustraliaBernardo Dominic PROPOSAL
Stacey J PerinItalyStephen Shaw NEGOTIATION
Antonio A MorascaFranceAnna Fali PROPOSAL
Misaki I VenereGermanyXuxue Feng RENEWAL
Maisha J SlusarskiArgentinaStephen Shaw NEW
Jennifer N AmigonUnited KingdomOnyama Limba NEW
Cody P MaletJapanAsiya Javayant QUALIFIED
Claire Q WaycottJapanAnna Fali UNQUALIFIED
Wickens T CaldareraCanadaAmy Elsner QUALIFIED
Julie C FollerAustraliaXuxue Feng UNQUALIFIED
Kaitlin Y NestleJapanBernardo Dominic PROPOSAL
Greenwood G WieserAustraliaIoni Bowcher RENEWAL
Salvatore H OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Adams N SergiRussiaAnna Fali NEW
Misaki Q GarufiGermanyIoni Bowcher UNQUALIFIED
Ricardo F SchemmerArgentinaElwin Sharvill PROPOSAL
Greenwood A ChuiItalyIoni Bowcher NEGOTIATION
Arvin F PerinRussiaIoni Bowcher NEW
Nicolas L GauchoRussiaAnna Fali QUALIFIED
Izzy X CaldareraBrazilStephen Shaw RENEWAL
Jones R SlusarskiArgentinaAnna Fali QUALIFIED
Maisha B KolmetzGermanyBernardo Dominic NEW
Kadeem L InouyeRussiaAmy Elsner PROPOSAL
Kadeem V IturbideIndiaOnyama Limba PROPOSAL
Sinclair R RoysterAustraliaAnna Fali NEW
Alejandro W TollnerItalyBernardo Dominic NEW
Morrow K FerenczJapanStephen Shaw PROPOSAL
Leon S GauchoSpainBernardo Dominic PROPOSAL
Jones I MaletSpainIoni Bowcher UNQUALIFIED
Aruna Q SaylorsAustraliaAmy Elsner NEW
Arvin L FigeroaRussiaAnna Fali NEW
Johnson I MaletGermanyAnna Fali RENEWAL
Kaitlin M InouyeGermanyStephen Shaw UNQUALIFIED
Jeanfrancois F NickaJapanOnyama Limba RENEWAL
Francesco U RimGermanyBernardo Dominic RENEWAL
Maria O MaletAustraliaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa M MacleadArgentinaIvan Magalhaes NEW
Nicolas X PerinFranceStephen Shaw NEW
Nicolas P AmigonBrazilBernardo Dominic QUALIFIED
Munro T SergiIndiaAmy Elsner UNQUALIFIED
Darci S ButtCanadaAnna Fali NEGOTIATION
Alejandro K GlickBrazilAnna Fali UNQUALIFIED
Julie U NestleCanadaElwin Sharvill QUALIFIED
Chavez Z DoeUnited KingdomIvan Magalhaes NEW
Smith C DilliardAustraliaBernardo Dominic QUALIFIED
Wickens Y OstroskyArgentinaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia B DilliardJapan2024-04-24Printing Dimensions QUALIFIED22Stephen Shaw
1001Wickens A KolmetzIndia2024-04-24Feltz Printing Service RENEWAL76Stephen Shaw
1002Deepesh L WhobreyArgentina2024-04-14Feltz Printing Service NEW85Ioni Bowcher
1003Cody F NickaCanada2024-04-19Chapman, Ross E Esq QUALIFIED28Amy Elsner
1004Smith X FollerFrance2024-04-02Chapman, Ross E Esq NEW34Bernardo Dominic
1005Isabel B IturbideFrance2024-03-31Benton, John B Jr PROPOSAL13Bernardo Dominic
1006Stacey J TollnerGermany2024-04-07Chapman, Ross E Esq RENEWAL65Onyama Limba
1007Aditya P TollnerSpain2024-04-16Dorl, James J Esq NEGOTIATION93Xuxue Feng
1008Leon Q KolmetzSpain2024-04-03Chanay, Jeffrey A Esq QUALIFIED16Ioni Bowcher
1009Tony A MacleadIndia2024-04-22Truhlar And Truhlar Attys NEGOTIATION85Ivan Magalhaes
1010Chavez G DarakjyFrance2024-03-31Truhlar And Truhlar Attys NEGOTIATION60Ivan Magalhaes
1011Morrow K OstroskyFrance2024-03-29Dorl, James J Esq NEGOTIATION1Ivan Magalhaes
1012Chavez F BowleyJapan2024-04-17King, Christopher A Esq NEW76Ivan Magalhaes
1013Mujtaba N KuskoSpain2024-04-19Commercial Press NEW34Ioni Bowcher
1014Tony F PoquetteArgentina2024-04-15Morlong Associates QUALIFIED8Stephen Shaw
1015Francesco Z FerenczCanada2024-04-13Chemel, James L Cpa UNQUALIFIED18Asiya Javayant
1016Emily S MaletUnited Kingdom2024-04-14Rousseaux, Michael Esq NEGOTIATION82Bernardo Dominic
1017Murillo P PerinGermany2024-04-18Commercial Press QUALIFIED56Xuxue Feng
1018Mujtaba G KuskoBrazil2024-03-29Dorl, James J Esq PROPOSAL25Onyama Limba
1019Aruna V OstroskyUnited Kingdom2024-04-24Printing Dimensions NEW86Asiya Javayant
1020Jennifer N SchemmerGermany2024-04-21Morlong Associates NEW15Stephen Shaw
1021Jennifer U CaldareraAustralia2024-04-09Feltz Printing Service NEW94Elwin Sharvill
1022Antonio N MorascaCanada2024-04-25Printing Dimensions UNQUALIFIED29Onyama Limba
1023Izzy M MaletRussia2024-03-28Feiner Bros QUALIFIED52Amy Elsner
1024Isabel F InouyeAustralia2024-04-18Feltz Printing Service NEW14Ivan Magalhaes
1025Arvin H RulapaughRussia2024-04-25Feiner Bros NEGOTIATION74Ioni Bowcher
1026Francesco L GarufiGermany2024-04-12Chanay, Jeffrey A Esq NEW4Stephen Shaw
1027Nicolas Y StensethIndia2024-04-13Morlong Associates NEGOTIATION13Anna Fali
1028Maria E MaletArgentina2024-04-19Buckley Miller Wright RENEWAL15Anna Fali
1029Leon F WhobreyFrance2024-04-17Printing Dimensions RENEWAL82Ivan Magalhaes
1030Emily G FerenczRussia2024-04-17Chapman, Ross E Esq UNQUALIFIED25Ivan Magalhaes
1031Maria B WieserBrazil2024-03-28Morlong Associates NEGOTIATION29Stephen Shaw
1032Stacey C KolmetzRussia2024-04-20Dorl, James J Esq QUALIFIED98Elwin Sharvill
1033Aruna Y BowleyBrazil2024-04-05Dorl, James J Esq NEGOTIATION29Ivan Magalhaes
1034Faith I PaprockiSpain2024-04-21King, Christopher A Esq RENEWAL88Anna Fali
1035Maria M VocelkaUnited Kingdom2024-04-16Feltz Printing Service UNQUALIFIED16Anna Fali
1036Octavia I BriddickArgentina2024-04-17Buckley Miller Wright NEGOTIATION54Stephen Shaw
1037Mayumi B FlosiJapan2024-04-23Printing Dimensions QUALIFIED68Anna Fali
1038Ricardo D MaletFrance2024-04-25Feiner Bros PROPOSAL85Onyama Limba
1039Izzy O TollnerAustralia2024-04-06Rousseaux, Michael Esq PROPOSAL12Bernardo Dominic
1040Aruna W PoquetteSpain2024-04-12Chanay, Jeffrey A Esq NEGOTIATION80Ivan Magalhaes
1041Emily H StockhamArgentina2024-03-31Buckley Miller Wright NEW67Stephen Shaw
1042Octavia V CaldareraFrance2024-04-10Printing Dimensions QUALIFIED4Ioni Bowcher
1043Costa S StockhamAustralia2024-04-21Benton, John B Jr NEW38Amy Elsner
1044Rodrigues W PerinBrazil2024-04-06Commercial Press NEGOTIATION14Anna Fali
1045Rodrigues K GlickRussia2024-04-18Rangoni Of Florence UNQUALIFIED4Elwin Sharvill
1046Rodrigues U PerinItaly2024-04-06Rousseaux, Michael Esq QUALIFIED5Xuxue Feng
1047Sinclair Z MaletJapan2024-04-03Chanay, Jeffrey A Esq NEGOTIATION87Ioni Bowcher
1048Costa V DilliardUnited Kingdom2024-03-29Chemel, James L Cpa QUALIFIED16Xuxue Feng
1049Morrow E RulapaughGermany2024-03-29Chapman, Ross E Esq QUALIFIED32Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith H AmigonItalyAsiya Javayant RENEWAL
Deepesh M ButtRussiaIvan Magalhaes NEW
Mayumi I DilliardCanadaStephen Shaw NEW
Juan E RulapaughRussiaStephen Shaw PROPOSAL
Wickens R SchemmerJapanStephen Shaw RENEWAL
Jeanfrancois A MaletGermanyAsiya Javayant QUALIFIED
Emily E ButtFranceAsiya Javayant NEGOTIATION
Maria O PaprockiGermanyElwin Sharvill QUALIFIED
Tony E GillianUnited KingdomElwin Sharvill PROPOSAL
Maisha S FlosiFranceAnna Fali NEGOTIATION
Izzy Q BowleyArgentinaAsiya Javayant QUALIFIED
Aika W MacleadItalyIoni Bowcher NEGOTIATION
Leja W KuskoUnited KingdomBernardo Dominic QUALIFIED
Salvatore X GarufiAustraliaAmy Elsner UNQUALIFIED
Chavez Z InouyeUnited KingdomStephen Shaw NEGOTIATION
Jones R CaldareraUnited KingdomAsiya Javayant RENEWAL
Kadeem S GarufiIndiaAnna Fali NEW
Wickens D RoysterCanadaOnyama Limba NEW
Aika M RoysterItalyIoni Bowcher QUALIFIED
Johnson G DilliardGermanyIoni Bowcher NEW
Emily A MaletSpainIvan Magalhaes RENEWAL
Arvin T AmigonJapanAnna Fali NEW
Aika W KuskoBrazilAsiya Javayant NEGOTIATION
Adams C MorascaUnited KingdomStephen Shaw NEW
Murillo Q StockhamGermanyIoni Bowcher UNQUALIFIED
Aditya H FerenczGermanyElwin Sharvill UNQUALIFIED
Julie D CaldareraFranceIvan Magalhaes NEW
Claire J SchemmerAustraliaIvan Magalhaes QUALIFIED
Jones V RutaFranceOnyama Limba PROPOSAL
Kadeem H OstroskyRussiaOnyama Limba PROPOSAL
Kadeem D KolmetzGermanyXuxue Feng NEGOTIATION
Darci Q SchemmerItalyElwin Sharvill UNQUALIFIED
Ricardo G BologniaArgentinaBernardo Dominic NEGOTIATION
Darci C WaycottArgentinaAmy Elsner PROPOSAL
Morrow K VenereFranceElwin Sharvill NEW
Ashley U FlosiArgentinaOnyama Limba UNQUALIFIED
Wickens S FollerFranceXuxue Feng UNQUALIFIED
Kadeem R StockhamJapanAnna Fali NEW
Cody U SaylorsCanadaXuxue Feng RENEWAL
Ivar B WieserRussiaXuxue Feng PROPOSAL
Maria N MorascaJapanAnna Fali NEW
Maria A VocelkaRussiaStephen Shaw NEW
Leon M InouyeIndiaAnna Fali PROPOSAL
Juan X GauchoArgentinaStephen Shaw NEGOTIATION
Jefferson K GlickUnited KingdomAnna Fali NEW
Jennifer B FollerItalyXuxue Feng QUALIFIED
Kadeem P GlickItalyIvan Magalhaes QUALIFIED
Julie L AmigonRussiaAnna Fali PROPOSAL
Faith C BowleySpainStephen Shaw PROPOSAL
Faith Q MacleadUnited KingdomXuxue Feng UNQUALIFIED
Frozen Columns
Name
Aditya V Nestle
Maisha R Venere
Aditya M Darakjy
Mujtaba L Kolmetz
Chavez V Perin
Jeanfrancois R Kolmetz
Antonio E Doe
James E Chui
Claire S Inouye
Rodrigues F Whobrey
Stacey K Waycott
Isabel A Sergi
Chavez P Malet
Cody A Ostrosky
Juan Z Paprocki
Claire D Marrier
Kaitlin O Caldarera
Salvatore D Wieser
Kadeem W Kolmetz
Isabel Q Figeroa
Jeanfrancois W Caldarera
Morrow A Foller
Salvatore K Flosi
Kadeem K Doe
Ivar E Dilliard
Kadeem H Rim
Claire E Ferencz
Aditya T Perin
Jennifer O Bolognia
Deepesh Z Saylors
Sinclair E Nicka
Cody C Wieser
Emily E Sergi
Cody Q Maclead
Adams C Whobrey
Munro I Foller
Juan Y Nicka
Jeanfrancois Y Malet
Ashley X Amigon
Smith C Saylors
David K Venere
Julie L Sergi
Tony U Gaucho
Stacey S Albares
Leon E Vocelka
Deepesh N Tollner
Arvin B Flosi
Cody X Saylors
Aditya M Figeroa
Emily R Dilliard
IdCountryDate
1000Canada2024-04-02
1001Canada2024-04-04
1002Japan2024-03-28
1003India2024-04-11
1004Spain2024-04-25
1005Germany2024-03-30
1006Japan2024-04-20
1007Canada2024-04-07
1008Spain2024-04-25
1009Germany2024-03-31
1010United Kingdom2024-04-25
1011Canada2024-04-23
1012Brazil2024-04-17
1013Australia2024-04-18
1014United Kingdom2024-04-13
1015United Kingdom2024-04-16
1016France2024-04-19
1017Canada2024-04-19
1018Japan2024-04-15
1019Spain2024-03-31
1020United Kingdom2024-04-21
1021Spain2024-03-31
1022Brazil2024-04-25
1023Argentina2024-03-30
1024Australia2024-04-08
1025Brazil2024-04-16
1026United Kingdom2024-04-20
1027Japan2024-04-08
1028France2024-04-24
1029United Kingdom2024-04-18
1030Spain2024-04-04
1031Russia2024-04-24
1032Italy2024-04-13
1033Australia2024-04-20
1034India2024-04-26
1035Argentina2024-04-13
1036United Kingdom2024-04-01
1037India2024-03-28
1038Spain2024-04-08
1039France2024-03-30
1040Spain2024-03-30
1041United Kingdom2024-04-08
1042United Kingdom2024-04-13
1043Brazil2024-04-01
1044United Kingdom2024-04-02
1045Japan2024-03-28
1046India2024-04-06
1047Argentina2024-04-06
1048Italy2024-04-07
1049Italy2024-04-15

On-Demand Data

NameIdCountryDate
Adams Y Perin1000Brazil2024-04-14
Ricardo X Waycott1001Japan2024-04-24
Tony B Rulapaugh1002Italy2024-04-22
Juan K Figeroa1003India2024-04-08
Maisha V Ostrosky1004France2024-04-04
Antonio Z Poquette1005Japan2024-04-25
Octavia O Saylors1006Spain2024-04-09
Cody E Figeroa1007Russia2024-04-19
Julie J Morasca1008Argentina2024-04-23
David H Malet1009Argentina2024-04-14
Smith N Garufi1010Spain2024-03-31
Salvatore E Doe1011Japan2024-04-14
Emily T Caldarera1012Germany2024-04-07
Morrow V Malet1013Argentina2024-04-23
Chavez I Venere1014United Kingdom2024-04-08
Cody R Whobrey1015United Kingdom2024-04-04
Murillo G Perin1016India2024-04-14
Darci G Royster1017Japan2024-04-14
Octavia Y Campain1018Russia2024-04-20
Aika O Inouye1019Brazil2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki Z CampainCanadaXuxue Feng PROPOSAL
Wickens Y PoquetteJapanIoni Bowcher UNQUALIFIED
Greenwood J DoeGermanyAmy Elsner NEGOTIATION
Darci O StockhamRussiaBernardo Dominic PROPOSAL
Emily R StensethItalyAsiya Javayant NEW
Cody J MarrierIndiaIvan Magalhaes NEW
Mayumi Y MaletSpainIvan Magalhaes RENEWAL
Jefferson M DoeSpainIvan Magalhaes PROPOSAL
Rodrigues Z KuskoRussiaAsiya Javayant QUALIFIED
Aruna V PaprockiCanadaXuxue Feng QUALIFIED
Jeanfrancois A MaletFranceIvan Magalhaes RENEWAL
Aruna W GarufiBrazilAmy Elsner RENEWAL
Faith E SergiArgentinaElwin Sharvill RENEWAL
Octavia Z CaldareraBrazilElwin Sharvill UNQUALIFIED
Maria B CaudyGermanyElwin Sharvill NEW
Claire G FlosiGermanyOnyama Limba QUALIFIED
Jeanfrancois H CaldareraGermanyAsiya Javayant PROPOSAL
Cody B IturbideIndiaXuxue Feng UNQUALIFIED
Sinclair Z KolmetzIndiaBernardo Dominic NEGOTIATION
Chavez H PaprockiArgentinaElwin Sharvill PROPOSAL
Smith Q GillianBrazilOnyama Limba NEW
Faith Y MaletIndiaIvan Magalhaes PROPOSAL
Leon O CaldareraJapanAsiya Javayant NEGOTIATION
Arvin Z VocelkaSpainIvan Magalhaes NEGOTIATION
Claire M NestleBrazilXuxue Feng QUALIFIED
Jennifer W PoquetteJapanAsiya Javayant QUALIFIED
Izzy W CaldareraIndiaAsiya Javayant PROPOSAL
Claire M DarakjyFranceOnyama Limba NEW
Francesco S OldroydFranceAnna Fali NEW
David J IturbideItalyElwin Sharvill NEGOTIATION
Darci Q PaprockiIndiaIvan Magalhaes QUALIFIED
Octavia Z FigeroaItalyXuxue Feng RENEWAL
Chavez U MorascaBrazilIoni Bowcher NEW
Tony S WaycottIndiaXuxue Feng QUALIFIED
Arvin N CaldareraGermanyIoni Bowcher NEW
Aruna Q MarrierArgentinaAsiya Javayant NEW
Faith U PaprockiIndiaBernardo Dominic UNQUALIFIED
Sinclair J InouyeAustraliaBernardo Dominic NEW
Murillo X WieserItalyOnyama Limba NEW
Kadeem S WieserAustraliaBernardo Dominic 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>