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
Kaitlin B GillianItalyAnna Fali UNQUALIFIED
Juan E NickaIndiaAnna Fali NEW
Sinclair C VenereRussiaBernardo Dominic PROPOSAL
Silvio Z GauchoItalyXuxue Feng PROPOSAL
Chavez V StensethAustraliaAsiya Javayant NEGOTIATION
Ashley B StensethGermanyIvan Magalhaes PROPOSAL
Isabel N DoeUnited KingdomOnyama Limba UNQUALIFIED
Kadeem B SlusarskiJapanStephen Shaw PROPOSAL
Kadeem O InouyeBrazilAnna Fali PROPOSAL
Deepesh M MaletIndiaStephen Shaw UNQUALIFIED
Maisha Z SaylorsCanadaAnna Fali PROPOSAL
Johnson B VenereFranceIvan Magalhaes RENEWAL
Nicolas H SergiBrazilBernardo Dominic NEGOTIATION
Kadeem Y AlbaresArgentinaAnna Fali PROPOSAL
Chavez I CaudyItalyAnna Fali RENEWAL
Faith R FlosiUnited KingdomBernardo Dominic PROPOSAL
Wickens K DoeIndiaStephen Shaw UNQUALIFIED
Antonio A GlickIndiaOnyama Limba NEW
Leon K WhobreyIndiaAmy Elsner NEW
Leja L StensethJapanAmy Elsner PROPOSAL
Stacey L FollerGermanyAsiya Javayant RENEWAL
Silvio B MaletArgentinaOnyama Limba RENEWAL
Julie A ButtSpainElwin Sharvill UNQUALIFIED
Silvio Z MacleadGermanyElwin Sharvill NEW
Leon I AmigonRussiaAsiya Javayant QUALIFIED
Tony Z CampainGermanyIoni Bowcher PROPOSAL
Nicolas O MarrierAustraliaAnna Fali NEGOTIATION
Wickens X StensethItalyStephen Shaw RENEWAL
Aika S TollnerUnited KingdomStephen Shaw PROPOSAL
David N SaylorsArgentinaIvan Magalhaes RENEWAL
Juan U RutaRussiaAnna Fali UNQUALIFIED
Juan C MaletIndiaXuxue Feng NEGOTIATION
Mujtaba Z StockhamRussiaElwin Sharvill RENEWAL
David B FollerIndiaIoni Bowcher RENEWAL
Izzy W SaylorsRussiaElwin Sharvill PROPOSAL
Ricardo U BriddickSpainOnyama Limba NEW
Jennifer K SlusarskiGermanyStephen Shaw NEW
Costa U BowleyFranceXuxue Feng PROPOSAL
Juan A KolmetzIndiaElwin Sharvill NEW
Aditya T VocelkaSpainBernardo Dominic UNQUALIFIED
Chavez W GauchoIndiaIvan Magalhaes NEW
Costa X FerenczBrazilOnyama Limba UNQUALIFIED
Octavia E FigeroaFranceBernardo Dominic NEW
Claire J MarrierIndiaOnyama Limba NEW
Arvin G CaudyBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois U WhobreyCanadaBernardo Dominic RENEWAL
Aruna Q SchemmerUnited KingdomOnyama Limba UNQUALIFIED
David B KolmetzSpainAnna Fali UNQUALIFIED
Greenwood Q GillianBrazilElwin Sharvill QUALIFIED
Murillo O SergiRussiaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Emily O MaletBrazilStephen Shaw UNQUALIFIED
Aruna O IturbideArgentinaIoni Bowcher QUALIFIED
Izzy M PerinIndiaIoni Bowcher NEGOTIATION
Izzy L TollnerIndiaBernardo Dominic QUALIFIED
Murillo W AmigonGermanyIvan Magalhaes QUALIFIED
Ashley S OldroydGermanyBernardo Dominic QUALIFIED
Aruna Z CaudyUnited KingdomElwin Sharvill PROPOSAL
Murillo T IturbideUnited KingdomOnyama Limba NEW
Jeanfrancois C RulapaughBrazilBernardo Dominic PROPOSAL
Jennifer E KolmetzSpainIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar J WhobreyFrance2024-04-30Chapman, Ross E Esq QUALIFIED93Bernardo Dominic
1001Aruna E CampainAustralia2024-04-08Commercial Press NEW72Amy Elsner
1002Jefferson S SaylorsSpain2024-04-25Printing Dimensions QUALIFIED75Onyama Limba
1003Arvin F FerenczJapan2024-04-03Benton, John B Jr PROPOSAL41Xuxue Feng
1004Maria O WaycottJapan2024-04-10Commercial Press PROPOSAL41Onyama Limba
1005Johnson L GillianUnited Kingdom2024-04-27Rousseaux, Michael Esq RENEWAL61Bernardo Dominic
1006Jefferson V FigeroaIndia2024-04-16King, Christopher A Esq QUALIFIED80Asiya Javayant
1007Kadeem T BologniaJapan2024-04-09Feiner Bros NEW82Ioni Bowcher
1008Costa K MacleadSpain2024-04-28Feltz Printing Service NEGOTIATION3Xuxue Feng
1009Francesco Q StensethRussia2024-04-21Chemel, James L Cpa UNQUALIFIED53Anna Fali
1010Kadeem T FerenczBrazil2024-04-16Benton, John B Jr NEW30Onyama Limba
1011Costa L SaylorsItaly2024-04-07Benton, John B Jr NEW67Amy Elsner
1012Emily L RulapaughIndia2024-04-18Truhlar And Truhlar Attys NEW88Onyama Limba
1013Rodrigues W CampainRussia2024-04-29Chapman, Ross E Esq NEW9Bernardo Dominic
1014Aruna D DarakjyBrazil2024-04-25Rangoni Of Florence NEW23Ivan Magalhaes
1015Salvatore D DarakjyGermany2024-04-15Printing Dimensions QUALIFIED90Xuxue Feng
1016Nicolas W TollnerSpain2024-04-26Morlong Associates PROPOSAL86Ivan Magalhaes
1017Clifford N WaycottUnited Kingdom2024-04-04Chapman, Ross E Esq PROPOSAL8Onyama Limba
1018Alejandro U MaletGermany2024-04-28Chanay, Jeffrey A Esq RENEWAL14Bernardo Dominic
1019Ricardo D DarakjyUnited Kingdom2024-04-11Morlong Associates UNQUALIFIED92Asiya Javayant
1020Arvin J MaletAustralia2024-04-07Morlong Associates NEW30Anna Fali
1021Tony D MarrierSpain2024-04-06Morlong Associates NEGOTIATION72Onyama Limba
1022Izzy J BologniaUnited Kingdom2024-04-27Rangoni Of Florence NEGOTIATION62Amy Elsner
1023Sinclair A VenereArgentina2024-04-12Rousseaux, Michael Esq QUALIFIED65Stephen Shaw
1024Octavia X TollnerAustralia2024-04-10Morlong Associates NEGOTIATION77Anna Fali
1025Salvatore M ChuiIndia2024-04-05Feiner Bros NEW88Elwin Sharvill
1026Jones G RimJapan2024-04-29Buckley Miller Wright NEGOTIATION30Asiya Javayant
1027Murillo W OstroskyGermany2024-04-19Truhlar And Truhlar Attys RENEWAL88Ivan Magalhaes
1028Deepesh J OstroskyJapan2024-04-11Chemel, James L Cpa NEGOTIATION49Bernardo Dominic
1029Maisha Z FlosiCanada2024-04-11Feiner Bros RENEWAL44Ioni Bowcher
1030Misaki V SaylorsJapan2024-04-09King, Christopher A Esq PROPOSAL72Amy Elsner
1031Julie S WaycottAustralia2024-04-26Benton, John B Jr NEGOTIATION8Onyama Limba
1032Ricardo X OstroskyItaly2024-04-23Benton, John B Jr QUALIFIED29Elwin Sharvill
1033Jeanfrancois A GarufiArgentina2024-04-04Buckley Miller Wright UNQUALIFIED27Asiya Javayant
1034Faith J FerenczAustralia2024-04-20Chemel, James L Cpa RENEWAL71Amy Elsner
1035Mujtaba D FigeroaIndia2024-04-27Chapman, Ross E Esq NEW53Anna Fali
1036Maria B DoeGermany2024-04-11Chanay, Jeffrey A Esq QUALIFIED96Bernardo Dominic
1037David E FollerFrance2024-05-02Chapman, Ross E Esq QUALIFIED13Bernardo Dominic
1038Rodrigues E KuskoBrazil2024-04-09Printing Dimensions NEW2Ivan Magalhaes
1039Octavia I WaycottRussia2024-04-30Chemel, James L Cpa NEGOTIATION98Ioni Bowcher
1040Munro Z SaylorsIndia2024-05-02Chanay, Jeffrey A Esq PROPOSAL23Amy Elsner
1041Murillo O DarakjySpain2024-04-28Chemel, James L Cpa NEGOTIATION35Asiya Javayant
1042Faith J SaylorsUnited Kingdom2024-04-05Feltz Printing Service RENEWAL88Ioni Bowcher
1043Ashley H CampainGermany2024-04-04Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1044Costa S MacleadAustralia2024-04-03Printing Dimensions QUALIFIED64Onyama Limba
1045Johnson V MorascaJapan2024-04-27Chapman, Ross E Esq NEW82Asiya Javayant
1046Costa G PerinJapan2024-04-09Printing Dimensions PROPOSAL51Amy Elsner
1047Tony B RoysterItaly2024-04-14Benton, John B Jr UNQUALIFIED86Bernardo Dominic
1048Deepesh L RutaFrance2024-04-06Truhlar And Truhlar Attys NEW80Xuxue Feng
1049Ashley U AmigonBrazil2024-04-20Benton, John B Jr RENEWAL55Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Clifford D DilliardItalyAmy Elsner UNQUALIFIED
Costa A TollnerGermanyBernardo Dominic UNQUALIFIED
Salvatore P VocelkaItalyAmy Elsner QUALIFIED
Kaitlin C WhobreyRussiaIvan Magalhaes QUALIFIED
Izzy J ChuiAustraliaOnyama Limba RENEWAL
Cody Q PerinUnited KingdomIvan Magalhaes PROPOSAL
Aruna L BologniaUnited KingdomBernardo Dominic RENEWAL
Murillo A MarrierItalyXuxue Feng RENEWAL
Jeanfrancois B PaprockiJapanOnyama Limba NEGOTIATION
Stacey J BowleyArgentinaAmy Elsner NEW
Greenwood R MacleadBrazilStephen Shaw UNQUALIFIED
Ivar B RoysterSpainElwin Sharvill NEW
Kaitlin N KolmetzArgentinaIoni Bowcher PROPOSAL
Costa I SlusarskiCanadaAmy Elsner UNQUALIFIED
Silvio D SaylorsSpainStephen Shaw RENEWAL
Nicolas F GillianSpainBernardo Dominic RENEWAL
David Z TollnerIndiaElwin Sharvill NEW
Leon C OldroydUnited KingdomXuxue Feng RENEWAL
Ivar Y CaldareraJapanIoni Bowcher PROPOSAL
Smith V GillianRussiaIvan Magalhaes NEW
Isabel H MorascaFranceXuxue Feng RENEWAL
Leon Z GlickAustraliaAnna Fali QUALIFIED
Adams Z PoquetteBrazilAmy Elsner PROPOSAL
Silvio L KuskoFranceStephen Shaw NEW
Leon T IturbideItalyXuxue Feng RENEWAL
Izzy D GarufiArgentinaStephen Shaw NEGOTIATION
Aruna G GauchoJapanAsiya Javayant PROPOSAL
Clifford A RoysterArgentinaElwin Sharvill RENEWAL
Ivar H RoysterIndiaIvan Magalhaes RENEWAL
Claire J MarrierGermanyAsiya Javayant RENEWAL
Tony N FerenczItalyOnyama Limba NEW
Munro X SergiCanadaXuxue Feng QUALIFIED
Wickens Y ChuiRussiaAsiya Javayant UNQUALIFIED
Aruna P BriddickAustraliaElwin Sharvill NEGOTIATION
Claire Z VenereIndiaAnna Fali NEGOTIATION
Tony U GauchoSpainElwin Sharvill NEGOTIATION
Kaitlin V GlickIndiaIvan Magalhaes QUALIFIED
Alejandro H AmigonJapanIvan Magalhaes UNQUALIFIED
Arvin A ShinkoGermanyAsiya Javayant QUALIFIED
Jones J WhobreyAustraliaOnyama Limba UNQUALIFIED
Chavez T RutaSpainStephen Shaw NEW
Francesco D StockhamItalyBernardo Dominic NEW
Mayumi I GlickFranceBernardo Dominic NEW
Isabel B ChuiSpainIoni Bowcher PROPOSAL
Maria P DoeRussiaIvan Magalhaes QUALIFIED
Kadeem R GarufiCanadaAmy Elsner QUALIFIED
Isabel E GauchoRussiaElwin Sharvill NEGOTIATION
Jennifer T SchemmerItalyStephen Shaw QUALIFIED
Emily G CampainFranceIvan Magalhaes NEGOTIATION
Misaki T CampainGermanyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Leja U Wieser
Jeanfrancois H Garufi
David D Briddick
Munro D Wieser
Izzy W Perin
Smith C Chui
Johnson V Oldroyd
Kaitlin A Doe
Kaitlin K Figeroa
Mujtaba Z Caldarera
Emily A Bowley
Kaitlin W Gaucho
Adams P Chui
David W Wieser
Jennifer O Butt
Smith P Paprocki
Salvatore C Caudy
Faith U Gillian
Maisha C Whobrey
Silvio J Sergi
Isabel F Doe
Octavia C Doe
Octavia K Nestle
Aika M Glick
Mujtaba I Rulapaugh
Nicolas H Doe
Chavez P Glick
Munro G Flosi
Aruna V Figeroa
Misaki V Maclead
Maisha R Garufi
Rodrigues E Shinko
Silvio G Albares
Kaitlin L Schemmer
Mayumi T Nicka
Nicolas X Sergi
Sinclair L Gaucho
Wickens O Rim
Morrow C Nestle
Julie P Malet
David M Caudy
Murillo Y Dilliard
Aruna K Caldarera
Greenwood X Dilliard
Salvatore A Campain
Costa M Campain
Stacey P Nicka
Faith B Nestle
Aika C Garufi
Alejandro E Perin
IdCountryDate
1000India2024-04-28
1001Brazil2024-04-17
1002Argentina2024-04-29
1003France2024-04-24
1004France2024-04-16
1005Russia2024-04-29
1006India2024-04-16
1007Germany2024-04-25
1008Argentina2024-04-05
1009Australia2024-04-26
1010Argentina2024-04-14
1011United Kingdom2024-05-01
1012Japan2024-04-28
1013Brazil2024-04-12
1014Canada2024-04-17
1015Japan2024-04-15
1016Australia2024-04-14
1017India2024-04-22
1018France2024-04-07
1019Australia2024-04-13
1020India2024-04-03
1021Argentina2024-04-14
1022Spain2024-04-23
1023India2024-04-23
1024Germany2024-04-15
1025Germany2024-04-29
1026Spain2024-04-30
1027Australia2024-04-17
1028Japan2024-04-19
1029Brazil2024-04-23
1030Argentina2024-04-25
1031India2024-04-19
1032Germany2024-04-30
1033Canada2024-04-06
1034Germany2024-04-27
1035India2024-04-15
1036Russia2024-04-06
1037Argentina2024-05-01
1038Italy2024-04-14
1039United Kingdom2024-04-18
1040Spain2024-04-04
1041Japan2024-04-19
1042Germany2024-05-02
1043Brazil2024-04-07
1044Japan2024-04-22
1045United Kingdom2024-04-17
1046Germany2024-04-03
1047Australia2024-04-21
1048Canada2024-04-07
1049Spain2024-04-10

On-Demand Data

NameIdCountryDate
Rodrigues K Stockham1000Japan2024-04-25
Misaki A Glick1001Japan2024-04-26
Tony V Albares1002Brazil2024-04-27
Jeanfrancois K Foller1003Spain2024-05-01
Chavez T Maclead1004Argentina2024-05-02
Costa T Figeroa1005Germany2024-04-05
Kadeem R Darakjy1006United Kingdom2024-04-24
Deepesh F Waycott1007Italy2024-04-07
Leon U Inouye1008Japan2024-04-13
Leon Y Bowley1009Australia2024-05-01
Sinclair C Gillian1010Brazil2024-04-28
Antonio O Flosi1011United Kingdom2024-04-08
Aruna X Caudy1012Italy2024-04-23
David Z Amigon1013Italy2024-04-25
Maisha F Poquette1014Spain2024-04-18
Octavia C Bolognia1015Germany2024-04-15
Tony S Gaucho1016India2024-04-03
Faith I Darakjy1017Russia2024-04-10
Kaitlin S Figeroa1018Germany2024-04-24
Cody P Shinko1019Italy2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha W BowleyItalyIvan Magalhaes RENEWAL
Costa P ButtUnited KingdomOnyama Limba PROPOSAL
Alejandro P KolmetzSpainIvan Magalhaes PROPOSAL
Julie V KolmetzIndiaAnna Fali PROPOSAL
Smith Z RulapaughAustraliaElwin Sharvill UNQUALIFIED
Nicolas C BologniaUnited KingdomElwin Sharvill PROPOSAL
Salvatore K KuskoCanadaBernardo Dominic NEW
Mujtaba Z ChuiFranceBernardo Dominic PROPOSAL
Munro X VenereAustraliaAsiya Javayant UNQUALIFIED
Clifford W MorascaAustraliaBernardo Dominic NEW
Nicolas E SergiItalyIoni Bowcher NEGOTIATION
Darci E InouyeCanadaXuxue Feng RENEWAL
Aika G PerinUnited KingdomAmy Elsner RENEWAL
Chavez N PoquetteAustraliaIvan Magalhaes NEGOTIATION
Isabel C ButtSpainAsiya Javayant UNQUALIFIED
Costa E MorascaJapanAnna Fali RENEWAL
Maria T SaylorsItalyAsiya Javayant NEW
Octavia Z SergiItalyElwin Sharvill QUALIFIED
Isabel K OstroskyArgentinaXuxue Feng NEGOTIATION
Izzy I NickaBrazilStephen Shaw NEGOTIATION
Stacey L MacleadJapanAnna Fali NEGOTIATION
Rodrigues S NickaCanadaIvan Magalhaes QUALIFIED
Octavia B NestleSpainStephen Shaw NEW
Costa R RoysterItalyAmy Elsner RENEWAL
Jeanfrancois Z DarakjyCanadaOnyama Limba NEW
Leon D IturbideItalyOnyama Limba RENEWAL
Arvin I WaycottSpainXuxue Feng PROPOSAL
Murillo O BriddickArgentinaAsiya Javayant NEGOTIATION
Emily K FlosiSpainAmy Elsner RENEWAL
Emily P StensethFranceAmy Elsner NEGOTIATION
Aditya N SchemmerItalyStephen Shaw PROPOSAL
Jones L SchemmerAustraliaAmy Elsner UNQUALIFIED
Murillo Y GillianCanadaIoni Bowcher UNQUALIFIED
Darci Z StockhamArgentinaStephen Shaw QUALIFIED
Deepesh G CaudySpainAsiya Javayant UNQUALIFIED
Mujtaba W BriddickAustraliaOnyama Limba NEGOTIATION
Leon Y ChuiJapanBernardo Dominic NEGOTIATION
Francesco I AmigonIndiaAsiya Javayant NEW
Julie O ChuiRussiaElwin Sharvill RENEWAL
Ricardo Y MacleadBrazilAnna Fali RENEWAL

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