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
Leon J BowleyRussiaAsiya Javayant QUALIFIED
David B AlbaresRussiaAsiya Javayant UNQUALIFIED
Mayumi Z WhobreyArgentinaIoni Bowcher RENEWAL
Sinclair J RulapaughIndiaAnna Fali NEW
Greenwood Q MorascaRussiaAsiya Javayant NEW
Nicolas N NestleSpainAnna Fali UNQUALIFIED
Adams E ButtBrazilElwin Sharvill UNQUALIFIED
Octavia V DarakjyBrazilAnna Fali NEGOTIATION
Clifford P FerenczCanadaOnyama Limba NEGOTIATION
Rodrigues N BologniaBrazilOnyama Limba RENEWAL
Ricardo N KolmetzAustraliaAnna Fali UNQUALIFIED
Alejandro Q SlusarskiAustraliaElwin Sharvill RENEWAL
Jeanfrancois V ShinkoSpainAmy Elsner NEGOTIATION
Antonio Y StockhamJapanXuxue Feng NEW
Salvatore A CaudyUnited KingdomAnna Fali NEW
Cody H NestleFranceAnna Fali RENEWAL
Jefferson E RutaAustraliaBernardo Dominic NEW
Greenwood Z GillianRussiaElwin Sharvill QUALIFIED
Kadeem H CaudyAustraliaAnna Fali PROPOSAL
Mujtaba R VocelkaSpainAnna Fali QUALIFIED
Johnson N NestleCanadaAsiya Javayant NEGOTIATION
Faith K VocelkaIndiaElwin Sharvill RENEWAL
Maria M WaycottBrazilElwin Sharvill QUALIFIED
Greenwood C InouyeBrazilXuxue Feng NEW
Munro P CampainRussiaStephen Shaw NEW
Mayumi X TollnerItalyElwin Sharvill RENEWAL
Munro T BriddickJapanAnna Fali RENEWAL
Jefferson F RulapaughBrazilIoni Bowcher UNQUALIFIED
Murillo I PaprockiUnited KingdomStephen Shaw QUALIFIED
Wickens Q FerenczCanadaIvan Magalhaes PROPOSAL
Maria W KolmetzSpainBernardo Dominic NEGOTIATION
Francesco Y PoquetteUnited KingdomAmy Elsner NEGOTIATION
Salvatore U WhobreyItalyStephen Shaw NEW
Francesco U WaycottJapanBernardo Dominic UNQUALIFIED
Francesco S RimArgentinaXuxue Feng RENEWAL
Ivar H GauchoBrazilIvan Magalhaes RENEWAL
Morrow Q GauchoAustraliaElwin Sharvill PROPOSAL
Cody G CaudyCanadaAmy Elsner UNQUALIFIED
Francesco B CampainIndiaAnna Fali UNQUALIFIED
Mayumi O MaletArgentinaIvan Magalhaes RENEWAL
Cody D DoeItalyIvan Magalhaes NEGOTIATION
Rodrigues Y FerenczIndiaElwin Sharvill QUALIFIED
Juan M ChuiCanadaIoni Bowcher NEW
Greenwood R DilliardArgentinaBernardo Dominic RENEWAL
Alejandro L WaycottUnited KingdomAnna Fali UNQUALIFIED
David O RimSpainAsiya Javayant QUALIFIED
Darci T NestleUnited KingdomAsiya Javayant QUALIFIED
Leon X FollerArgentinaAmy Elsner NEGOTIATION
Antonio L MacleadBrazilIvan Magalhaes QUALIFIED
Nicolas U WaycottFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Silvio O MacleadIndiaXuxue Feng NEGOTIATION
Clifford X IturbideArgentinaIvan Magalhaes NEGOTIATION
Munro I ChuiAustraliaStephen Shaw NEW
Silvio P RutaUnited KingdomXuxue Feng UNQUALIFIED
Emily D IturbideJapanAsiya Javayant RENEWAL
Aditya I IturbideSpainIoni Bowcher PROPOSAL
Maisha K OstroskyItalyIvan Magalhaes NEGOTIATION
Juan G ButtItalyOnyama Limba QUALIFIED
Aruna N BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Maria B GarufiSpainElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford Y VocelkaItaly2024-03-31Chanay, Jeffrey A Esq QUALIFIED43Anna Fali
1001Tony Q GauchoBrazil2024-04-21Rousseaux, Michael Esq NEW60Onyama Limba
1002Jefferson Y VenereRussia2024-04-03Feiner Bros UNQUALIFIED71Onyama Limba
1003Greenwood N RoysterIndia2024-04-01Commercial Press RENEWAL12Bernardo Dominic
1004Isabel K FollerIndia2024-04-22Feltz Printing Service NEGOTIATION14Ivan Magalhaes
1005Arvin P CaudyItaly2024-04-12Truhlar And Truhlar Attys PROPOSAL58Amy Elsner
1006Sinclair C IturbideSpain2024-04-06Rangoni Of Florence NEGOTIATION31Ioni Bowcher
1007Cody S PerinArgentina2024-04-09Rousseaux, Michael Esq NEW60Bernardo Dominic
1008Ricardo B DarakjyBrazil2024-03-30King, Christopher A Esq QUALIFIED64Stephen Shaw
1009Sinclair E DarakjySpain2024-04-06Truhlar And Truhlar Attys NEGOTIATION82Anna Fali
1010Mujtaba Y PaprockiSpain2024-04-07Feltz Printing Service PROPOSAL87Bernardo Dominic
1011Julie Y DarakjyJapan2024-04-19Truhlar And Truhlar Attys PROPOSAL93Asiya Javayant
1012Claire M BologniaCanada2024-04-12Chemel, James L Cpa RENEWAL12Amy Elsner
1013James T BologniaFrance2024-04-16Rousseaux, Michael Esq QUALIFIED65Ivan Magalhaes
1014Ivar U InouyeRussia2024-04-15Chemel, James L Cpa NEGOTIATION68Ioni Bowcher
1015Izzy C SchemmerBrazil2024-04-19Commercial Press QUALIFIED42Bernardo Dominic
1016Wickens Y GlickJapan2024-04-09Chapman, Ross E Esq RENEWAL4Xuxue Feng
1017Jennifer Y RoysterJapan2024-04-21Truhlar And Truhlar Attys NEW12Ivan Magalhaes
1018Faith F GauchoSpain2024-04-23Feltz Printing Service NEGOTIATION5Onyama Limba
1019Silvio H PoquetteAustralia2024-04-28Rangoni Of Florence RENEWAL81Ioni Bowcher
1020Kaitlin B CaudyItaly2024-04-24Rangoni Of Florence RENEWAL56Bernardo Dominic
1021Aruna M PoquetteUnited Kingdom2024-03-30Feltz Printing Service NEW67Asiya Javayant
1022Juan R KolmetzUnited Kingdom2024-04-17Rousseaux, Michael Esq QUALIFIED64Stephen Shaw
1023Greenwood Z DoeFrance2024-04-27Morlong Associates UNQUALIFIED39Asiya Javayant
1024Aditya T MarrierRussia2024-03-30Commercial Press NEW95Xuxue Feng
1025Murillo Y KolmetzSpain2024-04-05Feltz Printing Service RENEWAL96Xuxue Feng
1026Octavia L StensethCanada2024-04-16Buckley Miller Wright RENEWAL35Stephen Shaw
1027Kadeem J NestleItaly2024-04-07Morlong Associates UNQUALIFIED92Elwin Sharvill
1028Deepesh R RimArgentina2024-04-21Chapman, Ross E Esq NEGOTIATION53Amy Elsner
1029David W KolmetzItaly2024-04-26Chemel, James L Cpa UNQUALIFIED37Xuxue Feng
1030Stacey V WhobreyItaly2024-04-25Commercial Press PROPOSAL71Anna Fali
1031Julie V FerenczUnited Kingdom2024-04-09Rangoni Of Florence QUALIFIED11Ioni Bowcher
1032Mujtaba W InouyeSpain2024-04-12Printing Dimensions PROPOSAL40Bernardo Dominic
1033Julie Q StensethFrance2024-04-14King, Christopher A Esq RENEWAL92Onyama Limba
1034Maisha G PaprockiUnited Kingdom2024-04-28Chapman, Ross E Esq PROPOSAL77Xuxue Feng
1035Darci L MaletAustralia2024-04-09Commercial Press PROPOSAL92Ivan Magalhaes
1036Octavia R TollnerIndia2024-04-15Benton, John B Jr QUALIFIED47Stephen Shaw
1037Jefferson P FigeroaRussia2024-04-05Morlong Associates RENEWAL37Onyama Limba
1038Rodrigues Y MarrierSpain2024-04-21Rangoni Of Florence PROPOSAL8Onyama Limba
1039Sinclair Q IturbideArgentina2024-04-15Printing Dimensions QUALIFIED55Onyama Limba
1040Stacey C PoquetteArgentina2024-04-11Printing Dimensions PROPOSAL17Ivan Magalhaes
1041Jones Y RoysterSpain2024-04-22Benton, John B Jr NEGOTIATION94Elwin Sharvill
1042James H KolmetzBrazil2024-04-16Chapman, Ross E Esq PROPOSAL13Ivan Magalhaes
1043Jefferson W FerenczJapan2024-04-23Dorl, James J Esq NEGOTIATION45Asiya Javayant
1044Nicolas U ButtIndia2024-04-10Benton, John B Jr NEGOTIATION33Amy Elsner
1045Murillo B WaycottCanada2024-04-26Truhlar And Truhlar Attys RENEWAL56Xuxue Feng
1046Jeanfrancois I WhobreyArgentina2024-04-06Feltz Printing Service RENEWAL72Asiya Javayant
1047James W VocelkaAustralia2024-04-28King, Christopher A Esq NEW1Stephen Shaw
1048Stacey P VenereJapan2024-04-17Feiner Bros NEW60Anna Fali
1049Rodrigues G VenereBrazil2024-04-01Chemel, James L Cpa RENEWAL19Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro J SlusarskiSpainAsiya Javayant QUALIFIED
Smith A FlosiRussiaAnna Fali QUALIFIED
Jefferson K DilliardBrazilIvan Magalhaes NEW
Aika H NestleJapanIvan Magalhaes NEW
Smith Y NestleCanadaAmy Elsner QUALIFIED
Stacey X BriddickArgentinaAnna Fali UNQUALIFIED
Costa Q StensethJapanAsiya Javayant NEGOTIATION
Aika P WaycottCanadaIvan Magalhaes QUALIFIED
Mayumi H ChuiBrazilAnna Fali QUALIFIED
Munro K StockhamArgentinaBernardo Dominic RENEWAL
Kadeem R AlbaresCanadaIoni Bowcher RENEWAL
Smith G ChuiSpainOnyama Limba RENEWAL
Antonio M TollnerJapanStephen Shaw PROPOSAL
Faith F StensethBrazilAmy Elsner NEW
Greenwood E RimIndiaOnyama Limba RENEWAL
Jones C AmigonCanadaXuxue Feng RENEWAL
Aika S SchemmerItalyAsiya Javayant PROPOSAL
Aruna B KuskoJapanStephen Shaw RENEWAL
Kadeem S BowleyIndiaXuxue Feng PROPOSAL
Arvin K FlosiBrazilIvan Magalhaes NEW
Julie A MorascaGermanyBernardo Dominic PROPOSAL
Chavez D RutaIndiaAnna Fali NEW
Jeanfrancois Q AlbaresItalyBernardo Dominic RENEWAL
Francesco O ChuiFranceStephen Shaw NEW
Emily D WieserItalyAsiya Javayant NEW
James T WhobreyCanadaBernardo Dominic RENEWAL
Alejandro A RoysterCanadaElwin Sharvill PROPOSAL
Cody A BriddickItalyAsiya Javayant NEW
Ashley W StockhamUnited KingdomAsiya Javayant QUALIFIED
Rodrigues I InouyeGermanyElwin Sharvill RENEWAL
Ivar Y RimRussiaXuxue Feng NEW
Jones L NestleItalyAsiya Javayant NEGOTIATION
Munro T NestleItalyAnna Fali NEW
Leja V BriddickJapanIvan Magalhaes NEW
Sinclair C GlickFranceElwin Sharvill NEW
Ricardo K GlickArgentinaBernardo Dominic NEGOTIATION
Ivar L StensethGermanyElwin Sharvill NEW
Arvin F NickaFranceXuxue Feng PROPOSAL
Aditya J RoysterItalyBernardo Dominic NEGOTIATION
Jones H GlickCanadaAsiya Javayant RENEWAL
Murillo R NestleRussiaAsiya Javayant UNQUALIFIED
Jefferson K GauchoJapanAnna Fali QUALIFIED
Mayumi C CaudyCanadaAnna Fali PROPOSAL
Emily H NickaUnited KingdomStephen Shaw QUALIFIED
Maisha J MacleadRussiaStephen Shaw QUALIFIED
Sinclair G GauchoItalyIvan Magalhaes UNQUALIFIED
Mayumi B TollnerSpainIoni Bowcher UNQUALIFIED
Chavez S SaylorsUnited KingdomStephen Shaw QUALIFIED
Rodrigues U OstroskyAustraliaAmy Elsner PROPOSAL
Costa B NickaFranceXuxue Feng NEGOTIATION
Frozen Columns
Name
Juan T Gillian
Jones F Malet
Aruna D Sergi
Adams K Malet
Leja P Stenseth
Arvin K Amigon
Misaki V Garufi
Stacey U Kolmetz
Murillo A Butt
Leon D Figeroa
Ivar E Shinko
Izzy X Ostrosky
Chavez S Iturbide
Aditya J Ruta
Mayumi U Inouye
Cody C Caudy
Darci R Slusarski
Munro A Doe
Mayumi L Ostrosky
Alejandro R Saylors
Misaki P Tollner
Ricardo A Dilliard
Ricardo G Bolognia
Juan P Kusko
Chavez O Nicka
Greenwood M Doe
Mayumi T Ostrosky
Costa P Whobrey
Tony L Bowley
Sinclair H Royster
Ashley Q Wieser
Deepesh M Chui
David H Bowley
Jefferson G Briddick
Salvatore F Kusko
Murillo G Bolognia
Leja W Flosi
Claire W Morasca
Chavez S Caudy
David H Flosi
Silvio N Bowley
Alejandro R Malet
Silvio F Butt
Aditya N Flosi
Chavez L Briddick
Misaki G Gaucho
Salvatore V Kusko
Stacey V Caldarera
Jones Z Maclead
Smith M Shinko
IdCountryDate
1000Germany2024-04-15
1001India2024-04-15
1002India2024-04-12
1003Brazil2024-03-30
1004Spain2024-04-22
1005France2024-04-28
1006Canada2024-04-17
1007Russia2024-04-10
1008India2024-04-07
1009Australia2024-04-16
1010Brazil2024-04-22
1011United Kingdom2024-04-08
1012Canada2024-04-27
1013Germany2024-04-27
1014Argentina2024-04-18
1015Argentina2024-04-05
1016Spain2024-04-20
1017Australia2024-04-17
1018Australia2024-04-21
1019Germany2024-04-18
1020Canada2024-04-11
1021United Kingdom2024-04-06
1022India2024-04-17
1023United Kingdom2024-04-14
1024Russia2024-04-13
1025Russia2024-04-07
1026Argentina2024-04-28
1027Australia2024-04-04
1028Brazil2024-03-30
1029Russia2024-04-17
1030India2024-04-10
1031United Kingdom2024-03-30
1032France2024-04-23
1033Australia2024-04-18
1034Australia2024-04-06
1035India2024-04-07
1036Canada2024-04-02
1037France2024-04-07
1038Brazil2024-04-04
1039Spain2024-04-27
1040Spain2024-04-20
1041France2024-04-03
1042Japan2024-04-20
1043Argentina2024-04-06
1044France2024-04-08
1045India2024-04-22
1046Australia2024-04-21
1047Argentina2024-03-30
1048Germany2024-04-26
1049Russia2024-04-17

On-Demand Data

NameIdCountryDate
Aruna G Tollner1000Russia2024-04-11
Aika G Caldarera1001France2024-04-07
Maisha L Rulapaugh1002Spain2024-04-23
Juan M Caudy1003Spain2024-04-06
Adams B Glick1004Canada2024-04-09
James G Campain1005Russia2024-04-12
Aditya T Shinko1006Brazil2024-04-14
Arvin W Briddick1007India2024-03-31
Stacey Y Saylors1008Italy2024-04-04
Arvin O Foller1009United Kingdom2024-04-10
Salvatore B Malet1010Russia2024-04-10
Ricardo V Schemmer1011Canada2024-04-11
Kadeem C Slusarski1012France2024-03-31
Tony L Rulapaugh1013Australia2024-04-21
Mayumi B Briddick1014Canada2024-04-26
Chavez I Darakjy1015Japan2024-04-22
Johnson P Stockham1016Australia2024-03-31
Adams J Butt1017India2024-03-31
Tony V Gillian1018Italy2024-04-05
Cody K Poquette1019Canada2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Y WaycottBrazilOnyama Limba UNQUALIFIED
Greenwood G GarufiArgentinaAnna Fali PROPOSAL
Aika V MorascaGermanyStephen Shaw NEGOTIATION
Mujtaba Q CaldareraJapanXuxue Feng PROPOSAL
Chavez R StensethIndiaIvan Magalhaes QUALIFIED
Izzy D RimIndiaXuxue Feng RENEWAL
Jeanfrancois U WhobreyFranceIoni Bowcher RENEWAL
Ricardo D CampainGermanyOnyama Limba RENEWAL
Faith V TollnerItalyAsiya Javayant QUALIFIED
Claire H RulapaughJapanElwin Sharvill NEW
Silvio U CampainItalyXuxue Feng PROPOSAL
Antonio D GillianBrazilAsiya Javayant PROPOSAL
Salvatore R FerenczIndiaAsiya Javayant RENEWAL
Alejandro O WhobreyArgentinaXuxue Feng QUALIFIED
Nicolas Y WhobreyIndiaStephen Shaw NEGOTIATION
Mayumi B SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Morrow T ButtJapanXuxue Feng QUALIFIED
David V WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Deepesh M DarakjyRussiaElwin Sharvill UNQUALIFIED
Greenwood P NickaJapanIoni Bowcher QUALIFIED
Jeanfrancois R AmigonItalyBernardo Dominic PROPOSAL
Jefferson R FlosiRussiaIvan Magalhaes UNQUALIFIED
Misaki B AlbaresGermanyBernardo Dominic PROPOSAL
Kaitlin K GlickRussiaStephen Shaw RENEWAL
Arvin F NestleBrazilAmy Elsner NEGOTIATION
Smith I StockhamSpainElwin Sharvill RENEWAL
Leon U FigeroaGermanyIvan Magalhaes PROPOSAL
Stacey U VocelkaGermanyOnyama Limba QUALIFIED
Ivar J PerinUnited KingdomElwin Sharvill QUALIFIED
Antonio T InouyeBrazilElwin Sharvill QUALIFIED
Ashley R MorascaSpainIoni Bowcher RENEWAL
Cody H VocelkaAustraliaAnna Fali PROPOSAL
Arvin F ChuiUnited KingdomElwin Sharvill QUALIFIED
Silvio M WhobreyBrazilStephen Shaw NEW
Mujtaba X ButtArgentinaIoni Bowcher NEW
Maisha H AmigonJapanAsiya Javayant PROPOSAL
Leon Z NickaCanadaOnyama Limba NEW
Juan F WieserUnited KingdomAnna Fali PROPOSAL
Kadeem B PerinFranceStephen Shaw UNQUALIFIED
Salvatore J OldroydRussiaStephen Shaw 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>