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
Leja W SaylorsFranceAmy Elsner UNQUALIFIED
James I MaletAustraliaAmy Elsner UNQUALIFIED
Sinclair O SergiSpainOnyama Limba UNQUALIFIED
Sinclair R VenereCanadaElwin Sharvill UNQUALIFIED
Alejandro Y PoquetteFranceXuxue Feng NEW
Aruna E PoquetteBrazilStephen Shaw UNQUALIFIED
Munro D AmigonAustraliaAnna Fali RENEWAL
Sinclair I GillianGermanyIoni Bowcher RENEWAL
Deepesh O BowleyJapanAmy Elsner QUALIFIED
Jeanfrancois N StensethBrazilStephen Shaw NEW
Jefferson F DoeAustraliaOnyama Limba UNQUALIFIED
Cody H BologniaRussiaOnyama Limba PROPOSAL
Aika H GarufiAustraliaBernardo Dominic RENEWAL
Jeanfrancois N WaycottIndiaAsiya Javayant PROPOSAL
Antonio G DarakjyUnited KingdomAmy Elsner PROPOSAL
Morrow T ShinkoJapanAnna Fali NEGOTIATION
Kaitlin O CaldareraItalyAsiya Javayant UNQUALIFIED
Cody Z FollerAustraliaOnyama Limba NEGOTIATION
Arvin Q SchemmerArgentinaElwin Sharvill PROPOSAL
Salvatore N FerenczJapanXuxue Feng NEW
Tony E ChuiCanadaBernardo Dominic UNQUALIFIED
Adams P WieserIndiaElwin Sharvill NEGOTIATION
Silvio L StensethFranceStephen Shaw RENEWAL
Arvin F VenereCanadaElwin Sharvill NEGOTIATION
Deepesh P MaletRussiaIvan Magalhaes QUALIFIED
Darci F VenereJapanBernardo Dominic UNQUALIFIED
Nicolas X SlusarskiArgentinaAnna Fali RENEWAL
Silvio W GlickRussiaXuxue Feng RENEWAL
Murillo Q BriddickArgentinaOnyama Limba QUALIFIED
Leja E RimUnited KingdomIvan Magalhaes UNQUALIFIED
Costa J BriddickItalyAsiya Javayant QUALIFIED
Claire D RimRussiaXuxue Feng NEW
Jennifer L StensethJapanIoni Bowcher QUALIFIED
Murillo F RulapaughCanadaStephen Shaw NEGOTIATION
Stacey C MarrierGermanyOnyama Limba QUALIFIED
Kadeem G RoysterBrazilXuxue Feng QUALIFIED
Aditya F SlusarskiArgentinaXuxue Feng PROPOSAL
Stacey B CaldareraItalyXuxue Feng QUALIFIED
Aruna A DilliardAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois U VenereGermanyBernardo Dominic QUALIFIED
Faith Y ShinkoAustraliaAnna Fali QUALIFIED
Nicolas T BriddickItalyAnna Fali NEW
Izzy D OldroydRussiaOnyama Limba UNQUALIFIED
Rodrigues E StensethGermanyXuxue Feng UNQUALIFIED
David K SchemmerAustraliaIvan Magalhaes QUALIFIED
David T VenereJapanStephen Shaw UNQUALIFIED
Stacey P KolmetzJapanAnna Fali NEW
Jefferson N RutaIndiaStephen Shaw NEGOTIATION
David D SergiItalyIvan Magalhaes UNQUALIFIED
Rodrigues M MaletSpainXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Johnson G ButtBrazilAnna Fali QUALIFIED
Octavia R ChuiItalyElwin Sharvill NEGOTIATION
David I IturbideAustraliaAnna Fali PROPOSAL
Ashley Y MorascaCanadaIoni Bowcher RENEWAL
Nicolas T ChuiUnited KingdomStephen Shaw RENEWAL
Wickens M PoquetteArgentinaAnna Fali NEW
Isabel H PaprockiIndiaStephen Shaw UNQUALIFIED
Chavez Y AmigonFranceAmy Elsner PROPOSAL
Darci W FerenczJapanAnna Fali PROPOSAL
Greenwood Q MaletFranceIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia W SchemmerGermany2024-05-06Printing Dimensions QUALIFIED46Amy Elsner
1001Mujtaba D ShinkoIndia2024-04-29Buckley Miller Wright QUALIFIED48Xuxue Feng
1002Cody M PoquetteUnited Kingdom2024-04-15Chanay, Jeffrey A Esq NEGOTIATION2Anna Fali
1003Mayumi M ShinkoArgentina2024-04-18Feiner Bros NEW1Elwin Sharvill
1004Jennifer M NickaFrance2024-04-28King, Christopher A Esq RENEWAL25Anna Fali
1005Isabel N WhobreySpain2024-05-02Rangoni Of Florence NEW69Xuxue Feng
1006Wickens X RulapaughRussia2024-04-23Rangoni Of Florence NEGOTIATION80Amy Elsner
1007Deepesh W KolmetzAustralia2024-04-18Commercial Press RENEWAL29Anna Fali
1008Sinclair G PaprockiItaly2024-04-15Chanay, Jeffrey A Esq NEGOTIATION11Ivan Magalhaes
1009Stacey K CaudyJapan2024-05-08Morlong Associates QUALIFIED93Ioni Bowcher
1010Izzy P NestleRussia2024-04-19Chemel, James L Cpa NEW79Ioni Bowcher
1011Claire R CaudyIndia2024-04-13Buckley Miller Wright UNQUALIFIED41Elwin Sharvill
1012Adams F ButtGermany2024-05-06Chemel, James L Cpa PROPOSAL72Amy Elsner
1013Alejandro L IturbideBrazil2024-05-09Printing Dimensions PROPOSAL43Ivan Magalhaes
1014James N BologniaBrazil2024-04-25Chemel, James L Cpa QUALIFIED86Asiya Javayant
1015Smith S ShinkoGermany2024-04-15Rangoni Of Florence PROPOSAL36Onyama Limba
1016Darci W DoeIndia2024-04-11Chanay, Jeffrey A Esq PROPOSAL7Anna Fali
1017Deepesh S MacleadBrazil2024-04-24Feltz Printing Service UNQUALIFIED78Anna Fali
1018Claire N GarufiGermany2024-05-10Chemel, James L Cpa RENEWAL23Elwin Sharvill
1019Adams L BriddickBrazil2024-04-23Truhlar And Truhlar Attys RENEWAL28Anna Fali
1020Sinclair D BriddickArgentina2024-04-16Buckley Miller Wright RENEWAL27Stephen Shaw
1021Misaki O FigeroaGermany2024-04-12Dorl, James J Esq NEGOTIATION83Anna Fali
1022Leon B ShinkoRussia2024-05-07Dorl, James J Esq UNQUALIFIED4Amy Elsner
1023Arvin C RulapaughCanada2024-04-22Feltz Printing Service PROPOSAL25Onyama Limba
1024David W ShinkoBrazil2024-04-25Rousseaux, Michael Esq RENEWAL92Onyama Limba
1025Clifford O PoquetteBrazil2024-05-09Benton, John B Jr NEGOTIATION71Amy Elsner
1026Isabel P PoquetteUnited Kingdom2024-05-02Commercial Press PROPOSAL55Xuxue Feng
1027Faith B RimAustralia2024-04-25Chapman, Ross E Esq UNQUALIFIED71Asiya Javayant
1028Munro E RimArgentina2024-04-25Rousseaux, Michael Esq NEW70Stephen Shaw
1029David S OldroydArgentina2024-05-02Printing Dimensions RENEWAL94Xuxue Feng
1030Murillo W OldroydUnited Kingdom2024-04-26Chemel, James L Cpa NEW63Asiya Javayant
1031Rodrigues Q IturbideIndia2024-05-10Feiner Bros QUALIFIED85Xuxue Feng
1032Greenwood R FollerGermany2024-05-02Rousseaux, Michael Esq NEGOTIATION88Onyama Limba
1033Isabel C GillianIndia2024-04-11Feltz Printing Service UNQUALIFIED88Asiya Javayant
1034Alejandro H CampainJapan2024-04-23Rangoni Of Florence RENEWAL61Amy Elsner
1035Tony L SergiArgentina2024-04-19Truhlar And Truhlar Attys NEGOTIATION58Elwin Sharvill
1036Johnson O MacleadJapan2024-04-26Chemel, James L Cpa QUALIFIED46Xuxue Feng
1037Morrow W MaletJapan2024-04-20King, Christopher A Esq PROPOSAL27Xuxue Feng
1038Chavez O InouyeFrance2024-05-03Rousseaux, Michael Esq NEW11Stephen Shaw
1039Rodrigues L ChuiUnited Kingdom2024-05-02Morlong Associates UNQUALIFIED23Bernardo Dominic
1040Ricardo N SchemmerIndia2024-04-11Buckley Miller Wright QUALIFIED87Bernardo Dominic
1041Maria I SergiGermany2024-04-18Buckley Miller Wright PROPOSAL52Amy Elsner
1042Chavez F BowleyItaly2024-04-23Feltz Printing Service PROPOSAL54Xuxue Feng
1043Ricardo K ButtItaly2024-04-30Rousseaux, Michael Esq NEW96Asiya Javayant
1044Leon N IturbideIndia2024-04-16King, Christopher A Esq RENEWAL15Bernardo Dominic
1045Rodrigues O FollerRussia2024-04-30Feltz Printing Service QUALIFIED26Asiya Javayant
1046Ricardo T VocelkaBrazil2024-04-23Truhlar And Truhlar Attys RENEWAL44Onyama Limba
1047Jefferson K FerenczItaly2024-05-09Chanay, Jeffrey A Esq QUALIFIED93Ivan Magalhaes
1048Adams R FigeroaArgentina2024-05-01Rangoni Of Florence RENEWAL51Stephen Shaw
1049Octavia A GauchoItaly2024-04-25Feiner Bros NEGOTIATION48Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Cody I SlusarskiFranceAsiya Javayant QUALIFIED
Ivar H RimItalyAsiya Javayant NEGOTIATION
Misaki I RimFranceElwin Sharvill NEGOTIATION
Faith N BologniaArgentinaAsiya Javayant PROPOSAL
Sinclair O GlickBrazilOnyama Limba QUALIFIED
Murillo U OldroydIndiaIoni Bowcher NEGOTIATION
Jones P GarufiUnited KingdomAnna Fali QUALIFIED
Silvio C BologniaJapanBernardo Dominic RENEWAL
Darci S BriddickGermanyXuxue Feng NEGOTIATION
Deepesh F RoysterJapanAsiya Javayant UNQUALIFIED
Tony C RutaFranceOnyama Limba PROPOSAL
Mayumi W SlusarskiUnited KingdomXuxue Feng RENEWAL
Emily N FlosiArgentinaStephen Shaw RENEWAL
Maisha T VenereArgentinaAmy Elsner PROPOSAL
Leon B MaletSpainAmy Elsner PROPOSAL
Munro Y DoeJapanStephen Shaw UNQUALIFIED
Claire Z GillianRussiaAsiya Javayant UNQUALIFIED
Maria J CaudyUnited KingdomIvan Magalhaes PROPOSAL
Misaki W NickaGermanyAmy Elsner NEGOTIATION
Kadeem M WhobreyCanadaAnna Fali NEW
Mayumi I GarufiJapanBernardo Dominic QUALIFIED
Jones U PaprockiUnited KingdomBernardo Dominic PROPOSAL
Rodrigues E ShinkoRussiaIoni Bowcher NEW
Sinclair K RimBrazilIoni Bowcher UNQUALIFIED
Faith Q ButtCanadaAsiya Javayant NEGOTIATION
Leja B OldroydRussiaElwin Sharvill PROPOSAL
Silvio J DoeCanadaAsiya Javayant QUALIFIED
Jones A GauchoFranceOnyama Limba NEGOTIATION
Jefferson Q NickaJapanOnyama Limba RENEWAL
Jones E StensethBrazilIvan Magalhaes PROPOSAL
Ricardo P DoeRussiaStephen Shaw NEW
Arvin B VenereAustraliaIoni Bowcher NEGOTIATION
David X VocelkaUnited KingdomAsiya Javayant NEW
Clifford C InouyeIndiaElwin Sharvill PROPOSAL
Clifford Y OldroydCanadaStephen Shaw PROPOSAL
Munro L BriddickUnited KingdomAnna Fali RENEWAL
Claire Y RutaArgentinaStephen Shaw UNQUALIFIED
Munro W ChuiAustraliaAnna Fali RENEWAL
Aruna S ButtJapanAmy Elsner NEGOTIATION
James V GauchoSpainAnna Fali NEGOTIATION
Jones C FerenczFranceAsiya Javayant NEGOTIATION
Kadeem Z KolmetzBrazilStephen Shaw UNQUALIFIED
Claire O KolmetzBrazilAmy Elsner QUALIFIED
Kadeem U RulapaughGermanyIvan Magalhaes RENEWAL
Arvin S WhobreyItalyIoni Bowcher UNQUALIFIED
Alejandro U NickaJapanAmy Elsner NEW
Maria Q SaylorsFranceAsiya Javayant PROPOSAL
Wickens E FollerIndiaIoni Bowcher UNQUALIFIED
Salvatore J ChuiGermanyElwin Sharvill NEW
Jefferson E SlusarskiItalyAsiya Javayant RENEWAL
Frozen Columns
Name
Ricardo G Bolognia
David B Albares
Izzy R Waycott
Adams T Figeroa
Aruna Z Ferencz
Mayumi W Morasca
Jones J Marrier
Greenwood W Inouye
James E Caldarera
Ricardo B Albares
Leja C Campain
Greenwood T Iturbide
Kaitlin H Butt
Nicolas M Albares
Julie Q Bowley
Rodrigues X Glick
Emily Q Morasca
James C Maclead
Faith G Waycott
Deepesh M Ostrosky
Emily F Stockham
Ricardo T Doe
Jones R Flosi
Costa G Chui
Maria E Garufi
Faith A Stenseth
Darci S Whobrey
Ricardo N Morasca
Octavia U Garufi
Jefferson B Paprocki
Johnson F Dilliard
Jeanfrancois Z Poquette
Clifford Y Bolognia
Leon N Stockham
Faith T Marrier
Ashley A Kolmetz
Costa S Iturbide
Mujtaba W Dilliard
Silvio F Rim
Claire F Amigon
Jennifer W Ostrosky
Murillo F Butt
Wickens Y Garufi
David O Campain
Ivar J Gaucho
David C Ferencz
Emily C Figeroa
Aruna O Stockham
Faith L Ruta
Leon S Stenseth
IdCountryDate
1000Argentina2024-04-29
1001France2024-05-10
1002Argentina2024-05-09
1003United Kingdom2024-05-09
1004India2024-04-21
1005Russia2024-05-02
1006Canada2024-04-21
1007Brazil2024-04-20
1008Canada2024-04-17
1009Japan2024-05-09
1010Brazil2024-04-23
1011Russia2024-04-29
1012Japan2024-04-18
1013India2024-05-01
1014Argentina2024-04-13
1015Spain2024-04-26
1016United Kingdom2024-04-30
1017India2024-04-23
1018United Kingdom2024-04-20
1019Germany2024-04-12
1020Italy2024-04-21
1021Canada2024-05-10
1022France2024-04-25
1023India2024-04-17
1024Australia2024-04-13
1025Argentina2024-04-21
1026Argentina2024-05-09
1027Argentina2024-04-11
1028Brazil2024-05-06
1029Australia2024-04-23
1030Australia2024-04-13
1031Australia2024-05-05
1032France2024-04-24
1033France2024-04-27
1034Spain2024-05-09
1035Japan2024-04-19
1036Japan2024-04-30
1037Germany2024-05-05
1038Australia2024-04-14
1039Canada2024-05-06
1040Spain2024-04-12
1041Spain2024-05-10
1042Japan2024-05-09
1043Brazil2024-04-11
1044France2024-04-26
1045Germany2024-04-19
1046Argentina2024-05-01
1047India2024-04-17
1048Russia2024-04-27
1049Argentina2024-04-21

On-Demand Data

NameIdCountryDate
Emily V Paprocki1000Canada2024-04-25
Johnson L Malet1001Russia2024-04-27
Smith R Perin1002Japan2024-04-17
Aditya G Nicka1003Italy2024-04-17
Leja C Ostrosky1004United Kingdom2024-04-27
Greenwood U Inouye1005Russia2024-04-26
Darci Q Inouye1006France2024-04-21
Julie W Chui1007Canada2024-04-21
Arvin P Doe1008Australia2024-04-21
Smith Q Darakjy1009Australia2024-05-05
Smith H Campain1010Italy2024-04-18
Clifford D Iturbide1011Australia2024-05-03
Jennifer N Nestle1012Germany2024-04-22
Ricardo D Inouye1013Russia2024-05-03
Sinclair N Wieser1014Germany2024-04-29
Juan I Figeroa1015Spain2024-04-15
Misaki Q Gillian1016United Kingdom2024-04-21
Jeanfrancois D Amigon1017Spain2024-04-13
Silvio U Kolmetz1018Japan2024-04-22
Jennifer I Rulapaugh1019France2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi P FerenczBrazilElwin Sharvill UNQUALIFIED
Wickens T InouyeUnited KingdomXuxue Feng UNQUALIFIED
Aika B CaldareraArgentinaAmy Elsner NEW
Claire L OstroskyRussiaIoni Bowcher UNQUALIFIED
Salvatore T CaldareraArgentinaXuxue Feng NEGOTIATION
Johnson L RimJapanXuxue Feng NEGOTIATION
Mayumi U KuskoRussiaElwin Sharvill NEGOTIATION
Cody E StockhamItalyXuxue Feng NEGOTIATION
Murillo B AmigonRussiaBernardo Dominic QUALIFIED
Arvin Z IturbideUnited KingdomStephen Shaw NEGOTIATION
David J ButtJapanAnna Fali PROPOSAL
Isabel S IturbideGermanyIvan Magalhaes RENEWAL
Kadeem U ShinkoRussiaOnyama Limba PROPOSAL
Murillo Y StensethAustraliaXuxue Feng QUALIFIED
James Q NickaRussiaStephen Shaw NEGOTIATION
Julie S MorascaBrazilIoni Bowcher NEGOTIATION
David S KuskoIndiaIoni Bowcher PROPOSAL
Munro X RimArgentinaBernardo Dominic RENEWAL
James J PerinGermanyAsiya Javayant QUALIFIED
Ashley D WieserRussiaAnna Fali NEW
Mayumi Y DoeArgentinaOnyama Limba NEGOTIATION
Misaki K TollnerArgentinaXuxue Feng NEW
Wickens Y CaudyRussiaAmy Elsner RENEWAL
David V MorascaItalyOnyama Limba NEGOTIATION
Jennifer R RoysterRussiaXuxue Feng NEW
Jeanfrancois X KuskoUnited KingdomElwin Sharvill NEGOTIATION
Octavia J WhobreyFranceIvan Magalhaes RENEWAL
Ivar M BowleyArgentinaAmy Elsner NEGOTIATION
Silvio W MaletItalyIoni Bowcher UNQUALIFIED
Chavez W WaycottUnited KingdomAnna Fali RENEWAL
Cody U MarrierRussiaElwin Sharvill UNQUALIFIED
Ivar R RutaFranceElwin Sharvill QUALIFIED
Kaitlin U FollerJapanBernardo Dominic QUALIFIED
Ricardo T SchemmerIndiaIvan Magalhaes QUALIFIED
Emily D RimFranceAmy Elsner RENEWAL
Alejandro M StensethCanadaAmy Elsner NEW
Ashley F DilliardIndiaXuxue Feng RENEWAL
Sinclair L SchemmerItalyOnyama Limba NEW
Isabel Q KuskoCanadaIoni Bowcher QUALIFIED
Costa E NestleSpainAnna Fali PROPOSAL

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