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
Octavia T ButtArgentinaElwin Sharvill RENEWAL
Greenwood L DilliardItalyXuxue Feng NEW
Jeanfrancois V MaletJapanOnyama Limba RENEWAL
Greenwood V CampainBrazilStephen Shaw UNQUALIFIED
Sinclair M InouyeAustraliaBernardo Dominic NEGOTIATION
Octavia Z WieserUnited KingdomStephen Shaw RENEWAL
Arvin I MaletArgentinaAnna Fali PROPOSAL
Johnson Q PaprockiIndiaXuxue Feng PROPOSAL
Emily M DilliardItalyStephen Shaw PROPOSAL
Claire Q OstroskyCanadaStephen Shaw PROPOSAL
Darci I ShinkoIndiaXuxue Feng PROPOSAL
Jennifer W BologniaItalyIvan Magalhaes RENEWAL
Munro J SaylorsJapanElwin Sharvill PROPOSAL
Jefferson G MaletItalyIoni Bowcher QUALIFIED
James O DilliardItalyAsiya Javayant QUALIFIED
Octavia A GarufiRussiaAsiya Javayant NEGOTIATION
Darci Z CaudyRussiaStephen Shaw UNQUALIFIED
Isabel S BowleyArgentinaOnyama Limba NEW
Adams J DarakjySpainOnyama Limba QUALIFIED
Antonio Y AlbaresSpainIvan Magalhaes NEGOTIATION
Munro B FollerAustraliaAmy Elsner NEW
Alejandro W InouyeIndiaOnyama Limba NEGOTIATION
Isabel V AmigonSpainBernardo Dominic RENEWAL
Kaitlin V GarufiCanadaAmy Elsner NEW
David V OldroydItalyOnyama Limba PROPOSAL
James L RutaGermanyStephen Shaw RENEWAL
Greenwood R BriddickAustraliaIoni Bowcher QUALIFIED
Francesco X MorascaJapanElwin Sharvill PROPOSAL
Morrow E MaletRussiaAsiya Javayant RENEWAL
Kadeem I OldroydGermanyAnna Fali PROPOSAL
Claire W MarrierItalyAmy Elsner NEGOTIATION
Alejandro A PaprockiIndiaAmy Elsner NEGOTIATION
Nicolas Q TollnerUnited KingdomIvan Magalhaes QUALIFIED
Adams C CampainFranceIvan Magalhaes QUALIFIED
Julie F MorascaBrazilIoni Bowcher QUALIFIED
Isabel A SaylorsFranceOnyama Limba NEGOTIATION
Sinclair Q CampainBrazilIoni Bowcher UNQUALIFIED
Claire N MaletItalyAsiya Javayant UNQUALIFIED
Darci Y WaycottCanadaStephen Shaw NEW
Adams U MaletFranceBernardo Dominic NEW
Leon C ButtAustraliaIoni Bowcher UNQUALIFIED
Juan C SchemmerCanadaAnna Fali RENEWAL
Jeanfrancois V MorascaJapanIoni Bowcher RENEWAL
Aika E SlusarskiItalyStephen Shaw RENEWAL
Morrow E DoeJapanAmy Elsner RENEWAL
Silvio S WhobreyFranceXuxue Feng UNQUALIFIED
Isabel L SergiIndiaAnna Fali UNQUALIFIED
Cody Q BologniaRussiaAsiya Javayant NEGOTIATION
Francesco Y PaprockiCanadaXuxue Feng NEGOTIATION
Stacey I WieserItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia W VocelkaGermanyOnyama Limba NEW
Arvin N OldroydIndiaElwin Sharvill NEGOTIATION
Aika W NestleCanadaElwin Sharvill QUALIFIED
Leja N CampainSpainOnyama Limba NEW
Ivar N DoeRussiaElwin Sharvill RENEWAL
Jennifer E CaldareraGermanyIvan Magalhaes NEGOTIATION
Aditya H RimCanadaOnyama Limba QUALIFIED
Ashley U ChuiArgentinaIvan Magalhaes NEGOTIATION
Antonio C SaylorsAustraliaXuxue Feng QUALIFIED
Smith L InouyeRussiaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin X DoeSpain2024-04-05King, Christopher A Esq PROPOSAL88Xuxue Feng
1001Murillo V NickaAustralia2024-04-21Benton, John B Jr NEW62Ioni Bowcher
1002Sinclair N KuskoAustralia2024-04-12Benton, John B Jr NEGOTIATION23Ioni Bowcher
1003Misaki E TollnerFrance2024-03-30Buckley Miller Wright NEW24Onyama Limba
1004Wickens M IturbideIndia2024-04-04Commercial Press NEGOTIATION15Ivan Magalhaes
1005Maria L ShinkoGermany2024-04-14Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1006Jeanfrancois Y TollnerBrazil2024-04-04Chapman, Ross E Esq NEGOTIATION69Stephen Shaw
1007Leja S VocelkaIndia2024-04-18Commercial Press QUALIFIED26Elwin Sharvill
1008Mujtaba Z RulapaughAustralia2024-04-10Chanay, Jeffrey A Esq QUALIFIED20Onyama Limba
1009Ricardo E WhobreyCanada2024-04-09Rousseaux, Michael Esq RENEWAL31Onyama Limba
1010Adams D PoquetteSpain2024-04-06Dorl, James J Esq UNQUALIFIED45Elwin Sharvill
1011Francesco O BriddickCanada2024-04-04Chemel, James L Cpa PROPOSAL43Asiya Javayant
1012David U ShinkoArgentina2024-04-21Buckley Miller Wright UNQUALIFIED29Bernardo Dominic
1013Chavez I WhobreyIndia2024-04-14Morlong Associates NEW78Ivan Magalhaes
1014Clifford X BowleyIndia2024-04-18Rousseaux, Michael Esq RENEWAL43Onyama Limba
1015Ricardo P FlosiFrance2024-04-16Printing Dimensions NEGOTIATION18Anna Fali
1016Aruna F SaylorsBrazil2024-04-24Truhlar And Truhlar Attys NEGOTIATION92Amy Elsner
1017Munro F CaudyFrance2024-04-18King, Christopher A Esq UNQUALIFIED71Ioni Bowcher
1018Aruna Z GlickFrance2024-04-02Feiner Bros NEW10Xuxue Feng
1019Faith I OstroskyIndia2024-04-24Buckley Miller Wright NEGOTIATION96Elwin Sharvill
1020Octavia O MarrierUnited Kingdom2024-04-21Rangoni Of Florence NEW87Amy Elsner
1021Mayumi O SlusarskiIndia2024-04-06Chanay, Jeffrey A Esq PROPOSAL87Bernardo Dominic
1022Deepesh M CaudyBrazil2024-04-15Dorl, James J Esq QUALIFIED91Anna Fali
1023Wickens A FollerSpain2024-04-19Chemel, James L Cpa UNQUALIFIED7Elwin Sharvill
1024Cody J AmigonGermany2024-03-30Rangoni Of Florence PROPOSAL1Asiya Javayant
1025Mayumi B BowleyRussia2024-04-19Buckley Miller Wright NEW73Xuxue Feng
1026Leon P AmigonSpain2024-04-13Printing Dimensions QUALIFIED58Ioni Bowcher
1027Cody Y KolmetzGermany2024-04-23Morlong Associates NEGOTIATION20Amy Elsner
1028Aditya K FlosiFrance2024-04-08Rangoni Of Florence NEGOTIATION94Amy Elsner
1029Chavez E WaycottIndia2024-04-23Truhlar And Truhlar Attys RENEWAL0Stephen Shaw
1030Mayumi S CaldareraArgentina2024-04-03Chapman, Ross E Esq UNQUALIFIED2Ivan Magalhaes
1031Maria Y SchemmerJapan2024-04-20Chemel, James L Cpa NEW41Elwin Sharvill
1032Rodrigues H RimIndia2024-03-31Commercial Press PROPOSAL21Onyama Limba
1033Maria H CaudyCanada2024-04-20Feltz Printing Service RENEWAL69Ioni Bowcher
1034Darci W PerinUnited Kingdom2024-04-07Dorl, James J Esq PROPOSAL31Amy Elsner
1035Mujtaba V MacleadItaly2024-04-05Feiner Bros NEGOTIATION61Bernardo Dominic
1036Murillo X BowleyRussia2024-04-15Morlong Associates NEW25Stephen Shaw
1037Aika R GillianSpain2024-04-02Chapman, Ross E Esq NEGOTIATION93Amy Elsner
1038Darci U PoquetteUnited Kingdom2024-04-23Benton, John B Jr RENEWAL93Ioni Bowcher
1039Kadeem Y StensethIndia2024-04-06Benton, John B Jr QUALIFIED20Onyama Limba
1040Maria I SchemmerFrance2024-04-03Rangoni Of Florence UNQUALIFIED76Onyama Limba
1041Stacey K TollnerCanada2024-04-25Chapman, Ross E Esq NEGOTIATION36Stephen Shaw
1042Aruna A BowleySpain2024-03-30Feiner Bros RENEWAL81Stephen Shaw
1043Adams I DoeSpain2024-04-14Feiner Bros PROPOSAL60Amy Elsner
1044Stacey L WhobreyCanada2024-04-11Buckley Miller Wright UNQUALIFIED58Ioni Bowcher
1045Francesco V AmigonBrazil2024-04-01Morlong Associates PROPOSAL6Onyama Limba
1046Claire J RimAustralia2024-04-25Truhlar And Truhlar Attys QUALIFIED74Elwin Sharvill
1047Tony M MorascaJapan2024-04-19Chapman, Ross E Esq NEW73Ivan Magalhaes
1048Ashley D PerinArgentina2024-04-06Feltz Printing Service NEW21Onyama Limba
1049Murillo N WaycottJapan2024-04-08Dorl, James J Esq PROPOSAL82Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Faith P BowleySpainAnna Fali UNQUALIFIED
Nicolas T CampainJapanBernardo Dominic QUALIFIED
Morrow F ChuiIndiaOnyama Limba RENEWAL
Francesco D ShinkoFranceAmy Elsner NEGOTIATION
Jefferson M BriddickCanadaXuxue Feng NEGOTIATION
Murillo A KuskoAustraliaAsiya Javayant RENEWAL
Jefferson L StensethSpainAsiya Javayant UNQUALIFIED
Arvin H AlbaresRussiaAmy Elsner PROPOSAL
Antonio L MaletArgentinaIoni Bowcher UNQUALIFIED
Aruna I MaletSpainStephen Shaw PROPOSAL
Munro V VenereItalyIoni Bowcher RENEWAL
Adams K MorascaCanadaAnna Fali UNQUALIFIED
Leja W GillianCanadaAmy Elsner QUALIFIED
Jefferson N ChuiFranceIoni Bowcher NEW
Maria A MacleadAustraliaIoni Bowcher QUALIFIED
Kadeem S GlickCanadaOnyama Limba NEGOTIATION
Kadeem M RimJapanIvan Magalhaes RENEWAL
Stacey U GarufiSpainElwin Sharvill RENEWAL
Deepesh W WieserIndiaIvan Magalhaes UNQUALIFIED
Julie P GauchoAustraliaAsiya Javayant NEGOTIATION
Jennifer A FollerGermanyOnyama Limba NEGOTIATION
Faith B StensethAustraliaAnna Fali NEGOTIATION
Maria Z CaldareraAustraliaIvan Magalhaes QUALIFIED
Ashley D ButtJapanElwin Sharvill NEGOTIATION
Aditya N NickaGermanyAmy Elsner UNQUALIFIED
Deepesh D WhobreySpainAsiya Javayant RENEWAL
Julie Y SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Murillo U CaudySpainIvan Magalhaes QUALIFIED
Silvio B FollerAustraliaStephen Shaw NEGOTIATION
Kaitlin S FigeroaItalyAnna Fali NEGOTIATION
Kadeem M DarakjyCanadaIvan Magalhaes NEW
Kaitlin V WaycottJapanBernardo Dominic NEGOTIATION
Smith R MarrierSpainIvan Magalhaes RENEWAL
Costa F SlusarskiAustraliaIvan Magalhaes RENEWAL
Izzy Q BowleyUnited KingdomAmy Elsner QUALIFIED
Morrow Z MorascaGermanyOnyama Limba RENEWAL
Deepesh R KuskoFranceOnyama Limba NEGOTIATION
Salvatore F CaudyGermanyAnna Fali UNQUALIFIED
Cody R SergiBrazilBernardo Dominic UNQUALIFIED
Costa G PerinFranceStephen Shaw QUALIFIED
Octavia L OldroydBrazilBernardo Dominic RENEWAL
Morrow T MacleadArgentinaAmy Elsner NEGOTIATION
Tony Y FlosiItalyAsiya Javayant NEW
Chavez G GauchoBrazilElwin Sharvill UNQUALIFIED
Ricardo G CaldareraJapanIvan Magalhaes UNQUALIFIED
Arvin E TollnerCanadaBernardo Dominic PROPOSAL
Maria J MarrierUnited KingdomIoni Bowcher PROPOSAL
Smith F StockhamItalyOnyama Limba NEW
Julie P WaycottFranceStephen Shaw NEW
Deepesh B FerenczGermanyBernardo Dominic PROPOSAL
Frozen Columns
Name
Julie Y Stenseth
Chavez B Kolmetz
Adams U Stenseth
Emily F Dilliard
Jennifer Y Caudy
Misaki G Malet
Mujtaba J Ferencz
Maria B Nicka
Juan P Darakjy
Izzy C Waycott
Costa T Caldarera
Juan G Slusarski
Faith L Saylors
Costa Q Shinko
Jefferson A Briddick
Kaitlin Q Albares
Nicolas S Ferencz
Adams U Shinko
Claire Z Figeroa
Sinclair Y Ferencz
Clifford B Caudy
Ivar Z Poquette
Jennifer S Marrier
Wickens O Gillian
Costa S Maclead
James H Butt
David Q Ferencz
Maria B Inouye
Mayumi I Albares
Isabel X Nestle
Greenwood S Butt
Maria Q Tollner
Alejandro R Stockham
Adams R Rulapaugh
Isabel Z Waycott
Aika A Rulapaugh
Emily W Doe
Izzy Y Caudy
Deepesh U Sergi
Ashley G Doe
Leon D Bowley
Rodrigues R Chui
Julie L Perin
Aditya H Rulapaugh
Ashley O Rim
Kadeem L Whobrey
Greenwood R Oldroyd
Tony I Figeroa
Emily N Briddick
Isabel X Saylors
IdCountryDate
1000Japan2024-04-21
1001India2024-04-03
1002Spain2024-03-30
1003Australia2024-04-28
1004Italy2024-04-28
1005Australia2024-04-26
1006United Kingdom2024-04-03
1007Brazil2024-04-04
1008Australia2024-04-09
1009India2024-04-25
1010Germany2024-04-17
1011United Kingdom2024-04-10
1012India2024-04-27
1013Japan2024-04-04
1014Canada2024-04-03
1015India2024-04-02
1016United Kingdom2024-04-14
1017Canada2024-04-06
1018Spain2024-04-20
1019Germany2024-04-02
1020France2024-04-22
1021Canada2024-04-01
1022Canada2024-04-12
1023Australia2024-04-18
1024France2024-04-25
1025Russia2024-04-09
1026Russia2024-04-22
1027Italy2024-04-25
1028Canada2024-03-31
1029Canada2024-04-22
1030Germany2024-04-02
1031Russia2024-04-20
1032France2024-03-31
1033Argentina2024-04-09
1034Argentina2024-04-18
1035India2024-04-14
1036France2024-04-05
1037Brazil2024-04-02
1038Australia2024-04-15
1039Russia2024-04-06
1040Canada2024-04-02
1041Japan2024-04-01
1042Brazil2024-04-23
1043Australia2024-04-07
1044Argentina2024-04-21
1045Canada2024-04-02
1046Argentina2024-04-24
1047India2024-04-04
1048Germany2024-04-03
1049Germany2024-04-23

On-Demand Data

NameIdCountryDate
Ashley K Maclead1000Brazil2024-04-03
Greenwood M Maclead1001Argentina2024-03-31
Aruna V Figeroa1002Germany2024-04-27
Leon C Chui1003Argentina2024-04-07
Stacey S Dilliard1004India2024-03-31
Morrow G Stenseth1005United Kingdom2024-03-30
Munro G Gaucho1006France2024-04-16
Johnson B Waycott1007United Kingdom2024-04-21
Costa N Caudy1008France2024-04-25
Rodrigues K Garufi1009Russia2024-04-05
Jones P Ruta1010Australia2024-04-03
Deepesh E Bolognia1011Russia2024-03-31
Leon K Maclead1012Japan2024-04-04
Izzy U Bolognia1013India2024-03-31
Kaitlin E Sergi1014Canada2024-04-14
Leon Z Vocelka1015United Kingdom2024-04-24
Chavez D Saylors1016India2024-04-24
James A Kusko1017India2024-04-18
James N Morasca1018Russia2024-04-09
Silvio M Stockham1019Japan2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith U RutaGermanyXuxue Feng PROPOSAL
Wickens A FlosiAustraliaXuxue Feng NEW
Claire R MarrierSpainBernardo Dominic QUALIFIED
James J GillianArgentinaAsiya Javayant QUALIFIED
Jennifer G OstroskyItalyIvan Magalhaes RENEWAL
Kadeem C RimGermanyAnna Fali PROPOSAL
Nicolas R RimUnited KingdomAnna Fali NEGOTIATION
Kaitlin U SaylorsUnited KingdomAnna Fali NEGOTIATION
Rodrigues M OstroskyJapanAnna Fali PROPOSAL
Rodrigues H WaycottSpainIvan Magalhaes NEW
David E CampainGermanyOnyama Limba PROPOSAL
Darci Q SergiFranceAmy Elsner RENEWAL
Cody K MaletArgentinaIvan Magalhaes NEW
Silvio S PoquetteCanadaAsiya Javayant PROPOSAL
Ricardo X ShinkoArgentinaAsiya Javayant RENEWAL
Aika B CaudyFranceIoni Bowcher NEW
Greenwood V SaylorsItalyXuxue Feng NEW
Maisha N CampainFranceIoni Bowcher QUALIFIED
Arvin R KuskoUnited KingdomBernardo Dominic NEW
Costa J ShinkoArgentinaElwin Sharvill UNQUALIFIED
Darci H FlosiArgentinaIvan Magalhaes RENEWAL
Jefferson F VenereAustraliaIoni Bowcher QUALIFIED
Rodrigues I CaudyCanadaIoni Bowcher NEW
Aika P InouyeFranceStephen Shaw NEW
Maisha X MacleadIndiaBernardo Dominic UNQUALIFIED
Leja E WieserUnited KingdomElwin Sharvill QUALIFIED
Johnson G MaletSpainAmy Elsner NEGOTIATION
Maria Y MaletItalyOnyama Limba QUALIFIED
Maisha F SlusarskiAustraliaStephen Shaw RENEWAL
Mayumi D SlusarskiCanadaAmy Elsner UNQUALIFIED
Stacey E TollnerRussiaIvan Magalhaes QUALIFIED
Kaitlin F PoquetteFranceAmy Elsner NEW
Jefferson E NickaBrazilAsiya Javayant QUALIFIED
Morrow Z TollnerBrazilIvan Magalhaes PROPOSAL
Adams Z DarakjyItalyOnyama Limba UNQUALIFIED
Ricardo R GlickSpainIoni Bowcher NEGOTIATION
Jeanfrancois O MaletBrazilIoni Bowcher QUALIFIED
Claire H VocelkaBrazilElwin Sharvill UNQUALIFIED
Chavez T VocelkaGermanyAsiya Javayant NEGOTIATION
Murillo H StensethAustraliaStephen Shaw NEGOTIATION

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