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
Kadeem O StockhamGermanyOnyama Limba QUALIFIED
Jennifer I NestleIndiaBernardo Dominic QUALIFIED
Jefferson N RulapaughArgentinaAnna Fali PROPOSAL
Smith P MaletArgentinaElwin Sharvill RENEWAL
Nicolas O StockhamItalyIvan Magalhaes PROPOSAL
Francesco I WieserSpainAsiya Javayant PROPOSAL
Deepesh I NickaUnited KingdomIoni Bowcher QUALIFIED
Chavez Z SchemmerGermanyAsiya Javayant NEW
Octavia T MaletGermanyAsiya Javayant NEGOTIATION
Darci B CampainRussiaBernardo Dominic NEGOTIATION
Rodrigues D MaletFranceAsiya Javayant NEGOTIATION
Jefferson H SaylorsItalyElwin Sharvill QUALIFIED
Juan Q GlickBrazilAnna Fali PROPOSAL
Aika K GlickFranceAsiya Javayant NEGOTIATION
Mayumi U PaprockiSpainElwin Sharvill NEGOTIATION
Murillo Q BowleyJapanOnyama Limba NEGOTIATION
Faith L IturbideAustraliaXuxue Feng UNQUALIFIED
Tony Q RulapaughAustraliaElwin Sharvill UNQUALIFIED
Salvatore M BologniaUnited KingdomXuxue Feng NEGOTIATION
Salvatore A ShinkoJapanOnyama Limba RENEWAL
Silvio L OstroskyArgentinaAmy Elsner QUALIFIED
Rodrigues I SergiFranceElwin Sharvill PROPOSAL
Jennifer W CaldareraArgentinaAmy Elsner QUALIFIED
Maria Q AmigonJapanAsiya Javayant PROPOSAL
Ashley W KuskoItalyBernardo Dominic UNQUALIFIED
Juan L PerinCanadaXuxue Feng PROPOSAL
Smith K AlbaresAustraliaXuxue Feng RENEWAL
Claire P RoysterBrazilAmy Elsner PROPOSAL
Aruna G GauchoRussiaIoni Bowcher QUALIFIED
Antonio A StensethGermanyBernardo Dominic UNQUALIFIED
Mujtaba I BologniaJapanStephen Shaw UNQUALIFIED
Emily E SlusarskiItalyOnyama Limba QUALIFIED
Costa S GlickBrazilAnna Fali QUALIFIED
Nicolas Z PaprockiItalyXuxue Feng UNQUALIFIED
Misaki L KolmetzJapanElwin Sharvill NEGOTIATION
Emily A BriddickUnited KingdomIvan Magalhaes NEW
Julie Y ButtAustraliaOnyama Limba NEW
Nicolas Q IturbideGermanyIvan Magalhaes PROPOSAL
Arvin N StensethCanadaAmy Elsner UNQUALIFIED
Leon U CaldareraRussiaIoni Bowcher NEGOTIATION
Mujtaba K CaudyArgentinaIvan Magalhaes NEW
Deepesh I NickaArgentinaXuxue Feng PROPOSAL
Juan F KuskoUnited KingdomXuxue Feng UNQUALIFIED
Ashley W ShinkoCanadaBernardo Dominic QUALIFIED
Jones I AlbaresJapanStephen Shaw RENEWAL
Adams B SlusarskiBrazilXuxue Feng RENEWAL
Ricardo F WaycottAustraliaIoni Bowcher UNQUALIFIED
Jefferson Q MacleadFranceIvan Magalhaes PROPOSAL
Maisha S CampainJapanOnyama Limba NEGOTIATION
Kadeem L CaudyCanadaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams R KuskoCanadaStephen Shaw PROPOSAL
Arvin E RulapaughCanadaIvan Magalhaes QUALIFIED
Clifford J GillianCanadaAnna Fali RENEWAL
Julie Z BriddickRussiaAsiya Javayant PROPOSAL
Nicolas P ChuiRussiaAsiya Javayant QUALIFIED
Ivar H TollnerArgentinaXuxue Feng QUALIFIED
Jones U FollerJapanOnyama Limba RENEWAL
Jennifer I FerenczArgentinaAsiya Javayant PROPOSAL
Smith T FlosiBrazilOnyama Limba UNQUALIFIED
Francesco G CampainCanadaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood T FigeroaAustralia2024-04-08Feltz Printing Service RENEWAL60Xuxue Feng
1001Aditya H BologniaBrazil2024-04-11Benton, John B Jr RENEWAL72Elwin Sharvill
1002Clifford G RutaArgentina2024-04-20Dorl, James J Esq NEGOTIATION8Onyama Limba
1003Octavia F BologniaUnited Kingdom2024-04-23Printing Dimensions UNQUALIFIED20Ioni Bowcher
1004David W GarufiArgentina2024-03-31Rangoni Of Florence NEGOTIATION99Anna Fali
1005Emily B DarakjyItaly2024-04-16Feiner Bros QUALIFIED56Xuxue Feng
1006Jefferson M VocelkaRussia2024-03-30King, Christopher A Esq QUALIFIED77Xuxue Feng
1007Clifford A IturbideRussia2024-04-24Feltz Printing Service NEW73Ivan Magalhaes
1008Octavia L MorascaUnited Kingdom2024-03-30Buckley Miller Wright UNQUALIFIED66Onyama Limba
1009Adams E DarakjyCanada2024-04-03Morlong Associates NEGOTIATION22Stephen Shaw
1010Adams M FigeroaArgentina2024-04-25Feiner Bros QUALIFIED33Ivan Magalhaes
1011Kaitlin U WaycottArgentina2024-04-08Chanay, Jeffrey A Esq NEW39Elwin Sharvill
1012Silvio D SlusarskiGermany2024-04-05Buckley Miller Wright RENEWAL51Ivan Magalhaes
1013Misaki G RutaSpain2024-04-19Feiner Bros NEW9Anna Fali
1014Emily B MacleadCanada2024-04-18Chapman, Ross E Esq PROPOSAL44Asiya Javayant
1015Silvio M ButtIndia2024-04-08Commercial Press RENEWAL96Stephen Shaw
1016Jefferson I WaycottCanada2024-03-30Feiner Bros RENEWAL10Elwin Sharvill
1017Arvin P GillianGermany2024-04-04Commercial Press UNQUALIFIED0Xuxue Feng
1018Faith N GillianUnited Kingdom2024-04-26King, Christopher A Esq NEW68Anna Fali
1019Izzy R OstroskyCanada2024-04-26Rousseaux, Michael Esq NEW64Asiya Javayant
1020Mujtaba K VenereAustralia2024-04-17King, Christopher A Esq PROPOSAL78Ioni Bowcher
1021Julie B DilliardArgentina2024-04-04Feltz Printing Service UNQUALIFIED48Onyama Limba
1022Clifford Z KolmetzItaly2024-03-31Feltz Printing Service NEW14Xuxue Feng
1023Antonio O MaletUnited Kingdom2024-04-24Truhlar And Truhlar Attys RENEWAL26Amy Elsner
1024Murillo O RimIndia2024-04-23King, Christopher A Esq QUALIFIED12Bernardo Dominic
1025Kaitlin A WhobreyFrance2024-04-16Truhlar And Truhlar Attys PROPOSAL27Amy Elsner
1026Jefferson S SlusarskiItaly2024-04-02Commercial Press NEGOTIATION87Amy Elsner
1027Misaki S StensethAustralia2024-04-09Chapman, Ross E Esq NEW47Ivan Magalhaes
1028Costa H GarufiCanada2024-04-17Commercial Press UNQUALIFIED4Ioni Bowcher
1029Jones P SergiBrazil2024-04-20King, Christopher A Esq UNQUALIFIED77Elwin Sharvill
1030Claire F FlosiIndia2024-04-01Chemel, James L Cpa RENEWAL85Stephen Shaw
1031Aika R BologniaArgentina2024-04-07Feiner Bros PROPOSAL64Amy Elsner
1032Greenwood Y RoysterCanada2024-04-25Printing Dimensions NEW85Stephen Shaw
1033Kaitlin P OstroskyFrance2024-04-10Feiner Bros QUALIFIED59Ivan Magalhaes
1034Sinclair T KolmetzArgentina2024-04-12Feltz Printing Service NEGOTIATION94Amy Elsner
1035Jefferson Z SchemmerJapan2024-04-03Buckley Miller Wright QUALIFIED12Bernardo Dominic
1036Izzy R FerenczBrazil2024-03-29Commercial Press QUALIFIED72Elwin Sharvill
1037Jeanfrancois H CaldareraSpain2024-04-05King, Christopher A Esq NEW54Ioni Bowcher
1038Maria O CampainGermany2024-04-21King, Christopher A Esq UNQUALIFIED19Xuxue Feng
1039Chavez T MaletGermany2024-04-07Commercial Press QUALIFIED22Anna Fali
1040Salvatore T SergiCanada2024-04-13Commercial Press NEW98Onyama Limba
1041Darci Y FigeroaArgentina2024-04-06Chapman, Ross E Esq QUALIFIED74Asiya Javayant
1042Clifford F KolmetzRussia2024-04-15Feltz Printing Service NEW37Asiya Javayant
1043Smith U FollerIndia2024-03-28Rangoni Of Florence QUALIFIED39Onyama Limba
1044Aditya F CampainItaly2024-04-21Chanay, Jeffrey A Esq NEGOTIATION47Ioni Bowcher
1045Stacey Q FlosiJapan2024-04-18King, Christopher A Esq UNQUALIFIED32Ivan Magalhaes
1046Mujtaba G PoquetteRussia2024-04-02Truhlar And Truhlar Attys RENEWAL72Onyama Limba
1047Stacey K DilliardBrazil2024-04-02Chanay, Jeffrey A Esq RENEWAL42Ivan Magalhaes
1048Mujtaba S MarrierAustralia2024-04-09King, Christopher A Esq PROPOSAL21Elwin Sharvill
1049Mujtaba N CaldareraGermany2024-04-15Chemel, James L Cpa UNQUALIFIED86Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Salvatore T NickaGermanyElwin Sharvill NEGOTIATION
Alejandro H VocelkaRussiaOnyama Limba QUALIFIED
Mayumi U KolmetzSpainIoni Bowcher UNQUALIFIED
Leon S WieserIndiaBernardo Dominic NEGOTIATION
Munro N FigeroaRussiaBernardo Dominic UNQUALIFIED
Tony C FigeroaBrazilStephen Shaw RENEWAL
Leon Y CampainIndiaStephen Shaw NEGOTIATION
Ivar P SchemmerItalyAnna Fali NEGOTIATION
Jefferson O StensethArgentinaAnna Fali RENEWAL
Murillo E PoquetteArgentinaAmy Elsner NEW
Maisha R RoysterCanadaStephen Shaw NEW
Jennifer R CaldareraJapanBernardo Dominic NEGOTIATION
Faith O StockhamAustraliaStephen Shaw QUALIFIED
Aditya Z RutaRussiaOnyama Limba NEGOTIATION
Ashley L WhobreyIndiaAsiya Javayant PROPOSAL
Isabel V MorascaItalyStephen Shaw NEW
Misaki V GillianUnited KingdomBernardo Dominic NEW
David Q WieserFranceIoni Bowcher RENEWAL
Emily P MorascaCanadaAmy Elsner UNQUALIFIED
James Y ShinkoBrazilIoni Bowcher PROPOSAL
Francesco P GauchoFranceXuxue Feng UNQUALIFIED
Salvatore L StensethBrazilIoni Bowcher PROPOSAL
Salvatore X KolmetzSpainIvan Magalhaes NEGOTIATION
Octavia K BowleyJapanXuxue Feng NEW
Cody H VocelkaItalyIoni Bowcher QUALIFIED
Alejandro L BowleyJapanAmy Elsner PROPOSAL
Sinclair X TollnerRussiaElwin Sharvill NEGOTIATION
Leon T NestleAustraliaStephen Shaw RENEWAL
Aruna Z SchemmerSpainElwin Sharvill NEGOTIATION
Kadeem K DilliardGermanyAmy Elsner NEGOTIATION
Jefferson A MaletFranceOnyama Limba RENEWAL
Aika J GarufiItalyXuxue Feng QUALIFIED
Jones L ButtBrazilElwin Sharvill UNQUALIFIED
Aditya L FigeroaJapanAsiya Javayant UNQUALIFIED
Darci U FlosiBrazilElwin Sharvill QUALIFIED
Chavez T RulapaughItalyAsiya Javayant QUALIFIED
Mayumi T InouyeSpainElwin Sharvill NEGOTIATION
Kadeem Y WhobreyItalyElwin Sharvill QUALIFIED
Aika N StensethArgentinaAnna Fali NEW
Chavez G GlickRussiaAmy Elsner NEGOTIATION
Jones B BriddickCanadaAsiya Javayant NEGOTIATION
Jones U GarufiAustraliaStephen Shaw NEGOTIATION
Tony T NickaJapanAnna Fali NEW
Octavia T ButtItalyAnna Fali RENEWAL
Jeanfrancois G GauchoSpainAnna Fali UNQUALIFIED
Salvatore H AmigonUnited KingdomXuxue Feng QUALIFIED
Greenwood S GauchoAustraliaIvan Magalhaes PROPOSAL
Isabel D BriddickItalyBernardo Dominic UNQUALIFIED
Mujtaba R SlusarskiBrazilXuxue Feng PROPOSAL
Morrow I KolmetzBrazilBernardo Dominic PROPOSAL
Frozen Columns
Name
Isabel U Rulapaugh
Jennifer Y Caldarera
Jennifer T Garufi
Nicolas X Foller
Aditya G Kusko
Arvin Y Kolmetz
Munro P Garufi
Leja N Rim
Jeanfrancois P Figeroa
Izzy D Dilliard
Deepesh B Malet
Jefferson F Inouye
Isabel C Inouye
Darci S Whobrey
Octavia C Ostrosky
Munro H Chui
Aditya T Rim
Jennifer S Ferencz
Isabel U Stockham
Rodrigues M Caldarera
Nicolas W Nicka
Izzy F Malet
Darci M Royster
Ashley H Briddick
Octavia J Dilliard
Aditya V Bowley
Maisha H Rulapaugh
Silvio G Royster
Jennifer V Flosi
Isabel O Bolognia
Emily G Albares
Faith Q Perin
Darci B Chui
Rodrigues P Wieser
Francesco E Malet
Emily B Slusarski
Adams T Waycott
Ashley Q Shinko
Cody C Schemmer
Leja Q Malet
Faith W Iturbide
Smith H Amigon
Maisha H Sergi
Antonio U Whobrey
Salvatore C Ruta
Julie Z Darakjy
Johnson H Caldarera
Alejandro T Kolmetz
Wickens A Chui
Stacey D Flosi
IdCountryDate
1000Australia2024-04-13
1001Spain2024-04-19
1002Russia2024-03-29
1003United Kingdom2024-04-09
1004Australia2024-04-21
1005United Kingdom2024-04-23
1006United Kingdom2024-04-13
1007Spain2024-04-26
1008United Kingdom2024-04-11
1009Italy2024-04-08
1010Germany2024-04-19
1011Germany2024-04-11
1012Australia2024-04-01
1013Germany2024-04-25
1014Germany2024-04-02
1015Spain2024-04-19
1016India2024-04-12
1017Italy2024-04-24
1018India2024-04-04
1019Germany2024-04-16
1020Canada2024-04-18
1021Italy2024-04-11
1022Japan2024-04-14
1023Russia2024-03-29
1024Russia2024-04-11
1025Italy2024-03-29
1026Spain2024-04-16
1027Italy2024-04-05
1028Brazil2024-04-02
1029India2024-04-03
1030India2024-04-18
1031Spain2024-04-11
1032Spain2024-04-11
1033Argentina2024-04-11
1034Russia2024-04-09
1035Argentina2024-04-22
1036Argentina2024-03-28
1037France2024-04-17
1038Argentina2024-04-05
1039France2024-03-29
1040Argentina2024-03-28
1041Spain2024-04-10
1042Russia2024-04-01
1043Brazil2024-04-26
1044Canada2024-04-12
1045Australia2024-04-12
1046United Kingdom2024-04-05
1047Russia2024-04-26
1048Russia2024-04-26
1049France2024-04-10

On-Demand Data

NameIdCountryDate
Murillo I Marrier1000Australia2024-04-11
Jeanfrancois Q Ruta1001Germany2024-03-29
Aruna C Darakjy1002Argentina2024-04-09
Antonio K Sergi1003Russia2024-04-25
Ivar J Darakjy1004Russia2024-04-21
Julie J Inouye1005Germany2024-04-11
Ivar H Flosi1006Russia2024-04-26
Morrow V Waycott1007Germany2024-04-12
Leon X Glick1008France2024-04-23
Kadeem K Saylors1009Canada2024-04-08
Clifford S Sergi1010India2024-04-12
Aruna B Tollner1011Italy2024-04-22
Kadeem U Paprocki1012Argentina2024-03-30
Aika S Rulapaugh1013United Kingdom2024-04-14
Aditya Q Gillian1014Japan2024-04-17
Munro L Whobrey1015Italy2024-04-04
Sinclair E Poquette1016Australia2024-04-10
Murillo H Gaucho1017Argentina2024-04-18
Rodrigues T Briddick1018Brazil2024-04-22
Mujtaba C Perin1019Germany2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson P WieserCanadaBernardo Dominic PROPOSAL
Julie B AmigonUnited KingdomAnna Fali QUALIFIED
Ivar W ChuiArgentinaXuxue Feng NEW
Jefferson V FigeroaJapanIoni Bowcher PROPOSAL
Wickens P RoysterAustraliaElwin Sharvill NEW
Salvatore J MarrierFranceIoni Bowcher NEGOTIATION
Jennifer X NickaUnited KingdomOnyama Limba NEGOTIATION
Costa H SchemmerArgentinaXuxue Feng NEW
Arvin N VocelkaAustraliaElwin Sharvill NEGOTIATION
Murillo J ButtJapanStephen Shaw NEW
James H IturbideGermanyAsiya Javayant PROPOSAL
Johnson L MacleadItalyAmy Elsner RENEWAL
Munro I RulapaughRussiaStephen Shaw NEGOTIATION
Tony G WaycottJapanOnyama Limba PROPOSAL
Ricardo S MaletIndiaOnyama Limba PROPOSAL
Octavia Z DarakjyFranceIvan Magalhaes NEW
Faith G SlusarskiFranceIvan Magalhaes RENEWAL
Aika G RutaAustraliaAmy Elsner NEW
Leja D OldroydArgentinaOnyama Limba NEW
Murillo L MorascaJapanBernardo Dominic NEW
Isabel W OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba R MorascaSpainAnna Fali PROPOSAL
Ivar C StockhamSpainAsiya Javayant UNQUALIFIED
Maria I BologniaItalyAsiya Javayant NEW
Johnson M MorascaItalyIoni Bowcher NEGOTIATION
Octavia A WieserCanadaAmy Elsner UNQUALIFIED
Costa C FerenczRussiaIvan Magalhaes RENEWAL
Greenwood T CampainRussiaAnna Fali UNQUALIFIED
Misaki N BriddickAustraliaBernardo Dominic QUALIFIED
Costa X StensethBrazilXuxue Feng UNQUALIFIED
Jefferson V SaylorsCanadaOnyama Limba QUALIFIED
Munro J BologniaSpainOnyama Limba PROPOSAL
Julie Y IturbideArgentinaIoni Bowcher NEGOTIATION
Silvio P PaprockiIndiaBernardo Dominic QUALIFIED
Jennifer S WieserGermanyBernardo Dominic PROPOSAL
Emily M KolmetzRussiaStephen Shaw QUALIFIED
Wickens D MaletFranceAmy Elsner UNQUALIFIED
Misaki V CaudyIndiaElwin Sharvill UNQUALIFIED
Cody N InouyeAustraliaStephen Shaw NEGOTIATION
Kadeem Q MorascaBrazilAsiya Javayant PROPOSAL

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