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
Greenwood J MarrierArgentinaBernardo Dominic RENEWAL
Costa R MorascaCanadaBernardo Dominic PROPOSAL
Munro N WieserJapanIvan Magalhaes PROPOSAL
Kadeem F NickaFranceIvan Magalhaes RENEWAL
Juan S CaldareraCanadaAnna Fali PROPOSAL
David C RoysterGermanyElwin Sharvill RENEWAL
Juan V WhobreyBrazilIvan Magalhaes QUALIFIED
Maria L StensethGermanyOnyama Limba RENEWAL
Greenwood I GillianArgentinaAnna Fali QUALIFIED
Murillo G ChuiJapanXuxue Feng RENEWAL
Johnson B GlickFranceAsiya Javayant UNQUALIFIED
Juan Z CaudyJapanBernardo Dominic UNQUALIFIED
Alejandro D OldroydBrazilElwin Sharvill UNQUALIFIED
Aruna J SaylorsCanadaBernardo Dominic PROPOSAL
Jennifer R RutaGermanyXuxue Feng NEGOTIATION
Cody B VocelkaGermanyStephen Shaw QUALIFIED
Chavez Y NickaSpainElwin Sharvill RENEWAL
Smith P FlosiAustraliaElwin Sharvill RENEWAL
Cody Y BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Misaki Y WaycottRussiaIvan Magalhaes NEW
Nicolas D FollerRussiaAsiya Javayant NEGOTIATION
Silvio Q CaudyGermanyXuxue Feng UNQUALIFIED
Greenwood K ChuiArgentinaElwin Sharvill PROPOSAL
Aditya U SaylorsJapanAsiya Javayant RENEWAL
Mujtaba K PoquetteFranceElwin Sharvill QUALIFIED
Johnson I KuskoRussiaAsiya Javayant NEGOTIATION
Silvio D StensethSpainAsiya Javayant QUALIFIED
Tony J FollerSpainElwin Sharvill NEW
Misaki L PaprockiSpainXuxue Feng QUALIFIED
Emily F FerenczUnited KingdomAnna Fali RENEWAL
Munro Y OstroskyJapanAsiya Javayant QUALIFIED
Kaitlin I WaycottBrazilAsiya Javayant NEW
Octavia Z OldroydIndiaIvan Magalhaes QUALIFIED
Aditya B StensethItalyIoni Bowcher PROPOSAL
Ivar G GillianAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois L AlbaresUnited KingdomStephen Shaw RENEWAL
Stacey T GillianIndiaXuxue Feng NEGOTIATION
Chavez F MacleadJapanAmy Elsner QUALIFIED
Darci J ShinkoGermanyAmy Elsner NEGOTIATION
Arvin G OstroskyCanadaStephen Shaw NEGOTIATION
Chavez Y DarakjyBrazilBernardo Dominic PROPOSAL
Stacey G PaprockiIndiaAnna Fali PROPOSAL
Isabel Q TollnerAustraliaStephen Shaw RENEWAL
Jeanfrancois J RutaGermanyAnna Fali NEW
Costa Y BriddickSpainBernardo Dominic NEGOTIATION
Sinclair F MarrierFranceIvan Magalhaes NEW
Antonio V DilliardBrazilAmy Elsner UNQUALIFIED
Mayumi T CampainFranceXuxue Feng PROPOSAL
Nicolas W ShinkoUnited KingdomXuxue Feng RENEWAL
Isabel M VenereGermanyAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson C SlusarskiGermanyAnna Fali NEW
Leon T SergiItalyIoni Bowcher RENEWAL
Juan F DoeCanadaXuxue Feng NEW
Stacey B WieserBrazilOnyama Limba UNQUALIFIED
Greenwood D WhobreyBrazilIoni Bowcher UNQUALIFIED
Smith T MorascaBrazilIvan Magalhaes QUALIFIED
Aruna F GarufiArgentinaAmy Elsner PROPOSAL
Deepesh L CampainItalyIvan Magalhaes RENEWAL
James S NickaAustraliaAmy Elsner NEGOTIATION
Izzy B GarufiFranceStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey C RulapaughBrazil2024-04-16Truhlar And Truhlar Attys NEGOTIATION31Asiya Javayant
1001Mayumi K FlosiSpain2024-03-29King, Christopher A Esq NEW20Asiya Javayant
1002James G DilliardBrazil2024-04-25Commercial Press NEGOTIATION19Onyama Limba
1003Clifford G OstroskyArgentina2024-04-26Chemel, James L Cpa RENEWAL88Bernardo Dominic
1004James U MacleadFrance2024-04-01Chanay, Jeffrey A Esq RENEWAL95Xuxue Feng
1005Costa A PoquetteBrazil2024-04-21Feltz Printing Service NEW56Onyama Limba
1006Nicolas Y BowleyRussia2024-03-31Commercial Press NEGOTIATION51Elwin Sharvill
1007Misaki T PerinGermany2024-03-29Truhlar And Truhlar Attys PROPOSAL78Anna Fali
1008Emily H FlosiSpain2024-04-18Benton, John B Jr QUALIFIED23Elwin Sharvill
1009Sinclair J WaycottUnited Kingdom2024-04-21Morlong Associates PROPOSAL51Anna Fali
1010Costa V ChuiFrance2024-04-12Feltz Printing Service UNQUALIFIED80Xuxue Feng
1011Nicolas F RutaBrazil2024-04-24Buckley Miller Wright NEW54Amy Elsner
1012Julie M FerenczBrazil2024-03-30Feltz Printing Service NEW85Bernardo Dominic
1013Jefferson V MacleadGermany2024-03-29King, Christopher A Esq UNQUALIFIED25Ioni Bowcher
1014Munro Z VenereJapan2024-04-19Feiner Bros QUALIFIED79Ioni Bowcher
1015James F MorascaItaly2024-04-13Feiner Bros UNQUALIFIED17Stephen Shaw
1016Aruna B CampainCanada2024-04-25Commercial Press PROPOSAL45Onyama Limba
1017Aruna C CaudyItaly2024-04-05Printing Dimensions UNQUALIFIED91Amy Elsner
1018Mayumi F BriddickRussia2024-04-10Buckley Miller Wright PROPOSAL46Onyama Limba
1019Alejandro V VenereGermany2024-04-03Chanay, Jeffrey A Esq QUALIFIED86Asiya Javayant
1020Jeanfrancois L CampainItaly2024-04-13Commercial Press NEW40Asiya Javayant
1021Morrow W FollerFrance2024-04-01Truhlar And Truhlar Attys RENEWAL57Anna Fali
1022Mayumi B CaudyAustralia2024-04-17King, Christopher A Esq PROPOSAL74Anna Fali
1023Jennifer A FollerCanada2024-03-31Rangoni Of Florence NEW17Amy Elsner
1024Sinclair T DoeSpain2024-04-12Truhlar And Truhlar Attys RENEWAL67Xuxue Feng
1025Jones P SaylorsRussia2024-04-25Benton, John B Jr UNQUALIFIED64Onyama Limba
1026Munro K ShinkoRussia2024-04-07Feltz Printing Service UNQUALIFIED52Onyama Limba
1027Jefferson A MarrierJapan2024-04-16Feltz Printing Service NEW11Stephen Shaw
1028David O NickaCanada2024-04-09King, Christopher A Esq NEW86Anna Fali
1029Maria Z WieserJapan2024-04-09Rangoni Of Florence RENEWAL31Elwin Sharvill
1030Aditya H DoeJapan2024-04-06Printing Dimensions UNQUALIFIED4Stephen Shaw
1031Mujtaba H SergiItaly2024-03-31Rousseaux, Michael Esq PROPOSAL2Ivan Magalhaes
1032Clifford G WaycottFrance2024-04-14Rousseaux, Michael Esq NEW86Elwin Sharvill
1033Francesco R GlickRussia2024-04-19Rangoni Of Florence PROPOSAL9Elwin Sharvill
1034Silvio U StensethAustralia2024-04-25Printing Dimensions PROPOSAL11Stephen Shaw
1035Deepesh I StockhamArgentina2024-04-17Chanay, Jeffrey A Esq QUALIFIED59Xuxue Feng
1036Octavia X PaprockiRussia2024-03-31Benton, John B Jr RENEWAL97Bernardo Dominic
1037Juan Z FollerItaly2024-04-06Feltz Printing Service QUALIFIED92Ivan Magalhaes
1038Clifford T ButtAustralia2024-03-30Feltz Printing Service PROPOSAL31Asiya Javayant
1039Faith M BowleyIndia2024-03-29Morlong Associates QUALIFIED45Amy Elsner
1040Arvin I SergiGermany2024-04-18Chemel, James L Cpa NEGOTIATION21Stephen Shaw
1041Juan R BologniaJapan2024-04-05Truhlar And Truhlar Attys NEGOTIATION73Elwin Sharvill
1042Alejandro H OstroskyRussia2024-04-14Feltz Printing Service QUALIFIED23Anna Fali
1043Julie K ChuiIndia2024-04-21Chemel, James L Cpa NEW15Elwin Sharvill
1044Darci U WhobreySpain2024-04-01Chemel, James L Cpa NEW58Ivan Magalhaes
1045Mayumi L AlbaresGermany2024-04-02Chanay, Jeffrey A Esq NEW64Ioni Bowcher
1046Sinclair L SergiRussia2024-04-01Feiner Bros NEGOTIATION41Ioni Bowcher
1047Izzy G GarufiArgentina2024-04-15Commercial Press UNQUALIFIED16Elwin Sharvill
1048Mayumi E InouyeJapan2024-04-07Chemel, James L Cpa NEGOTIATION57Amy Elsner
1049Ivar L MarrierFrance2024-04-21Buckley Miller Wright RENEWAL15Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Deepesh F KolmetzFranceAsiya Javayant RENEWAL
Faith K StensethCanadaXuxue Feng QUALIFIED
Isabel L SergiSpainIoni Bowcher UNQUALIFIED
Cody I DoeCanadaAmy Elsner QUALIFIED
Cody R ChuiItalyStephen Shaw QUALIFIED
Stacey J ButtJapanElwin Sharvill NEGOTIATION
Maisha T GillianItalyAsiya Javayant QUALIFIED
Julie M PoquetteUnited KingdomOnyama Limba NEGOTIATION
Stacey B GauchoArgentinaIvan Magalhaes NEW
Emily G BowleyFranceAmy Elsner UNQUALIFIED
Kaitlin E WhobreyUnited KingdomAnna Fali UNQUALIFIED
David B StensethCanadaAnna Fali PROPOSAL
Alejandro V CaldareraCanadaAsiya Javayant PROPOSAL
Maria O GlickItalyStephen Shaw PROPOSAL
Deepesh W FollerArgentinaElwin Sharvill UNQUALIFIED
Smith C WaycottItalyBernardo Dominic RENEWAL
Ashley M WhobreyJapanIoni Bowcher PROPOSAL
Silvio X GauchoCanadaElwin Sharvill QUALIFIED
Rodrigues V SlusarskiRussiaBernardo Dominic UNQUALIFIED
Julie W InouyeRussiaIvan Magalhaes NEW
Aika F TollnerArgentinaBernardo Dominic QUALIFIED
Murillo O CaudySpainIoni Bowcher PROPOSAL
Jones E PerinFranceXuxue Feng QUALIFIED
Francesco E FerenczArgentinaOnyama Limba NEW
Stacey K PoquetteUnited KingdomStephen Shaw RENEWAL
Mujtaba E PoquetteItalyAsiya Javayant NEGOTIATION
Salvatore B WieserJapanXuxue Feng QUALIFIED
Tony G DilliardItalyAsiya Javayant QUALIFIED
David F RoysterJapanOnyama Limba QUALIFIED
Aika H DarakjyGermanyOnyama Limba UNQUALIFIED
Octavia K OstroskyCanadaXuxue Feng RENEWAL
Kadeem D ButtUnited KingdomIvan Magalhaes QUALIFIED
Silvio A VocelkaRussiaAmy Elsner NEGOTIATION
Murillo W OldroydFranceOnyama Limba UNQUALIFIED
Izzy N NestleUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi G WaycottArgentinaElwin Sharvill NEW
Ashley M VenereGermanyXuxue Feng NEW
Alejandro V OldroydFranceXuxue Feng NEGOTIATION
Octavia O FlosiAustraliaXuxue Feng NEGOTIATION
Jefferson P WaycottBrazilIvan Magalhaes PROPOSAL
Ricardo Y ButtBrazilIvan Magalhaes RENEWAL
Maria P MarrierIndiaStephen Shaw PROPOSAL
Stacey E StensethCanadaAmy Elsner QUALIFIED
Alejandro Y PaprockiIndiaAnna Fali PROPOSAL
Jeanfrancois U ChuiItalyAmy Elsner NEW
Johnson B MacleadJapanBernardo Dominic PROPOSAL
Johnson G FigeroaAustraliaIoni Bowcher QUALIFIED
Cody R DilliardJapanElwin Sharvill PROPOSAL
Misaki T AlbaresItalyStephen Shaw NEW
Silvio D RoysterSpainElwin Sharvill PROPOSAL
Frozen Columns
Name
Arvin J Flosi
Octavia L Butt
Julie B Sergi
Arvin Q Caldarera
James W Garufi
Aruna F Slusarski
Claire I Stockham
Greenwood R Gillian
Arvin Q Nestle
Costa V Rulapaugh
Kaitlin O Albares
Jefferson F Albares
James X Whobrey
Kadeem I Poquette
Leon X Stenseth
Isabel V Chui
Isabel O Rulapaugh
David Q Inouye
Francesco Y Tollner
Mujtaba M Tollner
Murillo V Poquette
Aika H Stockham
James W Wieser
Greenwood Q Stockham
Clifford S Waycott
Ashley C Tollner
Silvio A Paprocki
Ricardo I Foller
Aika B Perin
Morrow G Morasca
Julie P Garufi
Aika N Darakjy
Leja H Royster
Leon I Inouye
Greenwood C Malet
Izzy B Tollner
Maria L Inouye
Jones G Sergi
Aruna E Amigon
Adams J Slusarski
Izzy F Chui
Kaitlin H Sergi
Morrow R Marrier
Emily H Nestle
Silvio M Bolognia
Jefferson F Saylors
Wickens H Inouye
David X Figeroa
Jones A Kolmetz
Jennifer A Venere
IdCountryDate
1000Canada2024-04-17
1001United Kingdom2024-04-07
1002Japan2024-04-17
1003Russia2024-04-17
1004Brazil2024-04-19
1005Australia2024-04-02
1006Brazil2024-04-03
1007Russia2024-04-17
1008Argentina2024-04-09
1009Germany2024-04-26
1010Spain2024-04-10
1011Brazil2024-04-16
1012Italy2024-03-30
1013United Kingdom2024-03-29
1014Italy2024-04-03
1015Canada2024-04-21
1016Brazil2024-04-06
1017Spain2024-04-20
1018India2024-03-31
1019Japan2024-04-19
1020Canada2024-04-03
1021Russia2024-03-31
1022United Kingdom2024-04-16
1023Australia2024-04-21
1024Brazil2024-04-20
1025Japan2024-04-17
1026Japan2024-04-03
1027Argentina2024-04-12
1028Italy2024-04-13
1029Germany2024-04-25
1030Argentina2024-04-20
1031India2024-04-07
1032Russia2024-04-06
1033Australia2024-04-15
1034Brazil2024-04-04
1035Spain2024-04-24
1036India2024-03-31
1037United Kingdom2024-03-29
1038France2024-04-19
1039France2024-04-18
1040Australia2024-04-15
1041Italy2024-04-04
1042Germany2024-04-03
1043Russia2024-03-28
1044Italy2024-04-01
1045Germany2024-04-10
1046India2024-04-06
1047Germany2024-04-19
1048Brazil2024-04-22
1049Brazil2024-04-10

On-Demand Data

NameIdCountryDate
David C Shinko1000France2024-04-19
Francesco A Whobrey1001Germany2024-04-11
Aditya H Paprocki1002Canada2024-04-13
Aditya X Albares1003Australia2024-04-07
Jeanfrancois S Chui1004Japan2024-04-02
Juan O Kusko1005United Kingdom2024-04-18
Deepesh R Campain1006Germany2024-04-08
Ivar W Paprocki1007Russia2024-04-10
Morrow A Amigon1008Russia2024-04-24
Greenwood I Marrier1009India2024-04-01
Julie M Nestle1010Russia2024-04-21
Kadeem G Garufi1011India2024-04-16
Costa Q Stockham1012Spain2024-04-13
Aruna G Gaucho1013Russia2024-04-04
Deepesh G Rim1014Canada2024-04-25
Aruna U Iturbide1015India2024-04-14
Rodrigues B Morasca1016Italy2024-04-12
Clifford E Glick1017Brazil2024-04-01
Chavez A Albares1018Japan2024-04-09
Juan H Gillian1019United Kingdom2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa F DilliardGermanyStephen Shaw QUALIFIED
Ashley X WhobreyBrazilIoni Bowcher PROPOSAL
Jeanfrancois B SergiAustraliaXuxue Feng QUALIFIED
Ricardo L NestleArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois A FigeroaGermanyOnyama Limba NEW
Tony P MacleadItalyBernardo Dominic PROPOSAL
Silvio L WhobreyUnited KingdomStephen Shaw QUALIFIED
Faith A MaletSpainAsiya Javayant PROPOSAL
Antonio G CaudyArgentinaAmy Elsner NEW
Jones E FigeroaArgentinaBernardo Dominic UNQUALIFIED
Jones C MaletRussiaAsiya Javayant RENEWAL
David A RoysterItalyXuxue Feng QUALIFIED
Tony K FerenczBrazilAmy Elsner RENEWAL
Jeanfrancois K DilliardItalyAmy Elsner RENEWAL
Francesco I IturbideIndiaAnna Fali QUALIFIED
Leja F KolmetzFranceIoni Bowcher UNQUALIFIED
Wickens L VocelkaFranceIvan Magalhaes PROPOSAL
Aditya R PoquetteUnited KingdomStephen Shaw PROPOSAL
Clifford A GlickCanadaIvan Magalhaes UNQUALIFIED
Jefferson Z FlosiGermanyXuxue Feng PROPOSAL
Julie L RutaUnited KingdomBernardo Dominic NEGOTIATION
Leon C MaletArgentinaBernardo Dominic UNQUALIFIED
Aruna J NestleCanadaElwin Sharvill NEGOTIATION
Jennifer F GlickIndiaIoni Bowcher UNQUALIFIED
Emily F DoeIndiaElwin Sharvill PROPOSAL
David I TollnerSpainBernardo Dominic QUALIFIED
Wickens Q GauchoGermanyAmy Elsner UNQUALIFIED
Leja N PerinCanadaOnyama Limba QUALIFIED
Leon R ButtJapanAsiya Javayant PROPOSAL
Juan G KuskoFranceAmy Elsner QUALIFIED
Faith R DilliardAustraliaXuxue Feng NEGOTIATION
Costa J FollerItalyAmy Elsner NEW
Kaitlin P OstroskyUnited KingdomIoni Bowcher RENEWAL
Jefferson B SlusarskiUnited KingdomXuxue Feng NEW
Kaitlin Q FerenczAustraliaStephen Shaw PROPOSAL
Misaki G AmigonJapanOnyama Limba QUALIFIED
Stacey F CampainAustraliaXuxue Feng PROPOSAL
Maria K ChuiCanadaAmy Elsner RENEWAL
Leon A SergiRussiaIvan Magalhaes QUALIFIED
Octavia R MaletItalyIoni Bowcher UNQUALIFIED

<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>