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
Salvatore S MacleadArgentinaIvan Magalhaes PROPOSAL
Isabel K StensethFranceIvan Magalhaes RENEWAL
Antonio M AlbaresFranceAnna Fali NEW
Greenwood Q GlickIndiaAsiya Javayant NEGOTIATION
Aika Z FerenczItalyBernardo Dominic RENEWAL
Octavia P BologniaGermanyElwin Sharvill UNQUALIFIED
Costa W DarakjyRussiaXuxue Feng PROPOSAL
Juan H WhobreyUnited KingdomStephen Shaw QUALIFIED
Clifford U MarrierUnited KingdomBernardo Dominic PROPOSAL
Julie S OldroydSpainAnna Fali UNQUALIFIED
Leon M DarakjyAustraliaBernardo Dominic QUALIFIED
James R FerenczUnited KingdomBernardo Dominic NEW
Faith T BologniaItalyAnna Fali UNQUALIFIED
Jones K FollerIndiaElwin Sharvill NEW
Darci W InouyeCanadaStephen Shaw PROPOSAL
Jones Q ButtCanadaBernardo Dominic RENEWAL
Jennifer C OstroskyItalyAsiya Javayant QUALIFIED
Greenwood W IturbideArgentinaXuxue Feng QUALIFIED
Murillo X SchemmerItalyIoni Bowcher NEW
Mujtaba Q DarakjyCanadaIvan Magalhaes NEGOTIATION
Aditya N RoysterArgentinaXuxue Feng PROPOSAL
Faith U BologniaBrazilElwin Sharvill UNQUALIFIED
Sinclair H GauchoJapanIvan Magalhaes PROPOSAL
Rodrigues B FigeroaGermanyXuxue Feng NEGOTIATION
Kaitlin P FerenczArgentinaAnna Fali NEGOTIATION
Cody D AmigonUnited KingdomIoni Bowcher RENEWAL
Ivar H MorascaJapanBernardo Dominic NEW
Ricardo C PerinItalyAmy Elsner QUALIFIED
Chavez X BologniaBrazilBernardo Dominic NEGOTIATION
Cody V FlosiArgentinaIvan Magalhaes QUALIFIED
Johnson H DoeAustraliaAmy Elsner NEGOTIATION
Emily F MorascaRussiaIoni Bowcher PROPOSAL
Maria P AlbaresItalyXuxue Feng UNQUALIFIED
Aditya V BowleyUnited KingdomIvan Magalhaes RENEWAL
Ivar Q AmigonCanadaBernardo Dominic PROPOSAL
Jefferson E StensethUnited KingdomAsiya Javayant NEW
Claire U FollerFranceAmy Elsner PROPOSAL
Juan P PaprockiRussiaIoni Bowcher UNQUALIFIED
Leon I StensethCanadaAmy Elsner PROPOSAL
Leon X MaletAustraliaXuxue Feng NEW
Jennifer K GillianArgentinaAmy Elsner UNQUALIFIED
Arvin Y ChuiArgentinaBernardo Dominic QUALIFIED
Leon A GillianBrazilIoni Bowcher PROPOSAL
Mayumi S VocelkaRussiaOnyama Limba RENEWAL
Rodrigues G RulapaughBrazilBernardo Dominic NEW
Smith E GauchoBrazilElwin Sharvill PROPOSAL
Jones R NickaFranceIvan Magalhaes QUALIFIED
Clifford Y OstroskySpainBernardo Dominic NEGOTIATION
Izzy A FerenczGermanyStephen Shaw PROPOSAL
Jeanfrancois P ChuiIndiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy Z AmigonGermanyOnyama Limba NEW
Emily O CaldareraCanadaXuxue Feng RENEWAL
Ricardo E TollnerIndiaOnyama Limba UNQUALIFIED
David R MaletJapanBernardo Dominic QUALIFIED
Smith H AlbaresJapanBernardo Dominic NEW
Johnson C AmigonItalyStephen Shaw QUALIFIED
David Y AlbaresIndiaStephen Shaw UNQUALIFIED
Silvio Y IturbideRussiaBernardo Dominic PROPOSAL
Clifford V StockhamCanadaElwin Sharvill RENEWAL
Darci A DarakjyArgentinaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily O InouyeJapan2024-04-10Feltz Printing Service UNQUALIFIED47Ioni Bowcher
1001Johnson S FigeroaUnited Kingdom2024-04-29Printing Dimensions QUALIFIED90Asiya Javayant
1002Francesco M ShinkoBrazil2024-04-23Buckley Miller Wright UNQUALIFIED87Bernardo Dominic
1003Kadeem U VocelkaFrance2024-04-18Chemel, James L Cpa RENEWAL18Ioni Bowcher
1004Wickens Y CaudyCanada2024-04-30King, Christopher A Esq UNQUALIFIED72Xuxue Feng
1005Izzy G WaycottRussia2024-04-10Benton, John B Jr NEGOTIATION13Onyama Limba
1006Jones Z AmigonSpain2024-04-04Feltz Printing Service PROPOSAL21Ioni Bowcher
1007Misaki O WhobreyBrazil2024-04-22Commercial Press QUALIFIED44Anna Fali
1008Maisha Q FlosiAustralia2024-04-28Feltz Printing Service NEW31Onyama Limba
1009Jones H BriddickRussia2024-05-01Commercial Press PROPOSAL41Stephen Shaw
1010Mujtaba Z FigeroaSpain2024-05-01Commercial Press NEGOTIATION8Ioni Bowcher
1011Misaki K SchemmerAustralia2024-04-27Rangoni Of Florence RENEWAL38Anna Fali
1012Cody I FigeroaUnited Kingdom2024-04-08Chanay, Jeffrey A Esq NEW49Xuxue Feng
1013Juan V MacleadFrance2024-04-20Feiner Bros QUALIFIED17Ivan Magalhaes
1014Munro P FigeroaJapan2024-04-29Truhlar And Truhlar Attys NEW13Amy Elsner
1015Leon Y CaldareraSpain2024-04-11Feltz Printing Service PROPOSAL55Xuxue Feng
1016Ricardo N FigeroaSpain2024-04-08King, Christopher A Esq RENEWAL24Ioni Bowcher
1017Faith Q DilliardGermany2024-04-05Chemel, James L Cpa QUALIFIED98Ivan Magalhaes
1018Ivar J CampainAustralia2024-04-13Commercial Press RENEWAL97Xuxue Feng
1019Juan L BriddickGermany2024-04-22Dorl, James J Esq NEW91Ivan Magalhaes
1020Kaitlin R SaylorsItaly2024-04-04Morlong Associates PROPOSAL91Elwin Sharvill
1021Rodrigues U SchemmerUnited Kingdom2024-04-13Morlong Associates UNQUALIFIED88Onyama Limba
1022Aruna T WieserIndia2024-04-07Chapman, Ross E Esq PROPOSAL75Bernardo Dominic
1023Smith K WhobreyCanada2024-04-04Benton, John B Jr PROPOSAL76Ivan Magalhaes
1024Chavez S MaletItaly2024-04-14King, Christopher A Esq RENEWAL40Elwin Sharvill
1025Deepesh E BologniaItaly2024-04-02Rousseaux, Michael Esq RENEWAL75Bernardo Dominic
1026Kadeem Q DarakjyArgentina2024-04-03Morlong Associates UNQUALIFIED82Anna Fali
1027Tony L StockhamGermany2024-04-30Truhlar And Truhlar Attys UNQUALIFIED2Amy Elsner
1028Rodrigues L MaletGermany2024-04-12King, Christopher A Esq QUALIFIED86Onyama Limba
1029Julie S RulapaughBrazil2024-04-25Chanay, Jeffrey A Esq PROPOSAL79Ivan Magalhaes
1030Maisha X ButtUnited Kingdom2024-04-03Commercial Press NEGOTIATION62Elwin Sharvill
1031Kaitlin G OldroydGermany2024-05-01Buckley Miller Wright RENEWAL38Ivan Magalhaes
1032Chavez U BowleyGermany2024-04-08Morlong Associates PROPOSAL93Asiya Javayant
1033Claire X VocelkaArgentina2024-04-09Feiner Bros NEW87Anna Fali
1034Francesco P WieserBrazil2024-04-15Feltz Printing Service NEGOTIATION38Xuxue Feng
1035Leja P CaudyRussia2024-04-19Dorl, James J Esq RENEWAL96Asiya Javayant
1036Isabel J ButtFrance2024-04-30King, Christopher A Esq NEGOTIATION63Onyama Limba
1037Mayumi G KuskoCanada2024-04-29Chapman, Ross E Esq QUALIFIED2Ivan Magalhaes
1038Julie C NestleUnited Kingdom2024-04-11Chapman, Ross E Esq PROPOSAL10Ivan Magalhaes
1039Francesco R RoysterUnited Kingdom2024-04-07Rousseaux, Michael Esq NEGOTIATION54Elwin Sharvill
1040Leja M RulapaughGermany2024-04-27Feiner Bros RENEWAL27Asiya Javayant
1041Ashley R GillianCanada2024-04-08Dorl, James J Esq PROPOSAL42Stephen Shaw
1042Morrow Y CaudyIndia2024-04-08Printing Dimensions NEW32Ivan Magalhaes
1043Ivar O RulapaughBrazil2024-04-22Chanay, Jeffrey A Esq NEW24Asiya Javayant
1044Chavez O SlusarskiItaly2024-04-27Printing Dimensions QUALIFIED7Elwin Sharvill
1045Cody K StockhamUnited Kingdom2024-04-10Benton, John B Jr NEGOTIATION60Anna Fali
1046Aika S NestleSpain2024-04-02Chemel, James L Cpa RENEWAL30Onyama Limba
1047Kadeem H RulapaughBrazil2024-04-16Morlong Associates QUALIFIED83Asiya Javayant
1048Smith J InouyeRussia2024-04-20King, Christopher A Esq NEW95Xuxue Feng
1049Kadeem O VocelkaGermany2024-04-05Feiner Bros NEW29Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore R RoysterIndiaAsiya Javayant QUALIFIED
Leja W PerinAustraliaBernardo Dominic NEW
Maisha P WaycottUnited KingdomAnna Fali NEW
Jennifer K SchemmerFranceAsiya Javayant NEW
Munro G FerenczItalyIvan Magalhaes QUALIFIED
Tony F NickaAustraliaOnyama Limba PROPOSAL
Ivar V GillianBrazilElwin Sharvill NEGOTIATION
Isabel U NickaGermanyIoni Bowcher NEGOTIATION
Jefferson C SlusarskiFranceIvan Magalhaes RENEWAL
Murillo T BowleySpainXuxue Feng QUALIFIED
Faith X ShinkoAustraliaXuxue Feng NEW
Maria O ChuiArgentinaElwin Sharvill RENEWAL
Faith W KuskoCanadaIoni Bowcher UNQUALIFIED
Mayumi A WhobreyJapanIvan Magalhaes NEW
Silvio S CaudyIndiaAmy Elsner RENEWAL
Jones Y AlbaresItalyXuxue Feng QUALIFIED
Murillo M SchemmerBrazilIvan Magalhaes UNQUALIFIED
Antonio T SlusarskiIndiaAnna Fali QUALIFIED
Maria R CaudyCanadaAsiya Javayant PROPOSAL
Maria I StensethJapanBernardo Dominic QUALIFIED
Adams H GarufiRussiaIoni Bowcher PROPOSAL
Arvin K ChuiArgentinaIvan Magalhaes NEGOTIATION
Silvio I KolmetzBrazilIoni Bowcher UNQUALIFIED
Darci I MaletArgentinaXuxue Feng NEW
Cody J MacleadCanadaXuxue Feng NEGOTIATION
Ashley B InouyeGermanyBernardo Dominic PROPOSAL
Salvatore F MaletFranceAnna Fali NEGOTIATION
Mujtaba V BowleySpainIvan Magalhaes NEGOTIATION
Maria R FerenczItalyStephen Shaw NEGOTIATION
Darci G PoquetteBrazilAmy Elsner NEW
Arvin X GillianItalyStephen Shaw PROPOSAL
Nicolas O VenereUnited KingdomStephen Shaw PROPOSAL
Aruna Y DilliardBrazilAsiya Javayant PROPOSAL
Ashley K TollnerCanadaStephen Shaw PROPOSAL
Darci Y NickaIndiaElwin Sharvill QUALIFIED
Deepesh M GauchoRussiaOnyama Limba PROPOSAL
Julie C FigeroaSpainStephen Shaw UNQUALIFIED
Antonio E MaletGermanyXuxue Feng NEW
Ricardo X FigeroaFranceAsiya Javayant QUALIFIED
Claire V MorascaItalyIoni Bowcher UNQUALIFIED
Misaki Y KolmetzAustraliaXuxue Feng RENEWAL
Julie L MaletFranceIoni Bowcher QUALIFIED
Clifford W RulapaughArgentinaOnyama Limba RENEWAL
Leja Z RoysterGermanyIoni Bowcher UNQUALIFIED
Silvio N TollnerBrazilAsiya Javayant UNQUALIFIED
Aika Z FerenczBrazilBernardo Dominic NEW
Misaki N IturbideItalyIvan Magalhaes UNQUALIFIED
Jefferson D FollerItalyAsiya Javayant PROPOSAL
Munro E ButtItalyAsiya Javayant NEGOTIATION
Silvio F BriddickUnited KingdomElwin Sharvill PROPOSAL
Frozen Columns
Name
Silvio A Nestle
Deepesh X Kusko
Tony M Slusarski
Faith L Flosi
Julie A Caldarera
Maisha U Rim
Greenwood Q Tollner
Stacey Y Bolognia
Julie L Malet
Isabel R Maclead
Julie B Nicka
Julie I Kolmetz
Faith T Morasca
Jennifer H Ruta
Tony C Tollner
Mujtaba C Stenseth
Mujtaba W Inouye
Octavia Z Ferencz
Julie M Glick
Rodrigues W Glick
Cody F Briddick
Ricardo R Briddick
Aditya G Inouye
Ashley R Briddick
Jennifer V Perin
Jefferson F Chui
Tony O Ferencz
Claire N Glick
Costa N Shinko
Aditya V Garufi
Aruna E Briddick
Jones Q Venere
Murillo G Venere
Nicolas R Foller
Jennifer S Caudy
Faith H Nicka
Julie B Figeroa
Emily I Doe
Tony O Campain
Deepesh X Waycott
Nicolas W Stockham
Ivar E Albares
Jones R Iturbide
Octavia Z Shinko
Arvin P Campain
Mayumi Q Bowley
Aditya F Kusko
Stacey Q Campain
Nicolas H Inouye
Jeanfrancois K Ferencz
IdCountryDate
1000Canada2024-04-19
1001Australia2024-04-02
1002Brazil2024-04-27
1003Australia2024-04-15
1004United Kingdom2024-04-04
1005France2024-04-21
1006Canada2024-04-06
1007Australia2024-04-24
1008United Kingdom2024-04-02
1009India2024-04-24
1010Spain2024-05-01
1011Argentina2024-04-09
1012Australia2024-04-03
1013Australia2024-04-04
1014Germany2024-04-23
1015Brazil2024-04-12
1016Brazil2024-04-13
1017Germany2024-04-06
1018India2024-04-13
1019Japan2024-04-05
1020India2024-04-11
1021Italy2024-04-29
1022Australia2024-04-07
1023Brazil2024-04-27
1024Italy2024-04-28
1025Russia2024-04-25
1026Russia2024-04-27
1027Argentina2024-04-30
1028Australia2024-04-23
1029Spain2024-04-20
1030Argentina2024-04-09
1031Argentina2024-04-23
1032Japan2024-04-06
1033Japan2024-04-25
1034France2024-04-16
1035United Kingdom2024-04-09
1036United Kingdom2024-04-18
1037Argentina2024-04-11
1038Russia2024-04-10
1039Brazil2024-04-10
1040India2024-04-21
1041Germany2024-04-18
1042France2024-04-29
1043Germany2024-04-13
1044Russia2024-04-19
1045Brazil2024-04-29
1046Australia2024-04-03
1047Spain2024-04-07
1048Russia2024-04-21
1049Spain2024-04-27

On-Demand Data

NameIdCountryDate
Jennifer H Ruta1000United Kingdom2024-04-18
Clifford X Schemmer1001United Kingdom2024-04-02
Leon N Albares1002Germany2024-04-30
Rodrigues R Malet1003United Kingdom2024-04-24
Sinclair G Poquette1004India2024-04-07
Costa M Garufi1005Brazil2024-04-04
Alejandro G Morasca1006India2024-04-28
Clifford M Flosi1007France2024-05-01
Claire C Venere1008Italy2024-04-17
Maria N Inouye1009United Kingdom2024-04-14
Sinclair J Nestle1010Australia2024-04-29
Munro P Briddick1011Japan2024-04-21
Stacey T Royster1012Japan2024-04-23
Izzy S Ruta1013Russia2024-04-16
Arvin T Iturbide1014France2024-04-16
James N Sergi1015Brazil2024-04-05
Tony M Iturbide1016Brazil2024-04-09
Jennifer L Malet1017Russia2024-04-10
Mujtaba W Wieser1018Canada2024-04-02
Darci Q Waycott1019United Kingdom2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore O DilliardGermanyAnna Fali UNQUALIFIED
Octavia R VenereItalyOnyama Limba NEGOTIATION
Antonio N GlickUnited KingdomBernardo Dominic NEGOTIATION
Costa D CampainFranceOnyama Limba NEW
Jones A StensethRussiaAmy Elsner UNQUALIFIED
Francesco Y FlosiRussiaStephen Shaw UNQUALIFIED
Aditya W WaycottJapanStephen Shaw RENEWAL
Octavia Q StensethAustraliaIoni Bowcher QUALIFIED
David J BriddickBrazilAnna Fali NEW
Chavez W FerenczBrazilStephen Shaw NEGOTIATION
Emily K OldroydRussiaIvan Magalhaes NEW
Adams W ShinkoCanadaElwin Sharvill RENEWAL
Juan I CaudyRussiaXuxue Feng QUALIFIED
Ivar J AmigonIndiaStephen Shaw UNQUALIFIED
Ricardo V MaletArgentinaAmy Elsner NEW
James X SchemmerItalyXuxue Feng UNQUALIFIED
Jefferson A GauchoBrazilIvan Magalhaes PROPOSAL
Maria H RutaGermanyBernardo Dominic UNQUALIFIED
James L OstroskyJapanAsiya Javayant PROPOSAL
Clifford E CampainUnited KingdomXuxue Feng UNQUALIFIED
Aruna I CampainFranceAmy Elsner RENEWAL
Ashley T PoquetteItalyAnna Fali NEGOTIATION
Cody M KolmetzIndiaElwin Sharvill NEGOTIATION
Leon Z MorascaGermanyIvan Magalhaes QUALIFIED
Aika L ShinkoIndiaOnyama Limba QUALIFIED
David Y IturbideJapanAsiya Javayant UNQUALIFIED
Misaki P CampainFranceBernardo Dominic RENEWAL
Maisha C PerinArgentinaOnyama Limba NEGOTIATION
Darci O PerinArgentinaIvan Magalhaes NEGOTIATION
Chavez K KolmetzGermanyXuxue Feng NEGOTIATION
Maria X CaldareraIndiaIvan Magalhaes QUALIFIED
Juan X GillianCanadaStephen Shaw RENEWAL
Costa E RutaUnited KingdomAmy Elsner RENEWAL
Aika T PaprockiItalyElwin Sharvill NEW
Sinclair X NestleArgentinaIoni Bowcher RENEWAL
Sinclair X TollnerAustraliaOnyama Limba QUALIFIED
Ivar U WhobreyUnited KingdomIvan Magalhaes NEW
Clifford G ChuiFranceAmy Elsner QUALIFIED
Jones F FerenczGermanyStephen Shaw RENEWAL
Aruna P GlickIndiaIoni Bowcher 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>