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
Izzy U RulapaughRussiaElwin Sharvill NEW
Maisha O BowleySpainAsiya Javayant RENEWAL
Mayumi S FollerCanadaOnyama Limba RENEWAL
Aika P PerinIndiaAsiya Javayant NEW
Leon Y KolmetzSpainIvan Magalhaes RENEWAL
Ashley Q OldroydUnited KingdomXuxue Feng RENEWAL
Sinclair F WieserBrazilOnyama Limba QUALIFIED
Wickens W WieserAustraliaXuxue Feng NEW
Francesco N IturbideItalyIoni Bowcher QUALIFIED
Sinclair E FlosiBrazilAsiya Javayant NEGOTIATION
Kadeem K MaletAustraliaIvan Magalhaes NEW
Kadeem F BriddickGermanyStephen Shaw QUALIFIED
Emily O RutaItalyElwin Sharvill RENEWAL
Mayumi N GlickAustraliaElwin Sharvill QUALIFIED
Aditya P RutaSpainAmy Elsner NEW
Aika F MorascaSpainXuxue Feng PROPOSAL
Mujtaba C SchemmerUnited KingdomXuxue Feng PROPOSAL
Deepesh Z OstroskyGermanyIvan Magalhaes RENEWAL
Jones Y MaletCanadaAmy Elsner NEGOTIATION
Faith Z CaldareraArgentinaXuxue Feng PROPOSAL
Silvio T RulapaughGermanyXuxue Feng RENEWAL
Silvio E DarakjyFranceIvan Magalhaes PROPOSAL
Francesco P MacleadBrazilIoni Bowcher NEGOTIATION
Adams Z GauchoCanadaStephen Shaw RENEWAL
Leon E DarakjyBrazilElwin Sharvill QUALIFIED
Mujtaba E AmigonBrazilIvan Magalhaes NEGOTIATION
Ricardo J TollnerCanadaAsiya Javayant NEGOTIATION
Kadeem D OldroydGermanyAsiya Javayant NEGOTIATION
Smith Q ShinkoRussiaOnyama Limba PROPOSAL
Ivar C MacleadUnited KingdomIvan Magalhaes RENEWAL
Stacey J KolmetzUnited KingdomXuxue Feng PROPOSAL
Chavez G StockhamGermanyElwin Sharvill QUALIFIED
Clifford S VocelkaFranceIoni Bowcher UNQUALIFIED
Wickens I DarakjyFranceAmy Elsner UNQUALIFIED
Wickens U BologniaAustraliaXuxue Feng RENEWAL
Nicolas I WaycottIndiaOnyama Limba QUALIFIED
Greenwood P KuskoFranceIvan Magalhaes RENEWAL
Jeanfrancois L WaycottBrazilAnna Fali PROPOSAL
David A CaldareraFranceBernardo Dominic UNQUALIFIED
Aruna S PoquetteSpainBernardo Dominic RENEWAL
Leon J KolmetzItalyAsiya Javayant UNQUALIFIED
Aruna W GauchoUnited KingdomStephen Shaw PROPOSAL
Ricardo C InouyeJapanAsiya Javayant RENEWAL
Ashley H CaldareraItalyAnna Fali RENEWAL
Francesco F CaldareraRussiaAnna Fali QUALIFIED
Sinclair G InouyeCanadaXuxue Feng QUALIFIED
Isabel I PerinBrazilOnyama Limba QUALIFIED
David F KuskoCanadaIvan Magalhaes RENEWAL
Aruna L RoysterUnited KingdomElwin Sharvill RENEWAL
Juan U FigeroaGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
James C FollerGermanyStephen Shaw UNQUALIFIED
Tony K ChuiArgentinaOnyama Limba NEGOTIATION
Kaitlin E WhobreyCanadaIvan Magalhaes NEGOTIATION
Jefferson D StensethSpainElwin Sharvill QUALIFIED
Ashley T WaycottFranceElwin Sharvill NEGOTIATION
Ricardo M CampainGermanyBernardo Dominic NEGOTIATION
Nicolas N StockhamGermanyIvan Magalhaes NEW
Sinclair L GauchoItalyAmy Elsner RENEWAL
Greenwood N KolmetzRussiaAnna Fali RENEWAL
Francesco Y StockhamItalyIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith P DarakjyCanada2024-04-23King, Christopher A Esq NEGOTIATION73Bernardo Dominic
1001Julie J OldroydUnited Kingdom2024-04-22Feltz Printing Service UNQUALIFIED90Elwin Sharvill
1002Wickens E IturbideUnited Kingdom2024-04-14Commercial Press RENEWAL0Ioni Bowcher
1003Arvin J ShinkoAustralia2024-04-15Chemel, James L Cpa QUALIFIED43Onyama Limba
1004Mujtaba H FlosiIndia2024-04-25Buckley Miller Wright NEGOTIATION16Xuxue Feng
1005Antonio E TollnerAustralia2024-04-21King, Christopher A Esq PROPOSAL83Anna Fali
1006Rodrigues N RutaItaly2024-04-18Truhlar And Truhlar Attys RENEWAL32Asiya Javayant
1007Chavez Q SlusarskiCanada2024-04-13King, Christopher A Esq PROPOSAL32Xuxue Feng
1008Chavez S PoquetteFrance2024-04-29Morlong Associates RENEWAL60Amy Elsner
1009Arvin K KuskoIndia2024-04-02King, Christopher A Esq RENEWAL43Onyama Limba
1010Silvio S MaletSpain2024-04-21Chapman, Ross E Esq UNQUALIFIED93Bernardo Dominic
1011Aruna P GauchoFrance2024-04-09Benton, John B Jr NEGOTIATION0Ivan Magalhaes
1012Faith L WaycottIndia2024-04-08Dorl, James J Esq NEW70Anna Fali
1013Deepesh J RimCanada2024-04-14Commercial Press NEW52Onyama Limba
1014Ricardo G GlickFrance2024-04-19Chapman, Ross E Esq NEGOTIATION79Asiya Javayant
1015Ashley H FigeroaItaly2024-04-11Chapman, Ross E Esq QUALIFIED22Amy Elsner
1016Ricardo P TollnerCanada2024-04-06Dorl, James J Esq QUALIFIED13Ioni Bowcher
1017Jennifer P RulapaughRussia2024-04-15Commercial Press NEW30Ioni Bowcher
1018Salvatore Y TollnerCanada2024-04-13King, Christopher A Esq UNQUALIFIED47Xuxue Feng
1019Adams W FigeroaArgentina2024-04-06Chemel, James L Cpa RENEWAL85Asiya Javayant
1020Costa T CaudyArgentina2024-04-25Dorl, James J Esq RENEWAL81Elwin Sharvill
1021Cody W SlusarskiRussia2024-04-15Chanay, Jeffrey A Esq NEGOTIATION87Elwin Sharvill
1022Morrow L OldroydItaly2024-04-17Truhlar And Truhlar Attys UNQUALIFIED93Elwin Sharvill
1023Izzy N ShinkoAustralia2024-04-02Printing Dimensions UNQUALIFIED49Ivan Magalhaes
1024Jones N MorascaRussia2024-04-29Commercial Press QUALIFIED1Bernardo Dominic
1025Munro T FollerArgentina2024-04-18Commercial Press RENEWAL86Anna Fali
1026Jefferson P BowleyCanada2024-04-06Rousseaux, Michael Esq RENEWAL72Ioni Bowcher
1027Faith J GauchoFrance2024-04-05King, Christopher A Esq RENEWAL37Bernardo Dominic
1028Ivar S OstroskyRussia2024-04-14Benton, John B Jr NEGOTIATION24Amy Elsner
1029Greenwood E StensethItaly2024-04-26Buckley Miller Wright QUALIFIED76Bernardo Dominic
1030David Y FlosiAustralia2024-04-13Chapman, Ross E Esq RENEWAL31Ioni Bowcher
1031Leon R MorascaAustralia2024-04-22King, Christopher A Esq NEW29Asiya Javayant
1032Cody R AmigonIndia2024-04-08Buckley Miller Wright QUALIFIED85Ioni Bowcher
1033Costa H MorascaItaly2024-04-29Morlong Associates NEGOTIATION10Anna Fali
1034Antonio G CaldareraSpain2024-04-25Buckley Miller Wright RENEWAL98Xuxue Feng
1035Mayumi V GlickGermany2024-04-11Chanay, Jeffrey A Esq QUALIFIED26Xuxue Feng
1036Claire Y CaudyBrazil2024-04-29Feltz Printing Service QUALIFIED13Amy Elsner
1037Ashley H SergiUnited Kingdom2024-04-08Dorl, James J Esq QUALIFIED49Ioni Bowcher
1038Aruna P GarufiRussia2024-04-03Rangoni Of Florence NEW66Bernardo Dominic
1039James C WhobreyJapan2024-04-21Rangoni Of Florence PROPOSAL18Amy Elsner
1040Claire I MaletSpain2024-04-11Rangoni Of Florence UNQUALIFIED92Bernardo Dominic
1041James W WhobreySpain2024-04-12Benton, John B Jr NEW77Asiya Javayant
1042Morrow Q NestleItaly2024-04-03Commercial Press NEW1Stephen Shaw
1043Cody V WaycottAustralia2024-04-26Morlong Associates NEGOTIATION61Stephen Shaw
1044Isabel J OstroskyUnited Kingdom2024-04-09Morlong Associates RENEWAL83Ivan Magalhaes
1045Johnson Y RimUnited Kingdom2024-04-16Dorl, James J Esq PROPOSAL68Ivan Magalhaes
1046Izzy G FlosiRussia2024-04-07Chanay, Jeffrey A Esq PROPOSAL5Stephen Shaw
1047Claire Z PoquetteFrance2024-04-26Rangoni Of Florence RENEWAL70Onyama Limba
1048Ricardo S NestleItaly2024-04-14Chemel, James L Cpa UNQUALIFIED44Ivan Magalhaes
1049Jefferson Z CaudyJapan2024-04-10Dorl, James J Esq QUALIFIED99Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams J CaudyUnited KingdomStephen Shaw QUALIFIED
Greenwood W GlickIndiaAmy Elsner QUALIFIED
James Q DarakjyBrazilBernardo Dominic UNQUALIFIED
Jefferson Q MorascaBrazilAmy Elsner RENEWAL
Francesco F FigeroaJapanOnyama Limba PROPOSAL
Misaki W DoeSpainAmy Elsner RENEWAL
Claire D GillianSpainElwin Sharvill NEW
Jones G NickaGermanyAnna Fali RENEWAL
Wickens A NestleRussiaBernardo Dominic NEW
Aruna I AmigonGermanyAmy Elsner PROPOSAL
Mujtaba A BriddickFranceAsiya Javayant NEGOTIATION
Mayumi E TollnerUnited KingdomXuxue Feng UNQUALIFIED
James K MaletBrazilIoni Bowcher PROPOSAL
Maria V BowleySpainElwin Sharvill NEW
Adams K NickaFranceAmy Elsner NEGOTIATION
Leja X MaletArgentinaIvan Magalhaes NEGOTIATION
Maisha O DilliardJapanElwin Sharvill PROPOSAL
Murillo X CaudyRussiaAnna Fali NEW
Mujtaba W NickaArgentinaElwin Sharvill UNQUALIFIED
Maisha S PerinUnited KingdomIoni Bowcher PROPOSAL
Izzy U GillianArgentinaElwin Sharvill NEGOTIATION
Aruna G MorascaArgentinaOnyama Limba RENEWAL
Smith L RoysterIndiaElwin Sharvill UNQUALIFIED
Jefferson X VocelkaBrazilBernardo Dominic PROPOSAL
James W MaletIndiaIoni Bowcher NEW
Aditya C RutaSpainXuxue Feng RENEWAL
Morrow L KuskoItalyAnna Fali PROPOSAL
Kadeem H ShinkoBrazilStephen Shaw NEW
Mujtaba A VocelkaSpainElwin Sharvill RENEWAL
Alejandro D ChuiIndiaAnna Fali NEW
Kaitlin Z OldroydUnited KingdomAmy Elsner RENEWAL
Maria T KolmetzBrazilAsiya Javayant UNQUALIFIED
Claire M NickaJapanIoni Bowcher PROPOSAL
Silvio M StensethGermanyAmy Elsner RENEWAL
Maisha D FigeroaRussiaAnna Fali NEW
Costa O FollerIndiaAnna Fali PROPOSAL
Ricardo F MarrierUnited KingdomXuxue Feng NEGOTIATION
Mayumi X NickaCanadaBernardo Dominic QUALIFIED
Smith N KuskoArgentinaBernardo Dominic NEW
Stacey C BriddickItalyOnyama Limba NEGOTIATION
Emily X FlosiJapanStephen Shaw QUALIFIED
Morrow H WhobreyBrazilIoni Bowcher QUALIFIED
Julie Z StockhamIndiaIoni Bowcher NEGOTIATION
James V RutaUnited KingdomIvan Magalhaes NEW
Nicolas Y NestleItalyAnna Fali RENEWAL
Maisha X SchemmerBrazilXuxue Feng PROPOSAL
Ivar X WaycottSpainAsiya Javayant PROPOSAL
Claire G WhobreyItalyIoni Bowcher NEGOTIATION
Mayumi E SergiFranceElwin Sharvill NEGOTIATION
Darci A KolmetzCanadaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Silvio K Caudy
Salvatore G Schemmer
Adams W Sergi
Nicolas X Ruta
Smith L Shinko
Clifford P Iturbide
Adams H Rim
Aruna O Iturbide
Jones B Flosi
Darci I Flosi
Nicolas I Inouye
Leon T Vocelka
Julie X Dilliard
Ricardo U Campain
Adams G Vocelka
Alejandro S Garufi
Wickens J Schemmer
Kadeem I Iturbide
Isabel J Poquette
Cody Z Caldarera
Aruna U Wieser
Mayumi V Wieser
Deepesh Q Oldroyd
Francesco M Morasca
Aruna M Saylors
Aika I Saylors
Kadeem C Waycott
Juan V Ruta
Izzy J Albares
Nicolas Y Saylors
Leja C Kusko
Juan R Iturbide
Juan W Gillian
Smith H Foller
Arvin Q Sergi
Aruna O Gillian
Kadeem G Waycott
Maria Q Gaucho
Antonio V Ruta
Clifford K Inouye
Jefferson Z Waycott
Tony K Ostrosky
Wickens W Chui
Murillo F Caldarera
Jennifer V Wieser
Octavia C Ferencz
Deepesh Z Vocelka
Morrow P Venere
Darci W Tollner
Leja E Morasca
IdCountryDate
1000United Kingdom2024-04-26
1001Russia2024-04-13
1002Spain2024-04-29
1003Russia2024-04-15
1004Germany2024-04-16
1005Brazil2024-03-31
1006Russia2024-03-31
1007United Kingdom2024-04-10
1008Australia2024-04-28
1009Canada2024-04-01
1010Japan2024-04-11
1011Spain2024-04-07
1012Germany2024-04-28
1013Japan2024-04-06
1014Italy2024-04-21
1015Italy2024-04-03
1016United Kingdom2024-04-23
1017Japan2024-03-31
1018United Kingdom2024-04-27
1019Spain2024-04-16
1020Italy2024-04-13
1021Japan2024-04-10
1022Germany2024-04-09
1023Argentina2024-04-20
1024Japan2024-04-07
1025Russia2024-04-07
1026Brazil2024-04-19
1027Germany2024-04-12
1028India2024-04-05
1029France2024-04-06
1030France2024-04-21
1031Germany2024-04-07
1032France2024-04-21
1033Italy2024-04-15
1034Germany2024-04-28
1035Brazil2024-04-03
1036Germany2024-04-21
1037Germany2024-04-23
1038Canada2024-04-15
1039Japan2024-04-12
1040United Kingdom2024-04-25
1041Japan2024-04-20
1042Australia2024-04-23
1043Argentina2024-04-16
1044Japan2024-04-09
1045Brazil2024-04-10
1046Germany2024-04-23
1047Australia2024-04-22
1048Canada2024-04-18
1049Argentina2024-04-13

On-Demand Data

NameIdCountryDate
Jennifer Y Wieser1000Japan2024-04-24
Adams F Poquette1001India2024-04-18
Cody O Poquette1002Canada2024-04-12
Maisha Y Ostrosky1003Russia2024-04-15
Darci T Figeroa1004Italy2024-04-14
Mujtaba R Oldroyd1005Spain2024-04-23
Salvatore M Figeroa1006Spain2024-04-24
Maisha X Gillian1007United Kingdom2024-04-18
Jones M Rulapaugh1008Germany2024-04-20
Izzy W Flosi1009United Kingdom2024-04-15
Nicolas P Inouye1010Brazil2024-04-27
Tony M Flosi1011Italy2024-04-11
Wickens B Ruta1012Germany2024-04-22
Mujtaba Q Poquette1013Brazil2024-04-09
Chavez D Poquette1014India2024-04-19
Wickens Y Stenseth1015India2024-04-08
Greenwood Y Tollner1016France2024-04-20
Maria Q Malet1017Brazil2024-04-17
Ivar I Marrier1018Japan2024-04-04
Aditya I Inouye1019India2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer C MaletSpainStephen Shaw NEGOTIATION
Clifford L SergiAustraliaAmy Elsner UNQUALIFIED
Isabel C KuskoArgentinaBernardo Dominic NEW
Leon Q BriddickRussiaBernardo Dominic NEGOTIATION
Julie K FigeroaBrazilAsiya Javayant NEW
Faith L CampainArgentinaAsiya Javayant PROPOSAL
Wickens E VenereAustraliaIoni Bowcher RENEWAL
Aika J WhobreySpainAmy Elsner NEGOTIATION
Jeanfrancois Y DoeUnited KingdomAsiya Javayant NEGOTIATION
Greenwood A MorascaArgentinaIvan Magalhaes RENEWAL
Ashley C PerinFranceAsiya Javayant NEW
Jefferson G IturbideIndiaXuxue Feng QUALIFIED
Octavia M BowleyItalyBernardo Dominic NEW
Smith W DoeUnited KingdomIvan Magalhaes QUALIFIED
Murillo C KolmetzArgentinaIoni Bowcher NEGOTIATION
James K MarrierItalyElwin Sharvill NEW
Adams K WieserRussiaAsiya Javayant UNQUALIFIED
Kaitlin K SchemmerArgentinaAnna Fali UNQUALIFIED
Juan R FigeroaArgentinaElwin Sharvill NEGOTIATION
Mayumi S MarrierItalyIvan Magalhaes NEW
Izzy T SergiJapanIvan Magalhaes PROPOSAL
Mayumi P VenereCanadaAnna Fali NEW
Antonio R SlusarskiArgentinaStephen Shaw PROPOSAL
Johnson S BowleyUnited KingdomIvan Magalhaes QUALIFIED
Murillo Q DoeRussiaAmy Elsner NEGOTIATION
Salvatore A CaldareraFranceIvan Magalhaes QUALIFIED
Clifford A OstroskySpainElwin Sharvill NEW
Wickens K ButtItalyBernardo Dominic UNQUALIFIED
Darci H FerenczRussiaElwin Sharvill QUALIFIED
Stacey L WieserUnited KingdomStephen Shaw RENEWAL
Johnson J DarakjyFranceAmy Elsner QUALIFIED
Leon L IturbideIndiaOnyama Limba UNQUALIFIED
Ricardo G VocelkaCanadaIoni Bowcher RENEWAL
Stacey F OldroydFranceElwin Sharvill NEGOTIATION
Aditya Z CampainItalyElwin Sharvill PROPOSAL
Kadeem L WhobreyGermanyIvan Magalhaes RENEWAL
Morrow A NickaIndiaAmy Elsner NEGOTIATION
Misaki V CaudyJapanXuxue Feng UNQUALIFIED
David Y MorascaCanadaAnna Fali RENEWAL
Deepesh N NestleIndiaIvan Magalhaes NEGOTIATION

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