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 U MarrierRussiaOnyama Limba NEW
Johnson R StockhamAustraliaXuxue Feng UNQUALIFIED
Munro B KuskoBrazilAnna Fali RENEWAL
Leon M WaycottAustraliaStephen Shaw PROPOSAL
Wickens Q SlusarskiGermanyBernardo Dominic UNQUALIFIED
James U FlosiIndiaIoni Bowcher RENEWAL
Isabel Y MaletIndiaXuxue Feng PROPOSAL
James X DoeRussiaAsiya Javayant QUALIFIED
Isabel I KuskoCanadaElwin Sharvill PROPOSAL
Aruna W GlickUnited KingdomOnyama Limba RENEWAL
Maisha E FollerBrazilStephen Shaw RENEWAL
Ashley J BowleyBrazilAmy Elsner PROPOSAL
Claire X TollnerUnited KingdomAnna Fali UNQUALIFIED
Kadeem Z MaletAustraliaAmy Elsner PROPOSAL
Leja Z FerenczJapanXuxue Feng RENEWAL
Alejandro K ShinkoJapanIvan Magalhaes NEGOTIATION
Clifford M ButtFranceIoni Bowcher NEW
Rodrigues Z SaylorsGermanyAsiya Javayant NEW
Deepesh S MarrierAustraliaAmy Elsner PROPOSAL
Clifford R MarrierSpainStephen Shaw UNQUALIFIED
Sinclair J SchemmerCanadaXuxue Feng UNQUALIFIED
Morrow T RimAustraliaAnna Fali NEW
Kadeem I MaletFranceElwin Sharvill NEGOTIATION
Cody D IturbideFranceIvan Magalhaes RENEWAL
Antonio G CampainSpainAsiya Javayant RENEWAL
James N GillianArgentinaElwin Sharvill UNQUALIFIED
Salvatore U InouyeGermanyBernardo Dominic QUALIFIED
Leon X VocelkaBrazilAmy Elsner QUALIFIED
Aika V WaycottAustraliaAmy Elsner UNQUALIFIED
Tony X SergiUnited KingdomBernardo Dominic NEGOTIATION
Sinclair Y KolmetzJapanXuxue Feng PROPOSAL
Darci T CaldareraAustraliaStephen Shaw NEGOTIATION
Murillo V SchemmerBrazilIoni Bowcher NEGOTIATION
Aditya T RutaBrazilBernardo Dominic NEW
Julie V CaldareraAustraliaOnyama Limba RENEWAL
Claire V NickaSpainAsiya Javayant NEW
Jones E BologniaSpainAnna Fali PROPOSAL
David P WieserArgentinaOnyama Limba NEGOTIATION
Munro D BologniaJapanAsiya Javayant QUALIFIED
Jefferson U GlickItalyElwin Sharvill QUALIFIED
Costa K OstroskyAustraliaElwin Sharvill RENEWAL
Salvatore G BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas K MaletGermanyIvan Magalhaes NEW
Mujtaba O VocelkaBrazilBernardo Dominic NEGOTIATION
Wickens E NestleCanadaAnna Fali RENEWAL
David R PerinUnited KingdomXuxue Feng NEW
James F GillianGermanyAnna Fali PROPOSAL
Juan K GillianRussiaAnna Fali QUALIFIED
Cody H CaldareraItalyAsiya Javayant NEGOTIATION
Ricardo J GarufiBrazilStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley D KolmetzJapanAnna Fali QUALIFIED
Maisha T RulapaughCanadaIoni Bowcher UNQUALIFIED
Sinclair A DarakjyJapanElwin Sharvill UNQUALIFIED
Greenwood T IturbideItalyIoni Bowcher RENEWAL
Ashley W FlosiBrazilAmy Elsner PROPOSAL
Francesco V VocelkaSpainAmy Elsner RENEWAL
Francesco H FigeroaAustraliaIoni Bowcher NEW
Aditya M OstroskySpainOnyama Limba PROPOSAL
Ricardo X FerenczCanadaIoni Bowcher NEGOTIATION
Mujtaba K SchemmerSpainAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith W RulapaughSpain2024-05-02Rangoni Of Florence QUALIFIED8Asiya Javayant
1001Jeanfrancois F RimFrance2024-04-21Commercial Press RENEWAL37Ioni Bowcher
1002Costa V CaudyGermany2024-04-25Chanay, Jeffrey A Esq PROPOSAL62Amy Elsner
1003Kaitlin G GillianArgentina2024-04-22Benton, John B Jr QUALIFIED70Onyama Limba
1004Misaki L MarrierRussia2024-04-27King, Christopher A Esq NEW43Elwin Sharvill
1005Clifford Y CaudySpain2024-04-09Dorl, James J Esq UNQUALIFIED12Stephen Shaw
1006Murillo X MarrierFrance2024-04-26King, Christopher A Esq NEGOTIATION26Anna Fali
1007Antonio N DilliardIndia2024-04-17Commercial Press PROPOSAL69Anna Fali
1008Stacey H BriddickAustralia2024-04-16Truhlar And Truhlar Attys UNQUALIFIED79Xuxue Feng
1009Silvio X MorascaFrance2024-04-16Truhlar And Truhlar Attys UNQUALIFIED42Ioni Bowcher
1010Maria V TollnerUnited Kingdom2024-04-17Chapman, Ross E Esq PROPOSAL41Onyama Limba
1011Rodrigues G MarrierJapan2024-04-20Buckley Miller Wright QUALIFIED53Xuxue Feng
1012Aika C NestleJapan2024-05-02Chapman, Ross E Esq NEGOTIATION70Onyama Limba
1013James Y ChuiCanada2024-04-30Rangoni Of Florence NEGOTIATION30Anna Fali
1014Cody L KolmetzItaly2024-04-12Morlong Associates NEW91Ivan Magalhaes
1015Mujtaba Q MaletIndia2024-04-11Dorl, James J Esq NEGOTIATION69Asiya Javayant
1016Sinclair S PoquetteBrazil2024-04-06Benton, John B Jr NEGOTIATION70Bernardo Dominic
1017James P FlosiUnited Kingdom2024-04-29Morlong Associates RENEWAL99Xuxue Feng
1018Octavia I CampainUnited Kingdom2024-04-23Rangoni Of Florence UNQUALIFIED36Xuxue Feng
1019James R WieserRussia2024-04-28Chapman, Ross E Esq NEW9Xuxue Feng
1020Isabel P DilliardRussia2024-04-18Buckley Miller Wright NEW9Stephen Shaw
1021David O VenereGermany2024-04-20Buckley Miller Wright UNQUALIFIED46Xuxue Feng
1022Deepesh H FigeroaItaly2024-04-10Rangoni Of Florence PROPOSAL38Asiya Javayant
1023Juan C TollnerItaly2024-04-25Commercial Press NEGOTIATION19Bernardo Dominic
1024Johnson I BowleyCanada2024-04-15Chapman, Ross E Esq NEW3Amy Elsner
1025Julie N RutaFrance2024-04-17Dorl, James J Esq NEW81Bernardo Dominic
1026James Y ChuiBrazil2024-04-29Morlong Associates NEGOTIATION11Onyama Limba
1027Jefferson H VenereItaly2024-04-21Chanay, Jeffrey A Esq PROPOSAL93Elwin Sharvill
1028Kadeem O WhobreyJapan2024-04-25Truhlar And Truhlar Attys RENEWAL22Stephen Shaw
1029Jeanfrancois C FollerItaly2024-04-05Chemel, James L Cpa QUALIFIED25Elwin Sharvill
1030Morrow M BriddickGermany2024-04-13Truhlar And Truhlar Attys PROPOSAL42Asiya Javayant
1031Morrow I BriddickRussia2024-04-29Dorl, James J Esq QUALIFIED22Elwin Sharvill
1032Izzy A MacleadUnited Kingdom2024-04-15Rangoni Of Florence NEGOTIATION48Amy Elsner
1033James V PoquetteIndia2024-04-13Feiner Bros RENEWAL46Bernardo Dominic
1034Smith Y MacleadRussia2024-04-16Truhlar And Truhlar Attys NEGOTIATION36Ioni Bowcher
1035Chavez S FigeroaArgentina2024-04-20Chapman, Ross E Esq RENEWAL36Xuxue Feng
1036Claire H OstroskyArgentina2024-05-04Dorl, James J Esq UNQUALIFIED1Ivan Magalhaes
1037Jefferson V FerenczItaly2024-04-28Buckley Miller Wright UNQUALIFIED40Xuxue Feng
1038Aika P DoeAustralia2024-05-04Chanay, Jeffrey A Esq QUALIFIED18Asiya Javayant
1039Mayumi P FigeroaAustralia2024-04-28Rousseaux, Michael Esq NEW35Xuxue Feng
1040Smith E OstroskyItaly2024-04-29Feltz Printing Service QUALIFIED5Stephen Shaw
1041Chavez M SaylorsJapan2024-04-29Buckley Miller Wright UNQUALIFIED33Ivan Magalhaes
1042Mujtaba J NestleItaly2024-04-22Buckley Miller Wright RENEWAL81Bernardo Dominic
1043Tony G CampainJapan2024-04-06Chanay, Jeffrey A Esq QUALIFIED4Asiya Javayant
1044Stacey P MorascaGermany2024-04-07Commercial Press UNQUALIFIED87Anna Fali
1045Aditya E SchemmerGermany2024-04-08Rousseaux, Michael Esq PROPOSAL50Xuxue Feng
1046Julie V AmigonAustralia2024-04-20Feltz Printing Service NEGOTIATION87Stephen Shaw
1047Francesco D BowleyArgentina2024-04-14King, Christopher A Esq RENEWAL21Onyama Limba
1048Nicolas F StensethGermany2024-04-09Benton, John B Jr RENEWAL28Bernardo Dominic
1049Leja U MacleadItaly2024-04-26Morlong Associates RENEWAL55Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Francesco B PoquetteJapanIoni Bowcher NEW
Tony C SchemmerSpainAsiya Javayant NEGOTIATION
Francesco F CaldareraBrazilXuxue Feng QUALIFIED
Alejandro J BowleyGermanyIvan Magalhaes UNQUALIFIED
Emily X CaldareraFranceAsiya Javayant NEW
Adams H BologniaSpainAsiya Javayant UNQUALIFIED
Juan A VenereGermanyAnna Fali NEGOTIATION
Aika J ButtUnited KingdomIoni Bowcher UNQUALIFIED
Murillo M NickaIndiaAnna Fali NEGOTIATION
Johnson L BriddickItalyElwin Sharvill NEW
Nicolas I FlosiItalyElwin Sharvill NEGOTIATION
Alejandro E AlbaresUnited KingdomIoni Bowcher QUALIFIED
Emily A PerinRussiaAnna Fali QUALIFIED
Chavez T FerenczFranceIoni Bowcher RENEWAL
Leja V DarakjyBrazilAsiya Javayant UNQUALIFIED
Kaitlin P OstroskyJapanBernardo Dominic QUALIFIED
David Q KolmetzGermanyOnyama Limba PROPOSAL
Mujtaba J CaldareraJapanAsiya Javayant PROPOSAL
Costa Z CaldareraFranceOnyama Limba RENEWAL
Ashley W FerenczRussiaIoni Bowcher NEW
Faith M RimIndiaIvan Magalhaes RENEWAL
Jones N PaprockiCanadaAsiya Javayant QUALIFIED
Emily Z StensethJapanOnyama Limba UNQUALIFIED
Leja H MarrierArgentinaBernardo Dominic NEGOTIATION
Faith S CampainSpainStephen Shaw UNQUALIFIED
Chavez O OstroskyItalyBernardo Dominic UNQUALIFIED
Emily G AlbaresCanadaXuxue Feng RENEWAL
Izzy D GauchoJapanIvan Magalhaes RENEWAL
Chavez R WaycottSpainBernardo Dominic NEGOTIATION
Jennifer E IturbideArgentinaStephen Shaw PROPOSAL
Misaki B BowleyIndiaStephen Shaw NEGOTIATION
Izzy J StensethSpainXuxue Feng NEW
Francesco J AmigonSpainStephen Shaw NEGOTIATION
Francesco U DilliardArgentinaOnyama Limba NEGOTIATION
Emily J MaletUnited KingdomIoni Bowcher QUALIFIED
Rodrigues O RoysterJapanAnna Fali QUALIFIED
Stacey E KuskoItalyAnna Fali NEGOTIATION
Clifford E GauchoBrazilBernardo Dominic UNQUALIFIED
Ashley Z AmigonRussiaIvan Magalhaes NEW
Ashley G BriddickIndiaIvan Magalhaes NEW
Nicolas B ShinkoAustraliaBernardo Dominic NEGOTIATION
Smith L VocelkaSpainXuxue Feng UNQUALIFIED
Isabel P GillianCanadaAnna Fali PROPOSAL
Mayumi Z SergiJapanAmy Elsner NEW
Salvatore Q StensethBrazilIoni Bowcher RENEWAL
Juan H VenereGermanyAnna Fali UNQUALIFIED
Cody H CampainSpainAnna Fali NEGOTIATION
Ashley H GillianItalyAnna Fali NEW
Munro B VocelkaUnited KingdomElwin Sharvill PROPOSAL
Ricardo P WhobreyRussiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Chavez G Paprocki
Misaki N Bolognia
Izzy Y Oldroyd
Chavez E Darakjy
David N Oldroyd
Wickens I Royster
Morrow K Whobrey
Ashley W Ostrosky
Jefferson G Vocelka
Arvin D Kolmetz
Arvin R Glick
Claire I Whobrey
Jones L Tollner
Emily X Malet
Adams G Royster
Morrow R Kolmetz
Ivar V Paprocki
Morrow K Waycott
Aruna W Malet
Maria L Stockham
Ricardo F Doe
Kadeem L Venere
Mujtaba V Ostrosky
Tony X Venere
Ivar Z Briddick
Misaki N Saylors
Claire T Nestle
Izzy R Kusko
James S Caudy
Maria B Schemmer
Ricardo I Malet
James D Nicka
Munro T Foller
Maisha A Campain
Ivar N Vocelka
Nicolas E Ruta
Greenwood B Kusko
Julie I Amigon
Aika Z Darakjy
Sinclair I Stockham
Antonio Y Glick
Darci G Ruta
Tony K Campain
Mujtaba Y Saylors
Isabel Y Kusko
Kaitlin J Royster
Smith B Foller
Costa M Paprocki
Jefferson O Iturbide
Murillo S Nicka
IdCountryDate
1000India2024-04-15
1001France2024-04-05
1002Canada2024-04-19
1003France2024-04-14
1004Russia2024-04-21
1005Brazil2024-04-24
1006Spain2024-04-08
1007United Kingdom2024-04-14
1008France2024-04-21
1009France2024-04-13
1010Russia2024-04-23
1011Italy2024-04-20
1012Japan2024-04-28
1013Spain2024-04-20
1014Japan2024-04-22
1015Argentina2024-04-27
1016Italy2024-04-27
1017Spain2024-05-02
1018Brazil2024-05-03
1019Brazil2024-04-09
1020Germany2024-04-16
1021Italy2024-04-06
1022Argentina2024-04-30
1023United Kingdom2024-04-08
1024Argentina2024-04-30
1025Australia2024-05-02
1026Canada2024-04-05
1027France2024-04-16
1028Spain2024-04-25
1029United Kingdom2024-04-07
1030Canada2024-04-29
1031Argentina2024-04-14
1032Spain2024-04-16
1033Germany2024-04-13
1034Argentina2024-04-15
1035Germany2024-04-17
1036Canada2024-04-28
1037France2024-04-17
1038Brazil2024-05-03
1039Argentina2024-05-04
1040Brazil2024-04-29
1041India2024-05-01
1042Japan2024-04-16
1043Spain2024-04-13
1044Brazil2024-05-03
1045Argentina2024-04-13
1046Canada2024-04-12
1047Brazil2024-04-06
1048Germany2024-04-17
1049Germany2024-04-23

On-Demand Data

NameIdCountryDate
Aditya L Rulapaugh1000United Kingdom2024-04-25
David A Slusarski1001Australia2024-04-22
Izzy O Stenseth1002Canada2024-04-17
Jefferson O Venere1003Canada2024-04-12
Cody O Caudy1004India2024-04-23
James X Caldarera1005Italy2024-05-01
Arvin Y Royster1006France2024-05-04
Alejandro M Perin1007Spain2024-04-10
Darci V Wieser1008Russia2024-04-21
Izzy M Maclead1009India2024-04-19
Ivar H Slusarski1010Argentina2024-04-22
Stacey U Albares1011Spain2024-04-29
Cody Q Perin1012Argentina2024-05-02
Juan P Chui1013Germany2024-05-03
Costa K Shinko1014Canada2024-04-20
Jennifer O Royster1015Brazil2024-04-11
Maisha F Shinko1016Argentina2024-04-11
Juan C Royster1017United Kingdom2024-04-06
Darci V Figeroa1018Spain2024-04-07
Arvin R Schemmer1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams R AmigonArgentinaAmy Elsner QUALIFIED
Leon B OldroydRussiaBernardo Dominic PROPOSAL
Misaki J NestleJapanStephen Shaw QUALIFIED
Emily H VenereAustraliaIvan Magalhaes QUALIFIED
Murillo B FlosiUnited KingdomIoni Bowcher NEGOTIATION
James I MaletUnited KingdomElwin Sharvill QUALIFIED
Greenwood G AmigonItalyIoni Bowcher PROPOSAL
Munro U ShinkoGermanyOnyama Limba QUALIFIED
Chavez M OstroskyJapanAsiya Javayant NEW
Juan P FerenczCanadaAsiya Javayant NEGOTIATION
Leja T ButtFranceElwin Sharvill NEW
Chavez X ShinkoArgentinaIoni Bowcher NEGOTIATION
Johnson J GarufiUnited KingdomOnyama Limba PROPOSAL
Ashley O FerenczIndiaIvan Magalhaes QUALIFIED
Jeanfrancois F WieserRussiaAmy Elsner NEW
Juan T BriddickRussiaBernardo Dominic RENEWAL
Aruna K MorascaSpainAsiya Javayant NEGOTIATION
Jefferson Q DarakjyIndiaAsiya Javayant NEW
Ricardo E IturbideArgentinaAsiya Javayant PROPOSAL
Maisha B CaudyArgentinaIoni Bowcher UNQUALIFIED
Chavez B ButtCanadaAsiya Javayant NEW
Mayumi A DoeFranceAsiya Javayant NEW
Claire A NickaArgentinaXuxue Feng NEGOTIATION
Munro R PaprockiRussiaIvan Magalhaes NEGOTIATION
Munro L PaprockiIndiaXuxue Feng NEW
Rodrigues X MaletIndiaAmy Elsner NEW
Ricardo T MacleadBrazilOnyama Limba RENEWAL
Wickens C CampainRussiaBernardo Dominic NEGOTIATION
Silvio S RulapaughBrazilIvan Magalhaes UNQUALIFIED
Jones T MorascaUnited KingdomIvan Magalhaes NEW
Isabel Q GlickItalyXuxue Feng UNQUALIFIED
Salvatore V ButtSpainStephen Shaw UNQUALIFIED
Costa L TollnerCanadaAsiya Javayant RENEWAL
James O GillianIndiaIoni Bowcher RENEWAL
Jeanfrancois K IturbideSpainOnyama Limba PROPOSAL
Tony M CaldareraRussiaOnyama Limba PROPOSAL
Chavez H GillianUnited KingdomAnna Fali PROPOSAL
Leja H MorascaCanadaIoni Bowcher NEW
Darci B InouyeAustraliaAnna Fali NEGOTIATION
Arvin F IturbideIndiaElwin Sharvill PROPOSAL

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