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
Salvatore J RulapaughGermanyAsiya Javayant UNQUALIFIED
Aika Y PaprockiFranceAsiya Javayant QUALIFIED
Claire U AmigonCanadaIoni Bowcher PROPOSAL
Adams K GillianArgentinaBernardo Dominic UNQUALIFIED
Leon H StensethBrazilIoni Bowcher NEW
Sinclair I OldroydAustraliaStephen Shaw QUALIFIED
Julie M FigeroaGermanyAsiya Javayant RENEWAL
James E ChuiFranceIvan Magalhaes QUALIFIED
Cody Y DilliardAustraliaAmy Elsner RENEWAL
Aditya H CaldareraArgentinaOnyama Limba NEW
Salvatore O CaudyIndiaAmy Elsner UNQUALIFIED
Deepesh R CaldareraFranceAnna Fali UNQUALIFIED
Silvio Y GarufiUnited KingdomIvan Magalhaes PROPOSAL
Adams B VocelkaUnited KingdomStephen Shaw NEGOTIATION
James X ChuiSpainXuxue Feng QUALIFIED
Isabel E TollnerArgentinaXuxue Feng UNQUALIFIED
Leon I BologniaItalyBernardo Dominic RENEWAL
Sinclair C PerinAustraliaXuxue Feng PROPOSAL
Kaitlin F BologniaFranceAsiya Javayant RENEWAL
Ashley O CaldareraIndiaBernardo Dominic QUALIFIED
Murillo X GlickIndiaStephen Shaw RENEWAL
Jeanfrancois R MaletGermanyOnyama Limba NEW
Aditya Y OldroydGermanyElwin Sharvill NEGOTIATION
Izzy S RimJapanIoni Bowcher NEGOTIATION
Jones K KolmetzItalyIvan Magalhaes RENEWAL
David W NickaFranceElwin Sharvill PROPOSAL
Isabel W KuskoBrazilIoni Bowcher PROPOSAL
Aruna Y GauchoUnited KingdomAnna Fali NEGOTIATION
Silvio G CampainIndiaBernardo Dominic NEGOTIATION
David H ChuiBrazilAnna Fali NEW
Salvatore K FlosiFranceAmy Elsner QUALIFIED
Octavia O SchemmerBrazilOnyama Limba NEW
Greenwood J RoysterFranceStephen Shaw QUALIFIED
Tony J MarrierCanadaIoni Bowcher QUALIFIED
Kaitlin Z DilliardSpainElwin Sharvill UNQUALIFIED
Octavia U AlbaresArgentinaAnna Fali PROPOSAL
Salvatore U WhobreyAustraliaXuxue Feng PROPOSAL
Nicolas F IturbideIndiaBernardo Dominic UNQUALIFIED
Aika J WhobreyAustraliaIoni Bowcher RENEWAL
Ashley Y RutaCanadaStephen Shaw QUALIFIED
Juan F RoysterBrazilElwin Sharvill NEGOTIATION
Aika W RulapaughIndiaElwin Sharvill NEW
Julie G GarufiFranceXuxue Feng NEW
Misaki L CampainGermanyIvan Magalhaes NEGOTIATION
Kadeem S StockhamUnited KingdomAnna Fali NEGOTIATION
Wickens Q RimFranceIvan Magalhaes QUALIFIED
Leon G MorascaFranceIoni Bowcher RENEWAL
Arvin Q VocelkaRussiaBernardo Dominic PROPOSAL
Izzy R FigeroaCanadaOnyama Limba NEW
Nicolas R ButtCanadaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya N TollnerGermanyXuxue Feng QUALIFIED
Munro X GlickGermanyAnna Fali RENEWAL
Alejandro E OldroydAustraliaAmy Elsner RENEWAL
Arvin G FlosiBrazilAnna Fali QUALIFIED
Rodrigues Z SergiAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois G TollnerIndiaElwin Sharvill NEW
Chavez M CaudyArgentinaAsiya Javayant QUALIFIED
Adams Y IturbideFranceXuxue Feng PROPOSAL
Kadeem X AmigonItalyStephen Shaw NEW
James H WieserIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James F SaylorsSpain2024-04-17Feltz Printing Service PROPOSAL88Onyama Limba
1001Adams T CampainRussia2024-03-29Morlong Associates NEGOTIATION11Asiya Javayant
1002Leon L BologniaJapan2024-03-28Chanay, Jeffrey A Esq RENEWAL54Amy Elsner
1003Adams V PoquetteAustralia2024-04-10Rangoni Of Florence UNQUALIFIED10Onyama Limba
1004Jones J VenereBrazil2024-03-29Printing Dimensions UNQUALIFIED93Bernardo Dominic
1005Silvio Z CaldareraSpain2024-04-21Benton, John B Jr NEW45Bernardo Dominic
1006Darci K FerenczGermany2024-04-18Feiner Bros PROPOSAL92Stephen Shaw
1007Chavez X SaylorsFrance2024-04-10Commercial Press QUALIFIED57Anna Fali
1008Murillo N ChuiSpain2024-04-10Morlong Associates NEGOTIATION73Ioni Bowcher
1009Aika T WaycottAustralia2024-03-29Feltz Printing Service RENEWAL7Ioni Bowcher
1010Murillo N WhobreyRussia2024-04-01Morlong Associates NEGOTIATION9Elwin Sharvill
1011Juan G ShinkoJapan2024-03-27Morlong Associates NEGOTIATION75Onyama Limba
1012Misaki T FerenczCanada2024-03-31Commercial Press NEGOTIATION62Onyama Limba
1013Leon C RulapaughArgentina2024-04-13Rousseaux, Michael Esq PROPOSAL27Asiya Javayant
1014Aditya L WaycottFrance2024-04-18Printing Dimensions NEGOTIATION6Onyama Limba
1015Salvatore H OstroskyArgentina2024-04-01Rangoni Of Florence QUALIFIED47Onyama Limba
1016Maisha Y SaylorsCanada2024-04-20Dorl, James J Esq PROPOSAL81Ivan Magalhaes
1017Johnson L PoquetteItaly2024-04-09Feiner Bros UNQUALIFIED38Amy Elsner
1018Isabel M ShinkoFrance2024-04-01King, Christopher A Esq NEW53Bernardo Dominic
1019Ashley L IturbideJapan2024-04-07Dorl, James J Esq UNQUALIFIED77Stephen Shaw
1020Aditya R DilliardSpain2024-03-28Rousseaux, Michael Esq NEGOTIATION90Stephen Shaw
1021Greenwood P PerinJapan2024-03-31Chanay, Jeffrey A Esq NEW34Xuxue Feng
1022Octavia K FollerAustralia2024-04-19Rousseaux, Michael Esq PROPOSAL94Bernardo Dominic
1023Ashley T KuskoGermany2024-04-07Printing Dimensions PROPOSAL10Ioni Bowcher
1024Greenwood D MorascaUnited Kingdom2024-03-29Dorl, James J Esq UNQUALIFIED20Asiya Javayant
1025Smith M NickaArgentina2024-04-21Feltz Printing Service PROPOSAL83Asiya Javayant
1026Ivar J CaldareraSpain2024-03-29Feltz Printing Service NEGOTIATION21Elwin Sharvill
1027Aruna F RutaGermany2024-04-20Benton, John B Jr QUALIFIED62Asiya Javayant
1028Nicolas R PerinGermany2024-04-15Rangoni Of Florence NEGOTIATION51Asiya Javayant
1029Cody M KuskoCanada2024-04-22Feiner Bros PROPOSAL91Bernardo Dominic
1030Darci O BowleyCanada2024-03-28Commercial Press RENEWAL23Amy Elsner
1031Adams X DoeArgentina2024-04-25Chemel, James L Cpa UNQUALIFIED52Bernardo Dominic
1032Juan R SchemmerCanada2024-04-15Morlong Associates QUALIFIED53Ivan Magalhaes
1033Greenwood A OldroydAustralia2024-04-07Chapman, Ross E Esq NEGOTIATION82Stephen Shaw
1034Morrow V NickaSpain2024-04-17Rousseaux, Michael Esq QUALIFIED25Ioni Bowcher
1035Sinclair Q NickaItaly2024-03-30Chapman, Ross E Esq RENEWAL82Stephen Shaw
1036Antonio Q RutaFrance2024-04-03Feltz Printing Service QUALIFIED63Onyama Limba
1037Faith Z BologniaCanada2024-04-14Benton, John B Jr NEW5Elwin Sharvill
1038Arvin D KuskoUnited Kingdom2024-04-14King, Christopher A Esq NEGOTIATION35Elwin Sharvill
1039Johnson V SchemmerRussia2024-04-21Chemel, James L Cpa QUALIFIED17Amy Elsner
1040Emily I MorascaJapan2024-04-16Morlong Associates UNQUALIFIED67Elwin Sharvill
1041Nicolas G RutaItaly2024-04-03Truhlar And Truhlar Attys NEGOTIATION35Bernardo Dominic
1042Arvin V BologniaFrance2024-04-14Rangoni Of Florence NEW37Xuxue Feng
1043Claire E InouyeAustralia2024-03-27Rangoni Of Florence RENEWAL19Xuxue Feng
1044Emily S MarrierIndia2024-04-03Chapman, Ross E Esq NEW28Anna Fali
1045Rodrigues I RoysterBrazil2024-04-19Commercial Press NEW5Asiya Javayant
1046Claire O RimIndia2024-04-05Commercial Press UNQUALIFIED69Anna Fali
1047Mayumi M RoysterRussia2024-04-05Feltz Printing Service UNQUALIFIED20Amy Elsner
1048Ricardo F GarufiUnited Kingdom2024-04-21Chanay, Jeffrey A Esq QUALIFIED31Onyama Limba
1049Jones O FerenczGermany2024-04-09Rousseaux, Michael Esq NEW21Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Salvatore N FigeroaCanadaAsiya Javayant QUALIFIED
Sinclair R CaudyAustraliaAsiya Javayant UNQUALIFIED
Stacey Z NestleSpainStephen Shaw PROPOSAL
Isabel X WieserAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois L FerenczUnited KingdomIoni Bowcher QUALIFIED
Munro F BriddickRussiaAsiya Javayant PROPOSAL
Stacey C AmigonItalyAmy Elsner NEGOTIATION
Clifford L KuskoAustraliaOnyama Limba RENEWAL
Cody B InouyeRussiaAsiya Javayant QUALIFIED
Nicolas K PerinJapanStephen Shaw NEGOTIATION
Tony A ShinkoBrazilAmy Elsner NEGOTIATION
Jefferson E OstroskyItalyAnna Fali QUALIFIED
Chavez U TollnerSpainOnyama Limba QUALIFIED
Emily H PerinBrazilXuxue Feng PROPOSAL
Antonio O CampainUnited KingdomIoni Bowcher NEW
Cody G IturbideUnited KingdomElwin Sharvill NEGOTIATION
Kadeem N KolmetzArgentinaAmy Elsner RENEWAL
Chavez H AlbaresFranceIvan Magalhaes UNQUALIFIED
Aditya I AlbaresSpainOnyama Limba QUALIFIED
Ivar Z WieserBrazilAnna Fali QUALIFIED
Juan E InouyeUnited KingdomElwin Sharvill RENEWAL
Octavia G CaldareraGermanyAmy Elsner QUALIFIED
Cody I IturbideRussiaStephen Shaw NEGOTIATION
Jones M BologniaItalyStephen Shaw NEGOTIATION
Nicolas G ShinkoJapanAnna Fali RENEWAL
Nicolas P SaylorsFranceStephen Shaw RENEWAL
Ricardo U SlusarskiSpainAnna Fali PROPOSAL
Adams V BriddickRussiaIoni Bowcher UNQUALIFIED
Wickens D SchemmerBrazilStephen Shaw NEW
Octavia K OldroydFranceElwin Sharvill RENEWAL
Tony V AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Aika E PaprockiCanadaOnyama Limba NEGOTIATION
Ricardo A WieserCanadaStephen Shaw UNQUALIFIED
Smith E WhobreyRussiaAnna Fali PROPOSAL
Murillo N GarufiArgentinaBernardo Dominic PROPOSAL
Ricardo U GauchoUnited KingdomXuxue Feng QUALIFIED
Kadeem D MaletJapanAsiya Javayant QUALIFIED
Greenwood C BologniaRussiaAmy Elsner QUALIFIED
Stacey R BowleyAustraliaStephen Shaw NEGOTIATION
Munro Z StockhamAustraliaAsiya Javayant RENEWAL
Emily P PoquetteUnited KingdomStephen Shaw RENEWAL
Ivar O WieserFranceStephen Shaw QUALIFIED
Morrow J SergiJapanIvan Magalhaes PROPOSAL
Izzy O StensethAustraliaOnyama Limba RENEWAL
Leon Q TollnerIndiaIoni Bowcher NEW
Darci Q MacleadGermanyStephen Shaw RENEWAL
Julie K GlickJapanElwin Sharvill NEGOTIATION
Juan Q WhobreyUnited KingdomElwin Sharvill UNQUALIFIED
Adams H KuskoGermanyAsiya Javayant NEW
Costa J RutaFranceAsiya Javayant PROPOSAL
Frozen Columns
Name
Jones Z Poquette
Deepesh V Slusarski
Morrow T Tollner
Faith A Bolognia
Maisha H Malet
Johnson I Saylors
Isabel O Albares
Stacey Z Ferencz
Stacey F Rim
Octavia P Shinko
Adams X Maclead
Antonio S Schemmer
Emily U Rulapaugh
Darci D Oldroyd
Ashley D Rulapaugh
Juan S Caudy
Aruna B Glick
Johnson B Shinko
Aditya A Gillian
Cody K Ferencz
Leon C Inouye
Faith P Chui
Leja B Chui
Aruna S Royster
Tony Z Dilliard
Aika K Briddick
Munro I Sergi
Costa B Shinko
Ashley G Glick
Ricardo S Chui
Leon L Ruta
Alejandro R Stenseth
Stacey X Poquette
Chavez Z Tollner
Jeanfrancois I Amigon
Greenwood Q Rulapaugh
Silvio W Tollner
Ashley W Flosi
James W Malet
Adams F Nicka
Darci T Waycott
David T Bolognia
Francesco Y Albares
Nicolas F Malet
Leja J Gillian
Julie S Stenseth
Jefferson F Shinko
Costa X Saylors
Claire C Malet
Aditya R Malet
IdCountryDate
1000Australia2024-04-09
1001United Kingdom2024-04-09
1002Brazil2024-04-23
1003United Kingdom2024-04-10
1004Argentina2024-04-18
1005Canada2024-03-29
1006Russia2024-04-11
1007India2024-03-27
1008Germany2024-04-04
1009United Kingdom2024-04-14
1010Brazil2024-03-27
1011Russia2024-04-02
1012Canada2024-04-16
1013United Kingdom2024-04-01
1014Canada2024-04-13
1015India2024-04-20
1016Australia2024-04-08
1017Argentina2024-04-16
1018United Kingdom2024-04-25
1019Australia2024-04-09
1020India2024-04-21
1021Canada2024-04-19
1022Brazil2024-04-16
1023Germany2024-04-24
1024Italy2024-04-25
1025France2024-04-05
1026France2024-04-22
1027India2024-04-03
1028Australia2024-04-21
1029Argentina2024-04-13
1030India2024-03-29
1031France2024-03-31
1032Spain2024-04-04
1033Germany2024-04-08
1034Japan2024-04-25
1035Italy2024-04-21
1036Canada2024-04-18
1037Japan2024-03-27
1038United Kingdom2024-04-10
1039India2024-04-17
1040France2024-04-20
1041Canada2024-04-22
1042United Kingdom2024-04-16
1043Japan2024-04-08
1044Brazil2024-04-10
1045France2024-04-23
1046Brazil2024-04-16
1047Spain2024-03-31
1048Spain2024-04-08
1049Australia2024-04-17

On-Demand Data

NameIdCountryDate
Sinclair F Albares1000United Kingdom2024-04-04
Juan O Iturbide1001Germany2024-03-28
Ashley Z Albares1002United Kingdom2024-04-02
Aika D Kolmetz1003Italy2024-04-22
Mujtaba N Flosi1004France2024-04-12
Francesco C Royster1005Germany2024-03-28
Munro X Marrier1006Japan2024-04-13
Rodrigues A Vocelka1007Germany2024-04-23
Murillo K Butt1008Australia2024-04-17
Antonio B Schemmer1009Italy2024-04-12
Deepesh Y Shinko1010Russia2024-04-23
Arvin G Perin1011Spain2024-04-08
Mujtaba Z Bolognia1012Germany2024-04-08
Antonio B Figeroa1013Japan2024-04-14
Alejandro U Perin1014India2024-04-09
Mujtaba O Garufi1015France2024-04-04
Leon T Oldroyd1016Canada2024-04-03
Rodrigues G Nestle1017Australia2024-04-23
Ivar Q Whobrey1018Brazil2024-04-03
Octavia J Kusko1019Brazil2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley X PerinItalyAnna Fali RENEWAL
Isabel Y AmigonUnited KingdomAmy Elsner RENEWAL
Izzy S TollnerCanadaAnna Fali NEW
Izzy G DilliardBrazilXuxue Feng RENEWAL
David E WhobreyUnited KingdomXuxue Feng RENEWAL
Jefferson K RulapaughAustraliaXuxue Feng NEW
Jeanfrancois L StockhamCanadaXuxue Feng QUALIFIED
Mujtaba B VenereJapanAsiya Javayant UNQUALIFIED
Kaitlin L TollnerItalyIoni Bowcher QUALIFIED
Morrow U MarrierFranceAmy Elsner UNQUALIFIED
Johnson F WieserArgentinaIoni Bowcher RENEWAL
Jennifer S SlusarskiAustraliaIoni Bowcher NEGOTIATION
Stacey K VenereGermanyAsiya Javayant PROPOSAL
Faith Y NestleCanadaAmy Elsner RENEWAL
Aika Y GillianAustraliaBernardo Dominic RENEWAL
Sinclair V DoeIndiaStephen Shaw UNQUALIFIED
Claire M GillianUnited KingdomOnyama Limba RENEWAL
Wickens L FerenczCanadaBernardo Dominic PROPOSAL
Adams X StockhamJapanAsiya Javayant UNQUALIFIED
Murillo H RulapaughAustraliaBernardo Dominic UNQUALIFIED
Johnson H PaprockiIndiaIvan Magalhaes PROPOSAL
David J WieserFranceAnna Fali NEGOTIATION
Chavez W VenereFranceAsiya Javayant NEW
Darci U NickaItalyAmy Elsner UNQUALIFIED
David Z DarakjyIndiaBernardo Dominic RENEWAL
Kaitlin J NickaArgentinaStephen Shaw NEGOTIATION
Sinclair X DilliardFranceBernardo Dominic NEW
Izzy Y SergiSpainAsiya Javayant NEW
Leja V ChuiIndiaOnyama Limba NEGOTIATION
Leja E PoquetteArgentinaAmy Elsner UNQUALIFIED
Johnson X WaycottIndiaAmy Elsner RENEWAL
Julie G FollerIndiaAnna Fali QUALIFIED
Francesco K PoquetteGermanyElwin Sharvill QUALIFIED
Octavia O ShinkoUnited KingdomIvan Magalhaes RENEWAL
Ashley Y BriddickArgentinaAsiya Javayant NEW
Darci K BologniaGermanyAmy Elsner NEGOTIATION
Jones U RulapaughRussiaAsiya Javayant NEW
Costa E GarufiAustraliaXuxue Feng NEGOTIATION
Kadeem U MaletArgentinaOnyama Limba PROPOSAL
Silvio N WhobreyIndiaAnna Fali 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>