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
Costa W DoeUnited KingdomOnyama Limba NEW
James V AmigonCanadaIoni Bowcher RENEWAL
Aika O RimArgentinaXuxue Feng QUALIFIED
Morrow V WieserCanadaAmy Elsner UNQUALIFIED
Johnson A WaycottArgentinaIoni Bowcher QUALIFIED
Maisha H KolmetzCanadaOnyama Limba NEGOTIATION
Izzy L MaletGermanyOnyama Limba UNQUALIFIED
Smith L DoeAustraliaIvan Magalhaes UNQUALIFIED
Jones E KolmetzGermanyXuxue Feng NEW
Aditya Q WhobreyRussiaStephen Shaw NEGOTIATION
Alejandro F FerenczBrazilAmy Elsner NEGOTIATION
Arvin F BologniaJapanBernardo Dominic QUALIFIED
Salvatore Z InouyeUnited KingdomIvan Magalhaes RENEWAL
Jefferson O NestleFranceStephen Shaw NEW
Octavia G FlosiCanadaXuxue Feng RENEWAL
Ashley K WhobreyJapanAnna Fali UNQUALIFIED
Francesco U OldroydSpainIoni Bowcher PROPOSAL
Silvio C WaycottSpainAnna Fali PROPOSAL
Julie N MaletCanadaBernardo Dominic QUALIFIED
Leon O RoysterGermanyIoni Bowcher NEGOTIATION
Jefferson Q AlbaresJapanStephen Shaw NEW
Misaki B AmigonGermanyIoni Bowcher UNQUALIFIED
James S BriddickCanadaXuxue Feng NEGOTIATION
Tony V WhobreyRussiaOnyama Limba RENEWAL
Ivar J GauchoArgentinaStephen Shaw UNQUALIFIED
Nicolas Z DoeJapanStephen Shaw RENEWAL
Aika D SlusarskiItalyElwin Sharvill NEW
Wickens B DilliardSpainIoni Bowcher RENEWAL
Emily R NickaFranceElwin Sharvill PROPOSAL
Tony J DarakjyJapanOnyama Limba NEGOTIATION
Izzy P ChuiSpainAnna Fali NEW
Antonio T StensethRussiaIoni Bowcher RENEWAL
Sinclair Y DoeCanadaIvan Magalhaes NEGOTIATION
Maisha P FollerCanadaAnna Fali QUALIFIED
Ricardo G GlickCanadaIvan Magalhaes PROPOSAL
Greenwood I BriddickFranceAsiya Javayant NEW
Ashley C RimSpainBernardo Dominic PROPOSAL
Wickens G WaycottGermanyIvan Magalhaes QUALIFIED
David V SlusarskiGermanyElwin Sharvill QUALIFIED
Leja U MaletUnited KingdomStephen Shaw NEW
Stacey F GillianCanadaAmy Elsner NEGOTIATION
Morrow I DilliardGermanyIvan Magalhaes NEGOTIATION
Clifford L GlickGermanyIoni Bowcher NEGOTIATION
Juan Z StockhamUnited KingdomIvan Magalhaes RENEWAL
Francesco J MacleadFranceBernardo Dominic NEW
Mayumi L AmigonUnited KingdomIoni Bowcher RENEWAL
Francesco P FerenczCanadaAsiya Javayant UNQUALIFIED
Stacey K CaudyRussiaAnna Fali NEW
Chavez V WhobreyRussiaStephen Shaw QUALIFIED
Cody C BologniaRussiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson C ButtAustraliaIvan Magalhaes NEGOTIATION
Johnson C CaudyJapanIoni Bowcher QUALIFIED
Jennifer G InouyeItalyBernardo Dominic NEW
Aika E MorascaFranceBernardo Dominic NEGOTIATION
Octavia P KuskoAustraliaIoni Bowcher PROPOSAL
Chavez I InouyeUnited KingdomAnna Fali PROPOSAL
Mayumi E OstroskyJapanAsiya Javayant NEGOTIATION
Jennifer N SergiJapanIvan Magalhaes RENEWAL
Ricardo T SlusarskiJapanAnna Fali PROPOSAL
Ricardo T RulapaughItalyIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson O OstroskyIndia2024-03-27King, Christopher A Esq NEGOTIATION19Stephen Shaw
1001Cody M MorascaRussia2024-04-24King, Christopher A Esq PROPOSAL82Elwin Sharvill
1002Clifford A CampainCanada2024-04-01Benton, John B Jr NEW53Asiya Javayant
1003Morrow L CaldareraItaly2024-04-04Commercial Press RENEWAL38Ioni Bowcher
1004Maisha L RulapaughItaly2024-04-15Chemel, James L Cpa NEGOTIATION79Elwin Sharvill
1005Aika K MorascaUnited Kingdom2024-04-25Chapman, Ross E Esq PROPOSAL40Bernardo Dominic
1006Cody L VenereCanada2024-04-09Chanay, Jeffrey A Esq RENEWAL98Ioni Bowcher
1007Jefferson M FigeroaSpain2024-04-04Buckley Miller Wright PROPOSAL57Onyama Limba
1008Alejandro L SchemmerJapan2024-03-28Morlong Associates NEGOTIATION83Amy Elsner
1009Costa Q StensethAustralia2024-04-23Feiner Bros PROPOSAL58Asiya Javayant
1010Nicolas W MarrierIndia2024-04-01Feltz Printing Service NEGOTIATION79Elwin Sharvill
1011Deepesh R AlbaresAustralia2024-04-13Chanay, Jeffrey A Esq NEGOTIATION4Amy Elsner
1012Clifford G MaletGermany2024-04-13Printing Dimensions PROPOSAL80Ivan Magalhaes
1013Adams H OstroskyItaly2024-04-07Rousseaux, Michael Esq PROPOSAL10Stephen Shaw
1014Chavez N CaudyRussia2024-04-11Chemel, James L Cpa RENEWAL30Anna Fali
1015Leja I GlickCanada2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED4Bernardo Dominic
1016Rodrigues Y KuskoIndia2024-04-11Morlong Associates QUALIFIED48Xuxue Feng
1017Costa R CampainCanada2024-04-12Benton, John B Jr NEGOTIATION38Onyama Limba
1018Izzy H NestleAustralia2024-04-16Chapman, Ross E Esq RENEWAL46Stephen Shaw
1019Mujtaba N MaletGermany2024-03-28Buckley Miller Wright PROPOSAL53Ioni Bowcher
1020Jefferson F DilliardAustralia2024-04-04Truhlar And Truhlar Attys PROPOSAL45Bernardo Dominic
1021Adams X PaprockiRussia2024-04-17Truhlar And Truhlar Attys QUALIFIED12Onyama Limba
1022Cody N ChuiCanada2024-03-29Printing Dimensions QUALIFIED85Ivan Magalhaes
1023Leja I GillianRussia2024-04-08Morlong Associates PROPOSAL63Amy Elsner
1024Aditya V OldroydRussia2024-04-16Morlong Associates PROPOSAL52Asiya Javayant
1025Faith X AmigonArgentina2024-04-04Chanay, Jeffrey A Esq NEGOTIATION67Xuxue Feng
1026Murillo B VocelkaBrazil2024-04-11Rangoni Of Florence QUALIFIED94Onyama Limba
1027Aruna S FollerCanada2024-04-09Rangoni Of Florence RENEWAL34Asiya Javayant
1028Kadeem O FlosiJapan2024-03-28Benton, John B Jr UNQUALIFIED34Ioni Bowcher
1029Salvatore B GlickItaly2024-04-19Chemel, James L Cpa NEGOTIATION93Xuxue Feng
1030Izzy M AlbaresArgentina2024-04-18Chapman, Ross E Esq RENEWAL65Amy Elsner
1031Jeanfrancois L KolmetzRussia2024-04-10Chapman, Ross E Esq PROPOSAL26Ioni Bowcher
1032Francesco V KolmetzBrazil2024-04-09Feltz Printing Service NEGOTIATION56Onyama Limba
1033Juan B TollnerBrazil2024-04-03King, Christopher A Esq NEW30Asiya Javayant
1034Mayumi F ChuiArgentina2024-04-20Chemel, James L Cpa UNQUALIFIED77Elwin Sharvill
1035Aika F FollerBrazil2024-04-08Chanay, Jeffrey A Esq QUALIFIED91Elwin Sharvill
1036Clifford I CaldareraBrazil2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED48Xuxue Feng
1037Antonio S NestleItaly2024-04-25Morlong Associates QUALIFIED17Onyama Limba
1038Maisha B BowleyItaly2024-04-20Morlong Associates NEW44Stephen Shaw
1039Rodrigues V DoeCanada2024-04-09Feiner Bros NEGOTIATION65Ivan Magalhaes
1040Mujtaba Z VenereAustralia2024-04-24Chanay, Jeffrey A Esq PROPOSAL89Xuxue Feng
1041Smith L RoysterAustralia2024-04-05Buckley Miller Wright NEGOTIATION58Ioni Bowcher
1042Deepesh E GillianSpain2024-04-01King, Christopher A Esq NEW8Anna Fali
1043Greenwood D FollerUnited Kingdom2024-03-31Truhlar And Truhlar Attys NEW75Onyama Limba
1044Deepesh W BriddickGermany2024-03-30King, Christopher A Esq UNQUALIFIED27Ioni Bowcher
1045Izzy W GarufiBrazil2024-04-02Chemel, James L Cpa UNQUALIFIED35Asiya Javayant
1046Clifford Y MorascaArgentina2024-04-20Truhlar And Truhlar Attys NEGOTIATION5Xuxue Feng
1047Arvin H CampainRussia2024-04-16Truhlar And Truhlar Attys RENEWAL83Elwin Sharvill
1048Darci P IturbideBrazil2024-04-16Chanay, Jeffrey A Esq RENEWAL4Amy Elsner
1049Faith O BologniaGermany2024-04-19Buckley Miller Wright UNQUALIFIED21Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kadeem W TollnerJapanIoni Bowcher UNQUALIFIED
Juan S BowleyArgentinaAnna Fali NEW
Emily D FollerRussiaElwin Sharvill QUALIFIED
Leon X ButtIndiaXuxue Feng PROPOSAL
Rodrigues Y SlusarskiAustraliaOnyama Limba PROPOSAL
Greenwood W MacleadGermanyStephen Shaw RENEWAL
Faith A RoysterUnited KingdomStephen Shaw NEW
Rodrigues A VenereUnited KingdomStephen Shaw PROPOSAL
Murillo L CaldareraJapanAmy Elsner UNQUALIFIED
Emily G DoeJapanIvan Magalhaes RENEWAL
Tony C PerinFranceOnyama Limba RENEWAL
Izzy W DilliardFranceIvan Magalhaes RENEWAL
Greenwood S SaylorsArgentinaAmy Elsner QUALIFIED
Chavez S FollerFranceElwin Sharvill QUALIFIED
Tony E KolmetzFranceStephen Shaw PROPOSAL
Kaitlin L WaycottRussiaElwin Sharvill NEGOTIATION
Aditya W CampainJapanIoni Bowcher UNQUALIFIED
Salvatore L GlickJapanStephen Shaw NEW
David G AlbaresRussiaXuxue Feng NEW
Costa S MarrierJapanBernardo Dominic QUALIFIED
Wickens N GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Smith Q PerinArgentinaAsiya Javayant UNQUALIFIED
Francesco Y CampainJapanAmy Elsner PROPOSAL
Alejandro V InouyeGermanyAsiya Javayant NEW
Mayumi H WaycottArgentinaAsiya Javayant RENEWAL
Alejandro P VocelkaItalyXuxue Feng PROPOSAL
Smith C CampainArgentinaStephen Shaw NEGOTIATION
Maria Z SchemmerJapanOnyama Limba NEGOTIATION
Maria M DarakjyBrazilOnyama Limba PROPOSAL
Ivar O VocelkaUnited KingdomAmy Elsner NEW
Morrow I KolmetzUnited KingdomAnna Fali RENEWAL
Greenwood W CampainUnited KingdomIoni Bowcher NEGOTIATION
Antonio M BologniaSpainElwin Sharvill PROPOSAL
Jefferson Z FlosiCanadaAmy Elsner RENEWAL
Sinclair F ButtJapanAnna Fali QUALIFIED
Chavez U ShinkoBrazilXuxue Feng UNQUALIFIED
Leon J FlosiUnited KingdomAnna Fali PROPOSAL
Octavia G RulapaughBrazilAnna Fali PROPOSAL
Jeanfrancois I VenereFranceBernardo Dominic NEW
David Q GauchoAustraliaOnyama Limba QUALIFIED
Munro K PerinFranceXuxue Feng PROPOSAL
Smith K SergiJapanAsiya Javayant QUALIFIED
Isabel H WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Smith I RimUnited KingdomOnyama Limba QUALIFIED
Alejandro U OstroskyBrazilElwin Sharvill RENEWAL
Smith Z SaylorsRussiaElwin Sharvill RENEWAL
Stacey N WieserArgentinaBernardo Dominic NEW
Tony Z GarufiIndiaStephen Shaw UNQUALIFIED
Mujtaba T StockhamJapanOnyama Limba NEGOTIATION
Chavez T RulapaughBrazilElwin Sharvill RENEWAL
Frozen Columns
Name
Leon R Saylors
Misaki R Flosi
Kaitlin Q Saylors
Izzy A Malet
Cody C Rim
Maria S Chui
Ricardo E Amigon
Emily V Stockham
Aruna S Nestle
Ricardo Y Bolognia
Misaki Q Rim
Tony C Briddick
Deepesh J Perin
Wickens E Perin
Jefferson L Malet
Murillo B Butt
Julie O Marrier
James K Kolmetz
Chavez N Malet
Jeanfrancois H Ferencz
Maria U Briddick
Darci X Ostrosky
Misaki N Waycott
Cody B Flosi
Stacey L Nicka
Jones H Campain
Leja Y Oldroyd
Rodrigues E Nestle
Ivar B Perin
Leon L Caldarera
Alejandro O Gaucho
Jefferson N Figeroa
Silvio F Wieser
Munro I Schemmer
Maisha Z Darakjy
Smith Y Ferencz
Faith K Poquette
Aruna K Gaucho
Silvio Y Kusko
Emily D Inouye
Morrow X Malet
Kaitlin A Whobrey
Jones F Amigon
Emily B Rim
Misaki M Malet
Ricardo T Bowley
Wickens V Stockham
Tony W Darakjy
Faith M Ostrosky
Salvatore F Royster
IdCountryDate
1000Australia2024-04-25
1001United Kingdom2024-04-14
1002Argentina2024-04-04
1003Argentina2024-04-12
1004Argentina2024-04-22
1005Argentina2024-04-10
1006Argentina2024-04-08
1007Argentina2024-04-20
1008United Kingdom2024-04-13
1009France2024-04-06
1010Argentina2024-04-07
1011Australia2024-03-31
1012India2024-04-10
1013Canada2024-04-02
1014Italy2024-04-10
1015France2024-04-07
1016Russia2024-04-07
1017Germany2024-04-14
1018Canada2024-04-01
1019Argentina2024-04-05
1020Australia2024-04-07
1021Australia2024-04-17
1022Canada2024-04-20
1023Italy2024-04-07
1024Argentina2024-04-12
1025Australia2024-04-22
1026Argentina2024-04-01
1027India2024-04-15
1028Germany2024-03-31
1029Australia2024-04-18
1030Australia2024-04-14
1031Japan2024-04-07
1032Japan2024-03-29
1033Italy2024-04-12
1034Germany2024-04-12
1035France2024-04-18
1036India2024-04-02
1037United Kingdom2024-04-22
1038India2024-03-31
1039Argentina2024-04-08
1040Japan2024-04-04
1041Brazil2024-03-31
1042France2024-04-21
1043Japan2024-04-10
1044Germany2024-04-07
1045Brazil2024-04-17
1046Germany2024-04-18
1047Canada2024-04-17
1048Spain2024-04-01
1049Argentina2024-04-05

On-Demand Data

NameIdCountryDate
Jones O Whobrey1000United Kingdom2024-04-03
Salvatore R Darakjy1001France2024-04-06
Kaitlin T Campain1002Argentina2024-04-13
Darci Y Kusko1003India2024-04-12
Leon X Bolognia1004Brazil2024-04-24
Misaki S Whobrey1005France2024-04-05
Claire T Caudy1006Japan2024-04-08
Sinclair N Malet1007France2024-03-29
Jennifer K Gaucho1008Italy2024-04-10
Mujtaba Q Whobrey1009Italy2024-04-23
Izzy R Rim1010India2024-04-22
Faith L Flosi1011India2024-04-04
Johnson T Morasca1012Spain2024-04-20
Kaitlin A Royster1013India2024-04-25
Deepesh V Sergi1014Germany2024-04-09
Francesco D Gaucho1015Italy2024-04-03
Antonio G Nestle1016France2024-04-08
Maisha D Ostrosky1017Brazil2024-04-23
Darci F Garufi1018Spain2024-04-06
Mujtaba N Inouye1019United Kingdom2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore Y RoysterIndiaAmy Elsner NEW
Rodrigues K ShinkoUnited KingdomIoni Bowcher PROPOSAL
Tony Z MorascaIndiaAnna Fali PROPOSAL
Chavez J CaudyRussiaElwin Sharvill RENEWAL
Maria A WhobreySpainOnyama Limba UNQUALIFIED
Maria A BowleySpainAsiya Javayant NEGOTIATION
Cody G FerenczBrazilElwin Sharvill PROPOSAL
Juan S StockhamCanadaElwin Sharvill QUALIFIED
Silvio I DoeArgentinaAnna Fali PROPOSAL
Maria G AmigonGermanyIoni Bowcher NEGOTIATION
Juan V ShinkoItalyXuxue Feng NEGOTIATION
Izzy V AmigonJapanIoni Bowcher NEW
Arvin U OstroskyItalyXuxue Feng PROPOSAL
Jones B MarrierAustraliaAsiya Javayant PROPOSAL
Izzy J WaycottGermanyStephen Shaw QUALIFIED
David U BriddickCanadaElwin Sharvill UNQUALIFIED
Juan V RimFranceBernardo Dominic RENEWAL
Kaitlin T MaletArgentinaXuxue Feng QUALIFIED
Francesco I SlusarskiItalyAmy Elsner RENEWAL
Jeanfrancois Y VocelkaSpainAmy Elsner NEGOTIATION
Morrow H KolmetzItalyIoni Bowcher NEW
Mujtaba D CampainAustraliaOnyama Limba PROPOSAL
Octavia V GarufiAustraliaBernardo Dominic NEW
Leon N DarakjyGermanyIvan Magalhaes RENEWAL
Francesco D NickaIndiaStephen Shaw QUALIFIED
Isabel I BologniaItalyIvan Magalhaes QUALIFIED
Emily D NickaFranceStephen Shaw PROPOSAL
Jeanfrancois M SergiRussiaStephen Shaw RENEWAL
Jennifer O MacleadGermanyOnyama Limba NEGOTIATION
Antonio O MaletAustraliaIvan Magalhaes NEW
Ashley X FerenczCanadaAnna Fali NEGOTIATION
Leja T VocelkaSpainIvan Magalhaes PROPOSAL
Maisha D RimBrazilStephen Shaw PROPOSAL
Misaki D NickaFranceAsiya Javayant QUALIFIED
Kaitlin A NestleItalyXuxue Feng RENEWAL
Adams K CampainAustraliaElwin Sharvill RENEWAL
Jones C NestleAustraliaStephen Shaw QUALIFIED
Maisha F SaylorsFranceAnna Fali UNQUALIFIED
Smith D BologniaSpainElwin Sharvill NEGOTIATION
Morrow X StockhamAustraliaIoni Bowcher NEGOTIATION

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