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
Ivar PaprockiArgentinaElwin Sharvill QUALIFIED
Jefferson SchemmerAustraliaOnyama Limba NEW
Ashley DoeSpainBernardo Dominic NEW
Ashley DoeCanadaStephen Shaw PROPOSAL
James ButtCanadaAnna Fali NEGOTIATION
Emily WhobreyItalyOnyama Limba PROPOSAL
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
David DarakjyCanadaAsiya Javayant NEGOTIATION
Aika InouyeSpainXuxue Feng UNQUALIFIED
Jones VocelkaGermanyBernardo Dominic PROPOSAL
Mayumi KolmetzBrazilBernardo Dominic PROPOSAL
Darci PoquetteFranceBernardo Dominic NEGOTIATION
Darci PoquetteGermanyBernardo Dominic NEGOTIATION
Julie StensethItalyAsiya Javayant NEGOTIATION
Munro FerenczBrazilIvan Magalhaes PROPOSAL
Silvio SlusarskiItalyIoni Bowcher QUALIFIED
Ricardo GauchoUnited KingdomStephen Shaw NEW
Izzy GarufiIndiaXuxue Feng UNQUALIFIED
Claire TollnerIndiaIvan Magalhaes RENEWAL
Adams MorascaSpainIvan Magalhaes PROPOSAL
Maisha RulapaughBrazilAmy Elsner QUALIFIED
Cody SaylorsSpainIvan Magalhaes NEGOTIATION
Leja CaldareraUnited KingdomAnna Fali PROPOSAL
Greenwood BologniaUnited KingdomBernardo Dominic RENEWAL
Mujtaba NickaBrazilAnna Fali UNQUALIFIED
Faith GillianGermanyAnna Fali UNQUALIFIED
Francesco ShinkoJapanBernardo Dominic NEW
David DarakjyArgentinaIvan Magalhaes QUALIFIED
Ivar PaprockiSpainStephen Shaw RENEWAL
Francesco ShinkoFranceIoni Bowcher NEGOTIATION
Smith GlickArgentinaIvan Magalhaes QUALIFIED
Aruna FigeroaSpainAnna Fali NEGOTIATION
Johnson SergiRussiaIoni Bowcher NEGOTIATION
Tony FollerRussiaIoni Bowcher NEW
Claire TollnerGermanyIvan Magalhaes UNQUALIFIED
Tony FollerItalyAmy Elsner QUALIFIED
Antonio CaudyGermanyBernardo Dominic PROPOSAL
Isabel BowleyGermanyAnna Fali QUALIFIED
Leon OldroydJapanBernardo Dominic UNQUALIFIED
Maria MarrierCanadaElwin Sharvill NEW
Izzy GarufiIndiaXuxue Feng NEGOTIATION
Chavez BriddickJapanAsiya Javayant QUALIFIED
Julie StensethAustraliaElwin Sharvill NEW
Johnson SergiJapanAmy Elsner NEW
Silvio SlusarskiRussiaElwin Sharvill NEGOTIATION
Mayumi KolmetzGermanyOnyama Limba NEGOTIATION
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Julie StensethCanadaElwin Sharvill UNQUALIFIED
Wickens NestleFranceXuxue Feng PROPOSAL
Alejandro PerinJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsIndiaXuxue Feng QUALIFIED
Juan WieserUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh ChuiRussiaIvan Magalhaes PROPOSAL
James ButtFranceElwin Sharvill NEGOTIATION
Deepesh ChuiAustraliaIvan Magalhaes NEW
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Leon OldroydJapanBernardo Dominic UNQUALIFIED
Francesco ShinkoBrazilStephen Shaw NEW
Claire TollnerSpainIvan Magalhaes PROPOSAL
Tony FollerAustraliaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaArgentina2021-11-28Rangoni Of Florence PROPOSAL20Ivan Magalhaes
1001Mayumi KolmetzItaly2021-11-24Feltz Printing Service UNQUALIFIED91Stephen Shaw
1002Francesco ShinkoCanada2021-11-18Truhlar And Truhlar Attys UNQUALIFIED55Onyama Limba
1003Jones VocelkaFrance2021-11-13Morlong Associates NEGOTIATION70Bernardo Dominic
1004Silvio SlusarskiAustralia2021-11-17Commercial Press NEW35Bernardo Dominic
1005Misaki RoysterIndia2021-11-23Chanay, Jeffrey A Esq UNQUALIFIED65Stephen Shaw
1006Francesco ShinkoSpain2021-11-28Morlong Associates QUALIFIED25Asiya Javayant
1007Mayumi KolmetzRussia2021-11-21Printing Dimensions RENEWAL17Asiya Javayant
1008Adams MorascaAustralia2021-11-26Commercial Press RENEWAL42Asiya Javayant
1009Ricardo GauchoCanada2021-12-02Truhlar And Truhlar Attys NEGOTIATION83Amy Elsner
1010Johnson SergiItaly2021-12-04Chapman, Ross E Esq UNQUALIFIED39Asiya Javayant
1011Costa DilliardIndia2021-11-18Rangoni Of Florence RENEWAL33Ivan Magalhaes
1012Maria MarrierItaly2021-11-14Dorl, James J Esq UNQUALIFIED19Elwin Sharvill
1013Francesco ShinkoBrazil2021-11-20Dorl, James J Esq NEGOTIATION47Anna Fali
1014David DarakjySpain2021-11-08Feiner Bros QUALIFIED32Bernardo Dominic
1015Izzy GarufiBrazil2021-11-30King, Christopher A Esq RENEWAL72Ivan Magalhaes
1016Aika InouyeJapan2021-11-10Commercial Press NEW35Xuxue Feng
1017Aika InouyeItaly2021-11-11Chapman, Ross E Esq PROPOSAL90Onyama Limba
1018Nicolas IturbideRussia2021-11-27Chanay, Jeffrey A Esq PROPOSAL7Asiya Javayant
1019Jeanfrancois VenereSpain2021-11-29Printing Dimensions QUALIFIED34Bernardo Dominic
1020Maisha RulapaughBrazil2021-12-02Chanay, Jeffrey A Esq NEW20Stephen Shaw
1021David DarakjyAustralia2021-12-01Buckley Miller Wright UNQUALIFIED59Ioni Bowcher
1022Jefferson SchemmerUnited Kingdom2021-11-12Buckley Miller Wright NEW40Bernardo Dominic
1023Isabel BowleyFrance2021-11-21Feltz Printing Service NEGOTIATION59Xuxue Feng
1024Adams MorascaUnited Kingdom2021-11-20Chanay, Jeffrey A Esq NEGOTIATION80Asiya Javayant
1025Costa DilliardCanada2021-11-13King, Christopher A Esq NEGOTIATION54Stephen Shaw
1026Aditya KuskoCanada2021-11-30Buckley Miller Wright NEGOTIATION0Ioni Bowcher
1027Johnson SergiItaly2021-12-03Printing Dimensions QUALIFIED19Stephen Shaw
1028Alejandro PerinIndia2021-11-16Rangoni Of Florence PROPOSAL96Elwin Sharvill
1029Tony FollerSpain2021-11-07Buckley Miller Wright UNQUALIFIED50Anna Fali
1030Kaitlin OstroskyAustralia2021-12-01Printing Dimensions QUALIFIED15Bernardo Dominic
1031David DarakjyBrazil2021-11-25Commercial Press RENEWAL15Stephen Shaw
1032Cody SaylorsIndia2021-11-28Morlong Associates RENEWAL4Bernardo Dominic
1033Maisha RulapaughBrazil2021-12-04Dorl, James J Esq NEGOTIATION94Onyama Limba
1034Rodrigues CampainCanada2021-11-14Feltz Printing Service QUALIFIED24Bernardo Dominic
1035Jeanfrancois VenereIndia2021-11-07Printing Dimensions UNQUALIFIED6Asiya Javayant
1036Isabel BowleyArgentina2021-11-15Feiner Bros RENEWAL43Stephen Shaw
1037Costa DilliardJapan2021-11-11Printing Dimensions NEGOTIATION38Onyama Limba
1038Maria MarrierIndia2021-11-13Morlong Associates RENEWAL1Elwin Sharvill
1039Jeanfrancois VenereArgentina2021-11-22Feiner Bros NEW23Amy Elsner
1040Julie StensethAustralia2021-12-02Feltz Printing Service RENEWAL81Elwin Sharvill
1041Izzy GarufiFrance2021-11-10Chapman, Ross E Esq RENEWAL12Xuxue Feng
1042Wickens NestleBrazil2021-11-17Dorl, James J Esq UNQUALIFIED2Ioni Bowcher
1043Morrow RutaItaly2021-11-13Feltz Printing Service PROPOSAL60Stephen Shaw
1044Ashley DoeRussia2021-11-21Chemel, James L Cpa PROPOSAL84Anna Fali
1045Ricardo GauchoSpain2021-11-27Benton, John B Jr UNQUALIFIED57Ivan Magalhaes
1046Leon OldroydCanada2021-11-15Feltz Printing Service UNQUALIFIED94Stephen Shaw
1047Wickens NestleItaly2021-11-17Printing Dimensions NEW66Ioni Bowcher
1048Leon OldroydArgentina2021-11-20Chanay, Jeffrey A Esq NEGOTIATION57Asiya Javayant
1049Faith GillianJapan2021-11-16Feiner Bros NEGOTIATION50Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainJapanStephen Shaw QUALIFIED
Murillo MaletUnited KingdomAsiya Javayant RENEWAL
Claire TollnerGermanyXuxue Feng RENEWAL
Munro FerenczBrazilAmy Elsner NEW
Izzy GarufiGermanyOnyama Limba NEW
Octavia MaletCanadaAmy Elsner PROPOSAL
Maisha RulapaughSpainAsiya Javayant RENEWAL
Alejandro PerinBrazilOnyama Limba NEGOTIATION
Silvio SlusarskiFranceBernardo Dominic UNQUALIFIED
Mujtaba NickaBrazilAnna Fali PROPOSAL
Isabel BowleyCanadaStephen Shaw RENEWAL
James ButtCanadaOnyama Limba NEW
Nicolas IturbideItalyAmy Elsner UNQUALIFIED
Costa DilliardAustraliaAsiya Javayant RENEWAL
Ashley DoeBrazilStephen Shaw PROPOSAL
Kaitlin OstroskyGermanyBernardo Dominic NEW
Jefferson SchemmerArgentinaIoni Bowcher PROPOSAL
Maria MarrierCanadaAnna Fali RENEWAL
Kaitlin OstroskyJapanBernardo Dominic QUALIFIED
Ashley DoeArgentinaIoni Bowcher NEW
Juan WieserFranceXuxue Feng PROPOSAL
Francesco ShinkoBrazilAsiya Javayant QUALIFIED
Smith GlickGermanyStephen Shaw QUALIFIED
Jennifer AmigonItalyAsiya Javayant PROPOSAL
Chavez BriddickGermanyOnyama Limba QUALIFIED
Wickens NestleUnited KingdomAnna Fali QUALIFIED
Darci PoquetteUnited KingdomElwin Sharvill PROPOSAL
Adams MorascaFranceStephen Shaw QUALIFIED
Claire TollnerArgentinaIvan Magalhaes NEW
Francesco ShinkoFranceAnna Fali NEW
Claire TollnerAustraliaAnna Fali NEW
Claire TollnerAustraliaAsiya Javayant UNQUALIFIED
Adams MorascaJapanAsiya Javayant PROPOSAL
Isabel BowleyUnited KingdomXuxue Feng NEW
Francesco ShinkoFranceOnyama Limba NEGOTIATION
Tony FollerItalyAsiya Javayant NEW
Jeanfrancois VenereJapanIvan Magalhaes UNQUALIFIED
Jefferson SchemmerRussiaAsiya Javayant PROPOSAL
Aditya KuskoIndiaXuxue Feng PROPOSAL
Aditya KuskoCanadaAsiya Javayant NEW
Jennifer AmigonFranceAmy Elsner QUALIFIED
Silvio SlusarskiJapanAsiya Javayant UNQUALIFIED
Sinclair WaycottAustraliaXuxue Feng NEGOTIATION
Morrow RutaJapanElwin Sharvill RENEWAL
Greenwood BologniaGermanyAsiya Javayant PROPOSAL
Nicolas IturbideArgentinaElwin Sharvill QUALIFIED
Mayumi KolmetzFranceAnna Fali PROPOSAL
Juan WieserIndiaElwin Sharvill PROPOSAL
Clifford RimUnited KingdomOnyama Limba PROPOSAL
Aditya KuskoGermanyAsiya Javayant RENEWAL
Frozen Columns
Name
Greenwood Bolognia
Deepesh Chui
Claire Tollner
Aruna Figeroa
Izzy Garufi
James Butt
Jefferson Schemmer
Izzy Garufi
Rodrigues Campain
Kadeem Flosi
Deepesh Chui
Isabel Bowley
Aditya Kusko
Deepesh Chui
Juan Wieser
Tony Foller
Stacey Maclead
Leja Caldarera
Arvin Albares
Deepesh Chui
Maisha Rulapaugh
Maisha Rulapaugh
Aika Inouye
Maria Marrier
Mujtaba Nicka
Mayumi Kolmetz
Clifford Rim
Faith Gillian
Ivar Paprocki
Faith Gillian
Clifford Rim
Aruna Figeroa
David Darakjy
David Darakjy
Octavia Malet
Munro Ferencz
Ricardo Gaucho
Munro Ferencz
Stacey Maclead
Maisha Rulapaugh
Kadeem Flosi
Arvin Albares
Munro Ferencz
Stacey Maclead
Ricardo Gaucho
Antonio Caudy
Sinclair Waycott
Claire Tollner
Leon Oldroyd
Jeanfrancois Venere
IdCountryDate
1000Germany2021-12-01
1001Japan2021-11-23
1002France2021-11-27
1003Brazil2021-11-18
1004France2021-12-03
1005Italy2021-11-06
1006United Kingdom2021-11-09
1007Japan2021-11-08
1008Australia2021-11-05
1009Canada2021-11-08
1010Italy2021-11-26
1011United Kingdom2021-11-22
1012United Kingdom2021-12-03
1013Russia2021-11-25
1014Spain2021-11-11
1015United Kingdom2021-11-05
1016Germany2021-11-05
1017United Kingdom2021-11-18
1018Germany2021-11-11
1019Russia2021-11-12
1020Spain2021-11-05
1021India2021-11-18
1022Spain2021-11-23
1023Germany2021-11-26
1024United Kingdom2021-12-03
1025Russia2021-11-12
1026United Kingdom2021-11-13
1027Spain2021-12-02
1028Russia2021-11-13
1029Japan2021-11-22
1030France2021-12-01
1031Canada2021-12-01
1032Australia2021-11-13
1033United Kingdom2021-11-09
1034Australia2021-11-07
1035Argentina2021-11-10
1036Spain2021-11-18
1037Russia2021-11-14
1038Italy2021-11-05
1039France2021-11-23
1040France2021-12-04
1041Argentina2021-11-18
1042Japan2021-11-18
1043Brazil2021-11-10
1044Japan2021-11-15
1045Japan2021-11-20
1046United Kingdom2021-11-05
1047Argentina2021-11-13
1048Australia2021-12-02
1049Spain2021-11-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Cody SaylorsFranceBernardo Dominic PROPOSAL
Aika InouyeBrazilOnyama Limba RENEWAL
Silvio SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Morrow RutaItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaFranceElwin Sharvill RENEWAL
Nicolas IturbideJapanBernardo Dominic NEGOTIATION
Misaki RoysterFranceStephen Shaw NEGOTIATION
Chavez BriddickJapanAmy Elsner PROPOSAL
Alejandro PerinCanadaElwin Sharvill NEGOTIATION
Wickens NestleFranceBernardo Dominic NEGOTIATION
Rodrigues CampainSpainAmy Elsner UNQUALIFIED
Jeanfrancois VenereJapanIvan Magalhaes RENEWAL
Clifford RimArgentinaXuxue Feng RENEWAL
Jennifer AmigonCanadaElwin Sharvill PROPOSAL
Julie StensethRussiaElwin Sharvill PROPOSAL
Julie StensethIndiaAsiya Javayant UNQUALIFIED
Morrow RutaCanadaIvan Magalhaes RENEWAL
Chavez BriddickSpainAnna Fali PROPOSAL
Stacey MacleadFranceIvan Magalhaes NEGOTIATION
Smith GlickRussiaAsiya Javayant RENEWAL
Murillo MaletRussiaXuxue Feng NEW
Leja CaldareraArgentinaIoni Bowcher PROPOSAL
David DarakjyGermanyBernardo Dominic QUALIFIED
Julie StensethFranceIvan Magalhaes NEW
Mayumi KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Ashley DoeIndiaIoni Bowcher NEW
Francesco ShinkoCanadaBernardo Dominic NEW
Wickens NestleRussiaAmy Elsner RENEWAL
Ricardo GauchoBrazilAmy Elsner QUALIFIED
Munro FerenczItalyOnyama Limba RENEWAL
Isabel BowleyRussiaAnna Fali PROPOSAL
Johnson SergiGermanyXuxue Feng QUALIFIED
Francesco ShinkoIndiaOnyama Limba RENEWAL
Mayumi KolmetzBrazilElwin Sharvill NEW
Juan WieserIndiaAmy Elsner UNQUALIFIED
Stacey MacleadIndiaAmy Elsner NEGOTIATION
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Octavia MaletIndiaAmy Elsner UNQUALIFIED
Leja CaldareraUnited KingdomXuxue Feng NEW

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