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
Ivar W GarufiRussiaAsiya Javayant NEGOTIATION
Emily T MacleadRussiaAsiya Javayant QUALIFIED
Octavia X FerenczJapanAsiya Javayant RENEWAL
Juan S NestleAustraliaElwin Sharvill RENEWAL
Rodrigues R StockhamUnited KingdomElwin Sharvill RENEWAL
Emily B SaylorsJapanIvan Magalhaes QUALIFIED
Ashley H VocelkaBrazilAmy Elsner QUALIFIED
Wickens A GlickJapanXuxue Feng NEGOTIATION
Maisha I GillianRussiaOnyama Limba NEGOTIATION
Faith K BriddickItalyStephen Shaw UNQUALIFIED
Greenwood I CampainGermanyStephen Shaw QUALIFIED
Kaitlin N BologniaIndiaXuxue Feng QUALIFIED
Johnson L PaprockiIndiaXuxue Feng UNQUALIFIED
Ashley F StockhamCanadaAmy Elsner QUALIFIED
Misaki P RimUnited KingdomBernardo Dominic PROPOSAL
Mayumi T GillianFranceElwin Sharvill PROPOSAL
Aditya N StockhamFranceOnyama Limba QUALIFIED
Munro S RimUnited KingdomIoni Bowcher NEW
Salvatore I OldroydJapanIoni Bowcher PROPOSAL
Munro P GillianFranceBernardo Dominic PROPOSAL
Jones X InouyeFranceOnyama Limba RENEWAL
Leon D MaletGermanyOnyama Limba NEW
Rodrigues J PoquetteUnited KingdomAmy Elsner RENEWAL
Salvatore L FlosiIndiaAmy Elsner QUALIFIED
Rodrigues Q DarakjyGermanyOnyama Limba NEGOTIATION
Julie Q ShinkoIndiaOnyama Limba NEGOTIATION
Kaitlin O MarrierBrazilXuxue Feng NEGOTIATION
Kadeem T StockhamFranceIvan Magalhaes QUALIFIED
Tony B KuskoJapanIvan Magalhaes RENEWAL
Ivar V WaycottJapanXuxue Feng QUALIFIED
Aruna P OldroydAustraliaBernardo Dominic PROPOSAL
Adams M MorascaSpainIvan Magalhaes RENEWAL
Smith V DoeFranceXuxue Feng NEGOTIATION
Emily D OldroydAustraliaIvan Magalhaes RENEWAL
Aika R FigeroaArgentinaOnyama Limba NEW
Jennifer J TollnerSpainAmy Elsner QUALIFIED
Tony J MarrierBrazilAsiya Javayant RENEWAL
Morrow Y NestleFranceAmy Elsner RENEWAL
Chavez M MaletItalyIoni Bowcher NEGOTIATION
Aruna V PoquetteGermanyIoni Bowcher NEW
Jennifer U InouyeFranceIvan Magalhaes RENEWAL
Jennifer X SlusarskiAustraliaBernardo Dominic PROPOSAL
Mayumi L AlbaresBrazilBernardo Dominic PROPOSAL
Isabel Q GillianArgentinaAmy Elsner UNQUALIFIED
Mayumi N RulapaughCanadaXuxue Feng UNQUALIFIED
David W GlickBrazilStephen Shaw RENEWAL
Darci E VocelkaRussiaAsiya Javayant NEW
Morrow J RulapaughJapanIoni Bowcher NEGOTIATION
Maisha U DoeFranceIoni Bowcher QUALIFIED
Leja X WaycottAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Misaki Q GauchoFranceIoni Bowcher NEGOTIATION
Stacey X WieserUnited KingdomBernardo Dominic NEGOTIATION
Aruna R FollerIndiaIvan Magalhaes QUALIFIED
David Y AmigonCanadaXuxue Feng NEGOTIATION
Salvatore F KolmetzSpainAsiya Javayant RENEWAL
Adams E NickaIndiaIvan Magalhaes NEW
Alejandro U NestleAustraliaAsiya Javayant RENEWAL
Kaitlin M CampainGermanyAmy Elsner QUALIFIED
Aruna X FerenczRussiaAsiya Javayant RENEWAL
Ricardo G RimFranceBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin N TollnerSpain2024-04-27Feiner Bros NEW5Amy Elsner
1001Izzy B PaprockiAustralia2024-04-14King, Christopher A Esq NEW69Ivan Magalhaes
1002Chavez M TollnerItaly2024-05-01Chapman, Ross E Esq NEGOTIATION26Onyama Limba
1003Kaitlin T StockhamUnited Kingdom2024-04-27Truhlar And Truhlar Attys PROPOSAL11Onyama Limba
1004Ashley V NickaSpain2024-04-07King, Christopher A Esq NEGOTIATION33Stephen Shaw
1005Munro T KuskoUnited Kingdom2024-04-29Buckley Miller Wright RENEWAL15Ioni Bowcher
1006Ivar J WaycottIndia2024-04-11Buckley Miller Wright NEGOTIATION2Anna Fali
1007Munro B NickaSpain2024-04-11Buckley Miller Wright QUALIFIED25Xuxue Feng
1008Claire G GauchoJapan2024-05-01Chapman, Ross E Esq QUALIFIED33Stephen Shaw
1009Nicolas I AmigonAustralia2024-04-11Feiner Bros PROPOSAL13Bernardo Dominic
1010Adams O AlbaresSpain2024-04-21Rangoni Of Florence RENEWAL15Ivan Magalhaes
1011Misaki D PerinGermany2024-04-11Truhlar And Truhlar Attys UNQUALIFIED77Ioni Bowcher
1012Francesco W PaprockiItaly2024-04-30Commercial Press QUALIFIED9Asiya Javayant
1013Ivar N WieserSpain2024-04-18Feltz Printing Service PROPOSAL18Asiya Javayant
1014Maria C WieserIndia2024-04-05Benton, John B Jr NEGOTIATION45Ioni Bowcher
1015Aditya B FollerArgentina2024-04-14Truhlar And Truhlar Attys PROPOSAL95Ioni Bowcher
1016Murillo S VocelkaAustralia2024-04-05Feiner Bros RENEWAL21Amy Elsner
1017Rodrigues C StockhamItaly2024-04-06Feltz Printing Service RENEWAL0Ivan Magalhaes
1018Mujtaba G WaycottArgentina2024-04-26Morlong Associates NEGOTIATION34Elwin Sharvill
1019Morrow Z GarufiArgentina2024-04-30Rousseaux, Michael Esq PROPOSAL39Bernardo Dominic
1020Murillo M ChuiBrazil2024-04-14Commercial Press RENEWAL17Bernardo Dominic
1021Smith I TollnerBrazil2024-05-01Buckley Miller Wright NEW90Ioni Bowcher
1022Sinclair G StensethJapan2024-04-04Rousseaux, Michael Esq NEGOTIATION89Ivan Magalhaes
1023Tony V CaldareraCanada2024-04-11Morlong Associates UNQUALIFIED47Ioni Bowcher
1024Juan F InouyeIndia2024-04-19Feiner Bros RENEWAL36Xuxue Feng
1025Greenwood Z MacleadJapan2024-04-16Morlong Associates NEW50Stephen Shaw
1026Wickens Z RulapaughGermany2024-04-15Buckley Miller Wright NEW0Ioni Bowcher
1027Stacey O SchemmerIndia2024-04-28Dorl, James J Esq PROPOSAL63Bernardo Dominic
1028Aika G SlusarskiItaly2024-04-06Buckley Miller Wright PROPOSAL93Xuxue Feng
1029Aruna X ChuiUnited Kingdom2024-04-25Buckley Miller Wright PROPOSAL32Amy Elsner
1030Octavia J VenereItaly2024-04-06Benton, John B Jr PROPOSAL41Stephen Shaw
1031Greenwood X MarrierBrazil2024-04-19Feltz Printing Service UNQUALIFIED68Elwin Sharvill
1032Mujtaba H FollerBrazil2024-04-22Rousseaux, Michael Esq QUALIFIED83Anna Fali
1033Leja Y VenereIndia2024-04-12Feltz Printing Service RENEWAL62Asiya Javayant
1034Darci D RimCanada2024-04-03Chapman, Ross E Esq PROPOSAL95Elwin Sharvill
1035Juan Q ButtFrance2024-04-02Buckley Miller Wright NEGOTIATION48Bernardo Dominic
1036Claire Q OldroydRussia2024-04-16Feiner Bros PROPOSAL87Stephen Shaw
1037Stacey O SlusarskiCanada2024-04-21Rousseaux, Michael Esq QUALIFIED92Ivan Magalhaes
1038Ricardo Y BriddickGermany2024-05-01Rousseaux, Michael Esq UNQUALIFIED8Anna Fali
1039Emily Y RoysterFrance2024-04-24Buckley Miller Wright RENEWAL25Xuxue Feng
1040Jennifer B DarakjyUnited Kingdom2024-04-14Rousseaux, Michael Esq QUALIFIED5Stephen Shaw
1041Mayumi W CaudyUnited Kingdom2024-04-17Truhlar And Truhlar Attys NEW85Onyama Limba
1042Salvatore R GlickAustralia2024-04-09Benton, John B Jr NEW86Stephen Shaw
1043Octavia D BologniaItaly2024-04-24Printing Dimensions NEW99Elwin Sharvill
1044Darci F GauchoJapan2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED94Asiya Javayant
1045Antonio V AlbaresSpain2024-04-13Benton, John B Jr NEGOTIATION93Ioni Bowcher
1046Juan P RimCanada2024-04-05Morlong Associates UNQUALIFIED16Ioni Bowcher
1047Greenwood D DoeRussia2024-04-25Morlong Associates NEGOTIATION3Onyama Limba
1048Salvatore E MacleadCanada2024-04-24Commercial Press UNQUALIFIED3Ioni Bowcher
1049Faith U ButtRussia2024-04-30Commercial Press NEW88Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood A DarakjyArgentinaXuxue Feng PROPOSAL
Ivar D WhobreyIndiaAsiya Javayant UNQUALIFIED
Alejandro Z RutaIndiaBernardo Dominic NEGOTIATION
Francesco L VocelkaRussiaXuxue Feng RENEWAL
Aika X NickaSpainElwin Sharvill PROPOSAL
Aditya N CaudyRussiaAsiya Javayant UNQUALIFIED
Alejandro K PaprockiRussiaXuxue Feng NEGOTIATION
Stacey S StensethGermanyOnyama Limba UNQUALIFIED
Isabel Y OldroydRussiaElwin Sharvill QUALIFIED
Juan T FollerJapanIvan Magalhaes QUALIFIED
Darci A OldroydUnited KingdomStephen Shaw NEW
Nicolas U InouyeJapanIvan Magalhaes RENEWAL
Jennifer R SaylorsItalyIoni Bowcher PROPOSAL
Chavez O CampainAustraliaXuxue Feng UNQUALIFIED
Antonio A TollnerAustraliaAmy Elsner QUALIFIED
Misaki D VocelkaBrazilOnyama Limba NEW
Francesco O MorascaArgentinaIvan Magalhaes NEGOTIATION
Julie J RulapaughRussiaXuxue Feng RENEWAL
Octavia M VocelkaBrazilBernardo Dominic NEGOTIATION
Ashley E WieserBrazilAmy Elsner NEGOTIATION
Kaitlin N GarufiJapanOnyama Limba PROPOSAL
Nicolas F FlosiCanadaAnna Fali QUALIFIED
Octavia G CaldareraGermanyOnyama Limba NEGOTIATION
Claire D MorascaIndiaIvan Magalhaes PROPOSAL
Morrow P VenereSpainAnna Fali QUALIFIED
Leja H PoquetteSpainAsiya Javayant RENEWAL
Juan T StensethArgentinaOnyama Limba UNQUALIFIED
Wickens K BologniaFranceIvan Magalhaes QUALIFIED
Isabel A SlusarskiUnited KingdomAsiya Javayant NEW
Kadeem W WieserIndiaElwin Sharvill NEW
Salvatore F TollnerIndiaBernardo Dominic RENEWAL
Salvatore C GlickCanadaAsiya Javayant PROPOSAL
Isabel A MacleadIndiaIvan Magalhaes UNQUALIFIED
Francesco U OldroydItalyXuxue Feng UNQUALIFIED
Juan Q InouyeFranceAsiya Javayant NEGOTIATION
Nicolas V CaudyIndiaIvan Magalhaes UNQUALIFIED
Leon W CaldareraSpainElwin Sharvill PROPOSAL
Mujtaba S WieserBrazilOnyama Limba NEGOTIATION
Jeanfrancois Y FerenczUnited KingdomIoni Bowcher NEW
Emily R MaletIndiaIvan Magalhaes RENEWAL
Salvatore U BowleyRussiaIvan Magalhaes RENEWAL
Stacey B CaudyGermanyOnyama Limba NEGOTIATION
Octavia R GauchoUnited KingdomIoni Bowcher NEGOTIATION
Aruna Z AlbaresAustraliaElwin Sharvill NEW
Salvatore L SaylorsRussiaBernardo Dominic QUALIFIED
Tony N OldroydIndiaAnna Fali NEW
Murillo Z MaletIndiaXuxue Feng QUALIFIED
Leja H KolmetzFranceBernardo Dominic PROPOSAL
Misaki L TollnerIndiaIoni Bowcher NEGOTIATION
Chavez X GillianArgentinaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Adams L Paprocki
Cody Q Gaucho
Leja L Stenseth
Aika B Kusko
Aruna P Waycott
Francesco P Foller
James A Albares
Greenwood F Nicka
Smith P Flosi
Ashley K Bolognia
Faith X Gillian
Salvatore A Slusarski
Mujtaba R Iturbide
Rodrigues R Kusko
Jones I Stenseth
Maria P Kusko
Arvin V Ferencz
Costa S Marrier
Emily G Paprocki
Ricardo N Doe
Jennifer E Malet
Maisha O Gillian
Juan A Vocelka
Silvio P Malet
David L Oldroyd
Stacey Y Rulapaugh
Maisha D Campain
Stacey S Garufi
Claire N Glick
Tony B Figeroa
Jones U Morasca
Octavia R Stockham
Costa A Malet
Claire D Venere
Costa H Kolmetz
Maria X Whobrey
Cody M Gillian
Salvatore N Stenseth
Smith F Shinko
Silvio O Dilliard
Tony I Kusko
Claire T Malet
Murillo I Waycott
Costa F Gaucho
Jones V Poquette
Jeanfrancois R Kusko
Kaitlin D Royster
Sinclair R Marrier
Emily Y Paprocki
Faith L Briddick
IdCountryDate
1000Canada2024-04-27
1001United Kingdom2024-04-21
1002Germany2024-04-04
1003India2024-04-25
1004Argentina2024-04-17
1005India2024-04-13
1006Italy2024-04-24
1007Australia2024-04-04
1008France2024-05-01
1009Spain2024-04-08
1010United Kingdom2024-04-11
1011Russia2024-04-25
1012Japan2024-04-28
1013Italy2024-04-03
1014Spain2024-04-09
1015France2024-04-08
1016Russia2024-04-24
1017Spain2024-04-04
1018Canada2024-04-12
1019Italy2024-04-07
1020Japan2024-04-11
1021Australia2024-04-07
1022Canada2024-04-20
1023Japan2024-04-09
1024Russia2024-04-26
1025Germany2024-04-29
1026Russia2024-04-12
1027Japan2024-04-13
1028India2024-04-24
1029Russia2024-04-15
1030Italy2024-04-28
1031Brazil2024-04-18
1032Brazil2024-04-28
1033Brazil2024-04-06
1034France2024-04-27
1035India2024-04-26
1036India2024-04-03
1037France2024-04-20
1038Japan2024-04-05
1039Germany2024-04-28
1040Spain2024-04-11
1041Argentina2024-04-07
1042Russia2024-04-19
1043United Kingdom2024-04-11
1044Italy2024-04-10
1045Canada2024-04-22
1046Argentina2024-04-30
1047Germany2024-04-11
1048Canada2024-04-16
1049Canada2024-04-18

On-Demand Data

NameIdCountryDate
Maria T Ruta1000Russia2024-04-27
Silvio H Gaucho1001Germany2024-04-30
Jefferson M Poquette1002Germany2024-04-09
Sinclair X Nicka1003Spain2024-04-27
Jones S Caldarera1004Germany2024-04-17
Costa E Ostrosky1005Australia2024-04-18
Antonio E Poquette1006Canada2024-04-24
Jennifer H Bowley1007Italy2024-04-26
Aditya L Kusko1008Germany2024-04-14
Arvin H Rulapaugh1009Japan2024-04-28
Mayumi E Schemmer1010France2024-04-14
Jeanfrancois Q Stenseth1011Italy2024-04-26
Misaki E Shinko1012Brazil2024-04-15
Ricardo Q Ostrosky1013Australia2024-04-03
Faith O Iturbide1014United Kingdom2024-04-12
Jones P Ruta1015Argentina2024-04-13
Adams W Shinko1016United Kingdom2024-04-24
Silvio X Venere1017Argentina2024-04-30
Aditya J Royster1018Germany2024-04-15
Jennifer T Waycott1019Canada2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci O DoeSpainAnna Fali NEW
Deepesh G AmigonUnited KingdomIvan Magalhaes RENEWAL
Ashley R InouyeCanadaBernardo Dominic PROPOSAL
Misaki N OldroydIndiaAnna Fali UNQUALIFIED
Leja V IturbideBrazilXuxue Feng NEW
Stacey Q CaudyUnited KingdomAmy Elsner NEW
Silvio K DilliardBrazilIoni Bowcher NEGOTIATION
Silvio I RoysterIndiaAmy Elsner UNQUALIFIED
James S MarrierSpainAmy Elsner NEW
Wickens B OldroydSpainBernardo Dominic PROPOSAL
Julie O MaletCanadaAsiya Javayant UNQUALIFIED
Smith Y DoeBrazilAmy Elsner QUALIFIED
Cody T MarrierFranceIvan Magalhaes UNQUALIFIED
David T GlickUnited KingdomAmy Elsner NEGOTIATION
Leja X VocelkaRussiaOnyama Limba PROPOSAL
Emily T ShinkoSpainAsiya Javayant UNQUALIFIED
Salvatore C IturbideItalyAmy Elsner NEGOTIATION
Greenwood K GillianGermanyXuxue Feng NEW
Ashley W RutaIndiaIoni Bowcher QUALIFIED
Tony U MaletAustraliaOnyama Limba UNQUALIFIED
Sinclair P RulapaughSpainIoni Bowcher UNQUALIFIED
Aika K StensethGermanyAmy Elsner QUALIFIED
Alejandro D ButtGermanyAmy Elsner QUALIFIED
Rodrigues S VenereItalyAsiya Javayant NEGOTIATION
Murillo P WhobreyFranceOnyama Limba QUALIFIED
Francesco G DilliardUnited KingdomAsiya Javayant QUALIFIED
David X VenereRussiaBernardo Dominic NEGOTIATION
Claire E RoysterGermanyIvan Magalhaes NEW
Aruna S TollnerUnited KingdomBernardo Dominic NEW
Alejandro Y RoysterIndiaXuxue Feng QUALIFIED
Cody U KuskoIndiaAmy Elsner NEGOTIATION
Clifford L TollnerUnited KingdomAsiya Javayant PROPOSAL
Aruna L InouyeCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois C GillianArgentinaElwin Sharvill NEW
Chavez L MaletIndiaIvan Magalhaes PROPOSAL
Mujtaba N RimFranceBernardo Dominic PROPOSAL
David Y DilliardFranceIvan Magalhaes RENEWAL
Aditya Z WaycottJapanIvan Magalhaes PROPOSAL
Izzy H SlusarskiRussiaAnna Fali NEW
Kaitlin B FerenczSpainStephen Shaw 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>