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
Ivar T TollnerGermanyOnyama Limba PROPOSAL
Jefferson Z GillianGermanyIvan Magalhaes QUALIFIED
Johnson Q DoeCanadaIvan Magalhaes PROPOSAL
Ivar I MaletJapanIoni Bowcher PROPOSAL
Smith Y MaletItalyIoni Bowcher PROPOSAL
Wickens W DarakjyJapanAnna Fali NEGOTIATION
Ivar U MacleadUnited KingdomStephen Shaw UNQUALIFIED
Cody L KolmetzUnited KingdomXuxue Feng PROPOSAL
Faith W RutaGermanyXuxue Feng RENEWAL
Stacey Z GlickRussiaAsiya Javayant QUALIFIED
Juan X GarufiCanadaIvan Magalhaes NEGOTIATION
David V GlickBrazilElwin Sharvill NEW
Tony J SergiGermanyIvan Magalhaes NEGOTIATION
Maisha I FigeroaRussiaAmy Elsner NEW
Ricardo T StensethIndiaStephen Shaw NEGOTIATION
Aika I GarufiItalyAmy Elsner QUALIFIED
Francesco P MacleadItalyElwin Sharvill NEGOTIATION
James I FigeroaBrazilStephen Shaw NEGOTIATION
Nicolas S BologniaIndiaAsiya Javayant QUALIFIED
Mujtaba V RulapaughCanadaIoni Bowcher NEW
Octavia J FigeroaSpainIoni Bowcher QUALIFIED
Emily B VenereCanadaAnna Fali UNQUALIFIED
Faith B OldroydBrazilElwin Sharvill UNQUALIFIED
Tony Y KuskoJapanXuxue Feng NEGOTIATION
Aditya H SlusarskiSpainAnna Fali NEW
Aruna Y VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Costa C DilliardGermanyIoni Bowcher UNQUALIFIED
Maria L KolmetzUnited KingdomStephen Shaw NEW
Aika D MacleadAustraliaAsiya Javayant UNQUALIFIED
Jennifer I CaldareraFranceAsiya Javayant NEW
Clifford K RoysterArgentinaStephen Shaw UNQUALIFIED
Darci D PoquetteJapanIvan Magalhaes NEW
Munro B SaylorsCanadaAmy Elsner NEW
Smith Q WieserGermanyOnyama Limba NEGOTIATION
Aditya O NickaJapanAsiya Javayant QUALIFIED
Munro G RimItalyElwin Sharvill QUALIFIED
Kaitlin R MacleadJapanBernardo Dominic NEW
Smith S DilliardRussiaStephen Shaw NEGOTIATION
Ivar U GarufiFranceAmy Elsner NEGOTIATION
Octavia L SchemmerCanadaOnyama Limba NEW
Costa F TollnerIndiaIvan Magalhaes NEGOTIATION
Julie D NickaCanadaOnyama Limba PROPOSAL
Faith M OstroskyFranceOnyama Limba QUALIFIED
Mayumi I DoeBrazilIoni Bowcher RENEWAL
Emily J NickaArgentinaOnyama Limba NEW
Kaitlin C PaprockiArgentinaAnna Fali UNQUALIFIED
Ivar Y MorascaAustraliaBernardo Dominic UNQUALIFIED
Murillo O GlickSpainXuxue Feng NEGOTIATION
Darci W TollnerSpainIoni Bowcher PROPOSAL
Deepesh I CampainGermanyAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones G DoeSpainIoni Bowcher NEW
Isabel R PaprockiCanadaAnna Fali RENEWAL
Claire Y GarufiIndiaStephen Shaw RENEWAL
Silvio O FerenczItalyXuxue Feng NEW
Mayumi R TollnerAustraliaAnna Fali QUALIFIED
Jones C RoysterArgentinaAsiya Javayant UNQUALIFIED
Leon H VocelkaSpainAmy Elsner NEW
Leon Z RimIndiaAnna Fali QUALIFIED
Wickens X SchemmerJapanAmy Elsner QUALIFIED
Ashley T CaudyIndiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio O StensethUnited Kingdom2024-04-23Rousseaux, Michael Esq PROPOSAL34Xuxue Feng
1001Ashley M SchemmerBrazil2024-04-03Chanay, Jeffrey A Esq NEW66Anna Fali
1002Jennifer A WhobreyRussia2024-04-23Rousseaux, Michael Esq NEW95Stephen Shaw
1003Maisha B NickaFrance2024-04-11Truhlar And Truhlar Attys NEW11Bernardo Dominic
1004Greenwood T FollerIndia2024-04-13Chemel, James L Cpa PROPOSAL89Bernardo Dominic
1005Faith O StockhamIndia2024-04-14Buckley Miller Wright QUALIFIED2Asiya Javayant
1006Ivar H RimIndia2024-04-12Benton, John B Jr NEW65Amy Elsner
1007Mujtaba E AlbaresItaly2024-04-16King, Christopher A Esq PROPOSAL94Stephen Shaw
1008Ivar E SergiJapan2024-04-22Chapman, Ross E Esq PROPOSAL26Onyama Limba
1009Mayumi U InouyeRussia2024-04-10Commercial Press RENEWAL3Ioni Bowcher
1010Francesco U RimRussia2024-04-25Dorl, James J Esq RENEWAL59Ivan Magalhaes
1011Stacey O VocelkaGermany2024-04-08Benton, John B Jr NEGOTIATION66Xuxue Feng
1012Chavez A DarakjyArgentina2024-04-25King, Christopher A Esq NEW45Bernardo Dominic
1013Darci R ButtGermany2024-04-03Truhlar And Truhlar Attys UNQUALIFIED45Anna Fali
1014Chavez W VocelkaItaly2024-04-23Feiner Bros NEW14Stephen Shaw
1015Arvin S NestleCanada2024-04-08Rousseaux, Michael Esq UNQUALIFIED90Bernardo Dominic
1016Juan J RutaArgentina2024-04-10Chanay, Jeffrey A Esq QUALIFIED75Asiya Javayant
1017Juan U DoeBrazil2024-04-01Rousseaux, Michael Esq PROPOSAL40Anna Fali
1018Deepesh B BriddickSpain2024-03-29Chapman, Ross E Esq RENEWAL81Ivan Magalhaes
1019Aditya K TollnerJapan2024-04-22Chapman, Ross E Esq RENEWAL64Elwin Sharvill
1020Jones T CaldareraBrazil2024-04-09Commercial Press UNQUALIFIED19Onyama Limba
1021Adams T NickaBrazil2024-04-18Rousseaux, Michael Esq PROPOSAL75Asiya Javayant
1022Stacey T InouyeBrazil2024-03-27Chapman, Ross E Esq QUALIFIED10Bernardo Dominic
1023Ivar Z WieserItaly2024-04-20Printing Dimensions NEGOTIATION42Onyama Limba
1024Rodrigues L ButtCanada2024-03-29Feltz Printing Service UNQUALIFIED59Xuxue Feng
1025Sinclair X StensethJapan2024-04-02Dorl, James J Esq NEW99Asiya Javayant
1026Ivar V VenereAustralia2024-04-25Chanay, Jeffrey A Esq QUALIFIED10Asiya Javayant
1027Emily U AlbaresIndia2024-04-13Benton, John B Jr PROPOSAL80Ioni Bowcher
1028Maisha G DarakjyJapan2024-04-25Truhlar And Truhlar Attys PROPOSAL83Asiya Javayant
1029Mujtaba C MaletIndia2024-04-07Feltz Printing Service RENEWAL41Onyama Limba
1030Juan C FigeroaBrazil2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED15Bernardo Dominic
1031Ricardo O TollnerGermany2024-04-21King, Christopher A Esq UNQUALIFIED86Onyama Limba
1032Darci S InouyeArgentina2024-04-22Rousseaux, Michael Esq QUALIFIED57Bernardo Dominic
1033Antonio K RoysterCanada2024-04-18Truhlar And Truhlar Attys RENEWAL89Ioni Bowcher
1034Izzy Q BologniaCanada2024-04-16Benton, John B Jr PROPOSAL35Asiya Javayant
1035Antonio Q KuskoGermany2024-03-30Chemel, James L Cpa UNQUALIFIED61Bernardo Dominic
1036Maria Z RulapaughSpain2024-03-27Feiner Bros UNQUALIFIED88Bernardo Dominic
1037Darci A RoysterArgentina2024-04-21Rangoni Of Florence UNQUALIFIED4Anna Fali
1038Claire Z IturbideUnited Kingdom2024-04-22Benton, John B Jr RENEWAL59Ivan Magalhaes
1039Munro D PerinBrazil2024-04-04King, Christopher A Esq UNQUALIFIED6Elwin Sharvill
1040Ivar E OstroskyUnited Kingdom2024-04-05Buckley Miller Wright PROPOSAL42Ioni Bowcher
1041Tony R OstroskySpain2024-04-14Buckley Miller Wright NEGOTIATION44Bernardo Dominic
1042Jennifer P SergiJapan2024-04-18Chanay, Jeffrey A Esq NEGOTIATION78Ivan Magalhaes
1043Silvio F VenereGermany2024-04-13Commercial Press NEGOTIATION34Ioni Bowcher
1044Mujtaba S ShinkoFrance2024-04-06Feltz Printing Service NEGOTIATION22Stephen Shaw
1045Aruna U SchemmerUnited Kingdom2024-04-17Truhlar And Truhlar Attys PROPOSAL84Asiya Javayant
1046Kadeem W TollnerFrance2024-03-29Benton, John B Jr NEW23Anna Fali
1047Clifford N RulapaughItaly2024-04-06Rousseaux, Michael Esq NEW24Amy Elsner
1048Arvin K BowleyFrance2024-04-06Buckley Miller Wright PROPOSAL98Bernardo Dominic
1049Misaki Q FollerBrazil2024-04-08Chapman, Ross E Esq PROPOSAL59Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley E WieserGermanyElwin Sharvill PROPOSAL
Kaitlin G GlickItalyAnna Fali QUALIFIED
Juan E CaudyCanadaXuxue Feng PROPOSAL
Tony P GillianFranceStephen Shaw RENEWAL
Aika N StockhamJapanElwin Sharvill UNQUALIFIED
Kaitlin S AmigonUnited KingdomXuxue Feng RENEWAL
Leon P MarrierUnited KingdomIoni Bowcher PROPOSAL
Greenwood U TollnerBrazilXuxue Feng QUALIFIED
Stacey T SergiArgentinaIoni Bowcher PROPOSAL
Jones Z InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Aika Q FlosiCanadaAnna Fali PROPOSAL
Aditya B WieserIndiaElwin Sharvill NEW
Juan Y CaudyFranceOnyama Limba QUALIFIED
Kadeem A SergiFranceXuxue Feng NEW
Francesco A SaylorsJapanIvan Magalhaes UNQUALIFIED
Julie O SchemmerFranceXuxue Feng RENEWAL
Salvatore W DilliardUnited KingdomStephen Shaw NEGOTIATION
Maria S WhobreyBrazilAnna Fali RENEWAL
Costa Y VenereCanadaIoni Bowcher RENEWAL
Jeanfrancois V SergiArgentinaElwin Sharvill NEGOTIATION
Silvio P MaletCanadaStephen Shaw NEGOTIATION
Cody G BowleyItalyOnyama Limba QUALIFIED
Cody R GlickAustraliaStephen Shaw RENEWAL
Clifford H FlosiJapanAmy Elsner UNQUALIFIED
Silvio I BologniaJapanAsiya Javayant NEW
Rodrigues M GlickCanadaAsiya Javayant PROPOSAL
Aditya O SergiGermanyXuxue Feng NEGOTIATION
Faith F KuskoItalyBernardo Dominic NEW
Octavia F NestleUnited KingdomElwin Sharvill RENEWAL
Greenwood Q InouyeIndiaBernardo Dominic PROPOSAL
Ricardo W StockhamAustraliaAnna Fali PROPOSAL
Kadeem U MacleadItalyXuxue Feng PROPOSAL
Morrow H AlbaresFranceAnna Fali UNQUALIFIED
Julie N FigeroaAustraliaAnna Fali UNQUALIFIED
Costa G BowleyJapanIoni Bowcher NEW
Sinclair C WaycottCanadaStephen Shaw UNQUALIFIED
Arvin V OstroskyIndiaAmy Elsner NEGOTIATION
Leon X GarufiFranceStephen Shaw RENEWAL
David F MorascaBrazilElwin Sharvill RENEWAL
Julie J VenereUnited KingdomIoni Bowcher RENEWAL
Juan R KolmetzCanadaIvan Magalhaes NEGOTIATION
Maria F RutaAustraliaElwin Sharvill QUALIFIED
Jones H InouyeSpainStephen Shaw RENEWAL
Francesco X AmigonArgentinaOnyama Limba RENEWAL
Aditya U PoquetteUnited KingdomElwin Sharvill NEW
Chavez Q DarakjyJapanElwin Sharvill RENEWAL
Claire E KolmetzBrazilXuxue Feng NEW
Adams J RoysterFranceIoni Bowcher RENEWAL
Francesco Q SlusarskiIndiaBernardo Dominic NEW
Leon D ChuiJapanIvan Magalhaes RENEWAL
Frozen Columns
Name
Salvatore N Butt
Adams L Maclead
Juan N Ostrosky
Misaki T Briddick
Nicolas R Stockham
Salvatore Q Inouye
Costa B Tollner
Jennifer Z Briddick
Greenwood T Waycott
Adams F Butt
Maisha C Marrier
Ricardo S Bolognia
Mujtaba J Malet
Emily K Paprocki
Greenwood V Albares
Silvio A Slusarski
Aika M Shinko
Rodrigues B Doe
Salvatore C Glick
Smith D Malet
Misaki X Kusko
Stacey Y Royster
Silvio P Paprocki
Jefferson S Nicka
Jones H Kusko
Isabel O Marrier
Jennifer F Marrier
Emily O Glick
Silvio P Doe
Tony B Caudy
Ricardo E Slusarski
Jefferson V Gillian
Munro F Gillian
Francesco O Chui
Silvio D Bolognia
James W Bowley
Jennifer L Shinko
Leon I Shinko
Adams D Tollner
Darci H Rim
Aruna P Maclead
Juan A Glick
Mujtaba L Marrier
Kadeem T Butt
Jeanfrancois F Kusko
Antonio R Caudy
Ivar E Royster
Aika S Stockham
Greenwood P Gaucho
Misaki U Rim
IdCountryDate
1000Brazil2024-03-29
1001Australia2024-04-04
1002France2024-04-22
1003United Kingdom2024-04-21
1004India2024-03-27
1005India2024-04-10
1006Japan2024-04-23
1007Italy2024-04-17
1008Germany2024-03-27
1009India2024-03-29
1010Italy2024-03-28
1011Russia2024-04-21
1012Germany2024-04-19
1013Germany2024-04-15
1014Canada2024-04-04
1015India2024-04-12
1016Canada2024-03-31
1017Russia2024-04-07
1018Italy2024-04-12
1019Spain2024-04-20
1020France2024-04-13
1021United Kingdom2024-04-24
1022Spain2024-04-15
1023Spain2024-04-21
1024Argentina2024-04-06
1025France2024-04-10
1026Brazil2024-04-13
1027Italy2024-04-05
1028United Kingdom2024-03-27
1029Germany2024-04-03
1030Russia2024-04-01
1031Italy2024-04-05
1032Italy2024-04-24
1033Argentina2024-04-19
1034Russia2024-04-13
1035Russia2024-04-02
1036India2024-04-08
1037Japan2024-03-27
1038Argentina2024-04-23
1039Russia2024-04-05
1040Canada2024-04-19
1041Germany2024-04-05
1042United Kingdom2024-04-18
1043United Kingdom2024-04-23
1044United Kingdom2024-04-24
1045India2024-04-21
1046Germany2024-04-09
1047Canada2024-04-16
1048Brazil2024-04-09
1049Russia2024-04-10

On-Demand Data

NameIdCountryDate
Jennifer W Ruta1000Argentina2024-04-02
Misaki R Oldroyd1001Russia2024-04-18
Costa Q Chui1002India2024-04-04
Ivar A Ruta1003Italy2024-04-06
Maisha T Campain1004France2024-04-08
Misaki F Tollner1005Italy2024-04-12
Jeanfrancois T Stockham1006France2024-04-19
Mayumi U Nicka1007United Kingdom2024-04-06
Munro X Malet1008India2024-04-25
Jennifer I Gaucho1009Germany2024-04-18
Darci K Shinko1010India2024-04-19
Aika F Poquette1011Spain2024-04-15
Costa A Campain1012Japan2024-04-02
Francesco G Perin1013Japan2024-04-25
Murillo H Malet1014Australia2024-03-28
Kadeem E Gaucho1015Brazil2024-04-13
Ricardo F Sergi1016Italy2024-03-27
Sinclair P Chui1017Argentina2024-04-02
Greenwood M Briddick1018United Kingdom2024-03-27
Nicolas G Ruta1019Australia2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio N InouyeIndiaXuxue Feng NEGOTIATION
Mayumi O NickaGermanyAmy Elsner PROPOSAL
Greenwood Y MarrierAustraliaIvan Magalhaes RENEWAL
Isabel A VenereIndiaXuxue Feng RENEWAL
Ricardo T BriddickJapanStephen Shaw NEW
Chavez W InouyeGermanyIvan Magalhaes UNQUALIFIED
Leja I PoquetteGermanyStephen Shaw RENEWAL
Ashley T NestleRussiaBernardo Dominic NEGOTIATION
Nicolas J MaletCanadaIvan Magalhaes RENEWAL
Sinclair C SlusarskiAustraliaOnyama Limba NEW
Sinclair U MorascaRussiaAsiya Javayant PROPOSAL
Chavez B ChuiGermanyOnyama Limba RENEWAL
Aika V GauchoCanadaStephen Shaw PROPOSAL
Aditya O FlosiArgentinaStephen Shaw UNQUALIFIED
Silvio R StensethItalyBernardo Dominic NEW
James B SlusarskiRussiaElwin Sharvill UNQUALIFIED
David I RulapaughArgentinaIvan Magalhaes PROPOSAL
Mayumi W NestleRussiaElwin Sharvill RENEWAL
Kadeem R SchemmerItalyAsiya Javayant NEW
Antonio Z GauchoFranceAmy Elsner RENEWAL
Stacey O KolmetzBrazilIoni Bowcher PROPOSAL
Salvatore D VenereIndiaAmy Elsner NEW
Wickens M WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Deepesh X GillianAustraliaBernardo Dominic NEW
Jeanfrancois P MarrierCanadaAmy Elsner PROPOSAL
Isabel P RoysterUnited KingdomElwin Sharvill NEGOTIATION
Ashley B VocelkaSpainAnna Fali NEW
Sinclair W StockhamRussiaXuxue Feng UNQUALIFIED
Munro O CampainAustraliaStephen Shaw PROPOSAL
Maria J CampainRussiaXuxue Feng PROPOSAL
Chavez M CaudyGermanyAmy Elsner PROPOSAL
Aditya S InouyeIndiaXuxue Feng RENEWAL
Arvin R GauchoJapanIoni Bowcher RENEWAL
Mayumi R FigeroaFranceElwin Sharvill QUALIFIED
Ricardo W RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Izzy U GarufiItalyStephen Shaw UNQUALIFIED
Jones V PoquetteGermanyAnna Fali QUALIFIED
Mujtaba G NestleUnited KingdomAsiya Javayant QUALIFIED
Aika C MorascaItalyAsiya Javayant NEW
Aika U CampainBrazilElwin Sharvill 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>