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
Ivar T OldroydIndiaIvan Magalhaes QUALIFIED
Jones H MacleadRussiaIoni Bowcher QUALIFIED
Johnson T BriddickArgentinaStephen Shaw QUALIFIED
Arvin G AlbaresArgentinaOnyama Limba NEGOTIATION
Alejandro W PoquetteGermanyAmy Elsner NEGOTIATION
Salvatore X IturbideFranceAnna Fali RENEWAL
Ashley P KolmetzFranceIoni Bowcher NEGOTIATION
Stacey C DilliardItalyStephen Shaw PROPOSAL
Adams Y MacleadAustraliaOnyama Limba QUALIFIED
Greenwood A KolmetzRussiaIvan Magalhaes NEGOTIATION
Morrow L BologniaUnited KingdomXuxue Feng NEGOTIATION
Jefferson Z RimAustraliaBernardo Dominic PROPOSAL
Maria Z SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Johnson S GlickUnited KingdomBernardo Dominic PROPOSAL
Cody B DoeArgentinaIvan Magalhaes QUALIFIED
Arvin F WaycottAustraliaIoni Bowcher NEGOTIATION
Wickens O OldroydUnited KingdomIoni Bowcher QUALIFIED
Jefferson E NickaArgentinaAnna Fali PROPOSAL
Octavia U MaletAustraliaAmy Elsner UNQUALIFIED
Julie J InouyeBrazilStephen Shaw NEGOTIATION
Antonio J OstroskyFranceAnna Fali NEGOTIATION
Costa S IturbideFranceAsiya Javayant PROPOSAL
Murillo M CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Faith R PerinCanadaOnyama Limba UNQUALIFIED
Silvio L FigeroaArgentinaAmy Elsner RENEWAL
Francesco J FerenczCanadaIvan Magalhaes QUALIFIED
Mujtaba C StensethSpainBernardo Dominic NEGOTIATION
Octavia F ButtIndiaElwin Sharvill QUALIFIED
Julie F MorascaFranceElwin Sharvill NEGOTIATION
Aika A VenereJapanOnyama Limba NEW
Izzy Y IturbideArgentinaAmy Elsner RENEWAL
Leon J StensethUnited KingdomAnna Fali PROPOSAL
Faith A GlickRussiaElwin Sharvill UNQUALIFIED
Misaki A RutaJapanXuxue Feng NEGOTIATION
Octavia J SlusarskiGermanyXuxue Feng UNQUALIFIED
Leja Z PerinSpainStephen Shaw RENEWAL
Antonio A OldroydItalyAmy Elsner NEW
Isabel U SaylorsFranceStephen Shaw QUALIFIED
Chavez N WieserFranceBernardo Dominic RENEWAL
Chavez H WaycottUnited KingdomAsiya Javayant NEW
Ashley H GillianJapanStephen Shaw QUALIFIED
Alejandro R FollerIndiaAnna Fali QUALIFIED
Aditya G AlbaresBrazilStephen Shaw RENEWAL
Morrow Z DoeRussiaBernardo Dominic PROPOSAL
Ashley E DoeIndiaAmy Elsner PROPOSAL
Isabel Y SchemmerJapanAmy Elsner PROPOSAL
Salvatore M PaprockiArgentinaIvan Magalhaes QUALIFIED
Murillo E FerenczFranceStephen Shaw RENEWAL
Alejandro N SergiSpainStephen Shaw UNQUALIFIED
Munro D NestleCanadaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley A GarufiUnited KingdomOnyama Limba NEGOTIATION
Ashley N MarrierArgentinaBernardo Dominic NEW
Emily G PoquetteFranceStephen Shaw QUALIFIED
Stacey X MacleadGermanyAnna Fali QUALIFIED
Arvin V StockhamItalyIoni Bowcher NEGOTIATION
Aika U RulapaughFranceIvan Magalhaes UNQUALIFIED
Rodrigues L DarakjyRussiaAsiya Javayant QUALIFIED
Juan P MarrierRussiaIvan Magalhaes UNQUALIFIED
Jones F ButtBrazilIoni Bowcher NEW
Murillo A PerinJapanBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki J FlosiUnited Kingdom2024-04-25Chanay, Jeffrey A Esq RENEWAL52Amy Elsner
1001Cody C DoeItaly2024-04-18Chanay, Jeffrey A Esq QUALIFIED57Ivan Magalhaes
1002Faith A StockhamGermany2024-04-19Truhlar And Truhlar Attys NEGOTIATION82Asiya Javayant
1003Smith S BriddickGermany2024-04-15Buckley Miller Wright UNQUALIFIED90Onyama Limba
1004Stacey F GarufiBrazil2024-04-05King, Christopher A Esq RENEWAL97Ivan Magalhaes
1005Maisha H ChuiIndia2024-04-27Morlong Associates NEGOTIATION86Amy Elsner
1006Munro J GarufiBrazil2024-04-26Rousseaux, Michael Esq UNQUALIFIED66Xuxue Feng
1007Antonio X ShinkoGermany2024-04-06Feiner Bros NEGOTIATION3Anna Fali
1008Antonio E NestleUnited Kingdom2024-04-14Chemel, James L Cpa NEW70Stephen Shaw
1009Aditya T StensethRussia2024-04-09Rousseaux, Michael Esq UNQUALIFIED11Anna Fali
1010Emily S ChuiBrazil2024-04-22Chanay, Jeffrey A Esq UNQUALIFIED75Elwin Sharvill
1011Deepesh T FigeroaArgentina2024-04-10Rousseaux, Michael Esq QUALIFIED24Ivan Magalhaes
1012Maisha U BologniaItaly2024-04-16Chapman, Ross E Esq NEW26Stephen Shaw
1013Jennifer Q GarufiIndia2024-04-04Chanay, Jeffrey A Esq NEW8Bernardo Dominic
1014Tony N StensethArgentina2024-04-13Commercial Press NEGOTIATION64Elwin Sharvill
1015Kadeem D PaprockiFrance2024-04-14Chanay, Jeffrey A Esq PROPOSAL85Asiya Javayant
1016Mujtaba J NickaItaly2024-04-01King, Christopher A Esq NEGOTIATION74Stephen Shaw
1017Ivar D DarakjyCanada2024-04-07Truhlar And Truhlar Attys NEW42Amy Elsner
1018Silvio T StockhamUnited Kingdom2024-04-28Morlong Associates NEW40Anna Fali
1019Stacey S SchemmerItaly2024-04-17Commercial Press QUALIFIED24Stephen Shaw
1020Jeanfrancois M SchemmerFrance2024-04-11Chemel, James L Cpa PROPOSAL0Bernardo Dominic
1021Antonio E WhobreyArgentina2024-04-10Morlong Associates QUALIFIED12Xuxue Feng
1022Stacey Y DilliardUnited Kingdom2024-04-10Printing Dimensions NEW86Elwin Sharvill
1023Mayumi G PerinUnited Kingdom2024-04-02Printing Dimensions PROPOSAL56Asiya Javayant
1024Aditya N VenereGermany2024-04-06Benton, John B Jr RENEWAL87Anna Fali
1025Misaki H BriddickItaly2024-03-30Dorl, James J Esq QUALIFIED3Stephen Shaw
1026Mujtaba J SaylorsJapan2024-04-22King, Christopher A Esq RENEWAL11Anna Fali
1027Alejandro S ChuiSpain2024-04-28Morlong Associates RENEWAL34Onyama Limba
1028Munro K RutaGermany2024-04-04Chemel, James L Cpa NEGOTIATION56Asiya Javayant
1029Sinclair H RutaUnited Kingdom2024-04-03Buckley Miller Wright NEW20Ioni Bowcher
1030Nicolas Y FigeroaRussia2024-04-28Chemel, James L Cpa RENEWAL76Xuxue Feng
1031Kadeem W StensethSpain2024-04-11King, Christopher A Esq RENEWAL74Ivan Magalhaes
1032Cody B PerinArgentina2024-04-12Commercial Press RENEWAL23Ioni Bowcher
1033Munro F StockhamGermany2024-04-28King, Christopher A Esq QUALIFIED89Onyama Limba
1034Smith K PoquetteArgentina2024-04-08Chemel, James L Cpa NEGOTIATION57Anna Fali
1035Ricardo E DarakjyRussia2024-04-28Printing Dimensions NEGOTIATION2Amy Elsner
1036Jeanfrancois W MaletRussia2024-04-06Truhlar And Truhlar Attys UNQUALIFIED32Xuxue Feng
1037Greenwood M NestleFrance2024-04-19Commercial Press NEGOTIATION87Anna Fali
1038Izzy T FerenczIndia2024-04-09Rangoni Of Florence QUALIFIED94Onyama Limba
1039Ivar M SaylorsGermany2024-04-26Chapman, Ross E Esq UNQUALIFIED38Amy Elsner
1040Juan P FigeroaItaly2024-04-26Morlong Associates PROPOSAL17Ivan Magalhaes
1041James S SergiSpain2024-04-15Rousseaux, Michael Esq RENEWAL2Amy Elsner
1042Deepesh M GarufiGermany2024-04-12Rangoni Of Florence NEGOTIATION77Amy Elsner
1043Mujtaba P RutaJapan2024-04-06Feiner Bros RENEWAL60Ioni Bowcher
1044Ivar N RimGermany2024-04-25Printing Dimensions NEW66Stephen Shaw
1045James O ButtUnited Kingdom2024-04-28Truhlar And Truhlar Attys QUALIFIED12Asiya Javayant
1046Kaitlin V BologniaSpain2024-03-31Commercial Press QUALIFIED22Stephen Shaw
1047Arvin A FigeroaCanada2024-04-21Truhlar And Truhlar Attys PROPOSAL16Ivan Magalhaes
1048Antonio Z FigeroaUnited Kingdom2024-04-18Morlong Associates RENEWAL43Stephen Shaw
1049Mayumi G SaylorsCanada2024-04-10King, Christopher A Esq UNQUALIFIED34Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Smith I NestleAustraliaAsiya Javayant UNQUALIFIED
Nicolas Y BriddickAustraliaIvan Magalhaes RENEWAL
Kaitlin W AlbaresArgentinaElwin Sharvill RENEWAL
Jones B CampainItalyIoni Bowcher NEW
David V FerenczIndiaAnna Fali QUALIFIED
Mujtaba I FollerIndiaStephen Shaw NEW
Octavia F CaldareraFranceIvan Magalhaes RENEWAL
Kadeem C StensethFranceAsiya Javayant UNQUALIFIED
Francesco I OstroskyUnited KingdomElwin Sharvill RENEWAL
Ricardo H MacleadSpainIvan Magalhaes NEGOTIATION
Wickens G RulapaughAustraliaAnna Fali PROPOSAL
Rodrigues F KuskoFranceAnna Fali UNQUALIFIED
Nicolas H DoeItalyElwin Sharvill UNQUALIFIED
Mayumi Z BologniaCanadaElwin Sharvill QUALIFIED
Tony F SaylorsGermanyElwin Sharvill QUALIFIED
Izzy P MaletUnited KingdomStephen Shaw UNQUALIFIED
Aditya B NickaGermanyAnna Fali NEW
Stacey M MacleadJapanAnna Fali PROPOSAL
Claire S CaldareraArgentinaAnna Fali QUALIFIED
Wickens R IturbideUnited KingdomAmy Elsner RENEWAL
Silvio U MorascaGermanyAsiya Javayant PROPOSAL
Sinclair C CampainSpainIvan Magalhaes QUALIFIED
Clifford M CaldareraRussiaBernardo Dominic NEW
Isabel J WaycottCanadaAsiya Javayant NEGOTIATION
Cody X GillianUnited KingdomIoni Bowcher NEW
Alejandro N GarufiJapanIoni Bowcher PROPOSAL
Izzy E StensethSpainStephen Shaw RENEWAL
Salvatore H StensethUnited KingdomAnna Fali QUALIFIED
Leja G BriddickItalyOnyama Limba PROPOSAL
Juan M MarrierItalyIoni Bowcher RENEWAL
Munro A MacleadGermanyIoni Bowcher NEGOTIATION
Ivar D VocelkaFranceAmy Elsner RENEWAL
Adams K RutaArgentinaAnna Fali NEGOTIATION
Antonio N FigeroaSpainElwin Sharvill NEGOTIATION
Kaitlin R VocelkaAustraliaElwin Sharvill PROPOSAL
Jones L MaletRussiaOnyama Limba PROPOSAL
Antonio G StensethArgentinaXuxue Feng NEGOTIATION
Stacey Q GlickBrazilOnyama Limba NEGOTIATION
Faith U SlusarskiFranceAmy Elsner RENEWAL
Tony Q DoeFranceStephen Shaw PROPOSAL
Aruna H TollnerBrazilAsiya Javayant PROPOSAL
Darci T MorascaIndiaXuxue Feng RENEWAL
Ricardo H BriddickArgentinaAnna Fali NEW
Costa U SlusarskiBrazilAmy Elsner RENEWAL
Jeanfrancois C NickaAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois W PerinArgentinaOnyama Limba PROPOSAL
Antonio H FollerGermanyIvan Magalhaes NEGOTIATION
Maisha T DoeUnited KingdomElwin Sharvill PROPOSAL
David D RimItalyAnna Fali UNQUALIFIED
Stacey O FlosiJapanAmy Elsner NEW
Frozen Columns
Name
Emily G Gillian
Izzy E Glick
Maria K Chui
Emily M Slusarski
Ricardo O Campain
Stacey Y Dilliard
Stacey N Oldroyd
Deepesh E Ostrosky
Cody B Tollner
Costa B Oldroyd
Jones D Malet
Murillo W Vocelka
Kadeem T Perin
Aruna N Caudy
Izzy R Stockham
Murillo O Royster
Aika Z Gillian
Clifford Y Vocelka
Johnson U Amigon
Kadeem W Malet
Julie N Royster
Tony H Wieser
David I Caudy
Silvio V Slusarski
Aruna C Paprocki
Francesco I Whobrey
Cody F Doe
Emily C Malet
Jennifer B Flosi
Jennifer L Nestle
Johnson O Schemmer
Aruna U Royster
Salvatore Y Malet
Faith A Ruta
Salvatore Y Kolmetz
Isabel Y Malet
Kaitlin R Tollner
Kaitlin T Venere
Isabel A Glick
Chavez Y Glick
Arvin D Sergi
Sinclair T Malet
Mujtaba K Ferencz
Ivar L Bowley
Isabel X Perin
Kadeem U Marrier
Silvio R Kusko
Adams Y Venere
Jennifer X Ostrosky
Silvio C Briddick
IdCountryDate
1000India2024-04-10
1001Australia2024-03-30
1002Australia2024-04-05
1003Australia2024-04-07
1004Russia2024-04-14
1005Italy2024-04-14
1006Canada2024-04-04
1007Argentina2024-04-24
1008Australia2024-04-06
1009India2024-04-13
1010Australia2024-03-31
1011France2024-04-16
1012Argentina2024-04-06
1013Japan2024-04-22
1014Australia2024-04-14
1015Argentina2024-04-13
1016Canada2024-04-26
1017France2024-04-21
1018United Kingdom2024-04-24
1019Argentina2024-04-27
1020France2024-04-28
1021Canada2024-03-30
1022Spain2024-04-10
1023Russia2024-04-02
1024India2024-04-05
1025Australia2024-04-27
1026Italy2024-04-17
1027Spain2024-04-28
1028Argentina2024-04-05
1029Brazil2024-04-04
1030Spain2024-04-19
1031Spain2024-04-28
1032Australia2024-04-13
1033Russia2024-04-19
1034Argentina2024-04-24
1035India2024-04-06
1036Brazil2024-03-30
1037Spain2024-04-04
1038Germany2024-04-02
1039Canada2024-04-14
1040Russia2024-04-23
1041France2024-04-04
1042Germany2024-04-01
1043Brazil2024-04-03
1044France2024-04-03
1045Canada2024-04-02
1046Spain2024-04-01
1047United Kingdom2024-04-19
1048Germany2024-04-04
1049Brazil2024-04-28

On-Demand Data

NameIdCountryDate
Claire Y Perin1000United Kingdom2024-04-02
Claire E Flosi1001Australia2024-04-21
Aruna E Poquette1002Germany2024-04-22
Kadeem Q Inouye1003Russia2024-04-06
Isabel G Waycott1004Italy2024-04-12
Isabel L Ferencz1005Japan2024-04-25
Ashley K Stenseth1006Spain2024-04-13
Juan L Schemmer1007Australia2024-04-21
Maisha L Butt1008Argentina2024-04-08
Francesco I Marrier1009Australia2024-04-09
Aika R Doe1010France2024-04-20
Emily T Ostrosky1011Spain2024-04-07
Silvio C Vocelka1012Australia2024-04-26
Jones C Rulapaugh1013Italy2024-04-07
Isabel K Bolognia1014Japan2024-04-21
Aditya T Caudy1015Japan2024-04-27
Julie G Saylors1016Russia2024-04-01
Nicolas Y Foller1017Argentina2024-04-20
Clifford I Kusko1018Russia2024-04-03
Alejandro U Iturbide1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams N WieserRussiaIvan Magalhaes NEW
Costa K MarrierRussiaElwin Sharvill NEW
Izzy S BriddickRussiaIvan Magalhaes NEW
Murillo C MaletRussiaAmy Elsner UNQUALIFIED
Emily Z ButtCanadaAsiya Javayant QUALIFIED
Murillo P AmigonSpainAsiya Javayant NEGOTIATION
Jeanfrancois Q MaletIndiaXuxue Feng NEGOTIATION
Claire U NestleGermanyIoni Bowcher PROPOSAL
Juan E KuskoCanadaIvan Magalhaes QUALIFIED
Emily L MaletItalyAsiya Javayant QUALIFIED
Antonio C CaudyRussiaAnna Fali PROPOSAL
Leon C FollerFranceXuxue Feng RENEWAL
Cody M OstroskyJapanAmy Elsner PROPOSAL
Leon G SchemmerSpainIoni Bowcher PROPOSAL
Mayumi W InouyeItalyStephen Shaw PROPOSAL
Francesco O NickaCanadaElwin Sharvill PROPOSAL
Johnson N PoquetteJapanElwin Sharvill QUALIFIED
Kadeem P InouyeAustraliaXuxue Feng UNQUALIFIED
Costa V SaylorsJapanAnna Fali NEW
Morrow V ShinkoSpainXuxue Feng QUALIFIED
Aika X StensethRussiaIvan Magalhaes RENEWAL
Silvio Z GillianRussiaElwin Sharvill NEGOTIATION
Leon O KolmetzJapanBernardo Dominic NEW
Kaitlin G DoeJapanStephen Shaw QUALIFIED
Salvatore S FollerGermanyAmy Elsner QUALIFIED
Mujtaba M PoquetteIndiaOnyama Limba NEW
James Z FerenczGermanyIoni Bowcher QUALIFIED
Kaitlin G RimItalyAmy Elsner NEGOTIATION
Deepesh S MarrierSpainAsiya Javayant NEW
Sinclair B MarrierUnited KingdomAnna Fali QUALIFIED
Alejandro Q OldroydFranceAmy Elsner NEGOTIATION
Aruna A MarrierGermanyBernardo Dominic QUALIFIED
Mayumi J MaletAustraliaAsiya Javayant RENEWAL
Mujtaba R WaycottUnited KingdomBernardo Dominic RENEWAL
Cody O RulapaughSpainStephen Shaw UNQUALIFIED
Jefferson W GarufiIndiaAnna Fali NEGOTIATION
Antonio R DarakjyUnited KingdomIoni Bowcher RENEWAL
Stacey T SlusarskiIndiaAmy Elsner NEGOTIATION
Aruna E KolmetzSpainAnna Fali NEGOTIATION
Rodrigues O BowleyUnited KingdomStephen Shaw PROPOSAL

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