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
Johnson V RutaRussiaXuxue Feng UNQUALIFIED
Maria I NestleFranceAmy Elsner NEGOTIATION
Aruna I BriddickUnited KingdomAnna Fali UNQUALIFIED
Ashley X SaylorsJapanIvan Magalhaes PROPOSAL
Rodrigues N CaldareraJapanAsiya Javayant PROPOSAL
Antonio J PerinJapanBernardo Dominic PROPOSAL
Aditya P BologniaBrazilOnyama Limba NEGOTIATION
Clifford R PerinAustraliaAnna Fali NEW
Tony D VocelkaCanadaAmy Elsner QUALIFIED
David T RulapaughArgentinaOnyama Limba NEGOTIATION
Julie W CaudyBrazilStephen Shaw UNQUALIFIED
Arvin Z RulapaughIndiaElwin Sharvill NEGOTIATION
Leon Z IturbideUnited KingdomAsiya Javayant NEGOTIATION
Juan O RutaBrazilIoni Bowcher UNQUALIFIED
Izzy E FollerArgentinaAsiya Javayant UNQUALIFIED
Adams F StensethArgentinaStephen Shaw UNQUALIFIED
Jones C BowleyItalyAmy Elsner QUALIFIED
Smith H KuskoArgentinaIvan Magalhaes RENEWAL
Stacey V CampainGermanyXuxue Feng PROPOSAL
Tony G RutaItalyAnna Fali RENEWAL
Nicolas T OstroskyFranceXuxue Feng UNQUALIFIED
Costa L StensethCanadaXuxue Feng QUALIFIED
Chavez T RulapaughFranceStephen Shaw NEGOTIATION
Aruna E MorascaUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois S CampainRussiaOnyama Limba QUALIFIED
David A DoeArgentinaStephen Shaw UNQUALIFIED
Morrow M InouyeAustraliaBernardo Dominic NEGOTIATION
Aruna N SlusarskiArgentinaElwin Sharvill NEGOTIATION
Jennifer S AlbaresRussiaAmy Elsner RENEWAL
Claire J KolmetzCanadaAmy Elsner UNQUALIFIED
Salvatore U InouyeJapanIoni Bowcher NEW
Emily P DilliardJapanIvan Magalhaes NEW
Chavez Y DilliardItalyBernardo Dominic PROPOSAL
Clifford M KuskoJapanAsiya Javayant NEGOTIATION
Emily O RulapaughRussiaBernardo Dominic RENEWAL
Morrow M WaycottRussiaAsiya Javayant RENEWAL
Kadeem F SergiJapanAnna Fali RENEWAL
Maisha G StockhamIndiaIvan Magalhaes QUALIFIED
Deepesh W FerenczSpainBernardo Dominic PROPOSAL
Arvin U GillianUnited KingdomIoni Bowcher PROPOSAL
Mujtaba H InouyeUnited KingdomIoni Bowcher NEW
Costa J OldroydIndiaOnyama Limba UNQUALIFIED
Ashley N InouyeUnited KingdomIvan Magalhaes NEW
Murillo D MaletAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois H VocelkaRussiaXuxue Feng RENEWAL
Greenwood U MarrierAustraliaOnyama Limba UNQUALIFIED
Ashley Q OstroskyGermanyBernardo Dominic NEGOTIATION
Juan N ShinkoArgentinaAnna Fali RENEWAL
Leja A RutaAustraliaIvan Magalhaes NEGOTIATION
James M StensethJapanBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams O NickaIndiaElwin Sharvill UNQUALIFIED
Aika Q RimBrazilIvan Magalhaes UNQUALIFIED
Kaitlin X WaycottAustraliaBernardo Dominic NEGOTIATION
Mayumi N OldroydJapanStephen Shaw RENEWAL
Munro O SlusarskiBrazilAmy Elsner NEW
Juan U FerenczItalyXuxue Feng QUALIFIED
Chavez I DarakjyItalyIvan Magalhaes NEGOTIATION
Emily U NickaBrazilElwin Sharvill NEW
Emily T KuskoIndiaAsiya Javayant PROPOSAL
Munro O NestleAustraliaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh B CaudyItaly2024-05-03Truhlar And Truhlar Attys PROPOSAL68Ivan Magalhaes
1001Wickens L InouyeItaly2024-04-30Chanay, Jeffrey A Esq NEW19Amy Elsner
1002Jefferson O VocelkaGermany2024-04-21Benton, John B Jr NEW30Ivan Magalhaes
1003Kadeem Y CampainAustralia2024-04-29Commercial Press NEW67Xuxue Feng
1004Stacey I RoysterGermany2024-04-25Morlong Associates UNQUALIFIED51Ioni Bowcher
1005Morrow N OldroydIndia2024-04-25Benton, John B Jr NEGOTIATION85Ivan Magalhaes
1006James Q KuskoFrance2024-04-08Chapman, Ross E Esq RENEWAL14Bernardo Dominic
1007Kadeem K GauchoJapan2024-04-30Dorl, James J Esq UNQUALIFIED68Bernardo Dominic
1008Julie C VenereSpain2024-04-30Commercial Press RENEWAL8Anna Fali
1009Faith O CampainItaly2024-05-02Morlong Associates NEGOTIATION58Onyama Limba
1010Morrow F RulapaughUnited Kingdom2024-05-05Chanay, Jeffrey A Esq NEGOTIATION2Onyama Limba
1011Costa T MarrierBrazil2024-05-03Rousseaux, Michael Esq PROPOSAL61Xuxue Feng
1012Maisha I FlosiSpain2024-04-28Truhlar And Truhlar Attys PROPOSAL81Elwin Sharvill
1013Aika H BowleyUnited Kingdom2024-05-05Dorl, James J Esq RENEWAL87Stephen Shaw
1014Leon F MorascaItaly2024-04-08Chemel, James L Cpa RENEWAL97Ivan Magalhaes
1015Aditya C ShinkoJapan2024-05-02Truhlar And Truhlar Attys QUALIFIED4Stephen Shaw
1016Adams E MorascaUnited Kingdom2024-04-26Chanay, Jeffrey A Esq QUALIFIED49Bernardo Dominic
1017Ashley B WaycottBrazil2024-04-27Printing Dimensions UNQUALIFIED40Bernardo Dominic
1018Jefferson K BriddickBrazil2024-05-03Printing Dimensions QUALIFIED83Ivan Magalhaes
1019Kaitlin I PaprockiFrance2024-05-05Rousseaux, Michael Esq NEGOTIATION68Elwin Sharvill
1020Faith N ChuiArgentina2024-04-24Chanay, Jeffrey A Esq QUALIFIED5Ioni Bowcher
1021Nicolas K IturbideCanada2024-04-19Rousseaux, Michael Esq UNQUALIFIED29Asiya Javayant
1022Clifford C MarrierIndia2024-04-13Chanay, Jeffrey A Esq QUALIFIED99Ioni Bowcher
1023Julie M SlusarskiIndia2024-04-22Morlong Associates PROPOSAL1Stephen Shaw
1024Silvio H KuskoFrance2024-05-03Printing Dimensions NEW75Bernardo Dominic
1025Ashley Q RulapaughSpain2024-04-19Rangoni Of Florence QUALIFIED40Anna Fali
1026Emily N SchemmerFrance2024-05-06Chanay, Jeffrey A Esq QUALIFIED34Onyama Limba
1027Alejandro P KolmetzItaly2024-04-29Chapman, Ross E Esq RENEWAL39Bernardo Dominic
1028Arvin O SergiAustralia2024-04-30Rousseaux, Michael Esq PROPOSAL15Bernardo Dominic
1029Ricardo Q CaudyJapan2024-04-12Commercial Press NEGOTIATION26Xuxue Feng
1030Stacey Z PaprockiIndia2024-05-01Commercial Press QUALIFIED2Xuxue Feng
1031Jeanfrancois O FigeroaCanada2024-04-27Morlong Associates UNQUALIFIED73Onyama Limba
1032Silvio V DarakjyArgentina2024-04-21Feltz Printing Service RENEWAL9Anna Fali
1033Chavez A MarrierBrazil2024-04-11King, Christopher A Esq NEGOTIATION89Asiya Javayant
1034Johnson Z AlbaresArgentina2024-04-09Chemel, James L Cpa UNQUALIFIED60Bernardo Dominic
1035Isabel D GlickIndia2024-04-25Chemel, James L Cpa PROPOSAL48Asiya Javayant
1036Salvatore V DarakjyAustralia2024-04-15Chemel, James L Cpa PROPOSAL13Bernardo Dominic
1037Jones V NickaArgentina2024-04-13Printing Dimensions NEGOTIATION5Amy Elsner
1038Stacey U BriddickFrance2024-04-07Chemel, James L Cpa PROPOSAL7Anna Fali
1039Maisha B StockhamItaly2024-04-13Buckley Miller Wright UNQUALIFIED95Xuxue Feng
1040Costa R TollnerGermany2024-04-25Morlong Associates PROPOSAL9Anna Fali
1041Costa Q PoquetteJapan2024-04-10Benton, John B Jr NEGOTIATION24Bernardo Dominic
1042Sinclair H FerenczBrazil2024-04-11Chapman, Ross E Esq PROPOSAL66Onyama Limba
1043Maisha L AlbaresRussia2024-04-08Rousseaux, Michael Esq NEW35Ivan Magalhaes
1044Munro L ShinkoFrance2024-04-30Chapman, Ross E Esq UNQUALIFIED73Xuxue Feng
1045Silvio Q VenereUnited Kingdom2024-04-22King, Christopher A Esq PROPOSAL30Ivan Magalhaes
1046Ricardo L WaycottItaly2024-05-03Chemel, James L Cpa NEW67Bernardo Dominic
1047Arvin G ChuiGermany2024-04-28Chemel, James L Cpa QUALIFIED65Asiya Javayant
1048Tony R IturbideFrance2024-05-06Morlong Associates NEGOTIATION62Anna Fali
1049Ivar F WhobreyItaly2024-05-04Feltz Printing Service RENEWAL86Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba J AlbaresIndiaElwin Sharvill NEGOTIATION
Ricardo K PoquetteBrazilIvan Magalhaes NEGOTIATION
Salvatore A CaudyBrazilBernardo Dominic UNQUALIFIED
Maria U FerenczItalyIoni Bowcher PROPOSAL
Silvio R OldroydFranceAnna Fali QUALIFIED
Antonio K MaletAustraliaAsiya Javayant RENEWAL
Alejandro Z CaldareraAustraliaIoni Bowcher RENEWAL
Emily G PerinJapanAsiya Javayant NEW
Kaitlin Y BriddickSpainBernardo Dominic QUALIFIED
Stacey O GarufiArgentinaIoni Bowcher QUALIFIED
Nicolas M FigeroaAustraliaStephen Shaw NEW
Sinclair J SaylorsRussiaOnyama Limba UNQUALIFIED
Arvin C WaycottRussiaElwin Sharvill QUALIFIED
Aditya X GarufiFranceAsiya Javayant QUALIFIED
Octavia O StockhamSpainOnyama Limba NEGOTIATION
Ricardo O DoeRussiaAsiya Javayant NEW
Murillo G KolmetzFranceIvan Magalhaes UNQUALIFIED
Sinclair K CaldareraItalyAnna Fali NEGOTIATION
Nicolas J DarakjyJapanAmy Elsner PROPOSAL
Rodrigues J GauchoAustraliaElwin Sharvill QUALIFIED
Smith L MarrierCanadaElwin Sharvill QUALIFIED
Jefferson O MaletAustraliaBernardo Dominic QUALIFIED
Aruna S PoquetteArgentinaAsiya Javayant NEGOTIATION
Greenwood N KolmetzAustraliaIoni Bowcher PROPOSAL
Cody Y GauchoIndiaElwin Sharvill PROPOSAL
Costa O MaletRussiaIoni Bowcher NEGOTIATION
Stacey W KuskoJapanBernardo Dominic QUALIFIED
Chavez T ShinkoSpainAmy Elsner RENEWAL
Darci U DilliardIndiaOnyama Limba UNQUALIFIED
Francesco Z WhobreyAustraliaIvan Magalhaes QUALIFIED
Wickens E NestleCanadaElwin Sharvill NEW
Emily S DilliardJapanAsiya Javayant PROPOSAL
Julie V FollerRussiaIoni Bowcher PROPOSAL
Jennifer P CampainIndiaAmy Elsner RENEWAL
Kaitlin E SergiRussiaAnna Fali UNQUALIFIED
James P SlusarskiCanadaXuxue Feng NEW
Kadeem Y WhobreyAustraliaXuxue Feng RENEWAL
Misaki Q AlbaresIndiaBernardo Dominic UNQUALIFIED
Tony B DilliardCanadaIvan Magalhaes QUALIFIED
Cody X RutaBrazilAnna Fali NEGOTIATION
Rodrigues I MaletIndiaOnyama Limba QUALIFIED
Cody N SchemmerUnited KingdomBernardo Dominic NEGOTIATION
David H OstroskyAustraliaIvan Magalhaes NEGOTIATION
Julie U GarufiCanadaStephen Shaw RENEWAL
Misaki L VenereItalyIoni Bowcher NEW
Clifford S ButtFranceAnna Fali PROPOSAL
Nicolas N ShinkoBrazilIvan Magalhaes NEW
Adams Q SchemmerCanadaAnna Fali NEW
Aruna B BologniaFranceAmy Elsner PROPOSAL
Misaki H WaycottJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Jeanfrancois Y Nicka
Misaki I Morasca
Sinclair T Caldarera
Costa E Bowley
Greenwood V Glick
Ashley P Bowley
Salvatore N Flosi
Maria Y Schemmer
Chavez R Figeroa
Alejandro K Nestle
Wickens W Oldroyd
Maisha R Tollner
Arvin T Dilliard
Clifford O Perin
Faith B Perin
Leja K Butt
Murillo F Butt
Emily V Saylors
Kadeem Y Nestle
David B Gaucho
Juan A Waycott
Maisha X Venere
Deepesh P Gaucho
Murillo V Oldroyd
Mujtaba K Caldarera
Deepesh M Rim
Murillo E Nicka
Deepesh V Ostrosky
Jennifer G Albares
Smith J Malet
Murillo R Ruta
Aditya D Rulapaugh
Rodrigues P Maclead
Faith W Figeroa
Sinclair T Campain
Tony Q Sergi
Leon U Venere
Octavia N Stockham
Johnson P Caldarera
Ricardo W Oldroyd
Nicolas Y Oldroyd
Wickens Z Morasca
Sinclair C Tollner
Mayumi B Malet
Faith G Kolmetz
Clifford I Doe
Julie M Chui
Mujtaba V Maclead
Jones Q Kolmetz
Aruna D Dilliard
IdCountryDate
1000Germany2024-04-17
1001Germany2024-04-09
1002Germany2024-04-28
1003Japan2024-04-16
1004Japan2024-04-15
1005Spain2024-04-28
1006Japan2024-05-01
1007Canada2024-04-13
1008Italy2024-05-03
1009Germany2024-04-27
1010United Kingdom2024-05-04
1011Russia2024-04-24
1012Argentina2024-04-21
1013Russia2024-04-26
1014Spain2024-04-07
1015United Kingdom2024-05-04
1016Brazil2024-04-24
1017Italy2024-04-15
1018Australia2024-04-14
1019Russia2024-04-16
1020United Kingdom2024-04-28
1021Japan2024-04-14
1022Russia2024-05-03
1023India2024-05-02
1024India2024-04-28
1025Brazil2024-05-02
1026Canada2024-05-03
1027Japan2024-04-17
1028Brazil2024-04-09
1029Australia2024-04-28
1030Spain2024-04-30
1031Brazil2024-04-23
1032Germany2024-05-06
1033Canada2024-05-05
1034India2024-04-16
1035Argentina2024-04-23
1036Japan2024-04-16
1037Canada2024-04-08
1038Argentina2024-05-05
1039United Kingdom2024-04-15
1040Spain2024-04-15
1041Russia2024-04-30
1042Germany2024-04-21
1043Italy2024-04-24
1044France2024-04-13
1045United Kingdom2024-05-03
1046Germany2024-04-17
1047Brazil2024-04-20
1048Germany2024-04-29
1049France2024-04-27

On-Demand Data

NameIdCountryDate
Antonio X Tollner1000India2024-04-22
Jeanfrancois X Stenseth1001India2024-04-12
Jefferson K Slusarski1002Argentina2024-04-11
Francesco F Gaucho1003Brazil2024-04-14
Stacey K Ruta1004Russia2024-04-22
Claire D Foller1005Russia2024-04-20
Isabel L Venere1006France2024-04-27
Misaki S Stenseth1007Japan2024-05-05
Jennifer F Whobrey1008Argentina2024-04-11
Jefferson O Slusarski1009United Kingdom2024-04-15
Emily M Vocelka1010Australia2024-04-25
Ricardo Z Morasca1011Spain2024-04-21
Emily F Caudy1012Brazil2024-04-07
Arvin S Iturbide1013India2024-04-17
Jefferson C Tollner1014Canada2024-05-02
Morrow N Stockham1015Japan2024-04-21
Isabel M Ruta1016India2024-04-23
Munro D Inouye1017United Kingdom2024-04-22
Jennifer H Royster1018Argentina2024-04-16
Ivar O Nicka1019Russia2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair K ChuiSpainOnyama Limba QUALIFIED
Aika S MarrierRussiaElwin Sharvill PROPOSAL
Leja X OstroskyIndiaIvan Magalhaes NEGOTIATION
Jones A PoquetteAustraliaAsiya Javayant NEW
Julie M NickaSpainAnna Fali UNQUALIFIED
Rodrigues I RoysterRussiaStephen Shaw PROPOSAL
Julie D RoysterUnited KingdomOnyama Limba UNQUALIFIED
Ivar Q RutaGermanyStephen Shaw RENEWAL
Izzy D WieserItalyIoni Bowcher NEW
Jones W VocelkaItalyAsiya Javayant RENEWAL
Francesco S WaycottGermanyBernardo Dominic RENEWAL
David N KolmetzArgentinaIvan Magalhaes QUALIFIED
Claire U BologniaIndiaStephen Shaw NEW
Emily B RoysterBrazilXuxue Feng PROPOSAL
Darci T RoysterFranceElwin Sharvill NEGOTIATION
James F VenereGermanyStephen Shaw QUALIFIED
Sinclair G GlickCanadaOnyama Limba UNQUALIFIED
Cody L TollnerSpainAmy Elsner UNQUALIFIED
Claire F PoquetteJapanIoni Bowcher UNQUALIFIED
Misaki X KolmetzGermanyAmy Elsner PROPOSAL
Claire Y ChuiCanadaXuxue Feng NEW
Maisha D RoysterAustraliaIvan Magalhaes PROPOSAL
Morrow U VenereFranceElwin Sharvill QUALIFIED
Ashley H CaudyJapanXuxue Feng RENEWAL
Munro A MaletSpainAsiya Javayant PROPOSAL
Leon M AmigonIndiaOnyama Limba PROPOSAL
Tony Y MaletJapanXuxue Feng QUALIFIED
James A RoysterRussiaOnyama Limba UNQUALIFIED
Kadeem S IturbideFranceIoni Bowcher PROPOSAL
Chavez R NickaRussiaAsiya Javayant PROPOSAL
Claire T ButtSpainAsiya Javayant PROPOSAL
Kadeem U WieserCanadaIoni Bowcher NEGOTIATION
Stacey T DoeCanadaXuxue Feng NEW
Stacey U InouyeFranceIoni Bowcher NEGOTIATION
Jeanfrancois X MaletGermanyElwin Sharvill NEW
Chavez O FollerIndiaXuxue Feng RENEWAL
Johnson P InouyeBrazilElwin Sharvill NEW
Jefferson Y GillianBrazilAsiya Javayant QUALIFIED
Sinclair Q SergiRussiaAsiya Javayant NEGOTIATION
Julie G KuskoUnited KingdomElwin Sharvill UNQUALIFIED

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