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
Kaitlin H CaldareraGermanyIvan Magalhaes NEGOTIATION
Julie F FlosiArgentinaOnyama Limba NEGOTIATION
Clifford O StensethBrazilXuxue Feng QUALIFIED
Kadeem J FigeroaIndiaAsiya Javayant UNQUALIFIED
Munro Z ButtAustraliaStephen Shaw QUALIFIED
Rodrigues L MarrierCanadaAnna Fali RENEWAL
Ashley E DilliardBrazilAmy Elsner PROPOSAL
Jones Y OldroydRussiaXuxue Feng NEGOTIATION
Antonio Y MaletGermanyIvan Magalhaes NEGOTIATION
Salvatore B VocelkaJapanStephen Shaw UNQUALIFIED
Jeanfrancois E TollnerUnited KingdomIoni Bowcher RENEWAL
Cody A MarrierAustraliaOnyama Limba NEGOTIATION
Kaitlin G PaprockiItalyElwin Sharvill UNQUALIFIED
Clifford K DarakjyItalyBernardo Dominic UNQUALIFIED
Antonio T TollnerRussiaAsiya Javayant QUALIFIED
Morrow F MarrierIndiaElwin Sharvill PROPOSAL
Salvatore N NestleJapanStephen Shaw RENEWAL
Jones S InouyeAustraliaIoni Bowcher NEGOTIATION
Juan A StockhamItalyXuxue Feng PROPOSAL
Julie X StockhamUnited KingdomIvan Magalhaes RENEWAL
Emily G GillianBrazilXuxue Feng RENEWAL
Tony U DoeAustraliaAmy Elsner QUALIFIED
Arvin Z AmigonBrazilIoni Bowcher NEW
Mujtaba O BowleyArgentinaElwin Sharvill QUALIFIED
Darci G OldroydSpainElwin Sharvill RENEWAL
Stacey V InouyeJapanAnna Fali RENEWAL
Rodrigues A AlbaresIndiaAmy Elsner PROPOSAL
Octavia B IturbideAustraliaAmy Elsner UNQUALIFIED
Silvio B OldroydBrazilAsiya Javayant QUALIFIED
Aika L NickaBrazilStephen Shaw NEW
Costa B NickaRussiaXuxue Feng PROPOSAL
Kadeem M BologniaItalyOnyama Limba NEW
Julie K BowleyIndiaStephen Shaw UNQUALIFIED
Rodrigues G VenereGermanyElwin Sharvill UNQUALIFIED
Isabel T GillianRussiaStephen Shaw NEGOTIATION
Salvatore H FlosiAustraliaIvan Magalhaes PROPOSAL
Emily E SaylorsAustraliaBernardo Dominic PROPOSAL
Aika P ButtFranceBernardo Dominic NEW
Maria C BriddickArgentinaXuxue Feng NEGOTIATION
Mayumi J RoysterSpainStephen Shaw PROPOSAL
David U WhobreyBrazilAsiya Javayant UNQUALIFIED
Costa A MaletItalyElwin Sharvill RENEWAL
Julie L MaletRussiaElwin Sharvill UNQUALIFIED
Silvio P FlosiRussiaIoni Bowcher NEW
Morrow M RoysterArgentinaIoni Bowcher RENEWAL
Morrow C SlusarskiAustraliaIoni Bowcher QUALIFIED
Aditya T AmigonAustraliaAmy Elsner NEW
Arvin F GillianArgentinaXuxue Feng NEW
Aditya F GarufiIndiaXuxue Feng PROPOSAL
Aditya Y CaldareraBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan O WhobreyIndiaAnna Fali UNQUALIFIED
James E OstroskySpainBernardo Dominic RENEWAL
Cody L MaletJapanElwin Sharvill UNQUALIFIED
Leja O PoquetteCanadaIvan Magalhaes RENEWAL
Deepesh M AlbaresGermanyElwin Sharvill UNQUALIFIED
Maria X WieserRussiaXuxue Feng QUALIFIED
Deepesh R FerenczArgentinaBernardo Dominic NEGOTIATION
Juan W RimRussiaAmy Elsner NEW
Aika U DilliardFranceIoni Bowcher NEGOTIATION
Silvio Y FigeroaArgentinaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones R InouyeCanada2024-04-07Chanay, Jeffrey A Esq RENEWAL70Ioni Bowcher
1001Mayumi H GillianSpain2024-04-23Benton, John B Jr RENEWAL46Stephen Shaw
1002Aika R SergiAustralia2024-04-23Chapman, Ross E Esq QUALIFIED86Ioni Bowcher
1003Salvatore R CampainArgentina2024-04-25Commercial Press NEW70Xuxue Feng
1004Rodrigues A RutaSpain2024-04-03Feiner Bros PROPOSAL91Ivan Magalhaes
1005Jeanfrancois J FigeroaArgentina2024-04-22Buckley Miller Wright NEW87Ioni Bowcher
1006Stacey V KolmetzSpain2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED67Stephen Shaw
1007Aika K BologniaFrance2024-04-17Commercial Press UNQUALIFIED86Elwin Sharvill
1008Jeanfrancois E FerenczJapan2024-04-07Rousseaux, Michael Esq NEGOTIATION64Stephen Shaw
1009Juan N VenereCanada2024-04-20Buckley Miller Wright NEGOTIATION84Amy Elsner
1010Julie O CampainSpain2024-04-03Benton, John B Jr QUALIFIED86Asiya Javayant
1011Claire T RimItaly2024-03-29Rangoni Of Florence NEW82Amy Elsner
1012Rodrigues A GarufiUnited Kingdom2024-04-11King, Christopher A Esq UNQUALIFIED13Onyama Limba
1013Costa O VocelkaFrance2024-03-27Printing Dimensions PROPOSAL17Bernardo Dominic
1014Ivar Q GillianUnited Kingdom2024-04-19Dorl, James J Esq NEW97Ivan Magalhaes
1015David T KuskoUnited Kingdom2024-04-15Printing Dimensions NEW13Bernardo Dominic
1016Jones B CaldareraUnited Kingdom2024-03-30Feiner Bros PROPOSAL57Asiya Javayant
1017Kadeem B FollerCanada2024-04-24Feltz Printing Service QUALIFIED47Stephen Shaw
1018Aruna S DarakjyAustralia2024-04-04Printing Dimensions PROPOSAL98Stephen Shaw
1019Octavia T OldroydUnited Kingdom2024-04-13Morlong Associates NEW49Bernardo Dominic
1020Claire F DilliardUnited Kingdom2024-03-29Chanay, Jeffrey A Esq NEW74Amy Elsner
1021Wickens Q DarakjyGermany2024-04-11King, Christopher A Esq PROPOSAL29Onyama Limba
1022Munro C NestleJapan2024-04-03Feltz Printing Service PROPOSAL40Onyama Limba
1023Ashley E ChuiGermany2024-04-15Buckley Miller Wright NEGOTIATION28Bernardo Dominic
1024Jones P CaldareraIndia2024-03-31Chanay, Jeffrey A Esq PROPOSAL64Xuxue Feng
1025Kaitlin N SergiUnited Kingdom2024-04-19Feiner Bros PROPOSAL1Bernardo Dominic
1026Deepesh M TollnerBrazil2024-04-06Commercial Press UNQUALIFIED24Onyama Limba
1027Murillo E GillianRussia2024-03-27Chemel, James L Cpa UNQUALIFIED50Onyama Limba
1028Octavia M KuskoFrance2024-04-21Morlong Associates PROPOSAL14Anna Fali
1029Jennifer Q AlbaresSpain2024-04-01Chemel, James L Cpa PROPOSAL88Onyama Limba
1030Cody B SergiRussia2024-04-24King, Christopher A Esq NEGOTIATION82Anna Fali
1031Jennifer E GarufiSpain2024-04-03Commercial Press RENEWAL36Xuxue Feng
1032Faith G IturbideBrazil2024-04-02Buckley Miller Wright QUALIFIED11Asiya Javayant
1033Emily O VocelkaFrance2024-04-20Truhlar And Truhlar Attys NEGOTIATION49Stephen Shaw
1034Aika N InouyeItaly2024-04-04Printing Dimensions UNQUALIFIED19Stephen Shaw
1035Adams X GauchoIndia2024-04-08Commercial Press NEGOTIATION6Amy Elsner
1036Mayumi H AlbaresGermany2024-04-03Chemel, James L Cpa PROPOSAL48Onyama Limba
1037Antonio U AmigonUnited Kingdom2024-04-22Chemel, James L Cpa RENEWAL26Elwin Sharvill
1038Clifford D RulapaughBrazil2024-04-15Chemel, James L Cpa PROPOSAL51Asiya Javayant
1039Leon T VenereGermany2024-04-07Rousseaux, Michael Esq NEW69Amy Elsner
1040Jefferson A PaprockiItaly2024-04-14Dorl, James J Esq NEGOTIATION83Elwin Sharvill
1041Aditya L FollerGermany2024-03-31Chemel, James L Cpa RENEWAL44Onyama Limba
1042Johnson H ButtBrazil2024-04-23Printing Dimensions NEW78Amy Elsner
1043Jones B FlosiRussia2024-03-30Chanay, Jeffrey A Esq NEGOTIATION81Onyama Limba
1044Ashley O FigeroaIndia2024-04-12Chemel, James L Cpa PROPOSAL34Ivan Magalhaes
1045Jeanfrancois M FlosiAustralia2024-03-31Buckley Miller Wright NEW99Bernardo Dominic
1046Alejandro S RutaBrazil2024-04-12Printing Dimensions NEW2Stephen Shaw
1047Juan D FerenczRussia2024-03-31Chapman, Ross E Esq QUALIFIED67Amy Elsner
1048Sinclair C DarakjyJapan2024-04-02King, Christopher A Esq QUALIFIED49Stephen Shaw
1049Alejandro A ShinkoJapan2024-04-05Truhlar And Truhlar Attys NEGOTIATION69Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Johnson S CaldareraFranceAnna Fali NEW
Octavia E AmigonArgentinaAsiya Javayant QUALIFIED
Morrow B KuskoItalyAmy Elsner PROPOSAL
Murillo I StockhamArgentinaStephen Shaw QUALIFIED
Maisha B DilliardArgentinaIvan Magalhaes NEGOTIATION
James H BowleyBrazilXuxue Feng RENEWAL
Greenwood S MarrierItalyIvan Magalhaes RENEWAL
Alejandro U IturbideFranceIoni Bowcher RENEWAL
Kaitlin J StensethBrazilStephen Shaw QUALIFIED
Maisha F ShinkoBrazilXuxue Feng NEGOTIATION
Maria B MacleadFranceAmy Elsner QUALIFIED
Munro E StensethJapanStephen Shaw QUALIFIED
Jennifer N ChuiCanadaStephen Shaw NEW
Nicolas Y AmigonIndiaXuxue Feng NEGOTIATION
Ricardo N SaylorsCanadaAmy Elsner PROPOSAL
Ashley Z MorascaArgentinaAnna Fali QUALIFIED
Costa O PoquetteIndiaAmy Elsner NEW
Izzy V OldroydSpainIoni Bowcher UNQUALIFIED
Nicolas O WieserItalyXuxue Feng NEW
Leja R CampainIndiaIvan Magalhaes NEGOTIATION
Cody B VenereIndiaIvan Magalhaes PROPOSAL
Mayumi N KolmetzUnited KingdomBernardo Dominic NEW
Izzy P CampainSpainAmy Elsner QUALIFIED
Sinclair P MarrierGermanyOnyama Limba RENEWAL
Faith F MorascaAustraliaIoni Bowcher UNQUALIFIED
Arvin M StockhamArgentinaAmy Elsner NEW
Greenwood F KuskoBrazilStephen Shaw NEGOTIATION
Leon R GauchoSpainBernardo Dominic NEGOTIATION
James M RoysterBrazilXuxue Feng NEW
Arvin E FigeroaUnited KingdomXuxue Feng PROPOSAL
Misaki W KuskoArgentinaBernardo Dominic UNQUALIFIED
Nicolas C GauchoGermanyStephen Shaw PROPOSAL
Salvatore X MorascaGermanyStephen Shaw PROPOSAL
Francesco P GillianUnited KingdomOnyama Limba RENEWAL
Maria K InouyeGermanyAsiya Javayant NEW
Isabel T InouyeIndiaXuxue Feng PROPOSAL
Francesco J KuskoGermanyIoni Bowcher PROPOSAL
Tony X BowleyAustraliaAnna Fali UNQUALIFIED
Aruna E MaletSpainAsiya Javayant PROPOSAL
Stacey Y DoeArgentinaOnyama Limba RENEWAL
Arvin I InouyeSpainIoni Bowcher RENEWAL
Cody F DarakjyFranceAnna Fali NEGOTIATION
Silvio X FollerSpainAsiya Javayant NEW
Wickens Z NickaAustraliaAsiya Javayant RENEWAL
Nicolas T AmigonArgentinaAsiya Javayant UNQUALIFIED
Ivar W RoysterCanadaXuxue Feng PROPOSAL
Octavia P CaudyBrazilBernardo Dominic QUALIFIED
Misaki O VenereRussiaOnyama Limba RENEWAL
Ricardo E WaycottAustraliaOnyama Limba QUALIFIED
Ashley D NestleUnited KingdomBernardo Dominic QUALIFIED
Frozen Columns
Name
Costa Y Stockham
Claire S Caudy
Greenwood O Campain
Leon H Ostrosky
Murillo A Rim
Aika H Shinko
Jennifer F Whobrey
Smith Z Gaucho
Nicolas F Garufi
Ricardo W Tollner
Leon R Royster
Aika G Malet
Antonio A Rulapaugh
James D Marrier
Jones B Nicka
Costa P Schemmer
Izzy U Gillian
Johnson D Campain
Cody W Slusarski
James T Garufi
Ricardo I Waycott
Julie Y Saylors
Mayumi B Rulapaugh
Adams B Chui
Misaki G Marrier
Isabel L Maclead
Maria M Amigon
Jefferson K Ferencz
Claire I Kusko
Chavez I Malet
Leja V Kolmetz
Aika C Maclead
Aditya H Garufi
Costa C Briddick
Maisha P Wieser
Mayumi A Flosi
Jeanfrancois M Waycott
Munro U Foller
Aika L Marrier
Jones Z Briddick
Greenwood O Perin
Cody C Garufi
Aika E Ruta
Mujtaba F Perin
Ashley L Venere
Jeanfrancois B Marrier
Leja B Maclead
Tony T Foller
Ricardo F Nestle
Julie T Caldarera
IdCountryDate
1000Australia2024-04-09
1001Russia2024-04-21
1002Canada2024-03-28
1003Spain2024-04-07
1004Italy2024-04-22
1005Australia2024-03-31
1006France2024-04-09
1007United Kingdom2024-04-04
1008Germany2024-04-25
1009Italy2024-03-28
1010Germany2024-04-11
1011Japan2024-04-16
1012Japan2024-04-16
1013Japan2024-04-22
1014Russia2024-04-05
1015Brazil2024-03-31
1016Australia2024-04-15
1017India2024-04-19
1018Australia2024-04-17
1019Russia2024-03-28
1020France2024-04-04
1021India2024-04-22
1022Italy2024-04-18
1023Germany2024-03-31
1024United Kingdom2024-04-25
1025Germany2024-04-02
1026Australia2024-04-20
1027Argentina2024-04-18
1028France2024-04-25
1029Russia2024-04-08
1030Argentina2024-04-20
1031Canada2024-04-25
1032Argentina2024-03-28
1033France2024-04-20
1034Australia2024-03-29
1035Japan2024-04-13
1036Canada2024-03-31
1037Spain2024-04-14
1038Canada2024-03-28
1039Italy2024-03-30
1040Australia2024-04-10
1041United Kingdom2024-04-11
1042Spain2024-04-04
1043Spain2024-04-18
1044France2024-04-06
1045France2024-04-03
1046Russia2024-04-05
1047Italy2024-04-24
1048Canada2024-03-30
1049Argentina2024-04-10

On-Demand Data

NameIdCountryDate
Maria Y Schemmer1000Argentina2024-04-16
Octavia K Malet1001Japan2024-03-27
Morrow C Ferencz1002Canada2024-04-21
Deepesh X Gaucho1003United Kingdom2024-04-12
Antonio T Dilliard1004France2024-03-29
Kaitlin Y Ferencz1005Italy2024-03-29
Maria Z Kusko1006Canada2024-04-07
Chavez W Butt1007Spain2024-04-19
Jennifer Q Doe1008Germany2024-04-21
Greenwood Z Morasca1009Australia2024-04-23
Aditya W Amigon1010Germany2024-03-27
Jennifer N Kusko1011Japan2024-04-06
Cody H Garufi1012Canada2024-04-11
Aditya B Gaucho1013Canada2024-04-25
Nicolas E Shinko1014India2024-04-16
Ashley V Butt1015United Kingdom2024-04-07
Emily P Poquette1016Canada2024-03-27
Jennifer G Shinko1017Australia2024-04-12
Aditya T Whobrey1018Brazil2024-04-20
Munro M Gillian1019Brazil2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois V PerinRussiaAmy Elsner NEGOTIATION
Sinclair Y AlbaresUnited KingdomStephen Shaw QUALIFIED
Juan C DoeJapanIvan Magalhaes NEGOTIATION
Tony J WhobreyRussiaAmy Elsner NEW
Salvatore J ChuiAustraliaAnna Fali RENEWAL
Emily X SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Faith E BowleyJapanIvan Magalhaes UNQUALIFIED
Aika U KuskoGermanyAnna Fali UNQUALIFIED
Maisha I RoysterItalyXuxue Feng RENEWAL
Aditya F FollerCanadaOnyama Limba UNQUALIFIED
Isabel T SchemmerItalyStephen Shaw PROPOSAL
Izzy Y PoquetteGermanyBernardo Dominic PROPOSAL
Greenwood X OstroskyRussiaAmy Elsner PROPOSAL
Darci U AmigonUnited KingdomBernardo Dominic QUALIFIED
Darci G WieserCanadaAnna Fali NEW
Sinclair I MorascaRussiaOnyama Limba RENEWAL
Smith F KolmetzBrazilElwin Sharvill NEGOTIATION
Adams B VocelkaJapanBernardo Dominic UNQUALIFIED
Kaitlin T ChuiArgentinaOnyama Limba PROPOSAL
Munro G PerinGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois V MaletJapanOnyama Limba NEW
Wickens F GarufiArgentinaIoni Bowcher PROPOSAL
Leja V KolmetzSpainBernardo Dominic NEGOTIATION
Kadeem I RutaSpainAmy Elsner QUALIFIED
Jones I FlosiRussiaIvan Magalhaes UNQUALIFIED
Alejandro P RutaIndiaAnna Fali QUALIFIED
Leon B FollerRussiaAsiya Javayant UNQUALIFIED
Munro A CaudyGermanyElwin Sharvill NEGOTIATION
Chavez C RimIndiaAmy Elsner NEGOTIATION
David L GillianAustraliaBernardo Dominic PROPOSAL
Wickens D MaletSpainStephen Shaw NEGOTIATION
Maisha P InouyeArgentinaIoni Bowcher NEGOTIATION
Alejandro D WaycottUnited KingdomStephen Shaw UNQUALIFIED
Nicolas M IturbideRussiaAsiya Javayant RENEWAL
Misaki D SergiCanadaAnna Fali RENEWAL
Murillo J MaletFranceBernardo Dominic NEGOTIATION
Jones L PoquetteBrazilElwin Sharvill UNQUALIFIED
Clifford J CaldareraArgentinaBernardo Dominic NEGOTIATION
Maisha I KuskoUnited KingdomElwin Sharvill RENEWAL
Aditya I KuskoRussiaAmy Elsner QUALIFIED

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