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
Sinclair L BowleyAustraliaOnyama Limba QUALIFIED
Jennifer W BologniaGermanyStephen Shaw RENEWAL
Leon O DarakjyUnited KingdomAnna Fali RENEWAL
Jones M RutaFranceStephen Shaw PROPOSAL
Darci I NickaCanadaStephen Shaw NEW
Antonio W BriddickBrazilStephen Shaw NEGOTIATION
Sinclair C GillianJapanBernardo Dominic NEGOTIATION
David N ShinkoRussiaStephen Shaw RENEWAL
David M PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Maisha C RulapaughItalyAnna Fali PROPOSAL
Mujtaba R GlickRussiaAmy Elsner UNQUALIFIED
Antonio E CampainCanadaBernardo Dominic RENEWAL
David P StensethSpainAsiya Javayant PROPOSAL
Sinclair F KolmetzBrazilAsiya Javayant PROPOSAL
Maisha R BriddickIndiaOnyama Limba NEGOTIATION
Jefferson U MaletBrazilIoni Bowcher PROPOSAL
Sinclair T MaletIndiaStephen Shaw NEW
Julie G PerinCanadaBernardo Dominic QUALIFIED
Silvio B WhobreyItalyAsiya Javayant UNQUALIFIED
Johnson Q KolmetzRussiaElwin Sharvill UNQUALIFIED
Arvin H DoeAustraliaAsiya Javayant NEGOTIATION
Mayumi A WieserFranceAnna Fali QUALIFIED
Aditya P BologniaGermanyElwin Sharvill UNQUALIFIED
Greenwood Q IturbideUnited KingdomElwin Sharvill NEW
Emily Z FollerCanadaBernardo Dominic NEW
Francesco G DilliardFranceElwin Sharvill NEW
Claire O RoysterUnited KingdomAmy Elsner UNQUALIFIED
Darci Y OldroydArgentinaIoni Bowcher PROPOSAL
Ricardo V PaprockiBrazilIoni Bowcher NEGOTIATION
Clifford E StockhamIndiaXuxue Feng RENEWAL
Aika Z FlosiJapanElwin Sharvill PROPOSAL
Antonio S RimFranceAnna Fali RENEWAL
Alejandro T GillianJapanElwin Sharvill PROPOSAL
Nicolas P ButtRussiaAsiya Javayant PROPOSAL
Juan R CampainItalyAmy Elsner NEGOTIATION
Faith L MacleadArgentinaAnna Fali QUALIFIED
Kaitlin M PerinRussiaStephen Shaw NEW
Clifford R AmigonUnited KingdomAnna Fali UNQUALIFIED
Isabel J SaylorsItalyIoni Bowcher UNQUALIFIED
Greenwood Y AlbaresIndiaAnna Fali RENEWAL
Smith B StockhamArgentinaOnyama Limba NEGOTIATION
Cody T GauchoIndiaXuxue Feng NEW
Smith H FigeroaFranceAmy Elsner PROPOSAL
Silvio W PoquetteSpainIvan Magalhaes PROPOSAL
Salvatore A MaletItalyXuxue Feng RENEWAL
Wickens M SergiUnited KingdomAsiya Javayant QUALIFIED
James T WaycottSpainOnyama Limba RENEWAL
Costa N CaudyFranceAsiya Javayant UNQUALIFIED
Silvio A StockhamBrazilOnyama Limba PROPOSAL
Leon C BologniaRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro Y AlbaresCanadaAmy Elsner RENEWAL
Silvio L CaldareraFranceAnna Fali QUALIFIED
Kadeem Y GarufiIndiaStephen Shaw RENEWAL
Aika N IturbideItalyAsiya Javayant NEGOTIATION
Julie W WhobreyArgentinaAmy Elsner NEW
Octavia P InouyeRussiaXuxue Feng PROPOSAL
Darci K PoquetteSpainBernardo Dominic UNQUALIFIED
Murillo R AmigonJapanElwin Sharvill PROPOSAL
Aruna A DarakjyRussiaXuxue Feng PROPOSAL
Chavez I RimArgentinaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio R AlbaresSpain2024-02-29Dorl, James J Esq UNQUALIFIED0Xuxue Feng
1001Francesco K VocelkaItaly2024-03-26Morlong Associates NEGOTIATION49Stephen Shaw
1002Nicolas G RulapaughBrazil2024-03-27Benton, John B Jr QUALIFIED24Stephen Shaw
1003Jennifer T TollnerBrazil2024-03-14Printing Dimensions NEGOTIATION53Ioni Bowcher
1004Mujtaba O SaylorsSpain2024-03-05Printing Dimensions UNQUALIFIED59Ioni Bowcher
1005Stacey P MacleadFrance2024-03-21Rousseaux, Michael Esq RENEWAL85Ioni Bowcher
1006David Q RutaUnited Kingdom2024-03-25Truhlar And Truhlar Attys RENEWAL28Ioni Bowcher
1007Kaitlin L AlbaresItaly2024-03-27Feltz Printing Service NEW38Asiya Javayant
1008Rodrigues E SaylorsUnited Kingdom2024-03-18Rousseaux, Michael Esq UNQUALIFIED88Amy Elsner
1009Mayumi W MarrierItaly2024-03-11Feltz Printing Service PROPOSAL95Asiya Javayant
1010Ivar T PerinArgentina2024-02-28Rangoni Of Florence NEGOTIATION6Ivan Magalhaes
1011Juan F OldroydRussia2024-03-03Feiner Bros UNQUALIFIED5Xuxue Feng
1012Octavia L KolmetzItaly2024-03-12Morlong Associates NEGOTIATION83Ioni Bowcher
1013Morrow R AlbaresCanada2024-03-05Chemel, James L Cpa QUALIFIED8Anna Fali
1014Leja Q BriddickIndia2024-03-19Truhlar And Truhlar Attys UNQUALIFIED94Onyama Limba
1015Faith V PoquetteBrazil2024-03-17Feiner Bros RENEWAL13Bernardo Dominic
1016Francesco U VocelkaArgentina2024-02-27Dorl, James J Esq NEGOTIATION99Bernardo Dominic
1017Greenwood R WhobreyBrazil2024-03-07Commercial Press NEGOTIATION37Ioni Bowcher
1018Deepesh S KuskoJapan2024-03-11Chanay, Jeffrey A Esq RENEWAL10Ioni Bowcher
1019Jeanfrancois W OstroskyItaly2024-03-17King, Christopher A Esq NEW61Stephen Shaw
1020Nicolas R FigeroaAustralia2024-03-09Rangoni Of Florence NEGOTIATION68Xuxue Feng
1021Ricardo C NickaItaly2024-03-21Buckley Miller Wright PROPOSAL27Amy Elsner
1022Jefferson D SlusarskiRussia2024-03-15Chanay, Jeffrey A Esq PROPOSAL73Anna Fali
1023Juan O DarakjyUnited Kingdom2024-03-08Feltz Printing Service QUALIFIED60Xuxue Feng
1024Chavez I RulapaughGermany2024-03-14Chemel, James L Cpa UNQUALIFIED88Amy Elsner
1025Jefferson P FlosiRussia2024-03-16Rousseaux, Michael Esq NEW81Bernardo Dominic
1026Stacey J CaudyJapan2024-03-11Rousseaux, Michael Esq NEW40Ivan Magalhaes
1027Nicolas Z DarakjyCanada2024-03-07Feiner Bros NEGOTIATION72Stephen Shaw
1028Jones O DarakjyCanada2024-03-01Morlong Associates UNQUALIFIED9Elwin Sharvill
1029Jeanfrancois U OldroydGermany2024-03-03Printing Dimensions UNQUALIFIED18Xuxue Feng
1030Deepesh P CampainSpain2024-03-08Commercial Press NEW3Xuxue Feng
1031Isabel Y PoquetteItaly2024-03-12Rangoni Of Florence PROPOSAL34Ivan Magalhaes
1032Ivar W ShinkoJapan2024-03-04Feiner Bros QUALIFIED49Asiya Javayant
1033Johnson X GarufiJapan2024-03-21Chemel, James L Cpa UNQUALIFIED72Amy Elsner
1034Mayumi J PaprockiGermany2024-03-24Chapman, Ross E Esq NEGOTIATION30Asiya Javayant
1035Maisha U PaprockiSpain2024-03-08Truhlar And Truhlar Attys PROPOSAL29Anna Fali
1036Darci A VocelkaJapan2024-03-25Feltz Printing Service QUALIFIED29Bernardo Dominic
1037Ricardo F AmigonCanada2024-03-25Feiner Bros NEGOTIATION49Amy Elsner
1038Alejandro O MarrierBrazil2024-03-05Printing Dimensions NEGOTIATION43Stephen Shaw
1039Kaitlin C KolmetzRussia2024-03-24Benton, John B Jr QUALIFIED38Stephen Shaw
1040Leja O KuskoIndia2024-03-17Chemel, James L Cpa NEGOTIATION73Elwin Sharvill
1041Silvio U NickaRussia2024-03-19Feltz Printing Service RENEWAL18Bernardo Dominic
1042Aditya B OstroskyCanada2024-03-13Rousseaux, Michael Esq NEGOTIATION46Anna Fali
1043Clifford I SchemmerIndia2024-03-21Buckley Miller Wright UNQUALIFIED91Stephen Shaw
1044Morrow Q RoysterBrazil2024-03-07King, Christopher A Esq PROPOSAL50Ioni Bowcher
1045Darci B PaprockiUnited Kingdom2024-03-12Chapman, Ross E Esq NEW70Xuxue Feng
1046Izzy G FollerJapan2024-03-26Feltz Printing Service PROPOSAL94Elwin Sharvill
1047Salvatore T BriddickUnited Kingdom2024-03-24Dorl, James J Esq PROPOSAL88Ioni Bowcher
1048Murillo S ButtBrazil2024-03-21Dorl, James J Esq QUALIFIED47Asiya Javayant
1049Sinclair N RulapaughIndia2024-02-29Truhlar And Truhlar Attys QUALIFIED55Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ashley Z KolmetzBrazilAnna Fali NEW
Morrow L FigeroaGermanyElwin Sharvill UNQUALIFIED
Jennifer O SlusarskiGermanyBernardo Dominic QUALIFIED
Leon Z WieserUnited KingdomAnna Fali QUALIFIED
Deepesh V GlickRussiaBernardo Dominic NEGOTIATION
Aditya A CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas P DilliardIndiaAmy Elsner UNQUALIFIED
Jefferson R PoquetteSpainXuxue Feng QUALIFIED
Claire D SaylorsSpainAmy Elsner PROPOSAL
Smith O RoysterItalyAmy Elsner QUALIFIED
Mayumi Q BowleyArgentinaIoni Bowcher RENEWAL
Aika P IturbideGermanyXuxue Feng PROPOSAL
Izzy D MacleadUnited KingdomAmy Elsner UNQUALIFIED
Arvin A TollnerJapanIvan Magalhaes UNQUALIFIED
Juan R NestleJapanElwin Sharvill QUALIFIED
Arvin A RoysterGermanyElwin Sharvill PROPOSAL
Misaki I NickaArgentinaStephen Shaw NEGOTIATION
Arvin L StockhamBrazilAsiya Javayant PROPOSAL
Kadeem J MorascaGermanyXuxue Feng PROPOSAL
Misaki L PoquetteAustraliaAsiya Javayant NEW
Mayumi A BowleySpainAmy Elsner NEW
Jeanfrancois A ChuiAustraliaElwin Sharvill RENEWAL
Costa S VenereGermanyStephen Shaw RENEWAL
Jennifer R WhobreyRussiaElwin Sharvill NEGOTIATION
David Z KolmetzJapanAsiya Javayant RENEWAL
Maria P IturbideArgentinaIvan Magalhaes RENEWAL
Ricardo I AlbaresIndiaAnna Fali UNQUALIFIED
Tony N AmigonCanadaAnna Fali PROPOSAL
Misaki O CampainGermanyBernardo Dominic RENEWAL
Maria A DilliardRussiaAmy Elsner NEW
Costa W ButtAustraliaAnna Fali NEGOTIATION
Aditya T ChuiBrazilAnna Fali QUALIFIED
Aditya G RutaCanadaIvan Magalhaes RENEWAL
Silvio N StockhamUnited KingdomOnyama Limba UNQUALIFIED
Greenwood F BowleyAustraliaBernardo Dominic NEW
Clifford V MacleadFranceAsiya Javayant QUALIFIED
Kaitlin S NestleIndiaAsiya Javayant QUALIFIED
Mayumi S CaudyItalyIoni Bowcher PROPOSAL
Arvin K CaldareraFranceBernardo Dominic RENEWAL
Alejandro Y CaldareraJapanIvan Magalhaes NEGOTIATION
Aika B SchemmerCanadaBernardo Dominic PROPOSAL
Arvin B DarakjyFranceBernardo Dominic UNQUALIFIED
Izzy Z SlusarskiSpainIoni Bowcher UNQUALIFIED
Johnson B InouyeAustraliaIoni Bowcher QUALIFIED
Murillo D SlusarskiAustraliaAmy Elsner NEGOTIATION
Johnson A SchemmerItalyIvan Magalhaes NEW
Murillo R NestleBrazilIvan Magalhaes QUALIFIED
Jones T FigeroaAustraliaIvan Magalhaes RENEWAL
Aruna F AlbaresJapanAsiya Javayant QUALIFIED
Arvin N StensethAustraliaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Jeanfrancois H Inouye
Claire I Iturbide
Emily S Venere
Leja Q Stenseth
Murillo F Nicka
Kaitlin T Gillian
Jennifer K Paprocki
Julie M Morasca
Costa O Marrier
David Z Malet
David O Kusko
Isabel P Darakjy
Ricardo K Figeroa
Silvio R Paprocki
Morrow F Stenseth
Maria N Schemmer
Ivar E Marrier
Munro I Royster
Murillo Q Royster
Salvatore L Shinko
Izzy E Malet
Munro I Whobrey
Isabel J Stenseth
Murillo N Saylors
Jeanfrancois L Rulapaugh
Smith I Dilliard
Octavia K Venere
Arvin O Nestle
Rodrigues R Gaucho
Smith I Nicka
Adams S Morasca
Munro X Vocelka
Maria A Gaucho
Arvin R Garufi
Mayumi Y Caldarera
Stacey W Gaucho
Kaitlin J Kusko
Leon Q Wieser
Tony R Stenseth
Antonio M Whobrey
Aika F Rulapaugh
Tony O Albares
Izzy X Ferencz
Johnson K Gaucho
Kadeem W Oldroyd
Ivar V Stockham
Chavez D Chui
Mayumi O Vocelka
Kadeem F Stenseth
Alejandro Y Foller
IdCountryDate
1000Australia2024-02-28
1001Russia2024-03-05
1002Japan2024-03-04
1003United Kingdom2024-03-22
1004Canada2024-03-03
1005India2024-03-21
1006Japan2024-03-15
1007Australia2024-03-27
1008Australia2024-03-18
1009Italy2024-03-18
1010Brazil2024-03-08
1011Argentina2024-02-28
1012Italy2024-03-18
1013United Kingdom2024-02-28
1014India2024-02-28
1015Germany2024-03-19
1016Italy2024-03-02
1017Germany2024-03-02
1018Spain2024-03-27
1019Italy2024-03-26
1020Canada2024-03-24
1021Spain2024-03-20
1022Canada2024-03-18
1023Argentina2024-03-03
1024United Kingdom2024-03-27
1025France2024-03-09
1026Germany2024-03-09
1027Japan2024-03-02
1028Russia2024-03-07
1029Argentina2024-03-20
1030Spain2024-02-29
1031United Kingdom2024-03-12
1032France2024-02-27
1033Russia2024-03-23
1034Argentina2024-03-05
1035Argentina2024-03-21
1036Japan2024-03-25
1037Argentina2024-03-04
1038United Kingdom2024-03-12
1039Argentina2024-03-16
1040Canada2024-03-27
1041India2024-03-12
1042Canada2024-03-26
1043Spain2024-03-19
1044Canada2024-03-16
1045Russia2024-03-01
1046Japan2024-03-02
1047United Kingdom2024-03-23
1048Brazil2024-02-28
1049Canada2024-03-10

On-Demand Data

NameIdCountryDate
Ivar B Garufi1000Germany2024-03-15
Aruna O Sergi1001France2024-03-27
Aika B Marrier1002Italy2024-03-16
Antonio I Morasca1003Brazil2024-03-27
Mayumi C Schemmer1004Japan2024-03-05
Stacey O Waycott1005United Kingdom2024-03-17
David O Ostrosky1006Canada2024-03-16
Faith A Sergi1007Argentina2024-03-23
Aditya O Gaucho1008Italy2024-03-20
Maria H Figeroa1009Germany2024-03-10
Salvatore I Rim1010Japan2024-03-10
Jeanfrancois P Nestle1011Spain2024-03-13
Greenwood K Stenseth1012Germany2024-03-02
Sinclair I Saylors1013Russia2024-03-04
Emily N Marrier1014Argentina2024-03-11
Maria X Sergi1015Argentina2024-03-08
Clifford I Royster1016Brazil2024-03-10
Misaki N Schemmer1017France2024-03-12
Izzy K Stockham1018Japan2024-03-15
Nicolas I Caldarera1019Argentina2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer C FollerItalyAnna Fali RENEWAL
Leja W GillianAustraliaXuxue Feng NEW
Rodrigues Q AmigonRussiaAnna Fali RENEWAL
Julie Z OldroydUnited KingdomBernardo Dominic NEGOTIATION
Claire Q RulapaughIndiaAsiya Javayant RENEWAL
Mayumi X NestleSpainIoni Bowcher UNQUALIFIED
Izzy S PaprockiAustraliaStephen Shaw NEGOTIATION
Isabel V FollerSpainAnna Fali PROPOSAL
Izzy Q GarufiGermanyAsiya Javayant QUALIFIED
Aditya J BowleyFranceIvan Magalhaes QUALIFIED
Greenwood P FigeroaArgentinaAnna Fali NEGOTIATION
Nicolas A TollnerJapanAmy Elsner PROPOSAL
Mujtaba A WhobreyJapanXuxue Feng RENEWAL
Julie W ChuiJapanAmy Elsner NEW
Jeanfrancois S OldroydUnited KingdomXuxue Feng NEGOTIATION
Munro P CampainItalyBernardo Dominic UNQUALIFIED
Maisha R GlickIndiaBernardo Dominic NEW
Antonio B DarakjyArgentinaAsiya Javayant QUALIFIED
Jefferson U MorascaArgentinaAsiya Javayant UNQUALIFIED
Aruna V RutaAustraliaAnna Fali RENEWAL
Chavez P RoysterRussiaElwin Sharvill PROPOSAL
Octavia M WieserArgentinaOnyama Limba RENEWAL
Jeanfrancois N TollnerSpainAmy Elsner PROPOSAL
Costa J DarakjyCanadaStephen Shaw PROPOSAL
Munro K MorascaGermanyBernardo Dominic QUALIFIED
Emily L TollnerCanadaAmy Elsner NEW
Kadeem U DarakjyGermanyElwin Sharvill PROPOSAL
Aika A GillianArgentinaOnyama Limba NEGOTIATION
Chavez F AmigonCanadaOnyama Limba PROPOSAL
Sinclair A VenereBrazilOnyama Limba NEGOTIATION
Isabel X AlbaresSpainStephen Shaw PROPOSAL
Izzy W SlusarskiSpainAmy Elsner NEW
Aruna T CaldareraJapanOnyama Limba NEW
Mayumi J GillianIndiaOnyama Limba PROPOSAL
Maisha M CampainCanadaIoni Bowcher NEW
Adams W RimFranceElwin Sharvill UNQUALIFIED
Ashley B ShinkoCanadaElwin Sharvill UNQUALIFIED
Emily A PerinGermanyIvan Magalhaes QUALIFIED
Johnson G SchemmerAustraliaBernardo Dominic RENEWAL
Faith A IturbideIndiaBernardo Dominic NEGOTIATION

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