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
Smith Z PoquetteCanadaBernardo Dominic QUALIFIED
Greenwood C StockhamRussiaElwin Sharvill NEGOTIATION
Aika E GarufiIndiaBernardo Dominic RENEWAL
Johnson D InouyeAustraliaIoni Bowcher RENEWAL
Ashley E FollerRussiaXuxue Feng NEW
Misaki H MaletFranceElwin Sharvill NEGOTIATION
Jennifer F IturbideArgentinaAsiya Javayant UNQUALIFIED
Jefferson G BologniaRussiaAmy Elsner UNQUALIFIED
Murillo O WhobreySpainXuxue Feng RENEWAL
Kadeem Q FerenczSpainAsiya Javayant RENEWAL
Ricardo M TollnerJapanAmy Elsner NEGOTIATION
Clifford S FollerArgentinaIvan Magalhaes PROPOSAL
Misaki U InouyeIndiaElwin Sharvill PROPOSAL
Smith Q PaprockiGermanyXuxue Feng RENEWAL
Stacey J MacleadGermanyXuxue Feng PROPOSAL
Aruna F RulapaughCanadaElwin Sharvill UNQUALIFIED
Morrow V DarakjyFranceXuxue Feng PROPOSAL
Greenwood L InouyeCanadaIvan Magalhaes RENEWAL
Alejandro K MacleadArgentinaIoni Bowcher NEW
Aika P MacleadFranceElwin Sharvill QUALIFIED
Ivar Z CaldareraSpainAsiya Javayant PROPOSAL
Cody T PoquetteArgentinaElwin Sharvill UNQUALIFIED
Rodrigues G KolmetzIndiaAnna Fali QUALIFIED
Julie D StensethIndiaBernardo Dominic PROPOSAL
Chavez O DilliardAustraliaOnyama Limba QUALIFIED
Wickens I FollerCanadaOnyama Limba RENEWAL
Aika Z ButtItalyAmy Elsner PROPOSAL
Maria Q CaudyUnited KingdomIvan Magalhaes NEW
Cody R PaprockiIndiaElwin Sharvill NEGOTIATION
Murillo C AmigonFranceIoni Bowcher UNQUALIFIED
Jones H OstroskyCanadaElwin Sharvill PROPOSAL
Kaitlin D CaldareraCanadaBernardo Dominic NEGOTIATION
Stacey Z IturbideIndiaAsiya Javayant UNQUALIFIED
Leja P StockhamCanadaAsiya Javayant NEGOTIATION
Kaitlin N GlickUnited KingdomAsiya Javayant NEW
Sinclair D AmigonIndiaStephen Shaw QUALIFIED
Faith E DilliardSpainXuxue Feng QUALIFIED
Jefferson M PaprockiJapanStephen Shaw RENEWAL
Aika Y MorascaIndiaIvan Magalhaes PROPOSAL
Sinclair L InouyeCanadaElwin Sharvill NEW
Maisha T OldroydAustraliaIvan Magalhaes QUALIFIED
Aika Z FlosiFranceStephen Shaw PROPOSAL
James S PerinCanadaElwin Sharvill NEW
Murillo K MorascaAustraliaIvan Magalhaes QUALIFIED
Cody S SchemmerGermanyIoni Bowcher NEGOTIATION
Mujtaba G GillianBrazilIoni Bowcher PROPOSAL
Darci I FlosiCanadaBernardo Dominic PROPOSAL
Misaki U MaletRussiaAmy Elsner NEGOTIATION
Leon P DilliardRussiaStephen Shaw UNQUALIFIED
Chavez U MarrierSpainAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair K CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois G GillianItalyBernardo Dominic UNQUALIFIED
Smith I InouyeFranceIoni Bowcher NEW
Ashley S PaprockiAustraliaIvan Magalhaes PROPOSAL
Morrow Q PerinAustraliaElwin Sharvill QUALIFIED
Chavez G VocelkaGermanyOnyama Limba NEW
Smith S OldroydRussiaOnyama Limba NEGOTIATION
Munro P SaylorsAustraliaStephen Shaw QUALIFIED
Rodrigues A PaprockiCanadaIoni Bowcher NEGOTIATION
Sinclair Z ChuiIndiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas Z MaletGermany2024-04-16Buckley Miller Wright NEW79Stephen Shaw
1001Silvio C SlusarskiItaly2024-04-08Commercial Press QUALIFIED25Elwin Sharvill
1002Kadeem N WieserGermany2024-04-17Buckley Miller Wright NEW37Asiya Javayant
1003Jeanfrancois E VocelkaSpain2024-04-08King, Christopher A Esq NEGOTIATION92Xuxue Feng
1004Greenwood K WhobreyCanada2024-04-12Truhlar And Truhlar Attys QUALIFIED79Onyama Limba
1005Octavia G GauchoIndia2024-04-24Morlong Associates UNQUALIFIED21Onyama Limba
1006Tony Z CaudyJapan2024-04-20Rousseaux, Michael Esq PROPOSAL55Anna Fali
1007Antonio X FollerAustralia2024-04-16Feltz Printing Service UNQUALIFIED83Asiya Javayant
1008Rodrigues Q OldroydSpain2024-04-03Printing Dimensions NEGOTIATION74Stephen Shaw
1009Chavez V InouyeGermany2024-04-15Feltz Printing Service NEW34Onyama Limba
1010Faith Q GauchoCanada2024-04-24Morlong Associates QUALIFIED16Xuxue Feng
1011Emily U MorascaCanada2024-04-04Buckley Miller Wright UNQUALIFIED69Bernardo Dominic
1012Salvatore J MaletBrazil2024-04-18Truhlar And Truhlar Attys RENEWAL67Stephen Shaw
1013Maisha J MaletCanada2024-04-25Feltz Printing Service QUALIFIED96Anna Fali
1014Octavia J MaletAustralia2024-04-03Chanay, Jeffrey A Esq QUALIFIED45Xuxue Feng
1015Octavia O KolmetzGermany2024-04-25Morlong Associates UNQUALIFIED65Stephen Shaw
1016Jones P GauchoItaly2024-04-15Benton, John B Jr PROPOSAL57Ioni Bowcher
1017Claire L RoysterCanada2024-04-13Printing Dimensions RENEWAL59Bernardo Dominic
1018Deepesh P GauchoUnited Kingdom2024-04-04Printing Dimensions QUALIFIED88Ivan Magalhaes
1019Maria I RulapaughArgentina2024-04-20Commercial Press QUALIFIED35Ivan Magalhaes
1020Isabel J OstroskyJapan2024-04-17Rousseaux, Michael Esq RENEWAL20Stephen Shaw
1021Isabel S WhobreySpain2024-04-22Printing Dimensions UNQUALIFIED32Xuxue Feng
1022Octavia N MacleadRussia2024-04-24Truhlar And Truhlar Attys QUALIFIED18Elwin Sharvill
1023Claire T RutaItaly2024-04-24Feiner Bros NEW23Stephen Shaw
1024Claire Q BologniaIndia2024-04-20Chemel, James L Cpa RENEWAL58Elwin Sharvill
1025Izzy L ShinkoCanada2024-04-22Truhlar And Truhlar Attys PROPOSAL81Ivan Magalhaes
1026Leja V DoeCanada2024-04-18Rousseaux, Michael Esq RENEWAL9Amy Elsner
1027Izzy G IturbideAustralia2024-04-11Chanay, Jeffrey A Esq QUALIFIED39Amy Elsner
1028Emily X TollnerBrazil2024-04-13Feiner Bros PROPOSAL60Xuxue Feng
1029Stacey O AmigonAustralia2024-04-11Feiner Bros QUALIFIED99Ivan Magalhaes
1030Costa Q MorascaUnited Kingdom2024-04-20Chanay, Jeffrey A Esq NEW79Xuxue Feng
1031Kaitlin R SergiSpain2024-04-21Feiner Bros PROPOSAL3Ioni Bowcher
1032Arvin U VenereIndia2024-04-19Feltz Printing Service NEGOTIATION83Asiya Javayant
1033Darci E GauchoGermany2024-03-30Feiner Bros PROPOSAL4Ioni Bowcher
1034Aika C WieserItaly2024-04-21Rangoni Of Florence PROPOSAL24Xuxue Feng
1035Tony L IturbideSpain2024-04-16Rangoni Of Florence PROPOSAL52Stephen Shaw
1036Clifford G IturbideArgentina2024-04-02Printing Dimensions NEGOTIATION36Ivan Magalhaes
1037Greenwood B MaletItaly2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED77Amy Elsner
1038Costa H OstroskyAustralia2024-04-14Rangoni Of Florence UNQUALIFIED81Onyama Limba
1039Greenwood F RimAustralia2024-04-01Feiner Bros RENEWAL94Onyama Limba
1040Aditya H OldroydJapan2024-04-21Feltz Printing Service NEGOTIATION68Xuxue Feng
1041Kadeem J SaylorsAustralia2024-04-15Buckley Miller Wright NEGOTIATION70Ioni Bowcher
1042Octavia W FollerAustralia2024-04-24Buckley Miller Wright RENEWAL32Asiya Javayant
1043Salvatore B PerinFrance2024-04-25Feiner Bros NEW0Onyama Limba
1044Emily M MacleadCanada2024-04-09Dorl, James J Esq RENEWAL64Elwin Sharvill
1045Maisha I OstroskySpain2024-04-21Benton, John B Jr QUALIFIED58Elwin Sharvill
1046David S GarufiRussia2024-04-05Feiner Bros NEW39Ioni Bowcher
1047Claire T RutaFrance2024-03-31Chemel, James L Cpa UNQUALIFIED82Bernardo Dominic
1048Misaki V MarrierIndia2024-04-09Feltz Printing Service NEW31Elwin Sharvill
1049Nicolas Q RutaIndia2024-04-14Feltz Printing Service PROPOSAL36Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aruna J RoysterJapanElwin Sharvill QUALIFIED
Aditya C ShinkoJapanAmy Elsner PROPOSAL
Kaitlin J CaldareraSpainStephen Shaw QUALIFIED
Kadeem A WhobreyCanadaElwin Sharvill QUALIFIED
Johnson G GillianBrazilBernardo Dominic NEGOTIATION
Clifford I NickaJapanIoni Bowcher PROPOSAL
Murillo U SergiGermanyAnna Fali QUALIFIED
Greenwood O GauchoItalyElwin Sharvill NEW
Mayumi K OstroskyArgentinaBernardo Dominic RENEWAL
Arvin H VocelkaCanadaIvan Magalhaes NEW
Rodrigues J MaletAustraliaXuxue Feng NEW
Morrow M DarakjyJapanIoni Bowcher RENEWAL
Juan L SchemmerUnited KingdomElwin Sharvill RENEWAL
Arvin N DarakjyAustraliaAmy Elsner NEW
Ricardo X StensethBrazilOnyama Limba NEW
Mujtaba K StensethIndiaOnyama Limba QUALIFIED
Leja A PaprockiGermanyAnna Fali NEGOTIATION
Juan H SlusarskiCanadaOnyama Limba PROPOSAL
Mayumi I ChuiIndiaAnna Fali QUALIFIED
Maisha I SaylorsIndiaBernardo Dominic PROPOSAL
Munro E KolmetzArgentinaAmy Elsner NEGOTIATION
Nicolas A AmigonFranceElwin Sharvill PROPOSAL
Cody C GlickBrazilIoni Bowcher RENEWAL
Johnson W KuskoRussiaIvan Magalhaes RENEWAL
Aditya P ChuiItalyOnyama Limba NEW
Emily S KolmetzAustraliaStephen Shaw QUALIFIED
Ivar A OldroydBrazilIoni Bowcher UNQUALIFIED
Salvatore R AmigonIndiaBernardo Dominic RENEWAL
Maisha F FerenczSpainIoni Bowcher NEW
Jones A WieserItalyElwin Sharvill NEGOTIATION
Rodrigues O DarakjyUnited KingdomAnna Fali RENEWAL
Arvin O BowleyAustraliaElwin Sharvill QUALIFIED
Izzy U RulapaughBrazilXuxue Feng RENEWAL
Faith X PaprockiAustraliaAnna Fali NEGOTIATION
Maisha Q KolmetzFranceIvan Magalhaes NEW
Aika E OldroydCanadaBernardo Dominic RENEWAL
Morrow L RoysterArgentinaAnna Fali PROPOSAL
Claire K TollnerRussiaIoni Bowcher NEW
Johnson S MaletBrazilElwin Sharvill UNQUALIFIED
Cody R FigeroaItalyIoni Bowcher NEGOTIATION
Nicolas T MaletFranceAmy Elsner NEW
Sinclair P ShinkoUnited KingdomIvan Magalhaes NEW
Francesco E SaylorsRussiaIvan Magalhaes QUALIFIED
Stacey X RimBrazilStephen Shaw QUALIFIED
Octavia R MacleadJapanAmy Elsner NEGOTIATION
Aditya V PoquetteCanadaAsiya Javayant NEW
Maisha T OstroskyIndiaIvan Magalhaes QUALIFIED
Morrow N ChuiSpainXuxue Feng NEW
Darci E ShinkoAustraliaXuxue Feng NEGOTIATION
James N OldroydArgentinaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
David I Paprocki
David O Iturbide
Chavez A Ostrosky
Misaki B Ferencz
Rodrigues Z Vocelka
Nicolas Z Ruta
Morrow L Vocelka
Rodrigues P Foller
Antonio K Amigon
James Z Stenseth
Maisha Z Doe
Alejandro B Sergi
Aditya E Butt
David R Stockham
Jones V Glick
Faith F Ruta
David H Shinko
Silvio C Schemmer
Juan Y Ruta
Tony G Waycott
Silvio A Nestle
Costa B Glick
Darci T Gillian
Leon J Whobrey
Jeanfrancois H Tollner
Octavia R Paprocki
Misaki Y Amigon
Claire G Ostrosky
Emily O Caldarera
Murillo A Kusko
Kaitlin X Waycott
Darci I Campain
Claire L Gillian
Chavez P Tollner
Aditya F Bowley
Deepesh D Gillian
Cody F Ostrosky
Clifford E Sergi
Rodrigues L Venere
Smith D Kusko
Stacey B Maclead
Ricardo H Waycott
Mujtaba I Darakjy
Leon F Bolognia
Mayumi K Briddick
Munro X Albares
Antonio V Dilliard
Cody Y Vocelka
Munro H Maclead
Ashley D Inouye
IdCountryDate
1000United Kingdom2024-03-31
1001Russia2024-04-03
1002Japan2024-04-01
1003Australia2024-04-28
1004Spain2024-04-28
1005France2024-04-16
1006Russia2024-04-19
1007Australia2024-04-22
1008Canada2024-04-07
1009India2024-04-17
1010United Kingdom2024-04-01
1011Japan2024-04-01
1012Brazil2024-04-23
1013France2024-04-23
1014France2024-04-12
1015Germany2024-04-16
1016Argentina2024-04-14
1017Argentina2024-04-28
1018Canada2024-04-28
1019France2024-04-04
1020Spain2024-04-08
1021France2024-04-02
1022Brazil2024-04-19
1023Russia2024-04-12
1024France2024-04-17
1025Brazil2024-04-27
1026Canada2024-04-14
1027Spain2024-04-13
1028Italy2024-04-03
1029India2024-04-03
1030Australia2024-04-05
1031Germany2024-04-25
1032Spain2024-04-13
1033United Kingdom2024-04-16
1034Spain2024-04-06
1035Russia2024-04-01
1036Argentina2024-04-19
1037Brazil2024-03-31
1038Italy2024-04-25
1039Canada2024-04-17
1040India2024-04-07
1041Germany2024-04-07
1042India2024-04-18
1043Spain2024-03-30
1044India2024-04-08
1045Brazil2024-04-01
1046United Kingdom2024-04-15
1047Canada2024-04-26
1048Australia2024-04-07
1049Canada2024-04-23

On-Demand Data

NameIdCountryDate
Jefferson E Gaucho1000United Kingdom2024-04-18
Leon G Tollner1001Canada2024-04-21
Silvio I Caudy1002Italy2024-04-03
Antonio I Malet1003Germany2024-04-16
Antonio E Iturbide1004Canada2024-04-26
Octavia V Foller1005United Kingdom2024-04-08
Faith W Ferencz1006Japan2024-04-17
Sinclair Y Stockham1007India2024-04-09
Chavez D Albares1008United Kingdom2024-04-01
Salvatore M Caudy1009Japan2024-04-03
Jefferson Y Sergi1010Australia2024-04-14
Alejandro G Caudy1011United Kingdom2024-04-13
Aditya Q Inouye1012Italy2024-04-04
Octavia U Figeroa1013India2024-04-21
Jeanfrancois E Venere1014Germany2024-04-10
Octavia D Stenseth1015India2024-04-06
Maisha U Saylors1016Argentina2024-04-19
Kaitlin W Bowley1017United Kingdom2024-04-16
Mayumi R Amigon1018Germany2024-04-11
Alejandro P Doe1019Germany2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith E InouyeCanadaXuxue Feng QUALIFIED
Rodrigues N TollnerItalyElwin Sharvill RENEWAL
Julie C TollnerRussiaAnna Fali UNQUALIFIED
Smith O StockhamItalyStephen Shaw NEW
Morrow L VocelkaArgentinaBernardo Dominic QUALIFIED
Kaitlin G TollnerGermanyStephen Shaw NEW
Nicolas Y VenereIndiaBernardo Dominic UNQUALIFIED
Aika E ButtUnited KingdomElwin Sharvill QUALIFIED
Jennifer V GlickAustraliaIoni Bowcher RENEWAL
Francesco O GarufiJapanAmy Elsner PROPOSAL
Julie R KolmetzRussiaElwin Sharvill NEW
Aditya I DilliardUnited KingdomIvan Magalhaes QUALIFIED
Aruna H InouyeSpainOnyama Limba QUALIFIED
Silvio G KuskoItalyStephen Shaw PROPOSAL
Julie K RutaCanadaXuxue Feng RENEWAL
Salvatore L RutaJapanIoni Bowcher QUALIFIED
Aruna S CaldareraCanadaXuxue Feng UNQUALIFIED
Ashley N CaudyArgentinaElwin Sharvill RENEWAL
Ashley H NestleGermanyOnyama Limba NEGOTIATION
Greenwood O RoysterBrazilOnyama Limba QUALIFIED
Aika V RutaJapanXuxue Feng QUALIFIED
Deepesh S TollnerFranceXuxue Feng PROPOSAL
David E GarufiRussiaIvan Magalhaes QUALIFIED
Clifford Y StockhamCanadaBernardo Dominic NEGOTIATION
Ashley W GillianCanadaBernardo Dominic NEW
Kaitlin T VocelkaSpainOnyama Limba RENEWAL
Aruna Y VenereSpainBernardo Dominic PROPOSAL
Stacey O PaprockiIndiaStephen Shaw RENEWAL
Jennifer K MaletJapanAnna Fali PROPOSAL
Izzy A GarufiBrazilOnyama Limba RENEWAL
Jefferson E MaletAustraliaAsiya Javayant QUALIFIED
Mujtaba Z FigeroaBrazilStephen Shaw PROPOSAL
Darci Y ShinkoUnited KingdomOnyama Limba NEGOTIATION
Morrow V MacleadCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois I NickaGermanyOnyama Limba QUALIFIED
Julie N MacleadCanadaOnyama Limba NEW
Francesco E VocelkaSpainElwin Sharvill QUALIFIED
Claire R VocelkaBrazilStephen Shaw NEGOTIATION
Wickens F MaletJapanElwin Sharvill RENEWAL
Murillo Q FlosiArgentinaElwin Sharvill 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>