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
Faith V ChuiSpainOnyama Limba RENEWAL
Ivar O PerinCanadaElwin Sharvill UNQUALIFIED
Kaitlin N MaletIndiaAmy Elsner RENEWAL
Leon I SchemmerIndiaAmy Elsner PROPOSAL
Johnson G DoeIndiaAsiya Javayant NEGOTIATION
Jefferson P RimArgentinaElwin Sharvill NEW
Munro T PerinCanadaStephen Shaw QUALIFIED
Sinclair U WhobreyJapanXuxue Feng NEGOTIATION
Wickens S WhobreyFranceAnna Fali NEGOTIATION
Greenwood L MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Nicolas M ShinkoRussiaBernardo Dominic NEGOTIATION
James E RulapaughItalyAsiya Javayant QUALIFIED
Tony W NickaArgentinaXuxue Feng PROPOSAL
Antonio K CampainGermanyIoni Bowcher PROPOSAL
Mujtaba U KuskoSpainStephen Shaw NEW
Silvio N TollnerIndiaBernardo Dominic NEGOTIATION
Morrow W FollerSpainIvan Magalhaes NEW
Ivar F DoeItalyBernardo Dominic QUALIFIED
Rodrigues X ButtUnited KingdomBernardo Dominic NEW
Wickens R SchemmerGermanyOnyama Limba NEW
Clifford Y CaudyCanadaOnyama Limba PROPOSAL
Deepesh B DilliardArgentinaBernardo Dominic QUALIFIED
Ricardo K PerinFranceAsiya Javayant RENEWAL
Jefferson L FlosiArgentinaAmy Elsner NEW
Stacey A GauchoUnited KingdomIoni Bowcher NEW
Greenwood U ButtJapanIvan Magalhaes NEGOTIATION
Chavez U MarrierFranceIoni Bowcher RENEWAL
Smith I GillianArgentinaOnyama Limba NEGOTIATION
Emily K VenereJapanAmy Elsner UNQUALIFIED
Julie F FigeroaItalyAnna Fali UNQUALIFIED
Jones Q CaudySpainBernardo Dominic NEW
Leja Z FlosiFranceIoni Bowcher RENEWAL
Silvio P SchemmerGermanyStephen Shaw NEGOTIATION
Alejandro T FlosiRussiaOnyama Limba QUALIFIED
Ashley X GlickAustraliaAnna Fali PROPOSAL
Misaki X GarufiFranceAmy Elsner NEW
David S PerinCanadaOnyama Limba PROPOSAL
Juan H WhobreySpainIoni Bowcher QUALIFIED
Sinclair U MaletFranceStephen Shaw NEGOTIATION
Kadeem P FerenczUnited KingdomStephen Shaw RENEWAL
Juan T PerinJapanAsiya Javayant NEW
Greenwood P ChuiRussiaElwin Sharvill PROPOSAL
Cody E KuskoRussiaIoni Bowcher UNQUALIFIED
Darci L StockhamIndiaAnna Fali NEW
James A SergiItalyAnna Fali QUALIFIED
Francesco S SergiJapanBernardo Dominic NEW
Jeanfrancois U MaletIndiaBernardo Dominic RENEWAL
Adams E BriddickItalyAsiya Javayant RENEWAL
Adams Z OldroydCanadaIoni Bowcher NEGOTIATION
Deepesh B SchemmerAustraliaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Isabel P GillianIndiaAmy Elsner QUALIFIED
Adams O CampainFranceIoni Bowcher PROPOSAL
Octavia B ButtIndiaAmy Elsner NEGOTIATION
Johnson B RutaRussiaAmy Elsner NEW
Emily C ShinkoBrazilIoni Bowcher PROPOSAL
Morrow L MacleadArgentinaAsiya Javayant PROPOSAL
Costa Y PaprockiGermanyXuxue Feng PROPOSAL
James C FollerItalyIvan Magalhaes NEGOTIATION
Ricardo B PaprockiIndiaIvan Magalhaes QUALIFIED
Munro K FerenczBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria E InouyeArgentina2024-04-13Feiner Bros UNQUALIFIED39Xuxue Feng
1001Ricardo G DoeRussia2024-04-10Benton, John B Jr RENEWAL44Asiya Javayant
1002Mujtaba X MaletBrazil2024-04-15Benton, John B Jr QUALIFIED4Xuxue Feng
1003Izzy Y MaletSpain2024-04-21Chanay, Jeffrey A Esq QUALIFIED80Asiya Javayant
1004Antonio W GauchoItaly2024-04-02Chapman, Ross E Esq PROPOSAL37Amy Elsner
1005Johnson I KolmetzBrazil2024-04-14Dorl, James J Esq PROPOSAL2Xuxue Feng
1006Maria O SergiUnited Kingdom2024-03-29Feltz Printing Service QUALIFIED1Stephen Shaw
1007Murillo E ShinkoIndia2024-04-08Benton, John B Jr NEGOTIATION14Onyama Limba
1008Darci H GauchoItaly2024-04-11Truhlar And Truhlar Attys PROPOSAL28Elwin Sharvill
1009Chavez T ButtItaly2024-04-09Chemel, James L Cpa NEGOTIATION19Ioni Bowcher
1010Arvin B SergiRussia2024-04-19Morlong Associates QUALIFIED72Ioni Bowcher
1011Juan I ButtSpain2024-04-17Chemel, James L Cpa RENEWAL43Amy Elsner
1012Chavez S CampainBrazil2024-03-26Buckley Miller Wright PROPOSAL30Bernardo Dominic
1013Leja A StensethBrazil2024-04-19Chapman, Ross E Esq RENEWAL43Elwin Sharvill
1014James C BriddickRussia2024-03-30Chapman, Ross E Esq RENEWAL51Ivan Magalhaes
1015Wickens U PerinArgentina2024-04-21Chanay, Jeffrey A Esq QUALIFIED11Amy Elsner
1016Clifford Y MaletRussia2024-04-02Feltz Printing Service UNQUALIFIED38Bernardo Dominic
1017Morrow W VocelkaBrazil2024-04-18Buckley Miller Wright NEGOTIATION92Amy Elsner
1018Maisha U BologniaRussia2024-04-20Chanay, Jeffrey A Esq NEGOTIATION88Amy Elsner
1019Julie J AmigonArgentina2024-04-03Feiner Bros PROPOSAL76Bernardo Dominic
1020Ashley Y WieserBrazil2024-04-10Rousseaux, Michael Esq QUALIFIED94Elwin Sharvill
1021Tony I RutaIndia2024-04-02Truhlar And Truhlar Attys NEGOTIATION85Asiya Javayant
1022Jennifer D MacleadRussia2024-04-04Commercial Press PROPOSAL99Xuxue Feng
1023Kaitlin M StensethJapan2024-04-04King, Christopher A Esq PROPOSAL57Ioni Bowcher
1024Morrow O MaletArgentina2024-04-17Truhlar And Truhlar Attys NEGOTIATION31Amy Elsner
1025James D DilliardCanada2024-04-11Morlong Associates NEW81Anna Fali
1026Silvio O PerinGermany2024-04-04Chemel, James L Cpa QUALIFIED54Stephen Shaw
1027Mujtaba D CaudyGermany2024-04-12Commercial Press RENEWAL1Anna Fali
1028Ashley K PerinArgentina2024-04-03Feltz Printing Service RENEWAL70Bernardo Dominic
1029Julie I TollnerJapan2024-03-29Chanay, Jeffrey A Esq QUALIFIED89Stephen Shaw
1030Jones D RulapaughFrance2024-03-31Chemel, James L Cpa UNQUALIFIED70Stephen Shaw
1031Smith U InouyeCanada2024-03-30Buckley Miller Wright RENEWAL71Asiya Javayant
1032Misaki P SaylorsArgentina2024-04-08Commercial Press UNQUALIFIED6Asiya Javayant
1033Mayumi Z GillianCanada2024-04-23Commercial Press NEW92Stephen Shaw
1034Ricardo T RutaAustralia2024-03-31Dorl, James J Esq NEW53Xuxue Feng
1035Jones G FollerRussia2024-04-04Commercial Press NEW12Bernardo Dominic
1036Smith I MaletAustralia2024-04-07Benton, John B Jr UNQUALIFIED38Bernardo Dominic
1037Darci I ShinkoRussia2024-03-27Rangoni Of Florence UNQUALIFIED80Ivan Magalhaes
1038Maisha W RimAustralia2024-04-12Commercial Press RENEWAL98Ivan Magalhaes
1039Munro Q CaldareraItaly2024-04-21Chapman, Ross E Esq QUALIFIED26Ivan Magalhaes
1040Jones C SchemmerCanada2024-04-13Truhlar And Truhlar Attys PROPOSAL9Ivan Magalhaes
1041Jones Q PerinBrazil2024-04-17Feltz Printing Service UNQUALIFIED49Onyama Limba
1042Stacey Z MacleadCanada2024-04-09Buckley Miller Wright RENEWAL77Stephen Shaw
1043Wickens Z OstroskyIndia2024-04-02Chemel, James L Cpa NEGOTIATION11Elwin Sharvill
1044Wickens H BologniaGermany2024-03-31Rangoni Of Florence PROPOSAL95Bernardo Dominic
1045Maria R MarrierRussia2024-04-23Buckley Miller Wright PROPOSAL4Ioni Bowcher
1046Mayumi K RimFrance2024-03-29King, Christopher A Esq QUALIFIED4Ivan Magalhaes
1047Francesco U GillianFrance2024-03-29Dorl, James J Esq UNQUALIFIED36Bernardo Dominic
1048Smith H RulapaughIndia2024-04-20King, Christopher A Esq QUALIFIED53Ioni Bowcher
1049Mayumi I MacleadSpain2024-04-04Rangoni Of Florence UNQUALIFIED79Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ivar M KolmetzBrazilIoni Bowcher NEGOTIATION
Antonio Z SaylorsSpainAmy Elsner NEW
Nicolas M RulapaughItalyXuxue Feng PROPOSAL
Faith V GarufiRussiaStephen Shaw RENEWAL
Leja V FollerSpainBernardo Dominic QUALIFIED
Nicolas U FigeroaGermanyAnna Fali QUALIFIED
Wickens S NickaCanadaAmy Elsner UNQUALIFIED
Cody D VenereBrazilAsiya Javayant PROPOSAL
Antonio L VenereItalyElwin Sharvill UNQUALIFIED
Ivar L CaudyGermanyIvan Magalhaes NEGOTIATION
Mujtaba F WaycottCanadaIoni Bowcher PROPOSAL
Emily O RulapaughFranceBernardo Dominic NEGOTIATION
Cody T NickaArgentinaAnna Fali NEGOTIATION
Mujtaba E VenereJapanBernardo Dominic QUALIFIED
Clifford L FigeroaIndiaAmy Elsner PROPOSAL
Chavez Q MaletUnited KingdomXuxue Feng RENEWAL
Ivar V WieserIndiaBernardo Dominic QUALIFIED
Antonio S ChuiItalyStephen Shaw UNQUALIFIED
Alejandro A InouyeArgentinaOnyama Limba QUALIFIED
Deepesh P VocelkaBrazilIvan Magalhaes QUALIFIED
Isabel J PerinUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh B ShinkoArgentinaIoni Bowcher QUALIFIED
Greenwood N ButtUnited KingdomOnyama Limba QUALIFIED
Salvatore Z FerenczArgentinaAmy Elsner NEGOTIATION
Aruna J MarrierSpainBernardo Dominic NEW
Johnson M FollerRussiaBernardo Dominic NEGOTIATION
Ricardo V SchemmerBrazilAmy Elsner NEGOTIATION
Darci F VocelkaBrazilOnyama Limba PROPOSAL
Tony J PerinItalyElwin Sharvill NEGOTIATION
Juan G SaylorsUnited KingdomAmy Elsner QUALIFIED
Izzy C FlosiIndiaIvan Magalhaes QUALIFIED
Emily V PoquetteCanadaIvan Magalhaes PROPOSAL
Clifford K SlusarskiItalyAsiya Javayant UNQUALIFIED
Sinclair C AmigonGermanyXuxue Feng PROPOSAL
Mayumi P MaletSpainElwin Sharvill PROPOSAL
Faith L StensethIndiaIvan Magalhaes RENEWAL
Jones O GarufiUnited KingdomAsiya Javayant RENEWAL
Isabel I AmigonSpainElwin Sharvill UNQUALIFIED
Greenwood Y StensethBrazilAmy Elsner RENEWAL
Ricardo N RoysterFranceIvan Magalhaes QUALIFIED
Aditya E VocelkaItalyIoni Bowcher PROPOSAL
Tony D RutaFranceStephen Shaw RENEWAL
Adams K CampainBrazilXuxue Feng PROPOSAL
Maria I CampainArgentinaOnyama Limba UNQUALIFIED
Greenwood Q GillianGermanyStephen Shaw NEW
Nicolas I FlosiRussiaIoni Bowcher RENEWAL
Johnson I MarrierGermanyBernardo Dominic RENEWAL
Aika Q BologniaBrazilAsiya Javayant QUALIFIED
Nicolas G InouyeGermanyIoni Bowcher NEW
Arvin J RulapaughRussiaXuxue Feng RENEWAL
Frozen Columns
Name
Jennifer N Sergi
Octavia B Garufi
Maisha Z Butt
Alejandro W Butt
Francesco F Malet
Aika B Inouye
Antonio Z Bolognia
Jennifer D Ferencz
Claire B Inouye
Jeanfrancois N Figeroa
Darci Y Amigon
Sinclair H Dilliard
Arvin M Stenseth
Deepesh D Butt
Salvatore U Poquette
Maisha G Albares
Aditya C Gaucho
Ricardo P Darakjy
Silvio A Maclead
Darci J Vocelka
Greenwood K Caudy
Mayumi J Malet
Jefferson V Slusarski
Antonio F Caudy
Chavez N Kolmetz
Isabel N Paprocki
Costa U Flosi
Leja P Stenseth
Murillo P Dilliard
Aika U Iturbide
Murillo F Morasca
Octavia L Morasca
Tony D Saylors
Jones Q Flosi
Izzy U Inouye
Stacey Z Ferencz
Adams H Shinko
Jefferson M Wieser
Arvin B Saylors
Tony C Garufi
Chavez F Albares
Aruna X Slusarski
Isabel U Tollner
Emily A Bowley
Jones X Flosi
Maria Q Poquette
Chavez E Caudy
Maisha C Shinko
Deepesh L Shinko
Arvin U Vocelka
IdCountryDate
1000Germany2024-04-08
1001France2024-04-02
1002Germany2024-04-10
1003Spain2024-03-29
1004France2024-04-02
1005France2024-03-30
1006Japan2024-04-03
1007United Kingdom2024-04-19
1008Australia2024-04-21
1009Canada2024-03-25
1010Japan2024-04-19
1011France2024-03-28
1012Russia2024-04-06
1013Russia2024-04-15
1014Brazil2024-04-05
1015Australia2024-04-08
1016France2024-04-01
1017Spain2024-04-04
1018Russia2024-04-14
1019Spain2024-03-26
1020India2024-04-14
1021Spain2024-04-05
1022United Kingdom2024-04-17
1023Italy2024-04-15
1024Argentina2024-04-04
1025Germany2024-04-08
1026Russia2024-03-26
1027Japan2024-04-18
1028Russia2024-04-15
1029Canada2024-04-04
1030Italy2024-04-09
1031India2024-04-14
1032Spain2024-04-14
1033Russia2024-04-03
1034India2024-04-07
1035Italy2024-04-21
1036Japan2024-03-30
1037Australia2024-04-14
1038France2024-04-11
1039Australia2024-04-15
1040Germany2024-04-02
1041Brazil2024-04-21
1042Russia2024-03-26
1043Spain2024-04-20
1044Australia2024-04-11
1045Australia2024-04-16
1046Japan2024-04-20
1047Russia2024-03-29
1048Argentina2024-04-12
1049Canada2024-04-07

On-Demand Data

NameIdCountryDate
Kadeem X Bowley1000United Kingdom2024-04-10
Costa M Caudy1001Argentina2024-04-19
Rodrigues R Caldarera1002Australia2024-04-05
Aruna B Garufi1003Australia2024-04-20
Darci V Caldarera1004France2024-03-31
Silvio M Malet1005Russia2024-04-15
Francesco T Poquette1006Italy2024-03-27
Antonio I Oldroyd1007India2024-04-20
Maisha X Wieser1008Japan2024-03-29
Darci Z Briddick1009Argentina2024-03-29
Kadeem T Kusko1010France2024-04-22
Leja A Caudy1011United Kingdom2024-04-02
Rodrigues H Gaucho1012Germany2024-04-19
Julie Z Ferencz1013Canada2024-03-26
Sinclair P Flosi1014France2024-04-06
Morrow Q Slusarski1015Japan2024-04-04
James Z Bowley1016Brazil2024-04-15
Julie R Gillian1017Canada2024-04-10
Leja S Schemmer1018Spain2024-04-14
Rodrigues S Marrier1019Japan2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro I SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Clifford A PoquetteJapanIoni Bowcher PROPOSAL
Ricardo C PaprockiArgentinaElwin Sharvill RENEWAL
Misaki S AmigonIndiaIvan Magalhaes QUALIFIED
Kaitlin S SaylorsGermanyBernardo Dominic PROPOSAL
Aditya O KuskoRussiaAmy Elsner QUALIFIED
Adams M AmigonArgentinaAnna Fali PROPOSAL
Munro H MaletAustraliaIoni Bowcher NEW
Silvio J CampainArgentinaXuxue Feng PROPOSAL
Rodrigues C MorascaFranceAmy Elsner NEGOTIATION
Francesco D FigeroaJapanBernardo Dominic UNQUALIFIED
Aika E GarufiRussiaAnna Fali NEGOTIATION
Smith X SaylorsUnited KingdomAnna Fali QUALIFIED
Darci E MacleadArgentinaStephen Shaw RENEWAL
Darci X VocelkaGermanyAnna Fali NEW
Faith U WhobreyArgentinaOnyama Limba NEW
Kaitlin Y DoeGermanyOnyama Limba PROPOSAL
Antonio Z StensethGermanyBernardo Dominic QUALIFIED
Ricardo R BowleyCanadaAsiya Javayant RENEWAL
Jones L SchemmerRussiaAnna Fali NEW
Ivar E BowleyCanadaIoni Bowcher PROPOSAL
David O OldroydItalyElwin Sharvill QUALIFIED
Julie R FlosiGermanyXuxue Feng NEW
Julie B ButtGermanyElwin Sharvill QUALIFIED
Jones H StockhamItalyAsiya Javayant NEGOTIATION
Aditya W KuskoFranceElwin Sharvill UNQUALIFIED
Aruna Z WhobreyCanadaAmy Elsner QUALIFIED
Ashley A MacleadAustraliaOnyama Limba NEGOTIATION
Darci H BriddickSpainAmy Elsner QUALIFIED
Costa B TollnerCanadaIoni Bowcher NEW
Smith Z StockhamAustraliaIvan Magalhaes PROPOSAL
Leon J MaletGermanyIvan Magalhaes RENEWAL
Jeanfrancois S MacleadJapanAsiya Javayant PROPOSAL
Aditya T MacleadFranceXuxue Feng PROPOSAL
Silvio F PoquetteGermanyAmy Elsner UNQUALIFIED
Clifford M OstroskyItalyElwin Sharvill RENEWAL
Darci D StockhamAustraliaAnna Fali RENEWAL
Smith N ChuiSpainAsiya Javayant PROPOSAL
Izzy W PaprockiUnited KingdomOnyama Limba RENEWAL
Clifford M DilliardRussiaAmy Elsner PROPOSAL

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