Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

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
Darci B RimIndiaAmy Elsner RENEWAL
Leja Z TollnerUnited KingdomBernardo Dominic QUALIFIED
Wickens Z DilliardArgentinaIoni Bowcher NEGOTIATION
Chavez W BologniaRussiaOnyama Limba NEW
Izzy F ChuiCanadaIvan Magalhaes PROPOSAL
Deepesh G SergiUnited KingdomElwin Sharvill PROPOSAL
Rodrigues F KolmetzJapanAsiya Javayant PROPOSAL
Jeanfrancois L OstroskyUnited KingdomStephen Shaw NEGOTIATION
Wickens C OldroydSpainOnyama Limba QUALIFIED
Wickens K MaletArgentinaStephen Shaw NEGOTIATION
Izzy A BriddickArgentinaAnna Fali UNQUALIFIED
Mayumi N WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Jones M CaldareraItalyStephen Shaw NEGOTIATION
David A DilliardSpainIvan Magalhaes RENEWAL
Adams P BologniaAustraliaStephen Shaw PROPOSAL
Arvin M MarrierItalyAmy Elsner QUALIFIED
Faith O NestleBrazilXuxue Feng RENEWAL
Greenwood N OstroskyArgentinaAnna Fali QUALIFIED
Morrow A SaylorsSpainElwin Sharvill RENEWAL
Jeanfrancois O GauchoAustraliaStephen Shaw PROPOSAL
Tony M ChuiUnited KingdomAmy Elsner RENEWAL
Jones X CaudyGermanyAnna Fali QUALIFIED
Morrow H FollerItalyXuxue Feng NEGOTIATION
Tony R IturbideArgentinaOnyama Limba NEW
Jefferson O MaletBrazilAnna Fali QUALIFIED
Silvio U ChuiAustraliaStephen Shaw UNQUALIFIED
Aruna W SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi G StensethAustraliaAmy Elsner QUALIFIED
Rodrigues A MarrierGermanyXuxue Feng NEGOTIATION
Jefferson I RimAustraliaOnyama Limba NEGOTIATION
Morrow F GauchoItalyElwin Sharvill PROPOSAL
Jones P GillianAustraliaAnna Fali QUALIFIED
Ivar F OldroydJapanOnyama Limba QUALIFIED
Cody I WhobreyArgentinaIoni Bowcher PROPOSAL
Ashley C MacleadUnited KingdomAsiya Javayant NEGOTIATION
Claire F FerenczSpainElwin Sharvill PROPOSAL
Aruna C GauchoIndiaBernardo Dominic NEW
Wickens M StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Clifford M WhobreyArgentinaAnna Fali RENEWAL
Ricardo N MorascaBrazilBernardo Dominic NEGOTIATION
Ivar X VocelkaFranceBernardo Dominic RENEWAL
Kadeem E SlusarskiRussiaStephen Shaw NEW
Kaitlin U MaletUnited KingdomAnna Fali NEGOTIATION
Silvio M InouyeRussiaIoni Bowcher NEGOTIATION
Aditya Z InouyeArgentinaXuxue Feng QUALIFIED
Costa D FigeroaJapanIvan Magalhaes UNQUALIFIED
Leja N CampainFranceElwin Sharvill NEW
Leon B RulapaughRussiaAsiya Javayant NEGOTIATION
Munro E SchemmerArgentinaStephen Shaw NEW
Rodrigues I MarrierSpainStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore Z RulapaughSpainElwin Sharvill QUALIFIED
Kadeem Z SlusarskiSpainElwin Sharvill QUALIFIED
Jefferson Z MaletSpainAnna Fali PROPOSAL
Mujtaba C IturbideArgentinaXuxue Feng QUALIFIED
Morrow K SchemmerGermanyStephen Shaw NEGOTIATION
Julie N GillianAustraliaXuxue Feng UNQUALIFIED
Clifford P InouyeGermanyBernardo Dominic NEGOTIATION
Isabel U MaletUnited KingdomAnna Fali UNQUALIFIED
Chavez M WhobreyIndiaBernardo Dominic QUALIFIED
Rodrigues Y KolmetzItalyIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David B StensethUnited Kingdom2024-04-19Feiner Bros PROPOSAL24Ioni Bowcher
1001Mujtaba M NestleFrance2024-04-17King, Christopher A Esq PROPOSAL7Onyama Limba
1002Cody J StensethItaly2024-04-26Truhlar And Truhlar Attys NEW94Stephen Shaw
1003Kaitlin T GauchoRussia2024-04-24Chapman, Ross E Esq NEGOTIATION91Anna Fali
1004Leja A FerenczIndia2024-04-17Dorl, James J Esq QUALIFIED21Anna Fali
1005Stacey G NestleItaly2024-04-23Rousseaux, Michael Esq UNQUALIFIED52Xuxue Feng
1006Arvin P MarrierIndia2024-04-05King, Christopher A Esq UNQUALIFIED43Anna Fali
1007Maisha Q FlosiGermany2024-04-23Morlong Associates PROPOSAL78Asiya Javayant
1008Rodrigues D OldroydGermany2024-04-04Chanay, Jeffrey A Esq PROPOSAL29Bernardo Dominic
1009Leja F AlbaresBrazil2024-04-13Printing Dimensions RENEWAL30Amy Elsner
1010Stacey E StockhamArgentina2024-04-18Buckley Miller Wright NEW35Stephen Shaw
1011Greenwood G MaletArgentina2024-04-08Truhlar And Truhlar Attys UNQUALIFIED8Ioni Bowcher
1012Francesco C OstroskyFrance2024-04-09Dorl, James J Esq PROPOSAL50Onyama Limba
1013Salvatore W VocelkaAustralia2024-04-21Rousseaux, Michael Esq RENEWAL37Bernardo Dominic
1014Ivar G FerenczIndia2024-04-23Rangoni Of Florence PROPOSAL5Xuxue Feng
1015Claire H WieserBrazil2024-04-28Benton, John B Jr QUALIFIED45Stephen Shaw
1016Mujtaba C MaletArgentina2024-04-05Benton, John B Jr QUALIFIED6Xuxue Feng
1017Leon G VenereRussia2024-04-07Rousseaux, Michael Esq NEW66Ivan Magalhaes
1018Stacey H FollerCanada2024-04-21Feiner Bros NEGOTIATION83Bernardo Dominic
1019Rodrigues S VenereArgentina2024-05-02Chemel, James L Cpa NEGOTIATION95Stephen Shaw
1020Jefferson V OldroydCanada2024-04-10Chapman, Ross E Esq UNQUALIFIED83Amy Elsner
1021Tony O SlusarskiAustralia2024-04-29Dorl, James J Esq RENEWAL94Elwin Sharvill
1022Jeanfrancois U GarufiArgentina2024-04-03Dorl, James J Esq NEGOTIATION19Ioni Bowcher
1023Rodrigues R GlickJapan2024-05-01Chanay, Jeffrey A Esq NEGOTIATION54Stephen Shaw
1024Jones U FerenczSpain2024-04-04Benton, John B Jr UNQUALIFIED80Anna Fali
1025Maisha M PaprockiGermany2024-04-22Dorl, James J Esq NEW28Elwin Sharvill
1026Salvatore B BologniaArgentina2024-04-14Chanay, Jeffrey A Esq NEGOTIATION49Stephen Shaw
1027Mayumi K FlosiItaly2024-04-14Dorl, James J Esq NEGOTIATION7Onyama Limba
1028Morrow O RimRussia2024-04-19Dorl, James J Esq NEW40Asiya Javayant
1029Julie J GlickCanada2024-04-17Chanay, Jeffrey A Esq NEGOTIATION39Amy Elsner
1030Ashley J InouyeUnited Kingdom2024-04-14Benton, John B Jr PROPOSAL3Xuxue Feng
1031Clifford L BowleyGermany2024-04-14Rousseaux, Michael Esq QUALIFIED39Asiya Javayant
1032Kadeem A OldroydSpain2024-04-04Rousseaux, Michael Esq QUALIFIED45Bernardo Dominic
1033Chavez T DoeSpain2024-04-09Printing Dimensions RENEWAL99Xuxue Feng
1034Emily O AlbaresRussia2024-04-18Rangoni Of Florence UNQUALIFIED52Xuxue Feng
1035Aruna I RutaCanada2024-04-29Printing Dimensions NEW29Stephen Shaw
1036Rodrigues Q PaprockiArgentina2024-04-28King, Christopher A Esq RENEWAL91Amy Elsner
1037Kaitlin A MaletUnited Kingdom2024-04-28Printing Dimensions NEW83Asiya Javayant
1038Chavez L KuskoGermany2024-04-30Feiner Bros QUALIFIED82Bernardo Dominic
1039Ricardo N DarakjyUnited Kingdom2024-04-11Rousseaux, Michael Esq QUALIFIED71Anna Fali
1040Morrow H DoeJapan2024-04-15Feiner Bros QUALIFIED40Ioni Bowcher
1041Ashley E SchemmerIndia2024-04-06Rousseaux, Michael Esq NEGOTIATION41Onyama Limba
1042Greenwood L MaletBrazil2024-04-09Feiner Bros QUALIFIED19Xuxue Feng
1043Emily A WaycottFrance2024-04-18Feltz Printing Service NEGOTIATION41Elwin Sharvill
1044Chavez M MaletSpain2024-04-04Feltz Printing Service NEW30Onyama Limba
1045Aruna N PoquetteItaly2024-04-14Printing Dimensions PROPOSAL58Onyama Limba
1046Jones P SlusarskiItaly2024-04-05Truhlar And Truhlar Attys RENEWAL8Anna Fali
1047Izzy I FollerAustralia2024-04-03Feiner Bros NEGOTIATION69Asiya Javayant
1048Mujtaba G RoysterSpain2024-04-09Commercial Press UNQUALIFIED95Onyama Limba
1049Salvatore W FerenczRussia2024-04-05Printing Dimensions NEGOTIATION14Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi X NestleArgentinaBernardo Dominic NEW
Chavez X AlbaresBrazilOnyama Limba PROPOSAL
Ashley U ButtUnited KingdomAnna Fali PROPOSAL
Silvio W IturbideIndiaOnyama Limba PROPOSAL
Aika A AlbaresArgentinaStephen Shaw PROPOSAL
Jeanfrancois O RulapaughFranceAmy Elsner RENEWAL
Salvatore Y StockhamIndiaAmy Elsner PROPOSAL
Izzy G CampainIndiaIoni Bowcher NEGOTIATION
Julie B SergiAustraliaBernardo Dominic NEW
Izzy M SaylorsItalyElwin Sharvill RENEWAL
Kadeem T AlbaresGermanyAnna Fali UNQUALIFIED
Kaitlin W KuskoArgentinaAmy Elsner NEGOTIATION
Julie W FollerRussiaBernardo Dominic NEGOTIATION
Clifford V MarrierJapanElwin Sharvill NEW
Antonio C WaycottItalyXuxue Feng RENEWAL
Leja D MacleadRussiaStephen Shaw QUALIFIED
Ivar A ButtJapanXuxue Feng UNQUALIFIED
James U GlickFranceStephen Shaw NEW
Jennifer T DoeFranceStephen Shaw NEW
Ivar W KolmetzFranceBernardo Dominic PROPOSAL
Kadeem X RutaSpainOnyama Limba UNQUALIFIED
Wickens Y MaletGermanyIvan Magalhaes QUALIFIED
Mujtaba C VocelkaFranceXuxue Feng RENEWAL
Octavia A StockhamRussiaOnyama Limba RENEWAL
Sinclair A FlosiIndiaIoni Bowcher UNQUALIFIED
Maria A MarrierIndiaAmy Elsner UNQUALIFIED
Kaitlin H GillianCanadaIoni Bowcher NEW
Morrow B KolmetzJapanIvan Magalhaes RENEWAL
Aruna R GauchoArgentinaAsiya Javayant NEGOTIATION
Smith S CampainJapanStephen Shaw NEGOTIATION
Mayumi H PoquetteAustraliaAnna Fali UNQUALIFIED
Emily V KolmetzBrazilIvan Magalhaes NEW
Kaitlin T MacleadFranceXuxue Feng QUALIFIED
Maisha I VocelkaCanadaStephen Shaw UNQUALIFIED
Octavia Y WhobreyBrazilXuxue Feng PROPOSAL
Salvatore B IturbideJapanXuxue Feng PROPOSAL
Chavez Y WhobreyGermanyAnna Fali UNQUALIFIED
Maisha N ShinkoIndiaAsiya Javayant NEW
Ivar N ChuiBrazilAnna Fali RENEWAL
Mujtaba H ChuiJapanOnyama Limba NEGOTIATION
Octavia X SchemmerUnited KingdomAsiya Javayant PROPOSAL
Jennifer I WaycottRussiaAnna Fali NEW
Ricardo O WaycottAustraliaAsiya Javayant PROPOSAL
Jefferson Q GillianCanadaBernardo Dominic RENEWAL
Greenwood Q BologniaRussiaAmy Elsner UNQUALIFIED
Rodrigues W SergiJapanAnna Fali QUALIFIED
Mayumi O CaldareraArgentinaAmy Elsner UNQUALIFIED
Isabel B AmigonFranceIvan Magalhaes NEW
Aika R SaylorsCanadaAsiya Javayant QUALIFIED
Adams H NickaJapanIoni Bowcher NEW
Frozen Columns
Name
Ashley C Sergi
Jones O Caudy
Morrow H Whobrey
Adams Z Shinko
Francesco P Rim
Kadeem Y Caldarera
Ashley O Perin
Salvatore D Oldroyd
Jennifer K Ostrosky
Octavia T Royster
Julie X Vocelka
Tony U Garufi
Aditya L Stenseth
Silvio W Venere
Stacey S Stockham
Silvio S Flosi
Antonio V Stenseth
Emily S Chui
James U Butt
Kaitlin E Poquette
Leon Q Venere
Jefferson K Foller
Jennifer C Glick
Salvatore P Waycott
Sinclair Q Glick
Cody R Saylors
David R Morasca
Jones P Iturbide
Misaki P Dilliard
Greenwood E Morasca
Antonio I Stenseth
Johnson S Kusko
Emily Z Ferencz
Tony F Albares
Darci S Flosi
Faith Q Doe
Aditya C Perin
Tony W Sergi
Costa P Kolmetz
David V Shinko
Silvio U Schemmer
Murillo G Morasca
Juan I Kusko
Jeanfrancois A Saylors
Antonio D Rulapaugh
Ivar E Nicka
Morrow L Glick
Francesco A Ferencz
Julie C Venere
Jennifer Z Figeroa
IdCountryDate
1000Canada2024-04-03
1001Germany2024-04-24
1002India2024-04-07
1003France2024-04-12
1004Brazil2024-04-24
1005Italy2024-04-30
1006France2024-04-24
1007Brazil2024-04-06
1008United Kingdom2024-04-29
1009Argentina2024-04-06
1010Brazil2024-04-19
1011India2024-04-08
1012Germany2024-04-21
1013France2024-04-20
1014Japan2024-04-11
1015India2024-04-28
1016Canada2024-04-21
1017Spain2024-04-20
1018Spain2024-04-30
1019Italy2024-04-19
1020Japan2024-04-19
1021Italy2024-04-22
1022India2024-04-30
1023France2024-04-19
1024Australia2024-04-08
1025Canada2024-04-07
1026Canada2024-04-14
1027Argentina2024-04-09
1028Argentina2024-04-06
1029Canada2024-04-26
1030Spain2024-04-21
1031Germany2024-04-12
1032Canada2024-04-13
1033Russia2024-04-11
1034Argentina2024-04-11
1035Italy2024-04-16
1036Japan2024-04-08
1037Canada2024-04-30
1038Argentina2024-04-23
1039France2024-04-12
1040Argentina2024-04-04
1041India2024-04-19
1042India2024-05-02
1043Spain2024-04-27
1044Argentina2024-04-13
1045Germany2024-04-23
1046Canada2024-04-09
1047Canada2024-04-05
1048France2024-04-27
1049France2024-05-02

On-Demand Data

NameIdCountryDate
Costa N Sergi1000United Kingdom2024-04-06
Jennifer O Gillian1001Australia2024-04-07
Ashley Q Garufi1002Italy2024-05-01
Leja S Briddick1003United Kingdom2024-04-10
Kadeem X Chui1004Spain2024-05-01
Arvin E Briddick1005Canada2024-04-08
Julie L Figeroa1006India2024-04-22
Claire A Royster1007Italy2024-04-05
Jeanfrancois Y Saylors1008Australia2024-04-21
Ivar D Rulapaugh1009India2024-04-03
Silvio H Albares1010Italy2024-05-02
Maisha R Sergi1011Germany2024-04-07
Leon M Glick1012Spain2024-04-18
Maisha N Ostrosky1013India2024-04-16
Emily H Gaucho1014Spain2024-04-10
Smith K Shinko1015Canada2024-04-10
Julie I Dilliard1016Japan2024-04-26
Costa F Ruta1017Brazil2024-04-05
Aruna S Ostrosky1018Italy2024-04-29
Johnson W Marrier1019India2024-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh X VenereJapanBernardo Dominic UNQUALIFIED
Murillo Y StockhamIndiaIvan Magalhaes PROPOSAL
Murillo J MaletAustraliaAmy Elsner NEGOTIATION
Murillo Z MaletArgentinaIoni Bowcher NEW
Darci P InouyeArgentinaStephen Shaw UNQUALIFIED
Maria T WhobreySpainStephen Shaw PROPOSAL
Ricardo P CaudyArgentinaAnna Fali NEW
Leon C MorascaItalyStephen Shaw RENEWAL
Claire A KolmetzJapanAnna Fali PROPOSAL
Salvatore Q StensethFranceAmy Elsner UNQUALIFIED
Isabel Y SaylorsFranceElwin Sharvill UNQUALIFIED
Antonio I BowleyCanadaAsiya Javayant NEGOTIATION
Maria J MarrierArgentinaXuxue Feng NEW
Kaitlin L GlickGermanyAmy Elsner PROPOSAL
Maria X BriddickAustraliaAnna Fali RENEWAL
Maria H DilliardFranceIoni Bowcher RENEWAL
Misaki S SergiRussiaAmy Elsner NEGOTIATION
Morrow X GillianGermanyXuxue Feng QUALIFIED
Leja Y FlosiJapanXuxue Feng QUALIFIED
Jennifer M PaprockiCanadaIoni Bowcher QUALIFIED
Aruna O CampainItalyIvan Magalhaes QUALIFIED
Jennifer Y WaycottSpainXuxue Feng PROPOSAL
Kaitlin Y FollerCanadaAnna Fali NEGOTIATION
Maria K NestleJapanIvan Magalhaes NEGOTIATION
Clifford K BowleyFranceAmy Elsner QUALIFIED
Leon Q FollerJapanIvan Magalhaes UNQUALIFIED
Tony B InouyeItalyStephen Shaw RENEWAL
Salvatore Z FerenczFranceAmy Elsner UNQUALIFIED
Emily M StensethCanadaAnna Fali RENEWAL
Maisha M AmigonIndiaElwin Sharvill RENEWAL
Leon C OstroskySpainStephen Shaw PROPOSAL
Wickens D MarrierFranceAmy Elsner NEGOTIATION
Smith E MaletArgentinaAnna Fali PROPOSAL
Darci A PaprockiSpainXuxue Feng RENEWAL
Murillo K CaudyJapanIvan Magalhaes UNQUALIFIED
Mujtaba X StensethIndiaIvan Magalhaes PROPOSAL
Maisha R CaudyJapanAnna Fali RENEWAL
Arvin E BriddickFranceStephen Shaw NEGOTIATION
Rodrigues F FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Smith C RimGermanyAsiya Javayant RENEWAL

<style>
    .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">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <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>