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
Deepesh R BriddickAustraliaIvan Magalhaes PROPOSAL
Johnson Q MaletGermanyAmy Elsner QUALIFIED
Ashley U PoquetteItalyAmy Elsner NEW
Ashley Z VocelkaAustraliaAnna Fali UNQUALIFIED
Emily H NickaItalyIoni Bowcher PROPOSAL
Darci E PerinAustraliaIvan Magalhaes PROPOSAL
Stacey H DoeFranceElwin Sharvill QUALIFIED
Sinclair E KuskoFranceOnyama Limba NEGOTIATION
Juan Z GlickBrazilIoni Bowcher PROPOSAL
Leja H CampainUnited KingdomXuxue Feng NEW
Maisha Z FigeroaUnited KingdomIvan Magalhaes NEW
Cody B StensethFranceAmy Elsner RENEWAL
Jefferson B BologniaArgentinaXuxue Feng PROPOSAL
Jeanfrancois J RulapaughSpainIvan Magalhaes QUALIFIED
Jefferson U PaprockiArgentinaXuxue Feng NEGOTIATION
Salvatore I KolmetzFranceXuxue Feng NEGOTIATION
Cody A CaudySpainAsiya Javayant UNQUALIFIED
Mayumi B KolmetzBrazilOnyama Limba PROPOSAL
Silvio U PerinJapanBernardo Dominic UNQUALIFIED
Adams W DoeCanadaIvan Magalhaes NEGOTIATION
Mujtaba J BowleyBrazilXuxue Feng NEW
Nicolas G MorascaAustraliaOnyama Limba PROPOSAL
Ashley Q AlbaresRussiaIoni Bowcher RENEWAL
Juan U RimIndiaStephen Shaw UNQUALIFIED
Morrow S ShinkoSpainAmy Elsner QUALIFIED
Munro C PerinAustraliaXuxue Feng NEGOTIATION
Arvin W FigeroaFranceAnna Fali NEGOTIATION
Cody G FerenczSpainXuxue Feng NEW
Johnson D WaycottRussiaIvan Magalhaes NEW
Rodrigues N GauchoFranceIoni Bowcher UNQUALIFIED
Ivar Z StockhamCanadaAsiya Javayant RENEWAL
Tony E VocelkaJapanIoni Bowcher NEW
Ivar R KuskoArgentinaAnna Fali UNQUALIFIED
Aruna Q OldroydSpainAmy Elsner RENEWAL
Octavia F WhobreyArgentinaElwin Sharvill NEW
Deepesh V CampainItalyXuxue Feng QUALIFIED
Jefferson J NickaItalyBernardo Dominic QUALIFIED
Morrow O MaletJapanXuxue Feng NEW
Faith F SlusarskiIndiaIvan Magalhaes QUALIFIED
Antonio O AmigonItalyXuxue Feng RENEWAL
Murillo F OstroskyGermanyAsiya Javayant UNQUALIFIED
Mayumi M MacleadIndiaOnyama Limba RENEWAL
Jennifer U MacleadRussiaAmy Elsner NEGOTIATION
Leon J SergiRussiaAnna Fali PROPOSAL
Leon R IturbideBrazilIoni Bowcher NEGOTIATION
Smith B FlosiFranceXuxue Feng QUALIFIED
Johnson L CaudyCanadaAmy Elsner PROPOSAL
Cody B SaylorsUnited KingdomBernardo Dominic QUALIFIED
Ashley Q FerenczBrazilElwin Sharvill UNQUALIFIED
Mujtaba L BologniaArgentinaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem T CampainIndiaStephen Shaw NEW
Octavia E RoysterItalyOnyama Limba QUALIFIED
Ricardo T RimIndiaAsiya Javayant NEGOTIATION
Murillo I VenereUnited KingdomElwin Sharvill UNQUALIFIED
Emily J FerenczBrazilAsiya Javayant UNQUALIFIED
Darci R WieserFranceStephen Shaw PROPOSAL
Costa F VenereRussiaIoni Bowcher PROPOSAL
Aika X CampainRussiaIvan Magalhaes UNQUALIFIED
Ivar T WhobreyBrazilOnyama Limba RENEWAL
Mujtaba Q SchemmerCanadaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar D MaletBrazil2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED45Xuxue Feng
1001David W MarrierSpain2024-05-04Buckley Miller Wright QUALIFIED14Xuxue Feng
1002Izzy M StensethArgentina2024-04-10Rousseaux, Michael Esq PROPOSAL42Onyama Limba
1003James T DilliardSpain2024-04-28Morlong Associates NEW9Ivan Magalhaes
1004Greenwood T MaletCanada2024-04-16Truhlar And Truhlar Attys PROPOSAL1Asiya Javayant
1005Costa V CaudyGermany2024-04-28Buckley Miller Wright UNQUALIFIED64Ioni Bowcher
1006Jones O TollnerJapan2024-05-04Chanay, Jeffrey A Esq RENEWAL53Onyama Limba
1007Julie B GauchoItaly2024-04-07Printing Dimensions UNQUALIFIED79Ioni Bowcher
1008Arvin X RimBrazil2024-04-14Commercial Press NEGOTIATION8Elwin Sharvill
1009Sinclair J MaletBrazil2024-04-22Commercial Press UNQUALIFIED70Ivan Magalhaes
1010Alejandro W GarufiAustralia2024-04-12Benton, John B Jr NEW48Anna Fali
1011Murillo R MaletFrance2024-04-20Feltz Printing Service PROPOSAL93Amy Elsner
1012Leon A KuskoAustralia2024-04-23Buckley Miller Wright NEGOTIATION55Asiya Javayant
1013Sinclair O GillianCanada2024-05-03Feltz Printing Service UNQUALIFIED96Elwin Sharvill
1014Kadeem B InouyeBrazil2024-04-21Feiner Bros NEGOTIATION12Onyama Limba
1015Emily C GillianRussia2024-04-20Chapman, Ross E Esq RENEWAL42Onyama Limba
1016Jeanfrancois E BowleyUnited Kingdom2024-04-15Printing Dimensions UNQUALIFIED28Ivan Magalhaes
1017Darci J BriddickJapan2024-04-20Dorl, James J Esq QUALIFIED29Bernardo Dominic
1018Tony M ButtArgentina2024-04-06Benton, John B Jr NEW3Ivan Magalhaes
1019Misaki C MorascaArgentina2024-04-18Feiner Bros RENEWAL33Bernardo Dominic
1020David F RimItaly2024-04-08King, Christopher A Esq UNQUALIFIED70Ivan Magalhaes
1021Darci F PerinSpain2024-04-15Feiner Bros NEGOTIATION84Bernardo Dominic
1022Emily Q CaudyJapan2024-04-30Morlong Associates NEW37Bernardo Dominic
1023Claire K WaycottSpain2024-04-25Benton, John B Jr RENEWAL52Stephen Shaw
1024Alejandro U BologniaFrance2024-04-28Truhlar And Truhlar Attys RENEWAL54Ivan Magalhaes
1025Arvin F FerenczSpain2024-04-28Feiner Bros NEGOTIATION61Anna Fali
1026Wickens A DarakjyIndia2024-05-03Rangoni Of Florence UNQUALIFIED72Asiya Javayant
1027Francesco C CaldareraRussia2024-04-07Feltz Printing Service UNQUALIFIED29Asiya Javayant
1028Morrow H GillianRussia2024-04-13Commercial Press RENEWAL92Ioni Bowcher
1029Emily S OstroskyRussia2024-04-19Commercial Press QUALIFIED56Ivan Magalhaes
1030Salvatore R FigeroaAustralia2024-04-09Printing Dimensions NEW50Elwin Sharvill
1031James B TollnerCanada2024-04-15Feltz Printing Service QUALIFIED79Ioni Bowcher
1032James Y NestleAustralia2024-04-20Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1033Jennifer O TollnerAustralia2024-04-17Rangoni Of Florence NEW13Ivan Magalhaes
1034Isabel E PoquetteSpain2024-05-05Dorl, James J Esq PROPOSAL48Ivan Magalhaes
1035Johnson T CampainBrazil2024-04-25Chemel, James L Cpa RENEWAL34Amy Elsner
1036Silvio L KuskoJapan2024-04-06Feiner Bros PROPOSAL48Anna Fali
1037Alejandro V SlusarskiGermany2024-05-04Printing Dimensions PROPOSAL26Ioni Bowcher
1038Leja A BowleySpain2024-04-18Feiner Bros PROPOSAL48Ivan Magalhaes
1039Murillo G StockhamAustralia2024-04-20Commercial Press RENEWAL82Bernardo Dominic
1040Julie Y WhobreyUnited Kingdom2024-04-17Truhlar And Truhlar Attys NEGOTIATION94Ioni Bowcher
1041Jennifer S RimFrance2024-04-08Printing Dimensions RENEWAL57Ivan Magalhaes
1042Francesco W WaycottAustralia2024-04-13Rousseaux, Michael Esq NEW1Stephen Shaw
1043Tony M SlusarskiCanada2024-04-11King, Christopher A Esq QUALIFIED28Amy Elsner
1044Faith W PoquetteIndia2024-04-13Truhlar And Truhlar Attys RENEWAL12Asiya Javayant
1045Costa K KuskoFrance2024-04-29Chanay, Jeffrey A Esq QUALIFIED36Ivan Magalhaes
1046Mujtaba C GlickUnited Kingdom2024-04-24Chanay, Jeffrey A Esq PROPOSAL25Elwin Sharvill
1047Johnson F CaldareraRussia2024-04-14Chemel, James L Cpa NEGOTIATION39Xuxue Feng
1048Jeanfrancois X WieserUnited Kingdom2024-04-20Truhlar And Truhlar Attys NEW27Elwin Sharvill
1049Emily S KolmetzIndia2024-04-18Feiner Bros UNQUALIFIED12Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria P WaycottRussiaElwin Sharvill QUALIFIED
Jefferson S StockhamAustraliaBernardo Dominic RENEWAL
Mayumi S ChuiCanadaStephen Shaw QUALIFIED
Jones A ButtCanadaXuxue Feng NEW
Johnson M MarrierUnited KingdomXuxue Feng UNQUALIFIED
Darci B WieserFranceAsiya Javayant PROPOSAL
Sinclair P RulapaughUnited KingdomAmy Elsner PROPOSAL
Ricardo M SlusarskiBrazilStephen Shaw PROPOSAL
Faith G GarufiSpainElwin Sharvill UNQUALIFIED
James N BowleyArgentinaAmy Elsner NEW
Mayumi P MacleadItalyIoni Bowcher PROPOSAL
Cody I CaudyFranceIvan Magalhaes RENEWAL
Jennifer W BriddickCanadaIvan Magalhaes NEW
Murillo P BologniaUnited KingdomAnna Fali UNQUALIFIED
David T FollerArgentinaAsiya Javayant RENEWAL
Ricardo Z IturbideRussiaAsiya Javayant RENEWAL
Jones P MorascaFranceOnyama Limba PROPOSAL
Silvio F DoeUnited KingdomIvan Magalhaes RENEWAL
Murillo G StensethFranceBernardo Dominic PROPOSAL
Leja E PoquetteCanadaAnna Fali NEW
Nicolas P WieserRussiaIoni Bowcher PROPOSAL
Wickens N WaycottBrazilAsiya Javayant NEW
Silvio F RoysterJapanStephen Shaw PROPOSAL
Ricardo N FlosiCanadaStephen Shaw UNQUALIFIED
Julie F PaprockiIndiaAmy Elsner PROPOSAL
Sinclair X FerenczUnited KingdomAsiya Javayant PROPOSAL
Claire L GauchoFranceAmy Elsner NEW
Darci J GlickBrazilIvan Magalhaes QUALIFIED
Cody E SaylorsBrazilOnyama Limba NEGOTIATION
Aditya R FollerGermanyAmy Elsner QUALIFIED
Johnson V FlosiAustraliaElwin Sharvill QUALIFIED
Juan A PoquetteCanadaIoni Bowcher NEW
Leja A RulapaughGermanyOnyama Limba NEGOTIATION
Chavez H MaletArgentinaStephen Shaw UNQUALIFIED
Jennifer B KuskoIndiaAmy Elsner NEGOTIATION
Johnson T SaylorsSpainBernardo Dominic UNQUALIFIED
Antonio Y MacleadFranceBernardo Dominic NEGOTIATION
Wickens V DarakjyRussiaAnna Fali RENEWAL
Silvio L ShinkoSpainIvan Magalhaes NEGOTIATION
Stacey L GauchoCanadaAnna Fali QUALIFIED
Deepesh N PaprockiAustraliaXuxue Feng QUALIFIED
Nicolas A PerinSpainAsiya Javayant NEW
Alejandro F RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore Q InouyeRussiaIvan Magalhaes NEGOTIATION
Kadeem M MacleadRussiaXuxue Feng QUALIFIED
Francesco Q MorascaBrazilIoni Bowcher RENEWAL
Smith G VenereItalyBernardo Dominic QUALIFIED
Rodrigues K BowleyJapanAsiya Javayant NEGOTIATION
Ashley G VocelkaJapanIoni Bowcher UNQUALIFIED
Jennifer K AlbaresSpainAnna Fali UNQUALIFIED
Frozen Columns
Name
Stacey H Wieser
Leon V Malet
Tony U Maclead
Stacey X Dilliard
Morrow A Chui
Stacey L Shinko
Ivar Q Poquette
Claire U Chui
Juan C Kusko
Faith Y Morasca
Francesco O Malet
Costa D Sergi
Greenwood I Vocelka
Misaki H Flosi
Ashley U Paprocki
Julie F Morasca
Deepesh I Inouye
David R Kolmetz
Kaitlin Z Kolmetz
Costa F Tollner
Maria Z Briddick
Adams H Whobrey
Faith B Poquette
Jones Y Kusko
Maisha Z Briddick
Darci L Dilliard
Greenwood G Glick
Faith A Glick
Jefferson M Slusarski
Mujtaba D Chui
Kaitlin Q Chui
Maisha I Dilliard
Tony B Wieser
Claire X Poquette
David G Nicka
Jeanfrancois S Shinko
Aruna V Saylors
Izzy J Flosi
Aika L Shinko
Clifford A Whobrey
Misaki X Malet
Silvio F Poquette
Mujtaba Y Perin
Murillo I Garufi
Maria R Whobrey
Kaitlin N Poquette
Silvio L Chui
Nicolas O Doe
Sinclair C Doe
Mayumi Q Shinko
IdCountryDate
1000Japan2024-04-15
1001Brazil2024-04-25
1002Canada2024-05-05
1003United Kingdom2024-04-24
1004Japan2024-04-18
1005Spain2024-04-14
1006India2024-04-27
1007Spain2024-04-12
1008Japan2024-04-30
1009Japan2024-05-03
1010France2024-04-22
1011Brazil2024-04-14
1012Australia2024-04-10
1013Italy2024-04-15
1014India2024-05-03
1015Canada2024-04-25
1016Spain2024-04-28
1017United Kingdom2024-04-11
1018Argentina2024-04-16
1019United Kingdom2024-04-23
1020Germany2024-05-05
1021Brazil2024-04-07
1022Germany2024-04-10
1023Japan2024-04-21
1024Brazil2024-04-18
1025Australia2024-04-19
1026Argentina2024-04-27
1027Brazil2024-04-21
1028Japan2024-04-28
1029Russia2024-04-28
1030Italy2024-04-23
1031Brazil2024-04-15
1032Japan2024-05-03
1033Spain2024-04-13
1034Japan2024-04-14
1035Italy2024-04-15
1036Brazil2024-04-18
1037Australia2024-04-15
1038United Kingdom2024-04-29
1039Spain2024-04-20
1040United Kingdom2024-04-24
1041Italy2024-04-15
1042France2024-04-15
1043India2024-04-15
1044Argentina2024-04-14
1045Italy2024-04-08
1046Canada2024-04-08
1047Japan2024-04-17
1048France2024-04-26
1049Russia2024-04-24

On-Demand Data

NameIdCountryDate
Leon Z Darakjy1000Russia2024-04-07
Munro O Kusko1001Argentina2024-04-17
Arvin P Campain1002Australia2024-04-26
Munro I Kusko1003Australia2024-05-04
Misaki T Sergi1004Japan2024-04-08
Aditya D Iturbide1005United Kingdom2024-04-15
David A Stenseth1006Italy2024-04-16
Aruna M Caldarera1007India2024-04-12
Maria J Rim1008Germany2024-05-02
Costa C Albares1009Brazil2024-04-08
Aruna G Dilliard1010Brazil2024-04-16
Silvio G Poquette1011Germany2024-04-16
Jennifer A Gillian1012India2024-04-10
Morrow E Caudy1013Argentina2024-04-17
Leja Y Caldarera1014Germany2024-04-26
Leon D Caldarera1015Australia2024-04-11
Smith A Rulapaugh1016Russia2024-05-02
Jeanfrancois W Glick1017Brazil2024-04-21
Cody I Stockham1018India2024-04-27
Morrow G Sergi1019Brazil2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy V WhobreyArgentinaOnyama Limba PROPOSAL
Smith W PerinArgentinaBernardo Dominic PROPOSAL
Clifford R MacleadSpainOnyama Limba RENEWAL
Silvio D PerinIndiaAmy Elsner QUALIFIED
Costa I GillianAustraliaAnna Fali UNQUALIFIED
Sinclair Z RimAustraliaXuxue Feng UNQUALIFIED
Alejandro V KuskoUnited KingdomXuxue Feng RENEWAL
James F InouyeIndiaStephen Shaw QUALIFIED
Maisha G SaylorsSpainAnna Fali RENEWAL
Faith P WieserBrazilStephen Shaw UNQUALIFIED
Emily M RimUnited KingdomOnyama Limba UNQUALIFIED
Aika N BriddickGermanyIvan Magalhaes QUALIFIED
Morrow F GillianIndiaIoni Bowcher UNQUALIFIED
Stacey W CampainRussiaStephen Shaw NEGOTIATION
Jennifer Z MorascaItalyElwin Sharvill UNQUALIFIED
Aditya C MaletIndiaAnna Fali QUALIFIED
Faith S AlbaresAustraliaOnyama Limba UNQUALIFIED
Kadeem M RoysterBrazilXuxue Feng NEW
Aditya Q SaylorsRussiaStephen Shaw QUALIFIED
Leon F SaylorsRussiaOnyama Limba UNQUALIFIED
Juan V SergiItalyIoni Bowcher UNQUALIFIED
Francesco B SchemmerBrazilStephen Shaw QUALIFIED
Claire U MorascaIndiaElwin Sharvill QUALIFIED
Izzy P PoquetteRussiaOnyama Limba NEW
Silvio D MaletFranceAnna Fali UNQUALIFIED
Murillo D CampainArgentinaAmy Elsner QUALIFIED
Darci X OldroydIndiaAnna Fali NEW
Leon A DoeCanadaIvan Magalhaes UNQUALIFIED
Kadeem W WaycottBrazilAsiya Javayant UNQUALIFIED
Claire H GarufiIndiaStephen Shaw RENEWAL
Jennifer O MaletBrazilXuxue Feng NEW
Julie L SchemmerSpainXuxue Feng RENEWAL
Johnson B RimIndiaIvan Magalhaes RENEWAL
Ivar R BowleyBrazilIvan Magalhaes PROPOSAL
Nicolas L KuskoBrazilElwin Sharvill NEW
Juan M MacleadUnited KingdomIvan Magalhaes NEW
Emily X SchemmerBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois O WieserFranceOnyama Limba NEW
Sinclair R FlosiItalyBernardo Dominic PROPOSAL
Emily G OstroskyArgentinaBernardo Dominic 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>