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
Misaki V GarufiUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois N AmigonArgentinaAnna Fali PROPOSAL
James U FerenczAustraliaElwin Sharvill PROPOSAL
Kaitlin B AmigonArgentinaBernardo Dominic NEW
Darci K BologniaItalyAnna Fali UNQUALIFIED
Mayumi Q CampainBrazilAsiya Javayant NEW
Darci B IturbideUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin K DilliardBrazilBernardo Dominic QUALIFIED
Isabel T FlosiGermanyAsiya Javayant NEW
Maria D VenereIndiaIvan Magalhaes UNQUALIFIED
Johnson X DoeRussiaBernardo Dominic PROPOSAL
Chavez A WhobreyRussiaIoni Bowcher RENEWAL
Jeanfrancois R FlosiFranceAsiya Javayant NEGOTIATION
Julie X CampainCanadaXuxue Feng PROPOSAL
Francesco F KolmetzItalyAsiya Javayant NEGOTIATION
Costa Y GauchoFranceIvan Magalhaes NEW
Jeanfrancois O StockhamIndiaBernardo Dominic UNQUALIFIED
Smith T WieserArgentinaAmy Elsner PROPOSAL
Ashley F DilliardCanadaIoni Bowcher PROPOSAL
Smith E MorascaRussiaOnyama Limba UNQUALIFIED
Faith J RimFranceAsiya Javayant PROPOSAL
Morrow M GillianIndiaAmy Elsner NEW
Claire Q AmigonRussiaXuxue Feng UNQUALIFIED
Munro G IturbideAustraliaAnna Fali NEGOTIATION
Octavia T SchemmerUnited KingdomBernardo Dominic NEW
Francesco I GlickArgentinaStephen Shaw NEGOTIATION
Costa B SlusarskiIndiaStephen Shaw NEGOTIATION
Maisha M PoquetteRussiaIvan Magalhaes QUALIFIED
Faith A MorascaArgentinaAsiya Javayant NEW
Faith D CaldareraUnited KingdomIoni Bowcher NEW
Antonio D StensethFranceAmy Elsner QUALIFIED
Tony H FerenczRussiaBernardo Dominic PROPOSAL
Adams Q ShinkoGermanyBernardo Dominic QUALIFIED
Johnson Y SchemmerArgentinaXuxue Feng NEGOTIATION
Smith L FlosiBrazilIoni Bowcher RENEWAL
Leja H SlusarskiRussiaAmy Elsner RENEWAL
Ashley Z StensethUnited KingdomIvan Magalhaes QUALIFIED
David P RimBrazilStephen Shaw RENEWAL
Munro U WieserCanadaXuxue Feng UNQUALIFIED
Stacey E DilliardCanadaOnyama Limba NEW
Jones Z ChuiFranceAnna Fali PROPOSAL
Adams L MacleadSpainOnyama Limba NEGOTIATION
Nicolas O KolmetzCanadaStephen Shaw NEGOTIATION
Cody F RoysterFranceIvan Magalhaes NEGOTIATION
Stacey C AmigonUnited KingdomAsiya Javayant RENEWAL
Arvin S VenereSpainBernardo Dominic QUALIFIED
Silvio N BowleyCanadaElwin Sharvill PROPOSAL
David O DoeAustraliaElwin Sharvill UNQUALIFIED
Greenwood E FollerRussiaElwin Sharvill NEGOTIATION
Greenwood F RimBrazilBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
David M CaldareraSpainAmy Elsner RENEWAL
Jones N OldroydAustraliaIoni Bowcher NEW
Alejandro C RoysterFranceAsiya Javayant QUALIFIED
Adams N RutaGermanyAmy Elsner PROPOSAL
Misaki B FerenczAustraliaAsiya Javayant QUALIFIED
Juan A FollerRussiaIoni Bowcher PROPOSAL
Leon H MaletIndiaBernardo Dominic RENEWAL
Morrow L NickaGermanyStephen Shaw NEW
Ricardo U GauchoBrazilIoni Bowcher PROPOSAL
Octavia E DilliardUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin A VenereArgentina2024-05-08Feltz Printing Service QUALIFIED99Ivan Magalhaes
1001Claire J RoysterBrazil2024-04-30Chemel, James L Cpa PROPOSAL28Anna Fali
1002Leja R TollnerCanada2024-04-28Truhlar And Truhlar Attys QUALIFIED45Elwin Sharvill
1003Ashley S PerinUnited Kingdom2024-05-07Commercial Press UNQUALIFIED60Anna Fali
1004Johnson X BowleyUnited Kingdom2024-04-24Feltz Printing Service UNQUALIFIED95Amy Elsner
1005Jones O MorascaJapan2024-04-19Chapman, Ross E Esq RENEWAL41Anna Fali
1006Nicolas R OstroskyGermany2024-04-24Benton, John B Jr NEGOTIATION33Stephen Shaw
1007Aditya S ShinkoIndia2024-04-25Morlong Associates NEGOTIATION15Elwin Sharvill
1008Misaki T RimUnited Kingdom2024-05-04Printing Dimensions NEW2Elwin Sharvill
1009Salvatore B StockhamAustralia2024-04-20Feiner Bros UNQUALIFIED88Ivan Magalhaes
1010Alejandro V RoysterCanada2024-05-07King, Christopher A Esq UNQUALIFIED50Ioni Bowcher
1011Jones T PoquetteRussia2024-04-15Printing Dimensions RENEWAL45Anna Fali
1012Mayumi X TollnerBrazil2024-04-17Printing Dimensions QUALIFIED59Ivan Magalhaes
1013Johnson H PoquetteGermany2024-04-20Buckley Miller Wright PROPOSAL29Ivan Magalhaes
1014Claire P StockhamCanada2024-04-18Chapman, Ross E Esq NEGOTIATION80Amy Elsner
1015James I GillianGermany2024-04-24Commercial Press PROPOSAL91Onyama Limba
1016Leon T OldroydRussia2024-04-16Chemel, James L Cpa NEGOTIATION88Ioni Bowcher
1017Ricardo C AlbaresSpain2024-05-03Dorl, James J Esq RENEWAL12Onyama Limba
1018Smith B MacleadArgentina2024-04-15Rangoni Of Florence QUALIFIED51Elwin Sharvill
1019Izzy J KuskoRussia2024-04-27Feltz Printing Service NEW37Bernardo Dominic
1020Antonio Y StockhamItaly2024-04-27Rangoni Of Florence QUALIFIED99Onyama Limba
1021Ricardo P OldroydUnited Kingdom2024-05-01Rousseaux, Michael Esq NEGOTIATION2Amy Elsner
1022Rodrigues I ButtFrance2024-04-18Benton, John B Jr UNQUALIFIED45Ioni Bowcher
1023David G ChuiUnited Kingdom2024-05-09Truhlar And Truhlar Attys UNQUALIFIED43Ivan Magalhaes
1024Juan R FollerFrance2024-04-21Truhlar And Truhlar Attys NEGOTIATION12Elwin Sharvill
1025Ashley C ShinkoJapan2024-05-11Rousseaux, Michael Esq UNQUALIFIED17Bernardo Dominic
1026Arvin N BologniaCanada2024-05-10Truhlar And Truhlar Attys QUALIFIED93Stephen Shaw
1027Adams B SchemmerJapan2024-04-18King, Christopher A Esq RENEWAL95Anna Fali
1028Jennifer C PerinFrance2024-04-19Rangoni Of Florence QUALIFIED5Ivan Magalhaes
1029Smith N MarrierCanada2024-04-17Morlong Associates UNQUALIFIED39Onyama Limba
1030Aruna X WieserUnited Kingdom2024-05-12Commercial Press QUALIFIED79Xuxue Feng
1031Jeanfrancois O CaldareraSpain2024-04-29Chemel, James L Cpa NEW23Bernardo Dominic
1032Aruna N PoquetteAustralia2024-05-04Printing Dimensions UNQUALIFIED83Xuxue Feng
1033Aruna A OstroskyItaly2024-04-21Buckley Miller Wright QUALIFIED84Bernardo Dominic
1034Ivar R CaldareraIndia2024-05-01King, Christopher A Esq RENEWAL49Amy Elsner
1035David M BriddickGermany2024-04-25Chapman, Ross E Esq RENEWAL10Anna Fali
1036Claire T OldroydAustralia2024-05-09Morlong Associates NEW75Amy Elsner
1037Izzy K SaylorsRussia2024-04-20Chanay, Jeffrey A Esq PROPOSAL57Anna Fali
1038Munro Y MorascaAustralia2024-05-05Commercial Press QUALIFIED90Asiya Javayant
1039Isabel E ShinkoFrance2024-04-23Feltz Printing Service NEGOTIATION10Elwin Sharvill
1040Munro J SergiAustralia2024-05-07Commercial Press UNQUALIFIED18Stephen Shaw
1041Deepesh J ChuiFrance2024-04-19Commercial Press NEGOTIATION34Bernardo Dominic
1042Jones Y StensethUnited Kingdom2024-04-24Buckley Miller Wright RENEWAL64Asiya Javayant
1043Leon U DilliardGermany2024-05-01Feltz Printing Service RENEWAL4Elwin Sharvill
1044Munro Q FigeroaBrazil2024-04-13Printing Dimensions UNQUALIFIED16Ivan Magalhaes
1045Alejandro A SchemmerSpain2024-04-17Morlong Associates NEW4Bernardo Dominic
1046Mujtaba I CampainRussia2024-05-06Rousseaux, Michael Esq NEGOTIATION8Ioni Bowcher
1047Costa S NestleUnited Kingdom2024-04-14Morlong Associates QUALIFIED44Ioni Bowcher
1048Antonio H CaudyRussia2024-04-18Buckley Miller Wright PROPOSAL65Amy Elsner
1049Murillo U MaletBrazil2024-04-21King, Christopher A Esq RENEWAL26Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Silvio B RulapaughArgentinaElwin Sharvill RENEWAL
Sinclair Z PoquetteItalyAmy Elsner NEGOTIATION
Sinclair G StockhamGermanyAnna Fali NEW
Murillo H CaldareraJapanIvan Magalhaes NEW
Clifford D SchemmerJapanOnyama Limba UNQUALIFIED
Jennifer X NickaBrazilStephen Shaw RENEWAL
Kadeem X MaletAustraliaElwin Sharvill UNQUALIFIED
Costa O RimJapanXuxue Feng PROPOSAL
Nicolas L SlusarskiItalyAsiya Javayant PROPOSAL
Leon R SaylorsSpainElwin Sharvill QUALIFIED
Ricardo E InouyeArgentinaIvan Magalhaes QUALIFIED
Sinclair B OldroydUnited KingdomIoni Bowcher RENEWAL
Deepesh Q NestleCanadaIvan Magalhaes PROPOSAL
Darci H PerinSpainStephen Shaw NEGOTIATION
Cody H BologniaArgentinaBernardo Dominic UNQUALIFIED
Tony H SergiFranceAnna Fali PROPOSAL
Smith O DilliardArgentinaOnyama Limba UNQUALIFIED
Leja A KolmetzSpainOnyama Limba QUALIFIED
Leja Q AmigonGermanyAnna Fali NEW
Ivar F WaycottBrazilBernardo Dominic PROPOSAL
Wickens A OldroydGermanyIvan Magalhaes NEW
Clifford K FigeroaCanadaIoni Bowcher NEGOTIATION
Cody T NestleCanadaOnyama Limba RENEWAL
Murillo X CaudyAustraliaXuxue Feng RENEWAL
Cody T StockhamGermanyXuxue Feng NEGOTIATION
Sinclair Z AmigonArgentinaXuxue Feng QUALIFIED
Adams I CaudyIndiaElwin Sharvill PROPOSAL
Jeanfrancois V GillianUnited KingdomIoni Bowcher PROPOSAL
Mayumi W DarakjyRussiaElwin Sharvill UNQUALIFIED
Rodrigues M KolmetzBrazilOnyama Limba RENEWAL
Mayumi W WieserBrazilAsiya Javayant UNQUALIFIED
Antonio T WieserBrazilAmy Elsner NEGOTIATION
Ivar C VenereArgentinaAsiya Javayant PROPOSAL
Ivar H WhobreySpainElwin Sharvill NEGOTIATION
Aika Q SaylorsRussiaElwin Sharvill NEW
Johnson E MaletJapanIoni Bowcher NEGOTIATION
Arvin G CampainBrazilIvan Magalhaes RENEWAL
Faith W AmigonItalyAsiya Javayant UNQUALIFIED
Salvatore V BowleyFranceAnna Fali NEGOTIATION
Aditya M ChuiBrazilXuxue Feng UNQUALIFIED
Tony H BriddickIndiaOnyama Limba QUALIFIED
Jefferson W MaletBrazilElwin Sharvill NEGOTIATION
Maria D TollnerCanadaBernardo Dominic NEGOTIATION
David M MaletUnited KingdomAnna Fali NEW
Cody B FerenczBrazilXuxue Feng PROPOSAL
Francesco Q RulapaughItalyAmy Elsner QUALIFIED
Rodrigues G BriddickItalyBernardo Dominic NEW
Izzy Y GarufiItalyAmy Elsner PROPOSAL
Wickens J RutaArgentinaIvan Magalhaes QUALIFIED
Jefferson F KuskoCanadaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Maria U Schemmer
Stacey D Flosi
Costa H Bowley
Jennifer E Marrier
Munro O Gillian
Costa P Iturbide
Stacey P Flosi
Leon H Ostrosky
Izzy I Gillian
Isabel M Briddick
Alejandro Q Tollner
Alejandro P Chui
Stacey F Royster
Octavia T Vocelka
Francesco G Schemmer
Kaitlin M Nicka
Wickens K Ferencz
Rodrigues L Caldarera
Wickens T Figeroa
Kaitlin D Malet
Nicolas U Inouye
Jones S Schemmer
Julie Q Flosi
Sinclair P Paprocki
Jones C Bowley
Jeanfrancois G Doe
Isabel P Rim
Silvio M Rim
Mujtaba L Ruta
Leja P Flosi
Maria D Glick
Darci S Nicka
Tony K Malet
Leja Y Albares
Jennifer U Ostrosky
Maisha H Marrier
Smith N Kolmetz
Mujtaba A Perin
Kaitlin D Kolmetz
Isabel B Chui
Jones T Malet
Jennifer A Royster
Ashley K Bowley
Arvin R Inouye
Jones M Malet
Claire P Campain
Francesco Z Briddick
Munro E Garufi
Salvatore W Doe
Juan O Whobrey
IdCountryDate
1000Canada2024-05-07
1001Spain2024-04-27
1002United Kingdom2024-04-19
1003Canada2024-04-28
1004Australia2024-05-12
1005France2024-05-10
1006Canada2024-04-24
1007United Kingdom2024-04-23
1008Russia2024-05-07
1009Japan2024-04-30
1010United Kingdom2024-05-05
1011India2024-04-25
1012Russia2024-04-28
1013United Kingdom2024-04-23
1014Canada2024-04-19
1015Spain2024-05-05
1016United Kingdom2024-04-18
1017Australia2024-05-01
1018Brazil2024-05-10
1019Argentina2024-05-10
1020Spain2024-04-26
1021France2024-04-13
1022France2024-04-28
1023Germany2024-04-30
1024France2024-04-17
1025India2024-04-15
1026Japan2024-05-11
1027Spain2024-05-09
1028France2024-05-01
1029Argentina2024-04-26
1030Italy2024-05-08
1031Russia2024-04-26
1032France2024-04-29
1033United Kingdom2024-04-14
1034Brazil2024-04-22
1035Australia2024-05-05
1036Argentina2024-04-19
1037France2024-04-27
1038Germany2024-04-15
1039Australia2024-04-14
1040Germany2024-04-17
1041United Kingdom2024-04-28
1042Argentina2024-05-11
1043Russia2024-04-22
1044India2024-05-10
1045Russia2024-04-25
1046Italy2024-05-05
1047Italy2024-05-08
1048Italy2024-04-28
1049Australia2024-05-03

On-Demand Data

NameIdCountryDate
Chavez Y Stenseth1000France2024-04-15
Salvatore U Chui1001Germany2024-04-15
Tony K Kolmetz1002Canada2024-04-14
Tony Z Bowley1003Brazil2024-04-29
Chavez C Waycott1004France2024-04-29
Arvin R Bolognia1005Spain2024-04-26
Leon Q Wieser1006France2024-04-29
Kaitlin Z Maclead1007Argentina2024-05-10
Salvatore U Foller1008Argentina2024-05-05
Antonio E Ostrosky1009France2024-04-22
Ashley H Wieser1010Japan2024-04-14
Silvio T Caudy1011Argentina2024-05-07
Jefferson K Morasca1012Japan2024-05-08
Claire X Flosi1013United Kingdom2024-05-07
Mayumi B Ferencz1014Canada2024-04-16
Greenwood E Kolmetz1015India2024-05-12
Ricardo U Nicka1016United Kingdom2024-05-06
Kaitlin M Chui1017Canada2024-04-16
Kaitlin L Nicka1018Canada2024-05-08
Johnson K Nicka1019Spain2024-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki P BologniaFranceElwin Sharvill RENEWAL
Johnson X RimUnited KingdomStephen Shaw QUALIFIED
Maisha A BriddickCanadaStephen Shaw NEW
Izzy F DarakjyBrazilIvan Magalhaes NEW
Juan L VenereAustraliaIoni Bowcher PROPOSAL
Rodrigues Y OstroskyJapanAnna Fali NEW
Morrow K DilliardItalyAmy Elsner RENEWAL
Kadeem W NestleJapanIoni Bowcher QUALIFIED
Julie O StensethJapanBernardo Dominic RENEWAL
Silvio S AmigonUnited KingdomOnyama Limba UNQUALIFIED
Maisha I MorascaAustraliaAsiya Javayant NEGOTIATION
Morrow M GillianBrazilAsiya Javayant NEGOTIATION
Alejandro X SergiSpainIvan Magalhaes UNQUALIFIED
Munro P RimItalyIvan Magalhaes NEGOTIATION
Deepesh Q KolmetzGermanyIoni Bowcher QUALIFIED
Aditya R CampainGermanyBernardo Dominic UNQUALIFIED
Kaitlin F TollnerItalyAmy Elsner NEGOTIATION
David S MorascaUnited KingdomOnyama Limba UNQUALIFIED
Adams P AmigonBrazilStephen Shaw NEW
Kadeem K GlickArgentinaAsiya Javayant RENEWAL
Mujtaba M GarufiAustraliaStephen Shaw UNQUALIFIED
James L MarrierAustraliaAsiya Javayant NEGOTIATION
Stacey K FigeroaAustraliaAsiya Javayant RENEWAL
Rodrigues D SlusarskiGermanyOnyama Limba UNQUALIFIED
Aditya S RimIndiaAnna Fali NEW
Claire X SergiAustraliaIoni Bowcher QUALIFIED
Ashley N RulapaughSpainOnyama Limba NEGOTIATION
Deepesh W DoeFranceIvan Magalhaes NEW
Alejandro H PerinGermanyElwin Sharvill PROPOSAL
Antonio I CaudyItalyStephen Shaw RENEWAL
Silvio D MaletBrazilOnyama Limba NEW
Octavia K ButtBrazilAsiya Javayant NEGOTIATION
Antonio V CaudyUnited KingdomXuxue Feng NEW
Tony K PoquetteJapanElwin Sharvill QUALIFIED
Francesco B CaldareraIndiaAnna Fali RENEWAL
Jennifer R SergiRussiaBernardo Dominic QUALIFIED
Octavia J KuskoBrazilElwin Sharvill RENEWAL
Clifford D ShinkoGermanyIoni Bowcher RENEWAL
Alejandro A OldroydSpainAmy Elsner PROPOSAL
Munro H NickaBrazilAmy Elsner NEW

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