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
Johnson B TollnerCanadaAnna Fali RENEWAL
Stacey E GlickCanadaAnna Fali RENEWAL
Arvin N RimFranceIoni Bowcher QUALIFIED
Izzy X SergiIndiaIvan Magalhaes QUALIFIED
Cody C AlbaresFranceStephen Shaw NEW
Octavia B MacleadBrazilAsiya Javayant NEW
Julie Z FigeroaIndiaOnyama Limba RENEWAL
Julie Q PoquetteCanadaElwin Sharvill NEGOTIATION
Ricardo E VocelkaArgentinaAnna Fali RENEWAL
Aika E BowleyUnited KingdomOnyama Limba RENEWAL
Nicolas K RimUnited KingdomAsiya Javayant QUALIFIED
Misaki S CampainBrazilIvan Magalhaes RENEWAL
Tony O VenereGermanyBernardo Dominic NEGOTIATION
Greenwood K AmigonArgentinaAsiya Javayant PROPOSAL
David A WaycottSpainAmy Elsner QUALIFIED
Jeanfrancois Q FigeroaFranceAnna Fali QUALIFIED
Morrow Y GillianBrazilIoni Bowcher QUALIFIED
James A StensethGermanyIoni Bowcher QUALIFIED
Maisha X GauchoItalyXuxue Feng QUALIFIED
Deepesh E BriddickArgentinaAsiya Javayant UNQUALIFIED
Jennifer J CampainRussiaAsiya Javayant UNQUALIFIED
Wickens Q CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin B RimJapanStephen Shaw NEW
Salvatore E RimJapanXuxue Feng NEW
Misaki Q RulapaughUnited KingdomBernardo Dominic QUALIFIED
Jefferson W CaldareraJapanAsiya Javayant NEW
Smith J NestleFranceIvan Magalhaes PROPOSAL
Jeanfrancois L StensethBrazilBernardo Dominic NEW
Kaitlin G SaylorsIndiaIoni Bowcher NEGOTIATION
David Z AmigonIndiaIvan Magalhaes QUALIFIED
Aditya A PoquetteFranceAsiya Javayant NEW
Nicolas P NickaGermanyElwin Sharvill UNQUALIFIED
Julie N WhobreyGermanyIvan Magalhaes NEGOTIATION
Alejandro I MorascaUnited KingdomIoni Bowcher RENEWAL
Deepesh L FollerUnited KingdomStephen Shaw RENEWAL
Julie F DarakjyArgentinaAmy Elsner NEGOTIATION
Emily A GarufiCanadaXuxue Feng NEGOTIATION
Maria N SlusarskiAustraliaXuxue Feng RENEWAL
Ashley R ChuiIndiaBernardo Dominic QUALIFIED
Greenwood S BologniaCanadaAnna Fali PROPOSAL
Mayumi G ShinkoItalyAmy Elsner PROPOSAL
Morrow X FlosiSpainBernardo Dominic NEGOTIATION
Smith T RutaItalyIvan Magalhaes NEW
Ashley K MaletAustraliaAmy Elsner UNQUALIFIED
Kaitlin U InouyeUnited KingdomAsiya Javayant PROPOSAL
Julie A ShinkoIndiaAmy Elsner QUALIFIED
Leon V SaylorsAustraliaAmy Elsner NEW
Faith Q ShinkoRussiaAmy Elsner PROPOSAL
Mujtaba B WieserArgentinaOnyama Limba UNQUALIFIED
Wickens I DilliardItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel F InouyeAustraliaAnna Fali RENEWAL
Mayumi K NestleCanadaBernardo Dominic RENEWAL
Julie J BowleyUnited KingdomAmy Elsner NEW
Antonio Z StockhamBrazilAsiya Javayant QUALIFIED
Ivar I BologniaGermanyAnna Fali RENEWAL
Morrow H MaletIndiaAmy Elsner UNQUALIFIED
Arvin H BriddickItalyOnyama Limba NEGOTIATION
Rodrigues V FlosiAustraliaStephen Shaw PROPOSAL
Jeanfrancois P SaylorsGermanyIvan Magalhaes NEGOTIATION
Faith U VenereArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna U OldroydBrazil2024-04-07Rousseaux, Michael Esq NEW88Anna Fali
1001Maria V GauchoBrazil2024-04-19Chapman, Ross E Esq QUALIFIED64Anna Fali
1002Salvatore Y AlbaresUnited Kingdom2024-03-28King, Christopher A Esq PROPOSAL14Anna Fali
1003Antonio M ButtArgentina2024-04-07Feiner Bros PROPOSAL78Amy Elsner
1004Leja K GarufiFrance2024-04-03Rousseaux, Michael Esq NEW7Elwin Sharvill
1005Clifford B BriddickCanada2024-04-17Truhlar And Truhlar Attys UNQUALIFIED22Elwin Sharvill
1006Aditya C OstroskyArgentina2024-04-11Dorl, James J Esq PROPOSAL41Asiya Javayant
1007Morrow X RutaAustralia2024-04-02King, Christopher A Esq PROPOSAL74Bernardo Dominic
1008Greenwood Z WaycottArgentina2024-04-24Truhlar And Truhlar Attys PROPOSAL78Anna Fali
1009Wickens L SergiFrance2024-04-13Printing Dimensions UNQUALIFIED29Amy Elsner
1010Antonio F RulapaughRussia2024-04-19Rousseaux, Michael Esq UNQUALIFIED54Ioni Bowcher
1011Leja J ShinkoJapan2024-04-12Buckley Miller Wright UNQUALIFIED2Ivan Magalhaes
1012Johnson R CaldareraRussia2024-04-23Feiner Bros NEGOTIATION19Anna Fali
1013Emily S BriddickUnited Kingdom2024-04-18Feiner Bros RENEWAL29Anna Fali
1014Aruna F WieserFrance2024-04-04Buckley Miller Wright NEGOTIATION3Anna Fali
1015Nicolas R FigeroaAustralia2024-04-15Chanay, Jeffrey A Esq NEW58Stephen Shaw
1016Antonio X ButtArgentina2024-04-12Feiner Bros RENEWAL48Elwin Sharvill
1017Mujtaba W NickaItaly2024-04-18Chapman, Ross E Esq PROPOSAL99Xuxue Feng
1018Ashley F ChuiArgentina2024-04-10Chemel, James L Cpa PROPOSAL35Elwin Sharvill
1019Darci S NestleFrance2024-04-07Chapman, Ross E Esq NEGOTIATION10Stephen Shaw
1020Johnson U DoeArgentina2024-04-15Commercial Press NEGOTIATION70Anna Fali
1021Silvio D ShinkoJapan2024-04-21Truhlar And Truhlar Attys QUALIFIED60Elwin Sharvill
1022Ashley H BowleyRussia2024-04-04Chemel, James L Cpa NEW77Anna Fali
1023Johnson V AlbaresSpain2024-04-15Morlong Associates QUALIFIED11Ivan Magalhaes
1024Costa D WieserFrance2024-04-14Truhlar And Truhlar Attys UNQUALIFIED51Bernardo Dominic
1025Faith Y WhobreyAustralia2024-04-21Truhlar And Truhlar Attys NEW28Xuxue Feng
1026Munro S CaudyCanada2024-04-10Chanay, Jeffrey A Esq RENEWAL20Anna Fali
1027Deepesh L FigeroaFrance2024-03-31Morlong Associates RENEWAL20Onyama Limba
1028Jennifer P GauchoBrazil2024-04-14Chapman, Ross E Esq NEGOTIATION80Stephen Shaw
1029Silvio W StensethGermany2024-04-02Morlong Associates UNQUALIFIED97Anna Fali
1030Wickens D SaylorsJapan2024-04-17King, Christopher A Esq PROPOSAL98Amy Elsner
1031Alejandro K AlbaresIndia2024-04-18Morlong Associates UNQUALIFIED68Onyama Limba
1032Jefferson W GlickFrance2024-04-04Chapman, Ross E Esq NEW37Ioni Bowcher
1033Jones X MaletSpain2024-03-30Printing Dimensions RENEWAL34Ioni Bowcher
1034Jones X GlickRussia2024-04-01Chapman, Ross E Esq NEGOTIATION89Amy Elsner
1035Chavez I WaycottSpain2024-03-28Commercial Press NEGOTIATION92Anna Fali
1036Misaki R WieserJapan2024-04-19Commercial Press UNQUALIFIED82Ivan Magalhaes
1037Adams A DilliardBrazil2024-04-22King, Christopher A Esq RENEWAL11Ioni Bowcher
1038Leja U ButtGermany2024-04-01Feltz Printing Service NEGOTIATION31Stephen Shaw
1039Francesco B ChuiItaly2024-04-10Chapman, Ross E Esq PROPOSAL14Xuxue Feng
1040Jeanfrancois X BriddickAustralia2024-04-01Feiner Bros NEW53Onyama Limba
1041Munro W FollerUnited Kingdom2024-04-23Buckley Miller Wright NEW77Asiya Javayant
1042Jefferson P MaletCanada2024-04-17Feltz Printing Service NEW72Amy Elsner
1043Munro F GillianCanada2024-04-20Chanay, Jeffrey A Esq RENEWAL17Elwin Sharvill
1044Chavez D CaldareraSpain2024-03-30Chemel, James L Cpa QUALIFIED7Stephen Shaw
1045Sinclair P ShinkoAustralia2024-04-09Commercial Press NEGOTIATION49Anna Fali
1046Isabel R FigeroaUnited Kingdom2024-04-23Morlong Associates QUALIFIED68Ivan Magalhaes
1047Jeanfrancois H PaprockiUnited Kingdom2024-03-27Chemel, James L Cpa RENEWAL84Onyama Limba
1048Maria N BriddickFrance2024-04-02Printing Dimensions UNQUALIFIED77Bernardo Dominic
1049Kadeem F MaletGermany2024-04-22Buckley Miller Wright RENEWAL52Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Misaki L CaudyAustraliaOnyama Limba NEGOTIATION
Francesco P DarakjyRussiaOnyama Limba QUALIFIED
Johnson K ShinkoJapanXuxue Feng UNQUALIFIED
Maria D DarakjyUnited KingdomIoni Bowcher PROPOSAL
Octavia B BologniaJapanIvan Magalhaes RENEWAL
Greenwood J FlosiAustraliaAnna Fali RENEWAL
Francesco O AmigonSpainElwin Sharvill UNQUALIFIED
Faith G MarrierCanadaIvan Magalhaes PROPOSAL
Deepesh A IturbideItalyAnna Fali UNQUALIFIED
Maria J ChuiGermanyAnna Fali NEW
Stacey L KolmetzIndiaAsiya Javayant PROPOSAL
Jeanfrancois Q GauchoAustraliaOnyama Limba NEW
Jones P RimUnited KingdomBernardo Dominic NEW
Adams O WaycottIndiaIvan Magalhaes PROPOSAL
Murillo T StensethRussiaElwin Sharvill RENEWAL
Aruna U MacleadItalyIvan Magalhaes PROPOSAL
Tony R RimBrazilStephen Shaw UNQUALIFIED
Murillo S FollerItalyXuxue Feng UNQUALIFIED
Cody J BriddickItalyIoni Bowcher PROPOSAL
Jeanfrancois P DarakjyFranceElwin Sharvill RENEWAL
Julie U WhobreyItalyBernardo Dominic RENEWAL
Chavez S TollnerItalyXuxue Feng PROPOSAL
Faith F SaylorsIndiaElwin Sharvill PROPOSAL
Morrow D NestleFranceStephen Shaw RENEWAL
Claire A StensethCanadaElwin Sharvill UNQUALIFIED
Francesco U GarufiSpainIoni Bowcher NEGOTIATION
Aditya S FlosiArgentinaAmy Elsner NEGOTIATION
Jeanfrancois Z WaycottAustraliaAmy Elsner QUALIFIED
Munro Y VocelkaFranceElwin Sharvill UNQUALIFIED
Ivar Z ChuiJapanOnyama Limba NEW
Leja G BologniaFranceElwin Sharvill QUALIFIED
Francesco S MarrierGermanyXuxue Feng QUALIFIED
Salvatore X MorascaAustraliaIoni Bowcher NEW
Murillo O RimFranceBernardo Dominic UNQUALIFIED
Deepesh D DarakjyArgentinaIvan Magalhaes NEW
Johnson H MorascaBrazilAmy Elsner RENEWAL
Ricardo D DoeJapanAsiya Javayant UNQUALIFIED
Stacey M WaycottGermanyXuxue Feng QUALIFIED
Leja E VenereFranceBernardo Dominic NEW
Jennifer Q FlosiItalyAmy Elsner QUALIFIED
Juan B ButtItalyIvan Magalhaes NEGOTIATION
Jennifer T KolmetzFranceIoni Bowcher NEW
Chavez M GarufiFranceBernardo Dominic NEW
Smith E PaprockiUnited KingdomAsiya Javayant RENEWAL
Maria T DoeRussiaAmy Elsner RENEWAL
Morrow O FlosiArgentinaElwin Sharvill RENEWAL
Kaitlin K NickaArgentinaBernardo Dominic QUALIFIED
Jones N SlusarskiUnited KingdomAnna Fali QUALIFIED
Darci F SlusarskiCanadaElwin Sharvill RENEWAL
Murillo Z BologniaAustraliaXuxue Feng PROPOSAL
Frozen Columns
Name
Darci W Kolmetz
Tony U Briddick
Ricardo Z Chui
Murillo B Butt
Murillo Z Campain
Mayumi T Caudy
Aika V Figeroa
Chavez W Gaucho
Emily R Caudy
Adams M Bowley
Claire O Butt
Kadeem U Morasca
Silvio O Ostrosky
Maisha G Gillian
Leon X Chui
Kaitlin O Ostrosky
Ricardo J Kolmetz
Jefferson S Briddick
Jeanfrancois B Briddick
Izzy P Campain
Ricardo D Schemmer
Costa O Ostrosky
Darci M Ferencz
Sinclair C Caldarera
Clifford V Kolmetz
Claire O Chui
Izzy D Ruta
Nicolas G Ruta
Mujtaba B Saylors
David J Ferencz
Adams U Doe
Ricardo Y Malet
Faith O Caudy
Kadeem I Malet
Morrow S Marrier
Darci P Perin
Isabel H Malet
Cody O Inouye
Jones S Stockham
Aika K Dilliard
Sinclair S Tollner
Emily R Rim
Claire L Shinko
Aditya H Caldarera
Francesco R Bowley
Nicolas A Kusko
Isabel C Kusko
Salvatore P Dilliard
Clifford S Whobrey
Aruna E Royster
IdCountryDate
1000Russia2024-04-04
1001Canada2024-04-19
1002Germany2024-04-12
1003Russia2024-04-19
1004Australia2024-04-22
1005Japan2024-04-09
1006Australia2024-04-01
1007Brazil2024-04-16
1008Russia2024-04-10
1009United Kingdom2024-04-16
1010Russia2024-04-20
1011France2024-03-27
1012United Kingdom2024-04-17
1013Spain2024-04-09
1014Italy2024-04-07
1015Canada2024-04-03
1016Australia2024-04-05
1017Brazil2024-04-10
1018France2024-03-31
1019France2024-04-08
1020Russia2024-04-21
1021Germany2024-04-14
1022India2024-03-29
1023Brazil2024-04-13
1024Italy2024-04-23
1025Australia2024-04-17
1026Brazil2024-04-06
1027United Kingdom2024-04-20
1028Argentina2024-04-12
1029Russia2024-04-13
1030Japan2024-04-16
1031Brazil2024-04-06
1032India2024-03-29
1033Brazil2024-03-28
1034Canada2024-04-18
1035India2024-04-18
1036Spain2024-04-14
1037Australia2024-04-07
1038United Kingdom2024-04-12
1039Spain2024-04-24
1040Germany2024-04-21
1041Brazil2024-04-21
1042Germany2024-04-22
1043Russia2024-04-02
1044Germany2024-03-28
1045Spain2024-04-10
1046Japan2024-04-08
1047Brazil2024-04-20
1048France2024-03-29
1049Canada2024-04-23

On-Demand Data

NameIdCountryDate
Sinclair X Wieser1000India2024-04-03
Adams Y Glick1001Argentina2024-04-04
Arvin N Rulapaugh1002Japan2024-04-21
Chavez A Chui1003Argentina2024-04-03
Isabel L Paprocki1004Argentina2024-04-16
Aditya F Vocelka1005Brazil2024-03-31
Jennifer O Inouye1006Australia2024-04-01
Chavez I Wieser1007France2024-04-14
Emily P Malet1008Russia2024-04-18
Salvatore J Saylors1009Germany2024-04-14
Misaki G Vocelka1010Argentina2024-04-07
Kadeem C Chui1011Canada2024-04-20
Nicolas S Stockham1012France2024-04-17
Kadeem H Darakjy1013Spain2024-04-02
Jeanfrancois V Kolmetz1014Russia2024-04-18
Aruna C Albares1015Brazil2024-03-27
Deepesh G Nicka1016Spain2024-04-14
Mayumi Q Dilliard1017United Kingdom2024-04-17
Munro E Dilliard1018Russia2024-04-11
Tony P Oldroyd1019Brazil2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James C NickaJapanElwin Sharvill QUALIFIED
Greenwood D TollnerRussiaIoni Bowcher PROPOSAL
Leja F ButtRussiaXuxue Feng RENEWAL
Wickens H KuskoRussiaIoni Bowcher RENEWAL
Johnson C CaldareraCanadaIoni Bowcher QUALIFIED
Mayumi U MaletBrazilIvan Magalhaes UNQUALIFIED
Aditya S KuskoSpainAsiya Javayant RENEWAL
Wickens I AmigonAustraliaAnna Fali NEGOTIATION
Ivar V IturbideRussiaIoni Bowcher NEW
Julie H InouyeIndiaAmy Elsner NEW
Izzy V SergiRussiaBernardo Dominic PROPOSAL
Ricardo Q FigeroaCanadaIvan Magalhaes RENEWAL
Silvio W AmigonItalyAmy Elsner RENEWAL
Clifford D ShinkoCanadaBernardo Dominic UNQUALIFIED
Sinclair M PaprockiGermanyAmy Elsner NEGOTIATION
Francesco H BologniaArgentinaAnna Fali NEW
Ashley O ButtAustraliaIvan Magalhaes UNQUALIFIED
Maisha V SaylorsGermanyElwin Sharvill QUALIFIED
Leja Z PaprockiCanadaOnyama Limba UNQUALIFIED
Faith W NickaJapanElwin Sharvill NEGOTIATION
Smith O VenereItalyIoni Bowcher PROPOSAL
Arvin M RutaJapanElwin Sharvill NEW
Mayumi R CaldareraJapanElwin Sharvill RENEWAL
Jennifer M OldroydIndiaAnna Fali PROPOSAL
Maisha Z KuskoArgentinaBernardo Dominic NEGOTIATION
Ashley N MarrierUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois U NickaCanadaIvan Magalhaes QUALIFIED
Ashley V RulapaughIndiaAmy Elsner NEW
Emily K NickaArgentinaAnna Fali QUALIFIED
Costa J BologniaCanadaXuxue Feng UNQUALIFIED
Antonio H DilliardSpainOnyama Limba NEGOTIATION
Tony K WaycottSpainIoni Bowcher RENEWAL
Jefferson K TollnerRussiaIvan Magalhaes NEGOTIATION
Tony K MaletItalyStephen Shaw NEGOTIATION
Tony L GlickIndiaIoni Bowcher QUALIFIED
Cody Z SaylorsSpainAnna Fali PROPOSAL
Isabel K CaudyGermanyAnna Fali NEW
Sinclair Y BologniaSpainAmy Elsner RENEWAL
Chavez E SchemmerRussiaAmy Elsner NEW
Adams S RulapaughJapanElwin Sharvill RENEWAL

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