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
Emily Q WaycottGermanyAmy Elsner PROPOSAL
Wickens H MarrierJapanXuxue Feng RENEWAL
Claire B MarrierAustraliaAmy Elsner UNQUALIFIED
Misaki D PerinGermanyIoni Bowcher UNQUALIFIED
Kadeem F WaycottSpainOnyama Limba NEGOTIATION
Deepesh R GlickCanadaAsiya Javayant NEW
Claire E BologniaFranceAmy Elsner NEGOTIATION
Silvio F ChuiCanadaElwin Sharvill QUALIFIED
Greenwood B GarufiItalyElwin Sharvill UNQUALIFIED
Kaitlin H KolmetzFranceAnna Fali QUALIFIED
Stacey V GlickCanadaAmy Elsner QUALIFIED
Julie X RoysterBrazilAsiya Javayant NEW
Faith X DarakjyRussiaBernardo Dominic RENEWAL
Nicolas M WieserGermanyIvan Magalhaes QUALIFIED
Rodrigues Z PoquetteFranceStephen Shaw UNQUALIFIED
Izzy K PaprockiFranceBernardo Dominic NEGOTIATION
Ivar R RulapaughBrazilElwin Sharvill UNQUALIFIED
Isabel Q MacleadCanadaIoni Bowcher NEGOTIATION
Kadeem X RoysterUnited KingdomOnyama Limba NEGOTIATION
Clifford H GlickGermanyStephen Shaw NEW
Johnson I MacleadItalyElwin Sharvill RENEWAL
Arvin M ChuiIndiaOnyama Limba QUALIFIED
Claire T VocelkaGermanyAnna Fali UNQUALIFIED
Greenwood E RimGermanyAnna Fali NEGOTIATION
Chavez J WieserUnited KingdomXuxue Feng RENEWAL
Aditya M NestleArgentinaAmy Elsner PROPOSAL
Chavez Q FlosiRussiaAsiya Javayant NEW
Wickens Q VocelkaItalyStephen Shaw NEGOTIATION
Clifford L DoeItalyStephen Shaw QUALIFIED
Ivar L GlickAustraliaXuxue Feng NEW
Morrow O AmigonSpainIoni Bowcher RENEWAL
Aika P RoysterBrazilStephen Shaw NEW
Morrow A WieserAustraliaAnna Fali PROPOSAL
Adams N AmigonItalyAsiya Javayant RENEWAL
Faith O CampainAustraliaOnyama Limba NEGOTIATION
Wickens E BriddickJapanElwin Sharvill UNQUALIFIED
Francesco P RoysterIndiaAnna Fali PROPOSAL
Munro L ShinkoFranceAmy Elsner NEGOTIATION
Murillo M BowleyItalyIvan Magalhaes RENEWAL
Rodrigues C FlosiBrazilIoni Bowcher NEW
Chavez G RoysterItalyXuxue Feng UNQUALIFIED
Smith Z ButtAustraliaBernardo Dominic NEGOTIATION
Tony F SergiGermanyStephen Shaw UNQUALIFIED
Faith Q NestleUnited KingdomAnna Fali PROPOSAL
Costa U VocelkaItalyAnna Fali NEGOTIATION
Johnson P RulapaughSpainXuxue Feng QUALIFIED
Izzy Z MaletJapanAsiya Javayant QUALIFIED
Deepesh R CaldareraArgentinaElwin Sharvill UNQUALIFIED
Stacey V BologniaAustraliaElwin Sharvill NEGOTIATION
Francesco N FerenczFranceAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas R VenereGermanyIoni Bowcher UNQUALIFIED
Maria L GauchoRussiaBernardo Dominic PROPOSAL
Deepesh S AmigonFranceIoni Bowcher PROPOSAL
Aruna W NestleBrazilOnyama Limba RENEWAL
Silvio L SlusarskiJapanAnna Fali UNQUALIFIED
Deepesh M AmigonUnited KingdomElwin Sharvill PROPOSAL
Aika Z RulapaughSpainAsiya Javayant NEW
Alejandro X GillianBrazilOnyama Limba UNQUALIFIED
Jones G PoquetteAustraliaIoni Bowcher UNQUALIFIED
Costa Y GlickCanadaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja U WhobreyBrazil2024-03-31Chanay, Jeffrey A Esq RENEWAL16Stephen Shaw
1001Johnson Z GlickIndia2024-04-06Chemel, James L Cpa RENEWAL12Ioni Bowcher
1002Izzy Y MaletArgentina2024-04-21Rangoni Of Florence NEW23Stephen Shaw
1003Julie L TollnerRussia2024-04-24Dorl, James J Esq PROPOSAL61Stephen Shaw
1004Misaki E DarakjyRussia2024-04-15Feltz Printing Service QUALIFIED98Onyama Limba
1005Maisha U FlosiAustralia2024-04-05Printing Dimensions NEW1Xuxue Feng
1006Ashley F WaycottRussia2024-04-16Printing Dimensions UNQUALIFIED40Bernardo Dominic
1007Silvio G IturbideGermany2024-03-30Chemel, James L Cpa QUALIFIED57Stephen Shaw
1008Juan O ChuiAustralia2024-04-10Truhlar And Truhlar Attys RENEWAL55Anna Fali
1009Misaki G BowleyGermany2024-04-03Morlong Associates RENEWAL61Elwin Sharvill
1010David G VocelkaArgentina2024-04-02Benton, John B Jr QUALIFIED93Elwin Sharvill
1011Octavia S AmigonRussia2024-04-20Feltz Printing Service UNQUALIFIED31Stephen Shaw
1012Arvin V DarakjyAustralia2024-04-04Chemel, James L Cpa RENEWAL91Ioni Bowcher
1013Claire T BologniaBrazil2024-04-28Rangoni Of Florence RENEWAL82Stephen Shaw
1014Alejandro K PaprockiCanada2024-04-14Buckley Miller Wright NEGOTIATION77Xuxue Feng
1015Leon L FollerSpain2024-04-15Rousseaux, Michael Esq NEGOTIATION85Xuxue Feng
1016Claire W StockhamFrance2024-04-05Printing Dimensions RENEWAL51Xuxue Feng
1017Maisha L NickaRussia2024-04-13King, Christopher A Esq NEGOTIATION92Ioni Bowcher
1018Cody E RutaItaly2024-04-19Buckley Miller Wright QUALIFIED3Onyama Limba
1019Jefferson K OstroskyItaly2024-04-28Printing Dimensions RENEWAL8Onyama Limba
1020Claire W PoquetteIndia2024-04-08Commercial Press RENEWAL66Ivan Magalhaes
1021Emily Z RulapaughGermany2024-04-20Benton, John B Jr QUALIFIED83Ioni Bowcher
1022Aruna K StockhamSpain2024-04-25Feiner Bros NEGOTIATION34Anna Fali
1023Antonio C ButtCanada2024-03-30Dorl, James J Esq UNQUALIFIED89Bernardo Dominic
1024Cody Z DoeAustralia2024-04-16Chanay, Jeffrey A Esq RENEWAL77Ioni Bowcher
1025Francesco K GillianIndia2024-04-19Chemel, James L Cpa QUALIFIED35Asiya Javayant
1026Darci U MaletSpain2024-04-27Chapman, Ross E Esq NEGOTIATION58Ivan Magalhaes
1027Smith T GarufiItaly2024-03-31Feiner Bros NEGOTIATION69Ivan Magalhaes
1028Kaitlin J FollerGermany2024-04-28King, Christopher A Esq NEW46Stephen Shaw
1029Aruna N MaletUnited Kingdom2024-04-17Commercial Press NEW16Xuxue Feng
1030Jeanfrancois Q OstroskyItaly2024-04-26Chanay, Jeffrey A Esq NEW31Anna Fali
1031David W OldroydCanada2024-04-13Truhlar And Truhlar Attys PROPOSAL93Onyama Limba
1032Smith J OstroskyIndia2024-04-19Truhlar And Truhlar Attys PROPOSAL39Asiya Javayant
1033Sinclair S MorascaBrazil2024-04-16Printing Dimensions NEGOTIATION16Anna Fali
1034Kaitlin H VenereSpain2024-04-17Morlong Associates NEGOTIATION27Bernardo Dominic
1035Mujtaba M TollnerCanada2024-04-02Feltz Printing Service UNQUALIFIED15Xuxue Feng
1036Munro N CampainJapan2024-04-04Rangoni Of Florence RENEWAL76Ivan Magalhaes
1037Wickens S DilliardJapan2024-04-11Dorl, James J Esq PROPOSAL5Bernardo Dominic
1038Misaki O FollerGermany2024-04-28Feiner Bros NEW23Ivan Magalhaes
1039Cody B GauchoJapan2024-03-30Buckley Miller Wright RENEWAL16Bernardo Dominic
1040Mujtaba X SlusarskiRussia2024-04-05Chemel, James L Cpa PROPOSAL87Onyama Limba
1041Ashley E IturbideRussia2024-04-13Truhlar And Truhlar Attys NEW10Amy Elsner
1042Leon W OstroskyItaly2024-04-21Commercial Press NEW33Xuxue Feng
1043Kaitlin O KolmetzFrance2024-04-07King, Christopher A Esq UNQUALIFIED57Asiya Javayant
1044Julie S WaycottAustralia2024-04-02Chemel, James L Cpa NEGOTIATION19Bernardo Dominic
1045Stacey S TollnerAustralia2024-04-18Truhlar And Truhlar Attys UNQUALIFIED53Anna Fali
1046Johnson J StockhamUnited Kingdom2024-04-08Printing Dimensions NEGOTIATION35Bernardo Dominic
1047Juan O PoquetteBrazil2024-04-10Rousseaux, Michael Esq PROPOSAL58Bernardo Dominic
1048James R CaldareraCanada2024-04-05Buckley Miller Wright PROPOSAL6Ioni Bowcher
1049Kadeem N InouyeGermany2024-03-30Truhlar And Truhlar Attys UNQUALIFIED61Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Murillo G CaldareraItalyXuxue Feng NEW
Salvatore H SlusarskiFranceIoni Bowcher PROPOSAL
Ashley J CaudyUnited KingdomAsiya Javayant NEGOTIATION
Maria S MaletBrazilStephen Shaw UNQUALIFIED
Aditya M CaudySpainAnna Fali QUALIFIED
Adams M FlosiJapanElwin Sharvill UNQUALIFIED
Jeanfrancois K IturbideAustraliaAmy Elsner UNQUALIFIED
Tony U AmigonCanadaElwin Sharvill NEGOTIATION
Ivar Y InouyeRussiaIoni Bowcher QUALIFIED
Leon L OstroskyGermanyAsiya Javayant NEW
Misaki U BologniaRussiaElwin Sharvill PROPOSAL
Julie N BologniaCanadaStephen Shaw QUALIFIED
Smith T PaprockiJapanAsiya Javayant NEGOTIATION
Sinclair R MaletUnited KingdomOnyama Limba UNQUALIFIED
Emily Y MarrierIndiaElwin Sharvill NEW
Antonio H DoeBrazilIvan Magalhaes NEW
Cody K NestleBrazilIvan Magalhaes NEW
Cody J KolmetzArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois G SlusarskiFranceIoni Bowcher RENEWAL
Octavia K MorascaJapanBernardo Dominic PROPOSAL
Emily W RimAustraliaIvan Magalhaes NEW
Julie G WaycottFranceAsiya Javayant RENEWAL
Jennifer Q SlusarskiBrazilIvan Magalhaes NEW
Ivar N WaycottIndiaElwin Sharvill NEW
Clifford E TollnerBrazilAsiya Javayant PROPOSAL
Octavia U ChuiIndiaAnna Fali NEW
Emily W MarrierSpainStephen Shaw UNQUALIFIED
Julie X KuskoBrazilStephen Shaw NEGOTIATION
Johnson R DilliardUnited KingdomXuxue Feng NEW
Jennifer K WieserFranceIvan Magalhaes PROPOSAL
Wickens Z InouyeCanadaAnna Fali NEGOTIATION
Kadeem U WieserSpainIoni Bowcher RENEWAL
Aika Z InouyeRussiaAnna Fali UNQUALIFIED
Leon J OstroskyUnited KingdomIoni Bowcher QUALIFIED
Francesco A InouyeIndiaAsiya Javayant PROPOSAL
Mujtaba D RimAustraliaAsiya Javayant NEW
Darci X PaprockiGermanyAmy Elsner NEW
Salvatore D CampainIndiaAnna Fali UNQUALIFIED
Jones C SaylorsFranceIoni Bowcher NEGOTIATION
Antonio N PoquetteBrazilStephen Shaw PROPOSAL
Adams J RulapaughArgentinaAmy Elsner PROPOSAL
Jefferson S WaycottArgentinaStephen Shaw QUALIFIED
Jones J MacleadItalyBernardo Dominic NEW
Ivar R FigeroaJapanIoni Bowcher NEGOTIATION
Sinclair Z MaletBrazilElwin Sharvill NEW
Cody H AmigonCanadaAmy Elsner QUALIFIED
Octavia F FlosiSpainXuxue Feng NEGOTIATION
Kadeem Q NestleIndiaAnna Fali PROPOSAL
Leja G FollerCanadaIvan Magalhaes QUALIFIED
Leon Q RimIndiaAnna Fali UNQUALIFIED
Frozen Columns
Name
David R Caldarera
Adams R Venere
Jefferson K Whobrey
Jones Q Stenseth
Deepesh Y Garufi
Aika S Bolognia
Tony C Nestle
Leon A Perin
Munro S Albares
Jefferson W Caudy
Silvio B Butt
Julie W Doe
Maisha V Rulapaugh
Emily W Stockham
Aditya F Malet
Silvio R Ferencz
James H Ostrosky
Morrow F Ruta
Francesco P Ruta
Adams B Darakjy
Faith H Darakjy
Tony M Perin
Tony Z Gillian
Juan N Kusko
Isabel Y Iturbide
Jones R Bolognia
Ashley W Bolognia
Kaitlin F Figeroa
Aika S Kusko
Ashley B Darakjy
Jones N Doe
Smith A Shinko
Julie W Schemmer
Tony E Morasca
Ricardo Q Darakjy
Jones K Figeroa
Ashley X Malet
Antonio Y Inouye
Kaitlin M Vocelka
Adams R Briddick
Maisha Z Ostrosky
Johnson D Amigon
Nicolas K Albares
Greenwood M Rim
Sinclair E Darakjy
Munro K Glick
Misaki Y Waycott
Ivar A Maclead
Morrow J Morasca
Faith A Figeroa
IdCountryDate
1000France2024-04-09
1001United Kingdom2024-04-19
1002Russia2024-04-20
1003United Kingdom2024-04-17
1004Australia2024-04-01
1005Italy2024-04-03
1006Russia2024-04-16
1007Australia2024-04-18
1008India2024-04-22
1009Japan2024-04-20
1010Russia2024-03-31
1011Canada2024-04-16
1012Canada2024-04-04
1013Australia2024-04-28
1014United Kingdom2024-04-01
1015Argentina2024-04-27
1016Canada2024-03-30
1017United Kingdom2024-04-24
1018Spain2024-04-21
1019United Kingdom2024-04-01
1020Argentina2024-04-13
1021India2024-04-25
1022Canada2024-04-28
1023Argentina2024-04-16
1024India2024-04-20
1025France2024-04-02
1026Russia2024-04-17
1027Spain2024-04-14
1028Japan2024-04-24
1029Canada2024-03-30
1030India2024-04-17
1031United Kingdom2024-04-19
1032Italy2024-04-21
1033France2024-04-18
1034Brazil2024-04-09
1035United Kingdom2024-04-15
1036Brazil2024-04-09
1037Spain2024-04-07
1038Argentina2024-04-10
1039Brazil2024-04-22
1040United Kingdom2024-04-19
1041Canada2024-04-21
1042Argentina2024-04-17
1043Japan2024-04-24
1044Canada2024-04-17
1045India2024-04-15
1046Canada2024-04-11
1047India2024-03-30
1048Spain2024-04-10
1049Italy2024-04-11

On-Demand Data

NameIdCountryDate
Izzy G Flosi1000Spain2024-03-31
Ashley A Iturbide1001France2024-04-06
Arvin K Waycott1002Argentina2024-04-17
Antonio E Sergi1003Argentina2024-04-04
Francesco F Bowley1004India2024-04-10
Isabel Q Saylors1005United Kingdom2024-04-14
Stacey P Briddick1006Canada2024-04-10
Stacey P Perin1007Brazil2024-04-28
Morrow Y Butt1008Argentina2024-04-24
Johnson F Darakjy1009Brazil2024-04-26
Greenwood Q Foller1010Spain2024-04-19
Darci K Dilliard1011Brazil2024-04-14
Johnson J Darakjy1012Russia2024-04-15
Izzy L Sergi1013Japan2024-04-07
Wickens S Tollner1014Brazil2024-04-11
Izzy S Waycott1015Brazil2024-04-14
Chavez R Stenseth1016United Kingdom2024-04-27
Munro W Albares1017France2024-04-16
Claire A Malet1018Brazil2024-04-28
Emily X Wieser1019Russia2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues J OldroydAustraliaAsiya Javayant NEW
Kadeem P SergiArgentinaStephen Shaw RENEWAL
Smith M PaprockiAustraliaIoni Bowcher RENEWAL
Maisha N MaletCanadaIvan Magalhaes PROPOSAL
Costa D MacleadCanadaAsiya Javayant UNQUALIFIED
Leja C MacleadGermanyAmy Elsner QUALIFIED
Jennifer Y FollerIndiaStephen Shaw NEGOTIATION
Kaitlin G SlusarskiJapanOnyama Limba NEW
Aditya N RoysterGermanyStephen Shaw RENEWAL
Clifford Y MorascaJapanElwin Sharvill QUALIFIED
David Q RimBrazilIoni Bowcher QUALIFIED
Rodrigues R FerenczIndiaOnyama Limba QUALIFIED
Mayumi T AlbaresItalyStephen Shaw NEGOTIATION
Leon V FerenczSpainAmy Elsner QUALIFIED
Emily L VocelkaAustraliaOnyama Limba UNQUALIFIED
Johnson N PerinUnited KingdomAmy Elsner UNQUALIFIED
Stacey S PaprockiIndiaIvan Magalhaes NEW
Francesco V ButtRussiaAmy Elsner PROPOSAL
Jennifer I MaletRussiaElwin Sharvill QUALIFIED
Tony J DoeIndiaStephen Shaw NEW
Chavez I GillianItalyStephen Shaw NEGOTIATION
Arvin Z DilliardCanadaIoni Bowcher RENEWAL
Emily K BologniaArgentinaStephen Shaw QUALIFIED
Jones N AlbaresIndiaIvan Magalhaes PROPOSAL
Salvatore T StockhamCanadaXuxue Feng QUALIFIED
Sinclair R CaudyArgentinaElwin Sharvill QUALIFIED
Maisha X KolmetzCanadaIoni Bowcher NEW
Maisha D DilliardRussiaIvan Magalhaes NEGOTIATION
Ashley Y FollerIndiaAmy Elsner NEGOTIATION
Kadeem Y DilliardBrazilStephen Shaw PROPOSAL
Jefferson K GillianBrazilAnna Fali UNQUALIFIED
Greenwood R BowleyUnited KingdomAnna Fali PROPOSAL
Adams U AmigonCanadaStephen Shaw NEGOTIATION
Smith T SchemmerIndiaAmy Elsner RENEWAL
Aditya X OstroskyIndiaAmy Elsner NEGOTIATION
Kadeem A DoeArgentinaAsiya Javayant PROPOSAL
Jennifer D WieserAustraliaIvan Magalhaes NEW
Arvin P SergiRussiaAnna Fali QUALIFIED
Morrow W MaletFranceStephen Shaw UNQUALIFIED
Claire W WhobreyIndiaAmy Elsner 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>