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
Murillo O MaletJapanXuxue Feng UNQUALIFIED
Maisha I RoysterIndiaBernardo Dominic NEGOTIATION
Izzy U CaldareraArgentinaIoni Bowcher RENEWAL
Adams S FerenczCanadaAnna Fali UNQUALIFIED
Mujtaba S CampainAustraliaBernardo Dominic NEW
Rodrigues O CampainIndiaOnyama Limba NEW
Morrow A CaudyJapanIvan Magalhaes RENEWAL
Sinclair V CampainCanadaStephen Shaw NEW
Alejandro B StockhamRussiaAsiya Javayant RENEWAL
Maisha B BowleyCanadaStephen Shaw QUALIFIED
David K VocelkaBrazilOnyama Limba PROPOSAL
Silvio J GillianBrazilElwin Sharvill QUALIFIED
Smith X ShinkoRussiaStephen Shaw QUALIFIED
Deepesh Z FerenczUnited KingdomOnyama Limba PROPOSAL
Kadeem P OstroskyJapanStephen Shaw NEW
Aruna J BowleyGermanyAsiya Javayant PROPOSAL
Leon P GauchoItalyStephen Shaw QUALIFIED
Faith U InouyeBrazilBernardo Dominic NEW
Misaki T NickaIndiaIoni Bowcher QUALIFIED
Ashley Y WaycottAustraliaElwin Sharvill NEW
Greenwood H MarrierArgentinaIoni Bowcher PROPOSAL
Johnson M NickaAustraliaIoni Bowcher UNQUALIFIED
Cody S FlosiItalyIoni Bowcher NEGOTIATION
Aditya M TollnerRussiaIvan Magalhaes NEGOTIATION
Ashley M DoeGermanyStephen Shaw RENEWAL
Kadeem F TollnerFranceIoni Bowcher QUALIFIED
Wickens C GillianArgentinaBernardo Dominic PROPOSAL
Aika W GillianItalyBernardo Dominic NEW
Stacey E SlusarskiAustraliaIvan Magalhaes QUALIFIED
Faith F SlusarskiRussiaBernardo Dominic QUALIFIED
Munro B InouyeUnited KingdomXuxue Feng NEGOTIATION
Cody F TollnerGermanyAsiya Javayant NEGOTIATION
Greenwood A KolmetzItalyStephen Shaw NEW
Jeanfrancois A StensethFranceAnna Fali NEW
Greenwood I ShinkoRussiaOnyama Limba UNQUALIFIED
Nicolas T FerenczItalyAnna Fali RENEWAL
Darci I StockhamGermanyXuxue Feng PROPOSAL
Isabel Z ChuiGermanyIvan Magalhaes UNQUALIFIED
Tony A GauchoCanadaStephen Shaw RENEWAL
Jefferson U AlbaresFranceOnyama Limba NEGOTIATION
Mayumi C SlusarskiFranceIvan Magalhaes PROPOSAL
Ashley W CaudyGermanyBernardo Dominic PROPOSAL
Mayumi I DilliardRussiaIoni Bowcher QUALIFIED
Nicolas T FollerFranceAsiya Javayant NEGOTIATION
Costa Q VocelkaGermanyAsiya Javayant NEGOTIATION
Costa P OldroydBrazilOnyama Limba QUALIFIED
Clifford K IturbideFranceElwin Sharvill PROPOSAL
Smith E DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Morrow V StockhamGermanyXuxue Feng NEGOTIATION
Antonio D SaylorsBrazilAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams N MacleadJapanIoni Bowcher UNQUALIFIED
Jefferson X StockhamJapanAsiya Javayant RENEWAL
Antonio B SaylorsItalyIvan Magalhaes RENEWAL
Jefferson E NestleRussiaIoni Bowcher NEW
Aruna N ChuiBrazilAsiya Javayant QUALIFIED
Julie W CampainBrazilIoni Bowcher QUALIFIED
Izzy U WieserFranceAsiya Javayant NEW
Izzy N VenereSpainAsiya Javayant QUALIFIED
Deepesh M MacleadFranceXuxue Feng UNQUALIFIED
Maisha X StockhamGermanyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco P IturbideIndia2024-04-22Truhlar And Truhlar Attys NEGOTIATION43Asiya Javayant
1001Greenwood C OldroydCanada2024-03-29Printing Dimensions NEW8Stephen Shaw
1002Mujtaba B AlbaresFrance2024-04-15Dorl, James J Esq NEW78Xuxue Feng
1003Aika L IturbideFrance2024-04-16Commercial Press NEGOTIATION91Amy Elsner
1004Silvio Y NickaJapan2024-04-18Dorl, James J Esq QUALIFIED49Asiya Javayant
1005James E IturbideSpain2024-03-28Rousseaux, Michael Esq NEW61Onyama Limba
1006Aruna U PerinFrance2024-04-11King, Christopher A Esq QUALIFIED56Ioni Bowcher
1007Izzy I AlbaresCanada2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED25Onyama Limba
1008Salvatore V RimFrance2024-04-13Rangoni Of Florence QUALIFIED69Amy Elsner
1009Kadeem D StensethFrance2024-04-21Benton, John B Jr QUALIFIED67Bernardo Dominic
1010Sinclair G AlbaresUnited Kingdom2024-04-11Rangoni Of Florence NEW89Ioni Bowcher
1011Murillo S ChuiSpain2024-04-03Morlong Associates QUALIFIED4Ioni Bowcher
1012Darci O ShinkoFrance2024-04-08Chemel, James L Cpa NEW66Onyama Limba
1013Leja L GlickJapan2024-04-08Chanay, Jeffrey A Esq NEGOTIATION55Ioni Bowcher
1014Leon D ShinkoIndia2024-04-07Morlong Associates UNQUALIFIED4Ivan Magalhaes
1015Kadeem U WaycottFrance2024-03-27King, Christopher A Esq NEW26Asiya Javayant
1016Deepesh Q OldroydSpain2024-04-12Buckley Miller Wright QUALIFIED64Xuxue Feng
1017James L SaylorsCanada2024-04-20Benton, John B Jr PROPOSAL61Stephen Shaw
1018Clifford E NickaCanada2024-04-03Feltz Printing Service QUALIFIED66Amy Elsner
1019James R FlosiBrazil2024-04-23Chemel, James L Cpa RENEWAL3Stephen Shaw
1020Salvatore N SchemmerItaly2024-04-23Benton, John B Jr RENEWAL6Ivan Magalhaes
1021Wickens V ButtArgentina2024-04-24Feiner Bros RENEWAL71Bernardo Dominic
1022Salvatore K CaudyCanada2024-04-01Truhlar And Truhlar Attys NEGOTIATION31Asiya Javayant
1023Adams G MarrierGermany2024-04-18Dorl, James J Esq UNQUALIFIED5Amy Elsner
1024Isabel L GarufiUnited Kingdom2024-04-06Chapman, Ross E Esq QUALIFIED90Bernardo Dominic
1025Tony G TollnerFrance2024-04-21Feiner Bros NEW81Asiya Javayant
1026Leon W OstroskySpain2024-04-20Commercial Press PROPOSAL7Onyama Limba
1027Aruna U MarrierUnited Kingdom2024-04-24Chanay, Jeffrey A Esq QUALIFIED77Bernardo Dominic
1028Aditya F MaletIndia2024-04-18Benton, John B Jr QUALIFIED13Stephen Shaw
1029Alejandro N GarufiCanada2024-04-13King, Christopher A Esq QUALIFIED81Xuxue Feng
1030Faith J PoquetteIndia2024-04-17Printing Dimensions NEW65Amy Elsner
1031Octavia U WieserAustralia2024-04-09Feltz Printing Service UNQUALIFIED10Onyama Limba
1032Silvio R GlickJapan2024-04-13Commercial Press NEGOTIATION85Stephen Shaw
1033Mayumi W RulapaughAustralia2024-04-24Feltz Printing Service RENEWAL14Xuxue Feng
1034Aditya G BriddickGermany2024-04-09Rangoni Of Florence PROPOSAL89Ioni Bowcher
1035Ivar S TollnerRussia2024-04-22King, Christopher A Esq NEW8Ivan Magalhaes
1036Jones Q BologniaRussia2024-04-08Chemel, James L Cpa NEGOTIATION26Onyama Limba
1037Ivar R MaletFrance2024-04-10Truhlar And Truhlar Attys NEW51Elwin Sharvill
1038Adams E NickaCanada2024-04-19King, Christopher A Esq QUALIFIED91Anna Fali
1039Jeanfrancois J KolmetzRussia2024-03-28Chapman, Ross E Esq NEW45Anna Fali
1040Maisha G WaycottItaly2024-04-11Rousseaux, Michael Esq QUALIFIED56Asiya Javayant
1041Rodrigues S DilliardIndia2024-04-03Rousseaux, Michael Esq PROPOSAL27Xuxue Feng
1042Stacey A DilliardBrazil2024-04-24Buckley Miller Wright QUALIFIED35Onyama Limba
1043Adams I GauchoAustralia2024-04-02Feiner Bros RENEWAL65Amy Elsner
1044Rodrigues A AmigonAustralia2024-03-27Chemel, James L Cpa UNQUALIFIED86Asiya Javayant
1045Silvio M OldroydCanada2024-04-19Chanay, Jeffrey A Esq QUALIFIED6Elwin Sharvill
1046Mayumi O CampainFrance2024-04-15Benton, John B Jr PROPOSAL22Ivan Magalhaes
1047Ashley V OstroskyUnited Kingdom2024-04-03Feiner Bros QUALIFIED78Bernardo Dominic
1048Rodrigues R SlusarskiBrazil2024-04-07Chemel, James L Cpa PROPOSAL5Ivan Magalhaes
1049Maisha S InouyeBrazil2024-04-11Feiner Bros QUALIFIED24Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Silvio I InouyeRussiaOnyama Limba QUALIFIED
Ricardo U WaycottAustraliaXuxue Feng QUALIFIED
Mujtaba W PerinAustraliaAnna Fali PROPOSAL
Deepesh U CampainAustraliaIoni Bowcher PROPOSAL
Wickens W SaylorsGermanyIvan Magalhaes QUALIFIED
Octavia A VenereFranceElwin Sharvill NEGOTIATION
David S KolmetzGermanyBernardo Dominic UNQUALIFIED
Alejandro R MarrierGermanyAsiya Javayant UNQUALIFIED
Chavez J ButtCanadaXuxue Feng UNQUALIFIED
Ricardo K RimCanadaElwin Sharvill RENEWAL
Leon N ChuiUnited KingdomOnyama Limba NEW
Stacey C MarrierSpainAmy Elsner PROPOSAL
Juan Y NickaItalyElwin Sharvill QUALIFIED
Octavia Y VocelkaGermanyOnyama Limba UNQUALIFIED
Kadeem G KolmetzRussiaElwin Sharvill RENEWAL
Deepesh H MarrierArgentinaIoni Bowcher QUALIFIED
Izzy A GauchoArgentinaAsiya Javayant RENEWAL
Stacey V DilliardBrazilIvan Magalhaes QUALIFIED
Isabel F PaprockiCanadaElwin Sharvill NEGOTIATION
Mujtaba B DilliardUnited KingdomOnyama Limba UNQUALIFIED
Francesco K ButtItalyAnna Fali UNQUALIFIED
Jeanfrancois D MarrierItalyElwin Sharvill QUALIFIED
Johnson S WaycottRussiaBernardo Dominic QUALIFIED
Darci Z KuskoSpainAnna Fali PROPOSAL
Leja T BowleyArgentinaIvan Magalhaes NEGOTIATION
Smith J MaletSpainBernardo Dominic PROPOSAL
Aruna I SlusarskiSpainElwin Sharvill PROPOSAL
Juan J MorascaFranceAsiya Javayant UNQUALIFIED
Faith J GarufiSpainIoni Bowcher UNQUALIFIED
Leon N KolmetzJapanOnyama Limba UNQUALIFIED
Clifford M MaletBrazilXuxue Feng UNQUALIFIED
Emily P RutaArgentinaOnyama Limba RENEWAL
Claire A PerinJapanElwin Sharvill RENEWAL
Wickens A AlbaresSpainAmy Elsner RENEWAL
Costa Q InouyeFranceOnyama Limba NEGOTIATION
Izzy Z WhobreyIndiaBernardo Dominic RENEWAL
Wickens B MorascaAustraliaOnyama Limba UNQUALIFIED
Wickens V TollnerUnited KingdomXuxue Feng QUALIFIED
Murillo R WieserItalyAnna Fali UNQUALIFIED
Francesco G SlusarskiItalyXuxue Feng NEW
Darci D TollnerItalyIoni Bowcher QUALIFIED
Emily D TollnerGermanyXuxue Feng QUALIFIED
Clifford B SergiCanadaStephen Shaw PROPOSAL
Ashley D DilliardJapanBernardo Dominic RENEWAL
Faith B KuskoBrazilBernardo Dominic QUALIFIED
Murillo V PerinBrazilElwin Sharvill UNQUALIFIED
Clifford N FerenczCanadaAnna Fali UNQUALIFIED
Morrow E InouyeJapanIvan Magalhaes UNQUALIFIED
Salvatore A GlickCanadaOnyama Limba RENEWAL
Juan Q FerenczCanadaIvan Magalhaes NEW
Frozen Columns
Name
Deepesh S Garufi
Leja W Oldroyd
Juan Q Doe
Clifford Q Shinko
Mayumi S Kolmetz
Deepesh L Marrier
Greenwood R Venere
Octavia B Doe
Chavez H Bowley
Adams W Schemmer
Kaitlin F Shinko
Faith G Kusko
Antonio E Flosi
Izzy I Foller
Ashley N Stockham
Darci P Slusarski
David U Saylors
Morrow Y Glick
Morrow N Kusko
Octavia M Bowley
Jefferson F Flosi
Faith C Butt
Murillo V Bolognia
Octavia E Foller
Aruna C Briddick
Juan Z Kusko
Mayumi O Nicka
Mujtaba W Poquette
Rodrigues C Malet
Darci P Flosi
Darci T Briddick
Tony A Stockham
Jefferson G Rulapaugh
Ivar F Morasca
Stacey V Ferencz
Arvin Q Glick
Aruna U Maclead
Aika Z Rulapaugh
Johnson I Sergi
Chavez A Marrier
Silvio M Slusarski
Misaki M Kolmetz
Morrow F Foller
Faith K Oldroyd
Darci C Inouye
Jeanfrancois D Schemmer
Mayumi G Gaucho
Sinclair Y Vocelka
Deepesh A Nicka
Smith X Albares
IdCountryDate
1000Australia2024-04-14
1001Italy2024-04-08
1002Germany2024-03-31
1003Russia2024-04-14
1004Canada2024-03-30
1005France2024-04-06
1006France2024-03-29
1007Russia2024-04-14
1008Russia2024-04-02
1009Japan2024-04-08
1010Brazil2024-04-25
1011United Kingdom2024-04-02
1012United Kingdom2024-04-03
1013Australia2024-03-27
1014Canada2024-04-03
1015Japan2024-03-30
1016Brazil2024-04-08
1017Canada2024-04-10
1018Australia2024-04-03
1019Italy2024-04-02
1020France2024-03-28
1021India2024-04-06
1022Brazil2024-04-09
1023Germany2024-04-10
1024France2024-04-07
1025Canada2024-04-02
1026Russia2024-04-04
1027Canada2024-04-01
1028Spain2024-04-02
1029France2024-04-10
1030Spain2024-04-09
1031France2024-04-25
1032Australia2024-04-07
1033Brazil2024-04-07
1034India2024-04-14
1035Canada2024-04-01
1036United Kingdom2024-04-01
1037India2024-04-01
1038Russia2024-04-08
1039Australia2024-03-31
1040Spain2024-04-11
1041Germany2024-03-30
1042Russia2024-04-10
1043France2024-04-17
1044Russia2024-04-09
1045United Kingdom2024-04-04
1046Australia2024-04-22
1047United Kingdom2024-04-13
1048Argentina2024-04-24
1049Russia2024-04-20

On-Demand Data

NameIdCountryDate
Ivar F Waycott1000Brazil2024-04-07
Claire J Inouye1001Russia2024-04-22
Claire H Nicka1002Italy2024-03-29
Juan R Stockham1003India2024-04-13
Jennifer H Marrier1004Italy2024-04-07
Octavia P Ostrosky1005Spain2024-04-23
James M Figeroa1006Australia2024-04-06
Kaitlin L Campain1007Brazil2024-04-17
Isabel L Venere1008Italy2024-04-23
Mujtaba V Nestle1009Australia2024-04-17
Cody H Caudy1010Spain2024-04-08
Tony P Rulapaugh1011Spain2024-04-01
Claire W Garufi1012Italy2024-04-21
Smith M Venere1013Australia2024-04-10
Kadeem Z Whobrey1014Canada2024-04-01
David I Oldroyd1015Brazil2024-04-12
Izzy K Nestle1016United Kingdom2024-04-10
Morrow S Poquette1017Australia2024-04-16
Faith N Venere1018Japan2024-04-03
Darci E Garufi1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James T IturbideGermanyAmy Elsner QUALIFIED
Ashley S FlosiSpainStephen Shaw NEW
Ashley G WaycottGermanyAnna Fali NEW
Ashley V FollerRussiaAsiya Javayant NEGOTIATION
Mayumi W RulapaughGermanyElwin Sharvill NEGOTIATION
Leon F SlusarskiUnited KingdomIvan Magalhaes NEW
Clifford K PaprockiBrazilBernardo Dominic NEGOTIATION
Claire B TollnerAustraliaStephen Shaw QUALIFIED
Munro F SlusarskiJapanElwin Sharvill NEGOTIATION
Cody E MacleadArgentinaOnyama Limba RENEWAL
Leja W AmigonCanadaIvan Magalhaes NEW
Silvio C BowleyIndiaAsiya Javayant QUALIFIED
Ricardo E ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore E FigeroaAustraliaIoni Bowcher NEW
Chavez Q MacleadUnited KingdomAnna Fali PROPOSAL
David Q PoquetteFranceXuxue Feng NEW
Deepesh O PerinBrazilAnna Fali RENEWAL
Morrow I RutaCanadaBernardo Dominic RENEWAL
Silvio L BowleyGermanyIvan Magalhaes NEW
Claire Y CampainAustraliaAsiya Javayant NEW
Smith L RulapaughAustraliaElwin Sharvill PROPOSAL
Stacey C OldroydArgentinaAmy Elsner UNQUALIFIED
Jones X PaprockiIndiaStephen Shaw NEW
Jones S FerenczSpainXuxue Feng QUALIFIED
Maria L RulapaughCanadaAmy Elsner NEW
Murillo C CaldareraAustraliaIvan Magalhaes RENEWAL
Juan J GlickFranceXuxue Feng QUALIFIED
Morrow K WhobreyFranceIoni Bowcher PROPOSAL
Arvin O RulapaughJapanIvan Magalhaes PROPOSAL
Alejandro G RutaGermanyXuxue Feng UNQUALIFIED
Arvin B BriddickBrazilAnna Fali RENEWAL
Sinclair X GarufiSpainXuxue Feng NEW
Mujtaba X BowleyJapanAnna Fali QUALIFIED
Greenwood Q GauchoUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois V OldroydArgentinaAsiya Javayant RENEWAL
Arvin Q SaylorsJapanStephen Shaw PROPOSAL
Ricardo Q IturbideItalyIvan Magalhaes PROPOSAL
Aditya M CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi Q SergiUnited KingdomAnna Fali UNQUALIFIED
Smith D IturbideIndiaIvan Magalhaes 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>