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
Mujtaba V MarrierArgentinaStephen Shaw NEW
Silvio B GillianAustraliaElwin Sharvill NEGOTIATION
Darci O AmigonGermanyAsiya Javayant QUALIFIED
Tony K DoeRussiaAsiya Javayant PROPOSAL
Alejandro R MaletJapanIoni Bowcher RENEWAL
Leja S AmigonIndiaAmy Elsner RENEWAL
Darci M VocelkaUnited KingdomBernardo Dominic QUALIFIED
Cody N WhobreyIndiaIoni Bowcher RENEWAL
Sinclair B KuskoUnited KingdomAnna Fali UNQUALIFIED
Costa D SergiSpainIoni Bowcher RENEWAL
Julie O TollnerAustraliaAsiya Javayant RENEWAL
Aditya I MaletIndiaOnyama Limba QUALIFIED
Alejandro V PerinSpainAnna Fali UNQUALIFIED
Sinclair M GauchoGermanyAnna Fali UNQUALIFIED
Jeanfrancois L GillianGermanyElwin Sharvill QUALIFIED
Jefferson Z WaycottArgentinaIvan Magalhaes PROPOSAL
Ricardo S GarufiArgentinaOnyama Limba PROPOSAL
Tony E KolmetzCanadaOnyama Limba NEW
Leja N RoysterArgentinaIvan Magalhaes QUALIFIED
Wickens Q GarufiArgentinaAmy Elsner NEW
Silvio C GillianFranceXuxue Feng NEGOTIATION
Octavia U NestleItalyIvan Magalhaes UNQUALIFIED
Rodrigues Q ShinkoGermanyIoni Bowcher PROPOSAL
Ricardo H AmigonCanadaAnna Fali QUALIFIED
Aika Q OstroskyItalyXuxue Feng NEW
Claire F SaylorsAustraliaElwin Sharvill UNQUALIFIED
Smith U FollerGermanyIvan Magalhaes UNQUALIFIED
Costa R OldroydUnited KingdomAsiya Javayant NEGOTIATION
Alejandro V PerinUnited KingdomStephen Shaw QUALIFIED
Misaki J CaldareraJapanAsiya Javayant NEW
David E KolmetzSpainStephen Shaw NEW
Isabel C WaycottIndiaIvan Magalhaes PROPOSAL
Emily T DoeIndiaBernardo Dominic UNQUALIFIED
Johnson V KuskoArgentinaIvan Magalhaes QUALIFIED
Murillo U FlosiFranceIoni Bowcher QUALIFIED
Julie S VocelkaArgentinaBernardo Dominic NEGOTIATION
Murillo B PoquetteJapanOnyama Limba QUALIFIED
Faith R KolmetzFranceBernardo Dominic PROPOSAL
Mujtaba S FlosiAustraliaElwin Sharvill RENEWAL
Claire U StockhamItalyIoni Bowcher NEW
James C PaprockiBrazilIvan Magalhaes QUALIFIED
Julie I OldroydIndiaIvan Magalhaes NEGOTIATION
Chavez E StensethAustraliaAnna Fali QUALIFIED
Leja A WaycottArgentinaOnyama Limba NEGOTIATION
Tony R MacleadSpainXuxue Feng NEGOTIATION
Costa D GillianSpainBernardo Dominic UNQUALIFIED
Ivar P GarufiUnited KingdomOnyama Limba UNQUALIFIED
Murillo G VocelkaItalyAnna Fali UNQUALIFIED
Nicolas R InouyeJapanAmy Elsner NEW
Ivar Q NickaRussiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin T DoeCanadaIoni Bowcher PROPOSAL
Costa B WieserUnited KingdomAmy Elsner NEW
Aditya H MaletIndiaBernardo Dominic RENEWAL
Tony A OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Darci A BologniaAustraliaStephen Shaw NEGOTIATION
Kaitlin K MorascaBrazilXuxue Feng NEW
Claire S DilliardArgentinaAsiya Javayant QUALIFIED
Salvatore E AmigonSpainAmy Elsner UNQUALIFIED
Clifford E BowleyJapanOnyama Limba NEW
Silvio X BowleyRussiaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy G StensethItaly2024-04-18Buckley Miller Wright NEGOTIATION88Stephen Shaw
1001Leon Q SchemmerUnited Kingdom2024-04-01Feiner Bros PROPOSAL12Asiya Javayant
1002Aruna W MarrierItaly2024-04-06Rangoni Of Florence QUALIFIED5Ivan Magalhaes
1003Julie B CaldareraBrazil2024-04-06Chemel, James L Cpa QUALIFIED59Anna Fali
1004Leja J VocelkaCanada2024-04-16King, Christopher A Esq NEGOTIATION91Asiya Javayant
1005Munro G PoquetteAustralia2024-04-22Dorl, James J Esq QUALIFIED70Ivan Magalhaes
1006Morrow T CampainFrance2024-04-04King, Christopher A Esq UNQUALIFIED75Bernardo Dominic
1007Johnson V PaprockiBrazil2024-04-20Rousseaux, Michael Esq NEW11Ioni Bowcher
1008Ivar J ButtIndia2024-04-07Morlong Associates UNQUALIFIED98Asiya Javayant
1009James Q KolmetzSpain2024-03-29Commercial Press NEW47Asiya Javayant
1010Isabel K VenereIndia2024-04-10Commercial Press NEW62Xuxue Feng
1011Kaitlin C CaldareraIndia2024-04-25Commercial Press QUALIFIED33Onyama Limba
1012Octavia M KolmetzJapan2024-04-09Rousseaux, Michael Esq RENEWAL95Elwin Sharvill
1013Maria Z ChuiArgentina2024-04-08Chapman, Ross E Esq QUALIFIED12Ioni Bowcher
1014Salvatore A AmigonAustralia2024-04-04Chapman, Ross E Esq RENEWAL19Onyama Limba
1015Cody W WaycottJapan2024-04-03Chapman, Ross E Esq PROPOSAL72Amy Elsner
1016Leon P GauchoSpain2024-04-15King, Christopher A Esq QUALIFIED0Anna Fali
1017Smith Q DoeGermany2024-04-05Benton, John B Jr RENEWAL88Onyama Limba
1018Maria Q SlusarskiFrance2024-04-25Rangoni Of Florence RENEWAL35Elwin Sharvill
1019Leon M WaycottSpain2024-04-16Morlong Associates NEGOTIATION51Stephen Shaw
1020Jeanfrancois K AmigonSpain2024-04-18Printing Dimensions QUALIFIED26Onyama Limba
1021Munro J RutaArgentina2024-04-17Rangoni Of Florence PROPOSAL91Asiya Javayant
1022Octavia E FlosiUnited Kingdom2024-04-07Feltz Printing Service QUALIFIED51Bernardo Dominic
1023Chavez L BriddickIndia2024-04-07King, Christopher A Esq UNQUALIFIED34Bernardo Dominic
1024Francesco U SchemmerIndia2024-04-22Chemel, James L Cpa RENEWAL80Bernardo Dominic
1025Salvatore L VenereJapan2024-04-25Feiner Bros NEGOTIATION21Asiya Javayant
1026Adams H WaycottJapan2024-04-09Rousseaux, Michael Esq RENEWAL20Onyama Limba
1027Alejandro N PerinJapan2024-04-26Buckley Miller Wright QUALIFIED93Amy Elsner
1028Mujtaba N NestleUnited Kingdom2024-04-07Feltz Printing Service NEGOTIATION61Anna Fali
1029Chavez H BowleyBrazil2024-03-28Printing Dimensions UNQUALIFIED7Ioni Bowcher
1030Morrow D FlosiSpain2024-04-25Benton, John B Jr UNQUALIFIED95Asiya Javayant
1031Ricardo C DarakjyFrance2024-04-06Benton, John B Jr NEGOTIATION55Onyama Limba
1032Misaki X RoysterFrance2024-04-06King, Christopher A Esq RENEWAL73Bernardo Dominic
1033Cody O DilliardJapan2024-04-10Buckley Miller Wright NEW9Onyama Limba
1034Salvatore D IturbideSpain2024-04-20Benton, John B Jr PROPOSAL19Anna Fali
1035Aruna F StensethAustralia2024-04-22Rousseaux, Michael Esq RENEWAL85Asiya Javayant
1036Faith U VenereGermany2024-04-08Truhlar And Truhlar Attys PROPOSAL14Ioni Bowcher
1037Francesco D AmigonBrazil2024-04-11Rousseaux, Michael Esq UNQUALIFIED15Xuxue Feng
1038Juan W GauchoUnited Kingdom2024-03-28Printing Dimensions PROPOSAL24Ioni Bowcher
1039Misaki Z PaprockiCanada2024-03-28King, Christopher A Esq QUALIFIED28Bernardo Dominic
1040Aika Y MaletJapan2024-04-06Commercial Press NEW60Elwin Sharvill
1041Munro N BologniaGermany2024-04-16Chanay, Jeffrey A Esq NEGOTIATION76Ivan Magalhaes
1042Antonio G KuskoFrance2024-04-06Benton, John B Jr RENEWAL7Bernardo Dominic
1043Aditya T KuskoArgentina2024-04-15Dorl, James J Esq PROPOSAL39Amy Elsner
1044James O WaycottIndia2024-04-10Rousseaux, Michael Esq RENEWAL5Ioni Bowcher
1045Juan E SaylorsUnited Kingdom2024-04-05Morlong Associates NEGOTIATION74Stephen Shaw
1046Jefferson V CaudyFrance2024-04-21Dorl, James J Esq PROPOSAL43Bernardo Dominic
1047Munro Q DarakjyFrance2024-04-02Morlong Associates UNQUALIFIED4Anna Fali
1048Salvatore X PerinUnited Kingdom2024-04-13Printing Dimensions NEGOTIATION64Elwin Sharvill
1049Adams F BologniaItaly2024-04-05Feiner Bros PROPOSAL87Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan L GlickRussiaOnyama Limba NEW
Wickens O ButtSpainIvan Magalhaes QUALIFIED
Ricardo J GauchoUnited KingdomIoni Bowcher RENEWAL
Munro M ShinkoCanadaIoni Bowcher QUALIFIED
Murillo K BologniaRussiaAmy Elsner NEGOTIATION
Munro E GauchoFranceStephen Shaw NEGOTIATION
Arvin U FerenczSpainElwin Sharvill NEW
Faith U MaletGermanyAmy Elsner UNQUALIFIED
Chavez B WhobreyAustraliaBernardo Dominic NEW
Darci M GillianSpainAsiya Javayant RENEWAL
Wickens X PerinFranceIvan Magalhaes RENEWAL
Tony C KuskoArgentinaBernardo Dominic QUALIFIED
Wickens Y StensethCanadaXuxue Feng UNQUALIFIED
Jeanfrancois Y OldroydIndiaIoni Bowcher UNQUALIFIED
Tony W GillianItalyIvan Magalhaes PROPOSAL
Nicolas Z IturbideJapanBernardo Dominic NEW
Alejandro H CampainIndiaOnyama Limba QUALIFIED
Nicolas P FerenczIndiaXuxue Feng PROPOSAL
Ivar U FigeroaAustraliaIvan Magalhaes PROPOSAL
Emily H BologniaItalyOnyama Limba UNQUALIFIED
Jefferson M IturbideGermanyXuxue Feng UNQUALIFIED
Mujtaba F TollnerFranceAsiya Javayant PROPOSAL
Ashley X FlosiGermanyStephen Shaw NEGOTIATION
Antonio A StockhamGermanyElwin Sharvill RENEWAL
Morrow C FerenczGermanyAsiya Javayant RENEWAL
Nicolas Q GauchoGermanyOnyama Limba NEW
Leon N FlosiSpainXuxue Feng QUALIFIED
Aruna P FollerFranceElwin Sharvill NEGOTIATION
Izzy M WhobreyArgentinaBernardo Dominic NEGOTIATION
Greenwood R WaycottAustraliaBernardo Dominic QUALIFIED
Tony T MaletItalyIoni Bowcher NEGOTIATION
Maisha O CaldareraJapanXuxue Feng NEW
Maisha P KolmetzCanadaElwin Sharvill NEW
Nicolas Z ShinkoFranceBernardo Dominic RENEWAL
Salvatore Q MaletItalyElwin Sharvill UNQUALIFIED
Julie F VocelkaFranceElwin Sharvill PROPOSAL
Greenwood U WieserGermanyAmy Elsner UNQUALIFIED
Kadeem T SergiAustraliaAnna Fali PROPOSAL
Leja X AlbaresIndiaStephen Shaw NEGOTIATION
Clifford X SergiBrazilStephen Shaw NEW
Nicolas N DarakjyGermanyStephen Shaw NEGOTIATION
Jeanfrancois P GauchoAustraliaAsiya Javayant NEW
Tony O MaletArgentinaIoni Bowcher QUALIFIED
Sinclair W SaylorsItalyAsiya Javayant NEGOTIATION
Antonio H ShinkoItalyOnyama Limba PROPOSAL
Misaki R CampainBrazilAmy Elsner UNQUALIFIED
Emily Y OldroydCanadaIoni Bowcher QUALIFIED
Munro Q WieserUnited KingdomElwin Sharvill UNQUALIFIED
Ashley W OstroskyRussiaElwin Sharvill UNQUALIFIED
Emily M SaylorsBrazilXuxue Feng RENEWAL
Frozen Columns
Name
Jones H Glick
Mujtaba A Albares
Octavia I Briddick
Salvatore R Vocelka
Deepesh J Caudy
Jones I Chui
Jefferson S Bolognia
Antonio M Glick
Ricardo B Schemmer
Clifford K Waycott
Greenwood G Glick
Salvatore S Ferencz
Jeanfrancois T Rim
Stacey S Albares
Claire R Caldarera
Morrow O Tollner
Jefferson H Perin
Sinclair T Chui
Mayumi Q Wieser
Jeanfrancois A Marrier
Greenwood V Maclead
Claire O Tollner
Leon R Poquette
Maria G Perin
Jones U Tollner
Munro L Caudy
Stacey E Flosi
Greenwood L Waycott
Alejandro O Wieser
Faith Y Malet
Arvin T Darakjy
Maisha K Ostrosky
Jones U Glick
Emily G Paprocki
James B Chui
Darci H Slusarski
Claire F Kusko
Tony N Rim
Jones R Malet
Emily S Whobrey
Johnson V Iturbide
Maisha Q Foller
Ricardo I Morasca
Maisha Y Nicka
Nicolas G Gillian
Maisha Y Waycott
Johnson V Briddick
Deepesh N Venere
Julie S Schemmer
Mujtaba K Ostrosky
IdCountryDate
1000Germany2024-04-18
1001Italy2024-04-21
1002Spain2024-04-12
1003United Kingdom2024-04-02
1004Russia2024-04-25
1005Canada2024-04-04
1006Italy2024-04-02
1007Brazil2024-04-25
1008Spain2024-04-12
1009France2024-04-07
1010Brazil2024-04-11
1011Brazil2024-04-05
1012Germany2024-04-01
1013Spain2024-04-05
1014Australia2024-04-16
1015Argentina2024-04-19
1016Italy2024-04-11
1017Russia2024-04-06
1018Italy2024-04-26
1019United Kingdom2024-04-20
1020Germany2024-04-11
1021Canada2024-03-31
1022Russia2024-04-08
1023Russia2024-04-02
1024Brazil2024-04-11
1025Germany2024-04-20
1026Germany2024-04-16
1027France2024-04-23
1028Canada2024-04-01
1029Germany2024-04-21
1030Argentina2024-04-21
1031Australia2024-04-16
1032Spain2024-04-14
1033Italy2024-04-10
1034Canada2024-04-12
1035India2024-03-30
1036Russia2024-04-25
1037Russia2024-04-06
1038Brazil2024-04-09
1039Australia2024-04-07
1040Russia2024-03-30
1041United Kingdom2024-04-23
1042Argentina2024-04-09
1043Japan2024-04-14
1044Japan2024-04-21
1045Spain2024-04-18
1046United Kingdom2024-03-29
1047Argentina2024-04-17
1048Italy2024-04-20
1049United Kingdom2024-03-31

On-Demand Data

NameIdCountryDate
Smith Z Royster1000Australia2024-04-24
Johnson M Inouye1001Germany2024-04-03
Maria J Caudy1002United Kingdom2024-04-04
Maisha E Iturbide1003Italy2024-04-13
Juan Q Briddick1004Australia2024-04-07
Ricardo X Briddick1005Japan2024-04-21
Jennifer L Malet1006Brazil2024-04-03
Chavez I Kolmetz1007France2024-04-22
Octavia I Sergi1008United Kingdom2024-04-14
Claire P Malet1009Russia2024-04-09
Mayumi K Dilliard1010United Kingdom2024-04-14
Ashley P Paprocki1011Italy2024-04-09
Kadeem Z Bolognia1012Argentina2024-04-06
David I Darakjy1013Italy2024-04-09
Isabel R Dilliard1014India2024-04-22
Jeanfrancois F Amigon1015Australia2024-04-14
Stacey N Gillian1016India2024-04-16
Jeanfrancois P Darakjy1017Italy2024-04-09
Stacey Q Venere1018Canada2024-03-30
Leja P Malet1019France2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily N DarakjyRussiaAsiya Javayant NEGOTIATION
Mujtaba C StensethFranceXuxue Feng PROPOSAL
Mujtaba W VenereFranceOnyama Limba PROPOSAL
Jeanfrancois G OldroydRussiaBernardo Dominic QUALIFIED
Silvio X MacleadSpainIoni Bowcher QUALIFIED
Faith V BriddickIndiaXuxue Feng UNQUALIFIED
Tony S PaprockiArgentinaStephen Shaw UNQUALIFIED
Ivar U GauchoFranceOnyama Limba PROPOSAL
Juan W WaycottRussiaOnyama Limba UNQUALIFIED
Rodrigues C BowleyBrazilBernardo Dominic NEW
Maisha A WieserIndiaAsiya Javayant QUALIFIED
Costa S StockhamUnited KingdomAnna Fali NEW
Murillo G MarrierAustraliaStephen Shaw RENEWAL
Misaki V WhobreyFranceIoni Bowcher UNQUALIFIED
Salvatore W FollerRussiaElwin Sharvill NEGOTIATION
Rodrigues X StensethGermanyAmy Elsner UNQUALIFIED
Izzy H ChuiItalyOnyama Limba RENEWAL
David S FerenczGermanyOnyama Limba UNQUALIFIED
Chavez B DoeArgentinaAsiya Javayant NEW
Juan Z MaletRussiaStephen Shaw NEGOTIATION
Leja T DarakjyGermanyIvan Magalhaes RENEWAL
Aika P PaprockiCanadaAnna Fali NEW
Morrow Y IturbideFranceIoni Bowcher RENEWAL
Aruna C GlickArgentinaAnna Fali RENEWAL
Greenwood X RutaAustraliaOnyama Limba RENEWAL
Johnson I DarakjyCanadaAsiya Javayant NEW
Francesco B NestleRussiaAnna Fali NEGOTIATION
Jennifer P SchemmerSpainAsiya Javayant PROPOSAL
Maisha M DilliardSpainAsiya Javayant RENEWAL
Izzy A SlusarskiBrazilAsiya Javayant NEW
Murillo Y IturbideItalyBernardo Dominic QUALIFIED
Morrow Y VenereAustraliaAnna Fali PROPOSAL
Francesco Z FerenczGermanyBernardo Dominic RENEWAL
Aruna X AmigonJapanElwin Sharvill NEW
Clifford P GarufiAustraliaIvan Magalhaes RENEWAL
Aruna B OstroskyUnited KingdomIvan Magalhaes RENEWAL
Morrow X SergiRussiaBernardo Dominic UNQUALIFIED
David N FlosiArgentinaIvan Magalhaes NEGOTIATION
Jefferson U SlusarskiAustraliaIoni Bowcher PROPOSAL
Munro A MaletCanadaIoni Bowcher QUALIFIED

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