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
Ivar S BologniaRussiaOnyama Limba NEGOTIATION
Juan U StensethBrazilAmy Elsner PROPOSAL
Darci B GlickUnited KingdomElwin Sharvill NEGOTIATION
Kadeem M DilliardIndiaOnyama Limba RENEWAL
Darci Z ShinkoItalyAmy Elsner NEGOTIATION
Mujtaba F BologniaJapanIvan Magalhaes NEW
Isabel L FlosiRussiaIoni Bowcher PROPOSAL
Francesco D AmigonAustraliaAnna Fali PROPOSAL
Stacey C NestleRussiaAsiya Javayant RENEWAL
Deepesh Y DarakjyJapanBernardo Dominic NEW
Faith T GarufiBrazilElwin Sharvill QUALIFIED
James Z RulapaughArgentinaIoni Bowcher NEW
Alejandro S GauchoIndiaElwin Sharvill QUALIFIED
Maisha G RoysterIndiaAsiya Javayant NEW
Kaitlin Y BologniaFranceIvan Magalhaes PROPOSAL
Costa V DoeAustraliaAsiya Javayant RENEWAL
Arvin L NickaRussiaXuxue Feng NEW
Juan Y VocelkaAustraliaAnna Fali NEW
Ivar H BologniaSpainXuxue Feng NEW
Leon M MacleadJapanAsiya Javayant NEGOTIATION
Nicolas N BriddickItalyIoni Bowcher UNQUALIFIED
Alejandro E IturbideGermanyStephen Shaw UNQUALIFIED
Francesco W SchemmerGermanyOnyama Limba QUALIFIED
Morrow P RutaGermanyBernardo Dominic NEW
Francesco I AmigonFranceElwin Sharvill QUALIFIED
Jennifer T SlusarskiBrazilAnna Fali NEW
Izzy I CampainIndiaElwin Sharvill UNQUALIFIED
Mujtaba O FollerFranceAmy Elsner QUALIFIED
Tony N VenereArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois W VocelkaJapanOnyama Limba PROPOSAL
Aika I KuskoIndiaStephen Shaw RENEWAL
Chavez U PoquetteRussiaBernardo Dominic NEW
Leon G MaletBrazilBernardo Dominic NEGOTIATION
Misaki F BologniaUnited KingdomXuxue Feng RENEWAL
Arvin P WieserIndiaAnna Fali UNQUALIFIED
Wickens B RoysterCanadaElwin Sharvill NEW
David M ShinkoIndiaAnna Fali QUALIFIED
Adams A DoeRussiaAmy Elsner RENEWAL
Kaitlin B MacleadGermanyIvan Magalhaes PROPOSAL
Rodrigues S SlusarskiFranceBernardo Dominic NEW
Isabel U RulapaughFranceElwin Sharvill PROPOSAL
David G OldroydArgentinaOnyama Limba RENEWAL
Salvatore U BriddickGermanyAsiya Javayant UNQUALIFIED
Deepesh O KuskoIndiaAsiya Javayant UNQUALIFIED
Nicolas R GauchoRussiaStephen Shaw QUALIFIED
Murillo A DarakjyArgentinaIoni Bowcher NEGOTIATION
Aruna E FollerFranceElwin Sharvill NEW
Adams C ButtCanadaIvan Magalhaes QUALIFIED
Darci T KuskoArgentinaAsiya Javayant NEW
Aika W WaycottAustraliaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Smith G NickaSpainIvan Magalhaes RENEWAL
Clifford N SergiUnited KingdomElwin Sharvill NEGOTIATION
Kadeem K StensethSpainAmy Elsner UNQUALIFIED
Izzy A SaylorsArgentinaAsiya Javayant NEGOTIATION
Misaki E StockhamUnited KingdomAnna Fali NEW
Nicolas D VenereBrazilAsiya Javayant PROPOSAL
Sinclair O WaycottSpainIvan Magalhaes NEW
Mujtaba A DilliardCanadaBernardo Dominic UNQUALIFIED
Leon V StockhamSpainAnna Fali PROPOSAL
Costa H NestleUnited KingdomAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore A RoysterRussia2024-04-30Morlong Associates NEW9Onyama Limba
1001Darci T ChuiAustralia2024-04-19Chanay, Jeffrey A Esq PROPOSAL53Bernardo Dominic
1002Jones X OstroskyRussia2024-04-24Truhlar And Truhlar Attys RENEWAL75Ioni Bowcher
1003David Z CampainRussia2024-04-27Buckley Miller Wright NEW14Ivan Magalhaes
1004Mayumi E FlosiSpain2024-04-19Morlong Associates PROPOSAL1Amy Elsner
1005Aditya L FollerCanada2024-05-07Commercial Press RENEWAL24Onyama Limba
1006Emily F GauchoIndia2024-04-10Feltz Printing Service RENEWAL3Amy Elsner
1007Isabel D KolmetzRussia2024-04-14Feltz Printing Service PROPOSAL66Xuxue Feng
1008Aditya B GarufiCanada2024-05-04Commercial Press UNQUALIFIED66Onyama Limba
1009Juan W GarufiRussia2024-05-09Chapman, Ross E Esq PROPOSAL24Stephen Shaw
1010Juan E DarakjyGermany2024-04-20Benton, John B Jr NEGOTIATION25Stephen Shaw
1011David V DarakjyIndia2024-04-22Feltz Printing Service QUALIFIED49Amy Elsner
1012Greenwood F TollnerUnited Kingdom2024-04-22Feltz Printing Service NEW67Ivan Magalhaes
1013Clifford M SergiBrazil2024-04-26Benton, John B Jr PROPOSAL54Asiya Javayant
1014Clifford Q RulapaughRussia2024-04-16Morlong Associates RENEWAL61Bernardo Dominic
1015Jefferson W FerenczSpain2024-05-06Chapman, Ross E Esq QUALIFIED18Anna Fali
1016Cody W RoysterArgentina2024-04-18Morlong Associates PROPOSAL19Ivan Magalhaes
1017Clifford L FerenczRussia2024-04-19Chapman, Ross E Esq PROPOSAL44Amy Elsner
1018Aika P SaylorsArgentina2024-04-24Chanay, Jeffrey A Esq NEGOTIATION4Bernardo Dominic
1019Kadeem M FlosiIndia2024-04-30Morlong Associates RENEWAL50Asiya Javayant
1020Cody V SlusarskiIndia2024-04-24Benton, John B Jr UNQUALIFIED87Amy Elsner
1021Nicolas G AmigonUnited Kingdom2024-05-01Truhlar And Truhlar Attys NEW10Ioni Bowcher
1022Julie Z FlosiItaly2024-05-09Chanay, Jeffrey A Esq UNQUALIFIED4Asiya Javayant
1023Adams S RimSpain2024-05-04Chemel, James L Cpa NEW22Ivan Magalhaes
1024Munro S IturbideCanada2024-04-11Feiner Bros UNQUALIFIED35Xuxue Feng
1025Smith D PoquetteAustralia2024-04-22Feiner Bros NEGOTIATION76Elwin Sharvill
1026Mujtaba L MacleadSpain2024-05-01Feltz Printing Service UNQUALIFIED14Bernardo Dominic
1027Salvatore U WaycottUnited Kingdom2024-04-14Feiner Bros QUALIFIED46Bernardo Dominic
1028David O WieserBrazil2024-04-18Commercial Press QUALIFIED89Xuxue Feng
1029Cody G SchemmerSpain2024-04-28Rousseaux, Michael Esq RENEWAL12Amy Elsner
1030Leon B KolmetzFrance2024-04-28Buckley Miller Wright RENEWAL40Elwin Sharvill
1031Chavez K BowleyIndia2024-04-13Commercial Press QUALIFIED40Ioni Bowcher
1032Ashley M SaylorsSpain2024-04-19Buckley Miller Wright QUALIFIED78Anna Fali
1033David A InouyeCanada2024-05-01Feltz Printing Service QUALIFIED35Stephen Shaw
1034Johnson K MaletRussia2024-04-21Printing Dimensions UNQUALIFIED9Anna Fali
1035Mujtaba L StensethItaly2024-05-06Morlong Associates PROPOSAL41Stephen Shaw
1036Costa P ButtBrazil2024-04-18Feltz Printing Service PROPOSAL32Bernardo Dominic
1037Chavez H ButtArgentina2024-04-27Feltz Printing Service RENEWAL43Xuxue Feng
1038David P MaletCanada2024-04-22Benton, John B Jr NEW41Asiya Javayant
1039Mujtaba N FerenczFrance2024-04-28Feiner Bros PROPOSAL66Xuxue Feng
1040Juan M RutaAustralia2024-05-09Morlong Associates QUALIFIED87Amy Elsner
1041James K PoquetteIndia2024-04-18Buckley Miller Wright UNQUALIFIED4Elwin Sharvill
1042Kadeem P RulapaughUnited Kingdom2024-04-30Truhlar And Truhlar Attys NEW30Amy Elsner
1043Smith G PerinCanada2024-05-06Feltz Printing Service PROPOSAL50Stephen Shaw
1044Aditya M MaletIndia2024-04-19Rangoni Of Florence NEW84Ivan Magalhaes
1045Aditya G TollnerGermany2024-04-21Feltz Printing Service NEW28Elwin Sharvill
1046James D SaylorsAustralia2024-04-17Printing Dimensions NEGOTIATION22Anna Fali
1047Maisha Z StensethItaly2024-04-30King, Christopher A Esq NEW20Ioni Bowcher
1048David E WaycottIndia2024-04-21Truhlar And Truhlar Attys QUALIFIED32Elwin Sharvill
1049James M VocelkaJapan2024-05-06Morlong Associates NEGOTIATION51Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Izzy U BriddickFranceAnna Fali UNQUALIFIED
Jones X KuskoCanadaIoni Bowcher QUALIFIED
Kadeem O MacleadFranceAmy Elsner NEW
Tony U DoeItalyOnyama Limba RENEWAL
Claire L IturbideCanadaXuxue Feng PROPOSAL
Murillo T CaudyAustraliaStephen Shaw NEW
Deepesh Q WieserJapanAsiya Javayant NEW
Jeanfrancois S ChuiJapanAsiya Javayant NEW
Tony S SergiArgentinaAmy Elsner NEW
Salvatore C KolmetzSpainBernardo Dominic PROPOSAL
Darci P GarufiAustraliaAsiya Javayant NEW
Darci Q SergiIndiaBernardo Dominic RENEWAL
Sinclair N CampainArgentinaBernardo Dominic UNQUALIFIED
Faith I InouyeCanadaBernardo Dominic QUALIFIED
Clifford K BriddickSpainAsiya Javayant UNQUALIFIED
Aika I KolmetzIndiaIoni Bowcher RENEWAL
Chavez Y KuskoItalyIvan Magalhaes PROPOSAL
Julie M BologniaCanadaAnna Fali NEW
Antonio X NickaJapanElwin Sharvill QUALIFIED
Jones A FlosiGermanyAsiya Javayant QUALIFIED
Salvatore L NickaFranceXuxue Feng PROPOSAL
Morrow I AmigonIndiaXuxue Feng RENEWAL
Misaki I DilliardItalyIvan Magalhaes PROPOSAL
Emily E RulapaughBrazilElwin Sharvill UNQUALIFIED
Ashley T StensethGermanyAmy Elsner NEW
Sinclair P FerenczIndiaOnyama Limba NEW
Francesco D SergiJapanElwin Sharvill PROPOSAL
Jones G RimItalyIvan Magalhaes UNQUALIFIED
Rodrigues I WieserSpainBernardo Dominic PROPOSAL
Nicolas W DilliardIndiaAmy Elsner UNQUALIFIED
Cody R OstroskyCanadaIoni Bowcher RENEWAL
Faith L SchemmerIndiaBernardo Dominic UNQUALIFIED
Leon M ShinkoSpainBernardo Dominic NEGOTIATION
Smith L SlusarskiJapanIoni Bowcher NEGOTIATION
Chavez I CaldareraGermanyXuxue Feng NEW
Rodrigues O WaycottRussiaBernardo Dominic NEGOTIATION
Maria S SchemmerCanadaBernardo Dominic QUALIFIED
Smith Z DarakjySpainBernardo Dominic NEGOTIATION
Julie G ShinkoSpainAmy Elsner UNQUALIFIED
Greenwood F RoysterIndiaOnyama Limba NEW
Juan X DilliardGermanyIoni Bowcher PROPOSAL
Johnson W ChuiSpainElwin Sharvill UNQUALIFIED
Jennifer U VocelkaUnited KingdomElwin Sharvill RENEWAL
Juan S FigeroaAustraliaBernardo Dominic NEGOTIATION
Francesco C WieserRussiaAnna Fali PROPOSAL
Jennifer Z MacleadSpainAnna Fali UNQUALIFIED
Emily C TollnerItalyIvan Magalhaes PROPOSAL
Emily U KuskoBrazilIvan Magalhaes NEGOTIATION
Alejandro E WhobreyAustraliaIoni Bowcher RENEWAL
Adams J PerinBrazilIoni Bowcher QUALIFIED
Frozen Columns
Name
Juan Y Doe
Juan I Oldroyd
Isabel Z Darakjy
Emily G Figeroa
Izzy F Malet
Deepesh Q Campain
Aruna F Chui
Cody T Figeroa
Greenwood I Waycott
Aruna M Albares
Aika J Flosi
Tony F Briddick
Julie U Amigon
Deepesh W Whobrey
Leon T Perin
Julie R Malet
Wickens G Schemmer
Nicolas Q Nicka
Jones N Bolognia
Jones E Ruta
Tony I Maclead
Aruna X Foller
Aika G Sergi
Silvio P Venere
Antonio V Chui
Kadeem E Oldroyd
Izzy W Shinko
Tony Q Whobrey
Stacey E Stockham
Julie K Inouye
Jefferson I Kusko
Francesco H Ruta
Wickens H Glick
Smith P Briddick
Leja N Stockham
Smith M Gaucho
Isabel F Malet
Adams H Perin
Nicolas O Ostrosky
Ivar D Morasca
Wickens C Albares
Greenwood Z Wieser
Julie T Caudy
Jeanfrancois E Tollner
Emily G Schemmer
Wickens R Gillian
Cody N Kusko
Tony I Garufi
Costa B Gillian
Aruna H Nicka
IdCountryDate
1000Italy2024-04-22
1001Japan2024-05-07
1002Argentina2024-04-20
1003France2024-04-11
1004Australia2024-04-11
1005Argentina2024-04-27
1006Russia2024-04-15
1007Germany2024-05-03
1008Germany2024-04-25
1009Italy2024-04-13
1010Brazil2024-04-22
1011Italy2024-04-22
1012Russia2024-04-14
1013Argentina2024-04-10
1014Australia2024-05-07
1015Canada2024-05-03
1016Germany2024-04-27
1017Italy2024-05-09
1018Canada2024-05-08
1019Italy2024-04-23
1020India2024-04-12
1021Russia2024-04-14
1022Brazil2024-04-30
1023Russia2024-04-27
1024India2024-04-25
1025Japan2024-04-27
1026France2024-04-27
1027United Kingdom2024-04-11
1028Canada2024-05-03
1029Germany2024-05-01
1030United Kingdom2024-04-30
1031Spain2024-04-18
1032India2024-04-15
1033Japan2024-04-27
1034Australia2024-05-03
1035United Kingdom2024-04-27
1036Argentina2024-04-28
1037Argentina2024-04-13
1038Italy2024-04-20
1039Canada2024-04-13
1040Japan2024-05-01
1041Brazil2024-04-30
1042Russia2024-05-05
1043Germany2024-05-01
1044Spain2024-04-10
1045Spain2024-04-27
1046United Kingdom2024-04-12
1047Argentina2024-04-22
1048Germany2024-05-07
1049Canada2024-04-16

On-Demand Data

NameIdCountryDate
Smith S Flosi1000Spain2024-04-22
Aditya R Gillian1001Japan2024-05-08
Ashley P Ruta1002Brazil2024-04-28
Silvio Q Darakjy1003Germany2024-04-15
Smith T Saylors1004Canada2024-04-29
Kadeem W Schemmer1005Russia2024-05-01
Greenwood E Ruta1006Brazil2024-05-05
Greenwood X Shinko1007Germany2024-04-27
Maisha T Gillian1008Canada2024-05-01
Maisha W Morasca1009United Kingdom2024-04-20
Chavez C Poquette1010Argentina2024-04-11
Leon Y Dilliard1011Australia2024-04-17
Smith T Darakjy1012Russia2024-04-15
Claire J Iturbide1013Germany2024-04-30
Leja G Bolognia1014India2024-04-19
Jennifer K Gillian1015France2024-04-11
Juan K Nicka1016France2024-04-22
Aika F Venere1017Russia2024-04-21
Emily N Glick1018India2024-04-19
Kadeem Z Perin1019Canada2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar Z SergiSpainBernardo Dominic PROPOSAL
Ivar V GillianIndiaIvan Magalhaes QUALIFIED
Julie Q NickaAustraliaAsiya Javayant NEGOTIATION
Rodrigues U VocelkaIndiaAnna Fali RENEWAL
Izzy X DarakjyUnited KingdomBernardo Dominic RENEWAL
Stacey H BologniaAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois Q StockhamUnited KingdomElwin Sharvill NEGOTIATION
Octavia E AlbaresItalyStephen Shaw NEW
Aruna R ButtJapanIvan Magalhaes NEW
Mujtaba B RimUnited KingdomElwin Sharvill QUALIFIED
Murillo M MaletBrazilBernardo Dominic RENEWAL
Greenwood U GauchoCanadaStephen Shaw QUALIFIED
Cody L FlosiGermanyAnna Fali UNQUALIFIED
Stacey S ShinkoArgentinaAnna Fali UNQUALIFIED
Leon N StockhamRussiaOnyama Limba NEGOTIATION
Kadeem C DoeFranceElwin Sharvill PROPOSAL
Darci P SlusarskiGermanyXuxue Feng PROPOSAL
Stacey X WaycottArgentinaIvan Magalhaes RENEWAL
Izzy Q WieserAustraliaIvan Magalhaes NEW
Jefferson W CampainGermanyStephen Shaw QUALIFIED
Murillo Y BowleySpainOnyama Limba QUALIFIED
Isabel J OstroskyFranceXuxue Feng NEGOTIATION
Kaitlin I RutaArgentinaAnna Fali RENEWAL
James H GlickRussiaAnna Fali NEGOTIATION
Isabel E AmigonAustraliaStephen Shaw NEW
Clifford G KuskoGermanyAsiya Javayant NEW
Ashley I FlosiBrazilAnna Fali NEGOTIATION
Kaitlin H NickaCanadaAsiya Javayant NEGOTIATION
Nicolas A GauchoRussiaBernardo Dominic PROPOSAL
Emily K NickaJapanAmy Elsner PROPOSAL
Octavia H SergiJapanAmy Elsner NEW
Cody Z StockhamUnited KingdomIoni Bowcher RENEWAL
David C ButtAustraliaAnna Fali PROPOSAL
Leon S BologniaArgentinaAmy Elsner UNQUALIFIED
Kadeem P WhobreyArgentinaIvan Magalhaes PROPOSAL
Wickens B NickaIndiaIoni Bowcher PROPOSAL
Sinclair F GillianAustraliaAmy Elsner NEW
Silvio O StensethIndiaXuxue Feng QUALIFIED
Aditya W BowleyGermanyBernardo Dominic NEW
Mujtaba W FollerSpainElwin 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>