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
Stacey O MacleadRussiaIoni Bowcher RENEWAL
Jones K StensethSpainAnna Fali PROPOSAL
Munro C CampainItalyXuxue Feng UNQUALIFIED
Chavez C RimIndiaElwin Sharvill UNQUALIFIED
Jones C MacleadFranceIoni Bowcher UNQUALIFIED
Adams B RulapaughRussiaStephen Shaw UNQUALIFIED
Alejandro J PaprockiBrazilAmy Elsner NEW
Rodrigues H SaylorsJapanXuxue Feng NEW
Misaki Q MarrierCanadaIvan Magalhaes RENEWAL
Cody U RutaItalyOnyama Limba NEGOTIATION
Silvio Z RimIndiaIoni Bowcher UNQUALIFIED
David T BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Antonio C NestleSpainAsiya Javayant PROPOSAL
Alejandro V FlosiItalyAsiya Javayant UNQUALIFIED
Rodrigues C NestleArgentinaStephen Shaw UNQUALIFIED
Clifford D MacleadUnited KingdomXuxue Feng NEGOTIATION
Ivar C DilliardJapanXuxue Feng RENEWAL
Mayumi B WhobreyAustraliaAmy Elsner RENEWAL
Emily O CaudyArgentinaIvan Magalhaes NEW
Misaki G TollnerRussiaIoni Bowcher RENEWAL
Murillo K OstroskySpainAnna Fali QUALIFIED
Jefferson Z BowleySpainElwin Sharvill NEW
Rodrigues Q InouyeItalyAnna Fali NEW
Antonio E RutaFranceAsiya Javayant RENEWAL
Leon E NickaCanadaIoni Bowcher NEGOTIATION
Jones S ButtSpainAnna Fali UNQUALIFIED
Faith Z PaprockiBrazilIvan Magalhaes RENEWAL
Costa I WieserCanadaAmy Elsner RENEWAL
Cody X CampainJapanAmy Elsner NEGOTIATION
Aditya Q KolmetzJapanStephen Shaw NEW
James G KolmetzItalyIvan Magalhaes NEGOTIATION
Clifford P GauchoGermanyAnna Fali UNQUALIFIED
Munro R CaldareraFranceAsiya Javayant NEGOTIATION
Jones F KuskoItalyStephen Shaw UNQUALIFIED
Octavia U WaycottFranceAnna Fali QUALIFIED
Greenwood X CampainGermanyOnyama Limba RENEWAL
Octavia K FollerRussiaIvan Magalhaes QUALIFIED
Ashley S WhobreyUnited KingdomStephen Shaw NEGOTIATION
Octavia Q DilliardAustraliaAnna Fali NEW
Murillo G PoquetteArgentinaElwin Sharvill PROPOSAL
Jeanfrancois P StensethRussiaIoni Bowcher UNQUALIFIED
David S RoysterItalyAsiya Javayant PROPOSAL
Antonio D BologniaGermanyBernardo Dominic QUALIFIED
Aditya U SlusarskiIndiaAsiya Javayant QUALIFIED
James X PerinJapanAsiya Javayant RENEWAL
Mayumi J MorascaGermanyIoni Bowcher PROPOSAL
Ivar R GauchoArgentinaOnyama Limba PROPOSAL
Francesco Y WaycottIndiaAmy Elsner RENEWAL
Isabel D VocelkaSpainIvan Magalhaes NEGOTIATION
Izzy W GarufiRussiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin P StensethUnited KingdomStephen Shaw NEW
Jeanfrancois N WaycottCanadaElwin Sharvill PROPOSAL
Greenwood L MaletUnited KingdomStephen Shaw NEW
Adams I FigeroaFranceIoni Bowcher NEGOTIATION
Mujtaba C NickaBrazilOnyama Limba QUALIFIED
Darci Z DoeAustraliaXuxue Feng QUALIFIED
Francesco D StockhamArgentinaXuxue Feng QUALIFIED
Jefferson Y GauchoItalyIvan Magalhaes NEW
Jefferson I PerinCanadaIoni Bowcher UNQUALIFIED
Aditya T FollerCanadaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues H FerenczGermany2024-04-21Feiner Bros RENEWAL29Ioni Bowcher
1001Maisha G DarakjyItaly2024-04-16Feltz Printing Service QUALIFIED15Ioni Bowcher
1002Aika T MarrierCanada2024-03-31Feltz Printing Service NEGOTIATION87Anna Fali
1003Tony K RulapaughIndia2024-04-26Chanay, Jeffrey A Esq RENEWAL81Ivan Magalhaes
1004Sinclair V OstroskyJapan2024-04-21Buckley Miller Wright RENEWAL74Anna Fali
1005Misaki B VenereArgentina2024-04-16Benton, John B Jr QUALIFIED10Onyama Limba
1006Isabel Z RoysterCanada2024-04-01Feltz Printing Service UNQUALIFIED7Amy Elsner
1007Mujtaba E SlusarskiJapan2024-04-15Feltz Printing Service QUALIFIED31Ivan Magalhaes
1008Aruna G VenereAustralia2024-04-20Rousseaux, Michael Esq PROPOSAL30Bernardo Dominic
1009Misaki B RimArgentina2024-04-11Truhlar And Truhlar Attys RENEWAL8Xuxue Feng
1010Chavez K ChuiJapan2024-04-04Feiner Bros QUALIFIED54Anna Fali
1011Ivar S IturbideFrance2024-04-06Rangoni Of Florence QUALIFIED34Anna Fali
1012Kadeem M MarrierAustralia2024-04-14Buckley Miller Wright NEW23Anna Fali
1013James O OstroskyGermany2024-04-08Feiner Bros RENEWAL97Bernardo Dominic
1014Murillo O PaprockiBrazil2024-04-10Chemel, James L Cpa NEGOTIATION32Elwin Sharvill
1015Jeanfrancois Z BriddickArgentina2024-04-08Morlong Associates PROPOSAL11Xuxue Feng
1016Sinclair Y GillianGermany2024-04-19Feiner Bros NEW29Onyama Limba
1017Faith F KolmetzAustralia2024-03-31Chapman, Ross E Esq UNQUALIFIED93Ivan Magalhaes
1018Emily C SchemmerJapan2024-04-22Chapman, Ross E Esq UNQUALIFIED36Elwin Sharvill
1019Deepesh H RoysterArgentina2024-04-17Chapman, Ross E Esq QUALIFIED84Ioni Bowcher
1020Isabel J PerinAustralia2024-04-13Printing Dimensions NEW24Amy Elsner
1021Jones U FollerRussia2024-04-14Feiner Bros UNQUALIFIED9Elwin Sharvill
1022Leja S DilliardJapan2024-04-24King, Christopher A Esq PROPOSAL43Xuxue Feng
1023Alejandro W ChuiFrance2024-04-22Truhlar And Truhlar Attys RENEWAL73Stephen Shaw
1024David V AmigonGermany2024-04-20King, Christopher A Esq RENEWAL9Bernardo Dominic
1025Alejandro W OstroskyUnited Kingdom2024-03-29Dorl, James J Esq RENEWAL37Ivan Magalhaes
1026Alejandro M OldroydBrazil2024-04-12Feltz Printing Service NEGOTIATION81Anna Fali
1027Stacey O SergiItaly2024-03-29Feiner Bros QUALIFIED59Ioni Bowcher
1028Johnson X IturbideUnited Kingdom2024-03-31Buckley Miller Wright NEW70Asiya Javayant
1029Francesco H SergiSpain2024-04-12Benton, John B Jr QUALIFIED47Amy Elsner
1030Morrow L VenereJapan2024-04-04Chemel, James L Cpa PROPOSAL38Ioni Bowcher
1031Aditya I MaletAustralia2024-04-23Buckley Miller Wright NEGOTIATION99Elwin Sharvill
1032Faith U StensethBrazil2024-04-20Commercial Press RENEWAL53Elwin Sharvill
1033Adams Z PoquetteCanada2024-04-13Dorl, James J Esq PROPOSAL79Amy Elsner
1034Juan H ButtArgentina2024-03-29Feiner Bros NEGOTIATION53Ioni Bowcher
1035Rodrigues S CaudyCanada2024-04-13Commercial Press NEGOTIATION38Ivan Magalhaes
1036Munro X ShinkoArgentina2024-04-03Commercial Press NEW20Anna Fali
1037Stacey B SergiSpain2024-03-29Feltz Printing Service PROPOSAL69Ioni Bowcher
1038Kaitlin P FigeroaCanada2024-04-12Benton, John B Jr NEW63Xuxue Feng
1039Emily H GarufiSpain2024-03-31Printing Dimensions NEGOTIATION88Onyama Limba
1040Greenwood W SaylorsRussia2024-04-12Rousseaux, Michael Esq PROPOSAL14Anna Fali
1041Smith D FigeroaBrazil2024-04-05Buckley Miller Wright NEW97Asiya Javayant
1042Greenwood Y MacleadJapan2024-04-16Benton, John B Jr NEGOTIATION71Amy Elsner
1043Leon W WieserAustralia2024-04-12Feiner Bros UNQUALIFIED95Onyama Limba
1044Munro C MarrierAustralia2024-04-11Buckley Miller Wright PROPOSAL18Asiya Javayant
1045Munro O DilliardSpain2024-04-04Commercial Press RENEWAL91Anna Fali
1046Juan U BriddickCanada2024-04-12Truhlar And Truhlar Attys NEW27Xuxue Feng
1047Rodrigues E PerinBrazil2024-04-18Truhlar And Truhlar Attys UNQUALIFIED98Asiya Javayant
1048Isabel J DarakjyAustralia2024-04-24Rangoni Of Florence NEW68Xuxue Feng
1049Misaki G KolmetzJapan2024-04-02Commercial Press NEGOTIATION46Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore A DoeCanadaBernardo Dominic QUALIFIED
Leja U OstroskyGermanyXuxue Feng RENEWAL
Costa Z StensethSpainAmy Elsner QUALIFIED
Emily L StockhamItalyXuxue Feng PROPOSAL
Cody H StensethArgentinaIoni Bowcher RENEWAL
Kadeem X PerinIndiaAnna Fali UNQUALIFIED
Sinclair W BologniaIndiaElwin Sharvill RENEWAL
Julie V BowleyBrazilIvan Magalhaes PROPOSAL
Greenwood M FollerJapanIvan Magalhaes RENEWAL
Mujtaba P InouyeBrazilStephen Shaw QUALIFIED
Johnson O NickaGermanyBernardo Dominic NEW
James V MaletIndiaAmy Elsner PROPOSAL
Kadeem T MorascaJapanAnna Fali PROPOSAL
Francesco C FigeroaAustraliaBernardo Dominic NEW
Francesco R AmigonRussiaBernardo Dominic QUALIFIED
Francesco X RulapaughItalyBernardo Dominic QUALIFIED
Adams B GauchoBrazilXuxue Feng QUALIFIED
Kaitlin J VenereRussiaOnyama Limba UNQUALIFIED
Leon F FigeroaFranceIvan Magalhaes NEW
Ivar A MarrierUnited KingdomBernardo Dominic RENEWAL
Wickens C CampainArgentinaIvan Magalhaes QUALIFIED
Maria S IturbideAustraliaAnna Fali UNQUALIFIED
Leja I WaycottCanadaIvan Magalhaes UNQUALIFIED
Nicolas P FlosiGermanyAmy Elsner QUALIFIED
Darci K WieserAustraliaBernardo Dominic NEGOTIATION
Julie D VenereIndiaElwin Sharvill QUALIFIED
Clifford H ShinkoItalyElwin Sharvill PROPOSAL
Ricardo Q ShinkoBrazilElwin Sharvill RENEWAL
Ivar H DilliardGermanyIoni Bowcher UNQUALIFIED
Salvatore P PoquetteItalyAmy Elsner PROPOSAL
Jennifer P OldroydGermanyAnna Fali RENEWAL
Arvin X FerenczGermanyXuxue Feng PROPOSAL
Sinclair I WaycottFranceOnyama Limba QUALIFIED
Emily L BowleyBrazilAmy Elsner QUALIFIED
Rodrigues J GauchoJapanIvan Magalhaes RENEWAL
Izzy O MaletAustraliaXuxue Feng QUALIFIED
Leon T AmigonArgentinaAnna Fali NEGOTIATION
James M IturbideAustraliaBernardo Dominic QUALIFIED
Octavia L MaletGermanyXuxue Feng QUALIFIED
Aruna V TollnerFranceOnyama Limba PROPOSAL
Stacey W FollerSpainBernardo Dominic PROPOSAL
Maisha K TollnerGermanyElwin Sharvill UNQUALIFIED
Mujtaba L ChuiItalyElwin Sharvill NEW
Jeanfrancois M CaudyGermanyAnna Fali NEGOTIATION
David G DarakjyUnited KingdomBernardo Dominic RENEWAL
Mayumi W CampainBrazilElwin Sharvill NEW
Mayumi D CaudyFranceAmy Elsner QUALIFIED
Arvin U GarufiIndiaAsiya Javayant UNQUALIFIED
Johnson G CaldareraGermanyIvan Magalhaes RENEWAL
Jefferson U MacleadRussiaAmy Elsner NEW
Frozen Columns
Name
Isabel W Ostrosky
Nicolas M Gaucho
Isabel E Oldroyd
Antonio I Glick
Misaki I Vocelka
Mujtaba S Glick
Salvatore W Butt
Kadeem P Sergi
Chavez P Saylors
Aditya V Iturbide
Juan B Vocelka
Ricardo B Venere
Antonio S Bowley
Jones M Campain
Aika C Chui
Claire B Inouye
Ashley C Paprocki
Ricardo H Amigon
Kadeem T Caldarera
Octavia N Sergi
Sinclair A Nestle
Johnson T Darakjy
Kaitlin N Whobrey
Clifford F Schemmer
Izzy C Doe
Isabel W Tollner
Juan H Garufi
Antonio E Saylors
Mujtaba R Doe
Wickens E Rim
Ashley R Gillian
Alejandro D Campain
Leja Q Schemmer
David O Shinko
Jefferson X Chui
Ashley H Figeroa
Chavez Y Foller
Clifford U Foller
Aika Q Kusko
Arvin S Iturbide
Wickens W Darakjy
Silvio E Poquette
Isabel N Nestle
Julie A Paprocki
Kadeem E Glick
Rodrigues A Inouye
Costa K Royster
Octavia P Glick
Claire T Bolognia
Leon X Caudy
IdCountryDate
1000Canada2024-04-15
1001Australia2024-04-09
1002France2024-04-04
1003Russia2024-04-11
1004Germany2024-04-02
1005France2024-04-21
1006France2024-03-30
1007Germany2024-03-31
1008Brazil2024-04-22
1009India2024-04-23
1010Brazil2024-04-21
1011Spain2024-04-05
1012Spain2024-04-07
1013Spain2024-04-05
1014France2024-04-15
1015Canada2024-04-09
1016Brazil2024-04-05
1017Spain2024-03-29
1018Spain2024-04-17
1019Germany2024-04-22
1020India2024-04-19
1021Brazil2024-04-15
1022Japan2024-04-18
1023United Kingdom2024-04-05
1024Brazil2024-04-16
1025Argentina2024-04-07
1026Australia2024-04-07
1027Brazil2024-04-11
1028India2024-04-21
1029Russia2024-04-15
1030United Kingdom2024-04-06
1031Australia2024-04-23
1032United Kingdom2024-04-07
1033India2024-04-06
1034United Kingdom2024-04-04
1035India2024-04-26
1036Australia2024-04-02
1037United Kingdom2024-04-04
1038Spain2024-04-15
1039Germany2024-04-14
1040Canada2024-04-20
1041India2024-04-21
1042Italy2024-04-15
1043India2024-04-23
1044Japan2024-04-15
1045Australia2024-03-29
1046France2024-04-13
1047Japan2024-04-17
1048Italy2024-04-18
1049Russia2024-03-30

On-Demand Data

NameIdCountryDate
Kaitlin Y Tollner1000United Kingdom2024-04-10
Greenwood N Dilliard1001Russia2024-04-06
Costa V Caudy1002India2024-04-13
Alejandro E Campain1003Canada2024-04-26
Antonio Q Figeroa1004Australia2024-04-06
Maria V Caldarera1005Brazil2024-04-24
David C Gaucho1006Argentina2024-04-21
Octavia P Bolognia1007Japan2024-04-22
Morrow R Wieser1008Spain2024-04-26
Cody H Kolmetz1009Argentina2024-04-21
Deepesh P Caudy1010India2024-04-23
Kaitlin I Iturbide1011France2024-04-07
Octavia W Foller1012India2024-04-21
Wickens X Vocelka1013Australia2024-04-05
Silvio H Albares1014Argentina2024-04-02
Ivar S Iturbide1015Japan2024-04-24
Ashley T Butt1016France2024-03-31
Stacey V Shinko1017Spain2024-04-19
Faith N Butt1018Russia2024-04-14
Jennifer W Garufi1019Brazil2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi Y SlusarskiRussiaBernardo Dominic QUALIFIED
Jennifer J DilliardGermanyBernardo Dominic NEGOTIATION
Salvatore W WhobreyUnited KingdomXuxue Feng RENEWAL
Stacey Q FollerItalyAsiya Javayant PROPOSAL
Clifford T StockhamBrazilBernardo Dominic UNQUALIFIED
Claire V StensethJapanStephen Shaw PROPOSAL
Isabel K PoquetteAustraliaAnna Fali NEW
Leja X MacleadSpainAsiya Javayant UNQUALIFIED
Jeanfrancois P TollnerArgentinaAsiya Javayant RENEWAL
Greenwood X CaldareraIndiaBernardo Dominic UNQUALIFIED
Smith G FigeroaRussiaAmy Elsner QUALIFIED
Smith J RulapaughAustraliaOnyama Limba PROPOSAL
Ivar X MacleadItalyIoni Bowcher PROPOSAL
Morrow C KuskoAustraliaAnna Fali UNQUALIFIED
Emily H RoysterJapanAmy Elsner NEW
Jeanfrancois Z ChuiGermanyIvan Magalhaes UNQUALIFIED
Leon K AmigonJapanStephen Shaw UNQUALIFIED
Octavia C KuskoBrazilIoni Bowcher NEGOTIATION
Faith Y GauchoGermanyXuxue Feng QUALIFIED
Silvio U PaprockiGermanyIoni Bowcher QUALIFIED
Leon K MorascaUnited KingdomBernardo Dominic PROPOSAL
Jefferson Q StensethArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois K AmigonCanadaElwin Sharvill NEGOTIATION
Munro F MarrierUnited KingdomOnyama Limba NEW
Stacey L AlbaresCanadaStephen Shaw PROPOSAL
David B MaletBrazilXuxue Feng NEW
Ivar J InouyeJapanStephen Shaw PROPOSAL
Julie M VocelkaItalyAmy Elsner QUALIFIED
Leon S WieserUnited KingdomAmy Elsner QUALIFIED
Octavia D PoquetteItalyAnna Fali NEGOTIATION
Nicolas S ButtJapanOnyama Limba UNQUALIFIED
Salvatore Z AlbaresGermanyBernardo Dominic NEGOTIATION
Chavez Y GarufiFranceIvan Magalhaes PROPOSAL
Misaki R WhobreyFranceOnyama Limba RENEWAL
Mayumi H CaldareraFranceXuxue Feng NEW
Ricardo O MorascaSpainAmy Elsner QUALIFIED
Isabel W DoeBrazilStephen Shaw NEGOTIATION
Jeanfrancois Q GillianJapanStephen Shaw RENEWAL
Jeanfrancois V BriddickGermanyStephen Shaw UNQUALIFIED
Ivar S MaletFranceXuxue Feng 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>