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
Alejandro S DarakjyJapanIvan Magalhaes RENEWAL
Clifford Q DoeJapanAnna Fali QUALIFIED
Kadeem K StensethCanadaXuxue Feng RENEWAL
Jennifer X FollerArgentinaOnyama Limba NEW
Murillo Y MarrierSpainAmy Elsner NEGOTIATION
Jennifer B MorascaUnited KingdomXuxue Feng QUALIFIED
Nicolas H AlbaresAustraliaAsiya Javayant UNQUALIFIED
James A ButtCanadaIvan Magalhaes NEW
Leon Q FigeroaJapanIoni Bowcher PROPOSAL
Arvin A FigeroaRussiaOnyama Limba PROPOSAL
Jennifer C DoeCanadaBernardo Dominic UNQUALIFIED
Tony I DilliardBrazilStephen Shaw UNQUALIFIED
Francesco J OldroydAustraliaAnna Fali UNQUALIFIED
Jennifer Y StensethBrazilOnyama Limba NEW
Jones Y BologniaIndiaIoni Bowcher NEGOTIATION
Juan W StockhamBrazilIoni Bowcher NEGOTIATION
Chavez T SchemmerItalyBernardo Dominic UNQUALIFIED
Leja S KolmetzUnited KingdomAmy Elsner NEGOTIATION
Ivar N GlickArgentinaAsiya Javayant RENEWAL
Misaki O ButtUnited KingdomIvan Magalhaes NEW
Wickens O MorascaIndiaIoni Bowcher UNQUALIFIED
Jennifer J RimArgentinaElwin Sharvill NEGOTIATION
Arvin T MaletRussiaOnyama Limba QUALIFIED
Mujtaba P CaudyAustraliaElwin Sharvill PROPOSAL
Cody F FerenczSpainOnyama Limba UNQUALIFIED
Cody C WaycottArgentinaAsiya Javayant PROPOSAL
Claire T MacleadFranceAmy Elsner UNQUALIFIED
Salvatore E SchemmerAustraliaXuxue Feng NEW
Kaitlin O StensethRussiaBernardo Dominic UNQUALIFIED
Mayumi W BowleyUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens H PaprockiUnited KingdomBernardo Dominic QUALIFIED
Aditya L FerenczSpainIvan Magalhaes QUALIFIED
Leon L CampainJapanBernardo Dominic NEW
Kadeem Z RutaArgentinaXuxue Feng NEGOTIATION
Emily X SlusarskiAustraliaBernardo Dominic RENEWAL
Adams Z VenereAustraliaElwin Sharvill NEW
Silvio X ShinkoArgentinaElwin Sharvill RENEWAL
Isabel S VenereAustraliaAsiya Javayant NEW
Arvin B GarufiJapanElwin Sharvill NEGOTIATION
Claire S SaylorsRussiaIoni Bowcher NEW
James M VocelkaGermanyBernardo Dominic PROPOSAL
Julie J BologniaAustraliaBernardo Dominic NEW
Jennifer Y MaletArgentinaOnyama Limba UNQUALIFIED
Julie Z SchemmerCanadaElwin Sharvill RENEWAL
Izzy A WhobreyGermanyAnna Fali RENEWAL
Deepesh D MorascaAustraliaElwin Sharvill QUALIFIED
Silvio P KolmetzAustraliaBernardo Dominic UNQUALIFIED
Jennifer L MarrierSpainOnyama Limba RENEWAL
Maisha H BologniaFranceIvan Magalhaes RENEWAL
Silvio J AmigonItalyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Tony I SaylorsJapanElwin Sharvill RENEWAL
Juan J SchemmerCanadaBernardo Dominic QUALIFIED
Deepesh I NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Julie P RutaGermanyOnyama Limba UNQUALIFIED
Alejandro R NickaRussiaOnyama Limba RENEWAL
Ashley G AmigonJapanOnyama Limba NEW
Faith A GauchoJapanAnna Fali PROPOSAL
Jones S GlickRussiaAmy Elsner QUALIFIED
Murillo I IturbideAustraliaOnyama Limba RENEWAL
Antonio B OldroydBrazilAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois G WaycottFrance2024-04-19Printing Dimensions PROPOSAL47Stephen Shaw
1001Claire H VocelkaUnited Kingdom2024-04-06Rousseaux, Michael Esq NEW86Ivan Magalhaes
1002Leja Y GarufiIndia2024-04-06Feltz Printing Service UNQUALIFIED84Elwin Sharvill
1003Stacey N MarrierArgentina2024-03-31Rousseaux, Michael Esq QUALIFIED11Bernardo Dominic
1004Faith V FigeroaGermany2024-04-09Dorl, James J Esq NEGOTIATION0Ioni Bowcher
1005Alejandro R GauchoItaly2024-04-27Dorl, James J Esq UNQUALIFIED4Xuxue Feng
1006Ricardo W IturbideUnited Kingdom2024-04-04Chemel, James L Cpa PROPOSAL38Xuxue Feng
1007Misaki S WaycottUnited Kingdom2024-04-05Chanay, Jeffrey A Esq NEW86Bernardo Dominic
1008Juan B StensethSpain2024-04-28Truhlar And Truhlar Attys UNQUALIFIED92Bernardo Dominic
1009Leon L OstroskyJapan2024-04-07Morlong Associates NEW31Elwin Sharvill
1010Aika O MacleadAustralia2024-04-27Chemel, James L Cpa RENEWAL96Onyama Limba
1011Jennifer A AmigonUnited Kingdom2024-04-29King, Christopher A Esq RENEWAL87Amy Elsner
1012Nicolas O SlusarskiJapan2024-04-17Morlong Associates PROPOSAL1Stephen Shaw
1013Emily N RimBrazil2024-04-03Benton, John B Jr PROPOSAL80Anna Fali
1014Juan P RoysterFrance2024-04-24Chemel, James L Cpa UNQUALIFIED98Elwin Sharvill
1015Francesco J BriddickArgentina2024-04-02Feiner Bros NEW34Ioni Bowcher
1016Aika P RutaBrazil2024-04-02Chemel, James L Cpa QUALIFIED6Stephen Shaw
1017Leja L TollnerItaly2024-04-24Chanay, Jeffrey A Esq QUALIFIED32Amy Elsner
1018Jefferson P StensethIndia2024-04-13Chanay, Jeffrey A Esq RENEWAL54Asiya Javayant
1019Adams A GarufiGermany2024-04-06Morlong Associates RENEWAL64Elwin Sharvill
1020Rodrigues J DoeArgentina2024-04-09Benton, John B Jr NEGOTIATION68Ivan Magalhaes
1021Clifford Y IturbideItaly2024-04-20Chapman, Ross E Esq NEW79Elwin Sharvill
1022Jefferson T AlbaresBrazil2024-04-09Printing Dimensions RENEWAL5Asiya Javayant
1023Kadeem X ShinkoSpain2024-04-17Printing Dimensions RENEWAL63Elwin Sharvill
1024Salvatore F DoeBrazil2024-04-29Rousseaux, Michael Esq NEW76Ivan Magalhaes
1025Leja Q GauchoBrazil2024-04-22Chemel, James L Cpa RENEWAL13Bernardo Dominic
1026Emily G StockhamItaly2024-04-18King, Christopher A Esq RENEWAL2Stephen Shaw
1027Maisha R IturbideJapan2024-04-06Commercial Press NEGOTIATION8Ivan Magalhaes
1028Alejandro B WaycottJapan2024-04-24Buckley Miller Wright NEGOTIATION48Amy Elsner
1029Aditya H MarrierGermany2024-04-14Feiner Bros NEGOTIATION1Xuxue Feng
1030Jones B BriddickIndia2024-04-19Chanay, Jeffrey A Esq PROPOSAL29Anna Fali
1031Maisha H CampainUnited Kingdom2024-04-29Chemel, James L Cpa QUALIFIED81Ivan Magalhaes
1032Smith F AmigonIndia2024-04-12Dorl, James J Esq QUALIFIED90Bernardo Dominic
1033Arvin D AlbaresJapan2024-04-22Truhlar And Truhlar Attys QUALIFIED67Stephen Shaw
1034Ivar Z RoysterArgentina2024-04-17Rousseaux, Michael Esq NEW50Ioni Bowcher
1035Emily Z KuskoGermany2024-04-11Dorl, James J Esq UNQUALIFIED31Stephen Shaw
1036Emily O FerenczRussia2024-04-04Truhlar And Truhlar Attys QUALIFIED25Onyama Limba
1037Francesco S DoeArgentina2024-04-25Dorl, James J Esq UNQUALIFIED92Anna Fali
1038Wickens B NestleRussia2024-04-28Benton, John B Jr UNQUALIFIED99Stephen Shaw
1039Smith B MaletRussia2024-04-11Feiner Bros RENEWAL10Ivan Magalhaes
1040Kadeem D StensethFrance2024-04-03Chemel, James L Cpa RENEWAL34Bernardo Dominic
1041Tony A FollerAustralia2024-04-21Feltz Printing Service NEW24Stephen Shaw
1042Rodrigues L DilliardSpain2024-04-28Printing Dimensions RENEWAL75Stephen Shaw
1043Ricardo H PoquetteAustralia2024-04-18Truhlar And Truhlar Attys NEGOTIATION91Ioni Bowcher
1044Kadeem V KolmetzFrance2024-04-23Chapman, Ross E Esq NEGOTIATION57Anna Fali
1045Costa Q FollerItaly2024-04-03Chapman, Ross E Esq NEGOTIATION80Xuxue Feng
1046Murillo W CaldareraCanada2024-04-22Morlong Associates PROPOSAL47Elwin Sharvill
1047Juan L DarakjyIndia2024-04-07Morlong Associates QUALIFIED32Elwin Sharvill
1048Leon W FerenczCanada2024-04-02Feltz Printing Service PROPOSAL45Asiya Javayant
1049James B KuskoItaly2024-04-06Dorl, James J Esq RENEWAL69Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Claire N StockhamJapanIoni Bowcher UNQUALIFIED
Aditya K SergiRussiaAsiya Javayant NEGOTIATION
James B CampainItalyAnna Fali NEW
Murillo Z NickaIndiaIoni Bowcher NEGOTIATION
Cody B CaldareraFranceStephen Shaw PROPOSAL
Arvin X SaylorsJapanOnyama Limba NEW
Claire X KuskoArgentinaXuxue Feng RENEWAL
Silvio Y SchemmerFranceAnna Fali NEGOTIATION
Greenwood S WaycottGermanyAnna Fali UNQUALIFIED
Jefferson V OldroydRussiaIoni Bowcher RENEWAL
Munro I RulapaughArgentinaOnyama Limba PROPOSAL
Juan N DarakjySpainOnyama Limba QUALIFIED
Maisha I MaletIndiaStephen Shaw QUALIFIED
Jones J GarufiCanadaAmy Elsner PROPOSAL
Sinclair G NickaItalyAmy Elsner NEGOTIATION
Jefferson C DarakjyIndiaBernardo Dominic UNQUALIFIED
Greenwood G DoeBrazilAmy Elsner UNQUALIFIED
Leon T BologniaIndiaStephen Shaw PROPOSAL
Aruna H BowleyBrazilIvan Magalhaes NEW
David J ButtItalyBernardo Dominic RENEWAL
Francesco K KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
James G ButtItalyIvan Magalhaes RENEWAL
Stacey L GlickCanadaAmy Elsner PROPOSAL
Munro B SergiIndiaElwin Sharvill UNQUALIFIED
Johnson U FerenczFranceStephen Shaw RENEWAL
Morrow K AmigonFranceElwin Sharvill RENEWAL
Wickens S KuskoIndiaXuxue Feng NEW
Clifford T CaldareraGermanyAsiya Javayant NEW
Deepesh U GlickRussiaAnna Fali UNQUALIFIED
Ashley D NestleIndiaOnyama Limba NEGOTIATION
Maisha S OldroydJapanAsiya Javayant PROPOSAL
Mujtaba O FerenczCanadaXuxue Feng NEGOTIATION
Murillo E GarufiGermanyAmy Elsner NEW
Johnson F DarakjyJapanAmy Elsner NEW
Cody O WhobreyJapanAmy Elsner NEW
Stacey I OldroydUnited KingdomAnna Fali UNQUALIFIED
Aruna Z GillianAustraliaAnna Fali UNQUALIFIED
Cody D AlbaresIndiaIvan Magalhaes PROPOSAL
Aika A MarrierAustraliaAnna Fali NEW
Kaitlin C ButtFranceAmy Elsner RENEWAL
Darci Z FigeroaGermanyIvan Magalhaes PROPOSAL
Francesco G DilliardJapanIoni Bowcher RENEWAL
Salvatore R VenereGermanyStephen Shaw RENEWAL
Rodrigues U MacleadArgentinaBernardo Dominic QUALIFIED
Leja C RutaAustraliaIoni Bowcher RENEWAL
Izzy W AlbaresAustraliaIvan Magalhaes QUALIFIED
Izzy H MarrierBrazilAnna Fali QUALIFIED
Emily E IturbideAustraliaIvan Magalhaes RENEWAL
Cody W DilliardIndiaElwin Sharvill PROPOSAL
Leja T MaletGermanyAsiya Javayant NEW
Frozen Columns
Name
Johnson X Stockham
Francesco T Perin
Aditya G Inouye
Jeanfrancois G Garufi
Ricardo T Kolmetz
Silvio J Caudy
Darci G Venere
Rodrigues N Rulapaugh
Murillo R Figeroa
Murillo T Stockham
Leon C Nicka
Claire N Butt
Cody B Caldarera
Deepesh V Shinko
Kaitlin N Slusarski
Claire W Shinko
Deepesh P Nicka
Wickens V Flosi
Mayumi D Rim
Sinclair G Campain
Ashley Z Kolmetz
Kadeem Y Nicka
Antonio X Ostrosky
Aditya R Ruta
Leja R Inouye
Faith H Sergi
Murillo H Campain
Julie W Slusarski
Aruna N Caudy
Darci Y Chui
Emily O Gaucho
Nicolas H Paprocki
Smith S Kusko
Cody G Tollner
Silvio K Caldarera
Mayumi O Darakjy
Deepesh I Darakjy
Rodrigues D Whobrey
Juan F Malet
Francesco G Briddick
Murillo Y Rim
Aruna N Stenseth
Maria U Chui
Ricardo C Saylors
Jones D Stenseth
Johnson V Bolognia
Nicolas O Gillian
Mayumi D Butt
Sinclair J Chui
Kaitlin F Oldroyd
IdCountryDate
1000Argentina2024-04-08
1001Italy2024-04-27
1002Australia2024-04-20
1003Italy2024-04-17
1004Argentina2024-04-17
1005United Kingdom2024-04-18
1006India2024-04-12
1007United Kingdom2024-04-13
1008Spain2024-04-09
1009Brazil2024-04-11
1010India2024-04-14
1011Germany2024-04-24
1012United Kingdom2024-04-16
1013India2024-04-15
1014United Kingdom2024-04-28
1015France2024-04-18
1016Japan2024-04-08
1017Russia2024-04-15
1018India2024-04-20
1019Canada2024-04-19
1020Germany2024-04-26
1021India2024-04-26
1022Canada2024-04-08
1023Argentina2024-04-25
1024France2024-04-17
1025France2024-04-01
1026Russia2024-04-25
1027United Kingdom2024-04-23
1028Canada2024-04-16
1029Japan2024-04-26
1030Argentina2024-04-14
1031Japan2024-04-28
1032Italy2024-04-23
1033Argentina2024-04-19
1034Italy2024-04-25
1035United Kingdom2024-04-12
1036Spain2024-04-22
1037Brazil2024-04-20
1038Russia2024-04-02
1039Japan2024-04-01
1040France2024-04-19
1041Spain2024-04-04
1042Japan2024-04-23
1043Italy2024-04-29
1044Canada2024-04-19
1045Russia2024-04-08
1046Japan2024-04-08
1047Argentina2024-04-29
1048Italy2024-04-04
1049Argentina2024-04-16

On-Demand Data

NameIdCountryDate
James H Caldarera1000Italy2024-04-15
Kaitlin J Tollner1001United Kingdom2024-04-10
Jennifer U Venere1002Spain2024-04-22
Adams T Morasca1003Italy2024-04-24
Chavez F Foller1004Italy2024-04-13
Jeanfrancois I Vocelka1005Spain2024-04-23
Julie B Briddick1006Italy2024-04-07
Ivar Q Saylors1007Russia2024-04-19
Ricardo M Glick1008United Kingdom2024-04-04
Emily O Kusko1009Argentina2024-04-12
David K Rulapaugh1010Japan2024-04-29
Salvatore K Rim1011France2024-04-27
Jeanfrancois Z Dilliard1012Australia2024-04-20
Smith J Bowley1013India2024-04-03
Munro X Chui1014India2024-04-29
Jones L Albares1015Spain2024-04-20
Mujtaba F Vocelka1016United Kingdom2024-04-07
Emily I Ruta1017Japan2024-04-09
Maria D Schemmer1018Russia2024-04-06
Silvio F Royster1019Canada2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas Q OldroydBrazilXuxue Feng NEW
Misaki H FollerAustraliaIvan Magalhaes UNQUALIFIED
Arvin F PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Greenwood I WhobreySpainAmy Elsner NEGOTIATION
Leja I WaycottRussiaBernardo Dominic RENEWAL
Jennifer L FlosiBrazilOnyama Limba RENEWAL
Tony S PerinUnited KingdomIoni Bowcher PROPOSAL
Costa Y MaletArgentinaAmy Elsner RENEWAL
Chavez D BologniaSpainStephen Shaw NEGOTIATION
Salvatore P BowleyFranceStephen Shaw PROPOSAL
Salvatore M AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Jennifer A NestleIndiaElwin Sharvill QUALIFIED
Sinclair N BriddickIndiaIoni Bowcher QUALIFIED
Tony J ChuiIndiaOnyama Limba RENEWAL
Juan N MorascaAustraliaAmy Elsner NEW
Wickens D ShinkoFranceXuxue Feng QUALIFIED
Darci H FigeroaSpainElwin Sharvill UNQUALIFIED
Isabel V MacleadJapanIoni Bowcher PROPOSAL
Sinclair L KuskoCanadaIvan Magalhaes PROPOSAL
Darci E MacleadBrazilAmy Elsner PROPOSAL
Darci K CaudyAustraliaStephen Shaw QUALIFIED
Izzy R WhobreyRussiaIoni Bowcher PROPOSAL
Maisha S PoquetteFranceAsiya Javayant PROPOSAL
Tony I DilliardJapanAnna Fali NEGOTIATION
Francesco C FerenczItalyIoni Bowcher UNQUALIFIED
Munro L BologniaJapanOnyama Limba PROPOSAL
Wickens Z CampainGermanyIvan Magalhaes NEGOTIATION
Kaitlin P GarufiRussiaAsiya Javayant NEGOTIATION
Adams B KuskoGermanyAmy Elsner NEW
Jefferson S ShinkoAustraliaElwin Sharvill UNQUALIFIED
Misaki O PerinArgentinaAsiya Javayant UNQUALIFIED
Alejandro O MarrierIndiaStephen Shaw PROPOSAL
Sinclair M MorascaSpainAsiya Javayant RENEWAL
Costa T KuskoFranceXuxue Feng PROPOSAL
Aruna G BriddickIndiaAmy Elsner UNQUALIFIED
Juan W GillianCanadaIoni Bowcher QUALIFIED
Misaki X GillianIndiaIvan Magalhaes QUALIFIED
Darci X SlusarskiSpainStephen Shaw RENEWAL
Mayumi W RoysterJapanAnna Fali PROPOSAL
Jennifer A DarakjyArgentinaIoni Bowcher 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>