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
Leja T StensethFranceOnyama Limba PROPOSAL
Murillo L RimArgentinaIvan Magalhaes RENEWAL
Ashley W WhobreyJapanOnyama Limba NEW
Isabel X BologniaAustraliaBernardo Dominic UNQUALIFIED
David U SaylorsAustraliaXuxue Feng RENEWAL
Claire S ButtCanadaIvan Magalhaes QUALIFIED
Ashley P ButtBrazilXuxue Feng RENEWAL
Emily X FerenczGermanyAsiya Javayant NEW
Silvio K FollerSpainOnyama Limba QUALIFIED
Faith Z MorascaCanadaIoni Bowcher NEGOTIATION
Julie K RulapaughAustraliaAsiya Javayant PROPOSAL
Jennifer X AlbaresSpainBernardo Dominic NEW
Leja Q MacleadFranceAsiya Javayant UNQUALIFIED
Emily V FollerAustraliaBernardo Dominic PROPOSAL
Leon F ShinkoJapanElwin Sharvill NEGOTIATION
Salvatore Y StensethGermanyIoni Bowcher UNQUALIFIED
Wickens P MorascaAustraliaIoni Bowcher NEGOTIATION
Alejandro Q MorascaRussiaIvan Magalhaes NEGOTIATION
Clifford R NestleJapanXuxue Feng QUALIFIED
Sinclair Z GauchoRussiaIvan Magalhaes NEW
Greenwood H TollnerIndiaStephen Shaw NEW
Ricardo R RoysterJapanElwin Sharvill NEW
Silvio V RutaUnited KingdomAmy Elsner NEGOTIATION
Adams E FerenczBrazilAsiya Javayant QUALIFIED
Tony B ChuiArgentinaBernardo Dominic RENEWAL
Julie A RutaJapanElwin Sharvill PROPOSAL
Darci O CaldareraFranceElwin Sharvill QUALIFIED
Jefferson C VocelkaCanadaAsiya Javayant UNQUALIFIED
Johnson K DilliardItalyOnyama Limba NEGOTIATION
Emily Q ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Claire T BologniaFranceBernardo Dominic PROPOSAL
Emily P WhobreyItalyAsiya Javayant QUALIFIED
Ivar D CampainUnited KingdomXuxue Feng NEW
Darci L ChuiJapanBernardo Dominic RENEWAL
Silvio J DilliardAustraliaXuxue Feng NEGOTIATION
Kadeem B OldroydArgentinaOnyama Limba RENEWAL
Maria X DoeIndiaXuxue Feng RENEWAL
Ricardo M DilliardJapanIvan Magalhaes QUALIFIED
Ricardo V ChuiBrazilIvan Magalhaes NEW
Deepesh T CaudyFranceStephen Shaw QUALIFIED
James A InouyeBrazilAmy Elsner QUALIFIED
Aditya Q FigeroaArgentinaAnna Fali PROPOSAL
Jefferson A IturbideFranceIoni Bowcher PROPOSAL
Chavez Q RimGermanyAsiya Javayant QUALIFIED
Nicolas W DilliardBrazilIoni Bowcher NEGOTIATION
Jones M PoquetteFranceIoni Bowcher PROPOSAL
Clifford K MorascaJapanIvan Magalhaes QUALIFIED
Maria F RutaItalyAmy Elsner RENEWAL
Adams Q FollerCanadaBernardo Dominic PROPOSAL
Jeanfrancois T PerinCanadaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy D KuskoIndiaAmy Elsner PROPOSAL
Nicolas D FlosiArgentinaBernardo Dominic QUALIFIED
Rodrigues J PoquetteGermanyXuxue Feng RENEWAL
Stacey A ChuiRussiaXuxue Feng QUALIFIED
Antonio F KolmetzItalyIoni Bowcher UNQUALIFIED
Ashley B AlbaresSpainOnyama Limba QUALIFIED
Cody Z VocelkaItalyBernardo Dominic PROPOSAL
Ricardo N VocelkaItalyIoni Bowcher UNQUALIFIED
Murillo V RutaArgentinaElwin Sharvill PROPOSAL
Munro I NickaRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria G RutaBrazil2024-04-09Chapman, Ross E Esq QUALIFIED34Ivan Magalhaes
1001Arvin O DilliardSpain2024-04-12Benton, John B Jr NEGOTIATION1Asiya Javayant
1002Antonio R OstroskyUnited Kingdom2024-04-02Dorl, James J Esq UNQUALIFIED86Asiya Javayant
1003Deepesh O StockhamAustralia2024-04-05Benton, John B Jr QUALIFIED99Amy Elsner
1004Munro B ChuiBrazil2024-04-01Rousseaux, Michael Esq NEGOTIATION20Stephen Shaw
1005Izzy Z CaldareraGermany2024-04-13Feltz Printing Service RENEWAL25Stephen Shaw
1006Aditya T DoeFrance2024-04-11Chanay, Jeffrey A Esq PROPOSAL18Elwin Sharvill
1007Juan G GauchoSpain2024-04-01Dorl, James J Esq UNQUALIFIED94Amy Elsner
1008Francesco E PoquetteJapan2024-04-07Chemel, James L Cpa UNQUALIFIED11Ivan Magalhaes
1009Octavia P GlickCanada2024-04-21Rangoni Of Florence QUALIFIED28Bernardo Dominic
1010Silvio Q MorascaCanada2024-04-14Benton, John B Jr UNQUALIFIED90Asiya Javayant
1011Adams D DoeIndia2024-04-16Benton, John B Jr PROPOSAL76Onyama Limba
1012Mayumi B TollnerFrance2024-04-05Rousseaux, Michael Esq NEW85Anna Fali
1013David N StensethFrance2024-04-22Chanay, Jeffrey A Esq NEW88Anna Fali
1014Octavia D CaudyCanada2024-04-12Rangoni Of Florence RENEWAL36Amy Elsner
1015Jennifer G SchemmerGermany2024-03-26Commercial Press NEW8Stephen Shaw
1016Leon F WaycottUnited Kingdom2024-04-10Morlong Associates UNQUALIFIED62Anna Fali
1017Aruna H RoysterIndia2024-04-09Benton, John B Jr RENEWAL66Asiya Javayant
1018Johnson O GillianBrazil2024-03-29Feiner Bros NEW36Stephen Shaw
1019Clifford V PoquetteCanada2024-04-04Rangoni Of Florence NEGOTIATION39Stephen Shaw
1020Misaki P MaletUnited Kingdom2024-04-09Truhlar And Truhlar Attys RENEWAL67Amy Elsner
1021Costa J DarakjyFrance2024-04-15Commercial Press QUALIFIED13Bernardo Dominic
1022Darci M PerinSpain2024-04-15Rangoni Of Florence RENEWAL58Amy Elsner
1023Jennifer A MorascaArgentina2024-04-01Chapman, Ross E Esq NEGOTIATION12Ivan Magalhaes
1024Mujtaba A BowleyJapan2024-04-23Buckley Miller Wright QUALIFIED85Anna Fali
1025Johnson G KolmetzUnited Kingdom2024-03-29Rangoni Of Florence NEW43Asiya Javayant
1026Deepesh U GillianCanada2024-03-27Chemel, James L Cpa UNQUALIFIED36Amy Elsner
1027Cody R DarakjyGermany2024-04-16Feiner Bros QUALIFIED33Xuxue Feng
1028Maria X StensethItaly2024-04-09Buckley Miller Wright NEGOTIATION98Stephen Shaw
1029Julie C GarufiCanada2024-03-31King, Christopher A Esq PROPOSAL66Ioni Bowcher
1030Ricardo A MarrierUnited Kingdom2024-04-16Dorl, James J Esq RENEWAL6Anna Fali
1031Stacey G ShinkoArgentina2024-03-26Rangoni Of Florence NEW25Xuxue Feng
1032Emily J DarakjyJapan2024-04-16Dorl, James J Esq RENEWAL70Ivan Magalhaes
1033Jones H WaycottBrazil2024-04-05Rousseaux, Michael Esq RENEWAL51Amy Elsner
1034Isabel A BologniaSpain2024-04-09Benton, John B Jr PROPOSAL96Anna Fali
1035Salvatore H MaletCanada2024-04-23Benton, John B Jr RENEWAL0Bernardo Dominic
1036Ricardo Y OstroskyBrazil2024-04-14Chapman, Ross E Esq QUALIFIED87Anna Fali
1037Mujtaba D MaletCanada2024-04-16Benton, John B Jr NEGOTIATION33Asiya Javayant
1038Adams W AmigonUnited Kingdom2024-04-07King, Christopher A Esq QUALIFIED16Stephen Shaw
1039Jefferson O RimUnited Kingdom2024-04-01Commercial Press NEW67Anna Fali
1040Kadeem S SchemmerGermany2024-04-21Dorl, James J Esq NEGOTIATION6Ioni Bowcher
1041Silvio I SergiGermany2024-03-30Dorl, James J Esq UNQUALIFIED41Amy Elsner
1042Murillo W ChuiItaly2024-04-18Chapman, Ross E Esq UNQUALIFIED96Onyama Limba
1043Jeanfrancois D SergiGermany2024-04-03King, Christopher A Esq PROPOSAL23Elwin Sharvill
1044Maria Q MorascaRussia2024-04-10King, Christopher A Esq PROPOSAL38Asiya Javayant
1045Ivar H PaprockiItaly2024-03-28Benton, John B Jr QUALIFIED80Asiya Javayant
1046Misaki S SchemmerJapan2024-03-29Commercial Press RENEWAL14Ioni Bowcher
1047Kadeem M SaylorsJapan2024-04-12Printing Dimensions QUALIFIED71Asiya Javayant
1048Faith F GarufiGermany2024-04-12Rousseaux, Michael Esq NEGOTIATION36Stephen Shaw
1049Ivar Y ShinkoSpain2024-04-02Feiner Bros PROPOSAL64Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna F VenereAustraliaAnna Fali NEW
Ivar D StockhamAustraliaIoni Bowcher RENEWAL
Alejandro Q PaprockiGermanyOnyama Limba NEW
Jefferson R DilliardItalyXuxue Feng RENEWAL
Sinclair T PaprockiArgentinaAsiya Javayant PROPOSAL
Alejandro S DoeArgentinaStephen Shaw QUALIFIED
Morrow X BowleyCanadaAmy Elsner PROPOSAL
Salvatore U GauchoGermanyIoni Bowcher RENEWAL
Maria R NestleRussiaOnyama Limba NEGOTIATION
Deepesh X PaprockiCanadaBernardo Dominic NEGOTIATION
Stacey Z WieserGermanyBernardo Dominic QUALIFIED
Antonio A MorascaCanadaElwin Sharvill NEGOTIATION
Darci J MaletCanadaElwin Sharvill QUALIFIED
Maisha A GlickItalyIoni Bowcher NEW
Jennifer W WaycottSpainAnna Fali NEGOTIATION
Stacey O IturbideItalyBernardo Dominic QUALIFIED
Maria U OstroskyFranceAnna Fali NEGOTIATION
Costa J SergiCanadaAnna Fali QUALIFIED
Silvio T RoysterCanadaIoni Bowcher NEW
James N IturbideRussiaIvan Magalhaes UNQUALIFIED
Octavia V DilliardCanadaStephen Shaw NEW
Morrow Z NickaAustraliaStephen Shaw UNQUALIFIED
Silvio E FlosiSpainElwin Sharvill UNQUALIFIED
Isabel B IturbideSpainIoni Bowcher UNQUALIFIED
Ricardo T CampainAustraliaBernardo Dominic RENEWAL
Ashley B WhobreyCanadaBernardo Dominic QUALIFIED
Julie T WhobreyIndiaStephen Shaw RENEWAL
Costa C ChuiGermanyElwin Sharvill UNQUALIFIED
Isabel A MarrierItalyAmy Elsner PROPOSAL
Adams R IturbideIndiaOnyama Limba NEW
Misaki A RulapaughJapanXuxue Feng UNQUALIFIED
Jefferson B MorascaSpainElwin Sharvill NEGOTIATION
Jennifer P TollnerGermanyStephen Shaw NEGOTIATION
Ricardo O ButtRussiaBernardo Dominic UNQUALIFIED
Emily E GauchoAustraliaAnna Fali RENEWAL
Murillo I NestleBrazilAnna Fali PROPOSAL
Mayumi D SchemmerRussiaAmy Elsner QUALIFIED
Johnson E PoquetteArgentinaBernardo Dominic UNQUALIFIED
Ivar X InouyeBrazilAsiya Javayant UNQUALIFIED
Munro T GillianItalyStephen Shaw NEGOTIATION
Ivar E OldroydItalyBernardo Dominic UNQUALIFIED
Sinclair E OstroskyJapanIoni Bowcher QUALIFIED
Faith M GillianUnited KingdomAnna Fali NEW
Kadeem F OstroskyIndiaElwin Sharvill PROPOSAL
Nicolas E SaylorsArgentinaAmy Elsner NEGOTIATION
Sinclair Y BriddickJapanElwin Sharvill NEGOTIATION
Stacey L InouyeArgentinaIvan Magalhaes UNQUALIFIED
James Y PoquetteFranceStephen Shaw QUALIFIED
Kadeem I CaldareraGermanyElwin Sharvill RENEWAL
Costa W GauchoAustraliaElwin Sharvill RENEWAL
Frozen Columns
Name
Johnson N Rim
Faith F Malet
Silvio L Flosi
Izzy C Briddick
Juan N Sergi
Johnson C Malet
Rodrigues U Campain
Deepesh E Waycott
Ashley Z Kusko
Aika G Oldroyd
Cody K Vocelka
Greenwood X Garufi
Faith X Darakjy
Aruna D Vocelka
David B Kusko
Ivar Q Tollner
Maisha P Rim
Kaitlin O Sergi
Clifford M Darakjy
Rodrigues P Iturbide
Adams U Briddick
Faith L Inouye
Chavez F Garufi
Kadeem M Morasca
Misaki N Gaucho
Francesco F Whobrey
Misaki B Ostrosky
Rodrigues O Amigon
Aika A Saylors
Julie I Butt
Darci H Nestle
Nicolas B Slusarski
Izzy F Malet
James S Glick
Arvin N Saylors
Wickens B Royster
Aruna V Briddick
Tony N Glick
Jones N Venere
Deepesh C Sergi
Arvin X Campain
Tony J Paprocki
Julie B Nicka
Alejandro Y Bolognia
Jennifer I Maclead
Salvatore O Slusarski
Aruna M Slusarski
Aditya N Flosi
Smith E Rim
Juan A Inouye
IdCountryDate
1000Russia2024-04-08
1001United Kingdom2024-04-11
1002Japan2024-04-01
1003Brazil2024-04-10
1004France2024-04-10
1005Spain2024-03-30
1006Brazil2024-04-17
1007France2024-04-22
1008Russia2024-04-19
1009Spain2024-03-26
1010India2024-04-12
1011Canada2024-04-09
1012Japan2024-04-14
1013Argentina2024-04-12
1014France2024-04-20
1015Brazil2024-03-27
1016France2024-03-30
1017Germany2024-04-14
1018Canada2024-04-09
1019Spain2024-04-07
1020France2024-04-13
1021Italy2024-04-18
1022Germany2024-03-30
1023Italy2024-04-17
1024Japan2024-04-21
1025Italy2024-03-26
1026Argentina2024-04-13
1027Argentina2024-03-31
1028France2024-04-08
1029Canada2024-03-29
1030Brazil2024-04-17
1031Canada2024-04-04
1032Argentina2024-04-21
1033France2024-04-13
1034India2024-03-31
1035United Kingdom2024-04-21
1036France2024-04-15
1037Japan2024-04-12
1038France2024-04-18
1039India2024-04-14
1040United Kingdom2024-04-22
1041Brazil2024-03-26
1042Spain2024-04-20
1043France2024-04-20
1044Japan2024-03-25
1045Canada2024-04-17
1046Germany2024-04-21
1047India2024-03-31
1048Germany2024-04-09
1049United Kingdom2024-03-31

On-Demand Data

NameIdCountryDate
Salvatore S Wieser1000India2024-04-15
Jefferson G Vocelka1001Argentina2024-03-30
Ricardo M Butt1002Argentina2024-04-19
Greenwood A Albares1003India2024-04-10
Smith I Waycott1004France2024-04-04
Rodrigues M Ferencz1005Russia2024-04-22
Salvatore G Nicka1006India2024-03-27
Emily I Poquette1007Canada2024-04-23
Sinclair F Rim1008Brazil2024-03-25
Isabel L Campain1009India2024-04-04
Kadeem Y Slusarski1010Germany2024-04-14
Wickens B Gillian1011France2024-03-29
Greenwood B Inouye1012Germany2024-04-23
Maria Y Amigon1013Canada2024-04-19
David H Ruta1014India2024-04-20
Kaitlin B Stockham1015Italy2024-04-22
Ashley U Paprocki1016Canada2024-04-18
Darci K Oldroyd1017United Kingdom2024-04-15
Emily O Stockham1018India2024-04-04
Clifford M Kusko1019Italy2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar D GauchoArgentinaIoni Bowcher RENEWAL
Johnson X InouyeArgentinaOnyama Limba RENEWAL
Octavia T CampainBrazilAmy Elsner RENEWAL
Wickens Y GlickBrazilAmy Elsner PROPOSAL
Aditya A CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Antonio C BologniaIndiaOnyama Limba PROPOSAL
Mayumi H MarrierBrazilIoni Bowcher UNQUALIFIED
Alejandro V RulapaughItalyIoni Bowcher NEGOTIATION
Rodrigues V OldroydArgentinaBernardo Dominic NEGOTIATION
Darci Q SergiRussiaAmy Elsner NEW
Chavez T TollnerAustraliaAmy Elsner RENEWAL
Greenwood O StensethUnited KingdomAmy Elsner NEW
Isabel H StockhamBrazilOnyama Limba RENEWAL
Francesco B AmigonFranceIvan Magalhaes NEGOTIATION
David Y RulapaughSpainStephen Shaw QUALIFIED
Nicolas K MaletCanadaAmy Elsner RENEWAL
Deepesh F BowleyItalyIoni Bowcher QUALIFIED
Octavia L RulapaughUnited KingdomXuxue Feng NEW
Emily J CaudyBrazilAmy Elsner PROPOSAL
Ashley M WaycottItalyAnna Fali NEW
Aruna N MarrierCanadaAmy Elsner QUALIFIED
Jones S FerenczAustraliaOnyama Limba PROPOSAL
James B PoquetteGermanyOnyama Limba QUALIFIED
Mujtaba F SchemmerArgentinaAmy Elsner PROPOSAL
Jefferson X VenereUnited KingdomElwin Sharvill NEGOTIATION
Greenwood J DarakjyCanadaIoni Bowcher PROPOSAL
Kadeem Z MarrierBrazilAnna Fali QUALIFIED
Jefferson X GarufiBrazilBernardo Dominic UNQUALIFIED
Deepesh F MaletSpainAmy Elsner QUALIFIED
David U DarakjyRussiaOnyama Limba NEW
Johnson B RoysterJapanOnyama Limba UNQUALIFIED
Misaki Y OldroydIndiaBernardo Dominic RENEWAL
Aika O InouyeCanadaElwin Sharvill NEW
Jennifer J BriddickGermanyAmy Elsner RENEWAL
Aruna F ButtItalyAsiya Javayant QUALIFIED
Adams S RutaAustraliaOnyama Limba QUALIFIED
Greenwood O PerinBrazilAnna Fali RENEWAL
Leja U InouyeSpainBernardo Dominic UNQUALIFIED
Ivar Y MaletIndiaIoni Bowcher QUALIFIED
Francesco R KuskoUnited KingdomAnna Fali PROPOSAL

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