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
Mujtaba U MarrierItalyStephen Shaw UNQUALIFIED
Leja S MarrierIndiaOnyama Limba NEGOTIATION
Wickens K DarakjyBrazilAmy Elsner UNQUALIFIED
David A CaldareraSpainOnyama Limba PROPOSAL
Salvatore L WieserBrazilXuxue Feng PROPOSAL
Alejandro F FerenczUnited KingdomStephen Shaw NEGOTIATION
Juan S StensethBrazilStephen Shaw PROPOSAL
Stacey B GlickFranceIvan Magalhaes NEGOTIATION
Tony B BologniaGermanyElwin Sharvill PROPOSAL
Costa G AmigonCanadaOnyama Limba PROPOSAL
David S MorascaCanadaIoni Bowcher QUALIFIED
Costa O WieserUnited KingdomBernardo Dominic NEGOTIATION
Sinclair M RimIndiaBernardo Dominic RENEWAL
Rodrigues M RoysterFranceXuxue Feng NEW
Julie I CaldareraBrazilIoni Bowcher NEW
Munro H FlosiIndiaIvan Magalhaes NEGOTIATION
Kaitlin E BriddickCanadaXuxue Feng PROPOSAL
Jones G CaudyUnited KingdomAsiya Javayant PROPOSAL
Darci F GarufiUnited KingdomAmy Elsner NEW
Arvin H FollerRussiaIoni Bowcher QUALIFIED
Ashley G VocelkaJapanAmy Elsner QUALIFIED
Rodrigues V DilliardJapanIoni Bowcher UNQUALIFIED
Munro T FerenczUnited KingdomIoni Bowcher RENEWAL
Rodrigues M KolmetzIndiaElwin Sharvill NEGOTIATION
Smith M CaldareraGermanyAmy Elsner PROPOSAL
Morrow D RutaFranceBernardo Dominic RENEWAL
Deepesh W DoeIndiaElwin Sharvill PROPOSAL
Jeanfrancois A DarakjySpainIvan Magalhaes UNQUALIFIED
Cody F FlosiArgentinaXuxue Feng QUALIFIED
Julie U ShinkoUnited KingdomIvan Magalhaes PROPOSAL
Octavia X OstroskyUnited KingdomOnyama Limba PROPOSAL
Clifford J FigeroaCanadaAsiya Javayant NEGOTIATION
Misaki Q FollerSpainIvan Magalhaes PROPOSAL
Kaitlin G DoeRussiaAmy Elsner PROPOSAL
Aruna Q DarakjyGermanyElwin Sharvill NEGOTIATION
James G MaletIndiaIoni Bowcher NEW
James W FollerAustraliaStephen Shaw QUALIFIED
Salvatore H SlusarskiItalyOnyama Limba UNQUALIFIED
Octavia J NickaSpainIvan Magalhaes NEGOTIATION
Stacey N RoysterFranceBernardo Dominic QUALIFIED
Emily S DarakjyJapanBernardo Dominic NEW
Murillo I MarrierFranceIvan Magalhaes UNQUALIFIED
Cody Y CaldareraUnited KingdomOnyama Limba NEW
Julie W OldroydArgentinaXuxue Feng NEW
Murillo C SergiGermanyIoni Bowcher PROPOSAL
Morrow K SergiBrazilOnyama Limba QUALIFIED
Julie W DilliardCanadaOnyama Limba UNQUALIFIED
Misaki M MorascaSpainXuxue Feng NEGOTIATION
Maisha R GlickFranceIvan Magalhaes RENEWAL
Mayumi S BologniaFranceAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Octavia N KuskoUnited KingdomStephen Shaw UNQUALIFIED
Jennifer J FollerAustraliaIoni Bowcher UNQUALIFIED
Ivar W FlosiFranceElwin Sharvill QUALIFIED
Izzy Q SergiAustraliaAmy Elsner QUALIFIED
Salvatore Z FigeroaAustraliaOnyama Limba UNQUALIFIED
Stacey U ButtUnited KingdomAnna Fali NEGOTIATION
Octavia U CampainRussiaIvan Magalhaes RENEWAL
Sinclair X BologniaBrazilIvan Magalhaes NEW
James K StockhamIndiaAmy Elsner RENEWAL
Maisha U WieserAustraliaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones B MacleadUnited Kingdom2024-04-15Feltz Printing Service RENEWAL51Bernardo Dominic
1001Stacey F StockhamIndia2024-04-05Printing Dimensions RENEWAL64Stephen Shaw
1002Mujtaba K FigeroaIndia2024-04-06Chapman, Ross E Esq QUALIFIED62Anna Fali
1003Jeanfrancois Z FlosiItaly2024-04-08Feltz Printing Service NEW86Onyama Limba
1004Mayumi K StockhamBrazil2024-03-23Rousseaux, Michael Esq QUALIFIED64Onyama Limba
1005Munro R KuskoIndia2024-04-11Truhlar And Truhlar Attys NEW22Onyama Limba
1006Francesco W IturbideBrazil2024-04-07Rousseaux, Michael Esq UNQUALIFIED99Onyama Limba
1007Leon G FlosiSpain2024-03-24Rangoni Of Florence UNQUALIFIED14Stephen Shaw
1008Greenwood P BriddickJapan2024-04-15Truhlar And Truhlar Attys PROPOSAL8Amy Elsner
1009Aditya E BologniaArgentina2024-04-12Chapman, Ross E Esq UNQUALIFIED61Onyama Limba
1010Misaki P GlickSpain2024-03-25Printing Dimensions NEGOTIATION59Ivan Magalhaes
1011Clifford X MaletRussia2024-03-31Chemel, James L Cpa NEGOTIATION85Amy Elsner
1012Claire F AmigonSpain2024-04-03Chemel, James L Cpa RENEWAL50Bernardo Dominic
1013Sinclair X SergiFrance2024-04-16Truhlar And Truhlar Attys PROPOSAL87Asiya Javayant
1014Johnson Q FerenczSpain2024-04-03Truhlar And Truhlar Attys NEGOTIATION8Ioni Bowcher
1015Nicolas B FigeroaArgentina2024-04-12Chapman, Ross E Esq PROPOSAL62Ivan Magalhaes
1016Leja D DilliardAustralia2024-03-22Rousseaux, Michael Esq NEW16Asiya Javayant
1017James K CaldareraArgentina2024-03-31Benton, John B Jr PROPOSAL5Anna Fali
1018Munro M OstroskyFrance2024-03-31Chapman, Ross E Esq PROPOSAL18Xuxue Feng
1019James R GlickGermany2024-04-17King, Christopher A Esq UNQUALIFIED90Ivan Magalhaes
1020Ricardo J CaldareraAustralia2024-03-21Truhlar And Truhlar Attys NEW94Bernardo Dominic
1021Juan K SaylorsSpain2024-04-16Chemel, James L Cpa UNQUALIFIED81Ivan Magalhaes
1022Leja B CampainCanada2024-04-06King, Christopher A Esq NEGOTIATION83Ioni Bowcher
1023Kaitlin H OstroskyAustralia2024-03-30Chapman, Ross E Esq RENEWAL35Anna Fali
1024Leon R PoquetteUnited Kingdom2024-04-18King, Christopher A Esq NEGOTIATION52Xuxue Feng
1025Octavia D BriddickBrazil2024-04-09Chapman, Ross E Esq PROPOSAL3Elwin Sharvill
1026Cody X GlickAustralia2024-03-29Printing Dimensions QUALIFIED80Elwin Sharvill
1027Kadeem K OldroydArgentina2024-04-01Printing Dimensions UNQUALIFIED90Stephen Shaw
1028Costa K BowleyFrance2024-04-19Feiner Bros UNQUALIFIED98Onyama Limba
1029Stacey I MarrierGermany2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED95Asiya Javayant
1030James C KuskoFrance2024-04-13Morlong Associates UNQUALIFIED98Ioni Bowcher
1031Silvio U CampainArgentina2024-03-31Morlong Associates NEGOTIATION6Onyama Limba
1032Juan U DilliardArgentina2024-03-21Chemel, James L Cpa PROPOSAL10Elwin Sharvill
1033Maria M KolmetzCanada2024-04-11Chemel, James L Cpa UNQUALIFIED1Stephen Shaw
1034Jefferson H BriddickUnited Kingdom2024-03-24Chemel, James L Cpa NEW13Asiya Javayant
1035James R KuskoIndia2024-04-15Feiner Bros NEW28Xuxue Feng
1036Kaitlin R WhobreySpain2024-03-30Buckley Miller Wright UNQUALIFIED55Elwin Sharvill
1037Cody I OstroskyBrazil2024-03-26King, Christopher A Esq UNQUALIFIED92Bernardo Dominic
1038Aika R WaycottBrazil2024-04-12Rousseaux, Michael Esq NEGOTIATION75Xuxue Feng
1039Clifford H CaudyFrance2024-04-13King, Christopher A Esq RENEWAL82Bernardo Dominic
1040Maria K NickaCanada2024-04-04Rangoni Of Florence NEW33Xuxue Feng
1041Salvatore W GarufiSpain2024-03-28Commercial Press NEW43Xuxue Feng
1042Ricardo G CaldareraSpain2024-04-13Commercial Press UNQUALIFIED14Amy Elsner
1043Smith M SchemmerBrazil2024-03-23Rangoni Of Florence NEGOTIATION16Ioni Bowcher
1044Ashley H RimItaly2024-03-23Chemel, James L Cpa UNQUALIFIED85Ioni Bowcher
1045Salvatore X RoysterSpain2024-04-04Rangoni Of Florence RENEWAL36Xuxue Feng
1046Deepesh X ButtSpain2024-03-28Benton, John B Jr UNQUALIFIED0Ioni Bowcher
1047Stacey I FollerAustralia2024-03-21Rangoni Of Florence NEW98Ivan Magalhaes
1048Alejandro M MorascaArgentina2024-04-16Benton, John B Jr UNQUALIFIED32Stephen Shaw
1049Wickens X MorascaItaly2024-04-12Feiner Bros UNQUALIFIED17Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Julie S BriddickCanadaAmy Elsner NEGOTIATION
Costa L OldroydJapanIvan Magalhaes RENEWAL
Costa T OstroskyRussiaAnna Fali PROPOSAL
Aika W PoquetteBrazilBernardo Dominic UNQUALIFIED
Jefferson X GauchoUnited KingdomAmy Elsner NEW
Mayumi Z OldroydSpainStephen Shaw QUALIFIED
Aditya L PerinCanadaElwin Sharvill UNQUALIFIED
Mujtaba T CaldareraBrazilAnna Fali UNQUALIFIED
Deepesh H RutaRussiaOnyama Limba NEGOTIATION
Maria K BologniaSpainElwin Sharvill PROPOSAL
Chavez I OstroskyArgentinaElwin Sharvill UNQUALIFIED
Leon M VenereRussiaIoni Bowcher NEW
Silvio S GlickBrazilOnyama Limba NEW
Juan M GillianGermanyStephen Shaw NEW
Munro X NestleRussiaAsiya Javayant NEGOTIATION
Juan B KuskoCanadaOnyama Limba RENEWAL
Adams H SlusarskiSpainAmy Elsner NEGOTIATION
Cody N SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Jones S OldroydCanadaIvan Magalhaes NEW
Aditya R IturbideAustraliaAnna Fali NEGOTIATION
Faith S NickaJapanBernardo Dominic NEW
Misaki W FigeroaSpainOnyama Limba NEGOTIATION
Emily T SchemmerJapanIvan Magalhaes NEW
Ivar U WieserCanadaBernardo Dominic NEW
Octavia M SaylorsSpainElwin Sharvill PROPOSAL
Aruna T CaudyFranceElwin Sharvill RENEWAL
Smith X IturbideAustraliaIoni Bowcher NEW
Faith D CampainArgentinaElwin Sharvill QUALIFIED
Juan H GlickCanadaStephen Shaw PROPOSAL
Johnson W ShinkoFranceBernardo Dominic PROPOSAL
David S PerinIndiaAsiya Javayant UNQUALIFIED
Murillo V DilliardGermanyIoni Bowcher RENEWAL
Cody I RimAustraliaBernardo Dominic UNQUALIFIED
Nicolas A WhobreyCanadaIvan Magalhaes NEGOTIATION
Julie C RutaSpainAmy Elsner UNQUALIFIED
Smith T DarakjyItalyBernardo Dominic RENEWAL
Clifford P GillianUnited KingdomXuxue Feng QUALIFIED
Aditya W WieserGermanyStephen Shaw RENEWAL
Kadeem S GillianItalyAnna Fali UNQUALIFIED
Smith A StensethBrazilIvan Magalhaes RENEWAL
Sinclair D DarakjyArgentinaOnyama Limba NEGOTIATION
Morrow D FollerIndiaAsiya Javayant NEW
Smith K PaprockiBrazilAsiya Javayant PROPOSAL
Kaitlin K SaylorsIndiaAmy Elsner QUALIFIED
Kadeem A RulapaughFranceStephen Shaw RENEWAL
Octavia B InouyeArgentinaXuxue Feng NEW
David G BriddickAustraliaBernardo Dominic PROPOSAL
Nicolas E BriddickArgentinaOnyama Limba RENEWAL
Faith D GarufiSpainAmy Elsner RENEWAL
Kadeem Q WieserAustraliaStephen Shaw PROPOSAL
Frozen Columns
Name
Mayumi Z Sergi
Julie F Briddick
Aika I Rim
Aditya H Saylors
Octavia V Slusarski
Silvio U Bolognia
Juan Q Chui
Aruna X Bowley
Silvio I Stockham
Salvatore R Slusarski
Murillo O Tollner
Mujtaba M Kolmetz
Isabel C Caldarera
Munro E Caldarera
Ivar N Shinko
Nicolas Z Gillian
Stacey B Malet
Sinclair M Marrier
Johnson L Whobrey
Emily E Kolmetz
Rodrigues M Malet
Misaki W Morasca
Jefferson H Oldroyd
Murillo R Schemmer
Jennifer F Kolmetz
Sinclair K Paprocki
Sinclair T Oldroyd
Stacey R Butt
Stacey C Rulapaugh
Chavez Q Venere
Octavia Y Garufi
Aditya K Gillian
Antonio S Briddick
Wickens A Malet
Arvin B Chui
Antonio S Tollner
Tony Z Briddick
Antonio N Whobrey
Jeanfrancois O Briddick
Murillo Y Vocelka
Murillo S Butt
Murillo M Caldarera
Adams U Briddick
Mujtaba M Briddick
Julie Y Rulapaugh
Misaki B Saylors
Jennifer I Albares
Kadeem R Caldarera
Octavia A Paprocki
Nicolas O Bolognia
IdCountryDate
1000France2024-04-08
1001Australia2024-03-25
1002Australia2024-04-17
1003Russia2024-04-14
1004India2024-04-09
1005Canada2024-04-17
1006Australia2024-04-04
1007India2024-03-29
1008Canada2024-03-21
1009United Kingdom2024-04-16
1010Argentina2024-04-09
1011France2024-04-10
1012Japan2024-04-19
1013India2024-04-03
1014Brazil2024-04-13
1015Canada2024-03-25
1016Italy2024-03-24
1017United Kingdom2024-03-21
1018India2024-04-04
1019Brazil2024-04-19
1020Brazil2024-04-04
1021Spain2024-03-27
1022Brazil2024-04-16
1023Spain2024-03-28
1024Brazil2024-03-30
1025United Kingdom2024-04-06
1026India2024-04-12
1027Argentina2024-04-16
1028Australia2024-03-23
1029Canada2024-03-31
1030Russia2024-04-15
1031Brazil2024-04-11
1032Japan2024-03-25
1033Canada2024-04-06
1034Italy2024-04-17
1035Japan2024-04-19
1036Italy2024-04-10
1037Canada2024-03-29
1038India2024-04-08
1039United Kingdom2024-04-10
1040Italy2024-04-01
1041Canada2024-04-03
1042Japan2024-04-16
1043Canada2024-03-22
1044United Kingdom2024-04-18
1045Brazil2024-03-30
1046Japan2024-03-21
1047Argentina2024-04-02
1048India2024-04-08
1049India2024-04-12

On-Demand Data

NameIdCountryDate
Smith F Nicka1000India2024-04-07
Chavez E Chui1001Italy2024-04-05
Aditya C Caldarera1002United Kingdom2024-04-15
Costa Y Paprocki1003France2024-04-09
Maria T Marrier1004Germany2024-04-06
Smith R Tollner1005India2024-04-06
Alejandro M Whobrey1006Russia2024-03-28
Aika F Foller1007Italy2024-03-23
Claire G Shinko1008France2024-03-24
Smith G Butt1009Russia2024-03-27
Aruna M Bowley1010Brazil2024-04-18
Claire R Whobrey1011Australia2024-04-19
Claire J Oldroyd1012Germany2024-03-24
Smith Z Shinko1013Canada2024-04-07
Leon H Kolmetz1014Russia2024-03-22
James B Maclead1015Brazil2024-03-29
Deepesh J Whobrey1016Brazil2024-03-23
Wickens J Amigon1017India2024-03-24
Mayumi L Morasca1018France2024-04-02
Jeanfrancois W Doe1019Germany2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Z RulapaughUnited KingdomXuxue Feng UNQUALIFIED
Juan W BowleyGermanyAsiya Javayant QUALIFIED
Aruna Z DoeAustraliaAmy Elsner RENEWAL
Octavia T AmigonGermanyIoni Bowcher NEGOTIATION
Misaki F AmigonRussiaXuxue Feng QUALIFIED
Julie H FollerSpainAnna Fali NEW
Cody G SlusarskiIndiaXuxue Feng UNQUALIFIED
Munro Z MaletJapanIoni Bowcher PROPOSAL
Kadeem Y PerinArgentinaIoni Bowcher NEGOTIATION
Aditya L ButtIndiaIvan Magalhaes NEW
Julie W NestleIndiaStephen Shaw RENEWAL
Alejandro A DoeCanadaBernardo Dominic NEW
Ivar J MarrierGermanyXuxue Feng NEGOTIATION
Kadeem V BriddickItalyXuxue Feng RENEWAL
Costa P SlusarskiFranceIoni Bowcher NEW
Johnson V ShinkoAustraliaAsiya Javayant UNQUALIFIED
Ivar J AmigonIndiaAsiya Javayant RENEWAL
Leon Y MaletAustraliaAmy Elsner PROPOSAL
Morrow Q SaylorsUnited KingdomXuxue Feng NEGOTIATION
Arvin J PerinRussiaIoni Bowcher NEW
Faith N OstroskyAustraliaBernardo Dominic PROPOSAL
Juan C IturbideCanadaXuxue Feng QUALIFIED
Tony W FollerArgentinaAmy Elsner RENEWAL
Claire Y OldroydSpainElwin Sharvill NEW
Julie Q VocelkaFranceStephen Shaw RENEWAL
Mayumi W AlbaresArgentinaStephen Shaw RENEWAL
Sinclair E MacleadItalyStephen Shaw UNQUALIFIED
Aruna N DoeIndiaAmy Elsner UNQUALIFIED
Adams Q IturbideItalyXuxue Feng QUALIFIED
Izzy U KuskoItalyOnyama Limba NEGOTIATION
Jennifer Y FlosiFranceAnna Fali UNQUALIFIED
Leja O ButtBrazilStephen Shaw UNQUALIFIED
Wickens K WaycottUnited KingdomIoni Bowcher RENEWAL
Emily C InouyeArgentinaAsiya Javayant NEW
Claire X AlbaresGermanyElwin Sharvill NEW
Mujtaba B KuskoSpainOnyama Limba PROPOSAL
Cody S IturbideCanadaXuxue Feng QUALIFIED
Arvin V CampainFranceElwin Sharvill PROPOSAL
Aditya K KolmetzSpainAsiya Javayant PROPOSAL
James I BriddickFranceAmy Elsner 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>