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
Silvio Y CampainAustraliaElwin Sharvill NEGOTIATION
David X ChuiBrazilIvan Magalhaes QUALIFIED
Francesco Z OldroydGermanyAmy Elsner PROPOSAL
Greenwood C KolmetzCanadaAmy Elsner UNQUALIFIED
Leon M DoeBrazilBernardo Dominic UNQUALIFIED
Alejandro B GlickItalyAnna Fali RENEWAL
Salvatore U DarakjyRussiaAmy Elsner NEW
Kadeem Z RutaUnited KingdomBernardo Dominic RENEWAL
Aika D OldroydFranceBernardo Dominic QUALIFIED
Tony V NestleAustraliaAsiya Javayant RENEWAL
Claire A TollnerRussiaIoni Bowcher NEW
Arvin D PoquetteFranceBernardo Dominic QUALIFIED
Kadeem F ButtSpainXuxue Feng PROPOSAL
Julie X AmigonRussiaBernardo Dominic UNQUALIFIED
Chavez R PerinJapanOnyama Limba RENEWAL
Munro K ChuiJapanBernardo Dominic RENEWAL
Morrow E IturbideArgentinaOnyama Limba QUALIFIED
Costa K BriddickBrazilAsiya Javayant UNQUALIFIED
Morrow V WaycottBrazilBernardo Dominic RENEWAL
Wickens M KolmetzGermanyStephen Shaw NEGOTIATION
Antonio Y MorascaJapanBernardo Dominic QUALIFIED
Mujtaba J IturbideArgentinaAsiya Javayant PROPOSAL
Murillo P NestleCanadaStephen Shaw QUALIFIED
Aika O KuskoIndiaAnna Fali NEGOTIATION
Cody M RoysterSpainElwin Sharvill RENEWAL
Francesco X IturbideGermanyIvan Magalhaes QUALIFIED
Nicolas I GillianIndiaAnna Fali PROPOSAL
Claire D GlickIndiaElwin Sharvill NEW
Jones M RutaGermanyIvan Magalhaes UNQUALIFIED
Emily V MaletJapanElwin Sharvill NEGOTIATION
Ricardo H OldroydAustraliaAsiya Javayant UNQUALIFIED
Ricardo G AmigonArgentinaElwin Sharvill RENEWAL
Silvio G CampainAustraliaXuxue Feng RENEWAL
Misaki C KolmetzFranceAmy Elsner NEGOTIATION
Octavia P PaprockiItalyXuxue Feng UNQUALIFIED
Chavez C BologniaUnited KingdomAsiya Javayant PROPOSAL
Antonio C MacleadIndiaAnna Fali QUALIFIED
Johnson H SchemmerJapanElwin Sharvill NEGOTIATION
Murillo L FerenczRussiaIoni Bowcher PROPOSAL
Kaitlin D FollerBrazilBernardo Dominic UNQUALIFIED
James P MaletCanadaOnyama Limba NEGOTIATION
Chavez W ButtUnited KingdomIoni Bowcher PROPOSAL
Aditya A SergiIndiaAmy Elsner UNQUALIFIED
Maisha D PaprockiItalyIoni Bowcher RENEWAL
Izzy U BriddickJapanStephen Shaw NEW
Sinclair R StensethCanadaAnna Fali NEW
Octavia C ChuiGermanyElwin Sharvill QUALIFIED
Rodrigues D SchemmerRussiaStephen Shaw PROPOSAL
Maria Q PaprockiBrazilOnyama Limba QUALIFIED
Tony E OstroskyFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire S MarrierItalyStephen Shaw UNQUALIFIED
Tony W BriddickRussiaStephen Shaw QUALIFIED
Ricardo D CaldareraRussiaStephen Shaw RENEWAL
Isabel H RutaIndiaIoni Bowcher RENEWAL
Wickens H KuskoBrazilOnyama Limba UNQUALIFIED
Ricardo G RutaJapanOnyama Limba PROPOSAL
Murillo M RutaJapanStephen Shaw NEW
Maisha S OldroydIndiaAmy Elsner PROPOSAL
Mayumi G SergiCanadaBernardo Dominic QUALIFIED
Cody Q DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer S StensethRussia2024-04-13Rousseaux, Michael Esq NEW24Onyama Limba
1001Francesco R MaletFrance2024-04-10King, Christopher A Esq QUALIFIED50Onyama Limba
1002Darci R RoysterAustralia2024-04-15Dorl, James J Esq PROPOSAL61Onyama Limba
1003Ivar Q MaletIndia2024-04-23Buckley Miller Wright RENEWAL70Xuxue Feng
1004Morrow A AmigonGermany2024-04-07Chanay, Jeffrey A Esq NEGOTIATION90Amy Elsner
1005Sinclair U GauchoUnited Kingdom2024-04-06Feiner Bros NEW69Xuxue Feng
1006Francesco B TollnerRussia2024-04-20Rangoni Of Florence RENEWAL23Xuxue Feng
1007Octavia L RimSpain2024-04-07Dorl, James J Esq PROPOSAL36Elwin Sharvill
1008Silvio I BowleyRussia2024-04-06Morlong Associates NEGOTIATION73Amy Elsner
1009Ashley P RulapaughJapan2024-04-07Feiner Bros NEW26Xuxue Feng
1010Jeanfrancois W RulapaughItaly2024-04-21Truhlar And Truhlar Attys UNQUALIFIED48Asiya Javayant
1011Kaitlin J PaprockiUnited Kingdom2024-03-29Morlong Associates QUALIFIED75Amy Elsner
1012Clifford H WaycottBrazil2024-04-23Chanay, Jeffrey A Esq UNQUALIFIED15Asiya Javayant
1013Munro G CampainCanada2024-03-30Dorl, James J Esq QUALIFIED0Asiya Javayant
1014Stacey I ButtArgentina2024-04-14Morlong Associates NEW67Onyama Limba
1015Kadeem Q MorascaJapan2024-04-20Benton, John B Jr QUALIFIED33Ioni Bowcher
1016Johnson M KuskoJapan2024-04-03Commercial Press NEGOTIATION22Asiya Javayant
1017Jefferson Z CaldareraItaly2024-04-11Commercial Press NEW27Ivan Magalhaes
1018Smith F KuskoUnited Kingdom2024-04-25Chapman, Ross E Esq NEGOTIATION72Ioni Bowcher
1019Tony N StockhamBrazil2024-04-25Rangoni Of Florence NEW82Stephen Shaw
1020Francesco E KolmetzCanada2024-04-23Feiner Bros QUALIFIED30Asiya Javayant
1021Francesco E PoquetteArgentina2024-03-29Buckley Miller Wright NEW29Bernardo Dominic
1022Julie G GlickRussia2024-04-18Chemel, James L Cpa RENEWAL62Amy Elsner
1023Maisha J SergiBrazil2024-04-09Benton, John B Jr RENEWAL22Bernardo Dominic
1024Ivar K DilliardFrance2024-04-01Morlong Associates UNQUALIFIED18Ivan Magalhaes
1025Kadeem T GauchoItaly2024-04-19Feiner Bros NEGOTIATION55Stephen Shaw
1026Kadeem Q GarufiUnited Kingdom2024-03-28Buckley Miller Wright RENEWAL2Onyama Limba
1027Ivar V AlbaresFrance2024-03-29Truhlar And Truhlar Attys QUALIFIED80Stephen Shaw
1028Jones G PaprockiRussia2024-04-05Rousseaux, Michael Esq RENEWAL39Elwin Sharvill
1029Morrow I DoeAustralia2024-04-19Morlong Associates PROPOSAL1Onyama Limba
1030Johnson Z PaprockiAustralia2024-04-26Benton, John B Jr NEGOTIATION30Xuxue Feng
1031Wickens H FlosiIndia2024-04-15Truhlar And Truhlar Attys RENEWAL8Stephen Shaw
1032Nicolas N CaldareraRussia2024-04-23Commercial Press QUALIFIED0Anna Fali
1033Tony R StensethAustralia2024-04-20Rousseaux, Michael Esq UNQUALIFIED32Bernardo Dominic
1034Aditya K MorascaUnited Kingdom2024-04-25Truhlar And Truhlar Attys QUALIFIED46Xuxue Feng
1035Cody X FigeroaCanada2024-04-10Dorl, James J Esq UNQUALIFIED10Stephen Shaw
1036Munro R SchemmerSpain2024-04-25Chapman, Ross E Esq RENEWAL89Elwin Sharvill
1037Julie C MorascaFrance2024-04-14Chemel, James L Cpa QUALIFIED63Asiya Javayant
1038Mayumi L FollerIndia2024-04-07Chemel, James L Cpa PROPOSAL60Anna Fali
1039Misaki M RimSpain2024-03-28King, Christopher A Esq NEGOTIATION14Ivan Magalhaes
1040Clifford X RutaFrance2024-04-22Commercial Press RENEWAL60Asiya Javayant
1041Tony L DilliardIndia2024-04-12Printing Dimensions RENEWAL6Anna Fali
1042Arvin M BriddickFrance2024-04-08Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1043Greenwood V PoquetteBrazil2024-04-09Chemel, James L Cpa PROPOSAL92Ivan Magalhaes
1044Jennifer S MorascaIndia2024-03-28Chemel, James L Cpa RENEWAL45Ioni Bowcher
1045Julie Q FollerFrance2024-04-05Morlong Associates UNQUALIFIED67Ivan Magalhaes
1046Leon N StensethAustralia2024-04-16Feltz Printing Service PROPOSAL76Amy Elsner
1047Sinclair C GarufiSpain2024-04-21Feiner Bros RENEWAL98Ivan Magalhaes
1048Julie K GauchoItaly2024-04-09Truhlar And Truhlar Attys PROPOSAL70Stephen Shaw
1049Murillo Z FerenczCanada2024-04-16Chemel, James L Cpa QUALIFIED16Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Alejandro X FlosiCanadaIoni Bowcher NEW
Murillo N CaudyItalyAnna Fali NEW
Aruna N StensethAustraliaOnyama Limba UNQUALIFIED
Stacey P RoysterArgentinaIoni Bowcher UNQUALIFIED
Greenwood H GlickIndiaElwin Sharvill NEGOTIATION
Wickens U SergiGermanyStephen Shaw RENEWAL
Misaki U MacleadBrazilElwin Sharvill NEGOTIATION
Mayumi N FigeroaAustraliaAsiya Javayant UNQUALIFIED
Stacey O WhobreyJapanAsiya Javayant UNQUALIFIED
Misaki O OldroydBrazilXuxue Feng UNQUALIFIED
Silvio V MaletUnited KingdomOnyama Limba PROPOSAL
Emily P IturbideCanadaBernardo Dominic RENEWAL
Darci H AmigonArgentinaXuxue Feng NEGOTIATION
Aruna Y GarufiFranceAsiya Javayant NEGOTIATION
Alejandro E StockhamIndiaIvan Magalhaes NEW
Clifford X MarrierRussiaIvan Magalhaes NEW
Tony H GlickSpainAnna Fali NEW
Salvatore W MarrierSpainAnna Fali PROPOSAL
Juan C FlosiArgentinaElwin Sharvill QUALIFIED
Kaitlin A AlbaresGermanyIvan Magalhaes RENEWAL
Claire R MaletUnited KingdomAmy Elsner QUALIFIED
Arvin C RimBrazilStephen Shaw QUALIFIED
Leon K IturbideCanadaStephen Shaw QUALIFIED
Misaki N KuskoBrazilOnyama Limba UNQUALIFIED
Munro J AmigonFranceBernardo Dominic UNQUALIFIED
Francesco U MarrierCanadaAsiya Javayant NEW
Johnson Y CaudyArgentinaAsiya Javayant PROPOSAL
Leon V ShinkoRussiaAnna Fali NEW
Juan I FerenczArgentinaXuxue Feng PROPOSAL
James F SergiItalyIvan Magalhaes UNQUALIFIED
Morrow Y ShinkoCanadaAmy Elsner PROPOSAL
James E OstroskyBrazilIoni Bowcher RENEWAL
Wickens V PoquetteJapanIoni Bowcher NEGOTIATION
Aika O GillianItalyStephen Shaw UNQUALIFIED
Misaki G OstroskyBrazilAnna Fali PROPOSAL
Salvatore D TollnerJapanStephen Shaw NEGOTIATION
Izzy C MaletFranceElwin Sharvill UNQUALIFIED
Ashley I MarrierSpainOnyama Limba PROPOSAL
Ricardo J SergiJapanBernardo Dominic RENEWAL
Kadeem Y FigeroaGermanyStephen Shaw NEW
Salvatore V FigeroaSpainAmy Elsner RENEWAL
Greenwood L GlickCanadaXuxue Feng UNQUALIFIED
Kaitlin T GlickIndiaOnyama Limba QUALIFIED
Munro W TollnerIndiaAnna Fali NEW
David Z GlickIndiaIoni Bowcher RENEWAL
Munro B StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Morrow P FerenczUnited KingdomAnna Fali UNQUALIFIED
Maisha U OstroskyFranceIvan Magalhaes NEW
Murillo Y RulapaughIndiaAmy Elsner QUALIFIED
Antonio U KuskoSpainAsiya Javayant NEGOTIATION
Frozen Columns
Name
Leja J Poquette
Ashley F Campain
Leon P Shinko
Claire A Kusko
Aditya T Campain
Juan E Albares
Kaitlin D Saylors
Alejandro V Perin
Antonio R Foller
Faith V Sergi
Aruna X Glick
Aika Z Caudy
Alejandro D Waycott
Adams A Garufi
Jones W Rim
Aika E Maclead
Silvio B Morasca
Nicolas Y Morasca
Salvatore K Figeroa
Emily N Glick
David A Malet
Rodrigues E Rim
Mayumi Z Albares
Ashley A Kolmetz
Mayumi O Amigon
Kaitlin K Amigon
Leon B Rim
Morrow Z Poquette
Munro D Kusko
Tony H Schemmer
Clifford M Slusarski
Wickens E Rim
Claire L Wieser
Jefferson W Nestle
Cody J Rulapaugh
Nicolas H Stenseth
Chavez G Malet
Munro F Ruta
Salvatore I Nicka
Aditya O Campain
Jennifer S Glick
David X Kolmetz
Jennifer X Bolognia
David H Malet
Leon F Whobrey
Murillo B Ferencz
Emily M Schemmer
Octavia K Oldroyd
Jones Y Caldarera
Misaki G Schemmer
IdCountryDate
1000India2024-04-24
1001Australia2024-04-11
1002Germany2024-04-12
1003Japan2024-04-02
1004Spain2024-04-14
1005Argentina2024-04-21
1006Italy2024-04-06
1007Russia2024-04-07
1008Argentina2024-04-23
1009Italy2024-04-18
1010Italy2024-04-24
1011Russia2024-04-05
1012Russia2024-04-13
1013France2024-04-14
1014France2024-04-16
1015Australia2024-04-17
1016Japan2024-04-10
1017Russia2024-04-20
1018Canada2024-03-29
1019India2024-04-07
1020Argentina2024-04-09
1021France2024-04-18
1022Canada2024-04-02
1023Canada2024-03-29
1024United Kingdom2024-04-10
1025Japan2024-03-30
1026United Kingdom2024-04-05
1027Canada2024-04-02
1028Brazil2024-04-18
1029Germany2024-04-09
1030France2024-04-01
1031Brazil2024-04-16
1032India2024-04-07
1033Germany2024-04-06
1034Japan2024-04-13
1035Australia2024-03-29
1036France2024-04-18
1037United Kingdom2024-04-14
1038Germany2024-04-13
1039Australia2024-04-24
1040Canada2024-04-26
1041Russia2024-04-25
1042Brazil2024-04-25
1043Brazil2024-04-09
1044Australia2024-04-04
1045Canada2024-04-12
1046Spain2024-04-13
1047Argentina2024-04-11
1048Spain2024-04-21
1049Canada2024-04-22

On-Demand Data

NameIdCountryDate
Octavia F Wieser1000Brazil2024-04-23
David T Oldroyd1001Spain2024-04-01
Jeanfrancois J Flosi1002Brazil2024-04-19
Clifford H Rulapaugh1003Japan2024-04-14
Leon D Kolmetz1004Germany2024-04-16
Leja I Rim1005Canada2024-04-22
Jones I Whobrey1006Spain2024-04-15
Octavia E Glick1007Germany2024-04-22
Ricardo S Stockham1008Argentina2024-04-19
Greenwood G Kusko1009Italy2024-03-30
Kaitlin T Maclead1010Italy2024-04-14
Antonio Z Slusarski1011Argentina2024-04-25
Wickens V Amigon1012France2024-03-31
Mujtaba U Perin1013Canada2024-04-05
Deepesh L Glick1014Italy2024-03-29
Claire S Garufi1015India2024-04-25
Arvin F Wieser1016Italy2024-04-16
Leon W Iturbide1017Canada2024-04-06
Misaki Q Wieser1018Spain2024-04-24
Johnson F Glick1019Germany2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon V MorascaAustraliaIvan Magalhaes RENEWAL
Mayumi T BologniaUnited KingdomBernardo Dominic RENEWAL
Ricardo X StensethJapanIoni Bowcher NEW
Adams C BriddickBrazilStephen Shaw RENEWAL
Jennifer T NickaArgentinaIoni Bowcher UNQUALIFIED
Jennifer B OldroydAustraliaIoni Bowcher NEW
James Y GlickCanadaAsiya Javayant QUALIFIED
Johnson D KolmetzIndiaAnna Fali NEW
Smith W GillianGermanyIvan Magalhaes NEGOTIATION
Kaitlin I GillianFranceAsiya Javayant QUALIFIED
Deepesh B WaycottGermanyAmy Elsner RENEWAL
Arvin Z VenereArgentinaStephen Shaw NEW
Stacey R StockhamAustraliaAnna Fali NEGOTIATION
Alejandro H KolmetzJapanXuxue Feng NEW
Izzy L SergiBrazilXuxue Feng QUALIFIED
Deepesh X TollnerArgentinaBernardo Dominic NEGOTIATION
Leja A RutaSpainStephen Shaw RENEWAL
David O RulapaughArgentinaIoni Bowcher UNQUALIFIED
Tony K WieserUnited KingdomAsiya Javayant PROPOSAL
Julie B InouyeUnited KingdomIvan Magalhaes RENEWAL
Johnson L GarufiGermanyIoni Bowcher PROPOSAL
Munro B ChuiCanadaAsiya Javayant RENEWAL
Wickens W BriddickGermanyElwin Sharvill QUALIFIED
Alejandro H WaycottArgentinaElwin Sharvill NEW
Jones L BriddickArgentinaAsiya Javayant QUALIFIED
Salvatore U BologniaFranceIoni Bowcher QUALIFIED
Salvatore W PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Ricardo T IturbideFranceAmy Elsner QUALIFIED
Octavia J DoeFranceAnna Fali UNQUALIFIED
Cody J SaylorsJapanOnyama Limba RENEWAL
Sinclair K NickaAustraliaIoni Bowcher NEGOTIATION
Kaitlin G KolmetzSpainOnyama Limba UNQUALIFIED
Kadeem B RutaRussiaAmy Elsner QUALIFIED
Mayumi H RulapaughArgentinaAnna Fali RENEWAL
David P StockhamSpainAnna Fali NEGOTIATION
Stacey U MorascaItalyOnyama Limba NEW
Antonio I ChuiBrazilIvan Magalhaes NEGOTIATION
Salvatore B FerenczItalyBernardo Dominic UNQUALIFIED
Murillo M RulapaughIndiaIvan Magalhaes PROPOSAL
Rodrigues S SergiArgentinaElwin Sharvill 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>