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
Munro R PerinGermanyAsiya Javayant NEGOTIATION
Mayumi N PoquetteBrazilAnna Fali UNQUALIFIED
Costa Z RoysterIndiaAmy Elsner NEW
Ivar P CaudySpainElwin Sharvill NEW
Silvio K MaletCanadaStephen Shaw RENEWAL
Alejandro S PoquetteCanadaIvan Magalhaes QUALIFIED
Clifford F SlusarskiRussiaAnna Fali QUALIFIED
Emily K GauchoSpainOnyama Limba RENEWAL
Johnson Z IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Wickens X ChuiGermanyAmy Elsner RENEWAL
Sinclair G ChuiUnited KingdomIoni Bowcher QUALIFIED
Sinclair T RoysterGermanyIoni Bowcher NEW
Adams J ChuiSpainBernardo Dominic RENEWAL
Chavez R CampainSpainElwin Sharvill UNQUALIFIED
Misaki P VocelkaArgentinaAsiya Javayant UNQUALIFIED
Aika I GillianSpainOnyama Limba QUALIFIED
Arvin B KolmetzIndiaBernardo Dominic NEGOTIATION
Maisha V WieserIndiaAmy Elsner NEW
David B TollnerArgentinaIoni Bowcher QUALIFIED
Rodrigues T RoysterSpainXuxue Feng NEGOTIATION
Chavez I WaycottItalyBernardo Dominic RENEWAL
Faith N BowleyRussiaAmy Elsner NEW
Izzy Y KuskoUnited KingdomIoni Bowcher QUALIFIED
Cody Y ButtGermanyOnyama Limba NEW
Faith Q GlickIndiaIvan Magalhaes RENEWAL
Darci K DarakjyJapanXuxue Feng UNQUALIFIED
Mujtaba I AlbaresAustraliaAsiya Javayant QUALIFIED
Claire Q DarakjyItalyAsiya Javayant NEGOTIATION
Nicolas N SergiGermanyAnna Fali UNQUALIFIED
Jennifer M ButtRussiaElwin Sharvill PROPOSAL
Kadeem A FerenczAustraliaIoni Bowcher NEW
Johnson X ShinkoCanadaXuxue Feng NEW
Kaitlin S IturbideCanadaBernardo Dominic QUALIFIED
Salvatore W SlusarskiIndiaAnna Fali QUALIFIED
David H VocelkaAustraliaXuxue Feng UNQUALIFIED
Julie L MarrierIndiaAnna Fali PROPOSAL
Silvio S WieserRussiaAsiya Javayant RENEWAL
Darci N RulapaughUnited KingdomStephen Shaw PROPOSAL
Kaitlin A InouyeRussiaIvan Magalhaes QUALIFIED
Izzy B FigeroaGermanyStephen Shaw NEGOTIATION
Misaki I NickaArgentinaBernardo Dominic RENEWAL
Mayumi N NestleCanadaElwin Sharvill NEW
Clifford P StockhamFranceAsiya Javayant QUALIFIED
Kaitlin P RulapaughSpainAmy Elsner RENEWAL
Johnson I StockhamRussiaOnyama Limba QUALIFIED
Francesco A StensethFranceAnna Fali QUALIFIED
Ivar C SaylorsCanadaAsiya Javayant NEW
Darci M PoquetteGermanyIvan Magalhaes NEW
Aruna R FlosiIndiaBernardo Dominic RENEWAL
Emily A AmigonGermanyIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem E BologniaIndiaAsiya Javayant NEW
Mujtaba Z SaylorsCanadaBernardo Dominic RENEWAL
Mujtaba V OstroskyFranceXuxue Feng RENEWAL
Faith W IturbideCanadaAmy Elsner UNQUALIFIED
Izzy I FerenczItalyStephen Shaw NEGOTIATION
Darci W StockhamSpainAnna Fali NEW
Mujtaba Z StensethSpainXuxue Feng PROPOSAL
Claire P BowleyAustraliaAmy Elsner NEW
Izzy K RulapaughArgentinaIoni Bowcher QUALIFIED
Ashley C AlbaresJapanXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams D MaletIndia2024-03-26Commercial Press QUALIFIED49Xuxue Feng
1001Julie N MacleadItaly2024-04-02Feltz Printing Service NEGOTIATION89Xuxue Feng
1002Tony N KolmetzJapan2024-04-06Feiner Bros NEW29Amy Elsner
1003Jeanfrancois O FollerGermany2024-03-24Chanay, Jeffrey A Esq QUALIFIED41Ioni Bowcher
1004Emily E PoquetteAustralia2024-03-23King, Christopher A Esq NEGOTIATION79Stephen Shaw
1005Smith K SergiCanada2024-04-06Benton, John B Jr RENEWAL36Bernardo Dominic
1006Kadeem G RutaItaly2024-04-04King, Christopher A Esq PROPOSAL82Elwin Sharvill
1007Julie V SchemmerCanada2024-04-02Benton, John B Jr PROPOSAL32Onyama Limba
1008Smith Z OldroydUnited Kingdom2024-04-11Chapman, Ross E Esq PROPOSAL10Onyama Limba
1009Ashley K WieserJapan2024-04-18Chanay, Jeffrey A Esq RENEWAL74Asiya Javayant
1010Jones P VocelkaAustralia2024-04-04Truhlar And Truhlar Attys PROPOSAL82Xuxue Feng
1011Clifford U ChuiRussia2024-04-07Rousseaux, Michael Esq PROPOSAL20Ioni Bowcher
1012Smith L SlusarskiJapan2024-04-18Feiner Bros NEGOTIATION98Anna Fali
1013Isabel O IturbideBrazil2024-04-10Commercial Press NEW54Ioni Bowcher
1014Chavez K GarufiCanada2024-03-31Morlong Associates UNQUALIFIED53Onyama Limba
1015Julie D AmigonJapan2024-03-26Commercial Press UNQUALIFIED84Anna Fali
1016David W KuskoJapan2024-04-18Benton, John B Jr UNQUALIFIED79Xuxue Feng
1017Clifford A VenereArgentina2024-03-31King, Christopher A Esq PROPOSAL5Elwin Sharvill
1018Izzy L PerinJapan2024-04-11Truhlar And Truhlar Attys NEGOTIATION53Anna Fali
1019Jeanfrancois D MaletUnited Kingdom2024-04-12Feltz Printing Service NEGOTIATION23Elwin Sharvill
1020Smith F NestleFrance2024-04-08Chemel, James L Cpa UNQUALIFIED81Bernardo Dominic
1021Silvio F PerinArgentina2024-04-13Dorl, James J Esq NEW23Ioni Bowcher
1022Alejandro W RoysterArgentina2024-04-11Chapman, Ross E Esq RENEWAL16Elwin Sharvill
1023Chavez N TollnerAustralia2024-04-14Chapman, Ross E Esq UNQUALIFIED10Bernardo Dominic
1024Kadeem E KolmetzSpain2024-04-06Dorl, James J Esq NEW78Stephen Shaw
1025Deepesh V InouyeBrazil2024-03-27Rangoni Of Florence UNQUALIFIED26Ioni Bowcher
1026Emily Q DilliardRussia2024-04-07Chemel, James L Cpa NEGOTIATION15Asiya Javayant
1027Antonio Y VocelkaBrazil2024-03-25Rousseaux, Michael Esq UNQUALIFIED43Bernardo Dominic
1028Claire N WaycottUnited Kingdom2024-04-06Printing Dimensions QUALIFIED88Elwin Sharvill
1029Nicolas E DarakjyBrazil2024-03-31Feltz Printing Service PROPOSAL90Xuxue Feng
1030Maisha M CaldareraItaly2024-04-02Truhlar And Truhlar Attys QUALIFIED84Ioni Bowcher
1031Izzy B VenereBrazil2024-04-06Feiner Bros PROPOSAL44Xuxue Feng
1032Jones F VocelkaBrazil2024-04-08Chapman, Ross E Esq PROPOSAL34Onyama Limba
1033Mayumi M PerinRussia2024-04-02Truhlar And Truhlar Attys PROPOSAL4Bernardo Dominic
1034Rodrigues P SergiFrance2024-03-25Feltz Printing Service NEGOTIATION41Xuxue Feng
1035Kadeem A BowleyAustralia2024-03-22Truhlar And Truhlar Attys RENEWAL28Ioni Bowcher
1036Darci R FigeroaRussia2024-03-25Commercial Press UNQUALIFIED58Anna Fali
1037Isabel B KolmetzItaly2024-04-09Morlong Associates NEW60Elwin Sharvill
1038Julie Q IturbideBrazil2024-03-29Buckley Miller Wright RENEWAL3Bernardo Dominic
1039Jefferson V InouyeCanada2024-03-30Buckley Miller Wright NEGOTIATION45Asiya Javayant
1040Adams Q ShinkoGermany2024-03-20King, Christopher A Esq PROPOSAL20Bernardo Dominic
1041Maria H CaudyCanada2024-04-14Rousseaux, Michael Esq UNQUALIFIED6Asiya Javayant
1042Greenwood D CaldareraGermany2024-04-13King, Christopher A Esq RENEWAL91Onyama Limba
1043Izzy N BriddickRussia2024-04-15Feiner Bros NEW55Bernardo Dominic
1044Alejandro L SchemmerArgentina2024-04-15Benton, John B Jr NEGOTIATION64Anna Fali
1045Maisha H PoquetteJapan2024-03-21Printing Dimensions PROPOSAL57Asiya Javayant
1046Sinclair E FollerArgentina2024-04-17Printing Dimensions RENEWAL27Onyama Limba
1047Adams E PaprockiAustralia2024-03-23Buckley Miller Wright PROPOSAL10Amy Elsner
1048Ivar K ButtIndia2024-04-10Buckley Miller Wright RENEWAL67Xuxue Feng
1049Johnson Q BriddickFrance2024-03-23Rangoni Of Florence UNQUALIFIED46Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aika D GauchoJapanStephen Shaw UNQUALIFIED
Greenwood S InouyeJapanIvan Magalhaes NEGOTIATION
Morrow L GarufiUnited KingdomElwin Sharvill RENEWAL
Antonio W KuskoSpainAmy Elsner UNQUALIFIED
Ricardo O BologniaItalyBernardo Dominic UNQUALIFIED
Johnson D MarrierUnited KingdomAmy Elsner PROPOSAL
Deepesh E CampainJapanStephen Shaw QUALIFIED
Costa S PerinSpainAmy Elsner UNQUALIFIED
Ricardo P RutaAustraliaStephen Shaw RENEWAL
David J SaylorsAustraliaAmy Elsner NEW
Sinclair U GauchoFranceXuxue Feng NEW
James T PerinRussiaIvan Magalhaes NEGOTIATION
Mayumi R PoquetteArgentinaIvan Magalhaes QUALIFIED
Greenwood I OldroydUnited KingdomBernardo Dominic PROPOSAL
Juan R RulapaughBrazilAmy Elsner RENEWAL
Misaki K NickaItalyXuxue Feng RENEWAL
Aika W DilliardItalyOnyama Limba NEW
Leon D WhobreyArgentinaStephen Shaw NEW
Juan G OstroskyRussiaIvan Magalhaes RENEWAL
Adams W CaudyCanadaBernardo Dominic PROPOSAL
Johnson J RoysterArgentinaIoni Bowcher QUALIFIED
Nicolas W DarakjyItalyXuxue Feng PROPOSAL
Emily F AmigonItalyIvan Magalhaes UNQUALIFIED
Kadeem J BowleyAustraliaStephen Shaw UNQUALIFIED
Darci D NickaFranceBernardo Dominic NEGOTIATION
Stacey P NestleAustraliaIoni Bowcher RENEWAL
Greenwood D AmigonUnited KingdomAnna Fali UNQUALIFIED
Stacey Q AlbaresUnited KingdomIvan Magalhaes RENEWAL
Chavez V GauchoUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin T MaletAustraliaAsiya Javayant QUALIFIED
Juan P WieserArgentinaOnyama Limba NEW
Leon O NestleAustraliaIvan Magalhaes NEW
Jefferson G MarrierArgentinaStephen Shaw PROPOSAL
Deepesh O RutaGermanyElwin Sharvill NEGOTIATION
Arvin C OstroskySpainStephen Shaw QUALIFIED
Izzy X NestleUnited KingdomOnyama Limba QUALIFIED
Kaitlin J CaldareraGermanyIoni Bowcher PROPOSAL
Deepesh T RulapaughCanadaBernardo Dominic PROPOSAL
Juan F SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Greenwood C KolmetzArgentinaOnyama Limba QUALIFIED
Alejandro Q RulapaughArgentinaXuxue Feng QUALIFIED
Kadeem O GarufiArgentinaBernardo Dominic PROPOSAL
Salvatore H WaycottSpainIvan Magalhaes NEW
Antonio I FlosiGermanyAsiya Javayant PROPOSAL
Smith L CampainRussiaAnna Fali RENEWAL
Francesco L WhobreyArgentinaBernardo Dominic NEGOTIATION
Darci Y IturbideRussiaIvan Magalhaes NEGOTIATION
Deepesh F SergiGermanyAmy Elsner PROPOSAL
Jefferson A RulapaughArgentinaAnna Fali QUALIFIED
Johnson U VocelkaCanadaOnyama Limba RENEWAL
Frozen Columns
Name
Ashley W Briddick
Jefferson Y Foller
Morrow R Royster
Sinclair D Albares
James B Saylors
Aditya R Amigon
Mujtaba N Kolmetz
Morrow E Flosi
Johnson C Gillian
Greenwood E Foller
Maisha P Gillian
Deepesh F Wieser
Jones H Iturbide
Alejandro N Stenseth
Aditya Q Foller
Arvin C Flosi
Faith V Figeroa
Darci U Caudy
Munro C Whobrey
Julie H Doe
Kaitlin K Kolmetz
Kadeem M Nicka
Clifford X Sergi
Jennifer D Vocelka
Smith I Poquette
Adams C Vocelka
Ashley X Sergi
Morrow O Darakjy
Kaitlin Q Stockham
Kadeem W Schemmer
Adams M Darakjy
Izzy A Bowley
Maria D Glick
Aruna X Nicka
Salvatore V Kusko
Isabel M Amigon
Claire Q Rim
Francesco O Butt
Leon W Stenseth
Maria H Paprocki
Kadeem V Ruta
Mayumi J Kolmetz
Smith U Flosi
Cody E Ferencz
Isabel S Gaucho
Claire N Caldarera
Aditya U Glick
David T Wieser
James A Shinko
James Y Stenseth
IdCountryDate
1000Canada2024-04-12
1001Argentina2024-03-30
1002France2024-04-08
1003Canada2024-03-21
1004Canada2024-03-29
1005Australia2024-04-08
1006Australia2024-03-20
1007Japan2024-04-16
1008Brazil2024-03-29
1009Canada2024-03-30
1010Argentina2024-03-20
1011Germany2024-03-28
1012Spain2024-03-21
1013United Kingdom2024-03-23
1014Germany2024-04-03
1015Canada2024-04-10
1016United Kingdom2024-04-09
1017Canada2024-04-08
1018India2024-03-28
1019Spain2024-04-10
1020Spain2024-03-27
1021India2024-04-04
1022Brazil2024-04-06
1023France2024-04-02
1024Australia2024-03-21
1025Australia2024-04-17
1026Australia2024-03-24
1027Australia2024-03-26
1028Brazil2024-04-05
1029Germany2024-04-07
1030Argentina2024-04-03
1031Australia2024-04-07
1032Australia2024-03-27
1033Russia2024-03-30
1034Russia2024-04-03
1035Canada2024-03-27
1036United Kingdom2024-04-05
1037Spain2024-04-13
1038Argentina2024-03-21
1039Australia2024-04-09
1040Brazil2024-04-06
1041Australia2024-04-01
1042Germany2024-04-13
1043Italy2024-04-10
1044France2024-03-25
1045Spain2024-04-06
1046Japan2024-04-08
1047Japan2024-03-24
1048Brazil2024-03-25
1049Spain2024-03-24

On-Demand Data

NameIdCountryDate
Kadeem A Perin1000Argentina2024-04-14
Greenwood U Darakjy1001India2024-04-02
Rodrigues A Paprocki1002Russia2024-03-20
David M Garufi1003Spain2024-04-09
Tony B Wieser1004India2024-03-28
Leon B Chui1005Argentina2024-04-12
Maisha O Whobrey1006Australia2024-03-22
Antonio E Paprocki1007Italy2024-04-05
Aditya R Nestle1008Canada2024-03-29
Izzy Y Slusarski1009India2024-04-13
Mujtaba I Caudy1010Spain2024-03-26
Antonio R Tollner1011Germany2024-04-09
Kadeem R Schemmer1012France2024-04-02
Ivar L Garufi1013Australia2024-03-22
James J Vocelka1014India2024-04-01
Adams E Briddick1015France2024-03-20
Chavez Y Nicka1016Brazil2024-03-26
Darci Z Malet1017Australia2024-04-07
Mayumi O Glick1018Italy2024-04-11
Juan G Butt1019India2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer O KolmetzUnited KingdomStephen Shaw PROPOSAL
Deepesh H CaudyFranceXuxue Feng RENEWAL
Costa H DilliardRussiaAnna Fali NEGOTIATION
Faith P KolmetzIndiaBernardo Dominic NEGOTIATION
Leja C SlusarskiAustraliaBernardo Dominic QUALIFIED
Munro C PoquetteJapanAmy Elsner UNQUALIFIED
Octavia M FollerGermanyOnyama Limba PROPOSAL
Darci F PaprockiFranceIvan Magalhaes RENEWAL
Smith J GillianBrazilStephen Shaw PROPOSAL
Leja B SchemmerGermanyAnna Fali PROPOSAL
Julie D ChuiAustraliaXuxue Feng NEW
Sinclair K BriddickAustraliaIvan Magalhaes NEGOTIATION
Chavez J GauchoItalyIoni Bowcher QUALIFIED
Sinclair M GillianGermanyElwin Sharvill PROPOSAL
Jefferson U OldroydItalyXuxue Feng NEW
Julie K MaletFranceOnyama Limba RENEWAL
Wickens R MaletAustraliaAmy Elsner QUALIFIED
Octavia R FerenczCanadaIvan Magalhaes NEGOTIATION
Greenwood T AlbaresCanadaOnyama Limba UNQUALIFIED
Costa N DarakjyBrazilElwin Sharvill NEGOTIATION
Maisha A PoquetteJapanAsiya Javayant QUALIFIED
Isabel Z MorascaUnited KingdomAnna Fali NEW
Jefferson V DoeGermanyStephen Shaw PROPOSAL
Octavia Z KolmetzArgentinaAsiya Javayant NEW
Deepesh I MarrierFranceIoni Bowcher QUALIFIED
Ricardo S BriddickGermanyXuxue Feng PROPOSAL
Antonio W GauchoGermanyBernardo Dominic NEGOTIATION
Jennifer L MaletSpainElwin Sharvill NEGOTIATION
Jefferson Y VenereAustraliaIoni Bowcher RENEWAL
Isabel Z BriddickBrazilAnna Fali RENEWAL
Isabel X FigeroaJapanXuxue Feng UNQUALIFIED
Morrow X MarrierFranceStephen Shaw PROPOSAL
Claire U PaprockiAustraliaElwin Sharvill NEW
Kadeem P ShinkoFranceBernardo Dominic RENEWAL
Jennifer K StockhamAustraliaAsiya Javayant PROPOSAL
Jeanfrancois N MaletCanadaAsiya Javayant NEGOTIATION
Leja P TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Ivar I GlickItalyStephen Shaw NEW
James S RutaItalyXuxue Feng NEW
Jones R KolmetzCanadaAmy Elsner 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>