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
Maria S NestleUnited KingdomXuxue Feng NEW
Aruna I RutaJapanIvan Magalhaes RENEWAL
Wickens L DoeIndiaOnyama Limba QUALIFIED
Salvatore T MaletArgentinaElwin Sharvill NEW
Adams P GarufiGermanyIoni Bowcher NEGOTIATION
Darci M ChuiCanadaXuxue Feng UNQUALIFIED
Arvin N KolmetzGermanyIoni Bowcher RENEWAL
Mayumi I StockhamFranceOnyama Limba NEW
Leja D SergiFranceAsiya Javayant PROPOSAL
Arvin C MacleadSpainAmy Elsner NEGOTIATION
Wickens B RulapaughIndiaIoni Bowcher QUALIFIED
Aika U InouyeRussiaAmy Elsner NEGOTIATION
Morrow R WaycottFranceIoni Bowcher NEW
Sinclair H WaycottRussiaAsiya Javayant QUALIFIED
Arvin B RutaJapanBernardo Dominic RENEWAL
Mujtaba S FlosiBrazilAsiya Javayant NEGOTIATION
Antonio S CaldareraIndiaStephen Shaw QUALIFIED
Ricardo K OldroydIndiaAsiya Javayant NEGOTIATION
Izzy Y RutaGermanyAnna Fali PROPOSAL
Greenwood U PerinBrazilIoni Bowcher RENEWAL
Ivar V RulapaughJapanStephen Shaw UNQUALIFIED
Murillo I FigeroaSpainAmy Elsner RENEWAL
Chavez X ChuiSpainOnyama Limba UNQUALIFIED
Clifford F BowleyFranceAnna Fali RENEWAL
Chavez D MorascaJapanAnna Fali QUALIFIED
Emily D InouyeUnited KingdomAmy Elsner QUALIFIED
Wickens J DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Kaitlin A InouyeJapanOnyama Limba NEGOTIATION
James A WaycottArgentinaIoni Bowcher NEW
Maria C WaycottItalyAmy Elsner NEGOTIATION
Silvio C BowleyGermanyStephen Shaw RENEWAL
Stacey J RoysterCanadaAnna Fali RENEWAL
Silvio K AmigonGermanyOnyama Limba NEGOTIATION
Francesco E StockhamSpainStephen Shaw PROPOSAL
Leon R NestleIndiaIvan Magalhaes RENEWAL
Mujtaba C ChuiAustraliaIoni Bowcher NEGOTIATION
Adams R AmigonGermanyOnyama Limba RENEWAL
Tony X SergiArgentinaIvan Magalhaes QUALIFIED
Jefferson K GillianRussiaAnna Fali PROPOSAL
Leon Z MarrierUnited KingdomXuxue Feng RENEWAL
Maisha X CampainAustraliaBernardo Dominic QUALIFIED
Johnson N OldroydBrazilXuxue Feng NEGOTIATION
Greenwood T WieserJapanXuxue Feng NEGOTIATION
Alejandro S MaletIndiaStephen Shaw RENEWAL
Nicolas S GlickIndiaAmy Elsner UNQUALIFIED
Darci R RulapaughItalyAnna Fali QUALIFIED
Clifford Y PoquetteGermanyAnna Fali PROPOSAL
Juan T CampainCanadaAmy Elsner PROPOSAL
Cody O NickaSpainBernardo Dominic NEGOTIATION
Stacey T FigeroaArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson E DilliardArgentinaAmy Elsner UNQUALIFIED
Izzy B RutaJapanAnna Fali NEW
Wickens B NestleAustraliaOnyama Limba RENEWAL
Munro V RulapaughGermanyBernardo Dominic NEGOTIATION
Octavia U DarakjyFranceIvan Magalhaes UNQUALIFIED
Aditya Q KolmetzCanadaAnna Fali QUALIFIED
Ivar N GlickAustraliaAnna Fali QUALIFIED
Izzy M SchemmerSpainXuxue Feng RENEWAL
Morrow E MorascaIndiaXuxue Feng QUALIFIED
Izzy S InouyeJapanIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan M NickaFrance2024-04-16Chemel, James L Cpa UNQUALIFIED22Amy Elsner
1001Leja A MorascaFrance2024-04-15Rousseaux, Michael Esq NEW87Ioni Bowcher
1002Sinclair N WieserArgentina2024-04-14King, Christopher A Esq NEGOTIATION2Ivan Magalhaes
1003Emily B RulapaughAustralia2024-03-25Feiner Bros PROPOSAL92Onyama Limba
1004Munro G StockhamCanada2024-03-21Buckley Miller Wright RENEWAL93Anna Fali
1005Kadeem S RoysterAustralia2024-04-01Feiner Bros PROPOSAL17Asiya Javayant
1006Ricardo J GillianBrazil2024-04-07Buckley Miller Wright NEGOTIATION29Elwin Sharvill
1007Mujtaba C GauchoJapan2024-04-07Printing Dimensions NEW8Stephen Shaw
1008Jennifer Q VocelkaFrance2024-03-22Chemel, James L Cpa UNQUALIFIED89Bernardo Dominic
1009Juan I WaycottJapan2024-04-12Chanay, Jeffrey A Esq NEGOTIATION6Anna Fali
1010Greenwood Z DoeJapan2024-04-13Benton, John B Jr NEW70Xuxue Feng
1011Smith W StockhamSpain2024-04-17Morlong Associates QUALIFIED69Onyama Limba
1012Deepesh E PaprockiCanada2024-03-31Chapman, Ross E Esq NEW96Ioni Bowcher
1013Salvatore R AlbaresCanada2024-03-27Rousseaux, Michael Esq QUALIFIED30Elwin Sharvill
1014Aruna J AlbaresFrance2024-04-11Dorl, James J Esq NEGOTIATION83Xuxue Feng
1015Maisha J DilliardUnited Kingdom2024-04-12Printing Dimensions NEGOTIATION74Onyama Limba
1016Leja L SaylorsGermany2024-04-01Rousseaux, Michael Esq QUALIFIED89Amy Elsner
1017Jeanfrancois T OldroydAustralia2024-04-01King, Christopher A Esq RENEWAL2Amy Elsner
1018Salvatore X VocelkaAustralia2024-03-22Feltz Printing Service RENEWAL89Stephen Shaw
1019Smith B SergiBrazil2024-03-24Feiner Bros QUALIFIED20Ioni Bowcher
1020Juan G KuskoGermany2024-04-18Rangoni Of Florence RENEWAL79Anna Fali
1021Ricardo I BowleyUnited Kingdom2024-03-25Rousseaux, Michael Esq RENEWAL62Bernardo Dominic
1022Juan N GillianBrazil2024-04-14Chanay, Jeffrey A Esq NEW63Amy Elsner
1023Munro D FigeroaGermany2024-04-17Dorl, James J Esq QUALIFIED49Amy Elsner
1024Aika B RulapaughAustralia2024-04-03Chemel, James L Cpa UNQUALIFIED97Stephen Shaw
1025Silvio E RoysterArgentina2024-04-16Buckley Miller Wright UNQUALIFIED78Bernardo Dominic
1026Arvin N NickaGermany2024-04-12Commercial Press NEW27Amy Elsner
1027Cody M SergiFrance2024-04-16Rousseaux, Michael Esq NEGOTIATION42Ivan Magalhaes
1028Murillo M MaletUnited Kingdom2024-03-26Chemel, James L Cpa RENEWAL89Onyama Limba
1029Julie A CampainBrazil2024-04-18King, Christopher A Esq NEW74Xuxue Feng
1030Octavia P GarufiAustralia2024-04-02Chanay, Jeffrey A Esq PROPOSAL43Bernardo Dominic
1031Jennifer Q BowleyItaly2024-04-04Commercial Press PROPOSAL25Ioni Bowcher
1032Francesco B MorascaArgentina2024-04-13Rangoni Of Florence NEGOTIATION73Stephen Shaw
1033Smith T GillianBrazil2024-03-23Chemel, James L Cpa QUALIFIED77Bernardo Dominic
1034Clifford L DilliardFrance2024-03-30Chapman, Ross E Esq RENEWAL37Anna Fali
1035Tony D ButtCanada2024-03-27Morlong Associates RENEWAL79Stephen Shaw
1036Chavez T InouyeFrance2024-04-14Feiner Bros NEGOTIATION92Ivan Magalhaes
1037Munro Z DarakjyRussia2024-04-07Chanay, Jeffrey A Esq RENEWAL43Ivan Magalhaes
1038Aruna J MorascaArgentina2024-03-22Chemel, James L Cpa PROPOSAL71Ivan Magalhaes
1039Ricardo S BologniaAustralia2024-03-31Printing Dimensions UNQUALIFIED65Stephen Shaw
1040Leon G PerinItaly2024-04-01Dorl, James J Esq RENEWAL11Onyama Limba
1041Deepesh E PaprockiFrance2024-04-03Feiner Bros QUALIFIED17Elwin Sharvill
1042Antonio S DoeIndia2024-03-29Feiner Bros PROPOSAL76Stephen Shaw
1043Aika K DilliardIndia2024-04-07Truhlar And Truhlar Attys UNQUALIFIED20Bernardo Dominic
1044Johnson L StensethFrance2024-04-11Truhlar And Truhlar Attys NEGOTIATION81Amy Elsner
1045Tony F GillianArgentina2024-03-22Chanay, Jeffrey A Esq RENEWAL89Bernardo Dominic
1046Mayumi I AlbaresAustralia2024-04-08Feiner Bros RENEWAL75Stephen Shaw
1047Izzy C PerinSpain2024-04-02Rangoni Of Florence QUALIFIED24Onyama Limba
1048Jones X WhobreyAustralia2024-04-02King, Christopher A Esq RENEWAL52Bernardo Dominic
1049David W SlusarskiRussia2024-04-09Rangoni Of Florence NEGOTIATION22Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Juan B RutaBrazilAnna Fali QUALIFIED
Costa R IturbideAustraliaXuxue Feng UNQUALIFIED
David C GlickBrazilIvan Magalhaes NEGOTIATION
Tony H StensethUnited KingdomAsiya Javayant RENEWAL
Munro K StensethBrazilStephen Shaw QUALIFIED
Adams R VenereJapanIoni Bowcher PROPOSAL
Claire G WhobreyBrazilStephen Shaw NEGOTIATION
Octavia T RoysterArgentinaOnyama Limba PROPOSAL
Deepesh E MaletJapanIoni Bowcher NEW
Julie V OldroydSpainAsiya Javayant NEW
Ricardo A WaycottIndiaOnyama Limba RENEWAL
Wickens Y BologniaRussiaStephen Shaw QUALIFIED
Cody Z ButtFranceIvan Magalhaes RENEWAL
Mayumi X NickaAustraliaIoni Bowcher QUALIFIED
Rodrigues F MorascaSpainAnna Fali NEGOTIATION
Ivar S MorascaCanadaIoni Bowcher QUALIFIED
Stacey R FerenczJapanAmy Elsner RENEWAL
Wickens B ShinkoSpainIoni Bowcher RENEWAL
Francesco W WaycottFranceXuxue Feng PROPOSAL
Octavia Q DoeArgentinaXuxue Feng NEGOTIATION
Sinclair U InouyeAustraliaOnyama Limba PROPOSAL
Stacey D CaudyItalyXuxue Feng UNQUALIFIED
Cody P KolmetzArgentinaIvan Magalhaes NEGOTIATION
Leja D BowleyRussiaBernardo Dominic QUALIFIED
Jefferson O VenereFranceIvan Magalhaes NEW
Wickens N RoysterGermanyIvan Magalhaes QUALIFIED
Claire Q GauchoSpainElwin Sharvill PROPOSAL
Chavez Q KolmetzRussiaAsiya Javayant PROPOSAL
Jennifer Q MaletBrazilOnyama Limba QUALIFIED
Stacey Z BologniaRussiaBernardo Dominic NEGOTIATION
Rodrigues Y MarrierSpainElwin Sharvill QUALIFIED
Leja C FerenczIndiaOnyama Limba RENEWAL
Silvio D VocelkaAustraliaStephen Shaw PROPOSAL
Sinclair D OstroskyJapanStephen Shaw PROPOSAL
Kadeem T SaylorsIndiaOnyama Limba UNQUALIFIED
Adams G AmigonCanadaAmy Elsner QUALIFIED
Chavez A DarakjyIndiaStephen Shaw NEW
Alejandro D ShinkoItalyBernardo Dominic RENEWAL
Octavia Q AmigonUnited KingdomOnyama Limba QUALIFIED
Smith V MaletAustraliaBernardo Dominic QUALIFIED
Aika P ButtJapanIvan Magalhaes NEW
Antonio S ButtFranceIoni Bowcher NEGOTIATION
Ashley S PerinSpainAmy Elsner QUALIFIED
Mujtaba Q MarrierUnited KingdomOnyama Limba PROPOSAL
Morrow T AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Smith B VocelkaUnited KingdomElwin Sharvill PROPOSAL
Misaki G KolmetzGermanyBernardo Dominic QUALIFIED
Mujtaba F CampainItalyElwin Sharvill NEGOTIATION
Aruna B RutaUnited KingdomBernardo Dominic QUALIFIED
Misaki N InouyeJapanElwin Sharvill QUALIFIED
Frozen Columns
Name
Jones Z Venere
Arvin N Venere
Aditya S Flosi
Munro B Caudy
Adams P Schemmer
Clifford C Flosi
Morrow U Vocelka
Costa V Garufi
Juan L Bolognia
Isabel T Amigon
Juan R Saylors
Morrow I Maclead
Jefferson Q Tollner
Kaitlin C Shinko
Kadeem R Doe
Octavia Z Malet
Kaitlin P Malet
Munro F Bowley
Stacey G Malet
Wickens E Butt
Costa N Caudy
David F Campain
Mujtaba P Sergi
Cody G Venere
Murillo J Kolmetz
Wickens U Nestle
Tony W Kusko
Morrow R Caldarera
Misaki Y Figeroa
Wickens I Royster
Maisha H Albares
Salvatore O Flosi
Mujtaba G Nestle
Costa A Marrier
Morrow N Briddick
Jefferson H Waycott
Julie Q Waycott
Izzy I Rulapaugh
Clifford B Gaucho
Greenwood V Marrier
Octavia P Chui
Maisha U Butt
Aditya F Chui
Murillo C Rim
Octavia Y Chui
Munro K Campain
Misaki G Waycott
Rodrigues S Poquette
Salvatore U Poquette
Isabel X Dilliard
IdCountryDate
1000Brazil2024-03-21
1001Argentina2024-04-19
1002Japan2024-03-27
1003India2024-04-05
1004Canada2024-04-11
1005Canada2024-04-05
1006Australia2024-04-17
1007Germany2024-04-18
1008Argentina2024-04-12
1009Japan2024-03-27
1010Spain2024-04-04
1011Argentina2024-04-07
1012Canada2024-04-08
1013India2024-03-24
1014Italy2024-03-30
1015Russia2024-03-21
1016Russia2024-03-31
1017France2024-04-06
1018Brazil2024-04-09
1019France2024-03-30
1020Italy2024-04-06
1021Australia2024-03-23
1022France2024-03-28
1023Brazil2024-04-02
1024France2024-04-02
1025Australia2024-04-15
1026Australia2024-04-08
1027Japan2024-03-31
1028United Kingdom2024-04-01
1029Germany2024-04-05
1030Spain2024-03-21
1031Argentina2024-04-04
1032Argentina2024-03-21
1033India2024-04-08
1034Brazil2024-03-30
1035Canada2024-04-13
1036Canada2024-04-06
1037Japan2024-04-12
1038Argentina2024-04-04
1039United Kingdom2024-03-27
1040Japan2024-04-04
1041Japan2024-04-07
1042Russia2024-04-11
1043Russia2024-04-09
1044France2024-04-03
1045France2024-04-07
1046United Kingdom2024-04-14
1047Canada2024-03-31
1048Italy2024-03-25
1049Argentina2024-04-06

On-Demand Data

NameIdCountryDate
Aruna S Waycott1000Australia2024-03-29
Aruna S Maclead1001Japan2024-03-21
Arvin Q Dilliard1002Australia2024-03-27
Clifford X Morasca1003France2024-03-24
Greenwood Y Wieser1004Brazil2024-04-16
Misaki R Royster1005United Kingdom2024-04-11
Octavia K Malet1006France2024-04-07
Julie I Shinko1007India2024-04-10
Ashley W Figeroa1008France2024-04-05
Costa X Albares1009Japan2024-04-01
Kadeem U Bolognia1010Canada2024-04-04
Murillo K Poquette1011Argentina2024-04-06
Leon A Kolmetz1012Argentina2024-04-18
Smith E Albares1013Brazil2024-04-17
Rodrigues J Bowley1014Italy2024-04-02
Aditya P Rim1015Australia2024-04-01
Aruna P Shinko1016Canada2024-04-03
Johnson O Iturbide1017Germany2024-04-02
Jeanfrancois A Albares1018Brazil2024-03-23
James Y Briddick1019Argentina2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair L GillianSpainBernardo Dominic PROPOSAL
Misaki A BowleyFranceIvan Magalhaes NEGOTIATION
Isabel T GarufiUnited KingdomAnna Fali RENEWAL
Izzy Y AlbaresBrazilBernardo Dominic UNQUALIFIED
Ashley G BriddickUnited KingdomOnyama Limba UNQUALIFIED
Greenwood U InouyeBrazilIvan Magalhaes QUALIFIED
Deepesh B BowleyIndiaElwin Sharvill UNQUALIFIED
Murillo R NickaAustraliaIoni Bowcher NEGOTIATION
Morrow B MaletSpainAsiya Javayant UNQUALIFIED
Jeanfrancois K DarakjyItalyIoni Bowcher PROPOSAL
Emily T ChuiIndiaStephen Shaw NEW
Mayumi U SlusarskiCanadaIoni Bowcher UNQUALIFIED
Ivar T MarrierCanadaIoni Bowcher PROPOSAL
Jones T SlusarskiBrazilAsiya Javayant NEW
Darci O PoquetteJapanIvan Magalhaes QUALIFIED
Deepesh L DoeIndiaAsiya Javayant NEW
Izzy O SchemmerItalyAsiya Javayant QUALIFIED
Greenwood W MorascaIndiaIoni Bowcher NEW
Costa Y BologniaJapanStephen Shaw QUALIFIED
Octavia D RimRussiaXuxue Feng NEW
Jeanfrancois G MaletJapanIoni Bowcher NEGOTIATION
Juan J FigeroaSpainAmy Elsner PROPOSAL
Leon L GlickCanadaXuxue Feng PROPOSAL
Adams C GarufiSpainStephen Shaw UNQUALIFIED
Juan X VenereSpainXuxue Feng PROPOSAL
Jefferson D StensethFranceAnna Fali PROPOSAL
Juan T FollerCanadaAnna Fali UNQUALIFIED
Maria P SaylorsCanadaAsiya Javayant NEGOTIATION
Aruna V PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Clifford R WhobreySpainXuxue Feng NEW
Rodrigues N MacleadAustraliaAsiya Javayant NEW
Darci Y SchemmerRussiaAnna Fali UNQUALIFIED
Ivar P VenereArgentinaStephen Shaw NEW
Ricardo P WieserArgentinaOnyama Limba UNQUALIFIED
Tony Y MaletCanadaAnna Fali QUALIFIED
Rodrigues X TollnerJapanIvan Magalhaes NEW
Kadeem F FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Stacey H StensethAustraliaStephen Shaw PROPOSAL
Darci Z BologniaItalyXuxue Feng UNQUALIFIED
Arvin V BowleyBrazilAnna Fali 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>