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
Francesco L FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Murillo E DoeRussiaElwin Sharvill QUALIFIED
Maria S DoeItalyOnyama Limba NEW
James M IturbideCanadaXuxue Feng NEW
Silvio X FollerBrazilStephen Shaw QUALIFIED
Jeanfrancois W FlosiArgentinaXuxue Feng RENEWAL
Juan W RimArgentinaElwin Sharvill UNQUALIFIED
Arvin S GauchoBrazilAsiya Javayant NEGOTIATION
Jones W RoysterItalyIoni Bowcher PROPOSAL
Wickens H OldroydRussiaElwin Sharvill PROPOSAL
Munro V WaycottArgentinaElwin Sharvill RENEWAL
Misaki B RulapaughItalyAmy Elsner UNQUALIFIED
Aika P FlosiItalyIoni Bowcher UNQUALIFIED
Emily P CaldareraUnited KingdomAnna Fali PROPOSAL
Alejandro Z ButtCanadaBernardo Dominic PROPOSAL
Wickens C NickaCanadaOnyama Limba UNQUALIFIED
Munro B BriddickItalyElwin Sharvill RENEWAL
Darci P TollnerGermanyStephen Shaw PROPOSAL
Rodrigues R BowleyArgentinaIvan Magalhaes NEW
Isabel Y WieserSpainOnyama Limba QUALIFIED
Emily B PoquetteSpainElwin Sharvill PROPOSAL
Izzy Y VenereIndiaElwin Sharvill UNQUALIFIED
Ashley D DilliardIndiaAnna Fali PROPOSAL
Emily W BriddickSpainIvan Magalhaes QUALIFIED
Claire V DilliardSpainBernardo Dominic NEW
Ivar F CampainCanadaBernardo Dominic NEW
Smith A MaletSpainElwin Sharvill PROPOSAL
Adams T KuskoItalyStephen Shaw NEGOTIATION
Darci A PaprockiGermanyElwin Sharvill QUALIFIED
Cody X VocelkaRussiaAmy Elsner UNQUALIFIED
James I OstroskyGermanyIvan Magalhaes PROPOSAL
Jones K MarrierSpainIoni Bowcher RENEWAL
Salvatore L WhobreyBrazilIvan Magalhaes QUALIFIED
Munro Q ButtIndiaElwin Sharvill QUALIFIED
Alejandro B StockhamItalyOnyama Limba NEGOTIATION
Isabel B WieserFranceElwin Sharvill UNQUALIFIED
Ricardo W GarufiArgentinaAnna Fali QUALIFIED
Ashley Y RimCanadaAnna Fali PROPOSAL
Tony C OstroskyFranceIoni Bowcher UNQUALIFIED
Stacey W PaprockiRussiaAnna Fali PROPOSAL
Octavia H PaprockiGermanyIoni Bowcher UNQUALIFIED
Jones J FigeroaIndiaBernardo Dominic NEW
Jones I MorascaBrazilElwin Sharvill QUALIFIED
Stacey Q StensethBrazilAmy Elsner NEGOTIATION
Misaki S SchemmerItalyElwin Sharvill UNQUALIFIED
David T RulapaughIndiaBernardo Dominic NEGOTIATION
Morrow S ButtArgentinaElwin Sharvill RENEWAL
Jones N StensethIndiaIoni Bowcher NEW
Leon I DilliardAustraliaIvan Magalhaes NEGOTIATION
David N ChuiUnited KingdomBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore D SlusarskiRussiaAnna Fali NEGOTIATION
Clifford G SlusarskiItalyXuxue Feng RENEWAL
Jennifer Z MarrierArgentinaElwin Sharvill UNQUALIFIED
Nicolas X GlickUnited KingdomBernardo Dominic QUALIFIED
Mayumi D ChuiSpainBernardo Dominic NEW
Juan Y SaylorsRussiaOnyama Limba PROPOSAL
Tony C MarrierItalyAnna Fali UNQUALIFIED
Darci Y SaylorsSpainAnna Fali QUALIFIED
Munro G CaudyUnited KingdomIoni Bowcher NEGOTIATION
Kadeem T OstroskyFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria F OldroydRussia2024-04-27Commercial Press NEW16Amy Elsner
1001Alejandro U NestleCanada2024-04-16Feltz Printing Service UNQUALIFIED88Stephen Shaw
1002Octavia N PoquetteRussia2024-04-04Morlong Associates NEGOTIATION28Stephen Shaw
1003Kaitlin S DilliardIndia2024-04-04Chapman, Ross E Esq RENEWAL36Amy Elsner
1004Antonio P GauchoCanada2024-04-13Rangoni Of Florence RENEWAL70Onyama Limba
1005Sinclair C SlusarskiSpain2024-04-17Chapman, Ross E Esq NEGOTIATION2Onyama Limba
1006Stacey Y SaylorsArgentina2024-04-11Feiner Bros RENEWAL21Ivan Magalhaes
1007Tony C DilliardRussia2024-04-03Chapman, Ross E Esq NEGOTIATION56Bernardo Dominic
1008Cody E BologniaGermany2024-04-05Truhlar And Truhlar Attys UNQUALIFIED60Asiya Javayant
1009Alejandro A PoquetteBrazil2024-04-25Rangoni Of Florence UNQUALIFIED7Xuxue Feng
1010Clifford M FollerArgentina2024-04-16Truhlar And Truhlar Attys NEW8Ivan Magalhaes
1011Chavez O TollnerJapan2024-04-28Truhlar And Truhlar Attys QUALIFIED78Xuxue Feng
1012Clifford Y WaycottRussia2024-04-21Feltz Printing Service NEGOTIATION21Ioni Bowcher
1013Sinclair W PoquetteFrance2024-04-14Feltz Printing Service RENEWAL18Onyama Limba
1014Julie N CaudyBrazil2024-04-01Morlong Associates PROPOSAL48Asiya Javayant
1015Clifford D KolmetzIndia2024-04-04Rousseaux, Michael Esq NEGOTIATION46Bernardo Dominic
1016Rodrigues H PerinItaly2024-04-23King, Christopher A Esq NEW64Bernardo Dominic
1017Stacey J GauchoRussia2024-04-11Rangoni Of Florence RENEWAL96Xuxue Feng
1018Greenwood O FerenczBrazil2024-04-28Morlong Associates NEW25Onyama Limba
1019Leon Z DoeRussia2024-04-10Morlong Associates QUALIFIED81Anna Fali
1020Leja E WieserIndia2024-04-09Chemel, James L Cpa UNQUALIFIED1Ivan Magalhaes
1021Johnson T PoquetteCanada2024-04-07Buckley Miller Wright NEW18Elwin Sharvill
1022Wickens A CampainArgentina2024-04-09Printing Dimensions UNQUALIFIED85Bernardo Dominic
1023Aruna O MaletItaly2024-04-30Chemel, James L Cpa RENEWAL68Amy Elsner
1024Aditya M GillianJapan2024-04-25Feiner Bros NEGOTIATION5Stephen Shaw
1025Murillo C FigeroaIndia2024-04-10Chapman, Ross E Esq NEGOTIATION26Onyama Limba
1026Greenwood X CampainGermany2024-04-26Morlong Associates UNQUALIFIED19Bernardo Dominic
1027Ricardo W RimIndia2024-04-04King, Christopher A Esq NEW79Bernardo Dominic
1028Ivar T MaletFrance2024-04-03Printing Dimensions RENEWAL15Xuxue Feng
1029Ricardo F CaudyRussia2024-04-30Benton, John B Jr UNQUALIFIED59Amy Elsner
1030Greenwood D DarakjyGermany2024-04-07Feiner Bros NEGOTIATION37Amy Elsner
1031Smith D GlickJapan2024-04-01Commercial Press NEW60Ioni Bowcher
1032Jones F FerenczUnited Kingdom2024-04-19Chapman, Ross E Esq QUALIFIED19Onyama Limba
1033Claire Q KuskoRussia2024-04-05Rangoni Of Florence NEW91Ioni Bowcher
1034Costa N VenereJapan2024-04-19Benton, John B Jr UNQUALIFIED4Ivan Magalhaes
1035Deepesh H RulapaughSpain2024-04-06Benton, John B Jr UNQUALIFIED12Bernardo Dominic
1036Stacey S RutaIndia2024-04-04Rousseaux, Michael Esq PROPOSAL60Amy Elsner
1037Munro D DarakjyArgentina2024-04-02Morlong Associates NEGOTIATION8Amy Elsner
1038Mujtaba P WieserCanada2024-04-04Chemel, James L Cpa NEGOTIATION68Stephen Shaw
1039Juan B SergiSpain2024-04-27Printing Dimensions UNQUALIFIED99Stephen Shaw
1040Deepesh H SaylorsCanada2024-04-08Buckley Miller Wright NEGOTIATION24Bernardo Dominic
1041Kaitlin R BologniaUnited Kingdom2024-04-27Truhlar And Truhlar Attys NEW7Stephen Shaw
1042Aruna K GauchoItaly2024-04-25Printing Dimensions UNQUALIFIED40Elwin Sharvill
1043Mayumi F TollnerCanada2024-04-26Feltz Printing Service NEGOTIATION74Elwin Sharvill
1044Rodrigues B MaletRussia2024-04-10King, Christopher A Esq NEW27Stephen Shaw
1045Tony A AlbaresArgentina2024-04-05Benton, John B Jr NEW97Stephen Shaw
1046Salvatore E PoquetteJapan2024-04-25Commercial Press RENEWAL84Asiya Javayant
1047Tony U NestleItaly2024-04-23Commercial Press NEGOTIATION12Xuxue Feng
1048Deepesh H GauchoJapan2024-04-06Benton, John B Jr QUALIFIED69Asiya Javayant
1049Francesco R OstroskyJapan2024-04-26Feltz Printing Service QUALIFIED51Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody M BriddickIndiaAnna Fali RENEWAL
Isabel O FerenczSpainIoni Bowcher PROPOSAL
Deepesh D FollerItalyXuxue Feng QUALIFIED
Maria V PoquetteJapanXuxue Feng NEW
Claire M SaylorsAustraliaAsiya Javayant QUALIFIED
Adams U SchemmerFranceIoni Bowcher PROPOSAL
Antonio D WieserJapanOnyama Limba NEGOTIATION
Aruna P BowleyCanadaOnyama Limba PROPOSAL
Ivar W GlickAustraliaAsiya Javayant NEW
Maria V FollerJapanElwin Sharvill PROPOSAL
Ashley U GillianRussiaXuxue Feng NEW
Arvin C SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Silvio C SchemmerCanadaIvan Magalhaes RENEWAL
Octavia I PaprockiAustraliaAmy Elsner PROPOSAL
Wickens T SlusarskiGermanyIvan Magalhaes NEW
Maria H OldroydJapanIvan Magalhaes NEW
Wickens M MacleadCanadaBernardo Dominic UNQUALIFIED
Johnson L SchemmerCanadaOnyama Limba NEGOTIATION
James G RoysterSpainAnna Fali NEW
Alejandro G BologniaCanadaElwin Sharvill QUALIFIED
Misaki J OldroydAustraliaStephen Shaw PROPOSAL
Isabel K PoquetteArgentinaXuxue Feng NEGOTIATION
Mujtaba E InouyeJapanAnna Fali PROPOSAL
Cody O DoeRussiaXuxue Feng QUALIFIED
Ricardo N CaudyBrazilAsiya Javayant QUALIFIED
Wickens L GauchoCanadaAmy Elsner RENEWAL
Kaitlin C BriddickRussiaStephen Shaw UNQUALIFIED
Clifford U BowleyFranceXuxue Feng NEGOTIATION
Ricardo G AmigonBrazilAmy Elsner NEW
David D CaudyArgentinaIoni Bowcher PROPOSAL
Ivar W RimGermanyIvan Magalhaes PROPOSAL
Stacey Q FollerGermanyBernardo Dominic NEW
Misaki P DilliardFranceAsiya Javayant PROPOSAL
Aika T CaudyJapanAnna Fali NEGOTIATION
Aika D FigeroaGermanyAmy Elsner NEW
Murillo P FerenczAustraliaStephen Shaw NEW
Claire E ChuiAustraliaAsiya Javayant RENEWAL
Darci D StensethItalyBernardo Dominic RENEWAL
Ivar H AmigonUnited KingdomXuxue Feng UNQUALIFIED
Aika B RoysterGermanyAnna Fali NEW
Izzy K FollerAustraliaElwin Sharvill PROPOSAL
Tony R OstroskyRussiaStephen Shaw PROPOSAL
Maisha K AmigonGermanyAsiya Javayant PROPOSAL
Rodrigues A AmigonSpainElwin Sharvill QUALIFIED
Murillo O SlusarskiRussiaXuxue Feng UNQUALIFIED
Alejandro R DilliardIndiaOnyama Limba NEW
Costa J WieserRussiaBernardo Dominic UNQUALIFIED
Stacey Q WhobreySpainBernardo Dominic UNQUALIFIED
Aditya Q GauchoGermanyAmy Elsner PROPOSAL
Nicolas N WaycottItalyAmy Elsner RENEWAL
Frozen Columns
Name
Jefferson I Poquette
Octavia Z Kolmetz
Faith K Kusko
Claire R Campain
Mayumi V Bolognia
Johnson L Poquette
Murillo O Chui
Aruna T Ruta
Aika Q Malet
Leja C Morasca
Darci G Ferencz
Nicolas T Oldroyd
Leja V Doe
Greenwood J Paprocki
Kadeem V Bowley
Kadeem U Kusko
Nicolas C Waycott
Darci F Butt
Johnson V Shinko
Emily O Saylors
Julie L Albares
Misaki Q Gillian
Maria Y Waycott
Jones T Paprocki
Rodrigues J Slusarski
Octavia G Morasca
Jennifer B Butt
Aika K Poquette
Aditya H Wieser
Kaitlin A Chui
Sinclair X Darakjy
Aditya J Shinko
Aditya Q Chui
Mujtaba U Saylors
Nicolas H Garufi
Greenwood L Ostrosky
Maria F Rim
Darci Q Saylors
Adams S Campain
Maisha Z Darakjy
Mujtaba X Iturbide
Aruna D Ferencz
Jennifer L Dilliard
Deepesh S Saylors
Smith E Wieser
Murillo S Whobrey
Kadeem S Darakjy
Greenwood D Figeroa
Julie U Flosi
Misaki J Chui
IdCountryDate
1000Brazil2024-04-24
1001India2024-04-03
1002Argentina2024-04-13
1003Spain2024-04-04
1004Australia2024-04-01
1005France2024-04-10
1006Germany2024-04-03
1007United Kingdom2024-04-03
1008United Kingdom2024-04-30
1009France2024-04-21
1010United Kingdom2024-04-02
1011Canada2024-04-04
1012Argentina2024-04-14
1013Brazil2024-04-10
1014United Kingdom2024-04-30
1015Japan2024-04-24
1016Spain2024-04-29
1017Japan2024-04-10
1018Italy2024-04-21
1019Italy2024-04-05
1020Australia2024-04-16
1021Canada2024-04-23
1022Brazil2024-04-26
1023India2024-04-22
1024Australia2024-04-30
1025Japan2024-04-27
1026Canada2024-04-08
1027United Kingdom2024-04-07
1028Argentina2024-04-01
1029Italy2024-04-16
1030Japan2024-04-22
1031India2024-04-11
1032Germany2024-04-15
1033Russia2024-04-28
1034Brazil2024-04-25
1035Brazil2024-04-10
1036India2024-04-23
1037Russia2024-04-01
1038Italy2024-04-06
1039United Kingdom2024-04-21
1040Brazil2024-04-05
1041Spain2024-04-06
1042Germany2024-04-23
1043France2024-04-23
1044Canada2024-04-01
1045Italy2024-04-20
1046India2024-04-28
1047United Kingdom2024-04-05
1048India2024-04-23
1049Russia2024-04-19

On-Demand Data

NameIdCountryDate
Faith D Shinko1000India2024-04-13
James W Nestle1001Russia2024-04-16
Mayumi T Iturbide1002France2024-04-01
Maria P Schemmer1003Italy2024-04-29
Costa R Stockham1004Argentina2024-04-07
Kadeem H Stockham1005Japan2024-04-04
Misaki Y Royster1006Brazil2024-04-17
Aditya N Sergi1007Italy2024-04-29
Murillo R Slusarski1008Spain2024-04-07
Antonio I Rim1009Germany2024-04-25
Antonio Y Garufi1010Spain2024-04-26
Tony G Glick1011United Kingdom2024-04-29
Smith V Ostrosky1012Japan2024-04-17
Octavia A Albares1013Argentina2024-04-04
Rodrigues H Stockham1014Australia2024-04-25
Nicolas M Amigon1015Brazil2024-04-13
Stacey R Kusko1016Russia2024-04-13
Maria S Caldarera1017Australia2024-04-21
Ashley T Maclead1018Canada2024-04-25
Juan K Garufi1019United Kingdom2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson Y VenereCanadaOnyama Limba UNQUALIFIED
Leon Z SergiAustraliaOnyama Limba QUALIFIED
Julie E ButtGermanyXuxue Feng QUALIFIED
Stacey A DarakjyGermanyStephen Shaw NEGOTIATION
Sinclair Q KolmetzBrazilOnyama Limba NEGOTIATION
Ashley S SlusarskiBrazilAsiya Javayant QUALIFIED
Stacey J PoquetteAustraliaStephen Shaw NEW
Nicolas E ShinkoGermanyXuxue Feng UNQUALIFIED
Misaki L OldroydJapanAmy Elsner UNQUALIFIED
Wickens M TollnerIndiaAsiya Javayant PROPOSAL
Clifford I StensethCanadaAmy Elsner QUALIFIED
Cody C KuskoArgentinaElwin Sharvill NEW
Clifford B PaprockiItalyAmy Elsner NEW
Misaki J SlusarskiItalyXuxue Feng RENEWAL
Clifford Q InouyeFranceAmy Elsner NEW
Smith Q FlosiJapanIvan Magalhaes NEGOTIATION
James I GillianIndiaAmy Elsner QUALIFIED
Maria F FlosiJapanAmy Elsner RENEWAL
Jones P VenereRussiaAnna Fali PROPOSAL
Kaitlin X NestleFranceXuxue Feng UNQUALIFIED
Silvio Z NestleFranceAnna Fali RENEWAL
Arvin W FerenczSpainOnyama Limba UNQUALIFIED
Aruna M NickaRussiaXuxue Feng UNQUALIFIED
Isabel K CampainGermanyXuxue Feng NEGOTIATION
Costa C FigeroaCanadaAsiya Javayant NEGOTIATION
Arvin B TollnerCanadaBernardo Dominic QUALIFIED
Misaki U ButtRussiaAsiya Javayant NEGOTIATION
Chavez Z ButtAustraliaXuxue Feng PROPOSAL
Jones U BologniaSpainStephen Shaw UNQUALIFIED
Claire F ChuiCanadaOnyama Limba NEW
Silvio F OstroskyJapanAsiya Javayant RENEWAL
Aruna R InouyeAustraliaAmy Elsner UNQUALIFIED
Kaitlin C RutaSpainIoni Bowcher RENEWAL
Sinclair W NickaSpainAmy Elsner NEGOTIATION
Chavez C WieserJapanIvan Magalhaes UNQUALIFIED
Kadeem Z TollnerCanadaElwin Sharvill RENEWAL
Clifford T InouyeBrazilOnyama Limba NEGOTIATION
Octavia P PaprockiUnited KingdomAmy Elsner QUALIFIED
Morrow F DarakjyCanadaOnyama Limba NEGOTIATION
Mayumi L NestleGermanyOnyama 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>