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 J PaprockiArgentinaAmy Elsner NEW
Jeanfrancois Q MorascaRussiaOnyama Limba NEW
Morrow Q WaycottFranceOnyama Limba UNQUALIFIED
Ricardo G GlickRussiaBernardo Dominic NEW
Sinclair O CaudyJapanXuxue Feng NEW
Isabel W StensethRussiaAsiya Javayant UNQUALIFIED
Ivar E BowleyIndiaIoni Bowcher UNQUALIFIED
Maisha V SergiFranceAmy Elsner UNQUALIFIED
Johnson V OldroydBrazilElwin Sharvill NEW
Izzy M MorascaAustraliaElwin Sharvill UNQUALIFIED
James Q CampainIndiaAnna Fali QUALIFIED
Misaki M RulapaughJapanIvan Magalhaes RENEWAL
Francesco U FlosiRussiaBernardo Dominic NEW
Maria S SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Adams Q NickaIndiaStephen Shaw NEGOTIATION
Julie Z RulapaughItalyXuxue Feng PROPOSAL
Kadeem E BologniaSpainIoni Bowcher RENEWAL
Maria K GauchoFranceAnna Fali RENEWAL
Jennifer E AmigonAustraliaAmy Elsner RENEWAL
Jones M InouyeSpainAmy Elsner UNQUALIFIED
Arvin F DoeSpainXuxue Feng RENEWAL
Leja Y RulapaughItalyStephen Shaw QUALIFIED
Jefferson I FigeroaJapanIoni Bowcher QUALIFIED
Faith Y SaylorsCanadaXuxue Feng NEGOTIATION
Stacey D DarakjyAustraliaAnna Fali PROPOSAL
Maria W NickaCanadaOnyama Limba NEW
Cody P IturbideSpainIvan Magalhaes UNQUALIFIED
Aditya E PoquetteUnited KingdomOnyama Limba QUALIFIED
Alejandro Y DoeSpainAsiya Javayant NEW
Morrow K DarakjyBrazilBernardo Dominic PROPOSAL
Juan T BowleyJapanAnna Fali PROPOSAL
Claire K ChuiAustraliaOnyama Limba NEW
Arvin F CaldareraCanadaIoni Bowcher NEGOTIATION
Sinclair F SergiSpainBernardo Dominic NEGOTIATION
Costa S ButtCanadaIvan Magalhaes UNQUALIFIED
Leja G TollnerCanadaIvan Magalhaes NEGOTIATION
Chavez P VocelkaBrazilBernardo Dominic NEGOTIATION
Arvin X FigeroaBrazilXuxue Feng PROPOSAL
Stacey M StensethFranceOnyama Limba RENEWAL
Murillo W TollnerSpainIvan Magalhaes NEW
Misaki V RutaSpainIoni Bowcher PROPOSAL
Deepesh E ShinkoItalyXuxue Feng NEW
Aruna C DoeItalyXuxue Feng UNQUALIFIED
David Q OstroskyItalyElwin Sharvill UNQUALIFIED
Kaitlin Y RulapaughItalyXuxue Feng UNQUALIFIED
Rodrigues S InouyeIndiaElwin Sharvill PROPOSAL
Rodrigues N CampainAustraliaAmy Elsner RENEWAL
Rodrigues W RulapaughUnited KingdomXuxue Feng PROPOSAL
Ashley A GillianBrazilXuxue Feng UNQUALIFIED
Salvatore C MorascaAustraliaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja D PerinItalyStephen Shaw NEGOTIATION
Mayumi Z BriddickAustraliaElwin Sharvill QUALIFIED
Clifford D SlusarskiJapanAmy Elsner NEGOTIATION
Murillo O CaudyAustraliaXuxue Feng NEW
Sinclair O VocelkaItalyElwin Sharvill UNQUALIFIED
Greenwood O RoysterBrazilIoni Bowcher RENEWAL
Maisha U ButtBrazilBernardo Dominic UNQUALIFIED
Leon V FerenczFranceOnyama Limba NEW
Julie R GauchoJapanXuxue Feng NEW
Claire Q WieserRussiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James F WieserFrance2024-04-12Printing Dimensions NEW46Anna Fali
1001Juan H GlickAustralia2024-04-07King, Christopher A Esq NEW66Anna Fali
1002Costa M RimAustralia2024-03-27Chemel, James L Cpa NEW93Onyama Limba
1003Mujtaba H BologniaSpain2024-04-08Truhlar And Truhlar Attys NEW33Bernardo Dominic
1004Nicolas D BologniaFrance2024-03-26Truhlar And Truhlar Attys UNQUALIFIED90Anna Fali
1005Silvio Q MaletGermany2024-04-12Buckley Miller Wright PROPOSAL76Stephen Shaw
1006Jeanfrancois X PoquetteGermany2024-04-08Printing Dimensions PROPOSAL27Ioni Bowcher
1007Tony O RutaIndia2024-03-31Truhlar And Truhlar Attys NEW60Asiya Javayant
1008Julie J VocelkaIndia2024-04-15Feltz Printing Service PROPOSAL85Elwin Sharvill
1009Claire J MarrierItaly2024-04-14Chemel, James L Cpa NEGOTIATION77Anna Fali
1010Juan W MaletItaly2024-03-30Commercial Press QUALIFIED78Onyama Limba
1011Ivar R PoquetteIndia2024-04-11King, Christopher A Esq NEGOTIATION51Ivan Magalhaes
1012Misaki M GarufiFrance2024-03-25Feltz Printing Service RENEWAL31Bernardo Dominic
1013Smith N GlickSpain2024-03-22Feiner Bros NEGOTIATION94Ioni Bowcher
1014Maria V MarrierJapan2024-04-04Chemel, James L Cpa QUALIFIED59Ioni Bowcher
1015Aruna U RulapaughAustralia2024-04-04Commercial Press QUALIFIED4Ivan Magalhaes
1016Aika A OstroskyCanada2024-03-25Rangoni Of Florence RENEWAL98Asiya Javayant
1017Ricardo H DoeGermany2024-04-07King, Christopher A Esq NEGOTIATION49Ivan Magalhaes
1018Francesco V IturbideJapan2024-03-29Truhlar And Truhlar Attys NEW69Asiya Javayant
1019Maisha I KolmetzBrazil2024-04-05Truhlar And Truhlar Attys NEW57Stephen Shaw
1020Smith M RoysterArgentina2024-03-29Feltz Printing Service NEW44Anna Fali
1021Tony E VocelkaAustralia2024-04-19Rousseaux, Michael Esq NEGOTIATION61Elwin Sharvill
1022Jefferson J BologniaRussia2024-04-01Feltz Printing Service RENEWAL10Bernardo Dominic
1023Munro A GauchoFrance2024-03-29Feltz Printing Service UNQUALIFIED98Asiya Javayant
1024Murillo X CaudyUnited Kingdom2024-04-10Chanay, Jeffrey A Esq NEW96Onyama Limba
1025Ricardo T WieserCanada2024-03-22Benton, John B Jr PROPOSAL16Stephen Shaw
1026Greenwood H ButtIndia2024-04-12King, Christopher A Esq PROPOSAL37Elwin Sharvill
1027Murillo A BriddickGermany2024-04-14Chapman, Ross E Esq NEGOTIATION29Stephen Shaw
1028Jones Y BologniaItaly2024-03-29Dorl, James J Esq QUALIFIED58Ioni Bowcher
1029Francesco X StensethArgentina2024-04-12Commercial Press RENEWAL22Onyama Limba
1030Greenwood V PerinGermany2024-04-09Benton, John B Jr UNQUALIFIED99Asiya Javayant
1031Kaitlin M FollerFrance2024-04-17Benton, John B Jr RENEWAL27Stephen Shaw
1032Mujtaba G MaletBrazil2024-04-02Chemel, James L Cpa UNQUALIFIED40Ivan Magalhaes
1033Rodrigues I NestleRussia2024-04-04Chanay, Jeffrey A Esq PROPOSAL15Bernardo Dominic
1034Maria I CaldareraItaly2024-04-06Dorl, James J Esq NEW17Asiya Javayant
1035Francesco Q CaldareraArgentina2024-03-23Rousseaux, Michael Esq NEGOTIATION23Ivan Magalhaes
1036Maria V OstroskyAustralia2024-04-01Buckley Miller Wright UNQUALIFIED71Stephen Shaw
1037Ivar U RutaRussia2024-04-07Chanay, Jeffrey A Esq NEW54Anna Fali
1038James G PoquetteSpain2024-03-31Feltz Printing Service NEW78Asiya Javayant
1039Antonio Y VocelkaItaly2024-03-30Commercial Press QUALIFIED3Anna Fali
1040Kaitlin M GarufiCanada2024-03-28Dorl, James J Esq QUALIFIED96Anna Fali
1041Morrow V KuskoArgentina2024-04-10Truhlar And Truhlar Attys QUALIFIED65Anna Fali
1042Costa R MarrierBrazil2024-03-25Commercial Press UNQUALIFIED16Ioni Bowcher
1043Francesco Z RulapaughBrazil2024-04-19Truhlar And Truhlar Attys PROPOSAL8Bernardo Dominic
1044Rodrigues A ChuiBrazil2024-03-30Rousseaux, Michael Esq RENEWAL52Ivan Magalhaes
1045Wickens V WieserCanada2024-04-12Chanay, Jeffrey A Esq NEGOTIATION11Xuxue Feng
1046Jennifer G ShinkoUnited Kingdom2024-04-08Chapman, Ross E Esq UNQUALIFIED49Elwin Sharvill
1047Ricardo Z KuskoUnited Kingdom2024-03-21Commercial Press UNQUALIFIED22Stephen Shaw
1048Faith F GillianJapan2024-04-12King, Christopher A Esq RENEWAL26Bernardo Dominic
1049Wickens R FigeroaItaly2024-04-16Morlong Associates QUALIFIED33Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Faith X NickaCanadaIoni Bowcher NEW
Arvin B MacleadRussiaXuxue Feng NEW
Ashley M ButtBrazilAsiya Javayant PROPOSAL
Aruna U BowleyFranceAnna Fali UNQUALIFIED
Wickens G NestleArgentinaIoni Bowcher PROPOSAL
Misaki L MaletFranceIvan Magalhaes NEW
Alejandro E PerinArgentinaAnna Fali NEW
Sinclair G RoysterUnited KingdomIoni Bowcher PROPOSAL
Adams N RimUnited KingdomBernardo Dominic RENEWAL
Emily U InouyeAustraliaXuxue Feng RENEWAL
Murillo Y StockhamArgentinaXuxue Feng NEW
Chavez X WhobreyRussiaAmy Elsner UNQUALIFIED
Maisha P DoeBrazilIvan Magalhaes RENEWAL
Greenwood O KolmetzIndiaIvan Magalhaes RENEWAL
Mayumi M GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Munro T GarufiJapanElwin Sharvill RENEWAL
Julie M RutaJapanBernardo Dominic PROPOSAL
Adams S VocelkaRussiaElwin Sharvill RENEWAL
Aditya O PerinAustraliaAmy Elsner PROPOSAL
Ivar A WieserUnited KingdomStephen Shaw NEW
Jefferson M KolmetzSpainElwin Sharvill NEGOTIATION
Clifford E SchemmerAustraliaAmy Elsner QUALIFIED
Stacey G SaylorsBrazilElwin Sharvill PROPOSAL
Darci G CampainArgentinaIoni Bowcher QUALIFIED
Juan D SaylorsArgentinaElwin Sharvill PROPOSAL
Nicolas V GillianItalyBernardo Dominic UNQUALIFIED
Johnson Y AmigonUnited KingdomOnyama Limba QUALIFIED
Deepesh C CaudyFranceAmy Elsner NEW
Aditya K ChuiUnited KingdomStephen Shaw RENEWAL
Faith S FigeroaSpainElwin Sharvill UNQUALIFIED
Smith O BriddickFranceXuxue Feng RENEWAL
Leja C OldroydJapanIvan Magalhaes RENEWAL
Alejandro C MaletIndiaBernardo Dominic PROPOSAL
Johnson E MacleadGermanyStephen Shaw NEW
Sinclair F FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Nicolas J ShinkoItalyElwin Sharvill RENEWAL
Francesco F KolmetzGermanyAmy Elsner NEW
Smith M NickaIndiaAnna Fali NEGOTIATION
Mujtaba O WhobreyItalyElwin Sharvill UNQUALIFIED
Jefferson O DilliardBrazilElwin Sharvill QUALIFIED
Stacey Z IturbideCanadaStephen Shaw NEW
Chavez S GauchoGermanyIvan Magalhaes QUALIFIED
Silvio M RutaAustraliaStephen Shaw NEW
Julie U CampainAustraliaXuxue Feng QUALIFIED
Sinclair B KolmetzGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois U FlosiBrazilXuxue Feng RENEWAL
Aditya X GillianGermanyAsiya Javayant UNQUALIFIED
Francesco L PaprockiCanadaOnyama Limba UNQUALIFIED
Jeanfrancois A MorascaItalyXuxue Feng PROPOSAL
Izzy O PoquetteJapanAmy Elsner NEGOTIATION
Frozen Columns
Name
Murillo K Shinko
Cody D Maclead
Isabel Y Doe
Aditya N Ostrosky
Emily N Nicka
Jefferson Z Malet
Darci A Shinko
Clifford P Inouye
Jennifer L Inouye
Jennifer B Kusko
Aika X Royster
Tony S Whobrey
Nicolas T Garufi
Salvatore P Kolmetz
Emily E Darakjy
Stacey D Doe
Johnson F Wieser
Mayumi I Amigon
Kaitlin I Tollner
Jones A Stenseth
Jeanfrancois C Gaucho
Ricardo T Caldarera
Nicolas K Vocelka
Ivar V Campain
Claire J Nestle
Morrow E Ostrosky
Isabel B Maclead
Claire Z Maclead
Stacey C Slusarski
Clifford G Oldroyd
Izzy I Stenseth
Rodrigues F Bowley
Emily S Schemmer
Maisha J Vocelka
Alejandro U Malet
Johnson K Campain
Juan W Stockham
Kadeem K Waycott
Octavia A Wieser
Smith D Ferencz
Cody I Foller
Francesco K Chui
Francesco U Dilliard
Darci X Nicka
Jennifer H Gaucho
Francesco Y Garufi
Emily N Albares
Mujtaba H Stenseth
Rodrigues S Royster
Leon Q Caldarera
IdCountryDate
1000Australia2024-03-29
1001Canada2024-03-22
1002Brazil2024-03-31
1003Russia2024-03-26
1004Australia2024-04-19
1005Spain2024-04-07
1006Japan2024-04-13
1007Japan2024-03-24
1008Japan2024-03-22
1009Argentina2024-03-21
1010Japan2024-04-16
1011Italy2024-04-03
1012Russia2024-04-19
1013Russia2024-04-18
1014Spain2024-04-17
1015Canada2024-04-19
1016Canada2024-04-09
1017Spain2024-04-16
1018Australia2024-03-25
1019Argentina2024-03-31
1020Australia2024-04-12
1021United Kingdom2024-04-12
1022Spain2024-04-04
1023United Kingdom2024-04-06
1024France2024-03-30
1025Canada2024-04-02
1026Canada2024-03-21
1027Italy2024-03-29
1028Russia2024-04-15
1029Argentina2024-04-16
1030Australia2024-04-09
1031Brazil2024-04-13
1032India2024-04-16
1033Australia2024-04-15
1034Germany2024-03-27
1035Brazil2024-04-12
1036Italy2024-03-22
1037Russia2024-04-11
1038France2024-03-23
1039India2024-03-30
1040Brazil2024-04-09
1041United Kingdom2024-04-11
1042Germany2024-04-06
1043United Kingdom2024-03-21
1044India2024-04-08
1045France2024-03-31
1046United Kingdom2024-03-22
1047Russia2024-03-24
1048France2024-03-25
1049Australia2024-03-23

On-Demand Data

NameIdCountryDate
Chavez M Whobrey1000Russia2024-03-24
Sinclair M Stenseth1001United Kingdom2024-04-07
Munro G Kolmetz1002Japan2024-04-04
Emily S Stenseth1003France2024-04-19
Francesco R Briddick1004United Kingdom2024-03-22
Isabel E Oldroyd1005United Kingdom2024-04-12
Francesco P Sergi1006Italy2024-04-12
Morrow M Caudy1007Argentina2024-03-30
Alejandro H Gaucho1008Canada2024-04-08
Aruna D Rim1009Russia2024-04-17
Mujtaba B Marrier1010Canada2024-04-09
Deepesh D Vocelka1011Brazil2024-04-08
Munro B Kolmetz1012Germany2024-03-29
Costa S Amigon1013Argentina2024-04-12
Mujtaba Y Chui1014India2024-04-05
Maisha R Caudy1015France2024-04-19
Ivar Z Schemmer1016Germany2024-04-09
Kaitlin V Schemmer1017Australia2024-04-14
Mujtaba O Royster1018Australia2024-03-24
Jefferson J Kusko1019Spain2024-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones X OldroydCanadaXuxue Feng UNQUALIFIED
Aditya F MarrierUnited KingdomBernardo Dominic NEW
Morrow H SergiJapanStephen Shaw RENEWAL
Francesco H PoquetteBrazilElwin Sharvill PROPOSAL
Munro Z KolmetzGermanyAmy Elsner PROPOSAL
Alejandro E WhobreyGermanyOnyama Limba QUALIFIED
Chavez P SergiAustraliaAsiya Javayant RENEWAL
Aika U RoysterArgentinaBernardo Dominic RENEWAL
Aditya C DarakjyCanadaAsiya Javayant RENEWAL
Misaki L DoeItalyXuxue Feng UNQUALIFIED
Mujtaba S ButtSpainAmy Elsner RENEWAL
Octavia D VenereGermanyOnyama Limba PROPOSAL
Greenwood H VocelkaRussiaAsiya Javayant QUALIFIED
Mayumi T OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Misaki F RoysterAustraliaAmy Elsner RENEWAL
Misaki B WieserItalyElwin Sharvill RENEWAL
Ricardo H BowleyCanadaAsiya Javayant UNQUALIFIED
Leon K GarufiCanadaAnna Fali PROPOSAL
Leja T InouyeFranceOnyama Limba NEGOTIATION
Stacey G StensethJapanAsiya Javayant PROPOSAL
Maisha O KolmetzSpainAsiya Javayant UNQUALIFIED
Juan K PaprockiRussiaOnyama Limba RENEWAL
Emily Z DilliardCanadaElwin Sharvill NEGOTIATION
Alejandro I RutaJapanBernardo Dominic PROPOSAL
Emily D PerinFranceBernardo Dominic NEGOTIATION
Aditya S SchemmerItalyIoni Bowcher UNQUALIFIED
Aditya M CampainArgentinaAsiya Javayant PROPOSAL
Tony D FerenczBrazilAmy Elsner UNQUALIFIED
Alejandro M RoysterBrazilAsiya Javayant PROPOSAL
Stacey G ButtRussiaBernardo Dominic UNQUALIFIED
Claire Z VenereAustraliaAnna Fali UNQUALIFIED
Mujtaba Y KuskoBrazilIvan Magalhaes RENEWAL
Jennifer B FlosiGermanyXuxue Feng PROPOSAL
David Y MacleadGermanyStephen Shaw UNQUALIFIED
Ashley L PaprockiFranceOnyama Limba PROPOSAL
Maria F SlusarskiFranceOnyama Limba PROPOSAL
Murillo F RutaSpainBernardo Dominic NEW
Faith D ChuiBrazilStephen Shaw RENEWAL
Maisha W OstroskyBrazilIoni Bowcher NEW
Murillo Z MacleadRussiaIoni Bowcher NEGOTIATION

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