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
Munro N WaycottJapanOnyama Limba UNQUALIFIED
Wickens S ButtSpainAsiya Javayant NEGOTIATION
Costa J FlosiArgentinaXuxue Feng NEGOTIATION
Tony T OldroydBrazilAsiya Javayant RENEWAL
James J MaletItalyElwin Sharvill NEGOTIATION
Francesco V PerinSpainElwin Sharvill NEGOTIATION
Antonio H FollerArgentinaIoni Bowcher NEGOTIATION
Ricardo N PoquetteBrazilIvan Magalhaes NEW
Claire E StockhamJapanAsiya Javayant NEGOTIATION
Tony P BowleyAustraliaIoni Bowcher PROPOSAL
Isabel Q StensethArgentinaStephen Shaw PROPOSAL
Izzy U ChuiAustraliaStephen Shaw NEW
Faith A FerenczItalyOnyama Limba NEGOTIATION
Octavia Q KuskoUnited KingdomIoni Bowcher NEW
Nicolas K ShinkoGermanyXuxue Feng PROPOSAL
Jefferson P RoysterBrazilStephen Shaw NEW
Nicolas L IturbideAustraliaElwin Sharvill UNQUALIFIED
Jeanfrancois A ShinkoBrazilAnna Fali RENEWAL
Stacey V GillianIndiaAmy Elsner NEGOTIATION
Alejandro D WieserIndiaAsiya Javayant PROPOSAL
Alejandro I MacleadUnited KingdomOnyama Limba PROPOSAL
Johnson Z AmigonIndiaAnna Fali PROPOSAL
Johnson F MarrierIndiaBernardo Dominic UNQUALIFIED
Claire H StensethIndiaIvan Magalhaes RENEWAL
Mujtaba V ShinkoRussiaIvan Magalhaes NEW
Murillo B SchemmerSpainBernardo Dominic RENEWAL
Kaitlin X RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair V KuskoUnited KingdomAsiya Javayant QUALIFIED
Kadeem G SaylorsItalyAnna Fali RENEWAL
Misaki O CaldareraRussiaIoni Bowcher NEGOTIATION
Leja R GauchoSpainOnyama Limba QUALIFIED
Aruna O SaylorsRussiaAsiya Javayant NEGOTIATION
Smith Q FerenczGermanyOnyama Limba NEGOTIATION
Maria A GlickSpainAnna Fali RENEWAL
Wickens S BriddickSpainIvan Magalhaes UNQUALIFIED
Nicolas W FigeroaBrazilXuxue Feng NEW
Kaitlin Z CampainItalyIoni Bowcher QUALIFIED
Izzy O CaudyGermanyBernardo Dominic PROPOSAL
Adams T WieserSpainAmy Elsner RENEWAL
Johnson Y SlusarskiSpainXuxue Feng QUALIFIED
Costa D CaudyCanadaXuxue Feng NEGOTIATION
Maisha O RutaGermanyOnyama Limba NEGOTIATION
Chavez L RutaJapanOnyama Limba NEW
Juan R GlickArgentinaIoni Bowcher NEW
Mujtaba T BriddickRussiaAsiya Javayant RENEWAL
Chavez R TollnerFranceAsiya Javayant PROPOSAL
Tony Q RutaCanadaOnyama Limba NEGOTIATION
Misaki X DoeGermanyIvan Magalhaes PROPOSAL
Aruna A MacleadJapanAnna Fali NEGOTIATION
Wickens Q CaudyItalyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci L SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Isabel O PerinBrazilStephen Shaw NEGOTIATION
Aditya I DilliardJapanElwin Sharvill QUALIFIED
Adams V ButtItalyBernardo Dominic RENEWAL
Adams D FerenczUnited KingdomAmy Elsner PROPOSAL
Octavia O MorascaArgentinaBernardo Dominic RENEWAL
Kadeem D WieserRussiaElwin Sharvill PROPOSAL
Salvatore C RulapaughSpainBernardo Dominic PROPOSAL
Greenwood I DilliardIndiaAmy Elsner PROPOSAL
Cody F AlbaresFranceOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens T StockhamFrance2024-04-29Rangoni Of Florence QUALIFIED79Elwin Sharvill
1001Izzy B BriddickJapan2024-04-27King, Christopher A Esq PROPOSAL46Ivan Magalhaes
1002James M BowleyAustralia2024-04-06Morlong Associates NEGOTIATION63Bernardo Dominic
1003Misaki J StensethIndia2024-04-15Buckley Miller Wright RENEWAL36Asiya Javayant
1004Wickens T RutaSpain2024-04-02Rangoni Of Florence NEW88Stephen Shaw
1005Jeanfrancois B RutaBrazil2024-04-05Dorl, James J Esq NEGOTIATION9Xuxue Feng
1006Octavia R ButtUnited Kingdom2024-04-13King, Christopher A Esq UNQUALIFIED41Elwin Sharvill
1007Maisha I FigeroaFrance2024-04-25Feltz Printing Service NEGOTIATION43Amy Elsner
1008Ashley E CaldareraRussia2024-04-19King, Christopher A Esq NEGOTIATION92Anna Fali
1009Maria U BowleyIndia2024-04-13Chemel, James L Cpa NEGOTIATION90Bernardo Dominic
1010Deepesh X SergiArgentina2024-04-17Benton, John B Jr RENEWAL79Ioni Bowcher
1011Claire D RoysterCanada2024-04-10Printing Dimensions UNQUALIFIED93Onyama Limba
1012Alejandro P AlbaresRussia2024-04-14Dorl, James J Esq QUALIFIED0Ivan Magalhaes
1013Aditya V VocelkaIndia2024-04-05Chanay, Jeffrey A Esq PROPOSAL53Anna Fali
1014Johnson Q OldroydFrance2024-04-29Rousseaux, Michael Esq NEW86Anna Fali
1015Aruna B MaletRussia2024-04-07Buckley Miller Wright UNQUALIFIED78Asiya Javayant
1016Antonio N ChuiBrazil2024-04-21Dorl, James J Esq QUALIFIED26Ioni Bowcher
1017Emily Z PaprockiSpain2024-04-08Chanay, Jeffrey A Esq QUALIFIED3Ivan Magalhaes
1018Claire C AmigonIndia2024-04-29Dorl, James J Esq NEGOTIATION12Onyama Limba
1019Rodrigues B WaycottCanada2024-04-08Commercial Press PROPOSAL23Ioni Bowcher
1020James K DarakjyCanada2024-04-07Feltz Printing Service UNQUALIFIED64Bernardo Dominic
1021Aruna C GauchoArgentina2024-04-14King, Christopher A Esq PROPOSAL47Ivan Magalhaes
1022Ashley D NestleIndia2024-04-22Chanay, Jeffrey A Esq RENEWAL37Stephen Shaw
1023Nicolas M MaletCanada2024-04-08Feltz Printing Service UNQUALIFIED34Xuxue Feng
1024Jones E CampainAustralia2024-04-01Truhlar And Truhlar Attys NEW31Amy Elsner
1025Mujtaba W MacleadUnited Kingdom2024-04-01Commercial Press NEW38Ivan Magalhaes
1026Antonio V TollnerArgentina2024-04-10Dorl, James J Esq RENEWAL23Ivan Magalhaes
1027Izzy W FlosiItaly2024-04-11Commercial Press UNQUALIFIED65Stephen Shaw
1028Tony V SergiIndia2024-04-28Feltz Printing Service NEW25Ivan Magalhaes
1029Aditya O MarrierRussia2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED39Bernardo Dominic
1030Adams T MaletSpain2024-04-07Chanay, Jeffrey A Esq NEGOTIATION88Amy Elsner
1031Munro Y CampainRussia2024-04-23Chemel, James L Cpa NEGOTIATION27Bernardo Dominic
1032Greenwood D GauchoJapan2024-04-11Truhlar And Truhlar Attys NEW26Elwin Sharvill
1033Jones K SergiRussia2024-04-12Commercial Press UNQUALIFIED39Stephen Shaw
1034Jennifer M SergiUnited Kingdom2024-04-22Commercial Press PROPOSAL18Ioni Bowcher
1035Chavez R VenereBrazil2024-04-15Dorl, James J Esq NEW9Anna Fali
1036Maisha V GauchoArgentina2024-04-07Rousseaux, Michael Esq PROPOSAL9Ioni Bowcher
1037Izzy Y BologniaIndia2024-04-06Printing Dimensions QUALIFIED14Anna Fali
1038Clifford Q AlbaresSpain2024-04-24Rangoni Of Florence RENEWAL28Asiya Javayant
1039Kaitlin P SlusarskiUnited Kingdom2024-04-18Truhlar And Truhlar Attys NEW7Ivan Magalhaes
1040Adams C VenereArgentina2024-04-10Rangoni Of Florence UNQUALIFIED95Ivan Magalhaes
1041Alejandro N SlusarskiRussia2024-04-25Commercial Press UNQUALIFIED16Anna Fali
1042Rodrigues O KolmetzBrazil2024-04-02Buckley Miller Wright NEW96Stephen Shaw
1043Nicolas A PerinArgentina2024-04-11Buckley Miller Wright NEGOTIATION65Onyama Limba
1044Silvio G CaudyJapan2024-04-06Morlong Associates RENEWAL97Elwin Sharvill
1045Jefferson D WieserFrance2024-04-08Chapman, Ross E Esq NEW46Asiya Javayant
1046Adams J VenereUnited Kingdom2024-04-17Chanay, Jeffrey A Esq RENEWAL35Bernardo Dominic
1047Wickens M KuskoBrazil2024-04-21Feiner Bros NEGOTIATION43Elwin Sharvill
1048Chavez A BologniaUnited Kingdom2024-04-10Benton, John B Jr UNQUALIFIED32Ivan Magalhaes
1049Jennifer C ShinkoFrance2024-04-25Rangoni Of Florence RENEWAL19Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Stacey P PoquetteRussiaStephen Shaw NEGOTIATION
Izzy E DilliardCanadaBernardo Dominic NEGOTIATION
Emily I MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna V WieserIndiaBernardo Dominic NEGOTIATION
Wickens K CaudyRussiaIoni Bowcher RENEWAL
Mujtaba R SchemmerSpainStephen Shaw NEW
Ivar S VenereFranceBernardo Dominic PROPOSAL
Salvatore Q IturbideCanadaAnna Fali PROPOSAL
Nicolas D RimBrazilAmy Elsner RENEWAL
Costa D GillianUnited KingdomAnna Fali QUALIFIED
Sinclair U ButtSpainAnna Fali QUALIFIED
Munro E MarrierSpainBernardo Dominic NEGOTIATION
James L FollerCanadaStephen Shaw NEW
Jennifer O NestleCanadaAmy Elsner QUALIFIED
Juan R AmigonGermanyElwin Sharvill RENEWAL
Isabel Y GlickUnited KingdomXuxue Feng PROPOSAL
Adams P WhobreyFranceStephen Shaw QUALIFIED
Aika O FlosiCanadaXuxue Feng UNQUALIFIED
Ashley N WhobreyFranceStephen Shaw UNQUALIFIED
Claire M PerinRussiaIoni Bowcher NEW
Silvio C WaycottIndiaBernardo Dominic NEW
Octavia X OstroskyRussiaElwin Sharvill RENEWAL
Adams N CaldareraArgentinaOnyama Limba QUALIFIED
Maria U StockhamBrazilIvan Magalhaes NEW
Mayumi V NestleGermanyAsiya Javayant NEGOTIATION
James W PoquetteGermanyAnna Fali QUALIFIED
Misaki T FollerArgentinaElwin Sharvill PROPOSAL
Octavia R RimIndiaAmy Elsner RENEWAL
Kadeem U DoeBrazilAnna Fali QUALIFIED
Morrow U BriddickFranceElwin Sharvill RENEWAL
Stacey Y BologniaCanadaElwin Sharvill PROPOSAL
Jones X BologniaFranceElwin Sharvill NEW
Aditya J OstroskyBrazilXuxue Feng QUALIFIED
Jefferson N CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Leon Z CampainUnited KingdomBernardo Dominic PROPOSAL
Mujtaba T StensethAustraliaStephen Shaw QUALIFIED
Jefferson E IturbideIndiaXuxue Feng NEW
Izzy M ButtCanadaIoni Bowcher NEGOTIATION
Alejandro K GlickRussiaAnna Fali PROPOSAL
Aruna B RulapaughJapanXuxue Feng QUALIFIED
Ashley Y MarrierCanadaStephen Shaw QUALIFIED
Morrow F SaylorsCanadaXuxue Feng NEGOTIATION
Jefferson V PoquetteFranceIoni Bowcher RENEWAL
Aditya W PerinJapanAmy Elsner UNQUALIFIED
Costa V RimBrazilStephen Shaw UNQUALIFIED
Antonio R FollerArgentinaAmy Elsner NEGOTIATION
Murillo F DarakjyJapanStephen Shaw NEGOTIATION
Johnson F FigeroaArgentinaAsiya Javayant NEW
Cody V DoeSpainAsiya Javayant NEGOTIATION
Ashley W StockhamItalyAnna Fali PROPOSAL
Frozen Columns
Name
Aruna M Flosi
Jennifer T Gaucho
Chavez R Figeroa
Isabel U Morasca
Clifford V Morasca
Izzy H Gillian
Chavez G Figeroa
Jeanfrancois Y Waycott
Aruna M Rim
Sinclair O Waycott
Salvatore W Nicka
Izzy C Gillian
Costa N Waycott
Ricardo O Shinko
Darci M Saylors
Leja V Sergi
Silvio R Ruta
Kadeem T Briddick
Murillo R Gillian
Rodrigues X Nestle
Jennifer I Albares
Jefferson Y Ruta
Misaki Z Chui
Maria I Perin
Mayumi U Darakjy
Silvio N Albares
Rodrigues K Gaucho
Juan R Oldroyd
Chavez V Marrier
Aruna O Royster
Faith E Caudy
Emily X Bolognia
Clifford N Dilliard
Jeanfrancois O Nicka
Costa L Malet
Leon N Gillian
Greenwood I Dilliard
Jeanfrancois H Garufi
Stacey D Paprocki
Ivar B Butt
Alejandro J Rulapaugh
Misaki F Vocelka
Ashley X Malet
James A Kolmetz
Mayumi A Schemmer
Misaki U Caudy
Smith J Poquette
Maisha S Poquette
Mayumi Z Foller
Wickens U Iturbide
IdCountryDate
1000Australia2024-04-25
1001Japan2024-04-08
1002France2024-04-04
1003Canada2024-04-19
1004Spain2024-04-15
1005France2024-04-01
1006Canada2024-04-20
1007United Kingdom2024-04-19
1008Brazil2024-04-15
1009France2024-04-23
1010United Kingdom2024-04-16
1011France2024-04-22
1012United Kingdom2024-04-12
1013Australia2024-04-08
1014Russia2024-04-20
1015France2024-04-14
1016Argentina2024-04-02
1017Italy2024-04-22
1018Argentina2024-03-31
1019Australia2024-04-09
1020Brazil2024-04-13
1021India2024-04-20
1022Canada2024-04-12
1023United Kingdom2024-04-06
1024Australia2024-04-02
1025Germany2024-04-08
1026United Kingdom2024-04-10
1027Italy2024-04-05
1028Argentina2024-04-16
1029Spain2024-04-08
1030France2024-04-16
1031Japan2024-04-11
1032Brazil2024-04-29
1033Germany2024-04-12
1034Russia2024-04-15
1035India2024-04-10
1036Japan2024-04-17
1037Japan2024-04-09
1038Argentina2024-04-12
1039France2024-04-12
1040Argentina2024-04-06
1041Germany2024-04-29
1042India2024-04-16
1043Australia2024-04-01
1044Italy2024-04-01
1045India2024-04-06
1046France2024-04-05
1047Japan2024-04-26
1048Italy2024-04-29
1049Argentina2024-04-10

On-Demand Data

NameIdCountryDate
Isabel A Albares1000Brazil2024-04-16
Mujtaba L Schemmer1001Spain2024-04-10
Nicolas N Slusarski1002France2024-04-09
Misaki I Poquette1003Australia2024-04-15
Kadeem H Paprocki1004Russia2024-04-29
Salvatore L Stockham1005Italy2024-04-24
Izzy D Stockham1006Russia2024-04-05
Smith S Flosi1007Canada2024-03-31
Juan G Gaucho1008India2024-04-23
Leon W Ferencz1009Australia2024-04-13
Aruna F Saylors1010Italy2024-04-23
Octavia R Venere1011Italy2024-04-10
Chavez F Wieser1012United Kingdom2024-04-15
Wickens U Morasca1013Japan2024-04-14
Clifford A Chui1014United Kingdom2024-04-13
Leon Y Wieser1015Argentina2024-04-29
Izzy E Shinko1016Brazil2024-04-16
Izzy G Dilliard1017United Kingdom2024-03-31
Octavia X Sergi1018Australia2024-04-03
Claire I Flosi1019Japan2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki T MacleadUnited KingdomIvan Magalhaes NEW
Nicolas I PerinFranceOnyama Limba NEGOTIATION
Stacey N DoeArgentinaXuxue Feng UNQUALIFIED
Izzy W KolmetzCanadaXuxue Feng NEW
Aika V StensethBrazilAsiya Javayant QUALIFIED
Claire S SaylorsGermanyOnyama Limba NEW
Smith J FigeroaItalyIoni Bowcher NEGOTIATION
Greenwood X PaprockiJapanOnyama Limba NEGOTIATION
Mujtaba B DilliardRussiaElwin Sharvill PROPOSAL
Greenwood O MarrierJapanIvan Magalhaes NEGOTIATION
Mujtaba S BriddickAustraliaAnna Fali NEW
Misaki E SergiArgentinaIvan Magalhaes RENEWAL
Ricardo D AmigonItalyAmy Elsner UNQUALIFIED
Nicolas S PaprockiCanadaAnna Fali NEW
Maria O SergiJapanXuxue Feng PROPOSAL
Leja R FollerJapanXuxue Feng NEGOTIATION
Cody P TollnerItalyAmy Elsner PROPOSAL
Aika P StockhamGermanyXuxue Feng QUALIFIED
David F CaldareraBrazilIvan Magalhaes NEGOTIATION
Rodrigues T InouyeFranceOnyama Limba UNQUALIFIED
Salvatore J BologniaItalyXuxue Feng PROPOSAL
Adams Z CaldareraCanadaStephen Shaw QUALIFIED
Morrow O FigeroaCanadaAmy Elsner NEW
Misaki S GillianJapanXuxue Feng RENEWAL
Leja A FigeroaFranceIoni Bowcher UNQUALIFIED
Ricardo J MacleadUnited KingdomAsiya Javayant PROPOSAL
Leon K WieserItalyAmy Elsner NEW
Johnson T RimUnited KingdomIvan Magalhaes UNQUALIFIED
Ashley I InouyeSpainXuxue Feng NEW
Rodrigues S NickaBrazilOnyama Limba NEGOTIATION
Jeanfrancois N WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Emily P SlusarskiAustraliaOnyama Limba QUALIFIED
Mujtaba X FigeroaAustraliaOnyama Limba NEW
Stacey G AlbaresCanadaOnyama Limba NEW
Isabel X KolmetzSpainAmy Elsner NEGOTIATION
Smith O ShinkoArgentinaAsiya Javayant RENEWAL
Munro Y AmigonIndiaOnyama Limba NEW
Ashley F VenereUnited KingdomElwin Sharvill NEW
Deepesh T ChuiCanadaIvan Magalhaes UNQUALIFIED
Deepesh C RoysterFranceIvan Magalhaes 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>