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
Leja Y KolmetzJapanBernardo Dominic UNQUALIFIED
Adams C WaycottItalyStephen Shaw RENEWAL
Kaitlin F DilliardIndiaXuxue Feng NEW
Ricardo K SergiItalyElwin Sharvill PROPOSAL
Leon X DarakjyAustraliaBernardo Dominic NEGOTIATION
Misaki Y BriddickGermanyIvan Magalhaes QUALIFIED
Leon F PerinBrazilBernardo Dominic NEW
Maria P OstroskyAustraliaElwin Sharvill RENEWAL
Maria L DoeIndiaStephen Shaw UNQUALIFIED
James M MarrierIndiaStephen Shaw QUALIFIED
Adams X VocelkaFranceStephen Shaw NEW
Francesco A IturbideUnited KingdomBernardo Dominic NEGOTIATION
Jennifer T BologniaJapanAnna Fali UNQUALIFIED
James F TollnerCanadaOnyama Limba NEGOTIATION
Maria O InouyeCanadaAnna Fali QUALIFIED
Munro X DoeGermanyAmy Elsner NEW
Salvatore M FlosiGermanyXuxue Feng PROPOSAL
Darci Q StockhamGermanyIoni Bowcher NEW
Johnson G StockhamUnited KingdomElwin Sharvill NEW
Jennifer V RutaItalyBernardo Dominic RENEWAL
Leon W VocelkaSpainBernardo Dominic NEW
Aruna W CampainGermanyStephen Shaw QUALIFIED
Darci W BologniaRussiaStephen Shaw QUALIFIED
Cody F ButtBrazilIvan Magalhaes RENEWAL
Tony E BriddickArgentinaIoni Bowcher UNQUALIFIED
Francesco T FigeroaSpainStephen Shaw PROPOSAL
Jefferson N ShinkoJapanAsiya Javayant PROPOSAL
Adams B BriddickAustraliaIvan Magalhaes UNQUALIFIED
Chavez L MorascaSpainXuxue Feng UNQUALIFIED
Clifford I PerinCanadaIoni Bowcher QUALIFIED
Jones H VocelkaBrazilStephen Shaw NEW
Jennifer P NestleIndiaBernardo Dominic QUALIFIED
Antonio Y MaletBrazilElwin Sharvill PROPOSAL
Juan Q GarufiBrazilIvan Magalhaes NEW
Misaki R ButtJapanOnyama Limba RENEWAL
Smith G RoysterGermanyBernardo Dominic QUALIFIED
Silvio T WaycottSpainAmy Elsner QUALIFIED
Sinclair G GillianBrazilAsiya Javayant PROPOSAL
Maria E StensethUnited KingdomOnyama Limba NEGOTIATION
Greenwood D OstroskyCanadaStephen Shaw PROPOSAL
Ricardo K SaylorsSpainIoni Bowcher QUALIFIED
Silvio F RulapaughArgentinaIoni Bowcher QUALIFIED
Jones M TollnerAustraliaXuxue Feng NEGOTIATION
Chavez J WhobreyBrazilAsiya Javayant UNQUALIFIED
Greenwood U GlickGermanyIoni Bowcher NEGOTIATION
Leja T PaprockiAustraliaOnyama Limba NEW
Aika H PoquetteArgentinaAnna Fali UNQUALIFIED
Francesco R DoeFranceIvan Magalhaes UNQUALIFIED
Misaki G RoysterSpainAsiya Javayant NEW
Darci E GlickItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem M GauchoGermanyXuxue Feng NEW
Francesco I GarufiBrazilElwin Sharvill UNQUALIFIED
Morrow L StensethUnited KingdomElwin Sharvill PROPOSAL
Cody O DoeCanadaBernardo Dominic NEW
Julie F KuskoGermanyAsiya Javayant UNQUALIFIED
Alejandro V PerinSpainAnna Fali NEGOTIATION
Ashley J DarakjyBrazilElwin Sharvill PROPOSAL
Alejandro X CampainSpainIoni Bowcher UNQUALIFIED
Ricardo Y GillianRussiaStephen Shaw UNQUALIFIED
Maria R OldroydCanadaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja O WhobreyItaly2024-04-01King, Christopher A Esq NEW21Asiya Javayant
1001Tony X BriddickSpain2024-04-07Chemel, James L Cpa UNQUALIFIED19Bernardo Dominic
1002Johnson O WieserIndia2024-04-12Dorl, James J Esq QUALIFIED12Ivan Magalhaes
1003Isabel Q BowleyRussia2024-04-10King, Christopher A Esq NEW74Bernardo Dominic
1004Julie Z CaudyGermany2024-03-28King, Christopher A Esq RENEWAL5Asiya Javayant
1005Clifford K KuskoArgentina2024-04-19Commercial Press QUALIFIED41Bernardo Dominic
1006Juan H WaycottSpain2024-04-11Rousseaux, Michael Esq PROPOSAL99Ivan Magalhaes
1007Clifford P MacleadIndia2024-04-03King, Christopher A Esq PROPOSAL3Asiya Javayant
1008Morrow C FerenczCanada2024-04-15Truhlar And Truhlar Attys QUALIFIED46Elwin Sharvill
1009David T RulapaughIndia2024-04-24Benton, John B Jr QUALIFIED60Asiya Javayant
1010Rodrigues N WaycottGermany2024-04-07Chanay, Jeffrey A Esq UNQUALIFIED95Stephen Shaw
1011Antonio Q KuskoCanada2024-04-07Rangoni Of Florence RENEWAL1Onyama Limba
1012Ashley L ChuiItaly2024-04-03Chanay, Jeffrey A Esq QUALIFIED7Anna Fali
1013Kadeem C BriddickUnited Kingdom2024-04-17Morlong Associates RENEWAL99Asiya Javayant
1014Darci D TollnerIndia2024-04-16Feltz Printing Service RENEWAL96Bernardo Dominic
1015Rodrigues T MarrierSpain2024-04-23Truhlar And Truhlar Attys NEGOTIATION13Xuxue Feng
1016Cody N SlusarskiRussia2024-04-10Chemel, James L Cpa QUALIFIED0Anna Fali
1017Izzy O KuskoRussia2024-03-29Morlong Associates PROPOSAL63Ivan Magalhaes
1018Johnson G IturbideFrance2024-04-08Commercial Press PROPOSAL57Anna Fali
1019Sinclair Q PerinIndia2024-04-18Truhlar And Truhlar Attys PROPOSAL81Elwin Sharvill
1020Mayumi F CampainUnited Kingdom2024-04-08Morlong Associates UNQUALIFIED6Bernardo Dominic
1021Leja F CaudyAustralia2024-03-30Dorl, James J Esq NEGOTIATION94Bernardo Dominic
1022Deepesh U ShinkoFrance2024-04-07Feltz Printing Service QUALIFIED3Amy Elsner
1023Costa U RoysterAustralia2024-04-19Commercial Press QUALIFIED40Stephen Shaw
1024Rodrigues P SaylorsBrazil2024-04-07Rangoni Of Florence NEGOTIATION98Stephen Shaw
1025Claire Z OldroydGermany2024-04-20Dorl, James J Esq PROPOSAL45Bernardo Dominic
1026Ivar Z KolmetzCanada2024-04-13Morlong Associates UNQUALIFIED72Ivan Magalhaes
1027Izzy B OldroydCanada2024-04-09King, Christopher A Esq NEGOTIATION63Ioni Bowcher
1028Nicolas A RutaJapan2024-04-25Buckley Miller Wright QUALIFIED20Ivan Magalhaes
1029Aruna U BowleyUnited Kingdom2024-04-06Buckley Miller Wright UNQUALIFIED79Elwin Sharvill
1030Salvatore N DarakjyCanada2024-04-08Morlong Associates PROPOSAL18Asiya Javayant
1031Munro P RutaIndia2024-04-21Chanay, Jeffrey A Esq NEW3Ioni Bowcher
1032Greenwood F SaylorsIndia2024-04-08Chapman, Ross E Esq NEW67Xuxue Feng
1033Aditya M RimUnited Kingdom2024-04-05Buckley Miller Wright NEGOTIATION36Elwin Sharvill
1034Jones Z WieserBrazil2024-04-16Rangoni Of Florence RENEWAL50Asiya Javayant
1035Izzy P WieserFrance2024-03-30Printing Dimensions RENEWAL51Anna Fali
1036Maisha I ShinkoBrazil2024-04-15Benton, John B Jr QUALIFIED12Elwin Sharvill
1037Cody K StensethCanada2024-04-13Feltz Printing Service NEGOTIATION71Xuxue Feng
1038Francesco J SaylorsJapan2024-04-25Dorl, James J Esq NEGOTIATION6Anna Fali
1039Mujtaba C StensethJapan2024-04-15Benton, John B Jr PROPOSAL34Elwin Sharvill
1040Rodrigues S DilliardIndia2024-04-05Chanay, Jeffrey A Esq NEGOTIATION73Onyama Limba
1041Isabel L OldroydItaly2024-04-04Chapman, Ross E Esq NEW21Bernardo Dominic
1042Izzy U SergiIndia2024-03-31Feltz Printing Service NEW55Bernardo Dominic
1043Isabel M FerenczUnited Kingdom2024-04-25Benton, John B Jr NEW32Stephen Shaw
1044Jeanfrancois W WhobreySpain2024-04-22King, Christopher A Esq PROPOSAL45Ivan Magalhaes
1045Nicolas P CampainBrazil2024-04-05Feiner Bros NEGOTIATION12Amy Elsner
1046Misaki O IturbideGermany2024-04-12Truhlar And Truhlar Attys RENEWAL56Ivan Magalhaes
1047Ricardo M CaldareraAustralia2024-04-20Chanay, Jeffrey A Esq RENEWAL42Xuxue Feng
1048Chavez U BriddickGermany2024-04-21Commercial Press QUALIFIED45Elwin Sharvill
1049Ricardo L StensethAustralia2024-04-18Feiner Bros UNQUALIFIED87Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony R RutaUnited KingdomOnyama Limba NEW
Alejandro Z IturbideBrazilAsiya Javayant PROPOSAL
Jefferson B MaletFranceAnna Fali QUALIFIED
Jefferson I OstroskyAustraliaBernardo Dominic RENEWAL
James D SchemmerAustraliaStephen Shaw NEW
Adams F FollerArgentinaXuxue Feng NEW
Greenwood O AlbaresSpainAnna Fali RENEWAL
David J DarakjyRussiaAsiya Javayant PROPOSAL
Deepesh M OstroskyArgentinaAnna Fali RENEWAL
James C MaletJapanXuxue Feng QUALIFIED
Claire B FerenczItalyXuxue Feng NEW
Ricardo H InouyeBrazilAmy Elsner QUALIFIED
Murillo Y FollerCanadaAmy Elsner UNQUALIFIED
Izzy M GillianArgentinaBernardo Dominic NEGOTIATION
Nicolas Y IturbideIndiaElwin Sharvill QUALIFIED
Salvatore Z AmigonJapanAmy Elsner NEW
Silvio D SergiFranceXuxue Feng PROPOSAL
Clifford N CaldareraItalyOnyama Limba PROPOSAL
Mayumi J DilliardRussiaElwin Sharvill PROPOSAL
Rodrigues T SlusarskiJapanAsiya Javayant UNQUALIFIED
Tony H GillianFranceAsiya Javayant PROPOSAL
Chavez O DarakjyGermanyAmy Elsner RENEWAL
Arvin X FollerUnited KingdomOnyama Limba PROPOSAL
Izzy N InouyeIndiaAmy Elsner PROPOSAL
Jones G KolmetzGermanyIvan Magalhaes QUALIFIED
Leja S StensethFranceBernardo Dominic UNQUALIFIED
Clifford Y OstroskyJapanIoni Bowcher RENEWAL
Nicolas K FlosiBrazilBernardo Dominic NEW
Aika O CaudyJapanAsiya Javayant PROPOSAL
Aruna J VenereBrazilIvan Magalhaes QUALIFIED
Nicolas B StockhamJapanStephen Shaw PROPOSAL
Clifford T TollnerAustraliaXuxue Feng PROPOSAL
Antonio U FerenczJapanAsiya Javayant PROPOSAL
Wickens L ButtRussiaAsiya Javayant RENEWAL
Isabel I KuskoGermanyAsiya Javayant NEGOTIATION
James W CaudyFranceBernardo Dominic RENEWAL
Francesco W MaletUnited KingdomOnyama Limba QUALIFIED
Aruna K FigeroaSpainXuxue Feng RENEWAL
Aika C GauchoItalyElwin Sharvill RENEWAL
Smith A ShinkoCanadaElwin Sharvill QUALIFIED
Juan Q DarakjyJapanIoni Bowcher UNQUALIFIED
Silvio J FollerSpainAnna Fali PROPOSAL
David E RutaUnited KingdomAmy Elsner NEW
Darci F TollnerUnited KingdomElwin Sharvill PROPOSAL
Ricardo O MaletJapanElwin Sharvill PROPOSAL
Aika H PoquetteItalyXuxue Feng RENEWAL
Jennifer J OstroskyUnited KingdomAmy Elsner PROPOSAL
Aditya Z MacleadJapanStephen Shaw UNQUALIFIED
Jones E StensethCanadaBernardo Dominic NEW
Leon T StensethAustraliaIoni Bowcher PROPOSAL
Frozen Columns
Name
Octavia D Oldroyd
James E Rulapaugh
Jennifer H Figeroa
Nicolas P Morasca
Darci Q Rim
Jeanfrancois C Flosi
Julie L Ferencz
Johnson O Malet
Ricardo O Kusko
Murillo G Briddick
Deepesh I Bolognia
Leja I Ruta
Kadeem G Dilliard
Ricardo T Bolognia
Claire Q Glick
Morrow G Rulapaugh
Deepesh Y Tollner
Cody V Darakjy
Ivar T Gillian
Mayumi A Vocelka
Faith Q Flosi
Izzy B Doe
Rodrigues A Paprocki
Deepesh K Schemmer
Jones O Darakjy
Jennifer W Malet
Jones F Bowley
Wickens X Tollner
Jeanfrancois I Iturbide
Greenwood V Ostrosky
Mujtaba F Chui
Smith J Schemmer
Faith C Amigon
Ivar O Nestle
Clifford P Bolognia
David B Caudy
Ricardo F Marrier
Antonio S Stenseth
Chavez N Paprocki
Octavia E Ruta
Chavez O Paprocki
Stacey E Whobrey
Ricardo C Iturbide
Greenwood Q Ruta
Arvin N Gaucho
Emily Y Shinko
Faith F Tollner
Jennifer W Stenseth
Kadeem Q Ostrosky
Ivar J Dilliard
IdCountryDate
1000Argentina2024-04-05
1001India2024-04-06
1002India2024-03-30
1003Canada2024-04-07
1004Germany2024-04-06
1005France2024-04-10
1006Brazil2024-04-03
1007Japan2024-04-21
1008France2024-03-29
1009United Kingdom2024-04-03
1010India2024-04-19
1011Canada2024-03-29
1012France2024-04-23
1013Italy2024-04-22
1014United Kingdom2024-04-11
1015India2024-04-11
1016Canada2024-04-07
1017Russia2024-04-06
1018Canada2024-03-28
1019France2024-04-09
1020Spain2024-04-24
1021Germany2024-04-12
1022Argentina2024-04-18
1023Italy2024-04-16
1024Canada2024-04-17
1025Brazil2024-04-04
1026India2024-04-04
1027Spain2024-03-30
1028Japan2024-04-21
1029Australia2024-04-12
1030Argentina2024-04-21
1031France2024-04-07
1032Germany2024-04-26
1033Japan2024-04-19
1034United Kingdom2024-04-08
1035France2024-04-21
1036Russia2024-03-29
1037France2024-04-16
1038Russia2024-04-13
1039France2024-04-14
1040United Kingdom2024-04-16
1041United Kingdom2024-04-22
1042Russia2024-04-10
1043France2024-04-08
1044Spain2024-04-21
1045United Kingdom2024-03-29
1046Japan2024-03-30
1047Italy2024-04-22
1048France2024-04-22
1049United Kingdom2024-04-02

On-Demand Data

NameIdCountryDate
Isabel C Inouye1000Spain2024-04-12
Francesco Y Chui1001Canada2024-04-08
Chavez N Perin1002Canada2024-04-01
Sinclair X Saylors1003Spain2024-04-18
Jefferson R Saylors1004Argentina2024-03-31
Alejandro R Caldarera1005Russia2024-04-24
Julie R Bolognia1006United Kingdom2024-04-20
Aruna Y Venere1007Japan2024-04-19
Stacey G Gaucho1008Spain2024-04-15
Claire M Bolognia1009Australia2024-04-20
David J Malet1010Italy2024-04-18
Silvio X Poquette1011Brazil2024-03-31
Alejandro H Slusarski1012Canada2024-04-22
Jennifer T Albares1013Canada2024-04-15
Jefferson D Waycott1014United Kingdom2024-04-21
Faith I Doe1015Canada2024-04-14
James G Caldarera1016Australia2024-04-26
Ivar N Butt1017Canada2024-04-09
Ashley O Sergi1018India2024-04-19
Silvio O Ostrosky1019Australia2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow E GarufiBrazilElwin Sharvill RENEWAL
Antonio G AlbaresSpainAnna Fali PROPOSAL
Clifford O OldroydArgentinaXuxue Feng QUALIFIED
Kaitlin X FigeroaJapanAmy Elsner UNQUALIFIED
Francesco F CaudyArgentinaIvan Magalhaes NEW
Jones B FigeroaGermanyAsiya Javayant NEGOTIATION
Wickens B MacleadArgentinaOnyama Limba QUALIFIED
Ricardo N PerinFranceOnyama Limba NEGOTIATION
Leon U FerenczAustraliaAmy Elsner UNQUALIFIED
Ivar J InouyeItalyElwin Sharvill PROPOSAL
Costa Y StensethArgentinaIoni Bowcher UNQUALIFIED
Maria Q DarakjyIndiaElwin Sharvill NEW
Aditya N ButtJapanOnyama Limba NEW
Octavia X MaletUnited KingdomXuxue Feng QUALIFIED
Chavez K PerinFranceIoni Bowcher PROPOSAL
Arvin C PerinIndiaElwin Sharvill NEW
Isabel S SaylorsBrazilAnna Fali NEW
Kaitlin I PaprockiSpainAnna Fali PROPOSAL
Stacey J BologniaArgentinaAnna Fali NEW
James H CaldareraAustraliaIvan Magalhaes NEGOTIATION
Octavia R MaletIndiaIoni Bowcher PROPOSAL
Wickens G PoquetteGermanyOnyama Limba UNQUALIFIED
Jefferson R SlusarskiIndiaElwin Sharvill UNQUALIFIED
Morrow G FlosiArgentinaAsiya Javayant NEW
Chavez F NickaCanadaAnna Fali PROPOSAL
Claire J GlickItalyAsiya Javayant RENEWAL
Aditya G KuskoGermanyIoni Bowcher RENEWAL
Isabel T BologniaUnited KingdomXuxue Feng NEW
David I StockhamJapanIvan Magalhaes NEW
Salvatore V RutaSpainAmy Elsner NEW
Jones Z StockhamItalyElwin Sharvill RENEWAL
Kadeem O BologniaFranceBernardo Dominic RENEWAL
Jefferson H RutaJapanBernardo Dominic NEGOTIATION
Darci D PaprockiUnited KingdomIoni Bowcher PROPOSAL
Chavez N VocelkaCanadaAmy Elsner RENEWAL
Maria L CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
James I DilliardIndiaIvan Magalhaes NEGOTIATION
Antonio H DoeAustraliaStephen Shaw UNQUALIFIED
Leon H GillianBrazilAmy Elsner NEW
Mujtaba Q CaudyIndiaBernardo Dominic UNQUALIFIED

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