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
Jennifer F OldroydBrazilAsiya Javayant RENEWAL
Wickens H NestleSpainAnna Fali RENEWAL
Octavia B PoquetteGermanyBernardo Dominic QUALIFIED
Jones N FollerArgentinaStephen Shaw UNQUALIFIED
Ivar J SergiJapanIoni Bowcher PROPOSAL
Claire U DarakjyBrazilIvan Magalhaes QUALIFIED
Izzy N InouyeUnited KingdomIoni Bowcher PROPOSAL
Morrow O RoysterGermanyOnyama Limba PROPOSAL
Silvio Z RutaAustraliaBernardo Dominic PROPOSAL
Antonio T KuskoSpainAnna Fali PROPOSAL
Jennifer M SchemmerCanadaAmy Elsner NEGOTIATION
Clifford Y BriddickIndiaAmy Elsner NEW
Isabel Q SchemmerBrazilElwin Sharvill UNQUALIFIED
Mujtaba K RoysterCanadaIoni Bowcher PROPOSAL
Isabel X MaletBrazilBernardo Dominic QUALIFIED
Morrow T FlosiCanadaAsiya Javayant NEGOTIATION
Jefferson V GillianIndiaBernardo Dominic RENEWAL
Clifford B RulapaughRussiaAsiya Javayant RENEWAL
Maria X OldroydUnited KingdomBernardo Dominic NEW
Emily B GauchoJapanAsiya Javayant RENEWAL
Jones L RoysterRussiaXuxue Feng RENEWAL
Ashley K IturbideIndiaIoni Bowcher NEGOTIATION
Greenwood C ButtBrazilOnyama Limba NEW
Leon K KuskoItalyBernardo Dominic PROPOSAL
Francesco B MaletItalyIvan Magalhaes QUALIFIED
David Q FollerItalyIvan Magalhaes UNQUALIFIED
Juan S AlbaresUnited KingdomAnna Fali NEW
Murillo R RoysterAustraliaOnyama Limba RENEWAL
Wickens B RimCanadaStephen Shaw NEGOTIATION
David D FollerIndiaAnna Fali NEGOTIATION
Munro W SchemmerArgentinaIoni Bowcher NEGOTIATION
Johnson U AmigonSpainAnna Fali NEW
Juan T FerenczSpainStephen Shaw RENEWAL
James F FlosiRussiaAmy Elsner PROPOSAL
Ashley I AmigonBrazilBernardo Dominic RENEWAL
Claire L SergiJapanOnyama Limba PROPOSAL
Darci D InouyeAustraliaIvan Magalhaes RENEWAL
Jefferson H SchemmerArgentinaBernardo Dominic UNQUALIFIED
David P SaylorsGermanyIvan Magalhaes UNQUALIFIED
Antonio I MaletAustraliaOnyama Limba NEGOTIATION
Adams B RimCanadaAnna Fali UNQUALIFIED
Aika X GillianFranceOnyama Limba RENEWAL
Clifford N VocelkaGermanyIvan Magalhaes PROPOSAL
Leon L DoeSpainAmy Elsner RENEWAL
Chavez S MarrierArgentinaXuxue Feng QUALIFIED
Deepesh J KolmetzAustraliaBernardo Dominic RENEWAL
Maisha X FlosiIndiaOnyama Limba NEW
Francesco C DoeAustraliaXuxue Feng RENEWAL
Leja R ShinkoFranceXuxue Feng UNQUALIFIED
Sinclair R DoeCanadaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair L RimIndiaIvan Magalhaes NEGOTIATION
Costa E BowleyUnited KingdomIvan Magalhaes PROPOSAL
Aika P WaycottCanadaIvan Magalhaes UNQUALIFIED
Greenwood V DoeAustraliaXuxue Feng NEGOTIATION
Kaitlin K DarakjyFranceStephen Shaw RENEWAL
Isabel I MarrierGermanyIvan Magalhaes RENEWAL
Izzy S GillianJapanOnyama Limba UNQUALIFIED
Jeanfrancois S BologniaBrazilAmy Elsner NEW
Morrow T BologniaGermanyXuxue Feng PROPOSAL
Kaitlin S PaprockiIndiaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio B IturbideJapan2024-03-30Rousseaux, Michael Esq NEW79Ivan Magalhaes
1001Clifford T SaylorsRussia2024-04-12Feltz Printing Service UNQUALIFIED81Stephen Shaw
1002Maria O GlickIndia2024-04-09Rousseaux, Michael Esq RENEWAL72Ioni Bowcher
1003Greenwood Z FollerArgentina2024-04-01Dorl, James J Esq QUALIFIED49Asiya Javayant
1004Aruna U IturbideArgentina2024-04-01Feiner Bros RENEWAL4Elwin Sharvill
1005Isabel E PoquetteJapan2024-04-07Benton, John B Jr NEW91Onyama Limba
1006Nicolas P DilliardItaly2024-04-07Rousseaux, Michael Esq NEW2Amy Elsner
1007Kaitlin Z RutaUnited Kingdom2024-04-13Buckley Miller Wright NEGOTIATION33Asiya Javayant
1008Aruna C WhobreyJapan2024-04-24Chanay, Jeffrey A Esq NEGOTIATION19Amy Elsner
1009Octavia U SchemmerItaly2024-03-29Printing Dimensions RENEWAL46Amy Elsner
1010Ivar F RoysterBrazil2024-04-10Feltz Printing Service NEGOTIATION64Amy Elsner
1011Salvatore A BriddickBrazil2024-04-07King, Christopher A Esq RENEWAL69Ivan Magalhaes
1012Cody C PerinAustralia2024-04-04Benton, John B Jr NEGOTIATION48Bernardo Dominic
1013Isabel R BriddickItaly2024-04-17Feltz Printing Service NEGOTIATION60Elwin Sharvill
1014Maria D KuskoJapan2024-04-24Rangoni Of Florence QUALIFIED31Onyama Limba
1015Jefferson D DilliardItaly2024-04-22Dorl, James J Esq NEW55Elwin Sharvill
1016Emily V OldroydCanada2024-04-07Feiner Bros UNQUALIFIED77Ivan Magalhaes
1017Emily V GauchoItaly2024-04-09Morlong Associates RENEWAL93Anna Fali
1018Smith C NestleRussia2024-04-23Chapman, Ross E Esq PROPOSAL83Elwin Sharvill
1019Izzy G FerenczUnited Kingdom2024-04-06Chemel, James L Cpa NEW91Onyama Limba
1020Misaki N GlickIndia2024-04-25Buckley Miller Wright NEW85Ioni Bowcher
1021Aruna T TollnerSpain2024-04-25Benton, John B Jr QUALIFIED41Asiya Javayant
1022Tony U SaylorsUnited Kingdom2024-04-02Chapman, Ross E Esq PROPOSAL54Bernardo Dominic
1023David Y FerenczJapan2024-04-24Benton, John B Jr QUALIFIED8Elwin Sharvill
1024Darci E MaletRussia2024-04-22Feltz Printing Service NEW67Asiya Javayant
1025Antonio Z ChuiUnited Kingdom2024-04-13Rousseaux, Michael Esq NEGOTIATION3Anna Fali
1026Munro B BowleyFrance2024-04-10Benton, John B Jr NEW89Anna Fali
1027Claire V OstroskyGermany2024-04-26Chapman, Ross E Esq NEW82Xuxue Feng
1028Isabel L PoquetteArgentina2024-04-22Chemel, James L Cpa NEW82Onyama Limba
1029Jeanfrancois E PoquetteFrance2024-04-01Printing Dimensions UNQUALIFIED55Anna Fali
1030Smith Z FerenczItaly2024-04-09King, Christopher A Esq NEW3Onyama Limba
1031Izzy G PerinSpain2024-04-18Chemel, James L Cpa NEGOTIATION32Bernardo Dominic
1032Ivar Z FlosiRussia2024-04-13King, Christopher A Esq PROPOSAL57Ivan Magalhaes
1033Misaki N WieserJapan2024-03-31Commercial Press NEGOTIATION19Stephen Shaw
1034Silvio T StockhamAustralia2024-03-31Printing Dimensions UNQUALIFIED17Amy Elsner
1035Octavia F DilliardArgentina2024-04-03Printing Dimensions RENEWAL40Ivan Magalhaes
1036Antonio V VenereAustralia2024-04-09Morlong Associates NEGOTIATION39Anna Fali
1037Kaitlin F GlickUnited Kingdom2024-04-11Chemel, James L Cpa UNQUALIFIED80Bernardo Dominic
1038Jennifer U AmigonJapan2024-04-01Commercial Press RENEWAL28Stephen Shaw
1039Ashley L DarakjyAustralia2024-04-15Printing Dimensions RENEWAL97Xuxue Feng
1040Murillo J MarrierGermany2024-04-18Benton, John B Jr PROPOSAL67Anna Fali
1041Faith U IturbideCanada2024-04-01Feiner Bros RENEWAL59Asiya Javayant
1042Wickens D VenereFrance2024-04-14Printing Dimensions QUALIFIED76Ioni Bowcher
1043Ricardo L RulapaughArgentina2024-04-27Truhlar And Truhlar Attys RENEWAL96Xuxue Feng
1044Adams N MacleadRussia2024-04-07Dorl, James J Esq NEGOTIATION72Ivan Magalhaes
1045Costa U MacleadFrance2024-04-16Rousseaux, Michael Esq NEW15Xuxue Feng
1046Murillo Z MaletAustralia2024-04-25Feiner Bros UNQUALIFIED91Asiya Javayant
1047Maisha U WieserGermany2024-04-24Rangoni Of Florence RENEWAL60Xuxue Feng
1048Emily L NestleRussia2024-04-21Chapman, Ross E Esq NEGOTIATION16Onyama Limba
1049Sinclair I IturbideArgentina2024-04-22Rousseaux, Michael Esq NEW92Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Cody Z AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Adams N KolmetzRussiaIvan Magalhaes RENEWAL
Arvin K PaprockiRussiaBernardo Dominic QUALIFIED
Kadeem A DarakjyRussiaAnna Fali UNQUALIFIED
Jefferson K WhobreyRussiaIoni Bowcher QUALIFIED
Leja O AlbaresIndiaStephen Shaw NEW
Costa K VocelkaGermanyElwin Sharvill QUALIFIED
Clifford B SergiAustraliaIvan Magalhaes NEW
Leon V AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Munro H KuskoFranceXuxue Feng PROPOSAL
Emily A DilliardIndiaBernardo Dominic QUALIFIED
Mujtaba N DarakjyGermanyIvan Magalhaes RENEWAL
Kadeem I OstroskyArgentinaElwin Sharvill NEGOTIATION
Stacey V GlickGermanyIoni Bowcher UNQUALIFIED
Octavia C KolmetzFranceIoni Bowcher NEW
Ashley F RulapaughGermanyAsiya Javayant PROPOSAL
Wickens T MaletArgentinaBernardo Dominic RENEWAL
Ivar Q AmigonFranceElwin Sharvill NEW
Ivar O NickaAustraliaAnna Fali UNQUALIFIED
Izzy P NickaCanadaBernardo Dominic UNQUALIFIED
Aika Q MarrierCanadaElwin Sharvill NEW
Salvatore V NestleUnited KingdomAsiya Javayant QUALIFIED
Antonio E CampainCanadaAmy Elsner QUALIFIED
Jefferson N GauchoItalyIoni Bowcher NEW
Aika L RulapaughRussiaElwin Sharvill PROPOSAL
Ashley B KolmetzFranceAmy Elsner NEGOTIATION
Juan C WaycottBrazilIvan Magalhaes NEGOTIATION
Deepesh N AmigonRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois K StockhamJapanIoni Bowcher PROPOSAL
Ashley F VocelkaRussiaAmy Elsner RENEWAL
David T CaldareraItalyAsiya Javayant NEW
Misaki I CaldareraGermanyAnna Fali NEW
Wickens K RoysterSpainXuxue Feng QUALIFIED
Leon P MaletIndiaIoni Bowcher QUALIFIED
Jennifer S PoquetteSpainAsiya Javayant UNQUALIFIED
Deepesh E RoysterFranceXuxue Feng NEW
Misaki C FlosiIndiaIoni Bowcher RENEWAL
Aditya O GarufiGermanyStephen Shaw RENEWAL
Ivar D MarrierBrazilAsiya Javayant PROPOSAL
Claire V RimArgentinaStephen Shaw UNQUALIFIED
Johnson Z SergiIndiaAmy Elsner NEW
Izzy J VenereFranceXuxue Feng UNQUALIFIED
Stacey O StockhamCanadaIoni Bowcher NEW
Cody W OldroydRussiaElwin Sharvill NEGOTIATION
Deepesh O InouyeBrazilOnyama Limba NEGOTIATION
Ivar P PoquetteFranceOnyama Limba PROPOSAL
Jeanfrancois A CaudyItalyIvan Magalhaes UNQUALIFIED
Izzy K BologniaRussiaOnyama Limba PROPOSAL
Kadeem C BriddickGermanyXuxue Feng PROPOSAL
Maria O ChuiSpainOnyama Limba NEGOTIATION
Frozen Columns
Name
Clifford F Figeroa
Wickens C Marrier
Aruna A Caldarera
Maria L Caldarera
Jeanfrancois G Venere
Aika T Malet
Jeanfrancois X Darakjy
Munro P Glick
Munro X Slusarski
James F Dilliard
Kaitlin N Stockham
Leja T Amigon
Leja X Marrier
Alejandro V Glick
James K Whobrey
Adams Z Bowley
Ashley F Morasca
Tony R Bowley
Greenwood M Kusko
Mujtaba N Caudy
Johnson N Maclead
Darci U Sergi
Chavez C Ferencz
Jennifer Y Albares
Smith O Ruta
Jones X Perin
Kadeem I Poquette
Faith Y Chui
Clifford C Bolognia
Jefferson D Shinko
Johnson I Flosi
Antonio B Poquette
Faith Y Darakjy
Mayumi D Chui
Octavia S Nicka
Darci L Slusarski
Darci W Stockham
Octavia P Campain
Maria N Gaucho
Darci G Ostrosky
Adams N Malet
Rodrigues T Maclead
Johnson I Ruta
Aruna D Rim
Smith U Garufi
Murillo O Whobrey
David G Doe
Morrow C Stockham
Isabel C Paprocki
Darci J Slusarski
IdCountryDate
1000France2024-04-02
1001Spain2024-04-26
1002Germany2024-04-18
1003Japan2024-04-07
1004Germany2024-04-24
1005France2024-04-04
1006United Kingdom2024-04-22
1007France2024-04-11
1008France2024-04-14
1009Germany2024-04-06
1010France2024-03-29
1011Canada2024-03-30
1012India2024-04-04
1013Canada2024-04-24
1014Japan2024-04-27
1015United Kingdom2024-04-23
1016Spain2024-04-10
1017Argentina2024-04-10
1018Russia2024-04-18
1019Canada2024-04-15
1020United Kingdom2024-03-29
1021Russia2024-04-23
1022Spain2024-04-16
1023Canada2024-03-29
1024Brazil2024-04-04
1025Germany2024-04-02
1026France2024-04-24
1027Brazil2024-04-23
1028Spain2024-03-30
1029Japan2024-04-06
1030Japan2024-04-14
1031Russia2024-04-19
1032Germany2024-04-05
1033France2024-04-12
1034Germany2024-04-16
1035Argentina2024-04-20
1036India2024-04-08
1037Canada2024-04-20
1038Russia2024-04-06
1039Russia2024-04-10
1040Germany2024-04-12
1041Spain2024-04-05
1042Italy2024-04-11
1043Germany2024-04-09
1044Japan2024-04-05
1045Canada2024-04-14
1046Russia2024-04-25
1047Brazil2024-04-04
1048Japan2024-04-12
1049Brazil2024-04-26

On-Demand Data

NameIdCountryDate
Stacey U Whobrey1000France2024-03-30
Nicolas K Sergi1001France2024-04-09
Costa K Venere1002Germany2024-04-22
Antonio Q Doe1003Germany2024-04-25
Cody F Ruta1004Russia2024-04-04
James I Marrier1005Russia2024-04-03
Nicolas Z Glick1006Argentina2024-04-24
Misaki F Foller1007Japan2024-04-23
Stacey X Shinko1008Canada2024-03-29
Nicolas G Nicka1009Australia2024-04-01
Faith Z Morasca1010Argentina2024-04-16
Darci P Chui1011Spain2024-03-31
Leon H Malet1012Australia2024-04-05
Octavia O Malet1013Argentina2024-03-29
Darci V Inouye1014Brazil2024-04-07
Juan M Doe1015Argentina2024-04-17
Faith K Foller1016Japan2024-04-14
Salvatore R Saylors1017Spain2024-04-21
Maisha D Kusko1018Russia2024-04-13
Aruna R Venere1019Russia2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey U VocelkaSpainStephen Shaw NEW
Alejandro Z DilliardIndiaIvan Magalhaes NEGOTIATION
Costa I WieserBrazilAsiya Javayant QUALIFIED
James F SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Mayumi D GarufiFranceBernardo Dominic QUALIFIED
Aditya U DilliardUnited KingdomAnna Fali NEW
Adams O FlosiJapanAnna Fali UNQUALIFIED
Aika E KuskoUnited KingdomAnna Fali QUALIFIED
Izzy K OldroydUnited KingdomAmy Elsner NEW
Mujtaba O SaylorsAustraliaAmy Elsner UNQUALIFIED
Munro O RimArgentinaAnna Fali NEW
Munro R FollerRussiaOnyama Limba NEGOTIATION
Rodrigues D GlickSpainIoni Bowcher PROPOSAL
Aruna D RutaJapanStephen Shaw UNQUALIFIED
Maria J RoysterRussiaIvan Magalhaes PROPOSAL
Sinclair Z GauchoJapanOnyama Limba NEW
Stacey B BologniaRussiaIvan Magalhaes QUALIFIED
Isabel Y BowleyGermanyIoni Bowcher RENEWAL
Smith V OstroskyArgentinaIoni Bowcher NEGOTIATION
Maria O SergiAustraliaIoni Bowcher RENEWAL
Faith S DoeFranceBernardo Dominic UNQUALIFIED
Rodrigues W GarufiCanadaXuxue Feng NEGOTIATION
Arvin S FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Munro K PaprockiGermanyElwin Sharvill PROPOSAL
Julie B GarufiJapanStephen Shaw UNQUALIFIED
Aika N GillianAustraliaStephen Shaw NEW
Julie B OstroskyFranceOnyama Limba NEGOTIATION
Darci G PerinIndiaIvan Magalhaes NEW
Chavez F InouyeSpainBernardo Dominic UNQUALIFIED
Kadeem T NickaSpainElwin Sharvill NEW
Emily X OldroydJapanAnna Fali QUALIFIED
Alejandro C PoquetteIndiaAmy Elsner QUALIFIED
Mujtaba Z MarrierAustraliaAnna Fali RENEWAL
Arvin L BriddickItalyIvan Magalhaes NEGOTIATION
Adams J MaletItalyStephen Shaw QUALIFIED
Cody Y FigeroaGermanyStephen Shaw NEGOTIATION
Izzy G SchemmerArgentinaOnyama Limba RENEWAL
Ivar O TollnerCanadaAnna Fali UNQUALIFIED
Costa J OldroydSpainAmy Elsner PROPOSAL
Rodrigues W IturbideGermanyElwin Sharvill 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>