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
Munro E CampainGermanyIoni Bowcher QUALIFIED
Ricardo W WaycottIndiaIoni Bowcher NEGOTIATION
Antonio B MacleadJapanXuxue Feng PROPOSAL
Tony G BowleyGermanyAsiya Javayant NEGOTIATION
Clifford J RoysterSpainBernardo Dominic PROPOSAL
Mayumi S RulapaughBrazilAmy Elsner PROPOSAL
Isabel Q MacleadCanadaElwin Sharvill NEW
Izzy H SaylorsJapanBernardo Dominic RENEWAL
Clifford U NestleUnited KingdomXuxue Feng QUALIFIED
James E StockhamAustraliaXuxue Feng RENEWAL
Isabel N IturbideRussiaAnna Fali RENEWAL
Salvatore A GauchoFranceIoni Bowcher PROPOSAL
Leja K MaletUnited KingdomOnyama Limba RENEWAL
Alejandro O AlbaresItalyAsiya Javayant RENEWAL
Juan O WaycottCanadaStephen Shaw UNQUALIFIED
Octavia U ShinkoRussiaXuxue Feng PROPOSAL
Smith G RulapaughJapanElwin Sharvill QUALIFIED
Kadeem Q KuskoItalyIvan Magalhaes NEW
Emily M MarrierSpainAmy Elsner NEGOTIATION
Wickens M BowleyItalyIvan Magalhaes NEGOTIATION
Deepesh J MaletGermanyAnna Fali QUALIFIED
Nicolas I BowleyBrazilAnna Fali UNQUALIFIED
Francesco T WhobreyCanadaStephen Shaw NEW
Rodrigues Q BologniaGermanyStephen Shaw UNQUALIFIED
Murillo T PoquetteGermanyBernardo Dominic NEW
Aika Q KuskoAustraliaAnna Fali QUALIFIED
Morrow I ShinkoUnited KingdomBernardo Dominic RENEWAL
Jennifer B VenereBrazilStephen Shaw UNQUALIFIED
Arvin S RimSpainElwin Sharvill NEW
Alejandro M FigeroaAustraliaOnyama Limba NEGOTIATION
Claire O MaletAustraliaOnyama Limba NEGOTIATION
Wickens Q FerenczItalyElwin Sharvill UNQUALIFIED
Juan U SergiRussiaIoni Bowcher QUALIFIED
Julie A DarakjyBrazilAnna Fali NEGOTIATION
Rodrigues X TollnerFranceOnyama Limba QUALIFIED
James N OldroydIndiaAsiya Javayant NEW
Mayumi B AmigonBrazilAmy Elsner RENEWAL
Munro G OldroydArgentinaAnna Fali NEGOTIATION
Tony L MaletUnited KingdomAmy Elsner NEW
Maisha L PoquetteAustraliaIvan Magalhaes QUALIFIED
Emily J PerinSpainIvan Magalhaes PROPOSAL
Silvio X WaycottSpainAmy Elsner QUALIFIED
Salvatore V OstroskyCanadaAmy Elsner NEW
Maria B KolmetzAustraliaElwin Sharvill QUALIFIED
James M WhobreyRussiaBernardo Dominic PROPOSAL
Julie S TollnerBrazilAmy Elsner UNQUALIFIED
Tony K StensethFranceBernardo Dominic QUALIFIED
Stacey X GarufiIndiaOnyama Limba NEGOTIATION
Chavez Z StockhamUnited KingdomOnyama Limba PROPOSAL
Maria G SaylorsIndiaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson W DoeRussiaElwin Sharvill NEGOTIATION
Clifford E ButtCanadaIvan Magalhaes NEW
Jones N InouyeGermanyXuxue Feng NEW
Misaki C AlbaresGermanyBernardo Dominic QUALIFIED
Juan A RoysterGermanyIvan Magalhaes NEW
Maisha O GauchoBrazilAsiya Javayant UNQUALIFIED
Francesco Q OstroskyArgentinaAmy Elsner QUALIFIED
Mayumi C FerenczJapanIvan Magalhaes UNQUALIFIED
Rodrigues U SlusarskiArgentinaIoni Bowcher UNQUALIFIED
Clifford D ChuiArgentinaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba C IturbideGermany2024-04-01Buckley Miller Wright QUALIFIED43Onyama Limba
1001Clifford Y BologniaJapan2024-03-23Commercial Press RENEWAL78Stephen Shaw
1002Aika W OldroydGermany2024-03-26Chapman, Ross E Esq QUALIFIED16Onyama Limba
1003Deepesh M GarufiBrazil2024-03-30Feltz Printing Service RENEWAL33Asiya Javayant
1004Salvatore G RoysterSpain2024-03-23Commercial Press PROPOSAL75Asiya Javayant
1005Deepesh T BologniaCanada2024-04-19Dorl, James J Esq PROPOSAL84Ioni Bowcher
1006Misaki U MacleadFrance2024-04-07Rousseaux, Michael Esq PROPOSAL99Stephen Shaw
1007Ricardo K MaletItaly2024-04-09Feiner Bros PROPOSAL13Elwin Sharvill
1008Rodrigues L StensethSpain2024-04-12Chanay, Jeffrey A Esq NEW69Onyama Limba
1009Morrow D GillianItaly2024-03-23Rangoni Of Florence NEGOTIATION19Asiya Javayant
1010Munro Q SergiAustralia2024-04-08Commercial Press NEW50Onyama Limba
1011Mujtaba C BriddickRussia2024-04-15Morlong Associates RENEWAL88Anna Fali
1012Morrow H PoquetteArgentina2024-04-13Rousseaux, Michael Esq NEW62Xuxue Feng
1013Emily J MaletGermany2024-04-18Feiner Bros PROPOSAL73Asiya Javayant
1014David C WaycottItaly2024-04-13Chapman, Ross E Esq QUALIFIED54Elwin Sharvill
1015James M InouyeSpain2024-04-19Chemel, James L Cpa NEW77Bernardo Dominic
1016David H AmigonGermany2024-04-05Rousseaux, Michael Esq UNQUALIFIED24Elwin Sharvill
1017Munro S DoeGermany2024-04-01King, Christopher A Esq NEW47Anna Fali
1018Aruna I WaycottIndia2024-04-01Rangoni Of Florence PROPOSAL10Onyama Limba
1019Claire C VenereAustralia2024-04-13Chemel, James L Cpa PROPOSAL54Bernardo Dominic
1020Arvin D BowleyAustralia2024-03-30Morlong Associates RENEWAL4Elwin Sharvill
1021Smith O KuskoFrance2024-04-06Dorl, James J Esq RENEWAL18Xuxue Feng
1022Aika J MaletRussia2024-04-08Rousseaux, Michael Esq RENEWAL1Xuxue Feng
1023Jones L CaldareraIndia2024-04-11Feltz Printing Service UNQUALIFIED40Ivan Magalhaes
1024Mayumi E VenereAustralia2024-04-05King, Christopher A Esq QUALIFIED83Anna Fali
1025James V PerinCanada2024-04-08Chemel, James L Cpa UNQUALIFIED13Onyama Limba
1026Munro A DoeJapan2024-04-10Chemel, James L Cpa NEGOTIATION14Anna Fali
1027James C RoysterJapan2024-04-11Rangoni Of Florence QUALIFIED64Ivan Magalhaes
1028Misaki S InouyeFrance2024-04-11Commercial Press UNQUALIFIED7Onyama Limba
1029Aruna Q RoysterGermany2024-03-29Feiner Bros NEGOTIATION23Onyama Limba
1030Sinclair C BriddickBrazil2024-03-30Feiner Bros NEW84Stephen Shaw
1031Ivar I CaudyUnited Kingdom2024-03-27Chanay, Jeffrey A Esq NEGOTIATION97Bernardo Dominic
1032Julie U ChuiCanada2024-04-03Chapman, Ross E Esq NEW75Asiya Javayant
1033Misaki C SergiFrance2024-03-22Rousseaux, Michael Esq RENEWAL41Elwin Sharvill
1034Cody U SlusarskiSpain2024-03-27Buckley Miller Wright NEGOTIATION31Amy Elsner
1035Cody V CaudyFrance2024-04-12Truhlar And Truhlar Attys UNQUALIFIED91Amy Elsner
1036Ricardo X StensethRussia2024-04-07King, Christopher A Esq RENEWAL54Asiya Javayant
1037Johnson J ButtItaly2024-04-06Dorl, James J Esq NEW67Xuxue Feng
1038James L CaudyUnited Kingdom2024-04-06King, Christopher A Esq UNQUALIFIED37Asiya Javayant
1039Darci Q FlosiJapan2024-03-27Morlong Associates RENEWAL72Stephen Shaw
1040Aika P ButtGermany2024-03-31Chanay, Jeffrey A Esq PROPOSAL60Elwin Sharvill
1041Ivar F WhobreyFrance2024-04-03Buckley Miller Wright PROPOSAL75Asiya Javayant
1042Aruna P IturbideBrazil2024-04-02Rousseaux, Michael Esq QUALIFIED83Onyama Limba
1043Leja V BologniaItaly2024-04-14Chapman, Ross E Esq UNQUALIFIED44Elwin Sharvill
1044Chavez V FerenczRussia2024-03-26Printing Dimensions NEGOTIATION68Elwin Sharvill
1045Izzy H MorascaItaly2024-03-21Chapman, Ross E Esq PROPOSAL75Xuxue Feng
1046Johnson I IturbideBrazil2024-04-04Dorl, James J Esq PROPOSAL67Ivan Magalhaes
1047Mujtaba U SlusarskiAustralia2024-04-08King, Christopher A Esq QUALIFIED99Anna Fali
1048Murillo P DarakjyIndia2024-04-02Buckley Miller Wright NEW17Ivan Magalhaes
1049Munro Q AlbaresItaly2024-04-11Buckley Miller Wright PROPOSAL87Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja F GillianJapanBernardo Dominic NEW
James R SaylorsJapanElwin Sharvill NEGOTIATION
Kaitlin J DarakjyFranceAnna Fali NEW
Deepesh J FollerGermanyBernardo Dominic QUALIFIED
Ashley Z PoquetteUnited KingdomIoni Bowcher UNQUALIFIED
Isabel G GlickUnited KingdomOnyama Limba NEW
Mujtaba R GarufiAustraliaOnyama Limba RENEWAL
Isabel S CaldareraJapanXuxue Feng NEGOTIATION
Misaki R RutaArgentinaAmy Elsner NEW
Jennifer H VenereIndiaAnna Fali UNQUALIFIED
Leon S StensethCanadaAnna Fali NEGOTIATION
Sinclair C AmigonFranceStephen Shaw NEW
Adams C OldroydRussiaElwin Sharvill PROPOSAL
Jennifer W CaudyBrazilAnna Fali NEGOTIATION
Francesco R NickaFranceIoni Bowcher PROPOSAL
Nicolas V AmigonIndiaIvan Magalhaes RENEWAL
Kaitlin J NestleGermanyAmy Elsner RENEWAL
Jefferson G AlbaresArgentinaStephen Shaw UNQUALIFIED
Clifford V GillianItalyStephen Shaw PROPOSAL
Darci S PaprockiIndiaAsiya Javayant NEGOTIATION
Chavez V SlusarskiUnited KingdomIoni Bowcher NEW
Greenwood C OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Maria H VocelkaItalyElwin Sharvill NEW
Julie Z FigeroaArgentinaStephen Shaw UNQUALIFIED
Tony B FerenczUnited KingdomStephen Shaw PROPOSAL
Francesco N StensethAustraliaAnna Fali QUALIFIED
Jennifer A KuskoArgentinaElwin Sharvill NEW
Stacey G FlosiRussiaAmy Elsner UNQUALIFIED
Munro P ShinkoSpainAnna Fali NEGOTIATION
Morrow E DarakjyGermanyOnyama Limba PROPOSAL
Emily L WhobreyGermanyAsiya Javayant PROPOSAL
Kaitlin D RoysterCanadaElwin Sharvill PROPOSAL
Kadeem N KuskoCanadaBernardo Dominic NEGOTIATION
Ricardo Q CaudyItalyIoni Bowcher PROPOSAL
Jones E StockhamIndiaElwin Sharvill QUALIFIED
Maria X ButtCanadaAmy Elsner UNQUALIFIED
Silvio V FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Aika C RutaJapanAmy Elsner NEGOTIATION
Kaitlin V VocelkaIndiaXuxue Feng UNQUALIFIED
Stacey G WaycottRussiaIoni Bowcher UNQUALIFIED
James J MaletGermanyElwin Sharvill RENEWAL
Greenwood X VenereJapanXuxue Feng NEGOTIATION
Wickens Q SlusarskiRussiaOnyama Limba NEGOTIATION
Kadeem Q MaletSpainOnyama Limba QUALIFIED
Mujtaba N DarakjyUnited KingdomXuxue Feng NEW
Claire N MacleadUnited KingdomAmy Elsner NEGOTIATION
Greenwood L AlbaresItalyElwin Sharvill QUALIFIED
Cody U FerenczGermanyIoni Bowcher QUALIFIED
Salvatore C GlickSpainElwin Sharvill RENEWAL
Morrow L RimAustraliaAmy Elsner NEGOTIATION
Frozen Columns
Name
Ashley F Iturbide
Francesco D Flosi
Leja F Maclead
Clifford J Whobrey
David Z Nicka
Jones M Stenseth
Aika N Doe
Arvin Z Inouye
Aditya T Figeroa
David Y Doe
Tony M Doe
Aika N Oldroyd
Sinclair Q Bolognia
Clifford N Foller
Johnson D Flosi
Arvin X Caudy
Salvatore V Dilliard
Ashley Z Schemmer
Julie T Shinko
Kadeem M Inouye
Misaki W Caldarera
Juan H Tollner
Leja O Garufi
Chavez J Waycott
Silvio W Gillian
Faith W Briddick
Johnson Z Ferencz
Stacey E Glick
Aditya D Caldarera
Tony T Darakjy
Misaki U Gillian
Silvio H Venere
Antonio Y Kolmetz
Claire L Gillian
Jennifer U Stenseth
Jefferson U Shinko
Aika H Ruta
Isabel X Amigon
Cody D Iturbide
Stacey B Nicka
Silvio Z Caldarera
Adams T Schemmer
Emily B Garufi
James Q Shinko
Rodrigues U Malet
Stacey V Gaucho
Nicolas P Slusarski
Murillo L Bolognia
Nicolas H Tollner
Adams C Ferencz
IdCountryDate
1000Canada2024-04-01
1001Germany2024-03-22
1002India2024-04-19
1003Spain2024-04-14
1004Argentina2024-03-27
1005United Kingdom2024-04-07
1006Japan2024-04-09
1007India2024-04-12
1008Italy2024-03-26
1009United Kingdom2024-03-23
1010United Kingdom2024-03-28
1011France2024-04-19
1012Brazil2024-04-14
1013Germany2024-04-19
1014Spain2024-03-22
1015India2024-04-08
1016Canada2024-04-04
1017Argentina2024-04-08
1018Australia2024-03-24
1019Japan2024-04-06
1020United Kingdom2024-04-16
1021Italy2024-03-26
1022Australia2024-04-05
1023Australia2024-04-11
1024France2024-04-05
1025United Kingdom2024-04-17
1026Germany2024-04-01
1027Australia2024-04-08
1028India2024-04-06
1029Australia2024-03-28
1030Brazil2024-04-17
1031Brazil2024-04-08
1032Italy2024-04-16
1033France2024-04-11
1034Australia2024-04-15
1035Germany2024-04-09
1036Japan2024-04-19
1037Spain2024-04-09
1038Russia2024-04-08
1039Russia2024-04-02
1040France2024-04-17
1041Italy2024-04-08
1042Russia2024-04-15
1043Spain2024-04-15
1044Japan2024-03-29
1045Argentina2024-04-01
1046Australia2024-04-01
1047Spain2024-03-23
1048Japan2024-04-02
1049United Kingdom2024-03-31

On-Demand Data

NameIdCountryDate
Maria P Schemmer1000Russia2024-03-23
Leja E Bolognia1001Brazil2024-03-25
Kadeem M Caudy1002Russia2024-03-24
Aruna J Malet1003Germany2024-04-16
Stacey H Ruta1004United Kingdom2024-04-04
Arvin Q Nestle1005Japan2024-04-19
James W Darakjy1006United Kingdom2024-03-25
Smith B Schemmer1007Argentina2024-04-05
Antonio Z Caldarera1008United Kingdom2024-03-23
Aika E Saylors1009Russia2024-04-03
Deepesh P Amigon1010France2024-04-06
Leon T Shinko1011India2024-04-09
Izzy T Campain1012Italy2024-04-04
Ivar C Glick1013Japan2024-03-21
Morrow F Caldarera1014Italy2024-03-30
Ashley W Whobrey1015Brazil2024-04-02
Juan F Figeroa1016Argentina2024-04-10
Ashley J Kolmetz1017India2024-03-29
Smith G Malet1018Australia2024-04-12
Aika H Rulapaugh1019Japan2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel Z WhobreyFranceAnna Fali RENEWAL
Isabel B InouyeItalyBernardo Dominic NEW
Cody W MaletSpainAnna Fali RENEWAL
Jennifer J CampainAustraliaIvan Magalhaes NEW
Smith J SlusarskiItalyIvan Magalhaes PROPOSAL
Smith W AmigonCanadaStephen Shaw RENEWAL
David A PerinRussiaBernardo Dominic UNQUALIFIED
Antonio W OldroydSpainIvan Magalhaes NEGOTIATION
Aika H FlosiRussiaStephen Shaw PROPOSAL
Claire F MorascaFranceElwin Sharvill NEGOTIATION
Chavez X AlbaresIndiaXuxue Feng RENEWAL
Jefferson S CampainItalyIvan Magalhaes RENEWAL
Greenwood D SlusarskiAustraliaBernardo Dominic NEGOTIATION
Mayumi A RulapaughRussiaElwin Sharvill RENEWAL
David P WhobreyArgentinaIvan Magalhaes RENEWAL
Ashley U RutaCanadaBernardo Dominic PROPOSAL
Jones H WhobreyUnited KingdomIoni Bowcher QUALIFIED
Greenwood G PerinFranceAnna Fali UNQUALIFIED
Costa B SaylorsIndiaIoni Bowcher UNQUALIFIED
Silvio U CaudyItalyAnna Fali NEW
Jennifer K RimArgentinaXuxue Feng NEGOTIATION
Faith Y InouyeFranceAsiya Javayant NEGOTIATION
Morrow I RoysterGermanyElwin Sharvill QUALIFIED
Octavia Z WaycottUnited KingdomAmy Elsner PROPOSAL
Morrow R GarufiBrazilAnna Fali NEW
Smith Z SergiRussiaAmy Elsner PROPOSAL
Adams C StensethAustraliaAsiya Javayant UNQUALIFIED
Aditya P FlosiSpainElwin Sharvill UNQUALIFIED
Greenwood D OstroskyBrazilIoni Bowcher NEW
Rodrigues H RutaGermanyAnna Fali PROPOSAL
Smith J InouyeJapanXuxue Feng NEW
Emily N MarrierArgentinaElwin Sharvill PROPOSAL
Aditya D TollnerUnited KingdomAmy Elsner RENEWAL
James Y IturbideFranceIvan Magalhaes NEW
Rodrigues B FlosiArgentinaAmy Elsner NEGOTIATION
Leja R BologniaArgentinaAsiya Javayant NEW
Francesco Z BriddickArgentinaElwin Sharvill QUALIFIED
Ricardo T ChuiJapanAnna Fali PROPOSAL
Julie Y SlusarskiRussiaOnyama Limba PROPOSAL
Misaki V CaldareraIndiaAmy Elsner 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>