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
Murillo L FlosiIndiaElwin Sharvill NEW
Claire F NickaItalyAmy Elsner RENEWAL
Kadeem G AmigonGermanyXuxue Feng PROPOSAL
Mujtaba V SlusarskiBrazilElwin Sharvill NEW
Julie F WieserRussiaAmy Elsner RENEWAL
Leon D ChuiRussiaBernardo Dominic RENEWAL
Antonio R GillianUnited KingdomAsiya Javayant QUALIFIED
Jefferson B MaletGermanyOnyama Limba PROPOSAL
Silvio Y SchemmerJapanBernardo Dominic NEGOTIATION
Isabel V PoquetteRussiaAmy Elsner UNQUALIFIED
Greenwood M CaudyAustraliaAmy Elsner PROPOSAL
Greenwood P MorascaCanadaElwin Sharvill RENEWAL
Kaitlin J InouyeFranceAmy Elsner NEW
Julie C SergiJapanXuxue Feng RENEWAL
Arvin S WieserBrazilIoni Bowcher RENEWAL
Izzy P DarakjyFranceIvan Magalhaes QUALIFIED
Claire G GauchoBrazilAnna Fali NEGOTIATION
Jeanfrancois O InouyeItalyXuxue Feng QUALIFIED
Morrow H BowleyRussiaAsiya Javayant PROPOSAL
Francesco V FollerGermanyBernardo Dominic RENEWAL
Rodrigues E DarakjyIndiaOnyama Limba PROPOSAL
Izzy O FlosiGermanyStephen Shaw RENEWAL
Izzy K SlusarskiItalyStephen Shaw NEW
Chavez X MaletArgentinaElwin Sharvill RENEWAL
Aruna L GarufiJapanElwin Sharvill PROPOSAL
Costa W DarakjyIndiaAmy Elsner NEGOTIATION
Leja W CampainArgentinaAnna Fali NEGOTIATION
Wickens D NickaArgentinaXuxue Feng PROPOSAL
Francesco X WhobreyRussiaOnyama Limba UNQUALIFIED
Leja K GarufiCanadaAsiya Javayant PROPOSAL
Aika P DoeIndiaAmy Elsner PROPOSAL
Misaki B NestleSpainBernardo Dominic PROPOSAL
Ricardo E OstroskySpainAmy Elsner QUALIFIED
Jones U MarrierFranceAnna Fali NEGOTIATION
Leja O ButtItalyAmy Elsner PROPOSAL
Ashley L AmigonRussiaXuxue Feng QUALIFIED
Munro Z RulapaughIndiaIoni Bowcher NEW
Maria Y MacleadAustraliaElwin Sharvill RENEWAL
Rodrigues E DarakjyCanadaAnna Fali PROPOSAL
Isabel F InouyeIndiaIoni Bowcher NEW
Salvatore Q RoysterJapanAmy Elsner NEW
Kaitlin C PaprockiArgentinaOnyama Limba RENEWAL
Maria B DarakjyArgentinaAsiya Javayant NEW
Leon Q ButtUnited KingdomXuxue Feng NEGOTIATION
Cody R GauchoJapanElwin Sharvill NEGOTIATION
Leon H PoquetteCanadaXuxue Feng UNQUALIFIED
David L VenereIndiaBernardo Dominic RENEWAL
Ivar Q SchemmerUnited KingdomIvan Magalhaes NEW
Munro H SchemmerSpainBernardo Dominic UNQUALIFIED
Sinclair A DoeItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams I PoquetteCanadaAsiya Javayant PROPOSAL
Octavia F MaletBrazilAmy Elsner NEW
Leja P IturbideCanadaXuxue Feng RENEWAL
Aika N PoquetteRussiaStephen Shaw NEW
Maria V RimJapanAnna Fali RENEWAL
Octavia H FigeroaBrazilAnna Fali PROPOSAL
Juan N MorascaJapanStephen Shaw RENEWAL
Francesco E DilliardBrazilOnyama Limba NEGOTIATION
Arvin U WhobreyJapanIoni Bowcher QUALIFIED
Deepesh C MorascaUnited KingdomIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson M StensethIndia2024-04-13King, Christopher A Esq PROPOSAL16Ioni Bowcher
1001Arvin R ButtCanada2024-04-12Feiner Bros RENEWAL37Ioni Bowcher
1002Aika G StensethUnited Kingdom2024-04-19Printing Dimensions RENEWAL62Stephen Shaw
1003Stacey M BowleyArgentina2024-04-20Chemel, James L Cpa NEW61Anna Fali
1004Chavez N PoquetteSpain2024-05-08Buckley Miller Wright NEW79Elwin Sharvill
1005Maria D StockhamUnited Kingdom2024-05-10Commercial Press RENEWAL83Ivan Magalhaes
1006Izzy Z FigeroaArgentina2024-04-22Dorl, James J Esq UNQUALIFIED46Ioni Bowcher
1007Ashley V MarrierIndia2024-04-26Rangoni Of Florence QUALIFIED82Onyama Limba
1008Mujtaba W ButtJapan2024-05-04Chemel, James L Cpa NEW35Anna Fali
1009Wickens O ChuiArgentina2024-04-16Rangoni Of Florence NEW0Ivan Magalhaes
1010Aruna X AlbaresGermany2024-04-11Benton, John B Jr PROPOSAL16Bernardo Dominic
1011Ivar T MorascaRussia2024-04-19Chapman, Ross E Esq PROPOSAL28Anna Fali
1012Isabel Q IturbideCanada2024-04-18Feltz Printing Service NEW41Amy Elsner
1013Jeanfrancois T CampainCanada2024-05-02King, Christopher A Esq NEW3Amy Elsner
1014Emily A WieserSpain2024-04-18Buckley Miller Wright NEGOTIATION85Onyama Limba
1015Cody X ShinkoGermany2024-05-09Feltz Printing Service NEW54Bernardo Dominic
1016Aruna H RimUnited Kingdom2024-05-01Buckley Miller Wright QUALIFIED50Asiya Javayant
1017Maisha U GarufiRussia2024-04-29Feltz Printing Service NEGOTIATION5Stephen Shaw
1018Jefferson F PaprockiItaly2024-04-19Feiner Bros NEW31Xuxue Feng
1019Julie A DarakjyAustralia2024-04-28Printing Dimensions NEGOTIATION75Stephen Shaw
1020Johnson M ShinkoRussia2024-04-19Rangoni Of Florence RENEWAL78Xuxue Feng
1021Murillo E AlbaresUnited Kingdom2024-04-26Rousseaux, Michael Esq RENEWAL99Stephen Shaw
1022Jefferson T ButtSpain2024-04-13Rousseaux, Michael Esq UNQUALIFIED61Elwin Sharvill
1023Antonio W MarrierArgentina2024-04-21Chanay, Jeffrey A Esq NEW71Elwin Sharvill
1024Maria X PaprockiRussia2024-04-11Printing Dimensions RENEWAL79Bernardo Dominic
1025Johnson U StockhamUnited Kingdom2024-04-21Feltz Printing Service UNQUALIFIED98Onyama Limba
1026Mayumi E MaletCanada2024-04-18Feltz Printing Service UNQUALIFIED61Asiya Javayant
1027Johnson E GarufiIndia2024-05-07Dorl, James J Esq NEW51Ioni Bowcher
1028Clifford I BowleyArgentina2024-04-21Rangoni Of Florence PROPOSAL91Bernardo Dominic
1029Deepesh H ChuiGermany2024-05-04Morlong Associates NEW6Elwin Sharvill
1030Arvin W DarakjyAustralia2024-04-11Benton, John B Jr NEGOTIATION90Amy Elsner
1031Greenwood M StockhamArgentina2024-04-13Truhlar And Truhlar Attys NEW2Amy Elsner
1032Mayumi I GillianRussia2024-05-06Rousseaux, Michael Esq PROPOSAL54Amy Elsner
1033Emily J FerenczItaly2024-04-11Printing Dimensions UNQUALIFIED47Xuxue Feng
1034Ivar U CampainUnited Kingdom2024-04-13Commercial Press NEW66Anna Fali
1035Maisha M AlbaresArgentina2024-04-30Commercial Press UNQUALIFIED92Onyama Limba
1036Francesco Z GauchoBrazil2024-04-27King, Christopher A Esq NEGOTIATION17Asiya Javayant
1037Adams Z GlickArgentina2024-05-07Rousseaux, Michael Esq RENEWAL28Ioni Bowcher
1038Munro D StockhamSpain2024-04-23Truhlar And Truhlar Attys PROPOSAL62Ioni Bowcher
1039Clifford H InouyeCanada2024-04-28Chanay, Jeffrey A Esq NEW32Anna Fali
1040Izzy S WaycottUnited Kingdom2024-04-14Morlong Associates NEW46Onyama Limba
1041Mujtaba O IturbideItaly2024-05-09Printing Dimensions RENEWAL98Anna Fali
1042James B ChuiFrance2024-04-23Chanay, Jeffrey A Esq UNQUALIFIED94Ioni Bowcher
1043Maisha T KuskoFrance2024-04-13Rangoni Of Florence UNQUALIFIED67Stephen Shaw
1044Munro G PerinArgentina2024-04-12Rousseaux, Michael Esq PROPOSAL13Amy Elsner
1045Faith H GarufiRussia2024-05-01Dorl, James J Esq RENEWAL21Onyama Limba
1046Munro M BriddickSpain2024-04-21Rousseaux, Michael Esq RENEWAL28Ivan Magalhaes
1047Nicolas B FlosiItaly2024-05-04Buckley Miller Wright NEW10Elwin Sharvill
1048Sinclair M MaletRussia2024-05-03Chemel, James L Cpa NEGOTIATION15Elwin Sharvill
1049Clifford I MaletIndia2024-04-24Rousseaux, Michael Esq PROPOSAL94Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jones D DilliardAustraliaAmy Elsner NEW
Adams U FigeroaAustraliaStephen Shaw PROPOSAL
Nicolas M IturbideFranceXuxue Feng NEW
Misaki E NickaBrazilStephen Shaw PROPOSAL
Ashley T SchemmerJapanAnna Fali QUALIFIED
Cody M ButtIndiaIvan Magalhaes NEGOTIATION
Jennifer U ButtAustraliaOnyama Limba RENEWAL
Mujtaba L CaudySpainAnna Fali RENEWAL
Kadeem D ChuiSpainXuxue Feng NEGOTIATION
Leon Z CaldareraBrazilBernardo Dominic PROPOSAL
James T CaldareraSpainBernardo Dominic UNQUALIFIED
Morrow C OstroskyIndiaAsiya Javayant PROPOSAL
Silvio I SergiRussiaAnna Fali NEGOTIATION
Morrow X RutaSpainAnna Fali PROPOSAL
Kadeem A InouyeGermanyBernardo Dominic NEGOTIATION
Antonio W FlosiItalyXuxue Feng RENEWAL
Sinclair Q KuskoFranceBernardo Dominic RENEWAL
Salvatore A FigeroaSpainXuxue Feng NEW
David R RimSpainAnna Fali NEGOTIATION
Maisha T ShinkoBrazilXuxue Feng UNQUALIFIED
Aditya J BowleyJapanIvan Magalhaes PROPOSAL
Costa H StensethGermanyAnna Fali PROPOSAL
Smith W NickaAustraliaXuxue Feng NEW
Antonio E TollnerBrazilBernardo Dominic NEW
Faith E MacleadSpainAsiya Javayant RENEWAL
David F RoysterBrazilAmy Elsner RENEWAL
Greenwood A StockhamGermanyAmy Elsner QUALIFIED
David A StockhamAustraliaElwin Sharvill RENEWAL
Jones E AlbaresFranceBernardo Dominic PROPOSAL
Smith O GlickGermanyStephen Shaw NEW
Ricardo J OstroskyFranceAmy Elsner UNQUALIFIED
Adams L ShinkoFranceElwin Sharvill RENEWAL
Munro U MarrierItalyStephen Shaw UNQUALIFIED
Izzy Y GlickRussiaElwin Sharvill PROPOSAL
Leja E GillianUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba E TollnerSpainAsiya Javayant QUALIFIED
Rodrigues E FigeroaIndiaIvan Magalhaes RENEWAL
Murillo F RimJapanBernardo Dominic QUALIFIED
James Y GillianSpainAmy Elsner QUALIFIED
Alejandro Q TollnerSpainAmy Elsner RENEWAL
Rodrigues V ShinkoSpainAmy Elsner NEW
Tony B PoquetteUnited KingdomStephen Shaw NEGOTIATION
Alejandro B OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Aika H DilliardUnited KingdomXuxue Feng NEW
Aika L InouyeBrazilIvan Magalhaes NEGOTIATION
Jones A MaletArgentinaIvan Magalhaes NEGOTIATION
Kaitlin X GillianCanadaElwin Sharvill QUALIFIED
Kadeem N KolmetzGermanyXuxue Feng RENEWAL
Morrow E OstroskyIndiaElwin Sharvill RENEWAL
Ricardo Q TollnerGermanyIoni Bowcher NEW
Frozen Columns
Name
Rodrigues H Paprocki
Isabel R Saylors
Nicolas O Morasca
Kadeem L Amigon
Ashley A Perin
Smith C Paprocki
Francesco B Dilliard
Nicolas S Kolmetz
David O Venere
Johnson K Tollner
Jeanfrancois X Albares
Silvio J Tollner
Leon Y Oldroyd
James J Chui
Adams N Inouye
Misaki M Poquette
Izzy S Bolognia
Izzy W Bowley
Francesco A Whobrey
Murillo G Flosi
Izzy H Ferencz
Aika G Ostrosky
Darci F Malet
Cody S Saylors
David G Kusko
Maria V Malet
Mayumi F Kusko
Chavez R Rim
Octavia N Schemmer
Leja Z Stockham
Kaitlin Y Marrier
Salvatore T Iturbide
Smith Y Vocelka
Darci Z Bowley
Misaki W Amigon
Smith L Caudy
Johnson B Perin
Claire V Royster
Octavia C Kusko
Chavez E Garufi
Alejandro T Slusarski
Aditya B Malet
Chavez A Glick
Clifford S Marrier
Nicolas O Saylors
Costa F Glick
Aditya D Wieser
Jennifer I Tollner
Francesco W Ferencz
Juan J Tollner
IdCountryDate
1000Argentina2024-04-30
1001France2024-04-21
1002United Kingdom2024-04-19
1003Brazil2024-04-13
1004Italy2024-04-27
1005Russia2024-05-02
1006Italy2024-04-28
1007India2024-05-06
1008France2024-04-20
1009Russia2024-05-09
1010Canada2024-04-27
1011Argentina2024-04-19
1012Japan2024-04-26
1013India2024-04-14
1014Italy2024-05-06
1015Italy2024-04-26
1016India2024-04-29
1017Germany2024-04-28
1018Germany2024-05-07
1019Brazil2024-05-02
1020Spain2024-04-21
1021Italy2024-05-09
1022India2024-05-05
1023Japan2024-04-13
1024Argentina2024-04-12
1025Russia2024-05-01
1026United Kingdom2024-05-06
1027India2024-05-06
1028Russia2024-05-04
1029Canada2024-04-25
1030Spain2024-05-04
1031Italy2024-05-09
1032Australia2024-04-16
1033France2024-04-12
1034France2024-05-07
1035Spain2024-04-14
1036Germany2024-04-21
1037France2024-04-22
1038Argentina2024-04-27
1039Australia2024-05-03
1040Brazil2024-05-05
1041Spain2024-04-23
1042France2024-04-26
1043France2024-04-23
1044Russia2024-04-18
1045Canada2024-04-20
1046Germany2024-05-02
1047Australia2024-04-27
1048Australia2024-05-03
1049India2024-05-01

On-Demand Data

NameIdCountryDate
Maria Y Iturbide1000Brazil2024-04-16
Johnson D Nicka1001Japan2024-05-05
Johnson Y Tollner1002Japan2024-05-08
Kadeem E Darakjy1003Argentina2024-04-18
Wickens F Venere1004Argentina2024-04-23
Jeanfrancois H Morasca1005Brazil2024-04-13
Claire G Butt1006Brazil2024-05-01
Octavia L Gaucho1007Spain2024-04-19
Sinclair N Bolognia1008Italy2024-05-06
Octavia X Amigon1009Australia2024-04-13
Alejandro L Glick1010United Kingdom2024-05-02
Cody R Morasca1011Argentina2024-05-02
Adams W Stenseth1012Italy2024-04-21
Sinclair D Royster1013Spain2024-04-12
Kadeem V Slusarski1014Australia2024-04-22
Johnson H Sergi1015Russia2024-04-29
James U Slusarski1016Japan2024-04-11
Tony C Perin1017Italy2024-04-24
Adams L Iturbide1018Australia2024-05-01
Kaitlin E Poquette1019Germany2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba D MorascaJapanAsiya Javayant UNQUALIFIED
Julie M FollerRussiaAnna Fali UNQUALIFIED
Aruna T NickaItalyAmy Elsner PROPOSAL
Ivar Q RutaAustraliaIvan Magalhaes PROPOSAL
Greenwood X RutaFranceXuxue Feng UNQUALIFIED
Smith Y DarakjyAustraliaXuxue Feng NEW
Jennifer V AlbaresBrazilXuxue Feng NEGOTIATION
Sinclair J RulapaughCanadaIvan Magalhaes NEW
Ricardo X FollerFranceAmy Elsner RENEWAL
Aditya D OstroskyJapanStephen Shaw QUALIFIED
Nicolas N ChuiArgentinaBernardo Dominic UNQUALIFIED
Darci G VocelkaJapanOnyama Limba UNQUALIFIED
Julie I OldroydSpainStephen Shaw NEGOTIATION
Arvin G MarrierSpainIoni Bowcher NEW
Jennifer F PaprockiCanadaAnna Fali UNQUALIFIED
Aruna D FlosiFranceAsiya Javayant RENEWAL
Ivar X SergiRussiaAsiya Javayant UNQUALIFIED
Aditya R GauchoRussiaIvan Magalhaes QUALIFIED
Julie H RimItalyIoni Bowcher RENEWAL
Sinclair K InouyeArgentinaBernardo Dominic PROPOSAL
Jennifer G BriddickItalyAsiya Javayant RENEWAL
Tony H FlosiCanadaBernardo Dominic PROPOSAL
Murillo F MaletFranceIvan Magalhaes NEW
Aruna V GillianAustraliaAnna Fali NEW
Silvio E FollerItalyAsiya Javayant UNQUALIFIED
Kadeem O StockhamGermanyElwin Sharvill QUALIFIED
Octavia S TollnerJapanElwin Sharvill RENEWAL
Kaitlin T RimItalyStephen Shaw NEGOTIATION
Aditya N MaletFranceBernardo Dominic NEW
Julie N FerenczFranceAmy Elsner RENEWAL
Clifford I FollerFranceXuxue Feng RENEWAL
Wickens S FollerGermanyAmy Elsner QUALIFIED
Mujtaba P MacleadBrazilAmy Elsner RENEWAL
Aika I ChuiSpainAsiya Javayant NEW
Salvatore G AmigonRussiaAmy Elsner QUALIFIED
Jeanfrancois K MaletAustraliaAsiya Javayant UNQUALIFIED
Greenwood N VenereFranceIvan Magalhaes QUALIFIED
Stacey E WaycottSpainXuxue Feng NEGOTIATION
Jones Y BologniaUnited KingdomElwin Sharvill NEW
Cody C ChuiUnited KingdomStephen Shaw 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>