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
James Z WhobreyItalyElwin Sharvill RENEWAL
Clifford T SaylorsCanadaAsiya Javayant NEW
Jeanfrancois O FollerArgentinaOnyama Limba QUALIFIED
Francesco V IturbideFranceAsiya Javayant RENEWAL
Julie Q MaletFranceAnna Fali UNQUALIFIED
Munro Y ShinkoFranceOnyama Limba PROPOSAL
Johnson A VenereJapanAmy Elsner RENEWAL
Octavia H GillianGermanyBernardo Dominic PROPOSAL
Maria T MarrierUnited KingdomAnna Fali NEW
Ivar G InouyeItalyAsiya Javayant RENEWAL
Darci E DarakjyIndiaBernardo Dominic RENEWAL
Maisha C CaudyRussiaIoni Bowcher NEGOTIATION
Francesco R MaletAustraliaIoni Bowcher QUALIFIED
Jefferson I FlosiGermanyBernardo Dominic RENEWAL
Adams W MaletRussiaOnyama Limba NEW
Isabel I PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Claire Z GlickJapanIoni Bowcher QUALIFIED
Jefferson U StensethSpainIvan Magalhaes QUALIFIED
Arvin R RulapaughIndiaAsiya Javayant QUALIFIED
Misaki U MaletIndiaAsiya Javayant NEW
Tony B FerenczJapanAmy Elsner NEGOTIATION
Salvatore G PaprockiFranceAmy Elsner UNQUALIFIED
Tony U RimItalyOnyama Limba QUALIFIED
Darci J GillianIndiaAsiya Javayant NEW
Antonio X GlickUnited KingdomOnyama Limba NEGOTIATION
Maisha P FollerCanadaXuxue Feng NEGOTIATION
Silvio Z GauchoRussiaOnyama Limba QUALIFIED
Chavez W DoeSpainAnna Fali UNQUALIFIED
Ashley W InouyeJapanAnna Fali RENEWAL
Juan Q ButtFranceStephen Shaw UNQUALIFIED
Darci F GillianCanadaXuxue Feng NEGOTIATION
Mayumi A NickaAustraliaOnyama Limba QUALIFIED
Octavia S RulapaughRussiaAnna Fali PROPOSAL
Mayumi R FigeroaRussiaStephen Shaw NEGOTIATION
Cody T GarufiCanadaAnna Fali PROPOSAL
Greenwood Q NickaCanadaOnyama Limba RENEWAL
Adams Y KuskoGermanyAsiya Javayant RENEWAL
Kadeem X AlbaresBrazilAnna Fali PROPOSAL
Mayumi S RulapaughBrazilOnyama Limba QUALIFIED
Antonio F GillianJapanElwin Sharvill NEGOTIATION
Juan O KolmetzFranceIvan Magalhaes RENEWAL
Maria S GlickArgentinaStephen Shaw QUALIFIED
Isabel H OldroydCanadaAsiya Javayant UNQUALIFIED
Francesco J FlosiArgentinaIvan Magalhaes PROPOSAL
Isabel L MaletJapanXuxue Feng PROPOSAL
Ivar E FerenczCanadaElwin Sharvill QUALIFIED
Antonio F PaprockiGermanyAsiya Javayant NEGOTIATION
Tony J CaudyBrazilOnyama Limba NEW
Darci W RoysterItalyOnyama Limba NEW
Octavia W PerinFranceStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem C KuskoJapanAnna Fali UNQUALIFIED
Alejandro A RulapaughArgentinaAsiya Javayant NEGOTIATION
Mayumi K FollerAustraliaAmy Elsner RENEWAL
Tony P RimCanadaAnna Fali RENEWAL
Misaki S WhobreyItalyBernardo Dominic UNQUALIFIED
Kadeem H SchemmerCanadaStephen Shaw NEGOTIATION
Tony L RutaCanadaAmy Elsner QUALIFIED
Cody L CaldareraItalyBernardo Dominic RENEWAL
Chavez C AlbaresFranceIvan Magalhaes PROPOSAL
Antonio V GarufiFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy D MacleadUnited Kingdom2024-04-23Rangoni Of Florence RENEWAL56Bernardo Dominic
1001Greenwood W MacleadArgentina2024-04-13Chapman, Ross E Esq NEW12Ioni Bowcher
1002Francesco Q MaletIndia2024-04-22King, Christopher A Esq NEW65Ioni Bowcher
1003Deepesh P CaldareraSpain2024-04-20Chapman, Ross E Esq RENEWAL20Onyama Limba
1004Julie G SaylorsUnited Kingdom2024-04-07Feltz Printing Service NEGOTIATION94Onyama Limba
1005Ricardo P SaylorsJapan2024-04-20Feiner Bros NEGOTIATION48Amy Elsner
1006Costa G StockhamSpain2024-04-03King, Christopher A Esq NEW76Ivan Magalhaes
1007David P CaldareraItaly2024-04-06Dorl, James J Esq UNQUALIFIED46Anna Fali
1008Arvin U MorascaAustralia2024-04-17King, Christopher A Esq RENEWAL39Ioni Bowcher
1009Cody D CaldareraUnited Kingdom2024-04-23Truhlar And Truhlar Attys NEW53Stephen Shaw
1010Clifford W AmigonRussia2024-04-06King, Christopher A Esq NEGOTIATION21Stephen Shaw
1011Jefferson K GarufiIndia2024-03-26Printing Dimensions RENEWAL61Onyama Limba
1012James N ShinkoArgentina2024-04-17Printing Dimensions QUALIFIED75Ioni Bowcher
1013Jefferson V NestleItaly2024-04-21Chanay, Jeffrey A Esq NEGOTIATION39Xuxue Feng
1014Julie N CaudyCanada2024-04-08King, Christopher A Esq RENEWAL38Xuxue Feng
1015Faith T NestleArgentina2024-03-29Truhlar And Truhlar Attys PROPOSAL8Elwin Sharvill
1016Arvin Y DarakjyGermany2024-04-17Feiner Bros RENEWAL81Anna Fali
1017Kaitlin Z OldroydFrance2024-04-12Printing Dimensions UNQUALIFIED89Stephen Shaw
1018Darci T InouyeArgentina2024-04-04Chanay, Jeffrey A Esq RENEWAL39Onyama Limba
1019Silvio S SergiJapan2024-03-29Feltz Printing Service PROPOSAL3Amy Elsner
1020Cody W SaylorsIndia2024-04-16Chemel, James L Cpa NEW1Bernardo Dominic
1021Smith D CaudyBrazil2024-03-31Feltz Printing Service NEGOTIATION96Elwin Sharvill
1022Francesco O MarrierUnited Kingdom2024-03-31Chemel, James L Cpa QUALIFIED59Ivan Magalhaes
1023Sinclair U DoeUnited Kingdom2024-04-11Chemel, James L Cpa PROPOSAL69Elwin Sharvill
1024Mujtaba X DilliardArgentina2024-04-20Dorl, James J Esq QUALIFIED46Amy Elsner
1025Kaitlin Q FlosiAustralia2024-04-09Benton, John B Jr QUALIFIED86Ioni Bowcher
1026Leja D CaldareraJapan2024-04-04Feiner Bros NEW29Bernardo Dominic
1027Maisha N WaycottIndia2024-04-20Commercial Press NEW72Stephen Shaw
1028Clifford L WieserRussia2024-04-19Rangoni Of Florence PROPOSAL61Amy Elsner
1029Kaitlin B NestleSpain2024-04-08Rangoni Of Florence NEGOTIATION8Asiya Javayant
1030Wickens U NickaCanada2024-04-05Rousseaux, Michael Esq PROPOSAL33Onyama Limba
1031Tony E MarrierUnited Kingdom2024-04-21Benton, John B Jr NEGOTIATION22Xuxue Feng
1032Costa Y RulapaughSpain2024-04-17Rousseaux, Michael Esq NEW62Xuxue Feng
1033Salvatore S VenereFrance2024-03-29King, Christopher A Esq UNQUALIFIED66Asiya Javayant
1034Emily F DoeJapan2024-04-15King, Christopher A Esq PROPOSAL17Stephen Shaw
1035Jefferson V FlosiRussia2024-04-02Printing Dimensions UNQUALIFIED40Ioni Bowcher
1036Francesco U CaudyArgentina2024-03-30Dorl, James J Esq NEW44Stephen Shaw
1037David A FlosiRussia2024-04-03Chapman, Ross E Esq RENEWAL67Asiya Javayant
1038Antonio I TollnerFrance2024-04-05King, Christopher A Esq UNQUALIFIED3Bernardo Dominic
1039Claire W VocelkaArgentina2024-04-10Dorl, James J Esq NEW15Anna Fali
1040Juan R TollnerFrance2024-03-30Morlong Associates QUALIFIED78Bernardo Dominic
1041Darci V BologniaArgentina2024-04-24Feltz Printing Service QUALIFIED87Onyama Limba
1042Arvin I KolmetzCanada2024-04-05Feltz Printing Service QUALIFIED31Stephen Shaw
1043Maisha R VenereGermany2024-04-08Feiner Bros PROPOSAL95Elwin Sharvill
1044Kadeem Y VenereGermany2024-04-06Benton, John B Jr NEW12Amy Elsner
1045Clifford O BriddickSpain2024-04-22Morlong Associates NEGOTIATION74Amy Elsner
1046Cody P NestleArgentina2024-03-29Buckley Miller Wright UNQUALIFIED46Stephen Shaw
1047Octavia J BologniaFrance2024-04-05Morlong Associates UNQUALIFIED28Onyama Limba
1048Stacey G TollnerBrazil2024-04-17Commercial Press NEGOTIATION90Stephen Shaw
1049Rodrigues J AlbaresSpain2024-04-01King, Christopher A Esq QUALIFIED38Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Arvin O PoquetteGermanyOnyama Limba UNQUALIFIED
Alejandro Q StensethItalyAmy Elsner RENEWAL
Julie R WaycottFranceAsiya Javayant UNQUALIFIED
Misaki P CaudyUnited KingdomElwin Sharvill NEW
Rodrigues B RutaRussiaAsiya Javayant PROPOSAL
Juan U RoysterCanadaBernardo Dominic PROPOSAL
Salvatore S KolmetzBrazilIoni Bowcher UNQUALIFIED
Jennifer S NestleGermanyAsiya Javayant NEGOTIATION
Misaki J SlusarskiCanadaOnyama Limba PROPOSAL
Adams Y CampainGermanyAmy Elsner RENEWAL
Maria G RoysterSpainOnyama Limba PROPOSAL
Sinclair T ShinkoBrazilIoni Bowcher UNQUALIFIED
Chavez X MaletSpainBernardo Dominic NEW
Maisha V DarakjyFranceXuxue Feng PROPOSAL
Jones L RoysterRussiaElwin Sharvill NEGOTIATION
Clifford X WaycottFranceAnna Fali NEGOTIATION
Julie B RimUnited KingdomBernardo Dominic PROPOSAL
Mayumi G FerenczUnited KingdomElwin Sharvill RENEWAL
Jeanfrancois L BriddickAustraliaIvan Magalhaes PROPOSAL
Darci Z MacleadArgentinaStephen Shaw NEW
Silvio J WieserIndiaXuxue Feng NEW
Aditya Y DilliardCanadaBernardo Dominic UNQUALIFIED
Antonio X FollerSpainAmy Elsner UNQUALIFIED
Aditya K BowleyJapanAmy Elsner NEW
Ricardo Y DoeJapanElwin Sharvill RENEWAL
Leon T MaletCanadaAmy Elsner NEGOTIATION
Wickens F WhobreyCanadaIvan Magalhaes PROPOSAL
Juan B SlusarskiArgentinaXuxue Feng QUALIFIED
Juan G CampainCanadaAmy Elsner NEGOTIATION
Emily L VocelkaCanadaIoni Bowcher QUALIFIED
David G BriddickIndiaAsiya Javayant NEW
Emily Y CaldareraRussiaXuxue Feng PROPOSAL
Kaitlin C DilliardRussiaElwin Sharvill QUALIFIED
Maisha P PoquetteRussiaAsiya Javayant PROPOSAL
Jeanfrancois P AmigonUnited KingdomIoni Bowcher QUALIFIED
Maria N InouyeFranceOnyama Limba PROPOSAL
Antonio G DilliardJapanIvan Magalhaes RENEWAL
Nicolas N DoeSpainBernardo Dominic RENEWAL
Rodrigues A PaprockiAustraliaStephen Shaw QUALIFIED
Maria L PoquetteRussiaOnyama Limba PROPOSAL
Julie J FollerFranceAnna Fali NEW
Aika E MacleadIndiaStephen Shaw QUALIFIED
Stacey Q BowleyIndiaStephen Shaw QUALIFIED
James K KolmetzBrazilElwin Sharvill NEW
Greenwood R CaldareraSpainIvan Magalhaes UNQUALIFIED
Tony T MorascaBrazilElwin Sharvill NEGOTIATION
Octavia T ButtUnited KingdomStephen Shaw PROPOSAL
Smith X PaprockiRussiaOnyama Limba PROPOSAL
Ricardo S SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Smith M BriddickGermanyXuxue Feng NEGOTIATION
Frozen Columns
Name
Chavez O Rulapaugh
Arvin V Sergi
Emily P Paprocki
Greenwood K Gillian
Murillo N Sergi
Kaitlin B Ferencz
Izzy D Gaucho
Aruna X Darakjy
Deepesh Z Stockham
Smith E Slusarski
Morrow R Maclead
Ricardo T Nicka
Salvatore A Doe
Leja J Slusarski
Tony N Stenseth
Jones M Malet
Stacey L Glick
Francesco Q Saylors
Octavia F Whobrey
Rodrigues V Malet
Jeanfrancois B Shinko
Jennifer T Ruta
Leon H Whobrey
Cody L Nestle
Nicolas K Morasca
Smith O Figeroa
Jennifer T Darakjy
Leon H Whobrey
Mayumi Q Maclead
Stacey P Ruta
Smith L Maclead
Munro Z Bowley
Kadeem Z Caldarera
Aruna Z Waycott
Kaitlin M Marrier
Smith X Ruta
Morrow U Vocelka
Greenwood M Darakjy
Cody L Wieser
Misaki Y Stockham
Salvatore L Iturbide
Maisha X Nestle
Francesco W Bowley
Ashley Y Venere
Francesco V Figeroa
Stacey F Saylors
Ivar G Kolmetz
Silvio B Oldroyd
Octavia G Nestle
Mayumi K Poquette
IdCountryDate
1000Spain2024-04-16
1001Spain2024-04-17
1002Australia2024-04-17
1003Brazil2024-04-22
1004Japan2024-04-16
1005Argentina2024-04-23
1006Spain2024-04-17
1007Canada2024-03-29
1008United Kingdom2024-04-15
1009Japan2024-04-20
1010Australia2024-04-13
1011India2024-04-08
1012Italy2024-03-31
1013Canada2024-03-30
1014Italy2024-03-26
1015Russia2024-04-12
1016India2024-03-26
1017Australia2024-04-20
1018India2024-04-13
1019Germany2024-04-20
1020Italy2024-04-24
1021India2024-04-22
1022Japan2024-04-03
1023Canada2024-04-01
1024Canada2024-03-27
1025Spain2024-04-06
1026Japan2024-03-30
1027Japan2024-04-18
1028Australia2024-04-23
1029Russia2024-04-14
1030Germany2024-03-26
1031Spain2024-04-06
1032Russia2024-04-23
1033India2024-04-11
1034India2024-04-17
1035United Kingdom2024-04-20
1036Russia2024-04-21
1037Australia2024-04-02
1038Russia2024-04-18
1039France2024-04-14
1040Italy2024-03-26
1041United Kingdom2024-04-03
1042Italy2024-04-19
1043Canada2024-04-08
1044Brazil2024-04-16
1045Italy2024-04-24
1046United Kingdom2024-04-24
1047Italy2024-04-22
1048Argentina2024-04-02
1049Russia2024-03-29

On-Demand Data

NameIdCountryDate
Stacey V Paprocki1000Australia2024-03-26
David R Venere1001Russia2024-04-15
Ashley T Perin1002Japan2024-04-22
Munro P Doe1003Italy2024-03-31
Darci K Gillian1004Germany2024-04-05
Deepesh P Rulapaugh1005France2024-04-19
Alejandro X Wieser1006Brazil2024-04-18
Kaitlin Q Caudy1007Canada2024-04-21
Smith I Butt1008Russia2024-04-01
Octavia J Amigon1009Germany2024-04-04
Clifford U Vocelka1010Canada2024-04-05
Julie U Garufi1011Australia2024-04-12
Francesco I Rulapaugh1012United Kingdom2024-04-04
Juan R Briddick1013Russia2024-04-01
Alejandro I Caudy1014Japan2024-03-30
Nicolas G Amigon1015Italy2024-04-16
Nicolas W Gillian1016Spain2024-04-04
Rodrigues A Ruta1017Spain2024-04-10
Ashley F Campain1018Russia2024-03-27
Nicolas A Paprocki1019Argentina2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria S RulapaughUnited KingdomStephen Shaw PROPOSAL
Julie B RimUnited KingdomElwin Sharvill QUALIFIED
Francesco Z RoysterArgentinaAmy Elsner NEGOTIATION
Adams R MarrierRussiaElwin Sharvill QUALIFIED
Adams L KolmetzSpainAmy Elsner NEGOTIATION
Emily F PoquetteSpainElwin Sharvill QUALIFIED
Costa C OldroydFranceBernardo Dominic PROPOSAL
Misaki R SlusarskiGermanyElwin Sharvill RENEWAL
Stacey Q TollnerSpainStephen Shaw NEGOTIATION
Adams A BriddickFranceElwin Sharvill RENEWAL
Ivar G OldroydJapanAmy Elsner QUALIFIED
Mayumi J WhobreyUnited KingdomIoni Bowcher RENEWAL
Ashley M BowleyAustraliaAsiya Javayant UNQUALIFIED
Maria Y AmigonFranceAsiya Javayant PROPOSAL
Nicolas E StockhamBrazilIvan Magalhaes UNQUALIFIED
Clifford Q DarakjyGermanyXuxue Feng UNQUALIFIED
Francesco K SchemmerSpainIvan Magalhaes UNQUALIFIED
Deepesh O PerinUnited KingdomElwin Sharvill UNQUALIFIED
Arvin K IturbideSpainIoni Bowcher NEW
Faith D DoeSpainIoni Bowcher QUALIFIED
Clifford L BowleyUnited KingdomXuxue Feng NEGOTIATION
Nicolas O CampainFranceStephen Shaw NEW
Julie B GarufiAustraliaAnna Fali PROPOSAL
Johnson N ChuiBrazilXuxue Feng NEGOTIATION
Greenwood G VocelkaIndiaIvan Magalhaes NEGOTIATION
Murillo A PaprockiCanadaXuxue Feng UNQUALIFIED
David O PerinIndiaXuxue Feng NEW
Claire N ButtBrazilStephen Shaw NEGOTIATION
Johnson X GarufiRussiaIoni Bowcher UNQUALIFIED
Leon S MarrierIndiaAsiya Javayant UNQUALIFIED
Tony O MaletCanadaXuxue Feng UNQUALIFIED
Tony L SlusarskiBrazilIoni Bowcher UNQUALIFIED
Darci H DilliardArgentinaElwin Sharvill UNQUALIFIED
Nicolas E FigeroaItalyBernardo Dominic UNQUALIFIED
Sinclair C AmigonRussiaStephen Shaw PROPOSAL
Sinclair T RimGermanyElwin Sharvill UNQUALIFIED
Isabel L BologniaAustraliaAnna Fali UNQUALIFIED
Sinclair O RutaAustraliaAsiya Javayant NEGOTIATION
Jefferson O GillianBrazilIvan Magalhaes PROPOSAL
Adams I OldroydSpainOnyama Limba 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>