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
Cody L RoysterBrazilIoni Bowcher QUALIFIED
Octavia N KuskoArgentinaOnyama Limba UNQUALIFIED
Mayumi H VocelkaItalyAsiya Javayant UNQUALIFIED
Costa F RutaAustraliaBernardo Dominic PROPOSAL
Mayumi O NestleCanadaIvan Magalhaes NEW
Darci F ButtFranceElwin Sharvill PROPOSAL
Smith V AlbaresGermanyAmy Elsner QUALIFIED
Jones S WaycottUnited KingdomOnyama Limba NEGOTIATION
Ivar A ButtJapanXuxue Feng NEGOTIATION
Munro T ButtBrazilAmy Elsner UNQUALIFIED
James Q BologniaArgentinaOnyama Limba UNQUALIFIED
Kaitlin U CampainItalyIoni Bowcher PROPOSAL
Antonio K TollnerGermanyOnyama Limba UNQUALIFIED
Greenwood V KuskoBrazilXuxue Feng PROPOSAL
Cody Z OstroskyUnited KingdomStephen Shaw NEGOTIATION
James W MorascaJapanElwin Sharvill NEW
Jefferson W DilliardUnited KingdomElwin Sharvill NEGOTIATION
Arvin S CampainAustraliaAnna Fali RENEWAL
Jones B VenereItalyStephen Shaw RENEWAL
Faith H MarrierAustraliaAmy Elsner UNQUALIFIED
Greenwood Q KolmetzFranceXuxue Feng NEW
Misaki F GauchoCanadaAnna Fali UNQUALIFIED
James D SaylorsJapanOnyama Limba UNQUALIFIED
Adams E BowleySpainAmy Elsner NEGOTIATION
Arvin V WieserArgentinaStephen Shaw RENEWAL
Deepesh G BologniaRussiaStephen Shaw QUALIFIED
Alejandro V FerenczAustraliaStephen Shaw UNQUALIFIED
Rodrigues O ChuiGermanyIoni Bowcher RENEWAL
Morrow T SaylorsCanadaAsiya Javayant UNQUALIFIED
David P BologniaJapanIoni Bowcher RENEWAL
Misaki N BriddickCanadaStephen Shaw NEGOTIATION
Tony R WieserAustraliaOnyama Limba QUALIFIED
Isabel F WhobreyArgentinaOnyama Limba NEGOTIATION
Stacey I MaletRussiaXuxue Feng RENEWAL
Murillo I RimRussiaAnna Fali QUALIFIED
Jennifer B ChuiJapanAmy Elsner NEGOTIATION
Ashley G BologniaAustraliaIvan Magalhaes UNQUALIFIED
Greenwood I NestleFranceXuxue Feng QUALIFIED
Antonio M GauchoFranceOnyama Limba UNQUALIFIED
Leja F CaldareraIndiaBernardo Dominic NEGOTIATION
Wickens N GillianAustraliaIvan Magalhaes QUALIFIED
Deepesh Z StensethUnited KingdomStephen Shaw NEGOTIATION
Leon U BriddickIndiaIoni Bowcher NEW
Kadeem W MarrierCanadaIvan Magalhaes RENEWAL
Aditya S ChuiAustraliaAmy Elsner QUALIFIED
Mujtaba U GauchoBrazilStephen Shaw NEGOTIATION
David S ChuiJapanBernardo Dominic PROPOSAL
Smith X InouyeSpainIvan Magalhaes NEGOTIATION
Maria Q CaldareraBrazilAnna Fali NEGOTIATION
Ashley Q OstroskyArgentinaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel C CampainAustraliaAmy Elsner PROPOSAL
Mujtaba W VenereJapanAnna Fali QUALIFIED
Kadeem L WieserArgentinaStephen Shaw NEGOTIATION
Morrow K KolmetzUnited KingdomIoni Bowcher QUALIFIED
Mujtaba H SchemmerGermanyAmy Elsner PROPOSAL
Kadeem Y PaprockiFranceIvan Magalhaes UNQUALIFIED
Johnson H VenereRussiaIvan Magalhaes RENEWAL
Munro O MacleadJapanAnna Fali UNQUALIFIED
Stacey L StensethGermanyAmy Elsner NEW
Deepesh W SergiJapanElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily M StensethItaly2024-04-22King, Christopher A Esq PROPOSAL13Anna Fali
1001Jennifer P StockhamFrance2024-04-02Benton, John B Jr PROPOSAL8Stephen Shaw
1002Emily C RutaIndia2024-04-27Printing Dimensions UNQUALIFIED0Bernardo Dominic
1003Ricardo G GarufiFrance2024-04-14Commercial Press UNQUALIFIED79Bernardo Dominic
1004Tony N BologniaGermany2024-03-29Rousseaux, Michael Esq NEGOTIATION10Onyama Limba
1005Ricardo B BowleyFrance2024-04-13Chanay, Jeffrey A Esq NEW66Elwin Sharvill
1006Deepesh T WieserItaly2024-04-27Rousseaux, Michael Esq RENEWAL81Ioni Bowcher
1007Alejandro F NickaJapan2024-04-04King, Christopher A Esq PROPOSAL64Amy Elsner
1008Mujtaba F FigeroaCanada2024-03-30Benton, John B Jr NEW17Elwin Sharvill
1009Kaitlin V SergiArgentina2024-03-29Commercial Press PROPOSAL90Ioni Bowcher
1010Octavia K BriddickSpain2024-04-13Dorl, James J Esq PROPOSAL99Elwin Sharvill
1011Alejandro A NickaSpain2024-04-04Dorl, James J Esq NEW7Elwin Sharvill
1012Juan M FigeroaArgentina2024-04-24Commercial Press UNQUALIFIED4Ioni Bowcher
1013Rodrigues F TollnerIndia2024-04-09Buckley Miller Wright PROPOSAL17Bernardo Dominic
1014Silvio B RutaJapan2024-04-26Printing Dimensions NEW91Xuxue Feng
1015Stacey M SergiFrance2024-04-17Feltz Printing Service UNQUALIFIED96Asiya Javayant
1016Aruna S AlbaresFrance2024-04-26Benton, John B Jr NEGOTIATION56Stephen Shaw
1017Jefferson A WhobreyCanada2024-04-18Commercial Press NEW10Amy Elsner
1018Rodrigues W VenereCanada2024-04-09Chapman, Ross E Esq QUALIFIED47Ioni Bowcher
1019Leja J VenereUnited Kingdom2024-04-25Rousseaux, Michael Esq QUALIFIED86Xuxue Feng
1020David M FlosiCanada2024-04-07Rangoni Of Florence UNQUALIFIED88Asiya Javayant
1021Arvin V AlbaresGermany2024-03-29Benton, John B Jr NEW23Onyama Limba
1022Kaitlin W PoquetteArgentina2024-04-10Truhlar And Truhlar Attys RENEWAL30Ivan Magalhaes
1023Murillo Z BologniaSpain2024-04-01Buckley Miller Wright UNQUALIFIED57Anna Fali
1024Darci X RulapaughJapan2024-04-03King, Christopher A Esq NEW74Stephen Shaw
1025Aika L PoquetteItaly2024-04-06Printing Dimensions PROPOSAL46Stephen Shaw
1026Alejandro E SergiRussia2024-04-13Feltz Printing Service QUALIFIED38Anna Fali
1027Cody D StockhamFrance2024-04-22Chapman, Ross E Esq RENEWAL6Elwin Sharvill
1028Kaitlin W KolmetzRussia2024-04-20Chanay, Jeffrey A Esq PROPOSAL46Ivan Magalhaes
1029Ashley G DoeArgentina2024-03-30Rangoni Of Florence QUALIFIED97Stephen Shaw
1030Morrow Z MacleadArgentina2024-04-19Chapman, Ross E Esq UNQUALIFIED65Onyama Limba
1031Aditya S PoquetteIndia2024-04-07Rangoni Of Florence PROPOSAL28Stephen Shaw
1032Maria U MaletAustralia2024-04-06Morlong Associates UNQUALIFIED96Amy Elsner
1033Kaitlin U NickaCanada2024-04-01Chapman, Ross E Esq NEW75Ioni Bowcher
1034Jennifer O FigeroaFrance2024-04-06Printing Dimensions NEW53Onyama Limba
1035Mujtaba P FigeroaAustralia2024-04-14Rousseaux, Michael Esq NEW60Ioni Bowcher
1036Johnson Z ShinkoCanada2024-04-03Rousseaux, Michael Esq NEGOTIATION46Bernardo Dominic
1037Jeanfrancois T StensethBrazil2024-04-26Commercial Press PROPOSAL0Asiya Javayant
1038Mujtaba S StockhamRussia2024-04-24Rousseaux, Michael Esq PROPOSAL34Bernardo Dominic
1039Cody G ButtItaly2024-04-10Feiner Bros NEGOTIATION84Asiya Javayant
1040Aika R GauchoSpain2024-04-01Chanay, Jeffrey A Esq QUALIFIED78Asiya Javayant
1041James U MorascaSpain2024-04-09Dorl, James J Esq UNQUALIFIED6Amy Elsner
1042Francesco T CaudyItaly2024-03-31Printing Dimensions NEW52Bernardo Dominic
1043Emily N ShinkoArgentina2024-04-17King, Christopher A Esq RENEWAL69Amy Elsner
1044Arvin J AlbaresSpain2024-04-21Feltz Printing Service PROPOSAL1Amy Elsner
1045Johnson H ButtRussia2024-04-18Chapman, Ross E Esq RENEWAL60Ioni Bowcher
1046Silvio M BologniaAustralia2024-04-04Chanay, Jeffrey A Esq NEW98Ivan Magalhaes
1047Jennifer W FollerIndia2024-04-10Feiner Bros RENEWAL78Asiya Javayant
1048Maisha B GlickUnited Kingdom2024-03-30Commercial Press QUALIFIED70Elwin Sharvill
1049Sinclair Z BowleyArgentina2024-04-01Morlong Associates NEGOTIATION36Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith B SergiAustraliaElwin Sharvill RENEWAL
Darci O OstroskyUnited KingdomAnna Fali NEGOTIATION
Murillo H SergiBrazilXuxue Feng UNQUALIFIED
Sinclair K CampainIndiaOnyama Limba PROPOSAL
David S ChuiCanadaAnna Fali UNQUALIFIED
Johnson S RimSpainBernardo Dominic UNQUALIFIED
Murillo B CampainFranceElwin Sharvill RENEWAL
Misaki Y ButtCanadaStephen Shaw QUALIFIED
Nicolas S BowleyAustraliaIoni Bowcher UNQUALIFIED
Deepesh Y StensethRussiaElwin Sharvill UNQUALIFIED
Octavia J RutaSpainElwin Sharvill NEGOTIATION
Tony L CampainBrazilAsiya Javayant NEW
Maria K OldroydCanadaAnna Fali UNQUALIFIED
Ricardo S AmigonBrazilAnna Fali QUALIFIED
Ivar L SlusarskiSpainOnyama Limba UNQUALIFIED
Sinclair W GlickArgentinaXuxue Feng QUALIFIED
Wickens M PaprockiRussiaBernardo Dominic QUALIFIED
Julie U AmigonIndiaStephen Shaw NEW
Antonio J IturbideIndiaAsiya Javayant RENEWAL
Ricardo O TollnerItalyXuxue Feng UNQUALIFIED
Mayumi W DilliardAustraliaStephen Shaw NEGOTIATION
Morrow J WaycottCanadaIvan Magalhaes QUALIFIED
Munro I SergiRussiaBernardo Dominic RENEWAL
Ivar U CaudyUnited KingdomAnna Fali QUALIFIED
Aika T AmigonItalyStephen Shaw QUALIFIED
Darci R MaletCanadaXuxue Feng QUALIFIED
Julie J KuskoItalyOnyama Limba PROPOSAL
Darci Y VenereSpainIoni Bowcher RENEWAL
Jennifer A ChuiIndiaAsiya Javayant PROPOSAL
Silvio X CaldareraRussiaAnna Fali NEGOTIATION
Juan D StensethBrazilElwin Sharvill RENEWAL
Jefferson C GarufiIndiaElwin Sharvill NEW
Juan K DarakjyIndiaAmy Elsner NEW
Claire Q MaletJapanAmy Elsner RENEWAL
Misaki T MaletRussiaIvan Magalhaes UNQUALIFIED
Octavia S ChuiCanadaElwin Sharvill QUALIFIED
Murillo Q NickaItalyAsiya Javayant NEGOTIATION
Smith C MacleadGermanyAnna Fali NEGOTIATION
Alejandro G DilliardFranceAsiya Javayant UNQUALIFIED
Ricardo O RutaArgentinaOnyama Limba UNQUALIFIED
Deepesh P KuskoUnited KingdomElwin Sharvill PROPOSAL
Isabel J CaudyJapanXuxue Feng UNQUALIFIED
Sinclair X BowleyGermanyOnyama Limba QUALIFIED
Juan W FerenczFranceIoni Bowcher NEW
Francesco A TollnerSpainAsiya Javayant PROPOSAL
Salvatore R BologniaBrazilElwin Sharvill PROPOSAL
Leon J DilliardItalyAmy Elsner RENEWAL
Leja P MorascaBrazilIvan Magalhaes NEW
Izzy R WaycottSpainAmy Elsner RENEWAL
Leon R AlbaresCanadaIoni Bowcher RENEWAL
Frozen Columns
Name
Kadeem R Ruta
Jones X Bolognia
Leja F Butt
Nicolas X Shinko
Octavia V Caldarera
Faith Z Slusarski
Costa C Morasca
Cody L Gillian
Munro I Glick
Antonio J Iturbide
Rodrigues M Malet
Salvatore C Briddick
Claire O Waycott
Jones B Inouye
Aika C Iturbide
Emily F Marrier
Maisha Q Marrier
Jennifer F Waycott
Jones J Tollner
Costa L Briddick
Isabel I Stenseth
Francesco Y Perin
Arvin O Bolognia
Ashley D Inouye
Aditya U Amigon
James H Garufi
Antonio Z Rulapaugh
Silvio K Oldroyd
Stacey D Perin
Faith F Amigon
Murillo Y Flosi
Jefferson W Marrier
Leja U Butt
Wickens E Sergi
Misaki E Rim
Kadeem M Briddick
Ivar R Sergi
Kadeem D Briddick
James D Glick
Chavez O Figeroa
Ashley V Waycott
Claire W Chui
Ashley F Slusarski
Morrow X Doe
Izzy T Wieser
Greenwood O Schemmer
Rodrigues S Flosi
Aika I Whobrey
James L Albares
Costa X Vocelka
IdCountryDate
1000Canada2024-04-01
1001Spain2024-04-03
1002Australia2024-04-10
1003Australia2024-04-08
1004Argentina2024-04-20
1005Canada2024-04-05
1006Italy2024-04-21
1007Italy2024-04-19
1008United Kingdom2024-04-02
1009Italy2024-04-06
1010India2024-04-10
1011Russia2024-04-11
1012Russia2024-03-31
1013United Kingdom2024-04-12
1014United Kingdom2024-03-31
1015Argentina2024-04-19
1016Germany2024-04-11
1017Brazil2024-04-17
1018Japan2024-03-30
1019Australia2024-04-13
1020United Kingdom2024-04-13
1021Italy2024-03-30
1022Canada2024-04-27
1023Canada2024-04-23
1024Italy2024-04-05
1025Canada2024-04-05
1026Canada2024-04-13
1027Argentina2024-04-17
1028India2024-04-26
1029United Kingdom2024-04-27
1030France2024-04-19
1031France2024-04-05
1032Australia2024-04-20
1033United Kingdom2024-03-29
1034Canada2024-04-19
1035Canada2024-04-22
1036Italy2024-04-24
1037Canada2024-04-12
1038Italy2024-04-07
1039Argentina2024-04-14
1040Australia2024-04-21
1041Canada2024-04-26
1042Japan2024-04-05
1043France2024-04-12
1044Argentina2024-04-22
1045Spain2024-04-03
1046Russia2024-04-25
1047Italy2024-04-02
1048Canada2024-03-31
1049Canada2024-04-02

On-Demand Data

NameIdCountryDate
Ricardo N Schemmer1000India2024-03-30
Claire X Nicka1001United Kingdom2024-04-02
Francesco M Maclead1002Italy2024-04-14
Salvatore J Wieser1003France2024-04-13
Julie N Waycott1004Russia2024-04-20
Ricardo D Maclead1005United Kingdom2024-04-18
Emily Y Sergi1006Germany2024-04-24
Darci F Darakjy1007Spain2024-03-30
Izzy C Rulapaugh1008Germany2024-04-09
Isabel B Stockham1009Russia2024-04-01
Maria T Vocelka1010Australia2024-04-11
Morrow J Malet1011Germany2024-04-06
Maria J Butt1012Argentina2024-04-18
Clifford O Darakjy1013Canada2024-04-11
Darci D Slusarski1014Australia2024-04-10
Maisha W Slusarski1015Spain2024-04-12
Aika M Poquette1016Italy2024-04-20
James U Garufi1017France2024-04-21
Nicolas X Chui1018India2024-03-30
Johnson R Gaucho1019India2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin G WhobreyAustraliaAmy Elsner NEW
Chavez B StensethBrazilXuxue Feng NEW
Antonio Q FlosiUnited KingdomAnna Fali QUALIFIED
Stacey W KuskoGermanyXuxue Feng QUALIFIED
Maisha R WhobreyRussiaAmy Elsner PROPOSAL
Aditya K KolmetzRussiaOnyama Limba PROPOSAL
Julie H OstroskyBrazilStephen Shaw PROPOSAL
Aditya R FerenczFranceAmy Elsner NEGOTIATION
Mayumi E MaletUnited KingdomStephen Shaw NEW
Jones X TollnerItalyAsiya Javayant RENEWAL
Emily Q ChuiIndiaAmy Elsner NEW
Maisha P KolmetzIndiaAmy Elsner PROPOSAL
Francesco Y FerenczSpainXuxue Feng QUALIFIED
Francesco O SergiUnited KingdomIvan Magalhaes RENEWAL
Jefferson X VocelkaArgentinaAnna Fali QUALIFIED
Munro F GillianIndiaXuxue Feng NEW
Leja Q AmigonArgentinaElwin Sharvill RENEWAL
Kaitlin N BriddickCanadaAnna Fali PROPOSAL
Clifford G SchemmerCanadaBernardo Dominic PROPOSAL
Salvatore D WieserRussiaAnna Fali RENEWAL
Greenwood U CaudySpainAmy Elsner QUALIFIED
Octavia C MacleadRussiaBernardo Dominic RENEWAL
Faith A AlbaresCanadaElwin Sharvill PROPOSAL
Jones K SaylorsRussiaElwin Sharvill UNQUALIFIED
Alejandro M SaylorsUnited KingdomElwin Sharvill QUALIFIED
James Q InouyeIndiaAnna Fali RENEWAL
Chavez B AlbaresArgentinaElwin Sharvill PROPOSAL
Izzy D KuskoGermanyOnyama Limba PROPOSAL
James I TollnerAustraliaAmy Elsner NEW
Darci O ButtAustraliaElwin Sharvill UNQUALIFIED
Jones O ButtItalyAnna Fali PROPOSAL
Julie S MaletJapanIvan Magalhaes QUALIFIED
Costa M WieserItalyIoni Bowcher NEGOTIATION
Emily U InouyeSpainIvan Magalhaes QUALIFIED
Murillo B RoysterAustraliaIoni Bowcher QUALIFIED
Mayumi M InouyeFranceIoni Bowcher UNQUALIFIED
Juan Z CaldareraSpainOnyama Limba NEGOTIATION
Silvio M MaletArgentinaOnyama Limba RENEWAL
Juan S IturbideArgentinaElwin Sharvill NEW
Leja D GlickRussiaStephen Shaw 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>