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
Silvio J MorascaRussiaAmy Elsner RENEWAL
Emily Y VenereArgentinaIvan Magalhaes UNQUALIFIED
Chavez N VenereSpainStephen Shaw NEGOTIATION
Antonio N StensethCanadaXuxue Feng QUALIFIED
Greenwood B SlusarskiRussiaAnna Fali NEGOTIATION
Izzy R SaylorsJapanXuxue Feng QUALIFIED
Jennifer W RoysterArgentinaIvan Magalhaes QUALIFIED
Ricardo X KolmetzGermanyStephen Shaw RENEWAL
Arvin Y RulapaughSpainStephen Shaw QUALIFIED
Jeanfrancois I NestleUnited KingdomStephen Shaw NEW
Ivar U OldroydJapanAsiya Javayant RENEWAL
Darci F FlosiBrazilAmy Elsner PROPOSAL
Juan B FerenczIndiaStephen Shaw NEW
Claire X WieserItalyAmy Elsner NEW
Clifford E VenereBrazilIvan Magalhaes QUALIFIED
Clifford S ShinkoFranceIvan Magalhaes NEGOTIATION
Deepesh W MorascaJapanIvan Magalhaes RENEWAL
Clifford K RoysterUnited KingdomElwin Sharvill RENEWAL
Greenwood K VenereGermanyAnna Fali NEGOTIATION
Izzy F ShinkoBrazilIvan Magalhaes NEGOTIATION
Ashley R SaylorsUnited KingdomElwin Sharvill PROPOSAL
James N WhobreyFranceStephen Shaw UNQUALIFIED
Mayumi U GlickItalyXuxue Feng QUALIFIED
Jeanfrancois A SergiUnited KingdomStephen Shaw PROPOSAL
Murillo F RutaJapanBernardo Dominic QUALIFIED
Deepesh R NickaJapanAsiya Javayant RENEWAL
Alejandro A FigeroaAustraliaAsiya Javayant PROPOSAL
Smith G SaylorsIndiaAnna Fali PROPOSAL
Arvin Q MaletGermanyIvan Magalhaes NEGOTIATION
Isabel T NickaCanadaIvan Magalhaes NEW
Jennifer R RoysterJapanStephen Shaw PROPOSAL
Johnson L PaprockiJapanXuxue Feng NEW
Jefferson B OldroydCanadaAmy Elsner QUALIFIED
Smith E KolmetzGermanyIvan Magalhaes UNQUALIFIED
Maisha W RulapaughArgentinaIoni Bowcher RENEWAL
Clifford H DoeArgentinaAmy Elsner NEW
Darci G WaycottUnited KingdomBernardo Dominic QUALIFIED
Mujtaba F CaudyIndiaStephen Shaw PROPOSAL
James E SaylorsGermanyAsiya Javayant QUALIFIED
Alejandro Q KuskoAustraliaAmy Elsner PROPOSAL
Leja C FlosiAustraliaAnna Fali UNQUALIFIED
Faith X WieserFranceIoni Bowcher PROPOSAL
Nicolas G SergiRussiaElwin Sharvill UNQUALIFIED
Morrow V StensethItalyAmy Elsner NEW
Costa J NestleBrazilAsiya Javayant UNQUALIFIED
Aika G RoysterItalyXuxue Feng RENEWAL
Morrow I VocelkaItalyAsiya Javayant UNQUALIFIED
Cody Q WaycottArgentinaAmy Elsner UNQUALIFIED
Jennifer K GauchoIndiaAmy Elsner RENEWAL
Stacey E FerenczSpainElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood A CaldareraRussiaAsiya Javayant NEW
Leja K KuskoFranceIvan Magalhaes PROPOSAL
Kadeem U ShinkoCanadaBernardo Dominic NEGOTIATION
Ivar S AlbaresCanadaIvan Magalhaes NEW
Munro J FerenczFranceXuxue Feng NEGOTIATION
Faith D FerenczIndiaAnna Fali PROPOSAL
Silvio I RutaFranceElwin Sharvill PROPOSAL
Juan R GillianIndiaIoni Bowcher PROPOSAL
Silvio S WaycottSpainIoni Bowcher QUALIFIED
Murillo X BriddickIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel C FerenczGermany2024-04-01Buckley Miller Wright QUALIFIED88Ioni Bowcher
1001Ashley G KolmetzBrazil2024-03-23Chanay, Jeffrey A Esq UNQUALIFIED17Asiya Javayant
1002Antonio O NickaJapan2024-04-04Chapman, Ross E Esq QUALIFIED68Anna Fali
1003Maisha M SchemmerUnited Kingdom2024-03-31Truhlar And Truhlar Attys NEGOTIATION57Bernardo Dominic
1004Octavia U KolmetzFrance2024-04-10Chanay, Jeffrey A Esq RENEWAL47Ivan Magalhaes
1005Ricardo I SergiBrazil2024-04-03King, Christopher A Esq RENEWAL53Ioni Bowcher
1006Stacey Q IturbideSpain2024-04-16Chapman, Ross E Esq UNQUALIFIED65Anna Fali
1007Maisha R StockhamItaly2024-04-09King, Christopher A Esq NEGOTIATION27Ioni Bowcher
1008Julie B GauchoRussia2024-04-05Benton, John B Jr QUALIFIED81Xuxue Feng
1009Chavez Z WhobreyItaly2024-04-15Buckley Miller Wright PROPOSAL83Ioni Bowcher
1010Mayumi U AmigonUnited Kingdom2024-04-03Dorl, James J Esq RENEWAL2Amy Elsner
1011Aditya G ShinkoFrance2024-04-18Rousseaux, Michael Esq UNQUALIFIED24Elwin Sharvill
1012Costa E NickaJapan2024-04-09Benton, John B Jr UNQUALIFIED90Xuxue Feng
1013Octavia W AmigonJapan2024-03-25Chemel, James L Cpa UNQUALIFIED51Ivan Magalhaes
1014Claire A MorascaRussia2024-04-11Buckley Miller Wright NEW21Ivan Magalhaes
1015Leja V InouyeFrance2024-04-14Rangoni Of Florence PROPOSAL57Stephen Shaw
1016Darci H MaletArgentina2024-04-12King, Christopher A Esq PROPOSAL69Elwin Sharvill
1017Sinclair L StensethCanada2024-04-18Chemel, James L Cpa PROPOSAL0Ioni Bowcher
1018Antonio A MorascaItaly2024-04-10Buckley Miller Wright NEGOTIATION72Stephen Shaw
1019Greenwood A BologniaGermany2024-04-19Rangoni Of Florence PROPOSAL85Onyama Limba
1020Ivar T IturbideUnited Kingdom2024-03-29Buckley Miller Wright QUALIFIED8Stephen Shaw
1021Alejandro K CampainAustralia2024-04-15Chapman, Ross E Esq NEGOTIATION38Xuxue Feng
1022Isabel L FlosiSpain2024-04-02Commercial Press PROPOSAL99Xuxue Feng
1023David B MacleadRussia2024-04-07Rangoni Of Florence UNQUALIFIED19Elwin Sharvill
1024Arvin K GlickGermany2024-04-02Dorl, James J Esq NEW91Onyama Limba
1025Darci J FlosiJapan2024-04-15Feiner Bros PROPOSAL2Onyama Limba
1026Isabel R StockhamAustralia2024-04-13Benton, John B Jr RENEWAL93Anna Fali
1027Leon D OstroskyGermany2024-04-15Buckley Miller Wright NEGOTIATION11Anna Fali
1028Francesco I OstroskyUnited Kingdom2024-04-10Feiner Bros RENEWAL59Onyama Limba
1029Tony Z SergiGermany2024-03-28Rangoni Of Florence NEGOTIATION2Elwin Sharvill
1030David C FigeroaUnited Kingdom2024-04-02Rousseaux, Michael Esq RENEWAL21Stephen Shaw
1031Maria Q FerenczRussia2024-04-09Rangoni Of Florence RENEWAL82Ivan Magalhaes
1032Ricardo K AmigonFrance2024-03-30Printing Dimensions RENEWAL58Ivan Magalhaes
1033Aruna Y MarrierGermany2024-04-10Printing Dimensions RENEWAL28Amy Elsner
1034Aruna X MacleadBrazil2024-03-31Chemel, James L Cpa UNQUALIFIED84Anna Fali
1035James X SchemmerSpain2024-04-03Chapman, Ross E Esq PROPOSAL99Amy Elsner
1036Ashley F FerenczRussia2024-04-04Truhlar And Truhlar Attys NEW12Onyama Limba
1037Johnson U TollnerFrance2024-03-29Chapman, Ross E Esq UNQUALIFIED5Ivan Magalhaes
1038Isabel A OldroydAustralia2024-03-30King, Christopher A Esq RENEWAL96Ivan Magalhaes
1039Ricardo T WaycottAustralia2024-04-14Benton, John B Jr RENEWAL41Bernardo Dominic
1040Tony L GarufiFrance2024-04-07Truhlar And Truhlar Attys NEGOTIATION86Asiya Javayant
1041Murillo I DarakjyGermany2024-04-13Morlong Associates PROPOSAL30Elwin Sharvill
1042Jeanfrancois Y AlbaresAustralia2024-03-26Morlong Associates UNQUALIFIED48Ioni Bowcher
1043Tony Z DilliardJapan2024-04-18Chanay, Jeffrey A Esq NEGOTIATION55Stephen Shaw
1044Tony M WaycottUnited Kingdom2024-04-03Chemel, James L Cpa NEW29Ivan Magalhaes
1045Chavez Y CampainUnited Kingdom2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED8Onyama Limba
1046Wickens B GarufiCanada2024-03-23Commercial Press UNQUALIFIED64Onyama Limba
1047Jefferson F GillianIndia2024-04-18King, Christopher A Esq NEGOTIATION18Bernardo Dominic
1048Faith G GlickItaly2024-04-19Chapman, Ross E Esq RENEWAL62Ivan Magalhaes
1049Kadeem F MacleadSpain2024-04-12Dorl, James J Esq QUALIFIED63Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jennifer P ShinkoRussiaIvan Magalhaes NEW
Izzy U AlbaresAustraliaAmy Elsner NEGOTIATION
Adams A PoquetteRussiaAmy Elsner RENEWAL
Isabel S ChuiJapanAmy Elsner RENEWAL
Arvin N PerinJapanOnyama Limba NEGOTIATION
Morrow P GillianFranceStephen Shaw UNQUALIFIED
Izzy O GauchoBrazilOnyama Limba UNQUALIFIED
Murillo Q IturbideJapanAmy Elsner NEGOTIATION
Jennifer S BologniaItalyBernardo Dominic PROPOSAL
Jefferson Z WhobreyAustraliaAnna Fali PROPOSAL
Cody T PoquetteRussiaXuxue Feng NEW
Johnson X DilliardSpainAnna Fali NEW
Smith Y GillianBrazilStephen Shaw NEW
Aditya N SchemmerArgentinaXuxue Feng PROPOSAL
Maria A ShinkoArgentinaIoni Bowcher UNQUALIFIED
Emily O ChuiUnited KingdomIoni Bowcher QUALIFIED
Cody D GillianIndiaIoni Bowcher NEW
Antonio H GillianJapanStephen Shaw QUALIFIED
Silvio M BriddickSpainBernardo Dominic UNQUALIFIED
Wickens H FlosiGermanyElwin Sharvill UNQUALIFIED
Tony R DoeCanadaIvan Magalhaes QUALIFIED
Cody J GillianRussiaElwin Sharvill QUALIFIED
Tony J RoysterIndiaStephen Shaw RENEWAL
Salvatore R AmigonGermanyAmy Elsner PROPOSAL
Julie Z MarrierItalyElwin Sharvill NEW
Wickens F DoeFranceAmy Elsner RENEWAL
Kaitlin H DoeArgentinaBernardo Dominic RENEWAL
Antonio J SergiItalyIoni Bowcher QUALIFIED
Maria V NickaBrazilAsiya Javayant RENEWAL
Isabel H ButtRussiaIoni Bowcher QUALIFIED
Smith P PoquetteFranceElwin Sharvill NEW
Rodrigues C RutaAustraliaXuxue Feng RENEWAL
Mayumi P BowleyArgentinaIoni Bowcher UNQUALIFIED
Arvin A GarufiArgentinaElwin Sharvill NEW
Adams J SlusarskiFranceAsiya Javayant NEW
Arvin V RulapaughIndiaIoni Bowcher QUALIFIED
Deepesh K MorascaItalyIoni Bowcher QUALIFIED
Munro L StockhamGermanyBernardo Dominic QUALIFIED
Jennifer A GauchoJapanIoni Bowcher NEGOTIATION
Arvin R PoquetteJapanOnyama Limba NEGOTIATION
Costa Y FlosiArgentinaAmy Elsner NEGOTIATION
Maria M MaletGermanyAnna Fali PROPOSAL
Smith P FerenczSpainElwin Sharvill RENEWAL
Aruna W InouyeFranceXuxue Feng NEGOTIATION
Ricardo V CaldareraArgentinaOnyama Limba UNQUALIFIED
Nicolas S PaprockiRussiaStephen Shaw QUALIFIED
Leja S DoeArgentinaIoni Bowcher NEW
Clifford M AmigonBrazilXuxue Feng RENEWAL
Octavia Z PerinJapanIvan Magalhaes RENEWAL
Chavez A WhobreyFranceElwin Sharvill PROPOSAL
Frozen Columns
Name
Claire P Glick
Faith I Nestle
Jennifer R Glick
Clifford I Ostrosky
Greenwood M Bolognia
Alejandro I Briddick
Maisha H Nicka
Jennifer X Maclead
Jennifer F Morasca
Cody B Amigon
Aditya B Nicka
Nicolas X Ferencz
Silvio J Bowley
Jones B Wieser
Johnson O Morasca
Cody L Bolognia
Alejandro P Ferencz
Maisha V Tollner
Octavia A Kolmetz
Ivar C Malet
Aruna Q Morasca
Silvio N Ruta
Mujtaba H Saylors
Smith Y Bowley
Cody B Waycott
Adams N Flosi
David H Garufi
Aditya M Maclead
Ricardo T Ferencz
Aika B Darakjy
Adams H Bowley
Johnson D Nestle
Leon R Flosi
Stacey J Bolognia
Francesco P Stockham
Octavia N Nestle
Morrow H Royster
Leon W Shinko
Silvio U Shinko
Ricardo W Stenseth
Aruna L Amigon
Ashley A Vocelka
Ashley E Poquette
Julie W Albares
Stacey U Rulapaugh
James G Rulapaugh
Costa B Caldarera
Jones N Stenseth
Chavez X Wieser
Francesco K Glick
IdCountryDate
1000Argentina2024-03-28
1001Australia2024-04-06
1002Argentina2024-04-03
1003United Kingdom2024-04-09
1004France2024-03-26
1005Argentina2024-03-22
1006Argentina2024-04-07
1007Japan2024-04-11
1008Spain2024-03-24
1009Japan2024-04-07
1010Russia2024-03-23
1011Brazil2024-03-31
1012Russia2024-03-23
1013Japan2024-03-27
1014France2024-04-02
1015United Kingdom2024-04-16
1016France2024-03-24
1017France2024-03-27
1018Canada2024-04-07
1019Russia2024-04-16
1020Australia2024-04-19
1021Australia2024-04-19
1022Australia2024-03-26
1023United Kingdom2024-03-29
1024India2024-04-07
1025France2024-04-10
1026France2024-03-31
1027Australia2024-04-03
1028Italy2024-03-22
1029Spain2024-04-08
1030France2024-04-01
1031France2024-04-10
1032Brazil2024-04-03
1033Argentina2024-04-01
1034Germany2024-04-03
1035Spain2024-04-11
1036France2024-04-12
1037Canada2024-03-22
1038Germany2024-04-15
1039Argentina2024-04-02
1040France2024-04-19
1041Canada2024-03-27
1042Spain2024-04-05
1043Russia2024-04-02
1044India2024-04-15
1045Argentina2024-04-03
1046India2024-04-02
1047Spain2024-04-11
1048France2024-03-30
1049Russia2024-03-23

On-Demand Data

NameIdCountryDate
Munro Z Shinko1000Russia2024-04-18
Silvio B Garufi1001Germany2024-03-25
Misaki W Ferencz1002Russia2024-03-21
Ashley J Malet1003Italy2024-03-31
Antonio R Stenseth1004Japan2024-04-16
Julie V Caldarera1005United Kingdom2024-03-24
David D Iturbide1006Brazil2024-04-15
Mujtaba P Glick1007Brazil2024-04-07
Aditya M Iturbide1008Canada2024-04-12
Kaitlin N Stenseth1009France2024-04-05
Aika U Slusarski1010United Kingdom2024-04-13
Smith P Wieser1011India2024-04-09
Nicolas L Kolmetz1012Germany2024-03-28
Alejandro X Glick1013Russia2024-04-04
Aditya W Caudy1014Germany2024-03-28
Murillo J Iturbide1015United Kingdom2024-04-12
Aika H Gaucho1016Spain2024-04-09
Maisha M Doe1017Germany2024-04-01
Isabel A Marrier1018India2024-04-12
Kaitlin N Slusarski1019Brazil2024-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha D VenereIndiaElwin Sharvill NEW
Munro Y AmigonGermanyAmy Elsner PROPOSAL
Izzy U PaprockiGermanyBernardo Dominic UNQUALIFIED
Chavez R ChuiRussiaStephen Shaw NEGOTIATION
Emily W StensethGermanyIvan Magalhaes NEGOTIATION
Ashley P MorascaUnited KingdomAmy Elsner NEGOTIATION
Emily B BologniaArgentinaAnna Fali PROPOSAL
James M CaldareraUnited KingdomAnna Fali NEW
Johnson C StensethRussiaIvan Magalhaes RENEWAL
James J ButtRussiaXuxue Feng UNQUALIFIED
Rodrigues I BowleyIndiaXuxue Feng UNQUALIFIED
Clifford R MaletCanadaIvan Magalhaes QUALIFIED
David T ShinkoSpainIoni Bowcher QUALIFIED
Arvin H BowleyGermanyXuxue Feng RENEWAL
Aika V FlosiCanadaIvan Magalhaes UNQUALIFIED
Jennifer H MorascaArgentinaOnyama Limba RENEWAL
Antonio O GillianFranceXuxue Feng NEW
Jeanfrancois T MarrierJapanAmy Elsner PROPOSAL
Faith L CaldareraItalyElwin Sharvill NEW
Octavia M StensethArgentinaIoni Bowcher PROPOSAL
Silvio S KolmetzFranceIoni Bowcher RENEWAL
Clifford R InouyeBrazilElwin Sharvill UNQUALIFIED
James M WieserArgentinaAsiya Javayant QUALIFIED
Leja G MacleadUnited KingdomAsiya Javayant PROPOSAL
Costa D CaudyCanadaIvan Magalhaes PROPOSAL
Octavia U VenereRussiaBernardo Dominic UNQUALIFIED
Aditya Y FlosiFranceBernardo Dominic NEW
Jefferson U PaprockiRussiaElwin Sharvill NEGOTIATION
Morrow D RimUnited KingdomAmy Elsner UNQUALIFIED
Claire U FigeroaGermanyBernardo Dominic NEGOTIATION
Silvio N SlusarskiJapanElwin Sharvill NEW
Jones Q TollnerItalyElwin Sharvill PROPOSAL
Jones S IturbideGermanyStephen Shaw NEW
Johnson I PoquetteArgentinaAmy Elsner NEGOTIATION
Tony T RulapaughJapanIvan Magalhaes UNQUALIFIED
Tony V GauchoAustraliaIvan Magalhaes NEW
Izzy D StensethUnited KingdomOnyama Limba NEW
Francesco A ButtBrazilStephen Shaw NEW
Jones K MaletIndiaStephen Shaw RENEWAL
Leja I DoeIndiaAsiya 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>