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 P WieserRussiaAmy Elsner PROPOSAL
Munro I PerinAustraliaBernardo Dominic QUALIFIED
Mujtaba F SchemmerAustraliaBernardo Dominic RENEWAL
Aruna V KuskoItalyOnyama Limba QUALIFIED
Maisha Z GillianRussiaOnyama Limba PROPOSAL
Leja Z DoeSpainIvan Magalhaes PROPOSAL
Silvio L IturbideRussiaAmy Elsner PROPOSAL
Jefferson I ChuiAustraliaStephen Shaw UNQUALIFIED
Clifford R RulapaughCanadaElwin Sharvill UNQUALIFIED
Alejandro K FerenczItalyAnna Fali NEGOTIATION
Ricardo V BriddickGermanyElwin Sharvill PROPOSAL
Jeanfrancois T MaletFranceOnyama Limba UNQUALIFIED
Emily U BologniaRussiaAnna Fali QUALIFIED
Smith Z MaletIndiaAnna Fali NEGOTIATION
Adams S KuskoAustraliaBernardo Dominic QUALIFIED
Ricardo M TollnerArgentinaXuxue Feng RENEWAL
Jones O WieserGermanyBernardo Dominic PROPOSAL
Misaki K NestleAustraliaIvan Magalhaes NEGOTIATION
Leon W KolmetzBrazilOnyama Limba PROPOSAL
Darci O MorascaJapanStephen Shaw RENEWAL
Francesco L KolmetzRussiaXuxue Feng RENEWAL
Silvio N SchemmerFranceAsiya Javayant PROPOSAL
Aruna V RimBrazilOnyama Limba UNQUALIFIED
Ivar S GillianSpainIoni Bowcher PROPOSAL
Morrow I MaletItalyIoni Bowcher QUALIFIED
Tony D PerinJapanIvan Magalhaes PROPOSAL
Ivar S NickaItalyElwin Sharvill RENEWAL
Claire R MaletArgentinaElwin Sharvill NEGOTIATION
Nicolas E GlickArgentinaElwin Sharvill NEW
Chavez I WieserIndiaXuxue Feng RENEWAL
Ricardo L FollerSpainElwin Sharvill NEW
Arvin K PerinSpainXuxue Feng RENEWAL
Misaki T GillianIndiaIvan Magalhaes NEGOTIATION
Smith A NickaFranceIvan Magalhaes RENEWAL
Octavia X NestleCanadaStephen Shaw NEW
Isabel J FerenczIndiaXuxue Feng NEW
Faith E SchemmerJapanIvan Magalhaes NEGOTIATION
Wickens Y DilliardSpainAmy Elsner NEGOTIATION
Greenwood F GauchoUnited KingdomXuxue Feng PROPOSAL
Faith G FerenczJapanStephen Shaw QUALIFIED
Ashley L NickaFranceIoni Bowcher RENEWAL
Maisha D ShinkoIndiaAmy Elsner PROPOSAL
Leja Z RulapaughBrazilOnyama Limba NEW
Izzy G SergiSpainXuxue Feng NEGOTIATION
Murillo W AmigonCanadaIoni Bowcher UNQUALIFIED
Francesco H CaldareraAustraliaBernardo Dominic NEW
Isabel I SchemmerIndiaIvan Magalhaes PROPOSAL
Deepesh L SergiItalyBernardo Dominic QUALIFIED
Emily Z AlbaresGermanyXuxue Feng PROPOSAL
Kadeem C IturbideJapanOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Octavia E RulapaughBrazilAmy Elsner UNQUALIFIED
Juan B RoysterBrazilXuxue Feng NEGOTIATION
Silvio K MorascaItalyOnyama Limba RENEWAL
Octavia Y GauchoBrazilAmy Elsner UNQUALIFIED
Claire X BowleyJapanOnyama Limba NEW
Kadeem W DarakjyBrazilIoni Bowcher NEW
Arvin M NickaUnited KingdomElwin Sharvill PROPOSAL
Tony Y TollnerRussiaElwin Sharvill NEW
Rodrigues U BowleyUnited KingdomIoni Bowcher PROPOSAL
Morrow M KuskoJapanAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon W RulapaughArgentina2024-03-11Buckley Miller Wright NEW35Xuxue Feng
1001Arvin X MacleadJapan2024-03-18King, Christopher A Esq NEGOTIATION70Onyama Limba
1002Salvatore O DoeAustralia2024-03-13Feiner Bros UNQUALIFIED83Amy Elsner
1003Morrow H MaletFrance2024-03-10Chanay, Jeffrey A Esq NEGOTIATION98Ivan Magalhaes
1004Aika R FlosiCanada2024-03-03Chanay, Jeffrey A Esq PROPOSAL16Onyama Limba
1005Ashley I GarufiBrazil2024-02-26Commercial Press RENEWAL12Ivan Magalhaes
1006Faith U FlosiJapan2024-03-01Benton, John B Jr QUALIFIED29Onyama Limba
1007Clifford E RutaArgentina2024-02-26Rangoni Of Florence QUALIFIED89Elwin Sharvill
1008Salvatore B ShinkoUnited Kingdom2024-02-26Buckley Miller Wright RENEWAL41Amy Elsner
1009Isabel P ButtSpain2024-02-19Dorl, James J Esq RENEWAL85Onyama Limba
1010Emily W ShinkoAustralia2024-03-05Rousseaux, Michael Esq NEW13Amy Elsner
1011Murillo X MarrierGermany2024-02-22Morlong Associates PROPOSAL11Stephen Shaw
1012Tony H FerenczArgentina2024-02-29Commercial Press NEW99Onyama Limba
1013Kadeem D VocelkaBrazil2024-03-17Dorl, James J Esq RENEWAL4Ivan Magalhaes
1014Isabel W PaprockiIndia2024-02-27Feltz Printing Service RENEWAL85Asiya Javayant
1015Leon N SaylorsJapan2024-02-22Rousseaux, Michael Esq PROPOSAL20Stephen Shaw
1016Chavez G RulapaughArgentina2024-03-01Chemel, James L Cpa QUALIFIED97Bernardo Dominic
1017Misaki B NestleArgentina2024-03-16Chanay, Jeffrey A Esq UNQUALIFIED15Ioni Bowcher
1018Antonio D GauchoGermany2024-03-16Chapman, Ross E Esq QUALIFIED34Ivan Magalhaes
1019Murillo B ChuiAustralia2024-03-13Printing Dimensions NEW15Anna Fali
1020Jeanfrancois L GlickAustralia2024-03-07Feiner Bros UNQUALIFIED65Xuxue Feng
1021Tony F GauchoSpain2024-02-25Feiner Bros UNQUALIFIED63Stephen Shaw
1022Adams Z KolmetzBrazil2024-02-20King, Christopher A Esq NEGOTIATION14Ioni Bowcher
1023Adams X VenereArgentina2024-02-24Buckley Miller Wright QUALIFIED17Ioni Bowcher
1024Kadeem Q MacleadAustralia2024-03-14Buckley Miller Wright PROPOSAL21Ivan Magalhaes
1025Jones N KuskoSpain2024-03-14Dorl, James J Esq NEGOTIATION19Bernardo Dominic
1026Misaki L PerinGermany2024-03-15Buckley Miller Wright QUALIFIED16Stephen Shaw
1027Alejandro A RoysterIndia2024-03-15Rousseaux, Michael Esq UNQUALIFIED55Stephen Shaw
1028Munro X DarakjyFrance2024-03-15Buckley Miller Wright QUALIFIED23Bernardo Dominic
1029Aditya R FlosiUnited Kingdom2024-03-17Morlong Associates QUALIFIED64Stephen Shaw
1030Sinclair G MacleadJapan2024-02-25Benton, John B Jr PROPOSAL88Amy Elsner
1031Morrow L StensethSpain2024-03-10Printing Dimensions UNQUALIFIED93Elwin Sharvill
1032Alejandro S VocelkaItaly2024-02-28Printing Dimensions RENEWAL23Stephen Shaw
1033Faith J SaylorsUnited Kingdom2024-02-21Rousseaux, Michael Esq QUALIFIED78Onyama Limba
1034Ivar A VenereCanada2024-02-26Buckley Miller Wright QUALIFIED47Asiya Javayant
1035Jones Y DarakjyAustralia2024-03-09Rangoni Of Florence RENEWAL80Amy Elsner
1036James S RimCanada2024-03-09Chapman, Ross E Esq PROPOSAL18Ioni Bowcher
1037David Y ChuiUnited Kingdom2024-03-13King, Christopher A Esq PROPOSAL2Ivan Magalhaes
1038Alejandro B AlbaresAustralia2024-03-09Dorl, James J Esq RENEWAL99Ivan Magalhaes
1039Cody B KuskoArgentina2024-02-19Rangoni Of Florence NEW91Ioni Bowcher
1040Ashley Q RulapaughGermany2024-03-18Printing Dimensions UNQUALIFIED20Asiya Javayant
1041Silvio P NestleSpain2024-02-28Dorl, James J Esq NEGOTIATION97Stephen Shaw
1042Faith R BriddickJapan2024-02-19Feiner Bros NEGOTIATION97Ivan Magalhaes
1043Julie N NestleCanada2024-02-18King, Christopher A Esq QUALIFIED7Amy Elsner
1044Jeanfrancois S VenereBrazil2024-02-21Feiner Bros PROPOSAL31Amy Elsner
1045Nicolas K FollerUnited Kingdom2024-02-26King, Christopher A Esq RENEWAL64Stephen Shaw
1046Aruna P GillianArgentina2024-02-26Commercial Press QUALIFIED42Xuxue Feng
1047Mujtaba S PaprockiAustralia2024-03-03Benton, John B Jr RENEWAL73Elwin Sharvill
1048Arvin S RulapaughRussia2024-03-08Morlong Associates PROPOSAL16Asiya Javayant
1049Wickens S FlosiBrazil2024-02-26King, Christopher A Esq NEGOTIATION74Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Francesco L NestleBrazilBernardo Dominic QUALIFIED
Deepesh T RulapaughItalyIoni Bowcher PROPOSAL
Aruna F ShinkoIndiaBernardo Dominic RENEWAL
Leja D BologniaFranceStephen Shaw PROPOSAL
Octavia O MaletAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois M WieserRussiaAmy Elsner NEGOTIATION
Leon U VocelkaItalyAnna Fali PROPOSAL
Antonio V VenereIndiaAsiya Javayant PROPOSAL
Julie Z ShinkoIndiaBernardo Dominic UNQUALIFIED
Ricardo Q SergiCanadaAmy Elsner NEW
Arvin V RutaCanadaAsiya Javayant NEW
Kadeem E WhobreyUnited KingdomAnna Fali NEW
Kadeem H GlickFranceXuxue Feng QUALIFIED
Ricardo H GarufiFranceOnyama Limba UNQUALIFIED
Emily Z RoysterArgentinaIvan Magalhaes QUALIFIED
Adams J BriddickGermanyBernardo Dominic QUALIFIED
Francesco N BriddickArgentinaBernardo Dominic NEW
Izzy J RoysterBrazilIoni Bowcher NEGOTIATION
Sinclair L InouyeFranceAnna Fali PROPOSAL
Misaki J ButtGermanyBernardo Dominic PROPOSAL
Izzy B OstroskyCanadaXuxue Feng RENEWAL
Salvatore A KolmetzAustraliaElwin Sharvill UNQUALIFIED
Aruna R RutaIndiaIoni Bowcher QUALIFIED
Kaitlin N BologniaIndiaOnyama Limba NEGOTIATION
Munro Q CaldareraRussiaIvan Magalhaes PROPOSAL
Costa X BriddickSpainAsiya Javayant PROPOSAL
Arvin R CaldareraGermanyAsiya Javayant RENEWAL
Maria O CaldareraAustraliaIvan Magalhaes RENEWAL
Aika T NickaIndiaIvan Magalhaes QUALIFIED
Leja S PerinUnited KingdomOnyama Limba QUALIFIED
Greenwood L ChuiBrazilAmy Elsner QUALIFIED
Ricardo E PaprockiUnited KingdomXuxue Feng NEGOTIATION
Aika W PoquetteCanadaAsiya Javayant NEGOTIATION
Antonio E MorascaIndiaBernardo Dominic NEW
Kaitlin G WieserAustraliaIvan Magalhaes QUALIFIED
Salvatore S FlosiIndiaBernardo Dominic PROPOSAL
Murillo K OstroskyFranceAsiya Javayant QUALIFIED
Ivar S GillianGermanyOnyama Limba NEW
Julie S FerenczJapanBernardo Dominic NEGOTIATION
James R IturbideItalyElwin Sharvill PROPOSAL
Julie P TollnerJapanIvan Magalhaes RENEWAL
James B FerenczCanadaIoni Bowcher PROPOSAL
Johnson V StockhamGermanyAnna Fali NEW
Juan U VocelkaIndiaXuxue Feng PROPOSAL
Tony E DoeCanadaOnyama Limba QUALIFIED
Greenwood G MacleadSpainIvan Magalhaes UNQUALIFIED
Faith K CaudyItalyBernardo Dominic PROPOSAL
Arvin V MacleadFranceAnna Fali UNQUALIFIED
Ivar L WhobreyBrazilStephen Shaw NEW
Misaki B MaletGermanyElwin Sharvill PROPOSAL
Frozen Columns
Name
Salvatore D Whobrey
David X Venere
Isabel F Shinko
Leja C Slusarski
Francesco S Royster
Mayumi G Garufi
Smith Z Ruta
Jones J Saylors
Kadeem T Butt
Alejandro U Foller
Darci J Inouye
Maisha C Campain
Morrow W Doe
Juan O Briddick
Izzy E Venere
Greenwood R Nestle
Julie E Paprocki
Arvin Y Morasca
Arvin O Doe
Kaitlin W Royster
Ivar L Inouye
Greenwood P Perin
Munro O Saylors
Jennifer T Gaucho
Smith H Nestle
Antonio T Ruta
Julie M Bowley
Jefferson R Ostrosky
Johnson T Rim
Antonio M Chui
Ivar H Rim
Aruna H Gaucho
Jennifer M Slusarski
Aditya E Waycott
Salvatore I Ostrosky
Wickens W Glick
Leja A Inouye
Wickens G Ostrosky
Clifford B Morasca
Greenwood Z Poquette
Clifford A Iturbide
Ashley B Ferencz
Aika P Garufi
Antonio G Caldarera
Aditya E Maclead
Ashley U Caldarera
Ricardo V Malet
Isabel T Slusarski
Nicolas V Iturbide
Izzy O Maclead
IdCountryDate
1000Germany2024-03-17
1001Italy2024-03-15
1002Italy2024-03-04
1003Australia2024-03-07
1004Russia2024-03-12
1005United Kingdom2024-02-29
1006Argentina2024-02-28
1007Germany2024-02-24
1008United Kingdom2024-02-25
1009Spain2024-03-02
1010Australia2024-03-11
1011Argentina2024-03-05
1012Brazil2024-03-15
1013India2024-02-24
1014United Kingdom2024-02-20
1015Spain2024-03-02
1016Australia2024-03-13
1017India2024-03-11
1018Germany2024-03-06
1019Brazil2024-03-18
1020Italy2024-02-18
1021Brazil2024-02-19
1022Argentina2024-03-10
1023Argentina2024-03-13
1024Brazil2024-02-26
1025Japan2024-02-24
1026Spain2024-03-17
1027Russia2024-02-29
1028Russia2024-03-11
1029Australia2024-03-10
1030Japan2024-03-09
1031United Kingdom2024-03-12
1032Australia2024-02-29
1033Spain2024-03-01
1034Italy2024-03-16
1035India2024-03-05
1036Japan2024-02-22
1037Canada2024-03-09
1038Brazil2024-03-16
1039India2024-03-10
1040France2024-03-13
1041Russia2024-02-29
1042Italy2024-02-24
1043Spain2024-03-10
1044Japan2024-03-03
1045Germany2024-02-26
1046Brazil2024-02-21
1047Canada2024-03-10
1048Russia2024-03-09
1049Japan2024-03-10

On-Demand Data

NameIdCountryDate
Kadeem H Caudy1000Brazil2024-03-18
Smith R Poquette1001Brazil2024-02-20
Ashley P Shinko1002United Kingdom2024-03-11
Sinclair Q Campain1003Canada2024-03-07
James P Rim1004Germany2024-03-06
Alejandro L Saylors1005India2024-03-04
Ricardo M Figeroa1006Germany2024-03-17
Leja H Caudy1007Brazil2024-02-18
Greenwood T Whobrey1008Canada2024-03-03
David R Briddick1009Argentina2024-02-21
Jeanfrancois J Glick1010France2024-03-14
David K Royster1011Brazil2024-02-19
David Z Nestle1012Japan2024-03-06
Jefferson N Nestle1013Spain2024-02-21
Leja I Glick1014Brazil2024-03-05
Darci X Ferencz1015Russia2024-03-03
Greenwood Y Vocelka1016Russia2024-03-06
Nicolas X Perin1017Spain2024-03-18
James J Royster1018Canada2024-03-16
Sinclair P Saylors1019Canada2024-03-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki T CampainSpainStephen Shaw UNQUALIFIED
Jones C DoeSpainStephen Shaw NEW
Greenwood O MacleadRussiaStephen Shaw UNQUALIFIED
Antonio N SergiCanadaAsiya Javayant QUALIFIED
Isabel F AlbaresJapanIvan Magalhaes PROPOSAL
Leja D FlosiRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois V SchemmerBrazilAmy Elsner NEGOTIATION
Misaki Z WaycottIndiaElwin Sharvill NEGOTIATION
Cody E RimJapanBernardo Dominic RENEWAL
Leon R RimFranceAsiya Javayant NEGOTIATION
Ashley L MaletItalyOnyama Limba QUALIFIED
Costa L ChuiGermanyIoni Bowcher RENEWAL
Ricardo D GlickFranceIoni Bowcher NEGOTIATION
Ivar U ButtSpainAnna Fali QUALIFIED
Darci D DarakjyUnited KingdomAnna Fali QUALIFIED
Johnson T FerenczFranceElwin Sharvill UNQUALIFIED
Jefferson C MacleadArgentinaIoni Bowcher NEGOTIATION
Sinclair I MorascaIndiaXuxue Feng RENEWAL
Mujtaba N KuskoBrazilAsiya Javayant PROPOSAL
Jennifer W MaletCanadaXuxue Feng QUALIFIED
Francesco R MorascaItalyAsiya Javayant NEW
Alejandro B SergiSpainAsiya Javayant NEW
Nicolas G MarrierFranceElwin Sharvill RENEWAL
Arvin Q OldroydArgentinaIoni Bowcher NEGOTIATION
Nicolas G StockhamJapanXuxue Feng PROPOSAL
Costa I IturbideFranceIvan Magalhaes UNQUALIFIED
Chavez F InouyeGermanyStephen Shaw NEGOTIATION
Murillo I GillianGermanyOnyama Limba NEGOTIATION
Leon K KuskoGermanyXuxue Feng RENEWAL
Costa T PaprockiAustraliaAmy Elsner RENEWAL
Faith V RimItalyIvan Magalhaes NEGOTIATION
Faith M MarrierSpainXuxue Feng PROPOSAL
Emily X WhobreyCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois U RutaArgentinaElwin Sharvill QUALIFIED
Aika A VenereItalyAsiya Javayant NEGOTIATION
Salvatore W MacleadArgentinaAmy Elsner NEGOTIATION
Silvio S IturbideJapanIoni Bowcher QUALIFIED
Ricardo H MacleadAustraliaIoni Bowcher RENEWAL
Rodrigues T ShinkoItalyIvan Magalhaes NEGOTIATION
Alejandro F BowleyArgentinaElwin Sharvill NEGOTIATION

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