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
Munro M MaletUnited KingdomOnyama Limba NEW
Kaitlin K FollerAustraliaElwin Sharvill QUALIFIED
Darci H VenereAustraliaStephen Shaw UNQUALIFIED
Mayumi C SaylorsBrazilOnyama Limba UNQUALIFIED
Leja H GlickBrazilBernardo Dominic QUALIFIED
Mujtaba C ChuiIndiaIvan Magalhaes UNQUALIFIED
James X CaudyFranceIoni Bowcher UNQUALIFIED
Jeanfrancois T PaprockiBrazilAnna Fali QUALIFIED
Nicolas Y GarufiSpainElwin Sharvill QUALIFIED
Misaki Q DarakjySpainXuxue Feng QUALIFIED
Tony I PerinGermanyOnyama Limba QUALIFIED
Greenwood B KuskoJapanIvan Magalhaes RENEWAL
Kaitlin T KolmetzFranceXuxue Feng UNQUALIFIED
Kadeem W RulapaughAustraliaAmy Elsner NEW
Arvin L AmigonBrazilIvan Magalhaes QUALIFIED
Ivar H KuskoUnited KingdomOnyama Limba RENEWAL
Kaitlin K NickaUnited KingdomAnna Fali UNQUALIFIED
Jennifer B FollerSpainAnna Fali QUALIFIED
Mujtaba N DoeGermanyIoni Bowcher UNQUALIFIED
Morrow O TollnerFranceIvan Magalhaes RENEWAL
Smith W SchemmerFranceStephen Shaw PROPOSAL
David V DoeIndiaAmy Elsner NEW
Smith O AlbaresBrazilOnyama Limba NEGOTIATION
Julie T KuskoCanadaStephen Shaw PROPOSAL
Kaitlin F RimCanadaOnyama Limba NEW
Chavez F RutaJapanXuxue Feng QUALIFIED
Ivar M OldroydArgentinaElwin Sharvill NEGOTIATION
Darci V SlusarskiAustraliaStephen Shaw NEW
Morrow D SlusarskiBrazilAsiya Javayant PROPOSAL
Ashley J RoysterArgentinaXuxue Feng RENEWAL
Silvio U NestleAustraliaXuxue Feng UNQUALIFIED
Jefferson U InouyeIndiaElwin Sharvill NEW
Jones W GlickRussiaAmy Elsner PROPOSAL
Misaki M GillianUnited KingdomBernardo Dominic RENEWAL
Jennifer Q VenereArgentinaElwin Sharvill UNQUALIFIED
Ricardo V CaudyIndiaStephen Shaw QUALIFIED
Leja Z MorascaGermanyBernardo Dominic NEGOTIATION
Mujtaba H FerenczBrazilBernardo Dominic NEW
Ivar X VenereItalyElwin Sharvill RENEWAL
Tony C NickaFranceOnyama Limba NEGOTIATION
Maria U StockhamIndiaIoni Bowcher NEW
Chavez W OstroskyBrazilIoni Bowcher PROPOSAL
Silvio U StensethBrazilStephen Shaw NEGOTIATION
Chavez F GillianIndiaXuxue Feng UNQUALIFIED
Ricardo K FerenczGermanyStephen Shaw NEGOTIATION
Johnson R MorascaArgentinaAsiya Javayant PROPOSAL
David P BowleySpainBernardo Dominic QUALIFIED
Mayumi Z MarrierFranceOnyama Limba RENEWAL
Antonio Y DarakjyBrazilStephen Shaw QUALIFIED
Jennifer K VocelkaAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas F CaldareraArgentinaElwin Sharvill UNQUALIFIED
Salvatore X GillianItalyBernardo Dominic UNQUALIFIED
Kadeem E FigeroaItalyBernardo Dominic NEGOTIATION
Jones F CaudyJapanIvan Magalhaes RENEWAL
Murillo H GillianRussiaStephen Shaw PROPOSAL
Sinclair J SaylorsArgentinaBernardo Dominic NEGOTIATION
Misaki O ChuiFranceAsiya Javayant QUALIFIED
Izzy C NestleIndiaStephen Shaw RENEWAL
Maisha U GarufiBrazilIvan Magalhaes RENEWAL
Antonio X CaldareraRussiaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha U VenereArgentina2024-05-04Morlong Associates PROPOSAL43Amy Elsner
1001Wickens K AlbaresRussia2024-04-20Morlong Associates PROPOSAL42Amy Elsner
1002Emily Y DoeArgentina2024-04-30Dorl, James J Esq QUALIFIED89Amy Elsner
1003Arvin U GillianBrazil2024-04-18King, Christopher A Esq RENEWAL8Xuxue Feng
1004Jeanfrancois F SchemmerAustralia2024-04-22Chapman, Ross E Esq UNQUALIFIED33Onyama Limba
1005Misaki F GauchoRussia2024-04-23Truhlar And Truhlar Attys NEGOTIATION91Asiya Javayant
1006Rodrigues Q DoeGermany2024-04-27Feltz Printing Service RENEWAL69Ioni Bowcher
1007Kadeem F CaudyBrazil2024-05-04Dorl, James J Esq UNQUALIFIED10Ivan Magalhaes
1008Wickens L BriddickUnited Kingdom2024-04-19Commercial Press NEGOTIATION57Ivan Magalhaes
1009Kadeem U MarrierFrance2024-05-08Chanay, Jeffrey A Esq QUALIFIED75Amy Elsner
1010Ricardo J FerenczAustralia2024-04-28Chapman, Ross E Esq NEW41Ioni Bowcher
1011Kaitlin J PoquetteItaly2024-04-15Dorl, James J Esq RENEWAL61Bernardo Dominic
1012Maria H ButtGermany2024-04-30Commercial Press UNQUALIFIED89Amy Elsner
1013Wickens Z MorascaIndia2024-05-06King, Christopher A Esq RENEWAL20Asiya Javayant
1014Jeanfrancois T AmigonIndia2024-04-28Morlong Associates NEGOTIATION80Xuxue Feng
1015Ivar P RulapaughFrance2024-04-30Buckley Miller Wright NEW43Ioni Bowcher
1016Nicolas P InouyeUnited Kingdom2024-04-16Benton, John B Jr NEW76Anna Fali
1017Izzy V SchemmerUnited Kingdom2024-04-26King, Christopher A Esq NEW12Elwin Sharvill
1018Leja E RulapaughGermany2024-04-30Feltz Printing Service RENEWAL12Elwin Sharvill
1019Kaitlin W VocelkaItaly2024-04-29Buckley Miller Wright UNQUALIFIED79Xuxue Feng
1020Mujtaba S NickaIndia2024-05-07Benton, John B Jr NEGOTIATION73Elwin Sharvill
1021Antonio R RulapaughIndia2024-04-22Dorl, James J Esq RENEWAL90Stephen Shaw
1022Isabel Y FerenczArgentina2024-05-07Buckley Miller Wright UNQUALIFIED40Bernardo Dominic
1023Jennifer R OldroydCanada2024-04-18Chanay, Jeffrey A Esq NEGOTIATION78Ioni Bowcher
1024Aika N BowleyCanada2024-05-09Truhlar And Truhlar Attys PROPOSAL11Ivan Magalhaes
1025Cody L NestleBrazil2024-04-14Dorl, James J Esq NEGOTIATION77Asiya Javayant
1026Mujtaba R WieserSpain2024-04-19Chemel, James L Cpa NEW61Anna Fali
1027Leon K StensethRussia2024-04-27Morlong Associates NEW2Asiya Javayant
1028Smith H WhobreyGermany2024-04-21Chanay, Jeffrey A Esq RENEWAL72Amy Elsner
1029Morrow T DoeRussia2024-04-30Benton, John B Jr NEW97Elwin Sharvill
1030Mujtaba R MaletSpain2024-04-28Dorl, James J Esq NEGOTIATION29Ivan Magalhaes
1031Clifford P MaletUnited Kingdom2024-05-04Chemel, James L Cpa NEW85Bernardo Dominic
1032Smith T GlickCanada2024-04-10Rousseaux, Michael Esq QUALIFIED16Onyama Limba
1033Smith H BologniaBrazil2024-05-02Dorl, James J Esq RENEWAL90Ioni Bowcher
1034Jeanfrancois W VenereItaly2024-04-29Chanay, Jeffrey A Esq RENEWAL88Elwin Sharvill
1035Aika E StensethIndia2024-04-29Rangoni Of Florence NEGOTIATION26Elwin Sharvill
1036Jeanfrancois M WhobreyFrance2024-04-24Feltz Printing Service UNQUALIFIED61Bernardo Dominic
1037Jefferson L FlosiSpain2024-04-22Buckley Miller Wright NEW79Ioni Bowcher
1038Tony M MarrierFrance2024-04-15Rousseaux, Michael Esq QUALIFIED7Asiya Javayant
1039Wickens R VocelkaSpain2024-04-17Feiner Bros QUALIFIED49Bernardo Dominic
1040James K SchemmerArgentina2024-04-10Chapman, Ross E Esq PROPOSAL5Ioni Bowcher
1041Kadeem E NickaIndia2024-05-01Chapman, Ross E Esq RENEWAL64Anna Fali
1042Stacey L OldroydFrance2024-05-01Buckley Miller Wright RENEWAL36Bernardo Dominic
1043Aditya E StockhamRussia2024-04-26Rousseaux, Michael Esq RENEWAL85Ivan Magalhaes
1044Jeanfrancois T SlusarskiSpain2024-04-24Chemel, James L Cpa RENEWAL57Ivan Magalhaes
1045Chavez L MarrierItaly2024-05-02Chapman, Ross E Esq QUALIFIED93Xuxue Feng
1046Aruna H FigeroaFrance2024-05-08Chapman, Ross E Esq PROPOSAL62Ivan Magalhaes
1047Juan X GlickGermany2024-05-03Dorl, James J Esq RENEWAL19Ioni Bowcher
1048Maisha U RulapaughUnited Kingdom2024-04-15Morlong Associates QUALIFIED36Xuxue Feng
1049Adams W InouyeCanada2024-04-22Truhlar And Truhlar Attys QUALIFIED58Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leon A WieserAustraliaAsiya Javayant QUALIFIED
Munro V DoeUnited KingdomOnyama Limba UNQUALIFIED
Alejandro N RulapaughSpainOnyama Limba PROPOSAL
Silvio P KuskoRussiaIoni Bowcher NEW
Alejandro B AlbaresUnited KingdomStephen Shaw RENEWAL
Leon I ChuiFranceOnyama Limba UNQUALIFIED
Aika M FigeroaBrazilAnna Fali QUALIFIED
Silvio E MaletArgentinaIvan Magalhaes NEW
Cody L MaletItalyBernardo Dominic UNQUALIFIED
Isabel L PoquetteJapanIvan Magalhaes PROPOSAL
Jennifer W FigeroaArgentinaAmy Elsner UNQUALIFIED
Kadeem U DoeArgentinaAnna Fali NEGOTIATION
Sinclair N GlickRussiaOnyama Limba NEW
Darci A FlosiIndiaAsiya Javayant NEW
Silvio J RoysterCanadaAsiya Javayant UNQUALIFIED
Ivar Y ButtUnited KingdomAsiya Javayant RENEWAL
Rodrigues N InouyeItalyIoni Bowcher NEGOTIATION
Kaitlin X BologniaCanadaAmy Elsner PROPOSAL
Tony O SlusarskiBrazilIoni Bowcher UNQUALIFIED
Greenwood P NickaArgentinaAsiya Javayant NEW
Octavia P KolmetzCanadaIoni Bowcher UNQUALIFIED
David M PaprockiRussiaAsiya Javayant NEGOTIATION
Nicolas S TollnerIndiaBernardo Dominic PROPOSAL
James Z ChuiItalyAmy Elsner NEW
James G TollnerJapanAsiya Javayant RENEWAL
Emily H RutaCanadaIvan Magalhaes NEW
Silvio A OstroskyRussiaBernardo Dominic RENEWAL
Munro K GillianAustraliaXuxue Feng NEGOTIATION
Ivar F PoquetteSpainAnna Fali NEW
Clifford H SergiGermanyAnna Fali NEGOTIATION
Tony O WaycottItalyAsiya Javayant RENEWAL
Tony L DilliardGermanyIvan Magalhaes RENEWAL
Kadeem N KuskoGermanyAmy Elsner NEGOTIATION
Kaitlin H CampainAustraliaAsiya Javayant NEW
Leja C CaudyJapanIoni Bowcher RENEWAL
Clifford O DoeCanadaIvan Magalhaes NEW
Ashley A StockhamCanadaAnna Fali RENEWAL
Adams D NickaCanadaStephen Shaw NEW
Deepesh F AlbaresCanadaElwin Sharvill NEW
Rodrigues F MorascaUnited KingdomStephen Shaw NEGOTIATION
Costa Q RutaSpainIoni Bowcher NEW
Costa N MorascaRussiaAmy Elsner RENEWAL
Antonio U GarufiCanadaAnna Fali PROPOSAL
Aruna M OldroydJapanAnna Fali NEW
Costa C AlbaresUnited KingdomElwin Sharvill RENEWAL
Ivar I OldroydAustraliaIoni Bowcher RENEWAL
Aika R MaletRussiaElwin Sharvill UNQUALIFIED
Rodrigues D WaycottBrazilAnna Fali PROPOSAL
Maria O GillianFranceAsiya Javayant QUALIFIED
Jennifer Y FollerUnited KingdomBernardo Dominic RENEWAL
Frozen Columns
Name
Adams Z Vocelka
Maria C Morasca
Francesco F Gaucho
Sinclair E Whobrey
Octavia J Rim
Cody Z Flosi
Rodrigues N Wieser
Isabel E Caldarera
Ivar H Waycott
Wickens B Figeroa
Jennifer V Shinko
Izzy A Bowley
Emily A Foller
Kaitlin G Iturbide
Isabel V Stockham
Kadeem V Campain
Murillo K Whobrey
Mayumi I Caudy
Stacey V Darakjy
James R Figeroa
Sinclair Y Albares
Jennifer R Dilliard
Claire I Caldarera
Rodrigues I Foller
Salvatore G Slusarski
Adams W Kolmetz
Leon O Venere
Kadeem G Stockham
Mayumi U Whobrey
Tony Y Kusko
Morrow K Albares
Rodrigues D Briddick
Jeanfrancois S Maclead
Leja R Maclead
Mayumi K Marrier
Costa Y Ruta
Silvio Y Doe
Alejandro E Ostrosky
Kaitlin U Wieser
Emily N Ferencz
Faith N Whobrey
Smith R Morasca
Sinclair A Saylors
Antonio R Tollner
Adams X Butt
Murillo J Figeroa
Emily I Stenseth
Maria W Ferencz
Arvin Y Venere
Claire M Foller
IdCountryDate
1000India2024-04-29
1001Spain2024-04-16
1002United Kingdom2024-05-09
1003Russia2024-04-23
1004Germany2024-04-18
1005Argentina2024-04-12
1006Russia2024-04-17
1007Australia2024-04-12
1008Japan2024-04-17
1009Italy2024-05-02
1010Canada2024-04-21
1011India2024-04-29
1012Japan2024-04-21
1013Australia2024-04-19
1014India2024-05-08
1015France2024-04-21
1016Spain2024-05-06
1017Brazil2024-05-08
1018Russia2024-05-01
1019Brazil2024-04-30
1020United Kingdom2024-05-09
1021Brazil2024-04-17
1022Italy2024-04-25
1023Australia2024-05-08
1024Brazil2024-04-30
1025India2024-04-18
1026France2024-04-29
1027Canada2024-04-29
1028United Kingdom2024-04-26
1029Japan2024-04-23
1030France2024-04-10
1031Italy2024-05-08
1032Spain2024-04-24
1033Italy2024-04-19
1034Australia2024-04-27
1035United Kingdom2024-04-12
1036Australia2024-04-24
1037Australia2024-04-16
1038Canada2024-05-02
1039India2024-04-13
1040Brazil2024-04-26
1041Argentina2024-05-02
1042India2024-05-01
1043France2024-04-25
1044United Kingdom2024-05-01
1045Russia2024-04-23
1046France2024-05-06
1047United Kingdom2024-04-15
1048France2024-04-24
1049Argentina2024-04-10

On-Demand Data

NameIdCountryDate
Aditya S Nestle1000Japan2024-04-24
Cody B Butt1001Canada2024-04-20
Sinclair T Flosi1002Japan2024-04-19
Jennifer X Foller1003Germany2024-04-17
Faith M Tollner1004United Kingdom2024-04-19
Tony Y Venere1005Germany2024-05-04
Tony G Marrier1006Australia2024-05-08
Maisha X Slusarski1007Argentina2024-04-28
Leja U Garufi1008Italy2024-04-14
Jefferson W Rulapaugh1009Argentina2024-04-21
Jones C Perin1010Canada2024-04-19
Claire F Stockham1011Spain2024-05-07
Leja E Marrier1012Japan2024-04-13
Octavia K Gillian1013Japan2024-04-17
Wickens R Morasca1014Brazil2024-05-04
Misaki U Doe1015United Kingdom2024-04-17
Maria H Rulapaugh1016Argentina2024-04-16
Cody V Chui1017Australia2024-04-16
James E Glick1018Russia2024-04-27
Stacey Q Flosi1019Brazil2024-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood Z GillianCanadaStephen Shaw NEGOTIATION
Morrow F StensethSpainStephen Shaw QUALIFIED
Jennifer H MaletArgentinaAnna Fali UNQUALIFIED
Ivar F MorascaJapanAmy Elsner NEW
Aditya N VocelkaRussiaAmy Elsner UNQUALIFIED
Kadeem U MorascaFranceIoni Bowcher NEGOTIATION
Jones I CaudyArgentinaXuxue Feng RENEWAL
Alejandro E CaldareraJapanIvan Magalhaes UNQUALIFIED
Aditya Y KuskoRussiaIvan Magalhaes NEGOTIATION
Darci Y WieserBrazilBernardo Dominic QUALIFIED
Mujtaba P DoeRussiaStephen Shaw UNQUALIFIED
Sinclair E DilliardArgentinaAmy Elsner QUALIFIED
Jeanfrancois R WieserFranceAsiya Javayant QUALIFIED
Silvio Z RoysterArgentinaIoni Bowcher NEW
Octavia P FollerItalyOnyama Limba NEGOTIATION
Sinclair R FlosiCanadaOnyama Limba NEGOTIATION
Isabel F SergiAustraliaStephen Shaw RENEWAL
James S KuskoAustraliaXuxue Feng PROPOSAL
Maria C BologniaBrazilXuxue Feng NEGOTIATION
Cody E CaudyArgentinaBernardo Dominic RENEWAL
Silvio H SaylorsFranceElwin Sharvill RENEWAL
Octavia L StensethCanadaBernardo Dominic QUALIFIED
Faith Q SaylorsRussiaBernardo Dominic QUALIFIED
Darci J MarrierItalyStephen Shaw NEGOTIATION
Misaki H BologniaSpainAnna Fali NEW
Claire R PoquetteFranceAsiya Javayant NEW
Cody Z InouyeSpainIoni Bowcher UNQUALIFIED
Claire F WaycottAustraliaXuxue Feng UNQUALIFIED
Stacey H MaletCanadaStephen Shaw PROPOSAL
Leon L CaldareraAustraliaIoni Bowcher UNQUALIFIED
Faith R SergiRussiaAnna Fali QUALIFIED
Alejandro C OstroskyAustraliaAmy Elsner RENEWAL
Jones R RulapaughItalyOnyama Limba RENEWAL
Jennifer P NickaAustraliaStephen Shaw NEGOTIATION
Sinclair U MacleadCanadaAsiya Javayant PROPOSAL
Alejandro T ShinkoJapanAsiya Javayant UNQUALIFIED
Mujtaba V WieserSpainAnna Fali QUALIFIED
Darci L MaletGermanyAmy Elsner PROPOSAL
Aditya Y SergiItalyXuxue Feng RENEWAL
Kaitlin J SaylorsJapanAsiya Javayant 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>