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
Murillo K MorascaSpainAsiya Javayant NEW
David M WieserRussiaElwin Sharvill NEW
Leja I ChuiFranceStephen Shaw PROPOSAL
Smith S ChuiFranceIoni Bowcher NEW
Misaki N WieserFranceXuxue Feng NEW
Aditya A DilliardFranceIvan Magalhaes NEGOTIATION
Aika W VocelkaUnited KingdomAsiya Javayant NEW
Ricardo D BowleyFranceAmy Elsner PROPOSAL
Munro X TollnerUnited KingdomIoni Bowcher NEGOTIATION
Maria X ShinkoCanadaStephen Shaw RENEWAL
Emily P FigeroaJapanXuxue Feng RENEWAL
Octavia M BriddickCanadaElwin Sharvill NEGOTIATION
Stacey V ShinkoGermanyAmy Elsner QUALIFIED
Aruna Q PoquetteArgentinaElwin Sharvill UNQUALIFIED
Salvatore L RimJapanIoni Bowcher UNQUALIFIED
Ivar Z BowleyIndiaAsiya Javayant UNQUALIFIED
Cody M GlickBrazilElwin Sharvill RENEWAL
Emily Z TollnerItalyOnyama Limba QUALIFIED
Morrow Z StensethArgentinaStephen Shaw NEGOTIATION
Stacey T AlbaresBrazilAmy Elsner RENEWAL
Deepesh K RutaSpainAnna Fali RENEWAL
Claire I StensethBrazilAmy Elsner NEGOTIATION
Adams F NestleArgentinaAmy Elsner UNQUALIFIED
David S PerinRussiaXuxue Feng UNQUALIFIED
Maria J DarakjyUnited KingdomIoni Bowcher RENEWAL
Mayumi T RulapaughCanadaIvan Magalhaes QUALIFIED
Alejandro E KuskoGermanyAnna Fali NEGOTIATION
Maria M WhobreySpainAsiya Javayant PROPOSAL
Wickens F WhobreySpainOnyama Limba PROPOSAL
James J CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow K OstroskyRussiaOnyama Limba UNQUALIFIED
Salvatore F ShinkoBrazilIoni Bowcher PROPOSAL
Clifford P MarrierCanadaElwin Sharvill PROPOSAL
Juan K GarufiItalyAmy Elsner RENEWAL
Jones B SaylorsSpainIoni Bowcher NEGOTIATION
Francesco F PerinUnited KingdomXuxue Feng NEW
Jeanfrancois A SergiArgentinaStephen Shaw PROPOSAL
Jefferson O SergiIndiaOnyama Limba UNQUALIFIED
Leja T WhobreyUnited KingdomElwin Sharvill UNQUALIFIED
Jones E KuskoArgentinaAnna Fali RENEWAL
Johnson C PaprockiSpainElwin Sharvill NEGOTIATION
Rodrigues B FollerItalyBernardo Dominic UNQUALIFIED
Julie S CaldareraIndiaStephen Shaw NEGOTIATION
Salvatore I StockhamGermanyXuxue Feng PROPOSAL
Nicolas C DarakjyArgentinaStephen Shaw RENEWAL
Faith E CampainFranceAnna Fali RENEWAL
Deepesh A RulapaughSpainStephen Shaw RENEWAL
Sinclair N GlickGermanyAsiya Javayant NEGOTIATION
Maisha H BologniaCanadaXuxue Feng UNQUALIFIED
Emily N RimUnited KingdomAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ivar G FollerSpainXuxue Feng NEW
Salvatore Q CaldareraJapanIoni Bowcher NEW
Darci D MorascaUnited KingdomAsiya Javayant NEW
Claire E OstroskyCanadaStephen Shaw NEW
Murillo L PerinSpainIvan Magalhaes RENEWAL
Clifford S WhobreyItalyOnyama Limba NEGOTIATION
Deepesh L WaycottIndiaIoni Bowcher NEGOTIATION
Nicolas I InouyeJapanBernardo Dominic NEW
Jeanfrancois N TollnerItalyElwin Sharvill NEGOTIATION
Maisha A InouyeItalyIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues R NickaJapan2024-04-15Feltz Printing Service NEW38Onyama Limba
1001Jeanfrancois S RulapaughFrance2024-04-12Rangoni Of Florence NEGOTIATION74Ioni Bowcher
1002Tony T SchemmerUnited Kingdom2024-04-11Rousseaux, Michael Esq UNQUALIFIED5Xuxue Feng
1003Aruna D MacleadJapan2024-03-27Rousseaux, Michael Esq NEGOTIATION41Amy Elsner
1004Murillo T MarrierBrazil2024-04-08Feltz Printing Service NEGOTIATION58Anna Fali
1005Octavia E NestleGermany2024-03-29Truhlar And Truhlar Attys RENEWAL85Bernardo Dominic
1006James F NestleUnited Kingdom2024-04-05Feltz Printing Service NEGOTIATION23Ivan Magalhaes
1007Ivar J GlickGermany2024-03-26Printing Dimensions RENEWAL80Asiya Javayant
1008Leon I MarrierRussia2024-04-15Commercial Press NEW98Onyama Limba
1009Alejandro T RutaCanada2024-04-15Buckley Miller Wright PROPOSAL58Ivan Magalhaes
1010Murillo X VocelkaBrazil2024-04-02Chanay, Jeffrey A Esq QUALIFIED28Amy Elsner
1011Nicolas U BologniaGermany2024-04-11Rousseaux, Michael Esq NEGOTIATION60Asiya Javayant
1012David L MacleadSpain2024-04-16Feiner Bros QUALIFIED8Onyama Limba
1013Salvatore P DoeRussia2024-04-11Benton, John B Jr RENEWAL26Asiya Javayant
1014Maisha X StockhamItaly2024-04-04Feltz Printing Service NEGOTIATION94Anna Fali
1015Arvin X CampainIndia2024-04-12Morlong Associates NEW51Amy Elsner
1016Maisha F DilliardCanada2024-04-08Morlong Associates NEW98Bernardo Dominic
1017Stacey Y NestleFrance2024-03-28Chemel, James L Cpa RENEWAL17Amy Elsner
1018Wickens X TollnerCanada2024-04-10Benton, John B Jr RENEWAL63Bernardo Dominic
1019Aruna E ShinkoAustralia2024-03-28Morlong Associates PROPOSAL28Ioni Bowcher
1020Mujtaba R RimFrance2024-03-31Rangoni Of Florence PROPOSAL80Stephen Shaw
1021Aika Y PoquetteIndia2024-04-20Chemel, James L Cpa PROPOSAL88Anna Fali
1022Sinclair A PoquetteFrance2024-04-14Rangoni Of Florence NEW53Ioni Bowcher
1023Salvatore V FlosiCanada2024-04-06Truhlar And Truhlar Attys NEGOTIATION54Elwin Sharvill
1024Costa L TollnerBrazil2024-04-07Feltz Printing Service NEW98Stephen Shaw
1025Chavez K SaylorsIndia2024-04-17Chanay, Jeffrey A Esq RENEWAL82Asiya Javayant
1026Leja U VocelkaSpain2024-04-08Chanay, Jeffrey A Esq NEGOTIATION98Elwin Sharvill
1027Silvio O ButtAustralia2024-04-06Morlong Associates NEW79Amy Elsner
1028Octavia O StockhamFrance2024-04-20Benton, John B Jr RENEWAL80Onyama Limba
1029Leon H VocelkaCanada2024-04-20Rangoni Of Florence QUALIFIED74Elwin Sharvill
1030Cody B TollnerFrance2024-04-09Chemel, James L Cpa RENEWAL12Ioni Bowcher
1031Johnson Q SergiRussia2024-04-12Printing Dimensions UNQUALIFIED1Ivan Magalhaes
1032Isabel H StockhamGermany2024-04-06Chapman, Ross E Esq NEW20Amy Elsner
1033Aditya A WieserGermany2024-04-02Rangoni Of Florence NEW6Ioni Bowcher
1034Jefferson H OstroskySpain2024-03-26Rangoni Of Florence RENEWAL76Bernardo Dominic
1035Maria L OstroskyArgentina2024-04-16Rangoni Of Florence QUALIFIED2Ioni Bowcher
1036Rodrigues V FigeroaJapan2024-04-14Feiner Bros QUALIFIED76Bernardo Dominic
1037Emily F AmigonArgentina2024-04-02Buckley Miller Wright UNQUALIFIED75Stephen Shaw
1038Juan C OstroskySpain2024-04-10King, Christopher A Esq NEW8Ivan Magalhaes
1039Kaitlin T DoeAustralia2024-04-19Dorl, James J Esq PROPOSAL73Anna Fali
1040Salvatore V DoeFrance2024-04-04Buckley Miller Wright UNQUALIFIED50Bernardo Dominic
1041Smith H AlbaresJapan2024-04-07Dorl, James J Esq PROPOSAL32Ioni Bowcher
1042Wickens K KuskoSpain2024-04-06Chanay, Jeffrey A Esq QUALIFIED62Stephen Shaw
1043Tony R BriddickJapan2024-03-31Morlong Associates PROPOSAL55Ivan Magalhaes
1044Maria H MacleadRussia2024-04-17Commercial Press UNQUALIFIED93Ivan Magalhaes
1045David P NestleCanada2024-04-02Morlong Associates QUALIFIED73Amy Elsner
1046David Q SlusarskiRussia2024-04-19King, Christopher A Esq NEW67Ioni Bowcher
1047Octavia Q AmigonGermany2024-04-08Buckley Miller Wright RENEWAL61Stephen Shaw
1048Aika F PerinSpain2024-04-17Dorl, James J Esq RENEWAL47Onyama Limba
1049Tony P KolmetzArgentina2024-03-27Chapman, Ross E Esq NEGOTIATION40Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Francesco I StensethRussiaAsiya Javayant PROPOSAL
Jefferson U FlosiIndiaAnna Fali NEW
Greenwood I BriddickIndiaAmy Elsner QUALIFIED
David D SergiItalyAsiya Javayant NEGOTIATION
Morrow D PerinUnited KingdomAnna Fali RENEWAL
Emily U PaprockiItalyAmy Elsner QUALIFIED
Deepesh K AmigonItalyIoni Bowcher UNQUALIFIED
Rodrigues D KuskoJapanAnna Fali RENEWAL
Jennifer R CaudyIndiaAsiya Javayant QUALIFIED
Smith B DoeFranceStephen Shaw RENEWAL
Antonio Z PerinJapanAsiya Javayant NEGOTIATION
Deepesh F PoquetteJapanXuxue Feng UNQUALIFIED
Cody N MacleadJapanIvan Magalhaes UNQUALIFIED
Mayumi P KuskoJapanIoni Bowcher UNQUALIFIED
Claire U BowleyJapanElwin Sharvill NEGOTIATION
Stacey N DilliardSpainElwin Sharvill NEGOTIATION
David V RulapaughArgentinaAnna Fali UNQUALIFIED
Murillo C MarrierFranceStephen Shaw NEGOTIATION
Ashley S GlickJapanElwin Sharvill PROPOSAL
Smith Z DilliardCanadaElwin Sharvill UNQUALIFIED
Maria T VenereCanadaAsiya Javayant NEW
Aika R PaprockiArgentinaOnyama Limba NEGOTIATION
Kadeem K VenereBrazilIvan Magalhaes UNQUALIFIED
Ricardo A StensethArgentinaXuxue Feng RENEWAL
Ashley C GauchoGermanyElwin Sharvill NEW
Munro B DoeFranceXuxue Feng NEGOTIATION
Ricardo G NestleArgentinaStephen Shaw QUALIFIED
Kaitlin Y VocelkaItalyBernardo Dominic UNQUALIFIED
Morrow S PaprockiArgentinaOnyama Limba NEGOTIATION
Deepesh I MaletAustraliaIvan Magalhaes UNQUALIFIED
Morrow E TollnerUnited KingdomXuxue Feng RENEWAL
Mayumi H PerinSpainIvan Magalhaes NEGOTIATION
Kadeem O NestleBrazilIoni Bowcher NEW
Wickens M GillianArgentinaIoni Bowcher PROPOSAL
Ashley M SergiSpainBernardo Dominic QUALIFIED
Izzy U DoeAustraliaAsiya Javayant NEGOTIATION
Francesco A WieserArgentinaBernardo Dominic UNQUALIFIED
Wickens G GlickCanadaElwin Sharvill PROPOSAL
Smith P SergiJapanOnyama Limba PROPOSAL
Juan S DoeJapanAnna Fali UNQUALIFIED
Misaki F CaldareraJapanIoni Bowcher QUALIFIED
Deepesh K ShinkoRussiaAnna Fali PROPOSAL
Smith V RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair T TollnerItalyStephen Shaw UNQUALIFIED
Kadeem E NickaJapanBernardo Dominic RENEWAL
Murillo F DoeItalyAsiya Javayant UNQUALIFIED
Isabel H CampainUnited KingdomAsiya Javayant PROPOSAL
Octavia Y WieserGermanyBernardo Dominic UNQUALIFIED
Darci M SchemmerItalyElwin Sharvill NEGOTIATION
Leja G StockhamUnited KingdomOnyama Limba PROPOSAL
Frozen Columns
Name
Wickens F Nestle
Cody B Saylors
Costa Z Caudy
Isabel B Marrier
Rodrigues H Glick
Leon T Shinko
Silvio J Butt
Jefferson S Slusarski
Isabel N Albares
Maria J Caudy
Silvio H Poquette
Julie E Malet
Silvio Z Royster
Claire X Flosi
Morrow F Malet
Maisha B Saylors
Julie R Garufi
Darci A Caldarera
Jennifer O Marrier
Claire M Slusarski
Chavez T Glick
Murillo G Caudy
Rodrigues C Royster
Salvatore T Butt
Jeanfrancois S Briddick
Octavia T Dilliard
Izzy N Doe
Octavia Q Butt
Isabel S Nestle
Ivar G Flosi
Greenwood K Perin
Ricardo H Darakjy
Adams W Glick
Mujtaba W Garufi
Cody Z Amigon
Aditya M Foller
Sinclair H Sergi
Murillo V Darakjy
James P Ferencz
Antonio H Bowley
Johnson U Darakjy
Jennifer D Inouye
Deepesh U Briddick
Nicolas E Inouye
Tony L Gaucho
Kadeem Z Caudy
Wickens N Marrier
Cody X Shinko
Morrow Z Gillian
Ricardo D Stenseth
IdCountryDate
1000Brazil2024-04-14
1001Brazil2024-04-13
1002France2024-04-13
1003Russia2024-04-24
1004Spain2024-04-14
1005France2024-04-20
1006Spain2024-04-18
1007Canada2024-04-22
1008Spain2024-04-04
1009Spain2024-03-28
1010Germany2024-04-10
1011Australia2024-04-20
1012United Kingdom2024-04-18
1013Argentina2024-04-11
1014Japan2024-03-31
1015India2024-04-08
1016India2024-04-04
1017Germany2024-04-16
1018Argentina2024-03-26
1019United Kingdom2024-04-08
1020Russia2024-04-10
1021Argentina2024-03-30
1022Italy2024-04-04
1023Australia2024-04-06
1024Russia2024-03-30
1025Germany2024-03-27
1026Russia2024-04-11
1027Spain2024-03-31
1028Brazil2024-04-21
1029Russia2024-04-09
1030Australia2024-03-31
1031France2024-04-21
1032Germany2024-04-21
1033Japan2024-04-19
1034Canada2024-04-24
1035United Kingdom2024-04-23
1036Spain2024-04-08
1037United Kingdom2024-04-23
1038Germany2024-03-26
1039India2024-04-20
1040Japan2024-04-06
1041Germany2024-04-15
1042Canada2024-04-06
1043Germany2024-03-28
1044Brazil2024-04-01
1045Italy2024-04-15
1046India2024-04-01
1047India2024-04-11
1048Japan2024-04-01
1049Germany2024-04-07

On-Demand Data

NameIdCountryDate
Mujtaba P Nicka1000Russia2024-04-15
Francesco R Perin1001India2024-04-09
Faith R Maclead1002Spain2024-04-14
Smith C Inouye1003Spain2024-04-23
Ivar P Whobrey1004United Kingdom2024-04-08
Julie O Bowley1005Russia2024-04-07
Kadeem K Perin1006United Kingdom2024-03-26
Julie C Butt1007India2024-04-21
Leja W Ostrosky1008Australia2024-04-07
Deepesh O Kusko1009Japan2024-03-31
Aditya O Garufi1010Canada2024-04-19
Johnson C Rim1011France2024-03-27
Clifford V Ferencz1012Australia2024-04-09
Munro F Wieser1013Russia2024-04-20
Smith S Albares1014Australia2024-04-02
Leja J Poquette1015Italy2024-04-08
Aditya I Iturbide1016Japan2024-03-26
Clifford T Vocelka1017Argentina2024-04-04
Morrow D Saylors1018France2024-04-07
Faith S Gaucho1019Canada2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois X PaprockiUnited KingdomStephen Shaw RENEWAL
Francesco U ChuiGermanyAsiya Javayant NEGOTIATION
Jeanfrancois N BowleySpainIoni Bowcher NEW
Julie D TollnerGermanyAnna Fali NEW
Tony Y RulapaughGermanyAnna Fali NEGOTIATION
Sinclair W IturbideAustraliaBernardo Dominic PROPOSAL
Emily D MorascaAustraliaAsiya Javayant RENEWAL
Ivar Q WaycottJapanIvan Magalhaes NEW
Jennifer M MarrierSpainIvan Magalhaes NEGOTIATION
Deepesh I KolmetzSpainBernardo Dominic QUALIFIED
Faith H PoquetteAustraliaStephen Shaw RENEWAL
Aruna N BowleyGermanyAsiya Javayant NEGOTIATION
James H GarufiAustraliaAsiya Javayant NEGOTIATION
Kadeem K OldroydRussiaOnyama Limba NEW
Kadeem J BowleyFranceElwin Sharvill RENEWAL
Salvatore K InouyeRussiaStephen Shaw UNQUALIFIED
Ashley U GarufiUnited KingdomOnyama Limba QUALIFIED
Claire G RulapaughGermanyStephen Shaw PROPOSAL
Wickens I MaletArgentinaAnna Fali RENEWAL
Juan K StockhamIndiaOnyama Limba NEW
Salvatore W PaprockiCanadaElwin Sharvill NEW
Ricardo J InouyeCanadaBernardo Dominic UNQUALIFIED
Ricardo Z GillianCanadaIvan Magalhaes QUALIFIED
Julie Z SergiAustraliaIvan Magalhaes QUALIFIED
Misaki L BriddickCanadaIvan Magalhaes UNQUALIFIED
Francesco J BriddickGermanyStephen Shaw NEGOTIATION
Faith K MaletBrazilIoni Bowcher RENEWAL
Leja P DarakjyRussiaElwin Sharvill RENEWAL
Ivar F BologniaBrazilAmy Elsner PROPOSAL
Maisha S BologniaSpainBernardo Dominic NEGOTIATION
Greenwood U OstroskyFranceAmy Elsner NEW
Francesco U BowleyRussiaElwin Sharvill QUALIFIED
Julie V MaletBrazilAnna Fali PROPOSAL
Darci T BologniaAustraliaXuxue Feng QUALIFIED
Wickens J BowleyArgentinaIvan Magalhaes NEGOTIATION
Rodrigues P ShinkoFranceAsiya Javayant RENEWAL
Greenwood Y BriddickIndiaXuxue Feng NEW
Leon M RoysterSpainElwin Sharvill NEGOTIATION
Jeanfrancois S NestleRussiaAsiya Javayant RENEWAL
Murillo A VenereCanadaAsiya Javayant 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>