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
Sinclair S ShinkoGermanyAmy Elsner NEW
Wickens G SchemmerAustraliaOnyama Limba QUALIFIED
Deepesh G SergiArgentinaBernardo Dominic PROPOSAL
Chavez Y AmigonRussiaOnyama Limba QUALIFIED
Juan W DarakjyAustraliaAnna Fali NEW
Kaitlin N DoeIndiaBernardo Dominic RENEWAL
David U WhobreyIndiaXuxue Feng UNQUALIFIED
Deepesh R InouyeArgentinaAsiya Javayant NEGOTIATION
Jennifer N MaletAustraliaIoni Bowcher UNQUALIFIED
James S MorascaItalyXuxue Feng PROPOSAL
Clifford C SaylorsBrazilIoni Bowcher NEW
Johnson E FigeroaJapanElwin Sharvill NEGOTIATION
Ricardo M OstroskyBrazilXuxue Feng UNQUALIFIED
Stacey J AlbaresAustraliaBernardo Dominic RENEWAL
Julie J BowleyGermanyIvan Magalhaes PROPOSAL
Ivar V CampainItalyOnyama Limba QUALIFIED
Aruna Y MorascaCanadaStephen Shaw RENEWAL
Leja T CaldareraGermanyAnna Fali RENEWAL
Morrow H SaylorsArgentinaOnyama Limba QUALIFIED
Misaki E PaprockiGermanyOnyama Limba PROPOSAL
Juan N VocelkaFranceElwin Sharvill UNQUALIFIED
Faith C NickaArgentinaOnyama Limba QUALIFIED
Jeanfrancois I IturbideRussiaOnyama Limba QUALIFIED
Jefferson D SaylorsArgentinaIvan Magalhaes PROPOSAL
Tony Y SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Octavia X MarrierRussiaStephen Shaw PROPOSAL
David P IturbideRussiaAmy Elsner QUALIFIED
Morrow I StockhamFranceIoni Bowcher PROPOSAL
Aditya A GillianRussiaOnyama Limba PROPOSAL
Juan J MacleadItalyXuxue Feng PROPOSAL
Juan C PoquetteFranceAnna Fali RENEWAL
Misaki V BriddickFranceXuxue Feng NEW
Wickens Q OstroskyBrazilElwin Sharvill NEW
Chavez O MarrierAustraliaAnna Fali UNQUALIFIED
Aika O VocelkaJapanOnyama Limba QUALIFIED
James J MacleadArgentinaIvan Magalhaes QUALIFIED
David F VocelkaCanadaOnyama Limba RENEWAL
Murillo X FerenczCanadaStephen Shaw RENEWAL
James V RulapaughCanadaAmy Elsner QUALIFIED
Octavia T MaletSpainAmy Elsner RENEWAL
Kadeem H KolmetzBrazilXuxue Feng RENEWAL
Adams I AmigonItalyAsiya Javayant PROPOSAL
James Q VocelkaGermanyElwin Sharvill RENEWAL
Stacey I IturbideRussiaAnna Fali NEW
Jefferson Q KuskoUnited KingdomAnna Fali PROPOSAL
Alejandro T DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Stacey O SaylorsSpainBernardo Dominic QUALIFIED
Chavez U StockhamUnited KingdomIvan Magalhaes NEW
Leon L OldroydUnited KingdomStephen Shaw RENEWAL
Nicolas D SchemmerJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Emily E PerinJapanStephen Shaw NEGOTIATION
Arvin D BowleyArgentinaStephen Shaw NEW
David P VenereFranceAmy Elsner NEW
Mujtaba F GlickItalyAmy Elsner QUALIFIED
Ashley N WaycottItalyAnna Fali PROPOSAL
Izzy B StensethItalyBernardo Dominic NEGOTIATION
Costa I AmigonIndiaBernardo Dominic NEGOTIATION
Jeanfrancois H GlickGermanyElwin Sharvill UNQUALIFIED
Aditya O MarrierIndiaAnna Fali NEW
Cody J OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba L ChuiSpain2024-04-14Benton, John B Jr PROPOSAL72Xuxue Feng
1001Izzy B MacleadBrazil2024-04-11Chapman, Ross E Esq UNQUALIFIED7Bernardo Dominic
1002Ivar R BologniaFrance2024-04-05Rangoni Of Florence PROPOSAL33Anna Fali
1003Aika X DoeFrance2024-04-04Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1004Aruna N OstroskyGermany2024-04-28King, Christopher A Esq QUALIFIED10Ioni Bowcher
1005Mayumi Y MorascaJapan2024-04-18King, Christopher A Esq NEW67Asiya Javayant
1006Nicolas H FlosiArgentina2024-04-29Feiner Bros PROPOSAL30Asiya Javayant
1007Misaki R VenereCanada2024-04-10Chanay, Jeffrey A Esq QUALIFIED0Stephen Shaw
1008Mujtaba D StockhamSpain2024-04-08Feiner Bros QUALIFIED37Xuxue Feng
1009Greenwood R SlusarskiAustralia2024-04-26Chemel, James L Cpa NEW67Ioni Bowcher
1010Leja P MorascaCanada2024-04-25Feltz Printing Service PROPOSAL65Anna Fali
1011Faith H AmigonCanada2024-04-15Feltz Printing Service PROPOSAL98Ioni Bowcher
1012Alejandro N WhobreyJapan2024-04-29King, Christopher A Esq UNQUALIFIED46Ioni Bowcher
1013Kadeem H DarakjySpain2024-04-15Benton, John B Jr PROPOSAL67Asiya Javayant
1014Juan F WaycottRussia2024-04-09Rangoni Of Florence NEW45Bernardo Dominic
1015David N FigeroaJapan2024-04-25King, Christopher A Esq QUALIFIED10Ioni Bowcher
1016Kaitlin X MacleadSpain2024-04-05Feltz Printing Service QUALIFIED60Bernardo Dominic
1017Ricardo N IturbideArgentina2024-04-05King, Christopher A Esq NEW55Anna Fali
1018Chavez O DilliardRussia2024-04-16Feltz Printing Service PROPOSAL99Xuxue Feng
1019Adams Z BriddickFrance2024-05-02Rousseaux, Michael Esq QUALIFIED38Anna Fali
1020Greenwood O MacleadItaly2024-04-20Feltz Printing Service UNQUALIFIED52Amy Elsner
1021Greenwood U ShinkoSpain2024-04-29Feiner Bros NEW67Ivan Magalhaes
1022Stacey C RoysterArgentina2024-04-23Buckley Miller Wright NEW52Bernardo Dominic
1023Murillo N RutaRussia2024-04-10Buckley Miller Wright QUALIFIED97Ivan Magalhaes
1024Morrow X WhobreySpain2024-04-07Feiner Bros PROPOSAL36Stephen Shaw
1025Aika U SaylorsJapan2024-04-24Chanay, Jeffrey A Esq RENEWAL87Stephen Shaw
1026Aruna X RoysterUnited Kingdom2024-04-16Morlong Associates NEW12Bernardo Dominic
1027Leon Q MaletFrance2024-04-29Morlong Associates RENEWAL39Elwin Sharvill
1028Julie O StockhamAustralia2024-04-12Dorl, James J Esq NEW38Ivan Magalhaes
1029Mujtaba A PaprockiGermany2024-04-04Dorl, James J Esq PROPOSAL18Ioni Bowcher
1030Ashley I CaldareraItaly2024-04-05Rousseaux, Michael Esq NEGOTIATION77Amy Elsner
1031Claire H GillianSpain2024-05-01Commercial Press UNQUALIFIED68Onyama Limba
1032Aditya Y IturbideGermany2024-04-24Benton, John B Jr NEW91Onyama Limba
1033Cody H CaldareraFrance2024-04-15Rousseaux, Michael Esq PROPOSAL91Elwin Sharvill
1034James J DoeCanada2024-04-26Chemel, James L Cpa PROPOSAL17Amy Elsner
1035Smith Y TollnerRussia2024-04-27Chanay, Jeffrey A Esq NEW15Elwin Sharvill
1036Costa A BriddickArgentina2024-04-30Printing Dimensions RENEWAL83Asiya Javayant
1037Alejandro I VocelkaCanada2024-04-24Rousseaux, Michael Esq NEGOTIATION93Xuxue Feng
1038Arvin Y SergiSpain2024-04-30Buckley Miller Wright NEGOTIATION42Anna Fali
1039Greenwood F StockhamUnited Kingdom2024-04-05Morlong Associates UNQUALIFIED75Bernardo Dominic
1040Smith H FlosiJapan2024-04-15Buckley Miller Wright UNQUALIFIED80Anna Fali
1041Stacey T GillianCanada2024-04-07Rousseaux, Michael Esq RENEWAL27Amy Elsner
1042Cody F TollnerGermany2024-04-03Dorl, James J Esq QUALIFIED84Asiya Javayant
1043Chavez W CaldareraAustralia2024-04-09Rangoni Of Florence NEW14Stephen Shaw
1044Faith U NestleAustralia2024-04-24Truhlar And Truhlar Attys PROPOSAL41Bernardo Dominic
1045Juan Y VenereJapan2024-04-16Printing Dimensions NEGOTIATION51Elwin Sharvill
1046Jeanfrancois N KolmetzSpain2024-04-26Rousseaux, Michael Esq PROPOSAL45Asiya Javayant
1047Aika R CaldareraIndia2024-04-04Printing Dimensions UNQUALIFIED22Onyama Limba
1048Emily P RulapaughUnited Kingdom2024-04-27Benton, John B Jr PROPOSAL31Xuxue Feng
1049Chavez Z StockhamSpain2024-04-13Feltz Printing Service QUALIFIED71Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Nicolas E InouyeJapanStephen Shaw QUALIFIED
Mayumi I VenereBrazilIvan Magalhaes QUALIFIED
Sinclair F FollerSpainAnna Fali PROPOSAL
James I RutaUnited KingdomIoni Bowcher QUALIFIED
Munro H FigeroaFranceOnyama Limba NEW
Ashley T ShinkoRussiaBernardo Dominic PROPOSAL
Smith E ChuiFranceStephen Shaw NEW
Mayumi Y PerinUnited KingdomAmy Elsner NEW
Silvio P AlbaresArgentinaIvan Magalhaes PROPOSAL
Rodrigues H GarufiFranceBernardo Dominic QUALIFIED
Misaki D SchemmerRussiaAnna Fali RENEWAL
Darci S SergiArgentinaAsiya Javayant UNQUALIFIED
Darci Y WhobreyAustraliaAnna Fali QUALIFIED
Jennifer B KolmetzFranceAnna Fali QUALIFIED
Jefferson Z WieserGermanyBernardo Dominic UNQUALIFIED
Jefferson N FollerUnited KingdomIvan Magalhaes NEW
Leja K SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Stacey N RulapaughCanadaIoni Bowcher UNQUALIFIED
Darci R DilliardSpainElwin Sharvill PROPOSAL
Alejandro B MaletFranceIvan Magalhaes NEGOTIATION
Maisha P TollnerIndiaOnyama Limba RENEWAL
David X PaprockiIndiaOnyama Limba NEW
Leon M TollnerGermanyIvan Magalhaes NEW
Aditya N WaycottAustraliaAmy Elsner NEGOTIATION
Ricardo M BriddickRussiaAsiya Javayant UNQUALIFIED
Wickens A BowleyFranceAsiya Javayant UNQUALIFIED
Stacey F MacleadFranceStephen Shaw UNQUALIFIED
Stacey O GauchoJapanAmy Elsner NEW
Sinclair P BologniaCanadaAmy Elsner QUALIFIED
Costa M BriddickUnited KingdomAnna Fali QUALIFIED
Salvatore N CampainAustraliaIvan Magalhaes PROPOSAL
Octavia F StockhamJapanBernardo Dominic UNQUALIFIED
David B PaprockiCanadaElwin Sharvill RENEWAL
Rodrigues K VenereAustraliaAsiya Javayant PROPOSAL
Mayumi U SaylorsGermanyIvan Magalhaes QUALIFIED
Leon W KolmetzJapanIvan Magalhaes QUALIFIED
Jones F BologniaItalyElwin Sharvill UNQUALIFIED
Silvio E FlosiIndiaElwin Sharvill QUALIFIED
Aika O WieserFranceStephen Shaw RENEWAL
Salvatore W GlickRussiaIvan Magalhaes QUALIFIED
Francesco F WieserGermanyAnna Fali PROPOSAL
Isabel V DilliardGermanyStephen Shaw NEW
Antonio O IturbideUnited KingdomAnna Fali UNQUALIFIED
Isabel X DarakjyCanadaAnna Fali NEW
James K CampainCanadaStephen Shaw UNQUALIFIED
Antonio I BologniaBrazilElwin Sharvill PROPOSAL
Rodrigues U PerinArgentinaBernardo Dominic UNQUALIFIED
Ashley Q RoysterUnited KingdomIoni Bowcher PROPOSAL
Kaitlin Z StensethUnited KingdomIvan Magalhaes QUALIFIED
Claire V WaycottCanadaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Ivar V Darakjy
Leja G Caldarera
Chavez N Briddick
Leon D Glick
Mujtaba W Slusarski
Mayumi T Amigon
Jennifer M Malet
Silvio S Gaucho
Adams M Iturbide
Octavia N Doe
Greenwood D Kusko
Adams L Ruta
Murillo G Rim
James M Gaucho
Ricardo D Stenseth
Clifford L Ostrosky
Jones D Butt
Jennifer O Albares
Wickens L Ferencz
James Y Vocelka
Aruna R Chui
Mujtaba J Sergi
Rodrigues V Tollner
Octavia I Amigon
Adams J Tollner
Sinclair R Bowley
Mayumi H Rulapaugh
Clifford L Slusarski
Sinclair M Rulapaugh
Adams U Bowley
Leon B Gillian
Smith F Royster
Leon G Poquette
Octavia W Dilliard
Munro I Oldroyd
Nicolas H Sergi
Maisha E Caudy
Darci Y Ferencz
David W Malet
Chavez A Wieser
Maria Y Bowley
Ashley U Chui
Maria N Foller
Darci D Morasca
Adams N Marrier
Mayumi W Caudy
Faith G Kolmetz
Wickens Y Poquette
Juan M Caldarera
David H Maclead
IdCountryDate
1000Brazil2024-04-10
1001Russia2024-04-03
1002India2024-04-28
1003Brazil2024-04-29
1004Canada2024-04-14
1005Japan2024-04-04
1006Japan2024-04-20
1007India2024-04-17
1008Argentina2024-04-27
1009Russia2024-04-06
1010United Kingdom2024-04-26
1011France2024-04-17
1012Japan2024-05-01
1013France2024-04-29
1014Canada2024-04-16
1015Brazil2024-04-30
1016Argentina2024-04-22
1017India2024-04-16
1018Argentina2024-04-20
1019Brazil2024-04-19
1020Japan2024-04-24
1021United Kingdom2024-04-25
1022Spain2024-04-04
1023United Kingdom2024-04-22
1024Australia2024-04-30
1025Australia2024-05-01
1026Argentina2024-04-30
1027France2024-04-12
1028Japan2024-04-05
1029Japan2024-04-05
1030France2024-05-01
1031Spain2024-04-05
1032Spain2024-04-20
1033Italy2024-04-14
1034Australia2024-04-15
1035Brazil2024-04-11
1036United Kingdom2024-04-10
1037Italy2024-04-13
1038Spain2024-04-28
1039Germany2024-04-20
1040France2024-04-21
1041Italy2024-04-24
1042France2024-04-13
1043Brazil2024-05-02
1044Italy2024-04-19
1045Brazil2024-04-29
1046Russia2024-04-22
1047Argentina2024-04-17
1048Russia2024-04-12
1049Germany2024-04-17

On-Demand Data

NameIdCountryDate
Mayumi H Campain1000Italy2024-04-24
Antonio Q Vocelka1001France2024-04-23
Antonio X Darakjy1002France2024-04-22
Francesco E Maclead1003Italy2024-05-02
Leja F Vocelka1004Argentina2024-04-21
James H Inouye1005Italy2024-04-13
Juan E Campain1006India2024-04-19
Costa S Maclead1007Argentina2024-04-25
Smith X Gillian1008France2024-04-17
Kadeem Z Morasca1009Italy2024-04-19
Cody V Iturbide1010Japan2024-04-15
Leon I Poquette1011Italy2024-04-14
Clifford S Iturbide1012United Kingdom2024-04-16
Sinclair L Oldroyd1013Russia2024-04-12
Leon J Nestle1014France2024-04-29
Tony O Maclead1015United Kingdom2024-04-21
Stacey W Paprocki1016Australia2024-04-03
Smith L Maclead1017Japan2024-04-03
Emily Z Foller1018Australia2024-04-07
Izzy F Garufi1019France2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson B WaycottIndiaStephen Shaw PROPOSAL
Munro B GillianBrazilStephen Shaw UNQUALIFIED
David W OldroydRussiaElwin Sharvill QUALIFIED
Ivar V ButtUnited KingdomStephen Shaw PROPOSAL
Izzy T NickaUnited KingdomOnyama Limba QUALIFIED
Leon Q SergiGermanyIoni Bowcher RENEWAL
Wickens T MaletSpainIvan Magalhaes RENEWAL
Sinclair K KolmetzArgentinaAnna Fali NEGOTIATION
Emily E DilliardIndiaBernardo Dominic RENEWAL
Aika Y AlbaresFranceXuxue Feng QUALIFIED
Maria Q GlickArgentinaAmy Elsner NEGOTIATION
Nicolas O StockhamIndiaIvan Magalhaes NEGOTIATION
Ivar Z FollerAustraliaOnyama Limba PROPOSAL
Clifford R WhobreyBrazilOnyama Limba NEW
Ashley A DoeAustraliaAmy Elsner QUALIFIED
Salvatore L StensethItalyBernardo Dominic QUALIFIED
Rodrigues J OldroydAustraliaAsiya Javayant PROPOSAL
Murillo C BologniaUnited KingdomAsiya Javayant NEGOTIATION
Sinclair N MacleadArgentinaAnna Fali UNQUALIFIED
Ivar M PerinFranceIvan Magalhaes PROPOSAL
Wickens B MorascaUnited KingdomIvan Magalhaes NEW
Juan A WaycottJapanOnyama Limba NEW
Mayumi W TollnerJapanElwin Sharvill QUALIFIED
Morrow D RulapaughBrazilAmy Elsner PROPOSAL
Julie J TollnerJapanAnna Fali NEGOTIATION
Wickens G PaprockiIndiaAnna Fali NEGOTIATION
Juan L FlosiUnited KingdomOnyama Limba NEGOTIATION
Morrow W WhobreyAustraliaAnna Fali RENEWAL
Alejandro F InouyeAustraliaAmy Elsner NEW
Morrow O MaletArgentinaXuxue Feng QUALIFIED
Juan L DarakjyAustraliaStephen Shaw UNQUALIFIED
Aditya Z MacleadFranceXuxue Feng NEW
Aruna K ButtArgentinaBernardo Dominic NEGOTIATION
Jennifer X RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas R FollerGermanyIvan Magalhaes PROPOSAL
Mayumi W RutaCanadaIvan Magalhaes RENEWAL
Tony R CampainSpainOnyama Limba UNQUALIFIED
Maisha O PerinArgentinaBernardo Dominic PROPOSAL
Kadeem T ShinkoFranceAsiya Javayant NEW
Jeanfrancois J OldroydSpainIvan Magalhaes QUALIFIED

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