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
Aruna W PerinGermanyStephen Shaw RENEWAL
Maria P WhobreyUnited KingdomOnyama Limba QUALIFIED
Julie V BologniaRussiaAnna Fali QUALIFIED
Morrow H MarrierArgentinaAsiya Javayant NEGOTIATION
Ricardo A WaycottGermanyStephen Shaw QUALIFIED
Cody C ButtGermanyOnyama Limba RENEWAL
Ricardo E PoquetteFranceIvan Magalhaes PROPOSAL
Faith N SchemmerAustraliaBernardo Dominic PROPOSAL
Kadeem X BriddickItalyIoni Bowcher NEGOTIATION
Costa T InouyeJapanAsiya Javayant PROPOSAL
Julie B NickaItalyAmy Elsner RENEWAL
Munro Z VocelkaGermanyAmy Elsner UNQUALIFIED
Jefferson A ButtCanadaAmy Elsner UNQUALIFIED
Cody I SlusarskiRussiaIoni Bowcher QUALIFIED
Antonio Y AlbaresRussiaOnyama Limba PROPOSAL
James W GlickItalyIvan Magalhaes NEW
Cody A OstroskyItalyOnyama Limba UNQUALIFIED
Costa A PaprockiRussiaAnna Fali RENEWAL
Johnson L WhobreyIndiaBernardo Dominic RENEWAL
Leja C ButtSpainAnna Fali PROPOSAL
Greenwood M NickaJapanBernardo Dominic UNQUALIFIED
Leon H FigeroaItalyStephen Shaw UNQUALIFIED
Stacey V StensethRussiaStephen Shaw PROPOSAL
Sinclair B TollnerCanadaXuxue Feng PROPOSAL
Mujtaba L KuskoItalyIoni Bowcher NEGOTIATION
Smith B StensethGermanyIoni Bowcher NEGOTIATION
Jeanfrancois V MorascaRussiaIoni Bowcher PROPOSAL
Kaitlin B VenereSpainAsiya Javayant NEGOTIATION
Kadeem N MacleadRussiaIoni Bowcher PROPOSAL
Isabel B AmigonBrazilAmy Elsner RENEWAL
Chavez I NickaJapanElwin Sharvill QUALIFIED
Sinclair F RulapaughArgentinaAnna Fali QUALIFIED
Juan W StensethIndiaOnyama Limba NEW
Chavez K BriddickArgentinaAmy Elsner UNQUALIFIED
Julie P CaldareraCanadaStephen Shaw UNQUALIFIED
Johnson N RulapaughItalyAnna Fali NEW
Murillo C ChuiSpainIvan Magalhaes NEGOTIATION
Sinclair I MaletAustraliaStephen Shaw NEGOTIATION
Kaitlin M IturbideIndiaXuxue Feng UNQUALIFIED
Cody R GauchoAustraliaIoni Bowcher NEW
Maisha D KuskoCanadaBernardo Dominic QUALIFIED
Deepesh V DoeUnited KingdomAsiya Javayant NEGOTIATION
Greenwood U FigeroaFranceAnna Fali RENEWAL
Arvin M OstroskyUnited KingdomBernardo Dominic RENEWAL
Kaitlin U BowleySpainBernardo Dominic NEW
David W NestleBrazilIoni Bowcher NEGOTIATION
Octavia S PaprockiRussiaIoni Bowcher QUALIFIED
Wickens U WaycottFranceAsiya Javayant UNQUALIFIED
David Z DilliardJapanOnyama Limba NEW
Mayumi E MaletJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo R GarufiRussiaIoni Bowcher NEW
Wickens F BologniaIndiaElwin Sharvill RENEWAL
Aditya Y WhobreyJapanIvan Magalhaes NEW
Faith Y CaudyBrazilStephen Shaw UNQUALIFIED
Rodrigues R RulapaughItalyAsiya Javayant NEW
Ashley H KuskoArgentinaAnna Fali UNQUALIFIED
Smith T FollerArgentinaAsiya Javayant UNQUALIFIED
Silvio E AlbaresIndiaAnna Fali PROPOSAL
Leja D KolmetzSpainIvan Magalhaes NEW
Darci F BologniaGermanyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily T FerenczCanada2024-04-18Chemel, James L Cpa NEW27Elwin Sharvill
1001Smith N DoeGermany2024-03-27Rangoni Of Florence NEGOTIATION30Asiya Javayant
1002Misaki B AlbaresSpain2024-04-16Chapman, Ross E Esq UNQUALIFIED36Anna Fali
1003Julie I AlbaresUnited Kingdom2024-03-29Truhlar And Truhlar Attys PROPOSAL81Amy Elsner
1004Julie L MarrierGermany2024-04-10Morlong Associates NEW11Asiya Javayant
1005Maisha B SchemmerArgentina2024-03-29Rousseaux, Michael Esq NEW13Onyama Limba
1006Francesco J GillianIndia2024-04-08Morlong Associates QUALIFIED53Elwin Sharvill
1007Faith H FollerItaly2024-03-27King, Christopher A Esq QUALIFIED57Anna Fali
1008Izzy S ChuiFrance2024-04-06Buckley Miller Wright NEGOTIATION32Amy Elsner
1009Clifford O MaletJapan2024-04-01Truhlar And Truhlar Attys NEW10Onyama Limba
1010Mayumi J MorascaUnited Kingdom2024-04-25King, Christopher A Esq NEGOTIATION28Amy Elsner
1011Mayumi X FlosiSpain2024-04-11Rangoni Of Florence NEGOTIATION45Ivan Magalhaes
1012Wickens M CampainIndia2024-04-03Morlong Associates NEW36Ioni Bowcher
1013Aditya D DoeSpain2024-03-30Rousseaux, Michael Esq NEGOTIATION3Asiya Javayant
1014Arvin E AlbaresArgentina2024-04-04Chemel, James L Cpa RENEWAL69Onyama Limba
1015Aruna K CampainSpain2024-04-09Rangoni Of Florence QUALIFIED37Bernardo Dominic
1016Misaki R GarufiUnited Kingdom2024-04-21Chemel, James L Cpa NEGOTIATION3Ioni Bowcher
1017Juan E MarrierArgentina2024-04-22King, Christopher A Esq UNQUALIFIED99Ioni Bowcher
1018Aruna F NestleSpain2024-04-19Buckley Miller Wright RENEWAL97Ioni Bowcher
1019David P GarufiArgentina2024-04-08King, Christopher A Esq NEGOTIATION40Amy Elsner
1020Ashley Z ChuiArgentina2024-04-01Feiner Bros UNQUALIFIED25Amy Elsner
1021Silvio Z FlosiItaly2024-04-14King, Christopher A Esq QUALIFIED7Elwin Sharvill
1022Octavia Y RimCanada2024-04-18Chanay, Jeffrey A Esq QUALIFIED48Ioni Bowcher
1023Aika V NickaCanada2024-04-03Truhlar And Truhlar Attys UNQUALIFIED56Onyama Limba
1024Smith I MarrierAustralia2024-04-25Chemel, James L Cpa NEGOTIATION9Elwin Sharvill
1025Tony L BowleyUnited Kingdom2024-04-22Truhlar And Truhlar Attys QUALIFIED74Elwin Sharvill
1026Leja X DarakjyRussia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED28Ivan Magalhaes
1027Isabel R CaudyAustralia2024-04-05Feiner Bros NEW63Stephen Shaw
1028Stacey H DarakjyArgentina2024-04-19Chapman, Ross E Esq RENEWAL24Ivan Magalhaes
1029Ricardo H DarakjyFrance2024-03-29Morlong Associates PROPOSAL59Ivan Magalhaes
1030Greenwood J FlosiFrance2024-04-13Dorl, James J Esq UNQUALIFIED98Ivan Magalhaes
1031Aika F PerinAustralia2024-04-11Buckley Miller Wright PROPOSAL31Anna Fali
1032Salvatore G BowleyUnited Kingdom2024-04-03Morlong Associates UNQUALIFIED92Ivan Magalhaes
1033Stacey R FigeroaIndia2024-04-18Chanay, Jeffrey A Esq NEGOTIATION48Ivan Magalhaes
1034Aditya E MaletGermany2024-04-02Rangoni Of Florence PROPOSAL60Elwin Sharvill
1035Greenwood N OldroydUnited Kingdom2024-04-20Printing Dimensions NEGOTIATION7Amy Elsner
1036Francesco S MaletArgentina2024-04-14Printing Dimensions NEW82Ivan Magalhaes
1037Nicolas Q PoquetteFrance2024-04-03Truhlar And Truhlar Attys RENEWAL35Anna Fali
1038Wickens Z VocelkaAustralia2024-04-11Morlong Associates RENEWAL55Elwin Sharvill
1039Jones M GauchoUnited Kingdom2024-04-25Chemel, James L Cpa QUALIFIED52Elwin Sharvill
1040Francesco I FollerFrance2024-04-16Benton, John B Jr NEGOTIATION34Elwin Sharvill
1041Maisha P GillianCanada2024-04-05Feiner Bros PROPOSAL31Stephen Shaw
1042Julie Q MaletCanada2024-04-15Benton, John B Jr NEGOTIATION58Xuxue Feng
1043Jeanfrancois B ChuiBrazil2024-04-12Commercial Press NEW92Bernardo Dominic
1044Cody C FerenczJapan2024-04-18Feiner Bros QUALIFIED47Asiya Javayant
1045Jeanfrancois S GlickFrance2024-04-22King, Christopher A Esq NEW88Onyama Limba
1046Mujtaba S SchemmerFrance2024-04-24Buckley Miller Wright PROPOSAL95Ivan Magalhaes
1047David N OldroydBrazil2024-03-30Feltz Printing Service QUALIFIED24Ioni Bowcher
1048Murillo F KuskoCanada2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED10Ivan Magalhaes
1049Sinclair K DilliardJapan2024-04-22Commercial Press UNQUALIFIED55Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Julie E GauchoJapanBernardo Dominic PROPOSAL
Ashley D GillianRussiaBernardo Dominic PROPOSAL
Sinclair Q DilliardFranceAmy Elsner PROPOSAL
Aruna Y WhobreyJapanAsiya Javayant PROPOSAL
Faith P PoquetteItalyIoni Bowcher QUALIFIED
Izzy N KolmetzJapanBernardo Dominic NEGOTIATION
Aditya N VocelkaCanadaXuxue Feng RENEWAL
Julie O NickaFranceAmy Elsner NEW
Tony H FollerGermanyAmy Elsner PROPOSAL
Isabel L VenereRussiaIvan Magalhaes NEW
Claire U MarrierRussiaAmy Elsner NEGOTIATION
Leon J SaylorsJapanXuxue Feng PROPOSAL
Silvio O BologniaGermanyOnyama Limba QUALIFIED
Costa S GillianFranceBernardo Dominic QUALIFIED
Silvio Q DilliardCanadaAnna Fali NEW
Smith Q SlusarskiRussiaOnyama Limba NEGOTIATION
Maisha Y GillianIndiaAnna Fali RENEWAL
Jones B GlickUnited KingdomIvan Magalhaes RENEWAL
Greenwood X CaldareraFranceBernardo Dominic UNQUALIFIED
Juan P GauchoArgentinaElwin Sharvill QUALIFIED
Cody J NestleArgentinaBernardo Dominic RENEWAL
Francesco K SchemmerRussiaIoni Bowcher UNQUALIFIED
Sinclair Z BologniaUnited KingdomAnna Fali NEGOTIATION
Jefferson D KolmetzIndiaXuxue Feng PROPOSAL
Johnson O FlosiRussiaAnna Fali QUALIFIED
Leja X NestleCanadaXuxue Feng NEW
Ashley J DilliardUnited KingdomXuxue Feng UNQUALIFIED
Alejandro T BowleyFranceAnna Fali NEGOTIATION
Tony Q WhobreyJapanIvan Magalhaes QUALIFIED
Ricardo K MaletSpainAmy Elsner QUALIFIED
Deepesh J VenereUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois A GauchoCanadaStephen Shaw QUALIFIED
Maria K ButtSpainElwin Sharvill PROPOSAL
Aditya B RimIndiaAnna Fali RENEWAL
Sinclair N StensethFranceOnyama Limba NEGOTIATION
Jones T WaycottFranceAmy Elsner RENEWAL
Jeanfrancois A IturbideRussiaAnna Fali NEW
Isabel Z ChuiGermanyElwin Sharvill NEGOTIATION
David V KuskoJapanStephen Shaw NEGOTIATION
Tony G StockhamFranceElwin Sharvill QUALIFIED
Munro B WieserRussiaStephen Shaw NEW
Kadeem M GlickUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba F MorascaCanadaOnyama Limba NEW
Faith W DilliardSpainElwin Sharvill QUALIFIED
Clifford D MorascaItalyOnyama Limba RENEWAL
David G MacleadBrazilIoni Bowcher PROPOSAL
Izzy T MacleadFranceXuxue Feng NEW
Aditya N MarrierRussiaAnna Fali NEW
Isabel U PoquetteArgentinaXuxue Feng RENEWAL
Rodrigues A DarakjyRussiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Jones R Bolognia
Stacey G Venere
Jeanfrancois O Oldroyd
Octavia A Campain
Jeanfrancois N Wieser
Leon E Tollner
Munro N Figeroa
Sinclair O Garufi
David B Briddick
Emily Z Whobrey
Adams U Nestle
Leon D Flosi
Leon S Figeroa
Aika J Iturbide
Munro D Tollner
Leon I Rim
Misaki L Foller
Claire N Darakjy
Smith L Garufi
David Z Inouye
Rodrigues M Tollner
Maria B Paprocki
Ricardo T Inouye
Wickens K Caldarera
Sinclair E Waycott
Jeanfrancois T Figeroa
Claire A Venere
Jennifer C Kolmetz
Isabel P Glick
Wickens B Malet
Antonio W Shinko
Nicolas F Nestle
Isabel Z Maclead
Octavia G Butt
Cody F Bowley
Jefferson H Venere
Tony D Malet
Greenwood U Gaucho
Rodrigues O Chui
Ashley W Inouye
Kaitlin U Ostrosky
Johnson Y Butt
Ricardo Z Perin
Juan J Doe
Greenwood Q Rulapaugh
Costa F Oldroyd
Rodrigues L Figeroa
Rodrigues C Darakjy
Antonio L Rim
David I Poquette
IdCountryDate
1000Japan2024-04-08
1001Italy2024-04-19
1002India2024-04-08
1003Japan2024-03-29
1004Canada2024-03-29
1005Spain2024-04-11
1006Brazil2024-04-04
1007Brazil2024-04-04
1008United Kingdom2024-04-24
1009India2024-04-03
1010United Kingdom2024-04-10
1011Japan2024-04-17
1012Russia2024-04-07
1013Australia2024-04-05
1014Canada2024-03-30
1015Argentina2024-04-03
1016India2024-04-02
1017Spain2024-04-18
1018Germany2024-03-30
1019Japan2024-04-19
1020Argentina2024-04-20
1021Brazil2024-04-24
1022Italy2024-04-16
1023Italy2024-03-29
1024United Kingdom2024-04-12
1025Italy2024-04-06
1026Australia2024-04-02
1027Italy2024-04-25
1028India2024-04-23
1029Russia2024-04-25
1030Canada2024-04-20
1031India2024-04-08
1032Spain2024-04-21
1033Australia2024-04-11
1034Canada2024-04-15
1035India2024-04-19
1036Australia2024-04-08
1037Argentina2024-04-16
1038Australia2024-04-09
1039Germany2024-03-30
1040Australia2024-04-21
1041France2024-04-17
1042Australia2024-04-19
1043Brazil2024-03-27
1044United Kingdom2024-04-09
1045India2024-04-12
1046Argentina2024-04-07
1047India2024-04-12
1048Australia2024-04-25
1049Canada2024-04-07

On-Demand Data

NameIdCountryDate
David H Bowley1000France2024-04-02
Arvin D Amigon1001Italy2024-04-15
Chavez J Butt1002India2024-04-14
Kaitlin R Amigon1003United Kingdom2024-03-31
James J Maclead1004Australia2024-04-19
Emily K Maclead1005Spain2024-04-19
Wickens V Nestle1006Spain2024-04-20
Darci F Caldarera1007Argentina2024-04-05
Tony Q Bowley1008Spain2024-04-05
Emily J Foller1009France2024-04-16
Deepesh V Albares1010Germany2024-04-20
Ivar Y Marrier1011Brazil2024-04-10
Chavez Q Waycott1012Argentina2024-04-20
Wickens V Bowley1013France2024-04-19
Darci R Whobrey1014Germany2024-04-21
Jones F Schemmer1015France2024-04-01
Jones P Sergi1016France2024-04-05
Isabel S Caldarera1017Spain2024-04-02
Kadeem A Butt1018France2024-04-14
Julie F Royster1019Spain2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci S GillianAustraliaAsiya Javayant UNQUALIFIED
Sinclair J FerenczUnited KingdomIvan Magalhaes NEW
Arvin L SlusarskiBrazilAnna Fali PROPOSAL
Jones W VenereRussiaIvan Magalhaes UNQUALIFIED
Morrow Q CampainRussiaElwin Sharvill RENEWAL
James D PerinItalyAmy Elsner QUALIFIED
Morrow N SchemmerSpainAmy Elsner NEGOTIATION
Misaki N ShinkoGermanyStephen Shaw RENEWAL
Smith H BologniaJapanAnna Fali NEW
Antonio I CaudyArgentinaBernardo Dominic QUALIFIED
Maisha M StensethArgentinaElwin Sharvill QUALIFIED
Sinclair Y InouyeRussiaXuxue Feng NEW
Stacey U OldroydJapanAsiya Javayant RENEWAL
Aika A BowleyIndiaElwin Sharvill QUALIFIED
Clifford W FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin H SaylorsRussiaBernardo Dominic NEW
Maisha J AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Ricardo R DarakjyItalyIoni Bowcher RENEWAL
Jennifer C OldroydBrazilIoni Bowcher QUALIFIED
Deepesh I RulapaughGermanyBernardo Dominic UNQUALIFIED
Wickens Z WieserUnited KingdomAsiya Javayant UNQUALIFIED
Morrow R RulapaughItalyXuxue Feng NEW
Francesco A WhobreyRussiaElwin Sharvill QUALIFIED
Octavia X WhobreyIndiaAnna Fali PROPOSAL
Clifford O MaletAustraliaXuxue Feng QUALIFIED
Julie W VocelkaSpainBernardo Dominic NEGOTIATION
Aika T KuskoRussiaAnna Fali UNQUALIFIED
Salvatore M AlbaresFranceAsiya Javayant PROPOSAL
Isabel J DilliardSpainIoni Bowcher NEGOTIATION
Rodrigues X PerinSpainXuxue Feng NEGOTIATION
Chavez X OldroydCanadaXuxue Feng RENEWAL
Faith T RimSpainElwin Sharvill PROPOSAL
Salvatore F CaudyUnited KingdomElwin Sharvill NEGOTIATION
Adams C WaycottFranceAsiya Javayant PROPOSAL
Maisha V FollerAustraliaAnna Fali NEGOTIATION
Silvio D ShinkoBrazilBernardo Dominic PROPOSAL
Adams J OstroskyArgentinaAnna Fali NEGOTIATION
David Q BologniaGermanyOnyama Limba PROPOSAL
Jeanfrancois Y GarufiAustraliaElwin Sharvill NEGOTIATION
Mujtaba O VocelkaBrazilElwin Sharvill RENEWAL

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