Locale

Change the locale of the datepicker, schedule and client side validation messages.

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
Silvio SlusarskiBrazilStephen Shaw RENEWAL
Chavez BriddickIndiaAsiya Javayant PROPOSAL
Francesco ShinkoSpainBernardo Dominic UNQUALIFIED
Mayumi KolmetzGermanyIoni Bowcher NEGOTIATION
Claire TollnerJapanIoni Bowcher UNQUALIFIED
Sinclair WaycottIndiaAmy Elsner QUALIFIED
Juan WieserArgentinaIvan Magalhaes NEGOTIATION
Deepesh ChuiCanadaAmy Elsner QUALIFIED
Isabel BowleyJapanAnna Fali PROPOSAL
Antonio CaudyRussiaAnna Fali NEW
Johnson SergiCanadaAmy Elsner RENEWAL
Clifford RimSpainAnna Fali NEW
Emily WhobreyBrazilAmy Elsner RENEWAL
Mayumi KolmetzItalyAsiya Javayant PROPOSAL
Adams MorascaBrazilElwin Sharvill NEW
Ricardo GauchoCanadaIvan Magalhaes NEW
Ivar PaprockiUnited KingdomAnna Fali RENEWAL
Jones VocelkaCanadaAsiya Javayant PROPOSAL
Smith GlickCanadaXuxue Feng NEGOTIATION
Munro FerenczJapanIvan Magalhaes UNQUALIFIED
Smith GlickGermanyElwin Sharvill NEGOTIATION
Mayumi KolmetzItalyIvan Magalhaes PROPOSAL
Salvatore StockhamFranceBernardo Dominic UNQUALIFIED
Salvatore StockhamArgentinaElwin Sharvill UNQUALIFIED
Cody SaylorsGermanyXuxue Feng RENEWAL
Mayumi KolmetzUnited KingdomAsiya Javayant NEW
Jennifer AmigonArgentinaStephen Shaw NEW
Emily WhobreyUnited KingdomBernardo Dominic RENEWAL
Aruna FigeroaFranceAmy Elsner RENEWAL
Cody SaylorsFranceAsiya Javayant RENEWAL
Kaitlin OstroskyFranceAnna Fali QUALIFIED
Ivar PaprockiBrazilAmy Elsner RENEWAL
Johnson SergiUnited KingdomBernardo Dominic PROPOSAL
Mayumi KolmetzBrazilAnna Fali QUALIFIED
Maisha RulapaughGermanyStephen Shaw QUALIFIED
Tony FollerCanadaStephen Shaw NEW
Aika InouyeFranceAnna Fali UNQUALIFIED
Aruna FigeroaCanadaAnna Fali NEGOTIATION
Claire TollnerSpainXuxue Feng QUALIFIED
Kadeem FlosiRussiaAnna Fali RENEWAL
Aruna FigeroaIndiaAnna Fali NEGOTIATION
Silvio SlusarskiArgentinaAmy Elsner NEW
Mayumi KolmetzGermanyIoni Bowcher NEW
Izzy GarufiUnited KingdomBernardo Dominic QUALIFIED
Izzy GarufiArgentinaBernardo Dominic NEW
Claire TollnerSpainOnyama Limba UNQUALIFIED
Mujtaba NickaJapanAnna Fali NEGOTIATION
Juan WieserItalyStephen Shaw NEW
Ashley DoeFranceOnyama Limba NEGOTIATION
Jeanfrancois VenereFranceAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyCanadaIoni Bowcher RENEWAL
Kaitlin OstroskyCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraArgentinaIoni Bowcher QUALIFIED
Ashley DoeFranceStephen Shaw PROPOSAL
Aditya KuskoArgentinaOnyama Limba NEW
Jefferson SchemmerArgentinaAmy Elsner UNQUALIFIED
Maisha RulapaughArgentinaAsiya Javayant NEW
Adams MorascaJapanStephen Shaw PROPOSAL
Alejandro PerinJapanAnna Fali UNQUALIFIED
Jennifer AmigonBrazilAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzFrance2021-11-14Rangoni Of Florence NEW99Asiya Javayant
1001Leon OldroydGermany2021-11-16Chemel, James L Cpa NEW29Stephen Shaw
1002Mayumi KolmetzFrance2021-11-03Chanay, Jeffrey A Esq PROPOSAL21Amy Elsner
1003Faith GillianJapan2021-11-08Feltz Printing Service RENEWAL69Amy Elsner
1004Juan WieserUnited Kingdom2021-11-23Chanay, Jeffrey A Esq QUALIFIED57Anna Fali
1005Chavez BriddickBrazil2021-10-30Commercial Press PROPOSAL99Ivan Magalhaes
1006Munro FerenczBrazil2021-11-08Rousseaux, Michael Esq QUALIFIED57Asiya Javayant
1007Aika InouyeSpain2021-11-22Feiner Bros NEW19Ioni Bowcher
1008Wickens NestleJapan2021-11-21Benton, John B Jr NEGOTIATION12Stephen Shaw
1009Rodrigues CampainGermany2021-11-21Truhlar And Truhlar Attys RENEWAL35Onyama Limba
1010Smith GlickSpain2021-11-04Rangoni Of Florence QUALIFIED33Stephen Shaw
1011Rodrigues CampainAustralia2021-11-17King, Christopher A Esq QUALIFIED43Xuxue Feng
1012Chavez BriddickSpain2021-11-07Chemel, James L Cpa NEGOTIATION21Onyama Limba
1013Sinclair WaycottUnited Kingdom2021-11-19Buckley Miller Wright RENEWAL47Ivan Magalhaes
1014Chavez BriddickFrance2021-11-04Morlong Associates NEW76Elwin Sharvill
1015Murillo MaletBrazil2021-11-19Benton, John B Jr RENEWAL86Anna Fali
1016Arvin AlbaresAustralia2021-11-08Buckley Miller Wright UNQUALIFIED50Asiya Javayant
1017Emily WhobreyIndia2021-11-07Chanay, Jeffrey A Esq NEGOTIATION55Xuxue Feng
1018Juan WieserRussia2021-11-10King, Christopher A Esq NEW45Elwin Sharvill
1019Chavez BriddickAustralia2021-11-07Rousseaux, Michael Esq PROPOSAL4Amy Elsner
1020David DarakjyJapan2021-11-04Truhlar And Truhlar Attys NEGOTIATION70Xuxue Feng
1021Juan WieserAustralia2021-11-28Commercial Press QUALIFIED64Anna Fali
1022Rodrigues CampainArgentina2021-11-01Chapman, Ross E Esq QUALIFIED53Onyama Limba
1023Murillo MaletUnited Kingdom2021-11-18Feltz Printing Service PROPOSAL78Ioni Bowcher
1024Nicolas IturbideRussia2021-11-01Commercial Press NEGOTIATION5Elwin Sharvill
1025Aruna FigeroaAustralia2021-11-24Printing Dimensions NEW83Asiya Javayant
1026Ricardo GauchoIndia2021-11-04Benton, John B Jr PROPOSAL70Xuxue Feng
1027Silvio SlusarskiArgentina2021-11-24Feltz Printing Service RENEWAL77Amy Elsner
1028Ricardo GauchoSpain2021-10-30Dorl, James J Esq NEW28Xuxue Feng
1029Kadeem FlosiRussia2021-11-08Chanay, Jeffrey A Esq NEGOTIATION43Amy Elsner
1030Kaitlin OstroskyItaly2021-11-10Morlong Associates RENEWAL54Amy Elsner
1031Chavez BriddickRussia2021-11-18Chapman, Ross E Esq PROPOSAL50Elwin Sharvill
1032Emily WhobreyIndia2021-11-26Feltz Printing Service NEW8Ioni Bowcher
1033Isabel BowleyArgentina2021-11-16Chemel, James L Cpa PROPOSAL91Onyama Limba
1034Silvio SlusarskiBrazil2021-11-18Feltz Printing Service NEW7Xuxue Feng
1035Salvatore StockhamBrazil2021-11-03Feltz Printing Service PROPOSAL15Xuxue Feng
1036Ivar PaprockiFrance2021-11-11Dorl, James J Esq UNQUALIFIED16Asiya Javayant
1037James ButtJapan2021-11-28Rousseaux, Michael Esq NEGOTIATION70Bernardo Dominic
1038Stacey MacleadUnited Kingdom2021-11-28Buckley Miller Wright RENEWAL9Ioni Bowcher
1039Izzy GarufiRussia2021-10-31Buckley Miller Wright PROPOSAL74Stephen Shaw
1040Aruna FigeroaIndia2021-11-22Chapman, Ross E Esq UNQUALIFIED80Amy Elsner
1041Maisha RulapaughItaly2021-11-22Chanay, Jeffrey A Esq PROPOSAL14Xuxue Feng
1042Jeanfrancois VenereBrazil2021-11-15Printing Dimensions QUALIFIED29Ioni Bowcher
1043Smith GlickUnited Kingdom2021-10-30Dorl, James J Esq QUALIFIED17Bernardo Dominic
1044Wickens NestleArgentina2021-11-17Dorl, James J Esq UNQUALIFIED42Ioni Bowcher
1045Misaki RoysterFrance2021-11-24Dorl, James J Esq UNQUALIFIED13Elwin Sharvill
1046Darci PoquetteAustralia2021-11-10Buckley Miller Wright PROPOSAL9Bernardo Dominic
1047Tony FollerItaly2021-10-31Feiner Bros RENEWAL30Stephen Shaw
1048Sinclair WaycottArgentina2021-11-18King, Christopher A Esq UNQUALIFIED88Bernardo Dominic
1049Mayumi KolmetzItaly2021-11-13Morlong Associates PROPOSAL59Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerRussiaIoni Bowcher NEGOTIATION
Greenwood BologniaItalyAmy Elsner QUALIFIED
Alejandro PerinIndiaOnyama Limba RENEWAL
Wickens NestleRussiaXuxue Feng NEW
Munro FerenczJapanOnyama Limba NEW
Emily WhobreySpainBernardo Dominic PROPOSAL
Rodrigues CampainAustraliaAmy Elsner NEW
Leon OldroydBrazilIvan Magalhaes NEW
Mayumi KolmetzRussiaAnna Fali PROPOSAL
Octavia MaletJapanAmy Elsner UNQUALIFIED
Johnson SergiSpainAsiya Javayant PROPOSAL
Kadeem FlosiArgentinaAnna Fali QUALIFIED
Mujtaba NickaCanadaStephen Shaw NEGOTIATION
Jennifer AmigonJapanAmy Elsner PROPOSAL
David DarakjySpainStephen Shaw NEW
Leon OldroydCanadaXuxue Feng RENEWAL
Chavez BriddickGermanyAsiya Javayant PROPOSAL
Jefferson SchemmerGermanyBernardo Dominic RENEWAL
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerBrazilBernardo Dominic UNQUALIFIED
Murillo MaletJapanIvan Magalhaes QUALIFIED
Sinclair WaycottBrazilAsiya Javayant PROPOSAL
Johnson SergiIndiaIoni Bowcher RENEWAL
Aika InouyeFranceAnna Fali NEGOTIATION
Alejandro PerinBrazilAsiya Javayant NEGOTIATION
Sinclair WaycottJapanAsiya Javayant NEW
Jeanfrancois VenereJapanXuxue Feng NEW
Darci PoquetteCanadaAnna Fali QUALIFIED
Izzy GarufiSpainIoni Bowcher PROPOSAL
Greenwood BologniaArgentinaBernardo Dominic NEW
David DarakjyAustraliaIvan Magalhaes NEGOTIATION
Silvio SlusarskiJapanBernardo Dominic QUALIFIED
Isabel BowleyFranceIoni Bowcher QUALIFIED
Alejandro PerinAustraliaAmy Elsner NEGOTIATION
Aruna FigeroaItalyAmy Elsner PROPOSAL
Aruna FigeroaArgentinaIoni Bowcher UNQUALIFIED
Wickens NestleSpainElwin Sharvill UNQUALIFIED
Munro FerenczIndiaElwin Sharvill RENEWAL
Nicolas IturbideBrazilElwin Sharvill NEW
Faith GillianAustraliaOnyama Limba NEGOTIATION
Arvin AlbaresAustraliaStephen Shaw UNQUALIFIED
Isabel BowleyIndiaIvan Magalhaes NEGOTIATION
Julie StensethArgentinaElwin Sharvill PROPOSAL
Aika InouyeJapanIoni Bowcher NEW
Ricardo GauchoJapanXuxue Feng RENEWAL
Darci PoquetteAustraliaAmy Elsner PROPOSAL
Adams MorascaGermanyXuxue Feng UNQUALIFIED
James ButtSpainAmy Elsner UNQUALIFIED
Isabel BowleyIndiaAmy Elsner NEGOTIATION
Mujtaba NickaFranceOnyama Limba NEW
Frozen Columns
Name
Smith Glick
Aika Inouye
Stacey Maclead
Ricardo Gaucho
Rodrigues Campain
Arvin Albares
Maria Marrier
Leja Caldarera
Salvatore Stockham
Salvatore Stockham
Chavez Briddick
Leja Caldarera
Claire Tollner
Stacey Maclead
Leja Caldarera
Antonio Caudy
Jennifer Amigon
Juan Wieser
Arvin Albares
Francesco Shinko
Adams Morasca
Juan Wieser
Francesco Shinko
Adams Morasca
Alejandro Perin
Maria Marrier
Deepesh Chui
Arvin Albares
Claire Tollner
Jefferson Schemmer
Jennifer Amigon
Maria Marrier
Leon Oldroyd
Misaki Royster
Octavia Malet
David Darakjy
Nicolas Iturbide
David Darakjy
Morrow Ruta
Jefferson Schemmer
Emily Whobrey
Murillo Malet
Francesco Shinko
Antonio Caudy
Julie Stenseth
Costa Dilliard
Ivar Paprocki
Jeanfrancois Venere
Alejandro Perin
Aika Inouye
IdCountryDate
1000India2021-11-13
1001Japan2021-11-26
1002France2021-11-20
1003Australia2021-10-31
1004Italy2021-10-31
1005United Kingdom2021-11-20
1006France2021-11-05
1007Argentina2021-11-26
1008United Kingdom2021-11-10
1009Argentina2021-11-17
1010United Kingdom2021-11-01
1011Germany2021-11-01
1012India2021-11-04
1013Spain2021-11-17
1014Argentina2021-11-27
1015France2021-10-30
1016Italy2021-11-11
1017India2021-10-31
1018France2021-11-22
1019Brazil2021-11-04
1020Brazil2021-11-14
1021India2021-11-09
1022India2021-11-03
1023United Kingdom2021-11-13
1024India2021-11-01
1025France2021-10-30
1026Japan2021-11-16
1027Japan2021-11-16
1028Italy2021-11-26
1029Russia2021-11-19
1030Russia2021-11-27
1031France2021-11-10
1032Brazil2021-11-01
1033Italy2021-11-03
1034Canada2021-11-07
1035Brazil2021-11-23
1036Spain2021-11-06
1037United Kingdom2021-11-23
1038Germany2021-11-17
1039Italy2021-11-04
1040Russia2021-11-23
1041France2021-11-16
1042India2021-10-31
1043United Kingdom2021-11-06
1044Brazil2021-11-13
1045Canada2021-11-14
1046India2021-11-09
1047Spain2021-11-26
1048United Kingdom2021-10-30
1049Argentina2021-11-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoItalyAnna Fali RENEWAL
Izzy GarufiIndiaAnna Fali PROPOSAL
Kadeem FlosiArgentinaAmy Elsner UNQUALIFIED
Octavia MaletBrazilElwin Sharvill NEGOTIATION
Kaitlin OstroskyBrazilElwin Sharvill NEGOTIATION
Juan WieserItalyStephen Shaw PROPOSAL
Isabel BowleyUnited KingdomElwin Sharvill UNQUALIFIED
James ButtIndiaXuxue Feng QUALIFIED
Juan WieserUnited KingdomElwin Sharvill RENEWAL
Aika InouyeIndiaBernardo Dominic QUALIFIED
Silvio SlusarskiJapanAmy Elsner QUALIFIED
Misaki RoysterIndiaStephen Shaw RENEWAL
Jefferson SchemmerItalyAsiya Javayant QUALIFIED
Rodrigues CampainSpainAsiya Javayant RENEWAL
Morrow RutaAustraliaStephen Shaw RENEWAL
David DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Antonio CaudyUnited KingdomElwin Sharvill NEW
Emily WhobreyRussiaAnna Fali NEGOTIATION
Jennifer AmigonFranceIoni Bowcher QUALIFIED
Stacey MacleadBrazilIoni Bowcher PROPOSAL
Misaki RoysterIndiaAmy Elsner NEW
Antonio CaudyItalyAsiya Javayant PROPOSAL
Johnson SergiIndiaBernardo Dominic NEGOTIATION
Clifford RimItalyAnna Fali NEW
Jones VocelkaAustraliaElwin Sharvill PROPOSAL
Clifford RimIndiaStephen Shaw NEW
Tony FollerBrazilXuxue Feng QUALIFIED
Arvin AlbaresBrazilIvan Magalhaes NEW
Izzy GarufiItalyAnna Fali QUALIFIED
Kaitlin OstroskyRussiaElwin Sharvill RENEWAL
Maisha RulapaughIndiaStephen Shaw RENEWAL
Leja CaldareraSpainIoni Bowcher PROPOSAL
Ashley DoeRussiaAnna Fali NEGOTIATION
Munro FerenczGermanyIoni Bowcher UNQUALIFIED
Chavez BriddickRussiaAmy Elsner PROPOSAL
Munro FerenczRussiaIoni Bowcher NEGOTIATION
Francesco ShinkoBrazilIvan Magalhaes PROPOSAL
Johnson SergiBrazilBernardo Dominic NEGOTIATION
Ashley DoeItalyAmy Elsner QUALIFIED
Sinclair WaycottCanadaAnna Fali RENEWAL

<style type="text/css">
    .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">
        <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>

Session expired

Reloading page

Message:
StackTrace: