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
Jennifer F PaprockiUnited KingdomXuxue Feng RENEWAL
Cody R FigeroaCanadaElwin Sharvill NEW
Jennifer R WhobreyFranceIoni Bowcher RENEWAL
Mayumi I GarufiBrazilAsiya Javayant UNQUALIFIED
Aruna H DarakjyFranceIoni Bowcher QUALIFIED
Smith Y PoquetteJapanElwin Sharvill NEW
Greenwood E OldroydUnited KingdomAsiya Javayant NEGOTIATION
Octavia Y MaletJapanAnna Fali QUALIFIED
Munro O PerinJapanAnna Fali NEGOTIATION
Munro T FlosiAustraliaAmy Elsner PROPOSAL
Munro Y WieserFranceOnyama Limba UNQUALIFIED
Wickens Z OstroskyFranceStephen Shaw NEGOTIATION
Claire I OstroskyFranceIoni Bowcher RENEWAL
Cody A GarufiRussiaElwin Sharvill UNQUALIFIED
Chavez Z StockhamFranceStephen Shaw UNQUALIFIED
Mujtaba V OstroskyIndiaXuxue Feng NEW
Smith F AlbaresJapanAnna Fali QUALIFIED
Aika W NickaRussiaOnyama Limba UNQUALIFIED
Jones F SaylorsJapanIoni Bowcher RENEWAL
Claire G StockhamJapanAsiya Javayant PROPOSAL
Faith D OldroydRussiaAnna Fali NEW
Isabel E SlusarskiIndiaAnna Fali QUALIFIED
Murillo Q DilliardRussiaIvan Magalhaes NEW
Silvio M FlosiAustraliaAmy Elsner NEW
Wickens P ButtIndiaIoni Bowcher QUALIFIED
Isabel A RutaArgentinaIvan Magalhaes RENEWAL
Aditya X RutaJapanAnna Fali PROPOSAL
Leon J FlosiItalyAmy Elsner UNQUALIFIED
Jennifer K InouyeGermanyBernardo Dominic RENEWAL
Antonio T WieserArgentinaStephen Shaw NEGOTIATION
Deepesh Q WieserUnited KingdomBernardo Dominic PROPOSAL
Leon P RimItalyOnyama Limba RENEWAL
Stacey Z FlosiUnited KingdomAsiya Javayant RENEWAL
Juan T KolmetzIndiaElwin Sharvill NEW
Kaitlin I FigeroaAustraliaIvan Magalhaes NEGOTIATION
Costa U KuskoFranceAsiya Javayant NEW
Silvio J CaldareraIndiaOnyama Limba NEGOTIATION
Jones M SchemmerUnited KingdomAmy Elsner PROPOSAL
Aika V StockhamIndiaStephen Shaw RENEWAL
Murillo F DarakjyIndiaXuxue Feng QUALIFIED
Juan Y WieserUnited KingdomAsiya Javayant NEGOTIATION
David V ButtItalyIoni Bowcher NEGOTIATION
Jefferson O ShinkoUnited KingdomBernardo Dominic RENEWAL
Francesco H MacleadArgentinaAnna Fali QUALIFIED
Izzy A RoysterSpainBernardo Dominic UNQUALIFIED
Jefferson A GillianBrazilAmy Elsner RENEWAL
Juan V KolmetzJapanAnna Fali UNQUALIFIED
Aditya W VocelkaGermanyAnna Fali NEW
Julie L MacleadUnited KingdomAsiya Javayant NEGOTIATION
Chavez L CaudyBrazilIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro Q WhobreyFranceBernardo Dominic NEW
Jeanfrancois G WhobreyRussiaXuxue Feng NEW
James N NickaIndiaAmy Elsner QUALIFIED
Leon B SergiUnited KingdomAmy Elsner RENEWAL
Ivar I TollnerRussiaAsiya Javayant UNQUALIFIED
Aditya A CaldareraJapanAmy Elsner PROPOSAL
Murillo F WaycottFranceStephen Shaw QUALIFIED
Morrow T DarakjyGermanyIvan Magalhaes UNQUALIFIED
Maisha X WhobreyIndiaXuxue Feng RENEWAL
Chavez L FlosiUnited KingdomIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie G PaprockiGermany2024-04-26Benton, John B Jr NEW66Asiya Javayant
1001Arvin O DoeUnited Kingdom2024-04-05Chapman, Ross E Esq PROPOSAL51Asiya Javayant
1002Francesco J RulapaughRussia2024-03-31Truhlar And Truhlar Attys QUALIFIED53Stephen Shaw
1003Cody F MaletJapan2024-04-19Rangoni Of Florence PROPOSAL95Elwin Sharvill
1004Aruna I WhobreyFrance2024-04-05Feltz Printing Service UNQUALIFIED14Amy Elsner
1005Costa N PerinGermany2024-04-02Morlong Associates PROPOSAL72Bernardo Dominic
1006Jeanfrancois O NickaCanada2024-04-06Benton, John B Jr QUALIFIED21Ivan Magalhaes
1007Morrow C GauchoJapan2024-04-24Benton, John B Jr QUALIFIED71Ivan Magalhaes
1008Costa U MaletItaly2024-04-22Rousseaux, Michael Esq PROPOSAL37Stephen Shaw
1009Leja X MaletRussia2024-04-19Chapman, Ross E Esq RENEWAL41Bernardo Dominic
1010Sinclair O InouyeGermany2024-04-01Printing Dimensions RENEWAL20Bernardo Dominic
1011Ivar J StockhamUnited Kingdom2024-04-07Morlong Associates RENEWAL48Anna Fali
1012Aika B RutaSpain2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED52Onyama Limba
1013Leja Y SergiRussia2024-04-19Benton, John B Jr RENEWAL50Amy Elsner
1014Sinclair C OstroskyAustralia2024-04-03Rangoni Of Florence UNQUALIFIED40Stephen Shaw
1015Leon B OstroskySpain2024-04-19Truhlar And Truhlar Attys RENEWAL91Stephen Shaw
1016Johnson G PerinRussia2024-04-23Feltz Printing Service QUALIFIED37Xuxue Feng
1017Murillo F VenereGermany2024-04-18Chanay, Jeffrey A Esq PROPOSAL93Elwin Sharvill
1018Clifford U SaylorsCanada2024-04-17Chanay, Jeffrey A Esq PROPOSAL76Anna Fali
1019Arvin O MorascaIndia2024-04-01King, Christopher A Esq QUALIFIED11Onyama Limba
1020Jones Z TollnerFrance2024-04-07Truhlar And Truhlar Attys PROPOSAL46Ioni Bowcher
1021Stacey R StensethGermany2024-03-31Feltz Printing Service NEGOTIATION2Bernardo Dominic
1022Mujtaba U GauchoCanada2024-04-17Dorl, James J Esq RENEWAL98Amy Elsner
1023Ashley P PoquetteItaly2024-04-04Feltz Printing Service NEW93Amy Elsner
1024Jennifer Z BologniaUnited Kingdom2024-04-01Rangoni Of Florence PROPOSAL69Onyama Limba
1025Johnson E StensethIndia2024-04-22Feiner Bros UNQUALIFIED81Xuxue Feng
1026Chavez U StensethSpain2024-04-14Printing Dimensions PROPOSAL84Elwin Sharvill
1027Adams O ChuiRussia2024-04-05King, Christopher A Esq NEGOTIATION11Onyama Limba
1028Juan O PoquetteSpain2024-04-26Feltz Printing Service PROPOSAL17Ivan Magalhaes
1029Aditya M BowleyArgentina2024-03-31Benton, John B Jr NEGOTIATION95Bernardo Dominic
1030Juan E CaldareraArgentina2024-04-21Commercial Press NEW52Onyama Limba
1031Leja A VenereRussia2024-04-28Chapman, Ross E Esq NEGOTIATION63Bernardo Dominic
1032Jeanfrancois G BologniaIndia2024-04-17Chemel, James L Cpa NEW16Stephen Shaw
1033Silvio A RoysterCanada2024-04-27Chapman, Ross E Esq NEW40Ivan Magalhaes
1034Francesco R VocelkaRussia2024-04-17Rousseaux, Michael Esq QUALIFIED31Ivan Magalhaes
1035Kaitlin L SlusarskiSpain2024-04-24Printing Dimensions NEGOTIATION44Amy Elsner
1036Leon Z PerinCanada2024-04-02Rousseaux, Michael Esq RENEWAL57Ioni Bowcher
1037Munro C FigeroaUnited Kingdom2024-04-10Commercial Press UNQUALIFIED57Anna Fali
1038Leon O GillianGermany2024-04-11Commercial Press PROPOSAL29Bernardo Dominic
1039Kadeem X MacleadGermany2024-04-21Buckley Miller Wright NEW11Elwin Sharvill
1040Kaitlin W RulapaughItaly2024-04-11Morlong Associates QUALIFIED20Xuxue Feng
1041Ashley K SergiSpain2024-03-30King, Christopher A Esq PROPOSAL91Ivan Magalhaes
1042Juan U InouyeFrance2024-04-17Dorl, James J Esq UNQUALIFIED77Ivan Magalhaes
1043Aditya Q PoquetteRussia2024-04-03King, Christopher A Esq NEW28Anna Fali
1044Morrow K ChuiAustralia2024-04-15Buckley Miller Wright UNQUALIFIED36Onyama Limba
1045Murillo G AmigonArgentina2024-04-17Dorl, James J Esq NEW32Anna Fali
1046Darci G GillianFrance2024-04-14Dorl, James J Esq RENEWAL87Ioni Bowcher
1047Francesco C CampainSpain2024-04-28Truhlar And Truhlar Attys UNQUALIFIED64Ioni Bowcher
1048Kadeem L FerenczArgentina2024-04-23Morlong Associates NEGOTIATION66Elwin Sharvill
1049Misaki Z PaprockiItaly2024-04-11Truhlar And Truhlar Attys RENEWAL42Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Costa B NestleItalyAnna Fali NEW
James U BriddickFranceIoni Bowcher QUALIFIED
Morrow O AlbaresRussiaAnna Fali PROPOSAL
Nicolas Z CaldareraSpainXuxue Feng QUALIFIED
Francesco K NickaArgentinaAsiya Javayant PROPOSAL
Jefferson U SchemmerCanadaStephen Shaw PROPOSAL
Maria N NickaSpainIvan Magalhaes UNQUALIFIED
Francesco Z SergiAustraliaOnyama Limba PROPOSAL
Johnson S StockhamItalyXuxue Feng RENEWAL
Munro C CaldareraItalyBernardo Dominic NEW
Cody G FigeroaItalyBernardo Dominic UNQUALIFIED
Sinclair Z CampainArgentinaAnna Fali NEGOTIATION
Kaitlin N KuskoGermanyIoni Bowcher PROPOSAL
Kadeem O RimSpainAmy Elsner PROPOSAL
Stacey W BowleyFranceXuxue Feng NEGOTIATION
Smith T ButtFranceXuxue Feng QUALIFIED
Jennifer P ButtRussiaElwin Sharvill PROPOSAL
Jones V ButtFranceElwin Sharvill NEW
Sinclair M PaprockiIndiaAmy Elsner RENEWAL
Francesco T PoquetteFranceOnyama Limba NEW
Jennifer G MorascaIndiaElwin Sharvill RENEWAL
Leja E SaylorsItalyAsiya Javayant UNQUALIFIED
Misaki O SaylorsRussiaOnyama Limba NEGOTIATION
Emily Y MaletCanadaIoni Bowcher RENEWAL
Emily S DoeFranceElwin Sharvill RENEWAL
Maisha C OldroydUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi U SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Maria B OldroydArgentinaOnyama Limba NEGOTIATION
David J FigeroaUnited KingdomOnyama Limba QUALIFIED
Munro I PoquetteCanadaXuxue Feng RENEWAL
Ricardo N GillianSpainAsiya Javayant PROPOSAL
Wickens I TollnerAustraliaAsiya Javayant UNQUALIFIED
Salvatore N BologniaGermanyIoni Bowcher UNQUALIFIED
Leja S IturbideIndiaIvan Magalhaes NEGOTIATION
Murillo B KolmetzIndiaAmy Elsner PROPOSAL
Clifford F WaycottFranceIoni Bowcher UNQUALIFIED
Misaki U OldroydFranceBernardo Dominic PROPOSAL
Kaitlin K SchemmerCanadaAnna Fali PROPOSAL
Nicolas F PoquetteItalyAsiya Javayant UNQUALIFIED
Aruna E GlickCanadaBernardo Dominic UNQUALIFIED
Sinclair R AmigonSpainStephen Shaw RENEWAL
Smith X FigeroaIndiaElwin Sharvill PROPOSAL
Maisha R StockhamUnited KingdomStephen Shaw UNQUALIFIED
James N CaldareraBrazilXuxue Feng NEGOTIATION
Jennifer U WaycottGermanyXuxue Feng QUALIFIED
Mayumi S IturbideItalyAmy Elsner PROPOSAL
Cody O OldroydJapanElwin Sharvill NEW
Cody P SaylorsAustraliaIvan Magalhaes NEGOTIATION
Mayumi O RulapaughJapanXuxue Feng RENEWAL
Misaki N NestleUnited KingdomStephen Shaw PROPOSAL
Frozen Columns
Name
Juan B Gillian
Clifford G Poquette
Greenwood M Schemmer
Isabel P Waycott
Sinclair O Nestle
Leja K Stenseth
Tony D Nicka
Darci P Royster
Nicolas I Briddick
Murillo M Saylors
Wickens H Sergi
Morrow R Stockham
Francesco Y Sergi
Mujtaba P Maclead
Kaitlin G Kusko
Izzy E Morasca
Francesco O Maclead
Maria G Chui
Tony I Figeroa
Isabel C Foller
Emily O Stockham
Stacey F Stenseth
Emily K Bowley
Maria G Tollner
Ashley V Sergi
David X Inouye
Leja X Nicka
Aika B Malet
Ashley M Bowley
Juan J Butt
Octavia M Kolmetz
Ivar A Whobrey
Julie X Nicka
Mayumi X Chui
Jeanfrancois I Gillian
Costa G Stenseth
James S Venere
Jennifer C Bowley
Salvatore C Oldroyd
Leon A Stockham
Emily V Darakjy
Izzy R Caldarera
Rodrigues O Kolmetz
Greenwood P Royster
Claire Y Caudy
Misaki Q Kusko
Darci W Flosi
Costa G Flosi
Alejandro W Bowley
Morrow Q Dilliard
IdCountryDate
1000Italy2024-04-06
1001Australia2024-04-18
1002Australia2024-04-27
1003Japan2024-04-27
1004India2024-04-05
1005United Kingdom2024-04-13
1006Germany2024-04-22
1007India2024-04-22
1008Russia2024-04-06
1009Argentina2024-04-11
1010United Kingdom2024-04-21
1011India2024-04-05
1012Japan2024-04-09
1013Italy2024-04-07
1014Russia2024-03-30
1015Spain2024-04-03
1016Brazil2024-04-25
1017Australia2024-03-31
1018Russia2024-04-24
1019Japan2024-04-24
1020France2024-04-04
1021France2024-04-05
1022Spain2024-04-12
1023Argentina2024-04-13
1024Brazil2024-04-20
1025Italy2024-04-27
1026Italy2024-04-02
1027Russia2024-04-07
1028Germany2024-03-30
1029Argentina2024-04-15
1030Russia2024-04-19
1031Japan2024-04-10
1032Brazil2024-04-10
1033Russia2024-04-04
1034Argentina2024-03-30
1035Germany2024-04-03
1036United Kingdom2024-04-09
1037Russia2024-04-04
1038France2024-04-04
1039Canada2024-04-08
1040Brazil2024-04-19
1041Argentina2024-04-19
1042Germany2024-04-17
1043Spain2024-04-27
1044Australia2024-04-18
1045Canada2024-04-27
1046Italy2024-04-24
1047Australia2024-03-31
1048France2024-04-15
1049Brazil2024-03-30

On-Demand Data

NameIdCountryDate
Antonio S Sergi1000Brazil2024-04-28
Arvin U Caudy1001Brazil2024-04-19
James I Darakjy1002Japan2024-04-14
Claire C Briddick1003United Kingdom2024-04-28
Adams Z Poquette1004Canada2024-04-18
Mayumi O Albares1005Spain2024-04-26
Rodrigues X Kolmetz1006Italy2024-04-28
Julie C Albares1007Australia2024-04-17
Aruna T Saylors1008India2024-04-20
Juan D Albares1009Russia2024-04-11
Faith W Shinko1010Germany2024-04-25
Ashley A Briddick1011France2024-04-17
Munro F Rim1012Spain2024-04-06
Emily Z Garufi1013Australia2024-04-10
Juan E Ferencz1014Spain2024-04-06
Leja D Poquette1015Argentina2024-04-01
Nicolas R Poquette1016Italy2024-04-05
Costa K Malet1017United Kingdom2024-04-22
Ashley D Oldroyd1018United Kingdom2024-04-22
Arvin I Rim1019Germany2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois R PerinIndiaAmy Elsner NEW
James M FerenczCanadaAnna Fali NEW
Jeanfrancois T MarrierFranceAnna Fali NEGOTIATION
Kaitlin D DarakjyJapanXuxue Feng PROPOSAL
Juan A AlbaresSpainBernardo Dominic UNQUALIFIED
Faith F RoysterItalyAmy Elsner PROPOSAL
Ashley U BriddickArgentinaAnna Fali PROPOSAL
Murillo J BriddickGermanyIvan Magalhaes NEGOTIATION
James X GauchoSpainBernardo Dominic UNQUALIFIED
Munro T VocelkaAustraliaStephen Shaw PROPOSAL
Silvio B MorascaSpainElwin Sharvill NEGOTIATION
Leon J MorascaSpainXuxue Feng QUALIFIED
Octavia D IturbideBrazilIoni Bowcher RENEWAL
Leon K AmigonRussiaAmy Elsner QUALIFIED
Kadeem U MaletCanadaAnna Fali UNQUALIFIED
Aditya S PoquetteCanadaAsiya Javayant NEW
Costa K MarrierCanadaAsiya Javayant UNQUALIFIED
Wickens H KuskoBrazilBernardo Dominic NEGOTIATION
Greenwood C BologniaArgentinaAnna Fali NEW
Arvin H ButtCanadaXuxue Feng RENEWAL
David H CaldareraBrazilIvan Magalhaes RENEWAL
Murillo O OldroydFranceBernardo Dominic NEW
Murillo L WaycottItalyIvan Magalhaes NEW
Claire W GauchoArgentinaAsiya Javayant RENEWAL
Deepesh Q NickaItalyIoni Bowcher RENEWAL
Arvin B MarrierJapanAsiya Javayant UNQUALIFIED
Ashley C OldroydJapanAmy Elsner UNQUALIFIED
Maria J FollerItalyAnna Fali NEGOTIATION
Antonio V PerinArgentinaXuxue Feng NEW
Ivar F WieserAustraliaBernardo Dominic RENEWAL
Misaki P BriddickItalyAsiya Javayant RENEWAL
Faith P RoysterArgentinaStephen Shaw RENEWAL
Misaki D FigeroaItalyElwin Sharvill PROPOSAL
Cody S MacleadSpainAsiya Javayant NEGOTIATION
Salvatore M AlbaresIndiaAmy Elsner NEW
Misaki G MaletIndiaAsiya Javayant RENEWAL
Jeanfrancois Y FerenczBrazilBernardo Dominic NEW
Greenwood B TollnerCanadaAsiya Javayant NEW
Maria U CaldareraFranceIvan Magalhaes QUALIFIED
Munro M ShinkoArgentinaStephen Shaw UNQUALIFIED

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