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
Rodrigues A ButtSpainAnna Fali QUALIFIED
Leja K OstroskyAustraliaIvan Magalhaes NEGOTIATION
Aika T MaletUnited KingdomAmy Elsner QUALIFIED
Misaki H IturbideRussiaAnna Fali QUALIFIED
Wickens T FollerFranceAnna Fali NEW
Maisha Q GarufiAustraliaOnyama Limba QUALIFIED
Misaki E MaletIndiaIvan Magalhaes RENEWAL
Juan L AmigonItalyIoni Bowcher QUALIFIED
Ricardo D DoeIndiaAsiya Javayant NEW
Juan N BriddickAustraliaElwin Sharvill UNQUALIFIED
Julie V SaylorsAustraliaIoni Bowcher NEGOTIATION
Julie M TollnerCanadaIoni Bowcher QUALIFIED
Johnson N MorascaGermanyAnna Fali NEGOTIATION
Jennifer L StensethItalyXuxue Feng RENEWAL
Ricardo Q InouyeSpainIoni Bowcher RENEWAL
Maria L GillianUnited KingdomIvan Magalhaes NEW
Nicolas W MorascaSpainElwin Sharvill RENEWAL
Mujtaba I WaycottBrazilElwin Sharvill PROPOSAL
Francesco L ShinkoRussiaAnna Fali UNQUALIFIED
Chavez P RulapaughCanadaAsiya Javayant NEW
James A KolmetzIndiaXuxue Feng RENEWAL
Maisha W PoquetteArgentinaBernardo Dominic NEGOTIATION
Arvin S TollnerArgentinaStephen Shaw RENEWAL
Maisha D WieserSpainAnna Fali NEW
Wickens Z DarakjyFranceElwin Sharvill RENEWAL
Misaki Y StockhamGermanyIoni Bowcher PROPOSAL
Chavez O CaudySpainXuxue Feng PROPOSAL
Costa C OldroydIndiaAmy Elsner RENEWAL
Deepesh X MacleadItalyAsiya Javayant NEW
Mujtaba J KuskoBrazilStephen Shaw UNQUALIFIED
Jeanfrancois Q SaylorsGermanyAsiya Javayant NEW
Izzy M AmigonGermanyIoni Bowcher RENEWAL
Mujtaba Q FerenczFranceAsiya Javayant QUALIFIED
James D FlosiBrazilXuxue Feng PROPOSAL
Aika D KuskoJapanIoni Bowcher PROPOSAL
Ivar V SergiAustraliaElwin Sharvill QUALIFIED
Salvatore L DarakjyItalyOnyama Limba QUALIFIED
Claire X PoquetteAustraliaIvan Magalhaes QUALIFIED
Aditya K MorascaJapanIoni Bowcher NEGOTIATION
David K FerenczJapanBernardo Dominic NEGOTIATION
Juan K DoeRussiaOnyama Limba NEW
Deepesh V VocelkaGermanyStephen Shaw NEW
Octavia N InouyeArgentinaIvan Magalhaes NEW
Jones D BriddickSpainXuxue Feng UNQUALIFIED
Wickens R ChuiArgentinaOnyama Limba UNQUALIFIED
Jefferson T RoysterSpainAmy Elsner RENEWAL
Kadeem M DarakjyFranceAmy Elsner RENEWAL
Aditya I GillianAustraliaAnna Fali NEGOTIATION
Rodrigues N ShinkoSpainAsiya Javayant NEGOTIATION
Faith M CaudyFranceAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Silvio P MacleadGermanyBernardo Dominic QUALIFIED
Aika B VenereArgentinaAsiya Javayant QUALIFIED
Maisha F MaletSpainXuxue Feng NEGOTIATION
Rodrigues S VocelkaCanadaIvan Magalhaes RENEWAL
Jeanfrancois L KolmetzFranceAsiya Javayant UNQUALIFIED
Aruna E DarakjyBrazilAmy Elsner NEW
Salvatore H StensethJapanStephen Shaw NEW
Silvio M MaletUnited KingdomElwin Sharvill PROPOSAL
Isabel X GillianFranceIoni Bowcher NEW
Wickens L FigeroaGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford O RulapaughUnited Kingdom2024-04-20Printing Dimensions RENEWAL13Onyama Limba
1001Johnson B RutaArgentina2024-04-04Benton, John B Jr PROPOSAL33Bernardo Dominic
1002Mayumi T DilliardIndia2024-04-14Chanay, Jeffrey A Esq NEW65Ivan Magalhaes
1003Jefferson X StockhamGermany2024-04-12Chemel, James L Cpa RENEWAL25Asiya Javayant
1004Tony N VenereBrazil2024-04-24King, Christopher A Esq NEW84Asiya Javayant
1005Adams Q AmigonFrance2024-04-09Printing Dimensions NEGOTIATION33Stephen Shaw
1006Jennifer A SchemmerIndia2024-04-10Feiner Bros UNQUALIFIED64Stephen Shaw
1007Rodrigues S DarakjyArgentina2024-04-08Dorl, James J Esq QUALIFIED68Ioni Bowcher
1008Kaitlin K SergiIndia2024-04-07Morlong Associates NEW68Amy Elsner
1009Aditya H SlusarskiFrance2024-04-03Chapman, Ross E Esq QUALIFIED17Xuxue Feng
1010Murillo A PerinCanada2024-04-16Dorl, James J Esq RENEWAL83Elwin Sharvill
1011Munro I MarrierGermany2024-03-31Rousseaux, Michael Esq RENEWAL88Asiya Javayant
1012Alejandro X PaprockiBrazil2024-04-08Rangoni Of Florence NEGOTIATION5Xuxue Feng
1013Rodrigues J GlickJapan2024-03-31Benton, John B Jr QUALIFIED93Stephen Shaw
1014Francesco D NickaAustralia2024-04-19Morlong Associates QUALIFIED0Onyama Limba
1015Misaki F CampainAustralia2024-04-10Benton, John B Jr RENEWAL54Ivan Magalhaes
1016Julie E MaletSpain2024-04-19Rangoni Of Florence NEW27Onyama Limba
1017Deepesh Z StensethRussia2024-03-29Chemel, James L Cpa UNQUALIFIED2Stephen Shaw
1018Arvin T SchemmerRussia2024-04-02Chapman, Ross E Esq NEGOTIATION13Xuxue Feng
1019Julie X FlosiCanada2024-04-16Printing Dimensions UNQUALIFIED85Stephen Shaw
1020Rodrigues J KuskoBrazil2024-04-20King, Christopher A Esq QUALIFIED48Ivan Magalhaes
1021Nicolas P PoquetteAustralia2024-03-29Chapman, Ross E Esq PROPOSAL53Anna Fali
1022Rodrigues T CampainRussia2024-04-13King, Christopher A Esq PROPOSAL39Asiya Javayant
1023Maria M StockhamUnited Kingdom2024-04-22Buckley Miller Wright NEGOTIATION77Anna Fali
1024Aika U WaycottFrance2024-04-25Dorl, James J Esq PROPOSAL51Anna Fali
1025Ashley H SaylorsUnited Kingdom2024-04-13Buckley Miller Wright QUALIFIED11Amy Elsner
1026Jefferson H PaprockiSpain2024-04-15Benton, John B Jr QUALIFIED49Asiya Javayant
1027Jones Y TollnerRussia2024-03-31Dorl, James J Esq NEGOTIATION30Ivan Magalhaes
1028Johnson O DilliardRussia2024-04-20Rangoni Of Florence NEW33Ioni Bowcher
1029Johnson G SlusarskiAustralia2024-03-28Chapman, Ross E Esq NEGOTIATION17Elwin Sharvill
1030Ivar O WaycottGermany2024-04-26Chapman, Ross E Esq PROPOSAL91Ivan Magalhaes
1031Francesco H MaletAustralia2024-04-01Benton, John B Jr NEW59Ioni Bowcher
1032Octavia Z MaletRussia2024-04-22Printing Dimensions NEGOTIATION9Ivan Magalhaes
1033Juan W StensethFrance2024-04-01Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1034Faith X RoysterBrazil2024-04-09Chemel, James L Cpa QUALIFIED46Bernardo Dominic
1035Johnson O BologniaJapan2024-03-31Chapman, Ross E Esq QUALIFIED97Elwin Sharvill
1036Costa G RimBrazil2024-04-12Rangoni Of Florence PROPOSAL2Xuxue Feng
1037Johnson M OstroskyUnited Kingdom2024-04-22Rousseaux, Michael Esq RENEWAL11Asiya Javayant
1038Tony L IturbideIndia2024-04-12King, Christopher A Esq NEW25Stephen Shaw
1039Smith Q SlusarskiItaly2024-04-23Feiner Bros NEW86Stephen Shaw
1040Jefferson A SaylorsIndia2024-04-26Feiner Bros NEW23Bernardo Dominic
1041Silvio E GlickRussia2024-04-18Commercial Press NEW81Elwin Sharvill
1042Jeanfrancois T CaldareraGermany2024-04-18Feltz Printing Service NEGOTIATION10Xuxue Feng
1043Kaitlin C NestleArgentina2024-04-25Printing Dimensions PROPOSAL67Amy Elsner
1044Munro P SlusarskiAustralia2024-04-04Chemel, James L Cpa QUALIFIED56Asiya Javayant
1045Isabel K KuskoItaly2024-04-14Dorl, James J Esq NEGOTIATION8Elwin Sharvill
1046Octavia Z ButtGermany2024-03-30Buckley Miller Wright QUALIFIED63Amy Elsner
1047Mujtaba D GillianSpain2024-04-19Rangoni Of Florence RENEWAL1Amy Elsner
1048Antonio F KolmetzUnited Kingdom2024-04-23Chemel, James L Cpa RENEWAL34Xuxue Feng
1049Costa J KuskoItaly2024-03-31Printing Dimensions UNQUALIFIED76Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Octavia H StensethSpainIoni Bowcher QUALIFIED
Aruna E StensethUnited KingdomIoni Bowcher NEGOTIATION
Jefferson G SlusarskiItalyStephen Shaw PROPOSAL
Munro C VenereCanadaAnna Fali PROPOSAL
Munro M FlosiItalyIvan Magalhaes NEW
Mayumi D GauchoIndiaStephen Shaw NEGOTIATION
Aditya E FerenczAustraliaAnna Fali NEW
Francesco P BowleyItalyOnyama Limba PROPOSAL
Smith Y MaletItalyIoni Bowcher QUALIFIED
Ricardo C MarrierFranceAmy Elsner QUALIFIED
Salvatore Y FlosiAustraliaAsiya Javayant UNQUALIFIED
Julie Z StensethFranceAsiya Javayant NEW
Greenwood F SlusarskiIndiaOnyama Limba RENEWAL
Kadeem D DoeUnited KingdomAmy Elsner RENEWAL
Jefferson I TollnerRussiaStephen Shaw PROPOSAL
Jennifer Y FigeroaRussiaBernardo Dominic UNQUALIFIED
Izzy W AlbaresIndiaOnyama Limba RENEWAL
Misaki C FollerItalyIvan Magalhaes QUALIFIED
Jones I AlbaresUnited KingdomAnna Fali QUALIFIED
Misaki V MorascaArgentinaAmy Elsner NEW
David Y PerinGermanyIvan Magalhaes QUALIFIED
Kaitlin D WaycottArgentinaAmy Elsner PROPOSAL
Stacey F GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Maria Q CaudyBrazilAnna Fali UNQUALIFIED
Leon H SchemmerGermanyAsiya Javayant QUALIFIED
Jones N KolmetzRussiaAmy Elsner UNQUALIFIED
Jefferson E BriddickFranceXuxue Feng NEW
Sinclair J FerenczSpainBernardo Dominic PROPOSAL
Juan W MaletIndiaXuxue Feng RENEWAL
Sinclair Y RutaBrazilAnna Fali QUALIFIED
Juan K PaprockiRussiaAnna Fali NEGOTIATION
Ashley M NickaArgentinaAmy Elsner RENEWAL
Smith H MaletSpainStephen Shaw UNQUALIFIED
Juan Y PerinAustraliaStephen Shaw PROPOSAL
Aika J SlusarskiItalyElwin Sharvill RENEWAL
Leja D GillianCanadaIoni Bowcher NEW
Johnson V CampainIndiaIvan Magalhaes PROPOSAL
Sinclair Y IturbideBrazilIoni Bowcher RENEWAL
Rodrigues W SergiIndiaXuxue Feng NEW
Izzy P AmigonRussiaIvan Magalhaes UNQUALIFIED
Izzy Z VenereIndiaIoni Bowcher PROPOSAL
Leja M SchemmerAustraliaElwin Sharvill QUALIFIED
Alejandro U WieserBrazilAsiya Javayant UNQUALIFIED
Maria L DilliardFranceAsiya Javayant PROPOSAL
Octavia Y WhobreyCanadaElwin Sharvill NEW
Clifford M PerinFranceIvan Magalhaes PROPOSAL
Jennifer F FollerGermanyXuxue Feng UNQUALIFIED
Juan J StensethRussiaIoni Bowcher PROPOSAL
Costa P WaycottSpainOnyama Limba QUALIFIED
Darci H SlusarskiGermanyAmy Elsner NEW
Frozen Columns
Name
Arvin F Saylors
Cody P Slusarski
Costa Q Nicka
Kadeem Y Vocelka
Julie L Doe
Tony K Caudy
Adams I Malet
Adams P Slusarski
Maria I Caudy
Stacey S Gillian
Morrow Z Albares
Francesco Z Kusko
Aruna G Stenseth
Aruna N Maclead
Aditya I Glick
Kadeem Y Figeroa
Tony N Iturbide
Cody V Glick
Julie L Nestle
Francesco Z Saylors
Aruna C Chui
Leon G Rulapaugh
Silvio O Foller
Rodrigues F Venere
Murillo H Oldroyd
Silvio L Dilliard
Jefferson U Bolognia
Izzy Y Sergi
Wickens L Darakjy
Aditya J Saylors
Leon A Darakjy
Johnson I Vocelka
Juan H Morasca
Emily D Caldarera
Emily S Amigon
Ashley A Whobrey
Wickens S Whobrey
Aruna S Slusarski
Nicolas E Slusarski
Sinclair B Venere
Leja L Maclead
Ivar U Perin
Greenwood G Butt
Silvio F Ruta
Misaki I Doe
Ricardo R Poquette
Nicolas X Oldroyd
Francesco S Caudy
Antonio E Nicka
Smith J Campain
IdCountryDate
1000Argentina2024-04-24
1001Australia2024-04-15
1002Italy2024-04-15
1003India2024-04-11
1004Brazil2024-04-26
1005Argentina2024-04-06
1006United Kingdom2024-04-26
1007Germany2024-04-09
1008Brazil2024-04-06
1009France2024-04-25
1010Japan2024-04-25
1011Italy2024-04-07
1012Japan2024-04-10
1013France2024-04-02
1014Germany2024-03-30
1015Australia2024-03-28
1016Japan2024-04-14
1017Canada2024-04-04
1018France2024-04-21
1019Spain2024-04-05
1020Spain2024-04-12
1021India2024-04-19
1022India2024-04-23
1023Japan2024-04-06
1024Italy2024-04-07
1025Italy2024-03-30
1026Russia2024-04-19
1027Brazil2024-04-08
1028Canada2024-04-11
1029Italy2024-04-09
1030France2024-04-03
1031Japan2024-04-22
1032Australia2024-04-12
1033France2024-04-05
1034Germany2024-04-22
1035United Kingdom2024-04-02
1036Canada2024-03-31
1037France2024-04-11
1038United Kingdom2024-03-29
1039United Kingdom2024-04-20
1040Germany2024-04-03
1041Argentina2024-04-03
1042Japan2024-04-15
1043Argentina2024-04-19
1044Canada2024-04-06
1045Japan2024-04-03
1046Spain2024-04-23
1047Spain2024-04-24
1048Spain2024-03-30
1049Australia2024-04-26

On-Demand Data

NameIdCountryDate
Kaitlin C Darakjy1000Germany2024-03-29
Smith G Figeroa1001Italy2024-04-24
Ashley U Bowley1002United Kingdom2024-04-07
Kadeem R Nicka1003Japan2024-04-14
Mayumi J Campain1004Russia2024-03-29
Munro X Flosi1005Brazil2024-04-07
Emily M Maclead1006Australia2024-04-21
Julie E Caudy1007Italy2024-03-31
Nicolas X Caudy1008Brazil2024-03-30
Rodrigues V Nicka1009Brazil2024-04-13
Ashley F Vocelka1010India2024-04-22
Salvatore U Whobrey1011Japan2024-04-19
Antonio L Ferencz1012United Kingdom2024-03-30
Antonio B Amigon1013Brazil2024-04-26
Jefferson Z Kusko1014Argentina2024-03-28
Ivar N Figeroa1015Germany2024-04-19
Maisha S Vocelka1016Brazil2024-04-08
Ashley Q Dilliard1017Canada2024-04-20
Mujtaba P Morasca1018France2024-04-10
Nicolas A Campain1019India2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna D FerenczJapanXuxue Feng UNQUALIFIED
Jennifer D CaudyFranceAmy Elsner RENEWAL
Ivar A CaudyIndiaBernardo Dominic NEGOTIATION
Julie H RutaCanadaIoni Bowcher NEGOTIATION
James M FigeroaRussiaBernardo Dominic UNQUALIFIED
Ivar X MarrierUnited KingdomAnna Fali QUALIFIED
Morrow K SlusarskiItalyIvan Magalhaes RENEWAL
Darci F MorascaCanadaAmy Elsner NEGOTIATION
Clifford K GarufiSpainAsiya Javayant RENEWAL
Jeanfrancois N NestleCanadaElwin Sharvill UNQUALIFIED
Mayumi J ChuiSpainXuxue Feng PROPOSAL
Isabel K AmigonJapanXuxue Feng NEGOTIATION
Munro Y VocelkaFranceAnna Fali PROPOSAL
Aditya F WaycottIndiaIvan Magalhaes RENEWAL
Tony Z SergiBrazilAmy Elsner PROPOSAL
Rodrigues Q CaudySpainOnyama Limba RENEWAL
Leja M PaprockiBrazilStephen Shaw RENEWAL
Jones N FlosiIndiaIoni Bowcher PROPOSAL
Aruna Y MarrierGermanyAsiya Javayant RENEWAL
Greenwood B FollerArgentinaAnna Fali PROPOSAL
Rodrigues P RimArgentinaAsiya Javayant NEGOTIATION
Johnson O GlickJapanXuxue Feng RENEWAL
Munro Q NickaJapanXuxue Feng PROPOSAL
Alejandro O GlickJapanStephen Shaw NEGOTIATION
Cody Z AlbaresJapanBernardo Dominic QUALIFIED
Clifford W ButtBrazilAnna Fali NEGOTIATION
Ivar Y OldroydFranceAnna Fali QUALIFIED
Jeanfrancois O AmigonAustraliaIoni Bowcher NEGOTIATION
Francesco I MacleadJapanXuxue Feng UNQUALIFIED
Emily B StensethFranceIoni Bowcher PROPOSAL
Francesco T AlbaresJapanAsiya Javayant NEW
Ivar Z DarakjyAustraliaOnyama Limba NEGOTIATION
Rodrigues X SlusarskiItalyIvan Magalhaes NEW
Isabel E StensethAustraliaElwin Sharvill QUALIFIED
Aruna F VenereAustraliaAnna Fali UNQUALIFIED
James U TollnerJapanAnna Fali NEGOTIATION
Stacey N WaycottAustraliaElwin Sharvill RENEWAL
Tony P StockhamUnited KingdomAsiya Javayant NEW
Nicolas M InouyeCanadaElwin Sharvill UNQUALIFIED
Kadeem T RoysterUnited KingdomXuxue Feng UNQUALIFIED

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