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
Francesco P InouyeCanadaXuxue Feng NEGOTIATION
Antonio V RimArgentinaIvan Magalhaes PROPOSAL
Ricardo A SlusarskiJapanAnna Fali PROPOSAL
Ivar V ChuiBrazilIvan Magalhaes NEW
Leon G GlickRussiaIoni Bowcher NEGOTIATION
David C VocelkaJapanOnyama Limba UNQUALIFIED
Claire G BriddickFranceIvan Magalhaes NEW
Stacey E MorascaBrazilOnyama Limba NEGOTIATION
Greenwood S WieserArgentinaAsiya Javayant NEGOTIATION
Silvio E RulapaughCanadaIoni Bowcher NEW
James V FigeroaAustraliaAsiya Javayant PROPOSAL
Isabel P StockhamSpainAnna Fali RENEWAL
Johnson M MorascaAustraliaIoni Bowcher PROPOSAL
Antonio H WhobreyGermanyAmy Elsner NEGOTIATION
Jones B PoquetteIndiaXuxue Feng UNQUALIFIED
Mayumi R MaletIndiaStephen Shaw NEW
Murillo J AmigonArgentinaOnyama Limba RENEWAL
Tony U PoquetteUnited KingdomBernardo Dominic RENEWAL
Faith M FlosiIndiaAnna Fali NEGOTIATION
Misaki T WhobreyGermanyElwin Sharvill RENEWAL
Francesco K IturbideSpainAmy Elsner NEW
Tony A RimUnited KingdomAnna Fali UNQUALIFIED
Silvio X PerinCanadaAnna Fali NEW
Darci R FerenczFranceBernardo Dominic PROPOSAL
Smith K DoeRussiaAnna Fali RENEWAL
Tony F FollerBrazilAsiya Javayant PROPOSAL
Silvio B GlickItalyBernardo Dominic RENEWAL
Kaitlin X FerenczFranceIvan Magalhaes NEGOTIATION
Jeanfrancois L SaylorsItalyXuxue Feng UNQUALIFIED
Johnson D NickaIndiaXuxue Feng PROPOSAL
Darci A SaylorsUnited KingdomBernardo Dominic NEW
Stacey C GlickBrazilIvan Magalhaes PROPOSAL
Cody V AlbaresRussiaAmy Elsner RENEWAL
Francesco I SchemmerItalyOnyama Limba QUALIFIED
Isabel P DilliardCanadaStephen Shaw UNQUALIFIED
Stacey B KuskoUnited KingdomAnna Fali NEGOTIATION
Greenwood I VocelkaRussiaStephen Shaw QUALIFIED
Claire X GarufiJapanElwin Sharvill QUALIFIED
Ricardo B CaldareraCanadaBernardo Dominic UNQUALIFIED
Aika I IturbideAustraliaAmy Elsner UNQUALIFIED
Antonio P AmigonArgentinaElwin Sharvill NEGOTIATION
Leja H MaletIndiaXuxue Feng RENEWAL
Smith P StockhamUnited KingdomXuxue Feng NEGOTIATION
Leon O GillianAustraliaXuxue Feng RENEWAL
Arvin C CaudyFranceStephen Shaw QUALIFIED
David W PaprockiSpainBernardo Dominic RENEWAL
Murillo A BriddickIndiaIoni Bowcher RENEWAL
Isabel O FigeroaArgentinaIvan Magalhaes PROPOSAL
Julie G KolmetzFranceOnyama Limba NEGOTIATION
Aruna J NestleSpainXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin G PoquetteFranceElwin Sharvill NEW
Jefferson X FigeroaGermanyAsiya Javayant QUALIFIED
Morrow H KuskoAustraliaAnna Fali UNQUALIFIED
Morrow M KolmetzIndiaIvan Magalhaes RENEWAL
Munro U KuskoFranceAnna Fali RENEWAL
Kaitlin J MaletFranceElwin Sharvill UNQUALIFIED
Silvio R KuskoArgentinaAnna Fali NEGOTIATION
Rodrigues L StockhamItalyElwin Sharvill NEW
Chavez C GarufiArgentinaAmy Elsner RENEWAL
Maisha K TollnerRussiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo U AlbaresJapan2024-04-15Rangoni Of Florence NEGOTIATION89Elwin Sharvill
1001Cody E MacleadRussia2024-04-09Benton, John B Jr QUALIFIED12Ioni Bowcher
1002Morrow F KolmetzArgentina2024-04-08Benton, John B Jr NEGOTIATION24Amy Elsner
1003Salvatore B FollerSpain2024-04-14Truhlar And Truhlar Attys PROPOSAL30Elwin Sharvill
1004Emily X ShinkoAustralia2024-04-15Buckley Miller Wright NEGOTIATION85Ivan Magalhaes
1005Jeanfrancois C BriddickFrance2024-04-29Truhlar And Truhlar Attys UNQUALIFIED97Bernardo Dominic
1006David W PerinArgentina2024-04-09Truhlar And Truhlar Attys PROPOSAL69Xuxue Feng
1007Isabel Y DilliardSpain2024-04-27Printing Dimensions NEGOTIATION7Amy Elsner
1008James F FerenczBrazil2024-04-15Dorl, James J Esq QUALIFIED42Onyama Limba
1009Jones X InouyeCanada2024-04-27Printing Dimensions PROPOSAL30Amy Elsner
1010Faith M WaycottArgentina2024-04-20Buckley Miller Wright RENEWAL37Bernardo Dominic
1011Emily V RutaGermany2024-04-08Benton, John B Jr NEGOTIATION85Stephen Shaw
1012Adams N PerinGermany2024-04-29Commercial Press NEW10Amy Elsner
1013Murillo D KolmetzBrazil2024-04-23King, Christopher A Esq NEW59Amy Elsner
1014Salvatore B RulapaughJapan2024-04-29Rousseaux, Michael Esq QUALIFIED46Ioni Bowcher
1015Arvin R FlosiGermany2024-04-20Morlong Associates RENEWAL82Elwin Sharvill
1016Greenwood R ShinkoBrazil2024-04-23Feltz Printing Service NEW9Ioni Bowcher
1017Emily L ShinkoIndia2024-04-02Chemel, James L Cpa RENEWAL10Stephen Shaw
1018Jeanfrancois K AlbaresItaly2024-04-08Commercial Press UNQUALIFIED22Bernardo Dominic
1019Juan I AlbaresItaly2024-04-23Truhlar And Truhlar Attys UNQUALIFIED46Ioni Bowcher
1020Francesco Z DoeRussia2024-04-10Dorl, James J Esq NEGOTIATION67Elwin Sharvill
1021Morrow M StockhamFrance2024-04-23Commercial Press UNQUALIFIED4Elwin Sharvill
1022James Y PaprockiFrance2024-04-07Truhlar And Truhlar Attys RENEWAL57Anna Fali
1023Ivar K StensethUnited Kingdom2024-04-21Benton, John B Jr QUALIFIED60Stephen Shaw
1024Claire C IturbideSpain2024-04-15Rousseaux, Michael Esq PROPOSAL3Asiya Javayant
1025Jefferson Y AmigonArgentina2024-04-24Truhlar And Truhlar Attys NEW68Asiya Javayant
1026Stacey T VocelkaGermany2024-04-05Benton, John B Jr PROPOSAL53Onyama Limba
1027Wickens E GauchoRussia2024-04-26Dorl, James J Esq RENEWAL26Asiya Javayant
1028Maria M ShinkoArgentina2024-04-01Rangoni Of Florence RENEWAL83Asiya Javayant
1029Smith D NestleGermany2024-04-14Chapman, Ross E Esq NEGOTIATION80Onyama Limba
1030Morrow T ShinkoRussia2024-04-25Rousseaux, Michael Esq NEW97Amy Elsner
1031Octavia D NickaArgentina2024-04-29Chanay, Jeffrey A Esq UNQUALIFIED68Amy Elsner
1032Munro V ShinkoUnited Kingdom2024-04-07Buckley Miller Wright UNQUALIFIED17Anna Fali
1033Wickens I VenereAustralia2024-04-24Buckley Miller Wright RENEWAL13Asiya Javayant
1034Rodrigues A StensethRussia2024-04-25Feltz Printing Service UNQUALIFIED22Onyama Limba
1035Izzy X WaycottCanada2024-04-12Benton, John B Jr NEGOTIATION61Asiya Javayant
1036Deepesh H PoquetteGermany2024-04-11Benton, John B Jr RENEWAL52Amy Elsner
1037Jeanfrancois U ChuiGermany2024-04-13Feiner Bros RENEWAL48Stephen Shaw
1038Emily O PoquetteBrazil2024-04-01Rangoni Of Florence UNQUALIFIED28Asiya Javayant
1039Arvin I FigeroaAustralia2024-04-04Buckley Miller Wright QUALIFIED45Anna Fali
1040Kadeem Y SaylorsUnited Kingdom2024-04-12King, Christopher A Esq PROPOSAL21Ioni Bowcher
1041Izzy Z DarakjyRussia2024-04-16Rangoni Of Florence NEGOTIATION18Xuxue Feng
1042Jones A DarakjyRussia2024-04-27Benton, John B Jr PROPOSAL1Ivan Magalhaes
1043Isabel Z SergiGermany2024-04-06Commercial Press QUALIFIED35Asiya Javayant
1044Arvin D MaletSpain2024-04-24King, Christopher A Esq UNQUALIFIED92Ivan Magalhaes
1045Faith T SaylorsAustralia2024-04-01Truhlar And Truhlar Attys UNQUALIFIED47Stephen Shaw
1046Silvio K MarrierAustralia2024-04-10Buckley Miller Wright UNQUALIFIED33Amy Elsner
1047Faith W StensethGermany2024-04-20Benton, John B Jr RENEWAL36Xuxue Feng
1048Aruna J PoquetteSpain2024-04-05Feltz Printing Service NEGOTIATION1Anna Fali
1049Ivar K VenereBrazil2024-04-02Chanay, Jeffrey A Esq NEW43Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Adams Y KuskoCanadaBernardo Dominic RENEWAL
Mayumi B FlosiUnited KingdomOnyama Limba UNQUALIFIED
Greenwood H MarrierItalyBernardo Dominic UNQUALIFIED
Wickens M PaprockiFranceBernardo Dominic PROPOSAL
Antonio F MaletIndiaBernardo Dominic NEGOTIATION
Jennifer C InouyeJapanBernardo Dominic PROPOSAL
Stacey G GarufiItalyIoni Bowcher PROPOSAL
Juan V DarakjyGermanyXuxue Feng NEGOTIATION
Chavez C GarufiIndiaElwin Sharvill PROPOSAL
Emily B DilliardAustraliaIvan Magalhaes RENEWAL
Chavez I PoquetteUnited KingdomStephen Shaw PROPOSAL
Antonio W NickaItalyIvan Magalhaes QUALIFIED
Adams R GauchoFranceXuxue Feng QUALIFIED
Darci E ChuiGermanyIvan Magalhaes QUALIFIED
Kadeem I AmigonSpainAsiya Javayant RENEWAL
Alejandro W FlosiJapanElwin Sharvill NEW
Salvatore X DoeFranceBernardo Dominic RENEWAL
Faith O RoysterBrazilOnyama Limba PROPOSAL
Emily T MacleadAustraliaStephen Shaw UNQUALIFIED
Smith T ChuiCanadaIvan Magalhaes NEW
Greenwood Z CaldareraIndiaStephen Shaw NEGOTIATION
Greenwood E MacleadUnited KingdomOnyama Limba QUALIFIED
Ricardo C GarufiRussiaXuxue Feng NEGOTIATION
Rodrigues P WieserIndiaOnyama Limba UNQUALIFIED
Octavia C InouyeIndiaElwin Sharvill RENEWAL
David N IturbideBrazilAmy Elsner UNQUALIFIED
Adams S OldroydFranceIoni Bowcher QUALIFIED
Claire L FigeroaSpainIoni Bowcher QUALIFIED
Izzy S BowleyBrazilStephen Shaw NEW
Aditya J OstroskyFranceAnna Fali NEW
Greenwood Z GauchoArgentinaBernardo Dominic QUALIFIED
Aditya W TollnerIndiaAsiya Javayant NEGOTIATION
Cody U GlickBrazilIvan Magalhaes NEW
Wickens O CaudyBrazilAmy Elsner NEGOTIATION
Greenwood V WieserGermanyStephen Shaw QUALIFIED
Chavez N FigeroaCanadaIoni Bowcher NEW
Octavia Y StockhamFranceAmy Elsner NEGOTIATION
Mayumi Q MorascaUnited KingdomIoni Bowcher NEGOTIATION
Jones Z InouyeRussiaElwin Sharvill QUALIFIED
Izzy P DilliardBrazilAmy Elsner PROPOSAL
Darci E NickaIndiaAnna Fali PROPOSAL
Morrow C SchemmerItalyStephen Shaw RENEWAL
Izzy R NestleItalyStephen Shaw UNQUALIFIED
Leon D VenereJapanStephen Shaw RENEWAL
Clifford Z OstroskyIndiaIoni Bowcher NEW
Misaki Q MarrierJapanXuxue Feng UNQUALIFIED
Silvio R KuskoUnited KingdomIvan Magalhaes RENEWAL
Tony H MarrierUnited KingdomAnna Fali UNQUALIFIED
Nicolas L ShinkoBrazilAnna Fali RENEWAL
Maria K TollnerFranceIoni Bowcher NEW
Frozen Columns
Name
Sinclair W Campain
Costa H Shinko
Maisha H Oldroyd
Jeanfrancois Q Shinko
Faith X Amigon
Rodrigues V Saylors
Misaki H Maclead
Costa B Garufi
Jefferson T Foller
Munro R Sergi
Clifford A Marrier
Julie S Campain
Smith H Saylors
Maisha J Kusko
Faith N Darakjy
Leon N Slusarski
Juan W Vocelka
Juan L Albares
Mayumi D Darakjy
Tony T Dilliard
Alejandro K Royster
Francesco Y Whobrey
Mayumi Y Bolognia
Aruna V Malet
Jeanfrancois F Bowley
Aruna U Glick
Aruna N Malet
Claire K Inouye
Rodrigues S Rim
James Q Oldroyd
Ivar T Stenseth
Ivar F Rulapaugh
Silvio S Garufi
Ricardo O Bowley
Claire B Paprocki
Faith O Sergi
Aditya E Nestle
Arvin Z Wieser
Sinclair E Briddick
Aika S Flosi
Johnson I Kolmetz
Ivar J Butt
Misaki B Rim
Leja G Butt
Jennifer D Vocelka
Jefferson X Oldroyd
Adams L Wieser
Alejandro G Rim
Francesco P Gaucho
Antonio W Kusko
IdCountryDate
1000Germany2024-04-19
1001Brazil2024-04-05
1002Italy2024-04-21
1003Spain2024-04-06
1004Australia2024-04-14
1005Japan2024-04-03
1006France2024-04-02
1007India2024-04-21
1008Australia2024-04-14
1009India2024-04-06
1010Germany2024-04-06
1011India2024-04-07
1012Argentina2024-04-10
1013Italy2024-04-01
1014Brazil2024-04-15
1015United Kingdom2024-04-25
1016Italy2024-04-02
1017United Kingdom2024-04-17
1018Italy2024-04-06
1019Italy2024-04-22
1020Canada2024-04-23
1021France2024-04-12
1022Canada2024-04-12
1023Germany2024-04-27
1024India2024-04-04
1025Italy2024-04-23
1026Brazil2024-04-27
1027Spain2024-04-22
1028Canada2024-04-07
1029Japan2024-04-28
1030Germany2024-04-13
1031Australia2024-04-07
1032Australia2024-04-03
1033France2024-04-18
1034Australia2024-04-19
1035Canada2024-04-27
1036Germany2024-04-09
1037Germany2024-04-27
1038Russia2024-04-08
1039Canada2024-04-10
1040France2024-04-17
1041Spain2024-04-10
1042Japan2024-04-12
1043Brazil2024-04-13
1044Spain2024-04-22
1045Australia2024-04-27
1046Canada2024-04-21
1047Brazil2024-04-16
1048Russia2024-04-03
1049Argentina2024-04-11

On-Demand Data

NameIdCountryDate
Darci J Iturbide1000Canada2024-04-22
Mujtaba G Whobrey1001Canada2024-04-07
Aditya J Maclead1002India2024-04-04
Izzy Q Inouye1003United Kingdom2024-04-28
Maisha D Iturbide1004Spain2024-04-02
Izzy P Albares1005Spain2024-04-25
Aika F Gaucho1006France2024-04-29
Costa Q Butt1007Italy2024-04-24
Stacey M Albares1008United Kingdom2024-04-01
Francesco G Venere1009Canada2024-04-12
Mujtaba L Amigon1010Japan2024-04-24
Murillo F Briddick1011Russia2024-04-17
Sinclair O Malet1012Australia2024-04-07
Octavia T Perin1013Canada2024-04-09
Aruna W Inouye1014India2024-04-16
Emily I Figeroa1015Italy2024-04-07
Clifford I Oldroyd1016Canada2024-04-12
Leja L Bowley1017Australia2024-04-23
Maria W Wieser1018Brazil2024-04-13
James A Ferencz1019Spain2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan A OstroskyGermanyAnna Fali UNQUALIFIED
Julie O GlickJapanStephen Shaw QUALIFIED
Ricardo I RimSpainStephen Shaw NEGOTIATION
Aika Z OldroydItalyAmy Elsner UNQUALIFIED
Octavia M MaletCanadaBernardo Dominic NEW
Wickens X MarrierArgentinaElwin Sharvill UNQUALIFIED
Greenwood T RimItalyStephen Shaw NEGOTIATION
Greenwood C StensethArgentinaIoni Bowcher NEGOTIATION
Darci J SaylorsArgentinaBernardo Dominic NEW
Chavez Z MaletFranceIvan Magalhaes NEGOTIATION
Johnson H OstroskyBrazilIoni Bowcher NEGOTIATION
Greenwood M KuskoCanadaElwin Sharvill RENEWAL
Isabel H KolmetzArgentinaStephen Shaw NEGOTIATION
Jefferson H SergiBrazilBernardo Dominic RENEWAL
Jennifer P TollnerBrazilAnna Fali QUALIFIED
Jennifer C FigeroaCanadaXuxue Feng UNQUALIFIED
Mayumi W NickaGermanyXuxue Feng UNQUALIFIED
Claire L CaldareraFranceElwin Sharvill RENEWAL
Octavia Z CaldareraItalyXuxue Feng NEW
Juan O VocelkaBrazilAnna Fali NEGOTIATION
Adams T PaprockiIndiaIoni Bowcher QUALIFIED
Darci T FerenczCanadaOnyama Limba NEW
Munro J NestleCanadaXuxue Feng NEGOTIATION
Tony U SaylorsSpainXuxue Feng RENEWAL
Murillo G ShinkoCanadaOnyama Limba NEW
Misaki V IturbideJapanAmy Elsner UNQUALIFIED
Leja D PerinArgentinaAnna Fali UNQUALIFIED
Juan X CampainSpainOnyama Limba NEGOTIATION
Jeanfrancois L RimAustraliaStephen Shaw NEGOTIATION
Jennifer M StockhamFranceIoni Bowcher QUALIFIED
Jeanfrancois E CampainJapanIvan Magalhaes NEW
Sinclair F AmigonIndiaIoni Bowcher UNQUALIFIED
James R WieserRussiaXuxue Feng NEGOTIATION
Misaki E WhobreyBrazilAsiya Javayant QUALIFIED
Stacey T ShinkoArgentinaStephen Shaw QUALIFIED
Ashley F FigeroaFranceStephen Shaw NEGOTIATION
Jones S PerinSpainXuxue Feng RENEWAL
Mujtaba Z DoeSpainXuxue Feng NEGOTIATION
Ricardo P KolmetzAustraliaAmy Elsner NEGOTIATION
Jeanfrancois P MarrierCanadaOnyama Limba 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>