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
Misaki M AlbaresArgentinaXuxue Feng QUALIFIED
Smith V CaldareraAustraliaElwin Sharvill UNQUALIFIED
Izzy A MacleadArgentinaBernardo Dominic NEGOTIATION
Ricardo A KuskoArgentinaXuxue Feng NEGOTIATION
Leon S DarakjyBrazilStephen Shaw NEW
Murillo O OldroydFranceIoni Bowcher PROPOSAL
Ivar O DoeAustraliaAsiya Javayant NEW
Adams L VocelkaIndiaIvan Magalhaes RENEWAL
Jennifer G WieserArgentinaIvan Magalhaes PROPOSAL
Maisha K KuskoCanadaOnyama Limba RENEWAL
Munro P CampainCanadaAsiya Javayant RENEWAL
Murillo V GlickArgentinaBernardo Dominic RENEWAL
Kaitlin D VenereFranceAnna Fali UNQUALIFIED
Ivar L WaycottItalyStephen Shaw PROPOSAL
Ricardo G PaprockiBrazilAsiya Javayant NEW
Aruna U PaprockiGermanyIoni Bowcher RENEWAL
Sinclair A CaldareraAustraliaStephen Shaw NEW
Chavez A DoeSpainAmy Elsner PROPOSAL
Ashley C InouyeItalyXuxue Feng RENEWAL
Stacey A MaletAustraliaElwin Sharvill RENEWAL
Rodrigues I TollnerArgentinaBernardo Dominic QUALIFIED
Mujtaba B FollerRussiaBernardo Dominic NEGOTIATION
Darci F SlusarskiUnited KingdomIoni Bowcher NEW
Misaki P KuskoJapanAmy Elsner PROPOSAL
Julie D GlickGermanyIvan Magalhaes NEGOTIATION
Maisha M RulapaughCanadaAmy Elsner PROPOSAL
Tony O DarakjyAustraliaElwin Sharvill RENEWAL
Faith Z WaycottSpainAsiya Javayant UNQUALIFIED
Julie V NestleSpainAnna Fali UNQUALIFIED
Chavez K MorascaSpainAnna Fali UNQUALIFIED
Juan G KolmetzItalyAsiya Javayant NEGOTIATION
Arvin N GlickBrazilBernardo Dominic NEGOTIATION
Emily R VenereFranceElwin Sharvill PROPOSAL
Stacey K PaprockiFranceXuxue Feng PROPOSAL
Juan Y SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
James H RulapaughRussiaElwin Sharvill NEGOTIATION
Rodrigues S SaylorsBrazilAmy Elsner UNQUALIFIED
Isabel M InouyeJapanAmy Elsner UNQUALIFIED
James P DoeIndiaElwin Sharvill NEW
Faith V MaletItalyElwin Sharvill PROPOSAL
Ricardo H GarufiUnited KingdomAmy Elsner QUALIFIED
Octavia C BriddickIndiaIvan Magalhaes UNQUALIFIED
Maisha I CaudySpainOnyama Limba QUALIFIED
Izzy M GillianAustraliaBernardo Dominic QUALIFIED
Sinclair J AlbaresRussiaAmy Elsner NEGOTIATION
Misaki M BowleyAustraliaElwin Sharvill PROPOSAL
Aika A MorascaArgentinaXuxue Feng NEW
Alejandro Q FerenczRussiaIvan Magalhaes UNQUALIFIED
Leja C MaletJapanIoni Bowcher PROPOSAL
Sinclair X KolmetzArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer E VocelkaItalyOnyama Limba PROPOSAL
Aditya F WieserFranceIoni Bowcher NEGOTIATION
Leja P GlickItalyIoni Bowcher NEGOTIATION
Cody Y PoquetteBrazilStephen Shaw UNQUALIFIED
Clifford S StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson M FerenczFranceIoni Bowcher QUALIFIED
Johnson E RulapaughFranceAsiya Javayant QUALIFIED
Leon C PoquetteBrazilAnna Fali NEW
Cody M FlosiUnited KingdomAnna Fali QUALIFIED
Maria D MacleadUnited KingdomBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James J MacleadItaly2024-05-20Benton, John B Jr UNQUALIFIED60Amy Elsner
1001David K NestleJapan2024-05-17Chapman, Ross E Esq QUALIFIED24Anna Fali
1002David P StockhamIndia2024-04-25Rangoni Of Florence QUALIFIED74Amy Elsner
1003Deepesh G PaprockiArgentina2024-05-11Chapman, Ross E Esq NEGOTIATION41Anna Fali
1004Sinclair V OldroydSpain2024-05-21Feiner Bros UNQUALIFIED6Anna Fali
1005Deepesh N SchemmerGermany2024-04-23Chemel, James L Cpa QUALIFIED63Ivan Magalhaes
1006Leon U SergiJapan2024-05-12Feltz Printing Service RENEWAL97Xuxue Feng
1007Greenwood J KolmetzArgentina2024-05-13Chanay, Jeffrey A Esq QUALIFIED43Anna Fali
1008Alejandro D BriddickUnited Kingdom2024-05-07Benton, John B Jr NEW97Anna Fali
1009Greenwood X WieserUnited Kingdom2024-05-10Commercial Press PROPOSAL64Ioni Bowcher
1010Jeanfrancois H CaudyGermany2024-05-10King, Christopher A Esq NEW23Onyama Limba
1011Aruna X ShinkoAustralia2024-05-01Benton, John B Jr QUALIFIED61Anna Fali
1012Mujtaba U StensethBrazil2024-04-23Morlong Associates NEGOTIATION80Ivan Magalhaes
1013Munro X PerinGermany2024-05-19Rousseaux, Michael Esq UNQUALIFIED66Ioni Bowcher
1014Alejandro D CaldareraBrazil2024-05-12Commercial Press QUALIFIED94Onyama Limba
1015Antonio I PoquetteArgentina2024-04-29Benton, John B Jr PROPOSAL70Anna Fali
1016Aruna V RoysterCanada2024-04-29Chapman, Ross E Esq PROPOSAL25Ivan Magalhaes
1017Isabel D CaudyRussia2024-05-06Feiner Bros NEGOTIATION36Amy Elsner
1018Maisha Q MaletAustralia2024-05-15Chanay, Jeffrey A Esq RENEWAL64Onyama Limba
1019Tony J AmigonSpain2024-04-25Printing Dimensions UNQUALIFIED2Asiya Javayant
1020Aditya F PerinUnited Kingdom2024-05-11King, Christopher A Esq RENEWAL55Amy Elsner
1021Johnson G ChuiFrance2024-05-04Chemel, James L Cpa RENEWAL29Xuxue Feng
1022Silvio E FollerRussia2024-04-24Dorl, James J Esq PROPOSAL38Xuxue Feng
1023Greenwood P RimItaly2024-05-10Printing Dimensions PROPOSAL87Amy Elsner
1024Ivar U DoeCanada2024-05-05Truhlar And Truhlar Attys QUALIFIED89Ioni Bowcher
1025Rodrigues H RutaGermany2024-05-09Benton, John B Jr PROPOSAL0Amy Elsner
1026Leja S PaprockiUnited Kingdom2024-04-23Buckley Miller Wright RENEWAL11Onyama Limba
1027Clifford E WaycottGermany2024-05-11Buckley Miller Wright QUALIFIED30Asiya Javayant
1028Mujtaba N ShinkoGermany2024-05-07Printing Dimensions QUALIFIED32Bernardo Dominic
1029Leon V WhobreyAustralia2024-04-30Chemel, James L Cpa UNQUALIFIED92Asiya Javayant
1030James L PoquetteBrazil2024-05-12Rousseaux, Michael Esq NEGOTIATION43Ioni Bowcher
1031Jennifer P GillianFrance2024-05-15King, Christopher A Esq UNQUALIFIED90Asiya Javayant
1032Leja M StockhamItaly2024-04-22Rousseaux, Michael Esq NEW15Anna Fali
1033Claire O DilliardUnited Kingdom2024-04-26Chanay, Jeffrey A Esq RENEWAL87Stephen Shaw
1034Jeanfrancois W DarakjyUnited Kingdom2024-05-16Chemel, James L Cpa PROPOSAL57Elwin Sharvill
1035Aika V CaldareraAustralia2024-05-02Printing Dimensions UNQUALIFIED49Xuxue Feng
1036Murillo I VocelkaBrazil2024-05-04Rousseaux, Michael Esq UNQUALIFIED86Anna Fali
1037Faith N StockhamJapan2024-05-16Commercial Press PROPOSAL42Stephen Shaw
1038Silvio Y ButtIndia2024-05-08Commercial Press NEW27Bernardo Dominic
1039Rodrigues W RulapaughJapan2024-05-20Chanay, Jeffrey A Esq NEW23Stephen Shaw
1040Smith K CaudyIndia2024-05-02Benton, John B Jr PROPOSAL12Elwin Sharvill
1041Claire J StensethSpain2024-05-08Feltz Printing Service NEGOTIATION3Ivan Magalhaes
1042Maria M SaylorsJapan2024-05-14Commercial Press NEW3Stephen Shaw
1043James R SchemmerArgentina2024-05-07Truhlar And Truhlar Attys PROPOSAL45Elwin Sharvill
1044Ivar Y GauchoFrance2024-04-24Chemel, James L Cpa RENEWAL50Ivan Magalhaes
1045Cody Y RoysterCanada2024-05-17Truhlar And Truhlar Attys NEW83Xuxue Feng
1046Tony L WieserBrazil2024-04-24King, Christopher A Esq UNQUALIFIED15Xuxue Feng
1047Juan H ButtRussia2024-05-18Feltz Printing Service NEGOTIATION14Asiya Javayant
1048Jeanfrancois D MarrierBrazil2024-05-09Buckley Miller Wright RENEWAL70Onyama Limba
1049Arvin F WaycottCanada2024-05-19Feiner Bros NEW5Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Octavia P KuskoIndiaAmy Elsner QUALIFIED
Aditya Y OstroskyIndiaBernardo Dominic NEW
Ricardo M PoquetteUnited KingdomAsiya Javayant RENEWAL
Clifford E PerinIndiaAsiya Javayant RENEWAL
Clifford M DarakjyRussiaAsiya Javayant QUALIFIED
Ricardo W RutaJapanElwin Sharvill PROPOSAL
Ricardo M IturbideBrazilIoni Bowcher NEW
Maria M ButtItalyAmy Elsner NEW
Aruna S MorascaBrazilOnyama Limba NEW
Francesco L BologniaBrazilElwin Sharvill RENEWAL
Kadeem A KolmetzRussiaIoni Bowcher QUALIFIED
Mujtaba N VenereItalyAmy Elsner QUALIFIED
Octavia W KolmetzGermanyStephen Shaw RENEWAL
Aika O MacleadBrazilAmy Elsner NEW
Mayumi H SlusarskiItalyOnyama Limba RENEWAL
Jefferson W VenereJapanIvan Magalhaes NEW
Aditya A ShinkoJapanBernardo Dominic RENEWAL
Maria L VenereAustraliaElwin Sharvill UNQUALIFIED
Faith T BologniaItalyElwin Sharvill NEW
Emily P NickaIndiaXuxue Feng RENEWAL
Wickens V PerinUnited KingdomIoni Bowcher UNQUALIFIED
Emily O GauchoGermanyIoni Bowcher NEGOTIATION
Julie N OstroskyGermanyStephen Shaw PROPOSAL
Julie U NickaArgentinaIvan Magalhaes QUALIFIED
Salvatore E BologniaJapanIoni Bowcher QUALIFIED
Jeanfrancois L AlbaresGermanyBernardo Dominic NEW
Munro X CaudyJapanBernardo Dominic PROPOSAL
Deepesh T ShinkoJapanIoni Bowcher QUALIFIED
Jones J OldroydFranceElwin Sharvill NEW
Ricardo Q DoeIndiaBernardo Dominic UNQUALIFIED
Chavez X MarrierBrazilIvan Magalhaes NEGOTIATION
Johnson B VenereArgentinaElwin Sharvill QUALIFIED
Rodrigues W TollnerBrazilStephen Shaw RENEWAL
Juan A KolmetzJapanIoni Bowcher QUALIFIED
Chavez C BowleyJapanIoni Bowcher QUALIFIED
Adams V ShinkoArgentinaAnna Fali RENEWAL
Aika Z RutaJapanElwin Sharvill NEW
Claire O RimIndiaAnna Fali UNQUALIFIED
Ashley V SlusarskiUnited KingdomXuxue Feng NEW
Wickens I BologniaSpainIoni Bowcher RENEWAL
Ivar O PerinItalyXuxue Feng NEGOTIATION
Ricardo O MacleadBrazilAmy Elsner NEW
Isabel G WhobreySpainIvan Magalhaes NEGOTIATION
Stacey F NickaAustraliaStephen Shaw NEGOTIATION
Ivar R StensethJapanOnyama Limba UNQUALIFIED
Salvatore E BologniaSpainAmy Elsner NEGOTIATION
Francesco L WhobreyAustraliaOnyama Limba PROPOSAL
Chavez O VocelkaBrazilAsiya Javayant RENEWAL
Antonio E GarufiItalyOnyama Limba QUALIFIED
Tony X StensethSpainIoni Bowcher RENEWAL
Frozen Columns
Name
Cody Q Caudy
Murillo W Poquette
Greenwood Y Poquette
Greenwood N Slusarski
Jones S Glick
Mayumi K Briddick
Leja V Doe
Claire C Doe
Jones T Ferencz
Kaitlin K Glick
Clifford Y Tollner
Johnson W Tollner
Johnson R Vocelka
James V Butt
James V Bolognia
Kadeem K Venere
Aika G Paprocki
Sinclair W Malet
Stacey W Ferencz
Maisha N Kolmetz
Darci A Wieser
Isabel G Rulapaugh
Greenwood I Ruta
Johnson W Paprocki
Jefferson Q Whobrey
Nicolas D Schemmer
Alejandro I Sergi
David V Malet
Mujtaba U Ostrosky
Greenwood S Shinko
Julie D Wieser
James X Royster
Jefferson A Kusko
Francesco A Figeroa
Maria E Stockham
Leon S Waycott
Aika E Bolognia
Darci O Ferencz
Emily C Bolognia
Isabel Y Caudy
Claire F Garufi
Darci H Saylors
David R Perin
Claire S Kusko
Leja E Vocelka
Greenwood H Nestle
Francesco G Wieser
Clifford W Gillian
Johnson B Amigon
Maria K Iturbide
IdCountryDate
1000India2024-04-27
1001Argentina2024-05-03
1002Italy2024-05-07
1003Canada2024-05-18
1004Argentina2024-05-01
1005Spain2024-05-05
1006Germany2024-05-13
1007Brazil2024-05-18
1008Australia2024-05-10
1009Russia2024-05-06
1010Spain2024-04-28
1011Italy2024-05-20
1012Russia2024-05-03
1013Argentina2024-05-18
1014Russia2024-05-01
1015Japan2024-05-12
1016Japan2024-04-23
1017Canada2024-04-23
1018Australia2024-04-27
1019Spain2024-05-09
1020Canada2024-04-28
1021Australia2024-05-04
1022Australia2024-05-03
1023Canada2024-04-25
1024Brazil2024-05-16
1025Argentina2024-05-09
1026Canada2024-05-19
1027Italy2024-04-30
1028Spain2024-05-14
1029Russia2024-05-15
1030Brazil2024-04-22
1031Spain2024-05-10
1032Russia2024-05-18
1033Spain2024-05-21
1034Canada2024-04-29
1035Canada2024-05-19
1036Italy2024-04-23
1037Russia2024-05-06
1038Spain2024-05-17
1039Canada2024-04-24
1040Japan2024-05-09
1041Argentina2024-05-01
1042Russia2024-05-12
1043India2024-05-19
1044Germany2024-05-17
1045Japan2024-05-04
1046Australia2024-05-08
1047Canada2024-05-04
1048Spain2024-04-25
1049Brazil2024-05-02

On-Demand Data

NameIdCountryDate
Greenwood S Slusarski1000France2024-05-19
Sinclair L Darakjy1001Spain2024-05-20
Munro L Stenseth1002India2024-04-28
Mayumi Z Butt1003United Kingdom2024-05-08
Faith A Kolmetz1004India2024-05-09
Jeanfrancois B Gillian1005Germany2024-04-24
Munro D Butt1006Russia2024-05-16
Sinclair J Butt1007Italy2024-05-03
Kaitlin W Inouye1008Brazil2024-04-26
Francesco O Malet1009Argentina2024-05-08
Greenwood I Malet1010Brazil2024-05-10
Salvatore Z Stenseth1011Russia2024-05-03
Mujtaba R Kolmetz1012Germany2024-05-06
James D Ferencz1013France2024-05-19
Maria O Morasca1014India2024-05-13
Faith C Rulapaugh1015Russia2024-05-05
Clifford E Ostrosky1016Canada2024-05-18
Murillo J Doe1017Japan2024-05-07
James V Glick1018France2024-05-08
Claire T Shinko1019India2024-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith K DilliardUnited KingdomIoni Bowcher NEGOTIATION
Maisha R WieserArgentinaOnyama Limba PROPOSAL
Jones D CaldareraRussiaBernardo Dominic QUALIFIED
Arvin I InouyeBrazilElwin Sharvill NEW
Tony X RoysterAustraliaXuxue Feng NEW
Kadeem A BologniaItalyAmy Elsner PROPOSAL
Mayumi D KuskoArgentinaOnyama Limba NEW
Leja H MacleadArgentinaXuxue Feng NEW
Claire P RutaFranceElwin Sharvill UNQUALIFIED
Aika D VocelkaFranceElwin Sharvill QUALIFIED
Munro E RulapaughJapanIvan Magalhaes NEGOTIATION
Deepesh K CaudyArgentinaAmy Elsner NEW
Nicolas I FerenczItalyIvan Magalhaes PROPOSAL
Jennifer O KuskoGermanyOnyama Limba NEGOTIATION
Kadeem E StockhamAustraliaBernardo Dominic UNQUALIFIED
Wickens N FlosiJapanIvan Magalhaes QUALIFIED
Jones C VenereUnited KingdomAsiya Javayant RENEWAL
Aika F AlbaresCanadaAsiya Javayant PROPOSAL
Maria F RoysterArgentinaStephen Shaw UNQUALIFIED
James S OstroskyJapanStephen Shaw QUALIFIED
Costa M VocelkaJapanOnyama Limba QUALIFIED
Aruna O RoysterIndiaIvan Magalhaes NEW
Maisha H GauchoItalyAnna Fali PROPOSAL
Smith W CaudyGermanyIoni Bowcher UNQUALIFIED
Jefferson Z CaudyGermanyElwin Sharvill PROPOSAL
Jennifer M VocelkaItalyIoni Bowcher NEGOTIATION
Rodrigues R RutaSpainAnna Fali NEGOTIATION
Adams L FigeroaJapanAnna Fali PROPOSAL
Mayumi L CaudySpainIoni Bowcher RENEWAL
Greenwood I NickaGermanyIvan Magalhaes NEGOTIATION
Ivar X OstroskyRussiaElwin Sharvill NEGOTIATION
Kaitlin O DilliardFranceAmy Elsner RENEWAL
Maria O MarrierFranceIvan Magalhaes RENEWAL
Nicolas Q MaletArgentinaElwin Sharvill PROPOSAL
Kadeem C AmigonUnited KingdomBernardo Dominic PROPOSAL
Munro C WieserSpainAnna Fali QUALIFIED
Izzy I KuskoGermanyIoni Bowcher RENEWAL
Juan Q ShinkoSpainOnyama Limba RENEWAL
Jennifer V OldroydIndiaStephen Shaw PROPOSAL
Ricardo J BologniaIndiaIoni Bowcher QUALIFIED

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