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
Jennifer B FerenczItalyAsiya Javayant RENEWAL
Ricardo A MaletGermanyBernardo Dominic QUALIFIED
Stacey R MarrierUnited KingdomStephen Shaw NEW
Arvin Y KuskoAustraliaAmy Elsner NEGOTIATION
Darci M OstroskyBrazilBernardo Dominic RENEWAL
Ivar D GillianJapanStephen Shaw RENEWAL
Costa P MacleadGermanyOnyama Limba RENEWAL
Emily I FollerCanadaOnyama Limba NEGOTIATION
Arvin T RulapaughSpainOnyama Limba NEGOTIATION
Jennifer J MacleadUnited KingdomAnna Fali RENEWAL
Mujtaba S SchemmerCanadaIvan Magalhaes RENEWAL
James P RoysterSpainElwin Sharvill PROPOSAL
Emily K CaudyAustraliaBernardo Dominic NEGOTIATION
Silvio Q GarufiSpainIoni Bowcher RENEWAL
Chavez N NickaRussiaIvan Magalhaes QUALIFIED
Murillo L InouyeGermanyIvan Magalhaes NEGOTIATION
Aika V NestleSpainOnyama Limba PROPOSAL
Claire J CaldareraGermanyBernardo Dominic PROPOSAL
Sinclair S SergiArgentinaIoni Bowcher RENEWAL
Faith H GlickRussiaAsiya Javayant PROPOSAL
Ivar Z GarufiGermanyOnyama Limba NEW
Deepesh C WieserIndiaAnna Fali RENEWAL
Costa W OstroskyRussiaAsiya Javayant NEGOTIATION
Kadeem B BologniaRussiaBernardo Dominic QUALIFIED
Mayumi X MacleadIndiaXuxue Feng NEGOTIATION
Deepesh P AmigonRussiaAnna Fali NEGOTIATION
Isabel F VenereSpainAnna Fali QUALIFIED
Ivar X MorascaAustraliaXuxue Feng UNQUALIFIED
Mujtaba J CampainIndiaIvan Magalhaes UNQUALIFIED
Kaitlin W DoeSpainElwin Sharvill QUALIFIED
Adams L FigeroaFranceIoni Bowcher RENEWAL
Chavez F RoysterItalyOnyama Limba NEW
Jones C ButtUnited KingdomAsiya Javayant UNQUALIFIED
Aditya C TollnerCanadaXuxue Feng UNQUALIFIED
Clifford X OldroydSpainXuxue Feng RENEWAL
Costa J CaudySpainAnna Fali NEGOTIATION
David G StensethItalyAnna Fali NEGOTIATION
Octavia P MaletFranceXuxue Feng QUALIFIED
Tony E MorascaArgentinaOnyama Limba UNQUALIFIED
Antonio E ChuiGermanyIvan Magalhaes PROPOSAL
Sinclair J GauchoUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba A GarufiArgentinaAmy Elsner NEW
Arvin U OldroydJapanAnna Fali PROPOSAL
Jefferson D OldroydIndiaAmy Elsner RENEWAL
Ashley E MaletUnited KingdomAnna Fali UNQUALIFIED
Darci M DarakjyUnited KingdomElwin Sharvill QUALIFIED
Smith P PerinRussiaOnyama Limba NEW
Leja O RoysterAustraliaAsiya Javayant RENEWAL
Salvatore C ShinkoUnited KingdomAmy Elsner PROPOSAL
Johnson X GauchoAustraliaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford H OldroydAustraliaAmy Elsner QUALIFIED
Mayumi T BriddickArgentinaXuxue Feng RENEWAL
Kaitlin Z DarakjyArgentinaIoni Bowcher NEGOTIATION
Arvin G GauchoArgentinaAnna Fali RENEWAL
Greenwood D DarakjyUnited KingdomAmy Elsner QUALIFIED
Arvin P OstroskyJapanStephen Shaw NEW
James R GarufiJapanOnyama Limba QUALIFIED
Darci Q RoysterIndiaAsiya Javayant QUALIFIED
Aruna I DilliardAustraliaAnna Fali UNQUALIFIED
Munro S CaldareraArgentinaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson F AlbaresArgentina2024-03-02Benton, John B Jr NEGOTIATION58Anna Fali
1001Isabel Y ChuiAustralia2024-03-06Benton, John B Jr NEGOTIATION13Anna Fali
1002Salvatore T RutaUnited Kingdom2024-02-18Chanay, Jeffrey A Esq QUALIFIED1Elwin Sharvill
1003Antonio H MaletBrazil2024-02-25Rangoni Of Florence RENEWAL22Ivan Magalhaes
1004Aditya V KolmetzRussia2024-02-22Dorl, James J Esq UNQUALIFIED22Bernardo Dominic
1005Isabel W GarufiFrance2024-02-28Buckley Miller Wright UNQUALIFIED3Bernardo Dominic
1006Maisha G SaylorsUnited Kingdom2024-03-02Chemel, James L Cpa NEW79Onyama Limba
1007Jennifer E SchemmerSpain2024-02-29King, Christopher A Esq NEW85Anna Fali
1008Jefferson H TollnerFrance2024-03-08King, Christopher A Esq UNQUALIFIED10Elwin Sharvill
1009Aditya R RulapaughRussia2024-03-01Feltz Printing Service RENEWAL45Ioni Bowcher
1010Francesco X RulapaughArgentina2024-03-07Truhlar And Truhlar Attys RENEWAL22Ivan Magalhaes
1011Mujtaba M RimIndia2024-03-04Feiner Bros PROPOSAL41Asiya Javayant
1012Smith A WieserItaly2024-03-14Chapman, Ross E Esq UNQUALIFIED50Bernardo Dominic
1013Faith B SaylorsUnited Kingdom2024-03-15Benton, John B Jr RENEWAL2Anna Fali
1014Emily O SlusarskiSpain2024-03-16Feiner Bros UNQUALIFIED17Ioni Bowcher
1015Jones K TollnerRussia2024-03-14Chapman, Ross E Esq NEGOTIATION78Anna Fali
1016Maria D KuskoCanada2024-02-24Rangoni Of Florence PROPOSAL69Ivan Magalhaes
1017Munro Q MaletIndia2024-02-21Buckley Miller Wright PROPOSAL71Elwin Sharvill
1018Darci I KuskoFrance2024-02-21Chanay, Jeffrey A Esq NEW62Bernardo Dominic
1019Juan Y IturbideSpain2024-03-02Truhlar And Truhlar Attys PROPOSAL74Amy Elsner
1020Sinclair M KuskoUnited Kingdom2024-03-10Chapman, Ross E Esq NEGOTIATION38Ioni Bowcher
1021Mujtaba J GillianRussia2024-03-13Chapman, Ross E Esq UNQUALIFIED1Ioni Bowcher
1022Kadeem C SlusarskiBrazil2024-02-18Buckley Miller Wright NEW75Elwin Sharvill
1023Clifford J NickaArgentina2024-02-25Feltz Printing Service PROPOSAL15Asiya Javayant
1024Jennifer N MaletFrance2024-03-06Feltz Printing Service RENEWAL27Bernardo Dominic
1025Salvatore W MacleadIndia2024-02-27Chapman, Ross E Esq UNQUALIFIED82Onyama Limba
1026Aditya P WaycottCanada2024-02-24Truhlar And Truhlar Attys PROPOSAL43Amy Elsner
1027Deepesh J ShinkoIndia2024-02-23Buckley Miller Wright PROPOSAL6Amy Elsner
1028Deepesh W ShinkoItaly2024-02-29King, Christopher A Esq PROPOSAL14Asiya Javayant
1029Mayumi U MorascaSpain2024-02-24Truhlar And Truhlar Attys QUALIFIED52Anna Fali
1030Francesco B SaylorsJapan2024-02-27Chemel, James L Cpa RENEWAL21Asiya Javayant
1031Murillo Y DilliardRussia2024-02-24Chanay, Jeffrey A Esq NEGOTIATION66Ioni Bowcher
1032Costa C WhobreyIndia2024-02-28Chemel, James L Cpa RENEWAL78Bernardo Dominic
1033Aditya D NickaJapan2024-03-16King, Christopher A Esq UNQUALIFIED58Elwin Sharvill
1034Silvio Q VocelkaIndia2024-03-10Rousseaux, Michael Esq NEGOTIATION51Amy Elsner
1035Rodrigues D StockhamIndia2024-03-14Feltz Printing Service UNQUALIFIED93Asiya Javayant
1036Antonio W CaldareraJapan2024-03-05King, Christopher A Esq RENEWAL69Onyama Limba
1037Tony S CampainArgentina2024-03-18Truhlar And Truhlar Attys RENEWAL49Asiya Javayant
1038Rodrigues N FollerFrance2024-03-04Morlong Associates RENEWAL24Ivan Magalhaes
1039Wickens B OldroydItaly2024-02-29Feiner Bros NEW36Ioni Bowcher
1040Sinclair U RimRussia2024-03-05Rousseaux, Michael Esq RENEWAL27Ivan Magalhaes
1041Izzy M ButtArgentina2024-02-23Printing Dimensions QUALIFIED11Ioni Bowcher
1042Maisha D CaldareraSpain2024-02-27Dorl, James J Esq UNQUALIFIED34Ivan Magalhaes
1043Leja G StensethRussia2024-03-11Printing Dimensions RENEWAL47Xuxue Feng
1044Antonio G MacleadRussia2024-03-01Chapman, Ross E Esq QUALIFIED13Bernardo Dominic
1045Deepesh R FerenczJapan2024-03-07Chanay, Jeffrey A Esq QUALIFIED15Amy Elsner
1046Munro Z IturbideIndia2024-02-24King, Christopher A Esq NEW28Elwin Sharvill
1047Stacey X CampainSpain2024-03-09Rousseaux, Michael Esq RENEWAL36Bernardo Dominic
1048David K PoquetteFrance2024-03-06Morlong Associates QUALIFIED87Ioni Bowcher
1049Jennifer M MaletSpain2024-03-04Rangoni Of Florence RENEWAL48Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas O PoquetteFranceStephen Shaw NEW
Aruna N FerenczUnited KingdomOnyama Limba NEW
Leja I DilliardFranceOnyama Limba NEW
Izzy G BologniaUnited KingdomOnyama Limba QUALIFIED
Mayumi D PerinRussiaAnna Fali RENEWAL
Isabel H VocelkaSpainAsiya Javayant QUALIFIED
Octavia H OldroydArgentinaIoni Bowcher PROPOSAL
Adams E FollerSpainElwin Sharvill RENEWAL
Mayumi B SchemmerCanadaXuxue Feng NEGOTIATION
Sinclair B ChuiAustraliaIvan Magalhaes UNQUALIFIED
Octavia Q CampainFranceIoni Bowcher RENEWAL
Ashley S CampainAustraliaAnna Fali NEW
Nicolas B FigeroaBrazilXuxue Feng PROPOSAL
Emily U FollerAustraliaStephen Shaw NEGOTIATION
Stacey G MaletGermanyIvan Magalhaes QUALIFIED
Darci N DoeCanadaStephen Shaw NEW
Sinclair D StensethUnited KingdomAnna Fali QUALIFIED
Mayumi A WaycottArgentinaStephen Shaw NEW
Ricardo S ButtArgentinaAnna Fali QUALIFIED
Kadeem K SaylorsBrazilStephen Shaw UNQUALIFIED
Jennifer M RulapaughRussiaAmy Elsner RENEWAL
Misaki S MacleadIndiaStephen Shaw RENEWAL
Maria Q SchemmerGermanyStephen Shaw UNQUALIFIED
Costa E GlickGermanyAmy Elsner PROPOSAL
Antonio A TollnerItalyOnyama Limba RENEWAL
Nicolas L WhobreyIndiaOnyama Limba NEGOTIATION
Octavia Z SergiIndiaStephen Shaw NEGOTIATION
Munro D AlbaresSpainIvan Magalhaes PROPOSAL
Jones X WieserArgentinaStephen Shaw QUALIFIED
Mujtaba W GlickAustraliaIvan Magalhaes QUALIFIED
Sinclair O MacleadBrazilIvan Magalhaes QUALIFIED
Faith T DarakjyGermanyAmy Elsner QUALIFIED
Mujtaba J MaletUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues H StensethGermanyBernardo Dominic QUALIFIED
Leja Q NickaGermanyStephen Shaw QUALIFIED
Kadeem Z FerenczArgentinaAsiya Javayant NEW
Chavez S ShinkoRussiaOnyama Limba RENEWAL
Salvatore Z VenereBrazilAnna Fali NEW
Claire T ButtRussiaAmy Elsner UNQUALIFIED
Silvio R GarufiIndiaAmy Elsner NEGOTIATION
Aditya H SlusarskiArgentinaXuxue Feng QUALIFIED
Francesco D RulapaughSpainIoni Bowcher NEW
Salvatore T SaylorsCanadaBernardo Dominic RENEWAL
Leon J PoquetteAustraliaAmy Elsner QUALIFIED
Maisha C NickaBrazilStephen Shaw QUALIFIED
Jennifer I FigeroaUnited KingdomAmy Elsner QUALIFIED
Izzy K PaprockiFranceAmy Elsner RENEWAL
Ivar Y DilliardGermanyStephen Shaw NEW
Maisha S CaldareraJapanXuxue Feng PROPOSAL
Rodrigues A KolmetzAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Kadeem O Caudy
Jennifer P Foller
Izzy F Ferencz
Octavia L Amigon
James V Ruta
Wickens B Bowley
Greenwood R Slusarski
Johnson T Nicka
Greenwood Y Gillian
Stacey W Gaucho
Jeanfrancois X Darakjy
Salvatore S Campain
Arvin O Caldarera
Kaitlin V Kusko
Isabel E Wieser
Mujtaba L Ruta
Ricardo N Figeroa
Arvin E Rim
Costa O Gillian
Jeanfrancois O Nestle
Jennifer Q Stockham
Aika M Dilliard
Costa W Royster
Wickens K Poquette
Ricardo R Amigon
Jefferson O Campain
Alejandro A Perin
Alejandro A Flosi
David C Slusarski
Emily O Doe
Smith O Oldroyd
Ricardo I Doe
Isabel M Morasca
Jones E Venere
Antonio B Oldroyd
Julie I Poquette
Wickens S Malet
Aruna P Maclead
Wickens N Garufi
Munro U Caldarera
Greenwood Z Ferencz
Jefferson R Vocelka
Isabel J Dilliard
Jeanfrancois M Paprocki
Smith E Garufi
Costa E Slusarski
Morrow Q Briddick
Morrow W Rulapaugh
Salvatore E Royster
Leon A Waycott
IdCountryDate
1000India2024-03-18
1001Japan2024-03-11
1002Argentina2024-03-02
1003Russia2024-02-26
1004Spain2024-03-14
1005Russia2024-03-17
1006Canada2024-02-24
1007Japan2024-03-09
1008Argentina2024-03-01
1009France2024-03-02
1010United Kingdom2024-02-19
1011Canada2024-03-09
1012Canada2024-02-26
1013Australia2024-03-11
1014France2024-02-20
1015Spain2024-03-05
1016Spain2024-02-28
1017Russia2024-02-24
1018France2024-03-14
1019Russia2024-03-13
1020Japan2024-03-14
1021Italy2024-02-24
1022Australia2024-03-10
1023Russia2024-03-10
1024India2024-03-01
1025Japan2024-03-17
1026Australia2024-03-17
1027Italy2024-03-06
1028Russia2024-03-02
1029Australia2024-02-21
1030Argentina2024-03-04
1031Spain2024-03-02
1032United Kingdom2024-02-18
1033Spain2024-02-22
1034Australia2024-03-12
1035Italy2024-03-10
1036Italy2024-03-16
1037France2024-02-20
1038Japan2024-02-19
1039Argentina2024-02-18
1040Australia2024-03-08
1041India2024-02-25
1042United Kingdom2024-03-16
1043France2024-02-25
1044Italy2024-03-04
1045Canada2024-03-18
1046France2024-02-19
1047United Kingdom2024-03-18
1048Australia2024-03-02
1049Russia2024-03-11

On-Demand Data

NameIdCountryDate
Mayumi Y Stenseth1000Argentina2024-03-14
Claire N Glick1001India2024-03-14
Mayumi W Gillian1002Australia2024-02-21
Adams O Nicka1003Russia2024-03-16
Leon N Dilliard1004Spain2024-03-03
Ivar Z Waycott1005Canada2024-02-22
Ricardo Y Malet1006Australia2024-02-21
Antonio E Iturbide1007Brazil2024-03-01
Deepesh P Rim1008Russia2024-03-12
Ashley V Ostrosky1009Japan2024-03-11
Sinclair G Poquette1010Italy2024-03-18
Izzy K Schemmer1011Brazil2024-03-08
Wickens B Garufi1012Canada2024-03-14
Kadeem F Kusko1013Brazil2024-03-01
David E Flosi1014United Kingdom2024-02-26
Ricardo J Iturbide1015France2024-03-01
Francesco L Gillian1016Canada2024-02-25
Clifford W Stenseth1017Spain2024-02-25
Smith R Bolognia1018United Kingdom2024-03-10
Emily U Bowley1019Spain2024-02-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones S FollerRussiaBernardo Dominic RENEWAL
Salvatore X SchemmerJapanAmy Elsner UNQUALIFIED
Misaki M MorascaIndiaAsiya Javayant UNQUALIFIED
Jennifer T BriddickBrazilIoni Bowcher RENEWAL
Ricardo Z IturbideRussiaAnna Fali UNQUALIFIED
Ashley O VenereJapanStephen Shaw RENEWAL
Leja G DoeJapanXuxue Feng RENEWAL
Murillo D IturbideArgentinaElwin Sharvill NEGOTIATION
Rodrigues Q IturbideItalyStephen Shaw PROPOSAL
Munro J MaletArgentinaBernardo Dominic NEGOTIATION
Leon G FigeroaGermanyAmy Elsner UNQUALIFIED
Leon U GlickGermanyIvan Magalhaes UNQUALIFIED
Jefferson S PaprockiIndiaIoni Bowcher RENEWAL
Juan V ChuiCanadaAnna Fali RENEWAL
David K MacleadSpainOnyama Limba UNQUALIFIED
Stacey G MarrierAustraliaOnyama Limba UNQUALIFIED
Darci D BologniaUnited KingdomBernardo Dominic RENEWAL
Aika U FollerIndiaStephen Shaw NEGOTIATION
Rodrigues K SlusarskiJapanOnyama Limba NEGOTIATION
Salvatore A InouyeJapanStephen Shaw UNQUALIFIED
Arvin E OldroydArgentinaElwin Sharvill QUALIFIED
Clifford J MaletIndiaIvan Magalhaes UNQUALIFIED
Aditya U FollerAustraliaIoni Bowcher NEGOTIATION
Aditya B DoeCanadaAsiya Javayant QUALIFIED
Munro L GarufiArgentinaXuxue Feng NEW
Leon P CaldareraJapanElwin Sharvill NEGOTIATION
Sinclair D WaycottJapanAsiya Javayant NEW
Emily J AlbaresCanadaIvan Magalhaes RENEWAL
Mujtaba N FollerItalyStephen Shaw PROPOSAL
Juan P PoquetteBrazilAsiya Javayant UNQUALIFIED
Murillo V VenereArgentinaXuxue Feng PROPOSAL
Ivar X StockhamIndiaOnyama Limba NEGOTIATION
Sinclair Z StockhamGermanyXuxue Feng RENEWAL
Murillo J FlosiUnited KingdomAnna Fali NEW
Isabel X MaletIndiaAsiya Javayant QUALIFIED
Juan J GillianBrazilIvan Magalhaes QUALIFIED
Wickens K IturbideIndiaXuxue Feng NEGOTIATION
Stacey Z SaylorsCanadaXuxue Feng NEW
Johnson Y WaycottBrazilAnna Fali NEGOTIATION
Jefferson C MaletCanadaAmy Elsner RENEWAL

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