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
Izzy GarufiBrazilStephen Shaw QUALIFIED
Jefferson SchemmerSpainStephen Shaw NEGOTIATION
Munro FerenczBrazilBernardo Dominic PROPOSAL
Sinclair WaycottBrazilAnna Fali PROPOSAL
Jennifer AmigonGermanyAnna Fali UNQUALIFIED
Izzy GarufiItalyIoni Bowcher UNQUALIFIED
Claire TollnerCanadaAmy Elsner UNQUALIFIED
Munro FerenczBrazilAnna Fali NEGOTIATION
Aruna FigeroaIndiaStephen Shaw QUALIFIED
Murillo MaletCanadaAsiya Javayant PROPOSAL
Arvin AlbaresSpainAmy Elsner PROPOSAL
Adams MorascaIndiaElwin Sharvill NEGOTIATION
Tony FollerGermanyStephen Shaw RENEWAL
Adams MorascaArgentinaXuxue Feng PROPOSAL
Cody SaylorsUnited KingdomOnyama Limba PROPOSAL
Maria MarrierIndiaXuxue Feng NEGOTIATION
Maria MarrierIndiaOnyama Limba UNQUALIFIED
Kadeem FlosiItalyOnyama Limba RENEWAL
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
Wickens NestleJapanAsiya Javayant NEGOTIATION
Emily WhobreyIndiaIvan Magalhaes NEGOTIATION
Claire TollnerJapanElwin Sharvill UNQUALIFIED
Arvin AlbaresArgentinaStephen Shaw PROPOSAL
Ricardo GauchoUnited KingdomXuxue Feng PROPOSAL
Munro FerenczUnited KingdomBernardo Dominic RENEWAL
Claire TollnerBrazilAmy Elsner QUALIFIED
Juan WieserSpainStephen Shaw NEGOTIATION
Nicolas IturbideGermanyAnna Fali QUALIFIED
Johnson SergiArgentinaStephen Shaw RENEWAL
Juan WieserJapanElwin Sharvill UNQUALIFIED
Ashley DoeRussiaIvan Magalhaes PROPOSAL
Morrow RutaFranceStephen Shaw RENEWAL
Ivar PaprockiIndiaAnna Fali UNQUALIFIED
David DarakjyCanadaElwin Sharvill PROPOSAL
Maria MarrierArgentinaIvan Magalhaes RENEWAL
Wickens NestleRussiaOnyama Limba UNQUALIFIED
David DarakjyFranceOnyama Limba NEGOTIATION
Julie StensethGermanyOnyama Limba RENEWAL
Jefferson SchemmerBrazilOnyama Limba NEGOTIATION
Claire TollnerUnited KingdomXuxue Feng PROPOSAL
Juan WieserCanadaStephen Shaw RENEWAL
Kadeem FlosiFranceElwin Sharvill UNQUALIFIED
Kadeem FlosiCanadaAsiya Javayant RENEWAL
Nicolas IturbideAustraliaBernardo Dominic PROPOSAL
Isabel BowleyUnited KingdomAmy Elsner NEGOTIATION
Alejandro PerinCanadaXuxue Feng QUALIFIED
Faith GillianFranceIvan Magalhaes NEGOTIATION
Salvatore StockhamJapanXuxue Feng QUALIFIED
Jennifer AmigonFranceAsiya Javayant QUALIFIED
Clifford RimArgentinaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa DilliardFranceAsiya Javayant UNQUALIFIED
Maria MarrierJapanElwin Sharvill RENEWAL
Misaki RoysterCanadaBernardo Dominic QUALIFIED
Greenwood BologniaItalyElwin Sharvill RENEWAL
Isabel BowleySpainIvan Magalhaes NEGOTIATION
Wickens NestleAustraliaOnyama Limba QUALIFIED
Smith GlickJapanAnna Fali RENEWAL
Deepesh ChuiFranceAnna Fali PROPOSAL
Julie StensethCanadaAnna Fali QUALIFIED
Octavia MaletArgentinaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianUnited Kingdom2021-10-15King, Christopher A Esq PROPOSAL1Elwin Sharvill
1001Ashley DoeCanada2021-09-23Chapman, Ross E Esq NEW93Elwin Sharvill
1002Smith GlickItaly2021-09-22Feltz Printing Service NEGOTIATION41Ioni Bowcher
1003Leja CaldareraAustralia2021-10-14Feiner Bros PROPOSAL42Xuxue Feng
1004Antonio CaudyIndia2021-09-23Chapman, Ross E Esq PROPOSAL25Asiya Javayant
1005Jeanfrancois VenereItaly2021-10-01Printing Dimensions UNQUALIFIED7Onyama Limba
1006Murillo MaletRussia2021-10-16Printing Dimensions UNQUALIFIED6Amy Elsner
1007Greenwood BologniaSpain2021-09-25Buckley Miller Wright QUALIFIED59Asiya Javayant
1008James ButtGermany2021-09-30Commercial Press PROPOSAL57Stephen Shaw
1009Rodrigues CampainItaly2021-09-21Chanay, Jeffrey A Esq PROPOSAL3Ioni Bowcher
1010Smith GlickRussia2021-10-10Printing Dimensions NEW7Onyama Limba
1011Jones VocelkaSpain2021-09-24Morlong Associates UNQUALIFIED61Bernardo Dominic
1012Mujtaba NickaFrance2021-10-10Rangoni Of Florence NEGOTIATION22Elwin Sharvill
1013Octavia MaletUnited Kingdom2021-10-16King, Christopher A Esq QUALIFIED70Elwin Sharvill
1014Aditya KuskoCanada2021-10-16Dorl, James J Esq PROPOSAL23Elwin Sharvill
1015Rodrigues CampainAustralia2021-09-26Chapman, Ross E Esq NEW12Bernardo Dominic
1016Murillo MaletUnited Kingdom2021-09-26Chanay, Jeffrey A Esq QUALIFIED79Anna Fali
1017Alejandro PerinCanada2021-10-12Rousseaux, Michael Esq PROPOSAL98Elwin Sharvill
1018Ashley DoeAustralia2021-09-28Benton, John B Jr QUALIFIED6Xuxue Feng
1019Faith GillianRussia2021-10-15Feiner Bros QUALIFIED5Onyama Limba
1020Jennifer AmigonFrance2021-09-24Rousseaux, Michael Esq UNQUALIFIED6Xuxue Feng
1021Kadeem FlosiAustralia2021-09-24Truhlar And Truhlar Attys PROPOSAL70Ivan Magalhaes
1022Cody SaylorsCanada2021-10-17Dorl, James J Esq PROPOSAL79Amy Elsner
1023Claire TollnerJapan2021-10-06Printing Dimensions NEGOTIATION54Bernardo Dominic
1024Wickens NestleAustralia2021-10-02Feltz Printing Service PROPOSAL77Stephen Shaw
1025Faith GillianJapan2021-10-12Truhlar And Truhlar Attys RENEWAL3Bernardo Dominic
1026Adams MorascaBrazil2021-10-07Commercial Press NEW97Anna Fali
1027Jeanfrancois VenereUnited Kingdom2021-10-16Rousseaux, Michael Esq QUALIFIED90Ioni Bowcher
1028Rodrigues CampainItaly2021-10-11Feiner Bros RENEWAL86Anna Fali
1029Antonio CaudyCanada2021-09-29Printing Dimensions QUALIFIED46Ioni Bowcher
1030Darci PoquetteSpain2021-09-26Chanay, Jeffrey A Esq UNQUALIFIED87Xuxue Feng
1031Francesco ShinkoAustralia2021-10-09Rousseaux, Michael Esq RENEWAL42Bernardo Dominic
1032Aditya KuskoGermany2021-09-22Printing Dimensions QUALIFIED78Anna Fali
1033Isabel BowleyCanada2021-09-19Chanay, Jeffrey A Esq NEW26Stephen Shaw
1034Emily WhobreySpain2021-10-08Benton, John B Jr PROPOSAL5Ivan Magalhaes
1035Faith GillianIndia2021-10-10Benton, John B Jr RENEWAL63Xuxue Feng
1036Maria MarrierJapan2021-09-24Chapman, Ross E Esq NEW59Ioni Bowcher
1037Aditya KuskoIndia2021-10-17Feiner Bros NEGOTIATION54Onyama Limba
1038Clifford RimBrazil2021-10-06King, Christopher A Esq RENEWAL59Ioni Bowcher
1039Ricardo GauchoSpain2021-10-14Rangoni Of Florence NEW62Anna Fali
1040Silvio SlusarskiCanada2021-10-17Dorl, James J Esq NEW15Bernardo Dominic
1041Jefferson SchemmerJapan2021-10-04Chemel, James L Cpa PROPOSAL15Elwin Sharvill
1042Jennifer AmigonFrance2021-10-09King, Christopher A Esq UNQUALIFIED54Amy Elsner
1043Ricardo GauchoIndia2021-09-23Printing Dimensions NEGOTIATION73Elwin Sharvill
1044Kadeem FlosiAustralia2021-09-29Chapman, Ross E Esq QUALIFIED51Xuxue Feng
1045Antonio CaudyUnited Kingdom2021-10-10Rangoni Of Florence UNQUALIFIED0Onyama Limba
1046Clifford RimAustralia2021-09-30Morlong Associates NEW35Xuxue Feng
1047Octavia MaletJapan2021-09-30Feltz Printing Service UNQUALIFIED31Ivan Magalhaes
1048Clifford RimSpain2021-09-18Rangoni Of Florence NEGOTIATION47Ioni Bowcher
1049David DarakjySpain2021-09-26Chemel, James L Cpa QUALIFIED40Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickArgentinaOnyama Limba PROPOSAL
Jefferson SchemmerIndiaAmy Elsner RENEWAL
Morrow RutaUnited KingdomStephen Shaw NEGOTIATION
Tony FollerBrazilStephen Shaw NEGOTIATION
Arvin AlbaresIndiaElwin Sharvill RENEWAL
Misaki RoysterGermanyAsiya Javayant UNQUALIFIED
Chavez BriddickAustraliaAnna Fali QUALIFIED
Jeanfrancois VenereItalyAnna Fali QUALIFIED
Octavia MaletFranceAmy Elsner UNQUALIFIED
Greenwood BologniaBrazilIvan Magalhaes RENEWAL
Costa DilliardIndiaAsiya Javayant NEW
Rodrigues CampainBrazilOnyama Limba NEGOTIATION
Juan WieserAustraliaIoni Bowcher RENEWAL
Julie StensethJapanElwin Sharvill PROPOSAL
Silvio SlusarskiRussiaAsiya Javayant NEGOTIATION
Tony FollerItalyAsiya Javayant NEW
Juan WieserItalyAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Claire TollnerBrazilIoni Bowcher RENEWAL
Tony FollerBrazilOnyama Limba NEW
Julie StensethBrazilAsiya Javayant PROPOSAL
Murillo MaletJapanIvan Magalhaes NEGOTIATION
Aruna FigeroaIndiaIoni Bowcher NEW
Misaki RoysterArgentinaAsiya Javayant UNQUALIFIED
Cody SaylorsRussiaIoni Bowcher NEW
Salvatore StockhamIndiaElwin Sharvill NEW
Faith GillianItalyAsiya Javayant QUALIFIED
Isabel BowleySpainAnna Fali NEGOTIATION
Aika InouyeCanadaAmy Elsner QUALIFIED
Maria MarrierJapanAsiya Javayant UNQUALIFIED
Kadeem FlosiItalyAnna Fali RENEWAL
Stacey MacleadJapanAsiya Javayant NEW
Jennifer AmigonSpainAsiya Javayant NEGOTIATION
Arvin AlbaresItalyElwin Sharvill PROPOSAL
Jeanfrancois VenereArgentinaStephen Shaw RENEWAL
Silvio SlusarskiSpainAsiya Javayant RENEWAL
Silvio SlusarskiSpainStephen Shaw NEGOTIATION
Maria MarrierIndiaAsiya Javayant UNQUALIFIED
Leja CaldareraFranceAmy Elsner PROPOSAL
Morrow RutaBrazilAmy Elsner NEW
Aditya KuskoGermanyElwin Sharvill NEW
Mayumi KolmetzFranceIoni Bowcher UNQUALIFIED
Mujtaba NickaIndiaElwin Sharvill NEGOTIATION
Alejandro PerinFranceAnna Fali NEGOTIATION
Smith GlickBrazilElwin Sharvill NEGOTIATION
Munro FerenczJapanStephen Shaw NEW
Smith GlickBrazilOnyama Limba NEW
Misaki RoysterItalyAsiya Javayant NEGOTIATION
Julie StensethBrazilIvan Magalhaes NEW
Murillo MaletIndiaAmy Elsner QUALIFIED
Frozen Columns
Name
Antonio Caudy
James Butt
Aruna Figeroa
Leon Oldroyd
Kadeem Flosi
Chavez Briddick
Alejandro Perin
Morrow Ruta
Aruna Figeroa
Izzy Garufi
Smith Glick
Jefferson Schemmer
Tony Foller
Silvio Slusarski
Rodrigues Campain
Rodrigues Campain
Morrow Ruta
Silvio Slusarski
Salvatore Stockham
Wickens Nestle
Izzy Garufi
Faith Gillian
Jeanfrancois Venere
Emily Whobrey
Johnson Sergi
Jeanfrancois Venere
Emily Whobrey
Chavez Briddick
Claire Tollner
Cody Saylors
Rodrigues Campain
Ashley Doe
Aditya Kusko
Deepesh Chui
Chavez Briddick
Sinclair Waycott
Nicolas Iturbide
Wickens Nestle
Mujtaba Nicka
Mujtaba Nicka
Johnson Sergi
Kadeem Flosi
Silvio Slusarski
Jones Vocelka
Jeanfrancois Venere
Arvin Albares
Munro Ferencz
James Butt
Munro Ferencz
Kaitlin Ostrosky
IdCountryDate
1000Canada2021-10-01
1001France2021-10-13
1002Canada2021-09-20
1003Japan2021-10-11
1004Argentina2021-10-10
1005Australia2021-09-30
1006Spain2021-10-01
1007Brazil2021-10-07
1008India2021-10-13
1009United Kingdom2021-09-25
1010India2021-10-09
1011Brazil2021-10-02
1012Russia2021-10-15
1013Germany2021-10-05
1014Russia2021-10-09
1015Germany2021-10-15
1016Russia2021-10-15
1017Italy2021-10-14
1018France2021-10-06
1019United Kingdom2021-10-14
1020Argentina2021-10-03
1021Russia2021-09-30
1022Australia2021-09-21
1023Germany2021-09-27
1024India2021-10-12
1025Germany2021-10-05
1026Argentina2021-10-04
1027Italy2021-10-01
1028France2021-10-09
1029Canada2021-09-29
1030Canada2021-09-25
1031Spain2021-10-06
1032Canada2021-10-13
1033France2021-10-13
1034Germany2021-10-16
1035Japan2021-10-12
1036Australia2021-09-25
1037India2021-09-22
1038Argentina2021-10-15
1039France2021-10-10
1040France2021-09-26
1041Brazil2021-10-06
1042Canada2021-10-01
1043Brazil2021-10-16
1044United Kingdom2021-10-01
1045Canada2021-10-08
1046United Kingdom2021-10-10
1047Canada2021-10-03
1048United Kingdom2021-10-08
1049Argentina2021-09-23
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: