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
Francesco J PaprockiRussiaBernardo Dominic UNQUALIFIED
Tony J VenereAustraliaAmy Elsner PROPOSAL
Jennifer P IturbideIndiaStephen Shaw NEW
Ivar B SlusarskiIndiaBernardo Dominic UNQUALIFIED
Francesco K KolmetzItalyBernardo Dominic UNQUALIFIED
Aika G WaycottGermanyElwin Sharvill PROPOSAL
Izzy J MaletUnited KingdomBernardo Dominic PROPOSAL
Leja L BowleyFranceIoni Bowcher UNQUALIFIED
Maisha S BowleyIndiaAsiya Javayant NEGOTIATION
Rodrigues D SergiArgentinaXuxue Feng UNQUALIFIED
Aika P CaudyGermanyXuxue Feng NEW
Maria O CampainAustraliaBernardo Dominic RENEWAL
David N KolmetzSpainStephen Shaw QUALIFIED
Maria D DarakjyCanadaXuxue Feng UNQUALIFIED
Rodrigues H SlusarskiIndiaBernardo Dominic NEW
Clifford O NestleUnited KingdomIvan Magalhaes RENEWAL
Darci V WhobreyArgentinaAmy Elsner UNQUALIFIED
Adams L MorascaGermanyAsiya Javayant NEGOTIATION
Ricardo I IturbideIndiaAnna Fali NEW
David B GauchoSpainElwin Sharvill NEW
Jones Y ShinkoUnited KingdomXuxue Feng RENEWAL
Johnson V FollerAustraliaAsiya Javayant QUALIFIED
Silvio O AmigonAustraliaAnna Fali NEW
Julie I PaprockiItalyIvan Magalhaes PROPOSAL
Isabel K OldroydIndiaAmy Elsner RENEWAL
Ivar T DoeCanadaElwin Sharvill UNQUALIFIED
Wickens U RimRussiaIoni Bowcher QUALIFIED
Ricardo W StensethUnited KingdomIvan Magalhaes NEGOTIATION
Emily W SaylorsAustraliaElwin Sharvill PROPOSAL
Jefferson W PerinIndiaXuxue Feng RENEWAL
Claire L SergiIndiaStephen Shaw NEW
Stacey W RutaJapanAsiya Javayant NEGOTIATION
Jeanfrancois A GauchoJapanXuxue Feng NEW
Emily Y FigeroaSpainAsiya Javayant QUALIFIED
Misaki M SchemmerSpainIvan Magalhaes RENEWAL
Aditya D CaldareraUnited KingdomElwin Sharvill NEW
Munro B DarakjyGermanyOnyama Limba UNQUALIFIED
Wickens J RulapaughArgentinaOnyama Limba RENEWAL
Silvio L SchemmerSpainXuxue Feng NEGOTIATION
Maria S FerenczJapanOnyama Limba QUALIFIED
Sinclair R PaprockiUnited KingdomAsiya Javayant NEW
Emily T MaletJapanAnna Fali UNQUALIFIED
Wickens P MarrierJapanAnna Fali RENEWAL
Deepesh D MacleadItalyAmy Elsner NEGOTIATION
Nicolas K BriddickGermanyBernardo Dominic NEGOTIATION
Aruna E SergiItalyOnyama Limba NEGOTIATION
Jennifer U ButtArgentinaAnna Fali QUALIFIED
Claire K MorascaJapanAnna Fali NEGOTIATION
Jennifer M SergiAustraliaXuxue Feng PROPOSAL
Aditya J PoquetteUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood Q SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Silvio T IturbideGermanyAmy Elsner PROPOSAL
Rodrigues X MaletJapanIoni Bowcher RENEWAL
Deepesh O WieserArgentinaStephen Shaw QUALIFIED
Chavez T DilliardCanadaOnyama Limba NEW
Munro S WaycottJapanAmy Elsner NEGOTIATION
Smith U FlosiUnited KingdomXuxue Feng QUALIFIED
Ricardo F ChuiSpainAmy Elsner NEGOTIATION
Darci Q StensethRussiaElwin Sharvill PROPOSAL
Jennifer O MacleadGermanyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy I AmigonItaly2024-04-19Benton, John B Jr QUALIFIED50Xuxue Feng
1001Nicolas H SaylorsFrance2024-04-16Feltz Printing Service NEGOTIATION33Amy Elsner
1002Ivar X KuskoFrance2024-04-12Truhlar And Truhlar Attys NEW12Amy Elsner
1003Nicolas A VocelkaAustralia2024-04-02Morlong Associates UNQUALIFIED83Amy Elsner
1004Deepesh N GauchoFrance2024-04-05Feiner Bros QUALIFIED83Elwin Sharvill
1005Izzy A CaldareraArgentina2024-04-02Rousseaux, Michael Esq RENEWAL84Elwin Sharvill
1006Ivar C FerenczUnited Kingdom2024-04-03Feltz Printing Service PROPOSAL0Stephen Shaw
1007Nicolas B IturbideJapan2024-04-01Printing Dimensions RENEWAL29Stephen Shaw
1008Nicolas Z DoeBrazil2024-04-13Chemel, James L Cpa NEW26Anna Fali
1009Aditya D KuskoJapan2024-04-03Commercial Press QUALIFIED51Ioni Bowcher
1010Wickens U RimRussia2024-03-27Dorl, James J Esq NEGOTIATION70Amy Elsner
1011Smith F WieserFrance2024-04-14Feiner Bros QUALIFIED12Elwin Sharvill
1012Emily V MaletUnited Kingdom2024-03-25King, Christopher A Esq NEW91Onyama Limba
1013Juan W SlusarskiGermany2024-04-12Chanay, Jeffrey A Esq NEW82Amy Elsner
1014Julie F InouyeAustralia2024-03-28King, Christopher A Esq RENEWAL53Stephen Shaw
1015Mayumi H KuskoFrance2024-04-09Chanay, Jeffrey A Esq NEGOTIATION74Xuxue Feng
1016Jennifer K ChuiUnited Kingdom2024-04-19Rousseaux, Michael Esq NEW79Xuxue Feng
1017Julie E OstroskyBrazil2024-04-15Feltz Printing Service PROPOSAL53Anna Fali
1018Smith G StensethBrazil2024-04-11Buckley Miller Wright UNQUALIFIED9Elwin Sharvill
1019Costa D GauchoGermany2024-04-06Morlong Associates PROPOSAL82Bernardo Dominic
1020Aditya P TollnerFrance2024-04-21Chanay, Jeffrey A Esq PROPOSAL27Onyama Limba
1021Murillo Z PoquetteSpain2024-04-09King, Christopher A Esq RENEWAL42Ioni Bowcher
1022Misaki X GillianJapan2024-03-24Buckley Miller Wright RENEWAL47Anna Fali
1023Mayumi X WaycottAustralia2024-04-20Feltz Printing Service RENEWAL40Ivan Magalhaes
1024Mujtaba B NestleBrazil2024-04-14Morlong Associates RENEWAL70Bernardo Dominic
1025David J DarakjySpain2024-03-25Chanay, Jeffrey A Esq PROPOSAL82Ivan Magalhaes
1026Ricardo S KolmetzJapan2024-03-25Truhlar And Truhlar Attys NEGOTIATION48Ioni Bowcher
1027Sinclair M NickaUnited Kingdom2024-04-22King, Christopher A Esq RENEWAL63Ioni Bowcher
1028Isabel J ShinkoJapan2024-04-06Commercial Press UNQUALIFIED82Bernardo Dominic
1029Mayumi P NestleArgentina2024-03-29Morlong Associates UNQUALIFIED16Elwin Sharvill
1030Alejandro C AlbaresBrazil2024-03-30Rangoni Of Florence UNQUALIFIED19Anna Fali
1031Mujtaba O SchemmerArgentina2024-04-15Feltz Printing Service NEGOTIATION33Xuxue Feng
1032Antonio Q WaycottSpain2024-03-27Feiner Bros RENEWAL3Asiya Javayant
1033Claire E VocelkaRussia2024-04-09Chapman, Ross E Esq RENEWAL0Ivan Magalhaes
1034Francesco T OstroskyArgentina2024-04-15Chapman, Ross E Esq QUALIFIED30Stephen Shaw
1035Mujtaba N MacleadFrance2024-04-04Morlong Associates RENEWAL33Amy Elsner
1036James A OldroydCanada2024-04-20Chemel, James L Cpa PROPOSAL93Bernardo Dominic
1037Misaki L StockhamUnited Kingdom2024-04-21Chapman, Ross E Esq PROPOSAL90Elwin Sharvill
1038Salvatore S SaylorsSpain2024-03-26Dorl, James J Esq RENEWAL4Elwin Sharvill
1039Morrow N GauchoUnited Kingdom2024-04-09Morlong Associates NEW90Amy Elsner
1040Johnson E OldroydArgentina2024-04-16Commercial Press RENEWAL96Anna Fali
1041Greenwood D NestleCanada2024-04-04Commercial Press QUALIFIED0Amy Elsner
1042Aika C RoysterAustralia2024-03-31Benton, John B Jr RENEWAL67Bernardo Dominic
1043Stacey H NickaBrazil2024-04-16Chemel, James L Cpa UNQUALIFIED53Ioni Bowcher
1044Aditya Q SchemmerIndia2024-04-09Benton, John B Jr PROPOSAL9Xuxue Feng
1045Aditya I WieserItaly2024-04-01Feiner Bros RENEWAL27Onyama Limba
1046Morrow C CaldareraRussia2024-04-12Printing Dimensions PROPOSAL73Onyama Limba
1047Clifford E ButtArgentina2024-04-18Rangoni Of Florence QUALIFIED55Asiya Javayant
1048Deepesh N ButtFrance2024-04-06Truhlar And Truhlar Attys RENEWAL66Amy Elsner
1049Leon G BologniaGermany2024-04-18Chanay, Jeffrey A Esq NEW85Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire M PerinSpainXuxue Feng NEW
Leja I MaletRussiaAsiya Javayant UNQUALIFIED
Tony I ButtAustraliaIvan Magalhaes RENEWAL
Munro G GlickGermanyOnyama Limba RENEWAL
Smith O MorascaBrazilXuxue Feng RENEWAL
Ricardo W WaycottItalyStephen Shaw NEGOTIATION
Alejandro A FlosiBrazilOnyama Limba UNQUALIFIED
Aika O ShinkoSpainXuxue Feng NEGOTIATION
Silvio L SchemmerGermanyXuxue Feng NEGOTIATION
David C NestleJapanAmy Elsner UNQUALIFIED
Cody A FollerUnited KingdomAmy Elsner NEW
Murillo F CaudyIndiaIvan Magalhaes UNQUALIFIED
Morrow E OldroydGermanyIvan Magalhaes UNQUALIFIED
Francesco X VocelkaItalyIoni Bowcher RENEWAL
Aika G PerinCanadaXuxue Feng NEGOTIATION
Emily Y KuskoArgentinaAnna Fali NEW
Sinclair M AlbaresCanadaOnyama Limba NEGOTIATION
Ricardo D WieserBrazilAmy Elsner UNQUALIFIED
Antonio Z OldroydCanadaStephen Shaw UNQUALIFIED
Deepesh J ShinkoJapanAsiya Javayant UNQUALIFIED
Misaki T GarufiArgentinaAsiya Javayant NEW
Jeanfrancois R KolmetzUnited KingdomXuxue Feng RENEWAL
Aruna M InouyeFranceAnna Fali NEGOTIATION
Juan A GillianIndiaIoni Bowcher RENEWAL
Mujtaba D OldroydAustraliaBernardo Dominic UNQUALIFIED
Cody W NestleArgentinaBernardo Dominic QUALIFIED
Juan B WieserSpainElwin Sharvill QUALIFIED
Darci B VenereAustraliaElwin Sharvill QUALIFIED
Deepesh Y CampainSpainAsiya Javayant PROPOSAL
Francesco U MarrierCanadaElwin Sharvill UNQUALIFIED
Julie C OstroskyIndiaAmy Elsner UNQUALIFIED
Jeanfrancois J MaletUnited KingdomBernardo Dominic UNQUALIFIED
Juan J InouyeAustraliaOnyama Limba PROPOSAL
Sinclair X GlickCanadaStephen Shaw PROPOSAL
Maria Z CaldareraRussiaIvan Magalhaes RENEWAL
Izzy T KolmetzItalyAsiya Javayant NEW
Kaitlin H SergiRussiaIoni Bowcher PROPOSAL
Aditya T SergiIndiaIoni Bowcher NEW
James S DilliardRussiaIvan Magalhaes RENEWAL
Nicolas V MaletIndiaIoni Bowcher UNQUALIFIED
Aruna N RimBrazilAsiya Javayant PROPOSAL
Kaitlin J SergiSpainAnna Fali UNQUALIFIED
David B SergiUnited KingdomBernardo Dominic PROPOSAL
James Y OldroydCanadaIvan Magalhaes UNQUALIFIED
Aika H GarufiCanadaAmy Elsner NEW
Ashley J FollerSpainStephen Shaw UNQUALIFIED
Octavia Q ButtIndiaXuxue Feng QUALIFIED
Francesco I StensethBrazilAnna Fali RENEWAL
Emily U DoeItalyBernardo Dominic UNQUALIFIED
Leon H StensethJapanElwin Sharvill RENEWAL
Frozen Columns
Name
Morrow S Sergi
Leja Z Briddick
Stacey N Ostrosky
Jeanfrancois J Whobrey
David P Caudy
Jennifer W Kusko
Francesco K Poquette
Johnson H Kusko
David U Amigon
Izzy U Caudy
Rodrigues E Whobrey
Faith X Caudy
Leon M Shinko
Wickens G Rim
Aika S Saylors
Wickens X Gaucho
Tony W Flosi
Silvio N Figeroa
Smith W Campain
Ashley N Wieser
Johnson G Paprocki
Maria M Nicka
Aditya S Schemmer
Kadeem T Sergi
Jeanfrancois D Albares
Leja R Paprocki
Arvin I Caudy
Sinclair F Malet
David L Royster
Mujtaba B Inouye
Silvio G Caudy
Chavez P Flosi
Jeanfrancois Z Ruta
Silvio G Nicka
Mayumi W Royster
Salvatore B Albares
Salvatore S Marrier
Arvin R Rulapaugh
Jeanfrancois B Ostrosky
Jeanfrancois K Nestle
Claire R Schemmer
Johnson M Whobrey
Arvin G Royster
Ashley D Butt
Rodrigues D Foller
Izzy I Paprocki
Jefferson N Doe
Aditya D Gillian
Alejandro I Albares
Ashley B Ruta
IdCountryDate
1000Canada2024-03-31
1001Russia2024-04-15
1002Brazil2024-04-21
1003Japan2024-04-14
1004United Kingdom2024-04-13
1005Australia2024-03-29
1006United Kingdom2024-03-26
1007Argentina2024-03-25
1008India2024-04-08
1009Russia2024-04-13
1010Australia2024-04-13
1011Russia2024-04-15
1012United Kingdom2024-04-08
1013Italy2024-04-05
1014France2024-03-30
1015Brazil2024-03-28
1016Brazil2024-03-25
1017Brazil2024-04-15
1018Japan2024-04-12
1019Spain2024-04-01
1020Canada2024-04-06
1021Argentina2024-04-17
1022Australia2024-04-05
1023Argentina2024-04-04
1024Russia2024-03-29
1025Brazil2024-04-07
1026France2024-03-29
1027United Kingdom2024-04-18
1028Brazil2024-04-17
1029Japan2024-04-13
1030India2024-04-07
1031India2024-03-25
1032Spain2024-04-10
1033France2024-03-24
1034India2024-04-02
1035Brazil2024-04-08
1036Brazil2024-04-02
1037Japan2024-03-26
1038Russia2024-03-26
1039Russia2024-03-24
1040Australia2024-03-28
1041United Kingdom2024-04-04
1042Australia2024-03-28
1043India2024-03-26
1044Germany2024-03-26
1045France2024-04-04
1046Germany2024-03-24
1047France2024-04-06
1048France2024-03-25
1049Russia2024-04-11

On-Demand Data

NameIdCountryDate
Antonio R Darakjy1000Japan2024-03-25
Costa G Kusko1001Japan2024-04-06
Stacey U Paprocki1002Japan2024-04-06
Francesco V Kolmetz1003Canada2024-03-31
Smith P Poquette1004Canada2024-03-28
Isabel O Caudy1005France2024-04-12
Aika C Poquette1006France2024-04-15
Ashley T Vocelka1007Brazil2024-04-17
Costa A Malet1008Italy2024-04-13
Antonio D Caldarera1009Russia2024-04-10
Silvio B Bowley1010India2024-03-29
Johnson Q Waycott1011Australia2024-04-05
Leja Z Iturbide1012France2024-03-25
Deepesh V Wieser1013Russia2024-04-18
Johnson P Rim1014Germany2024-04-14
Munro E Ferencz1015Australia2024-03-25
Ashley X Paprocki1016Australia2024-03-26
Johnson L Venere1017Germany2024-04-21
Salvatore P Nicka1018Brazil2024-04-21
Jennifer U Rim1019India2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson J FlosiSpainXuxue Feng NEGOTIATION
Izzy J WieserGermanyAsiya Javayant NEGOTIATION
Rodrigues X FigeroaSpainOnyama Limba QUALIFIED
Mujtaba A GarufiGermanyIvan Magalhaes NEGOTIATION
Izzy Q BowleyRussiaAmy Elsner RENEWAL
Murillo X SchemmerIndiaBernardo Dominic RENEWAL
Rodrigues P SchemmerRussiaAmy Elsner UNQUALIFIED
Ashley W RoysterAustraliaBernardo Dominic QUALIFIED
Rodrigues P BriddickCanadaIoni Bowcher NEW
Mujtaba I VocelkaItalyAnna Fali PROPOSAL
Mujtaba N SlusarskiAustraliaElwin Sharvill NEW
Kadeem O RutaRussiaXuxue Feng NEGOTIATION
Maisha M KolmetzFranceXuxue Feng PROPOSAL
James S IturbideItalyAsiya Javayant PROPOSAL
Alejandro V GillianIndiaOnyama Limba RENEWAL
Faith N SaylorsJapanAmy Elsner NEGOTIATION
Ricardo V PerinFranceStephen Shaw RENEWAL
Sinclair S ButtBrazilElwin Sharvill PROPOSAL
Wickens E VenereCanadaXuxue Feng UNQUALIFIED
Munro B IturbideBrazilAmy Elsner NEW
Ivar E TollnerArgentinaIvan Magalhaes UNQUALIFIED
Stacey U IturbideIndiaAsiya Javayant NEGOTIATION
Maisha M SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Chavez V OstroskyItalyBernardo Dominic PROPOSAL
Kaitlin N CampainBrazilStephen Shaw NEW
Costa N MorascaItalyXuxue Feng QUALIFIED
David V ShinkoAustraliaAsiya Javayant PROPOSAL
Emily E StensethRussiaAsiya Javayant PROPOSAL
Kaitlin W MacleadRussiaXuxue Feng NEGOTIATION
David J RulapaughSpainAmy Elsner UNQUALIFIED
Nicolas K FollerRussiaElwin Sharvill UNQUALIFIED
Isabel H WhobreySpainElwin Sharvill NEW
Kaitlin H TollnerSpainStephen Shaw RENEWAL
Jones U StensethArgentinaOnyama Limba NEGOTIATION
Costa B StensethAustraliaAsiya Javayant PROPOSAL
Faith D MaletJapanStephen Shaw NEW
Deepesh U RimCanadaBernardo Dominic UNQUALIFIED
Misaki U RoysterGermanyAmy Elsner UNQUALIFIED
Aditya O MorascaGermanyAsiya Javayant UNQUALIFIED
Emily W ButtBrazilAnna Fali NEW

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