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
Alejandro Z RutaItalyXuxue Feng RENEWAL
Misaki Y RoysterBrazilElwin Sharvill PROPOSAL
Claire O RimArgentinaAmy Elsner RENEWAL
Juan W DilliardGermanyStephen Shaw UNQUALIFIED
Rodrigues G SlusarskiFranceBernardo Dominic RENEWAL
Stacey R NickaBrazilAmy Elsner RENEWAL
Octavia J RoysterBrazilIvan Magalhaes UNQUALIFIED
Isabel O FollerIndiaBernardo Dominic PROPOSAL
Izzy P BowleyAustraliaIoni Bowcher NEW
Aruna G CaldareraFranceBernardo Dominic RENEWAL
Jones G MacleadArgentinaBernardo Dominic RENEWAL
Isabel Y OstroskyCanadaAsiya Javayant UNQUALIFIED
Deepesh M GillianSpainIvan Magalhaes NEW
Clifford E SlusarskiBrazilAmy Elsner UNQUALIFIED
Clifford U CaldareraSpainXuxue Feng UNQUALIFIED
Mayumi I CaudyJapanAnna Fali PROPOSAL
Aruna W CampainFranceStephen Shaw UNQUALIFIED
Tony E PaprockiCanadaAnna Fali NEGOTIATION
Octavia D GarufiJapanElwin Sharvill QUALIFIED
Greenwood P BowleyArgentinaBernardo Dominic NEGOTIATION
Deepesh Q NickaItalyAnna Fali UNQUALIFIED
Jefferson G BowleyFranceIvan Magalhaes RENEWAL
Jones Q ButtItalyAmy Elsner PROPOSAL
Munro N AlbaresCanadaXuxue Feng NEW
Johnson P SchemmerUnited KingdomAnna Fali NEGOTIATION
Ivar T PerinAustraliaAmy Elsner PROPOSAL
Jones Z FollerUnited KingdomIvan Magalhaes QUALIFIED
Maria U DoeJapanOnyama Limba QUALIFIED
Clifford G TollnerFranceIvan Magalhaes QUALIFIED
Francesco L MorascaGermanyIoni Bowcher RENEWAL
Johnson Y CaldareraGermanyIoni Bowcher PROPOSAL
Juan J MacleadSpainAnna Fali QUALIFIED
Aditya L GlickGermanyIoni Bowcher NEGOTIATION
Murillo U IturbideAustraliaStephen Shaw RENEWAL
Johnson Q PaprockiRussiaAnna Fali QUALIFIED
Misaki D StensethJapanBernardo Dominic NEGOTIATION
Arvin X SergiGermanyAmy Elsner QUALIFIED
Emily R TollnerUnited KingdomElwin Sharvill RENEWAL
Clifford C StensethItalyAnna Fali UNQUALIFIED
Nicolas O StensethGermanyAnna Fali PROPOSAL
Mujtaba N PoquetteGermanyIoni Bowcher UNQUALIFIED
Maisha P MaletCanadaAnna Fali PROPOSAL
Octavia J PerinSpainIoni Bowcher RENEWAL
Misaki G FigeroaBrazilOnyama Limba UNQUALIFIED
Johnson H MorascaCanadaXuxue Feng UNQUALIFIED
Johnson Y StockhamBrazilXuxue Feng UNQUALIFIED
Mujtaba A WaycottAustraliaAsiya Javayant NEGOTIATION
Octavia S OldroydItalyOnyama Limba UNQUALIFIED
Jones Q SergiCanadaElwin Sharvill QUALIFIED
Silvio X RimCanadaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki C MaletArgentinaAnna Fali UNQUALIFIED
Mayumi W MorascaSpainOnyama Limba NEW
Antonio I OldroydRussiaOnyama Limba UNQUALIFIED
Johnson N DoeArgentinaBernardo Dominic RENEWAL
Misaki M StensethAustraliaAsiya Javayant QUALIFIED
Arvin Q SlusarskiIndiaOnyama Limba NEGOTIATION
Claire Z SergiSpainElwin Sharvill QUALIFIED
Clifford I WieserFranceElwin Sharvill NEGOTIATION
Stacey R MarrierSpainOnyama Limba PROPOSAL
Adams I RimFranceAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody R SlusarskiBrazil2024-04-05Commercial Press NEW18Anna Fali
1001Alejandro M InouyeGermany2024-04-19Rangoni Of Florence NEGOTIATION38Bernardo Dominic
1002Darci O CampainSpain2024-03-31Morlong Associates NEGOTIATION86Bernardo Dominic
1003Antonio P SchemmerArgentina2024-04-14Chapman, Ross E Esq UNQUALIFIED88Asiya Javayant
1004Emily E MorascaFrance2024-04-07Chemel, James L Cpa PROPOSAL97Asiya Javayant
1005Ricardo O InouyeArgentina2024-04-16Benton, John B Jr UNQUALIFIED7Ivan Magalhaes
1006Ashley H StensethItaly2024-04-07Feltz Printing Service NEGOTIATION62Asiya Javayant
1007Misaki Z FigeroaUnited Kingdom2024-04-18Morlong Associates QUALIFIED22Bernardo Dominic
1008James L RulapaughFrance2024-03-30Feiner Bros RENEWAL93Onyama Limba
1009Costa N DoeUnited Kingdom2024-04-09Rangoni Of Florence NEGOTIATION24Anna Fali
1010Jones O DoeRussia2024-04-09Truhlar And Truhlar Attys NEGOTIATION60Elwin Sharvill
1011Francesco L GillianBrazil2024-03-26Buckley Miller Wright RENEWAL64Bernardo Dominic
1012Cody D DarakjyArgentina2024-03-31Morlong Associates QUALIFIED1Xuxue Feng
1013Aditya L KolmetzFrance2024-03-27Chanay, Jeffrey A Esq NEW41Xuxue Feng
1014Greenwood Q MacleadGermany2024-03-28Commercial Press QUALIFIED55Elwin Sharvill
1015Alejandro X NestleIndia2024-04-06Benton, John B Jr RENEWAL51Anna Fali
1016Darci H NestleAustralia2024-04-22Printing Dimensions RENEWAL68Stephen Shaw
1017James U ButtJapan2024-03-30Chapman, Ross E Esq NEGOTIATION74Onyama Limba
1018Kaitlin C ShinkoRussia2024-04-03Feiner Bros RENEWAL39Stephen Shaw
1019Kaitlin I NestleJapan2024-04-19Truhlar And Truhlar Attys QUALIFIED13Anna Fali
1020Arvin O MarrierSpain2024-04-17Feiner Bros UNQUALIFIED80Asiya Javayant
1021Jennifer D AlbaresCanada2024-04-07Dorl, James J Esq QUALIFIED17Bernardo Dominic
1022Adams O GauchoSpain2024-03-28Chemel, James L Cpa QUALIFIED3Elwin Sharvill
1023Deepesh P CampainFrance2024-04-21Feltz Printing Service NEGOTIATION66Stephen Shaw
1024Mayumi P BologniaSpain2024-03-27Dorl, James J Esq UNQUALIFIED36Anna Fali
1025Cody X FollerIndia2024-04-21Buckley Miller Wright PROPOSAL40Anna Fali
1026Jones L BowleyBrazil2024-04-12Truhlar And Truhlar Attys QUALIFIED79Bernardo Dominic
1027Isabel T GarufiFrance2024-04-16Rangoni Of Florence NEGOTIATION19Elwin Sharvill
1028Adams C MaletItaly2024-04-01Benton, John B Jr NEGOTIATION99Bernardo Dominic
1029Silvio N InouyeIndia2024-03-27Rousseaux, Michael Esq QUALIFIED66Ioni Bowcher
1030Mujtaba L SchemmerSpain2024-03-27Rousseaux, Michael Esq PROPOSAL72Elwin Sharvill
1031Isabel T PaprockiRussia2024-04-12Rousseaux, Michael Esq UNQUALIFIED91Ioni Bowcher
1032Morrow T OstroskyArgentina2024-04-15Commercial Press NEGOTIATION15Bernardo Dominic
1033Julie W WieserCanada2024-03-28Feiner Bros UNQUALIFIED59Asiya Javayant
1034Alejandro P GarufiIndia2024-04-10Printing Dimensions RENEWAL2Asiya Javayant
1035Deepesh P MarrierUnited Kingdom2024-04-02Chanay, Jeffrey A Esq RENEWAL67Amy Elsner
1036Chavez T SchemmerGermany2024-04-20Printing Dimensions NEW45Elwin Sharvill
1037Nicolas R PaprockiUnited Kingdom2024-04-15Truhlar And Truhlar Attys PROPOSAL2Ioni Bowcher
1038Morrow P MorascaArgentina2024-04-10Rangoni Of Florence RENEWAL10Ioni Bowcher
1039Sinclair A OstroskyIndia2024-04-18Truhlar And Truhlar Attys QUALIFIED60Stephen Shaw
1040Clifford O StockhamBrazil2024-04-14Morlong Associates RENEWAL40Ivan Magalhaes
1041Leja N AmigonArgentina2024-04-02Chanay, Jeffrey A Esq NEGOTIATION95Ivan Magalhaes
1042Aruna B InouyeAustralia2024-04-05Truhlar And Truhlar Attys NEGOTIATION55Amy Elsner
1043Faith W BowleyBrazil2024-04-15Commercial Press NEW52Xuxue Feng
1044Misaki X FerenczSpain2024-04-09Rousseaux, Michael Esq NEGOTIATION63Amy Elsner
1045Julie C GillianCanada2024-04-08Rangoni Of Florence UNQUALIFIED69Stephen Shaw
1046Jeanfrancois Z PoquetteSpain2024-04-21Printing Dimensions UNQUALIFIED65Onyama Limba
1047Rodrigues V CaldareraSpain2024-03-31Benton, John B Jr RENEWAL63Onyama Limba
1048Kaitlin H MorascaArgentina2024-03-26Chanay, Jeffrey A Esq RENEWAL5Amy Elsner
1049Deepesh J NickaCanada2024-04-19Benton, John B Jr PROPOSAL77Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy B SchemmerSpainIoni Bowcher NEW
Morrow J MacleadCanadaAnna Fali NEGOTIATION
Silvio K TollnerJapanStephen Shaw RENEWAL
Misaki H BowleyGermanyAsiya Javayant RENEWAL
Smith M GauchoBrazilOnyama Limba NEGOTIATION
Cody T FlosiGermanyAsiya Javayant NEGOTIATION
Jennifer U SaylorsArgentinaAsiya Javayant PROPOSAL
Mujtaba E GillianArgentinaAsiya Javayant RENEWAL
Rodrigues D WaycottSpainAsiya Javayant QUALIFIED
Darci I TollnerFranceIoni Bowcher NEW
Juan O DilliardIndiaElwin Sharvill QUALIFIED
Jefferson N RoysterJapanAmy Elsner NEW
Leon H MarrierRussiaIoni Bowcher UNQUALIFIED
James R WieserFranceAsiya Javayant QUALIFIED
Leon I FerenczFranceIoni Bowcher QUALIFIED
Rodrigues G RoysterAustraliaXuxue Feng UNQUALIFIED
Chavez V CampainItalyIvan Magalhaes QUALIFIED
James M ButtIndiaOnyama Limba PROPOSAL
Mayumi J RulapaughIndiaAsiya Javayant NEGOTIATION
Wickens D OstroskyRussiaAnna Fali RENEWAL
Misaki R FollerAustraliaElwin Sharvill NEW
Smith W GauchoFranceAnna Fali PROPOSAL
Isabel M WieserUnited KingdomAsiya Javayant NEW
Octavia H GillianIndiaStephen Shaw PROPOSAL
Arvin T ShinkoCanadaAsiya Javayant QUALIFIED
Clifford L GlickItalyElwin Sharvill PROPOSAL
Ricardo U VocelkaIndiaOnyama Limba UNQUALIFIED
Claire K GlickFranceAmy Elsner RENEWAL
Ivar W NestleFranceIvan Magalhaes RENEWAL
Isabel J RulapaughCanadaIoni Bowcher QUALIFIED
Maisha Q OstroskyIndiaIoni Bowcher PROPOSAL
Clifford T PerinRussiaAnna Fali UNQUALIFIED
Mayumi F MarrierFranceAmy Elsner RENEWAL
Nicolas C ButtRussiaBernardo Dominic RENEWAL
David F VocelkaFranceStephen Shaw PROPOSAL
Isabel Y AmigonBrazilIoni Bowcher PROPOSAL
Isabel S GauchoCanadaElwin Sharvill RENEWAL
Jefferson B DarakjyJapanOnyama Limba QUALIFIED
Mujtaba Y MarrierSpainIoni Bowcher NEGOTIATION
Stacey S MorascaRussiaAnna Fali QUALIFIED
Sinclair T MarrierArgentinaIvan Magalhaes RENEWAL
Leon B MaletArgentinaBernardo Dominic QUALIFIED
Francesco V RulapaughBrazilAmy Elsner NEGOTIATION
Aika K MaletGermanyIoni Bowcher NEW
Ashley D SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh P RimArgentinaStephen Shaw RENEWAL
Jones U CampainItalyElwin Sharvill QUALIFIED
Octavia Y ChuiSpainOnyama Limba RENEWAL
Kadeem P OldroydGermanyIvan Magalhaes PROPOSAL
Misaki T AlbaresRussiaElwin Sharvill NEW
Frozen Columns
Name
Cody Y Campain
Julie P Ferencz
Mayumi N Gillian
Nicolas H Stockham
Clifford W Amigon
Izzy V Darakjy
Costa D Wieser
Rodrigues L Malet
Maria V Dilliard
Tony G Schemmer
Greenwood Q Butt
Cody N Inouye
Salvatore O Glick
Emily Q Ruta
Tony G Gaucho
Ashley X Poquette
Cody F Morasca
Jefferson Q Royster
Kadeem U Sergi
Francesco L Venere
Aika E Poquette
Greenwood P Oldroyd
Smith T Tollner
Rodrigues C Poquette
Adams W Gillian
Smith G Darakjy
Mayumi Q Wieser
Emily E Royster
Izzy P Saylors
Jennifer N Wieser
Misaki X Bowley
Tony I Stenseth
Sinclair I Vocelka
Munro W Ferencz
Deepesh X Briddick
Mujtaba Y Nestle
Jones M Nestle
Juan I Caldarera
Ivar G Ruta
David S Maclead
Salvatore H Morasca
Deepesh V Darakjy
Emily N Amigon
Kadeem Y Waycott
Sinclair J Foller
Alejandro B Iturbide
Adams L Sergi
Jefferson V Nicka
Clifford C Glick
Salvatore N Shinko
IdCountryDate
1000France2024-04-06
1001Canada2024-04-13
1002Australia2024-04-22
1003Australia2024-04-03
1004Germany2024-04-21
1005Japan2024-04-23
1006Russia2024-04-12
1007Germany2024-03-29
1008Canada2024-04-04
1009Brazil2024-04-10
1010France2024-04-05
1011India2024-04-09
1012Germany2024-04-09
1013Italy2024-04-18
1014Russia2024-04-19
1015Australia2024-03-28
1016Canada2024-03-29
1017India2024-04-21
1018Italy2024-04-03
1019Argentina2024-03-29
1020United Kingdom2024-04-22
1021Russia2024-04-08
1022Japan2024-04-21
1023France2024-04-10
1024Italy2024-04-04
1025Australia2024-03-29
1026Spain2024-04-01
1027Argentina2024-04-21
1028Brazil2024-04-18
1029Japan2024-04-02
1030Spain2024-04-21
1031Russia2024-04-05
1032Japan2024-04-01
1033India2024-04-01
1034Germany2024-03-27
1035Germany2024-04-22
1036Brazil2024-04-22
1037Italy2024-04-17
1038India2024-04-23
1039Australia2024-04-19
1040Canada2024-03-28
1041Australia2024-04-02
1042India2024-04-10
1043Spain2024-04-08
1044United Kingdom2024-03-31
1045Canada2024-04-08
1046France2024-04-12
1047Russia2024-03-30
1048Spain2024-04-07
1049United Kingdom2024-04-12

On-Demand Data

NameIdCountryDate
Costa Q Malet1000Spain2024-04-13
David F Kolmetz1001Brazil2024-03-29
Rodrigues K Inouye1002Spain2024-04-17
Isabel J Malet1003Argentina2024-04-20
Isabel F Inouye1004Russia2024-03-26
Wickens Z Shinko1005France2024-04-16
Clifford Y Maclead1006Russia2024-03-27
Aika U Bowley1007France2024-04-08
Ivar I Albares1008Germany2024-04-15
Smith Z Malet1009Italy2024-04-08
Silvio B Whobrey1010Spain2024-03-29
Aruna A Caudy1011Brazil2024-04-10
Leon D Tollner1012Australia2024-04-05
David B Flosi1013United Kingdom2024-04-10
James C Flosi1014India2024-04-09
Julie C Darakjy1015Japan2024-04-21
Alejandro Z Iturbide1016Canada2024-03-29
Sinclair A Amigon1017Spain2024-04-08
Faith V Vocelka1018France2024-04-06
Tony M Inouye1019Canada2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha W WaycottGermanyAnna Fali UNQUALIFIED
Izzy G GauchoGermanyStephen Shaw UNQUALIFIED
Darci Q ShinkoIndiaIoni Bowcher NEGOTIATION
Isabel B VenereArgentinaStephen Shaw QUALIFIED
Ashley U BologniaIndiaOnyama Limba UNQUALIFIED
Isabel Q SchemmerIndiaElwin Sharvill QUALIFIED
Faith E GillianGermanyElwin Sharvill RENEWAL
Claire N ChuiIndiaOnyama Limba NEW
Costa D PoquetteFranceStephen Shaw NEW
Darci A FerenczBrazilIvan Magalhaes QUALIFIED
Salvatore C PoquetteUnited KingdomIvan Magalhaes NEW
Alejandro Y WieserCanadaElwin Sharvill PROPOSAL
Jefferson M FollerIndiaAnna Fali PROPOSAL
Claire B PaprockiRussiaAnna Fali UNQUALIFIED
Munro Z FlosiRussiaStephen Shaw NEW
Aditya T PaprockiArgentinaOnyama Limba QUALIFIED
Leja P KolmetzGermanyAmy Elsner QUALIFIED
Deepesh N SergiFranceAmy Elsner RENEWAL
Chavez Z SchemmerIndiaOnyama Limba NEGOTIATION
Salvatore R KuskoBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois K MarrierIndiaIvan Magalhaes PROPOSAL
Leon Y KolmetzAustraliaAmy Elsner UNQUALIFIED
Ashley Q FerenczBrazilStephen Shaw QUALIFIED
Julie X WhobreyJapanAmy Elsner RENEWAL
Aruna L AmigonGermanyAmy Elsner NEW
Ricardo R ButtIndiaXuxue Feng NEW
Morrow T StensethItalyXuxue Feng NEW
Adams X SlusarskiSpainOnyama Limba QUALIFIED
Ivar K AmigonSpainAsiya Javayant QUALIFIED
Deepesh V NestleJapanAnna Fali PROPOSAL
Morrow Y PerinJapanAsiya Javayant PROPOSAL
Costa R AmigonRussiaIvan Magalhaes UNQUALIFIED
Emily G RulapaughCanadaOnyama Limba UNQUALIFIED
Sinclair T WieserArgentinaIvan Magalhaes QUALIFIED
James Z RimBrazilIvan Magalhaes QUALIFIED
Kadeem T VocelkaCanadaIvan Magalhaes NEW
Smith S DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Ashley P TollnerSpainElwin Sharvill PROPOSAL
Izzy L WieserBrazilElwin Sharvill QUALIFIED
Kaitlin R IturbideUnited KingdomAsiya Javayant QUALIFIED

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