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
Ivar B FigeroaSpainAmy Elsner PROPOSAL
Chavez P BologniaFranceAnna Fali NEW
Salvatore M FollerUnited KingdomIoni Bowcher QUALIFIED
Silvio P AmigonArgentinaStephen Shaw UNQUALIFIED
Jennifer L RutaSpainElwin Sharvill RENEWAL
Misaki L PerinCanadaBernardo Dominic RENEWAL
Francesco T GauchoUnited KingdomXuxue Feng QUALIFIED
Sinclair A InouyeCanadaElwin Sharvill NEGOTIATION
Leja F WaycottFranceElwin Sharvill QUALIFIED
Isabel P KuskoUnited KingdomBernardo Dominic NEW
Misaki O VocelkaArgentinaBernardo Dominic NEW
Darci F SlusarskiAustraliaIoni Bowcher PROPOSAL
Wickens B GauchoJapanAsiya Javayant NEW
Jones G PaprockiUnited KingdomBernardo Dominic PROPOSAL
Faith V SaylorsRussiaStephen Shaw QUALIFIED
Kadeem W TollnerJapanIoni Bowcher NEGOTIATION
Smith C SchemmerSpainAsiya Javayant NEW
Leon U DoeRussiaBernardo Dominic QUALIFIED
Smith T GarufiAustraliaStephen Shaw QUALIFIED
David M FigeroaCanadaAsiya Javayant PROPOSAL
Leja A PaprockiGermanyAnna Fali QUALIFIED
Adams U WhobreySpainAsiya Javayant QUALIFIED
Greenwood M SlusarskiIndiaAnna Fali UNQUALIFIED
Salvatore C DoeRussiaElwin Sharvill NEGOTIATION
Maria O MaletRussiaBernardo Dominic PROPOSAL
Jeanfrancois Z AlbaresIndiaIoni Bowcher NEW
Kaitlin L MaletAustraliaXuxue Feng NEW
Murillo X MaletRussiaAsiya Javayant NEW
Octavia A MaletArgentinaOnyama Limba NEW
Ricardo K GlickJapanIvan Magalhaes NEGOTIATION
Darci B BowleyCanadaElwin Sharvill NEGOTIATION
Morrow A SlusarskiArgentinaXuxue Feng RENEWAL
Clifford F RulapaughBrazilAmy Elsner QUALIFIED
Adams F SlusarskiJapanBernardo Dominic NEGOTIATION
Ivar J RutaSpainBernardo Dominic PROPOSAL
Julie J WieserCanadaStephen Shaw PROPOSAL
Sinclair B ChuiGermanyOnyama Limba UNQUALIFIED
Mujtaba X AlbaresCanadaAnna Fali QUALIFIED
Claire T KolmetzIndiaAsiya Javayant RENEWAL
Munro T IturbideFranceIoni Bowcher QUALIFIED
Leja Y OldroydCanadaOnyama Limba PROPOSAL
Greenwood J SergiRussiaIvan Magalhaes NEGOTIATION
Stacey N MorascaCanadaStephen Shaw PROPOSAL
Ricardo P WhobreyUnited KingdomElwin Sharvill QUALIFIED
Kaitlin E DoeGermanyBernardo Dominic PROPOSAL
Faith N KuskoRussiaBernardo Dominic RENEWAL
James Y BriddickBrazilIvan Magalhaes RENEWAL
Julie Y VocelkaRussiaAnna Fali UNQUALIFIED
Costa K OstroskyItalyAnna Fali NEW
Alejandro K AlbaresGermanyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan Y FerenczSpainIvan Magalhaes NEW
Antonio T WaycottUnited KingdomElwin Sharvill NEW
Mayumi Q ShinkoArgentinaStephen Shaw RENEWAL
Costa D DarakjyAustraliaAmy Elsner RENEWAL
Mayumi L WieserFranceElwin Sharvill PROPOSAL
Alejandro I StockhamUnited KingdomAmy Elsner RENEWAL
Faith Z TollnerGermanyElwin Sharvill PROPOSAL
Murillo V SergiBrazilAsiya Javayant NEGOTIATION
Tony C BriddickItalyAsiya Javayant PROPOSAL
Clifford G BriddickIndiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire C TollnerAustralia2024-04-02Chapman, Ross E Esq RENEWAL40Onyama Limba
1001Aditya C RoysterSpain2024-04-23Truhlar And Truhlar Attys QUALIFIED91Xuxue Feng
1002Costa N NestleSpain2024-04-19Rangoni Of Florence RENEWAL97Ioni Bowcher
1003Silvio Y PoquetteFrance2024-04-07Buckley Miller Wright NEW26Bernardo Dominic
1004Alejandro F WaycottGermany2024-04-20Chapman, Ross E Esq NEW88Anna Fali
1005Munro S RimArgentina2024-04-14Chemel, James L Cpa UNQUALIFIED25Elwin Sharvill
1006Leja A FlosiUnited Kingdom2024-04-14Morlong Associates RENEWAL55Onyama Limba
1007James X DilliardAustralia2024-04-28Feltz Printing Service NEGOTIATION71Anna Fali
1008Alejandro G AlbaresAustralia2024-04-03Feltz Printing Service UNQUALIFIED95Bernardo Dominic
1009Leja I GlickJapan2024-04-18Chanay, Jeffrey A Esq NEW17Amy Elsner
1010Greenwood M BologniaGermany2024-04-09Feltz Printing Service PROPOSAL97Amy Elsner
1011Silvio A BologniaGermany2024-04-19Chanay, Jeffrey A Esq RENEWAL51Xuxue Feng
1012Julie W RimSpain2024-04-04Chemel, James L Cpa QUALIFIED16Amy Elsner
1013James I PerinJapan2024-04-03Commercial Press QUALIFIED70Asiya Javayant
1014Alejandro Z WieserIndia2024-04-18Printing Dimensions RENEWAL96Amy Elsner
1015Misaki U VocelkaRussia2024-04-09Chanay, Jeffrey A Esq NEW27Onyama Limba
1016Morrow Z IturbideGermany2024-04-06Chemel, James L Cpa NEGOTIATION3Onyama Limba
1017Tony X CaldareraJapan2024-04-02Chemel, James L Cpa PROPOSAL76Elwin Sharvill
1018Morrow F MorascaSpain2024-04-19King, Christopher A Esq PROPOSAL15Onyama Limba
1019Misaki Y RutaAustralia2024-04-11King, Christopher A Esq RENEWAL45Asiya Javayant
1020Juan P RoysterIndia2024-04-16Feltz Printing Service UNQUALIFIED61Ivan Magalhaes
1021Chavez R IturbideAustralia2024-04-07Dorl, James J Esq UNQUALIFIED82Elwin Sharvill
1022Mujtaba C StockhamGermany2024-04-01King, Christopher A Esq UNQUALIFIED66Stephen Shaw
1023Jeanfrancois H SchemmerIndia2024-04-05Rousseaux, Michael Esq QUALIFIED58Elwin Sharvill
1024Claire I GillianUnited Kingdom2024-04-05Dorl, James J Esq RENEWAL79Elwin Sharvill
1025Aditya O FlosiArgentina2024-04-12Truhlar And Truhlar Attys RENEWAL12Stephen Shaw
1026Julie L ButtFrance2024-04-04Benton, John B Jr NEGOTIATION16Asiya Javayant
1027Maisha C GarufiItaly2024-04-23Rousseaux, Michael Esq QUALIFIED58Ivan Magalhaes
1028Chavez Q ChuiBrazil2024-04-20Dorl, James J Esq RENEWAL39Anna Fali
1029Antonio N PerinIndia2024-04-09Truhlar And Truhlar Attys RENEWAL79Bernardo Dominic
1030Aditya D SlusarskiRussia2024-04-28Chapman, Ross E Esq QUALIFIED20Anna Fali
1031Munro F MarrierItaly2024-04-24Rangoni Of Florence NEW64Anna Fali
1032Cody K WhobreyArgentina2024-04-08Feltz Printing Service NEW70Asiya Javayant
1033Smith V RulapaughJapan2024-04-03Dorl, James J Esq RENEWAL61Ivan Magalhaes
1034Aditya I VenereAustralia2024-04-06Rousseaux, Michael Esq UNQUALIFIED66Stephen Shaw
1035Salvatore B IturbideIndia2024-04-25King, Christopher A Esq RENEWAL74Elwin Sharvill
1036Faith S FlosiJapan2024-04-02Chemel, James L Cpa NEW41Elwin Sharvill
1037Ricardo G WaycottIndia2024-03-30Morlong Associates NEGOTIATION76Elwin Sharvill
1038Smith J NickaCanada2024-04-09Chemel, James L Cpa RENEWAL32Bernardo Dominic
1039Maria F SergiFrance2024-04-18Chanay, Jeffrey A Esq NEGOTIATION74Asiya Javayant
1040Claire W FollerIndia2024-04-19Benton, John B Jr RENEWAL6Ioni Bowcher
1041James Q PerinArgentina2024-04-27Benton, John B Jr RENEWAL64Anna Fali
1042Costa S IturbideJapan2024-04-12Morlong Associates RENEWAL10Bernardo Dominic
1043Costa Y SlusarskiGermany2024-04-03Printing Dimensions UNQUALIFIED70Amy Elsner
1044Juan V FigeroaCanada2024-04-24Feltz Printing Service UNQUALIFIED80Xuxue Feng
1045Alejandro O WaycottArgentina2024-04-02Dorl, James J Esq UNQUALIFIED1Stephen Shaw
1046Murillo S GlickAustralia2024-04-06Feltz Printing Service PROPOSAL86Asiya Javayant
1047Ricardo V InouyeCanada2024-04-06Benton, John B Jr QUALIFIED3Ivan Magalhaes
1048Aruna D ChuiAustralia2024-04-15Buckley Miller Wright NEGOTIATION28Anna Fali
1049Alejandro X GarufiArgentina2024-04-25Commercial Press QUALIFIED95Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy N SlusarskiBrazilBernardo Dominic QUALIFIED
Mayumi J DoeBrazilXuxue Feng QUALIFIED
Kaitlin K ButtFranceIvan Magalhaes NEGOTIATION
Clifford U MaletGermanyAmy Elsner QUALIFIED
Kaitlin A FigeroaSpainIvan Magalhaes UNQUALIFIED
Faith Z WaycottBrazilAsiya Javayant QUALIFIED
Arvin H OldroydBrazilBernardo Dominic RENEWAL
Murillo N CaldareraFranceIoni Bowcher UNQUALIFIED
Munro K DarakjyArgentinaXuxue Feng NEW
Aditya P CampainCanadaBernardo Dominic RENEWAL
Francesco W WieserAustraliaAsiya Javayant NEGOTIATION
Tony Z CampainBrazilAnna Fali NEW
Aditya G WhobreySpainXuxue Feng NEW
Mayumi X DilliardUnited KingdomXuxue Feng NEGOTIATION
Smith D NestleRussiaAsiya Javayant UNQUALIFIED
Deepesh C IturbideCanadaAnna Fali UNQUALIFIED
Juan K ChuiUnited KingdomAmy Elsner PROPOSAL
Munro D CampainFranceAnna Fali RENEWAL
Aika C SaylorsBrazilBernardo Dominic RENEWAL
Misaki I MarrierFranceOnyama Limba NEGOTIATION
Jones D OldroydRussiaIoni Bowcher UNQUALIFIED
Tony X ButtBrazilIoni Bowcher PROPOSAL
Arvin A AlbaresRussiaElwin Sharvill RENEWAL
Smith J CaudyIndiaElwin Sharvill NEW
Ricardo V GlickArgentinaXuxue Feng RENEWAL
Mayumi L DoeGermanyBernardo Dominic QUALIFIED
Darci E RimJapanAsiya Javayant UNQUALIFIED
Tony Q OldroydGermanyAnna Fali NEW
Stacey L GillianUnited KingdomStephen Shaw UNQUALIFIED
Aruna I GlickUnited KingdomBernardo Dominic PROPOSAL
Aika O AmigonItalyElwin Sharvill QUALIFIED
Kaitlin Z WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Darci P VenereAustraliaBernardo Dominic NEGOTIATION
Murillo F SaylorsFranceStephen Shaw PROPOSAL
Stacey O InouyeItalyAsiya Javayant NEW
David T OstroskyFranceIoni Bowcher NEGOTIATION
Alejandro H MaletItalyIoni Bowcher NEGOTIATION
Greenwood M GlickArgentinaBernardo Dominic PROPOSAL
Munro S OstroskyIndiaBernardo Dominic NEW
Silvio L TollnerCanadaStephen Shaw PROPOSAL
Jones Z VocelkaBrazilIoni Bowcher PROPOSAL
Mujtaba L MorascaJapanBernardo Dominic QUALIFIED
Alejandro U FlosiRussiaStephen Shaw UNQUALIFIED
Sinclair M VenereGermanyAsiya Javayant NEGOTIATION
Aditya A GauchoSpainAmy Elsner UNQUALIFIED
Chavez X CaldareraItalyIvan Magalhaes NEGOTIATION
Jefferson Q CampainFranceXuxue Feng NEGOTIATION
Julie V FigeroaRussiaIoni Bowcher PROPOSAL
Greenwood I RutaArgentinaXuxue Feng UNQUALIFIED
Faith M CaudyGermanyXuxue Feng QUALIFIED
Frozen Columns
Name
Leon B Wieser
Claire E Garufi
Aruna M Bolognia
Faith X Stenseth
Nicolas Q Gaucho
Ashley C Shinko
Morrow P Tollner
Misaki Z Waycott
Francesco A Ruta
Kadeem U Waycott
Aika Q Shinko
Alejandro Y Rim
Nicolas Q Bolognia
Jones W Maclead
Aika Y Sergi
Emily M Perin
Silvio X Slusarski
Ashley H Nestle
Deepesh Q Dilliard
James H Figeroa
James S Sergi
Adams G Chui
Alejandro M Flosi
Ivar H Venere
Johnson O Slusarski
Antonio E Kolmetz
Murillo B Campain
Wickens H Saylors
Kadeem S Kusko
Munro Z Ruta
Stacey D Saylors
Leja C Inouye
Faith Y Doe
Leon I Foller
Smith W Inouye
Misaki B Bowley
Francesco R Maclead
Aruna C Royster
David H Vocelka
Maria S Maclead
Jones J Gillian
Faith Y Butt
Greenwood U Rim
Francesco J Slusarski
Octavia O Malet
Johnson Q Figeroa
Nicolas M Garufi
Jones U Ostrosky
Mujtaba F Figeroa
Julie J Saylors
IdCountryDate
1000Italy2024-04-19
1001Canada2024-04-26
1002Italy2024-04-07
1003Japan2024-04-26
1004Spain2024-04-01
1005Germany2024-04-18
1006Japan2024-04-17
1007Germany2024-04-19
1008Germany2024-04-12
1009Australia2024-04-05
1010Canada2024-04-14
1011India2024-04-18
1012Spain2024-04-25
1013France2024-04-20
1014India2024-04-01
1015Spain2024-04-28
1016India2024-04-17
1017Italy2024-04-20
1018France2024-04-27
1019Germany2024-04-26
1020Russia2024-04-04
1021India2024-04-18
1022Argentina2024-04-15
1023Brazil2024-04-17
1024Germany2024-03-30
1025India2024-04-02
1026Russia2024-04-15
1027India2024-04-09
1028Argentina2024-04-20
1029France2024-04-24
1030Spain2024-04-08
1031Spain2024-04-10
1032Japan2024-04-21
1033Russia2024-04-13
1034Japan2024-04-11
1035Argentina2024-04-15
1036United Kingdom2024-04-27
1037France2024-03-30
1038Brazil2024-04-23
1039India2024-04-14
1040Brazil2024-04-14
1041Australia2024-04-23
1042Italy2024-04-06
1043United Kingdom2024-04-25
1044France2024-04-10
1045Japan2024-04-21
1046India2024-04-23
1047India2024-03-30
1048France2024-04-15
1049Brazil2024-04-07

On-Demand Data

NameIdCountryDate
Aika K Bolognia1000Argentina2024-04-17
Ashley V Caudy1001Italy2024-04-25
Juan K Morasca1002Germany2024-03-31
Maisha A Butt1003Brazil2024-04-13
Ricardo G Bolognia1004Italy2024-04-17
Cody W Poquette1005Canada2024-04-25
Nicolas I Ruta1006Russia2024-04-09
Antonio A Sergi1007Argentina2024-04-13
Ricardo I Campain1008Spain2024-04-20
Jefferson Q Stockham1009India2024-04-12
Wickens B Gaucho1010Italy2024-04-21
Arvin F Foller1011Japan2024-04-14
Arvin A Oldroyd1012Australia2024-04-18
Mujtaba U Sergi1013United Kingdom2024-04-03
Rodrigues H Schemmer1014Brazil2024-04-14
Costa K Nicka1015Spain2024-04-11
Alejandro W Caldarera1016United Kingdom2024-04-06
Nicolas N Kusko1017United Kingdom2024-04-17
Sinclair X Flosi1018Australia2024-04-26
Ricardo E Poquette1019Russia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie X KuskoFranceElwin Sharvill PROPOSAL
David S RimJapanElwin Sharvill QUALIFIED
Kadeem D DarakjyJapanIvan Magalhaes NEGOTIATION
Mayumi O AmigonItalyOnyama Limba NEW
Aika S NestleGermanyStephen Shaw NEGOTIATION
Smith C CaudyBrazilIoni Bowcher QUALIFIED
Jennifer R VenereItalyAnna Fali PROPOSAL
Julie N TollnerCanadaOnyama Limba QUALIFIED
Clifford P BologniaJapanElwin Sharvill NEGOTIATION
Antonio X StensethSpainBernardo Dominic RENEWAL
Ashley M WieserCanadaElwin Sharvill NEW
Mujtaba R BriddickUnited KingdomAmy Elsner PROPOSAL
Aruna Z IturbideArgentinaIvan Magalhaes QUALIFIED
Sinclair V CaudyIndiaElwin Sharvill PROPOSAL
Maisha C SlusarskiRussiaAnna Fali NEGOTIATION
Greenwood A PerinIndiaIvan Magalhaes PROPOSAL
Tony J SchemmerJapanIoni Bowcher RENEWAL
Kadeem X RutaGermanyIvan Magalhaes QUALIFIED
Misaki T TollnerArgentinaOnyama Limba RENEWAL
Tony P RoysterFranceOnyama Limba NEW
David Y FigeroaJapanIvan Magalhaes QUALIFIED
Greenwood E ButtItalyStephen Shaw QUALIFIED
Aika V RutaCanadaXuxue Feng PROPOSAL
Stacey I MaletCanadaIvan Magalhaes PROPOSAL
Salvatore A VocelkaIndiaAsiya Javayant NEW
Antonio L PaprockiRussiaXuxue Feng PROPOSAL
Isabel D RoysterArgentinaElwin Sharvill PROPOSAL
Cody Q NestleRussiaAnna Fali UNQUALIFIED
Aditya I DoeBrazilXuxue Feng NEW
Claire V NickaRussiaAnna Fali PROPOSAL
Mayumi V KolmetzGermanyOnyama Limba UNQUALIFIED
Stacey L VenereSpainOnyama Limba NEW
Mujtaba R OstroskyCanadaBernardo Dominic NEGOTIATION
Kaitlin W PoquetteIndiaIvan Magalhaes UNQUALIFIED
Misaki N FerenczArgentinaElwin Sharvill PROPOSAL
Ashley I FlosiArgentinaElwin Sharvill NEGOTIATION
Aika V SergiArgentinaStephen Shaw QUALIFIED
Misaki E TollnerSpainIoni Bowcher NEGOTIATION
Ashley B NestleJapanBernardo Dominic UNQUALIFIED
Deepesh M WieserJapanXuxue Feng PROPOSAL

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