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
Sinclair W FerenczAustraliaAmy Elsner NEGOTIATION
Murillo X PaprockiArgentinaAnna Fali NEGOTIATION
Misaki N ChuiFranceAnna Fali NEGOTIATION
Morrow F OstroskyIndiaElwin Sharvill NEW
Clifford S WhobreyItalyIvan Magalhaes RENEWAL
Antonio G RoysterAustraliaIoni Bowcher NEGOTIATION
Clifford Q OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Costa D CampainItalyAsiya Javayant RENEWAL
Rodrigues Q DarakjyAustraliaBernardo Dominic NEW
Ashley J StockhamRussiaOnyama Limba NEW
Tony O StockhamGermanyStephen Shaw NEGOTIATION
Kadeem T ChuiFranceElwin Sharvill UNQUALIFIED
Ashley A SaylorsUnited KingdomOnyama Limba PROPOSAL
Nicolas P VenereFranceIoni Bowcher RENEWAL
Octavia F FigeroaFranceElwin Sharvill RENEWAL
Maria Z GillianRussiaAmy Elsner UNQUALIFIED
Ivar S FlosiCanadaIvan Magalhaes RENEWAL
Maisha X MarrierAustraliaXuxue Feng NEGOTIATION
Jeanfrancois S InouyeArgentinaIvan Magalhaes NEGOTIATION
Morrow H ButtItalyIvan Magalhaes RENEWAL
Jefferson L InouyeAustraliaAsiya Javayant NEW
Aruna Z StensethUnited KingdomOnyama Limba UNQUALIFIED
Adams L WieserJapanAmy Elsner PROPOSAL
Leja C KolmetzIndiaStephen Shaw RENEWAL
Clifford G IturbideJapanIvan Magalhaes NEW
Sinclair R NickaJapanIvan Magalhaes RENEWAL
Izzy Y DarakjyCanadaIoni Bowcher QUALIFIED
Antonio S PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Greenwood M AmigonRussiaAmy Elsner NEGOTIATION
Deepesh F SlusarskiFranceAnna Fali NEW
Johnson H StockhamItalyXuxue Feng PROPOSAL
Misaki V WaycottIndiaAnna Fali NEGOTIATION
David Q VocelkaSpainIoni Bowcher PROPOSAL
Ashley R ButtGermanyIvan Magalhaes NEW
Claire X StockhamJapanXuxue Feng NEGOTIATION
Jeanfrancois C TollnerUnited KingdomBernardo Dominic NEGOTIATION
Munro Q CaudyAustraliaIvan Magalhaes RENEWAL
Munro V SlusarskiCanadaAsiya Javayant NEW
Isabel W ShinkoArgentinaStephen Shaw UNQUALIFIED
Misaki Y PaprockiIndiaElwin Sharvill RENEWAL
Tony W PoquetteBrazilOnyama Limba QUALIFIED
Mayumi E NickaIndiaAnna Fali NEGOTIATION
Maisha K PaprockiUnited KingdomStephen Shaw NEGOTIATION
Rodrigues Y IturbideArgentinaStephen Shaw NEGOTIATION
Clifford A RimBrazilElwin Sharvill UNQUALIFIED
Adams N GarufiArgentinaAnna Fali PROPOSAL
Morrow H FerenczItalyOnyama Limba RENEWAL
James E RoysterRussiaOnyama Limba UNQUALIFIED
Ashley U RoysterRussiaXuxue Feng PROPOSAL
Morrow C SlusarskiUnited KingdomXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem Z SergiAustraliaOnyama Limba NEW
James R GauchoSpainAmy Elsner UNQUALIFIED
Nicolas G NickaArgentinaAmy Elsner NEGOTIATION
Adams T BowleyGermanyXuxue Feng NEGOTIATION
Antonio P SlusarskiRussiaBernardo Dominic QUALIFIED
Kadeem G ShinkoRussiaAnna Fali RENEWAL
Johnson D IturbideItalyIvan Magalhaes QUALIFIED
Murillo X FlosiGermanyAmy Elsner PROPOSAL
Munro K SlusarskiIndiaIoni Bowcher QUALIFIED
Silvio H FlosiCanadaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford O BriddickIndia2024-04-01Printing Dimensions PROPOSAL97Amy Elsner
1001Darci M DarakjyJapan2024-04-18Feltz Printing Service NEW87Amy Elsner
1002Rodrigues S PerinItaly2024-04-18Benton, John B Jr RENEWAL48Ioni Bowcher
1003Darci R BowleyIndia2024-04-02Chemel, James L Cpa UNQUALIFIED11Xuxue Feng
1004Greenwood R ShinkoAustralia2024-04-09Rousseaux, Michael Esq NEGOTIATION60Xuxue Feng
1005Greenwood S GlickIndia2024-04-17Chapman, Ross E Esq QUALIFIED57Anna Fali
1006Smith V BriddickItaly2024-04-06Chanay, Jeffrey A Esq NEGOTIATION25Bernardo Dominic
1007Ivar E MaletSpain2024-04-04Feiner Bros QUALIFIED78Ioni Bowcher
1008Johnson C VocelkaArgentina2024-04-17Truhlar And Truhlar Attys NEGOTIATION57Asiya Javayant
1009Jennifer W GlickArgentina2024-04-13Benton, John B Jr UNQUALIFIED27Amy Elsner
1010Julie D OstroskySpain2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED50Xuxue Feng
1011Johnson R TollnerGermany2024-03-30Feltz Printing Service RENEWAL22Anna Fali
1012Aditya A SergiGermany2024-04-16Feiner Bros UNQUALIFIED95Bernardo Dominic
1013Silvio H NickaGermany2024-03-29Commercial Press RENEWAL28Amy Elsner
1014Salvatore R ButtArgentina2024-04-09Feiner Bros PROPOSAL34Ioni Bowcher
1015Isabel X VenereFrance2024-03-30Chanay, Jeffrey A Esq NEW74Stephen Shaw
1016Mujtaba W TollnerUnited Kingdom2024-04-17Chemel, James L Cpa NEGOTIATION60Ivan Magalhaes
1017Smith G WieserJapan2024-04-20King, Christopher A Esq QUALIFIED69Anna Fali
1018Jones Z IturbideCanada2024-04-19Morlong Associates NEGOTIATION28Amy Elsner
1019Octavia M PaprockiBrazil2024-04-17Chemel, James L Cpa PROPOSAL53Asiya Javayant
1020Johnson W VocelkaGermany2024-04-17Commercial Press QUALIFIED72Elwin Sharvill
1021Chavez S StensethAustralia2024-04-07Dorl, James J Esq PROPOSAL37Ivan Magalhaes
1022James L FigeroaCanada2024-04-01Buckley Miller Wright UNQUALIFIED41Bernardo Dominic
1023Aditya U RutaJapan2024-04-10Morlong Associates NEGOTIATION44Elwin Sharvill
1024Murillo L CampainItaly2024-04-03Buckley Miller Wright RENEWAL45Ioni Bowcher
1025Aditya L MaletUnited Kingdom2024-04-01Benton, John B Jr RENEWAL42Anna Fali
1026Silvio J ChuiFrance2024-04-21Commercial Press NEGOTIATION65Amy Elsner
1027Octavia H KolmetzSpain2024-04-02Rangoni Of Florence UNQUALIFIED50Asiya Javayant
1028Stacey F MarrierRussia2024-04-11Truhlar And Truhlar Attys RENEWAL61Anna Fali
1029Chavez C GlickIndia2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED97Elwin Sharvill
1030Adams O ButtJapan2024-04-06Commercial Press NEGOTIATION37Onyama Limba
1031Murillo M MorascaRussia2024-03-30Rangoni Of Florence QUALIFIED8Onyama Limba
1032Rodrigues R AlbaresUnited Kingdom2024-03-27Benton, John B Jr UNQUALIFIED49Amy Elsner
1033Deepesh N SaylorsGermany2024-04-14Feltz Printing Service PROPOSAL9Elwin Sharvill
1034Rodrigues W MarrierCanada2024-04-16Feiner Bros RENEWAL22Ioni Bowcher
1035Jones X PoquetteJapan2024-03-28Rangoni Of Florence UNQUALIFIED67Bernardo Dominic
1036Kadeem L FerenczSpain2024-04-23Printing Dimensions NEGOTIATION46Amy Elsner
1037Stacey J DilliardJapan2024-03-26Rangoni Of Florence NEW68Ioni Bowcher
1038Munro Z VenereIndia2024-04-02Benton, John B Jr QUALIFIED45Asiya Javayant
1039Claire O ChuiUnited Kingdom2024-04-21Truhlar And Truhlar Attys UNQUALIFIED19Anna Fali
1040Greenwood W MaletJapan2024-04-13Rousseaux, Michael Esq NEGOTIATION54Asiya Javayant
1041Jones T WieserSpain2024-04-20Buckley Miller Wright RENEWAL49Onyama Limba
1042Aditya R FollerUnited Kingdom2024-04-03Rangoni Of Florence NEW77Stephen Shaw
1043Stacey A OldroydSpain2024-04-17Feiner Bros UNQUALIFIED35Stephen Shaw
1044Silvio O TollnerCanada2024-04-15Rangoni Of Florence RENEWAL34Xuxue Feng
1045Julie T FlosiItaly2024-04-21Rangoni Of Florence QUALIFIED25Onyama Limba
1046Maria D SaylorsFrance2024-04-04Truhlar And Truhlar Attys PROPOSAL36Elwin Sharvill
1047Ashley X RimSpain2024-04-18Rangoni Of Florence NEGOTIATION69Bernardo Dominic
1048Rodrigues C KolmetzItaly2024-04-16Feltz Printing Service NEW39Bernardo Dominic
1049Arvin J OstroskyBrazil2024-04-18Dorl, James J Esq UNQUALIFIED2Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem A VocelkaItalyOnyama Limba RENEWAL
Silvio W KolmetzBrazilBernardo Dominic PROPOSAL
Johnson Z NickaGermanyStephen Shaw NEW
Ricardo Q KolmetzSpainElwin Sharvill RENEWAL
Sinclair Q DilliardJapanAnna Fali NEW
Maria V KolmetzRussiaIoni Bowcher NEW
Mujtaba O GauchoGermanyAmy Elsner RENEWAL
Aika R VenereBrazilIoni Bowcher NEW
Murillo R InouyeFranceOnyama Limba QUALIFIED
Aruna Q ButtGermanyBernardo Dominic RENEWAL
Deepesh T InouyeAustraliaXuxue Feng QUALIFIED
Izzy C RulapaughBrazilAsiya Javayant NEW
Silvio Z FerenczUnited KingdomElwin Sharvill NEW
Faith N GauchoIndiaStephen Shaw NEW
Kaitlin X PoquetteIndiaStephen Shaw UNQUALIFIED
Mayumi G VenereRussiaIoni Bowcher QUALIFIED
Smith M PaprockiRussiaAmy Elsner QUALIFIED
Wickens V NickaArgentinaIvan Magalhaes RENEWAL
Darci W VocelkaItalyBernardo Dominic NEGOTIATION
Darci E RimCanadaAnna Fali PROPOSAL
David X VocelkaCanadaAnna Fali RENEWAL
Murillo C OldroydSpainXuxue Feng UNQUALIFIED
Munro N ShinkoGermanyIvan Magalhaes NEGOTIATION
Costa J BowleyRussiaAnna Fali NEW
Aruna G AlbaresGermanyIvan Magalhaes RENEWAL
Misaki N RimArgentinaAmy Elsner QUALIFIED
Misaki N VenereIndiaAnna Fali PROPOSAL
Tony A InouyeUnited KingdomBernardo Dominic PROPOSAL
Jefferson Y MacleadAustraliaBernardo Dominic UNQUALIFIED
Ricardo C SchemmerSpainAsiya Javayant UNQUALIFIED
Leja H WaycottAustraliaElwin Sharvill UNQUALIFIED
Silvio C ButtRussiaElwin Sharvill NEW
Wickens I BriddickGermanyElwin Sharvill UNQUALIFIED
Emily U PoquetteIndiaIoni Bowcher PROPOSAL
Juan R DarakjyGermanyAmy Elsner PROPOSAL
Misaki W KolmetzBrazilXuxue Feng RENEWAL
Rodrigues P RulapaughJapanAmy Elsner NEGOTIATION
Misaki H KolmetzBrazilIvan Magalhaes PROPOSAL
Faith S GarufiAustraliaOnyama Limba UNQUALIFIED
Wickens S DarakjyAustraliaStephen Shaw PROPOSAL
Darci C NestleAustraliaAmy Elsner NEW
Jones Q NestleItalyAmy Elsner NEGOTIATION
Aditya X WieserItalyAsiya Javayant UNQUALIFIED
Smith K KuskoFranceAsiya Javayant NEGOTIATION
Izzy R GarufiSpainStephen Shaw RENEWAL
Costa T ButtIndiaXuxue Feng NEW
Leja Q MarrierFranceOnyama Limba NEW
Julie F WaycottIndiaXuxue Feng PROPOSAL
Francesco F PoquetteIndiaOnyama Limba UNQUALIFIED
Alejandro Z SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Stacey U Rulapaugh
Jennifer Y Saylors
Chavez X Vocelka
Francesco V Gaucho
Misaki W Campain
Julie Y Saylors
Salvatore W Foller
Jones V Royster
Jefferson S Wieser
Jeanfrancois S Poquette
Ivar R Gaucho
Emily H Iturbide
Clifford I Tollner
Mujtaba R Poquette
Darci N Oldroyd
Clifford C Darakjy
Emily M Ruta
Francesco P Maclead
Tony O Butt
Ricardo T Doe
Smith W Malet
Julie K Kusko
Faith G Maclead
James A Inouye
Maria V Rulapaugh
Adams D Saylors
Isabel X Maclead
David Y Morasca
James W Ferencz
Cody Q Briddick
Isabel L Marrier
Wickens Q Foller
Isabel D Nestle
Aruna V Ruta
Faith T Ostrosky
Emily Y Royster
Ivar A Ostrosky
Costa M Stockham
Costa M Figeroa
Rodrigues J Caudy
Ashley U Ferencz
Ashley L Caudy
Salvatore F Ruta
Claire M Stenseth
Greenwood M Rim
Misaki S Flosi
Morrow Z Schemmer
Jeanfrancois D Kolmetz
Rodrigues Z Flosi
Salvatore M Campain
IdCountryDate
1000France2024-04-20
1001Argentina2024-04-06
1002Argentina2024-04-13
1003Germany2024-04-13
1004Spain2024-04-23
1005Japan2024-04-12
1006Canada2024-04-13
1007Argentina2024-03-27
1008United Kingdom2024-04-02
1009Spain2024-04-10
1010Brazil2024-04-17
1011India2024-04-04
1012Brazil2024-04-01
1013Canada2024-04-13
1014Argentina2024-03-30
1015Russia2024-04-17
1016France2024-03-30
1017Canada2024-04-22
1018Japan2024-04-10
1019Brazil2024-03-30
1020Japan2024-04-23
1021India2024-04-13
1022United Kingdom2024-04-04
1023France2024-04-14
1024Italy2024-04-02
1025Canada2024-04-02
1026Spain2024-03-27
1027France2024-03-29
1028India2024-04-08
1029Germany2024-03-29
1030India2024-04-02
1031Australia2024-04-17
1032Japan2024-03-27
1033Brazil2024-04-15
1034Australia2024-04-20
1035Japan2024-04-22
1036Russia2024-04-24
1037Spain2024-04-23
1038United Kingdom2024-04-24
1039Canada2024-04-23
1040Japan2024-04-02
1041Canada2024-04-16
1042Australia2024-04-06
1043Japan2024-04-15
1044Brazil2024-03-26
1045Russia2024-03-29
1046Argentina2024-03-28
1047France2024-03-31
1048France2024-04-04
1049Germany2024-03-30

On-Demand Data

NameIdCountryDate
Octavia L Malet1000Australia2024-04-08
Sinclair X Morasca1001Brazil2024-04-17
Ivar E Iturbide1002United Kingdom2024-04-22
Jeanfrancois U Nestle1003United Kingdom2024-04-22
Jeanfrancois W Albares1004Italy2024-04-16
Stacey P Morasca1005Germany2024-04-22
Munro C Glick1006Australia2024-04-15
Aditya L Doe1007France2024-04-04
Johnson O Gaucho1008Australia2024-04-21
Misaki Z Oldroyd1009Spain2024-04-22
Darci H Doe1010Brazil2024-03-29
Antonio Q Garufi1011India2024-04-01
Morrow R Ostrosky1012Brazil2024-04-14
Leon K Ruta1013Argentina2024-03-27
Claire D Doe1014Spain2024-04-01
Stacey D Gillian1015Russia2024-04-06
Nicolas H Darakjy1016Italy2024-04-19
David Q Marrier1017Brazil2024-04-12
Johnson A Doe1018Japan2024-04-05
Leon B Nicka1019Italy2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith L RulapaughArgentinaElwin Sharvill NEW
Morrow B WieserJapanBernardo Dominic NEGOTIATION
Juan S StockhamJapanStephen Shaw RENEWAL
Morrow S CaudyArgentinaIoni Bowcher PROPOSAL
Leja W BriddickArgentinaAsiya Javayant RENEWAL
Juan B WieserAustraliaAnna Fali NEW
Aruna B ButtItalyElwin Sharvill NEGOTIATION
Greenwood S StockhamAustraliaIoni Bowcher UNQUALIFIED
Alejandro Q KuskoIndiaAnna Fali NEGOTIATION
Antonio C NickaFranceXuxue Feng NEGOTIATION
Leja M MaletBrazilOnyama Limba QUALIFIED
Maria D DilliardUnited KingdomElwin Sharvill RENEWAL
Mujtaba X MacleadFranceIoni Bowcher QUALIFIED
David Y MaletFranceAmy Elsner NEGOTIATION
Adams T MaletRussiaOnyama Limba RENEWAL
Tony D WaycottRussiaBernardo Dominic NEW
Jefferson I SaylorsAustraliaElwin Sharvill PROPOSAL
Julie A PerinIndiaStephen Shaw NEGOTIATION
Ricardo X SergiGermanyOnyama Limba RENEWAL
Darci F RimJapanBernardo Dominic NEGOTIATION
Chavez X TollnerRussiaAnna Fali NEGOTIATION
Ivar I VocelkaJapanAmy Elsner QUALIFIED
Claire A CampainCanadaOnyama Limba NEGOTIATION
Ricardo Y MaletItalyIoni Bowcher RENEWAL
Johnson E ShinkoArgentinaXuxue Feng PROPOSAL
Kaitlin I DoeCanadaBernardo Dominic PROPOSAL
Deepesh A WaycottBrazilStephen Shaw RENEWAL
Kadeem J IturbideBrazilAmy Elsner NEW
Ashley O AmigonCanadaAmy Elsner UNQUALIFIED
Mayumi X MaletSpainAsiya Javayant UNQUALIFIED
Antonio F CampainSpainOnyama Limba NEGOTIATION
Clifford W PaprockiBrazilAmy Elsner NEGOTIATION
Aika D FlosiUnited KingdomAmy Elsner NEW
Cody P DoeFranceIvan Magalhaes RENEWAL
Costa E AmigonArgentinaElwin Sharvill NEGOTIATION
Leja Y CaldareraCanadaElwin Sharvill RENEWAL
David M BologniaGermanyIvan Magalhaes RENEWAL
Darci V SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Leon L VocelkaSpainIvan Magalhaes PROPOSAL
Kaitlin Q RoysterFranceXuxue Feng UNQUALIFIED

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