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
Costa S TollnerFranceAmy Elsner RENEWAL
Julie Z SchemmerSpainAsiya Javayant RENEWAL
Deepesh B VenereUnited KingdomIvan Magalhaes RENEWAL
Leja J StockhamCanadaIoni Bowcher RENEWAL
Misaki Z RimFranceIoni Bowcher RENEWAL
Francesco P ChuiSpainIoni Bowcher RENEWAL
Murillo S KuskoCanadaIvan Magalhaes NEGOTIATION
Nicolas U BologniaJapanXuxue Feng RENEWAL
Tony G RimGermanyIoni Bowcher RENEWAL
Maisha F SchemmerArgentinaStephen Shaw UNQUALIFIED
Mujtaba B TollnerSpainXuxue Feng PROPOSAL
Julie V MaletCanadaElwin Sharvill NEGOTIATION
Alejandro I PaprockiCanadaAsiya Javayant RENEWAL
Mujtaba J NestleSpainAnna Fali NEW
Antonio V MarrierBrazilAsiya Javayant QUALIFIED
Claire L RimFranceAnna Fali RENEWAL
Ricardo V ChuiFranceAnna Fali QUALIFIED
Julie J InouyeBrazilIvan Magalhaes QUALIFIED
Murillo R GlickItalyStephen Shaw RENEWAL
Isabel F MorascaUnited KingdomAsiya Javayant RENEWAL
Antonio U AlbaresUnited KingdomAmy Elsner RENEWAL
Nicolas H SergiCanadaAnna Fali NEW
Jennifer G RutaGermanyAsiya Javayant NEGOTIATION
Salvatore M MorascaBrazilStephen Shaw NEW
Morrow X BriddickAustraliaAnna Fali UNQUALIFIED
Octavia M WieserJapanIvan Magalhaes QUALIFIED
Juan H SlusarskiAustraliaStephen Shaw NEGOTIATION
Murillo G TollnerGermanyOnyama Limba NEGOTIATION
Julie N SchemmerJapanOnyama Limba RENEWAL
Smith U NestleArgentinaXuxue Feng RENEWAL
Claire W ChuiAustraliaAmy Elsner PROPOSAL
Ivar U GarufiAustraliaElwin Sharvill RENEWAL
Rodrigues C CaldareraCanadaAmy Elsner NEW
Ivar S WaycottItalyBernardo Dominic NEGOTIATION
Faith U FollerSpainAmy Elsner NEGOTIATION
Jefferson C OstroskySpainStephen Shaw PROPOSAL
Clifford S RulapaughGermanyAmy Elsner QUALIFIED
Claire F BriddickSpainAmy Elsner UNQUALIFIED
Ivar L CaldareraJapanAmy Elsner RENEWAL
Antonio B VenereRussiaIoni Bowcher PROPOSAL
Aruna J CampainSpainXuxue Feng RENEWAL
Juan N SergiIndiaStephen Shaw NEGOTIATION
Julie N SergiGermanyAsiya Javayant NEGOTIATION
Rodrigues L CaldareraUnited KingdomAmy Elsner NEGOTIATION
Leon L AmigonFranceAsiya Javayant NEW
Clifford T DarakjySpainAsiya Javayant RENEWAL
Adams P SlusarskiUnited KingdomOnyama Limba PROPOSAL
Juan D BowleyAustraliaElwin Sharvill UNQUALIFIED
Misaki M FerenczItalyIvan Magalhaes UNQUALIFIED
Kaitlin H PoquetteArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood C RimJapanStephen Shaw RENEWAL
Maisha E WhobreyArgentinaAnna Fali PROPOSAL
Adams R ButtGermanyAnna Fali NEW
Cody T VocelkaBrazilXuxue Feng QUALIFIED
David S GauchoItalyIoni Bowcher UNQUALIFIED
Jefferson B MacleadGermanyIoni Bowcher QUALIFIED
Ricardo C KuskoJapanIoni Bowcher NEW
Jefferson U DarakjyItalyAmy Elsner NEW
Jeanfrancois D WaycottItalyAsiya Javayant UNQUALIFIED
Izzy Q BologniaIndiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams I MaletGermany2024-04-24King, Christopher A Esq RENEWAL50Amy Elsner
1001Kadeem B InouyeUnited Kingdom2024-04-05Morlong Associates NEW94Stephen Shaw
1002Francesco Q StensethArgentina2024-04-23King, Christopher A Esq PROPOSAL15Ivan Magalhaes
1003Jefferson G CaldareraUnited Kingdom2024-03-31Benton, John B Jr RENEWAL77Xuxue Feng
1004Wickens F CampainRussia2024-04-03Feiner Bros RENEWAL15Asiya Javayant
1005Deepesh P VenereSpain2024-04-08Feltz Printing Service NEGOTIATION1Onyama Limba
1006David E FollerJapan2024-03-29Feiner Bros QUALIFIED23Asiya Javayant
1007Francesco Z SaylorsItaly2024-04-02Benton, John B Jr NEGOTIATION36Anna Fali
1008Izzy Q OldroydRussia2024-04-16Feiner Bros RENEWAL16Amy Elsner
1009Izzy M MorascaArgentina2024-04-16Rousseaux, Michael Esq PROPOSAL23Xuxue Feng
1010Misaki L SlusarskiIndia2024-03-31King, Christopher A Esq UNQUALIFIED49Elwin Sharvill
1011Johnson G FerenczIndia2024-04-12King, Christopher A Esq QUALIFIED85Ioni Bowcher
1012Cody A GillianBrazil2024-04-18Morlong Associates NEGOTIATION36Anna Fali
1013Claire V FollerFrance2024-04-14Buckley Miller Wright NEW99Elwin Sharvill
1014Antonio S CampainSpain2024-04-06Rangoni Of Florence NEW14Bernardo Dominic
1015Johnson Z WieserFrance2024-04-14Rousseaux, Michael Esq PROPOSAL49Asiya Javayant
1016Jennifer O IturbideArgentina2024-04-10King, Christopher A Esq RENEWAL30Bernardo Dominic
1017Ivar V DilliardRussia2024-04-20Printing Dimensions RENEWAL63Anna Fali
1018Ashley X PerinItaly2024-04-18Morlong Associates NEGOTIATION57Ioni Bowcher
1019Jones U ChuiSpain2024-04-22Printing Dimensions UNQUALIFIED32Ioni Bowcher
1020Claire L WieserCanada2024-04-06Rousseaux, Michael Esq NEGOTIATION77Onyama Limba
1021Rodrigues C FlosiItaly2024-04-26Rousseaux, Michael Esq PROPOSAL73Ioni Bowcher
1022Cody E BologniaItaly2024-04-20Rangoni Of Florence UNQUALIFIED55Bernardo Dominic
1023Ashley U KolmetzUnited Kingdom2024-04-13Benton, John B Jr PROPOSAL49Stephen Shaw
1024Clifford I OldroydJapan2024-04-03Rangoni Of Florence PROPOSAL82Ioni Bowcher
1025Munro Z FollerArgentina2024-04-14Commercial Press NEW27Elwin Sharvill
1026Johnson K NickaSpain2024-04-08Morlong Associates NEW46Ioni Bowcher
1027Mujtaba Y ChuiAustralia2024-04-26Morlong Associates PROPOSAL74Amy Elsner
1028Mayumi L DarakjyGermany2024-04-25Feiner Bros PROPOSAL49Stephen Shaw
1029Ivar M SaylorsFrance2024-04-07Printing Dimensions UNQUALIFIED81Elwin Sharvill
1030Leja H NestleAustralia2024-04-13Benton, John B Jr RENEWAL18Bernardo Dominic
1031Jones M FlosiAustralia2024-04-26Commercial Press UNQUALIFIED87Stephen Shaw
1032Aika I PerinIndia2024-04-14Buckley Miller Wright PROPOSAL79Anna Fali
1033Ricardo H StockhamBrazil2024-04-25Truhlar And Truhlar Attys PROPOSAL26Onyama Limba
1034Morrow A DilliardUnited Kingdom2024-04-08Dorl, James J Esq UNQUALIFIED40Anna Fali
1035Jeanfrancois H ButtJapan2024-04-25King, Christopher A Esq PROPOSAL77Onyama Limba
1036Munro B FerenczBrazil2024-04-01King, Christopher A Esq PROPOSAL49Onyama Limba
1037Claire V MaletArgentina2024-04-22Dorl, James J Esq PROPOSAL97Elwin Sharvill
1038Ricardo Y GlickGermany2024-04-03Buckley Miller Wright QUALIFIED36Stephen Shaw
1039Mayumi Q RutaRussia2024-04-23Rangoni Of Florence UNQUALIFIED60Stephen Shaw
1040Jennifer H BologniaIndia2024-03-29Buckley Miller Wright NEGOTIATION97Anna Fali
1041Juan X MaletRussia2024-04-13Truhlar And Truhlar Attys RENEWAL13Elwin Sharvill
1042Aditya C WaycottGermany2024-04-24Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1043Claire O MarrierRussia2024-04-25Buckley Miller Wright PROPOSAL16Ivan Magalhaes
1044Ivar Y InouyeCanada2024-04-11Truhlar And Truhlar Attys NEGOTIATION23Onyama Limba
1045Sinclair D OstroskyJapan2024-03-30King, Christopher A Esq UNQUALIFIED74Xuxue Feng
1046Rodrigues F DarakjyGermany2024-04-23Feltz Printing Service QUALIFIED6Asiya Javayant
1047Jones B DoeRussia2024-04-09Chanay, Jeffrey A Esq PROPOSAL77Amy Elsner
1048Sinclair W KuskoCanada2024-04-07Printing Dimensions UNQUALIFIED99Onyama Limba
1049Munro A StensethFrance2024-04-05Rangoni Of Florence NEW37Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Smith K SergiCanadaIoni Bowcher QUALIFIED
Jennifer V NestleArgentinaOnyama Limba UNQUALIFIED
James L DarakjyGermanyElwin Sharvill UNQUALIFIED
Arvin Y MaletJapanIoni Bowcher PROPOSAL
Jennifer D AlbaresFranceIoni Bowcher UNQUALIFIED
Smith F SchemmerItalyAmy Elsner RENEWAL
James I MorascaCanadaElwin Sharvill QUALIFIED
Greenwood Z DilliardSpainStephen Shaw PROPOSAL
Mujtaba W OldroydItalyAsiya Javayant NEW
Claire Y ChuiCanadaBernardo Dominic QUALIFIED
Leja O DarakjyArgentinaXuxue Feng UNQUALIFIED
Ivar J VocelkaUnited KingdomAsiya Javayant RENEWAL
Leja G ButtCanadaAnna Fali QUALIFIED
Antonio D FlosiJapanBernardo Dominic UNQUALIFIED
Octavia G MacleadSpainBernardo Dominic RENEWAL
Ricardo Q CaudyJapanXuxue Feng NEW
Costa J ButtItalyIvan Magalhaes NEW
Silvio D PaprockiCanadaElwin Sharvill NEGOTIATION
Johnson Y NestleAustraliaXuxue Feng RENEWAL
Juan I MacleadBrazilAsiya Javayant NEGOTIATION
James E IturbideGermanyIoni Bowcher NEGOTIATION
Silvio O RulapaughArgentinaIvan Magalhaes RENEWAL
David Z SlusarskiArgentinaAsiya Javayant NEGOTIATION
Cody V SlusarskiBrazilIoni Bowcher NEGOTIATION
Octavia K ChuiFranceIvan Magalhaes QUALIFIED
Munro O RulapaughIndiaBernardo Dominic NEW
Deepesh E PerinCanadaIoni Bowcher UNQUALIFIED
Mayumi B GlickUnited KingdomAnna Fali RENEWAL
Rodrigues E GlickAustraliaAsiya Javayant NEGOTIATION
Kadeem R FlosiItalyAsiya Javayant NEGOTIATION
Maisha W BriddickItalyBernardo Dominic UNQUALIFIED
Deepesh E VenereAustraliaIoni Bowcher RENEWAL
Greenwood F IturbideAustraliaStephen Shaw PROPOSAL
Jefferson G KolmetzGermanyAnna Fali NEW
Jefferson F GauchoAustraliaAnna Fali UNQUALIFIED
Maria P CaldareraBrazilXuxue Feng RENEWAL
Munro W BowleyGermanyAsiya Javayant RENEWAL
Nicolas L VocelkaFranceAsiya Javayant NEW
Leon S SchemmerFranceAmy Elsner NEW
Ivar L MaletCanadaStephen Shaw NEW
Sinclair U MorascaGermanyXuxue Feng RENEWAL
Murillo S ButtRussiaIoni Bowcher QUALIFIED
Mayumi Y FigeroaUnited KingdomIoni Bowcher RENEWAL
Ashley X RutaFranceIvan Magalhaes NEW
James W MarrierGermanyElwin Sharvill NEW
Emily U DarakjyIndiaBernardo Dominic UNQUALIFIED
Isabel M FerenczSpainAnna Fali UNQUALIFIED
Claire M RimBrazilBernardo Dominic NEW
Deepesh T OstroskyIndiaXuxue Feng RENEWAL
Misaki F KuskoItalyOnyama Limba QUALIFIED
Frozen Columns
Name
Ivar L Foller
James Z Perin
Smith Z Iturbide
Tony F Marrier
Morrow Q Ostrosky
Alejandro B Ostrosky
Rodrigues D Malet
Cody U Maclead
Francesco B Doe
Julie S Bolognia
Aruna D Marrier
Adams P Dilliard
Claire H Flosi
Darci M Garufi
Juan M Briddick
Francesco P Wieser
Arvin L Flosi
Silvio V Glick
Faith Z Flosi
Mujtaba F Doe
Kadeem F Ostrosky
Leja V Figeroa
Juan W Nestle
Greenwood O Rulapaugh
Jefferson L Darakjy
Salvatore G Ostrosky
Clifford L Paprocki
Maisha C Tollner
Claire V Gillian
Munro E Flosi
Ricardo L Tollner
Maria S Stenseth
Ashley Z Flosi
Johnson G Rim
Salvatore E Royster
Clifford G Wieser
Octavia G Malet
Costa F Campain
Jones S Foller
Nicolas A Malet
Murillo Z Sergi
Jones H Briddick
James U Saylors
Maisha M Figeroa
Chavez J Marrier
Salvatore W Bolognia
Maisha R Kusko
Johnson V Malet
Darci B Butt
Aruna F Rulapaugh
IdCountryDate
1000Russia2024-04-07
1001France2024-04-02
1002Germany2024-04-14
1003Argentina2024-04-15
1004India2024-04-01
1005Italy2024-04-11
1006Canada2024-04-21
1007Spain2024-04-09
1008France2024-04-12
1009Australia2024-04-16
1010Russia2024-04-04
1011Brazil2024-04-15
1012Brazil2024-04-22
1013Australia2024-04-16
1014France2024-04-26
1015Spain2024-04-01
1016Australia2024-04-03
1017Italy2024-04-07
1018Canada2024-04-16
1019France2024-03-29
1020Japan2024-04-17
1021Brazil2024-04-15
1022Brazil2024-04-09
1023France2024-04-01
1024United Kingdom2024-04-07
1025Australia2024-04-02
1026Argentina2024-04-15
1027Italy2024-03-31
1028France2024-04-22
1029Spain2024-04-24
1030France2024-04-07
1031Argentina2024-04-07
1032Canada2024-04-04
1033Australia2024-04-07
1034Russia2024-04-10
1035India2024-04-15
1036Japan2024-04-11
1037Russia2024-04-04
1038India2024-04-13
1039Spain2024-04-07
1040India2024-04-23
1041Germany2024-04-11
1042Russia2024-04-07
1043United Kingdom2024-04-15
1044Australia2024-03-28
1045Brazil2024-04-16
1046France2024-04-05
1047France2024-04-19
1048France2024-03-28
1049Australia2024-04-23

On-Demand Data

NameIdCountryDate
James I Wieser1000Italy2024-04-13
Cody G Royster1001Italy2024-03-28
Tony K Rim1002Japan2024-04-17
Munro F Schemmer1003India2024-04-20
Aruna N Marrier1004Italy2024-04-18
Aika G Ostrosky1005Germany2024-04-24
Jefferson T Dilliard1006Brazil2024-04-21
Greenwood F Albares1007Brazil2024-04-10
Murillo Z Gillian1008France2024-03-29
Ivar J Sergi1009India2024-03-28
Deepesh P Kusko1010Germany2024-04-25
Stacey R Stockham1011Russia2024-04-02
Cody K Bowley1012Spain2024-04-15
Chavez R Venere1013United Kingdom2024-04-07
Misaki Q Albares1014Argentina2024-04-04
Morrow C Nicka1015Brazil2024-04-10
Rodrigues W Figeroa1016Italy2024-04-15
Munro Y Oldroyd1017India2024-04-09
David P Garufi1018India2024-03-30
Francesco M Stockham1019Canada2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire T GauchoGermanyOnyama Limba QUALIFIED
Chavez W GlickJapanIoni Bowcher NEGOTIATION
Munro B WieserFranceIoni Bowcher NEW
Jennifer M FerenczGermanyAnna Fali PROPOSAL
Johnson O PoquetteRussiaElwin Sharvill QUALIFIED
Wickens F TollnerItalyAmy Elsner RENEWAL
Smith K StockhamBrazilAmy Elsner NEW
Francesco T InouyeJapanIvan Magalhaes QUALIFIED
Izzy H RulapaughCanadaStephen Shaw NEW
Munro V FollerSpainStephen Shaw NEGOTIATION
Costa R RulapaughArgentinaIvan Magalhaes PROPOSAL
Leja L BriddickRussiaOnyama Limba NEGOTIATION
Emily U MaletBrazilAnna Fali UNQUALIFIED
Stacey C CampainGermanyElwin Sharvill NEGOTIATION
Octavia Q SaylorsSpainElwin Sharvill NEGOTIATION
Sinclair M NestleIndiaAsiya Javayant UNQUALIFIED
Wickens B KolmetzJapanBernardo Dominic QUALIFIED
Jefferson F RutaGermanyBernardo Dominic NEGOTIATION
Antonio B ButtIndiaOnyama Limba UNQUALIFIED
Cody N GarufiRussiaBernardo Dominic PROPOSAL
Arvin W SlusarskiRussiaAsiya Javayant NEW
Leon A DilliardCanadaIoni Bowcher RENEWAL
Alejandro P SaylorsIndiaIvan Magalhaes QUALIFIED
Jefferson R ButtCanadaIvan Magalhaes PROPOSAL
Maria M PaprockiArgentinaElwin Sharvill NEGOTIATION
Ricardo P CampainAustraliaIvan Magalhaes PROPOSAL
Kaitlin X RoysterJapanAnna Fali NEGOTIATION
Stacey Q GauchoGermanyBernardo Dominic RENEWAL
Maria Z MaletAustraliaElwin Sharvill NEGOTIATION
Clifford M MaletUnited KingdomElwin Sharvill QUALIFIED
Rodrigues J OstroskyJapanElwin Sharvill NEW
Greenwood R PerinAustraliaBernardo Dominic UNQUALIFIED
Darci I FlosiGermanyAnna Fali NEGOTIATION
Nicolas H CampainFranceBernardo Dominic RENEWAL
Juan J BowleySpainAnna Fali PROPOSAL
Kadeem V DoeAustraliaIvan Magalhaes QUALIFIED
Jennifer T IturbideRussiaXuxue Feng NEGOTIATION
Murillo R WieserUnited KingdomIoni Bowcher PROPOSAL
Juan B SchemmerRussiaElwin Sharvill PROPOSAL
Kadeem Q ShinkoUnited KingdomOnyama Limba 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>