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
Greenwood M CampainFranceIvan Magalhaes UNQUALIFIED
Jones Y ShinkoCanadaAmy Elsner NEGOTIATION
Izzy W GarufiSpainBernardo Dominic UNQUALIFIED
Kadeem A WieserItalyStephen Shaw UNQUALIFIED
Clifford W DoeArgentinaIoni Bowcher RENEWAL
James H DarakjySpainStephen Shaw NEW
Arvin Z PerinSpainOnyama Limba NEGOTIATION
Deepesh B VenereArgentinaAsiya Javayant PROPOSAL
Ivar P PaprockiIndiaIvan Magalhaes NEW
Aruna P DoeItalyIvan Magalhaes PROPOSAL
Smith H FollerSpainAmy Elsner RENEWAL
Clifford L FlosiAustraliaAsiya Javayant QUALIFIED
Ricardo A MacleadGermanyIvan Magalhaes UNQUALIFIED
Arvin J SchemmerArgentinaOnyama Limba NEW
Rodrigues Y StensethJapanAnna Fali QUALIFIED
Leja C DarakjyArgentinaAmy Elsner NEGOTIATION
Jones S StockhamIndiaAsiya Javayant UNQUALIFIED
Adams Z RulapaughCanadaStephen Shaw UNQUALIFIED
Wickens V RimGermanyIoni Bowcher NEW
Leja O OldroydArgentinaBernardo Dominic QUALIFIED
Tony A MorascaFranceAsiya Javayant NEGOTIATION
Antonio D FlosiItalyAmy Elsner QUALIFIED
Stacey N SchemmerGermanyElwin Sharvill NEW
Francesco I GillianItalyOnyama Limba NEGOTIATION
Leon B MaletAustraliaXuxue Feng PROPOSAL
Wickens X RoysterAustraliaOnyama Limba NEW
Johnson C FollerCanadaAsiya Javayant NEW
Sinclair I FerenczJapanOnyama Limba UNQUALIFIED
Francesco F SergiSpainStephen Shaw QUALIFIED
Deepesh T WieserSpainStephen Shaw UNQUALIFIED
Tony P VocelkaCanadaIvan Magalhaes RENEWAL
David D FlosiJapanOnyama Limba NEW
Ashley F VenereArgentinaXuxue Feng PROPOSAL
Claire R FerenczFranceAnna Fali NEW
Mayumi U BowleyGermanyOnyama Limba QUALIFIED
Murillo K VocelkaGermanyBernardo Dominic NEGOTIATION
David R SlusarskiGermanyIvan Magalhaes QUALIFIED
Kaitlin X DarakjyRussiaStephen Shaw PROPOSAL
Morrow O KolmetzArgentinaAsiya Javayant UNQUALIFIED
Leja Z BriddickIndiaAmy Elsner NEW
Wickens W TollnerIndiaIvan Magalhaes RENEWAL
Francesco U VocelkaJapanStephen Shaw PROPOSAL
James O KolmetzUnited KingdomOnyama Limba PROPOSAL
Faith H AmigonItalyOnyama Limba NEGOTIATION
Deepesh P MorascaFranceElwin Sharvill QUALIFIED
Claire S SchemmerItalyIvan Magalhaes NEGOTIATION
Julie X DoeCanadaAmy Elsner PROPOSAL
Claire Y TollnerJapanOnyama Limba NEGOTIATION
Wickens J IturbideAustraliaAmy Elsner PROPOSAL
Jones U ButtCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer W FigeroaFranceElwin Sharvill PROPOSAL
Leon S AlbaresIndiaAnna Fali UNQUALIFIED
Aditya A CaudyBrazilAsiya Javayant RENEWAL
Jennifer W BowleyFranceOnyama Limba NEGOTIATION
Mujtaba G DoeRussiaIvan Magalhaes NEGOTIATION
Stacey P BologniaBrazilIvan Magalhaes RENEWAL
Aditya X MorascaAustraliaAmy Elsner RENEWAL
Jeanfrancois Z FigeroaArgentinaIoni Bowcher NEGOTIATION
Isabel O CaldareraFranceStephen Shaw PROPOSAL
Deepesh I BowleyArgentinaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore A StockhamItaly2024-04-16Feltz Printing Service QUALIFIED70Anna Fali
1001Aditya R MaletUnited Kingdom2024-04-18Rangoni Of Florence NEGOTIATION28Ivan Magalhaes
1002Darci V WhobreyCanada2024-04-09Chanay, Jeffrey A Esq PROPOSAL99Xuxue Feng
1003Wickens H SaylorsSpain2024-04-15Feiner Bros UNQUALIFIED80Elwin Sharvill
1004Izzy V VocelkaBrazil2024-04-11Benton, John B Jr NEW60Ivan Magalhaes
1005Alejandro U TollnerSpain2024-04-06Printing Dimensions UNQUALIFIED11Asiya Javayant
1006Sinclair U VenereAustralia2024-04-07Dorl, James J Esq QUALIFIED19Elwin Sharvill
1007Julie M OldroydSpain2024-05-04Morlong Associates RENEWAL47Asiya Javayant
1008Maria Z DilliardRussia2024-04-21Printing Dimensions UNQUALIFIED22Ioni Bowcher
1009Maisha W SchemmerFrance2024-05-05King, Christopher A Esq NEGOTIATION10Bernardo Dominic
1010Adams D BologniaBrazil2024-04-12Morlong Associates QUALIFIED90Xuxue Feng
1011Silvio D MaletFrance2024-04-21Commercial Press RENEWAL84Stephen Shaw
1012Smith M FigeroaBrazil2024-04-18Rousseaux, Michael Esq NEW41Elwin Sharvill
1013Smith A RulapaughArgentina2024-04-30Rousseaux, Michael Esq UNQUALIFIED70Ioni Bowcher
1014Munro Y VenereAustralia2024-04-18King, Christopher A Esq NEW95Xuxue Feng
1015Smith D VocelkaCanada2024-04-19Chemel, James L Cpa UNQUALIFIED54Onyama Limba
1016Stacey G InouyeFrance2024-04-06Benton, John B Jr QUALIFIED19Xuxue Feng
1017Leon M RutaFrance2024-04-16Chemel, James L Cpa UNQUALIFIED90Stephen Shaw
1018Silvio S ShinkoArgentina2024-04-24Feiner Bros NEW81Anna Fali
1019Aruna C DarakjyRussia2024-04-30King, Christopher A Esq PROPOSAL16Anna Fali
1020Chavez B VenereArgentina2024-04-06Dorl, James J Esq NEW91Stephen Shaw
1021Stacey K BowleyUnited Kingdom2024-04-08Truhlar And Truhlar Attys RENEWAL53Bernardo Dominic
1022Darci G FerenczArgentina2024-04-09Printing Dimensions UNQUALIFIED71Stephen Shaw
1023Leon J MarrierArgentina2024-04-10Benton, John B Jr NEGOTIATION2Ivan Magalhaes
1024Aika R WieserBrazil2024-04-26Buckley Miller Wright QUALIFIED65Elwin Sharvill
1025Izzy J ShinkoCanada2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED49Ivan Magalhaes
1026Claire E DoeGermany2024-04-30Commercial Press NEW60Ioni Bowcher
1027Jeanfrancois M SchemmerItaly2024-04-19King, Christopher A Esq NEGOTIATION62Anna Fali
1028Salvatore V RoysterAustralia2024-04-21King, Christopher A Esq PROPOSAL44Ivan Magalhaes
1029Wickens C CampainUnited Kingdom2024-04-29Feltz Printing Service RENEWAL46Anna Fali
1030Maisha M NestleUnited Kingdom2024-04-22Dorl, James J Esq NEGOTIATION76Onyama Limba
1031Wickens X SlusarskiGermany2024-04-25Buckley Miller Wright UNQUALIFIED41Bernardo Dominic
1032Antonio N DoeItaly2024-04-26Truhlar And Truhlar Attys NEW97Stephen Shaw
1033Aditya Q KuskoItaly2024-04-24Chemel, James L Cpa RENEWAL14Asiya Javayant
1034Jennifer S GillianItaly2024-04-11Feltz Printing Service NEGOTIATION79Ivan Magalhaes
1035Juan Q AmigonUnited Kingdom2024-04-26Feltz Printing Service PROPOSAL50Anna Fali
1036Johnson L SaylorsItaly2024-04-15Commercial Press PROPOSAL63Amy Elsner
1037Wickens T NestleFrance2024-04-17Dorl, James J Esq PROPOSAL24Elwin Sharvill
1038Ivar C IturbideCanada2024-04-15Feltz Printing Service UNQUALIFIED92Xuxue Feng
1039Jefferson F SchemmerJapan2024-04-09Morlong Associates UNQUALIFIED80Anna Fali
1040Ricardo S InouyeGermany2024-05-04Buckley Miller Wright NEGOTIATION53Stephen Shaw
1041Ashley B SchemmerCanada2024-04-20Chapman, Ross E Esq NEGOTIATION34Xuxue Feng
1042Mujtaba N KolmetzItaly2024-04-10Benton, John B Jr RENEWAL29Ioni Bowcher
1043Jones M RoysterFrance2024-04-22Dorl, James J Esq NEW88Amy Elsner
1044Mayumi G FerenczAustralia2024-04-13Dorl, James J Esq QUALIFIED76Bernardo Dominic
1045Emily N KuskoJapan2024-04-25Dorl, James J Esq PROPOSAL58Amy Elsner
1046Antonio V PerinIndia2024-04-20Dorl, James J Esq NEW72Ioni Bowcher
1047Claire M MorascaAustralia2024-04-12Chapman, Ross E Esq NEGOTIATION90Stephen Shaw
1048Emily A CaldareraCanada2024-04-17Truhlar And Truhlar Attys NEGOTIATION56Stephen Shaw
1049Leja C DilliardJapan2024-04-30Benton, John B Jr PROPOSAL87Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Greenwood L RoysterRussiaBernardo Dominic UNQUALIFIED
Wickens B KuskoCanadaAsiya Javayant QUALIFIED
Isabel A RutaItalyElwin Sharvill PROPOSAL
James L NestleJapanIvan Magalhaes PROPOSAL
Nicolas A KuskoArgentinaBernardo Dominic NEW
Darci D RoysterAustraliaBernardo Dominic NEW
David P GauchoIndiaBernardo Dominic PROPOSAL
David N CaldareraRussiaOnyama Limba PROPOSAL
Leon N MacleadBrazilOnyama Limba NEW
Isabel E DarakjySpainIvan Magalhaes RENEWAL
Ashley C RulapaughRussiaIoni Bowcher QUALIFIED
David M SchemmerFranceXuxue Feng NEW
Juan F TollnerCanadaStephen Shaw QUALIFIED
Kadeem D SaylorsGermanyOnyama Limba NEGOTIATION
Mujtaba A MaletArgentinaAsiya Javayant RENEWAL
Morrow O OldroydIndiaAsiya Javayant PROPOSAL
Jeanfrancois G CaldareraAustraliaAmy Elsner UNQUALIFIED
Sinclair Q DoeUnited KingdomStephen Shaw UNQUALIFIED
Salvatore B DoeSpainAsiya Javayant UNQUALIFIED
Leja W AmigonAustraliaIvan Magalhaes QUALIFIED
Leon C KolmetzSpainAsiya Javayant UNQUALIFIED
Aika Y AmigonBrazilIoni Bowcher QUALIFIED
Mayumi W ShinkoUnited KingdomIvan Magalhaes NEW
Chavez L MaletIndiaBernardo Dominic UNQUALIFIED
Murillo H RutaRussiaIoni Bowcher PROPOSAL
David V GillianArgentinaIoni Bowcher UNQUALIFIED
Stacey S StensethGermanyElwin Sharvill NEGOTIATION
Deepesh T FlosiArgentinaXuxue Feng UNQUALIFIED
Johnson G WhobreyArgentinaElwin Sharvill PROPOSAL
Kadeem N MacleadAustraliaStephen Shaw NEW
Stacey H NestleItalyAsiya Javayant UNQUALIFIED
Isabel X FerenczSpainElwin Sharvill QUALIFIED
Misaki H FollerGermanyIvan Magalhaes QUALIFIED
Mayumi P KolmetzItalyXuxue Feng NEGOTIATION
Ivar P KuskoJapanAsiya Javayant UNQUALIFIED
Julie M BowleyFranceIvan Magalhaes RENEWAL
Misaki K DarakjyArgentinaIoni Bowcher PROPOSAL
Juan K CampainRussiaStephen Shaw PROPOSAL
Rodrigues B BriddickArgentinaBernardo Dominic NEGOTIATION
Claire Z GauchoArgentinaStephen Shaw RENEWAL
Maisha T GauchoBrazilBernardo Dominic QUALIFIED
Ashley B FigeroaJapanIoni Bowcher NEW
Silvio N FigeroaArgentinaAnna Fali NEW
Francesco Q MorascaGermanyIvan Magalhaes NEW
Aika H MaletArgentinaStephen Shaw NEW
Claire G VocelkaGermanyStephen Shaw QUALIFIED
Mayumi Y CaudyCanadaBernardo Dominic NEGOTIATION
Antonio X NickaJapanIoni Bowcher NEW
Alejandro W FlosiJapanElwin Sharvill NEW
Clifford W CaudySpainStephen Shaw NEW
Frozen Columns
Name
Jennifer Q Caudy
Wickens Y Ruta
Octavia Q Waycott
Maisha M Sergi
Mayumi D Bolognia
Jeanfrancois T Whobrey
Salvatore O Ruta
Aditya B Maclead
Aruna K Kusko
Ricardo E Kolmetz
Cody W Inouye
Aika L Ostrosky
Aruna S Flosi
Stacey Y Gaucho
Jennifer K Ruta
Smith W Kusko
Alejandro M Kusko
Munro M Butt
Francesco A Briddick
Salvatore Y Sergi
Ricardo M Nestle
Stacey S Darakjy
Ricardo Y Rulapaugh
Octavia T Vocelka
Wickens R Gillian
David F Caudy
Arvin A Foller
Johnson W Maclead
Stacey V Rim
Francesco L Shinko
Jeanfrancois K Glick
Jones F Butt
Wickens X Waycott
Aruna Y Nestle
Morrow G Butt
Isabel H Gillian
David C Gaucho
Ricardo K Darakjy
Stacey Y Figeroa
Stacey K Waycott
Octavia R Gillian
Izzy P Kusko
Deepesh E Morasca
Kaitlin Z Flosi
Emily M Dilliard
Morrow M Malet
Morrow E Kolmetz
Jones N Garufi
Greenwood U Caldarera
Nicolas O Kolmetz
IdCountryDate
1000Russia2024-04-30
1001Germany2024-04-16
1002Japan2024-04-14
1003Germany2024-04-08
1004Australia2024-05-01
1005Italy2024-04-06
1006United Kingdom2024-04-10
1007Australia2024-04-08
1008Canada2024-04-16
1009Japan2024-04-11
1010United Kingdom2024-04-25
1011Russia2024-04-25
1012Spain2024-04-17
1013Italy2024-04-06
1014France2024-05-03
1015Argentina2024-04-28
1016Argentina2024-05-04
1017Germany2024-05-03
1018Italy2024-04-28
1019Argentina2024-04-16
1020Brazil2024-04-14
1021Spain2024-05-05
1022Japan2024-04-11
1023Australia2024-04-17
1024Argentina2024-04-08
1025Spain2024-05-04
1026Italy2024-04-16
1027Italy2024-04-29
1028Australia2024-04-17
1029Australia2024-04-28
1030Italy2024-04-06
1031Brazil2024-04-13
1032Spain2024-04-21
1033Australia2024-04-19
1034Argentina2024-05-05
1035France2024-04-30
1036India2024-04-19
1037Italy2024-04-27
1038Japan2024-04-15
1039Germany2024-04-13
1040France2024-04-26
1041Germany2024-04-08
1042Australia2024-05-03
1043Japan2024-04-09
1044Brazil2024-04-28
1045Brazil2024-04-11
1046Australia2024-04-21
1047Russia2024-04-09
1048India2024-04-19
1049Argentina2024-04-12

On-Demand Data

NameIdCountryDate
Alejandro N Royster1000Spain2024-04-19
Isabel V Kolmetz1001Argentina2024-04-22
Aika E Caudy1002Argentina2024-04-24
Francesco K Rim1003India2024-04-09
Silvio W Saylors1004Russia2024-04-13
Julie L Butt1005Australia2024-05-03
Aditya J Kolmetz1006Canada2024-05-03
Jefferson S Inouye1007Italy2024-04-30
Smith Z Oldroyd1008Argentina2024-04-27
Arvin T Rulapaugh1009Italy2024-04-27
Isabel R Marrier1010Australia2024-05-02
Sinclair T Ostrosky1011United Kingdom2024-05-03
James R Ruta1012Germany2024-04-16
Aditya T Sergi1013Spain2024-04-15
Leon Z Albares1014France2024-05-01
Maria F Perin1015Japan2024-04-12
Murillo T Iturbide1016France2024-05-04
Smith I Schemmer1017Germany2024-04-06
Sinclair A Flosi1018Spain2024-04-16
Rodrigues K Sergi1019Italy2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia N OldroydSpainAnna Fali PROPOSAL
Arvin L GauchoUnited KingdomAmy Elsner UNQUALIFIED
Nicolas R MaletItalyElwin Sharvill NEGOTIATION
Ricardo O SaylorsAustraliaOnyama Limba NEW
Ashley L KuskoFranceAnna Fali PROPOSAL
Nicolas J MacleadGermanyStephen Shaw PROPOSAL
Clifford I MacleadIndiaAnna Fali RENEWAL
Chavez R CampainAustraliaAmy Elsner NEW
Nicolas J StensethArgentinaBernardo Dominic PROPOSAL
Salvatore V AlbaresArgentinaAnna Fali QUALIFIED
Adams A FlosiBrazilBernardo Dominic NEW
James G WaycottJapanBernardo Dominic RENEWAL
Leja H BologniaFranceAmy Elsner NEGOTIATION
Octavia B IturbideArgentinaIoni Bowcher RENEWAL
Deepesh L ChuiAustraliaIvan Magalhaes UNQUALIFIED
Francesco L MaletCanadaIvan Magalhaes UNQUALIFIED
Aika U ButtItalyElwin Sharvill NEW
Ashley M FlosiUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois R PaprockiGermanyBernardo Dominic UNQUALIFIED
Isabel J BowleyIndiaXuxue Feng QUALIFIED
Leja G FerenczRussiaBernardo Dominic QUALIFIED
Aditya K TollnerArgentinaIvan Magalhaes UNQUALIFIED
Chavez O IturbideFranceStephen Shaw NEGOTIATION
Mayumi X DilliardRussiaOnyama Limba UNQUALIFIED
Darci B StockhamJapanBernardo Dominic NEW
Stacey V WieserArgentinaBernardo Dominic RENEWAL
Jennifer S StensethCanadaXuxue Feng NEGOTIATION
Stacey F MacleadSpainElwin Sharvill RENEWAL
Clifford R SlusarskiAustraliaElwin Sharvill RENEWAL
Munro K GarufiRussiaAnna Fali QUALIFIED
Wickens N SlusarskiArgentinaAnna Fali QUALIFIED
Misaki D BriddickAustraliaIvan Magalhaes QUALIFIED
Deepesh J StockhamSpainBernardo Dominic NEGOTIATION
Ashley X NickaIndiaIvan Magalhaes NEW
Ricardo V FerenczBrazilStephen Shaw PROPOSAL
Juan Y StensethCanadaOnyama Limba NEW
Greenwood W BowleyBrazilOnyama Limba UNQUALIFIED
Kadeem D SlusarskiRussiaXuxue Feng UNQUALIFIED
Octavia S SergiFranceAnna Fali QUALIFIED
Antonio A WieserItalyAnna Fali NEW

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