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
Stacey P RutaArgentinaOnyama Limba QUALIFIED
Adams F CaldareraFranceAnna Fali NEGOTIATION
Claire B SchemmerIndiaOnyama Limba UNQUALIFIED
Jefferson Z InouyeItalyOnyama Limba NEW
Claire P GauchoItalyOnyama Limba RENEWAL
Greenwood S KolmetzSpainIoni Bowcher NEGOTIATION
Juan U StensethSpainBernardo Dominic UNQUALIFIED
Deepesh S BowleyBrazilXuxue Feng NEW
Izzy M WaycottJapanAmy Elsner RENEWAL
Morrow W WieserAustraliaOnyama Limba NEGOTIATION
Jennifer E IturbideUnited KingdomXuxue Feng UNQUALIFIED
Chavez L StockhamArgentinaXuxue Feng NEW
Leon S VenereIndiaAmy Elsner NEW
Leon L MaletAustraliaAnna Fali NEGOTIATION
Sinclair S BriddickRussiaStephen Shaw UNQUALIFIED
Silvio W PoquetteJapanStephen Shaw NEGOTIATION
Misaki I TollnerIndiaAmy Elsner NEW
Antonio Y OldroydGermanyElwin Sharvill NEGOTIATION
Chavez E RimJapanElwin Sharvill NEGOTIATION
Murillo W StockhamCanadaAsiya Javayant RENEWAL
Chavez V GillianJapanAnna Fali RENEWAL
Munro U AmigonUnited KingdomAnna Fali PROPOSAL
Deepesh R RutaArgentinaAsiya Javayant NEGOTIATION
Smith N FlosiGermanyOnyama Limba PROPOSAL
Alejandro W TollnerSpainStephen Shaw UNQUALIFIED
Ricardo K GauchoFranceElwin Sharvill RENEWAL
Morrow U NestleCanadaElwin Sharvill NEGOTIATION
Kadeem R VocelkaCanadaOnyama Limba RENEWAL
Jefferson O AmigonRussiaAmy Elsner NEW
Alejandro G CampainCanadaBernardo Dominic NEGOTIATION
Ashley B KuskoItalyXuxue Feng UNQUALIFIED
Jefferson T NickaCanadaElwin Sharvill NEGOTIATION
Arvin L IturbideSpainAmy Elsner RENEWAL
Aditya X DilliardJapanAnna Fali UNQUALIFIED
Rodrigues Q KuskoItalyStephen Shaw NEGOTIATION
Maisha Q MarrierItalyIvan Magalhaes NEGOTIATION
Jeanfrancois Z CampainFranceIvan Magalhaes RENEWAL
Isabel M PaprockiRussiaElwin Sharvill PROPOSAL
Murillo X MorascaArgentinaAsiya Javayant NEW
Francesco C KolmetzSpainXuxue Feng NEW
Johnson K OstroskyItalyIoni Bowcher QUALIFIED
Jones U VenereIndiaAmy Elsner RENEWAL
Jennifer U FlosiSpainIoni Bowcher NEW
Julie F DoeRussiaElwin Sharvill PROPOSAL
Arvin Q DilliardSpainIoni Bowcher PROPOSAL
Jones X SaylorsFranceIvan Magalhaes RENEWAL
Clifford O RoysterIndiaAmy Elsner QUALIFIED
Aditya W StockhamUnited KingdomBernardo Dominic NEGOTIATION
Misaki L BriddickArgentinaStephen Shaw UNQUALIFIED
Juan D RutaGermanyStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo S RimIndiaIoni Bowcher RENEWAL
Stacey P CampainGermanyAmy Elsner QUALIFIED
James A AlbaresRussiaAnna Fali RENEWAL
Maisha N KolmetzRussiaIvan Magalhaes RENEWAL
Wickens R IturbideSpainOnyama Limba UNQUALIFIED
Silvio A OstroskyUnited KingdomAsiya Javayant RENEWAL
Aditya P WaycottIndiaAsiya Javayant RENEWAL
Aruna P RutaUnited KingdomStephen Shaw NEW
Leja V CaudyArgentinaElwin Sharvill NEGOTIATION
Leja E InouyeAustraliaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith L NestleUnited Kingdom2024-05-01King, Christopher A Esq UNQUALIFIED18Amy Elsner
1001Morrow H MorascaSpain2024-04-10Chapman, Ross E Esq UNQUALIFIED17Stephen Shaw
1002Murillo Y GlickFrance2024-04-11Commercial Press UNQUALIFIED84Ioni Bowcher
1003Silvio Z MarrierGermany2024-04-08Rousseaux, Michael Esq PROPOSAL52Onyama Limba
1004Maisha P ChuiItaly2024-04-07Benton, John B Jr PROPOSAL89Stephen Shaw
1005Alejandro U ButtFrance2024-05-06Truhlar And Truhlar Attys NEGOTIATION81Ivan Magalhaes
1006Jeanfrancois U TollnerFrance2024-05-05Chemel, James L Cpa PROPOSAL7Amy Elsner
1007Smith C RulapaughRussia2024-04-30Buckley Miller Wright QUALIFIED81Onyama Limba
1008Juan R FlosiSpain2024-05-06Rangoni Of Florence PROPOSAL36Ioni Bowcher
1009Deepesh I AmigonAustralia2024-04-11Printing Dimensions RENEWAL31Onyama Limba
1010Johnson F FollerIndia2024-04-14Morlong Associates NEGOTIATION48Xuxue Feng
1011Faith S IturbideAustralia2024-05-05Buckley Miller Wright QUALIFIED22Xuxue Feng
1012Clifford W ShinkoItaly2024-04-12Benton, John B Jr RENEWAL48Onyama Limba
1013Kadeem C PoquetteUnited Kingdom2024-04-24Feltz Printing Service UNQUALIFIED85Amy Elsner
1014Clifford S OstroskyJapan2024-04-07Commercial Press QUALIFIED92Onyama Limba
1015Arvin G WhobreyRussia2024-04-26Feltz Printing Service QUALIFIED39Elwin Sharvill
1016Izzy D DarakjyCanada2024-04-16Chapman, Ross E Esq PROPOSAL29Xuxue Feng
1017Aruna K GauchoArgentina2024-04-10Chanay, Jeffrey A Esq PROPOSAL53Ivan Magalhaes
1018Francesco T IturbideIndia2024-04-13Rousseaux, Michael Esq RENEWAL23Ivan Magalhaes
1019Stacey X InouyeFrance2024-04-19Printing Dimensions RENEWAL95Bernardo Dominic
1020Jones W BowleyRussia2024-04-10Chemel, James L Cpa NEW84Ioni Bowcher
1021Jennifer O NestleRussia2024-04-10King, Christopher A Esq QUALIFIED57Ioni Bowcher
1022Aditya J GillianItaly2024-04-16Chanay, Jeffrey A Esq NEGOTIATION83Xuxue Feng
1023Francesco P FlosiRussia2024-04-09Feiner Bros NEW29Xuxue Feng
1024David J OldroydItaly2024-05-06Dorl, James J Esq UNQUALIFIED45Stephen Shaw
1025James I GillianSpain2024-04-14Chemel, James L Cpa NEGOTIATION55Elwin Sharvill
1026Claire X PerinAustralia2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED95Elwin Sharvill
1027Munro E GarufiRussia2024-04-28Rousseaux, Michael Esq RENEWAL70Asiya Javayant
1028Salvatore Q ChuiRussia2024-05-06Buckley Miller Wright NEGOTIATION12Bernardo Dominic
1029Ricardo Y BologniaJapan2024-04-07King, Christopher A Esq QUALIFIED55Amy Elsner
1030Munro V BologniaJapan2024-04-13Benton, John B Jr UNQUALIFIED73Anna Fali
1031Misaki X GlickArgentina2024-04-21Commercial Press QUALIFIED34Xuxue Feng
1032Leon H TollnerRussia2024-04-13Benton, John B Jr PROPOSAL70Asiya Javayant
1033Ricardo H AlbaresGermany2024-04-07Chemel, James L Cpa PROPOSAL71Anna Fali
1034Chavez Y RutaSpain2024-04-11Rousseaux, Michael Esq NEW97Onyama Limba
1035Clifford V FollerRussia2024-04-16Dorl, James J Esq UNQUALIFIED5Ioni Bowcher
1036Jefferson O RulapaughSpain2024-04-13Morlong Associates NEW94Xuxue Feng
1037Sinclair N AlbaresGermany2024-04-25Chapman, Ross E Esq QUALIFIED60Stephen Shaw
1038Nicolas C NestleRussia2024-04-10Chanay, Jeffrey A Esq QUALIFIED24Bernardo Dominic
1039Isabel K IturbideFrance2024-04-08Buckley Miller Wright PROPOSAL80Elwin Sharvill
1040Deepesh H AmigonFrance2024-04-16Buckley Miller Wright NEW42Xuxue Feng
1041Leon D VocelkaItaly2024-04-20Feltz Printing Service NEGOTIATION28Ioni Bowcher
1042Misaki H WaycottGermany2024-04-30Rangoni Of Florence RENEWAL97Stephen Shaw
1043Jeanfrancois D GauchoBrazil2024-04-18King, Christopher A Esq NEW22Bernardo Dominic
1044David S IturbideIndia2024-04-19Buckley Miller Wright UNQUALIFIED7Bernardo Dominic
1045Claire L AmigonBrazil2024-05-05Commercial Press RENEWAL10Anna Fali
1046Jeanfrancois K SlusarskiJapan2024-05-02Chemel, James L Cpa NEGOTIATION40Ivan Magalhaes
1047Juan G DoeUnited Kingdom2024-04-11Chemel, James L Cpa QUALIFIED40Anna Fali
1048Morrow K WaycottJapan2024-04-13King, Christopher A Esq QUALIFIED14Bernardo Dominic
1049Stacey C CampainGermany2024-04-15Feiner Bros NEGOTIATION21Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maisha G ShinkoIndiaAmy Elsner NEGOTIATION
Kaitlin B RutaBrazilAsiya Javayant QUALIFIED
Tony J WhobreyJapanIvan Magalhaes PROPOSAL
Adams J InouyeArgentinaOnyama Limba NEW
Jefferson L TollnerSpainStephen Shaw UNQUALIFIED
Jennifer E ShinkoJapanAsiya Javayant QUALIFIED
James S BologniaFranceAsiya Javayant QUALIFIED
Maria G GarufiSpainAsiya Javayant NEGOTIATION
Wickens N GauchoJapanElwin Sharvill QUALIFIED
Juan Z GillianFranceAsiya Javayant UNQUALIFIED
Francesco A GarufiUnited KingdomAnna Fali RENEWAL
Clifford Z ShinkoBrazilElwin Sharvill PROPOSAL
Clifford G CaldareraJapanAsiya Javayant NEW
Munro K RulapaughCanadaAmy Elsner QUALIFIED
Kadeem T GillianCanadaAmy Elsner NEGOTIATION
Munro U FlosiItalyOnyama Limba UNQUALIFIED
David V PerinBrazilAnna Fali NEGOTIATION
David O OstroskySpainIoni Bowcher PROPOSAL
Arvin Z DoeJapanIoni Bowcher RENEWAL
Ricardo G ButtAustraliaOnyama Limba UNQUALIFIED
Clifford C FollerGermanyAsiya Javayant NEW
Munro P StockhamIndiaAmy Elsner NEGOTIATION
Morrow S MacleadArgentinaStephen Shaw NEW
David Z AmigonAustraliaStephen Shaw PROPOSAL
Kaitlin W GlickUnited KingdomBernardo Dominic NEW
Maisha K SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Mayumi A TollnerBrazilAnna Fali RENEWAL
Francesco S GlickFranceIoni Bowcher NEW
Murillo N GillianCanadaOnyama Limba UNQUALIFIED
Jefferson L BologniaAustraliaElwin Sharvill RENEWAL
Costa A WieserGermanyAnna Fali PROPOSAL
Ashley T WhobreyBrazilAmy Elsner QUALIFIED
Costa V WaycottJapanAnna Fali RENEWAL
Stacey B WaycottGermanyStephen Shaw RENEWAL
Smith G MarrierAustraliaXuxue Feng PROPOSAL
Sinclair V ButtBrazilIoni Bowcher RENEWAL
Juan F ShinkoUnited KingdomIvan Magalhaes NEW
Jones A VenereUnited KingdomAmy Elsner NEW
Mujtaba C AlbaresBrazilXuxue Feng PROPOSAL
Juan I WhobreyIndiaBernardo Dominic RENEWAL
Murillo C GillianArgentinaXuxue Feng UNQUALIFIED
Maria P ChuiCanadaIoni Bowcher RENEWAL
Wickens Z MorascaCanadaOnyama Limba QUALIFIED
Mujtaba O SergiGermanyAmy Elsner NEW
Murillo Y FerenczUnited KingdomOnyama Limba PROPOSAL
Rodrigues M WieserCanadaAnna Fali QUALIFIED
Chavez P PaprockiCanadaBernardo Dominic QUALIFIED
Maisha O StockhamFranceBernardo Dominic PROPOSAL
Murillo A NestleUnited KingdomXuxue Feng UNQUALIFIED
Nicolas T KolmetzJapanXuxue Feng PROPOSAL
Frozen Columns
Name
Stacey L Chui
Darci V Gaucho
Francesco D Ferencz
Aruna M Ruta
Jennifer R Ruta
Mayumi F Shinko
Antonio L Garufi
Isabel H Chui
Francesco M Perin
Silvio P Vocelka
Wickens B Oldroyd
Jones H Malet
Sinclair K Shinko
David N Sergi
Aruna Y Oldroyd
Emily W Nicka
Kaitlin K Malet
Octavia M Ruta
Wickens V Paprocki
Julie B Sergi
Izzy S Nestle
Isabel K Stockham
Aika L Shinko
Isabel Z Figeroa
Francesco Q Amigon
Jones W Darakjy
Octavia Q Morasca
Stacey S Chui
Antonio I Perin
Chavez R Darakjy
Kadeem K Royster
Cody R Paprocki
Smith B Perin
Isabel N Garufi
Mujtaba I Gaucho
Cody A Vocelka
Maisha A Foller
Alejandro I Oldroyd
Aruna Z Butt
Darci C Bowley
Tony X Bolognia
Nicolas Z Slusarski
Tony L Stenseth
Leja V Gillian
Emily S Maclead
Darci G Perin
Claire W Garufi
Jennifer L Perin
Deepesh X Caudy
Maisha D Slusarski
IdCountryDate
1000United Kingdom2024-04-15
1001Australia2024-04-09
1002Italy2024-04-15
1003Italy2024-04-07
1004Canada2024-04-09
1005Canada2024-05-01
1006Germany2024-04-23
1007United Kingdom2024-05-05
1008United Kingdom2024-04-17
1009Italy2024-04-08
1010Spain2024-04-13
1011Spain2024-04-12
1012Japan2024-04-24
1013India2024-04-14
1014France2024-05-06
1015Germany2024-04-14
1016Brazil2024-04-12
1017Germany2024-05-01
1018Germany2024-04-19
1019Australia2024-04-14
1020India2024-04-16
1021Italy2024-04-27
1022Canada2024-04-30
1023Argentina2024-05-06
1024India2024-04-24
1025Canada2024-05-02
1026India2024-04-14
1027Germany2024-04-26
1028Argentina2024-04-30
1029Russia2024-04-11
1030Argentina2024-04-09
1031Brazil2024-04-12
1032France2024-04-16
1033Australia2024-05-01
1034Argentina2024-04-15
1035Germany2024-04-12
1036Canada2024-04-15
1037Australia2024-04-23
1038Germany2024-04-07
1039Brazil2024-04-19
1040France2024-04-27
1041Russia2024-04-26
1042Germany2024-05-06
1043Japan2024-04-20
1044India2024-05-01
1045Australia2024-04-18
1046Russia2024-04-30
1047Spain2024-04-26
1048Australia2024-04-07
1049Canada2024-04-21

On-Demand Data

NameIdCountryDate
Sinclair A Flosi1000Italy2024-04-16
Smith K Figeroa1001Russia2024-04-13
Jennifer X Butt1002Germany2024-04-20
Ricardo X Nicka1003India2024-04-14
Cody L Chui1004Argentina2024-05-03
Kaitlin V Foller1005France2024-04-19
Costa G Wieser1006France2024-04-19
Aditya Z Waycott1007Japan2024-04-17
Rodrigues K Albares1008Canada2024-04-19
Kadeem D Ferencz1009India2024-04-19
Emily J Stockham1010Japan2024-04-16
Munro M Saylors1011Russia2024-04-07
Cody F Shinko1012India2024-04-12
James P Sergi1013Australia2024-04-13
Ivar G Schemmer1014Canada2024-05-02
Juan J Tollner1015Japan2024-04-09
Jefferson F Nestle1016Russia2024-04-13
Jeanfrancois U Rulapaugh1017Italy2024-04-23
Jones H Morasca1018United Kingdom2024-05-05
Izzy P Rim1019Japan2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P MaletAustraliaIoni Bowcher NEW
Octavia M VenereUnited KingdomOnyama Limba RENEWAL
Stacey J KolmetzJapanIoni Bowcher NEW
James A FigeroaSpainAmy Elsner UNQUALIFIED
Jefferson D RulapaughIndiaIoni Bowcher UNQUALIFIED
Aditya P PerinJapanAsiya Javayant RENEWAL
Juan O DarakjyCanadaElwin Sharvill UNQUALIFIED
Emily I DoeAustraliaXuxue Feng PROPOSAL
James M RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson M MorascaJapanIoni Bowcher PROPOSAL
Aditya D WhobreyAustraliaBernardo Dominic NEW
David X WhobreyArgentinaStephen Shaw NEW
James E AlbaresFranceOnyama Limba UNQUALIFIED
Adams A DarakjyUnited KingdomElwin Sharvill QUALIFIED
Johnson U CaudyAustraliaIvan Magalhaes NEGOTIATION
Deepesh Y RulapaughSpainAmy Elsner RENEWAL
Misaki C AmigonSpainAnna Fali UNQUALIFIED
Ivar C AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas P FlosiGermanyElwin Sharvill QUALIFIED
Faith D FollerAustraliaElwin Sharvill NEW
Munro U GillianBrazilAmy Elsner UNQUALIFIED
Silvio N OldroydJapanIoni Bowcher PROPOSAL
Faith E VocelkaFranceElwin Sharvill QUALIFIED
Mayumi Q WaycottItalyIvan Magalhaes NEGOTIATION
Maisha Y GarufiArgentinaBernardo Dominic UNQUALIFIED
Murillo M CampainIndiaAmy Elsner NEGOTIATION
Antonio G SergiCanadaXuxue Feng NEGOTIATION
Ivar R OldroydItalyIvan Magalhaes NEW
Faith S ShinkoRussiaElwin Sharvill NEGOTIATION
Stacey E ChuiItalyXuxue Feng QUALIFIED
Cody T BologniaSpainIvan Magalhaes RENEWAL
Faith T VocelkaFranceElwin Sharvill PROPOSAL
Clifford O VenereJapanAnna Fali NEW
Cody V FlosiItalyIvan Magalhaes NEW
Cody E ChuiGermanyXuxue Feng NEW
Darci A RimUnited KingdomXuxue Feng NEW
Mujtaba D GlickAustraliaIvan Magalhaes UNQUALIFIED
Morrow T MorascaCanadaIoni Bowcher QUALIFIED
Smith O SaylorsCanadaStephen Shaw PROPOSAL
Mujtaba S SlusarskiSpainAnna Fali 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>