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
Ivar J StensethFranceOnyama Limba NEW
Salvatore I RimBrazilAsiya Javayant RENEWAL
Ricardo W RutaBrazilBernardo Dominic RENEWAL
Rodrigues S OstroskyArgentinaXuxue Feng PROPOSAL
Cody J SlusarskiItalyOnyama Limba UNQUALIFIED
Maria P WaycottBrazilAmy Elsner UNQUALIFIED
Jefferson E NestleSpainIvan Magalhaes RENEWAL
Ivar T StensethRussiaXuxue Feng UNQUALIFIED
Claire N OldroydCanadaXuxue Feng QUALIFIED
Salvatore H AmigonJapanAnna Fali PROPOSAL
Maisha M MarrierJapanOnyama Limba PROPOSAL
Ashley Q SchemmerBrazilXuxue Feng NEW
Maisha V RutaRussiaAsiya Javayant RENEWAL
James E WaycottGermanyAnna Fali QUALIFIED
Maria R WieserArgentinaOnyama Limba NEW
Aruna Z WieserIndiaStephen Shaw RENEWAL
Rodrigues V PoquetteCanadaIoni Bowcher PROPOSAL
Leon Y VocelkaGermanyStephen Shaw QUALIFIED
Cody E CampainSpainAnna Fali UNQUALIFIED
Aditya T StockhamBrazilIoni Bowcher NEGOTIATION
Sinclair P ChuiSpainAsiya Javayant RENEWAL
David A RulapaughJapanXuxue Feng NEW
David N OldroydUnited KingdomElwin Sharvill RENEWAL
Julie F KuskoBrazilOnyama Limba NEW
David Z DarakjyBrazilXuxue Feng NEW
Clifford G NestleIndiaBernardo Dominic UNQUALIFIED
Claire I DilliardBrazilOnyama Limba NEGOTIATION
Adams Z CampainCanadaOnyama Limba NEW
Ivar P OldroydRussiaElwin Sharvill NEW
Antonio I NestleGermanyAmy Elsner QUALIFIED
Octavia T CaudyItalyAmy Elsner UNQUALIFIED
Mayumi J BriddickAustraliaElwin Sharvill NEW
Chavez I AmigonCanadaAsiya Javayant UNQUALIFIED
Silvio C ButtIndiaAmy Elsner QUALIFIED
David H ShinkoSpainElwin Sharvill PROPOSAL
Faith Y WaycottAustraliaAmy Elsner RENEWAL
Claire C GauchoAustraliaElwin Sharvill UNQUALIFIED
Stacey L SchemmerFranceElwin Sharvill NEGOTIATION
Francesco B MaletSpainAsiya Javayant QUALIFIED
Rodrigues K VocelkaArgentinaBernardo Dominic RENEWAL
Julie K MaletArgentinaAnna Fali QUALIFIED
Leja P RoysterUnited KingdomStephen Shaw UNQUALIFIED
Sinclair A FerenczBrazilAsiya Javayant PROPOSAL
Octavia Y FlosiUnited KingdomAsiya Javayant UNQUALIFIED
Wickens Q VenereCanadaStephen Shaw NEW
Ivar Q SchemmerFranceOnyama Limba PROPOSAL
Clifford X RoysterAustraliaOnyama Limba NEGOTIATION
Aditya V RulapaughCanadaIoni Bowcher NEGOTIATION
Chavez R GillianSpainIoni Bowcher PROPOSAL
Wickens C MacleadRussiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow U CampainRussiaAmy Elsner NEW
Chavez U DilliardRussiaIoni Bowcher NEGOTIATION
Juan H OstroskyFranceIoni Bowcher RENEWAL
Aruna I FerenczSpainIoni Bowcher QUALIFIED
James L CaudySpainAnna Fali QUALIFIED
Arvin W FerenczSpainOnyama Limba QUALIFIED
Mayumi F FigeroaBrazilXuxue Feng UNQUALIFIED
Morrow U GauchoSpainXuxue Feng QUALIFIED
Costa P AlbaresRussiaAsiya Javayant RENEWAL
Ashley I AlbaresSpainAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo E NestleFrance2024-04-01Benton, John B Jr NEGOTIATION21Anna Fali
1001Kaitlin W SlusarskiIndia2024-04-22Chemel, James L Cpa QUALIFIED46Xuxue Feng
1002Antonio H BriddickIndia2024-04-01King, Christopher A Esq NEW20Amy Elsner
1003Kaitlin T MorascaIndia2024-04-19Benton, John B Jr RENEWAL28Onyama Limba
1004Mayumi A ButtSpain2024-04-04King, Christopher A Esq NEGOTIATION14Bernardo Dominic
1005Morrow A DoeIndia2024-04-10Buckley Miller Wright RENEWAL35Asiya Javayant
1006Ivar P PoquetteBrazil2024-04-04Buckley Miller Wright PROPOSAL57Anna Fali
1007Emily I PerinFrance2024-04-26Benton, John B Jr UNQUALIFIED86Ivan Magalhaes
1008Claire G OldroydSpain2024-04-14Morlong Associates UNQUALIFIED88Ivan Magalhaes
1009Claire K PerinAustralia2024-03-31Rousseaux, Michael Esq PROPOSAL18Bernardo Dominic
1010Isabel K GarufiBrazil2024-04-09King, Christopher A Esq PROPOSAL83Xuxue Feng
1011Alejandro E RutaAustralia2024-03-30Rousseaux, Michael Esq QUALIFIED54Amy Elsner
1012Antonio M MaletItaly2024-04-17Morlong Associates RENEWAL49Anna Fali
1013Maria V NickaSpain2024-04-07Chapman, Ross E Esq RENEWAL45Stephen Shaw
1014Izzy I GauchoUnited Kingdom2024-04-19Commercial Press NEW19Amy Elsner
1015Octavia K VenereBrazil2024-03-31Dorl, James J Esq NEGOTIATION92Amy Elsner
1016Izzy E WaycottSpain2024-04-06Benton, John B Jr NEGOTIATION32Ioni Bowcher
1017Munro U StensethItaly2024-04-08King, Christopher A Esq PROPOSAL16Onyama Limba
1018Morrow F PerinSpain2024-04-04Chemel, James L Cpa NEW47Stephen Shaw
1019Misaki M DoeFrance2024-04-24Chapman, Ross E Esq UNQUALIFIED44Xuxue Feng
1020Ricardo H WaycottIndia2024-04-26Truhlar And Truhlar Attys UNQUALIFIED2Asiya Javayant
1021Misaki C BowleyRussia2024-04-23Rousseaux, Michael Esq NEW45Asiya Javayant
1022Silvio T OldroydUnited Kingdom2024-04-05Buckley Miller Wright UNQUALIFIED38Bernardo Dominic
1023Sinclair E VocelkaBrazil2024-04-18Printing Dimensions PROPOSAL12Amy Elsner
1024Maria Z NestleBrazil2024-04-28Truhlar And Truhlar Attys RENEWAL40Bernardo Dominic
1025Antonio F InouyeArgentina2024-04-28Chemel, James L Cpa UNQUALIFIED27Elwin Sharvill
1026Salvatore T AmigonItaly2024-04-27Feltz Printing Service RENEWAL43Onyama Limba
1027Kadeem F MacleadAustralia2024-04-11Rangoni Of Florence UNQUALIFIED63Ivan Magalhaes
1028Rodrigues N WieserCanada2024-04-08Feltz Printing Service QUALIFIED29Xuxue Feng
1029Isabel O AlbaresJapan2024-04-02Rousseaux, Michael Esq NEGOTIATION20Onyama Limba
1030Ashley N AlbaresArgentina2024-04-27Benton, John B Jr UNQUALIFIED41Onyama Limba
1031Johnson Z DilliardRussia2024-04-15Rousseaux, Michael Esq PROPOSAL18Amy Elsner
1032Octavia R MaletArgentina2024-04-15Chanay, Jeffrey A Esq RENEWAL2Asiya Javayant
1033Maria A CaldareraUnited Kingdom2024-04-16King, Christopher A Esq NEW27Anna Fali
1034Misaki C WhobreyFrance2024-04-20Printing Dimensions NEGOTIATION59Xuxue Feng
1035Maria J BriddickGermany2024-04-17King, Christopher A Esq UNQUALIFIED70Amy Elsner
1036Aruna C FlosiAustralia2024-04-07Morlong Associates QUALIFIED19Elwin Sharvill
1037Aruna E KolmetzArgentina2024-03-30Benton, John B Jr QUALIFIED1Bernardo Dominic
1038Claire R BologniaSpain2024-04-23Chanay, Jeffrey A Esq NEGOTIATION25Xuxue Feng
1039Aruna R RimGermany2024-04-07Chanay, Jeffrey A Esq PROPOSAL11Xuxue Feng
1040Adams M PerinCanada2024-04-05Truhlar And Truhlar Attys PROPOSAL29Asiya Javayant
1041Rodrigues M CampainSpain2024-04-20Chapman, Ross E Esq UNQUALIFIED82Amy Elsner
1042Leon O ShinkoCanada2024-04-20Truhlar And Truhlar Attys PROPOSAL3Ivan Magalhaes
1043Johnson Q FerenczBrazil2024-04-10Buckley Miller Wright NEGOTIATION86Stephen Shaw
1044Wickens P GauchoCanada2024-03-30Chanay, Jeffrey A Esq RENEWAL40Amy Elsner
1045James J KolmetzJapan2024-04-27Feltz Printing Service QUALIFIED3Ioni Bowcher
1046James H RulapaughUnited Kingdom2024-04-10Rousseaux, Michael Esq PROPOSAL80Anna Fali
1047Leja R ButtGermany2024-04-20Commercial Press NEGOTIATION79Asiya Javayant
1048Leja C VenereRussia2024-04-18Buckley Miller Wright UNQUALIFIED97Ivan Magalhaes
1049Silvio A StensethGermany2024-04-14Truhlar And Truhlar Attys UNQUALIFIED64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Juan H ChuiRussiaStephen Shaw UNQUALIFIED
Misaki B RulapaughRussiaIoni Bowcher NEW
Emily F PoquetteRussiaAnna Fali NEGOTIATION
Tony X GillianFranceAmy Elsner NEW
Izzy N AlbaresGermanyBernardo Dominic NEGOTIATION
Maria J BowleyUnited KingdomAnna Fali RENEWAL
Aruna C VocelkaItalyElwin Sharvill UNQUALIFIED
Costa F GlickItalyElwin Sharvill QUALIFIED
Faith I BologniaFranceIoni Bowcher NEW
Antonio K ShinkoBrazilElwin Sharvill UNQUALIFIED
Stacey J NestleGermanyElwin Sharvill PROPOSAL
James A SergiItalyXuxue Feng QUALIFIED
Jones S MarrierItalyOnyama Limba PROPOSAL
Mayumi F WieserGermanyStephen Shaw NEGOTIATION
Deepesh V RimUnited KingdomElwin Sharvill UNQUALIFIED
James Z BriddickAustraliaAmy Elsner NEGOTIATION
Costa N GarufiItalyAnna Fali UNQUALIFIED
Smith O FigeroaGermanyElwin Sharvill PROPOSAL
Ashley O FlosiGermanyAsiya Javayant RENEWAL
Emily W BowleyRussiaOnyama Limba NEW
Mujtaba J StensethItalyStephen Shaw QUALIFIED
Adams Y StensethGermanyAnna Fali NEGOTIATION
Greenwood A FigeroaIndiaAnna Fali NEGOTIATION
Maisha P GauchoUnited KingdomBernardo Dominic NEW
Ricardo S MorascaArgentinaBernardo Dominic PROPOSAL
Ashley M DarakjyBrazilAsiya Javayant UNQUALIFIED
James L NickaBrazilIoni Bowcher NEW
Mayumi W WhobreyItalyXuxue Feng UNQUALIFIED
Murillo S FerenczJapanBernardo Dominic NEGOTIATION
Juan B VocelkaIndiaElwin Sharvill NEGOTIATION
Wickens S OstroskyJapanXuxue Feng RENEWAL
Julie X ShinkoUnited KingdomBernardo Dominic QUALIFIED
Sinclair S InouyeAustraliaIvan Magalhaes QUALIFIED
Julie U OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Silvio K StockhamGermanyOnyama Limba UNQUALIFIED
Munro A CampainItalyElwin Sharvill RENEWAL
Mujtaba H SaylorsArgentinaBernardo Dominic NEW
Darci M NickaArgentinaIoni Bowcher PROPOSAL
Tony P ShinkoCanadaIvan Magalhaes NEGOTIATION
Kaitlin Z SaylorsFranceIoni Bowcher PROPOSAL
Alejandro E MarrierRussiaXuxue Feng QUALIFIED
David L GauchoFranceStephen Shaw NEGOTIATION
Ricardo I ButtItalyAmy Elsner NEGOTIATION
Chavez M PaprockiCanadaXuxue Feng RENEWAL
Silvio M ShinkoItalyXuxue Feng PROPOSAL
Johnson U DarakjySpainAnna Fali NEGOTIATION
Leon Z WaycottItalyOnyama Limba NEGOTIATION
Mujtaba N AmigonRussiaAsiya Javayant QUALIFIED
Claire R KuskoIndiaStephen Shaw NEGOTIATION
Tony A AlbaresArgentinaAsiya Javayant PROPOSAL
Frozen Columns
Name
Ricardo B Butt
Silvio K Shinko
Salvatore N Paprocki
Nicolas M Perin
Johnson Z Maclead
Jones G Garufi
Aditya P Shinko
Smith H Nestle
Kadeem Y Darakjy
Mayumi Z Paprocki
Adams X Whobrey
Murillo B Ostrosky
Ivar G Rim
Isabel Y Ruta
Aika T Dilliard
Morrow S Perin
Murillo L Stockham
Wickens U Venere
Isabel B Gaucho
Jefferson I Doe
Mujtaba P Ostrosky
Adams O Vocelka
Aika I Royster
Tony V Nicka
James F Wieser
Stacey S Caudy
Izzy G Dilliard
Claire K Chui
Morrow S Schemmer
David H Briddick
Ricardo W Stockham
Rodrigues W Ferencz
Costa Y Caudy
Jefferson A Caudy
Aditya S Vocelka
Arvin F Butt
Antonio R Amigon
Stacey C Gillian
Cody T Waycott
Nicolas H Amigon
Morrow H Glick
Jones T Butt
Alejandro H Figeroa
Tony Y Marrier
Nicolas W Caldarera
Aruna O Garufi
Faith M Wieser
Alejandro T Paprocki
Claire Z Amigon
Clifford S Bowley
IdCountryDate
1000Argentina2024-04-19
1001Germany2024-04-23
1002Brazil2024-04-23
1003Germany2024-04-13
1004Brazil2024-04-21
1005Argentina2024-04-09
1006Japan2024-03-31
1007Australia2024-04-05
1008France2024-04-09
1009India2024-04-06
1010United Kingdom2024-04-23
1011Russia2024-04-15
1012Australia2024-04-17
1013Russia2024-04-08
1014Russia2024-04-08
1015Argentina2024-04-17
1016Italy2024-04-24
1017Japan2024-04-20
1018Russia2024-04-12
1019Spain2024-04-28
1020Italy2024-04-04
1021Germany2024-04-21
1022Canada2024-04-19
1023Japan2024-04-15
1024Canada2024-04-10
1025Germany2024-04-20
1026France2024-03-30
1027United Kingdom2024-04-28
1028Spain2024-04-19
1029Italy2024-04-21
1030India2024-04-05
1031Canada2024-04-01
1032Japan2024-04-17
1033Germany2024-04-15
1034India2024-04-17
1035Germany2024-04-05
1036Australia2024-04-15
1037Italy2024-04-13
1038United Kingdom2024-04-05
1039Germany2024-04-15
1040France2024-03-31
1041Spain2024-03-31
1042Brazil2024-04-21
1043Italy2024-04-20
1044Russia2024-04-13
1045Spain2024-04-22
1046Japan2024-04-05
1047Japan2024-03-30
1048United Kingdom2024-04-01
1049Japan2024-04-24

On-Demand Data

NameIdCountryDate
Kaitlin Z Campain1000Canada2024-04-17
Octavia R Bowley1001Italy2024-03-30
Nicolas L Malet1002United Kingdom2024-04-27
Aika U Caudy1003United Kingdom2024-04-14
Ashley H Sergi1004India2024-04-09
Faith O Paprocki1005Italy2024-04-21
Rodrigues S Schemmer1006Germany2024-04-20
Jennifer H Poquette1007Spain2024-04-21
Darci O Briddick1008Germany2024-04-07
Aditya Z Ostrosky1009Canada2024-04-09
Isabel K Marrier1010Germany2024-04-19
Faith G Chui1011United Kingdom2024-04-07
Johnson I Schemmer1012Brazil2024-04-08
Adams D Marrier1013Argentina2024-04-27
Leon E Schemmer1014Italy2024-04-13
Greenwood F Gillian1015France2024-04-25
Ashley A Venere1016Japan2024-04-09
Izzy N Butt1017Spain2024-04-19
Aruna U Foller1018India2024-04-05
Deepesh W Chui1019India2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair I SaylorsRussiaElwin Sharvill NEW
Cody Q DarakjyBrazilXuxue Feng NEW
Smith B PaprockiGermanyIvan Magalhaes QUALIFIED
Alejandro W InouyeIndiaBernardo Dominic RENEWAL
Mayumi F TollnerBrazilAsiya Javayant UNQUALIFIED
Kaitlin N IturbideArgentinaAmy Elsner QUALIFIED
Maria I FerenczRussiaIvan Magalhaes PROPOSAL
Maria M GarufiRussiaStephen Shaw RENEWAL
Adams N ButtAustraliaAnna Fali PROPOSAL
Izzy C CaudyItalyElwin Sharvill RENEWAL
Maria O ChuiUnited KingdomAmy Elsner PROPOSAL
Silvio M MacleadCanadaElwin Sharvill QUALIFIED
Ricardo J FollerGermanyAsiya Javayant NEGOTIATION
Stacey X NickaFranceIvan Magalhaes NEGOTIATION
Stacey T CaudyUnited KingdomBernardo Dominic PROPOSAL
Ricardo C GlickGermanyXuxue Feng QUALIFIED
Kaitlin Z SaylorsRussiaIoni Bowcher NEW
Darci I NestleUnited KingdomOnyama Limba PROPOSAL
Cody M MacleadArgentinaAnna Fali PROPOSAL
Octavia Q FollerCanadaAnna Fali QUALIFIED
Misaki H RulapaughCanadaAnna Fali NEW
Nicolas B TollnerJapanIoni Bowcher UNQUALIFIED
Maria A GauchoBrazilIvan Magalhaes NEW
Maisha O PoquetteGermanyOnyama Limba PROPOSAL
Chavez B VenereGermanyStephen Shaw NEW
Julie N CaudyJapanBernardo Dominic UNQUALIFIED
Chavez R DoeSpainXuxue Feng NEGOTIATION
Antonio Q FlosiAustraliaIvan Magalhaes PROPOSAL
Smith S IturbideArgentinaAmy Elsner RENEWAL
Clifford B StensethArgentinaStephen Shaw PROPOSAL
Adams U PerinIndiaStephen Shaw NEGOTIATION
Alejandro L WhobreyUnited KingdomStephen Shaw QUALIFIED
Ivar U GauchoUnited KingdomElwin Sharvill PROPOSAL
James W WhobreyAustraliaIvan Magalhaes QUALIFIED
Octavia D RoysterRussiaIvan Magalhaes PROPOSAL
Salvatore S GarufiIndiaStephen Shaw PROPOSAL
Maisha Z StockhamFranceAmy Elsner PROPOSAL
Juan U RulapaughBrazilIvan Magalhaes RENEWAL
Aika Z NestleJapanIvan Magalhaes UNQUALIFIED
Smith N BologniaRussiaXuxue Feng 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>