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 H RulapaughIndiaXuxue Feng NEW
Leon D SergiJapanBernardo Dominic PROPOSAL
Maria H MacleadCanadaIoni Bowcher UNQUALIFIED
Ashley U WaycottJapanOnyama Limba QUALIFIED
Francesco Y DilliardUnited KingdomStephen Shaw NEGOTIATION
Chavez M AmigonGermanyXuxue Feng PROPOSAL
Aruna P AmigonArgentinaOnyama Limba NEW
Ashley M AlbaresUnited KingdomAmy Elsner PROPOSAL
Adams T StockhamAustraliaAsiya Javayant QUALIFIED
Claire Q GillianSpainBernardo Dominic UNQUALIFIED
Silvio U WieserSpainXuxue Feng RENEWAL
Faith Y SergiBrazilStephen Shaw PROPOSAL
Alejandro V KuskoCanadaIoni Bowcher UNQUALIFIED
Aruna U TollnerItalyIvan Magalhaes RENEWAL
Kadeem E StockhamFranceXuxue Feng RENEWAL
Emily R VenereIndiaIoni Bowcher NEGOTIATION
James C DilliardArgentinaIoni Bowcher NEGOTIATION
Adams K MacleadBrazilAnna Fali RENEWAL
Jennifer W FlosiBrazilBernardo Dominic NEGOTIATION
Nicolas G DilliardFranceBernardo Dominic NEGOTIATION
Stacey I GlickBrazilXuxue Feng RENEWAL
Silvio R VenereArgentinaOnyama Limba UNQUALIFIED
Aruna K InouyeItalyStephen Shaw UNQUALIFIED
Darci U OldroydIndiaAsiya Javayant NEGOTIATION
David J SergiAustraliaOnyama Limba QUALIFIED
Aruna W ShinkoArgentinaElwin Sharvill QUALIFIED
Deepesh H SaylorsCanadaAnna Fali PROPOSAL
Ashley V SlusarskiFranceIoni Bowcher PROPOSAL
Aika H OldroydArgentinaOnyama Limba PROPOSAL
Murillo V KuskoIndiaElwin Sharvill UNQUALIFIED
Costa G InouyeRussiaBernardo Dominic QUALIFIED
Chavez K OldroydRussiaIvan Magalhaes NEGOTIATION
Antonio E FerenczSpainStephen Shaw NEW
Jefferson C PoquetteJapanIvan Magalhaes NEGOTIATION
Mayumi Z MaletBrazilElwin Sharvill NEW
Izzy Y IturbideSpainXuxue Feng PROPOSAL
David W AlbaresArgentinaIvan Magalhaes NEGOTIATION
Ivar Z WieserRussiaStephen Shaw NEW
Juan E SaylorsArgentinaIoni Bowcher NEW
Tony B SlusarskiCanadaOnyama Limba RENEWAL
Jones O WhobreyJapanIvan Magalhaes RENEWAL
Mujtaba N RoysterBrazilOnyama Limba NEGOTIATION
Julie V OldroydGermanyStephen Shaw UNQUALIFIED
Wickens I NestleItalyAmy Elsner NEW
Smith A WaycottJapanXuxue Feng NEGOTIATION
Nicolas C StensethArgentinaOnyama Limba RENEWAL
Aruna T FigeroaJapanElwin Sharvill PROPOSAL
Ricardo H MorascaBrazilIoni Bowcher RENEWAL
Maisha J StockhamJapanAsiya Javayant NEGOTIATION
Greenwood X PaprockiSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood I GarufiArgentinaOnyama Limba NEGOTIATION
Nicolas J StockhamGermanyIoni Bowcher NEW
Leja Q DilliardBrazilAmy Elsner UNQUALIFIED
Jennifer N ButtArgentinaBernardo Dominic NEW
Sinclair J SaylorsItalyXuxue Feng RENEWAL
Tony T MarrierArgentinaStephen Shaw NEW
Aruna S RutaAustraliaAmy Elsner RENEWAL
Cody T FollerFranceElwin Sharvill RENEWAL
Isabel P VocelkaRussiaBernardo Dominic NEGOTIATION
Aika U SlusarskiIndiaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair M InouyeUnited Kingdom2024-03-29Buckley Miller Wright NEW1Ivan Magalhaes
1001Johnson T MaletFrance2024-04-01Truhlar And Truhlar Attys RENEWAL48Asiya Javayant
1002Misaki O WhobreySpain2024-04-10Truhlar And Truhlar Attys NEW81Amy Elsner
1003Johnson J VenereSpain2024-03-28Benton, John B Jr NEW25Ioni Bowcher
1004Salvatore N TollnerGermany2024-03-26King, Christopher A Esq UNQUALIFIED52Elwin Sharvill
1005Isabel A CampainJapan2024-04-16Printing Dimensions RENEWAL11Stephen Shaw
1006Rodrigues I SchemmerIndia2024-04-12Chapman, Ross E Esq PROPOSAL89Ioni Bowcher
1007Johnson T MaletArgentina2024-04-19Chapman, Ross E Esq RENEWAL50Amy Elsner
1008Silvio G NickaRussia2024-04-06Buckley Miller Wright NEW53Elwin Sharvill
1009Arvin C AmigonItaly2024-03-27Printing Dimensions RENEWAL29Ivan Magalhaes
1010Sinclair S GarufiBrazil2024-04-06Feiner Bros RENEWAL74Bernardo Dominic
1011Murillo L FerenczCanada2024-04-14Chapman, Ross E Esq NEGOTIATION27Anna Fali
1012Nicolas V FigeroaBrazil2024-04-16Morlong Associates PROPOSAL27Amy Elsner
1013Aika X SchemmerArgentina2024-04-20Dorl, James J Esq PROPOSAL41Ivan Magalhaes
1014Julie H PaprockiFrance2024-04-08Feiner Bros RENEWAL89Amy Elsner
1015Aditya H PoquetteRussia2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED20Asiya Javayant
1016Jennifer S AlbaresIndia2024-04-02Benton, John B Jr NEGOTIATION95Asiya Javayant
1017Clifford O WieserGermany2024-04-13Rangoni Of Florence UNQUALIFIED91Elwin Sharvill
1018Morrow V VocelkaRussia2024-04-21Chapman, Ross E Esq RENEWAL96Amy Elsner
1019Julie P GauchoJapan2024-04-19Feltz Printing Service PROPOSAL44Onyama Limba
1020Stacey S MaletUnited Kingdom2024-04-07Truhlar And Truhlar Attys NEGOTIATION13Amy Elsner
1021Aditya Z OldroydCanada2024-04-07King, Christopher A Esq PROPOSAL39Onyama Limba
1022Mayumi V CaldareraAustralia2024-04-18Truhlar And Truhlar Attys PROPOSAL32Ivan Magalhaes
1023Sinclair T CampainUnited Kingdom2024-04-22Commercial Press QUALIFIED38Amy Elsner
1024Isabel F CaldareraItaly2024-04-17Chanay, Jeffrey A Esq NEGOTIATION36Ioni Bowcher
1025Smith H InouyeFrance2024-03-29Feltz Printing Service NEGOTIATION53Xuxue Feng
1026Antonio X NickaJapan2024-04-14King, Christopher A Esq NEW3Ivan Magalhaes
1027Aditya E KolmetzBrazil2024-04-08Chapman, Ross E Esq NEGOTIATION55Anna Fali
1028Nicolas V BriddickAustralia2024-03-27Chanay, Jeffrey A Esq UNQUALIFIED10Stephen Shaw
1029Costa U WieserCanada2024-03-31Commercial Press NEW16Bernardo Dominic
1030Clifford N MaletBrazil2024-03-31Benton, John B Jr NEGOTIATION90Ioni Bowcher
1031Tony I DilliardCanada2024-04-19Rangoni Of Florence QUALIFIED18Ivan Magalhaes
1032Adams J WhobreyFrance2024-04-03Chemel, James L Cpa UNQUALIFIED18Elwin Sharvill
1033Munro U StensethFrance2024-03-26Feltz Printing Service UNQUALIFIED44Bernardo Dominic
1034Misaki U NestleRussia2024-03-30Commercial Press NEW56Anna Fali
1035Munro Q SaylorsIndia2024-04-01Benton, John B Jr RENEWAL40Anna Fali
1036Adams S TollnerBrazil2024-04-11Chemel, James L Cpa NEW49Bernardo Dominic
1037Darci H StensethArgentina2024-04-22Feltz Printing Service PROPOSAL43Xuxue Feng
1038Francesco A WhobreyGermany2024-04-01King, Christopher A Esq PROPOSAL78Elwin Sharvill
1039Clifford U NickaFrance2024-04-08Rangoni Of Florence QUALIFIED81Stephen Shaw
1040Ivar O DilliardIndia2024-04-06Morlong Associates RENEWAL26Elwin Sharvill
1041Aditya B ChuiAustralia2024-03-28Truhlar And Truhlar Attys RENEWAL43Ioni Bowcher
1042Morrow D StensethRussia2024-03-27Rangoni Of Florence NEGOTIATION71Bernardo Dominic
1043Adams S InouyeSpain2024-04-11Benton, John B Jr NEW93Ioni Bowcher
1044Aruna X InouyeSpain2024-04-21Rangoni Of Florence NEW37Ioni Bowcher
1045Chavez Q VenereSpain2024-04-05King, Christopher A Esq QUALIFIED15Ioni Bowcher
1046Clifford C TollnerItaly2024-04-11King, Christopher A Esq QUALIFIED64Bernardo Dominic
1047Aika P SergiItaly2024-03-30Printing Dimensions NEW66Ioni Bowcher
1048Francesco O TollnerGermany2024-04-15Buckley Miller Wright NEW56Asiya Javayant
1049Juan M CaudyAustralia2024-03-27Dorl, James J Esq NEW95Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ashley A GlickBrazilXuxue Feng NEGOTIATION
Isabel K MarrierBrazilAmy Elsner RENEWAL
Sinclair T ChuiUnited KingdomIvan Magalhaes PROPOSAL
Ashley L DoeGermanyIvan Magalhaes PROPOSAL
Julie H MarrierGermanyAnna Fali NEGOTIATION
Isabel A OstroskyJapanAsiya Javayant NEGOTIATION
Ivar Q FigeroaGermanyIvan Magalhaes UNQUALIFIED
Jennifer U BowleyFranceAmy Elsner PROPOSAL
Izzy J GauchoGermanyStephen Shaw NEGOTIATION
Salvatore W CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson M KolmetzGermanyElwin Sharvill RENEWAL
Arvin O GarufiFranceIvan Magalhaes PROPOSAL
Alejandro M ButtAustraliaIvan Magalhaes RENEWAL
Juan Z FlosiCanadaIoni Bowcher PROPOSAL
Munro L ShinkoSpainAsiya Javayant QUALIFIED
Leja G VenereItalyXuxue Feng NEGOTIATION
Jones Y NickaCanadaIvan Magalhaes RENEWAL
Munro A WaycottCanadaAmy Elsner NEGOTIATION
Antonio V BriddickIndiaBernardo Dominic QUALIFIED
Stacey H VenereGermanyIoni Bowcher QUALIFIED
Jeanfrancois U StensethRussiaXuxue Feng QUALIFIED
Sinclair D SergiCanadaStephen Shaw NEGOTIATION
Greenwood A OstroskyGermanyAsiya Javayant QUALIFIED
Juan A GauchoIndiaAmy Elsner PROPOSAL
Aruna P RutaSpainXuxue Feng PROPOSAL
Mujtaba R KolmetzIndiaOnyama Limba PROPOSAL
Sinclair R DarakjyItalyAnna Fali UNQUALIFIED
Silvio F GarufiCanadaStephen Shaw UNQUALIFIED
Jefferson G PoquetteArgentinaAnna Fali PROPOSAL
Juan K CaldareraIndiaOnyama Limba QUALIFIED
Costa U MaletUnited KingdomAnna Fali PROPOSAL
Aika Z MacleadSpainAnna Fali NEW
Nicolas I PoquetteFranceAmy Elsner RENEWAL
Jennifer W WaycottRussiaIoni Bowcher QUALIFIED
Sinclair B PerinArgentinaXuxue Feng NEW
Jennifer Z KolmetzSpainElwin Sharvill NEGOTIATION
Leon U BriddickBrazilElwin Sharvill UNQUALIFIED
Jennifer I PaprockiIndiaOnyama Limba NEW
Juan U PoquetteCanadaAsiya Javayant NEW
Rodrigues U FerenczIndiaAnna Fali UNQUALIFIED
Darci F BowleySpainAsiya Javayant NEW
Deepesh Z CaudyArgentinaStephen Shaw RENEWAL
Rodrigues Q BriddickUnited KingdomOnyama Limba UNQUALIFIED
Jennifer U VocelkaUnited KingdomIvan Magalhaes NEW
Jeanfrancois V MacleadBrazilAsiya Javayant QUALIFIED
Faith K InouyeAustraliaIoni Bowcher UNQUALIFIED
Cody O RimItalyAsiya Javayant PROPOSAL
Sinclair S MacleadAustraliaOnyama Limba QUALIFIED
Aruna M PerinJapanXuxue Feng UNQUALIFIED
Adams E DilliardIndiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Munro U Waycott
Johnson W Maclead
Faith N Morasca
Cody V Vocelka
Darci H Stenseth
Darci P Vocelka
Misaki S Maclead
Juan X Caldarera
Sinclair O Rulapaugh
Nicolas C Kolmetz
Ashley I Morasca
Jefferson K Albares
Izzy R Caldarera
Octavia I Glick
Cody Y Caldarera
Jeanfrancois U Albares
Chavez Q Maclead
Smith T Waycott
Kadeem Y Foller
Smith Y Flosi
Kaitlin V Inouye
Mujtaba X Darakjy
Jefferson M Whobrey
Octavia L Slusarski
Nicolas G Bolognia
Sinclair X Schemmer
Jefferson W Gaucho
Misaki D Venere
Jeanfrancois I Ferencz
Smith R Iturbide
Salvatore A Figeroa
Maria F Maclead
Leja M Inouye
Juan O Malet
Jennifer A Shinko
Morrow I Perin
Kadeem W Oldroyd
James Q Briddick
David V Garufi
Alejandro N Paprocki
Mayumi S Rim
James X Marrier
Leja C Amigon
Julie W Caldarera
Jefferson A Glick
Octavia S Butt
Mujtaba W Oldroyd
Smith M Ostrosky
Francesco U Inouye
Stacey P Figeroa
IdCountryDate
1000Italy2024-04-10
1001France2024-03-31
1002Spain2024-03-29
1003Japan2024-04-10
1004Australia2024-04-14
1005Canada2024-03-28
1006Italy2024-03-26
1007Japan2024-04-19
1008Japan2024-04-10
1009India2024-03-29
1010Japan2024-04-07
1011Italy2024-04-18
1012Italy2024-03-31
1013Germany2024-03-26
1014Italy2024-04-18
1015India2024-04-10
1016Italy2024-04-19
1017Russia2024-03-26
1018France2024-04-11
1019United Kingdom2024-04-14
1020Germany2024-04-08
1021India2024-04-13
1022France2024-04-14
1023Argentina2024-04-23
1024Australia2024-04-23
1025Italy2024-03-27
1026Japan2024-03-30
1027Russia2024-04-06
1028India2024-04-05
1029Argentina2024-03-26
1030Russia2024-04-05
1031Canada2024-03-28
1032United Kingdom2024-03-29
1033Russia2024-03-27
1034India2024-04-17
1035Australia2024-03-28
1036Spain2024-03-31
1037United Kingdom2024-04-05
1038Canada2024-04-09
1039Brazil2024-04-22
1040Japan2024-04-24
1041Russia2024-04-22
1042Canada2024-03-28
1043United Kingdom2024-04-07
1044Russia2024-04-24
1045Germany2024-04-13
1046Russia2024-04-07
1047Italy2024-04-24
1048United Kingdom2024-04-07
1049Brazil2024-04-13

On-Demand Data

NameIdCountryDate
Leon M Butt1000Canada2024-04-24
Salvatore H Kusko1001Canada2024-03-26
Wickens Q Vocelka1002Russia2024-04-08
Ashley Y Foller1003Italy2024-04-12
Cody M Glick1004Brazil2024-04-01
Clifford R Rim1005Italy2024-04-01
Murillo S Darakjy1006France2024-03-27
Morrow Y Stockham1007Germany2024-04-07
Kaitlin Q Marrier1008Russia2024-04-22
Darci X Kusko1009Australia2024-04-01
Isabel L Gillian1010Canada2024-04-24
Antonio Y Poquette1011Spain2024-04-15
Deepesh U Amigon1012Brazil2024-04-07
Leon D Wieser1013Brazil2024-04-18
Mujtaba S Waycott1014United Kingdom2024-04-05
Aika D Iturbide1015Australia2024-03-30
Stacey A Gillian1016Japan2024-03-27
Maria G Darakjy1017Russia2024-04-02
Leja K Schemmer1018Japan2024-04-08
Stacey N Briddick1019Argentina2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois R BowleyAustraliaAnna Fali UNQUALIFIED
Alejandro G SaylorsItalyOnyama Limba NEGOTIATION
Emily G CaldareraBrazilXuxue Feng NEW
Izzy Q TollnerArgentinaXuxue Feng PROPOSAL
Johnson W KuskoFranceBernardo Dominic PROPOSAL
Mujtaba E SchemmerFranceAmy Elsner UNQUALIFIED
Silvio Q FlosiCanadaIoni Bowcher QUALIFIED
Chavez C ChuiJapanIvan Magalhaes RENEWAL
Murillo N ChuiIndiaStephen Shaw NEW
Kaitlin B MorascaAustraliaAsiya Javayant PROPOSAL
Julie Z InouyeBrazilIvan Magalhaes RENEWAL
Jeanfrancois Q KolmetzArgentinaXuxue Feng NEGOTIATION
Leon A ShinkoGermanyOnyama Limba QUALIFIED
Darci H WieserFranceAmy Elsner RENEWAL
Misaki R MacleadAustraliaXuxue Feng NEW
Jones H OldroydJapanAnna Fali PROPOSAL
Murillo J NestleBrazilAnna Fali RENEWAL
Mayumi R MaletCanadaBernardo Dominic QUALIFIED
Antonio F ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Maisha U CampainRussiaAmy Elsner QUALIFIED
Salvatore D DoeJapanAnna Fali RENEWAL
Aditya E GauchoJapanIoni Bowcher RENEWAL
Rodrigues V FerenczItalyAnna Fali NEW
Jefferson X TollnerFranceElwin Sharvill UNQUALIFIED
Mayumi G KuskoIndiaBernardo Dominic PROPOSAL
Stacey C StensethItalyAmy Elsner NEGOTIATION
Ricardo X IturbideAustraliaAsiya Javayant PROPOSAL
Wickens D ButtAustraliaStephen Shaw NEW
Kadeem A AlbaresArgentinaOnyama Limba QUALIFIED
Isabel Y StockhamUnited KingdomXuxue Feng NEGOTIATION
Aditya R SergiIndiaIoni Bowcher RENEWAL
Ashley L ButtAustraliaOnyama Limba PROPOSAL
Kadeem N MarrierUnited KingdomAmy Elsner UNQUALIFIED
Maisha X SlusarskiBrazilStephen Shaw PROPOSAL
Arvin U PoquetteCanadaStephen Shaw PROPOSAL
Johnson B IturbideGermanyOnyama Limba RENEWAL
Ricardo S KolmetzRussiaAnna Fali NEW
Ricardo U WieserBrazilStephen Shaw UNQUALIFIED
Sinclair R SaylorsUnited KingdomAnna Fali RENEWAL
Chavez I DilliardJapanAmy Elsner 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>