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
Nicolas G MaletAustraliaIoni Bowcher PROPOSAL
Johnson M GillianCanadaElwin Sharvill QUALIFIED
Isabel N WhobreyBrazilXuxue Feng PROPOSAL
Morrow W RutaBrazilAnna Fali QUALIFIED
Rodrigues B SergiGermanyAnna Fali UNQUALIFIED
Leon E CaudyGermanyAmy Elsner UNQUALIFIED
Munro I SergiArgentinaStephen Shaw UNQUALIFIED
Aditya J SlusarskiBrazilElwin Sharvill NEW
Wickens O NickaFranceElwin Sharvill NEGOTIATION
Sinclair K WaycottAustraliaAsiya Javayant UNQUALIFIED
James V WaycottCanadaElwin Sharvill RENEWAL
Antonio K AmigonSpainXuxue Feng UNQUALIFIED
Ivar X AlbaresAustraliaElwin Sharvill PROPOSAL
Faith O AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Adams O ButtAustraliaAmy Elsner QUALIFIED
Cody N VocelkaFranceIvan Magalhaes NEW
Costa P RoysterSpainAsiya Javayant UNQUALIFIED
Nicolas S AmigonAustraliaStephen Shaw PROPOSAL
Aditya Z BologniaItalyIoni Bowcher NEW
Octavia N SergiUnited KingdomAmy Elsner NEW
James O NickaCanadaAsiya Javayant PROPOSAL
Morrow X RimCanadaAsiya Javayant UNQUALIFIED
Costa G FlosiJapanIvan Magalhaes UNQUALIFIED
David B RoysterIndiaElwin Sharvill UNQUALIFIED
Ashley O TollnerJapanAsiya Javayant NEGOTIATION
Chavez U FlosiSpainStephen Shaw NEW
Deepesh S BologniaFranceIoni Bowcher PROPOSAL
Sinclair R RoysterFranceOnyama Limba NEW
Misaki W RutaSpainAmy Elsner RENEWAL
Jones B VocelkaCanadaXuxue Feng NEGOTIATION
Maria G FerenczItalyAmy Elsner NEW
Antonio B FollerFranceAmy Elsner QUALIFIED
Tony G RoysterRussiaElwin Sharvill NEW
Aika Q MacleadRussiaBernardo Dominic NEW
Wickens Y MaletAustraliaIvan Magalhaes NEGOTIATION
Stacey M FerenczGermanyAsiya Javayant UNQUALIFIED
Jennifer Y SaylorsArgentinaIvan Magalhaes QUALIFIED
Aika Q SaylorsCanadaIoni Bowcher PROPOSAL
Salvatore O WaycottAustraliaBernardo Dominic NEW
Misaki W MaletUnited KingdomStephen Shaw UNQUALIFIED
Morrow H FollerItalyStephen Shaw PROPOSAL
Costa B SlusarskiJapanOnyama Limba NEW
Deepesh H FerenczUnited KingdomIoni Bowcher NEGOTIATION
Julie H IturbideUnited KingdomAmy Elsner RENEWAL
Morrow C DoeUnited KingdomBernardo Dominic QUALIFIED
Greenwood L PerinSpainIoni Bowcher NEGOTIATION
Jefferson K BologniaJapanIoni Bowcher UNQUALIFIED
Emily B GillianFranceAsiya Javayant NEW
Costa V FerenczBrazilXuxue Feng NEGOTIATION
Cody N VocelkaItalyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin S CaldareraItalyElwin Sharvill QUALIFIED
Jeanfrancois U MaletJapanStephen Shaw QUALIFIED
Ivar L RutaJapanAmy Elsner PROPOSAL
Cody N TollnerGermanyOnyama Limba UNQUALIFIED
Nicolas C PerinArgentinaStephen Shaw RENEWAL
Nicolas O KuskoJapanBernardo Dominic NEGOTIATION
Nicolas V KuskoItalyStephen Shaw NEGOTIATION
Tony R MaletCanadaBernardo Dominic NEGOTIATION
Costa T FollerIndiaAsiya Javayant NEGOTIATION
Stacey H PaprockiCanadaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro R ShinkoArgentina2024-04-12Chemel, James L Cpa UNQUALIFIED82Xuxue Feng
1001Emily X BologniaSpain2024-04-23Chanay, Jeffrey A Esq UNQUALIFIED79Ioni Bowcher
1002Jefferson Q WaycottBrazil2024-04-03Rousseaux, Michael Esq RENEWAL17Amy Elsner
1003Johnson Z BowleyAustralia2024-04-07Feiner Bros PROPOSAL88Elwin Sharvill
1004Emily X VenereJapan2024-04-12King, Christopher A Esq QUALIFIED17Xuxue Feng
1005Murillo U AmigonUnited Kingdom2024-04-20Rousseaux, Michael Esq NEGOTIATION89Ioni Bowcher
1006Ivar T MacleadArgentina2024-04-22Truhlar And Truhlar Attys PROPOSAL14Onyama Limba
1007Silvio Q RoysterJapan2024-04-14Dorl, James J Esq QUALIFIED45Onyama Limba
1008Octavia A VocelkaIndia2024-04-22Feltz Printing Service QUALIFIED53Xuxue Feng
1009Kadeem Z CaudyCanada2024-04-08Printing Dimensions QUALIFIED45Amy Elsner
1010Kaitlin Q WieserBrazil2024-04-08Benton, John B Jr NEW25Stephen Shaw
1011Octavia S PaprockiUnited Kingdom2024-04-16Chapman, Ross E Esq NEGOTIATION38Amy Elsner
1012Stacey Z GarufiGermany2024-04-06Feltz Printing Service NEW3Stephen Shaw
1013Clifford M RoysterCanada2024-04-02Rousseaux, Michael Esq NEW54Onyama Limba
1014Antonio F CampainArgentina2024-04-14Morlong Associates UNQUALIFIED92Asiya Javayant
1015Alejandro C PerinFrance2024-04-18Chemel, James L Cpa NEW19Ivan Magalhaes
1016Leja Q RoysterIndia2024-04-20Feiner Bros RENEWAL40Anna Fali
1017Kadeem B StockhamAustralia2024-03-26Chapman, Ross E Esq RENEWAL39Stephen Shaw
1018Salvatore T AlbaresArgentina2024-04-11Chemel, James L Cpa NEGOTIATION5Amy Elsner
1019Aika Q StensethRussia2024-04-11Printing Dimensions NEGOTIATION12Stephen Shaw
1020Leon W VocelkaArgentina2024-04-21Printing Dimensions NEGOTIATION24Anna Fali
1021Mayumi U SlusarskiGermany2024-04-10Buckley Miller Wright PROPOSAL27Bernardo Dominic
1022Isabel B GlickFrance2024-04-13Buckley Miller Wright UNQUALIFIED58Xuxue Feng
1023Rodrigues M VenereArgentina2024-04-13Printing Dimensions NEW13Amy Elsner
1024Kadeem L CampainJapan2024-04-10Chanay, Jeffrey A Esq NEW53Anna Fali
1025Leja F AlbaresGermany2024-04-06Chapman, Ross E Esq QUALIFIED63Bernardo Dominic
1026Johnson Q RoysterCanada2024-03-30Benton, John B Jr RENEWAL34Onyama Limba
1027Stacey B RutaItaly2024-04-04Morlong Associates QUALIFIED75Xuxue Feng
1028Jones E MaletIndia2024-03-28Feiner Bros PROPOSAL96Anna Fali
1029Munro X StockhamItaly2024-03-31Feltz Printing Service NEGOTIATION19Ivan Magalhaes
1030Antonio V PoquetteItaly2024-03-30Dorl, James J Esq PROPOSAL32Stephen Shaw
1031Costa G SergiFrance2024-03-28Buckley Miller Wright QUALIFIED52Amy Elsner
1032Juan F SlusarskiGermany2024-04-10Chapman, Ross E Esq QUALIFIED53Stephen Shaw
1033Jeanfrancois I BowleyAustralia2024-04-02Printing Dimensions UNQUALIFIED86Xuxue Feng
1034Leon T SlusarskiBrazil2024-04-17Commercial Press NEW21Onyama Limba
1035Murillo J CaldareraFrance2024-03-29Chemel, James L Cpa PROPOSAL23Ioni Bowcher
1036Stacey F ShinkoBrazil2024-04-20Rousseaux, Michael Esq UNQUALIFIED42Amy Elsner
1037Mujtaba F DoeRussia2024-04-04Rangoni Of Florence NEGOTIATION60Ioni Bowcher
1038Maria T KolmetzUnited Kingdom2024-03-29Buckley Miller Wright PROPOSAL3Ioni Bowcher
1039Mujtaba C StensethUnited Kingdom2024-04-18Rangoni Of Florence PROPOSAL90Onyama Limba
1040Murillo B RulapaughRussia2024-04-15Chapman, Ross E Esq QUALIFIED23Anna Fali
1041Kaitlin Q RimFrance2024-03-29Chanay, Jeffrey A Esq RENEWAL31Stephen Shaw
1042Jennifer G PaprockiAustralia2024-04-09Buckley Miller Wright QUALIFIED32Stephen Shaw
1043Kaitlin P CampainBrazil2024-03-26Buckley Miller Wright PROPOSAL38Xuxue Feng
1044Julie G RutaSpain2024-03-30Chapman, Ross E Esq QUALIFIED66Asiya Javayant
1045Sinclair Y VenereGermany2024-04-15Buckley Miller Wright PROPOSAL79Anna Fali
1046Rodrigues Q DarakjyRussia2024-04-02Feltz Printing Service UNQUALIFIED47Xuxue Feng
1047Wickens A OldroydBrazil2024-03-30Chanay, Jeffrey A Esq RENEWAL54Onyama Limba
1048Darci A MorascaArgentina2024-04-19King, Christopher A Esq PROPOSAL58Elwin Sharvill
1049Jennifer K ShinkoArgentina2024-04-05Dorl, James J Esq QUALIFIED97Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Julie A SergiAustraliaAsiya Javayant QUALIFIED
Emily N OldroydGermanyIvan Magalhaes UNQUALIFIED
Alejandro A IturbideUnited KingdomIoni Bowcher PROPOSAL
Ivar D ButtSpainAnna Fali RENEWAL
Silvio O OldroydAustraliaElwin Sharvill UNQUALIFIED
Ivar L OstroskyArgentinaAnna Fali RENEWAL
Leja L MorascaJapanIvan Magalhaes NEW
Isabel B WaycottItalyIoni Bowcher NEGOTIATION
Emily M MarrierUnited KingdomElwin Sharvill RENEWAL
Mujtaba T DilliardIndiaElwin Sharvill NEW
Aika F RulapaughSpainAsiya Javayant QUALIFIED
Isabel D PerinJapanStephen Shaw RENEWAL
Jennifer C StensethBrazilStephen Shaw NEGOTIATION
Stacey Y MorascaAustraliaXuxue Feng UNQUALIFIED
Mayumi N StockhamItalyOnyama Limba QUALIFIED
Jones X WieserBrazilElwin Sharvill RENEWAL
Aruna S BriddickFranceXuxue Feng RENEWAL
Kadeem N ChuiItalyAsiya Javayant UNQUALIFIED
Kadeem Y SaylorsUnited KingdomAmy Elsner QUALIFIED
Misaki B StensethAustraliaXuxue Feng NEW
Kadeem E GlickJapanBernardo Dominic NEGOTIATION
Izzy Y MaletSpainAsiya Javayant NEW
Maria O WaycottAustraliaOnyama Limba NEW
Aditya V WieserItalyBernardo Dominic RENEWAL
Costa Z SergiItalyElwin Sharvill RENEWAL
Salvatore O RimUnited KingdomAnna Fali RENEWAL
Kaitlin R DoeItalyElwin Sharvill NEW
Rodrigues R RulapaughFranceBernardo Dominic NEW
Aruna I RulapaughAustraliaAsiya Javayant PROPOSAL
Costa C GlickArgentinaBernardo Dominic RENEWAL
Francesco T AmigonArgentinaOnyama Limba QUALIFIED
Murillo P DarakjyFranceXuxue Feng UNQUALIFIED
Munro H RulapaughCanadaOnyama Limba RENEWAL
Smith A SlusarskiCanadaIoni Bowcher NEGOTIATION
Munro I MarrierAustraliaAnna Fali NEW
Deepesh C PoquetteFranceAnna Fali UNQUALIFIED
Alejandro V SlusarskiGermanyAsiya Javayant RENEWAL
Greenwood Q AlbaresFranceIoni Bowcher NEW
Clifford A GarufiAustraliaIoni Bowcher QUALIFIED
Wickens Q BriddickCanadaBernardo Dominic RENEWAL
James E SchemmerItalyOnyama Limba RENEWAL
Silvio B FigeroaFranceAnna Fali PROPOSAL
Claire H BowleyItalyAnna Fali NEW
Nicolas T AlbaresSpainAmy Elsner NEW
Antonio K MacleadAustraliaElwin Sharvill NEW
Leon V BologniaRussiaXuxue Feng PROPOSAL
Julie V VocelkaSpainElwin Sharvill NEW
Julie H WaycottUnited KingdomAsiya Javayant NEW
Johnson L MaletUnited KingdomAsiya Javayant UNQUALIFIED
Izzy E TollnerIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Leon P Morasca
Darci J Wieser
Juan P Butt
David O Gaucho
Misaki K Flosi
Darci E Rulapaugh
Aika Y Morasca
Aruna D Figeroa
Cody P Glick
Greenwood D Glick
Leon H Darakjy
Juan C Garufi
Kaitlin Q Wieser
Salvatore F Iturbide
Maria S Schemmer
Wickens V Dilliard
David S Saylors
James M Paprocki
Jefferson B Stockham
Darci P Glick
Leon N Caudy
Juan X Vocelka
Stacey Y Perin
Jennifer A Doe
Smith U Marrier
Faith I Dilliard
Isabel N Nestle
Ivar A Bowley
Isabel S Foller
Darci P Venere
Cody J Whobrey
Silvio A Iturbide
Leja I Garufi
Izzy O Stockham
Kadeem M Kusko
Alejandro F Slusarski
Greenwood N Stockham
James H Doe
Leon A Malet
Clifford Q Poquette
Cody K Amigon
Murillo P Waycott
Izzy J Glick
Salvatore Q Bowley
James M Kusko
Murillo W Butt
Costa I Whobrey
Aruna H Nicka
Nicolas W Stenseth
Arvin E Malet
IdCountryDate
1000Germany2024-04-05
1001Russia2024-04-06
1002Japan2024-04-06
1003Brazil2024-04-07
1004Germany2024-03-27
1005Japan2024-04-24
1006Spain2024-03-29
1007Canada2024-03-28
1008India2024-04-16
1009Russia2024-04-10
1010India2024-04-23
1011Argentina2024-04-05
1012United Kingdom2024-04-10
1013Australia2024-04-07
1014Spain2024-03-29
1015Italy2024-04-05
1016Spain2024-04-08
1017Italy2024-04-11
1018Japan2024-04-13
1019Brazil2024-04-11
1020Italy2024-04-04
1021Brazil2024-04-19
1022Canada2024-04-14
1023Canada2024-04-13
1024Russia2024-04-14
1025Japan2024-04-21
1026Brazil2024-03-29
1027Italy2024-03-31
1028United Kingdom2024-03-29
1029Argentina2024-04-04
1030Canada2024-03-28
1031Italy2024-04-17
1032Canada2024-04-01
1033Argentina2024-04-22
1034United Kingdom2024-04-17
1035Brazil2024-04-23
1036Australia2024-04-18
1037Canada2024-04-13
1038United Kingdom2024-04-08
1039Germany2024-04-14
1040Russia2024-04-14
1041Japan2024-04-14
1042Italy2024-03-28
1043United Kingdom2024-03-31
1044Brazil2024-04-20
1045France2024-04-14
1046Australia2024-03-28
1047Canada2024-04-05
1048Australia2024-04-02
1049Russia2024-04-21

On-Demand Data

NameIdCountryDate
Maisha G Ruta1000Canada2024-04-23
Francesco X Marrier1001Australia2024-03-29
Emily X Poquette1002France2024-04-01
Izzy J Chui1003Italy2024-04-13
Aika O Whobrey1004India2024-03-30
Faith U Morasca1005Brazil2024-04-17
Adams D Gillian1006Italy2024-04-16
Mujtaba L Bowley1007Germany2024-04-04
Izzy H Maclead1008Argentina2024-04-24
Ivar Y Maclead1009France2024-04-23
Smith D Glick1010Italy2024-04-05
Cody H Albares1011Spain2024-04-19
Izzy L Flosi1012Australia2024-04-16
Ricardo P Rulapaugh1013Canada2024-04-22
Francesco M Gillian1014India2024-04-18
Ricardo G Ostrosky1015Japan2024-03-29
Silvio I Shinko1016India2024-04-11
Chavez V Slusarski1017Canada2024-04-15
Faith E Malet1018Argentina2024-04-06
Aika I Gillian1019United Kingdom2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon C BriddickFranceStephen Shaw PROPOSAL
Silvio E DoeArgentinaStephen Shaw NEGOTIATION
Alejandro H VenereRussiaIvan Magalhaes PROPOSAL
Cody R InouyeItalyIoni Bowcher NEGOTIATION
Chavez P PaprockiIndiaBernardo Dominic NEGOTIATION
Wickens H WieserIndiaStephen Shaw QUALIFIED
Izzy O SlusarskiBrazilAmy Elsner QUALIFIED
Leja O TollnerRussiaIoni Bowcher UNQUALIFIED
Sinclair S InouyeGermanyIoni Bowcher NEGOTIATION
Leon M SaylorsCanadaAsiya Javayant UNQUALIFIED
Maisha M RoysterJapanAsiya Javayant PROPOSAL
Leja W DoeCanadaAnna Fali PROPOSAL
Ricardo L CaldareraFranceElwin Sharvill PROPOSAL
Munro W OldroydIndiaStephen Shaw RENEWAL
Jones R WieserItalyIvan Magalhaes PROPOSAL
James Y WaycottItalyAmy Elsner NEW
Munro V BriddickFranceAmy Elsner RENEWAL
Costa I CaldareraCanadaXuxue Feng QUALIFIED
Arvin O WieserAustraliaIoni Bowcher RENEWAL
James Q MaletBrazilAnna Fali NEGOTIATION
Smith M StockhamFranceAsiya Javayant RENEWAL
Stacey B DoeBrazilAsiya Javayant QUALIFIED
Morrow W PerinFranceAsiya Javayant RENEWAL
Faith V CaudyJapanIvan Magalhaes QUALIFIED
Stacey I WaycottRussiaIoni Bowcher RENEWAL
Octavia F MorascaItalyStephen Shaw UNQUALIFIED
Sinclair R MaletRussiaElwin Sharvill NEW
Arvin N GarufiSpainAnna Fali UNQUALIFIED
Tony L GarufiRussiaStephen Shaw NEGOTIATION
Claire T InouyeItalyAnna Fali NEGOTIATION
Mujtaba A CaudyIndiaIvan Magalhaes RENEWAL
Deepesh D MaletIndiaOnyama Limba UNQUALIFIED
Jennifer K KolmetzSpainAnna Fali RENEWAL
James F WaycottUnited KingdomAnna Fali QUALIFIED
Izzy V PoquetteArgentinaAsiya Javayant QUALIFIED
Jones L OstroskyAustraliaBernardo Dominic PROPOSAL
Jefferson W WaycottBrazilAmy Elsner UNQUALIFIED
Arvin G FollerBrazilBernardo Dominic RENEWAL
Ivar X DarakjyCanadaIvan Magalhaes UNQUALIFIED
Octavia A NickaAustraliaAmy Elsner 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>