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
Mujtaba X MarrierJapanElwin Sharvill RENEWAL
Nicolas Q StensethGermanyIoni Bowcher NEGOTIATION
Chavez R RulapaughGermanyBernardo Dominic PROPOSAL
Arvin B BologniaIndiaIoni Bowcher RENEWAL
Jeanfrancois M MorascaFranceStephen Shaw PROPOSAL
Greenwood Q BologniaJapanOnyama Limba UNQUALIFIED
Salvatore W RulapaughFranceXuxue Feng UNQUALIFIED
Wickens Z SaylorsArgentinaXuxue Feng RENEWAL
Silvio B GauchoFranceBernardo Dominic PROPOSAL
Smith H SchemmerSpainAnna Fali PROPOSAL
Jones L SaylorsSpainXuxue Feng NEGOTIATION
Arvin F VocelkaGermanyXuxue Feng NEW
Leon W IturbideCanadaElwin Sharvill QUALIFIED
Kaitlin Y GillianCanadaAnna Fali NEW
Darci U SlusarskiBrazilBernardo Dominic RENEWAL
Jennifer X RulapaughRussiaElwin Sharvill PROPOSAL
Alejandro O ButtFranceIoni Bowcher PROPOSAL
Stacey T AlbaresArgentinaXuxue Feng NEGOTIATION
Johnson X MacleadRussiaIoni Bowcher NEGOTIATION
Faith C MarrierUnited KingdomAmy Elsner NEGOTIATION
Faith W ChuiArgentinaIvan Magalhaes QUALIFIED
Johnson K FerenczArgentinaStephen Shaw PROPOSAL
Maisha E RulapaughItalyAsiya Javayant NEGOTIATION
Leja M VocelkaBrazilAmy Elsner UNQUALIFIED
Julie V PerinRussiaOnyama Limba NEW
Nicolas F OstroskySpainIoni Bowcher RENEWAL
Jones R KuskoAustraliaStephen Shaw UNQUALIFIED
Costa S RulapaughFranceElwin Sharvill NEGOTIATION
Emily I WaycottRussiaOnyama Limba NEW
Darci K OstroskySpainIvan Magalhaes UNQUALIFIED
Nicolas V ButtItalyBernardo Dominic NEW
Izzy N GillianUnited KingdomElwin Sharvill UNQUALIFIED
Maria T AlbaresBrazilIoni Bowcher NEW
David S ShinkoSpainStephen Shaw PROPOSAL
Ashley R RutaUnited KingdomOnyama Limba NEW
Chavez T WieserUnited KingdomElwin Sharvill NEW
Chavez V CaudyJapanAnna Fali PROPOSAL
Greenwood D NickaRussiaXuxue Feng RENEWAL
Sinclair T BologniaUnited KingdomBernardo Dominic NEW
Octavia R MaletItalyIvan Magalhaes PROPOSAL
Ashley D MarrierArgentinaAsiya Javayant QUALIFIED
Morrow I PaprockiItalyAnna Fali PROPOSAL
Maria M SlusarskiAustraliaElwin Sharvill NEGOTIATION
Antonio R OldroydJapanBernardo Dominic NEGOTIATION
Munro D GauchoRussiaAsiya Javayant NEGOTIATION
Claire J VenereArgentinaXuxue Feng NEW
Munro X MarrierAustraliaIvan Magalhaes NEGOTIATION
Leja N ShinkoJapanAnna Fali NEW
Ashley J MaletBrazilAnna Fali UNQUALIFIED
Misaki U SlusarskiRussiaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem W KolmetzCanadaOnyama Limba NEW
Ricardo F VenereJapanOnyama Limba UNQUALIFIED
Rodrigues Q PerinJapanIoni Bowcher NEW
Isabel D GarufiFranceIvan Magalhaes RENEWAL
Darci X AmigonJapanOnyama Limba UNQUALIFIED
Antonio T ShinkoUnited KingdomAsiya Javayant RENEWAL
Clifford C MorascaBrazilStephen Shaw QUALIFIED
Izzy T TollnerItalyAnna Fali PROPOSAL
Jeanfrancois Q GlickIndiaAsiya Javayant RENEWAL
Jennifer U SaylorsItalyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya H PoquetteArgentina2024-04-21King, Christopher A Esq PROPOSAL59Xuxue Feng
1001Kaitlin H CaldareraAustralia2024-04-11Feiner Bros RENEWAL46Elwin Sharvill
1002Arvin O BowleyItaly2024-04-28Printing Dimensions NEGOTIATION89Anna Fali
1003Francesco D FerenczGermany2024-05-03Buckley Miller Wright QUALIFIED76Elwin Sharvill
1004Silvio T BologniaFrance2024-04-19Buckley Miller Wright QUALIFIED62Elwin Sharvill
1005Costa K SergiCanada2024-05-03King, Christopher A Esq RENEWAL49Ioni Bowcher
1006Misaki I NestleBrazil2024-04-30Feiner Bros PROPOSAL2Amy Elsner
1007Jennifer A NestleGermany2024-04-11Printing Dimensions PROPOSAL42Xuxue Feng
1008Wickens N MarrierCanada2024-04-15Benton, John B Jr RENEWAL96Ioni Bowcher
1009Julie K KuskoUnited Kingdom2024-04-09King, Christopher A Esq QUALIFIED33Xuxue Feng
1010Jeanfrancois X GauchoIndia2024-04-22Printing Dimensions NEGOTIATION69Ivan Magalhaes
1011Greenwood S AmigonGermany2024-04-22Truhlar And Truhlar Attys QUALIFIED25Xuxue Feng
1012Cody W GillianItaly2024-04-07Chemel, James L Cpa NEGOTIATION39Anna Fali
1013Costa E DarakjyIndia2024-05-02Printing Dimensions RENEWAL47Stephen Shaw
1014Murillo W MarrierGermany2024-04-29Chanay, Jeffrey A Esq PROPOSAL71Ivan Magalhaes
1015Leon N TollnerCanada2024-04-27Morlong Associates NEW85Amy Elsner
1016Greenwood F OstroskyGermany2024-05-03Chapman, Ross E Esq QUALIFIED23Bernardo Dominic
1017Maria K CaudyIndia2024-04-19Chemel, James L Cpa NEGOTIATION91Asiya Javayant
1018Aditya G MaletJapan2024-04-22Chapman, Ross E Esq NEW40Asiya Javayant
1019Chavez L FollerSpain2024-04-16Truhlar And Truhlar Attys NEW85Stephen Shaw
1020Adams S BologniaArgentina2024-05-02Printing Dimensions PROPOSAL37Asiya Javayant
1021Murillo W AmigonCanada2024-05-04Rousseaux, Michael Esq UNQUALIFIED92Anna Fali
1022Ashley Q FerenczGermany2024-04-07Morlong Associates PROPOSAL80Ioni Bowcher
1023Smith I FlosiIndia2024-04-12Chemel, James L Cpa PROPOSAL78Ivan Magalhaes
1024Kadeem Q DoeBrazil2024-04-18Buckley Miller Wright NEW44Onyama Limba
1025Ashley F TollnerSpain2024-04-13King, Christopher A Esq PROPOSAL20Stephen Shaw
1026Munro Z SlusarskiItaly2024-04-18Feltz Printing Service NEW5Stephen Shaw
1027Izzy U SlusarskiJapan2024-04-27Chanay, Jeffrey A Esq QUALIFIED97Xuxue Feng
1028Ivar Z SchemmerFrance2024-05-04Feltz Printing Service NEW32Xuxue Feng
1029Greenwood V SaylorsJapan2024-04-14Feltz Printing Service QUALIFIED82Amy Elsner
1030Ashley F NickaRussia2024-05-01Truhlar And Truhlar Attys NEGOTIATION25Asiya Javayant
1031Cody E WieserFrance2024-05-01Feiner Bros PROPOSAL86Xuxue Feng
1032Adams A SchemmerItaly2024-04-27Printing Dimensions NEW32Stephen Shaw
1033Darci C MaletFrance2024-04-08Rousseaux, Michael Esq RENEWAL23Bernardo Dominic
1034Misaki V CampainRussia2024-05-01Truhlar And Truhlar Attys QUALIFIED70Ivan Magalhaes
1035Claire S BowleyIndia2024-04-16Commercial Press QUALIFIED77Ivan Magalhaes
1036Greenwood L ChuiSpain2024-04-16Feiner Bros NEGOTIATION75Onyama Limba
1037Stacey Q WhobreyGermany2024-04-27Morlong Associates PROPOSAL41Anna Fali
1038Aditya W MacleadBrazil2024-04-28Feltz Printing Service NEGOTIATION50Onyama Limba
1039Jefferson I BriddickCanada2024-04-07King, Christopher A Esq NEW11Ivan Magalhaes
1040Aika X MarrierGermany2024-04-06Printing Dimensions NEW17Onyama Limba
1041Clifford Y IturbideBrazil2024-04-08Printing Dimensions PROPOSAL61Ivan Magalhaes
1042Cody W WieserCanada2024-04-16Feltz Printing Service PROPOSAL7Elwin Sharvill
1043James D SchemmerCanada2024-05-03Rousseaux, Michael Esq QUALIFIED67Bernardo Dominic
1044Cody D RoysterRussia2024-04-25Rangoni Of Florence PROPOSAL62Onyama Limba
1045Ivar A WieserRussia2024-04-10Morlong Associates NEW4Bernardo Dominic
1046Kaitlin B StensethItaly2024-04-20Benton, John B Jr UNQUALIFIED96Ioni Bowcher
1047Aika W CaldareraIndia2024-04-18Feltz Printing Service NEGOTIATION54Xuxue Feng
1048Jeanfrancois T KuskoJapan2024-05-04Chanay, Jeffrey A Esq NEGOTIATION90Elwin Sharvill
1049Alejandro Y CaldareraFrance2024-04-05Chapman, Ross E Esq QUALIFIED80Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ashley A ChuiItalyOnyama Limba NEGOTIATION
Faith Y TollnerGermanyXuxue Feng NEW
Adams S BriddickFranceOnyama Limba RENEWAL
Murillo Z WhobreyBrazilIoni Bowcher NEW
Wickens A BriddickJapanOnyama Limba NEW
Izzy E StockhamJapanAsiya Javayant RENEWAL
Aika A OstroskyJapanIvan Magalhaes QUALIFIED
Cody T WieserBrazilElwin Sharvill RENEWAL
Faith X MacleadUnited KingdomElwin Sharvill NEW
Darci K RoysterUnited KingdomAmy Elsner RENEWAL
Salvatore K MorascaBrazilOnyama Limba PROPOSAL
Jennifer H ShinkoBrazilBernardo Dominic NEGOTIATION
Jeanfrancois F NestleCanadaAmy Elsner UNQUALIFIED
Murillo P DoeArgentinaBernardo Dominic QUALIFIED
Greenwood Z FlosiGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois U GillianIndiaIoni Bowcher QUALIFIED
Julie F FigeroaAustraliaOnyama Limba QUALIFIED
Aruna K GarufiCanadaXuxue Feng QUALIFIED
Greenwood V GlickFranceIvan Magalhaes UNQUALIFIED
Mujtaba Z GauchoGermanyElwin Sharvill NEGOTIATION
Emily D NickaSpainStephen Shaw NEGOTIATION
Johnson H RulapaughSpainIoni Bowcher QUALIFIED
Costa U DarakjyFranceXuxue Feng QUALIFIED
Deepesh D DarakjyAustraliaAnna Fali PROPOSAL
Jefferson D BriddickFranceBernardo Dominic RENEWAL
Mujtaba T WhobreyIndiaOnyama Limba NEGOTIATION
Francesco I WhobreyIndiaIvan Magalhaes PROPOSAL
Ashley F ChuiUnited KingdomElwin Sharvill NEGOTIATION
Sinclair J IturbideUnited KingdomElwin Sharvill NEGOTIATION
Juan U VocelkaItalyIvan Magalhaes NEW
James Z FigeroaItalyAmy Elsner UNQUALIFIED
Ashley H IturbideItalyAnna Fali NEW
Jefferson L SaylorsIndiaElwin Sharvill PROPOSAL
Smith N DoeRussiaAsiya Javayant QUALIFIED
Smith I KolmetzIndiaBernardo Dominic RENEWAL
Stacey V BologniaUnited KingdomOnyama Limba NEGOTIATION
Clifford U MorascaAustraliaStephen Shaw NEGOTIATION
Aika S WaycottItalyIoni Bowcher UNQUALIFIED
Maisha I IturbideItalyOnyama Limba NEGOTIATION
Isabel Z ButtBrazilXuxue Feng PROPOSAL
Arvin U FerenczAustraliaIvan Magalhaes UNQUALIFIED
David H SchemmerGermanyIvan Magalhaes PROPOSAL
Sinclair V MaletAustraliaAmy Elsner RENEWAL
Leja P BologniaIndiaAmy Elsner UNQUALIFIED
Nicolas Y DoeJapanStephen Shaw UNQUALIFIED
Jefferson A WieserArgentinaIoni Bowcher NEW
Cody H VocelkaSpainStephen Shaw UNQUALIFIED
Octavia E FerenczIndiaAnna Fali NEW
Cody S GarufiBrazilIvan Magalhaes PROPOSAL
Faith C InouyeAustraliaAsiya Javayant NEW
Frozen Columns
Name
Ivar J Vocelka
David O Darakjy
Clifford E Gillian
Munro V Rim
Sinclair B Figeroa
James W Royster
Leja F Whobrey
Sinclair A Malet
Morrow G Rim
Ashley E Garufi
Juan O Shinko
Smith E Paprocki
Morrow C Kolmetz
Aruna X Doe
Salvatore P Saylors
Chavez U Ruta
Costa L Vocelka
David W Flosi
Misaki Q Malet
Isabel N Flosi
Maria Z Paprocki
Jefferson Q Glick
Stacey O Garufi
Nicolas A Wieser
Cody I Albares
James B Shinko
Morrow A Tollner
Darci A Campain
Maisha A Wieser
Salvatore P Vocelka
Murillo W Kolmetz
Greenwood X Oldroyd
Johnson E Ferencz
Greenwood X Slusarski
Jones W Rulapaugh
Ricardo E Vocelka
Darci D Wieser
Juan K Darakjy
Clifford I Oldroyd
Silvio D Tollner
Silvio N Perin
Wickens E Flosi
Arvin U Kusko
Sinclair J Oldroyd
Maisha W Flosi
Stacey N Albares
Morrow F Kolmetz
Jeanfrancois U Foller
Julie Q Oldroyd
Stacey Z Darakjy
IdCountryDate
1000India2024-05-01
1001Argentina2024-04-07
1002Brazil2024-04-26
1003Australia2024-04-05
1004Canada2024-04-09
1005Italy2024-04-17
1006India2024-05-01
1007Spain2024-04-25
1008United Kingdom2024-04-21
1009Australia2024-05-03
1010United Kingdom2024-04-06
1011Australia2024-04-29
1012France2024-04-30
1013Australia2024-04-11
1014Italy2024-04-14
1015United Kingdom2024-04-05
1016Japan2024-04-12
1017Italy2024-04-05
1018Russia2024-04-05
1019Australia2024-04-16
1020United Kingdom2024-04-07
1021United Kingdom2024-04-18
1022United Kingdom2024-04-28
1023Germany2024-05-03
1024Russia2024-05-03
1025France2024-04-16
1026Canada2024-04-09
1027United Kingdom2024-05-01
1028India2024-04-16
1029Germany2024-05-02
1030India2024-04-18
1031Japan2024-04-20
1032Spain2024-04-15
1033Australia2024-04-15
1034France2024-04-30
1035Italy2024-04-16
1036United Kingdom2024-04-14
1037United Kingdom2024-04-15
1038Germany2024-04-25
1039Japan2024-05-03
1040Spain2024-04-25
1041India2024-05-04
1042Argentina2024-04-28
1043Italy2024-05-02
1044France2024-05-04
1045France2024-04-18
1046Russia2024-04-17
1047Canada2024-04-18
1048Canada2024-04-19
1049Argentina2024-05-03

On-Demand Data

NameIdCountryDate
Antonio R Chui1000Australia2024-04-08
Faith I Foller1001Japan2024-05-01
David R Dilliard1002Argentina2024-04-15
Cody E Schemmer1003Spain2024-04-06
Salvatore Z Whobrey1004France2024-04-22
Jennifer X Paprocki1005United Kingdom2024-04-26
Arvin X Oldroyd1006Australia2024-04-25
Maria T Kusko1007Australia2024-04-13
Murillo J Gillian1008Japan2024-04-07
Greenwood O Butt1009Canada2024-05-04
Wickens X Royster1010Japan2024-04-25
Alejandro S Albares1011Argentina2024-04-12
Nicolas O Shinko1012Brazil2024-05-03
Stacey L Doe1013India2024-05-03
Leja Q Campain1014Germany2024-04-27
Stacey I Wieser1015Brazil2024-04-05
James R Dilliard1016Australia2024-04-22
Jones C Butt1017Germany2024-04-23
Munro G Saylors1018Japan2024-04-30
Nicolas T Perin1019Italy2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Q InouyeJapanIoni Bowcher UNQUALIFIED
Juan G FerenczSpainBernardo Dominic NEGOTIATION
Kadeem E ChuiAustraliaOnyama Limba RENEWAL
Tony T SaylorsJapanStephen Shaw PROPOSAL
Kaitlin G RimFranceXuxue Feng UNQUALIFIED
Deepesh C GarufiJapanElwin Sharvill RENEWAL
Morrow E InouyeCanadaAsiya Javayant UNQUALIFIED
Claire K WhobreyRussiaIvan Magalhaes UNQUALIFIED
Jones C CampainJapanStephen Shaw QUALIFIED
Arvin H RimCanadaIoni Bowcher NEW
Maria Z SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Izzy T CampainAustraliaBernardo Dominic RENEWAL
Kadeem S InouyeAustraliaIoni Bowcher PROPOSAL
Alejandro H AlbaresIndiaBernardo Dominic UNQUALIFIED
Jefferson A SaylorsItalyXuxue Feng NEW
Darci O FlosiGermanyAsiya Javayant NEW
Chavez J SchemmerIndiaAsiya Javayant NEW
Clifford J FlosiCanadaIvan Magalhaes NEGOTIATION
Adams Q WieserFranceAmy Elsner UNQUALIFIED
Aika K FigeroaCanadaStephen Shaw UNQUALIFIED
Murillo A InouyeIndiaOnyama Limba UNQUALIFIED
Jeanfrancois F MaletArgentinaBernardo Dominic NEGOTIATION
Ricardo M RulapaughCanadaBernardo Dominic NEGOTIATION
Mujtaba B MaletIndiaAnna Fali NEW
Jones F NickaAustraliaAsiya Javayant UNQUALIFIED
Aruna X MacleadIndiaAsiya Javayant NEGOTIATION
Rodrigues D FigeroaArgentinaElwin Sharvill PROPOSAL
Faith C IturbideAustraliaIoni Bowcher NEGOTIATION
Munro E CaudyGermanyAnna Fali RENEWAL
Maria X RimRussiaXuxue Feng RENEWAL
Munro Y ShinkoBrazilIvan Magalhaes QUALIFIED
Morrow F KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Smith K MaletCanadaIvan Magalhaes QUALIFIED
Costa O GillianAustraliaXuxue Feng NEGOTIATION
Misaki D GillianCanadaBernardo Dominic QUALIFIED
Salvatore P MacleadSpainIvan Magalhaes PROPOSAL
Sinclair P NestleBrazilStephen Shaw PROPOSAL
Salvatore K NestleArgentinaXuxue Feng NEW
Clifford C OstroskyBrazilAmy Elsner NEW
Arvin O KuskoIndiaAsiya Javayant 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>