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
Costa H CaldareraAustraliaIvan Magalhaes RENEWAL
Leon Q ChuiJapanAmy Elsner NEGOTIATION
Claire J DoeItalyOnyama Limba RENEWAL
Sinclair P GlickSpainBernardo Dominic UNQUALIFIED
Costa L InouyeBrazilBernardo Dominic PROPOSAL
Silvio N OldroydGermanyAmy Elsner RENEWAL
Octavia A CaudyRussiaXuxue Feng NEW
Stacey X MarrierFranceXuxue Feng UNQUALIFIED
Chavez Z StensethIndiaAsiya Javayant QUALIFIED
Kadeem Q SchemmerIndiaAsiya Javayant RENEWAL
Arvin B BowleyRussiaStephen Shaw RENEWAL
Aditya M DoeBrazilAmy Elsner NEGOTIATION
Juan I WieserItalyOnyama Limba NEGOTIATION
Wickens U KolmetzArgentinaAmy Elsner NEW
Isabel G SchemmerArgentinaXuxue Feng UNQUALIFIED
Emily M IturbideUnited KingdomAnna Fali NEW
Kaitlin C SaylorsUnited KingdomXuxue Feng UNQUALIFIED
David J ShinkoAustraliaXuxue Feng NEGOTIATION
Izzy V VenereBrazilXuxue Feng QUALIFIED
Arvin K PerinIndiaAnna Fali NEGOTIATION
Octavia C WhobreyJapanBernardo Dominic PROPOSAL
Juan Z MorascaArgentinaAnna Fali NEW
Cody K WhobreyArgentinaAmy Elsner RENEWAL
Stacey E ShinkoCanadaAmy Elsner NEGOTIATION
Darci G SlusarskiBrazilAmy Elsner PROPOSAL
Wickens Z SergiSpainAnna Fali UNQUALIFIED
Nicolas Z TollnerItalyXuxue Feng NEGOTIATION
Chavez I PerinCanadaStephen Shaw RENEWAL
Rodrigues E ChuiJapanStephen Shaw NEW
Antonio R AlbaresItalyOnyama Limba NEW
Silvio D TollnerFranceXuxue Feng RENEWAL
Silvio U FerenczIndiaAmy Elsner RENEWAL
Greenwood I InouyeAustraliaXuxue Feng UNQUALIFIED
Antonio P ChuiArgentinaAmy Elsner NEGOTIATION
Jones X BologniaUnited KingdomIoni Bowcher PROPOSAL
Costa O ButtUnited KingdomBernardo Dominic PROPOSAL
Darci V RulapaughFranceAsiya Javayant NEW
Izzy U OldroydUnited KingdomIoni Bowcher QUALIFIED
Morrow F TollnerItalyAsiya Javayant PROPOSAL
Sinclair Y WaycottRussiaAmy Elsner QUALIFIED
Alejandro G SergiGermanyXuxue Feng NEW
Aruna R DarakjyAustraliaAnna Fali NEGOTIATION
Jefferson U VenereCanadaElwin Sharvill UNQUALIFIED
Smith P RimGermanyStephen Shaw RENEWAL
Ivar A ChuiArgentinaXuxue Feng UNQUALIFIED
Darci Y SaylorsBrazilElwin Sharvill PROPOSAL
Claire F DarakjyGermanyAmy Elsner PROPOSAL
Aditya I CampainArgentinaBernardo Dominic QUALIFIED
Greenwood L FigeroaItalyXuxue Feng NEW
Ashley B CampainItalyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo Q DilliardSpainBernardo Dominic NEW
Leon E WaycottIndiaBernardo Dominic NEGOTIATION
Nicolas L FigeroaAustraliaBernardo Dominic UNQUALIFIED
Claire T NestleFranceAmy Elsner PROPOSAL
Alejandro Q ChuiItalyBernardo Dominic NEW
Rodrigues V DilliardGermanyBernardo Dominic NEW
Murillo W FerenczGermanyXuxue Feng UNQUALIFIED
Jennifer O SchemmerItalyIoni Bowcher UNQUALIFIED
Jeanfrancois J KolmetzAustraliaIoni Bowcher QUALIFIED
Leja O KuskoFranceXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo A MorascaJapan2024-04-19Feltz Printing Service UNQUALIFIED79Elwin Sharvill
1001David V DarakjyJapan2024-04-11Commercial Press PROPOSAL11Anna Fali
1002Izzy N PaprockiBrazil2024-04-29Commercial Press NEGOTIATION80Elwin Sharvill
1003Octavia K NickaJapan2024-04-19Buckley Miller Wright UNQUALIFIED70Anna Fali
1004Greenwood R RutaUnited Kingdom2024-04-28Commercial Press QUALIFIED87Ioni Bowcher
1005Alejandro D DilliardGermany2024-04-09Chemel, James L Cpa PROPOSAL48Asiya Javayant
1006Aruna V MaletCanada2024-04-24Truhlar And Truhlar Attys PROPOSAL49Elwin Sharvill
1007Jennifer T WaycottJapan2024-04-14Truhlar And Truhlar Attys NEGOTIATION44Ivan Magalhaes
1008Silvio R CaudyItaly2024-04-15Buckley Miller Wright PROPOSAL4Asiya Javayant
1009Ashley W RulapaughJapan2024-04-07Chanay, Jeffrey A Esq PROPOSAL18Asiya Javayant
1010Octavia E MaletCanada2024-04-21Feltz Printing Service NEGOTIATION78Anna Fali
1011Alejandro D DarakjySpain2024-04-27Buckley Miller Wright PROPOSAL20Elwin Sharvill
1012Kadeem T ChuiFrance2024-04-10King, Christopher A Esq PROPOSAL53Ivan Magalhaes
1013Aika Z VenereFrance2024-04-26Commercial Press UNQUALIFIED69Elwin Sharvill
1014Johnson H MaletCanada2024-04-16Rousseaux, Michael Esq NEGOTIATION56Asiya Javayant
1015Johnson B IturbideArgentina2024-04-21Dorl, James J Esq PROPOSAL3Elwin Sharvill
1016Darci F MaletUnited Kingdom2024-04-20King, Christopher A Esq NEW58Ioni Bowcher
1017Alejandro P OldroydIndia2024-04-23Commercial Press UNQUALIFIED80Onyama Limba
1018Ashley J OstroskyFrance2024-05-02Buckley Miller Wright PROPOSAL21Xuxue Feng
1019Jones C NickaSpain2024-05-04Morlong Associates RENEWAL13Bernardo Dominic
1020Leon N DarakjyArgentina2024-05-02Feiner Bros NEGOTIATION58Ioni Bowcher
1021Tony E OldroydBrazil2024-05-03Truhlar And Truhlar Attys QUALIFIED57Onyama Limba
1022Maria Y WaycottItaly2024-04-17Morlong Associates RENEWAL6Stephen Shaw
1023Silvio V DarakjyRussia2024-04-17Rousseaux, Michael Esq RENEWAL9Ioni Bowcher
1024Silvio B StensethCanada2024-04-11Rousseaux, Michael Esq QUALIFIED65Onyama Limba
1025Mujtaba F WaycottFrance2024-04-23Morlong Associates RENEWAL44Asiya Javayant
1026Ricardo A MaletIndia2024-05-02Chemel, James L Cpa NEW75Elwin Sharvill
1027Isabel E MarrierIndia2024-04-07Truhlar And Truhlar Attys UNQUALIFIED4Elwin Sharvill
1028Claire J NickaRussia2024-04-28Feiner Bros QUALIFIED82Bernardo Dominic
1029Greenwood A RutaSpain2024-04-20Commercial Press PROPOSAL86Asiya Javayant
1030Octavia M BriddickBrazil2024-04-13Chapman, Ross E Esq PROPOSAL46Xuxue Feng
1031Deepesh Z InouyeFrance2024-04-27Chemel, James L Cpa NEGOTIATION95Onyama Limba
1032Rodrigues I DarakjyAustralia2024-04-18Chanay, Jeffrey A Esq RENEWAL13Amy Elsner
1033Kaitlin E FollerSpain2024-04-30Chapman, Ross E Esq QUALIFIED95Anna Fali
1034Isabel P PerinBrazil2024-04-18Chapman, Ross E Esq NEGOTIATION15Xuxue Feng
1035Antonio J ButtAustralia2024-04-23Chemel, James L Cpa QUALIFIED31Amy Elsner
1036Tony Z GillianCanada2024-04-28Dorl, James J Esq QUALIFIED85Elwin Sharvill
1037Mayumi A NestleRussia2024-04-11Morlong Associates RENEWAL77Elwin Sharvill
1038Costa F BriddickUnited Kingdom2024-04-28Buckley Miller Wright NEW80Asiya Javayant
1039Stacey P VenereJapan2024-05-03Chapman, Ross E Esq UNQUALIFIED28Stephen Shaw
1040Munro G GarufiBrazil2024-04-19Buckley Miller Wright RENEWAL6Onyama Limba
1041Clifford L BriddickBrazil2024-04-14Chemel, James L Cpa QUALIFIED54Bernardo Dominic
1042Izzy R ButtFrance2024-04-12Benton, John B Jr NEW61Elwin Sharvill
1043Emily V ChuiBrazil2024-05-02Rousseaux, Michael Esq NEW21Anna Fali
1044Arvin T GillianGermany2024-04-18King, Christopher A Esq RENEWAL19Ivan Magalhaes
1045Kadeem O RimIndia2024-04-09Printing Dimensions UNQUALIFIED93Xuxue Feng
1046Rodrigues H IturbideSpain2024-05-01Printing Dimensions NEGOTIATION5Asiya Javayant
1047Emily J RutaArgentina2024-04-29Dorl, James J Esq QUALIFIED76Asiya Javayant
1048Deepesh D FlosiItaly2024-04-28Chanay, Jeffrey A Esq NEGOTIATION65Xuxue Feng
1049Faith A MaletGermany2024-04-16Dorl, James J Esq RENEWAL56Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aditya E NestleArgentinaElwin Sharvill NEW
Julie C DarakjySpainAsiya Javayant PROPOSAL
Leja U BriddickUnited KingdomStephen Shaw QUALIFIED
Johnson J FollerGermanyAnna Fali NEGOTIATION
Stacey U BologniaIndiaAnna Fali NEGOTIATION
Kadeem H DarakjyGermanyStephen Shaw RENEWAL
James E MaletCanadaIoni Bowcher NEW
Ricardo U StockhamAustraliaIvan Magalhaes PROPOSAL
Clifford E PoquetteSpainStephen Shaw NEW
Juan Y IturbideBrazilAmy Elsner RENEWAL
Murillo N RulapaughBrazilAmy Elsner RENEWAL
Mayumi G MaletSpainStephen Shaw PROPOSAL
Octavia G StensethItalyIvan Magalhaes QUALIFIED
Francesco X KolmetzCanadaAsiya Javayant PROPOSAL
Mujtaba V TollnerArgentinaXuxue Feng PROPOSAL
Maria H GarufiJapanAsiya Javayant NEGOTIATION
Jeanfrancois M MorascaAustraliaIoni Bowcher NEW
Rodrigues Y SchemmerIndiaElwin Sharvill PROPOSAL
Juan S WaycottJapanElwin Sharvill QUALIFIED
Darci D OstroskyAustraliaIoni Bowcher UNQUALIFIED
Octavia H FlosiBrazilAnna Fali NEGOTIATION
Leja D AmigonArgentinaElwin Sharvill RENEWAL
Mujtaba Z MarrierBrazilStephen Shaw NEW
Aruna S SlusarskiSpainIoni Bowcher NEGOTIATION
Izzy C MacleadGermanyAnna Fali NEW
James R FigeroaIndiaXuxue Feng NEGOTIATION
Jones R SchemmerArgentinaAnna Fali QUALIFIED
Smith A StockhamArgentinaAnna Fali PROPOSAL
Chavez V AmigonItalyAsiya Javayant RENEWAL
Costa N GillianAustraliaXuxue Feng NEW
Claire M DarakjyItalyBernardo Dominic PROPOSAL
Costa J FollerAustraliaAsiya Javayant RENEWAL
Tony N FlosiJapanOnyama Limba RENEWAL
Sinclair H FollerBrazilXuxue Feng QUALIFIED
David H BologniaAustraliaXuxue Feng NEGOTIATION
Ivar U FerenczSpainElwin Sharvill QUALIFIED
Juan Y WaycottArgentinaIvan Magalhaes NEGOTIATION
Mujtaba M ChuiIndiaOnyama Limba QUALIFIED
Leon L VocelkaJapanIoni Bowcher QUALIFIED
Francesco L DilliardItalyXuxue Feng PROPOSAL
Adams G ShinkoAustraliaStephen Shaw RENEWAL
Octavia R FlosiJapanElwin Sharvill NEGOTIATION
Kaitlin C FigeroaSpainOnyama Limba RENEWAL
Isabel S CampainUnited KingdomXuxue Feng QUALIFIED
Juan X DilliardRussiaBernardo Dominic UNQUALIFIED
Jennifer E DilliardIndiaAmy Elsner RENEWAL
Jeanfrancois M WieserCanadaAsiya Javayant QUALIFIED
Kadeem P FerenczJapanStephen Shaw RENEWAL
Munro W OstroskyBrazilBernardo Dominic RENEWAL
Mujtaba W GillianFranceStephen Shaw QUALIFIED
Frozen Columns
Name
Stacey C Morasca
Stacey A Rulapaugh
Smith I Albares
Nicolas I Caudy
Kaitlin D Slusarski
Antonio I Bowley
Aruna O Figeroa
Ivar S Inouye
Johnson J Schemmer
Kadeem U Doe
Kaitlin A Ferencz
Ashley Z Slusarski
Antonio X Gillian
Nicolas X Schemmer
Tony C Nestle
Salvatore T Inouye
Maria J Oldroyd
Rodrigues J Tollner
James Z Caldarera
Ashley N Whobrey
Chavez Q Gaucho
Salvatore W Darakjy
Cody F Doe
Maisha G Rulapaugh
Nicolas K Saylors
Ashley Q Darakjy
Sinclair V Caudy
Leon B Flosi
Jefferson T Malet
Leja L Rulapaugh
Chavez Z Figeroa
Sinclair D Bowley
Silvio B Paprocki
Isabel S Garufi
Aditya U Gillian
Claire E Amigon
Sinclair Z Waycott
Octavia U Rulapaugh
Ricardo V Glick
Morrow E Shinko
Rodrigues T Gillian
Ashley K Royster
Tony T Caudy
Emily U Caldarera
Maisha W Garufi
Murillo J Sergi
Sinclair F Nestle
James L Slusarski
Rodrigues P Sergi
Aditya J Royster
IdCountryDate
1000Canada2024-04-22
1001Argentina2024-04-25
1002Japan2024-04-10
1003Japan2024-04-15
1004Canada2024-04-26
1005Brazil2024-04-10
1006Italy2024-04-08
1007Japan2024-04-15
1008Argentina2024-04-27
1009Spain2024-04-29
1010Brazil2024-04-29
1011Germany2024-04-18
1012Germany2024-04-15
1013Russia2024-05-03
1014Japan2024-04-30
1015United Kingdom2024-04-18
1016Russia2024-05-03
1017Italy2024-04-05
1018Italy2024-04-20
1019Brazil2024-04-17
1020Spain2024-04-17
1021India2024-04-25
1022India2024-04-20
1023Russia2024-04-26
1024Italy2024-04-14
1025Australia2024-04-30
1026Germany2024-04-09
1027Russia2024-04-16
1028Canada2024-04-28
1029Russia2024-04-30
1030Argentina2024-04-10
1031Russia2024-04-13
1032Australia2024-04-21
1033United Kingdom2024-04-05
1034Russia2024-04-15
1035India2024-04-26
1036Japan2024-04-20
1037Italy2024-04-14
1038Canada2024-04-12
1039Russia2024-04-15
1040Germany2024-05-04
1041Spain2024-04-21
1042Russia2024-04-05
1043Italy2024-04-09
1044France2024-04-08
1045Germany2024-04-17
1046Russia2024-04-19
1047Australia2024-04-22
1048Spain2024-04-24
1049United Kingdom2024-04-06

On-Demand Data

NameIdCountryDate
Leon R Kusko1000Japan2024-04-12
Octavia J Wieser1001France2024-04-07
Murillo C Paprocki1002Australia2024-04-28
Kaitlin O Oldroyd1003Germany2024-05-04
Jeanfrancois B Glick1004India2024-05-02
Clifford Q Briddick1005Argentina2024-04-08
Greenwood P Whobrey1006Russia2024-04-22
Cody Q Marrier1007Australia2024-04-07
Nicolas M Butt1008Italy2024-05-03
Adams H Figeroa1009India2024-04-21
David Y Saylors1010Argentina2024-04-29
Emily F Vocelka1011United Kingdom2024-04-28
Francesco I Nestle1012Spain2024-04-29
Clifford G Tollner1013Italy2024-04-18
David J Saylors1014Germany2024-04-29
Izzy T Ferencz1015France2024-04-18
Leja O Ostrosky1016Germany2024-04-19
Rodrigues N Stockham1017Canada2024-04-05
Stacey X Vocelka1018Argentina2024-04-13
Chavez P Bolognia1019India2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey I RulapaughGermanyOnyama Limba NEGOTIATION
Darci B InouyeSpainOnyama Limba QUALIFIED
Jeanfrancois W GarufiFranceXuxue Feng UNQUALIFIED
Faith J WaycottAustraliaAsiya Javayant PROPOSAL
Morrow C StensethAustraliaElwin Sharvill NEW
Chavez S SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Leon X SaylorsRussiaBernardo Dominic PROPOSAL
Maisha Y NickaArgentinaOnyama Limba PROPOSAL
James O NestleBrazilBernardo Dominic UNQUALIFIED
Ricardo P RulapaughIndiaStephen Shaw NEGOTIATION
Johnson Z GauchoIndiaIvan Magalhaes RENEWAL
Rodrigues E GauchoSpainIoni Bowcher QUALIFIED
Maria N NickaJapanBernardo Dominic PROPOSAL
Cody V DilliardGermanyOnyama Limba NEGOTIATION
Chavez K RulapaughGermanyAsiya Javayant RENEWAL
Kaitlin G BriddickFranceIoni Bowcher NEGOTIATION
Deepesh B ShinkoBrazilXuxue Feng PROPOSAL
Kadeem E SlusarskiGermanyIvan Magalhaes NEGOTIATION
Ricardo B WaycottItalyIvan Magalhaes NEW
Alejandro F MacleadIndiaXuxue Feng PROPOSAL
Sinclair R VocelkaUnited KingdomAnna Fali RENEWAL
Emily U DoeRussiaAsiya Javayant UNQUALIFIED
Arvin O StensethJapanXuxue Feng NEW
Misaki D ChuiItalyOnyama Limba QUALIFIED
Rodrigues P BowleyIndiaAsiya Javayant PROPOSAL
Misaki B DoeAustraliaAsiya Javayant NEW
Rodrigues Y PaprockiUnited KingdomAmy Elsner QUALIFIED
Murillo W GlickBrazilAsiya Javayant RENEWAL
Leja Y ChuiCanadaAmy Elsner RENEWAL
Ricardo H OldroydCanadaBernardo Dominic QUALIFIED
Kadeem W ShinkoCanadaAmy Elsner RENEWAL
Nicolas J MarrierJapanOnyama Limba NEW
Jeanfrancois R FerenczBrazilIoni Bowcher QUALIFIED
Leja Y GauchoJapanStephen Shaw NEW
Antonio S CaldareraUnited KingdomXuxue Feng NEGOTIATION
Chavez Z AlbaresGermanyAsiya Javayant RENEWAL
Costa N NestleGermanyStephen Shaw UNQUALIFIED
Smith V NestleArgentinaAnna Fali NEW
Salvatore I DoeCanadaAnna Fali NEGOTIATION
Murillo U RoysterJapanIvan Magalhaes 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>