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
Tony O VocelkaIndiaAnna Fali NEGOTIATION
Julie J VocelkaArgentinaElwin Sharvill RENEWAL
Aruna B SlusarskiCanadaXuxue Feng UNQUALIFIED
Francesco E NickaCanadaOnyama Limba UNQUALIFIED
Leon C StockhamUnited KingdomAsiya Javayant PROPOSAL
Aditya T ShinkoArgentinaStephen Shaw RENEWAL
Salvatore Z PoquetteGermanyXuxue Feng NEGOTIATION
Maria Q SlusarskiRussiaElwin Sharvill NEGOTIATION
Antonio O MarrierRussiaXuxue Feng NEGOTIATION
Octavia V MaletItalyXuxue Feng UNQUALIFIED
Smith Y PoquetteAustraliaAmy Elsner RENEWAL
Nicolas T DarakjyJapanOnyama Limba RENEWAL
Arvin G MacleadArgentinaOnyama Limba UNQUALIFIED
Mujtaba O VocelkaAustraliaIvan Magalhaes NEW
Isabel Q KuskoFranceElwin Sharvill UNQUALIFIED
Octavia G BologniaIndiaAmy Elsner NEW
Munro E BologniaRussiaBernardo Dominic QUALIFIED
Claire V FollerSpainElwin Sharvill NEGOTIATION
Morrow S FlosiJapanIoni Bowcher UNQUALIFIED
Chavez Z AmigonRussiaXuxue Feng PROPOSAL
Cody Y KolmetzBrazilStephen Shaw QUALIFIED
Wickens E FerenczIndiaAmy Elsner NEGOTIATION
Mujtaba F InouyeAustraliaBernardo Dominic NEW
Leja W MarrierCanadaElwin Sharvill UNQUALIFIED
Munro X WaycottGermanyIoni Bowcher UNQUALIFIED
Leon I OstroskyBrazilBernardo Dominic NEGOTIATION
Juan D GlickArgentinaAmy Elsner PROPOSAL
Aika K VocelkaFranceStephen Shaw QUALIFIED
Costa S PerinGermanyElwin Sharvill RENEWAL
Julie V MacleadGermanyElwin Sharvill NEW
Cody B OldroydAustraliaBernardo Dominic RENEWAL
Costa V MarrierIndiaAsiya Javayant NEGOTIATION
Ricardo T CampainJapanStephen Shaw RENEWAL
Emily Z WaycottItalyAsiya Javayant QUALIFIED
Jefferson I IturbideIndiaXuxue Feng NEW
Mujtaba X IturbideArgentinaOnyama Limba UNQUALIFIED
Emily H BriddickCanadaAmy Elsner PROPOSAL
Sinclair I ShinkoUnited KingdomAnna Fali QUALIFIED
Aditya O SlusarskiBrazilAsiya Javayant NEGOTIATION
Cody O StockhamCanadaBernardo Dominic RENEWAL
Faith R VenereBrazilElwin Sharvill NEGOTIATION
Salvatore L BowleyIndiaStephen Shaw NEW
Cody V MaletAustraliaAsiya Javayant PROPOSAL
Alejandro W BowleyRussiaStephen Shaw UNQUALIFIED
Adams A GarufiUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues J RimRussiaOnyama Limba NEW
Antonio E FlosiCanadaIvan Magalhaes PROPOSAL
Arvin A ChuiCanadaElwin Sharvill PROPOSAL
Silvio S PerinJapanAsiya Javayant UNQUALIFIED
Emily C NickaSpainAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody L PaprockiSpainAsiya Javayant NEW
Adams H PerinJapanBernardo Dominic RENEWAL
Kadeem L GauchoGermanyAmy Elsner NEW
Salvatore Y MacleadJapanIoni Bowcher NEGOTIATION
Jefferson C RutaItalyAsiya Javayant RENEWAL
Jefferson F SlusarskiJapanXuxue Feng RENEWAL
Murillo C InouyeJapanXuxue Feng NEW
Mayumi H KuskoUnited KingdomXuxue Feng QUALIFIED
Cody E StockhamArgentinaXuxue Feng RENEWAL
Stacey R PaprockiIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan R PaprockiJapan2024-04-19Chapman, Ross E Esq PROPOSAL12Ivan Magalhaes
1001Jennifer R FollerJapan2024-04-24Printing Dimensions PROPOSAL6Asiya Javayant
1002Johnson I MaletAustralia2024-04-16King, Christopher A Esq QUALIFIED75Onyama Limba
1003Leja N RimIndia2024-04-23Feltz Printing Service NEW21Anna Fali
1004David X NickaArgentina2024-04-05Dorl, James J Esq NEGOTIATION75Amy Elsner
1005Jefferson N GarufiFrance2024-04-23Rangoni Of Florence NEGOTIATION61Amy Elsner
1006Izzy H MaletGermany2024-04-08Dorl, James J Esq NEGOTIATION75Ioni Bowcher
1007Leon P WieserJapan2024-04-01Benton, John B Jr RENEWAL88Ivan Magalhaes
1008Isabel P BriddickSpain2024-04-05Buckley Miller Wright QUALIFIED87Stephen Shaw
1009Francesco W SchemmerItaly2024-04-20Feltz Printing Service PROPOSAL20Onyama Limba
1010Jennifer D InouyeJapan2024-04-17Benton, John B Jr PROPOSAL55Asiya Javayant
1011Jones U NestleBrazil2024-04-17Chanay, Jeffrey A Esq RENEWAL54Xuxue Feng
1012Silvio O ButtCanada2024-04-15Buckley Miller Wright QUALIFIED84Ivan Magalhaes
1013Nicolas Y FlosiArgentina2024-03-30Morlong Associates NEGOTIATION11Amy Elsner
1014Ashley K PoquetteIndia2024-04-15Chemel, James L Cpa RENEWAL40Anna Fali
1015Kadeem M KolmetzSpain2024-04-26Morlong Associates PROPOSAL44Ivan Magalhaes
1016Chavez W TollnerArgentina2024-04-04Feiner Bros QUALIFIED93Onyama Limba
1017Francesco Z PoquetteItaly2024-04-21Rousseaux, Michael Esq RENEWAL89Stephen Shaw
1018Faith W BologniaItaly2024-04-05Chapman, Ross E Esq NEW74Anna Fali
1019Mayumi Z DilliardUnited Kingdom2024-04-26Rousseaux, Michael Esq QUALIFIED57Amy Elsner
1020Ivar O DilliardBrazil2024-04-22Dorl, James J Esq NEW34Amy Elsner
1021Mujtaba I VocelkaSpain2024-04-28Chapman, Ross E Esq QUALIFIED45Stephen Shaw
1022Salvatore H DoeCanada2024-04-11Benton, John B Jr NEW88Onyama Limba
1023Murillo D TollnerCanada2024-04-16King, Christopher A Esq QUALIFIED77Bernardo Dominic
1024Tony D DarakjyCanada2024-04-26Chapman, Ross E Esq NEW85Ivan Magalhaes
1025Alejandro T RutaCanada2024-04-19Truhlar And Truhlar Attys NEW4Xuxue Feng
1026Nicolas H BowleyGermany2024-04-10Feiner Bros QUALIFIED55Ioni Bowcher
1027Greenwood W MaletItaly2024-04-09Chanay, Jeffrey A Esq NEW55Amy Elsner
1028Maria M PoquetteJapan2024-03-31Commercial Press NEGOTIATION57Stephen Shaw
1029Faith V BologniaAustralia2024-04-13Commercial Press QUALIFIED15Asiya Javayant
1030Kadeem B RutaGermany2024-04-13Feiner Bros RENEWAL76Anna Fali
1031Stacey Q StockhamIndia2024-04-28Benton, John B Jr UNQUALIFIED57Anna Fali
1032Izzy Y WaycottBrazil2024-04-23Feltz Printing Service RENEWAL89Asiya Javayant
1033Misaki H MaletJapan2024-04-13Truhlar And Truhlar Attys RENEWAL83Anna Fali
1034Kadeem S MorascaAustralia2024-04-10Chanay, Jeffrey A Esq PROPOSAL40Xuxue Feng
1035Costa P PaprockiFrance2024-04-27King, Christopher A Esq QUALIFIED76Ivan Magalhaes
1036Jennifer W DarakjyCanada2024-03-31Rangoni Of Florence QUALIFIED17Anna Fali
1037Deepesh T MaletArgentina2024-04-12Dorl, James J Esq QUALIFIED77Ivan Magalhaes
1038Ricardo S VocelkaBrazil2024-04-01Chemel, James L Cpa PROPOSAL73Onyama Limba
1039Aruna L OstroskyBrazil2024-04-25Rangoni Of Florence RENEWAL10Elwin Sharvill
1040Munro N WieserGermany2024-04-18Rangoni Of Florence NEGOTIATION2Onyama Limba
1041Chavez L IturbideBrazil2024-04-17King, Christopher A Esq QUALIFIED51Stephen Shaw
1042Cody Y BologniaRussia2024-04-17Truhlar And Truhlar Attys UNQUALIFIED16Ivan Magalhaes
1043Salvatore C IturbideArgentina2024-04-22Chanay, Jeffrey A Esq NEW21Stephen Shaw
1044Morrow T KuskoItaly2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED92Bernardo Dominic
1045Kadeem H RulapaughGermany2024-03-30King, Christopher A Esq RENEWAL13Anna Fali
1046Maria A VocelkaFrance2024-04-06Feiner Bros RENEWAL1Stephen Shaw
1047Johnson X SergiItaly2024-04-25Morlong Associates UNQUALIFIED77Xuxue Feng
1048Cody N TollnerSpain2024-04-07Morlong Associates UNQUALIFIED26Asiya Javayant
1049Francesco K NickaBrazil2024-04-25Rousseaux, Michael Esq QUALIFIED33Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Julie V AmigonJapanOnyama Limba QUALIFIED
Mujtaba S OstroskyGermanyStephen Shaw PROPOSAL
Izzy A GarufiFranceOnyama Limba NEW
Adams B MacleadRussiaIoni Bowcher UNQUALIFIED
Jennifer V SchemmerAustraliaAsiya Javayant PROPOSAL
Morrow E StensethFranceBernardo Dominic NEGOTIATION
Leon X KuskoBrazilAmy Elsner UNQUALIFIED
Mujtaba F VenereItalyIoni Bowcher QUALIFIED
Aruna P ChuiArgentinaBernardo Dominic NEGOTIATION
Morrow H GarufiGermanyAnna Fali QUALIFIED
Tony R VocelkaSpainStephen Shaw PROPOSAL
Johnson L SaylorsSpainAnna Fali UNQUALIFIED
Izzy B OldroydBrazilElwin Sharvill NEGOTIATION
Sinclair M ChuiCanadaOnyama Limba NEW
Ricardo Q SchemmerJapanBernardo Dominic RENEWAL
Sinclair Z MarrierArgentinaOnyama Limba NEW
Izzy P GillianIndiaOnyama Limba RENEWAL
James M StockhamIndiaAnna Fali UNQUALIFIED
Ricardo P FigeroaAustraliaXuxue Feng QUALIFIED
Aditya X SaylorsFranceBernardo Dominic RENEWAL
Cody U DilliardGermanyStephen Shaw UNQUALIFIED
Leja T SchemmerRussiaXuxue Feng UNQUALIFIED
Leja D MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba V InouyeSpainAmy Elsner RENEWAL
Maria F WhobreyRussiaAsiya Javayant PROPOSAL
Mujtaba A SergiBrazilStephen Shaw RENEWAL
Adams O RimFranceOnyama Limba PROPOSAL
Aruna T WaycottItalyIoni Bowcher NEW
Stacey N InouyeFranceOnyama Limba RENEWAL
Salvatore J PaprockiBrazilElwin Sharvill NEW
Emily K NestleGermanyOnyama Limba NEGOTIATION
Claire P PaprockiRussiaBernardo Dominic PROPOSAL
Smith L MacleadUnited KingdomOnyama Limba RENEWAL
Costa P PaprockiUnited KingdomElwin Sharvill QUALIFIED
Ricardo G SergiBrazilIvan Magalhaes QUALIFIED
Munro L MaletJapanIvan Magalhaes NEW
Maria Z RulapaughItalyAsiya Javayant NEGOTIATION
Julie O MaletJapanElwin Sharvill NEGOTIATION
Darci N DoeItalyIvan Magalhaes RENEWAL
Cody E BriddickJapanBernardo Dominic PROPOSAL
Juan B DoeCanadaAmy Elsner NEGOTIATION
Jennifer X OstroskyBrazilElwin Sharvill QUALIFIED
Rodrigues C NestleAustraliaBernardo Dominic UNQUALIFIED
Jones T KuskoCanadaIoni Bowcher NEGOTIATION
Wickens H GauchoRussiaAsiya Javayant RENEWAL
Johnson Y BowleyRussiaXuxue Feng NEGOTIATION
Octavia W KolmetzAustraliaOnyama Limba PROPOSAL
Julie E DarakjyGermanyAsiya Javayant NEW
Arvin B AlbaresItalyBernardo Dominic RENEWAL
Isabel Y GarufiItalyIoni Bowcher RENEWAL
Frozen Columns
Name
Maisha T Garufi
Jefferson S Marrier
Arvin T Ferencz
Alejandro S Caudy
Munro Y Shinko
Chavez O Perin
Maria M Maclead
Ivar L Caudy
Costa Q Kolmetz
Johnson A Briddick
Jones M Rim
Tony I Maclead
Jeanfrancois R Amigon
Ivar U Iturbide
Tony J Butt
Arvin P Kolmetz
Tony D Oldroyd
Rodrigues A Rulapaugh
Murillo X Chui
Stacey U Gaucho
Octavia X Stenseth
Sinclair P Paprocki
Ricardo F Poquette
Maria S Flosi
Darci O Stenseth
Leja G Paprocki
Darci T Malet
Julie B Albares
Misaki Q Poquette
Jones J Dilliard
Alejandro D Foller
James U Bolognia
Ricardo I Maclead
Munro N Waycott
Adams Z Rulapaugh
Emily R Schemmer
Adams Z Wieser
Kaitlin T Butt
Smith Q Nicka
Costa C Caudy
Mayumi K Nicka
Jennifer H Gillian
Rodrigues N Rim
Stacey U Maclead
Munro F Butt
Izzy C Chui
Juan Q Dilliard
Rodrigues L Oldroyd
Francesco Y Royster
Aditya Z Whobrey
IdCountryDate
1000Canada2024-04-15
1001Spain2024-04-26
1002Germany2024-04-16
1003Argentina2024-04-22
1004Australia2024-04-01
1005Brazil2024-04-16
1006Canada2024-04-18
1007United Kingdom2024-04-07
1008Canada2024-04-23
1009Australia2024-04-13
1010Germany2024-03-31
1011Germany2024-04-26
1012Brazil2024-04-22
1013Japan2024-04-20
1014India2024-04-20
1015Russia2024-03-31
1016Australia2024-04-04
1017Spain2024-04-27
1018India2024-04-26
1019France2024-04-27
1020Australia2024-04-13
1021Australia2024-04-15
1022France2024-04-01
1023Italy2024-04-03
1024Germany2024-04-20
1025Russia2024-04-10
1026United Kingdom2024-04-19
1027Russia2024-04-02
1028Spain2024-04-11
1029Canada2024-04-14
1030Spain2024-04-12
1031Australia2024-04-04
1032France2024-04-27
1033Brazil2024-04-09
1034Argentina2024-04-10
1035Germany2024-04-02
1036Italy2024-04-07
1037Australia2024-04-14
1038Australia2024-04-22
1039Italy2024-04-11
1040India2024-04-10
1041Japan2024-04-08
1042Germany2024-04-19
1043Australia2024-04-05
1044France2024-04-26
1045Australia2024-04-25
1046Russia2024-04-24
1047Germany2024-04-07
1048Japan2024-04-16
1049United Kingdom2024-04-17

On-Demand Data

NameIdCountryDate
Isabel R Dilliard1000United Kingdom2024-04-26
Leja R Kusko1001Italy2024-04-07
Alejandro J Marrier1002Germany2024-04-10
Arvin L Glick1003India2024-04-11
Silvio V Butt1004Italy2024-04-21
Murillo K Inouye1005Argentina2024-04-11
Francesco L Stenseth1006Brazil2024-04-28
Aditya M Doe1007United Kingdom2024-04-24
Sinclair Q Bowley1008Canada2024-04-21
Jones U Rulapaugh1009Germany2024-04-15
Costa A Butt1010Spain2024-04-08
David W Shinko1011Spain2024-04-06
Misaki T Saylors1012India2024-04-23
Octavia F Sergi1013Russia2024-04-17
Izzy M Shinko1014Australia2024-03-30
Isabel K Glick1015United Kingdom2024-04-24
Cody N Ruta1016Canada2024-04-15
Jeanfrancois Q Rim1017Germany2024-04-21
Maisha W Shinko1018Germany2024-04-24
Isabel E Perin1019Russia2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily K FollerCanadaAnna Fali PROPOSAL
Ashley Z RutaFranceStephen Shaw UNQUALIFIED
Stacey V RulapaughUnited KingdomOnyama Limba PROPOSAL
Salvatore T BowleyRussiaStephen Shaw RENEWAL
Maisha A MarrierItalyXuxue Feng PROPOSAL
Mujtaba F TollnerRussiaXuxue Feng QUALIFIED
Sinclair N CaudyArgentinaAnna Fali QUALIFIED
Jefferson X DoeArgentinaXuxue Feng RENEWAL
Mayumi W MaletJapanBernardo Dominic NEGOTIATION
Kadeem Z NickaAustraliaIvan Magalhaes RENEWAL
Tony B RulapaughArgentinaIvan Magalhaes NEW
David Q FigeroaFranceAmy Elsner RENEWAL
Stacey G AlbaresFranceElwin Sharvill UNQUALIFIED
Izzy M KolmetzBrazilOnyama Limba NEW
Clifford M CampainSpainAsiya Javayant UNQUALIFIED
Munro N NestleRussiaIvan Magalhaes PROPOSAL
Cody W SchemmerCanadaAmy Elsner NEW
Murillo E CaudyCanadaStephen Shaw NEGOTIATION
Izzy B WaycottRussiaOnyama Limba NEW
Costa Z StensethUnited KingdomOnyama Limba NEW
Maisha V IturbideArgentinaBernardo Dominic UNQUALIFIED
Johnson C BologniaUnited KingdomStephen Shaw NEW
Munro N FerenczBrazilAnna Fali UNQUALIFIED
Claire J FigeroaSpainIoni Bowcher QUALIFIED
Octavia A PerinItalyAnna Fali UNQUALIFIED
Emily G MaletCanadaOnyama Limba NEW
Jefferson F MaletIndiaAsiya Javayant RENEWAL
Julie A GauchoJapanBernardo Dominic NEW
Wickens Z MarrierCanadaIoni Bowcher UNQUALIFIED
Stacey F StockhamSpainBernardo Dominic RENEWAL
Maria W WaycottItalyAnna Fali QUALIFIED
Salvatore K DoeGermanyIvan Magalhaes RENEWAL
Ricardo W SchemmerArgentinaStephen Shaw RENEWAL
Emily L MacleadArgentinaIvan Magalhaes PROPOSAL
Clifford N StensethAustraliaElwin Sharvill UNQUALIFIED
Rodrigues D StockhamFranceIvan Magalhaes QUALIFIED
Jefferson F RutaJapanIoni Bowcher NEGOTIATION
Faith E RulapaughGermanyAsiya Javayant RENEWAL
Arvin Q NestleJapanBernardo Dominic QUALIFIED
Smith L DoeGermanyOnyama Limba 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>