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
Antonio B MorascaAustraliaAmy Elsner NEGOTIATION
Leon N DarakjyFranceAnna Fali PROPOSAL
Jennifer V SchemmerFranceAsiya Javayant NEW
Maisha M GarufiAustraliaAmy Elsner QUALIFIED
Misaki J CaudySpainOnyama Limba PROPOSAL
David B PaprockiUnited KingdomStephen Shaw PROPOSAL
Juan D SergiArgentinaStephen Shaw QUALIFIED
Claire M ShinkoRussiaAnna Fali UNQUALIFIED
Izzy N SchemmerItalyXuxue Feng NEW
Misaki L FollerIndiaIoni Bowcher PROPOSAL
Aditya Y NestleRussiaIvan Magalhaes RENEWAL
Julie A RulapaughFranceXuxue Feng UNQUALIFIED
Francesco G CampainFranceBernardo Dominic NEW
Arvin F BowleyIndiaIoni Bowcher UNQUALIFIED
Kaitlin Z WaycottIndiaIoni Bowcher UNQUALIFIED
Johnson Z PerinUnited KingdomStephen Shaw QUALIFIED
Adams Q VocelkaFranceElwin Sharvill NEGOTIATION
Chavez F MaletItalyAnna Fali NEGOTIATION
Salvatore L OldroydIndiaStephen Shaw NEW
Sinclair U SergiIndiaAmy Elsner PROPOSAL
Greenwood N PerinIndiaElwin Sharvill NEW
Morrow R TollnerItalyElwin Sharvill QUALIFIED
Ivar A InouyeArgentinaAsiya Javayant NEW
Maria H FigeroaIndiaIoni Bowcher PROPOSAL
Antonio Y FigeroaRussiaAnna Fali QUALIFIED
Mujtaba N WhobreyCanadaAmy Elsner QUALIFIED
Antonio U ChuiCanadaAmy Elsner NEGOTIATION
Greenwood Z AlbaresBrazilElwin Sharvill QUALIFIED
Octavia M GauchoRussiaStephen Shaw QUALIFIED
Faith Z FollerArgentinaOnyama Limba NEGOTIATION
Jennifer B MacleadIndiaIoni Bowcher PROPOSAL
Greenwood H FigeroaArgentinaXuxue Feng UNQUALIFIED
Rodrigues Z ShinkoUnited KingdomOnyama Limba PROPOSAL
Smith X FlosiIndiaXuxue Feng NEW
Emily P MaletJapanXuxue Feng NEGOTIATION
Maisha Z VenereRussiaIoni Bowcher NEGOTIATION
Kaitlin D FigeroaItalyXuxue Feng NEW
Francesco L MaletArgentinaOnyama Limba QUALIFIED
Kadeem K WaycottIndiaXuxue Feng PROPOSAL
Darci B RoysterRussiaAsiya Javayant UNQUALIFIED
Darci V SchemmerIndiaAnna Fali UNQUALIFIED
Tony T WieserAustraliaAmy Elsner PROPOSAL
Julie Y PerinBrazilIvan Magalhaes PROPOSAL
Nicolas C PaprockiRussiaElwin Sharvill UNQUALIFIED
Silvio N SchemmerItalyIvan Magalhaes RENEWAL
Munro F SlusarskiCanadaXuxue Feng UNQUALIFIED
Francesco Y BologniaRussiaXuxue Feng UNQUALIFIED
Silvio E RulapaughArgentinaXuxue Feng NEGOTIATION
David W NickaRussiaIoni Bowcher QUALIFIED
Salvatore Q KolmetzUnited KingdomAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel K InouyeFranceAnna Fali NEW
James I MacleadGermanyBernardo Dominic RENEWAL
Faith B MarrierCanadaBernardo Dominic PROPOSAL
Ivar C WaycottCanadaBernardo Dominic PROPOSAL
Chavez T PoquetteRussiaStephen Shaw UNQUALIFIED
Adams O ButtItalyAnna Fali NEGOTIATION
Emily S MaletBrazilBernardo Dominic QUALIFIED
Jeanfrancois H OstroskyCanadaOnyama Limba NEGOTIATION
Arvin K SaylorsSpainBernardo Dominic QUALIFIED
Tony H VenereUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez O MacleadIndia2024-04-07Morlong Associates QUALIFIED32Elwin Sharvill
1001Rodrigues V RutaAustralia2024-04-13Truhlar And Truhlar Attys NEGOTIATION24Bernardo Dominic
1002Munro L MaletSpain2024-04-02Feiner Bros QUALIFIED60Asiya Javayant
1003Emily O VenereJapan2024-04-08Printing Dimensions NEW67Anna Fali
1004Darci J DarakjyFrance2024-04-22King, Christopher A Esq RENEWAL79Anna Fali
1005Clifford O VenereGermany2024-04-25Rousseaux, Michael Esq PROPOSAL62Ioni Bowcher
1006Jefferson I BowleyFrance2024-03-31King, Christopher A Esq NEW94Elwin Sharvill
1007Salvatore H MacleadRussia2024-04-24Feltz Printing Service NEW63Anna Fali
1008Silvio R MaletSpain2024-04-06Buckley Miller Wright NEGOTIATION19Amy Elsner
1009Salvatore K SergiBrazil2024-04-17Feiner Bros QUALIFIED76Amy Elsner
1010Jeanfrancois G PaprockiCanada2024-04-22Printing Dimensions RENEWAL41Asiya Javayant
1011Jeanfrancois S BologniaUnited Kingdom2024-04-18Morlong Associates PROPOSAL29Onyama Limba
1012Aika X ShinkoIndia2024-04-01Truhlar And Truhlar Attys PROPOSAL26Elwin Sharvill
1013Sinclair X FlosiGermany2024-03-31Dorl, James J Esq UNQUALIFIED64Anna Fali
1014Smith W MorascaRussia2024-04-17Commercial Press QUALIFIED76Asiya Javayant
1015Tony S VocelkaAustralia2024-03-31Buckley Miller Wright UNQUALIFIED69Anna Fali
1016Costa M ShinkoAustralia2024-04-03Feiner Bros RENEWAL52Onyama Limba
1017Faith O SlusarskiUnited Kingdom2024-04-20Rousseaux, Michael Esq PROPOSAL98Stephen Shaw
1018Sinclair M MaletSpain2024-04-26Feiner Bros PROPOSAL13Amy Elsner
1019Misaki L WhobreySpain2024-03-31Benton, John B Jr PROPOSAL33Bernardo Dominic
1020Jones J RoysterUnited Kingdom2024-04-10King, Christopher A Esq PROPOSAL94Onyama Limba
1021Jones G NestleGermany2024-04-14Printing Dimensions RENEWAL42Onyama Limba
1022David L PaprockiSpain2024-03-30Chanay, Jeffrey A Esq RENEWAL62Onyama Limba
1023Cody G VenereJapan2024-04-26Truhlar And Truhlar Attys UNQUALIFIED82Amy Elsner
1024Greenwood N WaycottSpain2024-03-31King, Christopher A Esq NEGOTIATION7Xuxue Feng
1025Salvatore Y MarrierRussia2024-04-15Commercial Press NEW44Ivan Magalhaes
1026Maisha M RutaSpain2024-04-22Feltz Printing Service RENEWAL59Ioni Bowcher
1027Mayumi U BriddickItaly2024-04-14Rousseaux, Michael Esq PROPOSAL13Stephen Shaw
1028Silvio U BriddickAustralia2024-04-11Feltz Printing Service NEGOTIATION41Asiya Javayant
1029Arvin C ShinkoUnited Kingdom2024-04-17Dorl, James J Esq RENEWAL5Amy Elsner
1030Isabel I WieserSpain2024-04-10Morlong Associates PROPOSAL93Anna Fali
1031Leon Y RimBrazil2024-03-30Feltz Printing Service PROPOSAL77Xuxue Feng
1032Smith K MacleadUnited Kingdom2024-04-18Dorl, James J Esq NEGOTIATION37Elwin Sharvill
1033Juan W TollnerRussia2024-04-24Rousseaux, Michael Esq NEGOTIATION28Bernardo Dominic
1034Julie H RulapaughItaly2024-04-04Rangoni Of Florence NEGOTIATION8Xuxue Feng
1035Claire A RutaAustralia2024-04-14Truhlar And Truhlar Attys NEW96Elwin Sharvill
1036Stacey C InouyeSpain2024-04-11Commercial Press PROPOSAL37Ivan Magalhaes
1037Leon R GlickSpain2024-04-07Chanay, Jeffrey A Esq PROPOSAL89Onyama Limba
1038David E WaycottAustralia2024-04-21Buckley Miller Wright UNQUALIFIED10Ioni Bowcher
1039Costa G PaprockiIndia2024-04-18Rousseaux, Michael Esq NEW50Amy Elsner
1040Octavia N NestleGermany2024-04-25King, Christopher A Esq NEW18Anna Fali
1041Aruna J DarakjyCanada2024-04-21Buckley Miller Wright QUALIFIED18Asiya Javayant
1042Octavia V SergiJapan2024-04-18Morlong Associates UNQUALIFIED44Ioni Bowcher
1043Maisha S CaldareraAustralia2024-03-31Benton, John B Jr QUALIFIED54Ioni Bowcher
1044Aika H ChuiIndia2024-04-01Printing Dimensions RENEWAL45Anna Fali
1045Isabel T FigeroaRussia2024-04-15Benton, John B Jr NEW98Bernardo Dominic
1046Morrow W MarrierUnited Kingdom2024-04-26Feiner Bros NEW54Stephen Shaw
1047Mayumi D WieserSpain2024-03-31Commercial Press UNQUALIFIED27Anna Fali
1048Morrow P MarrierRussia2024-04-16Benton, John B Jr UNQUALIFIED82Onyama Limba
1049Faith W MarrierCanada2024-04-23Buckley Miller Wright RENEWAL17Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Antonio Z AlbaresItalyIvan Magalhaes RENEWAL
Rodrigues F ChuiCanadaAnna Fali NEW
Murillo Z MacleadFranceOnyama Limba NEGOTIATION
Alejandro L MorascaUnited KingdomAsiya Javayant NEW
Faith H PaprockiAustraliaElwin Sharvill NEGOTIATION
Ashley J RoysterFranceAsiya Javayant RENEWAL
Clifford M RimItalyAnna Fali UNQUALIFIED
Julie P StockhamAustraliaAmy Elsner NEGOTIATION
Adams P RoysterRussiaStephen Shaw NEGOTIATION
Ivar Q GauchoBrazilStephen Shaw NEW
Ashley F OldroydSpainIoni Bowcher NEW
Isabel Z RoysterIndiaIoni Bowcher NEGOTIATION
Kadeem J TollnerBrazilBernardo Dominic UNQUALIFIED
Smith K SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Salvatore T PaprockiGermanyStephen Shaw UNQUALIFIED
Francesco L BriddickSpainOnyama Limba NEW
Maisha T GlickSpainStephen Shaw RENEWAL
Stacey A SchemmerAustraliaAnna Fali RENEWAL
Stacey F CampainAustraliaStephen Shaw UNQUALIFIED
Sinclair H GarufiBrazilIvan Magalhaes RENEWAL
Costa V BologniaItalyIvan Magalhaes NEW
Ricardo M OldroydCanadaAnna Fali QUALIFIED
Munro J KuskoJapanElwin Sharvill RENEWAL
Faith G RutaSpainIvan Magalhaes UNQUALIFIED
Leon O NickaRussiaOnyama Limba RENEWAL
Faith W CaudyCanadaAnna Fali NEW
Jefferson N InouyeJapanAmy Elsner NEGOTIATION
Leja H WieserBrazilAnna Fali RENEWAL
Antonio H FollerJapanIoni Bowcher QUALIFIED
Mayumi W StockhamJapanAmy Elsner RENEWAL
Silvio C PerinFranceAnna Fali RENEWAL
Deepesh Z ShinkoCanadaBernardo Dominic NEW
Jennifer T AmigonJapanAmy Elsner UNQUALIFIED
David U GlickJapanIvan Magalhaes QUALIFIED
Nicolas X BowleyJapanStephen Shaw UNQUALIFIED
Julie W OldroydGermanyXuxue Feng RENEWAL
Misaki R DarakjyBrazilXuxue Feng RENEWAL
Isabel J SlusarskiSpainStephen Shaw UNQUALIFIED
Maria P MaletIndiaIvan Magalhaes PROPOSAL
Octavia X RimRussiaAmy Elsner UNQUALIFIED
Emily G WhobreyItalyOnyama Limba NEGOTIATION
Darci Q DilliardBrazilXuxue Feng RENEWAL
Ricardo R SlusarskiArgentinaAsiya Javayant QUALIFIED
Murillo J RimGermanyIoni Bowcher UNQUALIFIED
Maisha K MaletFranceAmy Elsner RENEWAL
Emily N MorascaAustraliaBernardo Dominic NEW
Isabel A DoeJapanIvan Magalhaes PROPOSAL
Aruna S RulapaughFranceAsiya Javayant QUALIFIED
Francesco V InouyeArgentinaIoni Bowcher NEGOTIATION
Johnson V MacleadItalyXuxue Feng NEGOTIATION
Frozen Columns
Name
Sinclair H Marrier
Ashley C Whobrey
Silvio E Iturbide
Aruna N Venere
Antonio T Glick
Octavia D Waycott
Julie Q Iturbide
Leja Y Glick
Jennifer L Malet
Ashley S Slusarski
Maisha Q Paprocki
Leja L Figeroa
Isabel W Perin
Juan T Albares
Salvatore I Caudy
Clifford V Ferencz
Morrow C Caudy
Kadeem W Chui
Antonio Z Marrier
Antonio A Slusarski
Jeanfrancois N Inouye
Aruna K Malet
Maisha U Ferencz
Rodrigues B Waycott
Claire A Doe
Murillo V Royster
Costa D Oldroyd
Alejandro Y Waycott
Silvio U Dilliard
Chavez W Albares
Alejandro D Bolognia
Ivar S Gaucho
Maisha K Figeroa
Jones W Nestle
Mayumi H Albares
Clifford K Nicka
Mujtaba P Doe
Smith X Kolmetz
Rodrigues S Perin
Cody R Oldroyd
Silvio R Doe
Greenwood A Glick
Claire S Kolmetz
Aruna Y Tollner
Aika A Poquette
Darci C Malet
Nicolas W Caudy
Darci L Rulapaugh
Murillo M Glick
Octavia M Paprocki
IdCountryDate
1000Russia2024-04-01
1001Brazil2024-04-22
1002Japan2024-04-26
1003Spain2024-04-18
1004France2024-04-18
1005France2024-04-03
1006France2024-04-10
1007Australia2024-04-16
1008Germany2024-04-19
1009Russia2024-04-15
1010Germany2024-04-05
1011Argentina2024-04-16
1012Italy2024-04-24
1013France2024-04-18
1014Brazil2024-04-16
1015Germany2024-04-05
1016France2024-04-18
1017Russia2024-04-14
1018Russia2024-04-23
1019Russia2024-03-30
1020Spain2024-04-21
1021Spain2024-04-07
1022Russia2024-04-19
1023Brazil2024-04-17
1024Italy2024-04-28
1025Australia2024-04-07
1026Australia2024-04-18
1027Italy2024-04-03
1028France2024-04-02
1029Brazil2024-04-12
1030India2024-04-15
1031Italy2024-04-10
1032Spain2024-04-25
1033Japan2024-04-17
1034Italy2024-04-17
1035Australia2024-04-23
1036France2024-04-18
1037Australia2024-04-21
1038Italy2024-04-01
1039France2024-04-23
1040Canada2024-04-15
1041India2024-04-10
1042India2024-04-21
1043India2024-04-07
1044Australia2024-04-03
1045Japan2024-04-23
1046Spain2024-04-21
1047Brazil2024-04-20
1048Germany2024-04-23
1049Brazil2024-04-03

On-Demand Data

NameIdCountryDate
Izzy F Briddick1000Russia2024-04-17
Leja B Kolmetz1001United Kingdom2024-04-12
Munro Y Amigon1002Russia2024-04-20
Munro I Waycott1003Japan2024-04-27
David I Albares1004India2024-04-04
Aditya N Rulapaugh1005Russia2024-04-08
Leja O Kusko1006United Kingdom2024-04-06
Smith N Ruta1007Brazil2024-04-12
Tony J Perin1008United Kingdom2024-04-21
Chavez V Darakjy1009India2024-04-02
Johnson X Glick1010India2024-04-25
Arvin R Paprocki1011Spain2024-04-25
Salvatore G Kusko1012Australia2024-04-02
Salvatore X Foller1013Germany2024-04-08
Sinclair N Kusko1014Argentina2024-04-23
Rodrigues R Paprocki1015Canada2024-04-22
Munro Q Royster1016Germany2024-04-24
Francesco Z Malet1017Japan2024-04-23
Juan Z Kusko1018France2024-04-26
Cody R Malet1019Italy2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci U VocelkaItalyAnna Fali PROPOSAL
Costa V CampainGermanyAnna Fali NEGOTIATION
Mayumi D RutaUnited KingdomAsiya Javayant NEGOTIATION
Julie I DarakjyBrazilIoni Bowcher PROPOSAL
Deepesh S GauchoBrazilIvan Magalhaes QUALIFIED
Antonio E AmigonItalyIvan Magalhaes RENEWAL
Misaki F VocelkaSpainXuxue Feng QUALIFIED
Kadeem C CaudyGermanyAnna Fali QUALIFIED
Francesco G BriddickBrazilXuxue Feng PROPOSAL
Aditya L NestleJapanAsiya Javayant PROPOSAL
Misaki L BologniaSpainAmy Elsner RENEWAL
Juan R RimBrazilAnna Fali NEW
Maisha V NickaAustraliaAsiya Javayant NEGOTIATION
Aditya U SchemmerCanadaIoni Bowcher QUALIFIED
Morrow B KuskoUnited KingdomAsiya Javayant UNQUALIFIED
Ivar F NickaBrazilAsiya Javayant NEGOTIATION
Tony A GarufiArgentinaIvan Magalhaes UNQUALIFIED
Ashley W FigeroaBrazilElwin Sharvill QUALIFIED
Jeanfrancois C GarufiUnited KingdomXuxue Feng PROPOSAL
Leja Y FlosiIndiaXuxue Feng NEW
Kadeem J SlusarskiArgentinaAnna Fali QUALIFIED
Jeanfrancois H PaprockiSpainBernardo Dominic PROPOSAL
Stacey E StockhamCanadaIvan Magalhaes NEW
Adams Y DarakjyUnited KingdomAmy Elsner PROPOSAL
Aditya G BowleySpainXuxue Feng NEW
James X VocelkaAustraliaAmy Elsner QUALIFIED
Jefferson L MacleadFranceAnna Fali NEGOTIATION
Morrow B MarrierIndiaAmy Elsner QUALIFIED
Deepesh Z CaldareraIndiaAmy Elsner NEW
Nicolas E RulapaughCanadaOnyama Limba PROPOSAL
Johnson W FlosiItalyIvan Magalhaes NEW
Murillo J GauchoJapanAmy Elsner PROPOSAL
David K KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Izzy E FlosiAustraliaXuxue Feng QUALIFIED
Arvin X NickaItalyXuxue Feng QUALIFIED
Kaitlin J MarrierSpainAmy Elsner NEGOTIATION
Morrow D RoysterGermanyXuxue Feng NEW
Maisha Y CaudyArgentinaIvan Magalhaes PROPOSAL
Cody X TollnerGermanyXuxue Feng NEW
Kaitlin T RulapaughJapanIvan 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>