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
Wickens D TollnerBrazilStephen Shaw RENEWAL
Octavia L OstroskyBrazilAnna Fali NEGOTIATION
Claire U SlusarskiSpainAnna Fali NEW
David Z MacleadBrazilIvan Magalhaes UNQUALIFIED
Jones Z FigeroaArgentinaIvan Magalhaes NEW
Kadeem M MacleadUnited KingdomOnyama Limba NEW
Francesco E BologniaBrazilOnyama Limba NEW
Adams P CaudyJapanAmy Elsner RENEWAL
Julie B RulapaughFranceElwin Sharvill UNQUALIFIED
Kaitlin W NestleSpainIoni Bowcher QUALIFIED
Emily K DilliardGermanyAmy Elsner NEGOTIATION
Aditya F PaprockiGermanyIvan Magalhaes NEGOTIATION
Aruna Y RoysterSpainAnna Fali NEGOTIATION
Stacey R MaletIndiaOnyama Limba PROPOSAL
Emily U OstroskyGermanyIoni Bowcher UNQUALIFIED
Wickens Z AmigonItalyElwin Sharvill QUALIFIED
Aika K VenereAustraliaBernardo Dominic PROPOSAL
Aditya U DarakjyArgentinaXuxue Feng RENEWAL
Faith I RutaFranceElwin Sharvill NEGOTIATION
Adams N StensethBrazilXuxue Feng NEW
Claire J NickaSpainStephen Shaw UNQUALIFIED
Sinclair L ButtRussiaBernardo Dominic UNQUALIFIED
Aika G ButtJapanIvan Magalhaes QUALIFIED
Rodrigues B FigeroaArgentinaXuxue Feng NEGOTIATION
Kadeem Y GillianJapanXuxue Feng NEGOTIATION
Wickens P StensethItalyIvan Magalhaes UNQUALIFIED
Alejandro V SlusarskiRussiaBernardo Dominic UNQUALIFIED
Johnson P DarakjyArgentinaOnyama Limba UNQUALIFIED
Leja B OstroskyIndiaElwin Sharvill NEGOTIATION
Nicolas W SaylorsFranceStephen Shaw RENEWAL
Emily W KuskoRussiaElwin Sharvill NEW
Jennifer A VocelkaIndiaIvan Magalhaes NEGOTIATION
Ashley I CampainBrazilAmy Elsner UNQUALIFIED
Izzy G MaletItalyAmy Elsner NEGOTIATION
Jennifer K CaldareraJapanIoni Bowcher UNQUALIFIED
Maria K DilliardAustraliaStephen Shaw NEGOTIATION
Leon T TollnerRussiaOnyama Limba UNQUALIFIED
Deepesh Q RimAustraliaAnna Fali UNQUALIFIED
David R TollnerGermanyStephen Shaw UNQUALIFIED
Clifford F FigeroaSpainIoni Bowcher NEW
Faith I CaldareraArgentinaBernardo Dominic RENEWAL
Chavez N NestleFranceIoni Bowcher NEW
Antonio B WieserUnited KingdomElwin Sharvill UNQUALIFIED
Ivar K AmigonCanadaIoni Bowcher PROPOSAL
Alejandro U NestleRussiaAsiya Javayant RENEWAL
Claire N ButtGermanyIoni Bowcher QUALIFIED
Murillo V InouyeRussiaOnyama Limba NEGOTIATION
Isabel Q TollnerRussiaBernardo Dominic QUALIFIED
Darci P ShinkoArgentinaBernardo Dominic RENEWAL
Claire S CaudyBrazilOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens V BriddickItalyAsiya Javayant RENEWAL
Jefferson O AmigonAustraliaStephen Shaw NEGOTIATION
Claire M VocelkaIndiaOnyama Limba UNQUALIFIED
Costa M AmigonBrazilOnyama Limba QUALIFIED
Greenwood E SaylorsFranceOnyama Limba NEGOTIATION
Isabel D DilliardIndiaElwin Sharvill PROPOSAL
Mujtaba H AmigonJapanAnna Fali NEGOTIATION
Alejandro T WaycottCanadaAmy Elsner QUALIFIED
Antonio T ButtUnited KingdomXuxue Feng QUALIFIED
Costa W InouyeArgentinaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna U OldroydJapan2024-03-28Dorl, James J Esq NEGOTIATION17Elwin Sharvill
1001Costa E TollnerCanada2024-04-14Chemel, James L Cpa RENEWAL15Xuxue Feng
1002Deepesh X GillianGermany2024-04-10Chanay, Jeffrey A Esq PROPOSAL92Amy Elsner
1003Greenwood V WieserUnited Kingdom2024-04-03Printing Dimensions UNQUALIFIED76Amy Elsner
1004James W FigeroaCanada2024-04-08Feiner Bros NEGOTIATION59Xuxue Feng
1005Chavez M SlusarskiAustralia2024-03-31Benton, John B Jr PROPOSAL96Amy Elsner
1006Aruna O StensethCanada2024-03-30Morlong Associates RENEWAL96Elwin Sharvill
1007Cody O DilliardAustralia2024-04-03Dorl, James J Esq RENEWAL75Onyama Limba
1008Greenwood N FollerUnited Kingdom2024-04-03Benton, John B Jr UNQUALIFIED49Ioni Bowcher
1009Misaki N RutaFrance2024-03-22Chanay, Jeffrey A Esq PROPOSAL45Xuxue Feng
1010Costa N FlosiUnited Kingdom2024-03-24Rousseaux, Michael Esq RENEWAL53Amy Elsner
1011Jeanfrancois Y DarakjyAustralia2024-04-07Feltz Printing Service NEW94Bernardo Dominic
1012Aruna W FollerJapan2024-04-09Chemel, James L Cpa NEGOTIATION41Anna Fali
1013Izzy Z CaldareraFrance2024-04-08Rousseaux, Michael Esq RENEWAL31Onyama Limba
1014Stacey A RimGermany2024-04-15Commercial Press NEW68Ivan Magalhaes
1015Stacey A VocelkaArgentina2024-04-05Morlong Associates PROPOSAL89Onyama Limba
1016Aika D CampainCanada2024-03-26Feltz Printing Service QUALIFIED51Ivan Magalhaes
1017Faith I RutaUnited Kingdom2024-04-17Rousseaux, Michael Esq NEW44Onyama Limba
1018Maisha L CaldareraItaly2024-04-01King, Christopher A Esq RENEWAL4Onyama Limba
1019Leon U SergiItaly2024-04-04Printing Dimensions PROPOSAL97Elwin Sharvill
1020Morrow S RulapaughArgentina2024-03-27Buckley Miller Wright QUALIFIED99Xuxue Feng
1021Francesco W WieserIndia2024-03-28Truhlar And Truhlar Attys NEW72Stephen Shaw
1022Nicolas Z IturbideSpain2024-04-04Chapman, Ross E Esq UNQUALIFIED65Asiya Javayant
1023Chavez C GauchoArgentina2024-04-09Dorl, James J Esq QUALIFIED69Amy Elsner
1024Chavez S AlbaresArgentina2024-03-24Benton, John B Jr NEGOTIATION32Stephen Shaw
1025Kaitlin L ChuiAustralia2024-03-30Buckley Miller Wright NEW56Anna Fali
1026Clifford K GillianGermany2024-04-12Feltz Printing Service UNQUALIFIED43Xuxue Feng
1027Octavia L RoysterUnited Kingdom2024-04-14Chapman, Ross E Esq NEGOTIATION58Ivan Magalhaes
1028Francesco M GauchoJapan2024-04-16Chanay, Jeffrey A Esq NEW32Asiya Javayant
1029Adams W WaycottCanada2024-04-09Buckley Miller Wright NEW51Bernardo Dominic
1030Kaitlin E GillianRussia2024-03-28King, Christopher A Esq QUALIFIED0Bernardo Dominic
1031Mujtaba E CampainUnited Kingdom2024-04-18Rousseaux, Michael Esq UNQUALIFIED9Onyama Limba
1032Mayumi B DarakjyAustralia2024-04-09Chapman, Ross E Esq QUALIFIED76Bernardo Dominic
1033Maria M MacleadItaly2024-04-05Benton, John B Jr UNQUALIFIED31Ivan Magalhaes
1034Claire Z SchemmerArgentina2024-03-25Chemel, James L Cpa NEGOTIATION14Anna Fali
1035Alejandro S VenereRussia2024-03-21Morlong Associates RENEWAL53Anna Fali
1036Ricardo Z WhobreySpain2024-04-17Feltz Printing Service NEGOTIATION47Onyama Limba
1037Isabel D AlbaresIndia2024-03-31Morlong Associates PROPOSAL11Elwin Sharvill
1038Johnson A RutaAustralia2024-04-14Morlong Associates QUALIFIED10Asiya Javayant
1039Nicolas N PoquetteAustralia2024-04-04Rousseaux, Michael Esq UNQUALIFIED60Onyama Limba
1040Octavia B NickaUnited Kingdom2024-04-14Chanay, Jeffrey A Esq NEW17Amy Elsner
1041Munro E BologniaJapan2024-03-27Rousseaux, Michael Esq QUALIFIED94Elwin Sharvill
1042Mayumi J GarufiUnited Kingdom2024-04-17Rousseaux, Michael Esq NEGOTIATION65Asiya Javayant
1043James O RimJapan2024-04-07Rousseaux, Michael Esq RENEWAL46Amy Elsner
1044Faith U CaudyBrazil2024-03-24Feiner Bros UNQUALIFIED74Elwin Sharvill
1045Leja G VocelkaCanada2024-04-10Commercial Press RENEWAL95Onyama Limba
1046Mayumi U DarakjyBrazil2024-04-09King, Christopher A Esq NEW73Bernardo Dominic
1047Izzy P TollnerUnited Kingdom2024-04-19Chanay, Jeffrey A Esq RENEWAL68Bernardo Dominic
1048Ashley I AlbaresIndia2024-04-07Chemel, James L Cpa QUALIFIED91Asiya Javayant
1049Stacey Y PerinCanada2024-04-03Morlong Associates QUALIFIED54Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody Z MorascaGermanyXuxue Feng QUALIFIED
Leon K StensethBrazilStephen Shaw NEGOTIATION
Izzy M DoeAustraliaIvan Magalhaes NEGOTIATION
Mayumi N RutaItalyAnna Fali NEGOTIATION
Kaitlin L MaletItalyXuxue Feng NEGOTIATION
Juan F GauchoIndiaAmy Elsner NEGOTIATION
Chavez J TollnerFranceIoni Bowcher UNQUALIFIED
Silvio M GarufiBrazilXuxue Feng NEW
Francesco N BologniaCanadaElwin Sharvill UNQUALIFIED
Ashley F AmigonFranceStephen Shaw QUALIFIED
Kaitlin A MacleadAustraliaIoni Bowcher NEW
David S SergiSpainIvan Magalhaes NEW
Julie C AmigonFranceBernardo Dominic QUALIFIED
Isabel Q PaprockiArgentinaAmy Elsner NEW
Smith F FerenczBrazilAsiya Javayant PROPOSAL
Juan W MaletArgentinaElwin Sharvill RENEWAL
Tony T MacleadArgentinaIvan Magalhaes PROPOSAL
Maria R IturbideArgentinaElwin Sharvill NEW
Tony Z RoysterItalyAmy Elsner QUALIFIED
Johnson G MarrierItalyBernardo Dominic RENEWAL
Salvatore U MarrierSpainBernardo Dominic RENEWAL
Kadeem C MacleadFranceOnyama Limba NEGOTIATION
Emily N IturbideBrazilBernardo Dominic QUALIFIED
Mayumi N GillianArgentinaIoni Bowcher QUALIFIED
Aditya Y CaudyArgentinaBernardo Dominic RENEWAL
Jones T MaletArgentinaIvan Magalhaes QUALIFIED
Maria F StensethIndiaStephen Shaw UNQUALIFIED
Morrow Q ButtAustraliaElwin Sharvill NEW
Jeanfrancois P FlosiSpainElwin Sharvill QUALIFIED
Jones M InouyeIndiaStephen Shaw NEGOTIATION
Murillo Y OstroskyRussiaIvan Magalhaes NEGOTIATION
Kadeem Q NestleSpainAnna Fali NEW
Nicolas E IturbideItalyAsiya Javayant RENEWAL
Sinclair A MaletAustraliaXuxue Feng NEGOTIATION
Jones C ChuiAustraliaBernardo Dominic NEW
David D WieserJapanAsiya Javayant NEGOTIATION
James B SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Aditya E ButtArgentinaAsiya Javayant RENEWAL
Kaitlin E DoeArgentinaXuxue Feng UNQUALIFIED
Clifford Z CaudyBrazilXuxue Feng NEW
Ivar O FigeroaIndiaXuxue Feng PROPOSAL
Leja E PoquetteArgentinaIvan Magalhaes NEW
Jennifer V ButtAustraliaElwin Sharvill QUALIFIED
Aika R SlusarskiAustraliaXuxue Feng RENEWAL
Tony Q AlbaresAustraliaBernardo Dominic UNQUALIFIED
Ashley T GauchoGermanyAmy Elsner PROPOSAL
Jennifer K WieserGermanyAnna Fali NEW
Izzy E FlosiUnited KingdomXuxue Feng NEW
Stacey G GillianUnited KingdomAnna Fali UNQUALIFIED
Aruna S FollerCanadaElwin Sharvill PROPOSAL
Frozen Columns
Name
Antonio O Royster
Maria O Dilliard
Maisha X Butt
Alejandro A Garufi
James B Glick
Smith P Saylors
Aruna L Albares
David W Ferencz
Ivar G Inouye
Salvatore B Shinko
Adams G Inouye
Darci M Nicka
Jennifer H Glick
Salvatore H Stockham
Francesco W Malet
Stacey M Whobrey
Ricardo M Figeroa
Smith J Stockham
Aika V Butt
Aditya C Schemmer
Maisha U Iturbide
Ashley W Rim
Jones B Gillian
Smith U Briddick
Kadeem K Flosi
Chavez U Rim
Mujtaba Y Bolognia
Murillo N Campain
Leon J Doe
Aruna C Doe
Jeanfrancois P Malet
Octavia R Morasca
Francesco D Bolognia
Nicolas O Chui
Murillo K Perin
Francesco X Wieser
Morrow H Gaucho
Kaitlin A Malet
Octavia R Rim
Johnson I Stenseth
Tony J Gillian
Ivar C Gaucho
Juan S Whobrey
Aditya U Kolmetz
Salvatore K Tollner
Aditya R Gillian
Kadeem Y Gillian
Jones X Kolmetz
Tony R Rim
Johnson Z Campain
IdCountryDate
1000Germany2024-04-19
1001France2024-03-31
1002Brazil2024-04-11
1003Spain2024-04-02
1004Japan2024-03-22
1005Japan2024-03-22
1006Italy2024-03-21
1007Italy2024-04-15
1008Germany2024-04-05
1009Argentina2024-04-17
1010Canada2024-04-17
1011Spain2024-04-07
1012Australia2024-04-04
1013Argentina2024-03-23
1014India2024-04-12
1015India2024-03-27
1016Spain2024-03-31
1017France2024-04-01
1018Germany2024-03-30
1019Australia2024-04-17
1020Russia2024-04-16
1021Canada2024-04-19
1022Japan2024-03-28
1023Argentina2024-04-12
1024Italy2024-04-15
1025Brazil2024-03-31
1026Japan2024-03-26
1027France2024-04-05
1028India2024-04-04
1029Canada2024-04-06
1030Argentina2024-04-15
1031Australia2024-04-11
1032Russia2024-04-03
1033Brazil2024-04-08
1034Germany2024-03-25
1035Germany2024-03-24
1036Russia2024-03-25
1037France2024-04-02
1038Spain2024-04-18
1039Spain2024-03-29
1040Japan2024-04-17
1041Australia2024-04-05
1042Brazil2024-04-06
1043Germany2024-04-12
1044India2024-04-17
1045Italy2024-04-14
1046Australia2024-04-11
1047Spain2024-03-21
1048Germany2024-04-04
1049Brazil2024-03-29

On-Demand Data

NameIdCountryDate
Clifford C Bowley1000Australia2024-04-16
Greenwood J Royster1001Japan2024-04-03
Rodrigues L Ferencz1002Argentina2024-03-28
Nicolas F Paprocki1003Spain2024-04-08
Mayumi U Bowley1004Canada2024-04-07
Kadeem F Foller1005Germany2024-04-07
James X Kusko1006Italy2024-03-28
Cody H Ostrosky1007Spain2024-03-28
Nicolas K Iturbide1008Japan2024-03-29
Arvin F Poquette1009Spain2024-03-28
Jones J Glick1010Argentina2024-04-09
Francesco L Poquette1011Canada2024-03-30
Chavez E Dilliard1012Argentina2024-04-04
Darci B Morasca1013France2024-03-31
Aruna E Doe1014Italy2024-03-29
Faith C Kusko1015Argentina2024-04-10
Ashley N Whobrey1016Japan2024-04-11
Maria K Garufi1017France2024-04-12
Wickens G Marrier1018Spain2024-03-26
Leon X Darakjy1019Spain2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro Z MaletCanadaXuxue Feng PROPOSAL
Rodrigues V MorascaGermanyIvan Magalhaes RENEWAL
Murillo Y DarakjyAustraliaIvan Magalhaes QUALIFIED
Jennifer F GauchoCanadaBernardo Dominic NEW
Aditya W DarakjyItalyBernardo Dominic PROPOSAL
Salvatore E MacleadItalyStephen Shaw NEGOTIATION
Silvio F NickaArgentinaIvan Magalhaes RENEWAL
Maria M SchemmerJapanIvan Magalhaes RENEWAL
Costa S AmigonRussiaOnyama Limba RENEWAL
Adams T MacleadCanadaAnna Fali QUALIFIED
Clifford L VenereArgentinaElwin Sharvill NEW
Costa W ButtJapanOnyama Limba UNQUALIFIED
Murillo D MorascaRussiaAsiya Javayant NEGOTIATION
Octavia H DarakjyGermanyAnna Fali UNQUALIFIED
Octavia T SchemmerJapanAmy Elsner PROPOSAL
Cody A BriddickIndiaIoni Bowcher RENEWAL
Johnson X FollerFranceBernardo Dominic NEGOTIATION
Deepesh I MacleadRussiaAsiya Javayant RENEWAL
Kadeem D WhobreyCanadaAsiya Javayant RENEWAL
Alejandro O GauchoArgentinaAsiya Javayant UNQUALIFIED
Chavez A CaudyAustraliaIoni Bowcher NEW
Octavia E TollnerItalyIvan Magalhaes PROPOSAL
Mujtaba X FollerGermanyIoni Bowcher NEGOTIATION
Rodrigues X SaylorsItalyIoni Bowcher RENEWAL
Jeanfrancois C PoquetteSpainIvan Magalhaes RENEWAL
Smith U CampainBrazilAsiya Javayant RENEWAL
Jennifer H AmigonFranceOnyama Limba PROPOSAL
Murillo L ButtIndiaAnna Fali QUALIFIED
Mayumi F BriddickAustraliaIoni Bowcher PROPOSAL
Wickens T AlbaresArgentinaAsiya Javayant NEW
Murillo Z DarakjyArgentinaIoni Bowcher QUALIFIED
Antonio A MaletUnited KingdomAnna Fali PROPOSAL
Leon S PerinJapanIvan Magalhaes UNQUALIFIED
Darci Q PerinItalyAsiya Javayant PROPOSAL
Aika C VocelkaJapanBernardo Dominic RENEWAL
Munro M FerenczArgentinaElwin Sharvill NEGOTIATION
Julie P DoeRussiaAsiya Javayant NEW
Aika A DoeSpainElwin Sharvill RENEWAL
Johnson S DilliardGermanyAsiya Javayant UNQUALIFIED
Clifford J RutaFranceIoni Bowcher 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>