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
David X WhobreyJapanElwin Sharvill PROPOSAL
Ricardo T DoeJapanIvan Magalhaes QUALIFIED
Nicolas W AlbaresUnited KingdomOnyama Limba QUALIFIED
Jennifer I RutaIndiaXuxue Feng NEW
Rodrigues L TollnerBrazilXuxue Feng NEGOTIATION
Maria Y WieserGermanyElwin Sharvill NEW
Adams O MacleadBrazilOnyama Limba QUALIFIED
Munro D CampainSpainElwin Sharvill UNQUALIFIED
Jones X VenereItalyOnyama Limba UNQUALIFIED
Aruna A RulapaughItalyAsiya Javayant NEGOTIATION
Jeanfrancois Q RulapaughBrazilOnyama Limba UNQUALIFIED
Kadeem Z MacleadBrazilAnna Fali PROPOSAL
Murillo O AlbaresFranceAsiya Javayant NEW
Kadeem I MaletCanadaElwin Sharvill NEW
Murillo Q FlosiSpainOnyama Limba UNQUALIFIED
Ashley F GillianAustraliaStephen Shaw QUALIFIED
Aruna B BriddickUnited KingdomIvan Magalhaes QUALIFIED
Juan G StensethUnited KingdomAmy Elsner QUALIFIED
Alejandro F MorascaSpainOnyama Limba UNQUALIFIED
Nicolas M TollnerRussiaIoni Bowcher NEGOTIATION
Octavia R VocelkaSpainAnna Fali UNQUALIFIED
Ivar X FlosiRussiaAmy Elsner NEGOTIATION
Alejandro U FerenczUnited KingdomXuxue Feng UNQUALIFIED
Tony D SaylorsFranceBernardo Dominic QUALIFIED
Mujtaba R AmigonIndiaBernardo Dominic NEW
Stacey T BologniaSpainIoni Bowcher RENEWAL
Chavez A MarrierSpainIoni Bowcher RENEWAL
Wickens K SergiItalyElwin Sharvill NEGOTIATION
Clifford N DilliardUnited KingdomIoni Bowcher NEW
Johnson T CaudyBrazilElwin Sharvill RENEWAL
Antonio Z WhobreyJapanOnyama Limba PROPOSAL
Julie E SergiAustraliaOnyama Limba NEW
Aruna V NickaFranceOnyama Limba QUALIFIED
Jones R MacleadBrazilIvan Magalhaes RENEWAL
Darci V PoquetteItalyIoni Bowcher UNQUALIFIED
Leja E PerinIndiaOnyama Limba NEW
Misaki K CampainFranceOnyama Limba PROPOSAL
Rodrigues V ShinkoRussiaIoni Bowcher RENEWAL
Claire N RoysterArgentinaElwin Sharvill QUALIFIED
Sinclair R AlbaresCanadaStephen Shaw PROPOSAL
Deepesh X NestleFranceOnyama Limba NEGOTIATION
Antonio T BriddickJapanAmy Elsner RENEWAL
Jeanfrancois U VocelkaGermanyXuxue Feng QUALIFIED
Jeanfrancois J PaprockiCanadaOnyama Limba QUALIFIED
Leja D MaletRussiaAnna Fali UNQUALIFIED
Juan D IturbideIndiaAnna Fali QUALIFIED
Johnson C SergiSpainAmy Elsner QUALIFIED
Julie U InouyeUnited KingdomOnyama Limba UNQUALIFIED
Greenwood T GlickJapanXuxue Feng NEW
Ashley R RutaJapanElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Tony K FerenczFranceOnyama Limba NEGOTIATION
Adams W OldroydFranceAmy Elsner PROPOSAL
Johnson H DoeUnited KingdomAmy Elsner RENEWAL
Arvin W BowleyItalyXuxue Feng NEGOTIATION
Costa M KolmetzFranceAnna Fali UNQUALIFIED
Aruna D KolmetzJapanXuxue Feng UNQUALIFIED
Greenwood C RimGermanyAnna Fali RENEWAL
Jones R OstroskyRussiaBernardo Dominic QUALIFIED
Jeanfrancois L FollerArgentinaIvan Magalhaes NEGOTIATION
Morrow W GillianRussiaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Y PoquetteAustralia2024-04-14Feiner Bros NEW55Bernardo Dominic
1001Greenwood C InouyeCanada2024-04-01Feltz Printing Service QUALIFIED43Stephen Shaw
1002Cody Z VenereArgentina2024-04-20Dorl, James J Esq NEW98Stephen Shaw
1003David S GauchoJapan2024-04-17Dorl, James J Esq PROPOSAL48Onyama Limba
1004Rodrigues O NestleCanada2024-03-31Rousseaux, Michael Esq PROPOSAL86Stephen Shaw
1005Isabel E MacleadSpain2024-04-20Truhlar And Truhlar Attys RENEWAL32Asiya Javayant
1006Francesco P BriddickUnited Kingdom2024-04-17Commercial Press UNQUALIFIED84Elwin Sharvill
1007Ashley W MorascaIndia2024-04-15Chemel, James L Cpa PROPOSAL60Asiya Javayant
1008Costa T KuskoSpain2024-04-24Morlong Associates UNQUALIFIED80Amy Elsner
1009Izzy D SlusarskiArgentina2024-04-12Feltz Printing Service QUALIFIED41Ivan Magalhaes
1010Silvio V DarakjyFrance2024-04-23Printing Dimensions PROPOSAL19Ioni Bowcher
1011Ricardo E AlbaresArgentina2024-04-22Feltz Printing Service UNQUALIFIED0Elwin Sharvill
1012Smith Q MorascaBrazil2024-04-16Rangoni Of Florence RENEWAL20Anna Fali
1013Ashley Z RutaJapan2024-04-10Rangoni Of Florence PROPOSAL8Asiya Javayant
1014Silvio T DilliardFrance2024-03-31Buckley Miller Wright RENEWAL40Bernardo Dominic
1015Claire A PaprockiIndia2024-04-01Buckley Miller Wright NEW36Onyama Limba
1016David E ShinkoArgentina2024-04-12Printing Dimensions UNQUALIFIED50Anna Fali
1017Faith K NestleSpain2024-04-01Buckley Miller Wright UNQUALIFIED77Bernardo Dominic
1018Johnson K VocelkaFrance2024-04-28Benton, John B Jr QUALIFIED63Xuxue Feng
1019Deepesh Y CaldareraSpain2024-04-28Feltz Printing Service UNQUALIFIED10Onyama Limba
1020Kaitlin H CaudyCanada2024-04-12Benton, John B Jr QUALIFIED92Stephen Shaw
1021Munro O VenereJapan2024-04-12Chanay, Jeffrey A Esq NEW95Elwin Sharvill
1022Leon T BologniaUnited Kingdom2024-04-28Rangoni Of Florence RENEWAL48Xuxue Feng
1023Jeanfrancois U WieserItaly2024-04-03King, Christopher A Esq NEGOTIATION89Ioni Bowcher
1024Costa F SchemmerItaly2024-04-26Dorl, James J Esq UNQUALIFIED44Elwin Sharvill
1025Aditya T VocelkaArgentina2024-03-31Feiner Bros NEW24Asiya Javayant
1026Munro N MaletJapan2024-04-23Dorl, James J Esq NEGOTIATION31Elwin Sharvill
1027Ricardo M GlickJapan2024-04-24Buckley Miller Wright NEGOTIATION2Anna Fali
1028Morrow Y MaletCanada2024-04-01Rangoni Of Florence QUALIFIED76Anna Fali
1029Stacey O FlosiItaly2024-04-11King, Christopher A Esq NEW95Stephen Shaw
1030Morrow E KuskoAustralia2024-04-25Feiner Bros PROPOSAL26Elwin Sharvill
1031Wickens U VocelkaCanada2024-04-18Feltz Printing Service NEW26Bernardo Dominic
1032Aruna I GillianItaly2024-04-01King, Christopher A Esq UNQUALIFIED67Xuxue Feng
1033Jefferson G RulapaughFrance2024-04-13King, Christopher A Esq NEW78Xuxue Feng
1034Aditya J BologniaSpain2024-04-10Printing Dimensions UNQUALIFIED10Bernardo Dominic
1035Emily V BowleySpain2024-04-13King, Christopher A Esq QUALIFIED11Anna Fali
1036Clifford T VocelkaGermany2024-04-25Chemel, James L Cpa UNQUALIFIED29Xuxue Feng
1037Tony K FlosiGermany2024-04-08Rangoni Of Florence NEW55Anna Fali
1038Emily B GillianItaly2024-04-17Morlong Associates PROPOSAL66Amy Elsner
1039James T CaldareraArgentina2024-04-29Morlong Associates UNQUALIFIED86Ioni Bowcher
1040Kaitlin M CampainJapan2024-04-25Chemel, James L Cpa NEGOTIATION80Elwin Sharvill
1041David W ShinkoAustralia2024-04-24Dorl, James J Esq QUALIFIED24Anna Fali
1042Mujtaba E WhobreyBrazil2024-04-19Morlong Associates NEW50Xuxue Feng
1043Julie H MarrierFrance2024-04-28Dorl, James J Esq QUALIFIED17Stephen Shaw
1044Rodrigues E BriddickCanada2024-04-11Feiner Bros UNQUALIFIED15Stephen Shaw
1045Mujtaba C CaldareraRussia2024-04-05Rousseaux, Michael Esq QUALIFIED55Anna Fali
1046Maisha E SaylorsFrance2024-04-22Morlong Associates RENEWAL20Amy Elsner
1047Maria C RimUnited Kingdom2024-04-23Dorl, James J Esq RENEWAL57Onyama Limba
1048David Q BowleyIndia2024-04-12Commercial Press NEGOTIATION40Ioni Bowcher
1049Clifford A WhobreyUnited Kingdom2024-04-24Printing Dimensions PROPOSAL97Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues H StockhamRussiaOnyama Limba NEGOTIATION
Aruna Q RulapaughArgentinaIoni Bowcher UNQUALIFIED
Greenwood K GillianBrazilIoni Bowcher NEGOTIATION
Cody V KuskoItalyBernardo Dominic UNQUALIFIED
Kaitlin W InouyeFranceIvan Magalhaes NEGOTIATION
Isabel F FlosiIndiaIoni Bowcher RENEWAL
Jones I NickaIndiaAnna Fali NEW
David S KuskoJapanAnna Fali UNQUALIFIED
Ivar B SlusarskiRussiaAsiya Javayant RENEWAL
Francesco D MaletRussiaAsiya Javayant UNQUALIFIED
Chavez C MacleadGermanyOnyama Limba NEGOTIATION
Murillo Z AlbaresAustraliaStephen Shaw NEW
Darci M MaletSpainAnna Fali QUALIFIED
Greenwood G ChuiUnited KingdomAmy Elsner UNQUALIFIED
James G FigeroaArgentinaElwin Sharvill QUALIFIED
Clifford E ShinkoAustraliaElwin Sharvill RENEWAL
Johnson Q FigeroaGermanyAmy Elsner RENEWAL
Alejandro H WaycottIndiaIvan Magalhaes NEGOTIATION
David H RimCanadaIvan Magalhaes QUALIFIED
Octavia X KuskoFranceStephen Shaw PROPOSAL
Julie A VenereJapanAnna Fali NEW
Nicolas T VenereGermanyAsiya Javayant NEGOTIATION
Izzy D VocelkaSpainIoni Bowcher NEGOTIATION
Salvatore Q DoeIndiaOnyama Limba RENEWAL
Francesco T PaprockiBrazilAmy Elsner UNQUALIFIED
Greenwood H ButtCanadaIvan Magalhaes NEW
Izzy E StockhamGermanyIvan Magalhaes QUALIFIED
Octavia K OstroskyBrazilElwin Sharvill NEGOTIATION
Leon L WieserSpainBernardo Dominic PROPOSAL
Deepesh J IturbideIndiaAnna Fali PROPOSAL
Maisha V WaycottJapanElwin Sharvill RENEWAL
Izzy S FerenczSpainOnyama Limba NEW
Jeanfrancois E VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Claire H WieserFranceElwin Sharvill QUALIFIED
Salvatore B SergiCanadaElwin Sharvill UNQUALIFIED
Arvin Y StockhamRussiaXuxue Feng NEW
Deepesh T StockhamIndiaAmy Elsner NEW
Leja G SaylorsFranceXuxue Feng QUALIFIED
Emily K GlickItalyStephen Shaw PROPOSAL
Nicolas L GillianCanadaOnyama Limba UNQUALIFIED
Greenwood W MacleadUnited KingdomAsiya Javayant PROPOSAL
Jones G SergiSpainElwin Sharvill QUALIFIED
Claire T PoquetteSpainIoni Bowcher RENEWAL
Leon W AlbaresBrazilAmy Elsner NEGOTIATION
David M CaldareraArgentinaElwin Sharvill UNQUALIFIED
Silvio T RoysterUnited KingdomAsiya Javayant QUALIFIED
Jefferson B StockhamItalyElwin Sharvill NEGOTIATION
Ivar G FollerRussiaBernardo Dominic NEGOTIATION
Ashley H DarakjyItalyOnyama Limba NEGOTIATION
Octavia N SlusarskiCanadaIoni Bowcher NEW
Frozen Columns
Name
Ricardo U Sergi
Izzy C Maclead
Stacey I Dilliard
Emily X Flosi
Stacey D Schemmer
Leja W Slusarski
Cody Q Briddick
Jefferson Q Tollner
Antonio T Dilliard
Maria E Kusko
Nicolas J Bowley
Costa C Kusko
Adams I Morasca
Francesco O Iturbide
Aika N Wieser
James T Ferencz
Cody B Nestle
Isabel T Paprocki
Juan O Schemmer
Emily B Royster
Aika H Marrier
Jennifer L Malet
Silvio K Waycott
Octavia S Nestle
Tony H Slusarski
Deepesh E Malet
Jennifer C Poquette
Maisha B Perin
Misaki K Kolmetz
Aika O Kolmetz
David L Ruta
Johnson B Amigon
Aika N Doe
Aditya T Waycott
Emily B Maclead
Maisha Y Amigon
Rodrigues G Briddick
Arvin R Figeroa
Kadeem Z Gaucho
Jennifer F Paprocki
Tony T Gillian
Mujtaba C Rulapaugh
Cody G Morasca
Murillo P Nicka
Ashley X Ferencz
Ricardo I Rim
Sinclair G Foller
Munro Y Inouye
David V Briddick
Aruna Q Bolognia
IdCountryDate
1000Russia2024-04-12
1001Spain2024-04-13
1002Canada2024-04-23
1003Germany2024-04-28
1004United Kingdom2024-03-31
1005Brazil2024-04-11
1006Japan2024-04-22
1007Canada2024-04-05
1008United Kingdom2024-04-26
1009Spain2024-04-28
1010India2024-04-05
1011Australia2024-04-11
1012United Kingdom2024-04-19
1013Italy2024-04-27
1014Canada2024-04-29
1015Spain2024-04-09
1016France2024-04-10
1017Spain2024-04-21
1018United Kingdom2024-04-15
1019Japan2024-04-07
1020France2024-04-22
1021Canada2024-04-10
1022Italy2024-04-06
1023Germany2024-04-01
1024United Kingdom2024-04-25
1025Japan2024-03-31
1026Australia2024-04-12
1027Germany2024-04-28
1028Japan2024-04-22
1029Italy2024-04-01
1030Japan2024-04-22
1031Canada2024-04-12
1032United Kingdom2024-04-06
1033United Kingdom2024-04-07
1034France2024-04-08
1035Russia2024-04-25
1036Argentina2024-04-14
1037United Kingdom2024-04-16
1038Canada2024-04-08
1039Australia2024-03-31
1040Australia2024-04-01
1041Brazil2024-04-07
1042United Kingdom2024-04-06
1043India2024-04-17
1044Japan2024-04-18
1045Italy2024-04-24
1046Spain2024-04-15
1047Argentina2024-04-26
1048Australia2024-04-28
1049Japan2024-04-14

On-Demand Data

NameIdCountryDate
Octavia L Vocelka1000Italy2024-04-18
Alejandro T Rim1001France2024-04-28
Costa R Foller1002Canada2024-04-15
Johnson E Shinko1003Spain2024-04-22
Faith X Whobrey1004Italy2024-04-02
Murillo K Morasca1005Italy2024-04-17
Alejandro W Chui1006Japan2024-04-03
Kadeem G Briddick1007Australia2024-04-23
Rodrigues J Amigon1008Russia2024-04-12
Kadeem H Gillian1009Russia2024-04-13
Jones P Tollner1010Russia2024-04-24
Aika W Stockham1011France2024-04-06
Tony P Kusko1012Russia2024-04-16
Chavez M Perin1013United Kingdom2024-04-17
Misaki H Ruta1014Italy2024-04-15
Sinclair R Whobrey1015Australia2024-04-14
Mayumi R Figeroa1016Argentina2024-04-29
Wickens E Ruta1017India2024-04-18
Jennifer W Bolognia1018France2024-04-04
Morrow J Saylors1019France2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki T RoysterJapanOnyama Limba QUALIFIED
David S StockhamArgentinaIvan Magalhaes QUALIFIED
Kaitlin U SaylorsSpainXuxue Feng NEGOTIATION
Maria U SchemmerItalyAnna Fali UNQUALIFIED
Kaitlin U GarufiRussiaBernardo Dominic UNQUALIFIED
Jones G CampainGermanyIoni Bowcher NEGOTIATION
Aruna W StensethBrazilBernardo Dominic QUALIFIED
Jefferson S KolmetzCanadaElwin Sharvill PROPOSAL
David E MarrierRussiaElwin Sharvill NEGOTIATION
Sinclair N DilliardAustraliaIvan Magalhaes QUALIFIED
Arvin E SchemmerBrazilXuxue Feng QUALIFIED
Ricardo W PerinAustraliaElwin Sharvill PROPOSAL
Mujtaba C PerinItalyAmy Elsner NEW
Smith C SchemmerFranceOnyama Limba PROPOSAL
David R GarufiFranceIoni Bowcher UNQUALIFIED
Ricardo U OstroskyJapanBernardo Dominic RENEWAL
Kadeem H PoquetteGermanyElwin Sharvill PROPOSAL
Ashley S TollnerSpainElwin Sharvill PROPOSAL
Maisha K KuskoAustraliaBernardo Dominic QUALIFIED
Tony M FollerBrazilStephen Shaw QUALIFIED
Greenwood B VenereAustraliaXuxue Feng PROPOSAL
Emily O PaprockiRussiaStephen Shaw UNQUALIFIED
Jeanfrancois B ButtBrazilIvan Magalhaes RENEWAL
Isabel P NickaFranceElwin Sharvill PROPOSAL
Francesco R SergiUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois W PoquetteArgentinaStephen Shaw PROPOSAL
Murillo D OstroskyRussiaXuxue Feng QUALIFIED
Aika H KuskoAustraliaAsiya Javayant PROPOSAL
Ashley H RoysterGermanyXuxue Feng RENEWAL
Murillo F OstroskySpainIoni Bowcher PROPOSAL
Murillo A OldroydArgentinaAsiya Javayant QUALIFIED
Izzy V SlusarskiRussiaAmy Elsner RENEWAL
Claire S RutaCanadaXuxue Feng PROPOSAL
James P MaletBrazilStephen Shaw PROPOSAL
Mayumi N NickaItalyAnna Fali UNQUALIFIED
Ivar A GarufiFranceOnyama Limba RENEWAL
Francesco P ShinkoBrazilIvan Magalhaes PROPOSAL
Alejandro D InouyeBrazilXuxue Feng UNQUALIFIED
Murillo K OldroydAustraliaStephen Shaw PROPOSAL
Arvin D VocelkaUnited KingdomAnna Fali 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>