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
David K DoeUnited KingdomXuxue Feng NEW
Costa M KuskoGermanyStephen Shaw QUALIFIED
Costa K RutaFranceBernardo Dominic NEW
Ricardo X SlusarskiCanadaAnna Fali UNQUALIFIED
Ricardo W IturbideCanadaAmy Elsner QUALIFIED
Tony L FollerJapanAsiya Javayant PROPOSAL
Maria E MacleadArgentinaAmy Elsner RENEWAL
Ricardo L PerinCanadaOnyama Limba UNQUALIFIED
Aika S FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Emily K KolmetzSpainElwin Sharvill NEW
Tony X GillianJapanAmy Elsner NEGOTIATION
Aika W CaldareraFranceAnna Fali NEGOTIATION
Aika M ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia N OldroydIndiaAnna Fali NEGOTIATION
Jefferson U PerinAustraliaIvan Magalhaes RENEWAL
Greenwood Y DoeSpainIoni Bowcher PROPOSAL
James M BriddickJapanXuxue Feng PROPOSAL
Octavia H WieserItalyBernardo Dominic QUALIFIED
Leja W MaletAustraliaStephen Shaw NEW
Nicolas O StensethArgentinaIvan Magalhaes NEW
Isabel G PerinItalyBernardo Dominic NEGOTIATION
Salvatore B ChuiFranceIvan Magalhaes NEGOTIATION
Jones O NickaCanadaAmy Elsner PROPOSAL
Tony K IturbideFranceAsiya Javayant RENEWAL
Stacey O CaudyAustraliaElwin Sharvill NEW
Clifford H VocelkaItalyIoni Bowcher UNQUALIFIED
Ashley H PaprockiUnited KingdomBernardo Dominic RENEWAL
Cody O WieserBrazilAnna Fali NEW
Maria L ShinkoItalyAnna Fali NEW
Izzy E DoeGermanyElwin Sharvill UNQUALIFIED
Isabel Y ChuiSpainStephen Shaw QUALIFIED
Isabel C ShinkoRussiaXuxue Feng QUALIFIED
Adams L SchemmerArgentinaOnyama Limba NEGOTIATION
Maria N RoysterFranceXuxue Feng UNQUALIFIED
Nicolas L BowleyBrazilIvan Magalhaes UNQUALIFIED
Murillo H VenereCanadaElwin Sharvill RENEWAL
Darci W IturbideAustraliaAmy Elsner UNQUALIFIED
Aika C BowleyCanadaBernardo Dominic NEGOTIATION
Johnson M BologniaCanadaIvan Magalhaes QUALIFIED
Ashley O SchemmerArgentinaAsiya Javayant QUALIFIED
Alejandro B MaletFranceElwin Sharvill NEGOTIATION
Octavia H BriddickIndiaAnna Fali NEW
Clifford E TollnerUnited KingdomOnyama Limba QUALIFIED
Salvatore G SlusarskiItalyAmy Elsner NEGOTIATION
James T FlosiIndiaOnyama Limba UNQUALIFIED
Munro Z RutaSpainXuxue Feng NEGOTIATION
Clifford I FerenczFranceAsiya Javayant NEGOTIATION
Cody F MacleadSpainAsiya Javayant PROPOSAL
Francesco G SlusarskiBrazilIvan Magalhaes UNQUALIFIED
Jones E SlusarskiGermanyAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens F ShinkoFranceAnna Fali NEGOTIATION
Greenwood D GlickArgentinaElwin Sharvill QUALIFIED
Ricardo Y DoeArgentinaAsiya Javayant QUALIFIED
Deepesh J MaletFranceAnna Fali NEGOTIATION
Rodrigues O RimArgentinaStephen Shaw UNQUALIFIED
Aditya P ChuiJapanIvan Magalhaes QUALIFIED
Leon O DarakjyCanadaStephen Shaw UNQUALIFIED
Julie E MacleadAustraliaAmy Elsner NEGOTIATION
Maisha W MorascaRussiaAsiya Javayant RENEWAL
Alejandro Q ShinkoGermanyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire A FigeroaGermany2024-04-06Benton, John B Jr PROPOSAL21Stephen Shaw
1001Aruna P GauchoItaly2024-04-01Chapman, Ross E Esq PROPOSAL39Xuxue Feng
1002David V NestleItaly2024-04-05King, Christopher A Esq NEW46Xuxue Feng
1003Faith U KolmetzArgentina2024-04-05Printing Dimensions NEW43Anna Fali
1004Deepesh U OstroskyRussia2024-04-29Truhlar And Truhlar Attys NEW72Stephen Shaw
1005Johnson V GillianIndia2024-04-09Truhlar And Truhlar Attys NEW40Elwin Sharvill
1006Aika E GlickFrance2024-04-17Dorl, James J Esq UNQUALIFIED43Amy Elsner
1007Cody Y VocelkaCanada2024-04-19Dorl, James J Esq RENEWAL83Xuxue Feng
1008Maria I KolmetzArgentina2024-04-02King, Christopher A Esq NEW7Asiya Javayant
1009Nicolas O SergiJapan2024-04-15Buckley Miller Wright PROPOSAL62Anna Fali
1010Munro N GarufiFrance2024-04-08Feltz Printing Service NEGOTIATION65Ioni Bowcher
1011Greenwood M FlosiSpain2024-04-03Chanay, Jeffrey A Esq RENEWAL92Elwin Sharvill
1012Mujtaba U VenereJapan2024-04-03Commercial Press PROPOSAL11Anna Fali
1013Antonio Y MaletGermany2024-04-22King, Christopher A Esq PROPOSAL40Xuxue Feng
1014Aruna Z MaletGermany2024-04-29Dorl, James J Esq QUALIFIED86Elwin Sharvill
1015Nicolas J RutaFrance2024-04-11Buckley Miller Wright UNQUALIFIED88Xuxue Feng
1016Munro Q KuskoItaly2024-04-08Feltz Printing Service NEGOTIATION97Stephen Shaw
1017Rodrigues G MaletJapan2024-04-15King, Christopher A Esq UNQUALIFIED19Bernardo Dominic
1018Clifford F VenereCanada2024-04-21Feltz Printing Service UNQUALIFIED82Anna Fali
1019Wickens H RoysterSpain2024-04-05Chemel, James L Cpa RENEWAL49Amy Elsner
1020Leon K AlbaresJapan2024-04-07Rousseaux, Michael Esq RENEWAL16Anna Fali
1021Antonio N WieserCanada2024-04-18Benton, John B Jr QUALIFIED73Xuxue Feng
1022Ashley R BologniaRussia2024-04-25Chanay, Jeffrey A Esq NEGOTIATION67Onyama Limba
1023Francesco F BowleyCanada2024-04-04Morlong Associates UNQUALIFIED7Xuxue Feng
1024Darci Z FerenczFrance2024-04-29Truhlar And Truhlar Attys UNQUALIFIED82Anna Fali
1025Mayumi I RoysterFrance2024-04-20Feiner Bros PROPOSAL52Onyama Limba
1026Jennifer L ShinkoBrazil2024-04-13Truhlar And Truhlar Attys NEGOTIATION93Elwin Sharvill
1027Alejandro A StensethBrazil2024-04-14Morlong Associates NEW91Ioni Bowcher
1028Aditya M VocelkaRussia2024-04-23Buckley Miller Wright RENEWAL10Elwin Sharvill
1029Greenwood W MorascaArgentina2024-04-06Benton, John B Jr QUALIFIED10Amy Elsner
1030Stacey A RimAustralia2024-04-09Dorl, James J Esq UNQUALIFIED5Elwin Sharvill
1031Sinclair N WaycottAustralia2024-04-09Feiner Bros UNQUALIFIED81Elwin Sharvill
1032Leja C BologniaJapan2024-04-29King, Christopher A Esq UNQUALIFIED42Elwin Sharvill
1033Aditya I FlosiCanada2024-04-29Feltz Printing Service NEW65Ivan Magalhaes
1034Maisha P ChuiFrance2024-04-06Commercial Press RENEWAL6Amy Elsner
1035Alejandro D CaldareraRussia2024-04-02Commercial Press NEW45Anna Fali
1036Chavez A DarakjyBrazil2024-04-04Feltz Printing Service UNQUALIFIED18Xuxue Feng
1037Leja J WieserItaly2024-04-28Dorl, James J Esq RENEWAL49Bernardo Dominic
1038Aruna X DarakjySpain2024-04-24Dorl, James J Esq NEW36Onyama Limba
1039Claire B MaletSpain2024-04-19Benton, John B Jr NEW40Asiya Javayant
1040Mayumi E WaycottItaly2024-04-03Feltz Printing Service UNQUALIFIED0Bernardo Dominic
1041Isabel E DarakjyBrazil2024-04-05Morlong Associates QUALIFIED71Bernardo Dominic
1042Darci E RutaArgentina2024-04-26Rousseaux, Michael Esq RENEWAL31Stephen Shaw
1043Mayumi R BriddickFrance2024-04-17Rangoni Of Florence PROPOSAL70Stephen Shaw
1044Rodrigues Y DoeItaly2024-04-17Rousseaux, Michael Esq UNQUALIFIED89Anna Fali
1045David C BologniaBrazil2024-04-01Buckley Miller Wright UNQUALIFIED10Onyama Limba
1046Nicolas I CampainArgentina2024-04-30Benton, John B Jr RENEWAL4Bernardo Dominic
1047Silvio B PerinRussia2024-04-19Benton, John B Jr QUALIFIED68Asiya Javayant
1048Aika L StockhamArgentina2024-04-16Morlong Associates UNQUALIFIED20Bernardo Dominic
1049James Q DilliardBrazil2024-04-08Benton, John B Jr QUALIFIED82Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba K NickaAustraliaIoni Bowcher QUALIFIED
David L SchemmerJapanStephen Shaw PROPOSAL
Jefferson W ShinkoFranceAmy Elsner NEW
Arvin X TollnerArgentinaStephen Shaw NEW
Kadeem Q BowleyRussiaOnyama Limba QUALIFIED
James N DilliardAustraliaElwin Sharvill PROPOSAL
Mujtaba K KolmetzRussiaAnna Fali PROPOSAL
Leon D NestleItalyXuxue Feng UNQUALIFIED
Kadeem A BologniaBrazilBernardo Dominic QUALIFIED
Ricardo A ChuiBrazilOnyama Limba NEW
Juan C StockhamArgentinaAmy Elsner RENEWAL
Maria Y FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Morrow O RimItalyStephen Shaw PROPOSAL
Salvatore B WieserJapanIvan Magalhaes RENEWAL
Smith U CaldareraFranceOnyama Limba PROPOSAL
Johnson Z DoeUnited KingdomAmy Elsner QUALIFIED
Salvatore V FollerBrazilOnyama Limba PROPOSAL
Jeanfrancois L SaylorsCanadaAsiya Javayant RENEWAL
Leja E GillianIndiaAmy Elsner RENEWAL
Misaki E CaudyFranceIoni Bowcher NEW
Izzy Q OstroskyItalyElwin Sharvill UNQUALIFIED
Murillo Z OldroydAustraliaIvan Magalhaes NEGOTIATION
Ivar M NestleBrazilAsiya Javayant UNQUALIFIED
Chavez Q MarrierAustraliaOnyama Limba RENEWAL
Darci V ShinkoGermanyElwin Sharvill UNQUALIFIED
Greenwood P KolmetzGermanyAsiya Javayant RENEWAL
Maria E WaycottSpainIvan Magalhaes NEW
Leon X MaletRussiaElwin Sharvill PROPOSAL
Adams B MacleadAustraliaXuxue Feng RENEWAL
Jones H KuskoGermanyXuxue Feng UNQUALIFIED
Kaitlin R RoysterAustraliaXuxue Feng PROPOSAL
Murillo V PerinJapanIvan Magalhaes UNQUALIFIED
Deepesh J MaletRussiaIoni Bowcher UNQUALIFIED
Ashley D SlusarskiBrazilBernardo Dominic NEGOTIATION
Sinclair Q OldroydIndiaIvan Magalhaes UNQUALIFIED
Johnson X RulapaughIndiaStephen Shaw PROPOSAL
Aruna V FollerAustraliaElwin Sharvill NEGOTIATION
Mayumi Z RutaIndiaOnyama Limba QUALIFIED
Francesco L CaldareraUnited KingdomOnyama Limba NEGOTIATION
Jefferson X VocelkaJapanIoni Bowcher RENEWAL
Chavez Q RutaFranceBernardo Dominic UNQUALIFIED
Greenwood O RoysterArgentinaAmy Elsner RENEWAL
Sinclair W SaylorsFranceIvan Magalhaes RENEWAL
Johnson J DarakjyBrazilIoni Bowcher PROPOSAL
Kaitlin A CampainGermanyElwin Sharvill NEGOTIATION
Murillo J FollerUnited KingdomAnna Fali NEGOTIATION
Jeanfrancois H OldroydUnited KingdomAmy Elsner QUALIFIED
Greenwood W StensethJapanAsiya Javayant NEW
Murillo U DoeArgentinaStephen Shaw NEW
Ivar L AlbaresUnited KingdomXuxue Feng NEGOTIATION
Frozen Columns
Name
Stacey S Garufi
James A Oldroyd
Isabel E Oldroyd
Morrow R Poquette
Ivar G Caldarera
Morrow S Shinko
Julie M Marrier
Kaitlin W Malet
Jones M Marrier
Emily A Bowley
Mayumi H Slusarski
Greenwood P Slusarski
Faith I Nestle
Smith X Whobrey
Nicolas C Oldroyd
Jones W Bolognia
Ashley R Chui
Chavez K Ostrosky
Francesco N Vocelka
Kaitlin F Wieser
Leon I Paprocki
Smith M Vocelka
Jones C Nicka
Maria P Darakjy
Leja X Doe
Murillo J Kolmetz
Morrow B Caudy
Cody A Wieser
Mujtaba W Foller
Munro Z Slusarski
Ashley E Schemmer
Clifford H Royster
Leja F Chui
Silvio H Schemmer
Ivar O Whobrey
Jones P Foller
Arvin B Shinko
Emily O Nestle
Leja G Paprocki
Leon I Bowley
Costa N Saylors
Maisha I Kusko
Alejandro N Venere
Stacey A Schemmer
Chavez L Briddick
Mujtaba R Gillian
Kadeem G Kusko
Adams K Garufi
Tony E Perin
Ricardo X Inouye
IdCountryDate
1000India2024-04-29
1001France2024-04-07
1002United Kingdom2024-04-13
1003India2024-04-23
1004Russia2024-04-23
1005India2024-04-30
1006France2024-04-27
1007Brazil2024-04-27
1008Germany2024-04-13
1009Germany2024-04-05
1010Italy2024-04-08
1011India2024-04-19
1012United Kingdom2024-04-24
1013Brazil2024-04-27
1014France2024-04-29
1015India2024-04-16
1016Japan2024-04-05
1017Spain2024-04-25
1018Argentina2024-04-02
1019Argentina2024-04-12
1020Canada2024-04-01
1021Germany2024-04-01
1022Argentina2024-04-23
1023Argentina2024-04-28
1024Italy2024-04-12
1025France2024-04-21
1026Italy2024-04-23
1027Argentina2024-04-18
1028India2024-04-23
1029India2024-04-15
1030India2024-04-14
1031Argentina2024-04-14
1032Russia2024-04-23
1033Germany2024-04-12
1034Spain2024-04-25
1035Germany2024-04-02
1036Brazil2024-04-05
1037Germany2024-04-19
1038Australia2024-04-01
1039India2024-04-06
1040Italy2024-04-02
1041Italy2024-04-12
1042France2024-04-26
1043Canada2024-04-18
1044Brazil2024-04-12
1045Canada2024-04-05
1046Russia2024-04-11
1047Canada2024-04-08
1048Brazil2024-04-16
1049Argentina2024-04-18

On-Demand Data

NameIdCountryDate
Cody M Morasca1000France2024-04-29
Wickens E Morasca1001Russia2024-04-27
James O Malet1002France2024-04-11
Rodrigues S Briddick1003Italy2024-04-24
Costa B Poquette1004Germany2024-04-21
Julie P Whobrey1005France2024-04-09
Aika Q Iturbide1006Russia2024-04-11
Jefferson P Wieser1007Japan2024-04-01
Chavez K Chui1008France2024-04-29
Kadeem Q Butt1009India2024-04-22
James Y Albares1010Spain2024-04-06
Jeanfrancois C Garufi1011Russia2024-04-07
Claire D Malet1012Canada2024-04-14
Cody Q Nestle1013Australia2024-04-28
Aruna N Briddick1014United Kingdom2024-04-18
Sinclair C Nestle1015Japan2024-04-13
Maisha A Perin1016Italy2024-04-27
David I Oldroyd1017Japan2024-04-19
Chavez P Caudy1018Australia2024-04-07
Jones L Paprocki1019United Kingdom2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa U MaletRussiaIvan Magalhaes UNQUALIFIED
Silvio O CampainFranceElwin Sharvill NEGOTIATION
Morrow H GauchoUnited KingdomElwin Sharvill PROPOSAL
Clifford T ButtCanadaBernardo Dominic NEW
Sinclair H PoquetteRussiaElwin Sharvill NEW
Nicolas P WhobreyJapanXuxue Feng NEW
Deepesh V NickaJapanIoni Bowcher NEW
Mayumi C ChuiUnited KingdomStephen Shaw QUALIFIED
Greenwood E AlbaresUnited KingdomOnyama Limba RENEWAL
Mayumi E VocelkaIndiaIvan Magalhaes QUALIFIED
Ricardo B RulapaughArgentinaAmy Elsner QUALIFIED
Johnson B FlosiGermanyXuxue Feng UNQUALIFIED
Smith Q DarakjyRussiaElwin Sharvill QUALIFIED
Izzy O IturbideJapanAsiya Javayant PROPOSAL
Ashley P OldroydCanadaElwin Sharvill NEGOTIATION
Tony K PoquetteItalyAmy Elsner NEGOTIATION
Stacey E AlbaresCanadaAsiya Javayant RENEWAL
Jefferson M DilliardCanadaXuxue Feng PROPOSAL
Jeanfrancois X KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Octavia O RulapaughCanadaAnna Fali RENEWAL
Sinclair P AlbaresFranceElwin Sharvill PROPOSAL
Francesco F CaudyRussiaBernardo Dominic UNQUALIFIED
Ivar Y FigeroaJapanBernardo Dominic UNQUALIFIED
Murillo U MaletIndiaStephen Shaw RENEWAL
Clifford N NestleJapanElwin Sharvill UNQUALIFIED
Leon Z KuskoBrazilAsiya Javayant PROPOSAL
Silvio R MarrierGermanyAsiya Javayant NEW
Chavez H RutaUnited KingdomElwin Sharvill NEGOTIATION
Emily T StockhamCanadaElwin Sharvill NEW
Faith W DoeFranceBernardo Dominic QUALIFIED
Ashley V IturbideItalyAnna Fali NEW
Sinclair K ChuiItalyOnyama Limba PROPOSAL
Kadeem A VocelkaIndiaElwin Sharvill NEGOTIATION
Jones T FerenczAustraliaOnyama Limba UNQUALIFIED
Tony I MarrierJapanIvan Magalhaes UNQUALIFIED
Morrow E BowleyGermanyAnna Fali PROPOSAL
Murillo B VocelkaBrazilAsiya Javayant RENEWAL
Silvio S FerenczArgentinaBernardo Dominic NEGOTIATION
Johnson G StensethUnited KingdomAnna Fali PROPOSAL
Faith S CaudyRussiaStephen Shaw NEGOTIATION

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