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
Clifford Q NickaCanadaOnyama Limba NEW
Ashley X GauchoAustraliaBernardo Dominic NEW
Murillo C MaletItalyElwin Sharvill NEW
Costa N RulapaughSpainOnyama Limba RENEWAL
Maria E BriddickBrazilXuxue Feng PROPOSAL
Juan X DarakjyCanadaStephen Shaw QUALIFIED
Maisha T StensethCanadaAnna Fali PROPOSAL
Alejandro N VenereItalyStephen Shaw QUALIFIED
Isabel T BriddickGermanyAmy Elsner PROPOSAL
Maisha P GlickAustraliaXuxue Feng UNQUALIFIED
Nicolas P OstroskyItalyAsiya Javayant UNQUALIFIED
Leon T RutaIndiaAsiya Javayant UNQUALIFIED
Stacey T DilliardCanadaXuxue Feng PROPOSAL
Mayumi Q MaletFranceXuxue Feng RENEWAL
Emily G PerinGermanyXuxue Feng NEW
Leja P KuskoBrazilXuxue Feng QUALIFIED
Costa W BowleyFranceOnyama Limba QUALIFIED
Salvatore S MacleadBrazilAsiya Javayant NEGOTIATION
David L RutaBrazilAmy Elsner RENEWAL
Mayumi B NestleAustraliaStephen Shaw NEW
Murillo K KuskoUnited KingdomIvan Magalhaes NEW
Octavia Q FerenczUnited KingdomStephen Shaw NEGOTIATION
Leja S MarrierJapanAnna Fali RENEWAL
Ivar Y GarufiSpainIvan Magalhaes NEW
Aditya V OldroydArgentinaAmy Elsner NEW
Jones V VenereIndiaStephen Shaw PROPOSAL
Leja G WieserRussiaAmy Elsner NEW
Darci K GlickAustraliaAmy Elsner RENEWAL
Claire C OldroydItalyAmy Elsner NEW
James I SlusarskiFranceOnyama Limba NEW
Aika I RulapaughRussiaXuxue Feng NEW
Alejandro M OstroskyRussiaIvan Magalhaes PROPOSAL
Morrow J FigeroaArgentinaIvan Magalhaes RENEWAL
Francesco O CampainBrazilElwin Sharvill NEW
Maria H RoysterAustraliaAsiya Javayant UNQUALIFIED
Silvio Z PoquetteCanadaIvan Magalhaes NEGOTIATION
Kadeem D CaldareraItalyAsiya Javayant UNQUALIFIED
Sinclair P DoeUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh Z SergiCanadaStephen Shaw NEW
Leja Q InouyeGermanyIvan Magalhaes NEGOTIATION
Kadeem F NickaBrazilAsiya Javayant RENEWAL
Juan B SchemmerIndiaIvan Magalhaes NEGOTIATION
Leja P AlbaresArgentinaStephen Shaw NEGOTIATION
Jennifer A GarufiBrazilAnna Fali QUALIFIED
Tony W MaletBrazilIoni Bowcher QUALIFIED
Greenwood X TollnerAustraliaAsiya Javayant PROPOSAL
Clifford W CaldareraBrazilAmy Elsner RENEWAL
Murillo T InouyeSpainAmy Elsner RENEWAL
Francesco T DilliardUnited KingdomAnna Fali NEW
Wickens J BowleyBrazilElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer I WhobreyCanadaElwin Sharvill NEW
Jefferson V IturbideJapanAnna Fali NEW
Tony G InouyeArgentinaIoni Bowcher QUALIFIED
Jennifer L DilliardArgentinaAsiya Javayant PROPOSAL
Kaitlin D NestleJapanIvan Magalhaes UNQUALIFIED
Tony T RoysterCanadaIvan Magalhaes RENEWAL
Adams J MaletAustraliaAmy Elsner NEW
Sinclair Z FigeroaCanadaElwin Sharvill QUALIFIED
Jeanfrancois Z FigeroaCanadaElwin Sharvill NEW
Johnson W OldroydSpainIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia B BologniaSpain2024-04-14Chapman, Ross E Esq QUALIFIED52Ivan Magalhaes
1001Rodrigues Y ShinkoGermany2024-04-25King, Christopher A Esq RENEWAL81Ioni Bowcher
1002Octavia L WhobreyCanada2024-04-16Rousseaux, Michael Esq QUALIFIED83Amy Elsner
1003Costa H ShinkoCanada2024-04-26Chemel, James L Cpa NEW43Ivan Magalhaes
1004Aruna J BowleyJapan2024-04-01Chanay, Jeffrey A Esq NEGOTIATION19Elwin Sharvill
1005Silvio Z ChuiRussia2024-04-01Truhlar And Truhlar Attys NEGOTIATION85Anna Fali
1006Johnson I NestleIndia2024-04-22Printing Dimensions QUALIFIED80Bernardo Dominic
1007Maisha U SaylorsJapan2024-03-29Chemel, James L Cpa QUALIFIED29Ioni Bowcher
1008James J MorascaUnited Kingdom2024-03-29Feiner Bros NEGOTIATION25Onyama Limba
1009Smith N MacleadBrazil2024-04-16Chemel, James L Cpa RENEWAL47Bernardo Dominic
1010Morrow O NickaUnited Kingdom2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED31Ioni Bowcher
1011Octavia W StockhamSpain2024-04-04Rangoni Of Florence PROPOSAL43Ivan Magalhaes
1012Alejandro E MaletJapan2024-04-17Printing Dimensions PROPOSAL28Onyama Limba
1013Mayumi C ShinkoCanada2024-04-18Benton, John B Jr QUALIFIED73Xuxue Feng
1014Antonio O MacleadIndia2024-04-03Chemel, James L Cpa QUALIFIED9Anna Fali
1015Ricardo Q RoysterRussia2024-04-15Chapman, Ross E Esq PROPOSAL61Anna Fali
1016Emily B MarrierItaly2024-04-08Feltz Printing Service UNQUALIFIED58Ivan Magalhaes
1017Jennifer Q InouyeCanada2024-04-06Truhlar And Truhlar Attys PROPOSAL99Ioni Bowcher
1018Deepesh G PaprockiRussia2024-04-09Benton, John B Jr UNQUALIFIED42Bernardo Dominic
1019Juan L DarakjyGermany2024-04-08Printing Dimensions UNQUALIFIED12Onyama Limba
1020Francesco R MarrierCanada2024-04-10Morlong Associates NEW51Xuxue Feng
1021Munro I CaldareraAustralia2024-03-28Chemel, James L Cpa NEGOTIATION66Amy Elsner
1022Claire R KolmetzAustralia2024-04-26Dorl, James J Esq RENEWAL87Xuxue Feng
1023Julie R GauchoRussia2024-04-10Dorl, James J Esq QUALIFIED4Bernardo Dominic
1024Salvatore W KolmetzCanada2024-04-24Rangoni Of Florence UNQUALIFIED12Stephen Shaw
1025Darci G RutaCanada2024-04-08Buckley Miller Wright UNQUALIFIED75Ioni Bowcher
1026Julie P RoysterUnited Kingdom2024-04-11King, Christopher A Esq UNQUALIFIED69Asiya Javayant
1027Claire I GillianJapan2024-04-23Benton, John B Jr NEW34Asiya Javayant
1028Chavez S MaletGermany2024-04-01Feltz Printing Service QUALIFIED27Ivan Magalhaes
1029Maria A FerenczJapan2024-04-15Truhlar And Truhlar Attys NEGOTIATION89Amy Elsner
1030Ricardo U ChuiRussia2024-04-01Printing Dimensions RENEWAL36Ivan Magalhaes
1031Clifford P CampainGermany2024-03-28Dorl, James J Esq UNQUALIFIED62Onyama Limba
1032Octavia X NickaGermany2024-03-31Truhlar And Truhlar Attys QUALIFIED66Stephen Shaw
1033Silvio E SaylorsAustralia2024-04-10Chapman, Ross E Esq RENEWAL84Ioni Bowcher
1034Claire M MaletAustralia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED53Amy Elsner
1035Julie Y DilliardItaly2024-04-19Rangoni Of Florence RENEWAL51Elwin Sharvill
1036Murillo L FlosiCanada2024-04-04Buckley Miller Wright UNQUALIFIED12Anna Fali
1037Nicolas V StensethArgentina2024-04-16Benton, John B Jr PROPOSAL64Bernardo Dominic
1038Izzy M PoquetteGermany2024-04-02Printing Dimensions UNQUALIFIED16Asiya Javayant
1039Nicolas W CampainFrance2024-04-22Feltz Printing Service RENEWAL67Elwin Sharvill
1040Jones D StensethJapan2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED15Anna Fali
1041Nicolas E BriddickFrance2024-04-10Printing Dimensions UNQUALIFIED20Stephen Shaw
1042Cody V StockhamSpain2024-04-18Truhlar And Truhlar Attys NEGOTIATION0Anna Fali
1043Adams S VocelkaJapan2024-04-23Buckley Miller Wright PROPOSAL57Onyama Limba
1044Arvin R PoquetteBrazil2024-04-16Chanay, Jeffrey A Esq QUALIFIED74Amy Elsner
1045Sinclair E ChuiJapan2024-04-13King, Christopher A Esq UNQUALIFIED94Anna Fali
1046Aika I DoeIndia2024-04-10Dorl, James J Esq QUALIFIED22Asiya Javayant
1047Nicolas K MaletCanada2024-04-11Dorl, James J Esq NEGOTIATION16Bernardo Dominic
1048Ashley U DarakjyArgentina2024-04-05Truhlar And Truhlar Attys PROPOSAL83Anna Fali
1049Aika C GarufiCanada2024-04-05Morlong Associates NEGOTIATION80Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan C ChuiRussiaElwin Sharvill UNQUALIFIED
Julie U DilliardCanadaIoni Bowcher QUALIFIED
Maria M WhobreyGermanyXuxue Feng PROPOSAL
Ashley A KolmetzRussiaAnna Fali NEW
Murillo Q AmigonGermanyAmy Elsner PROPOSAL
Deepesh I OstroskyBrazilIvan Magalhaes UNQUALIFIED
Adams C MaletFranceAnna Fali NEW
Jones I SchemmerUnited KingdomXuxue Feng QUALIFIED
Juan Q FerenczItalyIoni Bowcher PROPOSAL
Rodrigues Q VocelkaUnited KingdomXuxue Feng QUALIFIED
Wickens Q MorascaSpainIvan Magalhaes NEGOTIATION
Leja H SchemmerCanadaBernardo Dominic PROPOSAL
Jeanfrancois M MaletBrazilAnna Fali UNQUALIFIED
Costa J MaletBrazilXuxue Feng PROPOSAL
Faith E KuskoSpainAnna Fali UNQUALIFIED
Greenwood G AlbaresGermanyAnna Fali PROPOSAL
Sinclair G OldroydBrazilAnna Fali NEGOTIATION
Jefferson V FollerArgentinaAnna Fali RENEWAL
Adams N AmigonSpainStephen Shaw NEGOTIATION
Ivar U InouyeBrazilAsiya Javayant UNQUALIFIED
Nicolas Y GlickItalyElwin Sharvill RENEWAL
Cody K VenereFranceAmy Elsner NEW
Costa I GillianUnited KingdomAmy Elsner NEW
Emily D NickaAustraliaBernardo Dominic RENEWAL
Kadeem D WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford W CaldareraFranceAmy Elsner RENEWAL
Darci G MarrierArgentinaBernardo Dominic QUALIFIED
Cody P GarufiAustraliaOnyama Limba UNQUALIFIED
Johnson U RutaSpainIvan Magalhaes RENEWAL
Juan R PoquetteAustraliaBernardo Dominic NEW
Ivar W MaletGermanyIoni Bowcher PROPOSAL
Julie H SlusarskiArgentinaIvan Magalhaes NEW
Antonio C ButtAustraliaAmy Elsner RENEWAL
Isabel U MarrierRussiaIvan Magalhaes QUALIFIED
Chavez C VenereRussiaOnyama Limba PROPOSAL
Darci C WhobreyJapanXuxue Feng QUALIFIED
Darci L PerinJapanAmy Elsner QUALIFIED
Misaki J FlosiUnited KingdomStephen Shaw NEW
Jefferson T WaycottBrazilElwin Sharvill RENEWAL
Antonio V VocelkaCanadaElwin Sharvill UNQUALIFIED
Kadeem J RutaBrazilOnyama Limba NEGOTIATION
Kaitlin Y PaprockiGermanyAmy Elsner UNQUALIFIED
Emily Z MacleadIndiaOnyama Limba PROPOSAL
Arvin D KuskoItalyIoni Bowcher RENEWAL
Kaitlin I MaletSpainAnna Fali NEGOTIATION
Maisha T PerinUnited KingdomAnna Fali NEGOTIATION
Arvin T KolmetzAustraliaXuxue Feng NEW
Ashley K RulapaughGermanyAsiya Javayant NEGOTIATION
Faith Y WaycottJapanIoni Bowcher NEW
Faith I KolmetzArgentinaXuxue Feng NEW
Frozen Columns
Name
Mujtaba B Morasca
Mujtaba E Poquette
Maria O Rim
Arvin N Albares
Misaki K Rulapaugh
David D Stockham
Ashley M Caudy
Leon P Gaucho
Jefferson I Wieser
Munro D Saylors
Rodrigues N Sergi
Jennifer A Malet
Greenwood D Gaucho
Jefferson D Iturbide
Nicolas I Stockham
Francesco G Doe
Salvatore I Morasca
James J Dilliard
James E Nestle
Morrow K Garufi
Clifford Q Oldroyd
Chavez O Sergi
Mayumi Q Malet
Rodrigues A Amigon
Ricardo J Doe
Nicolas X Dilliard
Ricardo Y Bolognia
Clifford J Marrier
Mujtaba C Ostrosky
Octavia O Figeroa
Aditya E Slusarski
Jennifer A Sergi
Jefferson I Shinko
Aruna O Glick
Salvatore E Paprocki
Maria G Bolognia
Greenwood W Chui
Jeanfrancois T Iturbide
Sinclair A Gaucho
Ashley H Tollner
Leja X Vocelka
Nicolas H Rim
Isabel H Kolmetz
Tony K Doe
Ivar C Doe
Arvin A Paprocki
Smith H Malet
Stacey T Malet
Ivar Q Rulapaugh
Clifford R Tollner
IdCountryDate
1000Germany2024-04-16
1001Germany2024-04-16
1002Brazil2024-04-22
1003United Kingdom2024-03-31
1004United Kingdom2024-04-12
1005Brazil2024-04-15
1006Germany2024-04-10
1007Australia2024-04-23
1008India2024-04-18
1009India2024-04-20
1010United Kingdom2024-03-31
1011India2024-04-18
1012Italy2024-04-16
1013Argentina2024-04-26
1014Brazil2024-04-03
1015India2024-04-12
1016Australia2024-04-11
1017Canada2024-04-18
1018Russia2024-04-16
1019United Kingdom2024-04-17
1020Italy2024-04-10
1021India2024-04-23
1022Germany2024-04-06
1023Brazil2024-04-07
1024United Kingdom2024-03-28
1025France2024-04-26
1026Spain2024-04-14
1027Germany2024-03-29
1028France2024-04-06
1029Russia2024-04-01
1030Canada2024-04-16
1031India2024-04-05
1032Spain2024-04-18
1033Germany2024-04-04
1034Canada2024-03-28
1035Australia2024-03-30
1036Italy2024-03-31
1037Japan2024-04-09
1038Germany2024-04-01
1039Australia2024-04-07
1040Spain2024-04-14
1041Germany2024-04-03
1042Australia2024-04-11
1043India2024-04-11
1044Germany2024-04-17
1045Brazil2024-04-26
1046Australia2024-04-08
1047Australia2024-04-02
1048Argentina2024-04-11
1049Italy2024-04-10

On-Demand Data

NameIdCountryDate
Sinclair A Oldroyd1000Canada2024-03-28
Johnson S Ferencz1001Italy2024-04-04
Jones O Briddick1002Canada2024-03-28
Emily O Morasca1003Russia2024-04-02
Kaitlin Y Amigon1004India2024-04-13
Octavia U Perin1005United Kingdom2024-04-02
Rodrigues S Kolmetz1006United Kingdom2024-03-31
Rodrigues Z Royster1007India2024-04-05
Ivar I Perin1008Russia2024-04-21
Kadeem G Waycott1009Brazil2024-04-17
Ashley A Caudy1010Canada2024-04-22
Jefferson T Poquette1011Germany2024-04-06
Chavez T Amigon1012Spain2024-03-29
Jefferson O Vocelka1013Japan2024-04-04
Antonio A Wieser1014Japan2024-04-20
Jones Q Malet1015India2024-03-28
Leon W Caldarera1016Italy2024-04-20
Tony D Shinko1017Argentina2024-04-05
Murillo J Nestle1018Germany2024-04-07
Aika G Slusarski1019Brazil2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey U MarrierUnited KingdomIvan Magalhaes QUALIFIED
Aruna M NestleItalyOnyama Limba PROPOSAL
Leon U NickaRussiaAsiya Javayant PROPOSAL
Arvin F ShinkoUnited KingdomXuxue Feng RENEWAL
Smith A KolmetzItalyAmy Elsner QUALIFIED
Deepesh Y AmigonItalyStephen Shaw PROPOSAL
Greenwood C GlickSpainIvan Magalhaes PROPOSAL
Antonio M VenereBrazilIoni Bowcher NEGOTIATION
Jeanfrancois G GarufiBrazilElwin Sharvill NEW
Munro V ShinkoGermanyAmy Elsner NEGOTIATION
Salvatore H SlusarskiArgentinaXuxue Feng UNQUALIFIED
Jeanfrancois T RimUnited KingdomOnyama Limba RENEWAL
Alejandro K CampainUnited KingdomAnna Fali NEW
Arvin W SergiUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin A StensethItalyIvan Magalhaes RENEWAL
Adams F FerenczIndiaAnna Fali QUALIFIED
Faith O PerinUnited KingdomElwin Sharvill NEW
Mayumi V MacleadFranceAnna Fali RENEWAL
Silvio W FigeroaFranceBernardo Dominic RENEWAL
Jeanfrancois V IturbideCanadaAsiya Javayant NEW
Faith C RimSpainIoni Bowcher UNQUALIFIED
Leon O SaylorsSpainStephen Shaw QUALIFIED
Julie R MacleadGermanyAmy Elsner PROPOSAL
Leja C NickaJapanElwin Sharvill NEGOTIATION
Rodrigues Q RutaJapanOnyama Limba NEW
Maisha O PaprockiGermanyAmy Elsner PROPOSAL
Greenwood Q SaylorsBrazilAnna Fali NEGOTIATION
Cody X DoeUnited KingdomOnyama Limba UNQUALIFIED
Greenwood J DarakjyItalyElwin Sharvill UNQUALIFIED
Isabel P MaletGermanyElwin Sharvill UNQUALIFIED
Johnson K GauchoFranceAnna Fali PROPOSAL
Adams R WieserAustraliaAnna Fali NEW
Chavez J RutaUnited KingdomIvan Magalhaes RENEWAL
Greenwood O FerenczAustraliaXuxue Feng PROPOSAL
James X VenereUnited KingdomXuxue Feng PROPOSAL
Alejandro E DilliardAustraliaAmy Elsner RENEWAL
Izzy O GillianAustraliaAmy Elsner NEGOTIATION
Smith D CaudyIndiaStephen Shaw NEW
Stacey J MacleadAustraliaElwin Sharvill RENEWAL
Murillo V BologniaArgentinaAmy Elsner 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>