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
Stacey MacleadItalyXuxue Feng NEGOTIATION
Isabel BowleyItalyOnyama Limba UNQUALIFIED
Aika InouyeRussiaElwin Sharvill PROPOSAL
Leja CaldareraAustraliaIoni Bowcher NEW
Darci PoquetteItalyStephen Shaw PROPOSAL
Cody SaylorsBrazilBernardo Dominic PROPOSAL
Ricardo GauchoBrazilStephen Shaw NEW
Kadeem FlosiArgentinaIoni Bowcher RENEWAL
Johnson SergiIndiaAnna Fali QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher RENEWAL
Antonio CaudySpainIoni Bowcher NEW
Greenwood BologniaJapanAsiya Javayant NEW
Ivar PaprockiCanadaAnna Fali UNQUALIFIED
Kaitlin OstroskyCanadaAsiya Javayant UNQUALIFIED
Costa DilliardFranceElwin Sharvill QUALIFIED
Aditya KuskoSpainXuxue Feng PROPOSAL
Jefferson SchemmerGermanyAnna Fali NEGOTIATION
Kadeem FlosiUnited KingdomStephen Shaw QUALIFIED
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Mujtaba NickaArgentinaAnna Fali NEGOTIATION
Sinclair WaycottJapanAsiya Javayant UNQUALIFIED
Maria MarrierSpainBernardo Dominic NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng UNQUALIFIED
Jones VocelkaSpainBernardo Dominic PROPOSAL
Faith GillianItalyOnyama Limba RENEWAL
Johnson SergiUnited KingdomIvan Magalhaes NEW
Stacey MacleadJapanOnyama Limba NEGOTIATION
Nicolas IturbideArgentinaAnna Fali UNQUALIFIED
Rodrigues CampainArgentinaElwin Sharvill RENEWAL
Johnson SergiIndiaElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceAmy Elsner PROPOSAL
Leon OldroydFranceStephen Shaw PROPOSAL
Greenwood BologniaJapanElwin Sharvill RENEWAL
Maria MarrierBrazilIvan Magalhaes NEGOTIATION
Munro FerenczGermanyIvan Magalhaes NEW
Leon OldroydSpainIvan Magalhaes PROPOSAL
Costa DilliardUnited KingdomAsiya Javayant QUALIFIED
Stacey MacleadJapanBernardo Dominic RENEWAL
Ricardo GauchoItalyAnna Fali RENEWAL
Tony FollerItalyBernardo Dominic UNQUALIFIED
Faith GillianGermanyAnna Fali NEW
Wickens NestleArgentinaIoni Bowcher RENEWAL
Jeanfrancois VenereArgentinaElwin Sharvill UNQUALIFIED
Murillo MaletSpainXuxue Feng QUALIFIED
Wickens NestleSpainAmy Elsner PROPOSAL
Claire TollnerJapanAnna Fali QUALIFIED
Octavia MaletArgentinaAmy Elsner RENEWAL
Maisha RulapaughArgentinaXuxue Feng NEGOTIATION
Francesco ShinkoUnited KingdomAmy Elsner NEW
Maisha RulapaughRussiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria MarrierBrazilAsiya Javayant PROPOSAL
Kadeem FlosiSpainIvan Magalhaes PROPOSAL
Octavia MaletAustraliaElwin Sharvill RENEWAL
Johnson SergiArgentinaAmy Elsner RENEWAL
Chavez BriddickSpainAsiya Javayant PROPOSAL
Mayumi KolmetzBrazilElwin Sharvill NEGOTIATION
Alejandro PerinItalyAnna Fali PROPOSAL
Rodrigues CampainJapanIvan Magalhaes NEGOTIATION
Jeanfrancois VenereCanadaStephen Shaw PROPOSAL
Jones VocelkaUnited KingdomXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio SlusarskiRussia2021-09-21Feiner Bros NEGOTIATION37Asiya Javayant
1001Munro FerenczArgentina2021-10-01Feiner Bros NEGOTIATION6Elwin Sharvill
1002Ivar PaprockiGermany2021-09-30Chanay, Jeffrey A Esq RENEWAL22Onyama Limba
1003Ricardo GauchoItaly2021-09-26Benton, John B Jr PROPOSAL5Amy Elsner
1004Ashley DoeJapan2021-09-22Buckley Miller Wright PROPOSAL39Anna Fali
1005Claire TollnerGermany2021-10-02Rangoni Of Florence NEW80Onyama Limba
1006James ButtBrazil2021-10-01Buckley Miller Wright NEW73Elwin Sharvill
1007Tony FollerSpain2021-09-28Feiner Bros UNQUALIFIED56Stephen Shaw
1008Emily WhobreyRussia2021-10-02Morlong Associates RENEWAL9Asiya Javayant
1009David DarakjyJapan2021-09-20Morlong Associates NEGOTIATION41Stephen Shaw
1010Wickens NestleFrance2021-09-28Commercial Press PROPOSAL47Xuxue Feng
1011Deepesh ChuiBrazil2021-09-28Truhlar And Truhlar Attys NEGOTIATION77Xuxue Feng
1012Johnson SergiJapan2021-09-27Chapman, Ross E Esq NEW22Stephen Shaw
1013James ButtArgentina2021-09-16Printing Dimensions NEGOTIATION63Anna Fali
1014Claire TollnerIndia2021-09-17Buckley Miller Wright QUALIFIED58Xuxue Feng
1015Jones VocelkaBrazil2021-10-09Truhlar And Truhlar Attys PROPOSAL54Stephen Shaw
1016Deepesh ChuiCanada2021-10-10Printing Dimensions RENEWAL67Asiya Javayant
1017Jennifer AmigonIndia2021-09-27Chemel, James L Cpa UNQUALIFIED51Ioni Bowcher
1018Faith GillianArgentina2021-10-02Truhlar And Truhlar Attys NEW68Stephen Shaw
1019Jones VocelkaJapan2021-10-04Buckley Miller Wright NEGOTIATION95Amy Elsner
1020Mujtaba NickaSpain2021-09-27Commercial Press NEGOTIATION9Onyama Limba
1021Munro FerenczItaly2021-09-26Benton, John B Jr NEW66Bernardo Dominic
1022Francesco ShinkoItaly2021-10-02Commercial Press PROPOSAL90Ioni Bowcher
1023Leja CaldareraIndia2021-09-25Dorl, James J Esq QUALIFIED65Anna Fali
1024Sinclair WaycottSpain2021-10-10Dorl, James J Esq UNQUALIFIED67Asiya Javayant
1025James ButtGermany2021-09-17Commercial Press NEW45Ivan Magalhaes
1026Francesco ShinkoBrazil2021-10-02Commercial Press NEGOTIATION56Elwin Sharvill
1027Smith GlickAustralia2021-09-30Truhlar And Truhlar Attys UNQUALIFIED73Amy Elsner
1028Adams MorascaAustralia2021-09-21Printing Dimensions UNQUALIFIED81Anna Fali
1029Sinclair WaycottFrance2021-10-12Morlong Associates NEW36Xuxue Feng
1030Leja CaldareraCanada2021-10-08Rousseaux, Michael Esq NEW71Ioni Bowcher
1031Greenwood BologniaRussia2021-10-14Rousseaux, Michael Esq NEGOTIATION88Bernardo Dominic
1032Sinclair WaycottCanada2021-09-24Truhlar And Truhlar Attys UNQUALIFIED28Xuxue Feng
1033Julie StensethIndia2021-10-05Buckley Miller Wright PROPOSAL87Xuxue Feng
1034Rodrigues CampainAustralia2021-10-11Feltz Printing Service NEGOTIATION92Onyama Limba
1035Maisha RulapaughAustralia2021-09-19Truhlar And Truhlar Attys NEGOTIATION7Asiya Javayant
1036Ivar PaprockiArgentina2021-09-23King, Christopher A Esq NEW23Onyama Limba
1037Silvio SlusarskiCanada2021-09-28Dorl, James J Esq NEGOTIATION19Stephen Shaw
1038Aditya KuskoAustralia2021-09-28Dorl, James J Esq UNQUALIFIED98Elwin Sharvill
1039Sinclair WaycottCanada2021-10-09Chanay, Jeffrey A Esq PROPOSAL7Bernardo Dominic
1040Aruna FigeroaArgentina2021-10-15Buckley Miller Wright NEGOTIATION28Anna Fali
1041Nicolas IturbideArgentina2021-10-10Benton, John B Jr PROPOSAL78Onyama Limba
1042Octavia MaletGermany2021-09-17Chapman, Ross E Esq UNQUALIFIED72Amy Elsner
1043Cody SaylorsSpain2021-10-08Feltz Printing Service RENEWAL61Ivan Magalhaes
1044Deepesh ChuiAustralia2021-09-27Morlong Associates QUALIFIED96Bernardo Dominic
1045Smith GlickSpain2021-10-03Feiner Bros NEGOTIATION96Xuxue Feng
1046Claire TollnerCanada2021-09-16Feltz Printing Service NEGOTIATION18Bernardo Dominic
1047Chavez BriddickSpain2021-09-19Feltz Printing Service RENEWAL35Xuxue Feng
1048Smith GlickJapan2021-10-05Feltz Printing Service NEGOTIATION9Ioni Bowcher
1049Francesco ShinkoSpain2021-10-10Rangoni Of Florence QUALIFIED65Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideRussiaIvan Magalhaes UNQUALIFIED
Morrow RutaIndiaAsiya Javayant NEGOTIATION
Claire TollnerAustraliaBernardo Dominic PROPOSAL
Jefferson SchemmerItalyStephen Shaw NEW
Sinclair WaycottSpainOnyama Limba PROPOSAL
Smith GlickGermanyAsiya Javayant RENEWAL
Jones VocelkaIndiaStephen Shaw PROPOSAL
Leja CaldareraCanadaIoni Bowcher PROPOSAL
Antonio CaudyItalyIoni Bowcher NEW
Smith GlickJapanAsiya Javayant QUALIFIED
Adams MorascaAustraliaAmy Elsner RENEWAL
Maisha RulapaughCanadaIoni Bowcher NEGOTIATION
Stacey MacleadCanadaIvan Magalhaes RENEWAL
Leja CaldareraCanadaStephen Shaw NEGOTIATION
Darci PoquetteBrazilIoni Bowcher PROPOSAL
Ivar PaprockiFranceElwin Sharvill UNQUALIFIED
Chavez BriddickItalyBernardo Dominic QUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Darci PoquetteGermanyStephen Shaw NEW
Ashley DoeFranceAnna Fali NEW
Greenwood BologniaIndiaIoni Bowcher NEGOTIATION
Cody SaylorsFranceAsiya Javayant QUALIFIED
Costa DilliardIndiaAnna Fali NEW
Stacey MacleadUnited KingdomXuxue Feng RENEWAL
Jennifer AmigonUnited KingdomAnna Fali NEW
Johnson SergiJapanIoni Bowcher NEGOTIATION
Jefferson SchemmerGermanyXuxue Feng PROPOSAL
Jennifer AmigonAustraliaIoni Bowcher UNQUALIFIED
Kadeem FlosiSpainAmy Elsner PROPOSAL
Cody SaylorsAustraliaStephen Shaw PROPOSAL
Jefferson SchemmerRussiaAmy Elsner QUALIFIED
Chavez BriddickCanadaXuxue Feng PROPOSAL
Murillo MaletBrazilOnyama Limba UNQUALIFIED
Julie StensethItalyXuxue Feng RENEWAL
Clifford RimCanadaAmy Elsner QUALIFIED
Morrow RutaRussiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresFranceOnyama Limba RENEWAL
Chavez BriddickRussiaOnyama Limba QUALIFIED
Izzy GarufiArgentinaElwin Sharvill RENEWAL
Julie StensethGermanyAnna Fali UNQUALIFIED
Claire TollnerSpainBernardo Dominic UNQUALIFIED
Salvatore StockhamGermanyXuxue Feng UNQUALIFIED
Izzy GarufiRussiaStephen Shaw RENEWAL
Arvin AlbaresRussiaStephen Shaw NEGOTIATION
Jones VocelkaRussiaAsiya Javayant QUALIFIED
Silvio SlusarskiArgentinaIoni Bowcher PROPOSAL
Stacey MacleadItalyElwin Sharvill QUALIFIED
Wickens NestleItalyAnna Fali NEW
Izzy GarufiFranceAnna Fali UNQUALIFIED
Misaki RoysterBrazilIvan Magalhaes RENEWAL
Frozen Columns
Name
Greenwood Bolognia
Octavia Malet
Claire Tollner
Morrow Ruta
Aika Inouye
Aika Inouye
Smith Glick
Wickens Nestle
Arvin Albares
Arvin Albares
Silvio Slusarski
Faith Gillian
Ivar Paprocki
Arvin Albares
Deepesh Chui
Nicolas Iturbide
Clifford Rim
Munro Ferencz
Jeanfrancois Venere
Jennifer Amigon
Nicolas Iturbide
Francesco Shinko
Morrow Ruta
Aika Inouye
Silvio Slusarski
Isabel Bowley
Octavia Malet
Munro Ferencz
Murillo Malet
Greenwood Bolognia
Salvatore Stockham
Jones Vocelka
Misaki Royster
Sinclair Waycott
Munro Ferencz
Ashley Doe
Ivar Paprocki
Mujtaba Nicka
Jennifer Amigon
Mayumi Kolmetz
Salvatore Stockham
Aditya Kusko
Silvio Slusarski
Claire Tollner
Antonio Caudy
Morrow Ruta
Sinclair Waycott
Costa Dilliard
Leon Oldroyd
Maria Marrier
IdCountryDate
1000Canada2021-09-26
1001Spain2021-09-25
1002Brazil2021-10-01
1003Canada2021-09-26
1004France2021-09-19
1005Italy2021-10-14
1006Australia2021-09-18
1007India2021-09-28
1008United Kingdom2021-10-07
1009Spain2021-10-08
1010Australia2021-10-03
1011Germany2021-10-06
1012Australia2021-10-01
1013Italy2021-10-01
1014Australia2021-09-17
1015Canada2021-09-23
1016Germany2021-09-17
1017Canada2021-10-14
1018Brazil2021-09-21
1019France2021-09-27
1020Japan2021-09-25
1021India2021-10-12
1022India2021-09-17
1023United Kingdom2021-09-17
1024Germany2021-09-22
1025India2021-10-03
1026France2021-09-26
1027United Kingdom2021-10-07
1028Australia2021-10-11
1029Italy2021-10-12
1030Japan2021-09-26
1031United Kingdom2021-10-12
1032India2021-10-10
1033Italy2021-09-18
1034Argentina2021-10-13
1035France2021-09-28
1036India2021-09-22
1037France2021-10-14
1038Russia2021-10-09
1039United Kingdom2021-10-11
1040Spain2021-10-07
1041Russia2021-10-12
1042France2021-09-16
1043Brazil2021-10-02
1044Spain2021-10-08
1045Brazil2021-09-27
1046Russia2021-09-25
1047Russia2021-09-16
1048Spain2021-09-16
1049Russia2021-10-11
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: