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
Leon N PerinUnited KingdomAsiya Javayant NEW
Clifford C MarrierCanadaIoni Bowcher PROPOSAL
Octavia C WhobreyIndiaAnna Fali UNQUALIFIED
Ivar A StensethArgentinaOnyama Limba NEGOTIATION
Ricardo C VenereGermanyStephen Shaw PROPOSAL
David V FollerRussiaOnyama Limba PROPOSAL
Jeanfrancois B TollnerFranceElwin Sharvill NEW
Greenwood B RimFranceOnyama Limba NEW
Isabel W FerenczBrazilAsiya Javayant NEGOTIATION
Alejandro Q MacleadAustraliaAmy Elsner NEW
Aruna C ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Jennifer E MaletUnited KingdomElwin Sharvill NEW
Silvio C VocelkaItalyXuxue Feng UNQUALIFIED
Jefferson B VocelkaArgentinaXuxue Feng RENEWAL
Aditya X InouyeItalyAnna Fali QUALIFIED
Alejandro S StensethAustraliaBernardo Dominic RENEWAL
Kaitlin D MacleadIndiaAsiya Javayant NEW
Leja Q ButtBrazilOnyama Limba PROPOSAL
Mayumi C BowleyCanadaAnna Fali QUALIFIED
Francesco O IturbideIndiaAsiya Javayant UNQUALIFIED
Jefferson H MacleadCanadaElwin Sharvill RENEWAL
Munro S StockhamCanadaAmy Elsner RENEWAL
Costa P AlbaresIndiaStephen Shaw NEW
Aditya H GillianFranceIoni Bowcher RENEWAL
Adams N IturbideItalyAmy Elsner NEW
Faith C StensethGermanyBernardo Dominic NEW
Kaitlin J FerenczGermanyOnyama Limba UNQUALIFIED
Murillo Q FollerRussiaAnna Fali UNQUALIFIED
Isabel X TollnerAustraliaAsiya Javayant NEW
Silvio B RimItalyXuxue Feng PROPOSAL
Jeanfrancois I OstroskyJapanElwin Sharvill RENEWAL
Costa N WhobreyBrazilIvan Magalhaes QUALIFIED
Juan C WaycottAustraliaElwin Sharvill QUALIFIED
Octavia U VenereCanadaIoni Bowcher NEGOTIATION
Ivar V InouyeArgentinaAmy Elsner QUALIFIED
Aruna K SchemmerCanadaOnyama Limba UNQUALIFIED
Maria V BologniaAustraliaXuxue Feng NEGOTIATION
Aditya V NickaRussiaOnyama Limba PROPOSAL
Misaki L BowleyUnited KingdomIvan Magalhaes UNQUALIFIED
Cody G MaletRussiaAnna Fali RENEWAL
Ashley X AlbaresSpainXuxue Feng UNQUALIFIED
Adams C GlickIndiaStephen Shaw NEW
Izzy M WieserArgentinaOnyama Limba RENEWAL
Costa J BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro W GlickAustraliaIoni Bowcher RENEWAL
Mayumi T OstroskyArgentinaAmy Elsner RENEWAL
Chavez C ButtFranceBernardo Dominic UNQUALIFIED
Aditya C StockhamItalyIvan Magalhaes UNQUALIFIED
Murillo G AlbaresRussiaElwin Sharvill NEGOTIATION
Jeanfrancois J InouyeAustraliaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues I RoysterArgentinaAmy Elsner QUALIFIED
Rodrigues D FollerBrazilElwin Sharvill QUALIFIED
Leon S IturbideIndiaOnyama Limba QUALIFIED
Claire E GlickGermanyOnyama Limba NEGOTIATION
Stacey Q WieserCanadaStephen Shaw QUALIFIED
Aika K OstroskyBrazilOnyama Limba RENEWAL
Stacey Q VocelkaArgentinaAsiya Javayant NEW
Jones A DilliardIndiaStephen Shaw PROPOSAL
Jones S DilliardSpainBernardo Dominic NEW
Julie P DilliardFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood W TollnerUnited Kingdom2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED19Bernardo Dominic
1001Adams M VocelkaItaly2024-04-22Buckley Miller Wright RENEWAL55Onyama Limba
1002Misaki X VenereArgentina2024-04-19Dorl, James J Esq UNQUALIFIED3Anna Fali
1003Kaitlin M RimAustralia2024-04-03Feltz Printing Service UNQUALIFIED27Onyama Limba
1004Morrow G CaldareraArgentina2024-04-28Truhlar And Truhlar Attys PROPOSAL37Ioni Bowcher
1005Ashley M FlosiRussia2024-04-11Printing Dimensions NEW89Ivan Magalhaes
1006Kaitlin X IturbideUnited Kingdom2024-04-07Morlong Associates QUALIFIED98Elwin Sharvill
1007Julie R SlusarskiItaly2024-04-07Chanay, Jeffrey A Esq UNQUALIFIED14Asiya Javayant
1008Clifford S BowleyFrance2024-04-04King, Christopher A Esq NEGOTIATION6Onyama Limba
1009Rodrigues J MacleadFrance2024-04-28Benton, John B Jr PROPOSAL49Elwin Sharvill
1010Alejandro P WieserBrazil2024-04-28Buckley Miller Wright NEW89Bernardo Dominic
1011Aruna U RoysterSpain2024-04-23Rangoni Of Florence QUALIFIED9Anna Fali
1012David F OstroskyCanada2024-04-25Benton, John B Jr UNQUALIFIED83Bernardo Dominic
1013Darci C StockhamAustralia2024-04-18King, Christopher A Esq PROPOSAL28Anna Fali
1014Jennifer E GauchoUnited Kingdom2024-04-06Feiner Bros PROPOSAL70Asiya Javayant
1015Juan Z NestleFrance2024-04-26Printing Dimensions PROPOSAL80Bernardo Dominic
1016Maria Q FollerGermany2024-04-05Feiner Bros QUALIFIED57Ivan Magalhaes
1017Misaki B ChuiArgentina2024-04-30Buckley Miller Wright NEW9Onyama Limba
1018Smith C AmigonFrance2024-04-18Buckley Miller Wright QUALIFIED97Onyama Limba
1019Tony A NestleItaly2024-04-05Benton, John B Jr RENEWAL70Anna Fali
1020Kaitlin O MaletJapan2024-04-24Commercial Press UNQUALIFIED65Amy Elsner
1021Murillo N PaprockiBrazil2024-04-26Benton, John B Jr NEGOTIATION14Xuxue Feng
1022Jones D FlosiRussia2024-04-06Chapman, Ross E Esq UNQUALIFIED96Anna Fali
1023Julie U VenereItaly2024-04-09Feiner Bros QUALIFIED75Bernardo Dominic
1024Murillo L FollerCanada2024-04-01Buckley Miller Wright UNQUALIFIED52Stephen Shaw
1025Leja O RutaItaly2024-04-04Feiner Bros RENEWAL15Ioni Bowcher
1026Johnson R ShinkoGermany2024-04-13Chemel, James L Cpa RENEWAL71Onyama Limba
1027Jeanfrancois D GauchoAustralia2024-04-17Dorl, James J Esq NEW82Stephen Shaw
1028Darci R PerinBrazil2024-04-29Chapman, Ross E Esq PROPOSAL70Amy Elsner
1029Tony K PerinCanada2024-04-23King, Christopher A Esq PROPOSAL77Ivan Magalhaes
1030Leja Y BologniaIndia2024-04-03Chanay, Jeffrey A Esq QUALIFIED86Ivan Magalhaes
1031Stacey V KolmetzJapan2024-04-01Commercial Press RENEWAL34Elwin Sharvill
1032Jones O FerenczFrance2024-04-28Chemel, James L Cpa UNQUALIFIED78Stephen Shaw
1033Cody O RimJapan2024-04-01Morlong Associates NEGOTIATION16Amy Elsner
1034Silvio J MacleadJapan2024-04-18Chemel, James L Cpa NEGOTIATION87Anna Fali
1035Chavez K GlickJapan2024-04-17Chanay, Jeffrey A Esq NEW21Stephen Shaw
1036Salvatore Y KolmetzArgentina2024-04-26Dorl, James J Esq PROPOSAL26Asiya Javayant
1037Claire U MorascaGermany2024-04-14Feltz Printing Service RENEWAL98Amy Elsner
1038Rodrigues B InouyeItaly2024-04-25Chemel, James L Cpa UNQUALIFIED74Ioni Bowcher
1039Morrow B BowleyBrazil2024-04-11Chapman, Ross E Esq RENEWAL0Ioni Bowcher
1040Claire J ButtRussia2024-04-03Truhlar And Truhlar Attys NEGOTIATION4Bernardo Dominic
1041Emily S FigeroaItaly2024-04-19Dorl, James J Esq QUALIFIED57Ivan Magalhaes
1042Johnson F RutaCanada2024-04-22Chemel, James L Cpa RENEWAL38Onyama Limba
1043Silvio N SlusarskiSpain2024-04-17Chanay, Jeffrey A Esq RENEWAL93Bernardo Dominic
1044Clifford U DarakjyAustralia2024-04-11Feiner Bros RENEWAL30Ioni Bowcher
1045Ashley Q InouyeJapan2024-04-11Truhlar And Truhlar Attys UNQUALIFIED18Ivan Magalhaes
1046Mayumi K CaudyAustralia2024-04-18Feiner Bros PROPOSAL3Xuxue Feng
1047Ashley Y OstroskyGermany2024-04-09Morlong Associates UNQUALIFIED12Asiya Javayant
1048Silvio U SaylorsCanada2024-04-10Chapman, Ross E Esq QUALIFIED22Onyama Limba
1049Aditya J VocelkaJapan2024-04-19Commercial Press RENEWAL19Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin T BowleyArgentinaStephen Shaw QUALIFIED
Isabel C AlbaresGermanyAmy Elsner NEGOTIATION
Darci R BriddickAustraliaElwin Sharvill NEGOTIATION
Murillo U GarufiFranceIoni Bowcher NEW
Wickens K RulapaughArgentinaIoni Bowcher NEW
James W KolmetzFranceOnyama Limba UNQUALIFIED
David C MaletIndiaAsiya Javayant NEW
Alejandro G CaldareraBrazilAmy Elsner NEW
Leon Z PerinGermanyStephen Shaw NEW
Arvin S NestleAustraliaBernardo Dominic NEGOTIATION
Jones A PoquetteItalyAsiya Javayant QUALIFIED
Mayumi I FollerCanadaElwin Sharvill NEW
Alejandro N CampainJapanAmy Elsner NEGOTIATION
Munro G DilliardCanadaStephen Shaw NEW
Salvatore A VenereFranceIoni Bowcher NEW
Rodrigues E SlusarskiBrazilAnna Fali PROPOSAL
Chavez W VocelkaAustraliaIvan Magalhaes NEW
Aika Z DilliardArgentinaBernardo Dominic NEW
Claire U InouyeItalyAmy Elsner NEW
Ivar K AlbaresFranceIvan Magalhaes UNQUALIFIED
Jennifer B BowleyJapanElwin Sharvill PROPOSAL
Ashley P TollnerSpainAsiya Javayant RENEWAL
Wickens T OldroydSpainXuxue Feng PROPOSAL
Juan V BriddickBrazilElwin Sharvill RENEWAL
Aditya N BowleyIndiaElwin Sharvill QUALIFIED
Jeanfrancois U AlbaresFranceStephen Shaw QUALIFIED
Ivar N FlosiIndiaBernardo Dominic PROPOSAL
Jeanfrancois F FollerBrazilIvan Magalhaes PROPOSAL
Tony K DilliardCanadaAmy Elsner NEGOTIATION
Tony R FollerSpainStephen Shaw RENEWAL
Morrow U FlosiArgentinaAmy Elsner PROPOSAL
Izzy G FigeroaArgentinaOnyama Limba PROPOSAL
Leon X GlickBrazilIoni Bowcher PROPOSAL
Emily Z WhobreyCanadaIoni Bowcher QUALIFIED
Octavia I StockhamSpainElwin Sharvill QUALIFIED
Aika E DilliardUnited KingdomAnna Fali NEW
Leon M PerinAustraliaXuxue Feng PROPOSAL
Aika Y GarufiGermanyAsiya Javayant RENEWAL
Francesco L StockhamCanadaElwin Sharvill UNQUALIFIED
Sinclair U DilliardJapanXuxue Feng PROPOSAL
Emily Z WaycottBrazilBernardo Dominic QUALIFIED
Greenwood P ButtItalyAmy Elsner NEW
Juan K PerinGermanyAmy Elsner NEW
Adams B WieserFranceXuxue Feng NEW
Salvatore H ChuiJapanOnyama Limba UNQUALIFIED
Sinclair C GlickIndiaXuxue Feng NEW
Clifford Q FollerIndiaElwin Sharvill NEW
Silvio O StensethJapanOnyama Limba UNQUALIFIED
Costa L DoeIndiaStephen Shaw QUALIFIED
Mujtaba W WhobreyUnited KingdomAnna Fali PROPOSAL
Frozen Columns
Name
Costa C Paprocki
Mujtaba J Campain
Juan O Flosi
Murillo V Garufi
Jefferson Q Figeroa
Maisha T Amigon
Clifford F Oldroyd
James S Maclead
Adams A Malet
Maisha N Malet
Isabel N Darakjy
Tony T Flosi
Kadeem X Wieser
Cody N Ruta
Chavez V Maclead
Faith O Figeroa
Mujtaba W Poquette
Sinclair L Kolmetz
Antonio A Poquette
Rodrigues G Iturbide
Arvin R Nestle
Jefferson A Rim
Silvio Y Garufi
Kadeem D Waycott
Juan V Inouye
Salvatore R Ostrosky
Ricardo S Nicka
Faith N Paprocki
Jefferson V Malet
Aditya W Caudy
Mujtaba B Inouye
Misaki Y Glick
Jefferson G Saylors
Claire U Malet
Sinclair M Caldarera
Wickens F Gillian
Emily N Darakjy
Nicolas G Caudy
Nicolas I Waycott
Smith L Figeroa
Juan G Flosi
Smith V Stenseth
Deepesh S Oldroyd
Jennifer C Ferencz
Ricardo I Inouye
Emily Y Poquette
Claire G Stenseth
Mujtaba O Stockham
Deepesh D Wieser
Jones T Flosi
IdCountryDate
1000Italy2024-04-01
1001Italy2024-04-15
1002Germany2024-04-21
1003Japan2024-04-01
1004Japan2024-04-04
1005Japan2024-04-15
1006France2024-04-01
1007Brazil2024-04-12
1008Italy2024-04-17
1009United Kingdom2024-04-25
1010Germany2024-04-04
1011Argentina2024-04-09
1012France2024-04-03
1013Russia2024-04-02
1014Spain2024-04-04
1015India2024-04-21
1016Russia2024-04-11
1017United Kingdom2024-04-21
1018Germany2024-04-01
1019Canada2024-04-10
1020Italy2024-04-16
1021France2024-04-22
1022United Kingdom2024-04-14
1023Australia2024-04-25
1024Argentina2024-04-26
1025Canada2024-04-24
1026Spain2024-04-01
1027Argentina2024-04-12
1028Brazil2024-04-14
1029Spain2024-04-08
1030France2024-04-25
1031Germany2024-04-04
1032India2024-04-15
1033Canada2024-04-22
1034Germany2024-04-16
1035Russia2024-04-20
1036India2024-04-01
1037Germany2024-04-03
1038Spain2024-04-02
1039Australia2024-04-22
1040Russia2024-04-17
1041Russia2024-04-19
1042Russia2024-04-27
1043India2024-04-15
1044United Kingdom2024-04-27
1045Argentina2024-04-25
1046Argentina2024-04-08
1047Germany2024-04-15
1048Russia2024-04-25
1049United Kingdom2024-04-15

On-Demand Data

NameIdCountryDate
Jeanfrancois N Royster1000Australia2024-04-16
Juan D Bowley1001Spain2024-04-17
James J Campain1002Russia2024-04-08
Chavez X Maclead1003France2024-04-22
Isabel P Figeroa1004France2024-04-28
Silvio K Nestle1005Italy2024-04-25
Emily N Caldarera1006Germany2024-04-07
Jennifer M Gaucho1007Spain2024-04-22
Silvio R Marrier1008United Kingdom2024-04-22
Munro L Bolognia1009Japan2024-04-06
Murillo T Butt1010Canada2024-04-04
Maria M Rim1011Argentina2024-04-17
Julie A Tollner1012India2024-04-10
Tony E Inouye1013Brazil2024-04-08
Aruna A Vocelka1014Argentina2024-04-07
Ricardo S Oldroyd1015Australia2024-04-10
Stacey W Venere1016Italy2024-04-28
Silvio W Chui1017Brazil2024-04-27
Mayumi Z Paprocki1018Brazil2024-04-04
Munro M Whobrey1019Brazil2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily A MorascaFranceElwin Sharvill NEW
Kaitlin J InouyeBrazilAmy Elsner RENEWAL
Murillo E RutaAustraliaAsiya Javayant NEW
Leon L NestleUnited KingdomIvan Magalhaes RENEWAL
Alejandro M DilliardUnited KingdomBernardo Dominic QUALIFIED
Juan K NickaUnited KingdomAnna Fali PROPOSAL
Jeanfrancois N FerenczJapanIoni Bowcher NEGOTIATION
Jeanfrancois J PoquetteCanadaAsiya Javayant RENEWAL
Cody P VenereArgentinaIvan Magalhaes NEGOTIATION
Emily M GlickIndiaAnna Fali UNQUALIFIED
Mayumi J MorascaArgentinaStephen Shaw QUALIFIED
Clifford M PaprockiSpainAsiya Javayant RENEWAL
Deepesh H ButtItalyOnyama Limba PROPOSAL
Johnson Y ShinkoGermanyAnna Fali UNQUALIFIED
Rodrigues P DarakjyFranceXuxue Feng NEGOTIATION
Costa P ChuiItalyBernardo Dominic QUALIFIED
Silvio V SaylorsItalyOnyama Limba QUALIFIED
Misaki Q WieserBrazilIoni Bowcher NEGOTIATION
Munro X WaycottItalyAnna Fali UNQUALIFIED
Leon W WhobreyAustraliaElwin Sharvill UNQUALIFIED
Juan J OldroydFranceAmy Elsner QUALIFIED
Emily T WieserIndiaBernardo Dominic PROPOSAL
Nicolas I RulapaughFranceAsiya Javayant UNQUALIFIED
Rodrigues R SchemmerSpainElwin Sharvill UNQUALIFIED
Tony V MaletArgentinaXuxue Feng QUALIFIED
Johnson M FollerJapanBernardo Dominic UNQUALIFIED
Murillo O GillianJapanAsiya Javayant RENEWAL
Adams L WhobreyArgentinaAsiya Javayant RENEWAL
Kadeem J GillianArgentinaAsiya Javayant NEGOTIATION
Leon D KolmetzAustraliaAnna Fali RENEWAL
Adams C NickaItalyAmy Elsner NEW
Deepesh M WieserGermanyIoni Bowcher UNQUALIFIED
Izzy F FerenczRussiaAnna Fali UNQUALIFIED
Mayumi S CaudyBrazilAnna Fali QUALIFIED
Wickens O StockhamFranceAnna Fali QUALIFIED
Faith Q SergiItalyBernardo Dominic NEW
Ricardo A RutaIndiaAsiya Javayant NEW
Wickens Y MacleadRussiaAnna Fali QUALIFIED
David W NickaJapanStephen Shaw NEW
Antonio M GillianCanadaAnna Fali RENEWAL

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