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
Claire TollnerFranceStephen Shaw RENEWAL
Ashley DoeCanadaAmy Elsner PROPOSAL
Chavez BriddickRussiaIoni Bowcher PROPOSAL
Aika InouyeIndiaXuxue Feng RENEWAL
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Maisha RulapaughIndiaAsiya Javayant QUALIFIED
Costa DilliardUnited KingdomAnna Fali RENEWAL
James ButtBrazilStephen Shaw NEGOTIATION
Munro FerenczIndiaXuxue Feng UNQUALIFIED
Aruna FigeroaCanadaOnyama Limba NEW
Nicolas IturbideJapanOnyama Limba PROPOSAL
Leon OldroydAustraliaOnyama Limba RENEWAL
Misaki RoysterArgentinaAmy Elsner NEGOTIATION
David DarakjyArgentinaOnyama Limba NEW
James ButtCanadaAmy Elsner RENEWAL
Izzy GarufiCanadaBernardo Dominic RENEWAL
Kadeem FlosiSpainAsiya Javayant QUALIFIED
Leja CaldareraCanadaElwin Sharvill NEW
Ivar PaprockiJapanStephen Shaw PROPOSAL
Misaki RoysterGermanyIoni Bowcher NEGOTIATION
Aika InouyeRussiaElwin Sharvill QUALIFIED
Wickens NestleIndiaAnna Fali QUALIFIED
Isabel BowleySpainBernardo Dominic NEW
Jennifer AmigonFranceElwin Sharvill NEGOTIATION
Maisha RulapaughItalyXuxue Feng PROPOSAL
Salvatore StockhamFranceAnna Fali QUALIFIED
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Kaitlin OstroskyArgentinaAmy Elsner RENEWAL
Francesco ShinkoSpainIvan Magalhaes PROPOSAL
Aruna FigeroaJapanIoni Bowcher QUALIFIED
James ButtJapanOnyama Limba PROPOSAL
Jones VocelkaBrazilIvan Magalhaes PROPOSAL
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Darci PoquetteCanadaAnna Fali UNQUALIFIED
Murillo MaletUnited KingdomXuxue Feng QUALIFIED
Silvio SlusarskiJapanAsiya Javayant QUALIFIED
Izzy GarufiGermanyAsiya Javayant QUALIFIED
Francesco ShinkoSpainAmy Elsner UNQUALIFIED
Jones VocelkaBrazilAsiya Javayant UNQUALIFIED
Silvio SlusarskiIndiaAnna Fali NEW
Kaitlin OstroskyBrazilStephen Shaw RENEWAL
Ricardo GauchoItalyIoni Bowcher UNQUALIFIED
Faith GillianRussiaAnna Fali PROPOSAL
Stacey MacleadSpainIoni Bowcher QUALIFIED
Misaki RoysterBrazilElwin Sharvill RENEWAL
Octavia MaletAustraliaAsiya Javayant QUALIFIED
Jefferson SchemmerBrazilAsiya Javayant RENEWAL
Cody SaylorsBrazilAnna Fali RENEWAL
Misaki RoysterCanadaBernardo Dominic QUALIFIED
Stacey MacleadCanadaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
James ButtCanadaOnyama Limba UNQUALIFIED
Murillo MaletCanadaAsiya Javayant NEW
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Emily WhobreyArgentinaBernardo Dominic NEW
Cody SaylorsGermanyStephen Shaw NEGOTIATION
Maria MarrierArgentinaAmy Elsner PROPOSAL
Adams MorascaItalyAmy Elsner QUALIFIED
Greenwood BologniaItalyAnna Fali RENEWAL
Faith GillianIndiaStephen Shaw UNQUALIFIED
Aditya KuskoGermanyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskySpain2021-11-07Rousseaux, Michael Esq PROPOSAL85Stephen Shaw
1001Greenwood BologniaJapan2021-11-09Dorl, James J Esq QUALIFIED13Onyama Limba
1002Antonio CaudyUnited Kingdom2021-11-15King, Christopher A Esq UNQUALIFIED37Anna Fali
1003Ivar PaprockiAustralia2021-11-19Printing Dimensions PROPOSAL8Amy Elsner
1004Antonio CaudyGermany2021-12-05Rousseaux, Michael Esq NEW37Amy Elsner
1005Alejandro PerinArgentina2021-11-26Printing Dimensions PROPOSAL22Ioni Bowcher
1006Mujtaba NickaAustralia2021-11-29King, Christopher A Esq UNQUALIFIED25Amy Elsner
1007Silvio SlusarskiSpain2021-12-02Chanay, Jeffrey A Esq RENEWAL18Ivan Magalhaes
1008Ivar PaprockiArgentina2021-11-11Printing Dimensions PROPOSAL60Onyama Limba
1009Arvin AlbaresArgentina2021-11-23Chapman, Ross E Esq PROPOSAL68Anna Fali
1010Silvio SlusarskiSpain2021-12-01Morlong Associates NEGOTIATION60Xuxue Feng
1011Munro FerenczGermany2021-11-27Rousseaux, Michael Esq NEGOTIATION24Amy Elsner
1012Wickens NestleRussia2021-12-04Chanay, Jeffrey A Esq QUALIFIED83Onyama Limba
1013Clifford RimAustralia2021-11-18Chapman, Ross E Esq PROPOSAL96Ivan Magalhaes
1014Aruna FigeroaItaly2021-11-11Morlong Associates PROPOSAL68Elwin Sharvill
1015Claire TollnerIndia2021-11-27King, Christopher A Esq NEW15Xuxue Feng
1016Murillo MaletUnited Kingdom2021-11-27Morlong Associates UNQUALIFIED25Onyama Limba
1017Julie StensethArgentina2021-11-28Buckley Miller Wright RENEWAL20Anna Fali
1018Maisha RulapaughSpain2021-12-01Commercial Press UNQUALIFIED51Onyama Limba
1019James ButtItaly2021-11-28Rangoni Of Florence UNQUALIFIED62Ivan Magalhaes
1020Aditya KuskoIndia2021-11-07Printing Dimensions NEW83Xuxue Feng
1021Maria MarrierRussia2021-12-04Buckley Miller Wright PROPOSAL80Stephen Shaw
1022Murillo MaletJapan2021-11-24Buckley Miller Wright NEW91Stephen Shaw
1023Sinclair WaycottItaly2021-11-24Rousseaux, Michael Esq PROPOSAL45Xuxue Feng
1024Morrow RutaUnited Kingdom2021-11-15Rangoni Of Florence UNQUALIFIED0Ioni Bowcher
1025Rodrigues CampainAustralia2021-11-09Chanay, Jeffrey A Esq RENEWAL44Bernardo Dominic
1026Cody SaylorsItaly2021-11-16Chanay, Jeffrey A Esq RENEWAL55Asiya Javayant
1027Adams MorascaGermany2021-11-18Chemel, James L Cpa NEW69Xuxue Feng
1028Maria MarrierIndia2021-12-06Benton, John B Jr UNQUALIFIED90Ioni Bowcher
1029Chavez BriddickItaly2021-11-17Chapman, Ross E Esq QUALIFIED72Ivan Magalhaes
1030Jefferson SchemmerRussia2021-11-23Chapman, Ross E Esq PROPOSAL78Ioni Bowcher
1031Arvin AlbaresAustralia2021-11-11Truhlar And Truhlar Attys PROPOSAL69Ioni Bowcher
1032Jones VocelkaCanada2021-11-11Morlong Associates NEW32Xuxue Feng
1033Julie StensethArgentina2021-12-04Rangoni Of Florence NEW93Asiya Javayant
1034Clifford RimUnited Kingdom2021-11-23Chapman, Ross E Esq RENEWAL59Anna Fali
1035Jennifer AmigonItaly2021-11-07Feiner Bros QUALIFIED94Bernardo Dominic
1036Cody SaylorsIndia2021-11-18Truhlar And Truhlar Attys UNQUALIFIED56Xuxue Feng
1037Wickens NestleArgentina2021-12-02Morlong Associates NEGOTIATION83Xuxue Feng
1038Greenwood BologniaBrazil2021-12-06Rousseaux, Michael Esq PROPOSAL27Elwin Sharvill
1039Alejandro PerinBrazil2021-11-11Benton, John B Jr QUALIFIED26Amy Elsner
1040Maisha RulapaughBrazil2021-11-16Chapman, Ross E Esq UNQUALIFIED89Stephen Shaw
1041Johnson SergiJapan2021-12-01Rousseaux, Michael Esq NEGOTIATION51Anna Fali
1042Kadeem FlosiRussia2021-11-15Rousseaux, Michael Esq NEGOTIATION86Asiya Javayant
1043Ivar PaprockiIndia2021-11-24Chanay, Jeffrey A Esq UNQUALIFIED2Ivan Magalhaes
1044Tony FollerFrance2021-11-16Feiner Bros UNQUALIFIED50Ioni Bowcher
1045Kadeem FlosiGermany2021-11-18Commercial Press NEGOTIATION8Asiya Javayant
1046Jennifer AmigonUnited Kingdom2021-11-07King, Christopher A Esq RENEWAL96Stephen Shaw
1047Kaitlin OstroskyItaly2021-11-14Chemel, James L Cpa RENEWAL45Ivan Magalhaes
1048Mujtaba NickaArgentina2021-11-28Chanay, Jeffrey A Esq QUALIFIED29Elwin Sharvill
1049David DarakjyItaly2021-12-03Rangoni Of Florence NEGOTIATION82Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimJapanAmy Elsner QUALIFIED
Munro FerenczJapanBernardo Dominic PROPOSAL
Costa DilliardArgentinaStephen Shaw NEW
Juan WieserGermanyAsiya Javayant PROPOSAL
Mujtaba NickaGermanyAnna Fali NEGOTIATION
Maria MarrierIndiaElwin Sharvill NEW
Morrow RutaIndiaAnna Fali QUALIFIED
Ivar PaprockiArgentinaElwin Sharvill NEW
Claire TollnerIndiaIoni Bowcher RENEWAL
Salvatore StockhamIndiaOnyama Limba NEW
Morrow RutaSpainBernardo Dominic QUALIFIED
Aika InouyeArgentinaIoni Bowcher NEW
Munro FerenczCanadaAnna Fali NEGOTIATION
Stacey MacleadItalyAsiya Javayant UNQUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Costa DilliardItalyAsiya Javayant RENEWAL
Munro FerenczJapanIoni Bowcher UNQUALIFIED
Rodrigues CampainFranceAmy Elsner QUALIFIED
Octavia MaletJapanIoni Bowcher UNQUALIFIED
Silvio SlusarskiSpainIvan Magalhaes NEW
Faith GillianJapanStephen Shaw UNQUALIFIED
Claire TollnerSpainAnna Fali QUALIFIED
Emily WhobreyAustraliaElwin Sharvill RENEWAL
Darci PoquetteArgentinaXuxue Feng NEW
Antonio CaudyCanadaOnyama Limba PROPOSAL
Faith GillianSpainElwin Sharvill NEGOTIATION
Misaki RoysterSpainAmy Elsner NEGOTIATION
Maisha RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaAnna Fali QUALIFIED
Murillo MaletGermanyAsiya Javayant NEGOTIATION
Salvatore StockhamAustraliaIoni Bowcher NEGOTIATION
Isabel BowleyAustraliaIoni Bowcher UNQUALIFIED
Darci PoquetteRussiaXuxue Feng PROPOSAL
Kaitlin OstroskyBrazilIoni Bowcher PROPOSAL
Silvio SlusarskiGermanyAnna Fali RENEWAL
Misaki RoysterIndiaAnna Fali QUALIFIED
Murillo MaletItalyIvan Magalhaes PROPOSAL
Alejandro PerinFranceElwin Sharvill PROPOSAL
Johnson SergiGermanyXuxue Feng PROPOSAL
Maria MarrierArgentinaStephen Shaw NEGOTIATION
Kadeem FlosiItalyAsiya Javayant QUALIFIED
Alejandro PerinItalyOnyama Limba PROPOSAL
Cody SaylorsGermanyElwin Sharvill QUALIFIED
Claire TollnerUnited KingdomStephen Shaw PROPOSAL
Murillo MaletAustraliaAnna Fali NEW
Munro FerenczArgentinaBernardo Dominic UNQUALIFIED
Julie StensethAustraliaStephen Shaw UNQUALIFIED
Salvatore StockhamCanadaAnna Fali RENEWAL
Aruna FigeroaIndiaIvan Magalhaes QUALIFIED
David DarakjyBrazilAnna Fali QUALIFIED
Frozen Columns
Name
James Butt
Tony Foller
Salvatore Stockham
Faith Gillian
Emily Whobrey
Izzy Garufi
Munro Ferencz
Ivar Paprocki
Kadeem Flosi
Cody Saylors
Sinclair Waycott
Alejandro Perin
Ashley Doe
Leon Oldroyd
Isabel Bowley
Arvin Albares
Kaitlin Ostrosky
Ivar Paprocki
Stacey Maclead
Rodrigues Campain
Isabel Bowley
Ashley Doe
Smith Glick
Aruna Figeroa
Clifford Rim
Adams Morasca
Aika Inouye
Stacey Maclead
Nicolas Iturbide
Stacey Maclead
Francesco Shinko
Juan Wieser
Alejandro Perin
Salvatore Stockham
Deepesh Chui
Tony Foller
Antonio Caudy
Cody Saylors
Mujtaba Nicka
Kaitlin Ostrosky
Leja Caldarera
Juan Wieser
Aruna Figeroa
Salvatore Stockham
Stacey Maclead
Juan Wieser
Tony Foller
Octavia Malet
Aika Inouye
Darci Poquette
IdCountryDate
1000Argentina2021-11-16
1001Spain2021-11-08
1002Argentina2021-11-10
1003France2021-11-24
1004United Kingdom2021-11-07
1005Australia2021-11-26
1006France2021-11-30
1007Canada2021-11-20
1008Argentina2021-12-04
1009Argentina2021-11-16
1010India2021-11-21
1011France2021-12-06
1012France2021-11-23
1013Russia2021-11-20
1014Brazil2021-11-28
1015Italy2021-11-27
1016Italy2021-11-12
1017Canada2021-11-18
1018Germany2021-11-13
1019India2021-12-06
1020Canada2021-11-09
1021France2021-11-24
1022France2021-11-26
1023India2021-11-11
1024Germany2021-11-23
1025Argentina2021-11-29
1026Germany2021-11-12
1027United Kingdom2021-11-27
1028United Kingdom2021-11-18
1029Japan2021-11-14
1030France2021-11-20
1031France2021-12-06
1032Australia2021-11-24
1033Canada2021-11-18
1034Russia2021-11-30
1035Australia2021-11-08
1036Germany2021-11-08
1037Australia2021-11-07
1038Russia2021-12-03
1039Japan2021-11-17
1040Spain2021-12-06
1041Argentina2021-11-30
1042Argentina2021-11-30
1043Germany2021-11-18
1044France2021-11-14
1045Japan2021-11-16
1046United Kingdom2021-11-28
1047Argentina2021-11-27
1048Germany2021-11-11
1049Japan2021-11-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro FerenczGermanyXuxue Feng PROPOSAL
Chavez BriddickGermanyAsiya Javayant NEW
Izzy GarufiUnited KingdomAnna Fali NEW
Clifford RimUnited KingdomIoni Bowcher QUALIFIED
Arvin AlbaresUnited KingdomXuxue Feng QUALIFIED
James ButtIndiaXuxue Feng QUALIFIED
Izzy GarufiArgentinaIoni Bowcher RENEWAL
Deepesh ChuiFranceAsiya Javayant RENEWAL
Adams MorascaItalyAnna Fali PROPOSAL
Mujtaba NickaIndiaBernardo Dominic NEW
Clifford RimIndiaBernardo Dominic QUALIFIED
Johnson SergiSpainElwin Sharvill UNQUALIFIED
Maria MarrierCanadaAsiya Javayant QUALIFIED
Tony FollerCanadaAnna Fali NEW
Deepesh ChuiCanadaBernardo Dominic QUALIFIED
Aruna FigeroaItalyBernardo Dominic UNQUALIFIED
Tony FollerBrazilAsiya Javayant PROPOSAL
James ButtGermanyAnna Fali QUALIFIED
Clifford RimAustraliaOnyama Limba QUALIFIED
Rodrigues CampainCanadaIvan Magalhaes QUALIFIED
Ashley DoeSpainElwin Sharvill NEW
Maisha RulapaughGermanyAmy Elsner UNQUALIFIED
Leja CaldareraFranceAmy Elsner UNQUALIFIED
Francesco ShinkoGermanyOnyama Limba NEW
Emily WhobreyJapanAnna Fali PROPOSAL
David DarakjyJapanXuxue Feng RENEWAL
Jones VocelkaUnited KingdomAmy Elsner NEGOTIATION
Emily WhobreyGermanyElwin Sharvill QUALIFIED
Faith GillianJapanStephen Shaw PROPOSAL
Cody SaylorsBrazilAmy Elsner PROPOSAL
Stacey MacleadUnited KingdomIvan Magalhaes QUALIFIED
Wickens NestleItalyXuxue Feng QUALIFIED
Leja CaldareraItalyBernardo Dominic QUALIFIED
Ashley DoeUnited KingdomIoni Bowcher NEW
Chavez BriddickItalyAsiya Javayant PROPOSAL
David DarakjyGermanyBernardo Dominic QUALIFIED
Morrow RutaIndiaXuxue Feng NEGOTIATION
Antonio CaudyIndiaElwin Sharvill QUALIFIED
Morrow RutaAustraliaStephen Shaw PROPOSAL
Kadeem FlosiItalyBernardo Dominic QUALIFIED

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