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 K DilliardBrazilIvan Magalhaes QUALIFIED
Smith B PoquetteCanadaStephen Shaw RENEWAL
Tony Q RimIndiaAsiya Javayant NEW
Cody L PoquetteCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois A SchemmerUnited KingdomXuxue Feng QUALIFIED
Chavez E VocelkaItalyAmy Elsner NEW
Jones I BriddickArgentinaIvan Magalhaes NEGOTIATION
Ashley J WhobreySpainAnna Fali NEGOTIATION
Antonio C PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Wickens G MacleadIndiaAmy Elsner QUALIFIED
Emily H KuskoUnited KingdomAnna Fali NEW
David L StensethCanadaAsiya Javayant QUALIFIED
David J RutaCanadaXuxue Feng RENEWAL
Isabel V BowleyIndiaIvan Magalhaes NEW
Mujtaba S VenereCanadaAmy Elsner RENEWAL
Jones F PoquetteCanadaAmy Elsner NEW
Cody R BologniaUnited KingdomIoni Bowcher QUALIFIED
Izzy W OstroskyCanadaXuxue Feng PROPOSAL
Maisha U FigeroaCanadaStephen Shaw UNQUALIFIED
Jefferson K StockhamJapanBernardo Dominic RENEWAL
Chavez R SaylorsBrazilAmy Elsner QUALIFIED
Clifford D IturbideRussiaAsiya Javayant RENEWAL
Antonio D MaletArgentinaBernardo Dominic NEW
Adams Z ChuiSpainXuxue Feng NEGOTIATION
Munro Z RoysterCanadaAnna Fali QUALIFIED
Nicolas O MacleadUnited KingdomIvan Magalhaes PROPOSAL
Tony C FollerRussiaOnyama Limba QUALIFIED
Adams C DoeFranceElwin Sharvill NEGOTIATION
David F BowleyUnited KingdomStephen Shaw NEGOTIATION
Greenwood U NickaGermanyAnna Fali UNQUALIFIED
Misaki X ShinkoUnited KingdomElwin Sharvill RENEWAL
Jones Z FerenczUnited KingdomStephen Shaw NEGOTIATION
Antonio Z KolmetzFranceAsiya Javayant UNQUALIFIED
Leja Q WaycottRussiaElwin Sharvill PROPOSAL
Claire Y NickaArgentinaStephen Shaw UNQUALIFIED
Clifford J GlickJapanAmy Elsner PROPOSAL
Ricardo M RulapaughGermanyOnyama Limba UNQUALIFIED
Ivar C PoquetteFranceAnna Fali QUALIFIED
Ashley Q VenereIndiaElwin Sharvill QUALIFIED
Alejandro W ButtGermanyAmy Elsner NEW
Maria S SchemmerIndiaXuxue Feng PROPOSAL
Julie H RutaIndiaOnyama Limba RENEWAL
Maisha F PaprockiCanadaElwin Sharvill NEW
Isabel O InouyeJapanOnyama Limba NEGOTIATION
Nicolas X DoeIndiaOnyama Limba NEGOTIATION
Claire E MacleadFranceElwin Sharvill NEGOTIATION
Antonio G KolmetzUnited KingdomAnna Fali UNQUALIFIED
Silvio P RoysterGermanyBernardo Dominic NEGOTIATION
Jennifer W KolmetzJapanIoni Bowcher NEW
Greenwood H AmigonJapanXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba A FlosiIndiaIvan Magalhaes QUALIFIED
Alejandro I KuskoFranceBernardo Dominic NEW
Mujtaba J NestleItalyAsiya Javayant UNQUALIFIED
Ashley S FerenczJapanOnyama Limba UNQUALIFIED
Aika U BriddickCanadaAsiya Javayant QUALIFIED
Smith Q InouyeArgentinaXuxue Feng NEGOTIATION
Ivar F BowleyJapanBernardo Dominic NEW
Salvatore N IturbideUnited KingdomOnyama Limba QUALIFIED
Silvio K KolmetzBrazilXuxue Feng UNQUALIFIED
Octavia H SchemmerBrazilStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens F BowleyJapan2024-04-09Morlong Associates NEGOTIATION9Ivan Magalhaes
1001Emily F NickaRussia2024-03-31Rousseaux, Michael Esq NEGOTIATION35Asiya Javayant
1002Deepesh M StensethItaly2024-03-29Truhlar And Truhlar Attys NEGOTIATION2Ioni Bowcher
1003Stacey F MacleadSpain2024-04-06Buckley Miller Wright UNQUALIFIED5Ivan Magalhaes
1004Mujtaba Q KuskoCanada2024-04-05Chapman, Ross E Esq RENEWAL44Bernardo Dominic
1005Alejandro N RimIndia2024-04-24Chemel, James L Cpa NEW76Anna Fali
1006Leon L BologniaUnited Kingdom2024-04-21Truhlar And Truhlar Attys UNQUALIFIED84Bernardo Dominic
1007Nicolas Y MaletSpain2024-03-30Morlong Associates NEW68Onyama Limba
1008Ivar B DoeFrance2024-04-05Feltz Printing Service PROPOSAL20Ivan Magalhaes
1009Tony D StockhamRussia2024-04-03Chapman, Ross E Esq NEGOTIATION54Ioni Bowcher
1010Stacey Y CaudyAustralia2024-04-03Buckley Miller Wright NEW8Onyama Limba
1011Morrow T ChuiArgentina2024-04-20Buckley Miller Wright UNQUALIFIED82Xuxue Feng
1012Greenwood R RoysterUnited Kingdom2024-04-01Printing Dimensions NEGOTIATION78Elwin Sharvill
1013Clifford E GarufiArgentina2024-04-04King, Christopher A Esq UNQUALIFIED52Ivan Magalhaes
1014Greenwood S PerinIndia2024-03-29Rangoni Of Florence NEGOTIATION22Anna Fali
1015Sinclair H SaylorsBrazil2024-04-02Dorl, James J Esq RENEWAL27Bernardo Dominic
1016Francesco F GlickFrance2024-04-06Rousseaux, Michael Esq NEGOTIATION90Stephen Shaw
1017Darci B GlickArgentina2024-04-10Chanay, Jeffrey A Esq QUALIFIED45Stephen Shaw
1018Morrow W StockhamGermany2024-04-20Commercial Press RENEWAL29Elwin Sharvill
1019Maisha Y BriddickCanada2024-04-24Truhlar And Truhlar Attys NEW16Anna Fali
1020Adams O WaycottGermany2024-03-28Chapman, Ross E Esq NEGOTIATION31Elwin Sharvill
1021Stacey A FerenczIndia2024-04-19Commercial Press RENEWAL75Asiya Javayant
1022Juan I MaletCanada2024-03-29Chapman, Ross E Esq PROPOSAL32Bernardo Dominic
1023Murillo U StockhamAustralia2024-04-13Feiner Bros PROPOSAL23Ivan Magalhaes
1024Isabel K SlusarskiItaly2024-04-06Benton, John B Jr NEW90Anna Fali
1025Mujtaba A TollnerJapan2024-04-08Rousseaux, Michael Esq NEGOTIATION27Xuxue Feng
1026Morrow S IturbideArgentina2024-04-17Buckley Miller Wright NEW21Ivan Magalhaes
1027Jeanfrancois P IturbideJapan2024-04-07Chemel, James L Cpa UNQUALIFIED0Elwin Sharvill
1028Jeanfrancois F VocelkaJapan2024-03-31Rangoni Of Florence UNQUALIFIED19Ioni Bowcher
1029Aruna Q ChuiIndia2024-03-28Rousseaux, Michael Esq NEGOTIATION65Anna Fali
1030Octavia V FollerRussia2024-04-25Printing Dimensions UNQUALIFIED29Asiya Javayant
1031Isabel P MaletFrance2024-03-28King, Christopher A Esq RENEWAL34Ioni Bowcher
1032Nicolas D WhobreyAustralia2024-04-11Feltz Printing Service RENEWAL77Asiya Javayant
1033Murillo Y WieserUnited Kingdom2024-04-24Morlong Associates RENEWAL80Bernardo Dominic
1034Greenwood G SchemmerAustralia2024-03-27Feiner Bros UNQUALIFIED5Xuxue Feng
1035Nicolas R AmigonAustralia2024-04-13Rangoni Of Florence QUALIFIED62Elwin Sharvill
1036Leja Z VocelkaUnited Kingdom2024-04-03King, Christopher A Esq UNQUALIFIED61Ivan Magalhaes
1037Clifford J StockhamUnited Kingdom2024-04-09Rangoni Of Florence QUALIFIED25Ivan Magalhaes
1038Darci M MacleadArgentina2024-04-25Feltz Printing Service QUALIFIED93Stephen Shaw
1039Jennifer J CaldareraGermany2024-04-09Dorl, James J Esq NEW1Asiya Javayant
1040Antonio A RimArgentina2024-03-27Buckley Miller Wright RENEWAL82Asiya Javayant
1041Sinclair M PoquetteUnited Kingdom2024-04-18King, Christopher A Esq UNQUALIFIED75Anna Fali
1042Rodrigues Z VenereGermany2024-04-10Feltz Printing Service NEGOTIATION48Onyama Limba
1043Cody J RutaUnited Kingdom2024-04-15Dorl, James J Esq QUALIFIED86Elwin Sharvill
1044Isabel M DoeGermany2024-04-06Chanay, Jeffrey A Esq NEGOTIATION6Ioni Bowcher
1045Isabel U DarakjyItaly2024-04-07Chapman, Ross E Esq UNQUALIFIED72Asiya Javayant
1046Antonio F MarrierArgentina2024-03-27Chapman, Ross E Esq QUALIFIED11Asiya Javayant
1047Francesco U StensethFrance2024-04-11Chemel, James L Cpa QUALIFIED87Amy Elsner
1048Juan E FlosiArgentina2024-04-07Feltz Printing Service PROPOSAL70Amy Elsner
1049Francesco W BriddickCanada2024-04-14Buckley Miller Wright UNQUALIFIED47Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith H MaletCanadaXuxue Feng UNQUALIFIED
Jeanfrancois R GauchoJapanAnna Fali QUALIFIED
Sinclair Q FlosiJapanXuxue Feng NEGOTIATION
Ricardo V StensethIndiaAsiya Javayant NEGOTIATION
Antonio J BriddickGermanyAsiya Javayant NEGOTIATION
Aditya L DarakjyUnited KingdomAmy Elsner RENEWAL
Deepesh Y RutaJapanElwin Sharvill NEW
Costa K PoquetteJapanBernardo Dominic NEW
Alejandro I RimSpainIvan Magalhaes QUALIFIED
Jennifer J MarrierRussiaBernardo Dominic NEW
Jones W RimRussiaAsiya Javayant NEW
Claire H BriddickArgentinaIoni Bowcher QUALIFIED
Clifford A StockhamBrazilStephen Shaw NEW
Ivar I SaylorsIndiaAmy Elsner UNQUALIFIED
Jennifer W FigeroaRussiaStephen Shaw PROPOSAL
Maria M TollnerGermanyIoni Bowcher QUALIFIED
Kadeem I VenereFranceElwin Sharvill QUALIFIED
Johnson C GlickItalyStephen Shaw UNQUALIFIED
Aika R NestleIndiaStephen Shaw UNQUALIFIED
Julie S OldroydArgentinaXuxue Feng RENEWAL
Tony F PerinIndiaBernardo Dominic NEW
Arvin F ChuiRussiaOnyama Limba PROPOSAL
Emily O DarakjyJapanIvan Magalhaes PROPOSAL
Chavez W MacleadFranceAsiya Javayant NEW
Julie B VocelkaSpainXuxue Feng NEGOTIATION
Alejandro Z WieserArgentinaIvan Magalhaes QUALIFIED
Maria L GillianGermanyElwin Sharvill NEGOTIATION
Rodrigues V CaldareraBrazilElwin Sharvill RENEWAL
Ivar S WhobreyFranceIvan Magalhaes UNQUALIFIED
Silvio K BriddickSpainElwin Sharvill NEW
Leon W SlusarskiJapanStephen Shaw NEW
Nicolas T KolmetzIndiaAnna Fali NEGOTIATION
Jones S FollerItalyAnna Fali QUALIFIED
Munro U SaylorsCanadaXuxue Feng QUALIFIED
Isabel D OldroydItalyAsiya Javayant NEGOTIATION
Smith B MarrierIndiaAnna Fali NEGOTIATION
Arvin Z ShinkoItalyIoni Bowcher UNQUALIFIED
Ricardo S StensethUnited KingdomIvan Magalhaes QUALIFIED
Morrow Q PerinRussiaStephen Shaw QUALIFIED
Leja X PaprockiSpainBernardo Dominic NEGOTIATION
Nicolas U CaldareraRussiaXuxue Feng RENEWAL
Arvin N SchemmerBrazilAmy Elsner PROPOSAL
Mujtaba D ChuiJapanOnyama Limba QUALIFIED
Adams T GauchoIndiaAnna Fali QUALIFIED
Salvatore Q AlbaresGermanyStephen Shaw PROPOSAL
Misaki V GillianItalyAnna Fali NEGOTIATION
Deepesh P WhobreyItalyBernardo Dominic NEGOTIATION
Mujtaba T RulapaughArgentinaXuxue Feng NEGOTIATION
Juan Q AlbaresIndiaAsiya Javayant UNQUALIFIED
Cody F OldroydGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Chavez T Dilliard
Francesco J Rim
Jefferson K Shinko
Murillo R Whobrey
Rodrigues D Wieser
Antonio R Perin
Emily K Kusko
Costa J Caudy
Smith J Vocelka
Adams N Bowley
Faith H Caudy
Aditya E Whobrey
Greenwood U Briddick
Jones G Kusko
Octavia X Marrier
Ricardo T Ostrosky
Aika N Kusko
Misaki J Campain
Clifford N Dilliard
Kaitlin W Schemmer
Nicolas H Gillian
David X Morasca
Chavez H Campain
James Z Albares
Kaitlin Q Kolmetz
James H Paprocki
Stacey P Marrier
Francesco L Nicka
Izzy S Maclead
Stacey U Malet
Kaitlin D Chui
Wickens J Sergi
Francesco J Stenseth
Kadeem B Malet
Nicolas L Vocelka
Rodrigues L Tollner
Isabel A Rulapaugh
Maria T Malet
Morrow R Rulapaugh
Mayumi D Stockham
Stacey A Waycott
Maisha Q Venere
Julie D Waycott
Sinclair A Iturbide
Jennifer I Malet
Smith B Sergi
Murillo G Albares
Adams J Amigon
Mayumi Z Amigon
Silvio L Rim
IdCountryDate
1000India2024-04-18
1001France2024-04-07
1002United Kingdom2024-04-08
1003United Kingdom2024-04-01
1004Australia2024-04-14
1005Canada2024-03-27
1006Germany2024-04-23
1007Japan2024-04-05
1008Canada2024-04-05
1009Brazil2024-04-21
1010Canada2024-04-13
1011United Kingdom2024-04-17
1012United Kingdom2024-04-05
1013Germany2024-04-04
1014Argentina2024-04-22
1015Germany2024-04-13
1016Brazil2024-04-18
1017Germany2024-04-20
1018Japan2024-04-15
1019Australia2024-04-17
1020Australia2024-04-15
1021Canada2024-03-31
1022Italy2024-04-08
1023Canada2024-04-07
1024Japan2024-04-07
1025Russia2024-04-02
1026Japan2024-04-16
1027Japan2024-04-14
1028Japan2024-04-21
1029Canada2024-04-11
1030Brazil2024-04-03
1031Germany2024-04-03
1032Brazil2024-04-20
1033India2024-03-31
1034Russia2024-04-09
1035India2024-04-25
1036Germany2024-04-17
1037Italy2024-03-29
1038Canada2024-04-24
1039Australia2024-03-29
1040United Kingdom2024-04-25
1041Argentina2024-04-21
1042United Kingdom2024-04-23
1043Germany2024-04-09
1044Australia2024-04-21
1045Italy2024-04-23
1046Italy2024-03-27
1047India2024-04-09
1048Japan2024-04-20
1049Italy2024-03-31

On-Demand Data

NameIdCountryDate
Ivar F Flosi1000Spain2024-04-17
Silvio A Iturbide1001United Kingdom2024-04-06
Julie B Caudy1002Russia2024-03-27
Cody M Morasca1003Russia2024-04-24
Costa G Briddick1004United Kingdom2024-04-04
Leja C Whobrey1005Australia2024-04-08
Nicolas Y Vocelka1006Japan2024-04-16
Alejandro A Dilliard1007France2024-04-10
David X Glick1008Italy2024-03-27
Jones K Slusarski1009Canada2024-04-08
Faith T Dilliard1010France2024-03-30
Maria M Ferencz1011Italy2024-04-16
Misaki U Paprocki1012Spain2024-04-03
Stacey A Gaucho1013Japan2024-04-15
Sinclair K Schemmer1014Canada2024-04-02
Kadeem K Paprocki1015Argentina2024-04-12
Jennifer S Vocelka1016Italy2024-04-03
Maria L Malet1017Australia2024-04-11
Mayumi B Albares1018Argentina2024-04-17
Aruna Y Caldarera1019Canada2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo W FigeroaGermanyBernardo Dominic PROPOSAL
Smith V BologniaRussiaIvan Magalhaes UNQUALIFIED
Kadeem F CampainUnited KingdomAnna Fali PROPOSAL
Maria Z StensethAustraliaAsiya Javayant RENEWAL
Jefferson E AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Wickens L CaudyJapanIoni Bowcher NEGOTIATION
Johnson Z GarufiFranceXuxue Feng RENEWAL
Jennifer T ChuiArgentinaBernardo Dominic NEGOTIATION
Clifford O InouyeSpainAmy Elsner QUALIFIED
Stacey C SlusarskiSpainOnyama Limba QUALIFIED
Leja P WaycottItalyIoni Bowcher NEGOTIATION
Jones M AmigonAustraliaXuxue Feng UNQUALIFIED
James R OldroydIndiaAmy Elsner NEGOTIATION
Johnson H WhobreyGermanyAnna Fali RENEWAL
Kaitlin L VenereItalyIoni Bowcher UNQUALIFIED
Ashley Z CaudyItalyAsiya Javayant NEW
Julie O BriddickArgentinaOnyama Limba RENEWAL
Jeanfrancois I AlbaresJapanIvan Magalhaes QUALIFIED
Mujtaba Y CaldareraIndiaAmy Elsner PROPOSAL
Deepesh L MarrierCanadaOnyama Limba NEGOTIATION
Sinclair T WieserRussiaAsiya Javayant QUALIFIED
Juan P DarakjyRussiaBernardo Dominic NEGOTIATION
Isabel J MarrierBrazilBernardo Dominic UNQUALIFIED
Ricardo L ChuiCanadaBernardo Dominic NEW
Murillo W RutaBrazilAnna Fali NEGOTIATION
Ricardo Q BowleyFranceIoni Bowcher RENEWAL
Isabel M SergiGermanyIvan Magalhaes NEGOTIATION
Smith S MorascaBrazilAsiya Javayant PROPOSAL
Leon N OldroydItalyAsiya Javayant QUALIFIED
Darci Y TollnerCanadaAnna Fali UNQUALIFIED
Izzy A BowleyArgentinaElwin Sharvill NEW
Sinclair M AmigonBrazilBernardo Dominic NEGOTIATION
Jeanfrancois D WhobreyArgentinaStephen Shaw NEGOTIATION
Cody M AlbaresRussiaAsiya Javayant PROPOSAL
Chavez E DarakjyCanadaIoni Bowcher NEGOTIATION
Johnson H PerinCanadaElwin Sharvill RENEWAL
Leon D MorascaAustraliaXuxue Feng QUALIFIED
Aditya M OstroskyIndiaBernardo Dominic PROPOSAL
Alejandro A GlickRussiaBernardo Dominic QUALIFIED
Maisha G CampainGermanyIvan Magalhaes NEW

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