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 M WieserItalyIoni Bowcher UNQUALIFIED
Octavia V MaletGermanyElwin Sharvill QUALIFIED
Izzy K OstroskyJapanStephen Shaw NEGOTIATION
Costa Z KuskoRussiaAnna Fali NEW
Misaki S SchemmerFranceElwin Sharvill UNQUALIFIED
Adams J SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Leja M PoquetteJapanBernardo Dominic UNQUALIFIED
Wickens T OstroskySpainIoni Bowcher RENEWAL
Mujtaba V NestleArgentinaAsiya Javayant RENEWAL
Nicolas E GlickRussiaAnna Fali NEW
Salvatore N NickaGermanyOnyama Limba NEGOTIATION
Munro E WaycottIndiaXuxue Feng PROPOSAL
Maisha J KolmetzUnited KingdomBernardo Dominic PROPOSAL
David K FerenczJapanIvan Magalhaes QUALIFIED
Faith T SchemmerAustraliaAnna Fali NEGOTIATION
Ivar T KuskoRussiaOnyama Limba PROPOSAL
Julie A DoeIndiaIvan Magalhaes NEGOTIATION
Johnson X StensethAustraliaElwin Sharvill UNQUALIFIED
Leon A CaldareraRussiaIvan Magalhaes UNQUALIFIED
Clifford R DoeBrazilXuxue Feng UNQUALIFIED
Alejandro Q ChuiSpainXuxue Feng NEW
Sinclair Q PerinAustraliaBernardo Dominic RENEWAL
Aruna U FigeroaItalyBernardo Dominic PROPOSAL
Silvio Y MacleadGermanyElwin Sharvill NEGOTIATION
Rodrigues N RoysterBrazilIvan Magalhaes NEW
Aditya Z RimIndiaAnna Fali NEW
Aika U ChuiItalyOnyama Limba NEW
Julie V BologniaAustraliaAmy Elsner UNQUALIFIED
Clifford A AlbaresBrazilAnna Fali RENEWAL
Juan D MarrierGermanyAnna Fali QUALIFIED
David M GlickCanadaElwin Sharvill NEW
Jones Q WhobreyArgentinaElwin Sharvill QUALIFIED
Emily V MaletItalyOnyama Limba NEGOTIATION
Silvio A AlbaresArgentinaOnyama Limba RENEWAL
Aika P ChuiCanadaIoni Bowcher QUALIFIED
Kadeem C OldroydJapanElwin Sharvill RENEWAL
Chavez F MaletBrazilXuxue Feng RENEWAL
Stacey T StensethArgentinaIoni Bowcher QUALIFIED
Greenwood I SchemmerArgentinaAsiya Javayant PROPOSAL
James G DoeIndiaStephen Shaw PROPOSAL
Tony D VocelkaRussiaAsiya Javayant NEW
Clifford E KuskoBrazilOnyama Limba QUALIFIED
Leon T CampainAustraliaIvan Magalhaes NEGOTIATION
Maisha D MacleadItalyIvan Magalhaes QUALIFIED
Maria D InouyeRussiaAmy Elsner NEGOTIATION
Tony K PaprockiCanadaAsiya Javayant PROPOSAL
Salvatore E StockhamSpainXuxue Feng QUALIFIED
Stacey M ShinkoSpainBernardo Dominic NEW
Cody J PaprockiFranceAsiya Javayant RENEWAL
Aditya Y MaletRussiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore M WhobreyArgentinaStephen Shaw PROPOSAL
Octavia D BriddickAustraliaIvan Magalhaes RENEWAL
Jones D GauchoItalyOnyama Limba RENEWAL
Alejandro Z SchemmerAustraliaElwin Sharvill NEGOTIATION
Mujtaba H ChuiSpainAnna Fali QUALIFIED
Sinclair M GarufiRussiaAmy Elsner PROPOSAL
Isabel U RulapaughAustraliaAsiya Javayant PROPOSAL
Isabel A ChuiGermanyAmy Elsner QUALIFIED
Octavia M DoeJapanBernardo Dominic PROPOSAL
Chavez D StockhamRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem I AmigonGermany2024-04-15Benton, John B Jr PROPOSAL59Ioni Bowcher
1001Emily U CaldareraFrance2024-04-14Morlong Associates PROPOSAL44Asiya Javayant
1002Juan N PaprockiUnited Kingdom2024-03-29Morlong Associates PROPOSAL82Xuxue Feng
1003Antonio C WaycottArgentina2024-04-18Commercial Press QUALIFIED6Ioni Bowcher
1004Julie U FigeroaJapan2024-04-16Printing Dimensions RENEWAL73Asiya Javayant
1005Leon N RoysterItaly2024-04-07Chanay, Jeffrey A Esq NEGOTIATION70Ioni Bowcher
1006Ashley M OldroydRussia2024-04-26Printing Dimensions QUALIFIED10Amy Elsner
1007Misaki L ButtBrazil2024-04-06Truhlar And Truhlar Attys PROPOSAL56Onyama Limba
1008Wickens X OldroydGermany2024-04-24Truhlar And Truhlar Attys QUALIFIED38Ivan Magalhaes
1009Maria T AlbaresIndia2024-04-26Chanay, Jeffrey A Esq PROPOSAL47Bernardo Dominic
1010Munro A MacleadSpain2024-04-03Rousseaux, Michael Esq NEW16Amy Elsner
1011Jones L MorascaAustralia2024-04-23Dorl, James J Esq PROPOSAL33Asiya Javayant
1012Aika Z TollnerUnited Kingdom2024-03-31Benton, John B Jr NEW98Amy Elsner
1013Mayumi Z RimIndia2024-04-15Chapman, Ross E Esq QUALIFIED54Onyama Limba
1014Smith J WieserAustralia2024-04-25King, Christopher A Esq UNQUALIFIED15Asiya Javayant
1015Alejandro X AmigonGermany2024-04-06Buckley Miller Wright UNQUALIFIED61Elwin Sharvill
1016Rodrigues O AmigonGermany2024-04-16Chanay, Jeffrey A Esq UNQUALIFIED93Elwin Sharvill
1017Faith B WieserRussia2024-04-16Dorl, James J Esq NEGOTIATION26Amy Elsner
1018Silvio N CaudyRussia2024-04-14Feiner Bros PROPOSAL15Bernardo Dominic
1019Nicolas S StockhamAustralia2024-04-21Chanay, Jeffrey A Esq NEGOTIATION90Bernardo Dominic
1020Kadeem W MarrierCanada2024-04-26Buckley Miller Wright UNQUALIFIED94Amy Elsner
1021Greenwood A RoysterJapan2024-04-07Morlong Associates RENEWAL26Bernardo Dominic
1022Octavia F DoeCanada2024-03-29Truhlar And Truhlar Attys UNQUALIFIED37Onyama Limba
1023Costa M SergiBrazil2024-04-12Commercial Press PROPOSAL5Ivan Magalhaes
1024Claire C KolmetzSpain2024-04-13Rangoni Of Florence UNQUALIFIED90Onyama Limba
1025Faith M RutaUnited Kingdom2024-04-01Chapman, Ross E Esq RENEWAL58Elwin Sharvill
1026Octavia D GillianUnited Kingdom2024-04-15Dorl, James J Esq NEW37Anna Fali
1027Isabel U StensethGermany2024-04-08Truhlar And Truhlar Attys PROPOSAL55Amy Elsner
1028Munro T FerenczRussia2024-04-16King, Christopher A Esq NEW80Stephen Shaw
1029Julie K RulapaughGermany2024-04-15Rangoni Of Florence RENEWAL57Elwin Sharvill
1030Chavez I BriddickBrazil2024-04-13Buckley Miller Wright NEGOTIATION6Ioni Bowcher
1031Jeanfrancois U OldroydIndia2024-03-29King, Christopher A Esq PROPOSAL31Elwin Sharvill
1032Sinclair G GarufiUnited Kingdom2024-04-19Benton, John B Jr NEW6Onyama Limba
1033Kaitlin D GauchoArgentina2024-03-29Feltz Printing Service PROPOSAL28Ioni Bowcher
1034Mayumi T TollnerIndia2024-04-03Chapman, Ross E Esq PROPOSAL66Xuxue Feng
1035Arvin S RutaAustralia2024-04-15Buckley Miller Wright RENEWAL82Bernardo Dominic
1036Arvin B VocelkaIndia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED74Ioni Bowcher
1037Murillo R AlbaresGermany2024-04-07Rousseaux, Michael Esq RENEWAL70Asiya Javayant
1038Emily G VocelkaSpain2024-04-03Feltz Printing Service NEW92Bernardo Dominic
1039Mayumi W BologniaSpain2024-04-12Chapman, Ross E Esq NEW13Ioni Bowcher
1040Juan C BowleyRussia2024-04-15Chanay, Jeffrey A Esq NEW24Bernardo Dominic
1041Johnson H MorascaItaly2024-04-08Commercial Press QUALIFIED68Onyama Limba
1042Silvio C MarrierBrazil2024-03-29Dorl, James J Esq UNQUALIFIED91Onyama Limba
1043Smith E PoquetteCanada2024-04-20Buckley Miller Wright RENEWAL80Asiya Javayant
1044Munro O CaldareraAustralia2024-04-18King, Christopher A Esq UNQUALIFIED12Anna Fali
1045Leon M AlbaresBrazil2024-04-11Truhlar And Truhlar Attys NEW98Elwin Sharvill
1046Ricardo O CaudyBrazil2024-04-05Morlong Associates QUALIFIED4Asiya Javayant
1047Leon C GauchoGermany2024-04-11Dorl, James J Esq NEGOTIATION60Ioni Bowcher
1048Munro Z MaletItaly2024-03-30Chanay, Jeffrey A Esq PROPOSAL29Bernardo Dominic
1049Ashley W CaudyItaly2024-04-06Rangoni Of Florence PROPOSAL86Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Sinclair Y MorascaSpainAmy Elsner NEW
Francesco D FollerAustraliaIoni Bowcher NEW
Arvin G ButtCanadaXuxue Feng RENEWAL
Silvio P CaudyUnited KingdomElwin Sharvill RENEWAL
Stacey P GarufiBrazilIoni Bowcher PROPOSAL
David A AlbaresBrazilIoni Bowcher RENEWAL
Sinclair X BowleyGermanyXuxue Feng QUALIFIED
Cody N WieserCanadaAsiya Javayant NEW
Mayumi J WieserIndiaXuxue Feng RENEWAL
Izzy O RimIndiaAnna Fali QUALIFIED
Antonio U MorascaJapanOnyama Limba NEGOTIATION
Cody T IturbideAustraliaAmy Elsner UNQUALIFIED
Kadeem U GlickArgentinaStephen Shaw NEW
Aditya I SchemmerUnited KingdomAsiya Javayant PROPOSAL
Claire I DilliardAustraliaAmy Elsner NEW
Faith J SchemmerJapanStephen Shaw QUALIFIED
Maria C PaprockiCanadaAsiya Javayant PROPOSAL
Tony V CampainCanadaXuxue Feng PROPOSAL
Aruna J BowleyJapanIoni Bowcher PROPOSAL
Silvio N CaldareraJapanOnyama Limba RENEWAL
Misaki O SergiIndiaXuxue Feng NEW
Kaitlin W IturbideBrazilIoni Bowcher UNQUALIFIED
Sinclair W NestleIndiaStephen Shaw UNQUALIFIED
Jones X OldroydBrazilElwin Sharvill UNQUALIFIED
Claire J AlbaresJapanBernardo Dominic PROPOSAL
Octavia I CampainUnited KingdomAnna Fali PROPOSAL
Johnson D DilliardBrazilElwin Sharvill NEW
Octavia T BologniaCanadaBernardo Dominic QUALIFIED
Misaki O GarufiAustraliaStephen Shaw NEGOTIATION
Deepesh U MaletBrazilOnyama Limba RENEWAL
Aruna E FerenczAustraliaBernardo Dominic PROPOSAL
Kadeem X WaycottSpainElwin Sharvill UNQUALIFIED
Faith J BriddickIndiaIvan Magalhaes NEW
Mayumi T GauchoRussiaAmy Elsner RENEWAL
Jones C CampainIndiaIoni Bowcher QUALIFIED
Mayumi F BriddickAustraliaIoni Bowcher RENEWAL
Chavez K KolmetzJapanAsiya Javayant QUALIFIED
Emily Y CaldareraCanadaAsiya Javayant NEW
Antonio H CaldareraJapanAnna Fali QUALIFIED
Wickens Y MorascaRussiaOnyama Limba QUALIFIED
Munro P MacleadItalyXuxue Feng NEW
Wickens G PerinIndiaAnna Fali UNQUALIFIED
Jeanfrancois S VocelkaUnited KingdomOnyama Limba NEGOTIATION
Jones P PoquetteArgentinaElwin Sharvill NEGOTIATION
Sinclair Q AlbaresJapanAsiya Javayant QUALIFIED
Ashley B PoquetteBrazilAsiya Javayant NEW
Murillo D ShinkoItalyBernardo Dominic NEGOTIATION
Alejandro L PerinFranceBernardo Dominic RENEWAL
Aruna D PaprockiSpainOnyama Limba PROPOSAL
Jefferson F SergiGermanyAsiya Javayant PROPOSAL
Frozen Columns
Name
Izzy A Rim
Emily N Maclead
Emily Z Ostrosky
Salvatore O Royster
Deepesh X Butt
Jefferson G Chui
Izzy P Campain
Jefferson D Butt
Aika R Waycott
Antonio R Stockham
Jefferson F Nestle
Stacey M Flosi
Alejandro K Ferencz
Ricardo B Bowley
Adams K Stockham
Octavia W Caldarera
Maria B Ferencz
Salvatore E Nestle
Faith K Maclead
Alejandro M Campain
Jeanfrancois P Paprocki
Deepesh X Marrier
Greenwood N Darakjy
Leja B Rim
James S Perin
Mujtaba D Morasca
Ashley D Amigon
James V Maclead
Kadeem U Ruta
Francesco R Stenseth
Julie U Whobrey
Jeanfrancois U Kolmetz
Silvio R Amigon
Juan E Amigon
David D Ostrosky
Rodrigues W Gillian
Costa G Caldarera
Mayumi C Waycott
Francesco N Flosi
Stacey P Doe
Arvin W Slusarski
Misaki A Darakjy
Juan L Flosi
Ivar A Inouye
James Z Nicka
Ivar N Nicka
Murillo M Gaucho
Rodrigues G Paprocki
Leon I Maclead
Arvin D Vocelka
IdCountryDate
1000Japan2024-04-06
1001Russia2024-04-01
1002France2024-04-04
1003Argentina2024-04-06
1004India2024-04-22
1005Argentina2024-04-16
1006France2024-04-19
1007Russia2024-03-31
1008Germany2024-03-31
1009Brazil2024-04-15
1010Argentina2024-04-12
1011India2024-03-30
1012Canada2024-04-17
1013France2024-04-10
1014Japan2024-04-04
1015United Kingdom2024-04-25
1016Germany2024-04-26
1017Canada2024-04-11
1018United Kingdom2024-04-17
1019India2024-04-05
1020Japan2024-04-04
1021France2024-04-06
1022Japan2024-04-01
1023France2024-03-29
1024France2024-04-14
1025India2024-04-08
1026Japan2024-04-03
1027Japan2024-04-09
1028Italy2024-04-03
1029France2024-04-12
1030Australia2024-04-12
1031Germany2024-04-16
1032Canada2024-04-06
1033Germany2024-04-11
1034India2024-03-28
1035Italy2024-04-26
1036Germany2024-04-02
1037Germany2024-03-28
1038Brazil2024-03-30
1039Russia2024-04-19
1040Canada2024-04-17
1041United Kingdom2024-04-03
1042India2024-04-11
1043Brazil2024-04-20
1044Argentina2024-04-22
1045Russia2024-04-26
1046Japan2024-04-07
1047France2024-04-18
1048Brazil2024-04-03
1049Germany2024-04-24

On-Demand Data

NameIdCountryDate
Murillo R Inouye1000United Kingdom2024-04-22
Maisha Y Rulapaugh1001Japan2024-03-30
Adams E Venere1002Italy2024-04-15
Mayumi V Perin1003Canada2024-04-01
Alejandro W Chui1004India2024-04-05
Jeanfrancois Z Iturbide1005India2024-04-10
Leja M Tollner1006Germany2024-04-19
Emily S Garufi1007India2024-04-13
Kadeem U Perin1008Australia2024-04-21
David T Campain1009Argentina2024-04-10
Kadeem P Wieser1010Canada2024-04-15
Jennifer S Caldarera1011Brazil2024-04-13
Munro R Foller1012Argentina2024-04-08
Antonio C Marrier1013Italy2024-04-18
Aditya K Flosi1014Spain2024-03-31
Stacey T Albares1015Germany2024-04-21
Deepesh Q Oldroyd1016Argentina2024-04-11
Claire N Maclead1017United Kingdom2024-04-04
Octavia D Kolmetz1018Australia2024-04-10
Claire C Albares1019Spain2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody L RimBrazilIvan Magalhaes QUALIFIED
Jones J KuskoBrazilAsiya Javayant QUALIFIED
Maria L FollerRussiaOnyama Limba NEGOTIATION
Munro X FlosiItalyOnyama Limba NEW
Mayumi T CaldareraItalyAmy Elsner NEGOTIATION
Claire Q RoysterFranceElwin Sharvill RENEWAL
Johnson E FerenczArgentinaStephen Shaw NEW
Clifford B GarufiUnited KingdomAsiya Javayant NEGOTIATION
Aditya G TollnerBrazilStephen Shaw RENEWAL
Aditya D NestleJapanElwin Sharvill QUALIFIED
Julie Q CaudyIndiaAsiya Javayant UNQUALIFIED
Wickens J RulapaughGermanyStephen Shaw RENEWAL
Jeanfrancois E GlickRussiaIvan Magalhaes UNQUALIFIED
Ivar C VenereUnited KingdomXuxue Feng RENEWAL
Francesco S NestleIndiaAmy Elsner PROPOSAL
Smith V DilliardArgentinaXuxue Feng UNQUALIFIED
Mujtaba B CaudyArgentinaStephen Shaw UNQUALIFIED
Aika A ShinkoJapanIoni Bowcher PROPOSAL
Wickens S GarufiCanadaIoni Bowcher NEGOTIATION
Wickens K AmigonBrazilAsiya Javayant QUALIFIED
Deepesh N FigeroaAustraliaOnyama Limba NEGOTIATION
Murillo C StockhamFranceAmy Elsner NEGOTIATION
Ivar E ButtArgentinaAnna Fali QUALIFIED
Isabel Q PerinUnited KingdomStephen Shaw PROPOSAL
Claire Y BologniaBrazilAsiya Javayant NEW
Sinclair K MarrierAustraliaAsiya Javayant PROPOSAL
Alejandro Y SlusarskiIndiaAnna Fali QUALIFIED
Izzy C FigeroaBrazilIoni Bowcher NEW
Arvin F DilliardItalyAnna Fali NEW
Wickens C AlbaresCanadaBernardo Dominic UNQUALIFIED
Arvin U WieserAustraliaBernardo Dominic NEW
Francesco V BologniaUnited KingdomOnyama Limba QUALIFIED
Johnson W PoquetteSpainAsiya Javayant NEGOTIATION
Francesco E MacleadFranceStephen Shaw RENEWAL
Mayumi G GarufiFranceStephen Shaw PROPOSAL
Aika I SergiCanadaElwin Sharvill UNQUALIFIED
Octavia V PaprockiGermanyStephen Shaw PROPOSAL
Aika U BologniaCanadaAmy Elsner RENEWAL
Jefferson S KolmetzUnited KingdomAsiya Javayant QUALIFIED
Isabel Y DoeRussiaElwin Sharvill NEW

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