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
Juan B MarrierArgentinaIvan Magalhaes RENEWAL
Costa F CaldareraSpainAmy Elsner RENEWAL
Smith Z PaprockiCanadaBernardo Dominic PROPOSAL
Adams E PaprockiArgentinaAsiya Javayant NEW
Mayumi F MaletCanadaElwin Sharvill UNQUALIFIED
Jones X RimBrazilAsiya Javayant QUALIFIED
Jefferson J GlickGermanyElwin Sharvill PROPOSAL
Arvin Z DilliardJapanIvan Magalhaes PROPOSAL
Deepesh G BriddickRussiaOnyama Limba UNQUALIFIED
Sinclair D MacleadJapanXuxue Feng UNQUALIFIED
Aika D MaletFranceAmy Elsner QUALIFIED
Kadeem G FigeroaUnited KingdomOnyama Limba RENEWAL
Arvin C GauchoCanadaIoni Bowcher NEW
Aditya M DarakjyIndiaBernardo Dominic NEGOTIATION
Ricardo F InouyeJapanAmy Elsner PROPOSAL
Kadeem F FerenczAustraliaAnna Fali NEW
Clifford V GarufiSpainBernardo Dominic NEW
Ricardo V CampainItalyXuxue Feng NEGOTIATION
Jones F WhobreyArgentinaIoni Bowcher NEGOTIATION
Ivar N RutaBrazilXuxue Feng NEGOTIATION
Nicolas O PerinFranceAnna Fali PROPOSAL
Jones A CaudyAustraliaStephen Shaw QUALIFIED
Isabel H FollerArgentinaAsiya Javayant RENEWAL
Ashley V ButtUnited KingdomAmy Elsner NEGOTIATION
David I MaletGermanyOnyama Limba PROPOSAL
Francesco I FlosiItalyIoni Bowcher RENEWAL
Leon M MorascaAustraliaBernardo Dominic PROPOSAL
Nicolas E MaletJapanIoni Bowcher PROPOSAL
Deepesh V NickaRussiaStephen Shaw RENEWAL
Aika Q VocelkaRussiaBernardo Dominic RENEWAL
Wickens U SaylorsUnited KingdomXuxue Feng QUALIFIED
Leon C SchemmerItalyAnna Fali NEW
Chavez D GillianJapanAsiya Javayant PROPOSAL
Cody A DarakjyRussiaIoni Bowcher NEW
Jeanfrancois U TollnerArgentinaBernardo Dominic NEW
Francesco K GlickIndiaOnyama Limba PROPOSAL
Darci A FigeroaAustraliaAsiya Javayant UNQUALIFIED
Mujtaba Y StensethFranceXuxue Feng NEGOTIATION
Mayumi M CaldareraCanadaAsiya Javayant NEGOTIATION
Emily M OldroydGermanyBernardo Dominic RENEWAL
Costa R SlusarskiBrazilAnna Fali NEW
Darci M SchemmerItalyElwin Sharvill QUALIFIED
Stacey H GauchoAustraliaIvan Magalhaes RENEWAL
Sinclair J RimArgentinaAsiya Javayant NEGOTIATION
Sinclair C NestleCanadaAmy Elsner NEW
Darci L OldroydSpainAmy Elsner NEGOTIATION
Adams P OstroskyItalyAnna Fali NEW
Maisha Z BologniaBrazilXuxue Feng PROPOSAL
Aditya N GillianJapanAnna Fali PROPOSAL
Costa P KuskoCanadaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco W OstroskyAustraliaAsiya Javayant RENEWAL
Kaitlin I MacleadCanadaAsiya Javayant NEW
Morrow G TollnerItalyAnna Fali NEGOTIATION
Darci C MorascaIndiaOnyama Limba NEGOTIATION
Jones K CampainBrazilAsiya Javayant NEGOTIATION
Julie Z FollerAustraliaElwin Sharvill UNQUALIFIED
Izzy B MarrierUnited KingdomStephen Shaw QUALIFIED
Deepesh P InouyeUnited KingdomAmy Elsner NEGOTIATION
Faith M MorascaCanadaIvan Magalhaes NEGOTIATION
Salvatore C ButtIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem S DoeJapan2024-04-18Chapman, Ross E Esq QUALIFIED64Anna Fali
1001Rodrigues A SchemmerSpain2024-04-23King, Christopher A Esq UNQUALIFIED73Anna Fali
1002Chavez U TollnerItaly2024-04-04Feiner Bros PROPOSAL35Xuxue Feng
1003Mayumi V BologniaItaly2024-04-13Feltz Printing Service RENEWAL18Ioni Bowcher
1004Ivar B RulapaughIndia2024-04-17Rangoni Of Florence NEGOTIATION20Ivan Magalhaes
1005Alejandro I RoysterUnited Kingdom2024-04-30Dorl, James J Esq QUALIFIED6Anna Fali
1006Francesco E RulapaughRussia2024-04-02King, Christopher A Esq UNQUALIFIED74Onyama Limba
1007Octavia X IturbideRussia2024-04-18Chanay, Jeffrey A Esq RENEWAL26Onyama Limba
1008David K AlbaresJapan2024-04-30Truhlar And Truhlar Attys UNQUALIFIED80Xuxue Feng
1009Leja H GlickArgentina2024-04-16Truhlar And Truhlar Attys QUALIFIED13Anna Fali
1010Juan D OldroydSpain2024-04-19Dorl, James J Esq RENEWAL96Ivan Magalhaes
1011Stacey Q WaycottRussia2024-04-19Printing Dimensions UNQUALIFIED10Stephen Shaw
1012James I RutaSpain2024-04-07Chanay, Jeffrey A Esq NEGOTIATION23Ioni Bowcher
1013Mayumi K CaldareraAustralia2024-04-26Dorl, James J Esq NEGOTIATION58Xuxue Feng
1014Ricardo X IturbideJapan2024-04-09Buckley Miller Wright NEW45Bernardo Dominic
1015Aditya H RoysterGermany2024-04-17Chapman, Ross E Esq PROPOSAL89Bernardo Dominic
1016David R RimArgentina2024-04-22Chemel, James L Cpa PROPOSAL0Amy Elsner
1017Faith U DarakjyUnited Kingdom2024-04-15Feltz Printing Service UNQUALIFIED8Stephen Shaw
1018Jeanfrancois W MaletSpain2024-04-15Printing Dimensions RENEWAL2Xuxue Feng
1019Jefferson T RimFrance2024-04-01Dorl, James J Esq NEW89Xuxue Feng
1020Johnson C PoquetteIndia2024-04-29Rangoni Of Florence RENEWAL17Asiya Javayant
1021Misaki A DilliardJapan2024-04-14Morlong Associates PROPOSAL55Asiya Javayant
1022Rodrigues T RoysterArgentina2024-04-07Printing Dimensions UNQUALIFIED54Asiya Javayant
1023Ivar B AlbaresUnited Kingdom2024-04-21Dorl, James J Esq NEGOTIATION2Bernardo Dominic
1024Wickens F MacleadIndia2024-04-16Feltz Printing Service PROPOSAL21Ivan Magalhaes
1025James R FollerCanada2024-04-02Feiner Bros NEGOTIATION35Stephen Shaw
1026Aditya Q IturbideArgentina2024-04-08Dorl, James J Esq RENEWAL19Xuxue Feng
1027Juan G WaycottGermany2024-04-19Truhlar And Truhlar Attys QUALIFIED75Bernardo Dominic
1028Deepesh B FerenczCanada2024-04-11Buckley Miller Wright QUALIFIED53Onyama Limba
1029Ivar A AmigonSpain2024-04-16Benton, John B Jr RENEWAL3Elwin Sharvill
1030Chavez O KuskoItaly2024-04-25King, Christopher A Esq QUALIFIED22Xuxue Feng
1031Leon E NickaJapan2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED12Stephen Shaw
1032Nicolas O RoysterIndia2024-04-25Rangoni Of Florence RENEWAL85Anna Fali
1033Kaitlin E NestleJapan2024-04-03Dorl, James J Esq UNQUALIFIED93Bernardo Dominic
1034Francesco D ChuiCanada2024-04-14Feiner Bros QUALIFIED98Onyama Limba
1035Chavez P MacleadJapan2024-04-13Dorl, James J Esq RENEWAL78Amy Elsner
1036Francesco I VocelkaFrance2024-04-23Feltz Printing Service PROPOSAL49Onyama Limba
1037Stacey G WaycottFrance2024-04-18Feltz Printing Service UNQUALIFIED7Asiya Javayant
1038Kadeem P PoquetteBrazil2024-04-11Rangoni Of Florence RENEWAL84Ioni Bowcher
1039Jones G FigeroaSpain2024-04-04Benton, John B Jr NEGOTIATION13Elwin Sharvill
1040Deepesh W StockhamIndia2024-04-07Feltz Printing Service UNQUALIFIED66Xuxue Feng
1041Chavez W InouyeGermany2024-04-07Chanay, Jeffrey A Esq QUALIFIED44Xuxue Feng
1042Antonio M MaletGermany2024-04-15Chapman, Ross E Esq PROPOSAL79Bernardo Dominic
1043Ricardo G MaletSpain2024-04-14Printing Dimensions NEW46Ivan Magalhaes
1044Smith O TollnerIndia2024-04-25Benton, John B Jr NEGOTIATION44Asiya Javayant
1045Ashley Z StockhamArgentina2024-04-16Buckley Miller Wright UNQUALIFIED47Asiya Javayant
1046Mujtaba T ChuiSpain2024-04-02Feltz Printing Service NEGOTIATION89Amy Elsner
1047Isabel M CaldareraBrazil2024-04-26Dorl, James J Esq PROPOSAL59Elwin Sharvill
1048Greenwood L VenereBrazil2024-04-23Chapman, Ross E Esq NEGOTIATION84Elwin Sharvill
1049Mayumi E ChuiCanada2024-04-02Printing Dimensions QUALIFIED6Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues N OstroskyAustraliaAmy Elsner NEW
Claire J ButtBrazilIoni Bowcher NEW
Johnson W MacleadSpainBernardo Dominic NEW
Francesco R FerenczAustraliaIvan Magalhaes NEW
Kadeem N CaudyFranceAmy Elsner RENEWAL
Alejandro E InouyeArgentinaAnna Fali PROPOSAL
Nicolas B InouyeFranceIoni Bowcher PROPOSAL
Arvin L MacleadCanadaXuxue Feng QUALIFIED
Johnson I VenereIndiaOnyama Limba UNQUALIFIED
Alejandro O ChuiFranceStephen Shaw QUALIFIED
Jefferson G SlusarskiJapanIvan Magalhaes NEGOTIATION
Aika M VocelkaSpainOnyama Limba QUALIFIED
Wickens J NickaCanadaIvan Magalhaes RENEWAL
Isabel B PerinBrazilIoni Bowcher QUALIFIED
Murillo E MacleadJapanOnyama Limba NEW
Aika L SchemmerGermanyIvan Magalhaes NEW
James N BriddickItalyStephen Shaw NEGOTIATION
Murillo A FigeroaGermanyStephen Shaw NEW
Kaitlin Q NestleCanadaIoni Bowcher UNQUALIFIED
Juan M NestleBrazilAsiya Javayant NEGOTIATION
Kaitlin C SaylorsCanadaIvan Magalhaes QUALIFIED
Murillo B InouyeCanadaAnna Fali NEW
Antonio S SchemmerArgentinaElwin Sharvill NEGOTIATION
Adams L WieserItalyAsiya Javayant NEW
Jefferson V MaletArgentinaIvan Magalhaes UNQUALIFIED
Stacey P PaprockiItalyAmy Elsner UNQUALIFIED
Rodrigues A FerenczGermanyStephen Shaw QUALIFIED
Greenwood B ChuiIndiaElwin Sharvill NEW
Nicolas E FerenczRussiaStephen Shaw QUALIFIED
Johnson O InouyeBrazilElwin Sharvill RENEWAL
Leon I SlusarskiArgentinaAsiya Javayant NEW
Francesco I PaprockiJapanXuxue Feng RENEWAL
Sinclair E RimCanadaAsiya Javayant UNQUALIFIED
Kadeem U AlbaresItalyAnna Fali RENEWAL
Izzy P ButtArgentinaAmy Elsner RENEWAL
Jeanfrancois P MacleadFranceOnyama Limba PROPOSAL
Emily I SergiBrazilBernardo Dominic PROPOSAL
Deepesh U MaletBrazilElwin Sharvill UNQUALIFIED
Maria D KuskoFranceElwin Sharvill UNQUALIFIED
Rodrigues K GillianArgentinaStephen Shaw UNQUALIFIED
Aruna I FlosiCanadaAmy Elsner QUALIFIED
Leja J WieserFranceAnna Fali UNQUALIFIED
Aruna E WhobreyRussiaXuxue Feng PROPOSAL
Sinclair W RulapaughRussiaAnna Fali UNQUALIFIED
Octavia F SaylorsIndiaBernardo Dominic UNQUALIFIED
Smith B KuskoSpainIvan Magalhaes UNQUALIFIED
Costa B OldroydRussiaStephen Shaw RENEWAL
Adams A InouyeFranceOnyama Limba RENEWAL
Leja L SchemmerArgentinaIvan Magalhaes PROPOSAL
Wickens R ButtGermanyIvan Magalhaes NEW
Frozen Columns
Name
Cody Z Albares
Jones D Poquette
Arvin P Maclead
Jeanfrancois A Maclead
Francesco C Albares
Adams O Campain
Leja O Stenseth
Chavez X Schemmer
Jones F Darakjy
Sinclair H Briddick
Mayumi G Shinko
Francesco B Gaucho
Smith N Wieser
Mayumi J Sergi
Salvatore G Albares
Octavia U Briddick
Jefferson Y Gaucho
Misaki G Vocelka
Julie Z Albares
Ivar J Ferencz
Murillo N Ostrosky
Jones B Schemmer
Ashley P Rim
Sinclair A Shinko
Adams M Darakjy
Ivar P Chui
Costa K Saylors
Cody B Flosi
Costa E Bolognia
Darci B Tollner
Jefferson C Albares
Chavez M Dilliard
Ricardo Y Gillian
Kaitlin E Caldarera
Leja P Foller
Johnson W Paprocki
Jennifer S Marrier
Ivar Z Foller
Stacey Z Rulapaugh
Cody Y Oldroyd
Morrow D Morasca
Leja P Caldarera
Alejandro N Bowley
Ricardo Q Rulapaugh
Jefferson U Rulapaugh
Aika C Vocelka
Darci L Dilliard
Silvio O Wieser
Jeanfrancois Z Caldarera
Alejandro F Marrier
IdCountryDate
1000Germany2024-04-04
1001Spain2024-04-14
1002Argentina2024-04-23
1003France2024-04-09
1004Canada2024-04-04
1005Germany2024-04-23
1006Japan2024-04-19
1007Spain2024-04-16
1008Italy2024-04-09
1009Argentina2024-04-25
1010Australia2024-04-19
1011Australia2024-04-14
1012Spain2024-04-05
1013Canada2024-04-01
1014Japan2024-04-09
1015Canada2024-04-05
1016Spain2024-04-19
1017Canada2024-04-19
1018Germany2024-04-29
1019Australia2024-04-08
1020Australia2024-04-24
1021Spain2024-04-14
1022Spain2024-04-12
1023Brazil2024-04-02
1024United Kingdom2024-04-27
1025Italy2024-04-26
1026Canada2024-04-14
1027Russia2024-04-14
1028Spain2024-04-06
1029Canada2024-04-21
1030Japan2024-04-20
1031Canada2024-04-16
1032Italy2024-04-05
1033Germany2024-04-20
1034Brazil2024-04-15
1035Germany2024-04-24
1036Japan2024-04-18
1037Argentina2024-04-29
1038Australia2024-04-07
1039Canada2024-04-16
1040Japan2024-04-05
1041Italy2024-04-21
1042Italy2024-04-19
1043Canada2024-04-19
1044Brazil2024-04-26
1045Argentina2024-04-24
1046Argentina2024-04-13
1047Canada2024-04-25
1048Australia2024-04-11
1049Germany2024-04-20

On-Demand Data

NameIdCountryDate
Adams C Garufi1000France2024-04-08
Aruna C Gaucho1001Brazil2024-04-10
Greenwood T Perin1002Australia2024-04-19
Juan D Amigon1003France2024-04-10
Mayumi G Ostrosky1004Germany2024-04-29
Francesco R Bolognia1005Brazil2024-04-15
Alejandro E Paprocki1006France2024-04-02
Mayumi Z Rim1007Argentina2024-04-02
Leja L Shinko1008Germany2024-04-04
Julie C Nestle1009Spain2024-04-19
Silvio Q Nestle1010Australia2024-04-23
Alejandro M Nicka1011Spain2024-04-02
Chavez C Morasca1012Japan2024-04-14
Izzy V Amigon1013Italy2024-04-15
Juan F Morasca1014United Kingdom2024-04-17
Johnson C Bolognia1015Brazil2024-04-27
Claire Y Vocelka1016Canada2024-04-14
Salvatore H Gillian1017India2024-04-28
Smith G Dilliard1018France2024-04-06
Costa S Bowley1019Italy2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo W RoysterBrazilXuxue Feng RENEWAL
James Z GlickItalyAsiya Javayant NEGOTIATION
Jones K BowleyFranceIoni Bowcher RENEWAL
Sinclair S FerenczUnited KingdomIoni Bowcher NEGOTIATION
Ivar S FollerItalyOnyama Limba UNQUALIFIED
Munro H ShinkoBrazilIvan Magalhaes NEW
Nicolas T StensethSpainElwin Sharvill PROPOSAL
Ashley X WhobreyJapanIoni Bowcher NEW
Octavia L GlickRussiaStephen Shaw RENEWAL
Salvatore J KuskoJapanIoni Bowcher QUALIFIED
Chavez M MarrierGermanyBernardo Dominic NEGOTIATION
Maisha O SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Antonio I NestleRussiaStephen Shaw PROPOSAL
Clifford G BowleyUnited KingdomAmy Elsner PROPOSAL
Nicolas A OldroydBrazilStephen Shaw UNQUALIFIED
Salvatore B DilliardFranceBernardo Dominic NEGOTIATION
Antonio H DoeCanadaOnyama Limba UNQUALIFIED
Maria O SchemmerBrazilAmy Elsner RENEWAL
Cody U OldroydSpainIvan Magalhaes PROPOSAL
Aika B WaycottAustraliaXuxue Feng QUALIFIED
Munro W GauchoRussiaAnna Fali UNQUALIFIED
David T KuskoJapanAsiya Javayant QUALIFIED
Mayumi I RimSpainElwin Sharvill NEW
Adams N FollerRussiaXuxue Feng NEGOTIATION
Smith Y FlosiArgentinaXuxue Feng NEW
Ashley J DoeUnited KingdomAnna Fali RENEWAL
Adams E PaprockiCanadaOnyama Limba PROPOSAL
Ricardo P PaprockiCanadaAnna Fali UNQUALIFIED
Aika S SergiBrazilIvan Magalhaes NEGOTIATION
Emily V GauchoAustraliaIvan Magalhaes RENEWAL
Juan Z SchemmerCanadaAsiya Javayant NEW
Antonio G MorascaBrazilIoni Bowcher UNQUALIFIED
Silvio D RutaArgentinaStephen Shaw NEW
Francesco E PaprockiSpainElwin Sharvill NEW
Maria C ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Leja Q StockhamAustraliaStephen Shaw NEGOTIATION
Aruna P PerinItalyElwin Sharvill RENEWAL
Ricardo B ChuiCanadaOnyama Limba NEGOTIATION
Leon D OstroskyRussiaAmy Elsner UNQUALIFIED
Murillo K WieserUnited KingdomIvan Magalhaes 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>