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 SlusarskiRussiaAnna Fali PROPOSAL
Maisha RulapaughUnited KingdomAsiya Javayant PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher NEW
Faith GillianRussiaAsiya Javayant NEW
Ashley DoeAustraliaIoni Bowcher RENEWAL
Jeanfrancois VenereRussiaIoni Bowcher NEW
Chavez BriddickUnited KingdomOnyama Limba QUALIFIED
Tony FollerUnited KingdomBernardo Dominic NEGOTIATION
Kadeem FlosiArgentinaStephen Shaw NEGOTIATION
Jefferson SchemmerUnited KingdomIvan Magalhaes RENEWAL
Faith GillianRussiaIoni Bowcher PROPOSAL
Ashley DoeAustraliaBernardo Dominic RENEWAL
Deepesh ChuiIndiaElwin Sharvill NEGOTIATION
Misaki RoysterSpainOnyama Limba RENEWAL
Sinclair WaycottArgentinaIvan Magalhaes RENEWAL
Maria MarrierItalyIvan Magalhaes QUALIFIED
Aika InouyeAustraliaElwin Sharvill NEGOTIATION
Antonio CaudyJapanAnna Fali UNQUALIFIED
Julie StensethSpainAsiya Javayant UNQUALIFIED
Juan WieserBrazilIvan Magalhaes PROPOSAL
Clifford RimAustraliaAmy Elsner QUALIFIED
David DarakjyItalyIoni Bowcher PROPOSAL
Deepesh ChuiBrazilAnna Fali PROPOSAL
Sinclair WaycottRussiaStephen Shaw RENEWAL
Johnson SergiArgentinaIoni Bowcher NEGOTIATION
Ricardo GauchoSpainOnyama Limba UNQUALIFIED
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Julie StensethArgentinaOnyama Limba UNQUALIFIED
Izzy GarufiArgentinaIvan Magalhaes RENEWAL
Aruna FigeroaItalyStephen Shaw NEGOTIATION
Izzy GarufiJapanXuxue Feng QUALIFIED
Maisha RulapaughCanadaStephen Shaw PROPOSAL
Ashley DoeGermanyBernardo Dominic NEW
Jones VocelkaUnited KingdomXuxue Feng NEW
Sinclair WaycottCanadaXuxue Feng RENEWAL
Rodrigues CampainItalyXuxue Feng NEW
Izzy GarufiBrazilStephen Shaw UNQUALIFIED
Izzy GarufiUnited KingdomBernardo Dominic QUALIFIED
Clifford RimSpainIvan Magalhaes NEW
Kaitlin OstroskyArgentinaIoni Bowcher RENEWAL
Johnson SergiItalyBernardo Dominic UNQUALIFIED
Antonio CaudyFranceStephen Shaw RENEWAL
Leja CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Clifford RimItalyIoni Bowcher UNQUALIFIED
Johnson SergiFranceIvan Magalhaes RENEWAL
Mayumi KolmetzFranceElwin Sharvill QUALIFIED
Antonio CaudyAustraliaIvan Magalhaes NEW
Mujtaba NickaCanadaElwin Sharvill QUALIFIED
Jones VocelkaGermanyAsiya Javayant UNQUALIFIED
Antonio CaudyIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Stacey MacleadBrazilOnyama Limba PROPOSAL
Johnson SergiSpainAnna Fali NEGOTIATION
Jennifer AmigonGermanyAmy Elsner QUALIFIED
Faith GillianJapanAnna Fali UNQUALIFIED
Greenwood BologniaIndiaOnyama Limba NEGOTIATION
Arvin AlbaresArgentinaXuxue Feng UNQUALIFIED
Ashley DoeAustraliaBernardo Dominic UNQUALIFIED
Claire TollnerRussiaBernardo Dominic NEGOTIATION
Wickens NestleUnited KingdomBernardo Dominic PROPOSAL
Julie StensethJapanElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoSpain2021-10-01Truhlar And Truhlar Attys PROPOSAL69Ioni Bowcher
1001Wickens NestleJapan2021-10-08Truhlar And Truhlar Attys NEW59Onyama Limba
1002Mujtaba NickaItaly2021-10-06Rousseaux, Michael Esq UNQUALIFIED77Ivan Magalhaes
1003Wickens NestleIndia2021-10-01Chapman, Ross E Esq NEGOTIATION82Ioni Bowcher
1004Kaitlin OstroskyFrance2021-09-25Chapman, Ross E Esq NEW41Elwin Sharvill
1005Leon OldroydJapan2021-10-03Benton, John B Jr NEGOTIATION88Bernardo Dominic
1006Munro FerenczIndia2021-09-17Chapman, Ross E Esq UNQUALIFIED43Stephen Shaw
1007Arvin AlbaresGermany2021-10-01Rangoni Of Florence PROPOSAL80Bernardo Dominic
1008Octavia MaletIndia2021-09-19Morlong Associates QUALIFIED21Amy Elsner
1009Aditya KuskoSpain2021-10-06Feltz Printing Service QUALIFIED61Elwin Sharvill
1010Aruna FigeroaFrance2021-10-16Rousseaux, Michael Esq NEGOTIATION76Ivan Magalhaes
1011Alejandro PerinSpain2021-10-06Printing Dimensions NEW32Bernardo Dominic
1012Munro FerenczItaly2021-10-02Morlong Associates QUALIFIED28Asiya Javayant
1013Morrow RutaCanada2021-09-20Rousseaux, Michael Esq NEGOTIATION5Ioni Bowcher
1014Julie StensethUnited Kingdom2021-09-19Dorl, James J Esq RENEWAL68Anna Fali
1015David DarakjyArgentina2021-10-04Commercial Press NEW44Elwin Sharvill
1016Antonio CaudyFrance2021-09-29Benton, John B Jr QUALIFIED7Amy Elsner
1017Aika InouyeGermany2021-09-24Rousseaux, Michael Esq QUALIFIED83Xuxue Feng
1018Jones VocelkaJapan2021-09-19Chapman, Ross E Esq UNQUALIFIED38Ioni Bowcher
1019Stacey MacleadItaly2021-09-22Rousseaux, Michael Esq PROPOSAL48Amy Elsner
1020Izzy GarufiUnited Kingdom2021-10-13Chapman, Ross E Esq UNQUALIFIED26Stephen Shaw
1021Jennifer AmigonIndia2021-10-08Feltz Printing Service RENEWAL18Ioni Bowcher
1022Jennifer AmigonArgentina2021-10-05Chemel, James L Cpa UNQUALIFIED15Ioni Bowcher
1023Aruna FigeroaUnited Kingdom2021-10-09Chanay, Jeffrey A Esq NEW60Xuxue Feng
1024James ButtSpain2021-09-27Commercial Press UNQUALIFIED37Asiya Javayant
1025Adams MorascaAustralia2021-10-04Rangoni Of Florence PROPOSAL86Stephen Shaw
1026Juan WieserArgentina2021-09-17King, Christopher A Esq RENEWAL42Asiya Javayant
1027Jones VocelkaGermany2021-10-09Chapman, Ross E Esq RENEWAL91Xuxue Feng
1028Alejandro PerinItaly2021-10-12Dorl, James J Esq PROPOSAL23Asiya Javayant
1029Leja CaldareraUnited Kingdom2021-10-09Chanay, Jeffrey A Esq QUALIFIED31Anna Fali
1030Kadeem FlosiArgentina2021-10-07Chanay, Jeffrey A Esq PROPOSAL5Ioni Bowcher
1031Wickens NestleItaly2021-10-13Buckley Miller Wright UNQUALIFIED80Bernardo Dominic
1032Leon OldroydGermany2021-09-19King, Christopher A Esq UNQUALIFIED77Amy Elsner
1033Mujtaba NickaCanada2021-10-05Truhlar And Truhlar Attys NEW83Onyama Limba
1034Claire TollnerArgentina2021-10-01Benton, John B Jr UNQUALIFIED12Ivan Magalhaes
1035Alejandro PerinUnited Kingdom2021-10-11Rangoni Of Florence RENEWAL63Onyama Limba
1036Aruna FigeroaRussia2021-10-09Rousseaux, Michael Esq PROPOSAL52Ivan Magalhaes
1037Jones VocelkaSpain2021-10-12Printing Dimensions PROPOSAL29Onyama Limba
1038Deepesh ChuiJapan2021-10-10Chemel, James L Cpa RENEWAL54Asiya Javayant
1039Julie StensethFrance2021-10-02Benton, John B Jr QUALIFIED81Bernardo Dominic
1040Arvin AlbaresFrance2021-09-27Chemel, James L Cpa PROPOSAL8Onyama Limba
1041Mujtaba NickaRussia2021-10-05Morlong Associates PROPOSAL44Xuxue Feng
1042Juan WieserAustralia2021-09-23Feltz Printing Service NEGOTIATION71Stephen Shaw
1043Misaki RoysterSpain2021-10-01Morlong Associates NEW73Bernardo Dominic
1044Faith GillianCanada2021-10-15Chanay, Jeffrey A Esq RENEWAL60Ioni Bowcher
1045Ivar PaprockiUnited Kingdom2021-09-24Buckley Miller Wright NEGOTIATION22Bernardo Dominic
1046Emily WhobreySpain2021-10-05Buckley Miller Wright QUALIFIED95Onyama Limba
1047Johnson SergiArgentina2021-10-11Rangoni Of Florence NEGOTIATION2Ioni Bowcher
1048Claire TollnerFrance2021-10-02Dorl, James J Esq NEW35Onyama Limba
1049Smith GlickItaly2021-10-13Feltz Printing Service PROPOSAL45Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaArgentinaBernardo Dominic NEW
Silvio SlusarskiGermanyXuxue Feng PROPOSAL
Aika InouyeJapanAmy Elsner NEGOTIATION
Tony FollerUnited KingdomStephen Shaw NEW
Ashley DoeFranceBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaXuxue Feng NEGOTIATION
Ivar PaprockiCanadaBernardo Dominic QUALIFIED
Cody SaylorsItalyBernardo Dominic PROPOSAL
Ivar PaprockiRussiaIvan Magalhaes UNQUALIFIED
Maisha RulapaughBrazilIoni Bowcher UNQUALIFIED
Wickens NestleGermanyOnyama Limba PROPOSAL
Munro FerenczUnited KingdomXuxue Feng PROPOSAL
Morrow RutaAustraliaAnna Fali RENEWAL
David DarakjyIndiaIoni Bowcher PROPOSAL
Maria MarrierBrazilOnyama Limba PROPOSAL
Antonio CaudyFranceElwin Sharvill RENEWAL
Juan WieserJapanElwin Sharvill PROPOSAL
Leon OldroydItalyOnyama Limba NEW
Clifford RimIndiaElwin Sharvill NEGOTIATION
Rodrigues CampainRussiaIoni Bowcher RENEWAL
Clifford RimArgentinaIoni Bowcher QUALIFIED
Juan WieserGermanyOnyama Limba NEGOTIATION
Morrow RutaBrazilStephen Shaw NEGOTIATION
Costa DilliardIndiaAnna Fali PROPOSAL
Maisha RulapaughIndiaBernardo Dominic RENEWAL
Sinclair WaycottItalyIoni Bowcher PROPOSAL
Wickens NestleArgentinaBernardo Dominic RENEWAL
Antonio CaudyGermanyAnna Fali PROPOSAL
Wickens NestleItalyIoni Bowcher UNQUALIFIED
Jones VocelkaRussiaAsiya Javayant QUALIFIED
Octavia MaletJapanXuxue Feng UNQUALIFIED
Jones VocelkaGermanyBernardo Dominic NEGOTIATION
Smith GlickIndiaOnyama Limba UNQUALIFIED
Murillo MaletJapanIoni Bowcher RENEWAL
James ButtUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood BologniaCanadaBernardo Dominic UNQUALIFIED
Clifford RimSpainOnyama Limba RENEWAL
Deepesh ChuiArgentinaOnyama Limba QUALIFIED
Murillo MaletRussiaAsiya Javayant PROPOSAL
David DarakjyRussiaAnna Fali NEW
Aika InouyeAustraliaElwin Sharvill QUALIFIED
Munro FerenczGermanyAmy Elsner QUALIFIED
Adams MorascaGermanyBernardo Dominic RENEWAL
Isabel BowleyRussiaAsiya Javayant RENEWAL
Leja CaldareraSpainBernardo Dominic RENEWAL
Faith GillianGermanyAnna Fali RENEWAL
Rodrigues CampainUnited KingdomAnna Fali UNQUALIFIED
Rodrigues CampainSpainAnna Fali UNQUALIFIED
Chavez BriddickIndiaStephen Shaw NEGOTIATION
Antonio CaudyRussiaXuxue Feng RENEWAL
Frozen Columns
Name
Leja Caldarera
Antonio Caudy
Faith Gillian
Ivar Paprocki
Salvatore Stockham
Deepesh Chui
Mayumi Kolmetz
Sinclair Waycott
Francesco Shinko
Jefferson Schemmer
Maisha Rulapaugh
Ivar Paprocki
Stacey Maclead
Nicolas Iturbide
Jeanfrancois Venere
Ashley Doe
Francesco Shinko
Darci Poquette
Rodrigues Campain
James Butt
Johnson Sergi
Jefferson Schemmer
Munro Ferencz
Darci Poquette
Smith Glick
Costa Dilliard
Silvio Slusarski
Mujtaba Nicka
Mujtaba Nicka
Antonio Caudy
Maria Marrier
Costa Dilliard
Chavez Briddick
Ricardo Gaucho
Aditya Kusko
Costa Dilliard
Juan Wieser
Stacey Maclead
Silvio Slusarski
Antonio Caudy
James Butt
James Butt
Jefferson Schemmer
Antonio Caudy
Cody Saylors
Faith Gillian
Aditya Kusko
Julie Stenseth
Ivar Paprocki
Jeanfrancois Venere
IdCountryDate
1000Australia2021-10-16
1001Italy2021-10-11
1002United Kingdom2021-09-18
1003Italy2021-10-02
1004France2021-10-07
1005Argentina2021-10-11
1006United Kingdom2021-09-17
1007France2021-10-14
1008Japan2021-10-03
1009Italy2021-10-01
1010Japan2021-10-03
1011Brazil2021-09-18
1012France2021-10-08
1013Argentina2021-10-09
1014Japan2021-10-06
1015France2021-10-01
1016France2021-10-01
1017France2021-09-20
1018Spain2021-09-22
1019Italy2021-09-29
1020United Kingdom2021-09-24
1021United Kingdom2021-09-28
1022Spain2021-09-24
1023France2021-10-15
1024Russia2021-10-09
1025Argentina2021-09-18
1026Australia2021-09-25
1027India2021-09-22
1028Australia2021-10-07
1029Brazil2021-09-24
1030Russia2021-09-24
1031France2021-10-15
1032Germany2021-10-03
1033Japan2021-09-30
1034United Kingdom2021-09-29
1035Japan2021-10-05
1036Italy2021-09-26
1037United Kingdom2021-09-19
1038United Kingdom2021-10-10
1039Brazil2021-10-15
1040Italy2021-10-08
1041Australia2021-10-05
1042Germany2021-09-20
1043Germany2021-10-16
1044Italy2021-10-14
1045Argentina2021-09-26
1046India2021-10-13
1047United Kingdom2021-10-14
1048Russia2021-09-21
1049Argentina2021-10-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
No records found.

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