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
James A VocelkaUnited KingdomAnna Fali UNQUALIFIED
Juan E FlosiJapanAsiya Javayant NEW
Tony D TollnerSpainAnna Fali PROPOSAL
Adams V MacleadCanadaElwin Sharvill NEGOTIATION
Stacey Z KolmetzJapanAnna Fali UNQUALIFIED
Greenwood B MacleadItalyBernardo Dominic RENEWAL
Juan B GillianArgentinaAmy Elsner QUALIFIED
Juan Z GlickArgentinaElwin Sharvill RENEWAL
Sinclair R WhobreyUnited KingdomIoni Bowcher NEW
Wickens F DoeRussiaAmy Elsner UNQUALIFIED
Octavia W PaprockiFranceBernardo Dominic NEW
Rodrigues B PoquetteItalyAsiya Javayant UNQUALIFIED
Mayumi W ChuiBrazilAmy Elsner NEW
Claire V StensethItalyAnna Fali NEGOTIATION
Octavia T RimIndiaOnyama Limba NEW
Ivar B RimItalyBernardo Dominic NEGOTIATION
Jones S MarrierAustraliaOnyama Limba NEW
Munro Y CaudyJapanIoni Bowcher NEGOTIATION
Munro T NestleGermanyAnna Fali NEGOTIATION
Faith C ShinkoGermanyStephen Shaw NEW
Greenwood M RutaFranceIoni Bowcher PROPOSAL
Faith Z DilliardFranceAmy Elsner RENEWAL
Jeanfrancois I SaylorsGermanyIvan Magalhaes PROPOSAL
Johnson A VocelkaBrazilOnyama Limba UNQUALIFIED
Octavia K GillianItalyIvan Magalhaes QUALIFIED
Cody I FigeroaFranceXuxue Feng PROPOSAL
Aika Y FigeroaUnited KingdomBernardo Dominic NEW
Claire Z WhobreyAustraliaStephen Shaw NEGOTIATION
Mayumi Q PerinArgentinaIvan Magalhaes NEW
Wickens O InouyeJapanAnna Fali NEGOTIATION
Jefferson M VenereItalyAnna Fali RENEWAL
Wickens V OstroskySpainIvan Magalhaes RENEWAL
Mujtaba H PerinCanadaStephen Shaw RENEWAL
Stacey I SergiAustraliaIvan Magalhaes QUALIFIED
Rodrigues R VenereItalyElwin Sharvill PROPOSAL
Ricardo C MacleadJapanOnyama Limba QUALIFIED
Ivar P PerinGermanyAnna Fali UNQUALIFIED
Ivar Q DoeBrazilAmy Elsner NEW
Stacey W StockhamIndiaOnyama Limba RENEWAL
Juan L TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Cody K MorascaFranceAnna Fali RENEWAL
Cody J FerenczUnited KingdomIvan Magalhaes NEW
Francesco Y GlickSpainStephen Shaw UNQUALIFIED
James B BriddickFranceAmy Elsner NEGOTIATION
Isabel B BriddickRussiaBernardo Dominic NEGOTIATION
Salvatore E IturbideSpainIoni Bowcher PROPOSAL
Mujtaba C PaprockiItalyStephen Shaw NEW
Jefferson F DilliardCanadaAsiya Javayant PROPOSAL
Johnson G BowleyFranceAmy Elsner UNQUALIFIED
Adams W ButtUnited KingdomOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh H GillianRussiaOnyama Limba NEGOTIATION
James M CaudyItalyXuxue Feng PROPOSAL
Julie A GillianArgentinaAnna Fali NEW
Mujtaba D MarrierArgentinaStephen Shaw UNQUALIFIED
Maisha E PaprockiSpainStephen Shaw RENEWAL
Adams A DarakjyCanadaElwin Sharvill UNQUALIFIED
Izzy R FollerAustraliaBernardo Dominic PROPOSAL
Juan N SlusarskiIndiaAsiya Javayant NEGOTIATION
Smith K RimArgentinaElwin Sharvill UNQUALIFIED
Jones T FerenczUnited KingdomStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily A CaudyFrance2024-04-16Chapman, Ross E Esq RENEWAL30Stephen Shaw
1001Aditya A StockhamBrazil2024-04-26King, Christopher A Esq PROPOSAL92Amy Elsner
1002Morrow S BologniaAustralia2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED27Xuxue Feng
1003Adams K ButtSpain2024-04-04Printing Dimensions NEW57Ivan Magalhaes
1004Aditya K GauchoGermany2024-04-22Dorl, James J Esq NEW14Amy Elsner
1005Sinclair E OldroydBrazil2024-04-26Feltz Printing Service RENEWAL22Anna Fali
1006Jennifer N RimJapan2024-04-22Buckley Miller Wright NEW38Ivan Magalhaes
1007Smith N SchemmerItaly2024-04-16Chanay, Jeffrey A Esq QUALIFIED14Asiya Javayant
1008Ricardo S RimRussia2024-04-28Feltz Printing Service UNQUALIFIED49Elwin Sharvill
1009Munro X ChuiSpain2024-04-14Chanay, Jeffrey A Esq NEGOTIATION72Ivan Magalhaes
1010Chavez E NestleIndia2024-04-24Chemel, James L Cpa NEW48Amy Elsner
1011Jeanfrancois R IturbideSpain2024-04-24Dorl, James J Esq PROPOSAL9Ivan Magalhaes
1012Morrow C StensethBrazil2024-04-22Commercial Press QUALIFIED12Elwin Sharvill
1013Silvio B RoysterJapan2024-04-05Feiner Bros PROPOSAL90Ivan Magalhaes
1014Claire F ChuiRussia2024-04-13Morlong Associates NEW11Anna Fali
1015Claire Y OstroskyArgentina2024-04-30Benton, John B Jr NEGOTIATION14Anna Fali
1016Maisha Q InouyeBrazil2024-04-29Chemel, James L Cpa PROPOSAL15Anna Fali
1017James H FigeroaAustralia2024-04-20Commercial Press RENEWAL0Bernardo Dominic
1018Wickens O MarrierIndia2024-04-25Chapman, Ross E Esq NEW8Asiya Javayant
1019Mujtaba T KuskoSpain2024-04-19Chemel, James L Cpa PROPOSAL29Bernardo Dominic
1020Greenwood G VocelkaSpain2024-04-18Chemel, James L Cpa UNQUALIFIED67Elwin Sharvill
1021Emily P ChuiUnited Kingdom2024-04-10Chanay, Jeffrey A Esq NEW95Asiya Javayant
1022Maria S OstroskyAustralia2024-04-16Truhlar And Truhlar Attys RENEWAL38Ioni Bowcher
1023Leja F KolmetzGermany2024-04-08Rousseaux, Michael Esq PROPOSAL72Ioni Bowcher
1024Juan L ChuiJapan2024-04-24Feiner Bros UNQUALIFIED24Onyama Limba
1025Silvio F NestleAustralia2024-04-17Commercial Press RENEWAL89Asiya Javayant
1026Greenwood B KolmetzUnited Kingdom2024-04-03Morlong Associates QUALIFIED51Amy Elsner
1027Jefferson V BowleyBrazil2024-04-11Rousseaux, Michael Esq NEGOTIATION4Onyama Limba
1028Arvin H PoquetteCanada2024-04-17Buckley Miller Wright UNQUALIFIED76Anna Fali
1029Julie U GarufiBrazil2024-04-05Feiner Bros PROPOSAL27Anna Fali
1030Octavia W PoquetteFrance2024-04-28Buckley Miller Wright NEW48Ioni Bowcher
1031David M PerinAustralia2024-04-10Dorl, James J Esq NEGOTIATION68Stephen Shaw
1032Octavia I ChuiUnited Kingdom2024-04-17Truhlar And Truhlar Attys NEW63Asiya Javayant
1033Leja N VenereSpain2024-04-15Chanay, Jeffrey A Esq PROPOSAL0Amy Elsner
1034Antonio H NickaGermany2024-04-14Chapman, Ross E Esq NEW99Bernardo Dominic
1035Tony L CaldareraGermany2024-04-11Morlong Associates NEW45Elwin Sharvill
1036Murillo N DarakjyJapan2024-04-23Benton, John B Jr NEGOTIATION73Bernardo Dominic
1037Jones T IturbideItaly2024-04-22Feltz Printing Service NEW13Asiya Javayant
1038Deepesh X StensethArgentina2024-04-06Chanay, Jeffrey A Esq PROPOSAL62Elwin Sharvill
1039David C WhobreyAustralia2024-04-22Chanay, Jeffrey A Esq PROPOSAL73Onyama Limba
1040Salvatore I DilliardAustralia2024-04-16Chapman, Ross E Esq RENEWAL14Stephen Shaw
1041Rodrigues S WaycottFrance2024-04-09Chanay, Jeffrey A Esq PROPOSAL49Ivan Magalhaes
1042Alejandro S OldroydJapan2024-04-24Printing Dimensions QUALIFIED2Ioni Bowcher
1043Sinclair D MorascaJapan2024-04-25Chapman, Ross E Esq NEW62Onyama Limba
1044Clifford T CaldareraAustralia2024-04-06Feltz Printing Service UNQUALIFIED91Bernardo Dominic
1045Jennifer K SchemmerIndia2024-04-01Feltz Printing Service NEGOTIATION91Xuxue Feng
1046Francesco A SergiSpain2024-04-22Morlong Associates NEGOTIATION51Ioni Bowcher
1047Costa P BriddickSpain2024-04-27King, Christopher A Esq NEW20Ioni Bowcher
1048Murillo E RulapaughAustralia2024-04-17Rousseaux, Michael Esq NEGOTIATION9Ivan Magalhaes
1049Emily A AmigonJapan2024-04-06Chanay, Jeffrey A Esq RENEWAL28Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie F ButtIndiaAsiya Javayant NEGOTIATION
Smith J FlosiBrazilOnyama Limba QUALIFIED
Arvin S FerenczItalyAsiya Javayant UNQUALIFIED
Izzy D IturbideUnited KingdomBernardo Dominic RENEWAL
Nicolas P CaudyFranceXuxue Feng RENEWAL
Arvin S BologniaFranceIoni Bowcher QUALIFIED
Emily G CampainIndiaElwin Sharvill PROPOSAL
Octavia M MaletAustraliaStephen Shaw NEGOTIATION
Leon V DilliardRussiaAmy Elsner UNQUALIFIED
Stacey G SergiFranceXuxue Feng PROPOSAL
Costa K ShinkoJapanElwin Sharvill NEGOTIATION
Aruna M StensethFranceAnna Fali PROPOSAL
Aruna V BriddickIndiaXuxue Feng QUALIFIED
Johnson X OstroskyArgentinaAsiya Javayant RENEWAL
Ricardo U MorascaGermanyBernardo Dominic RENEWAL
David K SaylorsCanadaIoni Bowcher NEGOTIATION
Ashley M WhobreyAustraliaElwin Sharvill NEW
Julie K AlbaresArgentinaElwin Sharvill NEW
Izzy R InouyeGermanyAmy Elsner NEGOTIATION
Jones P FollerIndiaOnyama Limba NEW
Jefferson Y OldroydJapanElwin Sharvill QUALIFIED
Jennifer Z FlosiGermanyStephen Shaw PROPOSAL
Maisha E FollerItalyAnna Fali NEGOTIATION
Greenwood L BriddickItalyXuxue Feng PROPOSAL
Tony I SlusarskiRussiaAsiya Javayant NEW
Nicolas U FollerFranceElwin Sharvill UNQUALIFIED
Mayumi P CaudyBrazilXuxue Feng UNQUALIFIED
Julie D SergiRussiaBernardo Dominic PROPOSAL
Cody G CaudyGermanyStephen Shaw PROPOSAL
Nicolas C VocelkaFranceStephen Shaw UNQUALIFIED
Mayumi U FlosiCanadaIoni Bowcher RENEWAL
Jennifer Z ShinkoIndiaAmy Elsner UNQUALIFIED
Rodrigues W MorascaUnited KingdomAnna Fali QUALIFIED
Clifford Z InouyeArgentinaXuxue Feng NEW
Nicolas Q WieserBrazilXuxue Feng UNQUALIFIED
Clifford N NickaSpainIvan Magalhaes NEW
Sinclair M ChuiBrazilXuxue Feng PROPOSAL
Julie D VocelkaCanadaIoni Bowcher RENEWAL
Isabel S PerinSpainAsiya Javayant UNQUALIFIED
Greenwood S VenereCanadaElwin Sharvill RENEWAL
Deepesh F GlickJapanBernardo Dominic PROPOSAL
Munro I ShinkoRussiaElwin Sharvill QUALIFIED
Mayumi M GauchoItalyElwin Sharvill UNQUALIFIED
Jones V NestleAustraliaOnyama Limba NEGOTIATION
Alejandro O RutaFranceElwin Sharvill NEW
Maisha Y OldroydUnited KingdomOnyama Limba PROPOSAL
Aika D MacleadUnited KingdomXuxue Feng NEW
Claire L ButtJapanOnyama Limba RENEWAL
Octavia F PerinCanadaAsiya Javayant NEGOTIATION
Antonio R GarufiUnited KingdomIvan Magalhaes QUALIFIED
Frozen Columns
Name
Aika Y Royster
Antonio A Poquette
Octavia I Marrier
Jeanfrancois R Foller
Adams M Paprocki
Ivar D Rim
Emily L Butt
Leon C Venere
Antonio P Ferencz
Ashley T Bowley
Silvio D Morasca
Mayumi I Ruta
Kaitlin C Campain
Nicolas J Ferencz
Darci P Rim
Silvio N Royster
Chavez W Ostrosky
Kadeem L Darakjy
Morrow N Flosi
Aruna J Caldarera
Salvatore P Campain
Octavia U Poquette
Silvio P Inouye
Claire I Rulapaugh
Rodrigues Q Schemmer
Salvatore X Ferencz
Chavez K Dilliard
Chavez O Kusko
Darci H Rim
Chavez G Butt
Leja K Ostrosky
Costa M Saylors
Ricardo Z Ferencz
Mujtaba P Perin
Aika P Rim
Leja B Amigon
Maisha J Garufi
Johnson R Bolognia
Jefferson E Briddick
David Q Venere
Misaki K Paprocki
Mujtaba S Chui
James A Rim
Alejandro T Doe
Mujtaba W Campain
Faith I Albares
Izzy Z Marrier
Ricardo J Glick
Jones T Maclead
Antonio E Dilliard
IdCountryDate
1000Italy2024-04-30
1001Brazil2024-04-06
1002Brazil2024-04-10
1003Australia2024-04-28
1004France2024-04-07
1005Japan2024-04-13
1006France2024-04-13
1007India2024-04-02
1008Argentina2024-04-29
1009Brazil2024-04-07
1010France2024-04-24
1011Brazil2024-04-02
1012Canada2024-04-02
1013Russia2024-04-05
1014India2024-04-21
1015Germany2024-04-02
1016Russia2024-04-18
1017Italy2024-04-30
1018Canada2024-04-11
1019Australia2024-04-11
1020India2024-04-08
1021France2024-04-13
1022United Kingdom2024-04-01
1023Brazil2024-04-03
1024Italy2024-04-24
1025Canada2024-04-14
1026Argentina2024-04-05
1027France2024-04-04
1028Brazil2024-04-21
1029India2024-04-15
1030Russia2024-04-03
1031Germany2024-04-03
1032Italy2024-04-24
1033Australia2024-04-13
1034France2024-04-28
1035Germany2024-04-29
1036Germany2024-04-19
1037Canada2024-04-11
1038Brazil2024-04-12
1039Argentina2024-04-23
1040Italy2024-04-08
1041France2024-04-21
1042Australia2024-04-21
1043Spain2024-04-01
1044Brazil2024-04-18
1045Brazil2024-04-11
1046Japan2024-04-03
1047India2024-04-18
1048Canada2024-04-22
1049Japan2024-04-17

On-Demand Data

NameIdCountryDate
Kaitlin X Nestle1000Russia2024-04-29
Kadeem G Gaucho1001Russia2024-04-30
Stacey K Caldarera1002Russia2024-04-26
Arvin G Schemmer1003Spain2024-04-25
Izzy C Amigon1004Spain2024-04-08
Silvio V Wieser1005France2024-04-24
Darci R Gillian1006Australia2024-04-23
Maria O Doe1007France2024-04-18
Mujtaba A Nestle1008France2024-04-08
Chavez W Gaucho1009India2024-04-11
Ivar H Morasca1010India2024-04-02
Tony O Malet1011Australia2024-04-15
Octavia B Campain1012Japan2024-04-08
Jones C Doe1013Spain2024-04-04
Stacey L Glick1014Australia2024-04-17
Clifford B Figeroa1015Germany2024-04-01
Kaitlin D Slusarski1016Australia2024-04-05
Isabel U Briddick1017Brazil2024-04-23
Octavia Q Malet1018Italy2024-04-15
Johnson K Vocelka1019Argentina2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya K FollerJapanElwin Sharvill PROPOSAL
Wickens W BowleyFranceAmy Elsner NEW
Misaki Y MaletArgentinaIvan Magalhaes PROPOSAL
Rodrigues E StockhamIndiaOnyama Limba RENEWAL
Sinclair Y MacleadArgentinaAnna Fali RENEWAL
Stacey S NestleJapanOnyama Limba UNQUALIFIED
Octavia K WaycottIndiaXuxue Feng NEW
Tony O PoquetteJapanStephen Shaw RENEWAL
Maisha O TollnerIndiaAsiya Javayant RENEWAL
Rodrigues O NestleItalyAnna Fali UNQUALIFIED
Jefferson Q PerinArgentinaAsiya Javayant PROPOSAL
Cody K OldroydCanadaAnna Fali UNQUALIFIED
Nicolas O WaycottAustraliaAmy Elsner RENEWAL
Mayumi U RoysterArgentinaIvan Magalhaes PROPOSAL
Aditya E NickaRussiaIoni Bowcher PROPOSAL
Antonio E IturbideUnited KingdomBernardo Dominic QUALIFIED
Nicolas U ChuiCanadaElwin Sharvill UNQUALIFIED
Chavez X MorascaItalyIvan Magalhaes QUALIFIED
Clifford T FollerIndiaStephen Shaw PROPOSAL
Cody G CaldareraUnited KingdomElwin Sharvill QUALIFIED
Salvatore C AlbaresGermanyAnna Fali UNQUALIFIED
Johnson L WhobreyItalyBernardo Dominic PROPOSAL
Jeanfrancois N CaudyGermanyStephen Shaw RENEWAL
Kaitlin F RulapaughSpainElwin Sharvill QUALIFIED
Silvio I ButtAustraliaStephen Shaw NEGOTIATION
Aruna U BriddickCanadaBernardo Dominic UNQUALIFIED
Darci S KuskoJapanAsiya Javayant PROPOSAL
Sinclair Y MaletUnited KingdomAnna Fali UNQUALIFIED
Aika E RoysterArgentinaXuxue Feng RENEWAL
Ricardo N SergiAustraliaIoni Bowcher NEW
Stacey H MarrierIndiaAmy Elsner PROPOSAL
Jeanfrancois R MacleadFranceOnyama Limba NEGOTIATION
Claire R TollnerCanadaIvan Magalhaes QUALIFIED
Mujtaba X StensethArgentinaStephen Shaw RENEWAL
Claire L DarakjyAustraliaXuxue Feng PROPOSAL
Greenwood O BowleyGermanyIoni Bowcher UNQUALIFIED
Francesco X DilliardAustraliaAnna Fali UNQUALIFIED
Leon Z DilliardRussiaIvan Magalhaes UNQUALIFIED
Greenwood C WaycottSpainBernardo Dominic PROPOSAL
Johnson C ChuiIndiaAnna Fali NEGOTIATION

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