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 G BologniaIndiaXuxue Feng RENEWAL
Sinclair B FerenczBrazilAmy Elsner NEW
Adams U BriddickArgentinaAnna Fali RENEWAL
Antonio C FigeroaGermanyIvan Magalhaes UNQUALIFIED
Nicolas P RutaAustraliaAmy Elsner NEW
Leja H ButtGermanyStephen Shaw RENEWAL
Faith G KuskoSpainElwin Sharvill UNQUALIFIED
Julie K DarakjyIndiaElwin Sharvill PROPOSAL
Jeanfrancois M ChuiFranceAmy Elsner RENEWAL
Ashley I RoysterCanadaElwin Sharvill RENEWAL
Cody Q GarufiBrazilAmy Elsner QUALIFIED
Mujtaba K VocelkaSpainOnyama Limba NEW
Leon F BologniaSpainIvan Magalhaes PROPOSAL
Tony U GarufiIndiaOnyama Limba PROPOSAL
Jennifer L IturbideBrazilIoni Bowcher QUALIFIED
James Y TollnerFranceAnna Fali NEGOTIATION
Claire T SaylorsGermanyIoni Bowcher NEW
Kadeem F MorascaIndiaIoni Bowcher NEGOTIATION
Johnson D FlosiJapanBernardo Dominic NEW
Leon O SaylorsGermanyXuxue Feng PROPOSAL
Sinclair Q BriddickIndiaOnyama Limba RENEWAL
Deepesh I CaudyCanadaIvan Magalhaes NEW
Jones S DarakjyAustraliaAsiya Javayant NEW
Cody N VenereBrazilIoni Bowcher PROPOSAL
Jefferson F MarrierGermanyIoni Bowcher QUALIFIED
Mujtaba F ChuiBrazilXuxue Feng NEW
Morrow D BriddickSpainElwin Sharvill NEW
Jennifer A DoeArgentinaStephen Shaw UNQUALIFIED
Adams M SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Johnson W CaudyUnited KingdomBernardo Dominic PROPOSAL
James T SaylorsItalyBernardo Dominic PROPOSAL
Tony K WieserArgentinaXuxue Feng NEGOTIATION
Aika P ChuiAustraliaElwin Sharvill RENEWAL
Mayumi K MarrierItalyAmy Elsner QUALIFIED
Emily T GlickJapanIoni Bowcher QUALIFIED
Mujtaba Q OstroskyFranceOnyama Limba UNQUALIFIED
Emily P WaycottBrazilStephen Shaw RENEWAL
Salvatore C MarrierUnited KingdomStephen Shaw QUALIFIED
Deepesh V RulapaughJapanIoni Bowcher NEW
Tony D CaudyFranceIvan Magalhaes NEGOTIATION
Ashley B DilliardCanadaStephen Shaw QUALIFIED
Morrow N MacleadItalyElwin Sharvill PROPOSAL
James O SergiRussiaOnyama Limba QUALIFIED
Costa J FlosiSpainIoni Bowcher QUALIFIED
Jeanfrancois U DilliardGermanyAnna Fali UNQUALIFIED
Silvio Y KolmetzIndiaAnna Fali RENEWAL
Darci E StockhamSpainXuxue Feng UNQUALIFIED
Octavia H MaletJapanAsiya Javayant QUALIFIED
Ivar H ButtFranceIoni Bowcher PROPOSAL
Misaki A RoysterCanadaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki L SchemmerCanadaIvan Magalhaes UNQUALIFIED
Clifford A DarakjyArgentinaOnyama Limba NEGOTIATION
Darci S KuskoBrazilAnna Fali PROPOSAL
Faith Z CaudyItalyAnna Fali PROPOSAL
Maria Z GauchoSpainAnna Fali QUALIFIED
Antonio B NickaAustraliaAnna Fali QUALIFIED
Deepesh R DoeArgentinaBernardo Dominic NEW
Wickens H PoquetteIndiaIoni Bowcher NEGOTIATION
Francesco G PoquetteBrazilStephen Shaw UNQUALIFIED
Misaki H NestleBrazilIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa J AlbaresJapan2024-04-10Dorl, James J Esq QUALIFIED31Onyama Limba
1001Deepesh H FollerGermany2024-04-26Chanay, Jeffrey A Esq RENEWAL57Onyama Limba
1002Maisha Q RulapaughSpain2024-05-02Buckley Miller Wright UNQUALIFIED82Xuxue Feng
1003Morrow L AmigonArgentina2024-04-27Printing Dimensions QUALIFIED21Asiya Javayant
1004Aika V FollerGermany2024-04-12Buckley Miller Wright UNQUALIFIED98Anna Fali
1005Rodrigues F PaprockiIndia2024-04-30Chapman, Ross E Esq RENEWAL23Bernardo Dominic
1006Morrow N VocelkaJapan2024-05-05Chapman, Ross E Esq NEGOTIATION14Bernardo Dominic
1007Tony Z NestleAustralia2024-04-14Rangoni Of Florence PROPOSAL80Elwin Sharvill
1008Rodrigues O OstroskyFrance2024-05-05Rangoni Of Florence UNQUALIFIED62Bernardo Dominic
1009Octavia B CampainGermany2024-04-12Chapman, Ross E Esq PROPOSAL67Xuxue Feng
1010Silvio F FollerUnited Kingdom2024-04-13King, Christopher A Esq PROPOSAL9Onyama Limba
1011Arvin R AmigonSpain2024-04-28Chanay, Jeffrey A Esq NEW72Elwin Sharvill
1012Morrow Z MaletFrance2024-04-23Rangoni Of Florence UNQUALIFIED29Stephen Shaw
1013Isabel H IturbideJapan2024-04-15Feltz Printing Service QUALIFIED88Onyama Limba
1014Jones C CaudyBrazil2024-04-24Buckley Miller Wright PROPOSAL73Ivan Magalhaes
1015David B IturbideJapan2024-04-16Chapman, Ross E Esq QUALIFIED3Amy Elsner
1016Deepesh F KolmetzAustralia2024-04-30Dorl, James J Esq RENEWAL57Ivan Magalhaes
1017Kadeem H PoquetteRussia2024-04-23Benton, John B Jr RENEWAL3Xuxue Feng
1018Antonio A VenereItaly2024-04-07Morlong Associates PROPOSAL82Onyama Limba
1019Misaki Y GauchoSpain2024-05-01Chanay, Jeffrey A Esq PROPOSAL53Ioni Bowcher
1020Mayumi F VenereGermany2024-04-24Chapman, Ross E Esq UNQUALIFIED13Onyama Limba
1021Ivar Z StensethIndia2024-04-16Printing Dimensions RENEWAL37Ioni Bowcher
1022Maisha H MaletSpain2024-04-14Truhlar And Truhlar Attys RENEWAL52Onyama Limba
1023Adams D FollerAustralia2024-04-18Printing Dimensions RENEWAL43Elwin Sharvill
1024Juan H NestleCanada2024-04-09Rangoni Of Florence UNQUALIFIED95Bernardo Dominic
1025James K GillianArgentina2024-04-08Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1026Jones E InouyeUnited Kingdom2024-04-15Buckley Miller Wright NEW28Ivan Magalhaes
1027Maria L FerenczItaly2024-04-09Buckley Miller Wright PROPOSAL21Asiya Javayant
1028Darci D DilliardArgentina2024-04-07Commercial Press QUALIFIED56Stephen Shaw
1029James C DilliardFrance2024-04-30Feltz Printing Service RENEWAL21Ivan Magalhaes
1030Wickens I GauchoFrance2024-04-06Benton, John B Jr RENEWAL83Bernardo Dominic
1031Maria T CaudyItaly2024-05-02Feiner Bros RENEWAL86Asiya Javayant
1032David C MarrierCanada2024-04-16Truhlar And Truhlar Attys UNQUALIFIED26Bernardo Dominic
1033Darci L ButtCanada2024-04-20Chapman, Ross E Esq RENEWAL41Elwin Sharvill
1034Silvio K WaycottFrance2024-04-11Dorl, James J Esq QUALIFIED39Elwin Sharvill
1035Jennifer B FerenczGermany2024-04-20Chemel, James L Cpa PROPOSAL77Xuxue Feng
1036Deepesh F RimItaly2024-04-08Dorl, James J Esq PROPOSAL15Ioni Bowcher
1037Ricardo B BologniaRussia2024-04-06Dorl, James J Esq RENEWAL80Onyama Limba
1038Mayumi F OldroydFrance2024-05-01Commercial Press UNQUALIFIED88Ivan Magalhaes
1039Claire I GarufiJapan2024-04-20Dorl, James J Esq NEW94Amy Elsner
1040Morrow E AlbaresGermany2024-04-09Feiner Bros PROPOSAL75Stephen Shaw
1041Clifford L KuskoJapan2024-04-12Dorl, James J Esq NEW24Bernardo Dominic
1042Maria H PoquetteUnited Kingdom2024-04-30Truhlar And Truhlar Attys NEW33Elwin Sharvill
1043Jennifer L DarakjyRussia2024-04-19Benton, John B Jr PROPOSAL98Stephen Shaw
1044Salvatore N DarakjyAustralia2024-04-25Feltz Printing Service UNQUALIFIED97Ioni Bowcher
1045Kadeem F TollnerArgentina2024-04-24Benton, John B Jr NEGOTIATION12Xuxue Feng
1046Izzy M FigeroaBrazil2024-04-17Morlong Associates PROPOSAL14Elwin Sharvill
1047Julie L RoysterItaly2024-04-29Feiner Bros UNQUALIFIED89Xuxue Feng
1048Octavia X IturbideIndia2024-04-25Chapman, Ross E Esq NEGOTIATION34Onyama Limba
1049Izzy A WieserRussia2024-04-15Feiner Bros NEW67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Antonio U WaycottItalyAnna Fali NEW
David V VenereRussiaAmy Elsner PROPOSAL
Mujtaba C IturbideUnited KingdomBernardo Dominic RENEWAL
Mayumi Y BriddickGermanyAnna Fali UNQUALIFIED
Clifford B OstroskyItalyIvan Magalhaes NEGOTIATION
Leja Q CampainCanadaAnna Fali RENEWAL
Tony N CaldareraBrazilOnyama Limba QUALIFIED
Smith A PoquetteIndiaAnna Fali RENEWAL
Jones J RoysterUnited KingdomAnna Fali RENEWAL
Stacey F CaldareraAustraliaStephen Shaw UNQUALIFIED
Darci P StensethIndiaAsiya Javayant PROPOSAL
Maisha D RutaJapanOnyama Limba PROPOSAL
Greenwood R InouyeGermanyElwin Sharvill RENEWAL
Cody I CaldareraBrazilBernardo Dominic PROPOSAL
Misaki D VenereFranceOnyama Limba PROPOSAL
Salvatore U MacleadItalyIvan Magalhaes UNQUALIFIED
Francesco U WieserArgentinaElwin Sharvill NEGOTIATION
Misaki U NickaUnited KingdomElwin Sharvill PROPOSAL
Claire Q FigeroaArgentinaXuxue Feng RENEWAL
Isabel V ButtSpainIvan Magalhaes NEW
Izzy P ShinkoIndiaStephen Shaw NEW
Silvio J AmigonBrazilAnna Fali NEW
Julie M FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues R SergiAustraliaOnyama Limba PROPOSAL
Morrow X RutaAustraliaBernardo Dominic RENEWAL
Maria S OldroydRussiaBernardo Dominic UNQUALIFIED
Ashley K CampainJapanElwin Sharvill PROPOSAL
Kaitlin C KuskoCanadaAmy Elsner RENEWAL
Jones N DarakjyGermanyAsiya Javayant UNQUALIFIED
Clifford H GillianIndiaIoni Bowcher PROPOSAL
Salvatore J OldroydRussiaBernardo Dominic UNQUALIFIED
Jennifer O CampainBrazilAnna Fali NEW
Ivar F FollerCanadaAsiya Javayant RENEWAL
Murillo N AlbaresArgentinaOnyama Limba NEW
Johnson F MorascaBrazilOnyama Limba PROPOSAL
Leja Z PaprockiFranceAsiya Javayant UNQUALIFIED
Aika E FerenczArgentinaAsiya Javayant RENEWAL
Mujtaba M BriddickCanadaIoni Bowcher NEGOTIATION
Smith F CaldareraGermanyIvan Magalhaes QUALIFIED
Jeanfrancois Y KuskoAustraliaElwin Sharvill QUALIFIED
Jeanfrancois T DilliardGermanyAsiya Javayant PROPOSAL
Silvio X CaldareraUnited KingdomBernardo Dominic PROPOSAL
David S WhobreyGermanyIoni Bowcher RENEWAL
Rodrigues B TollnerFranceBernardo Dominic QUALIFIED
Octavia G AmigonItalyElwin Sharvill QUALIFIED
Greenwood B DoeSpainAmy Elsner RENEWAL
Misaki Y ChuiSpainElwin Sharvill UNQUALIFIED
Deepesh O CaudyUnited KingdomAmy Elsner QUALIFIED
Maisha U StockhamUnited KingdomAmy Elsner NEGOTIATION
Alejandro S WhobreySpainAnna Fali NEW
Frozen Columns
Name
Ivar K Dilliard
Ivar W Foller
Darci Y Perin
Darci Y Morasca
Jefferson T Whobrey
Ashley W Whobrey
James G Figeroa
Adams Z Waycott
Francesco G Paprocki
Aruna P Gaucho
Leja P Butt
Murillo Y Malet
Jennifer Z Stenseth
Isabel J Whobrey
Juan K Ferencz
Nicolas W Glick
Julie I Poquette
Aruna Z Chui
Claire P Waycott
Arvin K Darakjy
Rodrigues A Foller
Jefferson E Saylors
Morrow O Dilliard
Izzy K Saylors
Maria J Bowley
Maria G Ostrosky
Kaitlin P Dilliard
Wickens M Saylors
Tony U Shinko
David S Saylors
Greenwood Q Butt
Misaki I Whobrey
Johnson O Butt
Silvio J Sergi
Johnson J Albares
Aditya F Flosi
Tony G Garufi
Leja C Maclead
Izzy V Darakjy
Isabel F Campain
Aika Y Amigon
Chavez Q Amigon
Leon D Morasca
Juan P Shinko
Morrow B Oldroyd
Claire L Royster
Adams G Ferencz
Maisha I Shinko
Rodrigues O Malet
Jefferson J Caudy
IdCountryDate
1000Japan2024-04-14
1001Brazil2024-04-29
1002Italy2024-04-07
1003Argentina2024-04-11
1004Italy2024-05-03
1005Argentina2024-04-06
1006Russia2024-04-08
1007France2024-04-16
1008Germany2024-04-06
1009Russia2024-05-04
1010Brazil2024-04-10
1011Argentina2024-05-03
1012United Kingdom2024-05-05
1013Japan2024-04-19
1014Japan2024-04-12
1015Canada2024-05-01
1016Argentina2024-04-08
1017India2024-05-02
1018India2024-05-04
1019Australia2024-04-19
1020Argentina2024-04-28
1021Spain2024-04-22
1022Australia2024-05-03
1023United Kingdom2024-04-10
1024Australia2024-04-06
1025Japan2024-04-07
1026Italy2024-05-05
1027Australia2024-04-26
1028Australia2024-04-21
1029Australia2024-04-15
1030Germany2024-05-03
1031Italy2024-04-28
1032Brazil2024-04-30
1033Spain2024-04-12
1034Russia2024-04-13
1035India2024-05-01
1036United Kingdom2024-04-15
1037Spain2024-04-24
1038Spain2024-04-07
1039Argentina2024-05-04
1040Japan2024-04-09
1041Australia2024-04-22
1042Brazil2024-04-06
1043Japan2024-04-21
1044France2024-04-12
1045Italy2024-04-28
1046Canada2024-04-21
1047Brazil2024-04-15
1048France2024-05-01
1049Italy2024-04-07

On-Demand Data

NameIdCountryDate
Sinclair U Wieser1000France2024-04-13
Tony N Sergi1001France2024-04-20
Aika J Saylors1002India2024-04-06
Aditya K Inouye1003Russia2024-04-25
Johnson J Rim1004France2024-04-19
Maria P Campain1005India2024-04-23
Deepesh P Whobrey1006Australia2024-04-06
Aruna J Gaucho1007Canada2024-04-29
Clifford L Butt1008Japan2024-04-18
Jennifer J Briddick1009Italy2024-04-26
Alejandro M Waycott1010Italy2024-04-16
Maria M Rim1011France2024-04-25
Greenwood T Bolognia1012Spain2024-04-19
Jefferson H Ostrosky1013Canada2024-04-25
Mujtaba Q Bowley1014Brazil2024-04-11
Jones C Rim1015Brazil2024-04-10
Arvin F Iturbide1016Italy2024-04-30
Cody I Iturbide1017France2024-04-23
Aditya C Waycott1018India2024-04-29
Jennifer X Ferencz1019Russia2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha N OldroydSpainAmy Elsner PROPOSAL
Tony T NickaJapanXuxue Feng UNQUALIFIED
Costa E GlickJapanIoni Bowcher UNQUALIFIED
Faith V GarufiRussiaIoni Bowcher PROPOSAL
Faith W BologniaCanadaAnna Fali QUALIFIED
Aditya X NestleGermanyAsiya Javayant NEGOTIATION
Munro F CaldareraIndiaAmy Elsner QUALIFIED
Arvin K AmigonUnited KingdomAmy Elsner NEW
Octavia R StockhamCanadaOnyama Limba NEW
Aditya E BologniaIndiaOnyama Limba RENEWAL
Ivar M DarakjyItalyBernardo Dominic PROPOSAL
Emily B ShinkoArgentinaIoni Bowcher PROPOSAL
Sinclair T AlbaresBrazilOnyama Limba PROPOSAL
David M GillianUnited KingdomIoni Bowcher PROPOSAL
Francesco V AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Aruna G SlusarskiBrazilXuxue Feng RENEWAL
Silvio J DarakjySpainIvan Magalhaes UNQUALIFIED
Isabel I SaylorsArgentinaXuxue Feng QUALIFIED
Ivar W FollerFranceStephen Shaw PROPOSAL
Adams Y GillianSpainIoni Bowcher QUALIFIED
Izzy K PoquetteIndiaElwin Sharvill NEGOTIATION
Jennifer X FollerCanadaBernardo Dominic QUALIFIED
Tony S DoeAustraliaElwin Sharvill NEW
Arvin L GillianRussiaElwin Sharvill UNQUALIFIED
Sinclair U NestleAustraliaAsiya Javayant NEGOTIATION
Antonio M SchemmerBrazilOnyama Limba RENEWAL
Cody N SchemmerArgentinaBernardo Dominic QUALIFIED
Isabel K VenereSpainElwin Sharvill QUALIFIED
Faith P BowleyAustraliaBernardo Dominic RENEWAL
Stacey N IturbideRussiaAnna Fali PROPOSAL
Jefferson B StensethCanadaIoni Bowcher NEW
Claire O GillianBrazilBernardo Dominic UNQUALIFIED
Alejandro A RoysterFranceAmy Elsner RENEWAL
Aruna W BowleyItalyStephen Shaw NEW
Johnson E CampainBrazilIoni Bowcher PROPOSAL
Aditya Q RutaSpainAmy Elsner QUALIFIED
Leja U FigeroaIndiaIvan Magalhaes QUALIFIED
Isabel B RimArgentinaAmy Elsner PROPOSAL
Arvin A VenereJapanStephen Shaw UNQUALIFIED
Maria P WieserUnited KingdomXuxue Feng 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>