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
Johnson F PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Deepesh U FigeroaArgentinaAmy Elsner UNQUALIFIED
Chavez Z FigeroaSpainOnyama Limba RENEWAL
Octavia X GarufiGermanyAmy Elsner RENEWAL
Maria Q VocelkaIndiaAnna Fali PROPOSAL
Greenwood I OstroskyUnited KingdomElwin Sharvill NEW
Izzy H GillianCanadaXuxue Feng QUALIFIED
Rodrigues E DoeAustraliaAmy Elsner NEW
Chavez F GlickBrazilOnyama Limba NEGOTIATION
Rodrigues U GlickRussiaStephen Shaw NEW
Silvio C StensethUnited KingdomElwin Sharvill RENEWAL
Mayumi C PaprockiUnited KingdomOnyama Limba PROPOSAL
Ashley N VocelkaJapanBernardo Dominic PROPOSAL
Munro G MaletCanadaElwin Sharvill QUALIFIED
Misaki K AlbaresFranceStephen Shaw NEW
Ricardo V PerinFranceIvan Magalhaes NEW
Clifford A FlosiIndiaAnna Fali NEGOTIATION
Adams U KuskoRussiaIoni Bowcher NEGOTIATION
Murillo C SlusarskiRussiaAmy Elsner RENEWAL
Kadeem J RulapaughCanadaXuxue Feng UNQUALIFIED
Kaitlin C SlusarskiFranceAmy Elsner RENEWAL
Leja S GlickItalyIoni Bowcher NEW
Johnson K ChuiGermanyXuxue Feng PROPOSAL
Wickens S MarrierArgentinaAnna Fali QUALIFIED
Maria V DilliardAustraliaBernardo Dominic NEW
Johnson K IturbideCanadaIvan Magalhaes NEW
Ivar G WhobreyRussiaAsiya Javayant RENEWAL
Adams P ShinkoFranceAnna Fali QUALIFIED
Maisha A AlbaresFranceIvan Magalhaes NEW
Mayumi X AmigonItalyIoni Bowcher NEW
Smith V PerinIndiaIoni Bowcher PROPOSAL
Mayumi D PaprockiRussiaIoni Bowcher PROPOSAL
Ashley E AlbaresCanadaElwin Sharvill UNQUALIFIED
Octavia L FlosiAustraliaOnyama Limba PROPOSAL
Ricardo V RutaCanadaStephen Shaw RENEWAL
Emily D ButtBrazilIoni Bowcher QUALIFIED
Leja H TollnerIndiaOnyama Limba UNQUALIFIED
Maisha A InouyeAustraliaIvan Magalhaes UNQUALIFIED
Chavez Y RimAustraliaOnyama Limba PROPOSAL
Alejandro L FollerJapanAsiya Javayant NEW
Isabel X AlbaresItalyAnna Fali UNQUALIFIED
Murillo R AmigonIndiaIvan Magalhaes RENEWAL
Tony C StensethAustraliaBernardo Dominic UNQUALIFIED
Izzy G PoquetteRussiaAsiya Javayant PROPOSAL
Kadeem P SaylorsArgentinaAnna Fali UNQUALIFIED
David R MaletSpainAsiya Javayant QUALIFIED
Ivar K GarufiCanadaBernardo Dominic QUALIFIED
Ivar T VocelkaUnited KingdomAmy Elsner NEW
Faith K TollnerCanadaStephen Shaw NEW
Izzy B MarrierGermanyIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody V PerinGermanyIvan Magalhaes UNQUALIFIED
Greenwood S MarrierAustraliaAsiya Javayant NEW
Alejandro G AlbaresBrazilIoni Bowcher QUALIFIED
Maria H ButtRussiaIvan Magalhaes UNQUALIFIED
Octavia J InouyeItalyStephen Shaw QUALIFIED
Silvio G IturbideJapanIvan Magalhaes UNQUALIFIED
Antonio L CampainFranceBernardo Dominic QUALIFIED
Nicolas D KuskoFranceAsiya Javayant NEW
Tony F SchemmerFranceStephen Shaw PROPOSAL
Juan S StockhamArgentinaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois S WhobreySpain2024-04-03Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1001Ricardo R RimUnited Kingdom2024-04-05Dorl, James J Esq QUALIFIED90Elwin Sharvill
1002Adams L SlusarskiJapan2024-04-17Chanay, Jeffrey A Esq NEW14Elwin Sharvill
1003Jones S KuskoIndia2024-04-24Commercial Press NEGOTIATION46Anna Fali
1004Emily G BologniaUnited Kingdom2024-04-04Benton, John B Jr NEW62Asiya Javayant
1005Ricardo K NickaIndia2024-03-31Rousseaux, Michael Esq NEW16Onyama Limba
1006Munro R OldroydGermany2024-04-10Chemel, James L Cpa NEW16Bernardo Dominic
1007Arvin M ShinkoBrazil2024-04-24Printing Dimensions PROPOSAL65Amy Elsner
1008Leon F WieserSpain2024-04-07Feiner Bros UNQUALIFIED15Onyama Limba
1009Munro R FlosiRussia2024-04-25Rangoni Of Florence RENEWAL31Bernardo Dominic
1010Ashley X StensethSpain2024-04-07Chapman, Ross E Esq RENEWAL64Ivan Magalhaes
1011Smith Q VocelkaAustralia2024-04-25King, Christopher A Esq UNQUALIFIED99Ivan Magalhaes
1012Maria B GillianBrazil2024-04-01Feiner Bros NEGOTIATION21Amy Elsner
1013Julie N RoysterSpain2024-04-16Chapman, Ross E Esq PROPOSAL12Ioni Bowcher
1014Costa S BriddickGermany2024-04-09Feiner Bros NEW81Bernardo Dominic
1015Jones R RoysterAustralia2024-04-16Chemel, James L Cpa RENEWAL1Anna Fali
1016Juan U TollnerGermany2024-03-29Dorl, James J Esq QUALIFIED18Ioni Bowcher
1017Jennifer U StockhamUnited Kingdom2024-04-22Feltz Printing Service RENEWAL4Bernardo Dominic
1018Misaki H VenereIndia2024-04-23Chapman, Ross E Esq QUALIFIED28Xuxue Feng
1019Emily E SlusarskiJapan2024-04-19Feiner Bros UNQUALIFIED85Ivan Magalhaes
1020Johnson A DarakjyRussia2024-04-27Morlong Associates PROPOSAL0Anna Fali
1021Murillo G CampainSpain2024-04-09Commercial Press RENEWAL52Onyama Limba
1022Adams W VenereGermany2024-04-09Buckley Miller Wright NEGOTIATION22Ioni Bowcher
1023James A OstroskyCanada2024-04-16Chanay, Jeffrey A Esq UNQUALIFIED81Amy Elsner
1024Francesco M CaudyJapan2024-04-25Truhlar And Truhlar Attys UNQUALIFIED73Anna Fali
1025Ricardo M StockhamAustralia2024-04-09Buckley Miller Wright RENEWAL26Stephen Shaw
1026Aditya H KuskoUnited Kingdom2024-03-29Chemel, James L Cpa NEGOTIATION81Xuxue Feng
1027Mujtaba Q GauchoItaly2024-03-31Benton, John B Jr UNQUALIFIED69Elwin Sharvill
1028Kadeem T OldroydCanada2024-04-01Feiner Bros PROPOSAL44Onyama Limba
1029Greenwood L ChuiGermany2024-04-26Benton, John B Jr QUALIFIED20Onyama Limba
1030Deepesh I NestleCanada2024-04-18Benton, John B Jr UNQUALIFIED36Anna Fali
1031Aruna T VenereIndia2024-04-06Feiner Bros NEW64Bernardo Dominic
1032Aditya K StensethItaly2024-04-23Feltz Printing Service PROPOSAL96Stephen Shaw
1033Faith W InouyeUnited Kingdom2024-04-24Dorl, James J Esq RENEWAL43Amy Elsner
1034Izzy Z FollerSpain2024-03-31Chapman, Ross E Esq NEW83Asiya Javayant
1035Ashley O PaprockiRussia2024-04-24King, Christopher A Esq NEW57Xuxue Feng
1036Arvin D MaletRussia2024-04-18Chapman, Ross E Esq PROPOSAL11Asiya Javayant
1037Emily G StockhamGermany2024-04-14Truhlar And Truhlar Attys NEW1Stephen Shaw
1038Kadeem Q FollerSpain2024-04-06Commercial Press NEGOTIATION75Xuxue Feng
1039Chavez Q CaldareraItaly2024-04-02Feiner Bros NEW67Bernardo Dominic
1040Morrow S SaylorsItaly2024-04-27Chemel, James L Cpa NEGOTIATION19Xuxue Feng
1041Leja C SergiIndia2024-04-05Feltz Printing Service PROPOSAL14Ivan Magalhaes
1042Aika E DoeIndia2024-03-31Truhlar And Truhlar Attys NEW44Ioni Bowcher
1043David L OstroskyBrazil2024-04-12Morlong Associates UNQUALIFIED76Ioni Bowcher
1044Salvatore J KuskoItaly2024-04-12Dorl, James J Esq UNQUALIFIED43Onyama Limba
1045Ricardo K ShinkoItaly2024-04-20King, Christopher A Esq QUALIFIED3Onyama Limba
1046Tony F GlickSpain2024-04-19Chapman, Ross E Esq RENEWAL63Stephen Shaw
1047Octavia D WhobreyJapan2024-04-12Chemel, James L Cpa QUALIFIED49Bernardo Dominic
1048Johnson R CaldareraRussia2024-04-18Dorl, James J Esq RENEWAL80Anna Fali
1049Ivar A OldroydRussia2024-04-19Rousseaux, Michael Esq QUALIFIED87Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Deepesh M StockhamFranceIvan Magalhaes RENEWAL
Kadeem M StensethUnited KingdomElwin Sharvill PROPOSAL
Cody H DarakjyArgentinaIoni Bowcher RENEWAL
Ivar X MaletUnited KingdomXuxue Feng NEW
Tony Q OstroskyBrazilIoni Bowcher NEW
Greenwood U ChuiSpainElwin Sharvill RENEWAL
Francesco X NickaGermanyAsiya Javayant NEGOTIATION
Darci I MacleadSpainElwin Sharvill NEGOTIATION
Maria Q FlosiRussiaBernardo Dominic UNQUALIFIED
Chavez H ButtBrazilIvan Magalhaes QUALIFIED
Arvin Z AmigonItalyAmy Elsner PROPOSAL
Julie P RutaSpainAnna Fali UNQUALIFIED
Octavia H RoysterArgentinaElwin Sharvill PROPOSAL
Chavez D PoquetteBrazilAmy Elsner PROPOSAL
Isabel T PoquetteCanadaXuxue Feng PROPOSAL
Mujtaba Q RulapaughAustraliaElwin Sharvill QUALIFIED
Ivar F StockhamIndiaElwin Sharvill NEGOTIATION
Nicolas V MarrierGermanyAsiya Javayant NEW
Juan D BowleySpainAsiya Javayant RENEWAL
Mujtaba H InouyeIndiaIvan Magalhaes NEGOTIATION
Cody P PoquetteSpainIoni Bowcher UNQUALIFIED
Greenwood W PaprockiSpainAmy Elsner QUALIFIED
Julie D MorascaSpainStephen Shaw PROPOSAL
Misaki C ShinkoSpainAmy Elsner QUALIFIED
Ricardo P StensethIndiaBernardo Dominic UNQUALIFIED
Darci R NestleFranceStephen Shaw QUALIFIED
Alejandro P SergiAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois K NestleCanadaAsiya Javayant QUALIFIED
Claire A DoeGermanyAsiya Javayant UNQUALIFIED
Kadeem B VocelkaAustraliaIoni Bowcher UNQUALIFIED
Nicolas F PoquetteSpainStephen Shaw QUALIFIED
Cody K ChuiArgentinaIvan Magalhaes NEGOTIATION
Maisha E MaletAustraliaXuxue Feng RENEWAL
Munro E PerinFranceXuxue Feng NEW
Adams Z PaprockiSpainElwin Sharvill UNQUALIFIED
Ricardo K RoysterIndiaIvan Magalhaes QUALIFIED
Deepesh H StockhamFranceOnyama Limba PROPOSAL
Munro L PaprockiGermanyAmy Elsner NEGOTIATION
Silvio V MaletItalyElwin Sharvill RENEWAL
Alejandro M PerinJapanAmy Elsner QUALIFIED
Leon X FerenczGermanyAmy Elsner RENEWAL
Maria U MaletFranceStephen Shaw PROPOSAL
Deepesh O VenereFranceElwin Sharvill QUALIFIED
Ashley T FigeroaIndiaIvan Magalhaes UNQUALIFIED
Ricardo T MaletFranceElwin Sharvill QUALIFIED
Murillo I IturbideJapanAsiya Javayant NEW
Emily D GauchoArgentinaIoni Bowcher NEGOTIATION
James X SergiArgentinaBernardo Dominic NEGOTIATION
Aika W BologniaJapanAsiya Javayant UNQUALIFIED
Stacey R PerinBrazilBernardo Dominic PROPOSAL
Frozen Columns
Name
Ashley F Gillian
Leon E Maclead
Murillo J Inouye
Sinclair X Ferencz
Greenwood A Paprocki
Juan Q Royster
Leon U Poquette
Smith I Sergi
Sinclair H Figeroa
Faith I Wieser
Julie P Morasca
Julie M Figeroa
Jones E Bowley
Maisha P Slusarski
Claire I Malet
Misaki N Poquette
Antonio B Campain
Alejandro L Stenseth
Aruna D Iturbide
Tony S Gillian
David F Slusarski
Maria U Whobrey
Aika E Whobrey
Julie O Royster
Stacey E Poquette
Leja P Nestle
Maisha J Morasca
Jones U Nicka
Munro G Caldarera
Misaki E Perin
Costa H Tollner
Tony Q Figeroa
Smith T Ferencz
Darci W Flosi
Darci Z Shinko
James M Rim
Wickens H Chui
Salvatore G Ostrosky
Aika R Rim
Faith Z Nicka
Mujtaba I Caldarera
Aruna A Briddick
Jones F Morasca
Ashley B Nicka
Aruna Z Malet
James M Doe
Maisha D Garufi
Aika L Saylors
David L Perin
Alejandro P Nestle
IdCountryDate
1000Brazil2024-04-16
1001Russia2024-04-17
1002Argentina2024-04-25
1003France2024-04-04
1004Russia2024-04-20
1005India2024-04-25
1006Canada2024-04-01
1007France2024-04-02
1008Russia2024-04-06
1009Canada2024-04-12
1010Russia2024-04-17
1011Brazil2024-04-17
1012France2024-04-19
1013Spain2024-04-03
1014United Kingdom2024-04-27
1015Canada2024-04-20
1016Spain2024-04-02
1017France2024-04-25
1018United Kingdom2024-04-02
1019Italy2024-04-06
1020Spain2024-04-23
1021Argentina2024-04-27
1022Argentina2024-04-05
1023Italy2024-04-14
1024Russia2024-04-26
1025Japan2024-04-08
1026India2024-04-23
1027Japan2024-04-20
1028United Kingdom2024-04-12
1029India2024-04-06
1030Spain2024-03-30
1031Australia2024-04-26
1032Canada2024-04-11
1033Australia2024-04-09
1034Brazil2024-04-13
1035Russia2024-04-20
1036Canada2024-04-07
1037Canada2024-04-13
1038India2024-04-11
1039Russia2024-03-31
1040Canada2024-04-25
1041Australia2024-04-24
1042Canada2024-04-13
1043Canada2024-03-31
1044Spain2024-04-13
1045Brazil2024-04-17
1046Italy2024-04-14
1047Italy2024-03-31
1048Japan2024-03-29
1049Canada2024-03-29

On-Demand Data

NameIdCountryDate
Jones K Dilliard1000Spain2024-04-01
Antonio D Amigon1001Spain2024-04-02
Mayumi H Darakjy1002France2024-04-06
David H Darakjy1003France2024-04-22
Clifford X Garufi1004Argentina2024-04-13
Tony D Whobrey1005India2024-04-15
Aruna W Whobrey1006Germany2024-04-20
Jones G Maclead1007Japan2024-04-14
Octavia F Perin1008Argentina2024-04-01
Isabel H Amigon1009Japan2024-04-13
Wickens B Gillian1010India2024-04-26
Adams H Nicka1011Italy2024-04-07
Silvio F Briddick1012France2024-04-22
Kadeem T Bolognia1013France2024-04-11
Aika U Albares1014Japan2024-04-14
Aditya Q Shinko1015India2024-04-19
Kaitlin A Poquette1016Argentina2024-04-12
Antonio N Perin1017Germany2024-04-05
Ashley Q Poquette1018Argentina2024-04-27
Emily B Campain1019Spain2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony I PoquetteUnited KingdomXuxue Feng QUALIFIED
Emily X BowleyFranceElwin Sharvill RENEWAL
Mayumi Z ChuiCanadaBernardo Dominic UNQUALIFIED
Smith H GlickItalyStephen Shaw UNQUALIFIED
Misaki H WieserArgentinaIvan Magalhaes PROPOSAL
Jefferson U BowleyCanadaBernardo Dominic QUALIFIED
Jeanfrancois F StensethRussiaAmy Elsner PROPOSAL
Julie H OldroydArgentinaIoni Bowcher QUALIFIED
Nicolas P TollnerFranceXuxue Feng NEW
Greenwood D DoeCanadaAmy Elsner PROPOSAL
Cody L FlosiGermanyStephen Shaw NEGOTIATION
Isabel Q DarakjyAustraliaAnna Fali NEW
Kaitlin Q WhobreyItalyIvan Magalhaes UNQUALIFIED
Julie T InouyeCanadaIvan Magalhaes UNQUALIFIED
Antonio P MorascaFranceAmy Elsner RENEWAL
Izzy J StockhamUnited KingdomXuxue Feng PROPOSAL
Ivar E SaylorsRussiaAnna Fali QUALIFIED
Clifford D KolmetzArgentinaBernardo Dominic NEW
Aruna Q SchemmerAustraliaStephen Shaw NEGOTIATION
Jones C SlusarskiIndiaStephen Shaw UNQUALIFIED
Adams L SaylorsUnited KingdomBernardo Dominic RENEWAL
Octavia Q GarufiRussiaStephen Shaw RENEWAL
Aruna Y FigeroaFranceAsiya Javayant RENEWAL
Wickens B SlusarskiJapanIvan Magalhaes PROPOSAL
Rodrigues B NestleCanadaAmy Elsner PROPOSAL
Clifford P AlbaresJapanElwin Sharvill PROPOSAL
Francesco M RimArgentinaAmy Elsner UNQUALIFIED
Sinclair Q PoquetteAustraliaOnyama Limba NEGOTIATION
Alejandro N FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Cody D OstroskyFranceElwin Sharvill NEGOTIATION
Mayumi V BriddickGermanyIoni Bowcher NEGOTIATION
Octavia O PaprockiGermanyOnyama Limba NEW
Antonio I PerinBrazilAnna Fali RENEWAL
Adams R MacleadCanadaOnyama Limba QUALIFIED
Aruna L MaletAustraliaOnyama Limba NEGOTIATION
Clifford Q KolmetzUnited KingdomStephen Shaw QUALIFIED
Maisha H WhobreyJapanIoni Bowcher PROPOSAL
Adams B OldroydFranceAnna Fali PROPOSAL
Mujtaba A NestleRussiaIoni Bowcher NEGOTIATION
Ivar G IturbideFranceAmy Elsner UNQUALIFIED

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