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
Jones R SergiIndiaOnyama Limba NEW
Maria I RutaGermanyIoni Bowcher RENEWAL
Chavez F RulapaughItalyBernardo Dominic NEW
Aditya P PerinIndiaOnyama Limba RENEWAL
Isabel W WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Salvatore Z VocelkaIndiaXuxue Feng NEGOTIATION
Stacey E PoquetteGermanyXuxue Feng UNQUALIFIED
Jefferson R DilliardSpainAmy Elsner NEGOTIATION
Francesco W PerinGermanyIoni Bowcher UNQUALIFIED
Julie U FollerCanadaAsiya Javayant RENEWAL
Chavez B FerenczUnited KingdomAsiya Javayant RENEWAL
Cody D CampainArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois B TollnerSpainAsiya Javayant NEGOTIATION
Julie Y MaletCanadaIoni Bowcher PROPOSAL
Smith B PerinCanadaAsiya Javayant NEGOTIATION
Chavez O GauchoSpainIoni Bowcher RENEWAL
Antonio F SlusarskiRussiaBernardo Dominic UNQUALIFIED
Nicolas G FigeroaUnited KingdomBernardo Dominic RENEWAL
Nicolas P CampainJapanBernardo Dominic QUALIFIED
Juan E CaudyIndiaAnna Fali UNQUALIFIED
Murillo S SlusarskiIndiaStephen Shaw RENEWAL
Rodrigues P GauchoAustraliaIoni Bowcher NEGOTIATION
Ricardo J InouyeIndiaBernardo Dominic NEW
Aruna B DilliardCanadaElwin Sharvill QUALIFIED
Murillo E BriddickCanadaIoni Bowcher NEW
Alejandro B BologniaUnited KingdomIvan Magalhaes QUALIFIED
Alejandro P KuskoIndiaAmy Elsner NEGOTIATION
Jefferson L TollnerAustraliaAmy Elsner NEW
Ricardo X RulapaughUnited KingdomAmy Elsner PROPOSAL
Maisha E CaldareraItalyAmy Elsner UNQUALIFIED
Darci W CaudySpainAsiya Javayant UNQUALIFIED
James T InouyeJapanAnna Fali QUALIFIED
Aika R DilliardBrazilIvan Magalhaes PROPOSAL
Izzy I MorascaBrazilXuxue Feng NEW
Kaitlin M RimAustraliaOnyama Limba RENEWAL
Aika E CaldareraItalyBernardo Dominic NEGOTIATION
Silvio Q BriddickGermanyOnyama Limba PROPOSAL
Maisha C GarufiCanadaXuxue Feng QUALIFIED
Julie N DoeSpainAmy Elsner PROPOSAL
Wickens R FigeroaItalyStephen Shaw NEW
Silvio Y RutaGermanyIvan Magalhaes RENEWAL
Chavez A MaletBrazilIoni Bowcher QUALIFIED
Faith D ChuiUnited KingdomBernardo Dominic PROPOSAL
Cody C StensethUnited KingdomIvan Magalhaes RENEWAL
Deepesh O MorascaUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois G MacleadJapanAmy Elsner NEW
Nicolas A ButtGermanyElwin Sharvill NEW
Ivar Z DoeJapanAsiya Javayant PROPOSAL
Sinclair E RimSpainAmy Elsner PROPOSAL
Deepesh S BowleyFranceAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Claire V WhobreyJapanIoni Bowcher QUALIFIED
Octavia U DoeCanadaAmy Elsner NEGOTIATION
Stacey R GillianAustraliaIoni Bowcher QUALIFIED
Alejandro V DarakjyArgentinaIoni Bowcher NEW
Morrow O ShinkoArgentinaAmy Elsner NEW
Antonio I MaletArgentinaIoni Bowcher NEW
Claire Y VenereArgentinaElwin Sharvill NEGOTIATION
Julie W MaletItalyAnna Fali PROPOSAL
Salvatore Z PerinBrazilAnna Fali QUALIFIED
Ashley G StensethArgentinaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez V AmigonAustralia2024-04-15Morlong Associates UNQUALIFIED36Stephen Shaw
1001Smith D SlusarskiBrazil2024-04-09Benton, John B Jr NEGOTIATION4Anna Fali
1002Octavia Y SergiJapan2024-04-06Chemel, James L Cpa PROPOSAL40Bernardo Dominic
1003Morrow H IturbideJapan2024-05-02Feltz Printing Service QUALIFIED74Ivan Magalhaes
1004Alejandro S RimIndia2024-05-02Feiner Bros QUALIFIED82Xuxue Feng
1005Leja I PoquetteSpain2024-04-12Commercial Press NEGOTIATION93Xuxue Feng
1006Clifford S GlickSpain2024-04-13Morlong Associates NEGOTIATION58Anna Fali
1007Munro W RimUnited Kingdom2024-05-02Feltz Printing Service NEGOTIATION41Amy Elsner
1008Salvatore T NestleItaly2024-04-07Feltz Printing Service PROPOSAL74Stephen Shaw
1009Leon Y MaletItaly2024-05-04Chapman, Ross E Esq QUALIFIED71Xuxue Feng
1010Isabel Z SlusarskiArgentina2024-04-05Buckley Miller Wright PROPOSAL73Ivan Magalhaes
1011Smith G PoquetteGermany2024-05-03Dorl, James J Esq NEGOTIATION91Ioni Bowcher
1012Jefferson L RimArgentina2024-04-08Feltz Printing Service RENEWAL74Asiya Javayant
1013Aika L IturbideJapan2024-04-19Feltz Printing Service RENEWAL2Ioni Bowcher
1014Juan B RoysterArgentina2024-04-17Truhlar And Truhlar Attys NEGOTIATION76Ioni Bowcher
1015Ivar M KuskoArgentina2024-04-23Printing Dimensions NEW92Stephen Shaw
1016Smith A IturbideItaly2024-04-22Printing Dimensions QUALIFIED97Elwin Sharvill
1017Kaitlin L RoysterItaly2024-04-30King, Christopher A Esq NEGOTIATION65Stephen Shaw
1018Costa A ChuiAustralia2024-05-03Printing Dimensions NEW49Ivan Magalhaes
1019Antonio W KuskoArgentina2024-04-22Truhlar And Truhlar Attys UNQUALIFIED14Xuxue Feng
1020Misaki A SlusarskiItaly2024-04-28Buckley Miller Wright RENEWAL53Onyama Limba
1021Maria P GauchoArgentina2024-04-26Truhlar And Truhlar Attys NEGOTIATION39Ioni Bowcher
1022Maisha S MacleadArgentina2024-04-29Chemel, James L Cpa QUALIFIED4Ivan Magalhaes
1023Kaitlin W CaudyArgentina2024-04-29Commercial Press NEW41Onyama Limba
1024Arvin P ButtItaly2024-04-18Chanay, Jeffrey A Esq RENEWAL35Ivan Magalhaes
1025Francesco S RoysterGermany2024-04-23Commercial Press QUALIFIED87Stephen Shaw
1026Kadeem W DarakjyRussia2024-04-09Truhlar And Truhlar Attys PROPOSAL2Stephen Shaw
1027Isabel K SaylorsArgentina2024-05-04Chapman, Ross E Esq QUALIFIED6Xuxue Feng
1028Mujtaba O StockhamArgentina2024-04-17King, Christopher A Esq QUALIFIED20Bernardo Dominic
1029Aika M GlickCanada2024-04-16Dorl, James J Esq UNQUALIFIED43Ivan Magalhaes
1030Claire P SaylorsAustralia2024-04-14Rousseaux, Michael Esq PROPOSAL14Bernardo Dominic
1031Munro T MacleadArgentina2024-04-20King, Christopher A Esq NEW60Amy Elsner
1032Maisha C DilliardFrance2024-04-09Feltz Printing Service NEW66Asiya Javayant
1033Deepesh K WieserAustralia2024-04-13Chanay, Jeffrey A Esq NEW31Stephen Shaw
1034Mayumi B DarakjySpain2024-04-07Feiner Bros RENEWAL1Bernardo Dominic
1035Wickens E CaldareraUnited Kingdom2024-04-22Commercial Press NEGOTIATION79Elwin Sharvill
1036Aruna N SlusarskiSpain2024-04-09Rangoni Of Florence QUALIFIED42Elwin Sharvill
1037James U CaudySpain2024-04-12Dorl, James J Esq PROPOSAL72Onyama Limba
1038Francesco X SaylorsArgentina2024-05-01Printing Dimensions PROPOSAL95Onyama Limba
1039Chavez K AlbaresCanada2024-04-05Dorl, James J Esq RENEWAL38Stephen Shaw
1040Mayumi E PerinItaly2024-04-16Chapman, Ross E Esq RENEWAL12Asiya Javayant
1041Smith E NestleSpain2024-04-25Truhlar And Truhlar Attys RENEWAL71Ioni Bowcher
1042Maria X WieserItaly2024-04-27Commercial Press NEW12Ivan Magalhaes
1043Tony P ShinkoUnited Kingdom2024-04-15Rousseaux, Michael Esq PROPOSAL51Anna Fali
1044Chavez A OldroydRussia2024-04-16Benton, John B Jr NEGOTIATION14Bernardo Dominic
1045Arvin C RulapaughArgentina2024-04-10Morlong Associates NEGOTIATION62Asiya Javayant
1046Ashley T WaycottArgentina2024-04-05Chanay, Jeffrey A Esq PROPOSAL0Stephen Shaw
1047Antonio Z InouyeUnited Kingdom2024-04-29Dorl, James J Esq NEGOTIATION41Amy Elsner
1048Adams Z RulapaughUnited Kingdom2024-04-15Morlong Associates RENEWAL0Elwin Sharvill
1049Juan I PaprockiCanada2024-05-03Rousseaux, Michael Esq RENEWAL84Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan Y ChuiIndiaAnna Fali QUALIFIED
Adams A GauchoGermanyIoni Bowcher RENEWAL
Mujtaba F MarrierFranceIoni Bowcher UNQUALIFIED
Jefferson I WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Johnson K FollerSpainIvan Magalhaes RENEWAL
Rodrigues M BowleyArgentinaElwin Sharvill NEGOTIATION
Johnson E PaprockiIndiaStephen Shaw NEW
Maria R PoquetteGermanyAmy Elsner RENEWAL
Ashley C DilliardUnited KingdomStephen Shaw PROPOSAL
Aruna G MorascaSpainAmy Elsner NEGOTIATION
Deepesh G CampainCanadaStephen Shaw UNQUALIFIED
Munro M PerinItalyElwin Sharvill NEGOTIATION
Kadeem M FigeroaJapanAmy Elsner PROPOSAL
Nicolas W FerenczFranceAmy Elsner NEW
Wickens S MaletIndiaAsiya Javayant NEW
Sinclair M RulapaughRussiaAsiya Javayant NEGOTIATION
Aruna U GillianUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro U NestleRussiaElwin Sharvill NEW
Leja G VocelkaIndiaIvan Magalhaes RENEWAL
Leja I RoysterFranceStephen Shaw NEW
Maria L MorascaJapanIvan Magalhaes NEGOTIATION
Aika S GillianRussiaXuxue Feng PROPOSAL
Morrow G MorascaRussiaIvan Magalhaes PROPOSAL
Aruna Z PerinItalyAsiya Javayant PROPOSAL
Greenwood O MaletCanadaXuxue Feng RENEWAL
Deepesh W WieserArgentinaStephen Shaw NEW
Kaitlin W PoquetteRussiaBernardo Dominic NEGOTIATION
Emily U SaylorsAustraliaAsiya Javayant NEW
Adams J StockhamGermanyElwin Sharvill NEW
Kaitlin F FigeroaArgentinaBernardo Dominic RENEWAL
Morrow H BowleyAustraliaAnna Fali NEW
Aika M MorascaItalyAsiya Javayant RENEWAL
Francesco V RimAustraliaStephen Shaw NEW
Aruna N VenereIndiaIvan Magalhaes PROPOSAL
Jefferson F BriddickGermanyAnna Fali UNQUALIFIED
Kadeem M KolmetzItalyAsiya Javayant NEW
Kadeem D KolmetzFranceAsiya Javayant NEW
Aditya I FollerFranceAnna Fali UNQUALIFIED
Silvio X KolmetzFranceAsiya Javayant NEW
Mujtaba J GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues H RutaUnited KingdomBernardo Dominic UNQUALIFIED
Clifford X FigeroaItalyOnyama Limba PROPOSAL
Aruna Q CaldareraIndiaIvan Magalhaes QUALIFIED
Ricardo Z GarufiFranceOnyama Limba UNQUALIFIED
Arvin L MacleadFranceOnyama Limba UNQUALIFIED
Salvatore B CaudyBrazilAnna Fali PROPOSAL
Chavez S CaldareraArgentinaAnna Fali RENEWAL
Murillo T RimFranceAsiya Javayant NEGOTIATION
Morrow S DilliardUnited KingdomStephen Shaw RENEWAL
Arvin H FerenczGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Jeanfrancois J Garufi
Munro S Ostrosky
Rodrigues V Vocelka
Mujtaba V Malet
Aditya Z Amigon
Jones A Chui
Jones E Glick
Kadeem Y Chui
Emily U Ostrosky
Morrow S Shinko
Clifford C Stenseth
Kaitlin A Iturbide
Kadeem E Butt
Silvio G Caldarera
Antonio G Marrier
Juan Y Figeroa
Kadeem W Glick
Jennifer E Malet
Mujtaba J Bolognia
Wickens Q Caldarera
Rodrigues X Foller
Leon U Poquette
Francesco Y Royster
Darci L Butt
Maria N Tollner
Jones D Sergi
Ashley A Ostrosky
Greenwood Z Figeroa
Murillo E Maclead
Tony Z Kusko
Aika D Butt
Costa L Venere
Silvio O Gaucho
Alejandro E Ruta
Mujtaba A Figeroa
Chavez T Garufi
Maria V Caldarera
Juan P Butt
James L Slusarski
Alejandro H Dilliard
David T Stenseth
Greenwood H Oldroyd
Costa R Dilliard
Mujtaba Z Stenseth
Izzy H Kolmetz
Juan N Gaucho
Leja M Inouye
Costa R Rim
Ivar R Briddick
Francesco A Shinko
IdCountryDate
1000Germany2024-04-05
1001Italy2024-04-15
1002Japan2024-04-25
1003Russia2024-04-29
1004Italy2024-04-18
1005Germany2024-04-21
1006Canada2024-04-08
1007Japan2024-05-04
1008Russia2024-04-07
1009Canada2024-04-12
1010France2024-04-14
1011Canada2024-04-20
1012France2024-04-12
1013Australia2024-04-24
1014Argentina2024-04-10
1015France2024-04-21
1016Germany2024-04-11
1017Argentina2024-04-18
1018France2024-05-01
1019Brazil2024-05-03
1020Argentina2024-04-25
1021Spain2024-04-27
1022Canada2024-04-28
1023Brazil2024-04-19
1024Australia2024-04-06
1025Italy2024-05-03
1026Canada2024-04-10
1027Italy2024-04-13
1028India2024-04-07
1029Australia2024-04-21
1030Australia2024-04-16
1031Russia2024-04-16
1032Spain2024-04-05
1033France2024-04-21
1034Argentina2024-04-06
1035United Kingdom2024-04-23
1036Brazil2024-05-01
1037Italy2024-05-01
1038Argentina2024-04-20
1039France2024-04-29
1040France2024-04-28
1041Canada2024-04-10
1042Russia2024-04-07
1043Argentina2024-04-21
1044Italy2024-04-24
1045Russia2024-04-30
1046Russia2024-04-29
1047Spain2024-04-25
1048Australia2024-04-22
1049France2024-04-20

On-Demand Data

NameIdCountryDate
Julie C Venere1000Canada2024-04-12
Alejandro R Ostrosky1001United Kingdom2024-04-14
Sinclair Y Whobrey1002Germany2024-04-19
Rodrigues U Sergi1003Japan2024-04-12
Isabel S Shinko1004Argentina2024-04-30
Aika I Iturbide1005Russia2024-04-14
Aika X Vocelka1006Canada2024-04-18
Murillo T Gillian1007India2024-04-22
Maria Y Schemmer1008Australia2024-04-18
Ricardo F Gillian1009France2024-04-15
Clifford X Flosi1010Spain2024-04-17
Greenwood E Marrier1011Italy2024-04-29
Jones S Malet1012France2024-04-30
Arvin J Waycott1013Canada2024-04-21
Wickens Y Perin1014Argentina2024-04-06
Clifford D Tollner1015Canada2024-04-22
Aruna B Maclead1016United Kingdom2024-05-04
Smith J Stockham1017Spain2024-04-20
Leja Z Iturbide1018Canada2024-05-03
Antonio W Glick1019France2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy M VenereSpainStephen Shaw RENEWAL
Morrow J NestleUnited KingdomIvan Magalhaes PROPOSAL
Kaitlin H BowleyCanadaAnna Fali QUALIFIED
Greenwood U WieserItalyAmy Elsner NEW
Alejandro H RoysterGermanyIoni Bowcher QUALIFIED
Arvin V CaldareraGermanyIvan Magalhaes QUALIFIED
James J IturbideAustraliaXuxue Feng NEGOTIATION
Johnson K TollnerIndiaAmy Elsner UNQUALIFIED
Tony S AmigonIndiaElwin Sharvill NEW
Isabel Z ButtCanadaAsiya Javayant QUALIFIED
Arvin U DilliardSpainIoni Bowcher PROPOSAL
Kaitlin K WieserBrazilXuxue Feng QUALIFIED
Costa R KolmetzCanadaStephen Shaw RENEWAL
Julie V RulapaughJapanElwin Sharvill NEGOTIATION
Arvin I CaldareraRussiaAmy Elsner RENEWAL
Aika D SaylorsRussiaXuxue Feng NEW
Jones Y AmigonJapanAnna Fali UNQUALIFIED
Stacey C CampainJapanIoni Bowcher UNQUALIFIED
Morrow U MaletFranceElwin Sharvill NEGOTIATION
Adams F SaylorsGermanyElwin Sharvill RENEWAL
Adams R VenereGermanyIvan Magalhaes RENEWAL
Jones B BowleyFranceElwin Sharvill RENEWAL
Faith Y GauchoBrazilIoni Bowcher UNQUALIFIED
Jefferson Z SlusarskiGermanyBernardo Dominic RENEWAL
Ivar V InouyeArgentinaAnna Fali PROPOSAL
Aika H PerinBrazilOnyama Limba NEW
Aika U WhobreyUnited KingdomIvan Magalhaes NEW
Johnson W GarufiIndiaIoni Bowcher NEW
David B RimFranceIoni Bowcher NEGOTIATION
David Q ChuiAustraliaOnyama Limba UNQUALIFIED
Greenwood A WaycottBrazilXuxue Feng PROPOSAL
Izzy X AmigonJapanBernardo Dominic NEGOTIATION
Misaki D CampainBrazilElwin Sharvill NEW
Misaki Q KuskoIndiaIoni Bowcher UNQUALIFIED
Wickens L FlosiGermanyStephen Shaw PROPOSAL
Isabel E DoeIndiaAmy Elsner UNQUALIFIED
Munro O SlusarskiJapanAnna Fali QUALIFIED
Chavez D FigeroaRussiaIoni Bowcher UNQUALIFIED
Johnson P OstroskyGermanyAsiya Javayant QUALIFIED
Octavia T StockhamGermanyAnna Fali NEW

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