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
Greenwood L SergiCanadaXuxue Feng UNQUALIFIED
Aruna C CaldareraJapanXuxue Feng NEGOTIATION
Nicolas K BriddickJapanAnna Fali RENEWAL
Antonio K BriddickFranceBernardo Dominic NEGOTIATION
Francesco A FigeroaBrazilOnyama Limba RENEWAL
Francesco W BologniaBrazilStephen Shaw RENEWAL
Kadeem C RimItalyBernardo Dominic PROPOSAL
Rodrigues U AlbaresUnited KingdomAmy Elsner NEGOTIATION
Johnson B InouyeJapanBernardo Dominic QUALIFIED
Arvin B OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Maria W DarakjyRussiaIoni Bowcher QUALIFIED
Jefferson T DilliardJapanAmy Elsner UNQUALIFIED
Adams T RoysterGermanyIvan Magalhaes PROPOSAL
Jennifer I RimCanadaBernardo Dominic QUALIFIED
Darci Z MaletJapanIoni Bowcher PROPOSAL
Deepesh G BowleyItalyStephen Shaw RENEWAL
Claire I MarrierJapanIvan Magalhaes QUALIFIED
Aika N MorascaGermanyBernardo Dominic NEGOTIATION
Leja G MorascaRussiaOnyama Limba QUALIFIED
Jefferson A SaylorsGermanyAnna Fali QUALIFIED
Morrow H StockhamArgentinaAmy Elsner NEGOTIATION
Sinclair X SlusarskiGermanyStephen Shaw UNQUALIFIED
Jennifer K TollnerGermanyXuxue Feng PROPOSAL
Maria U FigeroaJapanElwin Sharvill QUALIFIED
Antonio O InouyeSpainAnna Fali NEGOTIATION
Emily H WaycottSpainStephen Shaw RENEWAL
Arvin G RutaUnited KingdomIoni Bowcher RENEWAL
Sinclair C GillianAustraliaOnyama Limba NEGOTIATION
Rodrigues N AlbaresSpainIvan Magalhaes NEGOTIATION
Emily X VenereJapanBernardo Dominic NEW
Ashley M FlosiRussiaBernardo Dominic RENEWAL
Antonio G RoysterBrazilIoni Bowcher NEW
Costa X KuskoSpainAmy Elsner NEGOTIATION
Octavia H DoeJapanBernardo Dominic NEGOTIATION
Alejandro V MarrierArgentinaAsiya Javayant QUALIFIED
Juan V KolmetzArgentinaAnna Fali RENEWAL
Jeanfrancois J DoeSpainElwin Sharvill NEGOTIATION
David T AlbaresSpainElwin Sharvill QUALIFIED
Kaitlin F DilliardJapanAsiya Javayant UNQUALIFIED
Arvin Y GlickArgentinaIoni Bowcher UNQUALIFIED
Julie G FollerIndiaIvan Magalhaes UNQUALIFIED
Izzy T KuskoRussiaIvan Magalhaes QUALIFIED
Aditya K SergiIndiaAsiya Javayant NEGOTIATION
Cody V FerenczItalyElwin Sharvill RENEWAL
Aditya D BowleyJapanElwin Sharvill NEW
Mayumi B DarakjyBrazilStephen Shaw NEW
Rodrigues O TollnerRussiaAnna Fali NEW
Francesco K GillianIndiaBernardo Dominic RENEWAL
Juan W KolmetzGermanyStephen Shaw QUALIFIED
Adams D AmigonIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez T ChuiCanadaBernardo Dominic NEGOTIATION
Wickens N CaldareraBrazilIoni Bowcher NEW
Arvin J DarakjyIndiaElwin Sharvill PROPOSAL
Sinclair B BriddickCanadaAnna Fali NEW
Murillo X DarakjyCanadaBernardo Dominic NEGOTIATION
Maria S GauchoBrazilAsiya Javayant UNQUALIFIED
Juan J GlickUnited KingdomAsiya Javayant RENEWAL
Leja I PerinBrazilBernardo Dominic UNQUALIFIED
Cody Q MarrierUnited KingdomStephen Shaw NEGOTIATION
Misaki K CaudyUnited KingdomAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey P WieserSpain2024-04-19Buckley Miller Wright NEGOTIATION93Xuxue Feng
1001Nicolas X RutaArgentina2024-04-17Morlong Associates UNQUALIFIED59Onyama Limba
1002Jefferson O BowleyFrance2024-03-29Dorl, James J Esq RENEWAL32Stephen Shaw
1003Ricardo S WieserArgentina2024-04-24Benton, John B Jr UNQUALIFIED46Anna Fali
1004James Q MorascaSpain2024-04-22Truhlar And Truhlar Attys QUALIFIED19Anna Fali
1005Deepesh L SchemmerAustralia2024-04-05Chemel, James L Cpa UNQUALIFIED27Amy Elsner
1006Murillo L SlusarskiGermany2024-04-18Rangoni Of Florence QUALIFIED93Xuxue Feng
1007Jennifer Q RulapaughJapan2024-04-20Morlong Associates UNQUALIFIED7Amy Elsner
1008Leja J PaprockiAustralia2024-04-03Rangoni Of Florence PROPOSAL91Bernardo Dominic
1009Munro R WhobreyArgentina2024-04-11Rangoni Of Florence UNQUALIFIED60Bernardo Dominic
1010Emily J GauchoItaly2024-04-05Chemel, James L Cpa QUALIFIED98Stephen Shaw
1011Juan X PoquetteItaly2024-04-01Benton, John B Jr NEGOTIATION36Elwin Sharvill
1012Jones J MarrierAustralia2024-04-13Chanay, Jeffrey A Esq NEGOTIATION85Ivan Magalhaes
1013Jones R GillianUnited Kingdom2024-04-04Chanay, Jeffrey A Esq QUALIFIED58Onyama Limba
1014Octavia X KolmetzItaly2024-04-06Dorl, James J Esq NEGOTIATION6Elwin Sharvill
1015Jennifer R ButtFrance2024-04-26Chanay, Jeffrey A Esq RENEWAL81Xuxue Feng
1016Aditya H GlickFrance2024-04-26Feiner Bros RENEWAL33Asiya Javayant
1017Salvatore M WaycottFrance2024-04-25Feltz Printing Service QUALIFIED61Ioni Bowcher
1018Salvatore Z RoysterAustralia2024-03-31Dorl, James J Esq RENEWAL4Ioni Bowcher
1019Leja D AlbaresFrance2024-03-31Feiner Bros RENEWAL78Elwin Sharvill
1020Jeanfrancois Y NestleIndia2024-04-01Rousseaux, Michael Esq UNQUALIFIED0Anna Fali
1021Mayumi L NestleSpain2024-04-01Chanay, Jeffrey A Esq RENEWAL17Elwin Sharvill
1022Adams U BologniaCanada2024-04-17Chemel, James L Cpa PROPOSAL76Amy Elsner
1023Claire W ShinkoIndia2024-04-23Buckley Miller Wright PROPOSAL58Onyama Limba
1024Jones O SergiRussia2024-04-11Buckley Miller Wright PROPOSAL53Anna Fali
1025Alejandro L NestleJapan2024-04-19Rousseaux, Michael Esq RENEWAL85Ioni Bowcher
1026Izzy I GillianItaly2024-04-06Printing Dimensions UNQUALIFIED94Elwin Sharvill
1027Greenwood W RutaUnited Kingdom2024-04-23Morlong Associates PROPOSAL2Elwin Sharvill
1028Johnson L SergiBrazil2024-03-29Rangoni Of Florence NEGOTIATION87Asiya Javayant
1029Juan L CampainBrazil2024-04-22Truhlar And Truhlar Attys RENEWAL57Amy Elsner
1030Antonio M WaycottFrance2024-04-02Chanay, Jeffrey A Esq RENEWAL93Anna Fali
1031Morrow K RoysterSpain2024-04-08Truhlar And Truhlar Attys UNQUALIFIED19Xuxue Feng
1032Izzy O FollerGermany2024-04-18Chanay, Jeffrey A Esq RENEWAL9Elwin Sharvill
1033Stacey Y DarakjyArgentina2024-04-25Rousseaux, Michael Esq NEW92Asiya Javayant
1034Sinclair I ButtSpain2024-04-18Printing Dimensions NEGOTIATION75Ioni Bowcher
1035Kadeem D GillianCanada2024-04-11Rangoni Of Florence PROPOSAL46Onyama Limba
1036Mayumi S SchemmerUnited Kingdom2024-04-16Chapman, Ross E Esq NEW93Anna Fali
1037Francesco F CampainFrance2024-04-21Feiner Bros RENEWAL0Stephen Shaw
1038Rodrigues T MaletCanada2024-04-09Truhlar And Truhlar Attys NEW90Amy Elsner
1039Emily K GillianItaly2024-04-25Benton, John B Jr UNQUALIFIED26Anna Fali
1040Izzy D SlusarskiArgentina2024-04-18Dorl, James J Esq UNQUALIFIED86Elwin Sharvill
1041Nicolas K WaycottJapan2024-03-31Chemel, James L Cpa NEGOTIATION31Amy Elsner
1042Izzy Z CampainItaly2024-04-26Dorl, James J Esq NEW25Xuxue Feng
1043Jeanfrancois J OstroskySpain2024-04-02Morlong Associates UNQUALIFIED9Ioni Bowcher
1044Nicolas S SaylorsGermany2024-04-05Buckley Miller Wright QUALIFIED26Elwin Sharvill
1045Aditya H ButtBrazil2024-04-13Chapman, Ross E Esq NEW20Elwin Sharvill
1046Antonio M ButtFrance2024-04-05Buckley Miller Wright QUALIFIED19Asiya Javayant
1047Emily M BriddickUnited Kingdom2024-03-30Chapman, Ross E Esq PROPOSAL93Stephen Shaw
1048Octavia Y KuskoIndia2024-04-25Dorl, James J Esq QUALIFIED91Ivan Magalhaes
1049Darci K NestleBrazil2024-04-09Chapman, Ross E Esq NEW5Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Murillo M SchemmerAustraliaAsiya Javayant PROPOSAL
James S AlbaresAustraliaAsiya Javayant RENEWAL
Deepesh S MacleadIndiaXuxue Feng RENEWAL
Maria Z RoysterRussiaElwin Sharvill PROPOSAL
Julie P GlickRussiaElwin Sharvill PROPOSAL
Chavez M WhobreyBrazilBernardo Dominic RENEWAL
Mayumi U AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Morrow H StockhamSpainOnyama Limba QUALIFIED
Mayumi Y BriddickGermanyBernardo Dominic PROPOSAL
Silvio C IturbideFranceElwin Sharvill PROPOSAL
Antonio X RoysterSpainOnyama Limba NEW
Jeanfrancois K RimBrazilXuxue Feng QUALIFIED
Kaitlin F GauchoCanadaOnyama Limba QUALIFIED
Jones Q BologniaRussiaOnyama Limba PROPOSAL
David D MacleadArgentinaBernardo Dominic NEGOTIATION
Tony V CaudyUnited KingdomIvan Magalhaes RENEWAL
Leon T StensethItalyAnna Fali NEW
Kaitlin W OldroydArgentinaXuxue Feng NEGOTIATION
Morrow G PoquetteFranceAmy Elsner UNQUALIFIED
Sinclair B RutaBrazilStephen Shaw NEGOTIATION
Alejandro K TollnerSpainXuxue Feng QUALIFIED
Johnson R MacleadSpainAnna Fali PROPOSAL
Silvio H FlosiGermanyXuxue Feng QUALIFIED
Clifford W RimArgentinaElwin Sharvill NEGOTIATION
Kaitlin W GarufiIndiaIvan Magalhaes NEW
Johnson N GarufiFranceAnna Fali RENEWAL
Ricardo V MaletGermanyStephen Shaw PROPOSAL
Faith I GillianJapanAmy Elsner PROPOSAL
Greenwood L VocelkaItalyAnna Fali UNQUALIFIED
Misaki M StensethUnited KingdomElwin Sharvill NEGOTIATION
Jones I RoysterItalyAsiya Javayant NEGOTIATION
Jennifer Y BriddickSpainXuxue Feng UNQUALIFIED
Tony M GlickCanadaAsiya Javayant NEGOTIATION
Maria Y RutaIndiaAnna Fali NEW
Octavia Z InouyeJapanAsiya Javayant RENEWAL
Jennifer S InouyeFranceBernardo Dominic PROPOSAL
James T MaletBrazilStephen Shaw RENEWAL
Murillo M BologniaSpainBernardo Dominic PROPOSAL
Jennifer R AlbaresBrazilOnyama Limba QUALIFIED
Aika W VocelkaItalyAnna Fali NEGOTIATION
Munro R ShinkoSpainElwin Sharvill RENEWAL
Emily G RutaCanadaAmy Elsner NEGOTIATION
Jefferson H RulapaughFranceOnyama Limba PROPOSAL
Mujtaba M ButtSpainIoni Bowcher NEGOTIATION
Ivar P RutaIndiaAnna Fali NEW
Johnson O GlickBrazilAnna Fali NEGOTIATION
Clifford X MaletCanadaAnna Fali NEW
Morrow X FollerArgentinaXuxue Feng RENEWAL
Jones C PerinCanadaIvan Magalhaes RENEWAL
Silvio Y PoquetteJapanBernardo Dominic NEGOTIATION
Frozen Columns
Name
Tony K Ruta
Ivar L Marrier
Mujtaba O Schemmer
Wickens B Butt
Munro G Ruta
Stacey L Amigon
Ashley Q Iturbide
Johnson A Caudy
Rodrigues O Albares
Sinclair X Briddick
Munro A Campain
Costa R Malet
Adams T Royster
Octavia I Nicka
Kadeem I Butt
Adams O Nestle
Morrow O Ruta
Jones D Flosi
Greenwood X Flosi
Mujtaba F Poquette
Munro Z Venere
Stacey U Gaucho
Claire Z Royster
Stacey U Kusko
Darci L Figeroa
Ashley G Darakjy
Johnson S Paprocki
Jones F Royster
Adams C Albares
Cody X Sergi
Darci R Chui
Greenwood T Flosi
Francesco D Chui
Ashley B Whobrey
Leon R Oldroyd
Stacey J Ferencz
Jones F Rim
Francesco O Ferencz
Mujtaba V Schemmer
Tony M Stenseth
Ivar J Marrier
Francesco C Kusko
Salvatore T Malet
Maria M Schemmer
Misaki A Kolmetz
Octavia I Rim
Ricardo V Malet
Greenwood G Rulapaugh
Julie O Albares
Stacey Q Royster
IdCountryDate
1000United Kingdom2024-04-22
1001Brazil2024-03-30
1002Argentina2024-04-05
1003Japan2024-04-23
1004France2024-04-12
1005Canada2024-04-12
1006Russia2024-04-22
1007Spain2024-04-13
1008Brazil2024-04-06
1009Australia2024-04-09
1010United Kingdom2024-04-13
1011United Kingdom2024-04-11
1012Russia2024-04-01
1013Brazil2024-04-24
1014France2024-04-09
1015Italy2024-04-09
1016France2024-04-15
1017Russia2024-04-10
1018Germany2024-04-26
1019France2024-04-03
1020United Kingdom2024-03-30
1021Russia2024-04-14
1022Italy2024-04-21
1023Canada2024-04-05
1024Canada2024-04-17
1025Italy2024-04-05
1026Argentina2024-04-20
1027Japan2024-04-18
1028Italy2024-04-07
1029Brazil2024-03-29
1030India2024-04-13
1031France2024-04-09
1032Canada2024-03-29
1033Spain2024-04-23
1034Brazil2024-04-19
1035Italy2024-04-16
1036Russia2024-04-16
1037Japan2024-04-04
1038Japan2024-04-09
1039United Kingdom2024-04-22
1040Spain2024-04-08
1041India2024-04-13
1042Argentina2024-04-13
1043Italy2024-04-27
1044Italy2024-04-14
1045United Kingdom2024-04-01
1046Japan2024-04-10
1047Brazil2024-04-18
1048Brazil2024-04-17
1049Argentina2024-04-09

On-Demand Data

NameIdCountryDate
Chavez W Chui1000Japan2024-04-07
Izzy R Amigon1001Brazil2024-03-31
Ricardo H Vocelka1002Australia2024-04-01
Munro C Marrier1003Brazil2024-04-04
Mujtaba D Figeroa1004Japan2024-04-05
Aika H Ostrosky1005Brazil2024-04-15
Kadeem K Ostrosky1006Spain2024-04-02
Emily X Maclead1007Argentina2024-04-17
Wickens T Garufi1008Argentina2024-04-01
Antonio Z Kusko1009Argentina2024-04-13
Kadeem L Gillian1010Brazil2024-04-24
Deepesh M Caudy1011France2024-04-24
Aditya B Doe1012Argentina2024-04-24
Mayumi M Perin1013Italy2024-04-18
Ivar D Wieser1014United Kingdom2024-04-22
Jefferson A Rulapaugh1015Germany2024-04-15
Izzy J Morasca1016Germany2024-04-17
Arvin Q Ruta1017United Kingdom2024-04-10
Cody M Saylors1018Canada2024-04-25
Faith V Kolmetz1019United Kingdom2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford T KuskoRussiaAsiya Javayant NEW
Tony W GillianJapanBernardo Dominic UNQUALIFIED
Ricardo H KolmetzSpainIoni Bowcher UNQUALIFIED
Kadeem N FerenczCanadaElwin Sharvill NEGOTIATION
Sinclair H RoysterGermanyBernardo Dominic QUALIFIED
Octavia F SlusarskiArgentinaIvan Magalhaes PROPOSAL
Octavia E VenereUnited KingdomIoni Bowcher QUALIFIED
Morrow Q IturbideFranceBernardo Dominic NEGOTIATION
Chavez Q IturbideRussiaAnna Fali QUALIFIED
Wickens D GlickIndiaOnyama Limba UNQUALIFIED
Wickens R AmigonJapanIoni Bowcher NEGOTIATION
Jefferson X IturbideUnited KingdomElwin Sharvill RENEWAL
Faith Y GauchoSpainIoni Bowcher RENEWAL
Jones W SaylorsJapanIvan Magalhaes QUALIFIED
Darci I OstroskyUnited KingdomAnna Fali QUALIFIED
Maria Q MaletSpainStephen Shaw NEGOTIATION
Chavez L BologniaSpainAmy Elsner QUALIFIED
Isabel D MacleadArgentinaIvan Magalhaes PROPOSAL
Wickens P MaletAustraliaOnyama Limba RENEWAL
Munro O CaudyArgentinaStephen Shaw QUALIFIED
Jefferson D DoeRussiaAsiya Javayant NEW
Octavia Q SaylorsBrazilIvan Magalhaes PROPOSAL
Aruna D SaylorsCanadaAnna Fali PROPOSAL
Alejandro D MorascaBrazilIoni Bowcher NEGOTIATION
David X MarrierItalyIoni Bowcher NEW
Chavez C CaldareraCanadaOnyama Limba PROPOSAL
Alejandro J TollnerIndiaOnyama Limba QUALIFIED
Izzy J PerinRussiaStephen Shaw PROPOSAL
Sinclair T DilliardAustraliaAnna Fali NEW
Maisha J VocelkaCanadaOnyama Limba NEW
Deepesh I CampainGermanyElwin Sharvill NEGOTIATION
Deepesh D TollnerBrazilAmy Elsner QUALIFIED
Juan K KuskoFranceBernardo Dominic UNQUALIFIED
Emily R IturbideUnited KingdomOnyama Limba NEW
Alejandro E SaylorsGermanyStephen Shaw RENEWAL
Chavez L BriddickArgentinaIoni Bowcher RENEWAL
Leja W RutaBrazilXuxue Feng RENEWAL
Faith M FerenczRussiaElwin Sharvill PROPOSAL
Tony E MarrierBrazilOnyama Limba UNQUALIFIED
Julie P SchemmerGermanyStephen Shaw PROPOSAL

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