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
Mayumi L GlickSpainOnyama Limba QUALIFIED
Ivar P WaycottBrazilAnna Fali UNQUALIFIED
Faith F InouyeGermanyIvan Magalhaes RENEWAL
Arvin H SlusarskiSpainXuxue Feng UNQUALIFIED
Johnson T WaycottFranceAmy Elsner RENEWAL
Mayumi E RimItalyIvan Magalhaes RENEWAL
James U OldroydArgentinaXuxue Feng PROPOSAL
Stacey W VenereUnited KingdomAsiya Javayant NEW
Alejandro F CaudyJapanIvan Magalhaes NEW
Cody E PoquetteRussiaIvan Magalhaes RENEWAL
Aruna M StockhamBrazilAnna Fali UNQUALIFIED
Chavez X GlickBrazilAmy Elsner NEW
Smith R SlusarskiRussiaAsiya Javayant PROPOSAL
Munro G RutaAustraliaElwin Sharvill PROPOSAL
Adams V BriddickIndiaBernardo Dominic QUALIFIED
Wickens V AlbaresJapanBernardo Dominic QUALIFIED
Smith X WhobreyItalyStephen Shaw NEW
Johnson C SlusarskiArgentinaIvan Magalhaes QUALIFIED
Aruna K WhobreyIndiaAmy Elsner UNQUALIFIED
Costa V GlickItalyElwin Sharvill PROPOSAL
Clifford B KuskoGermanyAmy Elsner NEGOTIATION
Claire T SergiCanadaIoni Bowcher NEW
Deepesh O GauchoJapanStephen Shaw PROPOSAL
Cody M FollerItalyAmy Elsner NEW
Darci A FigeroaCanadaAsiya Javayant QUALIFIED
Kadeem L MaletIndiaAmy Elsner NEGOTIATION
Darci F InouyeCanadaAnna Fali NEGOTIATION
Jefferson O KolmetzSpainBernardo Dominic PROPOSAL
Ashley X GlickRussiaAmy Elsner RENEWAL
Greenwood Z FollerSpainElwin Sharvill RENEWAL
Johnson I PoquetteItalyAnna Fali PROPOSAL
Greenwood M InouyeAustraliaIoni Bowcher PROPOSAL
Ivar W AmigonItalyXuxue Feng RENEWAL
Maria C MaletArgentinaIoni Bowcher NEW
Mayumi S BriddickRussiaIoni Bowcher QUALIFIED
Octavia W OldroydItalyAmy Elsner RENEWAL
Emily W RoysterFranceOnyama Limba QUALIFIED
Rodrigues R NickaFranceElwin Sharvill QUALIFIED
Mujtaba U DoeJapanElwin Sharvill NEGOTIATION
Arvin T TollnerSpainElwin Sharvill RENEWAL
Murillo A DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Ivar L InouyeItalyStephen Shaw UNQUALIFIED
Johnson D ChuiSpainOnyama Limba PROPOSAL
Jones M SergiUnited KingdomIvan Magalhaes QUALIFIED
Deepesh N KolmetzUnited KingdomAnna Fali RENEWAL
Morrow L FigeroaRussiaIoni Bowcher QUALIFIED
Maria U MorascaFranceBernardo Dominic NEGOTIATION
Darci V CaldareraUnited KingdomXuxue Feng NEW
Costa Q SergiArgentinaOnyama Limba RENEWAL
Julie O NickaFranceOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa S BowleyRussiaXuxue Feng RENEWAL
Kadeem Z GillianCanadaIoni Bowcher NEW
Clifford H RimFranceAmy Elsner NEGOTIATION
Ashley L VocelkaSpainBernardo Dominic NEGOTIATION
Salvatore E DarakjyAustraliaStephen Shaw RENEWAL
Smith J OstroskyArgentinaIoni Bowcher PROPOSAL
Cody K FlosiAustraliaAsiya Javayant PROPOSAL
Chavez K FerenczCanadaIoni Bowcher RENEWAL
Mujtaba F RoysterArgentinaAsiya Javayant NEGOTIATION
Julie D SaylorsAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco V SergiBrazil2024-04-27Chapman, Ross E Esq PROPOSAL65Ioni Bowcher
1001Stacey A PaprockiAustralia2024-04-25Buckley Miller Wright QUALIFIED9Ioni Bowcher
1002Tony L BriddickRussia2024-04-03Feiner Bros NEW34Stephen Shaw
1003Aruna R KuskoItaly2024-04-21Truhlar And Truhlar Attys PROPOSAL45Asiya Javayant
1004Jennifer R KuskoCanada2024-04-03Rangoni Of Florence NEGOTIATION82Xuxue Feng
1005Emily U WieserBrazil2024-04-23Benton, John B Jr UNQUALIFIED5Bernardo Dominic
1006Ricardo H DilliardFrance2024-04-16Buckley Miller Wright QUALIFIED56Xuxue Feng
1007Mujtaba V NickaRussia2024-04-07Feiner Bros PROPOSAL37Bernardo Dominic
1008Morrow U GlickBrazil2024-04-10Chanay, Jeffrey A Esq RENEWAL12Xuxue Feng
1009Aruna T GillianJapan2024-04-08Dorl, James J Esq PROPOSAL96Stephen Shaw
1010Darci P TollnerCanada2024-04-22Feiner Bros PROPOSAL62Xuxue Feng
1011Alejandro H DoeIndia2024-03-30Morlong Associates NEGOTIATION8Elwin Sharvill
1012Jones W WieserAustralia2024-04-15King, Christopher A Esq NEGOTIATION51Amy Elsner
1013Jones G MacleadSpain2024-04-21Morlong Associates NEGOTIATION36Bernardo Dominic
1014Ashley L MacleadRussia2024-04-07Printing Dimensions QUALIFIED87Xuxue Feng
1015Jones D KolmetzIndia2024-04-23Chanay, Jeffrey A Esq UNQUALIFIED42Amy Elsner
1016Clifford Q InouyeIndia2024-04-01Truhlar And Truhlar Attys QUALIFIED39Amy Elsner
1017Arvin Z SergiSpain2024-04-21Printing Dimensions NEGOTIATION77Asiya Javayant
1018Antonio I DoeJapan2024-04-15Benton, John B Jr RENEWAL86Elwin Sharvill
1019Jennifer N CaudyIndia2024-04-21King, Christopher A Esq QUALIFIED90Ivan Magalhaes
1020Greenwood M IturbideJapan2024-04-19Morlong Associates PROPOSAL8Ivan Magalhaes
1021Nicolas I MacleadIndia2024-04-05Chemel, James L Cpa NEW70Anna Fali
1022Kadeem S StockhamUnited Kingdom2024-04-05Chemel, James L Cpa QUALIFIED34Stephen Shaw
1023Chavez B CaldareraGermany2024-04-26Rangoni Of Florence NEGOTIATION84Amy Elsner
1024Salvatore Z PoquetteFrance2024-04-22Benton, John B Jr NEW66Onyama Limba
1025Stacey K AmigonBrazil2024-04-03Chanay, Jeffrey A Esq NEGOTIATION27Xuxue Feng
1026Rodrigues B IturbideAustralia2024-04-12Truhlar And Truhlar Attys PROPOSAL36Ioni Bowcher
1027Deepesh K GauchoSpain2024-04-01Morlong Associates NEW59Asiya Javayant
1028Leja Y SchemmerSpain2024-04-16King, Christopher A Esq UNQUALIFIED42Asiya Javayant
1029Rodrigues E BriddickBrazil2024-04-10Morlong Associates UNQUALIFIED92Amy Elsner
1030Ashley V SergiIndia2024-04-26Buckley Miller Wright UNQUALIFIED89Elwin Sharvill
1031Aika U ShinkoFrance2024-04-12Feltz Printing Service QUALIFIED62Ivan Magalhaes
1032Salvatore B AmigonCanada2024-04-06Feltz Printing Service UNQUALIFIED77Xuxue Feng
1033Smith P OstroskyAustralia2024-04-03Feiner Bros RENEWAL92Anna Fali
1034Jennifer Y GlickFrance2024-04-23Buckley Miller Wright UNQUALIFIED2Stephen Shaw
1035Leon V BriddickFrance2024-04-25Buckley Miller Wright UNQUALIFIED40Xuxue Feng
1036Isabel U RutaCanada2024-04-19Dorl, James J Esq QUALIFIED79Ioni Bowcher
1037Sinclair V SaylorsArgentina2024-04-22Dorl, James J Esq QUALIFIED79Ivan Magalhaes
1038Rodrigues I FigeroaAustralia2024-04-24Rousseaux, Michael Esq NEGOTIATION96Elwin Sharvill
1039Salvatore C BriddickFrance2024-04-25Rousseaux, Michael Esq RENEWAL48Elwin Sharvill
1040Jeanfrancois S NestleItaly2024-04-19Feltz Printing Service NEW44Asiya Javayant
1041Jeanfrancois E IturbideAustralia2024-04-06Rousseaux, Michael Esq NEW37Bernardo Dominic
1042Aruna C DilliardBrazil2024-04-21Truhlar And Truhlar Attys PROPOSAL89Ivan Magalhaes
1043Stacey C BowleyItaly2024-04-04Dorl, James J Esq PROPOSAL62Anna Fali
1044Faith X InouyeArgentina2024-04-09Commercial Press QUALIFIED4Bernardo Dominic
1045James A SchemmerGermany2024-04-24Feltz Printing Service NEGOTIATION93Amy Elsner
1046Mujtaba W DilliardArgentina2024-03-30Dorl, James J Esq PROPOSAL28Anna Fali
1047Cody V SchemmerRussia2024-04-02Commercial Press QUALIFIED85Onyama Limba
1048Juan J OstroskyFrance2024-04-15King, Christopher A Esq NEW16Ivan Magalhaes
1049Jeanfrancois A PerinFrance2024-03-30Morlong Associates RENEWAL16Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Antonio K WhobreyCanadaElwin Sharvill QUALIFIED
Aditya Q OldroydUnited KingdomBernardo Dominic NEW
Octavia C MarrierAustraliaXuxue Feng PROPOSAL
Maria T MaletSpainAsiya Javayant RENEWAL
Kadeem O CaldareraItalyAnna Fali PROPOSAL
Francesco X FerenczRussiaAsiya Javayant NEGOTIATION
Rodrigues R MorascaUnited KingdomAnna Fali UNQUALIFIED
Jefferson L CaldareraBrazilIvan Magalhaes QUALIFIED
Rodrigues G KuskoSpainAsiya Javayant UNQUALIFIED
Ashley S DoeGermanyBernardo Dominic NEGOTIATION
David L WhobreyAustraliaElwin Sharvill UNQUALIFIED
Smith L RoysterAustraliaAsiya Javayant NEGOTIATION
Leon W PoquetteBrazilAsiya Javayant QUALIFIED
Isabel F TollnerRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois S BologniaIndiaBernardo Dominic NEW
Costa K CaudyFranceStephen Shaw NEGOTIATION
Julie V BriddickCanadaXuxue Feng QUALIFIED
Costa T BowleyJapanIvan Magalhaes QUALIFIED
Claire B FlosiRussiaIoni Bowcher RENEWAL
Silvio S FlosiUnited KingdomElwin Sharvill RENEWAL
Isabel N FlosiCanadaBernardo Dominic RENEWAL
Jennifer I SlusarskiIndiaOnyama Limba NEW
Claire D SaylorsGermanyBernardo Dominic NEW
Jefferson Y OldroydItalyIvan Magalhaes UNQUALIFIED
Faith Q ButtItalyElwin Sharvill NEW
Maisha B DoeUnited KingdomBernardo Dominic RENEWAL
Misaki C MacleadCanadaXuxue Feng PROPOSAL
Ashley R SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Aruna K PerinJapanIvan Magalhaes NEGOTIATION
Aruna N FollerBrazilAsiya Javayant NEW
James D RulapaughIndiaIoni Bowcher UNQUALIFIED
Chavez F BowleySpainAsiya Javayant NEGOTIATION
Mujtaba J PoquetteFranceElwin Sharvill PROPOSAL
Faith K AlbaresSpainAsiya Javayant PROPOSAL
Chavez W GauchoBrazilAmy Elsner QUALIFIED
Jeanfrancois Z StensethArgentinaStephen Shaw UNQUALIFIED
Deepesh M RimArgentinaAmy Elsner PROPOSAL
Maisha V PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Stacey H MorascaBrazilIvan Magalhaes NEW
Jeanfrancois L CaudyFranceOnyama Limba PROPOSAL
Greenwood N FerenczItalyBernardo Dominic NEW
Aditya Q KolmetzIndiaAmy Elsner PROPOSAL
Silvio N RoysterSpainIoni Bowcher PROPOSAL
Darci D VocelkaBrazilBernardo Dominic QUALIFIED
Aruna P DilliardAustraliaAsiya Javayant NEW
Antonio F FerenczGermanyXuxue Feng NEGOTIATION
Mayumi U TollnerAustraliaOnyama Limba RENEWAL
David T PaprockiArgentinaOnyama Limba NEGOTIATION
David S FerenczAustraliaBernardo Dominic NEGOTIATION
Aika E NestleIndiaAmy Elsner NEW
Frozen Columns
Name
Ricardo R Perin
Leja J Figeroa
Maisha U Sergi
Costa A Marrier
Morrow D Marrier
Jones Q Shinko
Faith A Nicka
Silvio X Gillian
Tony W Maclead
Emily M Inouye
Clifford D Flosi
Misaki Q Ostrosky
Octavia O Malet
Wickens H Darakjy
Alejandro H Royster
Mayumi J Ostrosky
Ashley Q Shinko
Leja Z Nestle
Johnson X Malet
Munro G Waycott
Silvio I Tollner
Arvin D Flosi
Emily F Caudy
Kaitlin Q Waycott
Kadeem B Slusarski
Arvin Z Glick
Johnson D Wieser
Arvin K Iturbide
Mujtaba U Stockham
Jefferson I Doe
Antonio Z Kusko
Misaki R Perin
Emily B Waycott
Deepesh Y Wieser
Salvatore Z Venere
Sinclair U Malet
Ricardo V Paprocki
Maria J Waycott
Cody X Amigon
Faith X Kolmetz
Alejandro W Shinko
Munro V Sergi
Juan T Albares
Emily V Caudy
Ashley M Morasca
Misaki P Gillian
Chavez V Campain
Murillo X Doe
Mayumi N Slusarski
Aditya D Flosi
IdCountryDate
1000United Kingdom2024-04-03
1001Spain2024-04-14
1002India2024-04-02
1003Australia2024-04-18
1004Brazil2024-04-16
1005Canada2024-04-20
1006Japan2024-04-18
1007Spain2024-04-13
1008Australia2024-04-04
1009Japan2024-04-09
1010United Kingdom2024-04-02
1011Argentina2024-04-16
1012Australia2024-04-05
1013France2024-04-15
1014United Kingdom2024-04-08
1015Brazil2024-04-20
1016Spain2024-04-15
1017Russia2024-04-12
1018Canada2024-04-13
1019Australia2024-04-27
1020France2024-04-19
1021France2024-04-12
1022Spain2024-04-13
1023Germany2024-04-07
1024Italy2024-04-28
1025Australia2024-04-04
1026Germany2024-04-08
1027United Kingdom2024-04-28
1028Russia2024-04-09
1029India2024-04-04
1030Brazil2024-04-13
1031Japan2024-04-22
1032Argentina2024-04-09
1033Brazil2024-04-01
1034France2024-04-02
1035Italy2024-04-07
1036India2024-04-06
1037United Kingdom2024-04-23
1038Italy2024-04-18
1039United Kingdom2024-04-27
1040Canada2024-04-05
1041Germany2024-04-26
1042France2024-04-13
1043Brazil2024-04-12
1044Brazil2024-04-28
1045Brazil2024-04-04
1046Italy2024-04-11
1047Italy2024-04-15
1048Russia2024-04-18
1049Argentina2024-04-02

On-Demand Data

NameIdCountryDate
Ashley Y Nestle1000Brazil2024-04-13
Silvio J Iturbide1001Brazil2024-04-24
Emily K Malet1002Italy2024-04-27
Salvatore P Flosi1003Italy2024-04-19
James Z Stenseth1004Australia2024-04-17
Johnson E Saylors1005France2024-04-26
Johnson H Amigon1006Germany2024-04-14
Antonio I Nestle1007Japan2024-04-23
Jones N Garufi1008United Kingdom2024-04-01
Francesco E Inouye1009Brazil2024-04-26
Jeanfrancois T Venere1010India2024-04-08
Cody H Rim1011Japan2024-03-30
Ashley P Flosi1012United Kingdom2024-04-01
Nicolas F Perin1013Russia2024-04-07
Arvin O Campain1014Japan2024-04-14
Ivar B Figeroa1015Italy2024-04-25
Antonio F Chui1016Argentina2024-04-22
Tony O Caldarera1017India2024-04-22
Sinclair I Doe1018Japan2024-04-27
Isabel F Rulapaugh1019Canada2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha K FigeroaArgentinaStephen Shaw PROPOSAL
Izzy L StockhamSpainIvan Magalhaes QUALIFIED
Wickens A IturbideBrazilStephen Shaw QUALIFIED
Aika U PerinUnited KingdomStephen Shaw NEW
Mayumi S ChuiSpainStephen Shaw NEGOTIATION
Jones I FerenczIndiaStephen Shaw QUALIFIED
Adams S BologniaCanadaOnyama Limba NEGOTIATION
Salvatore T BriddickAustraliaElwin Sharvill RENEWAL
Mayumi A DoeCanadaIvan Magalhaes UNQUALIFIED
Tony R WhobreyJapanStephen Shaw NEW
Claire Z RoysterArgentinaAmy Elsner NEW
Jennifer U RutaGermanyXuxue Feng UNQUALIFIED
Izzy V MorascaAustraliaIoni Bowcher PROPOSAL
James D SlusarskiArgentinaAsiya Javayant RENEWAL
Johnson Y RulapaughArgentinaElwin Sharvill RENEWAL
Salvatore P PerinCanadaIvan Magalhaes RENEWAL
Costa J RutaGermanyBernardo Dominic UNQUALIFIED
Kadeem J AlbaresJapanBernardo Dominic UNQUALIFIED
Munro S PaprockiItalyStephen Shaw NEGOTIATION
Darci D DoeUnited KingdomAmy Elsner UNQUALIFIED
Aika O DoeRussiaStephen Shaw UNQUALIFIED
Mujtaba H NestleUnited KingdomIoni Bowcher QUALIFIED
Salvatore B FigeroaRussiaIoni Bowcher RENEWAL
Morrow I StockhamGermanyStephen Shaw QUALIFIED
Aika H MacleadFranceAnna Fali NEW
Jefferson G FlosiSpainXuxue Feng RENEWAL
Kadeem F ButtGermanyOnyama Limba QUALIFIED
Jennifer U KuskoArgentinaIoni Bowcher UNQUALIFIED
James U BriddickRussiaBernardo Dominic PROPOSAL
Jefferson W FerenczCanadaAnna Fali QUALIFIED
Adams R DilliardUnited KingdomAnna Fali UNQUALIFIED
Clifford Y KuskoFranceAmy Elsner QUALIFIED
Maisha S AmigonIndiaXuxue Feng NEW
Silvio B VocelkaArgentinaIoni Bowcher QUALIFIED
Munro V CaldareraAustraliaAnna Fali QUALIFIED
Kaitlin U ChuiBrazilBernardo Dominic NEW
Wickens T SlusarskiFranceIvan Magalhaes PROPOSAL
Mayumi R AlbaresArgentinaXuxue Feng NEGOTIATION
Octavia R FerenczSpainOnyama Limba QUALIFIED
Johnson S MaletSpainAsiya Javayant RENEWAL

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