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
Jones W GarufiGermanyIoni Bowcher NEGOTIATION
Ricardo V SaylorsGermanyIoni Bowcher PROPOSAL
Maria T SchemmerUnited KingdomAnna Fali QUALIFIED
Faith S FerenczAustraliaElwin Sharvill RENEWAL
Silvio J VocelkaRussiaIvan Magalhaes NEGOTIATION
Maisha U SergiAustraliaAnna Fali RENEWAL
Tony Z BowleyFranceElwin Sharvill NEW
Claire A AlbaresRussiaAmy Elsner NEGOTIATION
Aruna W TollnerItalyIoni Bowcher PROPOSAL
Cody V KuskoIndiaIvan Magalhaes RENEWAL
Wickens P WaycottArgentinaElwin Sharvill UNQUALIFIED
Maria N AmigonFranceAnna Fali QUALIFIED
Juan G DarakjySpainAmy Elsner RENEWAL
Stacey A BowleyUnited KingdomBernardo Dominic QUALIFIED
Maisha U CampainBrazilStephen Shaw UNQUALIFIED
Alejandro S FollerJapanStephen Shaw QUALIFIED
Deepesh A FigeroaJapanBernardo Dominic UNQUALIFIED
Kadeem F FerenczCanadaAnna Fali NEGOTIATION
Tony O KolmetzBrazilAmy Elsner RENEWAL
Aruna A WieserBrazilAnna Fali NEW
Nicolas F ButtItalyElwin Sharvill RENEWAL
Ashley A VenereFranceElwin Sharvill UNQUALIFIED
Darci Q FigeroaRussiaOnyama Limba PROPOSAL
Kaitlin V SergiSpainIvan Magalhaes QUALIFIED
Salvatore D GarufiGermanyOnyama Limba UNQUALIFIED
Alejandro Q SchemmerBrazilElwin Sharvill NEW
Mujtaba R DarakjyIndiaXuxue Feng NEGOTIATION
Clifford M WhobreyFranceAmy Elsner PROPOSAL
Silvio T MaletCanadaBernardo Dominic NEGOTIATION
David Q ButtSpainBernardo Dominic PROPOSAL
Kaitlin L FollerRussiaAmy Elsner UNQUALIFIED
Greenwood O SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Maisha I ShinkoCanadaAnna Fali UNQUALIFIED
Leja W GillianBrazilIoni Bowcher UNQUALIFIED
Murillo S SergiIndiaXuxue Feng QUALIFIED
Cody W StockhamFranceStephen Shaw UNQUALIFIED
Claire N SaylorsSpainBernardo Dominic NEW
Maisha M CaudyItalyIvan Magalhaes QUALIFIED
Kadeem S IturbideArgentinaElwin Sharvill NEW
Kadeem Y StockhamIndiaStephen Shaw RENEWAL
Clifford U SlusarskiSpainStephen Shaw QUALIFIED
Silvio O GillianUnited KingdomOnyama Limba QUALIFIED
Jones X NestleIndiaElwin Sharvill RENEWAL
Misaki Y FigeroaUnited KingdomStephen Shaw PROPOSAL
Leja H MarrierRussiaElwin Sharvill RENEWAL
Isabel M CampainSpainAmy Elsner UNQUALIFIED
Tony G NestleJapanAnna Fali NEGOTIATION
Chavez D MarrierIndiaOnyama Limba RENEWAL
Sinclair U ChuiIndiaAmy Elsner RENEWAL
Leja N RimRussiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams L MorascaIndiaStephen Shaw PROPOSAL
Aika G GlickIndiaXuxue Feng RENEWAL
Antonio V RimItalyXuxue Feng RENEWAL
Mayumi M FigeroaArgentinaIoni Bowcher PROPOSAL
Mujtaba R IturbideArgentinaOnyama Limba QUALIFIED
Francesco Z CampainJapanAmy Elsner QUALIFIED
Darci Y SaylorsBrazilIoni Bowcher PROPOSAL
Julie Q RimJapanStephen Shaw QUALIFIED
Leja P PerinGermanyElwin Sharvill NEGOTIATION
Julie Q PoquetteRussiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco E FollerCanada2024-04-26Morlong Associates UNQUALIFIED87Ivan Magalhaes
1001Jeanfrancois P DilliardBrazil2024-04-24Rousseaux, Michael Esq NEW47Bernardo Dominic
1002Stacey I BriddickUnited Kingdom2024-03-31Rangoni Of Florence PROPOSAL0Amy Elsner
1003Morrow L IturbideUnited Kingdom2024-04-26Benton, John B Jr PROPOSAL42Stephen Shaw
1004David P MaletBrazil2024-04-08Morlong Associates UNQUALIFIED63Onyama Limba
1005Kadeem N MaletJapan2024-04-15Chanay, Jeffrey A Esq NEGOTIATION17Amy Elsner
1006Costa H RoysterGermany2024-04-28Rangoni Of Florence NEGOTIATION24Ioni Bowcher
1007Kaitlin J MaletJapan2024-04-15Chemel, James L Cpa RENEWAL99Ioni Bowcher
1008Cody H NestleRussia2024-04-25Feiner Bros UNQUALIFIED29Xuxue Feng
1009Alejandro Q RimFrance2024-04-28Rangoni Of Florence UNQUALIFIED48Ivan Magalhaes
1010Ashley D FlosiRussia2024-04-17Morlong Associates RENEWAL3Ioni Bowcher
1011Wickens B PoquetteArgentina2024-04-12Buckley Miller Wright PROPOSAL99Asiya Javayant
1012Aruna G InouyeBrazil2024-04-03Dorl, James J Esq NEW99Amy Elsner
1013Julie J DoeCanada2024-04-19Chemel, James L Cpa NEGOTIATION91Elwin Sharvill
1014Claire T AmigonArgentina2024-04-11Chemel, James L Cpa UNQUALIFIED8Ivan Magalhaes
1015Ricardo N OldroydRussia2024-04-24Printing Dimensions NEGOTIATION87Xuxue Feng
1016Kaitlin X GauchoAustralia2024-04-19Chapman, Ross E Esq QUALIFIED23Elwin Sharvill
1017Kadeem A SergiArgentina2024-04-06King, Christopher A Esq UNQUALIFIED84Stephen Shaw
1018Clifford A GlickBrazil2024-03-31Rangoni Of Florence NEGOTIATION7Xuxue Feng
1019Maisha G AmigonBrazil2024-04-08Chanay, Jeffrey A Esq QUALIFIED47Ivan Magalhaes
1020Jeanfrancois R NickaItaly2024-04-26Rangoni Of Florence NEGOTIATION14Asiya Javayant
1021Johnson X ChuiGermany2024-04-25Dorl, James J Esq QUALIFIED40Anna Fali
1022Claire N BowleySpain2024-04-23Truhlar And Truhlar Attys RENEWAL26Amy Elsner
1023Jones E WhobreyCanada2024-04-14Benton, John B Jr QUALIFIED71Amy Elsner
1024Faith Z StensethItaly2024-04-28Rousseaux, Michael Esq RENEWAL22Asiya Javayant
1025Chavez R DoeBrazil2024-04-26King, Christopher A Esq PROPOSAL57Asiya Javayant
1026Mujtaba N FigeroaJapan2024-03-31Rousseaux, Michael Esq NEGOTIATION37Asiya Javayant
1027Johnson E GarufiIndia2024-04-28Buckley Miller Wright PROPOSAL41Anna Fali
1028Aditya G DarakjyRussia2024-04-26Commercial Press NEW68Ioni Bowcher
1029Murillo B SchemmerJapan2024-04-04Chapman, Ross E Esq NEGOTIATION15Amy Elsner
1030Costa Y OldroydFrance2024-04-26Feltz Printing Service QUALIFIED28Amy Elsner
1031James K ChuiFrance2024-04-21Chemel, James L Cpa QUALIFIED23Asiya Javayant
1032Mujtaba S FollerItaly2024-04-06Feltz Printing Service NEGOTIATION34Asiya Javayant
1033Aika Z RoysterIndia2024-04-25King, Christopher A Esq PROPOSAL11Stephen Shaw
1034Jeanfrancois X RulapaughIndia2024-04-07Chapman, Ross E Esq NEW37Stephen Shaw
1035Murillo L RoysterFrance2024-04-14Rangoni Of Florence PROPOSAL89Asiya Javayant
1036Izzy L SaylorsUnited Kingdom2024-04-18King, Christopher A Esq PROPOSAL24Elwin Sharvill
1037Ashley N IturbideBrazil2024-04-03Chapman, Ross E Esq RENEWAL63Stephen Shaw
1038Aika Y KuskoFrance2024-04-19Benton, John B Jr RENEWAL11Anna Fali
1039Kaitlin I AmigonBrazil2024-04-06Chemel, James L Cpa UNQUALIFIED40Ivan Magalhaes
1040Munro B NestleJapan2024-04-20Truhlar And Truhlar Attys UNQUALIFIED23Elwin Sharvill
1041Emily Q RoysterJapan2024-04-28Chemel, James L Cpa NEW10Xuxue Feng
1042Costa G WieserBrazil2024-04-17Buckley Miller Wright PROPOSAL21Amy Elsner
1043Greenwood V AlbaresIndia2024-04-28King, Christopher A Esq NEW48Asiya Javayant
1044Ricardo R WieserJapan2024-04-09Chapman, Ross E Esq QUALIFIED39Anna Fali
1045Octavia Q ShinkoUnited Kingdom2024-04-04Truhlar And Truhlar Attys NEW78Bernardo Dominic
1046Maria J PoquetteArgentina2024-04-19Chemel, James L Cpa PROPOSAL29Ivan Magalhaes
1047Chavez M SchemmerFrance2024-04-13Commercial Press QUALIFIED51Bernardo Dominic
1048Smith I VocelkaIndia2024-04-18Benton, John B Jr NEGOTIATION87Ivan Magalhaes
1049Mujtaba Q KolmetzUnited Kingdom2024-04-16Rangoni Of Florence NEGOTIATION69Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya F BowleyBrazilAsiya Javayant PROPOSAL
Cody H KolmetzBrazilAmy Elsner QUALIFIED
Rodrigues L NickaSpainIvan Magalhaes NEGOTIATION
Kaitlin O KolmetzBrazilAnna Fali UNQUALIFIED
Faith E AmigonRussiaAmy Elsner QUALIFIED
Cody Q PaprockiSpainOnyama Limba QUALIFIED
Costa O StockhamSpainIvan Magalhaes QUALIFIED
Munro D PaprockiItalyStephen Shaw QUALIFIED
Deepesh W BowleyJapanXuxue Feng NEW
Jones G GauchoUnited KingdomAnna Fali QUALIFIED
Faith X PoquetteSpainXuxue Feng UNQUALIFIED
Sinclair E ChuiGermanyOnyama Limba PROPOSAL
Antonio G MaletRussiaElwin Sharvill QUALIFIED
Nicolas P IturbideCanadaAsiya Javayant NEW
Kaitlin X SchemmerIndiaStephen Shaw NEGOTIATION
Jeanfrancois H NickaArgentinaAmy Elsner UNQUALIFIED
Claire E SchemmerAustraliaElwin Sharvill UNQUALIFIED
Salvatore S RutaIndiaStephen Shaw RENEWAL
Smith N OstroskyItalyStephen Shaw UNQUALIFIED
Morrow Z SergiGermanyElwin Sharvill PROPOSAL
Aruna H BriddickSpainXuxue Feng UNQUALIFIED
Leon B IturbideSpainIvan Magalhaes RENEWAL
Morrow U StockhamCanadaStephen Shaw PROPOSAL
Mujtaba V RoysterArgentinaBernardo Dominic NEW
Julie U WhobreyUnited KingdomOnyama Limba NEGOTIATION
James D FlosiIndiaOnyama Limba UNQUALIFIED
Aruna M NestleCanadaElwin Sharvill NEW
Wickens X GlickFranceIoni Bowcher NEW
Adams T DarakjyRussiaStephen Shaw NEGOTIATION
Ivar L SaylorsUnited KingdomBernardo Dominic RENEWAL
James X NickaFranceXuxue Feng NEGOTIATION
Emily N VenereSpainStephen Shaw QUALIFIED
Ivar O CaldareraIndiaAnna Fali UNQUALIFIED
Deepesh M ChuiArgentinaBernardo Dominic NEW
Mayumi Z AlbaresRussiaAmy Elsner QUALIFIED
Nicolas Z MorascaGermanyElwin Sharvill RENEWAL
Ashley T PerinBrazilOnyama Limba QUALIFIED
Deepesh G RutaItalyIvan Magalhaes QUALIFIED
Emily E ChuiItalyIoni Bowcher PROPOSAL
Ricardo V AmigonRussiaOnyama Limba NEGOTIATION
Jefferson G RutaItalyIoni Bowcher RENEWAL
Kadeem M GlickRussiaAnna Fali RENEWAL
Arvin W CaudyBrazilAmy Elsner NEW
Jefferson N OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi J CaudyGermanyStephen Shaw NEGOTIATION
Morrow L BriddickIndiaAsiya Javayant UNQUALIFIED
Aruna E NestleIndiaAnna Fali QUALIFIED
James O CampainJapanXuxue Feng RENEWAL
Jefferson A DilliardIndiaIvan Magalhaes NEGOTIATION
Ricardo Y PerinAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Aika K Paprocki
Deepesh P Rulapaugh
Salvatore H Venere
Costa Z Darakjy
Leon V Oldroyd
Mujtaba C Amigon
Adams O Briddick
Julie C Gillian
Jennifer A Bolognia
Stacey D Rim
Munro N Poquette
Nicolas X Oldroyd
Ricardo K Doe
Leon F Slusarski
Maria D Stenseth
Isabel F Ferencz
Cody D Glick
Smith Z Schemmer
Maisha C Caudy
Ricardo S Tollner
Tony S Chui
Emily W Garufi
Antonio K Kolmetz
Silvio N Caldarera
Sinclair H Maclead
Izzy S Amigon
Ivar F Chui
Faith D Shinko
Stacey A Bolognia
Claire I Gaucho
Silvio Q Garufi
Jennifer Z Stockham
Maria X Kusko
Kaitlin O Figeroa
Aditya F Schemmer
Aditya E Foller
Aditya V Venere
Francesco E Caudy
Adams F Iturbide
Arvin D Campain
Juan D Figeroa
Murillo V Malet
Misaki N Butt
Tony I Paprocki
Jeanfrancois C Nicka
Costa N Figeroa
Costa T Amigon
Octavia L Morasca
Rodrigues F Garufi
Mujtaba Q Gillian
IdCountryDate
1000Australia2024-04-11
1001Italy2024-04-10
1002Spain2024-04-16
1003Canada2024-04-21
1004Italy2024-04-14
1005Argentina2024-04-21
1006Italy2024-04-16
1007Canada2024-04-27
1008Germany2024-04-06
1009India2024-04-29
1010India2024-04-16
1011United Kingdom2024-04-04
1012France2024-04-27
1013Japan2024-04-28
1014Canada2024-04-18
1015Argentina2024-04-16
1016Brazil2024-04-28
1017France2024-04-09
1018Japan2024-04-16
1019Brazil2024-04-29
1020Russia2024-04-02
1021Canada2024-04-22
1022Brazil2024-04-04
1023Russia2024-04-13
1024Spain2024-04-21
1025Spain2024-04-22
1026Canada2024-04-25
1027Spain2024-04-04
1028Argentina2024-04-08
1029Spain2024-04-15
1030France2024-04-28
1031Brazil2024-04-05
1032Italy2024-04-17
1033Russia2024-04-22
1034Canada2024-04-07
1035United Kingdom2024-04-12
1036Canada2024-04-21
1037India2024-04-19
1038Italy2024-04-01
1039Spain2024-04-19
1040Spain2024-04-22
1041United Kingdom2024-04-22
1042Argentina2024-04-26
1043Australia2024-04-26
1044Russia2024-04-28
1045Italy2024-04-10
1046Canada2024-04-13
1047France2024-04-21
1048Japan2024-04-25
1049France2024-04-10

On-Demand Data

NameIdCountryDate
Jefferson D Iturbide1000India2024-04-02
Ashley J Doe1001India2024-04-09
Wickens Y Kusko1002United Kingdom2024-04-23
Izzy Q Venere1003Spain2024-04-04
Maria N Paprocki1004United Kingdom2024-03-31
Antonio L Malet1005Canada2024-04-06
Ricardo U Marrier1006Germany2024-04-13
Nicolas A Gillian1007United Kingdom2024-04-23
Misaki K Figeroa1008United Kingdom2024-04-03
Costa O Gaucho1009Japan2024-04-05
Smith O Rim1010Germany2024-04-16
Julie P Slusarski1011India2024-04-13
Chavez K Darakjy1012France2024-04-15
Kadeem J Amigon1013Japan2024-04-17
Juan I Slusarski1014Canada2024-03-31
Rodrigues G Darakjy1015Australia2024-04-25
Salvatore O Caudy1016Argentina2024-04-09
Kadeem B Dilliard1017Brazil2024-04-27
Julie R Ostrosky1018Italy2024-04-12
Jefferson D Kusko1019Russia2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem A AmigonItalyIvan Magalhaes QUALIFIED
Mujtaba O MorascaAustraliaIvan Magalhaes UNQUALIFIED
Sinclair U RulapaughSpainAsiya Javayant NEGOTIATION
Munro G VocelkaCanadaAnna Fali NEW
Munro T RimJapanOnyama Limba QUALIFIED
Sinclair D DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Leon P BriddickRussiaAsiya Javayant NEGOTIATION
Kaitlin N VenereSpainOnyama Limba RENEWAL
Maisha O RutaCanadaIoni Bowcher QUALIFIED
James X TollnerUnited KingdomAmy Elsner QUALIFIED
Nicolas I ShinkoBrazilAmy Elsner QUALIFIED
Tony T WaycottSpainIoni Bowcher RENEWAL
Misaki X GauchoSpainAsiya Javayant NEGOTIATION
Antonio R MarrierRussiaStephen Shaw NEW
Chavez N DoeJapanIvan Magalhaes RENEWAL
Jones V SaylorsUnited KingdomOnyama Limba PROPOSAL
Ashley O PerinFranceBernardo Dominic QUALIFIED
Julie N FerenczGermanyAsiya Javayant QUALIFIED
Nicolas P GauchoFranceAmy Elsner UNQUALIFIED
Johnson P VocelkaRussiaAsiya Javayant QUALIFIED
Julie Q WieserItalyOnyama Limba PROPOSAL
Leon P WhobreyCanadaIvan Magalhaes NEW
Juan R MorascaUnited KingdomStephen Shaw NEGOTIATION
Smith A AlbaresIndiaBernardo Dominic QUALIFIED
Cody D BriddickBrazilBernardo Dominic UNQUALIFIED
James B RulapaughIndiaElwin Sharvill NEW
Deepesh Z RulapaughArgentinaIoni Bowcher NEGOTIATION
Aika L CaudyCanadaBernardo Dominic UNQUALIFIED
Misaki H NickaFranceElwin Sharvill RENEWAL
Antonio S KuskoItalyElwin Sharvill QUALIFIED
Arvin J MaletIndiaBernardo Dominic PROPOSAL
Alejandro I FigeroaGermanyIoni Bowcher PROPOSAL
Ashley Q ButtAustraliaOnyama Limba NEW
Julie K CaudyCanadaElwin Sharvill UNQUALIFIED
Claire P GarufiSpainStephen Shaw QUALIFIED
Sinclair R FlosiGermanyAmy Elsner UNQUALIFIED
Emily R RoysterAustraliaBernardo Dominic NEGOTIATION
Cody Y RutaAustraliaIoni Bowcher NEW
Stacey N DoeBrazilOnyama Limba QUALIFIED
Stacey J SchemmerUnited KingdomAnna Fali 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>