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
Jeanfrancois Y FerenczCanadaOnyama Limba RENEWAL
Chavez J FerenczSpainAmy Elsner UNQUALIFIED
Alejandro L FlosiItalyIoni Bowcher PROPOSAL
Chavez W RoysterFranceOnyama Limba RENEWAL
Julie D SlusarskiRussiaXuxue Feng RENEWAL
Deepesh C SergiItalyElwin Sharvill NEW
Darci L WaycottGermanyXuxue Feng NEW
Leja K BowleySpainAmy Elsner NEW
Nicolas E InouyeSpainIvan Magalhaes RENEWAL
Emily A SaylorsCanadaAmy Elsner NEW
Leja S KolmetzAustraliaAmy Elsner PROPOSAL
Emily G WaycottUnited KingdomIoni Bowcher PROPOSAL
Misaki P DarakjyBrazilAsiya Javayant UNQUALIFIED
Tony M FlosiJapanAnna Fali NEW
Leja V PerinItalyAsiya Javayant NEW
Tony V MacleadFranceIvan Magalhaes NEGOTIATION
Maria B VocelkaUnited KingdomIoni Bowcher NEW
Octavia C MacleadCanadaOnyama Limba UNQUALIFIED
Octavia L IturbideRussiaXuxue Feng RENEWAL
Mujtaba P TollnerAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois Q NickaAustraliaAsiya Javayant QUALIFIED
Maria M GlickArgentinaStephen Shaw NEW
Maisha B PoquetteBrazilAnna Fali NEGOTIATION
Ashley X SlusarskiFranceIvan Magalhaes QUALIFIED
Rodrigues Y TollnerFranceStephen Shaw NEW
Claire S TollnerIndiaStephen Shaw RENEWAL
Ivar D DoeSpainIvan Magalhaes PROPOSAL
Rodrigues P SlusarskiJapanOnyama Limba NEGOTIATION
Aika U BowleyFranceAsiya Javayant UNQUALIFIED
Sinclair F FlosiIndiaIoni Bowcher PROPOSAL
Maisha K CaldareraFranceIvan Magalhaes QUALIFIED
Rodrigues V RulapaughUnited KingdomAmy Elsner PROPOSAL
Tony H BologniaArgentinaElwin Sharvill NEGOTIATION
Adams B KuskoSpainElwin Sharvill QUALIFIED
Emily W RoysterSpainIoni Bowcher QUALIFIED
Alejandro J RoysterArgentinaStephen Shaw PROPOSAL
Maria B WieserIndiaXuxue Feng NEGOTIATION
Leja O AmigonBrazilAnna Fali QUALIFIED
Octavia U MorascaCanadaStephen Shaw RENEWAL
Smith Q CampainCanadaElwin Sharvill UNQUALIFIED
Aika H OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Clifford U WaycottFranceAnna Fali NEGOTIATION
Wickens T DarakjyAustraliaIvan Magalhaes QUALIFIED
Tony X MaletGermanyStephen Shaw RENEWAL
Arvin R MaletAustraliaStephen Shaw NEGOTIATION
Munro P StockhamBrazilStephen Shaw QUALIFIED
Munro B SchemmerBrazilAsiya Javayant QUALIFIED
Alejandro N NestleJapanXuxue Feng NEW
Octavia I GlickJapanAmy Elsner UNQUALIFIED
Adams T ShinkoArgentinaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel M MacleadRussiaXuxue Feng PROPOSAL
Darci X GauchoJapanBernardo Dominic NEGOTIATION
Murillo G KolmetzRussiaAnna Fali PROPOSAL
Jeanfrancois Q DilliardIndiaStephen Shaw NEW
Stacey X WaycottGermanyOnyama Limba PROPOSAL
Mayumi M VenereIndiaStephen Shaw NEW
Jones Y BowleyArgentinaStephen Shaw UNQUALIFIED
Leon X TollnerJapanOnyama Limba NEW
Leon W WhobreyFranceIvan Magalhaes QUALIFIED
Rodrigues C WaycottSpainStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa A DarakjyJapan2024-04-22Chapman, Ross E Esq NEW39Bernardo Dominic
1001Ricardo S ChuiArgentina2024-04-16Commercial Press NEGOTIATION77Ioni Bowcher
1002Adams J ChuiArgentina2024-04-08Feiner Bros RENEWAL76Amy Elsner
1003Wickens R StockhamCanada2024-04-16Rangoni Of Florence RENEWAL14Xuxue Feng
1004Ashley S VenereUnited Kingdom2024-04-15King, Christopher A Esq UNQUALIFIED91Asiya Javayant
1005Aditya C SergiArgentina2024-04-03Rousseaux, Michael Esq RENEWAL66Ioni Bowcher
1006Francesco P CaldareraArgentina2024-04-10Commercial Press NEW93Asiya Javayant
1007Adams W IturbideAustralia2024-04-21King, Christopher A Esq PROPOSAL61Amy Elsner
1008Stacey K DarakjyItaly2024-04-21Dorl, James J Esq NEGOTIATION50Stephen Shaw
1009Jones D VocelkaSpain2024-04-21Truhlar And Truhlar Attys NEW33Ioni Bowcher
1010Francesco N AmigonJapan2024-05-01Printing Dimensions NEGOTIATION19Ioni Bowcher
1011Ricardo W ShinkoBrazil2024-04-30Buckley Miller Wright RENEWAL67Onyama Limba
1012Maria O RulapaughBrazil2024-04-29Morlong Associates UNQUALIFIED43Anna Fali
1013James R FlosiBrazil2024-04-24Dorl, James J Esq QUALIFIED12Bernardo Dominic
1014Salvatore N ShinkoJapan2024-04-25Truhlar And Truhlar Attys NEW80Onyama Limba
1015Jennifer X PaprockiJapan2024-04-09Chapman, Ross E Esq PROPOSAL38Asiya Javayant
1016Darci J NickaAustralia2024-04-20King, Christopher A Esq QUALIFIED48Anna Fali
1017Maria S WhobreyArgentina2024-04-11Printing Dimensions RENEWAL10Ivan Magalhaes
1018Mujtaba K SaylorsBrazil2024-04-23Printing Dimensions NEGOTIATION43Elwin Sharvill
1019Kadeem P SchemmerArgentina2024-04-09Rangoni Of Florence NEGOTIATION58Onyama Limba
1020Silvio L SaylorsFrance2024-04-18Printing Dimensions PROPOSAL70Ioni Bowcher
1021Jefferson N SlusarskiSpain2024-04-09Commercial Press QUALIFIED72Bernardo Dominic
1022Faith Z ChuiIndia2024-04-23Feltz Printing Service NEW79Stephen Shaw
1023Jeanfrancois F MarrierFrance2024-04-21Morlong Associates RENEWAL60Onyama Limba
1024Darci I SchemmerCanada2024-04-04Rousseaux, Michael Esq UNQUALIFIED27Stephen Shaw
1025Julie N OstroskyAustralia2024-04-13Dorl, James J Esq UNQUALIFIED8Asiya Javayant
1026Jeanfrancois V WieserSpain2024-05-02Feiner Bros NEGOTIATION86Amy Elsner
1027Izzy Y RulapaughGermany2024-04-11Truhlar And Truhlar Attys RENEWAL93Ioni Bowcher
1028Ivar Q MorascaIndia2024-04-08Truhlar And Truhlar Attys QUALIFIED96Anna Fali
1029Aika S GlickIndia2024-04-07King, Christopher A Esq UNQUALIFIED9Amy Elsner
1030Leja Z AmigonGermany2024-04-20Truhlar And Truhlar Attys QUALIFIED24Ivan Magalhaes
1031Greenwood A FollerIndia2024-04-30Rousseaux, Michael Esq NEW84Ioni Bowcher
1032Kaitlin G IturbideGermany2024-04-05Rousseaux, Michael Esq QUALIFIED42Ivan Magalhaes
1033Murillo D VocelkaUnited Kingdom2024-04-29Benton, John B Jr RENEWAL57Asiya Javayant
1034Mayumi G PaprockiCanada2024-04-09Truhlar And Truhlar Attys PROPOSAL42Ioni Bowcher
1035Smith O KuskoFrance2024-04-28Commercial Press NEW65Stephen Shaw
1036Julie B PoquetteJapan2024-04-16Dorl, James J Esq PROPOSAL61Elwin Sharvill
1037Isabel A PaprockiJapan2024-04-14King, Christopher A Esq PROPOSAL40Asiya Javayant
1038Emily G PaprockiAustralia2024-04-08Dorl, James J Esq QUALIFIED65Stephen Shaw
1039Mujtaba A StensethJapan2024-04-29Benton, John B Jr QUALIFIED58Stephen Shaw
1040Antonio O NickaArgentina2024-05-01Chapman, Ross E Esq PROPOSAL14Ivan Magalhaes
1041Juan V FollerSpain2024-04-23Feiner Bros PROPOSAL59Stephen Shaw
1042Mayumi K OstroskyCanada2024-04-03Truhlar And Truhlar Attys NEGOTIATION67Anna Fali
1043James V SlusarskiItaly2024-04-21Chemel, James L Cpa PROPOSAL1Anna Fali
1044Morrow A ButtFrance2024-04-05Printing Dimensions NEW46Bernardo Dominic
1045Smith B AlbaresUnited Kingdom2024-04-22Rousseaux, Michael Esq UNQUALIFIED14Onyama Limba
1046Aditya B SergiArgentina2024-04-04Buckley Miller Wright QUALIFIED45Onyama Limba
1047Mayumi J FerenczUnited Kingdom2024-04-21Printing Dimensions NEW87Elwin Sharvill
1048Morrow C GauchoBrazil2024-04-10Chemel, James L Cpa RENEWAL90Ioni Bowcher
1049Emily G TollnerItaly2024-04-23Feltz Printing Service UNQUALIFIED33Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maisha Q StockhamSpainXuxue Feng NEGOTIATION
Smith F GillianGermanyAnna Fali NEGOTIATION
Deepesh V AlbaresArgentinaAsiya Javayant RENEWAL
Juan Z KuskoJapanBernardo Dominic UNQUALIFIED
Alejandro B CaudyIndiaXuxue Feng UNQUALIFIED
Francesco V FollerRussiaAsiya Javayant QUALIFIED
Mayumi V NestleUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues N MacleadAustraliaAsiya Javayant NEW
Morrow E RulapaughIndiaOnyama Limba PROPOSAL
Octavia U StensethJapanAmy Elsner NEW
Sinclair R DarakjyCanadaOnyama Limba NEGOTIATION
Octavia A MorascaRussiaElwin Sharvill NEGOTIATION
Wickens Q InouyeCanadaIoni Bowcher UNQUALIFIED
Aika H CampainRussiaAmy Elsner NEGOTIATION
Sinclair J RimItalyIoni Bowcher NEW
Deepesh M WieserSpainElwin Sharvill NEGOTIATION
Aika H DoeIndiaOnyama Limba NEW
Jefferson K SergiRussiaAmy Elsner UNQUALIFIED
Aika A BowleyRussiaAnna Fali RENEWAL
Clifford Y SergiSpainXuxue Feng NEW
Maria K BowleyBrazilAmy Elsner NEW
Maria I MarrierBrazilOnyama Limba NEGOTIATION
Faith R FollerJapanStephen Shaw PROPOSAL
James O DarakjyAustraliaIoni Bowcher NEW
Adams P SaylorsAustraliaBernardo Dominic PROPOSAL
Misaki E DoeSpainAsiya Javayant NEGOTIATION
Aditya G InouyeGermanyXuxue Feng UNQUALIFIED
Octavia V PoquetteItalyAsiya Javayant NEGOTIATION
Juan H FlosiAustraliaIoni Bowcher NEW
Greenwood O DilliardAustraliaElwin Sharvill UNQUALIFIED
Emily O KuskoUnited KingdomAnna Fali RENEWAL
Mujtaba F SaylorsIndiaElwin Sharvill NEW
James O WhobreyArgentinaXuxue Feng QUALIFIED
Kadeem Y RimAustraliaBernardo Dominic UNQUALIFIED
Tony N GlickFranceStephen Shaw UNQUALIFIED
Aruna G PaprockiItalyStephen Shaw PROPOSAL
Antonio P AmigonIndiaBernardo Dominic NEW
Costa B PoquetteSpainStephen Shaw QUALIFIED
Adams Z WaycottUnited KingdomBernardo Dominic QUALIFIED
Aika Y StockhamUnited KingdomAnna Fali NEW
Aika U RimJapanAsiya Javayant PROPOSAL
Octavia E ButtArgentinaIoni Bowcher RENEWAL
David H AlbaresIndiaAmy Elsner NEGOTIATION
Smith U FerenczUnited KingdomElwin Sharvill QUALIFIED
Ivar G FlosiCanadaStephen Shaw RENEWAL
Julie R SergiBrazilIvan Magalhaes NEGOTIATION
Francesco B ButtRussiaOnyama Limba NEGOTIATION
Jeanfrancois Y KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Stacey O WaycottJapanAmy Elsner PROPOSAL
Sinclair U MaletJapanAnna Fali QUALIFIED
Frozen Columns
Name
Rodrigues O Gaucho
Ricardo C Whobrey
Salvatore N Rim
Aika R Nicka
Claire L Garufi
Greenwood Y Ferencz
Faith D Royster
Octavia Z Chui
Silvio A Caldarera
Jennifer M Sergi
Clifford A Caudy
Clifford I Royster
Jefferson Z Foller
Faith K Amigon
Octavia J Oldroyd
Misaki B Waycott
David H Ruta
Isabel P Bowley
Faith U Tollner
Stacey D Kusko
Cody Z Oldroyd
Clifford L Ruta
Leon Z Kolmetz
Julie A Kusko
Clifford P Rim
James P Poquette
Alejandro H Figeroa
Antonio V Vocelka
Wickens D Caldarera
Faith S Gaucho
Deepesh Q Amigon
Smith B Bowley
Alejandro P Garufi
Smith P Vocelka
David L Rim
Jeanfrancois X Caldarera
Leon G Stenseth
Kaitlin P Amigon
Smith B Rim
Jennifer W Nicka
Francesco Y Stockham
Izzy H Oldroyd
Mayumi Z Butt
Cody B Poquette
Morrow U Dilliard
Leon U Kolmetz
Mayumi N Oldroyd
Alejandro J Venere
David Z Gillian
Tony M Amigon
IdCountryDate
1000Italy2024-04-07
1001India2024-04-22
1002Argentina2024-04-15
1003Russia2024-04-11
1004Australia2024-04-17
1005Italy2024-04-29
1006Canada2024-04-14
1007Japan2024-04-14
1008Brazil2024-04-21
1009United Kingdom2024-04-25
1010Canada2024-04-23
1011Germany2024-04-29
1012India2024-04-23
1013United Kingdom2024-04-24
1014Argentina2024-04-21
1015Argentina2024-04-28
1016Argentina2024-05-02
1017Spain2024-04-27
1018Germany2024-04-14
1019France2024-04-16
1020Brazil2024-04-09
1021Canada2024-04-21
1022Japan2024-04-06
1023Japan2024-04-28
1024Germany2024-05-01
1025Brazil2024-05-02
1026Germany2024-04-17
1027Canada2024-04-15
1028Brazil2024-04-10
1029Australia2024-05-02
1030Canada2024-04-30
1031Italy2024-04-07
1032Australia2024-04-06
1033United Kingdom2024-04-18
1034Spain2024-04-27
1035Australia2024-04-09
1036Italy2024-04-08
1037Russia2024-04-26
1038Russia2024-04-04
1039Argentina2024-04-13
1040Canada2024-05-01
1041Argentina2024-04-25
1042France2024-04-22
1043Germany2024-05-01
1044Russia2024-04-26
1045Germany2024-04-11
1046Brazil2024-04-07
1047France2024-04-13
1048Canada2024-04-10
1049Brazil2024-04-14

On-Demand Data

NameIdCountryDate
Octavia Z Tollner1000Argentina2024-04-10
Ashley V Shinko1001Russia2024-05-01
Juan T Foller1002Germany2024-04-23
Antonio L Waycott1003India2024-04-12
Kadeem A Foller1004Argentina2024-04-11
Murillo F Gaucho1005United Kingdom2024-04-17
Kadeem K Schemmer1006Canada2024-04-22
Ricardo G Flosi1007India2024-04-21
Morrow H Slusarski1008India2024-04-08
Maisha J Foller1009Canada2024-04-27
Cody A Figeroa1010United Kingdom2024-04-24
Darci N Bolognia1011Italy2024-04-10
Johnson O Stenseth1012Canada2024-04-22
Misaki E Iturbide1013India2024-04-28
Emily L Tollner1014Germany2024-04-04
Arvin H Saylors1015Canada2024-04-16
Greenwood L Perin1016Brazil2024-04-25
Maria H Tollner1017Spain2024-04-28
Leon G Rim1018Russia2024-04-16
Clifford T Campain1019India2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan F ShinkoArgentinaStephen Shaw RENEWAL
Antonio P BriddickSpainOnyama Limba RENEWAL
Maisha L DoeAustraliaAnna Fali NEGOTIATION
Kaitlin X DilliardBrazilXuxue Feng RENEWAL
Stacey Y DoeBrazilBernardo Dominic RENEWAL
Octavia T WieserFranceIvan Magalhaes NEGOTIATION
Stacey C RutaAustraliaOnyama Limba QUALIFIED
Jennifer C StockhamSpainElwin Sharvill UNQUALIFIED
Stacey R ButtUnited KingdomOnyama Limba UNQUALIFIED
Morrow P GarufiAustraliaIoni Bowcher QUALIFIED
Juan Z VocelkaFranceAmy Elsner NEW
Faith K FigeroaUnited KingdomIvan Magalhaes RENEWAL
Juan K BriddickRussiaAmy Elsner UNQUALIFIED
Kaitlin N RulapaughSpainElwin Sharvill UNQUALIFIED
James S DoeJapanIoni Bowcher NEW
Mayumi D WhobreyIndiaOnyama Limba UNQUALIFIED
Jennifer T FigeroaArgentinaStephen Shaw NEW
Ivar L FigeroaFranceStephen Shaw QUALIFIED
Ivar P KuskoArgentinaAnna Fali NEW
Misaki X WhobreyGermanyAsiya Javayant QUALIFIED
Jennifer X FlosiJapanOnyama Limba NEGOTIATION
Jefferson S WhobreyJapanOnyama Limba UNQUALIFIED
Kadeem I SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Clifford Z GillianArgentinaIvan Magalhaes NEGOTIATION
Emily F KolmetzBrazilAnna Fali NEW
Johnson A PoquetteUnited KingdomStephen Shaw NEGOTIATION
Isabel A VocelkaItalyElwin Sharvill PROPOSAL
Clifford U FigeroaRussiaIoni Bowcher NEGOTIATION
Cody I NestleFranceAmy Elsner NEGOTIATION
Julie S CaldareraFranceIvan Magalhaes NEGOTIATION
Rodrigues U RimJapanIvan Magalhaes QUALIFIED
Maria B SergiUnited KingdomOnyama Limba NEGOTIATION
Sinclair M RimIndiaBernardo Dominic QUALIFIED
Costa A SergiJapanAsiya Javayant QUALIFIED
James T VocelkaGermanyElwin Sharvill QUALIFIED
Kadeem M RimBrazilAnna Fali NEGOTIATION
Silvio X InouyeItalyIvan Magalhaes UNQUALIFIED
Cody Q MaletArgentinaBernardo Dominic NEGOTIATION
Kaitlin K ButtAustraliaIoni Bowcher UNQUALIFIED
Chavez O MorascaAustraliaBernardo Dominic 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>