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
Sinclair R CaldareraGermanyElwin Sharvill UNQUALIFIED
Jones C StockhamIndiaIvan Magalhaes QUALIFIED
Sinclair J WaycottJapanAsiya Javayant NEGOTIATION
Murillo D TollnerArgentinaBernardo Dominic UNQUALIFIED
Aruna A FollerUnited KingdomBernardo Dominic PROPOSAL
Murillo X SergiAustraliaStephen Shaw RENEWAL
Jefferson R GillianUnited KingdomAsiya Javayant NEGOTIATION
Chavez E AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Munro Q RimIndiaIvan Magalhaes NEGOTIATION
Juan A GlickUnited KingdomBernardo Dominic RENEWAL
Jefferson G NestleCanadaAmy Elsner PROPOSAL
Faith B PerinItalyXuxue Feng RENEWAL
Aika W ShinkoAustraliaElwin Sharvill NEGOTIATION
Isabel X FigeroaSpainIoni Bowcher QUALIFIED
Jeanfrancois F RulapaughIndiaElwin Sharvill NEW
Julie G SergiItalyAmy Elsner RENEWAL
Kadeem V FlosiJapanOnyama Limba PROPOSAL
Misaki M DilliardFranceIoni Bowcher RENEWAL
Aruna Z PaprockiArgentinaXuxue Feng PROPOSAL
Aruna V RutaItalyAnna Fali UNQUALIFIED
Jeanfrancois R InouyeSpainBernardo Dominic NEGOTIATION
Rodrigues H AlbaresIndiaStephen Shaw QUALIFIED
Mayumi B ButtItalyElwin Sharvill UNQUALIFIED
Greenwood L DilliardItalyOnyama Limba RENEWAL
Maisha G MarrierIndiaAnna Fali NEGOTIATION
Octavia O SergiJapanIoni Bowcher UNQUALIFIED
Faith S RutaJapanXuxue Feng QUALIFIED
Sinclair Q PoquetteItalyAnna Fali PROPOSAL
Maisha S AmigonCanadaOnyama Limba PROPOSAL
Rodrigues I NickaSpainOnyama Limba QUALIFIED
Cody L IturbideArgentinaAnna Fali RENEWAL
Kaitlin Q MorascaRussiaAnna Fali RENEWAL
Maria E NickaGermanyAnna Fali PROPOSAL
Arvin U PoquetteIndiaAnna Fali UNQUALIFIED
Jones R FerenczIndiaAnna Fali QUALIFIED
Julie B WhobreyJapanOnyama Limba PROPOSAL
Deepesh Q MacleadArgentinaAnna Fali PROPOSAL
Ivar D FollerGermanyAsiya Javayant RENEWAL
Deepesh R OldroydItalyXuxue Feng QUALIFIED
Misaki P DarakjySpainAmy Elsner UNQUALIFIED
Darci G CaldareraItalyAnna Fali RENEWAL
Misaki D OldroydIndiaStephen Shaw NEW
Sinclair A ChuiItalyAmy Elsner NEGOTIATION
Ashley K RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood P TollnerRussiaIvan Magalhaes UNQUALIFIED
Izzy Z SlusarskiIndiaOnyama Limba NEW
Jefferson R TollnerFranceIvan Magalhaes QUALIFIED
Ashley L StockhamJapanBernardo Dominic RENEWAL
Faith L CampainItalyElwin Sharvill NEW
Faith Q VocelkaBrazilOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Darci K NestleBrazilElwin Sharvill RENEWAL
Faith V KuskoRussiaIoni Bowcher RENEWAL
Antonio S VocelkaBrazilBernardo Dominic PROPOSAL
Aruna J TollnerJapanIoni Bowcher NEGOTIATION
Munro H SlusarskiIndiaBernardo Dominic RENEWAL
Sinclair C BologniaArgentinaAmy Elsner NEW
Murillo J ChuiFranceOnyama Limba PROPOSAL
Arvin O OstroskyCanadaIoni Bowcher UNQUALIFIED
Francesco I InouyeRussiaBernardo Dominic PROPOSAL
Julie S RoysterArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez Y CaldareraSpain2024-04-11Dorl, James J Esq NEGOTIATION7Onyama Limba
1001Julie B SergiRussia2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED17Anna Fali
1002Maisha X PerinCanada2024-03-25Dorl, James J Esq PROPOSAL26Asiya Javayant
1003Maisha W VenereIndia2024-04-02Benton, John B Jr RENEWAL78Stephen Shaw
1004Cody Z IturbideGermany2024-04-06Feiner Bros RENEWAL25Anna Fali
1005Johnson M GillianUnited Kingdom2024-03-23Buckley Miller Wright PROPOSAL48Stephen Shaw
1006Kaitlin H MaletGermany2024-03-30Feltz Printing Service NEGOTIATION26Anna Fali
1007Ricardo F ChuiIndia2024-03-26Chapman, Ross E Esq RENEWAL53Bernardo Dominic
1008Jennifer U DilliardIndia2024-04-09Commercial Press PROPOSAL74Ivan Magalhaes
1009Wickens P IturbideAustralia2024-03-29Truhlar And Truhlar Attys RENEWAL54Ioni Bowcher
1010James F OldroydUnited Kingdom2024-03-20Chemel, James L Cpa NEGOTIATION83Ioni Bowcher
1011Alejandro A MorascaCanada2024-04-06Chemel, James L Cpa NEGOTIATION13Onyama Limba
1012Jones C WieserCanada2024-03-25Chemel, James L Cpa PROPOSAL12Amy Elsner
1013Mujtaba F ButtIndia2024-03-30Commercial Press NEW34Anna Fali
1014Tony M PaprockiUnited Kingdom2024-04-07Chanay, Jeffrey A Esq PROPOSAL74Ivan Magalhaes
1015Johnson H GillianArgentina2024-03-31Dorl, James J Esq RENEWAL85Asiya Javayant
1016Izzy C FollerAustralia2024-04-14Commercial Press UNQUALIFIED82Xuxue Feng
1017Antonio F PerinArgentina2024-04-16Truhlar And Truhlar Attys UNQUALIFIED32Ioni Bowcher
1018Munro Z BriddickAustralia2024-04-12Feiner Bros UNQUALIFIED38Anna Fali
1019Ashley W KolmetzBrazil2024-04-16Feiner Bros RENEWAL45Amy Elsner
1020Johnson I GlickBrazil2024-04-03King, Christopher A Esq PROPOSAL97Amy Elsner
1021Ivar P KuskoSpain2024-03-31Rangoni Of Florence RENEWAL60Stephen Shaw
1022Claire S FlosiJapan2024-04-07Chapman, Ross E Esq RENEWAL29Onyama Limba
1023Leja N ChuiAustralia2024-03-25Truhlar And Truhlar Attys NEGOTIATION33Amy Elsner
1024Kadeem R OstroskyItaly2024-04-07Rousseaux, Michael Esq QUALIFIED37Elwin Sharvill
1025Jones Z MaletIndia2024-04-01Rousseaux, Michael Esq QUALIFIED89Anna Fali
1026Ivar T WaycottSpain2024-03-29Morlong Associates RENEWAL11Asiya Javayant
1027Mayumi Z GauchoRussia2024-03-27Feiner Bros QUALIFIED86Bernardo Dominic
1028Jefferson B BowleySpain2024-03-27Chanay, Jeffrey A Esq QUALIFIED29Ivan Magalhaes
1029Ashley O MacleadJapan2024-04-10Buckley Miller Wright NEGOTIATION69Bernardo Dominic
1030Morrow H BologniaItaly2024-03-26Printing Dimensions NEW45Stephen Shaw
1031Ashley F PaprockiRussia2024-04-14Commercial Press NEGOTIATION76Ivan Magalhaes
1032Ricardo Q OldroydGermany2024-04-18Buckley Miller Wright NEW47Bernardo Dominic
1033Adams Y SergiRussia2024-04-04Chanay, Jeffrey A Esq QUALIFIED25Asiya Javayant
1034Francesco N ButtItaly2024-03-29Buckley Miller Wright RENEWAL17Onyama Limba
1035Aditya I MorascaAustralia2024-03-21Chapman, Ross E Esq UNQUALIFIED21Asiya Javayant
1036Kadeem U FigeroaCanada2024-03-20Feiner Bros PROPOSAL57Xuxue Feng
1037Nicolas O NickaSpain2024-04-09Feltz Printing Service UNQUALIFIED45Onyama Limba
1038Mujtaba G IturbideUnited Kingdom2024-03-21Chanay, Jeffrey A Esq UNQUALIFIED74Ioni Bowcher
1039Rodrigues Q BowleySpain2024-04-18Feltz Printing Service NEGOTIATION7Ioni Bowcher
1040Rodrigues S CaldareraItaly2024-04-07Chapman, Ross E Esq UNQUALIFIED17Onyama Limba
1041Morrow N StockhamCanada2024-03-27Chemel, James L Cpa RENEWAL27Stephen Shaw
1042Darci K DilliardUnited Kingdom2024-03-23Truhlar And Truhlar Attys NEGOTIATION40Stephen Shaw
1043Greenwood K MacleadIndia2024-04-07Morlong Associates NEW47Onyama Limba
1044Izzy C RutaFrance2024-04-02Feltz Printing Service NEGOTIATION20Elwin Sharvill
1045Clifford I GlickIndia2024-04-17Chapman, Ross E Esq UNQUALIFIED9Elwin Sharvill
1046Mujtaba W MacleadIndia2024-03-27Rousseaux, Michael Esq RENEWAL63Stephen Shaw
1047Ashley A BowleyGermany2024-03-31Benton, John B Jr NEW63Stephen Shaw
1048Nicolas H GarufiIndia2024-03-21King, Christopher A Esq UNQUALIFIED52Asiya Javayant
1049Mujtaba H OstroskyBrazil2024-03-29Rousseaux, Michael Esq NEW36Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Wickens I PaprockiFranceBernardo Dominic NEW
Leja D SergiAustraliaAnna Fali NEW
Izzy G BologniaJapanBernardo Dominic NEW
Ivar J OstroskyAustraliaBernardo Dominic RENEWAL
David B ButtGermanyAmy Elsner UNQUALIFIED
Maria Z BologniaRussiaBernardo Dominic QUALIFIED
Alejandro N MaletBrazilIvan Magalhaes PROPOSAL
Maria J SlusarskiAustraliaStephen Shaw UNQUALIFIED
Claire R InouyeIndiaIvan Magalhaes NEGOTIATION
James P RutaItalyStephen Shaw NEW
Kadeem C SergiSpainXuxue Feng NEW
Julie X StockhamJapanIoni Bowcher QUALIFIED
Munro N SergiUnited KingdomAmy Elsner NEGOTIATION
Murillo Y WieserBrazilIoni Bowcher NEW
Octavia Y DarakjySpainStephen Shaw QUALIFIED
Rodrigues L DoeUnited KingdomElwin Sharvill PROPOSAL
Leon D MaletBrazilAmy Elsner UNQUALIFIED
Ricardo T DoeItalyAsiya Javayant RENEWAL
Salvatore N AlbaresItalyAmy Elsner RENEWAL
Smith D CampainFranceIoni Bowcher QUALIFIED
Isabel G KuskoFranceBernardo Dominic QUALIFIED
Julie J WaycottGermanyStephen Shaw NEGOTIATION
Leon L BriddickIndiaIvan Magalhaes RENEWAL
Stacey V VenereFranceBernardo Dominic RENEWAL
Stacey A FerenczJapanStephen Shaw RENEWAL
Octavia D DoeGermanyXuxue Feng PROPOSAL
Wickens O TollnerGermanyAsiya Javayant NEGOTIATION
Leon N MaletArgentinaAnna Fali RENEWAL
Isabel E ButtJapanIoni Bowcher RENEWAL
Chavez W RutaAustraliaStephen Shaw RENEWAL
Maria F WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Jones I InouyeRussiaAnna Fali PROPOSAL
Jones I CaudyAustraliaStephen Shaw NEW
Chavez Q GlickBrazilOnyama Limba PROPOSAL
James C ShinkoArgentinaAnna Fali NEGOTIATION
Morrow J PaprockiUnited KingdomStephen Shaw QUALIFIED
Murillo V MacleadFranceAmy Elsner UNQUALIFIED
Darci S CaldareraItalyIvan Magalhaes QUALIFIED
Kaitlin E MacleadArgentinaXuxue Feng NEW
James Y WhobreyFranceAmy Elsner NEGOTIATION
Adams P ChuiIndiaAmy Elsner QUALIFIED
Costa P SergiCanadaIoni Bowcher QUALIFIED
Jeanfrancois F SergiUnited KingdomIvan Magalhaes RENEWAL
Costa Y InouyeRussiaAsiya Javayant NEW
Misaki G WhobreyRussiaStephen Shaw QUALIFIED
Octavia D FollerCanadaIoni Bowcher PROPOSAL
Jennifer C SaylorsItalyOnyama Limba PROPOSAL
Costa G MorascaAustraliaAnna Fali RENEWAL
Ashley N PaprockiBrazilElwin Sharvill QUALIFIED
Wickens U FerenczJapanXuxue Feng RENEWAL
Frozen Columns
Name
Silvio X Oldroyd
Deepesh X Ruta
Salvatore U Rim
Deepesh D Nestle
Julie I Doe
Smith K Iturbide
Emily S Shinko
Greenwood H Morasca
David P Albares
Izzy T Waycott
Emily N Oldroyd
Mayumi T Garufi
James U Campain
James G Bolognia
Aruna Z Paprocki
Maria I Kusko
Leon U Flosi
Murillo U Stockham
Jeanfrancois U Ostrosky
Clifford E Sergi
Aditya D Schemmer
Cody M Butt
Rodrigues G Ferencz
Kaitlin Z Stenseth
Mayumi S Caudy
Salvatore L Whobrey
Stacey B Wieser
James G Chui
Jennifer W Darakjy
Silvio Y Dilliard
Greenwood W Foller
Deepesh M Amigon
Darci Z Kolmetz
Arvin C Rim
Julie Q Venere
Wickens E Stockham
Jennifer V Venere
Misaki I Kusko
Adams Q Gaucho
Maria Q Nicka
Juan P Bowley
Adams P Briddick
Cody T Glick
Wickens S Stenseth
Ashley W Kusko
Munro D Poquette
Julie Z Briddick
Smith E Ostrosky
Ricardo K Wieser
Morrow N Nestle
IdCountryDate
1000Japan2024-03-27
1001Canada2024-04-12
1002Spain2024-03-25
1003Italy2024-03-29
1004Brazil2024-04-03
1005Russia2024-04-12
1006Canada2024-03-20
1007India2024-03-31
1008Russia2024-03-28
1009Canada2024-04-01
1010Russia2024-03-26
1011France2024-04-04
1012United Kingdom2024-03-25
1013Brazil2024-04-01
1014Spain2024-04-05
1015Russia2024-04-13
1016United Kingdom2024-03-23
1017Argentina2024-04-15
1018Brazil2024-03-21
1019Brazil2024-04-05
1020Argentina2024-03-31
1021Canada2024-03-21
1022Japan2024-03-20
1023Russia2024-03-23
1024India2024-03-28
1025Italy2024-04-15
1026France2024-03-25
1027Japan2024-04-11
1028Australia2024-04-02
1029Italy2024-04-12
1030Brazil2024-04-16
1031Spain2024-04-15
1032Australia2024-04-13
1033Japan2024-04-10
1034India2024-03-26
1035Italy2024-03-22
1036France2024-04-03
1037Australia2024-04-08
1038Japan2024-04-16
1039United Kingdom2024-04-03
1040Japan2024-03-20
1041Russia2024-04-07
1042Italy2024-04-13
1043Germany2024-04-04
1044Japan2024-04-11
1045Spain2024-04-02
1046Canada2024-03-24
1047Russia2024-04-17
1048Canada2024-04-06
1049Brazil2024-04-12

On-Demand Data

NameIdCountryDate
Emily X Royster1000France2024-04-01
Mujtaba O Flosi1001United Kingdom2024-04-03
Jones P Inouye1002Italy2024-04-01
Ivar T Garufi1003Canada2024-04-12
Mayumi Y Slusarski1004Argentina2024-04-17
Kadeem T Rulapaugh1005Argentina2024-04-01
Ashley C Dilliard1006Russia2024-03-30
Johnson V Maclead1007Argentina2024-03-30
Jones H Kolmetz1008India2024-03-26
Johnson T Nestle1009Italy2024-04-18
Alejandro Q Waycott1010Japan2024-04-14
Rodrigues H Chui1011France2024-04-05
Alejandro V Maclead1012Argentina2024-03-21
Jennifer I Ostrosky1013Spain2024-03-30
Darci G Nestle1014Germany2024-03-27
James W Ruta1015India2024-04-10
Cody R Kolmetz1016Australia2024-03-29
Misaki C Figeroa1017Spain2024-04-13
Jones U Chui1018Japan2024-04-03
Emily D Ferencz1019India2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya U OstroskyRussiaXuxue Feng PROPOSAL
Tony E WaycottSpainAnna Fali PROPOSAL
Izzy H AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Aruna W StockhamSpainAnna Fali UNQUALIFIED
Stacey T MaletAustraliaOnyama Limba QUALIFIED
Aika V GauchoFranceAmy Elsner QUALIFIED
Wickens G NestleFranceIvan Magalhaes NEGOTIATION
Johnson F SchemmerItalyIvan Magalhaes UNQUALIFIED
Leon H DarakjySpainElwin Sharvill NEGOTIATION
Izzy X ButtIndiaAsiya Javayant NEGOTIATION
Salvatore O PoquetteIndiaElwin Sharvill NEGOTIATION
Alejandro I ButtRussiaStephen Shaw QUALIFIED
Alejandro P GlickBrazilOnyama Limba NEGOTIATION
Leja V TollnerSpainAmy Elsner UNQUALIFIED
Jeanfrancois Z FigeroaFranceBernardo Dominic QUALIFIED
Francesco B MacleadFranceOnyama Limba NEGOTIATION
Jones X RimAustraliaBernardo Dominic UNQUALIFIED
Jones R WaycottRussiaStephen Shaw NEW
Nicolas C CampainItalyBernardo Dominic NEW
Ivar X CampainBrazilBernardo Dominic UNQUALIFIED
Sinclair R RimFranceElwin Sharvill QUALIFIED
Mujtaba Y DarakjyIndiaBernardo Dominic QUALIFIED
Wickens E RoysterGermanyXuxue Feng RENEWAL
Maria T RulapaughAustraliaStephen Shaw NEGOTIATION
Aika R GlickAustraliaIvan Magalhaes RENEWAL
Francesco C ShinkoUnited KingdomOnyama Limba PROPOSAL
Deepesh Q MaletFranceAnna Fali UNQUALIFIED
Leon J OstroskyArgentinaAsiya Javayant QUALIFIED
Munro B RulapaughIndiaAsiya Javayant NEGOTIATION
Francesco B VenereBrazilBernardo Dominic QUALIFIED
Ashley F WieserCanadaXuxue Feng UNQUALIFIED
Aruna O SaylorsJapanIoni Bowcher PROPOSAL
Claire T NestleCanadaXuxue Feng RENEWAL
Mayumi E KolmetzGermanyStephen Shaw NEW
Stacey V GillianIndiaBernardo Dominic QUALIFIED
Claire M StensethArgentinaAnna Fali NEGOTIATION
Darci K StockhamFranceIvan Magalhaes NEGOTIATION
Julie I StockhamBrazilOnyama Limba RENEWAL
Juan D KuskoAustraliaXuxue Feng RENEWAL
Cody R TollnerIndiaElwin Sharvill 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>