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
Deepesh A StensethBrazilBernardo Dominic NEGOTIATION
Mujtaba Y SlusarskiUnited KingdomXuxue Feng RENEWAL
Ricardo A CaudySpainStephen Shaw NEW
Juan M MacleadJapanIoni Bowcher UNQUALIFIED
Julie T GauchoRussiaAnna Fali NEGOTIATION
Jefferson K SaylorsRussiaIoni Bowcher NEGOTIATION
Claire V GlickBrazilAmy Elsner QUALIFIED
Cody M GillianArgentinaIvan Magalhaes RENEWAL
Arvin E WhobreyItalyOnyama Limba NEGOTIATION
Claire M CaudyAustraliaXuxue Feng UNQUALIFIED
Smith I MacleadGermanyIvan Magalhaes NEGOTIATION
Stacey R RutaCanadaOnyama Limba UNQUALIFIED
Maisha D BriddickFranceIoni Bowcher PROPOSAL
Mujtaba K RoysterSpainOnyama Limba PROPOSAL
Ivar O SlusarskiFranceStephen Shaw QUALIFIED
Chavez I BologniaBrazilBernardo Dominic PROPOSAL
Jefferson P RulapaughRussiaOnyama Limba NEGOTIATION
Francesco L WieserAustraliaXuxue Feng NEW
Emily L AmigonJapanStephen Shaw NEW
Jennifer E OstroskyAustraliaBernardo Dominic NEW
Stacey G VenereBrazilIvan Magalhaes PROPOSAL
Mayumi L KuskoIndiaXuxue Feng RENEWAL
David S MaletSpainIvan Magalhaes PROPOSAL
Maisha A ShinkoAustraliaOnyama Limba QUALIFIED
Chavez P NickaRussiaElwin Sharvill NEW
Mayumi O WaycottGermanyElwin Sharvill NEGOTIATION
Isabel S GarufiJapanIoni Bowcher RENEWAL
David Y DarakjyJapanBernardo Dominic PROPOSAL
Sinclair F StockhamArgentinaAsiya Javayant QUALIFIED
Darci G DoeJapanStephen Shaw QUALIFIED
Maisha Q TollnerItalyIoni Bowcher PROPOSAL
Ricardo C ButtGermanyOnyama Limba NEW
Sinclair N NickaArgentinaIvan Magalhaes PROPOSAL
Ricardo E BologniaBrazilIoni Bowcher PROPOSAL
Aika E FollerJapanXuxue Feng NEW
Julie J MaletJapanOnyama Limba UNQUALIFIED
Wickens B AmigonRussiaAnna Fali RENEWAL
Mujtaba L RimRussiaAsiya Javayant UNQUALIFIED
Leja P AlbaresArgentinaAmy Elsner PROPOSAL
Octavia L CaudyGermanyIvan Magalhaes NEGOTIATION
Francesco E FigeroaItalyAsiya Javayant PROPOSAL
Faith S SlusarskiArgentinaStephen Shaw NEGOTIATION
Salvatore D CaldareraUnited KingdomOnyama Limba RENEWAL
Wickens Y VenereAustraliaStephen Shaw RENEWAL
Cody X OstroskyArgentinaXuxue Feng PROPOSAL
Darci Y AmigonArgentinaXuxue Feng RENEWAL
Jeanfrancois A NickaAustraliaIvan Magalhaes RENEWAL
Antonio E NickaRussiaXuxue Feng PROPOSAL
Emily H PerinSpainBernardo Dominic PROPOSAL
Murillo R NickaRussiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Adams A KolmetzBrazilBernardo Dominic NEW
Antonio Y MaletAustraliaIoni Bowcher RENEWAL
Kaitlin B MaletRussiaStephen Shaw NEW
Johnson H AmigonGermanyOnyama Limba QUALIFIED
Jeanfrancois B DilliardUnited KingdomStephen Shaw NEW
Francesco Z GlickGermanyStephen Shaw NEW
Arvin I RutaIndiaAsiya Javayant NEGOTIATION
Leon A ShinkoFranceBernardo Dominic NEGOTIATION
Jennifer T FollerArgentinaOnyama Limba NEW
Jennifer V StensethRussiaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony K ShinkoCanada2024-04-07Feltz Printing Service NEW47Elwin Sharvill
1001Misaki S RimJapan2024-04-02Benton, John B Jr PROPOSAL89Amy Elsner
1002Wickens I FlosiGermany2024-04-09Chemel, James L Cpa NEGOTIATION83Asiya Javayant
1003Claire T DoeAustralia2024-04-05Truhlar And Truhlar Attys UNQUALIFIED5Bernardo Dominic
1004Nicolas H ShinkoCanada2024-04-26Feltz Printing Service NEGOTIATION74Ioni Bowcher
1005Octavia A RoysterIndia2024-04-01Rangoni Of Florence RENEWAL48Onyama Limba
1006Julie B GarufiFrance2024-04-23Benton, John B Jr RENEWAL55Anna Fali
1007Claire P MorascaRussia2024-04-08Feltz Printing Service NEW18Bernardo Dominic
1008Tony S NickaCanada2024-04-10Chanay, Jeffrey A Esq NEGOTIATION5Ioni Bowcher
1009Kaitlin G ButtArgentina2024-04-09Benton, John B Jr UNQUALIFIED24Onyama Limba
1010James H GillianSpain2024-04-29Chapman, Ross E Esq UNQUALIFIED36Xuxue Feng
1011Jeanfrancois A FollerSpain2024-04-30Rangoni Of Florence NEW75Bernardo Dominic
1012Clifford M OldroydUnited Kingdom2024-04-21Chanay, Jeffrey A Esq QUALIFIED83Elwin Sharvill
1013David X MorascaRussia2024-04-26Morlong Associates NEGOTIATION68Anna Fali
1014Greenwood C RulapaughFrance2024-04-21Rousseaux, Michael Esq NEW81Stephen Shaw
1015Juan V GlickSpain2024-04-22Truhlar And Truhlar Attys NEW38Ivan Magalhaes
1016Sinclair T SchemmerFrance2024-04-27Rangoni Of Florence NEGOTIATION30Asiya Javayant
1017Aruna M OstroskyUnited Kingdom2024-04-19Benton, John B Jr RENEWAL90Amy Elsner
1018Maria F NestleSpain2024-04-30Dorl, James J Esq RENEWAL70Anna Fali
1019Alejandro H ChuiItaly2024-04-19Rousseaux, Michael Esq RENEWAL26Xuxue Feng
1020Salvatore D OstroskyUnited Kingdom2024-04-05Printing Dimensions UNQUALIFIED48Amy Elsner
1021Maisha V InouyeItaly2024-04-13Dorl, James J Esq UNQUALIFIED68Stephen Shaw
1022Ashley D FigeroaGermany2024-04-01King, Christopher A Esq UNQUALIFIED49Xuxue Feng
1023Tony D TollnerSpain2024-04-18Dorl, James J Esq NEGOTIATION58Onyama Limba
1024Jennifer O ButtUnited Kingdom2024-04-01Feltz Printing Service NEGOTIATION64Ivan Magalhaes
1025Greenwood K StensethGermany2024-04-06Printing Dimensions PROPOSAL14Xuxue Feng
1026Aika J GarufiSpain2024-04-20King, Christopher A Esq RENEWAL35Onyama Limba
1027Ricardo P MorascaSpain2024-04-22Chemel, James L Cpa NEGOTIATION66Stephen Shaw
1028Jeanfrancois W GillianItaly2024-04-03Commercial Press NEGOTIATION92Elwin Sharvill
1029Cody Y StensethAustralia2024-04-27Dorl, James J Esq UNQUALIFIED62Asiya Javayant
1030Tony G SchemmerUnited Kingdom2024-04-18Commercial Press UNQUALIFIED53Elwin Sharvill
1031Wickens R AmigonFrance2024-04-27King, Christopher A Esq NEW83Amy Elsner
1032Ivar S NestleFrance2024-04-02Printing Dimensions NEW5Elwin Sharvill
1033Munro T FerenczAustralia2024-04-19Commercial Press UNQUALIFIED62Amy Elsner
1034Jeanfrancois G SchemmerFrance2024-04-20Morlong Associates QUALIFIED23Xuxue Feng
1035Murillo Y OstroskyUnited Kingdom2024-04-24Chapman, Ross E Esq NEGOTIATION16Ioni Bowcher
1036Antonio Q SaylorsUnited Kingdom2024-04-18Buckley Miller Wright NEGOTIATION64Onyama Limba
1037James H IturbideCanada2024-04-09Rousseaux, Michael Esq NEW74Elwin Sharvill
1038Murillo Z RoysterArgentina2024-04-11Chemel, James L Cpa PROPOSAL71Stephen Shaw
1039Sinclair I KuskoItaly2024-04-12Benton, John B Jr PROPOSAL99Stephen Shaw
1040Greenwood A KolmetzBrazil2024-04-13Printing Dimensions RENEWAL68Elwin Sharvill
1041Misaki G FerenczItaly2024-04-04King, Christopher A Esq UNQUALIFIED40Bernardo Dominic
1042Deepesh P PerinBrazil2024-04-21Rangoni Of Florence PROPOSAL75Amy Elsner
1043Aditya D KolmetzJapan2024-04-26Printing Dimensions PROPOSAL26Ioni Bowcher
1044Faith B ButtIndia2024-04-01Chanay, Jeffrey A Esq RENEWAL63Anna Fali
1045Aika T FigeroaBrazil2024-04-09Morlong Associates UNQUALIFIED89Ivan Magalhaes
1046Misaki A CaldareraAustralia2024-04-12Buckley Miller Wright UNQUALIFIED11Anna Fali
1047Misaki Y GarufiGermany2024-04-30Feiner Bros RENEWAL57Onyama Limba
1048Faith I FigeroaAustralia2024-04-10Feiner Bros UNQUALIFIED25Xuxue Feng
1049Francesco D ChuiArgentina2024-04-26Chemel, James L Cpa NEW2Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Johnson O FerenczJapanAnna Fali RENEWAL
Adams N DoeGermanyElwin Sharvill NEW
Alejandro L SchemmerBrazilIvan Magalhaes QUALIFIED
Darci J StensethRussiaElwin Sharvill NEW
Jennifer U BriddickArgentinaIvan Magalhaes RENEWAL
Leja M StensethBrazilAnna Fali QUALIFIED
Jefferson H GauchoItalyBernardo Dominic UNQUALIFIED
Misaki X CampainGermanyIoni Bowcher RENEWAL
Nicolas H DarakjyUnited KingdomIvan Magalhaes NEW
Claire P WhobreyRussiaIoni Bowcher NEGOTIATION
Kadeem J WaycottAustraliaStephen Shaw RENEWAL
Rodrigues C SlusarskiJapanStephen Shaw NEW
Kadeem C AlbaresItalyBernardo Dominic PROPOSAL
David E ChuiIndiaAmy Elsner QUALIFIED
Ashley Y ChuiItalyAsiya Javayant UNQUALIFIED
Smith V VocelkaArgentinaAmy Elsner NEGOTIATION
Jefferson J FollerCanadaAmy Elsner PROPOSAL
Aruna R SaylorsItalyOnyama Limba NEGOTIATION
Isabel P WieserIndiaXuxue Feng UNQUALIFIED
Cody R BologniaItalyIoni Bowcher UNQUALIFIED
Greenwood F VocelkaItalyBernardo Dominic NEW
Clifford T DoeGermanyOnyama Limba PROPOSAL
Antonio X CaudyFranceAmy Elsner QUALIFIED
Tony E BowleyFranceOnyama Limba RENEWAL
Murillo M AmigonBrazilBernardo Dominic NEW
Greenwood Y KolmetzAustraliaBernardo Dominic PROPOSAL
Claire I ShinkoJapanAsiya Javayant UNQUALIFIED
Chavez J MorascaItalyBernardo Dominic QUALIFIED
Rodrigues Z WieserCanadaAnna Fali NEW
Julie B RoysterUnited KingdomStephen Shaw RENEWAL
Claire Y BologniaJapanIvan Magalhaes RENEWAL
Aditya W SaylorsBrazilXuxue Feng QUALIFIED
Mujtaba X BriddickBrazilAsiya Javayant UNQUALIFIED
Silvio A MarrierCanadaAmy Elsner QUALIFIED
Smith W MarrierIndiaIoni Bowcher RENEWAL
Antonio P VocelkaJapanStephen Shaw NEW
Maisha N PerinSpainAmy Elsner NEGOTIATION
Johnson Y NestleSpainAnna Fali PROPOSAL
Leon U InouyeRussiaStephen Shaw QUALIFIED
Maria L PaprockiFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois P MacleadIndiaXuxue Feng NEW
Mujtaba Z GauchoSpainAmy Elsner RENEWAL
James J RutaSpainIoni Bowcher NEW
Misaki V SaylorsAustraliaAmy Elsner RENEWAL
Sinclair S OldroydBrazilElwin Sharvill PROPOSAL
Clifford C RulapaughRussiaBernardo Dominic UNQUALIFIED
Jones T WieserFranceAnna Fali NEGOTIATION
Alejandro F FollerJapanXuxue Feng UNQUALIFIED
Morrow Y MaletBrazilElwin Sharvill PROPOSAL
Emily I RoysterGermanyOnyama Limba QUALIFIED
Frozen Columns
Name
Maria L Morasca
Nicolas K Whobrey
Izzy M Glick
Antonio S Garufi
Antonio X Marrier
Chavez C Morasca
Juan Z Caldarera
Jefferson M Nicka
Salvatore P Stockham
Salvatore C Waycott
Murillo N Gaucho
Tony D Foller
Munro A Glick
Darci E Briddick
Julie I Chui
Francesco D Sergi
Jones Q Stenseth
Leja D Glick
Juan E Ostrosky
Murillo S Campain
Morrow R Nicka
Francesco H Chui
Leja J Nestle
Izzy S Tollner
Nicolas W Marrier
Julie A Slusarski
Murillo D Sergi
Arvin N Sergi
Alejandro C Royster
Murillo B Amigon
Ashley H Ostrosky
Antonio B Morasca
Izzy Q Rulapaugh
Jones A Poquette
Chavez D Darakjy
Ashley Y Shinko
Mujtaba R Dilliard
Aika V Caldarera
Arvin P Kolmetz
Smith B Waycott
Claire T Flosi
Claire E Campain
Maisha V Nicka
Kadeem D Briddick
Octavia G Gaucho
Ricardo X Morasca
Ivar D Amigon
Aditya M Stenseth
Tony A Kusko
Arvin G Rim
IdCountryDate
1000India2024-04-27
1001Spain2024-04-24
1002Russia2024-04-09
1003Spain2024-04-10
1004Russia2024-04-17
1005Canada2024-04-16
1006Italy2024-04-14
1007Japan2024-04-11
1008Canada2024-04-14
1009Italy2024-04-27
1010Australia2024-04-20
1011France2024-04-16
1012Argentina2024-04-07
1013Italy2024-04-26
1014Australia2024-04-03
1015Brazil2024-04-17
1016Spain2024-04-23
1017France2024-04-05
1018Canada2024-04-07
1019Canada2024-04-02
1020Spain2024-04-03
1021United Kingdom2024-04-28
1022Brazil2024-04-08
1023United Kingdom2024-04-26
1024France2024-04-24
1025Australia2024-04-19
1026Italy2024-04-09
1027France2024-04-04
1028United Kingdom2024-04-19
1029United Kingdom2024-04-15
1030Germany2024-04-17
1031Italy2024-04-30
1032Canada2024-04-21
1033Argentina2024-04-16
1034India2024-04-22
1035Brazil2024-04-21
1036France2024-04-18
1037Australia2024-04-30
1038Canada2024-04-03
1039France2024-04-19
1040Japan2024-04-22
1041Canada2024-04-04
1042Japan2024-04-15
1043United Kingdom2024-04-13
1044Russia2024-04-11
1045Spain2024-04-26
1046Spain2024-04-25
1047United Kingdom2024-04-08
1048Japan2024-04-20
1049Japan2024-04-07

On-Demand Data

NameIdCountryDate
Stacey A Maclead1000United Kingdom2024-04-20
Izzy X Malet1001Argentina2024-04-13
Nicolas Q Nicka1002Argentina2024-04-09
Rodrigues C Oldroyd1003Germany2024-04-07
James F Ruta1004Russia2024-04-26
Munro G Morasca1005Spain2024-04-05
Jeanfrancois F Saylors1006Canada2024-04-16
Morrow R Sergi1007Germany2024-04-22
Munro N Albares1008United Kingdom2024-04-06
Munro E Wieser1009Australia2024-04-13
Murillo A Bowley1010India2024-04-10
Greenwood H Bolognia1011Japan2024-04-01
Misaki D Venere1012Russia2024-04-05
Jones X Malet1013Canada2024-04-25
Silvio M Albares1014France2024-04-11
Juan W Flosi1015Canada2024-04-11
Kaitlin V Foller1016Spain2024-04-14
Kadeem X Oldroyd1017United Kingdom2024-04-04
Kadeem E Venere1018India2024-04-17
Antonio G Rim1019France2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha I NestleIndiaIoni Bowcher RENEWAL
Antonio D PoquetteRussiaAmy Elsner NEW
Emily B StensethBrazilAmy Elsner NEGOTIATION
Jefferson M GillianSpainAsiya Javayant UNQUALIFIED
Misaki H FollerJapanStephen Shaw PROPOSAL
Izzy W BologniaRussiaAnna Fali UNQUALIFIED
Jefferson E MaletCanadaAsiya Javayant NEW
Faith H SchemmerSpainAsiya Javayant QUALIFIED
Leja S KuskoIndiaBernardo Dominic RENEWAL
Mayumi O SchemmerIndiaBernardo Dominic UNQUALIFIED
Aika Q MarrierAustraliaIvan Magalhaes RENEWAL
Antonio N ButtBrazilAsiya Javayant PROPOSAL
Izzy D CampainIndiaAsiya Javayant NEGOTIATION
Faith L OstroskyItalyBernardo Dominic RENEWAL
Jones M SchemmerUnited KingdomOnyama Limba PROPOSAL
Johnson B ButtRussiaIoni Bowcher NEGOTIATION
Claire J CaldareraAustraliaStephen Shaw RENEWAL
Greenwood N RutaIndiaIoni Bowcher UNQUALIFIED
Juan Y CaldareraRussiaXuxue Feng RENEWAL
Izzy O RimCanadaOnyama Limba RENEWAL
Johnson U PoquetteBrazilIoni Bowcher RENEWAL
Ivar K PaprockiRussiaBernardo Dominic PROPOSAL
David V GauchoIndiaBernardo Dominic UNQUALIFIED
Isabel T PerinUnited KingdomStephen Shaw NEGOTIATION
James Z FlosiUnited KingdomAnna Fali PROPOSAL
Aditya F RimAustraliaXuxue Feng RENEWAL
Ivar Z WhobreyFranceElwin Sharvill RENEWAL
Francesco N SergiArgentinaAsiya Javayant RENEWAL
Francesco T MaletCanadaOnyama Limba NEGOTIATION
Clifford V IturbideGermanyAnna Fali QUALIFIED
Sinclair G RimFranceBernardo Dominic PROPOSAL
Kaitlin E AmigonUnited KingdomBernardo Dominic NEW
Murillo M IturbideGermanyAsiya Javayant QUALIFIED
Jeanfrancois S WhobreyAustraliaElwin Sharvill UNQUALIFIED
Misaki E DoeIndiaElwin Sharvill QUALIFIED
Cody O FollerItalyElwin Sharvill PROPOSAL
Chavez R DarakjyCanadaAmy Elsner UNQUALIFIED
Alejandro Q SergiItalyAnna Fali QUALIFIED
Nicolas D DilliardFranceAmy Elsner UNQUALIFIED
Wickens Y ButtUnited KingdomBernardo Dominic 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>