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
David V RoysterJapanXuxue Feng NEW
Adams D ShinkoGermanyAsiya Javayant RENEWAL
Tony A MaletItalyAnna Fali NEW
Johnson D SergiIndiaXuxue Feng NEW
Julie C CaudyItalyAsiya Javayant NEGOTIATION
Jefferson H CaudyRussiaAmy Elsner UNQUALIFIED
Ivar X SergiIndiaAmy Elsner NEGOTIATION
Wickens D BowleyRussiaBernardo Dominic PROPOSAL
Arvin Y InouyeCanadaStephen Shaw UNQUALIFIED
Silvio M AmigonSpainElwin Sharvill NEGOTIATION
Munro J AlbaresFranceXuxue Feng PROPOSAL
Antonio C GarufiUnited KingdomBernardo Dominic QUALIFIED
Silvio D StensethJapanIvan Magalhaes RENEWAL
David B WieserSpainAnna Fali PROPOSAL
Wickens U DarakjyUnited KingdomXuxue Feng QUALIFIED
David K DoeAustraliaElwin Sharvill NEW
Emily B StockhamSpainIvan Magalhaes NEW
Murillo Q MaletItalyElwin Sharvill NEW
Stacey T RimSpainStephen Shaw NEW
Maria P RoysterAustraliaIvan Magalhaes PROPOSAL
Darci B GillianIndiaAsiya Javayant NEW
Aditya O DilliardUnited KingdomStephen Shaw RENEWAL
Faith C SergiSpainAnna Fali QUALIFIED
Aika U DarakjyCanadaBernardo Dominic NEGOTIATION
Arvin N NickaCanadaBernardo Dominic UNQUALIFIED
Costa P FlosiItalyIvan Magalhaes QUALIFIED
Nicolas I WieserBrazilXuxue Feng UNQUALIFIED
Silvio X RoysterBrazilAsiya Javayant PROPOSAL
Misaki N TollnerFranceBernardo Dominic PROPOSAL
David M MaletSpainStephen Shaw QUALIFIED
Aditya F ChuiBrazilBernardo Dominic UNQUALIFIED
Costa X WhobreyItalyBernardo Dominic PROPOSAL
Morrow C FigeroaAustraliaIvan Magalhaes NEW
Faith D PerinRussiaAmy Elsner UNQUALIFIED
Silvio H NickaItalyElwin Sharvill RENEWAL
Aruna B VocelkaFranceStephen Shaw PROPOSAL
Aika E FollerRussiaXuxue Feng UNQUALIFIED
Sinclair Y AlbaresFranceAnna Fali UNQUALIFIED
Munro Z InouyeSpainIvan Magalhaes NEGOTIATION
Salvatore B AmigonUnited KingdomXuxue Feng PROPOSAL
Tony S CaudyUnited KingdomAsiya Javayant NEGOTIATION
David Y AlbaresAustraliaAsiya Javayant PROPOSAL
Greenwood U MacleadCanadaAnna Fali PROPOSAL
Cody R TollnerBrazilAmy Elsner QUALIFIED
Munro O OldroydItalyIoni Bowcher UNQUALIFIED
Izzy N MaletCanadaStephen Shaw UNQUALIFIED
Antonio W OstroskyArgentinaAmy Elsner NEW
Mujtaba D RulapaughGermanyAnna Fali NEW
Clifford D MarrierIndiaElwin Sharvill PROPOSAL
Jennifer X CaudyGermanyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo D SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Maisha Z BologniaAustraliaIoni Bowcher QUALIFIED
Alejandro A OldroydBrazilIvan Magalhaes QUALIFIED
Aruna T PerinFranceStephen Shaw RENEWAL
Antonio N PaprockiRussiaElwin Sharvill NEW
Mujtaba X MaletBrazilStephen Shaw PROPOSAL
Maisha C WaycottFranceElwin Sharvill UNQUALIFIED
Alejandro S FlosiFranceAmy Elsner NEGOTIATION
Stacey F CampainGermanyAsiya Javayant UNQUALIFIED
Nicolas X NickaIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar A MarrierFrance2024-04-26Rousseaux, Michael Esq NEGOTIATION7Ivan Magalhaes
1001Costa N ChuiUnited Kingdom2024-05-06King, Christopher A Esq PROPOSAL96Stephen Shaw
1002Darci J OstroskyBrazil2024-04-29Printing Dimensions RENEWAL12Onyama Limba
1003Sinclair Q RulapaughRussia2024-04-24Dorl, James J Esq RENEWAL53Bernardo Dominic
1004Silvio E GarufiRussia2024-04-27Rousseaux, Michael Esq NEW43Anna Fali
1005Mayumi Y OldroydCanada2024-04-16Printing Dimensions QUALIFIED10Ivan Magalhaes
1006Deepesh O SlusarskiGermany2024-04-14Feltz Printing Service UNQUALIFIED16Ioni Bowcher
1007Mayumi X SergiArgentina2024-04-14Feiner Bros QUALIFIED39Asiya Javayant
1008Darci I CaudyArgentina2024-05-04Printing Dimensions QUALIFIED86Ioni Bowcher
1009Arvin U CampainItaly2024-04-19Chemel, James L Cpa UNQUALIFIED87Ivan Magalhaes
1010Leja Z CaudyItaly2024-05-05Rangoni Of Florence NEGOTIATION9Amy Elsner
1011Mayumi I MorascaIndia2024-04-14Buckley Miller Wright PROPOSAL66Stephen Shaw
1012Izzy W DarakjyGermany2024-05-03Rousseaux, Michael Esq PROPOSAL40Asiya Javayant
1013Clifford L SaylorsItaly2024-04-11Morlong Associates PROPOSAL40Elwin Sharvill
1014Jennifer O FollerCanada2024-05-09Chapman, Ross E Esq PROPOSAL11Ivan Magalhaes
1015Rodrigues P BologniaFrance2024-04-26Chemel, James L Cpa RENEWAL46Bernardo Dominic
1016Juan X DoeAustralia2024-04-29Dorl, James J Esq NEGOTIATION57Elwin Sharvill
1017Munro S OldroydRussia2024-04-28Morlong Associates NEW19Anna Fali
1018Sinclair S MarrierSpain2024-04-23Dorl, James J Esq RENEWAL1Xuxue Feng
1019Greenwood E DarakjyUnited Kingdom2024-04-20Chapman, Ross E Esq UNQUALIFIED58Ioni Bowcher
1020Juan S ShinkoAustralia2024-04-12King, Christopher A Esq PROPOSAL58Amy Elsner
1021Maisha R ChuiArgentina2024-04-26Dorl, James J Esq NEGOTIATION82Bernardo Dominic
1022Francesco J WieserJapan2024-04-22King, Christopher A Esq PROPOSAL74Onyama Limba
1023Darci U GlickBrazil2024-04-21Truhlar And Truhlar Attys NEGOTIATION58Ioni Bowcher
1024Kadeem Z GillianArgentina2024-04-29Rousseaux, Michael Esq NEGOTIATION86Amy Elsner
1025Ivar Q GillianFrance2024-05-06Morlong Associates RENEWAL14Xuxue Feng
1026Silvio F BriddickBrazil2024-04-27Chapman, Ross E Esq NEW33Xuxue Feng
1027Jeanfrancois L SaylorsItaly2024-04-16Chapman, Ross E Esq PROPOSAL38Amy Elsner
1028Maria J GarufiUnited Kingdom2024-04-22Chemel, James L Cpa NEW10Amy Elsner
1029Mujtaba X PaprockiGermany2024-05-01Feltz Printing Service UNQUALIFIED2Anna Fali
1030Julie N VocelkaSpain2024-04-24Rousseaux, Michael Esq QUALIFIED29Onyama Limba
1031Wickens Y VocelkaFrance2024-04-26Buckley Miller Wright UNQUALIFIED46Asiya Javayant
1032Leon S AmigonSpain2024-04-23Feiner Bros UNQUALIFIED17Ivan Magalhaes
1033Emily C DoeSpain2024-05-10Feiner Bros UNQUALIFIED18Ioni Bowcher
1034Jeanfrancois F DarakjyAustralia2024-04-19Commercial Press QUALIFIED69Ivan Magalhaes
1035Misaki I ChuiSpain2024-04-15Feltz Printing Service NEW39Xuxue Feng
1036Costa Z BowleyItaly2024-05-06Dorl, James J Esq NEGOTIATION18Ivan Magalhaes
1037Ricardo P WhobreySpain2024-05-06King, Christopher A Esq NEW26Bernardo Dominic
1038Clifford O CaudyCanada2024-04-30Chemel, James L Cpa PROPOSAL33Anna Fali
1039Silvio V MarrierGermany2024-04-22Morlong Associates RENEWAL78Anna Fali
1040Munro N DilliardArgentina2024-04-28Truhlar And Truhlar Attys QUALIFIED41Amy Elsner
1041Isabel V CaldareraSpain2024-04-25Benton, John B Jr UNQUALIFIED80Amy Elsner
1042Greenwood G RimUnited Kingdom2024-04-13Feiner Bros NEGOTIATION73Asiya Javayant
1043Alejandro D OldroydSpain2024-04-20Feltz Printing Service NEGOTIATION6Xuxue Feng
1044Francesco Z GarufiCanada2024-05-05Dorl, James J Esq PROPOSAL23Xuxue Feng
1045Greenwood U RimCanada2024-04-22Commercial Press RENEWAL4Asiya Javayant
1046Tony M WhobreyBrazil2024-04-26King, Christopher A Esq RENEWAL76Ivan Magalhaes
1047Maisha I RimArgentina2024-04-29Printing Dimensions QUALIFIED59Amy Elsner
1048Silvio D CaudyFrance2024-05-08Rangoni Of Florence NEGOTIATION42Bernardo Dominic
1049Ashley S SlusarskiArgentina2024-04-21Rangoni Of Florence NEGOTIATION48Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Alejandro U DilliardFranceIoni Bowcher RENEWAL
Morrow G KolmetzRussiaAnna Fali NEGOTIATION
Sinclair N AmigonAustraliaAmy Elsner UNQUALIFIED
Misaki C BowleyItalyOnyama Limba PROPOSAL
Francesco G AmigonFranceIvan Magalhaes PROPOSAL
Leja Y FerenczSpainStephen Shaw NEGOTIATION
Izzy V MaletBrazilIvan Magalhaes UNQUALIFIED
Clifford R SlusarskiSpainIvan Magalhaes PROPOSAL
Mujtaba D DilliardFranceOnyama Limba NEGOTIATION
Munro M BriddickGermanyIoni Bowcher PROPOSAL
Jones U PoquetteArgentinaIoni Bowcher NEGOTIATION
Murillo Z InouyeRussiaAsiya Javayant UNQUALIFIED
Aditya Y GarufiRussiaAsiya Javayant NEW
Ivar K OldroydIndiaIoni Bowcher QUALIFIED
Antonio F ButtFranceElwin Sharvill NEW
Izzy Z SlusarskiItalyIvan Magalhaes NEGOTIATION
Nicolas I WaycottSpainAnna Fali NEW
Silvio W FollerBrazilStephen Shaw QUALIFIED
Aditya T DoeUnited KingdomAnna Fali RENEWAL
Mujtaba R RoysterRussiaElwin Sharvill RENEWAL
Leon T GarufiJapanIvan Magalhaes UNQUALIFIED
Maisha C AmigonIndiaElwin Sharvill UNQUALIFIED
Kaitlin X SlusarskiGermanyAmy Elsner RENEWAL
Mujtaba Q NickaCanadaElwin Sharvill NEW
Alejandro M PaprockiSpainIoni Bowcher PROPOSAL
Kadeem T StockhamItalyBernardo Dominic QUALIFIED
Antonio Q MacleadRussiaAsiya Javayant NEW
Arvin A FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Francesco I BriddickBrazilAnna Fali RENEWAL
Claire T OldroydIndiaAsiya Javayant QUALIFIED
Wickens M RimCanadaElwin Sharvill RENEWAL
Chavez B WhobreyItalyAsiya Javayant NEW
Adams J AmigonJapanAsiya Javayant PROPOSAL
Nicolas U StockhamBrazilAnna Fali RENEWAL
Kadeem G AlbaresRussiaXuxue Feng QUALIFIED
Smith B GauchoSpainXuxue Feng NEGOTIATION
Wickens S MaletUnited KingdomXuxue Feng NEW
Cody S SchemmerIndiaOnyama Limba UNQUALIFIED
Misaki K OldroydFranceIoni Bowcher RENEWAL
Morrow A ChuiArgentinaElwin Sharvill QUALIFIED
Antonio L GillianRussiaAnna Fali NEGOTIATION
Maisha E MorascaRussiaElwin Sharvill RENEWAL
Maisha Z CaudySpainAsiya Javayant QUALIFIED
Arvin P SaylorsAustraliaXuxue Feng QUALIFIED
Antonio G PerinCanadaXuxue Feng NEW
Mayumi U AlbaresArgentinaIvan Magalhaes PROPOSAL
Isabel J AlbaresIndiaOnyama Limba NEW
Ricardo X BriddickBrazilAnna Fali QUALIFIED
Jeanfrancois D DoeFranceIoni Bowcher PROPOSAL
Mayumi H BowleySpainStephen Shaw QUALIFIED
Frozen Columns
Name
Sinclair R Dilliard
Murillo G Schemmer
Ashley I Poquette
Jeanfrancois O Paprocki
Ashley E Chui
Izzy F Ruta
Chavez E Waycott
Jefferson D Oldroyd
Salvatore I Dilliard
David N Darakjy
Aika E Ruta
Maisha K Oldroyd
Ashley I Vocelka
Ivar C Briddick
Salvatore W Figeroa
Murillo K Sergi
Stacey B Oldroyd
Aditya U Malet
Leja H Oldroyd
Jones T Stockham
Darci X Oldroyd
Stacey F Glick
Antonio J Ferencz
Leon V Royster
Jefferson W Darakjy
Octavia N Rim
Aditya A Malet
Octavia Y Sergi
Silvio S Venere
Izzy J Oldroyd
Juan G Venere
Jefferson J Nicka
Morrow E Morasca
Darci K Flosi
Aika Y Kolmetz
Jennifer W Tollner
Maria D Glick
Julie P Maclead
Jennifer X Rulapaugh
Juan G Foller
Octavia R Caudy
Jeanfrancois K Morasca
Aika Z Waycott
Aika N Rim
Mujtaba U Gillian
Salvatore G Waycott
Aika Q Shinko
James C Whobrey
Darci A Iturbide
Claire V Nicka
IdCountryDate
1000Spain2024-05-02
1001United Kingdom2024-05-03
1002Spain2024-04-15
1003Japan2024-04-12
1004France2024-05-09
1005Russia2024-04-23
1006Brazil2024-05-08
1007Australia2024-05-09
1008Australia2024-04-28
1009Argentina2024-04-20
1010India2024-05-09
1011United Kingdom2024-04-30
1012Argentina2024-05-03
1013Brazil2024-05-08
1014Japan2024-05-09
1015Canada2024-04-17
1016Canada2024-05-06
1017Spain2024-04-19
1018Japan2024-05-08
1019France2024-04-21
1020Canada2024-05-08
1021Australia2024-04-22
1022Spain2024-04-14
1023Germany2024-04-25
1024Brazil2024-05-10
1025France2024-04-23
1026Japan2024-04-14
1027Russia2024-04-15
1028Argentina2024-05-04
1029Russia2024-04-23
1030Italy2024-04-12
1031Argentina2024-04-20
1032Argentina2024-04-13
1033Spain2024-04-21
1034Brazil2024-05-06
1035Italy2024-04-26
1036India2024-04-30
1037Russia2024-05-06
1038India2024-04-19
1039Argentina2024-04-16
1040United Kingdom2024-05-02
1041Canada2024-04-17
1042India2024-04-22
1043Italy2024-04-29
1044France2024-04-23
1045Italy2024-04-19
1046Canada2024-04-11
1047United Kingdom2024-05-04
1048Canada2024-04-21
1049Argentina2024-04-17

On-Demand Data

NameIdCountryDate
Antonio D Bolognia1000Italy2024-04-21
Salvatore C Gillian1001Canada2024-04-14
Ricardo B Rim1002France2024-05-02
Smith E Rulapaugh1003United Kingdom2024-04-27
Rodrigues R Morasca1004Germany2024-04-14
Sinclair D Venere1005Australia2024-04-12
James J Ferencz1006India2024-04-22
Chavez X Gaucho1007Russia2024-04-20
Silvio Y Flosi1008Japan2024-05-07
Faith S Waycott1009Canada2024-04-30
Maisha S Tollner1010Russia2024-04-11
Tony R Maclead1011Japan2024-04-24
Aruna U Amigon1012Spain2024-04-11
Leon Y Sergi1013Argentina2024-04-16
James K Gillian1014Germany2024-05-09
James E Amigon1015Germany2024-04-28
Mujtaba V Bowley1016United Kingdom2024-04-30
Aika Y Stenseth1017Brazil2024-04-27
Smith I Garufi1018France2024-05-02
Julie R Stenseth1019Canada2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith Y WaycottCanadaIoni Bowcher PROPOSAL
Aika J AlbaresUnited KingdomStephen Shaw PROPOSAL
Cody H ChuiCanadaXuxue Feng NEW
Costa T WaycottGermanyIvan Magalhaes UNQUALIFIED
Salvatore Q PaprockiArgentinaIvan Magalhaes NEW
Faith X RulapaughSpainAmy Elsner PROPOSAL
Deepesh C FlosiIndiaAsiya Javayant NEGOTIATION
Maisha G MarrierRussiaOnyama Limba QUALIFIED
Murillo C DilliardGermanyBernardo Dominic UNQUALIFIED
Maisha O FerenczRussiaOnyama Limba UNQUALIFIED
David H RimItalyOnyama Limba NEGOTIATION
Munro O IturbideAustraliaAmy Elsner PROPOSAL
Jones U AlbaresArgentinaAnna Fali NEGOTIATION
Claire Q KuskoIndiaBernardo Dominic RENEWAL
Emily O VocelkaIndiaElwin Sharvill PROPOSAL
James D SlusarskiCanadaAsiya Javayant RENEWAL
Aika A OldroydUnited KingdomAmy Elsner UNQUALIFIED
Aruna F MorascaAustraliaBernardo Dominic UNQUALIFIED
Chavez S CampainBrazilAsiya Javayant RENEWAL
Mujtaba O KuskoAustraliaAnna Fali PROPOSAL
Leja W StockhamFranceIoni Bowcher RENEWAL
Aika L MaletItalyAsiya Javayant UNQUALIFIED
Ricardo A MaletRussiaAmy Elsner RENEWAL
Leon F MarrierUnited KingdomOnyama Limba RENEWAL
Murillo H FigeroaArgentinaBernardo Dominic QUALIFIED
Chavez L MaletItalyXuxue Feng RENEWAL
Emily X KuskoSpainAnna Fali NEGOTIATION
Octavia N CaldareraIndiaXuxue Feng RENEWAL
Wickens M SchemmerIndiaXuxue Feng NEW
Julie N PaprockiCanadaAsiya Javayant QUALIFIED
Chavez C NestleSpainAmy Elsner UNQUALIFIED
Johnson Z MarrierRussiaAnna Fali UNQUALIFIED
Juan D ChuiArgentinaAsiya Javayant NEGOTIATION
James J BologniaCanadaOnyama Limba QUALIFIED
Ricardo F FigeroaArgentinaXuxue Feng PROPOSAL
James N KolmetzCanadaAnna Fali PROPOSAL
Faith D NestleIndiaAmy Elsner UNQUALIFIED
Salvatore Q TollnerIndiaAsiya Javayant NEW
Cody R VenereIndiaElwin Sharvill QUALIFIED
Maria S IturbideAustraliaIoni Bowcher UNQUALIFIED

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