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
Morrow E FerenczGermanyStephen Shaw PROPOSAL
Jones S RutaBrazilElwin Sharvill NEW
Smith S BologniaIndiaIoni Bowcher NEW
Mayumi O GillianAustraliaElwin Sharvill PROPOSAL
Cody V RulapaughRussiaAnna Fali NEGOTIATION
Ashley E MaletJapanElwin Sharvill QUALIFIED
Johnson O RutaArgentinaXuxue Feng QUALIFIED
Jeanfrancois U MarrierGermanyStephen Shaw UNQUALIFIED
Julie O CaudyUnited KingdomIvan Magalhaes NEW
Ricardo X AmigonCanadaIoni Bowcher RENEWAL
Aika Y WaycottAustraliaOnyama Limba RENEWAL
Misaki S WhobreyJapanAmy Elsner NEW
Greenwood I TollnerAustraliaIoni Bowcher NEGOTIATION
Costa C GarufiItalyXuxue Feng NEGOTIATION
Ivar G StockhamSpainIoni Bowcher PROPOSAL
Silvio V OldroydJapanXuxue Feng NEW
Tony D AmigonSpainBernardo Dominic RENEWAL
Costa N BriddickCanadaBernardo Dominic RENEWAL
Maria P RimSpainBernardo Dominic PROPOSAL
Jennifer M OstroskyArgentinaIvan Magalhaes NEW
Jennifer A DilliardJapanIvan Magalhaes QUALIFIED
James W RutaGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois L MorascaCanadaOnyama Limba NEW
Chavez U PerinSpainIoni Bowcher UNQUALIFIED
Alejandro P GauchoRussiaBernardo Dominic NEGOTIATION
Maria R GillianCanadaBernardo Dominic PROPOSAL
Smith Q ChuiSpainIvan Magalhaes RENEWAL
Silvio F NickaFranceAsiya Javayant NEGOTIATION
Jefferson P RutaRussiaIvan Magalhaes PROPOSAL
Ashley Y SaylorsItalyStephen Shaw NEGOTIATION
James Y MacleadFranceIoni Bowcher UNQUALIFIED
Kadeem W NestleArgentinaStephen Shaw QUALIFIED
Clifford Y WaycottGermanyOnyama Limba NEW
Chavez R WhobreyItalyAnna Fali UNQUALIFIED
Mujtaba D GauchoSpainAsiya Javayant NEGOTIATION
Juan O MaletArgentinaElwin Sharvill QUALIFIED
Alejandro Q PaprockiCanadaAmy Elsner RENEWAL
Maria U DarakjyJapanAmy Elsner RENEWAL
Wickens M GarufiBrazilAsiya Javayant UNQUALIFIED
Maria R SaylorsIndiaStephen Shaw RENEWAL
Jennifer V TollnerIndiaElwin Sharvill NEGOTIATION
Jefferson G KolmetzArgentinaAmy Elsner NEW
Maria K KolmetzIndiaIoni Bowcher NEGOTIATION
Jefferson C BriddickArgentinaIoni Bowcher NEW
Stacey L KuskoBrazilBernardo Dominic UNQUALIFIED
Murillo R CaldareraAustraliaAsiya Javayant NEW
Isabel K ChuiRussiaElwin Sharvill RENEWAL
James K DilliardJapanIoni Bowcher NEGOTIATION
Faith U BowleyCanadaOnyama Limba NEW
Murillo H ChuiFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Arvin D CampainIndiaIvan Magalhaes PROPOSAL
Juan J StensethSpainOnyama Limba QUALIFIED
Misaki L OstroskyArgentinaStephen Shaw RENEWAL
Adams B KuskoJapanIvan Magalhaes RENEWAL
Jefferson F CaldareraUnited KingdomBernardo Dominic RENEWAL
Murillo O BowleyArgentinaStephen Shaw UNQUALIFIED
Ricardo X NestleIndiaElwin Sharvill PROPOSAL
Wickens L BowleyArgentinaIvan Magalhaes RENEWAL
Salvatore A NestleBrazilStephen Shaw RENEWAL
Greenwood X AlbaresUnited KingdomIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon K RulapaughSpain2024-04-15Chanay, Jeffrey A Esq NEGOTIATION79Bernardo Dominic
1001Izzy U BriddickCanada2024-04-26Morlong Associates PROPOSAL75Asiya Javayant
1002Izzy G FollerRussia2024-04-07Feltz Printing Service NEGOTIATION90Bernardo Dominic
1003Kadeem W FollerJapan2024-04-19Benton, John B Jr UNQUALIFIED62Onyama Limba
1004Silvio N FollerRussia2024-04-14Morlong Associates PROPOSAL59Anna Fali
1005Mayumi A WaycottFrance2024-04-02Rousseaux, Michael Esq UNQUALIFIED58Onyama Limba
1006Johnson H RulapaughArgentina2024-04-10Buckley Miller Wright NEW30Elwin Sharvill
1007Emily Z WieserIndia2024-04-15King, Christopher A Esq RENEWAL78Stephen Shaw
1008Julie E VenereBrazil2024-04-18Dorl, James J Esq PROPOSAL31Amy Elsner
1009Rodrigues L MacleadAustralia2024-04-22Dorl, James J Esq PROPOSAL10Asiya Javayant
1010Arvin L DarakjyUnited Kingdom2024-04-19Printing Dimensions UNQUALIFIED11Asiya Javayant
1011Ivar A DilliardArgentina2024-04-11Benton, John B Jr NEGOTIATION40Onyama Limba
1012Darci R MarrierRussia2024-04-26Morlong Associates RENEWAL80Elwin Sharvill
1013Ricardo L MarrierBrazil2024-04-04Morlong Associates QUALIFIED76Asiya Javayant
1014Adams H SergiFrance2024-04-16Benton, John B Jr NEW67Bernardo Dominic
1015Silvio X ButtRussia2024-03-28Dorl, James J Esq QUALIFIED46Ivan Magalhaes
1016Jones P BriddickJapan2024-04-18Truhlar And Truhlar Attys UNQUALIFIED14Ioni Bowcher
1017David N InouyeItaly2024-04-11Morlong Associates QUALIFIED73Bernardo Dominic
1018Deepesh K KuskoItaly2024-03-28Printing Dimensions NEW31Bernardo Dominic
1019Stacey I NestleAustralia2024-04-19Feltz Printing Service UNQUALIFIED29Asiya Javayant
1020Aruna Q DoeGermany2024-04-04Morlong Associates PROPOSAL13Ioni Bowcher
1021Jennifer Q ButtRussia2024-04-23Benton, John B Jr PROPOSAL86Xuxue Feng
1022Stacey H IturbideSpain2024-04-25Benton, John B Jr UNQUALIFIED48Ivan Magalhaes
1023Maria L AmigonSpain2024-04-16Printing Dimensions PROPOSAL25Anna Fali
1024Antonio I VenereJapan2024-04-26Commercial Press NEGOTIATION35Amy Elsner
1025Johnson U FlosiGermany2024-04-06Morlong Associates NEGOTIATION57Ivan Magalhaes
1026Maisha X RutaSpain2024-04-05Rousseaux, Michael Esq PROPOSAL17Anna Fali
1027Tony R KolmetzFrance2024-04-20Rousseaux, Michael Esq NEGOTIATION22Elwin Sharvill
1028Greenwood N FigeroaIndia2024-04-04Benton, John B Jr UNQUALIFIED32Amy Elsner
1029Misaki G RutaArgentina2024-04-03Feiner Bros NEW58Anna Fali
1030Aditya R OldroydItaly2024-04-26Chapman, Ross E Esq QUALIFIED40Stephen Shaw
1031Adams R BriddickBrazil2024-04-02Chapman, Ross E Esq NEW87Asiya Javayant
1032Faith N PaprockiGermany2024-04-15Chemel, James L Cpa NEW0Bernardo Dominic
1033Aruna I DarakjyGermany2024-04-18Chemel, James L Cpa NEW88Amy Elsner
1034Tony Y InouyeIndia2024-04-05Rousseaux, Michael Esq UNQUALIFIED6Xuxue Feng
1035Jones C CaldareraUnited Kingdom2024-04-13Rousseaux, Michael Esq UNQUALIFIED14Asiya Javayant
1036Antonio N MacleadBrazil2024-04-10Commercial Press UNQUALIFIED33Bernardo Dominic
1037Antonio I MacleadCanada2024-03-29Chanay, Jeffrey A Esq UNQUALIFIED90Anna Fali
1038Maisha H RimArgentina2024-04-07Buckley Miller Wright QUALIFIED40Xuxue Feng
1039Ricardo B FollerItaly2024-04-14Benton, John B Jr PROPOSAL6Asiya Javayant
1040Silvio Y KolmetzIndia2024-04-01King, Christopher A Esq NEW10Ivan Magalhaes
1041Alejandro S MaletFrance2024-04-11Feltz Printing Service NEW68Xuxue Feng
1042Aruna Q NickaAustralia2024-04-18King, Christopher A Esq RENEWAL11Anna Fali
1043Francesco V MacleadIndia2024-04-17Dorl, James J Esq PROPOSAL78Anna Fali
1044Leja Q OldroydUnited Kingdom2024-04-23Truhlar And Truhlar Attys NEW89Xuxue Feng
1045Rodrigues T FerenczUnited Kingdom2024-04-12Printing Dimensions UNQUALIFIED68Asiya Javayant
1046Leon B InouyeSpain2024-04-02King, Christopher A Esq NEGOTIATION24Ivan Magalhaes
1047Emily X RimAustralia2024-04-13Printing Dimensions UNQUALIFIED11Anna Fali
1048Mayumi Y WhobreyArgentina2024-04-01Commercial Press PROPOSAL27Xuxue Feng
1049Alejandro Y FollerUnited Kingdom2024-04-20Chemel, James L Cpa PROPOSAL69Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Cody X AmigonSpainAnna Fali NEGOTIATION
Wickens A AmigonRussiaAnna Fali QUALIFIED
Kaitlin V NestleBrazilIvan Magalhaes NEW
Tony Z CaudyItalyStephen Shaw NEGOTIATION
Greenwood F BologniaRussiaElwin Sharvill NEGOTIATION
Tony Z DarakjyItalyIoni Bowcher UNQUALIFIED
Clifford U BowleyIndiaXuxue Feng QUALIFIED
Julie Z FollerArgentinaAnna Fali PROPOSAL
Chavez Q TollnerBrazilOnyama Limba UNQUALIFIED
Jeanfrancois D RoysterRussiaAmy Elsner NEGOTIATION
Arvin R CaudyGermanyOnyama Limba RENEWAL
Julie G NickaArgentinaBernardo Dominic NEW
Mujtaba C ButtBrazilAsiya Javayant PROPOSAL
Emily F AlbaresSpainIoni Bowcher PROPOSAL
Darci Y WhobreySpainXuxue Feng PROPOSAL
Julie S DarakjyBrazilAsiya Javayant NEW
Sinclair Q InouyeItalyStephen Shaw UNQUALIFIED
Ivar P FigeroaItalyAnna Fali RENEWAL
Juan E WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Johnson S BowleyArgentinaStephen Shaw RENEWAL
Silvio A PaprockiGermanyIoni Bowcher RENEWAL
Octavia P SergiCanadaElwin Sharvill RENEWAL
Leja T InouyeItalyIvan Magalhaes NEW
Silvio K MaletBrazilElwin Sharvill NEGOTIATION
Antonio T IturbideAustraliaAnna Fali UNQUALIFIED
Jones M BowleyFranceIvan Magalhaes UNQUALIFIED
Mujtaba W SlusarskiArgentinaIoni Bowcher NEW
Clifford A StensethItalyElwin Sharvill NEGOTIATION
Maisha C CampainCanadaAnna Fali NEGOTIATION
Maisha Z PerinIndiaIvan Magalhaes UNQUALIFIED
Stacey Z DoeIndiaXuxue Feng QUALIFIED
James Y IturbideItalyBernardo Dominic UNQUALIFIED
Adams F GillianBrazilElwin Sharvill NEW
Nicolas O SchemmerJapanXuxue Feng NEGOTIATION
Costa M ChuiGermanyStephen Shaw QUALIFIED
Darci A ButtGermanyXuxue Feng PROPOSAL
Jennifer N IturbideRussiaAsiya Javayant UNQUALIFIED
Kadeem K IturbideFranceIoni Bowcher UNQUALIFIED
Morrow Z MacleadIndiaIvan Magalhaes NEW
Jeanfrancois M KuskoSpainIoni Bowcher QUALIFIED
Chavez T BologniaArgentinaElwin Sharvill NEGOTIATION
Emily I CaudyBrazilXuxue Feng PROPOSAL
Ivar V DarakjyGermanyAnna Fali RENEWAL
Aika X GarufiRussiaIoni Bowcher RENEWAL
Maisha W GarufiRussiaAsiya Javayant UNQUALIFIED
Silvio E WieserRussiaOnyama Limba QUALIFIED
Johnson F StensethJapanIvan Magalhaes QUALIFIED
Jones O GarufiRussiaAnna Fali NEGOTIATION
Antonio V WaycottJapanAmy Elsner UNQUALIFIED
Maria W CaudyGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Ricardo C Whobrey
Kadeem O Glick
Nicolas L Doe
Isabel P Iturbide
Antonio N Doe
Alejandro E Bolognia
Nicolas J Schemmer
Faith Q Malet
Smith R Venere
Arvin Y Flosi
Antonio M Briddick
Antonio K Bowley
Faith S Malet
Smith N Ruta
Aruna A Kolmetz
Costa C Saylors
Greenwood A Kusko
Kaitlin M Nestle
Wickens E Ferencz
Silvio K Saylors
Alejandro U Venere
Ivar H Kusko
Ivar P Inouye
Arvin G Rulapaugh
Murillo S Schemmer
Mujtaba N Schemmer
Leja C Sergi
Octavia O Tollner
Mayumi D Oldroyd
Ashley G Vocelka
Izzy R Ferencz
Wickens M Chui
Aditya H Inouye
Jennifer N Gillian
Maisha R Flosi
Ivar Z Poquette
Munro C Caudy
Aruna D Marrier
Aika D Kusko
Misaki Z Malet
Maria C Schemmer
Wickens C Venere
Wickens T Waycott
Sinclair Z Saylors
Darci Q Flosi
Chavez I Ostrosky
Clifford L Glick
Ivar W Darakjy
Francesco G Inouye
Juan H Foller
IdCountryDate
1000Germany2024-04-19
1001Argentina2024-03-28
1002India2024-04-20
1003France2024-04-16
1004Brazil2024-04-10
1005France2024-04-05
1006Argentina2024-04-05
1007Brazil2024-03-30
1008United Kingdom2024-04-06
1009Germany2024-03-28
1010United Kingdom2024-04-19
1011Brazil2024-04-21
1012Russia2024-04-12
1013France2024-04-24
1014France2024-04-26
1015Spain2024-04-09
1016Italy2024-04-17
1017India2024-04-03
1018Argentina2024-04-16
1019Spain2024-04-20
1020Argentina2024-04-11
1021India2024-04-08
1022Germany2024-04-11
1023France2024-04-14
1024Germany2024-04-08
1025Japan2024-04-20
1026Italy2024-04-18
1027Russia2024-04-08
1028Japan2024-04-01
1029United Kingdom2024-04-18
1030Spain2024-04-19
1031Spain2024-04-25
1032India2024-03-29
1033Australia2024-04-15
1034Brazil2024-04-09
1035United Kingdom2024-04-06
1036Brazil2024-04-17
1037India2024-04-08
1038France2024-04-01
1039France2024-04-12
1040Argentina2024-04-12
1041Argentina2024-04-17
1042India2024-04-15
1043Brazil2024-04-10
1044France2024-04-11
1045Italy2024-04-17
1046Italy2024-03-30
1047United Kingdom2024-03-28
1048India2024-04-11
1049India2024-04-20

On-Demand Data

NameIdCountryDate
Faith U Nicka1000Spain2024-04-17
Jeanfrancois R Royster1001Germany2024-03-31
Kadeem G Kusko1002Argentina2024-04-07
Salvatore N Nicka1003Russia2024-03-30
Aruna D Figeroa1004United Kingdom2024-04-26
Leja C Kolmetz1005Canada2024-04-23
Costa N Tollner1006Italy2024-04-03
Ricardo J Iturbide1007Australia2024-04-10
Aika S Rulapaugh1008Spain2024-04-14
Clifford A Malet1009Russia2024-04-07
Claire E Whobrey1010Germany2024-04-25
Mujtaba J Caldarera1011Japan2024-04-20
Jennifer I Albares1012India2024-04-25
Smith Q Kusko1013Argentina2024-04-16
Izzy N Gillian1014Australia2024-04-04
Nicolas Q Whobrey1015Japan2024-04-04
David I Royster1016Japan2024-04-06
Leon P Gaucho1017Russia2024-04-18
Stacey F Paprocki1018Italy2024-04-07
Darci J Malet1019Spain2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya T AmigonRussiaBernardo Dominic NEGOTIATION
Alejandro R VenereJapanElwin Sharvill QUALIFIED
Isabel Y PaprockiFranceElwin Sharvill NEW
Arvin V FigeroaJapanOnyama Limba NEGOTIATION
Alejandro H GarufiAustraliaOnyama Limba QUALIFIED
Jefferson H FigeroaIndiaElwin Sharvill RENEWAL
Misaki X VocelkaUnited KingdomBernardo Dominic RENEWAL
Morrow C TollnerRussiaAnna Fali UNQUALIFIED
Darci V StockhamItalyElwin Sharvill RENEWAL
Ashley A FigeroaCanadaIvan Magalhaes UNQUALIFIED
Ashley Z ButtArgentinaIoni Bowcher NEW
Emily O VocelkaCanadaOnyama Limba RENEWAL
Costa R StockhamGermanyAsiya Javayant QUALIFIED
Aika M AmigonBrazilXuxue Feng UNQUALIFIED
Stacey Z RimRussiaAnna Fali UNQUALIFIED
Clifford E SchemmerSpainStephen Shaw NEGOTIATION
Stacey R MorascaItalyOnyama Limba QUALIFIED
Faith P CaudyRussiaBernardo Dominic NEW
Mujtaba T MarrierUnited KingdomAsiya Javayant NEW
Ricardo S AlbaresBrazilAnna Fali UNQUALIFIED
Claire T CaudyRussiaIvan Magalhaes PROPOSAL
Silvio R InouyeUnited KingdomAmy Elsner PROPOSAL
Johnson O NickaFranceOnyama Limba NEW
Adams O StockhamItalyElwin Sharvill NEGOTIATION
Kaitlin L MaletIndiaElwin Sharvill QUALIFIED
Smith U ShinkoArgentinaIvan Magalhaes QUALIFIED
Juan T InouyeGermanyIvan Magalhaes UNQUALIFIED
Sinclair H TollnerArgentinaAsiya Javayant NEW
Mujtaba N WhobreyItalyOnyama Limba RENEWAL
Mujtaba U WhobreyFranceElwin Sharvill NEW
Adams K StockhamCanadaBernardo Dominic PROPOSAL
Aditya W NickaAustraliaElwin Sharvill PROPOSAL
Antonio C RutaGermanyAsiya Javayant QUALIFIED
Darci O MarrierUnited KingdomAmy Elsner NEW
Ashley J KuskoIndiaAnna Fali QUALIFIED
David D WieserJapanBernardo Dominic PROPOSAL
Munro O RulapaughSpainElwin Sharvill NEW
Chavez A ButtAustraliaStephen Shaw UNQUALIFIED
Aika N GillianItalyStephen Shaw UNQUALIFIED
Darci X GlickCanadaBernardo Dominic 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>