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
David W ChuiJapanAsiya Javayant UNQUALIFIED
Ashley D FollerFranceIvan Magalhaes QUALIFIED
Aditya T IturbideFranceElwin Sharvill UNQUALIFIED
Wickens K MacleadFranceXuxue Feng UNQUALIFIED
Antonio S SaylorsSpainIoni Bowcher UNQUALIFIED
Stacey Q TollnerBrazilElwin Sharvill NEGOTIATION
Adams A FigeroaGermanyOnyama Limba RENEWAL
Kadeem K OldroydUnited KingdomAnna Fali UNQUALIFIED
Munro W WhobreyIndiaAnna Fali QUALIFIED
Mujtaba Z VenereBrazilStephen Shaw RENEWAL
David Q WaycottJapanIoni Bowcher PROPOSAL
Aditya N FerenczRussiaAsiya Javayant NEW
Maisha J CampainArgentinaIvan Magalhaes NEW
Faith D MorascaSpainAsiya Javayant PROPOSAL
Izzy K RutaGermanyStephen Shaw PROPOSAL
Faith H WieserJapanOnyama Limba UNQUALIFIED
Kaitlin E VenereGermanyBernardo Dominic QUALIFIED
Ivar A MarrierGermanyBernardo Dominic PROPOSAL
Munro O KolmetzJapanAsiya Javayant RENEWAL
Silvio B OldroydFranceIoni Bowcher UNQUALIFIED
Octavia Q OstroskyCanadaIoni Bowcher PROPOSAL
Izzy D PaprockiAustraliaXuxue Feng RENEWAL
Leon W RulapaughIndiaIvan Magalhaes PROPOSAL
Salvatore U DoeGermanyAmy Elsner NEW
Leja D SchemmerSpainAmy Elsner QUALIFIED
Jefferson H SchemmerArgentinaElwin Sharvill QUALIFIED
Salvatore Y RoysterSpainIoni Bowcher RENEWAL
Juan J WhobreyBrazilAnna Fali QUALIFIED
Jefferson G MacleadSpainAmy Elsner QUALIFIED
David U ButtFranceAsiya Javayant QUALIFIED
Izzy L KolmetzRussiaOnyama Limba NEGOTIATION
Misaki Y BriddickIndiaStephen Shaw QUALIFIED
Ricardo J VocelkaArgentinaIoni Bowcher NEGOTIATION
Alejandro U PerinRussiaAsiya Javayant UNQUALIFIED
Stacey Z VenereJapanIvan Magalhaes UNQUALIFIED
Ricardo V SchemmerRussiaXuxue Feng NEGOTIATION
Juan G FlosiUnited KingdomAsiya Javayant NEW
Kaitlin G CaldareraRussiaIoni Bowcher NEGOTIATION
Mayumi V KolmetzRussiaXuxue Feng NEGOTIATION
Wickens M GillianFranceXuxue Feng RENEWAL
Leja S DilliardUnited KingdomAmy Elsner QUALIFIED
Emily N AmigonArgentinaAmy Elsner QUALIFIED
Sinclair M BologniaFranceBernardo Dominic NEGOTIATION
Mujtaba J PerinSpainElwin Sharvill NEGOTIATION
Adams D FollerUnited KingdomAnna Fali UNQUALIFIED
Wickens J GauchoBrazilAmy Elsner PROPOSAL
Leon J OldroydIndiaIoni Bowcher UNQUALIFIED
James Y RutaCanadaAnna Fali QUALIFIED
Maisha U TollnerBrazilAsiya Javayant PROPOSAL
Misaki B GlickBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aika H OldroydAustraliaIvan Magalhaes PROPOSAL
Nicolas V SlusarskiAustraliaElwin Sharvill NEGOTIATION
Costa V InouyeUnited KingdomAsiya Javayant NEW
David I ShinkoSpainAnna Fali QUALIFIED
Costa H RulapaughBrazilIvan Magalhaes PROPOSAL
Greenwood X OstroskyGermanyStephen Shaw NEGOTIATION
Julie R DarakjyArgentinaStephen Shaw NEGOTIATION
James K RutaAustraliaOnyama Limba QUALIFIED
Izzy Y BowleyAustraliaAnna Fali QUALIFIED
Munro K ButtSpainOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford G DilliardItaly2024-04-23Rangoni Of Florence PROPOSAL46Stephen Shaw
1001Ashley F IturbideJapan2024-04-25Truhlar And Truhlar Attys QUALIFIED80Ioni Bowcher
1002Rodrigues E SergiAustralia2024-04-11Chemel, James L Cpa QUALIFIED16Anna Fali
1003Misaki F NickaUnited Kingdom2024-04-03Benton, John B Jr UNQUALIFIED36Stephen Shaw
1004Kadeem C ChuiSpain2024-04-23Rangoni Of Florence QUALIFIED15Elwin Sharvill
1005Jeanfrancois Q PerinGermany2024-04-03Chemel, James L Cpa NEW59Asiya Javayant
1006Kadeem G MacleadAustralia2024-04-20Benton, John B Jr NEW30Onyama Limba
1007Adams J FerenczBrazil2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED37Xuxue Feng
1008Clifford I FollerGermany2024-04-27King, Christopher A Esq NEW78Anna Fali
1009Julie H PaprockiBrazil2024-03-29Printing Dimensions QUALIFIED45Stephen Shaw
1010Greenwood K ShinkoSpain2024-04-14Chanay, Jeffrey A Esq QUALIFIED86Ioni Bowcher
1011Deepesh H DilliardUnited Kingdom2024-04-23Truhlar And Truhlar Attys NEGOTIATION18Ivan Magalhaes
1012Aditya W FerenczBrazil2024-03-31Chanay, Jeffrey A Esq NEW61Bernardo Dominic
1013Wickens O KolmetzIndia2024-04-10Chemel, James L Cpa QUALIFIED60Xuxue Feng
1014Morrow X StensethFrance2024-04-21Truhlar And Truhlar Attys NEGOTIATION40Bernardo Dominic
1015Jennifer C MorascaCanada2024-04-01Feltz Printing Service QUALIFIED45Amy Elsner
1016Kadeem A SergiSpain2024-04-05Rangoni Of Florence QUALIFIED62Bernardo Dominic
1017Stacey U MaletBrazil2024-04-17Printing Dimensions UNQUALIFIED90Stephen Shaw
1018Stacey V VenereCanada2024-04-07King, Christopher A Esq UNQUALIFIED48Ioni Bowcher
1019Izzy A MorascaFrance2024-04-23Rousseaux, Michael Esq QUALIFIED73Amy Elsner
1020Clifford Y InouyeIndia2024-04-18Printing Dimensions NEW66Xuxue Feng
1021Chavez A NestleAustralia2024-04-23Benton, John B Jr NEGOTIATION31Stephen Shaw
1022Jefferson I SaylorsJapan2024-04-16Morlong Associates NEGOTIATION22Amy Elsner
1023Ashley L CaldareraJapan2024-04-16Chemel, James L Cpa NEW33Anna Fali
1024Smith R SlusarskiSpain2024-04-17Chapman, Ross E Esq UNQUALIFIED86Amy Elsner
1025Adams B MorascaGermany2024-04-14Truhlar And Truhlar Attys NEW70Xuxue Feng
1026Aditya I GillianBrazil2024-04-19Dorl, James J Esq PROPOSAL32Ivan Magalhaes
1027Mayumi D WhobreyJapan2024-04-17Chapman, Ross E Esq NEGOTIATION29Xuxue Feng
1028Mayumi E ButtFrance2024-04-22Rangoni Of Florence RENEWAL49Asiya Javayant
1029Maria N TollnerFrance2024-04-14Rousseaux, Michael Esq UNQUALIFIED41Asiya Javayant
1030Costa R ButtAustralia2024-04-18Commercial Press QUALIFIED58Ioni Bowcher
1031Jefferson K MorascaItaly2024-04-20Feiner Bros RENEWAL17Bernardo Dominic
1032Misaki A MaletArgentina2024-04-24King, Christopher A Esq UNQUALIFIED40Stephen Shaw
1033Sinclair X InouyeJapan2024-03-29Dorl, James J Esq PROPOSAL56Amy Elsner
1034Wickens B CaldareraJapan2024-04-04Rousseaux, Michael Esq NEW62Stephen Shaw
1035Chavez X RulapaughArgentina2024-04-25Truhlar And Truhlar Attys PROPOSAL49Xuxue Feng
1036Smith W CampainArgentina2024-04-13Chapman, Ross E Esq RENEWAL30Elwin Sharvill
1037Mujtaba D KolmetzArgentina2024-04-10Chemel, James L Cpa PROPOSAL9Elwin Sharvill
1038Misaki C StockhamItaly2024-04-13Commercial Press UNQUALIFIED74Elwin Sharvill
1039Wickens M CaudyAustralia2024-04-02Chapman, Ross E Esq PROPOSAL39Anna Fali
1040Johnson X WieserRussia2024-04-02Feiner Bros RENEWAL12Anna Fali
1041Kadeem I WieserFrance2024-04-17Chemel, James L Cpa RENEWAL37Ioni Bowcher
1042Claire Y ChuiCanada2024-04-22Chanay, Jeffrey A Esq PROPOSAL58Asiya Javayant
1043Jennifer A GarufiIndia2024-04-27Benton, John B Jr PROPOSAL55Anna Fali
1044Faith G TollnerSpain2024-04-21Truhlar And Truhlar Attys NEW38Ivan Magalhaes
1045Faith X AlbaresBrazil2024-03-30Rangoni Of Florence QUALIFIED95Ivan Magalhaes
1046Isabel W MaletAustralia2024-04-26Chanay, Jeffrey A Esq NEGOTIATION27Elwin Sharvill
1047Jennifer G RutaSpain2024-04-05Chanay, Jeffrey A Esq RENEWAL64Xuxue Feng
1048Claire P WaycottBrazil2024-04-16Rousseaux, Michael Esq NEGOTIATION50Asiya Javayant
1049Stacey O SergiItaly2024-04-09Morlong Associates NEW70Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Wickens S KolmetzRussiaAmy Elsner NEGOTIATION
Darci M MacleadRussiaStephen Shaw NEW
Kadeem R ButtSpainIoni Bowcher PROPOSAL
Murillo B MaletAustraliaStephen Shaw NEW
Deepesh V GillianAustraliaIoni Bowcher NEW
Leja S FlosiRussiaXuxue Feng PROPOSAL
Mujtaba Z WhobreyArgentinaBernardo Dominic PROPOSAL
Smith K MaletJapanXuxue Feng QUALIFIED
Deepesh P ButtSpainElwin Sharvill NEW
Izzy P AlbaresArgentinaAmy Elsner NEW
Salvatore R GillianItalyBernardo Dominic QUALIFIED
Kaitlin A GauchoItalyAnna Fali RENEWAL
Stacey T SaylorsIndiaIoni Bowcher UNQUALIFIED
Ivar X FlosiGermanyAmy Elsner UNQUALIFIED
Morrow P SlusarskiArgentinaOnyama Limba NEW
James W TollnerRussiaXuxue Feng QUALIFIED
Murillo Y RutaJapanBernardo Dominic RENEWAL
Faith H KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Jones O FollerSpainIoni Bowcher UNQUALIFIED
Chavez J IturbideAustraliaIvan Magalhaes NEW
Arvin O VenereCanadaAmy Elsner UNQUALIFIED
Antonio F RimGermanyAsiya Javayant QUALIFIED
Rodrigues L TollnerGermanyStephen Shaw NEGOTIATION
Leja W BriddickUnited KingdomIoni Bowcher PROPOSAL
Isabel Y StockhamIndiaAnna Fali PROPOSAL
Leon Q MarrierAustraliaAnna Fali NEGOTIATION
Ivar K FigeroaRussiaElwin Sharvill NEW
Octavia Z BologniaCanadaIvan Magalhaes UNQUALIFIED
Cody Q OldroydItalyOnyama Limba PROPOSAL
Murillo E DarakjyFranceAmy Elsner NEGOTIATION
Antonio Q InouyeBrazilStephen Shaw RENEWAL
Smith H WaycottUnited KingdomXuxue Feng RENEWAL
Juan O StockhamItalyAnna Fali PROPOSAL
Octavia B MaletArgentinaAnna Fali UNQUALIFIED
Izzy D PerinSpainAsiya Javayant UNQUALIFIED
Leon M CaldareraSpainAmy Elsner NEW
Silvio H MaletFranceAsiya Javayant RENEWAL
Stacey B StensethIndiaXuxue Feng PROPOSAL
Darci P StockhamSpainOnyama Limba NEW
Ricardo T NestleGermanyIoni Bowcher UNQUALIFIED
Maria E TollnerItalyAsiya Javayant NEGOTIATION
Cody B FigeroaCanadaOnyama Limba PROPOSAL
Costa S NickaItalyAmy Elsner RENEWAL
Smith L WieserSpainElwin Sharvill QUALIFIED
Faith P WhobreyItalyIvan Magalhaes NEW
James Z OldroydIndiaAmy Elsner QUALIFIED
Antonio G VocelkaBrazilBernardo Dominic NEGOTIATION
Greenwood F FerenczIndiaElwin Sharvill UNQUALIFIED
Stacey X MorascaJapanBernardo Dominic PROPOSAL
Sinclair L WhobreyBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Claire P Malet
Mayumi A Gillian
Leon X Vocelka
Leon V Foller
Aditya A Chui
Francesco L Tollner
Tony T Albares
Aika W Kolmetz
Murillo D Ferencz
Smith K Iturbide
Arvin L Nestle
Maria L Inouye
Alejandro A Nicka
Isabel Y Schemmer
Aika F Iturbide
David H Maclead
Adams I Morasca
Faith D Vocelka
Arvin Y Iturbide
Wickens W Nestle
Ricardo B Garufi
Wickens Z Garufi
Rodrigues O Ferencz
Faith V Foller
Tony O Kusko
Claire B Stenseth
Darci H Vocelka
Johnson Y Bolognia
Nicolas P Chui
Jones B Royster
Claire P Chui
Leon F Paprocki
Cody K Foller
Murillo F Morasca
Cody E Nestle
Kadeem V Caldarera
Maria K Bowley
Tony Q Garufi
Antonio F Amigon
Salvatore K Ruta
Greenwood N Rulapaugh
James X Poquette
Silvio N Kusko
Emily E Stenseth
Chavez S Maclead
Jones Y Malet
Izzy R Rulapaugh
Adams V Rim
Munro C Venere
Aditya N Kusko
IdCountryDate
1000Italy2024-04-18
1001India2024-04-17
1002Brazil2024-04-13
1003Canada2024-04-05
1004Canada2024-04-13
1005Russia2024-04-27
1006Germany2024-04-24
1007Spain2024-04-13
1008Japan2024-04-25
1009Brazil2024-04-16
1010Germany2024-04-22
1011Italy2024-04-10
1012Australia2024-04-06
1013Italy2024-04-08
1014Spain2024-03-29
1015Japan2024-04-05
1016Germany2024-04-03
1017Argentina2024-04-15
1018Brazil2024-04-04
1019Japan2024-04-03
1020Germany2024-04-27
1021Russia2024-04-11
1022Argentina2024-04-07
1023Japan2024-04-17
1024Germany2024-04-13
1025Spain2024-04-18
1026United Kingdom2024-04-11
1027Australia2024-04-16
1028Canada2024-04-24
1029Russia2024-04-19
1030Italy2024-04-10
1031Japan2024-04-08
1032Russia2024-04-14
1033Canada2024-03-29
1034Canada2024-04-02
1035Australia2024-04-19
1036United Kingdom2024-04-21
1037Canada2024-03-31
1038Russia2024-04-05
1039Canada2024-04-04
1040Italy2024-04-08
1041Russia2024-04-13
1042Russia2024-04-16
1043Germany2024-04-26
1044Japan2024-04-14
1045Germany2024-04-08
1046Brazil2024-03-31
1047Argentina2024-04-12
1048India2024-04-18
1049Italy2024-03-30

On-Demand Data

NameIdCountryDate
Francesco E Nicka1000Brazil2024-04-08
Francesco A Kusko1001Germany2024-04-19
Leja U Gillian1002Brazil2024-04-02
Maria K Dilliard1003Japan2024-03-30
James U Albares1004France2024-04-02
Faith E Ferencz1005India2024-04-21
Aika U Vocelka1006Italy2024-04-09
Maria Z Caldarera1007France2024-04-06
Octavia T Amigon1008Japan2024-04-18
Kadeem R Gillian1009Brazil2024-03-30
Jones N Dilliard1010Russia2024-04-22
Francesco I Bowley1011France2024-04-16
Clifford J Venere1012France2024-04-20
Faith B Inouye1013Russia2024-04-16
Salvatore T Caudy1014Germany2024-04-08
Deepesh E Ferencz1015Canada2024-04-08
Maisha Y Vocelka1016Italy2024-04-12
Adams R Malet1017Spain2024-04-05
Jones K Vocelka1018Spain2024-04-08
Claire M Butt1019Australia2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro A VenereGermanyIvan Magalhaes RENEWAL
Kaitlin O RoysterFranceXuxue Feng PROPOSAL
Ivar G FlosiBrazilElwin Sharvill NEW
Izzy L DarakjyUnited KingdomAsiya Javayant PROPOSAL
Silvio J NestleSpainAnna Fali NEGOTIATION
Octavia O BriddickCanadaBernardo Dominic RENEWAL
Deepesh T FerenczArgentinaStephen Shaw UNQUALIFIED
Wickens T StensethUnited KingdomStephen Shaw NEW
Silvio O FigeroaArgentinaIoni Bowcher QUALIFIED
Sinclair L RoysterCanadaIvan Magalhaes QUALIFIED
James Q PaprockiFranceAmy Elsner RENEWAL
Emily E CaudyItalyIoni Bowcher RENEWAL
Stacey T AmigonUnited KingdomBernardo Dominic QUALIFIED
Francesco J GauchoRussiaElwin Sharvill NEW
Aditya Z AlbaresSpainAmy Elsner RENEWAL
Stacey V StensethItalyElwin Sharvill UNQUALIFIED
Greenwood D MorascaSpainIvan Magalhaes UNQUALIFIED
Ivar C SaylorsBrazilOnyama Limba QUALIFIED
Deepesh A BologniaArgentinaBernardo Dominic NEGOTIATION
Emily A ButtCanadaIoni Bowcher NEW
Aditya N WaycottGermanyIoni Bowcher PROPOSAL
Maisha Q MacleadJapanBernardo Dominic UNQUALIFIED
Juan O BologniaJapanIoni Bowcher RENEWAL
Jefferson S MaletFranceXuxue Feng UNQUALIFIED
Jennifer B IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Aruna P InouyeRussiaIvan Magalhaes UNQUALIFIED
Tony K ButtGermanyBernardo Dominic PROPOSAL
Antonio R CampainCanadaElwin Sharvill UNQUALIFIED
Misaki I MaletArgentinaIoni Bowcher PROPOSAL
Adams B BologniaCanadaOnyama Limba QUALIFIED
Izzy Y DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Cody F ChuiJapanAnna Fali NEGOTIATION
Silvio F CampainJapanXuxue Feng UNQUALIFIED
Alejandro C RimFranceIoni Bowcher UNQUALIFIED
Jeanfrancois G ChuiItalyBernardo Dominic NEW
Stacey F MarrierFranceElwin Sharvill RENEWAL
David K SlusarskiFranceAnna Fali RENEWAL
Jefferson G DilliardRussiaAsiya Javayant UNQUALIFIED
Greenwood F WaycottCanadaBernardo Dominic RENEWAL
Nicolas T ButtBrazilAnna Fali RENEWAL

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