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 W RimRussiaAmy Elsner QUALIFIED
Antonio O FollerSpainIoni Bowcher NEGOTIATION
Cody M TollnerGermanyAnna Fali NEGOTIATION
Alejandro K GauchoItalyIvan Magalhaes UNQUALIFIED
Johnson D WaycottSpainIvan Magalhaes NEGOTIATION
Aruna E GarufiFranceAnna Fali UNQUALIFIED
Antonio D StensethGermanyAsiya Javayant QUALIFIED
Claire E SergiGermanyElwin Sharvill UNQUALIFIED
Mayumi O SergiCanadaXuxue Feng PROPOSAL
Smith V GillianItalyElwin Sharvill UNQUALIFIED
Aruna E BowleyItalyIvan Magalhaes RENEWAL
Kaitlin M WieserRussiaXuxue Feng RENEWAL
Kaitlin N BriddickBrazilIoni Bowcher QUALIFIED
Stacey A RoysterRussiaStephen Shaw QUALIFIED
Silvio G ChuiItalyIvan Magalhaes RENEWAL
Claire K MarrierIndiaIoni Bowcher RENEWAL
Aditya N CaudyAustraliaOnyama Limba PROPOSAL
Ashley W ChuiSpainXuxue Feng NEGOTIATION
Aika V MaletItalyAmy Elsner UNQUALIFIED
Ivar R StensethIndiaOnyama Limba UNQUALIFIED
Francesco D CaudyCanadaXuxue Feng QUALIFIED
Juan L IturbideSpainAnna Fali NEGOTIATION
Murillo D NestleGermanyElwin Sharvill NEGOTIATION
Leja B FerenczItalyIoni Bowcher RENEWAL
Faith U AlbaresBrazilStephen Shaw PROPOSAL
Alejandro F FollerBrazilAnna Fali RENEWAL
Johnson M InouyeUnited KingdomXuxue Feng UNQUALIFIED
Tony X GlickGermanyIoni Bowcher UNQUALIFIED
James A SaylorsBrazilBernardo Dominic UNQUALIFIED
Emily H PaprockiFranceStephen Shaw NEGOTIATION
Rodrigues K IturbideJapanBernardo Dominic UNQUALIFIED
Rodrigues T CaudyAustraliaIvan Magalhaes QUALIFIED
Deepesh W KuskoJapanAnna Fali PROPOSAL
Emily T RulapaughArgentinaIoni Bowcher UNQUALIFIED
Darci J CampainFranceIoni Bowcher UNQUALIFIED
Wickens F PerinGermanyBernardo Dominic RENEWAL
Greenwood A CaldareraSpainBernardo Dominic RENEWAL
Ricardo L MorascaArgentinaStephen Shaw NEW
Francesco G PerinRussiaXuxue Feng UNQUALIFIED
Aika X GauchoCanadaOnyama Limba RENEWAL
James U BologniaJapanStephen Shaw RENEWAL
Adams T SaylorsRussiaIoni Bowcher NEGOTIATION
Chavez Z PaprockiRussiaAsiya Javayant PROPOSAL
Alejandro M RimJapanAnna Fali NEW
Mujtaba G TollnerSpainAsiya Javayant NEW
Claire I MorascaRussiaAnna Fali PROPOSAL
Aruna Z SaylorsItalyIoni Bowcher PROPOSAL
Francesco I KolmetzBrazilIoni Bowcher NEGOTIATION
Kaitlin T AmigonAustraliaOnyama Limba NEGOTIATION
Antonio J MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem B KolmetzBrazilBernardo Dominic PROPOSAL
Wickens M ButtIndiaIvan Magalhaes QUALIFIED
Clifford O GauchoCanadaIvan Magalhaes RENEWAL
Julie T DoeArgentinaIoni Bowcher NEW
Murillo U WhobreyBrazilOnyama Limba NEGOTIATION
Jennifer K VenereBrazilIvan Magalhaes QUALIFIED
Emily Q MorascaItalyAmy Elsner QUALIFIED
Misaki L IturbideIndiaAsiya Javayant NEGOTIATION
Aditya M MorascaRussiaAsiya Javayant PROPOSAL
Rodrigues T CaldareraRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily A BowleyArgentina2024-04-17Commercial Press NEGOTIATION64Elwin Sharvill
1001Jefferson W ChuiUnited Kingdom2024-05-03Feiner Bros NEGOTIATION13Xuxue Feng
1002Juan E FerenczAustralia2024-05-10Feltz Printing Service RENEWAL35Elwin Sharvill
1003Nicolas V MorascaGermany2024-05-10King, Christopher A Esq NEGOTIATION16Xuxue Feng
1004Chavez V GlickBrazil2024-04-12Commercial Press RENEWAL30Ioni Bowcher
1005Wickens T TollnerBrazil2024-05-07Feiner Bros NEW93Elwin Sharvill
1006Maisha K DoeJapan2024-04-22Dorl, James J Esq QUALIFIED29Bernardo Dominic
1007Faith X AlbaresItaly2024-05-06Feltz Printing Service PROPOSAL46Onyama Limba
1008Juan Q GauchoRussia2024-05-07Printing Dimensions NEGOTIATION27Ivan Magalhaes
1009Juan S BriddickRussia2024-04-22Feiner Bros PROPOSAL18Ivan Magalhaes
1010Leon P DoeIndia2024-05-10Benton, John B Jr QUALIFIED16Amy Elsner
1011Ivar T DoeRussia2024-05-07Commercial Press NEGOTIATION20Xuxue Feng
1012Greenwood B PerinSpain2024-04-26Rangoni Of Florence UNQUALIFIED19Ioni Bowcher
1013Francesco S WhobreyAustralia2024-04-14Printing Dimensions NEGOTIATION37Bernardo Dominic
1014Aditya I MaletItaly2024-04-13Chemel, James L Cpa NEGOTIATION43Onyama Limba
1015Clifford I MorascaArgentina2024-05-10Buckley Miller Wright PROPOSAL18Ivan Magalhaes
1016Arvin N GillianArgentina2024-05-03Printing Dimensions NEGOTIATION32Asiya Javayant
1017Smith G GarufiItaly2024-04-19Rangoni Of Florence NEW96Stephen Shaw
1018Octavia F NestleItaly2024-05-02Feltz Printing Service NEGOTIATION81Ioni Bowcher
1019Stacey S VenereCanada2024-04-25Commercial Press PROPOSAL23Asiya Javayant
1020Jeanfrancois E StockhamArgentina2024-04-28Chanay, Jeffrey A Esq RENEWAL50Xuxue Feng
1021Adams R MaletFrance2024-05-09Commercial Press NEW62Onyama Limba
1022Silvio S OstroskyItaly2024-04-22Dorl, James J Esq UNQUALIFIED64Ioni Bowcher
1023Mayumi W CampainItaly2024-05-10Buckley Miller Wright RENEWAL75Xuxue Feng
1024Jefferson O InouyeJapan2024-05-02Buckley Miller Wright PROPOSAL3Xuxue Feng
1025Salvatore B BowleyUnited Kingdom2024-04-22Feltz Printing Service NEW74Bernardo Dominic
1026Adams D MarrierUnited Kingdom2024-04-29King, Christopher A Esq QUALIFIED81Xuxue Feng
1027Ricardo N AlbaresItaly2024-04-28Chemel, James L Cpa NEGOTIATION5Ioni Bowcher
1028Emily L TollnerJapan2024-05-04Buckley Miller Wright PROPOSAL95Anna Fali
1029Kadeem X SlusarskiItaly2024-04-24Buckley Miller Wright NEW10Bernardo Dominic
1030Aruna R CaudyAustralia2024-04-25Feltz Printing Service UNQUALIFIED27Onyama Limba
1031Ivar I GarufiArgentina2024-05-10Feltz Printing Service QUALIFIED22Elwin Sharvill
1032Johnson Q RutaItaly2024-04-12Feltz Printing Service PROPOSAL80Asiya Javayant
1033Chavez Z SergiUnited Kingdom2024-04-21Printing Dimensions RENEWAL21Ioni Bowcher
1034David U SlusarskiRussia2024-04-18Feltz Printing Service RENEWAL81Ioni Bowcher
1035Antonio X FigeroaJapan2024-04-12King, Christopher A Esq PROPOSAL56Bernardo Dominic
1036Maisha P GarufiGermany2024-04-13Morlong Associates RENEWAL39Anna Fali
1037Aditya F MorascaGermany2024-04-17Commercial Press NEGOTIATION66Onyama Limba
1038Claire G GlickIndia2024-05-06Feiner Bros NEGOTIATION29Amy Elsner
1039David D RutaGermany2024-05-02Rousseaux, Michael Esq QUALIFIED10Xuxue Feng
1040Emily H FlosiArgentina2024-04-24Rangoni Of Florence RENEWAL92Amy Elsner
1041Francesco U BologniaJapan2024-04-30Chemel, James L Cpa NEGOTIATION15Onyama Limba
1042Salvatore M InouyeFrance2024-04-30Chanay, Jeffrey A Esq PROPOSAL38Amy Elsner
1043Alejandro K GarufiAustralia2024-05-02Commercial Press NEGOTIATION10Asiya Javayant
1044Julie A SlusarskiIndia2024-04-15Rousseaux, Michael Esq NEW99Elwin Sharvill
1045Ricardo Y WieserJapan2024-04-14Commercial Press NEW86Anna Fali
1046Ivar W TollnerSpain2024-04-18Chapman, Ross E Esq NEW67Xuxue Feng
1047Salvatore J GillianIndia2024-04-20King, Christopher A Esq PROPOSAL8Amy Elsner
1048Morrow G InouyeArgentina2024-04-19Morlong Associates RENEWAL18Bernardo Dominic
1049Juan K PerinJapan2024-04-22Truhlar And Truhlar Attys UNQUALIFIED47Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Nicolas X OldroydRussiaIvan Magalhaes NEW
Smith K MacleadUnited KingdomStephen Shaw NEW
Leja O ChuiJapanXuxue Feng NEGOTIATION
Arvin M DoeGermanyOnyama Limba QUALIFIED
Izzy I InouyeArgentinaBernardo Dominic NEGOTIATION
Murillo E SlusarskiSpainOnyama Limba RENEWAL
Alejandro I SlusarskiGermanyAnna Fali UNQUALIFIED
Claire G WhobreyRussiaIvan Magalhaes NEW
Mujtaba R AmigonArgentinaOnyama Limba NEW
Munro X KuskoFranceStephen Shaw NEW
Rodrigues T SchemmerGermanyOnyama Limba RENEWAL
Leja R AmigonSpainBernardo Dominic PROPOSAL
Kadeem E SchemmerJapanIoni Bowcher QUALIFIED
Emily E GarufiAustraliaAmy Elsner QUALIFIED
Cody F SlusarskiCanadaIoni Bowcher PROPOSAL
Morrow U FigeroaBrazilStephen Shaw PROPOSAL
Claire M BriddickArgentinaIoni Bowcher RENEWAL
Deepesh W MorascaRussiaAsiya Javayant UNQUALIFIED
Kaitlin R AmigonJapanElwin Sharvill NEW
Aditya E PerinGermanyIvan Magalhaes NEGOTIATION
Maria U MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Kadeem U FigeroaRussiaBernardo Dominic NEW
Jeanfrancois S DarakjyRussiaIoni Bowcher NEGOTIATION
James L CampainFranceAnna Fali NEGOTIATION
Isabel S GlickBrazilIvan Magalhaes RENEWAL
Chavez V DilliardIndiaAnna Fali NEW
David Y GarufiJapanOnyama Limba NEW
Jefferson C MacleadAustraliaAnna Fali UNQUALIFIED
Isabel R RimBrazilOnyama Limba NEW
Ricardo R MacleadUnited KingdomAnna Fali RENEWAL
Mujtaba G OstroskyArgentinaElwin Sharvill PROPOSAL
Kaitlin F IturbideGermanyIoni Bowcher PROPOSAL
Jeanfrancois F MorascaJapanOnyama Limba PROPOSAL
Stacey C ShinkoFranceBernardo Dominic PROPOSAL
Deepesh V MarrierCanadaIvan Magalhaes RENEWAL
Claire J SchemmerSpainAsiya Javayant RENEWAL
Claire H GillianUnited KingdomXuxue Feng QUALIFIED
Ricardo K VenereUnited KingdomAsiya Javayant NEGOTIATION
Stacey K GlickIndiaAsiya Javayant RENEWAL
Sinclair H VocelkaRussiaBernardo Dominic PROPOSAL
Nicolas Z SlusarskiJapanXuxue Feng NEW
Leon Z VocelkaUnited KingdomAsiya Javayant PROPOSAL
Jennifer A GarufiRussiaAmy Elsner RENEWAL
Aditya I RoysterBrazilAnna Fali NEW
Maisha I ButtFranceOnyama Limba PROPOSAL
Mayumi Z AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Murillo Q StensethArgentinaOnyama Limba NEGOTIATION
Octavia K DarakjyGermanyOnyama Limba RENEWAL
Silvio L SaylorsBrazilXuxue Feng UNQUALIFIED
Rodrigues A FollerCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Kaitlin H Perin
Silvio A Whobrey
Antonio T Schemmer
Darci I Nicka
Alejandro X Bolognia
Jefferson E Flosi
Julie U Briddick
Chavez D Stenseth
Alejandro B Caudy
Ricardo Z Ruta
Salvatore A Albares
Claire G Wieser
Ivar Z Iturbide
Arvin K Darakjy
Stacey T Waycott
Aditya I Darakjy
Antonio N Caudy
Silvio G Rim
Aruna Q Perin
Clifford I Butt
Johnson E Caudy
Alejandro J Malet
Clifford A Sergi
Murillo Q Malet
Faith I Ferencz
Ashley D Gillian
Jones L Ruta
Mayumi T Perin
Faith C Perin
Deepesh F Maclead
Aika X Oldroyd
Maria P Venere
Sinclair Q Butt
Ivar M Paprocki
Jefferson Q Doe
Octavia G Royster
Clifford U Maclead
Morrow V Ferencz
Stacey U Bolognia
Claire F Marrier
Claire K Oldroyd
Silvio E Foller
Clifford N Whobrey
Johnson Q Rulapaugh
Emily Q Dilliard
Aruna D Sergi
Costa A Kolmetz
Salvatore K Stenseth
Rodrigues G Slusarski
Ricardo S Caudy
IdCountryDate
1000Germany2024-04-16
1001France2024-04-21
1002Russia2024-04-18
1003Australia2024-04-22
1004Canada2024-04-14
1005India2024-05-09
1006France2024-05-04
1007Spain2024-04-21
1008Argentina2024-04-20
1009Canada2024-04-15
1010France2024-04-28
1011Germany2024-04-15
1012Italy2024-04-24
1013France2024-05-09
1014Australia2024-05-02
1015Japan2024-04-11
1016Spain2024-05-04
1017Spain2024-04-16
1018Japan2024-04-13
1019Spain2024-04-29
1020United Kingdom2024-04-13
1021Italy2024-05-10
1022Brazil2024-04-17
1023Germany2024-05-05
1024Japan2024-05-05
1025India2024-04-14
1026Canada2024-04-16
1027Russia2024-05-01
1028Italy2024-04-24
1029Germany2024-05-10
1030Argentina2024-05-09
1031Japan2024-04-14
1032Spain2024-05-04
1033Australia2024-04-26
1034Japan2024-04-14
1035Australia2024-05-02
1036United Kingdom2024-05-06
1037Germany2024-04-30
1038Australia2024-04-28
1039Russia2024-04-26
1040Japan2024-04-19
1041India2024-05-06
1042India2024-04-16
1043France2024-04-25
1044Italy2024-04-19
1045United Kingdom2024-05-06
1046Russia2024-04-16
1047Brazil2024-04-12
1048Japan2024-04-17
1049Canada2024-05-10

On-Demand Data

NameIdCountryDate
Alejandro I Malet1000Italy2024-05-04
Aika S Darakjy1001Italy2024-04-17
Isabel B Ruta1002France2024-04-25
Faith G Ostrosky1003Japan2024-05-02
Darci L Inouye1004Italy2024-04-23
Clifford D Darakjy1005Canada2024-04-13
Aika U Nestle1006Japan2024-04-11
Ivar R Bowley1007Russia2024-05-07
Greenwood O Whobrey1008France2024-04-26
Silvio M Tollner1009Brazil2024-04-16
Francesco E Caldarera1010Japan2024-04-15
Kaitlin I Butt1011Japan2024-04-14
James L Bowley1012Russia2024-05-09
Costa M Ruta1013Brazil2024-05-02
Jefferson V Marrier1014Canada2024-05-09
Jennifer Y Vocelka1015Germany2024-05-03
Julie S Ostrosky1016Japan2024-05-09
Antonio K Ruta1017Australia2024-04-26
Misaki X Rulapaugh1018Spain2024-04-21
Salvatore V Royster1019Australia2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon D NickaUnited KingdomAnna Fali UNQUALIFIED
Salvatore R WaycottRussiaAmy Elsner QUALIFIED
Chavez Q MaletUnited KingdomIoni Bowcher NEGOTIATION
Juan Q MaletBrazilAnna Fali UNQUALIFIED
Smith S CaudyAustraliaBernardo Dominic RENEWAL
Cody U WieserBrazilIvan Magalhaes QUALIFIED
Maria M SaylorsUnited KingdomAnna Fali RENEWAL
Deepesh X RutaIndiaBernardo Dominic PROPOSAL
Juan J DarakjyJapanBernardo Dominic QUALIFIED
Maria D SlusarskiAustraliaOnyama Limba QUALIFIED
Isabel G SaylorsIndiaAmy Elsner QUALIFIED
Octavia B RimAustraliaIoni Bowcher NEW
Stacey S DarakjyArgentinaXuxue Feng NEGOTIATION
Francesco U FlosiGermanyStephen Shaw NEW
Jones E CaudyBrazilXuxue Feng NEW
Chavez Z WhobreyAustraliaXuxue Feng NEGOTIATION
Mujtaba J AmigonFranceIvan Magalhaes RENEWAL
Smith I PoquetteFranceOnyama Limba PROPOSAL
Izzy L RoysterAustraliaElwin Sharvill NEGOTIATION
Mujtaba E SaylorsJapanXuxue Feng RENEWAL
Ivar G GlickJapanIvan Magalhaes NEGOTIATION
Jennifer R DoeSpainStephen Shaw QUALIFIED
Costa S SlusarskiFranceStephen Shaw RENEWAL
Isabel J DilliardIndiaOnyama Limba PROPOSAL
Antonio A PerinUnited KingdomAnna Fali UNQUALIFIED
Julie D CaldareraFranceIoni Bowcher NEW
Ricardo C MarrierGermanyAsiya Javayant UNQUALIFIED
Juan E NestleAustraliaIoni Bowcher QUALIFIED
Adams S FigeroaFranceStephen Shaw NEW
Leon Z ButtCanadaOnyama Limba PROPOSAL
Ricardo H PoquetteBrazilIvan Magalhaes QUALIFIED
Jones X OstroskyIndiaAmy Elsner UNQUALIFIED
Leon V StensethRussiaBernardo Dominic PROPOSAL
Isabel A MacleadJapanIoni Bowcher QUALIFIED
Cody M RimRussiaOnyama Limba PROPOSAL
Morrow Y NestleSpainBernardo Dominic NEGOTIATION
Mayumi K PerinJapanAnna Fali NEW
Smith G StockhamItalyIoni Bowcher PROPOSAL
Maria Z OldroydBrazilStephen Shaw PROPOSAL
Octavia I CaudyRussiaOnyama Limba 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>