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
Adams W VenereCanadaStephen Shaw QUALIFIED
Isabel B RulapaughIndiaBernardo Dominic UNQUALIFIED
Cody N FigeroaItalyAsiya Javayant NEW
Arvin K AmigonSpainAnna Fali NEW
Ashley U ShinkoItalyAnna Fali RENEWAL
Darci U SlusarskiBrazilIvan Magalhaes PROPOSAL
Silvio I DilliardCanadaIvan Magalhaes RENEWAL
Maria L StockhamArgentinaStephen Shaw NEW
Jefferson B TollnerGermanyElwin Sharvill UNQUALIFIED
Julie V BowleyCanadaElwin Sharvill PROPOSAL
Julie N ButtItalyElwin Sharvill UNQUALIFIED
Johnson D PoquetteCanadaAnna Fali PROPOSAL
Faith L MarrierArgentinaAsiya Javayant QUALIFIED
Izzy T CaudyBrazilOnyama Limba QUALIFIED
Aika G ShinkoBrazilBernardo Dominic NEW
Greenwood U RutaFranceOnyama Limba NEGOTIATION
Morrow V StockhamCanadaAmy Elsner UNQUALIFIED
Claire G SaylorsUnited KingdomOnyama Limba PROPOSAL
Emily P PerinItalyAsiya Javayant NEGOTIATION
Jones U ShinkoBrazilIvan Magalhaes NEW
Leja R MaletAustraliaOnyama Limba NEW
Misaki U DilliardGermanyAnna Fali NEW
Munro B WhobreyItalyStephen Shaw UNQUALIFIED
Faith S MorascaSpainAnna Fali NEGOTIATION
Jefferson M FollerCanadaElwin Sharvill RENEWAL
Jefferson H ButtBrazilIvan Magalhaes UNQUALIFIED
Jennifer K MarrierAustraliaAsiya Javayant UNQUALIFIED
Wickens F GlickRussiaAmy Elsner QUALIFIED
Morrow R PerinCanadaStephen Shaw NEW
Izzy E GillianUnited KingdomIoni Bowcher RENEWAL
Salvatore W GauchoRussiaBernardo Dominic UNQUALIFIED
Misaki B FollerArgentinaAnna Fali RENEWAL
Jones E StockhamRussiaAnna Fali PROPOSAL
Kaitlin G ButtItalyOnyama Limba QUALIFIED
Aika X AmigonJapanOnyama Limba UNQUALIFIED
Adams S MaletJapanXuxue Feng NEW
Clifford L MacleadGermanyElwin Sharvill UNQUALIFIED
Maria B ChuiSpainIoni Bowcher NEGOTIATION
Antonio X OstroskyUnited KingdomElwin Sharvill NEW
Rodrigues C ChuiBrazilElwin Sharvill QUALIFIED
Chavez V GarufiFranceIoni Bowcher PROPOSAL
Smith Q GillianIndiaBernardo Dominic PROPOSAL
Murillo J InouyeAustraliaXuxue Feng RENEWAL
Morrow Q OstroskyRussiaIvan Magalhaes QUALIFIED
Misaki B PerinGermanyIoni Bowcher NEW
Maisha C VenereUnited KingdomXuxue Feng NEGOTIATION
Clifford E FerenczSpainStephen Shaw UNQUALIFIED
Rodrigues W PoquetteGermanyBernardo Dominic RENEWAL
Clifford B StockhamAustraliaBernardo Dominic PROPOSAL
Murillo S RulapaughCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo M VocelkaBrazilXuxue Feng NEW
Costa O ShinkoJapanAmy Elsner QUALIFIED
Tony E OldroydItalyIoni Bowcher UNQUALIFIED
James G GillianJapanAmy Elsner NEGOTIATION
Emily Y BriddickCanadaXuxue Feng UNQUALIFIED
Clifford G StensethArgentinaIvan Magalhaes PROPOSAL
Kaitlin M BologniaCanadaAmy Elsner PROPOSAL
Julie W WhobreyArgentinaAmy Elsner NEGOTIATION
Darci L NickaBrazilStephen Shaw NEGOTIATION
Maisha O FollerFranceIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin R KuskoUnited Kingdom2024-04-13Dorl, James J Esq UNQUALIFIED53Ioni Bowcher
1001Leon Y RutaIndia2024-04-24Commercial Press NEW78Elwin Sharvill
1002Clifford Q CaldareraIndia2024-04-19Benton, John B Jr NEW15Ioni Bowcher
1003Maria C StensethGermany2024-04-10Dorl, James J Esq QUALIFIED39Asiya Javayant
1004Murillo D RoysterJapan2024-04-18Feiner Bros UNQUALIFIED76Amy Elsner
1005Sinclair Q TollnerFrance2024-04-14Feiner Bros NEW75Bernardo Dominic
1006Greenwood V ButtFrance2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED41Onyama Limba
1007Stacey F GillianFrance2024-04-02Feiner Bros NEW60Amy Elsner
1008Salvatore J InouyeBrazil2024-04-18Morlong Associates RENEWAL7Ioni Bowcher
1009Clifford H FigeroaAustralia2024-04-02Chemel, James L Cpa NEGOTIATION54Ivan Magalhaes
1010Juan J RutaCanada2024-04-23Feiner Bros NEW72Amy Elsner
1011Faith R InouyeBrazil2024-04-16Feiner Bros PROPOSAL1Xuxue Feng
1012Maisha Q ButtUnited Kingdom2024-04-07King, Christopher A Esq PROPOSAL30Anna Fali
1013Greenwood R CampainFrance2024-04-08Chapman, Ross E Esq PROPOSAL55Ivan Magalhaes
1014Darci S FlosiGermany2024-04-21Commercial Press NEGOTIATION98Elwin Sharvill
1015Aruna K StensethArgentina2024-04-09Feiner Bros UNQUALIFIED58Ivan Magalhaes
1016Mujtaba T RoysterGermany2024-04-01Chapman, Ross E Esq UNQUALIFIED90Asiya Javayant
1017Munro H FigeroaAustralia2024-04-20Feiner Bros NEGOTIATION11Xuxue Feng
1018Misaki I VocelkaRussia2024-04-02Morlong Associates UNQUALIFIED8Amy Elsner
1019Claire L MorascaUnited Kingdom2024-03-30Printing Dimensions NEW64Bernardo Dominic
1020Mayumi M DilliardUnited Kingdom2024-04-10Feiner Bros RENEWAL90Anna Fali
1021Misaki B StockhamIndia2024-04-14Morlong Associates UNQUALIFIED50Stephen Shaw
1022Maisha O VenereGermany2024-04-02King, Christopher A Esq QUALIFIED46Asiya Javayant
1023Ricardo H StensethRussia2024-04-07Chemel, James L Cpa NEW95Xuxue Feng
1024Julie R GarufiArgentina2024-04-05Benton, John B Jr NEW4Stephen Shaw
1025Kadeem U WieserBrazil2024-04-09Printing Dimensions QUALIFIED25Onyama Limba
1026Rodrigues S BriddickSpain2024-04-18Buckley Miller Wright PROPOSAL2Xuxue Feng
1027Mayumi H VocelkaAustralia2024-04-28Feltz Printing Service NEW0Bernardo Dominic
1028Nicolas S FollerJapan2024-04-09Chanay, Jeffrey A Esq QUALIFIED22Anna Fali
1029Arvin O VenereItaly2024-04-02King, Christopher A Esq PROPOSAL0Anna Fali
1030Sinclair V WaycottIndia2024-04-22Chapman, Ross E Esq UNQUALIFIED53Elwin Sharvill
1031Rodrigues Z MaletJapan2024-04-16Printing Dimensions NEGOTIATION9Bernardo Dominic
1032Maisha F FigeroaJapan2024-04-16Dorl, James J Esq NEGOTIATION88Bernardo Dominic
1033Clifford P WaycottItaly2024-04-21Truhlar And Truhlar Attys NEGOTIATION67Anna Fali
1034Jones X BowleyRussia2024-04-17Printing Dimensions RENEWAL89Asiya Javayant
1035Julie Y WieserSpain2024-04-14Printing Dimensions RENEWAL15Bernardo Dominic
1036Greenwood E RoysterAustralia2024-04-23King, Christopher A Esq QUALIFIED4Anna Fali
1037Isabel T CaudyAustralia2024-04-22Printing Dimensions QUALIFIED36Ioni Bowcher
1038Rodrigues Y StockhamArgentina2024-04-07Dorl, James J Esq NEGOTIATION50Amy Elsner
1039Isabel L MacleadItaly2024-04-04Truhlar And Truhlar Attys PROPOSAL69Onyama Limba
1040Nicolas I WaycottIndia2024-04-11Dorl, James J Esq NEW55Stephen Shaw
1041Isabel S CaudyIndia2024-04-10King, Christopher A Esq QUALIFIED54Ioni Bowcher
1042Ricardo P WieserUnited Kingdom2024-04-01Chemel, James L Cpa PROPOSAL33Onyama Limba
1043Nicolas I AlbaresGermany2024-04-13Chanay, Jeffrey A Esq RENEWAL82Onyama Limba
1044Leon P DoeCanada2024-04-14Truhlar And Truhlar Attys PROPOSAL85Amy Elsner
1045Kaitlin T VocelkaFrance2024-04-21Benton, John B Jr RENEWAL2Elwin Sharvill
1046Silvio G NickaGermany2024-04-07Commercial Press UNQUALIFIED40Onyama Limba
1047Aika N StensethGermany2024-04-22Buckley Miller Wright RENEWAL45Ivan Magalhaes
1048Claire P RutaFrance2024-04-28Commercial Press QUALIFIED73Amy Elsner
1049Ivar K IturbideItaly2024-04-22Rousseaux, Michael Esq QUALIFIED88Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Antonio S VocelkaSpainXuxue Feng RENEWAL
Faith H FollerGermanyAnna Fali RENEWAL
Julie S RutaUnited KingdomStephen Shaw QUALIFIED
Rodrigues I GauchoAustraliaAnna Fali QUALIFIED
Arvin V GarufiGermanyIoni Bowcher PROPOSAL
Julie F InouyeJapanAsiya Javayant NEGOTIATION
Isabel C NickaBrazilAmy Elsner QUALIFIED
Aika U PoquetteSpainOnyama Limba UNQUALIFIED
Nicolas M RulapaughAustraliaAmy Elsner QUALIFIED
Aika E FigeroaCanadaBernardo Dominic NEGOTIATION
Mujtaba W FerenczSpainIvan Magalhaes PROPOSAL
Jones B DoeRussiaAmy Elsner PROPOSAL
Adams A WieserBrazilAsiya Javayant NEGOTIATION
Kadeem O GlickAustraliaIoni Bowcher UNQUALIFIED
Johnson Q BriddickAustraliaIoni Bowcher PROPOSAL
Munro C FerenczItalyStephen Shaw NEW
James I BowleyArgentinaAnna Fali RENEWAL
Darci Z VocelkaBrazilAnna Fali RENEWAL
Arvin I BologniaIndiaXuxue Feng UNQUALIFIED
Murillo P SlusarskiItalyXuxue Feng RENEWAL
Juan W RoysterAustraliaAnna Fali NEW
Stacey W DoeJapanStephen Shaw PROPOSAL
Mujtaba Y StensethUnited KingdomAmy Elsner UNQUALIFIED
Emily F NestleGermanyAnna Fali UNQUALIFIED
Jeanfrancois U StensethFranceAsiya Javayant NEW
Deepesh Q RimJapanOnyama Limba UNQUALIFIED
Aika V MorascaGermanyIvan Magalhaes RENEWAL
Deepesh P WaycottItalyAsiya Javayant UNQUALIFIED
Kadeem U BowleyItalyXuxue Feng NEW
Costa T StensethFranceStephen Shaw NEW
Mujtaba I PoquetteIndiaStephen Shaw NEGOTIATION
Isabel F PerinItalyElwin Sharvill PROPOSAL
Francesco Q BowleySpainBernardo Dominic NEW
Mayumi U OstroskyJapanAmy Elsner PROPOSAL
Ivar M ButtIndiaAmy Elsner PROPOSAL
Misaki P TollnerRussiaStephen Shaw UNQUALIFIED
Salvatore F NickaAustraliaIvan Magalhaes NEW
Leon Q IturbideCanadaIvan Magalhaes NEGOTIATION
Julie Q WaycottJapanOnyama Limba RENEWAL
Silvio T SergiCanadaAsiya Javayant UNQUALIFIED
Francesco D StockhamIndiaOnyama Limba RENEWAL
Adams C WhobreyIndiaOnyama Limba NEW
Antonio A SergiFranceAnna Fali NEW
Munro H StockhamGermanyOnyama Limba UNQUALIFIED
Stacey Y GauchoUnited KingdomXuxue Feng NEW
Octavia Z ShinkoIndiaElwin Sharvill QUALIFIED
Jeanfrancois T GillianArgentinaXuxue Feng PROPOSAL
Tony Z DoeIndiaXuxue Feng NEW
Julie L RulapaughIndiaElwin Sharvill PROPOSAL
David N AlbaresItalyStephen Shaw NEW
Frozen Columns
Name
Maria D Bolognia
Sinclair H Tollner
Adams O Kusko
Costa A Amigon
Chavez T Caldarera
Salvatore J Garufi
Chavez X Stenseth
Rodrigues I Kusko
Aika N Sergi
Jeanfrancois D Shinko
Arvin S Saylors
Juan I Rulapaugh
Morrow K Albares
Costa O Glick
Kadeem L Morasca
Juan F Saylors
Jennifer X Gillian
James R Dilliard
Silvio Z Iturbide
Claire F Bolognia
Aika Z Paprocki
Faith B Ruta
Misaki C Glick
Aditya W Rulapaugh
Aika O Garufi
Emily N Gaucho
Aditya H Iturbide
Jones E Garufi
Arvin N Paprocki
Rodrigues J Rulapaugh
Sinclair C Caldarera
Ricardo U Kolmetz
David A Vocelka
David A Ostrosky
Salvatore Z Marrier
Arvin V Malet
Morrow K Ruta
Aruna Q Perin
Wickens Q Ostrosky
Clifford S Stenseth
Juan P Albares
Isabel M Paprocki
Jones J Vocelka
Munro C Ruta
Aruna C Caldarera
Stacey U Flosi
Emily P Chui
Claire V Flosi
Costa P Gillian
Emily R Waycott
IdCountryDate
1000Germany2024-04-21
1001Japan2024-04-24
1002Argentina2024-04-02
1003Russia2024-04-08
1004Argentina2024-04-15
1005Japan2024-04-23
1006Canada2024-04-12
1007Argentina2024-04-26
1008Argentina2024-04-09
1009Australia2024-04-06
1010Argentina2024-04-11
1011France2024-04-26
1012Brazil2024-04-06
1013Spain2024-04-19
1014Spain2024-04-19
1015United Kingdom2024-03-30
1016Brazil2024-04-08
1017Germany2024-04-18
1018Japan2024-04-09
1019Spain2024-04-19
1020Russia2024-04-07
1021France2024-04-15
1022Italy2024-04-11
1023Russia2024-04-23
1024Australia2024-04-14
1025Spain2024-04-20
1026Argentina2024-04-16
1027Canada2024-04-22
1028India2024-04-28
1029France2024-04-26
1030Argentina2024-04-02
1031India2024-04-26
1032Italy2024-04-28
1033Canada2024-04-11
1034United Kingdom2024-04-07
1035Brazil2024-04-18
1036India2024-04-14
1037Canada2024-04-02
1038Japan2024-04-20
1039Canada2024-04-22
1040Australia2024-04-15
1041Russia2024-04-04
1042Japan2024-04-21
1043France2024-04-03
1044Brazil2024-04-05
1045Japan2024-04-07
1046Italy2024-03-30
1047India2024-04-19
1048Germany2024-04-24
1049Canada2024-04-24

On-Demand Data

NameIdCountryDate
Chavez C Sergi1000Spain2024-04-03
Adams C Morasca1001United Kingdom2024-04-08
Jennifer U Vocelka1002France2024-04-01
Juan S Wieser1003United Kingdom2024-04-18
Izzy Z Shinko1004Italy2024-04-15
Jeanfrancois P Ruta1005Spain2024-04-18
Ivar L Kolmetz1006Argentina2024-04-07
Costa E Maclead1007Argentina2024-03-30
Stacey S Shinko1008Brazil2024-04-03
Ashley L Caudy1009Argentina2024-04-26
Aditya F Waycott1010France2024-04-16
Maisha L Briddick1011Germany2024-04-21
Leon D Nestle1012Spain2024-03-31
Emily H Ruta1013Australia2024-04-28
Isabel Y Ruta1014Canada2024-04-13
Maisha A Gaucho1015Argentina2024-04-02
Mujtaba R Malet1016India2024-04-13
Costa K Doe1017Italy2024-04-25
Juan B Figeroa1018India2024-04-24
Cody Y Campain1019Canada2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P FigeroaCanadaBernardo Dominic NEW
Johnson V PaprockiUnited KingdomBernardo Dominic NEW
Adams M SchemmerAustraliaAsiya Javayant NEGOTIATION
Octavia Z DoeAustraliaXuxue Feng NEW
Jennifer S PaprockiUnited KingdomBernardo Dominic QUALIFIED
Kadeem X VocelkaAustraliaOnyama Limba PROPOSAL
Murillo X FigeroaItalyAsiya Javayant RENEWAL
Izzy G FerenczSpainOnyama Limba NEGOTIATION
Mujtaba X RutaFranceAmy Elsner NEW
Darci F TollnerJapanAnna Fali RENEWAL
Kaitlin N NickaArgentinaIvan Magalhaes NEW
Stacey D RimIndiaAnna Fali PROPOSAL
Maisha P CaldareraJapanStephen Shaw QUALIFIED
Cody L FollerCanadaAnna Fali NEW
Jennifer F CaudySpainIvan Magalhaes NEW
Stacey Y VenereCanadaAsiya Javayant NEW
James V NestleArgentinaIoni Bowcher NEGOTIATION
Mayumi T VocelkaBrazilXuxue Feng QUALIFIED
Munro L WhobreyBrazilIoni Bowcher QUALIFIED
Ivar J AmigonRussiaAsiya Javayant UNQUALIFIED
Darci J WaycottItalyIvan Magalhaes PROPOSAL
Munro C SergiBrazilElwin Sharvill PROPOSAL
Aruna S RutaCanadaIoni Bowcher NEW
Jefferson P NickaGermanyXuxue Feng NEW
Faith J PoquetteIndiaIoni Bowcher QUALIFIED
Greenwood O FerenczItalyStephen Shaw PROPOSAL
Jefferson S GarufiSpainIvan Magalhaes QUALIFIED
Silvio X IturbideGermanyIvan Magalhaes PROPOSAL
Maisha P ButtGermanyAsiya Javayant UNQUALIFIED
Ricardo L PerinItalyBernardo Dominic NEW
Kadeem U IturbideSpainAsiya Javayant PROPOSAL
Maria H DarakjyBrazilBernardo Dominic PROPOSAL
Adams J SaylorsJapanStephen Shaw NEGOTIATION
Francesco N StockhamIndiaXuxue Feng RENEWAL
Emily F CaudyRussiaAmy Elsner PROPOSAL
Octavia Z PerinBrazilXuxue Feng NEGOTIATION
Antonio O StensethAustraliaAmy Elsner RENEWAL
Murillo T PoquetteAustraliaXuxue Feng QUALIFIED
Murillo X PoquetteCanadaXuxue Feng NEW
Adams M StockhamFranceOnyama Limba 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>