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
Arvin X CaldareraIndiaXuxue Feng RENEWAL
Darci H BriddickIndiaAmy Elsner UNQUALIFIED
Nicolas E OldroydSpainStephen Shaw QUALIFIED
Izzy T RoysterItalyXuxue Feng PROPOSAL
Aditya F AmigonFranceBernardo Dominic NEGOTIATION
James U OstroskyBrazilOnyama Limba NEGOTIATION
Francesco T OstroskyItalyStephen Shaw NEGOTIATION
Kadeem N RutaAustraliaAmy Elsner RENEWAL
Sinclair F StensethFranceAmy Elsner RENEWAL
Juan E FlosiSpainBernardo Dominic RENEWAL
Leon D MarrierUnited KingdomElwin Sharvill QUALIFIED
Jennifer M PoquetteCanadaBernardo Dominic NEGOTIATION
Octavia O GillianItalyElwin Sharvill PROPOSAL
Johnson N DoeRussiaAsiya Javayant RENEWAL
Ricardo L StockhamAustraliaAmy Elsner PROPOSAL
Johnson S MaletBrazilAmy Elsner UNQUALIFIED
Arvin F AmigonArgentinaElwin Sharvill NEGOTIATION
Julie V BowleyRussiaOnyama Limba QUALIFIED
Kaitlin R OldroydRussiaIvan Magalhaes NEGOTIATION
James U MacleadBrazilOnyama Limba NEGOTIATION
Ricardo R GauchoAustraliaIoni Bowcher UNQUALIFIED
Maria D BriddickUnited KingdomStephen Shaw UNQUALIFIED
Aika E VocelkaArgentinaElwin Sharvill NEW
Aruna W GauchoUnited KingdomElwin Sharvill QUALIFIED
Clifford Q WhobreyUnited KingdomAsiya Javayant QUALIFIED
Ashley G OldroydAustraliaStephen Shaw RENEWAL
Octavia A KolmetzRussiaAnna Fali PROPOSAL
Leon G GauchoBrazilOnyama Limba UNQUALIFIED
Silvio E InouyeCanadaXuxue Feng QUALIFIED
Maisha O WieserArgentinaIvan Magalhaes UNQUALIFIED
Emily K StensethGermanyStephen Shaw QUALIFIED
Greenwood I MarrierRussiaAmy Elsner PROPOSAL
Antonio K SaylorsGermanyBernardo Dominic NEW
Wickens H MaletUnited KingdomAnna Fali QUALIFIED
Leon K GauchoArgentinaAsiya Javayant RENEWAL
Stacey J BologniaUnited KingdomAnna Fali NEW
Salvatore T StockhamRussiaAmy Elsner PROPOSAL
Stacey Z RulapaughArgentinaAsiya Javayant NEW
Deepesh C DarakjyAustraliaAsiya Javayant NEGOTIATION
Julie A SlusarskiSpainAsiya Javayant NEGOTIATION
Ivar X InouyeGermanyBernardo Dominic PROPOSAL
Salvatore U KolmetzAustraliaAsiya Javayant NEGOTIATION
Octavia W MacleadIndiaAnna Fali UNQUALIFIED
Antonio B RutaAustraliaElwin Sharvill QUALIFIED
Murillo T OldroydUnited KingdomAnna Fali QUALIFIED
Darci K DilliardBrazilIoni Bowcher QUALIFIED
Ivar L GillianRussiaElwin Sharvill NEGOTIATION
Arvin P RimIndiaAnna Fali RENEWAL
Wickens Q SergiJapanAmy Elsner RENEWAL
Jeanfrancois R FlosiSpainStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer L WhobreyBrazilAnna Fali UNQUALIFIED
Stacey A SaylorsRussiaOnyama Limba RENEWAL
Murillo V CaudyItalyElwin Sharvill UNQUALIFIED
Julie S MacleadUnited KingdomOnyama Limba QUALIFIED
Jones V IturbideIndiaIvan Magalhaes PROPOSAL
Jeanfrancois S CaudyArgentinaAsiya Javayant PROPOSAL
David X TollnerFranceBernardo Dominic NEGOTIATION
Julie A MaletFranceOnyama Limba UNQUALIFIED
Salvatore Y VenereAustraliaElwin Sharvill PROPOSAL
Deepesh E GauchoIndiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia B AlbaresArgentina2024-04-21Feiner Bros NEGOTIATION42Anna Fali
1001Leja C RulapaughBrazil2024-04-27Feltz Printing Service QUALIFIED18Bernardo Dominic
1002Kaitlin Z NestleArgentina2024-04-27Chapman, Ross E Esq RENEWAL24Bernardo Dominic
1003Juan L OstroskyAustralia2024-04-09Feiner Bros PROPOSAL15Ivan Magalhaes
1004Tony B FigeroaJapan2024-05-03Rangoni Of Florence NEGOTIATION61Elwin Sharvill
1005Izzy N BologniaArgentina2024-04-11Truhlar And Truhlar Attys UNQUALIFIED28Xuxue Feng
1006Wickens K RoysterCanada2024-04-28Morlong Associates NEW10Ioni Bowcher
1007Jennifer B MarrierArgentina2024-04-11Chanay, Jeffrey A Esq NEGOTIATION22Onyama Limba
1008Costa E OstroskyItaly2024-04-20Dorl, James J Esq NEW54Ivan Magalhaes
1009Faith R StockhamArgentina2024-04-21Morlong Associates NEW61Elwin Sharvill
1010Cody G BriddickUnited Kingdom2024-04-08Feltz Printing Service RENEWAL23Anna Fali
1011Kadeem D RimRussia2024-05-04Morlong Associates NEGOTIATION2Anna Fali
1012Misaki I CaldareraCanada2024-04-08Chanay, Jeffrey A Esq UNQUALIFIED56Amy Elsner
1013Octavia U VocelkaSpain2024-04-14Morlong Associates PROPOSAL30Stephen Shaw
1014Claire H RutaRussia2024-04-29Feiner Bros NEW50Stephen Shaw
1015Clifford J GauchoBrazil2024-04-09Rousseaux, Michael Esq NEGOTIATION58Elwin Sharvill
1016Jefferson B AmigonCanada2024-04-14Printing Dimensions QUALIFIED16Onyama Limba
1017Silvio L IturbideSpain2024-04-19Morlong Associates QUALIFIED15Asiya Javayant
1018Francesco Z OstroskyBrazil2024-05-01King, Christopher A Esq QUALIFIED22Amy Elsner
1019Jennifer Y DoeAustralia2024-04-13Buckley Miller Wright QUALIFIED16Xuxue Feng
1020Aruna F CampainItaly2024-04-13Feltz Printing Service PROPOSAL91Bernardo Dominic
1021Claire V FerenczGermany2024-04-28Dorl, James J Esq PROPOSAL54Amy Elsner
1022Julie G StensethJapan2024-04-22Feiner Bros QUALIFIED95Asiya Javayant
1023Cody N ShinkoAustralia2024-04-15Rousseaux, Michael Esq UNQUALIFIED92Stephen Shaw
1024Deepesh K WieserGermany2024-04-24Buckley Miller Wright RENEWAL44Stephen Shaw
1025Arvin Q AlbaresGermany2024-05-02King, Christopher A Esq RENEWAL40Ivan Magalhaes
1026Juan Q CaudyBrazil2024-04-26Rousseaux, Michael Esq PROPOSAL89Asiya Javayant
1027Ashley L StockhamBrazil2024-04-25Rangoni Of Florence RENEWAL73Bernardo Dominic
1028Arvin V PoquetteBrazil2024-04-08Truhlar And Truhlar Attys PROPOSAL7Anna Fali
1029Juan V VocelkaItaly2024-04-16Rangoni Of Florence UNQUALIFIED91Xuxue Feng
1030Clifford P CaldareraGermany2024-04-12King, Christopher A Esq UNQUALIFIED89Ivan Magalhaes
1031James E WieserBrazil2024-04-30Rousseaux, Michael Esq NEW99Ivan Magalhaes
1032Jefferson E WhobreyAustralia2024-04-15Chemel, James L Cpa RENEWAL88Anna Fali
1033Chavez E CampainRussia2024-04-29Morlong Associates UNQUALIFIED11Stephen Shaw
1034Kadeem O VocelkaBrazil2024-05-05Feltz Printing Service NEW23Stephen Shaw
1035Jefferson P ShinkoFrance2024-04-14Truhlar And Truhlar Attys PROPOSAL72Elwin Sharvill
1036Nicolas R MaletBrazil2024-04-07Feiner Bros PROPOSAL76Xuxue Feng
1037Mujtaba K DoeSpain2024-04-28Rangoni Of Florence PROPOSAL82Amy Elsner
1038Tony H IturbideAustralia2024-05-06Benton, John B Jr NEW22Ivan Magalhaes
1039Leja D MorascaItaly2024-04-18Feiner Bros UNQUALIFIED36Elwin Sharvill
1040Mujtaba I RutaUnited Kingdom2024-04-10Benton, John B Jr NEGOTIATION30Asiya Javayant
1041Morrow I TollnerJapan2024-04-21Commercial Press RENEWAL78Stephen Shaw
1042Octavia Q WaycottCanada2024-04-10Dorl, James J Esq NEW59Asiya Javayant
1043Ashley O ButtJapan2024-04-18Truhlar And Truhlar Attys UNQUALIFIED40Anna Fali
1044Isabel T RulapaughFrance2024-04-21Truhlar And Truhlar Attys PROPOSAL33Anna Fali
1045Aditya L VocelkaArgentina2024-04-17Chemel, James L Cpa NEW68Ioni Bowcher
1046Claire U RimGermany2024-05-02Benton, John B Jr RENEWAL90Elwin Sharvill
1047Jefferson J IturbideItaly2024-04-20Feltz Printing Service NEGOTIATION39Onyama Limba
1048David T AlbaresJapan2024-04-17Chapman, Ross E Esq QUALIFIED39Elwin Sharvill
1049Stacey H DarakjyItaly2024-04-11Printing Dimensions QUALIFIED99Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aika C RoysterBrazilAnna Fali QUALIFIED
Stacey W WieserGermanyOnyama Limba NEW
Misaki D SaylorsIndiaIvan Magalhaes PROPOSAL
Francesco V RutaGermanyElwin Sharvill PROPOSAL
Greenwood M BriddickGermanyAmy Elsner NEW
Rodrigues G SergiSpainBernardo Dominic NEGOTIATION
Morrow D VenereBrazilElwin Sharvill QUALIFIED
Greenwood F PerinFranceXuxue Feng PROPOSAL
Darci L NestleGermanyBernardo Dominic NEGOTIATION
Deepesh X MarrierCanadaXuxue Feng RENEWAL
Kadeem I KuskoArgentinaAmy Elsner RENEWAL
Alejandro Y RimRussiaAmy Elsner NEGOTIATION
Adams K NickaSpainIoni Bowcher QUALIFIED
Darci O ButtIndiaElwin Sharvill QUALIFIED
Mayumi E FlosiArgentinaXuxue Feng NEW
Cody A PaprockiIndiaIvan Magalhaes QUALIFIED
Kaitlin A ButtIndiaAsiya Javayant RENEWAL
Maisha F GarufiArgentinaBernardo Dominic QUALIFIED
Stacey D RoysterFranceXuxue Feng NEW
Darci B RoysterCanadaAnna Fali NEW
Misaki E InouyeGermanyIoni Bowcher NEGOTIATION
Adams N FlosiFranceOnyama Limba QUALIFIED
Tony M AmigonGermanyAnna Fali RENEWAL
Ricardo G BowleyArgentinaElwin Sharvill UNQUALIFIED
Leja A RutaItalyXuxue Feng RENEWAL
Aditya Q KolmetzRussiaOnyama Limba UNQUALIFIED
Jones Q ShinkoSpainBernardo Dominic NEGOTIATION
Octavia E StockhamGermanyIoni Bowcher QUALIFIED
Darci J InouyeArgentinaIoni Bowcher NEW
Emily T KuskoGermanyBernardo Dominic RENEWAL
Juan V VenereGermanyElwin Sharvill PROPOSAL
Deepesh K AmigonAustraliaAnna Fali PROPOSAL
Claire N NickaGermanyIvan Magalhaes QUALIFIED
Jeanfrancois K GlickAustraliaAmy Elsner NEW
Stacey H NestleItalyXuxue Feng NEW
Stacey Y RoysterArgentinaAmy Elsner NEW
Faith W VenereSpainBernardo Dominic RENEWAL
Rodrigues I FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Jones O MaletJapanAmy Elsner UNQUALIFIED
Faith R ButtRussiaAnna Fali RENEWAL
Izzy L FollerBrazilIoni Bowcher QUALIFIED
Stacey W DoeItalyStephen Shaw RENEWAL
Izzy T KuskoRussiaAmy Elsner QUALIFIED
Faith A BriddickArgentinaBernardo Dominic RENEWAL
Silvio S SaylorsItalyXuxue Feng NEW
Munro U StockhamRussiaStephen Shaw NEGOTIATION
Francesco V GauchoRussiaIoni Bowcher NEW
Antonio H RimIndiaAsiya Javayant RENEWAL
Aditya M DoeFranceOnyama Limba PROPOSAL
Sinclair N GarufiRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Johnson P Oldroyd
James F Campain
Jefferson W Kusko
Octavia V Malet
Ivar Q Schemmer
Emily X Slusarski
Clifford G Slusarski
James J Nicka
Greenwood K Garufi
Mujtaba Y Figeroa
Ricardo K Ruta
Leja Q Oldroyd
Aika W Rim
Tony R Oldroyd
Morrow C Gaucho
Ivar T Malet
Claire X Venere
Faith H Stockham
Maisha P Venere
Deepesh Z Dilliard
Maisha P Paprocki
Isabel H Maclead
Rodrigues K Marrier
Rodrigues Q Poquette
Ricardo T Ostrosky
Darci Z Paprocki
Deepesh T Morasca
Misaki P Kusko
Jefferson Z Doe
Costa M Tollner
Claire R Tollner
Claire M Venere
Ivar P Ruta
Aruna V Caudy
David O Bowley
Wickens Q Rim
Octavia A Glick
Misaki G Malet
Aika R Gaucho
Clifford M Butt
Arvin C Royster
Salvatore J Malet
Deepesh E Rulapaugh
Aruna A Morasca
Adams R Saylors
Stacey Q Briddick
Alejandro D Amigon
Silvio U Caldarera
Leon D Briddick
Murillo I Amigon
IdCountryDate
1000Brazil2024-04-18
1001Japan2024-04-17
1002Argentina2024-04-22
1003Argentina2024-04-14
1004Germany2024-04-16
1005Italy2024-04-29
1006Italy2024-04-21
1007Germany2024-04-09
1008Australia2024-04-22
1009Argentina2024-04-25
1010Russia2024-04-22
1011Spain2024-04-19
1012Japan2024-04-13
1013Japan2024-04-25
1014Australia2024-04-13
1015India2024-05-02
1016Australia2024-04-24
1017Germany2024-05-05
1018Canada2024-05-03
1019Brazil2024-05-05
1020Spain2024-04-10
1021United Kingdom2024-04-13
1022Brazil2024-04-16
1023Argentina2024-04-17
1024India2024-04-09
1025Spain2024-04-12
1026Italy2024-05-04
1027United Kingdom2024-05-03
1028Canada2024-04-21
1029Japan2024-05-06
1030France2024-04-30
1031Spain2024-05-01
1032Australia2024-05-02
1033United Kingdom2024-04-21
1034Brazil2024-04-14
1035Australia2024-04-29
1036Japan2024-04-19
1037Spain2024-04-20
1038Japan2024-04-23
1039Argentina2024-04-29
1040Canada2024-05-05
1041Japan2024-04-27
1042India2024-05-02
1043Argentina2024-04-22
1044Australia2024-05-04
1045Canada2024-04-25
1046Russia2024-04-19
1047Russia2024-04-08
1048United Kingdom2024-04-12
1049Japan2024-04-20

On-Demand Data

NameIdCountryDate
Smith U Figeroa1000France2024-04-20
Jeanfrancois R Chui1001France2024-05-02
Clifford I Wieser1002Argentina2024-04-19
Aika A Poquette1003Brazil2024-04-11
Octavia U Dilliard1004Canada2024-04-25
Clifford H Sergi1005France2024-04-20
Darci U Butt1006Spain2024-04-07
Jeanfrancois A Stenseth1007Italy2024-04-10
Jones X Venere1008Japan2024-04-25
Tony R Marrier1009Argentina2024-05-04
Murillo O Amigon1010Australia2024-04-14
Munro Q Paprocki1011Russia2024-04-24
Wickens K Marrier1012Germany2024-05-01
Chavez R Caudy1013Germany2024-04-15
Kadeem Z Darakjy1014Spain2024-04-15
Octavia H Rulapaugh1015Germany2024-04-09
Leja R Wieser1016United Kingdom2024-04-30
Morrow W Poquette1017India2024-05-02
Munro S Chui1018India2024-05-01
Antonio C Chui1019Spain2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem B MarrierIndiaIvan Magalhaes NEGOTIATION
Jones Q FollerCanadaElwin Sharvill RENEWAL
James R FollerCanadaBernardo Dominic PROPOSAL
Antonio P WhobreyCanadaIvan Magalhaes PROPOSAL
Misaki P PoquetteBrazilElwin Sharvill UNQUALIFIED
Juan M FollerUnited KingdomIvan Magalhaes QUALIFIED
Greenwood S CampainArgentinaElwin Sharvill NEGOTIATION
Wickens K FlosiSpainAnna Fali QUALIFIED
Isabel W FerenczIndiaAmy Elsner NEGOTIATION
Alejandro H CaldareraAustraliaAnna Fali QUALIFIED
Adams T FollerFranceBernardo Dominic NEW
Juan I VenereCanadaAnna Fali UNQUALIFIED
Nicolas B OstroskyIndiaBernardo Dominic UNQUALIFIED
Emily D ButtArgentinaAnna Fali PROPOSAL
Isabel O RutaFranceElwin Sharvill RENEWAL
Kadeem P FerenczArgentinaAnna Fali QUALIFIED
Juan N StensethJapanIvan Magalhaes RENEWAL
Jennifer J RutaItalyBernardo Dominic NEW
Clifford L KolmetzAustraliaStephen Shaw NEGOTIATION
Leon R PerinItalyAsiya Javayant NEW
Clifford J CampainJapanElwin Sharvill NEW
James T CaudyUnited KingdomIoni Bowcher QUALIFIED
Antonio Y KolmetzAustraliaStephen Shaw PROPOSAL
Francesco C MaletSpainXuxue Feng QUALIFIED
Faith K SergiGermanyAnna Fali NEW
Silvio D NestleUnited KingdomAsiya Javayant PROPOSAL
Jefferson N CaudyItalyBernardo Dominic NEGOTIATION
Aruna O SlusarskiBrazilIoni Bowcher PROPOSAL
Cody T WaycottGermanyElwin Sharvill RENEWAL
Johnson W MaletCanadaElwin Sharvill QUALIFIED
Costa R SergiAustraliaIvan Magalhaes UNQUALIFIED
Tony E FlosiAustraliaAsiya Javayant NEW
Costa G BowleyIndiaAnna Fali NEGOTIATION
Jefferson T RulapaughBrazilIvan Magalhaes QUALIFIED
Smith N CaldareraCanadaBernardo Dominic UNQUALIFIED
Jones O MaletGermanyAnna Fali QUALIFIED
Alejandro Z FerenczBrazilAsiya Javayant NEGOTIATION
Sinclair D ChuiCanadaStephen Shaw PROPOSAL
Leon F FigeroaBrazilBernardo Dominic NEW
Munro G GauchoAustraliaXuxue Feng 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>