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
Arvin E AlbaresIndiaXuxue Feng NEGOTIATION
Cody K GarufiArgentinaAnna Fali RENEWAL
Deepesh I StensethUnited KingdomElwin Sharvill UNQUALIFIED
Aditya Q GillianAustraliaAnna Fali NEW
Smith A InouyeBrazilElwin Sharvill UNQUALIFIED
Alejandro U WhobreyItalyIvan Magalhaes QUALIFIED
Munro R ChuiIndiaAnna Fali NEW
Izzy Q MaletUnited KingdomOnyama Limba NEW
Misaki Z GlickSpainIoni Bowcher NEGOTIATION
Mujtaba D DoeJapanIoni Bowcher RENEWAL
Misaki W FlosiBrazilIoni Bowcher QUALIFIED
Aditya R MacleadUnited KingdomBernardo Dominic QUALIFIED
Sinclair U BriddickGermanyXuxue Feng QUALIFIED
Julie D SlusarskiCanadaStephen Shaw QUALIFIED
Julie T OldroydFranceAmy Elsner QUALIFIED
Isabel P AlbaresFranceIvan Magalhaes NEGOTIATION
Antonio H StensethCanadaXuxue Feng UNQUALIFIED
Jennifer K WhobreyGermanyBernardo Dominic RENEWAL
Jeanfrancois V PoquetteRussiaXuxue Feng NEW
Emily I AmigonAustraliaBernardo Dominic RENEWAL
Maria H MacleadItalyAsiya Javayant RENEWAL
Julie C IturbideIndiaIvan Magalhaes NEGOTIATION
Ricardo C InouyeArgentinaIoni Bowcher QUALIFIED
Octavia Y PerinItalyXuxue Feng PROPOSAL
Ricardo Y BologniaRussiaAnna Fali NEW
Costa B MaletIndiaXuxue Feng UNQUALIFIED
Claire Y WieserIndiaAsiya Javayant RENEWAL
Maisha V InouyeJapanXuxue Feng PROPOSAL
Izzy P RoysterArgentinaOnyama Limba NEGOTIATION
Jefferson O DarakjyRussiaIvan Magalhaes PROPOSAL
Leja X NickaFranceStephen Shaw PROPOSAL
Salvatore K SergiAustraliaElwin Sharvill QUALIFIED
Salvatore Z SchemmerUnited KingdomIvan Magalhaes NEW
Juan F RulapaughAustraliaAnna Fali UNQUALIFIED
Ashley I MarrierArgentinaAnna Fali PROPOSAL
Emily T RimGermanyStephen Shaw QUALIFIED
Izzy G IturbideCanadaIoni Bowcher PROPOSAL
Tony L PerinSpainElwin Sharvill QUALIFIED
Aditya V WaycottRussiaOnyama Limba UNQUALIFIED
Tony V GauchoBrazilAsiya Javayant QUALIFIED
Aruna I DarakjySpainAnna Fali NEGOTIATION
Mujtaba K RoysterAustraliaIvan Magalhaes NEW
Nicolas C TollnerFranceStephen Shaw PROPOSAL
Ashley E GillianItalyElwin Sharvill PROPOSAL
Octavia Q SaylorsIndiaAsiya Javayant NEW
David G InouyeSpainBernardo Dominic UNQUALIFIED
Antonio W DoeJapanStephen Shaw UNQUALIFIED
Munro P DoeUnited KingdomOnyama Limba NEW
Darci O RimCanadaOnyama Limba PROPOSAL
Wickens Y SlusarskiSpainOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin C PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin P BowleyGermanyOnyama Limba NEGOTIATION
Emily G MacleadArgentinaAnna Fali NEGOTIATION
Munro K FlosiFranceStephen Shaw PROPOSAL
Greenwood X FerenczAustraliaXuxue Feng NEW
Aika B RoysterCanadaAnna Fali RENEWAL
Leja M BologniaSpainAmy Elsner UNQUALIFIED
Kaitlin Y MaletRussiaOnyama Limba PROPOSAL
Mujtaba H MaletFranceIvan Magalhaes QUALIFIED
Smith M StockhamAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire U WaycottRussia2024-04-25Rousseaux, Michael Esq NEGOTIATION59Stephen Shaw
1001Francesco R GillianBrazil2024-04-22King, Christopher A Esq NEW64Ioni Bowcher
1002Greenwood J TollnerFrance2024-04-17Chemel, James L Cpa NEGOTIATION27Onyama Limba
1003Aika W StockhamBrazil2024-04-25Feiner Bros NEGOTIATION26Onyama Limba
1004Jones X MaletUnited Kingdom2024-05-10Benton, John B Jr NEGOTIATION56Ioni Bowcher
1005Greenwood R BowleyRussia2024-04-20Feltz Printing Service PROPOSAL61Ivan Magalhaes
1006Alejandro R BriddickFrance2024-04-23Chemel, James L Cpa PROPOSAL35Bernardo Dominic
1007Stacey K PerinCanada2024-05-07Feiner Bros UNQUALIFIED22Elwin Sharvill
1008Silvio F TollnerSpain2024-04-14Chanay, Jeffrey A Esq QUALIFIED8Bernardo Dominic
1009Clifford E ShinkoBrazil2024-05-09Rangoni Of Florence QUALIFIED92Bernardo Dominic
1010Salvatore L RulapaughAustralia2024-04-13Dorl, James J Esq UNQUALIFIED97Stephen Shaw
1011Aruna B StensethIndia2024-04-18Commercial Press NEW54Ivan Magalhaes
1012Ashley A SlusarskiRussia2024-04-22Rangoni Of Florence RENEWAL87Ivan Magalhaes
1013Ashley U ShinkoArgentina2024-05-05Truhlar And Truhlar Attys RENEWAL93Stephen Shaw
1014Mujtaba U WhobreyRussia2024-05-04Rangoni Of Florence PROPOSAL35Asiya Javayant
1015Johnson O ChuiBrazil2024-05-10Chemel, James L Cpa QUALIFIED58Amy Elsner
1016Julie D RutaSpain2024-05-09Feiner Bros RENEWAL59Asiya Javayant
1017Jennifer Z VenereRussia2024-05-08Rousseaux, Michael Esq PROPOSAL76Anna Fali
1018Kadeem H DoeRussia2024-04-21Buckley Miller Wright PROPOSAL44Elwin Sharvill
1019Faith Q VenereBrazil2024-05-09Printing Dimensions NEGOTIATION80Ivan Magalhaes
1020Murillo A MaletAustralia2024-04-18Chapman, Ross E Esq RENEWAL48Asiya Javayant
1021Claire K StensethArgentina2024-04-30Truhlar And Truhlar Attys UNQUALIFIED74Xuxue Feng
1022Aruna A AlbaresItaly2024-04-15Chemel, James L Cpa PROPOSAL16Elwin Sharvill
1023Clifford T MaletItaly2024-04-25Rangoni Of Florence UNQUALIFIED33Ioni Bowcher
1024Jones N VocelkaBrazil2024-04-24Feiner Bros PROPOSAL40Xuxue Feng
1025Salvatore F StensethUnited Kingdom2024-04-18Rangoni Of Florence NEW97Anna Fali
1026Chavez S GillianSpain2024-04-28Feiner Bros NEW86Bernardo Dominic
1027Morrow N AmigonGermany2024-04-28King, Christopher A Esq UNQUALIFIED50Asiya Javayant
1028Jeanfrancois I BriddickFrance2024-04-25Rangoni Of Florence NEGOTIATION44Stephen Shaw
1029Jones Z CaldareraFrance2024-04-27Printing Dimensions QUALIFIED23Bernardo Dominic
1030Munro Y FlosiJapan2024-04-16Benton, John B Jr UNQUALIFIED28Ioni Bowcher
1031Smith O MacleadGermany2024-05-10Chapman, Ross E Esq UNQUALIFIED32Ioni Bowcher
1032Claire Z SlusarskiAustralia2024-04-26Feltz Printing Service NEW42Ivan Magalhaes
1033Isabel C CaldareraArgentina2024-05-03Feltz Printing Service QUALIFIED91Xuxue Feng
1034Ashley U PerinArgentina2024-05-05Morlong Associates RENEWAL85Ivan Magalhaes
1035Ricardo A GarufiBrazil2024-04-27Rousseaux, Michael Esq UNQUALIFIED1Stephen Shaw
1036Jefferson N PaprockiRussia2024-05-01Rousseaux, Michael Esq NEW32Anna Fali
1037Julie K VocelkaUnited Kingdom2024-04-25Feltz Printing Service NEGOTIATION35Elwin Sharvill
1038Ricardo S RutaSpain2024-04-22Rousseaux, Michael Esq PROPOSAL97Ioni Bowcher
1039Antonio X OstroskySpain2024-04-18Rangoni Of Florence PROPOSAL53Elwin Sharvill
1040Mayumi H MacleadItaly2024-05-08Commercial Press NEW96Ioni Bowcher
1041Rodrigues K GarufiArgentina2024-05-11Chemel, James L Cpa RENEWAL43Asiya Javayant
1042Octavia H AlbaresIndia2024-04-18Printing Dimensions PROPOSAL10Amy Elsner
1043Adams K PoquetteGermany2024-04-19King, Christopher A Esq UNQUALIFIED49Anna Fali
1044Mayumi R RutaFrance2024-05-09Chemel, James L Cpa QUALIFIED91Ioni Bowcher
1045Emily X ButtRussia2024-04-14Buckley Miller Wright UNQUALIFIED44Ioni Bowcher
1046Johnson Z WhobreyUnited Kingdom2024-04-13Rangoni Of Florence QUALIFIED55Bernardo Dominic
1047Claire J TollnerAustralia2024-04-16Dorl, James J Esq RENEWAL1Anna Fali
1048Francesco G CaudyRussia2024-04-26Buckley Miller Wright NEGOTIATION77Bernardo Dominic
1049Izzy I InouyeArgentina2024-04-25Feiner Bros NEW88Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues T SaylorsUnited KingdomXuxue Feng NEW
Claire U GillianSpainIoni Bowcher NEW
Ivar Q BowleyItalyElwin Sharvill NEW
Mujtaba U SergiArgentinaAsiya Javayant NEGOTIATION
Clifford M PoquetteSpainBernardo Dominic NEGOTIATION
Sinclair S FigeroaAustraliaAmy Elsner NEW
Aika R BologniaIndiaIoni Bowcher UNQUALIFIED
Emily R IturbideCanadaOnyama Limba NEW
Rodrigues T NickaArgentinaIvan Magalhaes UNQUALIFIED
Chavez O RutaSpainIoni Bowcher PROPOSAL
Arvin D CaudyBrazilIvan Magalhaes NEW
Jefferson U ButtSpainElwin Sharvill PROPOSAL
Mayumi D StensethIndiaIvan Magalhaes PROPOSAL
Jeanfrancois X WaycottBrazilXuxue Feng NEGOTIATION
David O MarrierArgentinaAsiya Javayant QUALIFIED
Deepesh M GillianFranceIoni Bowcher RENEWAL
Aika X ButtItalyAmy Elsner RENEWAL
Rodrigues M CampainSpainAnna Fali NEGOTIATION
Aika N StockhamSpainIoni Bowcher NEGOTIATION
Julie K GarufiCanadaXuxue Feng NEGOTIATION
David H MaletArgentinaXuxue Feng NEGOTIATION
Mayumi I StensethItalyXuxue Feng QUALIFIED
Leja J SlusarskiRussiaIvan Magalhaes RENEWAL
Adams T TollnerUnited KingdomIoni Bowcher NEW
Claire V WhobreyGermanyBernardo Dominic UNQUALIFIED
Ashley X StockhamFranceXuxue Feng NEGOTIATION
Johnson H SaylorsFranceAmy Elsner NEW
Smith Y MarrierGermanyXuxue Feng QUALIFIED
Clifford K DoeUnited KingdomIoni Bowcher PROPOSAL
Alejandro Y FigeroaBrazilAnna Fali NEW
Kaitlin K CampainRussiaStephen Shaw PROPOSAL
Alejandro Q FigeroaGermanyXuxue Feng NEW
Jefferson S MaletAustraliaIvan Magalhaes PROPOSAL
David H CaldareraJapanBernardo Dominic RENEWAL
Stacey F WieserIndiaStephen Shaw RENEWAL
Ricardo L FollerFranceAsiya Javayant NEGOTIATION
Aika Q CaldareraAustraliaAsiya Javayant NEGOTIATION
Leon G ChuiFranceAmy Elsner UNQUALIFIED
Tony W RutaJapanAmy Elsner PROPOSAL
Izzy X IturbideBrazilElwin Sharvill UNQUALIFIED
Ivar S MarrierSpainXuxue Feng UNQUALIFIED
Jones Y MaletUnited KingdomXuxue Feng NEGOTIATION
Munro Y StensethCanadaBernardo Dominic PROPOSAL
Morrow E RulapaughFranceBernardo Dominic UNQUALIFIED
Kadeem L ButtItalyIoni Bowcher NEGOTIATION
Murillo M PoquetteUnited KingdomStephen Shaw PROPOSAL
Jones X WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Antonio T RulapaughItalyAmy Elsner QUALIFIED
Maisha X GarufiRussiaBernardo Dominic NEW
James R VenereSpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Tony G Tollner
Costa O Malet
Alejandro B Kolmetz
Aika V Shinko
Antonio E Whobrey
Francesco P Stenseth
James A Oldroyd
Aruna K Darakjy
Mujtaba S Oldroyd
Kaitlin B Paprocki
Wickens G Vocelka
Antonio H Kolmetz
Smith P Whobrey
Aika T Gillian
Murillo J Briddick
David P Maclead
Darci S Poquette
Wickens Q Bolognia
Antonio I Campain
Ricardo L Malet
Wickens F Nestle
Octavia M Bowley
Alejandro P Malet
Sinclair N Caldarera
Leja S Stockham
Smith A Stockham
Greenwood M Stockham
James I Stenseth
Salvatore Y Iturbide
Kadeem D Paprocki
Octavia W Nicka
Kaitlin X Perin
Greenwood E Schemmer
Aditya L Sergi
Leon U Paprocki
Sinclair T Slusarski
Murillo D Stockham
Deepesh P Glick
Aruna B Stenseth
Misaki N Glick
Jennifer C Darakjy
Kadeem H Malet
Salvatore I Marrier
Darci S Waycott
Maisha P Paprocki
Clifford Y Malet
Aditya G Venere
Tony T Gillian
Leon W Gaucho
Darci E Royster
IdCountryDate
1000Argentina2024-04-18
1001Spain2024-05-08
1002Argentina2024-05-05
1003Italy2024-04-17
1004Russia2024-05-06
1005Japan2024-05-04
1006India2024-05-01
1007Canada2024-05-10
1008India2024-04-20
1009Brazil2024-04-22
1010Canada2024-04-15
1011France2024-05-05
1012United Kingdom2024-04-16
1013Spain2024-04-29
1014Germany2024-05-01
1015Brazil2024-04-18
1016Australia2024-04-24
1017Australia2024-04-22
1018Japan2024-05-11
1019Japan2024-04-14
1020Canada2024-04-13
1021Germany2024-04-13
1022India2024-04-30
1023Brazil2024-04-20
1024France2024-04-30
1025Argentina2024-04-14
1026Japan2024-04-21
1027Spain2024-04-28
1028Brazil2024-04-16
1029Italy2024-05-03
1030Spain2024-04-13
1031Spain2024-04-17
1032Argentina2024-04-16
1033United Kingdom2024-04-13
1034France2024-04-27
1035Italy2024-05-04
1036Germany2024-04-15
1037Russia2024-05-08
1038Spain2024-04-25
1039Germany2024-05-11
1040France2024-04-27
1041Italy2024-05-07
1042Japan2024-04-18
1043Spain2024-04-23
1044United Kingdom2024-05-02
1045Argentina2024-05-02
1046Australia2024-04-18
1047Italy2024-04-24
1048Brazil2024-04-20
1049United Kingdom2024-04-20

On-Demand Data

NameIdCountryDate
Clifford X Chui1000Germany2024-05-11
Leon D Chui1001Brazil2024-05-08
Arvin F Campain1002Spain2024-05-10
Jefferson O Rulapaugh1003Argentina2024-04-25
Leon G Nicka1004Spain2024-05-10
Sinclair S Stenseth1005Canada2024-04-27
Julie S Campain1006Australia2024-04-22
Tony N Wieser1007Spain2024-05-08
Stacey X Chui1008Russia2024-04-14
Claire M Stockham1009Italy2024-04-16
Leon A Kolmetz1010France2024-04-20
James G Royster1011Germany2024-05-06
Francesco U Dilliard1012Spain2024-05-02
Stacey X Ruta1013Italy2024-05-07
David R Sergi1014Germany2024-04-23
Chavez S Bolognia1015Germany2024-04-26
Isabel M Gaucho1016Canada2024-04-18
Ashley K Paprocki1017Germany2024-04-20
Jefferson E Bolognia1018Canada2024-04-25
Jones N Foller1019Italy2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh P MarrierRussiaOnyama Limba RENEWAL
Greenwood A ButtRussiaIvan Magalhaes UNQUALIFIED
Clifford T PerinItalyOnyama Limba NEW
Deepesh P RulapaughBrazilIvan Magalhaes QUALIFIED
Silvio P DarakjyUnited KingdomAsiya Javayant PROPOSAL
Ivar U VocelkaItalyOnyama Limba UNQUALIFIED
Johnson W KolmetzItalyAnna Fali NEGOTIATION
Darci S CaudyFranceAmy Elsner NEGOTIATION
Munro R WieserBrazilBernardo Dominic UNQUALIFIED
Wickens E PerinRussiaIoni Bowcher PROPOSAL
Aruna D BowleyIndiaIoni Bowcher UNQUALIFIED
Murillo O ShinkoArgentinaElwin Sharvill NEGOTIATION
Morrow T CaudyArgentinaIvan Magalhaes NEW
Cody O GarufiCanadaOnyama Limba RENEWAL
Jones C AmigonFranceElwin Sharvill QUALIFIED
Izzy A FigeroaGermanyAsiya Javayant NEGOTIATION
Johnson U OstroskyGermanyXuxue Feng RENEWAL
Isabel P FigeroaItalyElwin Sharvill NEW
Jones F GlickItalyAmy Elsner UNQUALIFIED
Munro O WaycottIndiaBernardo Dominic NEW
Munro M ChuiAustraliaAmy Elsner NEW
Wickens T ChuiGermanyAmy Elsner RENEWAL
Mujtaba I DoeSpainAmy Elsner RENEWAL
Jeanfrancois C SchemmerArgentinaAsiya Javayant QUALIFIED
Silvio O CaudyBrazilAmy Elsner UNQUALIFIED
Silvio E SlusarskiAustraliaIoni Bowcher PROPOSAL
Kadeem J ButtCanadaXuxue Feng PROPOSAL
Jeanfrancois F FollerCanadaOnyama Limba PROPOSAL
Octavia E NickaAustraliaAsiya Javayant NEW
Faith R AmigonArgentinaOnyama Limba UNQUALIFIED
Smith B StensethFranceElwin Sharvill UNQUALIFIED
Jeanfrancois A BriddickItalyStephen Shaw NEW
Wickens H AmigonCanadaElwin Sharvill QUALIFIED
Cody D BriddickArgentinaStephen Shaw NEW
Emily M FlosiUnited KingdomElwin Sharvill PROPOSAL
Octavia H AlbaresFranceElwin Sharvill PROPOSAL
Deepesh T RutaItalyElwin Sharvill NEGOTIATION
Arvin Y AmigonJapanAmy Elsner NEW
Emily V WieserJapanBernardo Dominic NEGOTIATION
Stacey V FollerAustraliaBernardo Dominic QUALIFIED

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