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.

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
Cody SaylorsIndiaAnna Fali RENEWAL
Rodrigues CampainAustraliaStephen Shaw NEGOTIATION
Ashley DoeCanadaAsiya Javayant UNQUALIFIED
Claire TollnerArgentinaBernardo Dominic NEW
Aditya KuskoBrazilAsiya Javayant QUALIFIED
Kaitlin OstroskyRussiaIvan Magalhaes QUALIFIED
Jefferson SchemmerAustraliaElwin Sharvill RENEWAL
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Faith GillianIndiaAnna Fali RENEWAL
Leon OldroydArgentinaBernardo Dominic RENEWAL
Salvatore StockhamArgentinaXuxue Feng PROPOSAL
Rodrigues CampainCanadaBernardo Dominic UNQUALIFIED
Juan WieserUnited KingdomAnna Fali RENEWAL
Emily WhobreyRussiaAsiya Javayant RENEWAL
Juan WieserSpainAmy Elsner NEW
Jennifer AmigonFranceIvan Magalhaes UNQUALIFIED
Alejandro PerinGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiUnited KingdomOnyama Limba RENEWAL
Claire TollnerIndiaAnna Fali PROPOSAL
Mayumi KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Sinclair WaycottBrazilAmy Elsner QUALIFIED
Aditya KuskoAustraliaAmy Elsner PROPOSAL
Costa DilliardRussiaBernardo Dominic RENEWAL
Maria MarrierIndiaStephen Shaw UNQUALIFIED
Jefferson SchemmerSpainXuxue Feng RENEWAL
Kaitlin OstroskyCanadaBernardo Dominic UNQUALIFIED
Murillo MaletIndiaIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomXuxue Feng RENEWAL
Aruna FigeroaAustraliaAnna Fali PROPOSAL
Johnson SergiFranceOnyama Limba UNQUALIFIED
Costa DilliardCanadaOnyama Limba QUALIFIED
Izzy GarufiArgentinaStephen Shaw NEW
Chavez BriddickUnited KingdomAsiya Javayant RENEWAL
Jones VocelkaIndiaStephen Shaw QUALIFIED
Kadeem FlosiArgentinaAmy Elsner UNQUALIFIED
Aika InouyeJapanBernardo Dominic RENEWAL
Aika InouyeIndiaIvan Magalhaes UNQUALIFIED
Costa DilliardAustraliaIvan Magalhaes UNQUALIFIED
Murillo MaletUnited KingdomAmy Elsner UNQUALIFIED
Salvatore StockhamRussiaIvan Magalhaes RENEWAL
Deepesh ChuiJapanIoni Bowcher UNQUALIFIED
Stacey MacleadAustraliaBernardo Dominic UNQUALIFIED
James ButtUnited KingdomStephen Shaw PROPOSAL
Julie StensethRussiaAsiya Javayant UNQUALIFIED
Tony FollerJapanAnna Fali UNQUALIFIED
Maisha RulapaughRussiaOnyama Limba NEGOTIATION
Mayumi KolmetzItalyAmy Elsner NEW
Munro FerenczItalyIoni Bowcher PROPOSAL
Aruna FigeroaBrazilElwin Sharvill QUALIFIED
Emily WhobreySpainAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow RutaIndiaElwin Sharvill PROPOSAL
Arvin AlbaresIndiaAsiya Javayant PROPOSAL
Ricardo GauchoCanadaOnyama Limba UNQUALIFIED
Deepesh ChuiCanadaAmy Elsner RENEWAL
Deepesh ChuiCanadaIvan Magalhaes UNQUALIFIED
Juan WieserFranceStephen Shaw UNQUALIFIED
Mayumi KolmetzArgentinaXuxue Feng RENEWAL
Salvatore StockhamIndiaElwin Sharvill QUALIFIED
Greenwood BologniaFranceOnyama Limba QUALIFIED
Aruna FigeroaRussiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserBrazil2021-05-24Rangoni Of Florence UNQUALIFIED8Bernardo Dominic
1001Adams MorascaArgentina2021-06-10Rangoni Of Florence UNQUALIFIED15Bernardo Dominic
1002Morrow RutaGermany2021-05-23Chanay, Jeffrey A Esq QUALIFIED21Onyama Limba
1003Aruna FigeroaBrazil2021-05-26Benton, John B Jr NEGOTIATION10Bernardo Dominic
1004Kadeem FlosiUnited Kingdom2021-06-06Chemel, James L Cpa RENEWAL1Ioni Bowcher
1005Sinclair WaycottAustralia2021-05-20Morlong Associates PROPOSAL6Ioni Bowcher
1006Murillo MaletIndia2021-05-31Chemel, James L Cpa NEGOTIATION47Amy Elsner
1007Aditya KuskoGermany2021-05-16Chapman, Ross E Esq RENEWAL93Xuxue Feng
1008Tony FollerRussia2021-06-08Chemel, James L Cpa UNQUALIFIED0Stephen Shaw
1009Jefferson SchemmerItaly2021-05-14Chapman, Ross E Esq NEW97Elwin Sharvill
1010Kadeem FlosiCanada2021-05-25Chemel, James L Cpa QUALIFIED60Ivan Magalhaes
1011Aika InouyeIndia2021-06-05Commercial Press NEW69Asiya Javayant
1012Rodrigues CampainRussia2021-05-20Rangoni Of Florence QUALIFIED57Ioni Bowcher
1013Salvatore StockhamGermany2021-06-04Buckley Miller Wright NEGOTIATION56Bernardo Dominic
1014David DarakjySpain2021-06-07Dorl, James J Esq PROPOSAL78Onyama Limba
1015Kaitlin OstroskyGermany2021-05-18Benton, John B Jr UNQUALIFIED6Anna Fali
1016Clifford RimItaly2021-05-15Feltz Printing Service NEGOTIATION6Xuxue Feng
1017Ivar PaprockiArgentina2021-05-23Rangoni Of Florence NEGOTIATION73Elwin Sharvill
1018Costa DilliardJapan2021-05-21Buckley Miller Wright PROPOSAL7Xuxue Feng
1019Mujtaba NickaRussia2021-05-18Buckley Miller Wright NEW77Xuxue Feng
1020Nicolas IturbideRussia2021-05-28Commercial Press UNQUALIFIED19Amy Elsner
1021Emily WhobreyIndia2021-05-25Morlong Associates NEW6Onyama Limba
1022Morrow RutaArgentina2021-05-22Rangoni Of Florence UNQUALIFIED87Stephen Shaw
1023Rodrigues CampainItaly2021-05-27King, Christopher A Esq UNQUALIFIED68Stephen Shaw
1024Mayumi KolmetzJapan2021-06-02Printing Dimensions NEW56Asiya Javayant
1025Salvatore StockhamFrance2021-06-11King, Christopher A Esq UNQUALIFIED97Ivan Magalhaes
1026Aruna FigeroaSpain2021-06-07Commercial Press RENEWAL46Ivan Magalhaes
1027Isabel BowleySpain2021-06-07Morlong Associates QUALIFIED92Ivan Magalhaes
1028Octavia MaletUnited Kingdom2021-05-14King, Christopher A Esq QUALIFIED81Onyama Limba
1029Deepesh ChuiFrance2021-05-21Chanay, Jeffrey A Esq NEW8Xuxue Feng
1030Juan WieserBrazil2021-05-19Printing Dimensions QUALIFIED20Onyama Limba
1031Aditya KuskoIndia2021-05-21Chemel, James L Cpa NEGOTIATION41Asiya Javayant
1032Smith GlickFrance2021-05-22Feiner Bros NEW11Anna Fali
1033Greenwood BologniaGermany2021-05-30King, Christopher A Esq NEGOTIATION77Anna Fali
1034James ButtUnited Kingdom2021-05-15Morlong Associates NEGOTIATION1Bernardo Dominic
1035Wickens NestleBrazil2021-06-05Truhlar And Truhlar Attys RENEWAL91Asiya Javayant
1036David DarakjyGermany2021-05-28Chemel, James L Cpa QUALIFIED49Amy Elsner
1037Leja CaldareraBrazil2021-06-06King, Christopher A Esq QUALIFIED47Elwin Sharvill
1038Ricardo GauchoItaly2021-06-08Feiner Bros RENEWAL92Asiya Javayant
1039Smith GlickRussia2021-06-08King, Christopher A Esq NEGOTIATION82Stephen Shaw
1040Salvatore StockhamArgentina2021-05-18Rangoni Of Florence NEW90Xuxue Feng
1041James ButtFrance2021-05-21King, Christopher A Esq PROPOSAL60Amy Elsner
1042Faith GillianUnited Kingdom2021-05-14Feiner Bros NEGOTIATION45Ivan Magalhaes
1043Isabel BowleyFrance2021-05-14Chapman, Ross E Esq NEW94Xuxue Feng
1044Silvio SlusarskiCanada2021-05-31Benton, John B Jr NEW97Ioni Bowcher
1045Aditya KuskoItaly2021-06-08Printing Dimensions RENEWAL47Asiya Javayant
1046Johnson SergiItaly2021-05-19Morlong Associates QUALIFIED56Bernardo Dominic
1047Faith GillianSpain2021-06-01King, Christopher A Esq RENEWAL91Anna Fali
1048Mayumi KolmetzUnited Kingdom2021-05-24Dorl, James J Esq NEW27Onyama Limba
1049Octavia MaletCanada2021-05-26Commercial Press NEGOTIATION81Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeGermanyAsiya Javayant PROPOSAL
James ButtItalyAnna Fali RENEWAL
Jefferson SchemmerRussiaAmy Elsner UNQUALIFIED
Mujtaba NickaSpainIvan Magalhaes UNQUALIFIED
Isabel BowleyBrazilXuxue Feng QUALIFIED
Murillo MaletRussiaIoni Bowcher UNQUALIFIED
Cody SaylorsItalyXuxue Feng PROPOSAL
Aika InouyeRussiaAnna Fali QUALIFIED
Arvin AlbaresFranceAsiya Javayant UNQUALIFIED
Clifford RimRussiaBernardo Dominic PROPOSAL
Sinclair WaycottAustraliaAsiya Javayant NEGOTIATION
Greenwood BologniaBrazilAsiya Javayant NEGOTIATION
Francesco ShinkoIndiaIvan Magalhaes NEW
Isabel BowleyJapanBernardo Dominic RENEWAL
Nicolas IturbideUnited KingdomAnna Fali QUALIFIED
Julie StensethRussiaAsiya Javayant PROPOSAL
Misaki RoysterCanadaAmy Elsner RENEWAL
Stacey MacleadUnited KingdomIoni Bowcher NEW
Maria MarrierFranceAnna Fali NEW
Morrow RutaJapanStephen Shaw UNQUALIFIED
Johnson SergiRussiaIvan Magalhaes QUALIFIED
Smith GlickCanadaAmy Elsner QUALIFIED
James ButtCanadaIvan Magalhaes QUALIFIED
Maisha RulapaughItalyAnna Fali NEGOTIATION
Darci PoquetteArgentinaAmy Elsner QUALIFIED
Maisha RulapaughCanadaIoni Bowcher NEGOTIATION
Greenwood BologniaUnited KingdomBernardo Dominic RENEWAL
Jones VocelkaAustraliaAmy Elsner PROPOSAL
Greenwood BologniaIndiaIvan Magalhaes NEGOTIATION
Isabel BowleyArgentinaOnyama Limba RENEWAL
Aika InouyeGermanyIoni Bowcher QUALIFIED
Jefferson SchemmerItalyOnyama Limba PROPOSAL
Stacey MacleadSpainBernardo Dominic NEGOTIATION
Octavia MaletGermanyIoni Bowcher NEW
Maria MarrierIndiaOnyama Limba NEGOTIATION
Isabel BowleyUnited KingdomAsiya Javayant NEGOTIATION
Murillo MaletFranceIvan Magalhaes NEW
Arvin AlbaresItalyIoni Bowcher NEW
Maisha RulapaughUnited KingdomIoni Bowcher PROPOSAL
Costa DilliardFranceIoni Bowcher UNQUALIFIED
Emily WhobreyFranceStephen Shaw NEGOTIATION
Isabel BowleyAustraliaIvan Magalhaes UNQUALIFIED
Alejandro PerinGermanyAsiya Javayant RENEWAL
Arvin AlbaresArgentinaXuxue Feng NEW
Aika InouyeIndiaIvan Magalhaes UNQUALIFIED
Leon OldroydJapanIvan Magalhaes UNQUALIFIED
Izzy GarufiGermanyAmy Elsner QUALIFIED
Francesco ShinkoIndiaIoni Bowcher RENEWAL
Octavia MaletJapanXuxue Feng PROPOSAL
Mayumi KolmetzSpainElwin Sharvill PROPOSAL
Frozen Columns
Name
Octavia Malet
Costa Dilliard
Faith Gillian
Aika Inouye
Silvio Slusarski
Leon Oldroyd
Juan Wieser
Salvatore Stockham
Sinclair Waycott
Wickens Nestle
Kaitlin Ostrosky
Jefferson Schemmer
Cody Saylors
Izzy Garufi
Kadeem Flosi
Chavez Briddick
Kadeem Flosi
Antonio Caudy
Salvatore Stockham
Wickens Nestle
David Darakjy
Greenwood Bolognia
Juan Wieser
Misaki Royster
Costa Dilliard
Jones Vocelka
Cody Saylors
Johnson Sergi
Salvatore Stockham
Aditya Kusko
Morrow Ruta
Munro Ferencz
Stacey Maclead
Kadeem Flosi
Faith Gillian
Octavia Malet
Arvin Albares
Jeanfrancois Venere
James Butt
Faith Gillian
Antonio Caudy
Jones Vocelka
Sinclair Waycott
Faith Gillian
Jeanfrancois Venere
Jeanfrancois Venere
Smith Glick
Johnson Sergi
David Darakjy
Munro Ferencz
IdCountryDate
1000Australia2021-05-22
1001Spain2021-05-26
1002Australia2021-05-26
1003Argentina2021-06-03
1004Canada2021-05-18
1005Brazil2021-05-18
1006Canada2021-05-21
1007Japan2021-05-20
1008United Kingdom2021-06-05
1009United Kingdom2021-05-21
1010Russia2021-05-20
1011Italy2021-05-24
1012India2021-05-18
1013France2021-05-30
1014Australia2021-06-05
1015France2021-05-14
1016France2021-06-11
1017Italy2021-05-15
1018Russia2021-05-25
1019Argentina2021-06-11
1020Italy2021-06-04
1021Italy2021-06-05
1022Italy2021-06-03
1023United Kingdom2021-05-14
1024France2021-06-06
1025Brazil2021-06-03
1026France2021-06-07
1027India2021-06-03
1028Italy2021-06-04
1029Argentina2021-06-03
1030Brazil2021-05-25
1031India2021-05-22
1032Brazil2021-06-07
1033Spain2021-05-29
1034Canada2021-06-02
1035Japan2021-05-21
1036United Kingdom2021-06-12
1037Italy2021-06-12
1038Spain2021-05-24
1039United Kingdom2021-06-07
1040Japan2021-05-24
1041India2021-06-01
1042Japan2021-05-21
1043Italy2021-05-23
1044Brazil2021-05-15
1045Japan2021-06-11
1046France2021-05-17
1047Italy2021-05-22
1048Germany2021-05-21
1049Brazil2021-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideSpainStephen Shaw NEW
Nicolas IturbideAustraliaBernardo Dominic QUALIFIED
James ButtAustraliaElwin Sharvill QUALIFIED
Smith GlickCanadaOnyama Limba PROPOSAL
Chavez BriddickFranceElwin Sharvill NEGOTIATION
Ashley DoeJapanIvan Magalhaes NEW
Morrow RutaUnited KingdomStephen Shaw PROPOSAL
Jones VocelkaJapanBernardo Dominic PROPOSAL
Maisha RulapaughBrazilElwin Sharvill UNQUALIFIED
Aditya KuskoJapanIoni Bowcher PROPOSAL
Mujtaba NickaCanadaBernardo Dominic NEW
Stacey MacleadArgentinaIvan Magalhaes UNQUALIFIED
Aika InouyeSpainAsiya Javayant UNQUALIFIED
Greenwood BologniaSpainIvan Magalhaes UNQUALIFIED
Arvin AlbaresUnited KingdomAnna Fali UNQUALIFIED
Murillo MaletCanadaOnyama Limba RENEWAL
Arvin AlbaresItalyAnna Fali NEGOTIATION
Arvin AlbaresArgentinaAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomElwin Sharvill QUALIFIED
Adams MorascaArgentinaAmy Elsner QUALIFIED
Faith GillianRussiaAnna Fali PROPOSAL
Francesco ShinkoCanadaElwin Sharvill PROPOSAL
Jennifer AmigonBrazilElwin Sharvill NEW
Greenwood BologniaGermanyXuxue Feng NEW
Aditya KuskoCanadaOnyama Limba UNQUALIFIED
Jones VocelkaIndiaElwin Sharvill UNQUALIFIED
Francesco ShinkoIndiaElwin Sharvill RENEWAL
Misaki RoysterIndiaAnna Fali PROPOSAL
Kaitlin OstroskyUnited KingdomBernardo Dominic NEGOTIATION
Mayumi KolmetzItalyAmy Elsner QUALIFIED
Darci PoquetteIndiaIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanBernardo Dominic RENEWAL
Wickens NestleAustraliaAmy Elsner PROPOSAL
Morrow RutaUnited KingdomElwin Sharvill PROPOSAL
Johnson SergiUnited KingdomBernardo Dominic PROPOSAL
Claire TollnerCanadaXuxue Feng QUALIFIED
Morrow RutaAustraliaAmy Elsner PROPOSAL
Clifford RimSpainAsiya Javayant PROPOSAL
Kaitlin OstroskyBrazilIvan Magalhaes RENEWAL
Faith GillianUnited KingdomAsiya Javayant 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>