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 H RulapaughBrazilOnyama Limba QUALIFIED
Juan P SaylorsIndiaAnna Fali QUALIFIED
Julie G CaldareraFranceElwin Sharvill QUALIFIED
Arvin C ShinkoItalyStephen Shaw NEW
Antonio T PaprockiAustraliaOnyama Limba PROPOSAL
Deepesh E SergiSpainAsiya Javayant QUALIFIED
Aika X OldroydBrazilElwin Sharvill UNQUALIFIED
Misaki C MaletFranceBernardo Dominic PROPOSAL
Faith W KuskoAustraliaStephen Shaw UNQUALIFIED
Salvatore Z OstroskyAustraliaStephen Shaw QUALIFIED
Kaitlin D RoysterFranceAmy Elsner NEW
Jeanfrancois T BowleyIndiaElwin Sharvill UNQUALIFIED
Ricardo U FlosiGermanyStephen Shaw NEW
Izzy X KolmetzItalyAsiya Javayant NEW
Darci N ShinkoSpainElwin Sharvill RENEWAL
Costa A NickaUnited KingdomAsiya Javayant NEGOTIATION
Darci W VenereGermanyBernardo Dominic NEGOTIATION
Munro I MaletUnited KingdomOnyama Limba NEGOTIATION
Nicolas M AlbaresIndiaAnna Fali NEW
Aika U AmigonSpainOnyama Limba PROPOSAL
Francesco L CaldareraGermanyBernardo Dominic NEW
Chavez C AmigonFranceAsiya Javayant NEW
Aditya P SchemmerArgentinaAmy Elsner NEGOTIATION
Faith Z OldroydRussiaAsiya Javayant NEGOTIATION
Adams D MorascaSpainAsiya Javayant RENEWAL
Jennifer V DilliardIndiaElwin Sharvill PROPOSAL
Izzy D WieserRussiaElwin Sharvill NEGOTIATION
Aditya T MaletRussiaXuxue Feng NEW
Silvio N ShinkoGermanyIoni Bowcher RENEWAL
Emily S RimBrazilStephen Shaw NEW
Faith C NickaGermanyOnyama Limba RENEWAL
Darci X FollerIndiaElwin Sharvill RENEWAL
Antonio B MaletBrazilXuxue Feng NEGOTIATION
Isabel D NickaGermanyAnna Fali NEGOTIATION
Mayumi R MarrierRussiaXuxue Feng NEW
Octavia X ChuiArgentinaStephen Shaw NEGOTIATION
Leon D StensethIndiaStephen Shaw UNQUALIFIED
Salvatore L MaletGermanyAmy Elsner UNQUALIFIED
Ricardo N GillianFranceIvan Magalhaes QUALIFIED
Munro I RulapaughRussiaOnyama Limba UNQUALIFIED
Ashley K BologniaSpainBernardo Dominic PROPOSAL
Antonio R PoquetteItalyXuxue Feng NEW
Juan C NestleRussiaAsiya Javayant NEGOTIATION
Chavez I NickaRussiaAmy Elsner NEW
Juan Q FlosiUnited KingdomAnna Fali QUALIFIED
Cody Y MorascaFranceElwin Sharvill PROPOSAL
James J SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Kadeem O KolmetzGermanyBernardo Dominic PROPOSAL
Ivar X GlickUnited KingdomXuxue Feng RENEWAL
Francesco C StockhamIndiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley Y SlusarskiUnited KingdomElwin Sharvill RENEWAL
Jennifer Z RulapaughItalyBernardo Dominic QUALIFIED
Wickens M StensethRussiaOnyama Limba PROPOSAL
Sinclair L RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Smith M GarufiItalyOnyama Limba NEGOTIATION
Julie Z WhobreyItalyStephen Shaw NEGOTIATION
David H AlbaresGermanyOnyama Limba UNQUALIFIED
Aruna C ShinkoAustraliaAsiya Javayant PROPOSAL
Cody B OldroydItalyIvan Magalhaes QUALIFIED
Clifford M NestleUnited KingdomXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony G FigeroaArgentina2024-04-23Commercial Press NEW36Onyama Limba
1001Sinclair E FlosiIndia2024-04-21Truhlar And Truhlar Attys PROPOSAL9Xuxue Feng
1002Misaki N MorascaJapan2024-03-31Chemel, James L Cpa NEW53Onyama Limba
1003Jeanfrancois O RimSpain2024-04-16Commercial Press RENEWAL63Elwin Sharvill
1004Faith H PoquetteRussia2024-04-18Chemel, James L Cpa QUALIFIED71Stephen Shaw
1005Smith F KuskoRussia2024-04-16King, Christopher A Esq NEGOTIATION45Ioni Bowcher
1006Juan P BologniaFrance2024-04-02Buckley Miller Wright UNQUALIFIED58Bernardo Dominic
1007Ivar H TollnerSpain2024-04-23Feiner Bros NEW99Amy Elsner
1008Adams Z TollnerUnited Kingdom2024-04-07Chanay, Jeffrey A Esq QUALIFIED44Ivan Magalhaes
1009Smith X CaudyItaly2024-04-13Chemel, James L Cpa NEW77Xuxue Feng
1010Isabel J RoysterGermany2024-04-06Chapman, Ross E Esq PROPOSAL84Ioni Bowcher
1011Stacey O MorascaJapan2024-04-07Commercial Press NEGOTIATION20Anna Fali
1012Tony O PerinArgentina2024-04-06Buckley Miller Wright PROPOSAL8Asiya Javayant
1013Johnson D NickaBrazil2024-04-01Commercial Press NEGOTIATION28Ivan Magalhaes
1014Deepesh P GillianAustralia2024-04-21Truhlar And Truhlar Attys QUALIFIED72Ioni Bowcher
1015Clifford Z StensethAustralia2024-04-08Chapman, Ross E Esq RENEWAL12Xuxue Feng
1016Jennifer N GarufiCanada2024-04-25Buckley Miller Wright UNQUALIFIED93Ivan Magalhaes
1017Aika M RimFrance2024-04-20Chemel, James L Cpa NEGOTIATION74Ioni Bowcher
1018Clifford C VenereJapan2024-04-05Feiner Bros UNQUALIFIED41Bernardo Dominic
1019Murillo R InouyeArgentina2024-04-01Feiner Bros NEW65Ivan Magalhaes
1020Emily Q PerinRussia2024-04-19Chapman, Ross E Esq QUALIFIED58Anna Fali
1021Maisha A ShinkoRussia2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED43Ivan Magalhaes
1022Julie U KuskoFrance2024-04-17King, Christopher A Esq NEGOTIATION72Bernardo Dominic
1023Julie P NickaArgentina2024-04-14Rousseaux, Michael Esq UNQUALIFIED30Xuxue Feng
1024Adams J SaylorsUnited Kingdom2024-04-28Chanay, Jeffrey A Esq PROPOSAL35Ivan Magalhaes
1025Mayumi U VenereAustralia2024-04-10King, Christopher A Esq RENEWAL92Ioni Bowcher
1026Mayumi C BowleyItaly2024-04-10Commercial Press RENEWAL83Anna Fali
1027Munro T AlbaresSpain2024-04-16Feiner Bros QUALIFIED92Ioni Bowcher
1028Jennifer T PoquetteArgentina2024-04-23Truhlar And Truhlar Attys NEGOTIATION46Ioni Bowcher
1029Salvatore U WhobreyGermany2024-04-26Chanay, Jeffrey A Esq NEW51Ivan Magalhaes
1030James X RoysterIndia2024-04-07Benton, John B Jr NEW96Elwin Sharvill
1031Chavez I GillianSpain2024-04-06Rousseaux, Michael Esq QUALIFIED2Asiya Javayant
1032Deepesh Z MorascaBrazil2024-04-12Printing Dimensions QUALIFIED88Asiya Javayant
1033Mayumi S PerinAustralia2024-04-01Benton, John B Jr NEW46Asiya Javayant
1034Isabel H KuskoUnited Kingdom2024-04-20Feltz Printing Service NEW88Stephen Shaw
1035Maisha C RulapaughBrazil2024-04-01Feltz Printing Service RENEWAL53Stephen Shaw
1036Deepesh B WieserUnited Kingdom2024-04-24Commercial Press UNQUALIFIED7Asiya Javayant
1037Maria F NestleItaly2024-04-28King, Christopher A Esq RENEWAL0Stephen Shaw
1038Rodrigues B KuskoUnited Kingdom2024-03-31Rousseaux, Michael Esq NEGOTIATION80Xuxue Feng
1039Adams T DarakjyCanada2024-04-21Feiner Bros UNQUALIFIED33Elwin Sharvill
1040Juan L MaletRussia2024-03-31Chanay, Jeffrey A Esq PROPOSAL40Anna Fali
1041Tony W MarrierCanada2024-04-08Chapman, Ross E Esq UNQUALIFIED82Anna Fali
1042Silvio Q DilliardArgentina2024-04-10Rangoni Of Florence RENEWAL70Xuxue Feng
1043Smith A GillianBrazil2024-04-11Feltz Printing Service UNQUALIFIED60Amy Elsner
1044Ivar S FlosiRussia2024-04-07Dorl, James J Esq NEGOTIATION6Elwin Sharvill
1045Maisha I GarufiAustralia2024-04-08Benton, John B Jr RENEWAL26Anna Fali
1046Isabel E MaletUnited Kingdom2024-04-08Benton, John B Jr NEGOTIATION54Stephen Shaw
1047Alejandro U TollnerJapan2024-04-02Rangoni Of Florence PROPOSAL52Ivan Magalhaes
1048Tony Y MaletItaly2024-04-13Printing Dimensions RENEWAL96Ioni Bowcher
1049Ivar P MarrierFrance2024-04-01Rangoni Of Florence RENEWAL5Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Octavia J OldroydJapanBernardo Dominic NEW
Juan E InouyeFranceAsiya Javayant QUALIFIED
Francesco I MaletIndiaOnyama Limba RENEWAL
Octavia K MacleadJapanElwin Sharvill RENEWAL
Alejandro I DarakjyUnited KingdomIoni Bowcher QUALIFIED
Emily H GarufiIndiaOnyama Limba NEGOTIATION
Maria K SlusarskiAustraliaAnna Fali RENEWAL
Jennifer G ChuiItalyAnna Fali PROPOSAL
Ricardo I MarrierJapanIvan Magalhaes UNQUALIFIED
Adams A FigeroaGermanyAmy Elsner QUALIFIED
Rodrigues E RulapaughGermanyAmy Elsner QUALIFIED
Jones Q NickaSpainAmy Elsner QUALIFIED
Smith I WaycottIndiaAmy Elsner NEGOTIATION
Alejandro S GarufiFranceAsiya Javayant UNQUALIFIED
Maria K StockhamItalyAsiya Javayant RENEWAL
Kadeem F GarufiFranceElwin Sharvill RENEWAL
Jefferson W MaletUnited KingdomBernardo Dominic RENEWAL
Jennifer V AlbaresFranceAmy Elsner PROPOSAL
Aruna K CaudyFranceElwin Sharvill NEGOTIATION
Smith Q MacleadJapanAnna Fali NEGOTIATION
Mujtaba Z MacleadRussiaAmy Elsner RENEWAL
Francesco R MorascaSpainElwin Sharvill QUALIFIED
Antonio B CaudySpainAmy Elsner RENEWAL
Claire I MorascaSpainAnna Fali NEGOTIATION
Francesco Z PoquetteAustraliaOnyama Limba NEGOTIATION
Darci F OldroydFranceOnyama Limba UNQUALIFIED
Mujtaba K ButtCanadaXuxue Feng NEW
Rodrigues F NestleUnited KingdomAsiya Javayant QUALIFIED
Adams H FlosiAustraliaAmy Elsner RENEWAL
Maria L FlosiItalyStephen Shaw NEW
Izzy N WaycottJapanAmy Elsner RENEWAL
Claire M SlusarskiUnited KingdomStephen Shaw NEGOTIATION
Misaki N AlbaresRussiaXuxue Feng QUALIFIED
Leja S CaldareraFranceElwin Sharvill NEW
Emily T SaylorsBrazilAmy Elsner NEW
Silvio P RoysterSpainXuxue Feng PROPOSAL
Stacey T GlickRussiaBernardo Dominic RENEWAL
David Z FollerCanadaIvan Magalhaes NEW
Alejandro H BowleyArgentinaAsiya Javayant NEW
Kaitlin T FigeroaIndiaIoni Bowcher NEGOTIATION
Aruna Q OstroskyArgentinaIoni Bowcher RENEWAL
Aditya T TollnerSpainAnna Fali UNQUALIFIED
Morrow T SergiJapanAsiya Javayant PROPOSAL
Alejandro K BriddickFranceAnna Fali RENEWAL
Emily K MarrierSpainOnyama Limba PROPOSAL
Adams J VenereRussiaBernardo Dominic RENEWAL
Leja T FlosiGermanyAnna Fali UNQUALIFIED
Ivar S DarakjyJapanIoni Bowcher NEW
James P OldroydGermanyAmy Elsner QUALIFIED
Maria I GauchoGermanyAnna Fali RENEWAL
Frozen Columns
Name
Ashley O Darakjy
Clifford H Amigon
Faith J Slusarski
Jennifer I Ruta
Silvio A Kolmetz
Aika C Poquette
Claire T Waycott
Mujtaba B Gaucho
Jennifer U Figeroa
Tony H Stenseth
Mayumi I Waycott
Chavez U Ruta
Kadeem G Whobrey
Mujtaba F Venere
Smith D Ostrosky
Jones T Briddick
Clifford A Rim
Maisha B Nicka
Jennifer V Morasca
Aditya N Chui
Stacey V Gillian
Isabel G Figeroa
Morrow C Campain
Alejandro O Garufi
Julie D Iturbide
Cody D Paprocki
Clifford B Poquette
Antonio R Briddick
Silvio T Gaucho
Salvatore P Albares
Maria X Royster
Aruna K Foller
Jeanfrancois F Gaucho
Aruna V Whobrey
Chavez J Kolmetz
Ivar C Nestle
Isabel U Gillian
Nicolas C Oldroyd
Antonio O Doe
Sinclair P Stenseth
Munro I Bowley
Leja M Caldarera
Julie K Flosi
Aditya J Darakjy
Faith Y Kolmetz
Misaki T Tollner
Jefferson O Nicka
Faith I Stenseth
Rodrigues Y Slusarski
Ivar N Stenseth
IdCountryDate
1000United Kingdom2024-04-12
1001United Kingdom2024-04-26
1002Australia2024-04-27
1003Japan2024-04-03
1004Italy2024-04-09
1005France2024-04-26
1006Italy2024-04-27
1007United Kingdom2024-04-01
1008United Kingdom2024-04-22
1009Russia2024-04-03
1010Japan2024-04-06
1011Brazil2024-04-27
1012France2024-04-07
1013India2024-04-02
1014Russia2024-04-28
1015France2024-03-30
1016Canada2024-04-12
1017Italy2024-04-16
1018France2024-04-02
1019Canada2024-04-17
1020Japan2024-04-24
1021Italy2024-04-28
1022Russia2024-04-27
1023Canada2024-04-25
1024Australia2024-04-28
1025Australia2024-04-14
1026Spain2024-04-09
1027Argentina2024-04-27
1028Argentina2024-04-12
1029Canada2024-04-11
1030France2024-04-10
1031United Kingdom2024-04-13
1032Spain2024-03-30
1033Argentina2024-04-26
1034Spain2024-04-15
1035United Kingdom2024-04-02
1036Japan2024-04-19
1037France2024-04-03
1038Italy2024-04-22
1039Australia2024-04-12
1040Italy2024-04-10
1041Italy2024-04-08
1042Japan2024-04-06
1043Germany2024-04-09
1044Argentina2024-04-14
1045Canada2024-04-08
1046Italy2024-04-10
1047France2024-04-07
1048Spain2024-04-07
1049Spain2024-04-05

On-Demand Data

NameIdCountryDate
Clifford N Shinko1000Germany2024-04-24
Johnson Z Ruta1001United Kingdom2024-03-31
Rodrigues K Butt1002Germany2024-04-02
Morrow R Bowley1003France2024-04-25
Jeanfrancois F Saylors1004France2024-04-25
Octavia H Stenseth1005Spain2024-04-24
Jennifer T Marrier1006Canada2024-04-08
Rodrigues V Shinko1007Canada2024-04-25
Francesco D Dilliard1008India2024-04-26
Maria X Caudy1009Argentina2024-04-28
James L Briddick1010France2024-04-04
Aditya Z Bolognia1011Germany2024-04-24
Mayumi H Rulapaugh1012Spain2024-04-24
Nicolas R Doe1013Spain2024-04-06
Leja L Bolognia1014Australia2024-04-20
Stacey Q Stenseth1015France2024-04-12
Francesco J Nicka1016France2024-04-28
Juan K Ostrosky1017Australia2024-04-27
Tony L Garufi1018Spain2024-04-19
Francesco S Iturbide1019France2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon B CaudyRussiaXuxue Feng UNQUALIFIED
Mujtaba D VenereArgentinaXuxue Feng UNQUALIFIED
Alejandro H SchemmerFranceAsiya Javayant NEW
Kadeem I BowleyRussiaElwin Sharvill PROPOSAL
Adams F AmigonRussiaXuxue Feng UNQUALIFIED
Murillo Q MarrierItalyOnyama Limba RENEWAL
Aditya P CampainBrazilBernardo Dominic NEW
Julie X VenereCanadaIvan Magalhaes NEW
Leja S SaylorsArgentinaStephen Shaw QUALIFIED
Julie Y MaletItalyBernardo Dominic NEW
Antonio H KolmetzSpainXuxue Feng QUALIFIED
Smith L KolmetzFranceAsiya Javayant QUALIFIED
Clifford B SchemmerJapanOnyama Limba PROPOSAL
Juan F MorascaJapanXuxue Feng NEGOTIATION
Salvatore W FlosiItalyBernardo Dominic QUALIFIED
Cody Q DarakjyRussiaStephen Shaw UNQUALIFIED
Darci N StensethRussiaOnyama Limba UNQUALIFIED
Faith I ChuiJapanBernardo Dominic NEW
Mujtaba K GauchoCanadaAnna Fali RENEWAL
Francesco V InouyeSpainOnyama Limba NEW
Aditya O AmigonGermanyXuxue Feng PROPOSAL
Jeanfrancois M DarakjyUnited KingdomOnyama Limba RENEWAL
Clifford D CampainUnited KingdomAsiya Javayant PROPOSAL
Misaki E RoysterGermanyAmy Elsner UNQUALIFIED
Deepesh Q SaylorsSpainIoni Bowcher NEW
Maria D SlusarskiFranceIoni Bowcher NEGOTIATION
Tony L VocelkaSpainAnna Fali QUALIFIED
Greenwood B RoysterJapanAnna Fali QUALIFIED
Johnson J MaletItalyIoni Bowcher RENEWAL
Maria S DoeAustraliaAnna Fali PROPOSAL
Octavia Z AmigonItalyAsiya Javayant UNQUALIFIED
Izzy T PoquetteCanadaAnna Fali PROPOSAL
Silvio G StockhamSpainAnna Fali NEGOTIATION
Emily C NestleCanadaXuxue Feng QUALIFIED
Claire L BowleyJapanAnna Fali NEGOTIATION
Stacey E MarrierGermanyIvan Magalhaes NEGOTIATION
Kadeem V WaycottJapanElwin Sharvill NEW
Wickens P DoeIndiaAmy Elsner RENEWAL
Maria Z VenereAustraliaAmy Elsner NEW
Silvio J PerinAustraliaElwin 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>