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 MacleadAustraliaAsiya Javayant QUALIFIED
Claire TollnerRussiaOnyama Limba NEGOTIATION
Rodrigues CampainUnited KingdomOnyama Limba NEGOTIATION
Octavia MaletCanadaAmy Elsner UNQUALIFIED
Juan WieserCanadaStephen Shaw NEW
Stacey MacleadArgentinaXuxue Feng QUALIFIED
Aika InouyeUnited KingdomBernardo Dominic NEGOTIATION
Munro FerenczCanadaOnyama Limba PROPOSAL
Ivar PaprockiFranceStephen Shaw QUALIFIED
Munro FerenczCanadaAmy Elsner NEGOTIATION
Mayumi KolmetzGermanyOnyama Limba PROPOSAL
Salvatore StockhamBrazilAnna Fali RENEWAL
Leja CaldareraBrazilStephen Shaw UNQUALIFIED
Rodrigues CampainSpainElwin Sharvill NEW
Deepesh ChuiCanadaIvan Magalhaes NEGOTIATION
Isabel BowleyGermanyAsiya Javayant UNQUALIFIED
Adams MorascaCanadaIvan Magalhaes UNQUALIFIED
Aditya KuskoIndiaIoni Bowcher NEGOTIATION
Morrow RutaSpainIoni Bowcher NEW
Aruna FigeroaUnited KingdomBernardo Dominic QUALIFIED
Mayumi KolmetzRussiaOnyama Limba UNQUALIFIED
Nicolas IturbideUnited KingdomIvan Magalhaes PROPOSAL
Octavia MaletFranceAsiya Javayant RENEWAL
Jeanfrancois VenereArgentinaAsiya Javayant UNQUALIFIED
Jefferson SchemmerUnited KingdomAmy Elsner QUALIFIED
David DarakjyJapanAsiya Javayant RENEWAL
Claire TollnerAustraliaBernardo Dominic NEGOTIATION
Silvio SlusarskiItalyBernardo Dominic UNQUALIFIED
Wickens NestleBrazilAsiya Javayant NEGOTIATION
Leja CaldareraAustraliaAsiya Javayant QUALIFIED
Nicolas IturbideCanadaAnna Fali NEGOTIATION
Wickens NestleArgentinaIoni Bowcher NEW
Tony FollerArgentinaOnyama Limba UNQUALIFIED
Smith GlickJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraArgentinaAsiya Javayant QUALIFIED
Kaitlin OstroskyGermanyXuxue Feng PROPOSAL
Aruna FigeroaRussiaOnyama Limba NEW
Maisha RulapaughItalyIoni Bowcher UNQUALIFIED
Morrow RutaBrazilAsiya Javayant UNQUALIFIED
Kadeem FlosiAustraliaIoni Bowcher PROPOSAL
Arvin AlbaresRussiaStephen Shaw RENEWAL
Arvin AlbaresRussiaXuxue Feng NEW
Silvio SlusarskiBrazilAmy Elsner NEGOTIATION
Leja CaldareraCanadaStephen Shaw UNQUALIFIED
Mayumi KolmetzSpainIoni Bowcher NEW
Murillo MaletJapanElwin Sharvill QUALIFIED
Isabel BowleyFranceXuxue Feng RENEWAL
Jennifer AmigonArgentinaOnyama Limba NEW
Wickens NestleArgentinaStephen Shaw NEGOTIATION
Antonio CaudyAustraliaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford RimArgentinaStephen Shaw PROPOSAL
Kadeem FlosiFranceBernardo Dominic RENEWAL
Mayumi KolmetzAustraliaIoni Bowcher RENEWAL
Stacey MacleadCanadaBernardo Dominic PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher NEGOTIATION
Johnson SergiIndiaAmy Elsner UNQUALIFIED
Darci PoquetteArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois VenereRussiaAmy Elsner NEW
Arvin AlbaresSpainStephen Shaw PROPOSAL
Aditya KuskoGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiCanada2021-09-27Dorl, James J Esq UNQUALIFIED71Ioni Bowcher
1001Jones VocelkaBrazil2021-10-04King, Christopher A Esq NEW37Ioni Bowcher
1002Isabel BowleyIndia2021-10-02Morlong Associates UNQUALIFIED52Anna Fali
1003Cody SaylorsFrance2021-09-24Rousseaux, Michael Esq NEW67Onyama Limba
1004Clifford RimUnited Kingdom2021-10-16Benton, John B Jr NEW74Amy Elsner
1005Silvio SlusarskiRussia2021-09-30Feiner Bros RENEWAL7Elwin Sharvill
1006Murillo MaletArgentina2021-09-30Morlong Associates RENEWAL73Bernardo Dominic
1007Greenwood BologniaUnited Kingdom2021-10-18Chanay, Jeffrey A Esq PROPOSAL71Stephen Shaw
1008Francesco ShinkoJapan2021-10-18Morlong Associates RENEWAL94Elwin Sharvill
1009Greenwood BologniaAustralia2021-09-23Buckley Miller Wright NEW33Bernardo Dominic
1010Chavez BriddickCanada2021-09-24Feltz Printing Service NEGOTIATION72Amy Elsner
1011Maria MarrierFrance2021-10-20Chemel, James L Cpa UNQUALIFIED29Bernardo Dominic
1012Maisha RulapaughCanada2021-10-02Chapman, Ross E Esq PROPOSAL42Xuxue Feng
1013Ashley DoeBrazil2021-10-03Printing Dimensions NEGOTIATION22Amy Elsner
1014Juan WieserSpain2021-10-21Feltz Printing Service PROPOSAL90Ioni Bowcher
1015Mujtaba NickaJapan2021-10-22Chapman, Ross E Esq NEGOTIATION57Asiya Javayant
1016Stacey MacleadArgentina2021-10-04Dorl, James J Esq UNQUALIFIED99Amy Elsner
1017Jennifer AmigonFrance2021-10-17Benton, John B Jr NEW80Stephen Shaw
1018Ivar PaprockiIndia2021-10-22Chanay, Jeffrey A Esq RENEWAL96Ioni Bowcher
1019Aika InouyeIndia2021-10-01Rousseaux, Michael Esq QUALIFIED66Asiya Javayant
1020Maisha RulapaughCanada2021-10-19Truhlar And Truhlar Attys PROPOSAL36Xuxue Feng
1021David DarakjySpain2021-10-06Chanay, Jeffrey A Esq QUALIFIED24Elwin Sharvill
1022Stacey MacleadUnited Kingdom2021-10-22Chemel, James L Cpa RENEWAL35Ioni Bowcher
1023Johnson SergiGermany2021-10-17Printing Dimensions QUALIFIED60Onyama Limba
1024Mayumi KolmetzIndia2021-10-11Chanay, Jeffrey A Esq NEW82Xuxue Feng
1025Juan WieserFrance2021-10-02Printing Dimensions PROPOSAL92Stephen Shaw
1026Rodrigues CampainJapan2021-10-09Morlong Associates NEGOTIATION24Asiya Javayant
1027Silvio SlusarskiJapan2021-10-19Chapman, Ross E Esq PROPOSAL30Onyama Limba
1028Salvatore StockhamBrazil2021-10-01King, Christopher A Esq UNQUALIFIED75Ivan Magalhaes
1029Antonio CaudyIndia2021-10-16Buckley Miller Wright PROPOSAL63Amy Elsner
1030Smith GlickAustralia2021-10-06Feltz Printing Service PROPOSAL94Onyama Limba
1031David DarakjyUnited Kingdom2021-10-09Commercial Press NEGOTIATION6Xuxue Feng
1032Ashley DoeJapan2021-10-04Chapman, Ross E Esq QUALIFIED42Stephen Shaw
1033Jones VocelkaFrance2021-09-28Benton, John B Jr PROPOSAL9Asiya Javayant
1034Francesco ShinkoUnited Kingdom2021-10-05Commercial Press PROPOSAL26Elwin Sharvill
1035Arvin AlbaresArgentina2021-10-19Benton, John B Jr NEW70Amy Elsner
1036Jefferson SchemmerGermany2021-10-04Dorl, James J Esq QUALIFIED72Ioni Bowcher
1037Ashley DoeBrazil2021-10-15Feltz Printing Service NEW85Ioni Bowcher
1038Ivar PaprockiCanada2021-10-22Printing Dimensions RENEWAL49Asiya Javayant
1039Tony FollerCanada2021-10-10Chemel, James L Cpa UNQUALIFIED26Elwin Sharvill
1040Emily WhobreyCanada2021-09-29Rousseaux, Michael Esq QUALIFIED81Ioni Bowcher
1041Cody SaylorsCanada2021-09-30Chapman, Ross E Esq NEGOTIATION73Onyama Limba
1042Faith GillianJapan2021-10-09Printing Dimensions NEW10Onyama Limba
1043David DarakjyFrance2021-10-19Buckley Miller Wright NEW96Stephen Shaw
1044Kaitlin OstroskyArgentina2021-10-18Printing Dimensions RENEWAL76Xuxue Feng
1045Kaitlin OstroskyItaly2021-10-12Rousseaux, Michael Esq PROPOSAL94Asiya Javayant
1046Francesco ShinkoCanada2021-10-07Commercial Press PROPOSAL69Anna Fali
1047Nicolas IturbideItaly2021-10-08Buckley Miller Wright NEGOTIATION93Stephen Shaw
1048Izzy GarufiAustralia2021-09-30Dorl, James J Esq RENEWAL85Elwin Sharvill
1049Emily WhobreyFrance2021-10-15Rousseaux, Michael Esq QUALIFIED40Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickIndiaIoni Bowcher NEGOTIATION
Murillo MaletGermanyAsiya Javayant NEW
Jones VocelkaArgentinaXuxue Feng NEGOTIATION
Silvio SlusarskiSpainStephen Shaw NEGOTIATION
Munro FerenczItalyStephen Shaw NEW
Jefferson SchemmerArgentinaIoni Bowcher NEGOTIATION
Adams MorascaRussiaBernardo Dominic QUALIFIED
Morrow RutaCanadaAmy Elsner NEW
Smith GlickCanadaIvan Magalhaes NEGOTIATION
Claire TollnerFranceXuxue Feng RENEWAL
Sinclair WaycottSpainAsiya Javayant NEGOTIATION
Juan WieserSpainAmy Elsner NEW
Jefferson SchemmerItalyOnyama Limba NEW
David DarakjyGermanyOnyama Limba NEGOTIATION
James ButtAustraliaIoni Bowcher NEGOTIATION
Greenwood BologniaGermanyOnyama Limba PROPOSAL
Silvio SlusarskiIndiaAnna Fali RENEWAL
Clifford RimUnited KingdomElwin Sharvill PROPOSAL
Jones VocelkaGermanyBernardo Dominic PROPOSAL
Kaitlin OstroskyUnited KingdomElwin Sharvill RENEWAL
Smith GlickIndiaIoni Bowcher NEW
Misaki RoysterCanadaStephen Shaw PROPOSAL
Rodrigues CampainRussiaAnna Fali RENEWAL
Smith GlickCanadaAnna Fali RENEWAL
Aika InouyeAustraliaIvan Magalhaes QUALIFIED
Jefferson SchemmerItalyOnyama Limba PROPOSAL
Octavia MaletBrazilIoni Bowcher RENEWAL
Maria MarrierRussiaElwin Sharvill QUALIFIED
Francesco ShinkoCanadaIvan Magalhaes RENEWAL
Faith GillianJapanXuxue Feng UNQUALIFIED
James ButtIndiaBernardo Dominic NEW
James ButtIndiaAsiya Javayant NEGOTIATION
Ricardo GauchoIndiaXuxue Feng QUALIFIED
Kaitlin OstroskySpainIvan Magalhaes UNQUALIFIED
Costa DilliardRussiaIvan Magalhaes RENEWAL
Jones VocelkaUnited KingdomOnyama Limba NEGOTIATION
Aruna FigeroaGermanyElwin Sharvill PROPOSAL
Nicolas IturbideFranceElwin Sharvill RENEWAL
Emily WhobreyArgentinaIvan Magalhaes PROPOSAL
Misaki RoysterBrazilElwin Sharvill PROPOSAL
Claire TollnerIndiaStephen Shaw NEW
Nicolas IturbideIndiaOnyama Limba RENEWAL
Tony FollerArgentinaElwin Sharvill RENEWAL
Rodrigues CampainArgentinaOnyama Limba PROPOSAL
Mujtaba NickaJapanAsiya Javayant RENEWAL
Clifford RimCanadaAsiya Javayant NEGOTIATION
Smith GlickSpainAnna Fali PROPOSAL
Sinclair WaycottGermanyOnyama Limba RENEWAL
Morrow RutaGermanyIvan Magalhaes RENEWAL
Mujtaba NickaBrazilBernardo Dominic QUALIFIED
Frozen Columns
Name
Leon Oldroyd
Kadeem Flosi
Faith Gillian
David Darakjy
Faith Gillian
Leja Caldarera
Julie Stenseth
Jones Vocelka
Arvin Albares
Claire Tollner
James Butt
Mujtaba Nicka
Isabel Bowley
Jones Vocelka
Isabel Bowley
Silvio Slusarski
Emily Whobrey
Ashley Doe
Chavez Briddick
Costa Dilliard
Nicolas Iturbide
Rodrigues Campain
Deepesh Chui
Sinclair Waycott
Munro Ferencz
Kaitlin Ostrosky
Smith Glick
Arvin Albares
James Butt
Faith Gillian
Sinclair Waycott
James Butt
Aruna Figeroa
Izzy Garufi
Wickens Nestle
Jeanfrancois Venere
Costa Dilliard
Octavia Malet
Ashley Doe
Wickens Nestle
Aruna Figeroa
Jeanfrancois Venere
Izzy Garufi
Francesco Shinko
Chavez Briddick
Chavez Briddick
Octavia Malet
Clifford Rim
Smith Glick
Maria Marrier
IdCountryDate
1000United Kingdom2021-09-26
1001Argentina2021-10-07
1002Spain2021-10-07
1003Germany2021-09-28
1004Australia2021-09-26
1005Japan2021-10-17
1006India2021-10-16
1007Brazil2021-10-08
1008Australia2021-09-30
1009Italy2021-09-28
1010Canada2021-09-25
1011Brazil2021-09-26
1012Argentina2021-10-01
1013France2021-09-29
1014Japan2021-10-21
1015Australia2021-10-12
1016Germany2021-09-30
1017Japan2021-10-11
1018India2021-10-07
1019India2021-10-12
1020Spain2021-10-17
1021France2021-09-29
1022Italy2021-10-02
1023United Kingdom2021-09-27
1024Australia2021-10-20
1025Spain2021-10-10
1026Brazil2021-10-21
1027Australia2021-10-08
1028Canada2021-10-09
1029Argentina2021-09-23
1030Italy2021-10-09
1031Germany2021-10-10
1032United Kingdom2021-10-05
1033India2021-10-20
1034Japan2021-10-06
1035Germany2021-10-13
1036Canada2021-10-21
1037India2021-10-15
1038Germany2021-09-25
1039Canada2021-10-21
1040Argentina2021-10-16
1041Japan2021-10-17
1042Russia2021-10-14
1043France2021-09-26
1044Spain2021-09-24
1045Australia2021-09-28
1046Canada2021-10-17
1047Canada2021-09-30
1048Australia2021-10-16
1049Australia2021-09-28
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: