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
Kadeem W DoeItalyAnna Fali NEW
Ivar A SergiIndiaXuxue Feng NEW
Misaki D NickaGermanyOnyama Limba QUALIFIED
Ricardo K OldroydBrazilXuxue Feng UNQUALIFIED
Jennifer I OstroskySpainIvan Magalhaes UNQUALIFIED
Octavia J MaletArgentinaIoni Bowcher NEGOTIATION
Aruna P KolmetzSpainStephen Shaw NEGOTIATION
Mayumi Q VocelkaGermanyAnna Fali PROPOSAL
Maisha L ButtUnited KingdomAsiya Javayant UNQUALIFIED
Johnson U FollerItalyXuxue Feng PROPOSAL
Jennifer R BowleyGermanyIvan Magalhaes NEGOTIATION
Claire R FollerRussiaAsiya Javayant RENEWAL
Morrow O DarakjyIndiaBernardo Dominic RENEWAL
Jones Y KolmetzUnited KingdomElwin Sharvill RENEWAL
Jefferson X FollerItalyStephen Shaw NEW
Morrow A PoquetteGermanyIvan Magalhaes PROPOSAL
Ricardo K WieserAustraliaIvan Magalhaes RENEWAL
Rodrigues R SlusarskiArgentinaElwin Sharvill QUALIFIED
Antonio L BowleyIndiaIvan Magalhaes QUALIFIED
Kaitlin Q SaylorsCanadaIvan Magalhaes NEW
Munro W AlbaresSpainBernardo Dominic UNQUALIFIED
Maria M InouyeBrazilXuxue Feng PROPOSAL
David V WaycottIndiaAnna Fali RENEWAL
Kadeem Q VenereArgentinaXuxue Feng PROPOSAL
Smith L WhobreyArgentinaIoni Bowcher NEW
Julie N GillianSpainIvan Magalhaes RENEWAL
Leja Y BriddickItalyAnna Fali NEGOTIATION
Leon T PoquetteRussiaOnyama Limba PROPOSAL
Smith H InouyeArgentinaAmy Elsner NEGOTIATION
Octavia Z MorascaGermanyStephen Shaw NEGOTIATION
Tony X WaycottIndiaElwin Sharvill NEW
Aruna Q DarakjyBrazilIoni Bowcher UNQUALIFIED
Kaitlin H SlusarskiRussiaElwin Sharvill NEW
Arvin W DoeUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues Z GillianAustraliaAsiya Javayant QUALIFIED
Claire A MaletJapanOnyama Limba NEW
Antonio B AlbaresGermanyAmy Elsner NEW
Deepesh W SchemmerUnited KingdomXuxue Feng RENEWAL
Juan D FollerFranceIoni Bowcher UNQUALIFIED
Costa M FerenczAustraliaBernardo Dominic QUALIFIED
Tony P RulapaughRussiaStephen Shaw NEW
Clifford A IturbideIndiaIvan Magalhaes PROPOSAL
Sinclair O MaletJapanAsiya Javayant NEW
Ivar U SaylorsUnited KingdomStephen Shaw RENEWAL
Isabel E FigeroaFranceBernardo Dominic QUALIFIED
Leon R OstroskyGermanyAsiya Javayant NEW
Aditya A RimIndiaXuxue Feng UNQUALIFIED
Juan W KuskoFranceStephen Shaw UNQUALIFIED
Antonio B RimGermanyOnyama Limba UNQUALIFIED
Jones B BologniaArgentinaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan E FerenczJapanAmy Elsner PROPOSAL
Darci Z BowleyRussiaOnyama Limba NEW
Nicolas K GarufiArgentinaAnna Fali NEGOTIATION
James O OldroydItalyIoni Bowcher QUALIFIED
Mujtaba G SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Clifford Q GlickItalyStephen Shaw NEW
Arvin L StockhamUnited KingdomAsiya Javayant NEW
Emily Q VenereArgentinaIvan Magalhaes UNQUALIFIED
Stacey Y PerinSpainStephen Shaw NEGOTIATION
Francesco K FigeroaItalyElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar M PerinJapan2024-04-05Printing Dimensions NEW98Ivan Magalhaes
1001Misaki T OstroskySpain2024-04-16Truhlar And Truhlar Attys NEGOTIATION2Anna Fali
1002Ivar C ChuiJapan2024-04-17Rangoni Of Florence RENEWAL24Stephen Shaw
1003Cody C DoeRussia2024-04-17Rousseaux, Michael Esq NEW77Xuxue Feng
1004Maria S PoquetteIndia2024-04-10Buckley Miller Wright UNQUALIFIED59Asiya Javayant
1005Morrow Y OldroydAustralia2024-04-20Feiner Bros NEGOTIATION92Bernardo Dominic
1006Jennifer O CampainArgentina2024-04-23Truhlar And Truhlar Attys UNQUALIFIED13Elwin Sharvill
1007Jeanfrancois C RoysterUnited Kingdom2024-04-02Chapman, Ross E Esq UNQUALIFIED39Elwin Sharvill
1008James T VenereArgentina2024-04-13Rousseaux, Michael Esq UNQUALIFIED42Bernardo Dominic
1009Alejandro K WaycottCanada2024-04-01Printing Dimensions PROPOSAL97Xuxue Feng
1010Deepesh E OldroydJapan2024-04-02Feltz Printing Service NEW13Anna Fali
1011Arvin B KuskoCanada2024-04-19Feltz Printing Service PROPOSAL88Ivan Magalhaes
1012Munro G PerinJapan2024-04-15Feltz Printing Service QUALIFIED53Ioni Bowcher
1013Ricardo G SaylorsJapan2024-04-23Feltz Printing Service RENEWAL78Onyama Limba
1014Stacey D OldroydFrance2024-04-10Truhlar And Truhlar Attys NEW98Xuxue Feng
1015Tony V RutaBrazil2024-04-10Commercial Press RENEWAL87Asiya Javayant
1016Claire Z SlusarskiBrazil2024-03-27Commercial Press PROPOSAL76Elwin Sharvill
1017Jones D SergiIndia2024-04-20Morlong Associates QUALIFIED87Onyama Limba
1018Rodrigues N PoquetteJapan2024-04-24Morlong Associates UNQUALIFIED25Bernardo Dominic
1019Alejandro V NestleRussia2024-04-24Commercial Press QUALIFIED38Xuxue Feng
1020Greenwood U FerenczBrazil2024-04-09Dorl, James J Esq RENEWAL48Ivan Magalhaes
1021Deepesh V ShinkoJapan2024-04-23Commercial Press NEW43Elwin Sharvill
1022Greenwood P WaycottJapan2024-04-05Commercial Press PROPOSAL10Asiya Javayant
1023Maisha M DilliardItaly2024-03-27Chapman, Ross E Esq UNQUALIFIED81Amy Elsner
1024Maisha L FlosiFrance2024-04-10Printing Dimensions NEGOTIATION24Amy Elsner
1025Chavez D BowleyFrance2024-03-31King, Christopher A Esq NEGOTIATION90Ioni Bowcher
1026Faith O NickaGermany2024-04-14Rangoni Of Florence RENEWAL16Ivan Magalhaes
1027Wickens R IturbideArgentina2024-03-31Chanay, Jeffrey A Esq QUALIFIED33Bernardo Dominic
1028James X RimJapan2024-04-10Rangoni Of Florence NEW51Ivan Magalhaes
1029Rodrigues F SchemmerBrazil2024-03-27Benton, John B Jr UNQUALIFIED2Amy Elsner
1030Ricardo T MaletIndia2024-03-26Rangoni Of Florence UNQUALIFIED86Stephen Shaw
1031Alejandro R AlbaresGermany2024-04-04Buckley Miller Wright RENEWAL21Onyama Limba
1032Kaitlin H ShinkoRussia2024-04-21Commercial Press RENEWAL39Bernardo Dominic
1033Izzy F MacleadCanada2024-04-23Feltz Printing Service UNQUALIFIED99Asiya Javayant
1034Aruna T BriddickRussia2024-04-01Truhlar And Truhlar Attys NEGOTIATION97Elwin Sharvill
1035Francesco E GlickGermany2024-03-30Morlong Associates NEW49Anna Fali
1036Greenwood Y GillianAustralia2024-04-18Buckley Miller Wright NEGOTIATION88Onyama Limba
1037Adams W AmigonGermany2024-04-05Feiner Bros NEW59Asiya Javayant
1038Wickens E ButtItaly2024-04-15Chapman, Ross E Esq PROPOSAL41Stephen Shaw
1039Jennifer Q ChuiFrance2024-04-23Benton, John B Jr NEGOTIATION46Asiya Javayant
1040Murillo D IturbideCanada2024-04-15Printing Dimensions QUALIFIED98Anna Fali
1041Isabel W GauchoJapan2024-04-07Feiner Bros RENEWAL3Anna Fali
1042Smith G FlosiIndia2024-04-09Truhlar And Truhlar Attys PROPOSAL91Stephen Shaw
1043Francesco P RoysterJapan2024-04-15Chemel, James L Cpa RENEWAL23Bernardo Dominic
1044Aruna J MarrierJapan2024-03-31Printing Dimensions NEGOTIATION44Stephen Shaw
1045Mayumi I AmigonBrazil2024-04-11Commercial Press UNQUALIFIED87Anna Fali
1046Nicolas S ShinkoIndia2024-04-12Chanay, Jeffrey A Esq PROPOSAL35Ioni Bowcher
1047Morrow R RoysterUnited Kingdom2024-04-10Benton, John B Jr UNQUALIFIED11Xuxue Feng
1048Nicolas R ButtFrance2024-03-27Rangoni Of Florence RENEWAL53Bernardo Dominic
1049Jeanfrancois R SaylorsBrazil2024-04-06Rousseaux, Michael Esq QUALIFIED12Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony G TollnerItalyAsiya Javayant UNQUALIFIED
Stacey V FigeroaFranceElwin Sharvill NEW
Murillo M FlosiJapanStephen Shaw NEW
David Q ChuiUnited KingdomAsiya Javayant NEGOTIATION
Juan O RoysterJapanAmy Elsner PROPOSAL
Jones A BologniaIndiaStephen Shaw PROPOSAL
Kaitlin F KolmetzRussiaAnna Fali RENEWAL
Silvio V AmigonCanadaBernardo Dominic UNQUALIFIED
Antonio Q WieserCanadaBernardo Dominic PROPOSAL
Costa T MaletItalyXuxue Feng UNQUALIFIED
Jones X TollnerFranceIoni Bowcher QUALIFIED
Clifford M WaycottAustraliaIvan Magalhaes NEGOTIATION
Chavez O InouyeSpainElwin Sharvill PROPOSAL
Mujtaba T SaylorsArgentinaElwin Sharvill PROPOSAL
Alejandro V FlosiFranceIvan Magalhaes RENEWAL
Kaitlin T StockhamRussiaElwin Sharvill PROPOSAL
Maisha X ButtSpainElwin Sharvill NEGOTIATION
James X MarrierFranceIvan Magalhaes NEW
Smith S FollerArgentinaAsiya Javayant NEGOTIATION
Aditya N BriddickSpainIvan Magalhaes PROPOSAL
Silvio E PaprockiGermanyOnyama Limba UNQUALIFIED
Morrow T IturbideRussiaBernardo Dominic QUALIFIED
Emily P KolmetzIndiaIoni Bowcher NEW
Adams M OstroskyFranceElwin Sharvill UNQUALIFIED
Cody L IturbideGermanyAmy Elsner PROPOSAL
Adams Y PaprockiRussiaIoni Bowcher NEGOTIATION
Johnson K DarakjyFranceOnyama Limba RENEWAL
Aruna L NestleIndiaOnyama Limba QUALIFIED
Arvin J MorascaArgentinaOnyama Limba NEW
Chavez A DarakjyFranceBernardo Dominic UNQUALIFIED
Deepesh R VenereFranceIvan Magalhaes UNQUALIFIED
Ashley V DilliardAustraliaAnna Fali UNQUALIFIED
Izzy R ButtIndiaIoni Bowcher NEGOTIATION
Greenwood A GauchoFranceAsiya Javayant NEW
Adams A BologniaArgentinaAmy Elsner RENEWAL
Julie Y DoeAustraliaIvan Magalhaes PROPOSAL
Smith F RimSpainIvan Magalhaes NEGOTIATION
Ivar H BowleySpainElwin Sharvill QUALIFIED
Mujtaba U WieserBrazilStephen Shaw UNQUALIFIED
Kadeem O GillianBrazilAsiya Javayant PROPOSAL
Ricardo K SergiBrazilXuxue Feng NEW
Aruna X MaletJapanStephen Shaw UNQUALIFIED
Costa D ButtJapanIoni Bowcher QUALIFIED
Faith Z TollnerCanadaElwin Sharvill RENEWAL
Izzy M WieserRussiaAmy Elsner NEW
Jones O FerenczArgentinaIoni Bowcher NEGOTIATION
Stacey W StensethArgentinaIoni Bowcher NEGOTIATION
Francesco T SaylorsArgentinaOnyama Limba UNQUALIFIED
Mayumi Q InouyeSpainStephen Shaw RENEWAL
Ricardo F KolmetzAustraliaIvan Magalhaes NEW
Frozen Columns
Name
Darci Z Ferencz
David Q Butt
Aika I Iturbide
Sinclair N Amigon
Murillo Q Nicka
Clifford M Iturbide
Antonio P Morasca
Munro W Briddick
Mujtaba Y Paprocki
Mujtaba V Iturbide
Arvin L Caldarera
Juan Y Slusarski
Emily B Stockham
Adams A Kusko
Greenwood U Gaucho
Aika I Royster
Alejandro B Ostrosky
Mayumi Y Tollner
Murillo R Wieser
Smith A Stenseth
Sinclair L Doe
Jones K Rim
Maisha T Schemmer
Silvio W Vocelka
Clifford B Schemmer
Munro U Paprocki
Aika O Sergi
Francesco R Darakjy
Nicolas O Oldroyd
Rodrigues K Ostrosky
Aika Q Gillian
Antonio X Rim
Julie E Vocelka
Smith W Dilliard
Rodrigues A Nicka
Murillo W Rulapaugh
Sinclair X Oldroyd
Isabel J Caudy
Leja Q Malet
Deepesh I Iturbide
Mujtaba I Vocelka
Murillo V Tollner
Antonio Q Venere
Morrow T Slusarski
Maisha F Briddick
Cody J Flosi
Francesco W Poquette
Isabel O Darakjy
Isabel E Malet
David V Wieser
IdCountryDate
1000Brazil2024-04-16
1001Canada2024-04-23
1002Argentina2024-04-07
1003India2024-04-18
1004Brazil2024-04-18
1005France2024-04-18
1006Japan2024-04-06
1007France2024-04-13
1008Brazil2024-04-05
1009Germany2024-04-19
1010Germany2024-04-21
1011Japan2024-04-17
1012United Kingdom2024-04-06
1013Japan2024-03-28
1014Japan2024-04-21
1015Canada2024-04-17
1016Japan2024-04-09
1017Canada2024-04-01
1018Australia2024-04-01
1019Australia2024-04-05
1020Germany2024-04-03
1021Italy2024-03-31
1022Germany2024-04-03
1023Germany2024-03-30
1024France2024-03-29
1025India2024-04-13
1026United Kingdom2024-04-23
1027Germany2024-03-26
1028Russia2024-04-19
1029Japan2024-04-16
1030Italy2024-04-08
1031Canada2024-04-07
1032Australia2024-04-16
1033India2024-04-22
1034Canada2024-04-08
1035Brazil2024-04-13
1036Germany2024-04-16
1037Brazil2024-04-22
1038Germany2024-04-03
1039Canada2024-04-03
1040Argentina2024-04-17
1041Canada2024-03-30
1042Germany2024-04-17
1043Japan2024-04-23
1044Spain2024-03-26
1045Canada2024-04-22
1046United Kingdom2024-04-12
1047Brazil2024-03-27
1048Australia2024-04-10
1049Brazil2024-04-24

On-Demand Data

NameIdCountryDate
Arvin M Paprocki1000Russia2024-04-18
Johnson V Glick1001Australia2024-03-31
Kadeem F Flosi1002France2024-04-04
Jones I Oldroyd1003Japan2024-04-21
Maisha M Gaucho1004Australia2024-04-17
Mujtaba V Slusarski1005Japan2024-03-27
Nicolas M Schemmer1006Japan2024-04-20
Smith D Nicka1007Russia2024-04-05
Leon Q Tollner1008Australia2024-04-16
Izzy R Rulapaugh1009Italy2024-04-18
Jennifer B Inouye1010India2024-04-23
Clifford R Chui1011India2024-03-29
Johnson N Maclead1012India2024-04-05
Mujtaba U Figeroa1013Japan2024-04-17
Alejandro B Maclead1014India2024-04-01
Izzy W Gaucho1015Australia2024-04-17
Nicolas G Malet1016France2024-04-03
Jefferson F Ruta1017Spain2024-04-06
Cody F Campain1018Japan2024-04-20
Munro S Gillian1019Canada2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody E VocelkaSpainAsiya Javayant PROPOSAL
Izzy Z ShinkoBrazilStephen Shaw NEGOTIATION
Mayumi B GillianBrazilBernardo Dominic QUALIFIED
James J AmigonIndiaBernardo Dominic NEGOTIATION
Antonio P SaylorsGermanyElwin Sharvill NEW
Wickens Y NestleUnited KingdomAmy Elsner RENEWAL
Morrow R NestleUnited KingdomStephen Shaw NEGOTIATION
Wickens A FollerUnited KingdomOnyama Limba RENEWAL
Jennifer E NickaSpainAmy Elsner NEGOTIATION
Nicolas F GarufiAustraliaIoni Bowcher RENEWAL
Julie J DarakjyUnited KingdomOnyama Limba UNQUALIFIED
Darci G CaudySpainIoni Bowcher QUALIFIED
Alejandro A FigeroaUnited KingdomAnna Fali PROPOSAL
Clifford Q FollerSpainElwin Sharvill QUALIFIED
Ashley Y NickaArgentinaAmy Elsner NEW
Kaitlin S OldroydUnited KingdomIoni Bowcher NEW
Munro I CaldareraCanadaIoni Bowcher NEGOTIATION
Francesco M SergiGermanyIoni Bowcher QUALIFIED
Wickens W GauchoUnited KingdomElwin Sharvill NEGOTIATION
Ivar H VenereRussiaIvan Magalhaes QUALIFIED
David C WieserBrazilAmy Elsner RENEWAL
Rodrigues Z ChuiFranceIoni Bowcher RENEWAL
Adams D NickaGermanyBernardo Dominic NEW
Antonio H BriddickSpainIoni Bowcher UNQUALIFIED
Munro T GarufiBrazilAmy Elsner UNQUALIFIED
Maisha C RimFranceIoni Bowcher PROPOSAL
Wickens T SaylorsAustraliaAnna Fali RENEWAL
Aruna P BologniaCanadaAmy Elsner UNQUALIFIED
Octavia M VenereArgentinaAmy Elsner RENEWAL
Costa R FollerSpainIoni Bowcher NEGOTIATION
Silvio G MaletCanadaStephen Shaw RENEWAL
Ashley E MorascaFranceAnna Fali NEGOTIATION
Misaki N PaprockiAustraliaIvan Magalhaes QUALIFIED
Murillo Q CampainIndiaXuxue Feng QUALIFIED
Izzy M VenereBrazilAnna Fali RENEWAL
Wickens G RimArgentinaIvan Magalhaes UNQUALIFIED
Munro U KolmetzUnited KingdomAnna Fali PROPOSAL
Jefferson X VocelkaSpainOnyama Limba NEW
Maria Z InouyeGermanyIoni Bowcher PROPOSAL
Julie R CaldareraArgentinaAnna Fali 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>