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 Y WaycottIndiaAsiya Javayant NEW
Arvin X SchemmerFranceIvan Magalhaes QUALIFIED
Izzy Q SaylorsGermanyOnyama Limba NEW
Adams C GarufiSpainElwin Sharvill QUALIFIED
Greenwood B VenereBrazilBernardo Dominic PROPOSAL
Maria Q GauchoBrazilBernardo Dominic UNQUALIFIED
Cody M VenereBrazilIoni Bowcher QUALIFIED
Arvin A MaletItalyElwin Sharvill NEGOTIATION
Ivar H SaylorsJapanOnyama Limba NEW
Izzy R AmigonUnited KingdomElwin Sharvill PROPOSAL
Wickens N WhobreyRussiaIoni Bowcher UNQUALIFIED
Silvio S AlbaresJapanAmy Elsner NEGOTIATION
Munro N FerenczGermanyIoni Bowcher QUALIFIED
Chavez I RulapaughSpainStephen Shaw NEGOTIATION
Mujtaba A VocelkaSpainXuxue Feng NEW
Emily Q RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Arvin R BowleyFranceIoni Bowcher QUALIFIED
Aditya G StensethRussiaElwin Sharvill NEGOTIATION
Kadeem E BologniaArgentinaAsiya Javayant QUALIFIED
Faith W GillianArgentinaAsiya Javayant QUALIFIED
Clifford R PerinJapanBernardo Dominic QUALIFIED
Stacey U WieserGermanyIvan Magalhaes NEGOTIATION
Alejandro J MaletBrazilElwin Sharvill PROPOSAL
Misaki Z ShinkoAustraliaAsiya Javayant PROPOSAL
Murillo O WieserGermanyAsiya Javayant NEGOTIATION
Maisha Z InouyeSpainBernardo Dominic UNQUALIFIED
Salvatore K WieserRussiaBernardo Dominic QUALIFIED
Kadeem M CampainUnited KingdomXuxue Feng UNQUALIFIED
Izzy B VenereArgentinaElwin Sharvill NEGOTIATION
Antonio Q MarrierCanadaAnna Fali NEW
Darci D SchemmerItalyIoni Bowcher PROPOSAL
Alejandro Z WaycottRussiaAmy Elsner RENEWAL
Murillo Y FlosiItalyElwin Sharvill NEW
David J VenereUnited KingdomStephen Shaw UNQUALIFIED
Isabel Y WieserAustraliaElwin Sharvill QUALIFIED
Alejandro O CaudyItalyAnna Fali RENEWAL
Antonio V DoeUnited KingdomIvan Magalhaes NEW
Kadeem F AmigonArgentinaAsiya Javayant RENEWAL
Emily C OldroydRussiaStephen Shaw RENEWAL
Wickens T InouyeFranceAsiya Javayant QUALIFIED
Morrow F OstroskyArgentinaIvan Magalhaes QUALIFIED
Darci B DoeRussiaElwin Sharvill NEW
Morrow U FigeroaIndiaStephen Shaw QUALIFIED
Mayumi X CaudyIndiaBernardo Dominic RENEWAL
David M SlusarskiJapanBernardo Dominic NEW
Jeanfrancois W StensethIndiaBernardo Dominic RENEWAL
Aika Y FigeroaRussiaXuxue Feng NEGOTIATION
Maisha J PoquetteIndiaIoni Bowcher NEW
Darci D SchemmerAustraliaAsiya Javayant QUALIFIED
Wickens A VenereRussiaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya G FerenczArgentinaIvan Magalhaes NEGOTIATION
Antonio J BowleyFranceAsiya Javayant QUALIFIED
Antonio C InouyeUnited KingdomIvan Magalhaes PROPOSAL
Maria Z MacleadAustraliaAmy Elsner PROPOSAL
Deepesh C KuskoFranceStephen Shaw QUALIFIED
Salvatore N GillianFranceAmy Elsner NEW
Murillo K FigeroaCanadaStephen Shaw PROPOSAL
Juan R FerenczGermanyElwin Sharvill PROPOSAL
Aika O TollnerArgentinaOnyama Limba NEGOTIATION
Chavez W DarakjyIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez K WaycottIndia2024-04-17Feltz Printing Service NEW44Xuxue Feng
1001Ashley O RimCanada2024-04-01King, Christopher A Esq QUALIFIED78Anna Fali
1002Nicolas Y FigeroaItaly2024-04-25Buckley Miller Wright UNQUALIFIED77Asiya Javayant
1003Julie Y CampainSpain2024-04-09Feiner Bros QUALIFIED1Ioni Bowcher
1004Aruna O ChuiSpain2024-03-28Benton, John B Jr NEW6Xuxue Feng
1005Maisha J RutaJapan2024-04-16Morlong Associates NEW90Onyama Limba
1006Johnson T KuskoArgentina2024-04-03Truhlar And Truhlar Attys NEGOTIATION69Anna Fali
1007Kaitlin E CampainGermany2024-04-20Benton, John B Jr QUALIFIED17Anna Fali
1008Aika H CaudyUnited Kingdom2024-04-17Buckley Miller Wright QUALIFIED27Asiya Javayant
1009Salvatore L TollnerBrazil2024-04-25Truhlar And Truhlar Attys UNQUALIFIED94Bernardo Dominic
1010Isabel R InouyeItaly2024-03-30Feltz Printing Service UNQUALIFIED16Asiya Javayant
1011Leja J ShinkoCanada2024-04-08Chapman, Ross E Esq QUALIFIED79Onyama Limba
1012James P PaprockiUnited Kingdom2024-03-27Commercial Press PROPOSAL87Ivan Magalhaes
1013Morrow O BologniaUnited Kingdom2024-04-13King, Christopher A Esq PROPOSAL59Anna Fali
1014Smith R StensethUnited Kingdom2024-04-10Commercial Press NEW64Amy Elsner
1015Ricardo I CampainGermany2024-03-31Commercial Press UNQUALIFIED10Onyama Limba
1016Morrow P NickaRussia2024-03-31Buckley Miller Wright NEGOTIATION69Asiya Javayant
1017Jeanfrancois X GarufiArgentina2024-03-31King, Christopher A Esq RENEWAL98Stephen Shaw
1018Darci U TollnerUnited Kingdom2024-03-30Morlong Associates NEGOTIATION11Bernardo Dominic
1019Jennifer O ChuiCanada2024-04-23Benton, John B Jr NEGOTIATION73Asiya Javayant
1020Morrow Y ButtItaly2024-04-11Rangoni Of Florence RENEWAL37Elwin Sharvill
1021Munro R DilliardGermany2024-03-30Commercial Press PROPOSAL6Ioni Bowcher
1022Jefferson U OldroydGermany2024-04-16Printing Dimensions UNQUALIFIED0Elwin Sharvill
1023Chavez F MaletUnited Kingdom2024-04-01Chapman, Ross E Esq PROPOSAL13Stephen Shaw
1024Wickens C StockhamJapan2024-04-14Feltz Printing Service PROPOSAL88Asiya Javayant
1025Clifford S SergiSpain2024-04-25Commercial Press PROPOSAL50Asiya Javayant
1026Stacey H GarufiFrance2024-04-15Benton, John B Jr NEW89Asiya Javayant
1027Juan L BriddickItaly2024-04-06Benton, John B Jr QUALIFIED3Amy Elsner
1028Arvin R BowleyArgentina2024-04-15Chapman, Ross E Esq UNQUALIFIED15Onyama Limba
1029Mujtaba V RimBrazil2024-04-17Rousseaux, Michael Esq RENEWAL81Ioni Bowcher
1030Adams A SergiAustralia2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED81Ivan Magalhaes
1031Ricardo I GarufiIndia2024-03-31Truhlar And Truhlar Attys UNQUALIFIED31Xuxue Feng
1032Misaki V PerinCanada2024-04-15Buckley Miller Wright RENEWAL32Onyama Limba
1033Jefferson C FerenczGermany2024-04-04Rousseaux, Michael Esq UNQUALIFIED43Ivan Magalhaes
1034Clifford F DoeGermany2024-04-07Chapman, Ross E Esq QUALIFIED89Anna Fali
1035Rodrigues T RoysterArgentina2024-04-21Chemel, James L Cpa UNQUALIFIED52Ivan Magalhaes
1036Chavez Q ShinkoFrance2024-03-29Buckley Miller Wright NEW72Amy Elsner
1037Darci V FlosiItaly2024-03-29Benton, John B Jr UNQUALIFIED69Anna Fali
1038Isabel C ShinkoRussia2024-03-28Chanay, Jeffrey A Esq UNQUALIFIED53Anna Fali
1039Kaitlin X StensethCanada2024-04-15Benton, John B Jr UNQUALIFIED3Asiya Javayant
1040Greenwood R FlosiIndia2024-04-11Buckley Miller Wright QUALIFIED47Asiya Javayant
1041Jennifer M RimCanada2024-04-17Buckley Miller Wright UNQUALIFIED68Ioni Bowcher
1042Isabel V NestleAustralia2024-04-10King, Christopher A Esq NEW7Bernardo Dominic
1043Jones B FollerSpain2024-04-24Buckley Miller Wright NEGOTIATION2Elwin Sharvill
1044Stacey J CaldareraArgentina2024-04-06Feltz Printing Service NEW38Onyama Limba
1045Aditya T CaldareraUnited Kingdom2024-03-28Feltz Printing Service NEW48Amy Elsner
1046Johnson D PoquetteArgentina2024-04-21Commercial Press NEW36Ioni Bowcher
1047Tony T VocelkaRussia2024-04-24Rangoni Of Florence UNQUALIFIED3Ioni Bowcher
1048Jones S RoysterAustralia2024-04-06Buckley Miller Wright QUALIFIED79Ioni Bowcher
1049Rodrigues E InouyeUnited Kingdom2024-04-20Buckley Miller Wright QUALIFIED76Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Murillo C RutaBrazilIvan Magalhaes NEW
Nicolas S KuskoSpainElwin Sharvill RENEWAL
Leja U VenereItalyXuxue Feng RENEWAL
Antonio Z NickaArgentinaAsiya Javayant RENEWAL
Maria G SchemmerJapanOnyama Limba NEW
Greenwood Y AlbaresItalyAnna Fali PROPOSAL
Greenwood U SergiJapanOnyama Limba QUALIFIED
Emily C RutaGermanyElwin Sharvill PROPOSAL
Leja P SlusarskiIndiaAmy Elsner NEW
Maisha H GauchoArgentinaBernardo Dominic UNQUALIFIED
Maria S WhobreyUnited KingdomBernardo Dominic RENEWAL
Kadeem W DarakjyIndiaIvan Magalhaes QUALIFIED
Arvin Z KolmetzBrazilXuxue Feng NEGOTIATION
David I SchemmerUnited KingdomXuxue Feng NEW
Mayumi N FollerArgentinaBernardo Dominic QUALIFIED
Wickens Q BriddickRussiaAsiya Javayant RENEWAL
Aika D KuskoBrazilBernardo Dominic PROPOSAL
James H RoysterIndiaBernardo Dominic NEW
Maisha M MarrierItalyIoni Bowcher PROPOSAL
Isabel V WieserBrazilOnyama Limba NEW
Aika J FerenczBrazilElwin Sharvill RENEWAL
Izzy K MarrierBrazilAmy Elsner UNQUALIFIED
Sinclair A GarufiFranceAsiya Javayant NEW
Misaki T BowleyItalyBernardo Dominic QUALIFIED
Misaki S BriddickIndiaAmy Elsner PROPOSAL
Arvin G MorascaUnited KingdomAnna Fali NEW
Cody C WaycottAustraliaAmy Elsner QUALIFIED
Salvatore J OstroskyGermanyElwin Sharvill RENEWAL
Cody D BriddickArgentinaXuxue Feng NEGOTIATION
Adams V TollnerArgentinaBernardo Dominic NEW
Darci M MorascaArgentinaIoni Bowcher RENEWAL
Silvio Y MacleadFranceXuxue Feng UNQUALIFIED
Isabel L GillianGermanyAnna Fali PROPOSAL
Aditya W ButtIndiaAsiya Javayant NEW
Antonio S KolmetzUnited KingdomStephen Shaw QUALIFIED
Tony L MarrierRussiaAmy Elsner NEGOTIATION
Jeanfrancois D GillianFranceIvan Magalhaes RENEWAL
Ashley V PaprockiUnited KingdomAmy Elsner NEGOTIATION
Maria V MaletAustraliaAsiya Javayant PROPOSAL
Julie S RutaIndiaAnna Fali PROPOSAL
Kaitlin T MorascaBrazilElwin Sharvill NEW
Misaki D FerenczFranceAsiya Javayant NEGOTIATION
Faith H MaletUnited KingdomAmy Elsner UNQUALIFIED
Salvatore B FollerFranceIvan Magalhaes QUALIFIED
Silvio C WaycottJapanOnyama Limba UNQUALIFIED
Cody Z FerenczArgentinaXuxue Feng PROPOSAL
Misaki D WhobreyCanadaElwin Sharvill UNQUALIFIED
Kadeem Y FerenczUnited KingdomElwin Sharvill QUALIFIED
Johnson Y RutaJapanXuxue Feng PROPOSAL
Jennifer Y NestleItalyIvan Magalhaes RENEWAL
Frozen Columns
Name
Jones M Wieser
Aditya B Saylors
Misaki Z Ruta
Clifford K Gaucho
Octavia O Whobrey
Aruna I Glick
Maria C Bolognia
Deepesh L Gillian
Salvatore O Malet
Leja D Malet
David H Rulapaugh
Tony Z Ferencz
Morrow S Malet
Alejandro F Doe
Alejandro C Stockham
Arvin C Slusarski
Rodrigues D Wieser
Isabel L Flosi
Emily J Nestle
Jones I Kolmetz
Jefferson R Albares
Aika T Butt
Ashley O Garufi
Clifford U Tollner
Cody L Royster
Silvio Y Schemmer
Ashley Y Doe
Leja D Butt
Ricardo E Rulapaugh
Silvio L Stockham
Ashley B Malet
Mujtaba S Inouye
David U Ferencz
Jennifer M Caldarera
Aika C Wieser
Chavez D Schemmer
Tony B Rim
Maria N Garufi
Misaki G Kusko
Arvin T Figeroa
Alejandro Y Malet
Aruna D Saylors
Johnson K Stenseth
Mayumi G Inouye
Antonio X Foller
Jefferson J Perin
Misaki X Royster
Darci H Ferencz
Kadeem P Garufi
Darci P Stenseth
IdCountryDate
1000United Kingdom2024-04-03
1001Spain2024-04-18
1002Japan2024-04-09
1003Italy2024-04-17
1004Brazil2024-04-25
1005Canada2024-04-20
1006France2024-04-02
1007Japan2024-04-23
1008Brazil2024-04-15
1009India2024-03-28
1010Russia2024-04-21
1011Brazil2024-04-13
1012Germany2024-04-07
1013Russia2024-04-06
1014Canada2024-04-20
1015France2024-04-09
1016Russia2024-04-08
1017United Kingdom2024-04-25
1018Japan2024-04-01
1019Russia2024-04-07
1020France2024-03-29
1021Argentina2024-04-09
1022Spain2024-04-11
1023Italy2024-04-13
1024United Kingdom2024-04-04
1025France2024-04-17
1026Italy2024-03-30
1027Australia2024-04-22
1028Brazil2024-04-21
1029United Kingdom2024-03-27
1030Spain2024-04-09
1031Japan2024-04-03
1032India2024-04-02
1033Australia2024-04-14
1034Japan2024-04-04
1035Canada2024-04-01
1036Italy2024-03-29
1037Australia2024-04-24
1038Spain2024-04-03
1039Brazil2024-04-02
1040Japan2024-03-30
1041Spain2024-03-30
1042Italy2024-04-08
1043India2024-04-21
1044United Kingdom2024-04-01
1045Canada2024-04-03
1046India2024-04-08
1047Italy2024-04-18
1048Australia2024-03-29
1049Japan2024-03-27

On-Demand Data

NameIdCountryDate
Jones Y Saylors1000United Kingdom2024-04-10
Smith O Gillian1001Brazil2024-04-16
Ashley E Maclead1002Brazil2024-04-19
Jeanfrancois A Nestle1003Germany2024-04-08
Francesco E Caudy1004Russia2024-04-06
Murillo T Albares1005Italy2024-03-29
Antonio S Paprocki1006Germany2024-04-05
Wickens F Flosi1007Italy2024-04-11
Antonio Q Doe1008Australia2024-04-03
Ashley M Figeroa1009Germany2024-04-17
Isabel Q Dilliard1010Spain2024-04-11
Alejandro W Dilliard1011Brazil2024-04-19
Aika O Schemmer1012United Kingdom2024-04-09
Claire U Chui1013Brazil2024-04-05
Jefferson D Whobrey1014Spain2024-04-24
Chavez E Chui1015Australia2024-04-10
Aruna D Malet1016Italy2024-03-29
Wickens M Butt1017Germany2024-04-08
Mayumi H Venere1018Canada2024-03-28
Alejandro F Royster1019India2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin F CampainJapanXuxue Feng PROPOSAL
Maisha J AlbaresArgentinaStephen Shaw PROPOSAL
Kaitlin O WaycottGermanyAsiya Javayant UNQUALIFIED
Chavez X MorascaBrazilOnyama Limba RENEWAL
Juan F NickaAustraliaStephen Shaw NEGOTIATION
Rodrigues T TollnerUnited KingdomIoni Bowcher NEGOTIATION
Jennifer X NickaItalyAnna Fali PROPOSAL
James L RoysterArgentinaElwin Sharvill RENEWAL
Ashley O FollerItalyOnyama Limba NEW
Wickens Y GlickCanadaStephen Shaw RENEWAL
Rodrigues V AmigonUnited KingdomXuxue Feng RENEWAL
Clifford K StensethSpainBernardo Dominic NEGOTIATION
Mayumi L FollerAustraliaIoni Bowcher PROPOSAL
Aditya N VocelkaArgentinaStephen Shaw QUALIFIED
Octavia X OstroskyUnited KingdomAnna Fali NEGOTIATION
Johnson P GlickJapanAnna Fali NEW
Jeanfrancois F AlbaresAustraliaAsiya Javayant NEGOTIATION
James L ShinkoAustraliaIvan Magalhaes NEW
Clifford R PoquetteAustraliaElwin Sharvill NEGOTIATION
Julie V SlusarskiCanadaAmy Elsner NEGOTIATION
Maisha S IturbideBrazilAnna Fali NEW
Cody I WhobreyCanadaStephen Shaw NEW
Ashley M RutaGermanyElwin Sharvill RENEWAL
Johnson M RulapaughFranceElwin Sharvill RENEWAL
Francesco W PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Arvin Y PerinArgentinaAmy Elsner NEW
Isabel N FigeroaUnited KingdomXuxue Feng RENEWAL
Claire V MacleadJapanAmy Elsner RENEWAL
Izzy G InouyeRussiaAsiya Javayant PROPOSAL
Julie R BologniaFranceIoni Bowcher UNQUALIFIED
Octavia F CaldareraUnited KingdomBernardo Dominic NEW
Jones J VocelkaArgentinaStephen Shaw PROPOSAL
Antonio V KolmetzSpainIoni Bowcher NEGOTIATION
Aruna V BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Tony B FerenczBrazilBernardo Dominic NEW
Ricardo V MaletItalyOnyama Limba NEGOTIATION
Leja R SlusarskiJapanBernardo Dominic RENEWAL
Antonio B CaudyFranceAmy Elsner RENEWAL
Faith Y WieserGermanyStephen Shaw QUALIFIED
Jennifer I MarrierRussiaStephen 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>