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
Maisha C GauchoCanadaIvan Magalhaes QUALIFIED
Morrow K VocelkaCanadaElwin Sharvill UNQUALIFIED
Misaki W FerenczBrazilElwin Sharvill RENEWAL
Isabel Z DilliardIndiaIoni Bowcher RENEWAL
Francesco M WaycottJapanAnna Fali NEGOTIATION
Deepesh P OstroskyAustraliaIvan Magalhaes NEW
Cody Q StockhamItalyOnyama Limba QUALIFIED
Rodrigues X OstroskySpainAnna Fali QUALIFIED
Jefferson H CaudySpainIoni Bowcher QUALIFIED
Rodrigues E PerinSpainIoni Bowcher NEW
Silvio V SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Ricardo F FlosiGermanyXuxue Feng NEGOTIATION
Maria A IturbideJapanXuxue Feng PROPOSAL
Rodrigues Y GauchoCanadaAsiya Javayant RENEWAL
David F SlusarskiJapanBernardo Dominic QUALIFIED
Faith D AlbaresArgentinaElwin Sharvill QUALIFIED
Ricardo E CampainIndiaElwin Sharvill QUALIFIED
Morrow M SchemmerJapanIoni Bowcher NEGOTIATION
Clifford N DoeUnited KingdomStephen Shaw QUALIFIED
Nicolas I TollnerFranceIvan Magalhaes NEW
Aditya Q TollnerCanadaAnna Fali UNQUALIFIED
Munro B NestleArgentinaOnyama Limba NEGOTIATION
Claire G SaylorsItalyIoni Bowcher NEGOTIATION
Ricardo R CaudyIndiaAnna Fali NEGOTIATION
Jeanfrancois F NestleBrazilXuxue Feng NEW
Darci F FollerFranceAsiya Javayant NEGOTIATION
Alejandro H OldroydFranceIoni Bowcher RENEWAL
Aika M VenereBrazilAsiya Javayant NEGOTIATION
Adams J SchemmerSpainStephen Shaw NEGOTIATION
Johnson E MaletArgentinaBernardo Dominic PROPOSAL
Misaki G DilliardSpainIvan Magalhaes QUALIFIED
Arvin Q ShinkoArgentinaXuxue Feng PROPOSAL
Faith B KolmetzBrazilAmy Elsner UNQUALIFIED
Izzy G StensethRussiaOnyama Limba QUALIFIED
Adams C NestleAustraliaBernardo Dominic NEGOTIATION
Nicolas P NickaSpainOnyama Limba RENEWAL
Emily T RoysterItalyIoni Bowcher NEW
Kadeem J CaldareraGermanyOnyama Limba NEW
Johnson P BowleyIndiaAsiya Javayant PROPOSAL
Stacey C AlbaresItalyStephen Shaw RENEWAL
Octavia L BriddickGermanyIvan Magalhaes QUALIFIED
David O OldroydItalyIoni Bowcher UNQUALIFIED
Tony N DarakjyIndiaElwin Sharvill RENEWAL
Kaitlin F RimFranceElwin Sharvill UNQUALIFIED
Arvin D VenereFranceAnna Fali NEW
Leon D SchemmerIndiaIvan Magalhaes UNQUALIFIED
Kadeem U MarrierRussiaBernardo Dominic NEGOTIATION
Nicolas M SergiIndiaAnna Fali NEGOTIATION
Murillo H StensethUnited KingdomAnna Fali PROPOSAL
Ricardo U PaprockiRussiaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow P FigeroaUnited KingdomXuxue Feng NEW
Deepesh V RoysterItalyOnyama Limba NEGOTIATION
Jefferson C FollerCanadaIoni Bowcher RENEWAL
Adams X MarrierBrazilOnyama Limba NEW
Deepesh J DoeSpainOnyama Limba NEW
Morrow M MarrierUnited KingdomElwin Sharvill NEW
Izzy O VocelkaSpainIoni Bowcher RENEWAL
Julie W GlickAustraliaBernardo Dominic RENEWAL
Sinclair X MarrierIndiaOnyama Limba UNQUALIFIED
Rodrigues W WhobreyBrazilOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams Z SlusarskiIndia2024-04-07Chapman, Ross E Esq NEW18Onyama Limba
1001Wickens L RutaFrance2024-03-24Chemel, James L Cpa QUALIFIED34Ioni Bowcher
1002Murillo Z FlosiArgentina2024-04-11Feltz Printing Service NEGOTIATION44Bernardo Dominic
1003Alejandro Z KolmetzUnited Kingdom2024-03-26Truhlar And Truhlar Attys NEGOTIATION30Asiya Javayant
1004Adams U CaudySpain2024-03-26Buckley Miller Wright QUALIFIED24Elwin Sharvill
1005Darci S ButtGermany2024-04-18Truhlar And Truhlar Attys QUALIFIED24Elwin Sharvill
1006Juan C KolmetzBrazil2024-04-05Chapman, Ross E Esq QUALIFIED9Asiya Javayant
1007Murillo X OldroydUnited Kingdom2024-04-03Printing Dimensions NEGOTIATION17Ivan Magalhaes
1008Isabel O KuskoGermany2024-04-19Chemel, James L Cpa NEW31Anna Fali
1009Alejandro M CaldareraGermany2024-04-08Truhlar And Truhlar Attys UNQUALIFIED47Xuxue Feng
1010Julie T OldroydGermany2024-04-04Dorl, James J Esq NEGOTIATION55Onyama Limba
1011Mujtaba B AmigonFrance2024-03-31Rangoni Of Florence NEGOTIATION9Stephen Shaw
1012Aruna Q AlbaresItaly2024-04-07Chemel, James L Cpa NEGOTIATION14Elwin Sharvill
1013Jones S VenereItaly2024-04-18Rangoni Of Florence NEGOTIATION49Asiya Javayant
1014Claire I OstroskyBrazil2024-04-20King, Christopher A Esq NEGOTIATION21Bernardo Dominic
1015Salvatore Z StensethItaly2024-04-20Printing Dimensions RENEWAL97Ioni Bowcher
1016Kadeem H IturbideGermany2024-03-25Buckley Miller Wright QUALIFIED7Anna Fali
1017Aditya R DarakjyCanada2024-03-24Morlong Associates NEGOTIATION96Xuxue Feng
1018Kaitlin W MaletFrance2024-03-24Chanay, Jeffrey A Esq NEGOTIATION40Bernardo Dominic
1019Jones Y FerenczAustralia2024-03-24Morlong Associates QUALIFIED94Elwin Sharvill
1020Johnson S WieserFrance2024-04-10Truhlar And Truhlar Attys UNQUALIFIED20Ioni Bowcher
1021Kaitlin D SlusarskiAustralia2024-04-10Dorl, James J Esq UNQUALIFIED46Amy Elsner
1022Murillo Q RutaIndia2024-03-28Feltz Printing Service NEGOTIATION42Stephen Shaw
1023Rodrigues X SchemmerRussia2024-04-02Printing Dimensions UNQUALIFIED61Asiya Javayant
1024Izzy R VocelkaSpain2024-03-25Printing Dimensions QUALIFIED69Anna Fali
1025Juan R MacleadBrazil2024-04-13Chanay, Jeffrey A Esq UNQUALIFIED55Amy Elsner
1026Wickens B VocelkaAustralia2024-04-06Dorl, James J Esq UNQUALIFIED61Stephen Shaw
1027Maisha S FigeroaCanada2024-04-10Truhlar And Truhlar Attys PROPOSAL17Bernardo Dominic
1028Francesco B TollnerIndia2024-04-04Feiner Bros RENEWAL24Ioni Bowcher
1029Ricardo M GlickBrazil2024-04-09Rousseaux, Michael Esq UNQUALIFIED90Anna Fali
1030Rodrigues I NickaIndia2024-03-27King, Christopher A Esq RENEWAL68Stephen Shaw
1031Aruna H RutaJapan2024-04-15Feiner Bros UNQUALIFIED79Amy Elsner
1032Izzy Q PoquetteJapan2024-04-17Printing Dimensions NEGOTIATION84Stephen Shaw
1033Octavia R InouyeJapan2024-03-24Buckley Miller Wright NEW75Ivan Magalhaes
1034Chavez Z GauchoAustralia2024-03-25Feiner Bros UNQUALIFIED65Onyama Limba
1035Rodrigues L DoeRussia2024-04-19Printing Dimensions PROPOSAL41Asiya Javayant
1036Jennifer U RoysterGermany2024-03-24Chapman, Ross E Esq QUALIFIED37Anna Fali
1037Jefferson U GauchoItaly2024-03-31Commercial Press RENEWAL84Stephen Shaw
1038Clifford G VocelkaSpain2024-04-14Chanay, Jeffrey A Esq NEW15Bernardo Dominic
1039Murillo J ChuiBrazil2024-04-05Chanay, Jeffrey A Esq NEGOTIATION78Ivan Magalhaes
1040Rodrigues V PoquetteSpain2024-04-16Feiner Bros PROPOSAL59Asiya Javayant
1041Izzy F FerenczCanada2024-03-25Feltz Printing Service RENEWAL68Onyama Limba
1042Kadeem M GlickItaly2024-04-20Benton, John B Jr QUALIFIED33Bernardo Dominic
1043Greenwood I FerenczCanada2024-03-28Rangoni Of Florence QUALIFIED1Ivan Magalhaes
1044Ivar V GarufiCanada2024-04-16Commercial Press QUALIFIED34Onyama Limba
1045Maisha H WhobreyBrazil2024-04-19King, Christopher A Esq QUALIFIED36Stephen Shaw
1046Costa B GlickIndia2024-04-22Rousseaux, Michael Esq PROPOSAL82Elwin Sharvill
1047Salvatore F CaudyGermany2024-04-05King, Christopher A Esq QUALIFIED79Amy Elsner
1048Mayumi O WhobreyCanada2024-04-01Benton, John B Jr PROPOSAL40Onyama Limba
1049Jeanfrancois K FigeroaJapan2024-04-22Dorl, James J Esq UNQUALIFIED8Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Francesco V BowleyItalyAnna Fali PROPOSAL
Cody S ShinkoArgentinaIvan Magalhaes NEGOTIATION
Maria C SchemmerSpainXuxue Feng RENEWAL
Ivar Z KuskoFranceStephen Shaw RENEWAL
Kaitlin I FlosiAustraliaStephen Shaw NEGOTIATION
Cody J WieserItalyElwin Sharvill QUALIFIED
Cody X WieserArgentinaXuxue Feng UNQUALIFIED
Chavez S GillianSpainAnna Fali QUALIFIED
Darci G ChuiFranceBernardo Dominic PROPOSAL
Stacey O CaldareraUnited KingdomXuxue Feng PROPOSAL
Tony Q ChuiJapanOnyama Limba UNQUALIFIED
Ricardo Q SchemmerCanadaIvan Magalhaes NEW
Silvio Y NickaCanadaXuxue Feng RENEWAL
Claire D FigeroaSpainAnna Fali NEW
Francesco R GillianSpainElwin Sharvill NEW
Izzy M DarakjyItalyAmy Elsner PROPOSAL
Aditya G VenereItalyStephen Shaw NEGOTIATION
Johnson F BriddickAustraliaIvan Magalhaes NEGOTIATION
Claire O GillianSpainAmy Elsner QUALIFIED
Silvio F ShinkoSpainBernardo Dominic RENEWAL
Darci M SaylorsIndiaStephen Shaw NEGOTIATION
Francesco C StockhamAustraliaStephen Shaw NEW
Salvatore K PerinBrazilOnyama Limba NEW
James U NickaFranceAmy Elsner NEW
Aditya L KolmetzGermanyOnyama Limba UNQUALIFIED
Cody V PaprockiFranceElwin Sharvill NEW
Ashley E CaudySpainAsiya Javayant NEW
Ivar Y CaldareraFranceElwin Sharvill NEW
Emily Z AmigonCanadaIoni Bowcher NEGOTIATION
Julie T FerenczRussiaIoni Bowcher UNQUALIFIED
Rodrigues M MacleadCanadaAnna Fali NEW
Mujtaba D FerenczRussiaBernardo Dominic NEGOTIATION
Rodrigues S DilliardRussiaOnyama Limba UNQUALIFIED
Adams O KuskoAustraliaOnyama Limba UNQUALIFIED
Ricardo V CaldareraRussiaAmy Elsner NEW
Ivar F GauchoJapanIoni Bowcher UNQUALIFIED
Maria X NestleIndiaAsiya Javayant RENEWAL
Izzy A DarakjyItalyOnyama Limba UNQUALIFIED
Jefferson N TollnerArgentinaStephen Shaw NEGOTIATION
Arvin B IturbideBrazilAmy Elsner NEGOTIATION
Sinclair G StockhamBrazilAmy Elsner NEW
Tony V CampainAustraliaStephen Shaw PROPOSAL
Francesco I PoquetteItalyIoni Bowcher UNQUALIFIED
Wickens E FollerSpainAmy Elsner PROPOSAL
Francesco R GarufiCanadaXuxue Feng QUALIFIED
Tony W CaldareraCanadaOnyama Limba NEGOTIATION
Greenwood O DilliardIndiaOnyama Limba QUALIFIED
Leon W ShinkoGermanyXuxue Feng RENEWAL
Maisha L SergiBrazilElwin Sharvill PROPOSAL
Alejandro G FigeroaArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
James I Malet
Emily B Rulapaugh
David C Albares
Sinclair S Figeroa
Francesco R Foller
Mujtaba Z Nicka
Izzy B Amigon
Julie A Gaucho
Maria U Morasca
Misaki I Ostrosky
Clifford W Butt
Morrow A Bowley
David C Gillian
Greenwood V Doe
Juan Q Kolmetz
Deepesh Q Nicka
Leon W Perin
Jeanfrancois D Caudy
Salvatore A Vocelka
Salvatore C Morasca
David F Briddick
Tony S Schemmer
Alejandro O Schemmer
Clifford R Perin
Izzy R Amigon
Alejandro J Bowley
Leja Z Maclead
Octavia F Dilliard
Stacey S Ruta
Antonio O Bolognia
Emily I Wieser
David T Slusarski
Munro D Ostrosky
Cody P Darakjy
Clifford X Schemmer
Aruna B Saylors
Juan M Poquette
Isabel L Figeroa
Mayumi Q Schemmer
Emily H Inouye
Morrow U Flosi
Octavia Y Oldroyd
Cody O Garufi
Antonio Z Albares
Greenwood B Rulapaugh
Cody Q Stockham
Mujtaba Y Wieser
Sinclair W Stockham
Aruna C Nestle
Arvin K Poquette
IdCountryDate
1000Spain2024-03-27
1001Japan2024-04-07
1002Spain2024-04-03
1003Argentina2024-04-21
1004Canada2024-04-06
1005Spain2024-03-26
1006Russia2024-04-16
1007Italy2024-04-19
1008Russia2024-04-12
1009India2024-03-30
1010Russia2024-04-10
1011France2024-04-02
1012Argentina2024-04-04
1013Brazil2024-03-30
1014United Kingdom2024-04-05
1015Argentina2024-04-08
1016Germany2024-03-25
1017Japan2024-04-22
1018Spain2024-03-29
1019United Kingdom2024-03-29
1020Brazil2024-04-13
1021Germany2024-03-31
1022France2024-03-24
1023United Kingdom2024-04-13
1024India2024-04-16
1025France2024-03-31
1026United Kingdom2024-04-12
1027France2024-04-05
1028Canada2024-03-29
1029Argentina2024-04-11
1030Canada2024-04-04
1031Argentina2024-03-27
1032Germany2024-03-24
1033Australia2024-04-12
1034Canada2024-04-01
1035France2024-04-20
1036Australia2024-04-08
1037Japan2024-04-18
1038India2024-04-05
1039Brazil2024-04-20
1040Argentina2024-03-27
1041Australia2024-04-15
1042Russia2024-04-22
1043Canada2024-03-25
1044Spain2024-04-02
1045Japan2024-04-21
1046United Kingdom2024-03-29
1047Russia2024-04-01
1048Japan2024-04-16
1049United Kingdom2024-04-16

On-Demand Data

NameIdCountryDate
Aruna S Saylors1000Brazil2024-04-04
Stacey H Garufi1001India2024-04-13
Chavez O Schemmer1002Russia2024-04-07
Johnson D Dilliard1003Argentina2024-04-02
Adams U Caldarera1004United Kingdom2024-04-18
Kadeem H Royster1005Brazil2024-04-02
Aditya B Stockham1006Australia2024-03-29
Costa B Campain1007Australia2024-04-14
Wickens B Venere1008Canada2024-03-28
Maria S Kusko1009Japan2024-04-14
Antonio S Caudy1010India2024-04-16
Jeanfrancois C Bolognia1011Spain2024-03-27
Wickens C Royster1012Italy2024-03-26
Alejandro H Saylors1013Australia2024-04-18
Claire H Malet1014Australia2024-04-19
Leja R Caudy1015Spain2024-04-02
Adams N Saylors1016France2024-04-13
Munro B Glick1017India2024-04-12
Nicolas G Marrier1018France2024-04-12
Clifford Z Darakjy1019Spain2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer G ButtArgentinaStephen Shaw NEW
Arvin C CampainBrazilStephen Shaw UNQUALIFIED
Nicolas M WieserIndiaOnyama Limba NEGOTIATION
Nicolas S WaycottUnited KingdomOnyama Limba NEGOTIATION
Aruna J NickaJapanStephen Shaw UNQUALIFIED
Sinclair U WhobreyCanadaAnna Fali NEGOTIATION
Jones S KuskoCanadaIoni Bowcher UNQUALIFIED
Stacey T VocelkaBrazilStephen Shaw RENEWAL
James P FigeroaGermanyXuxue Feng PROPOSAL
Isabel E NickaArgentinaStephen Shaw QUALIFIED
Adams O IturbideIndiaAsiya Javayant QUALIFIED
Greenwood Q DilliardArgentinaIvan Magalhaes UNQUALIFIED
Isabel B MarrierItalyStephen Shaw NEGOTIATION
Maisha Z MaletFranceStephen Shaw PROPOSAL
Juan U IturbideGermanyElwin Sharvill NEGOTIATION
Munro Z DilliardItalyXuxue Feng QUALIFIED
Octavia Q NestleJapanElwin Sharvill QUALIFIED
Johnson J MarrierItalyBernardo Dominic PROPOSAL
Munro P BriddickJapanAmy Elsner PROPOSAL
Salvatore M PerinItalyOnyama Limba RENEWAL
Leon A ButtBrazilAnna Fali RENEWAL
Francesco H FigeroaItalyOnyama Limba UNQUALIFIED
Ivar A GarufiSpainOnyama Limba QUALIFIED
Kadeem B PaprockiFranceAsiya Javayant NEW
Johnson R MacleadBrazilBernardo Dominic NEW
Deepesh F AlbaresRussiaIoni Bowcher RENEWAL
Isabel B GauchoJapanOnyama Limba QUALIFIED
Clifford O SergiBrazilXuxue Feng NEGOTIATION
Octavia D BriddickItalyAnna Fali QUALIFIED
Jones X OldroydFranceAmy Elsner QUALIFIED
Adams H NestleRussiaIoni Bowcher RENEWAL
Emily T KuskoIndiaIvan Magalhaes NEGOTIATION
Jones I DoeAustraliaBernardo Dominic NEW
Isabel Y BriddickUnited KingdomElwin Sharvill NEW
Arvin N KolmetzIndiaStephen Shaw PROPOSAL
Mujtaba I RutaGermanyBernardo Dominic RENEWAL
Misaki N FollerJapanAnna Fali NEW
Silvio D MaletAustraliaStephen Shaw QUALIFIED
Claire J PoquetteArgentinaBernardo Dominic NEGOTIATION
Cody L MacleadJapanIoni Bowcher 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>