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
Stacey V RulapaughGermanyAnna Fali NEW
Stacey X MaletItalyAmy Elsner RENEWAL
Maisha A RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Leja M SergiAustraliaIvan Magalhaes PROPOSAL
Octavia M FlosiIndiaBernardo Dominic UNQUALIFIED
Sinclair I CaldareraJapanOnyama Limba RENEWAL
Juan O DoeUnited KingdomAmy Elsner PROPOSAL
Faith B RoysterUnited KingdomAsiya Javayant RENEWAL
Ivar W GlickArgentinaAnna Fali RENEWAL
Salvatore C ButtItalyStephen Shaw NEW
Chavez A RimArgentinaXuxue Feng QUALIFIED
Greenwood Z InouyeBrazilAsiya Javayant PROPOSAL
Ricardo O GillianAustraliaAmy Elsner UNQUALIFIED
Jennifer B RutaCanadaAmy Elsner NEW
Leja Z TollnerGermanyOnyama Limba RENEWAL
Ricardo Q FollerItalyXuxue Feng QUALIFIED
Isabel S NestleGermanyAmy Elsner QUALIFIED
Salvatore G SergiGermanyXuxue Feng NEGOTIATION
Aika E WieserItalyOnyama Limba NEGOTIATION
Chavez B FlosiCanadaAmy Elsner NEGOTIATION
Julie T FlosiAustraliaBernardo Dominic QUALIFIED
Antonio X SchemmerGermanyIvan Magalhaes NEW
Izzy V CaldareraArgentinaAmy Elsner QUALIFIED
Juan J KolmetzUnited KingdomStephen Shaw RENEWAL
Mujtaba Y ChuiIndiaStephen Shaw RENEWAL
Darci H DarakjyIndiaAnna Fali QUALIFIED
Salvatore O MorascaFranceAsiya Javayant QUALIFIED
Tony D AmigonCanadaIoni Bowcher NEGOTIATION
Stacey R ChuiRussiaStephen Shaw PROPOSAL
Murillo W GlickFranceXuxue Feng RENEWAL
Maisha S InouyeSpainXuxue Feng UNQUALIFIED
Isabel E SchemmerItalyOnyama Limba NEGOTIATION
Cody M SchemmerJapanAmy Elsner PROPOSAL
Cody Q RutaUnited KingdomAmy Elsner NEW
Kadeem Q GauchoFranceBernardo Dominic UNQUALIFIED
Munro C SaylorsBrazilOnyama Limba UNQUALIFIED
Deepesh I DilliardAustraliaBernardo Dominic NEGOTIATION
Maisha O MarrierItalyIoni Bowcher UNQUALIFIED
Cody V SergiArgentinaOnyama Limba PROPOSAL
Sinclair Z VocelkaCanadaElwin Sharvill PROPOSAL
Jones N VenereItalyIoni Bowcher QUALIFIED
Maria T VocelkaFranceXuxue Feng RENEWAL
Maisha V CaudyAustraliaXuxue Feng QUALIFIED
Ricardo U FerenczArgentinaAsiya Javayant NEGOTIATION
Maria S RutaFranceStephen Shaw RENEWAL
Cody F RimSpainAnna Fali UNQUALIFIED
Jeanfrancois Y CampainRussiaAnna Fali NEGOTIATION
Nicolas N SchemmerArgentinaAsiya Javayant PROPOSAL
Leja N DarakjyGermanyOnyama Limba QUALIFIED
Aditya N CaudyUnited KingdomElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio L AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Wickens P FollerFranceAsiya Javayant NEGOTIATION
Francesco G ShinkoUnited KingdomOnyama Limba NEW
Mayumi J CampainArgentinaIvan Magalhaes PROPOSAL
Arvin L RulapaughBrazilXuxue Feng NEW
Ricardo A DarakjyArgentinaXuxue Feng RENEWAL
Nicolas J MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Munro G DarakjyCanadaOnyama Limba NEGOTIATION
Octavia O CampainJapanStephen Shaw NEW
Clifford T VenereCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel V FerenczAustralia2024-04-06Printing Dimensions PROPOSAL90Onyama Limba
1001Salvatore T MaletRussia2024-04-07Rousseaux, Michael Esq NEW86Asiya Javayant
1002Ricardo S FigeroaIndia2024-04-17Commercial Press NEW49Ivan Magalhaes
1003Claire J InouyeItaly2024-04-27Feiner Bros NEW76Ioni Bowcher
1004James I GlickUnited Kingdom2024-04-18Printing Dimensions NEW56Onyama Limba
1005Jefferson D AlbaresAustralia2024-04-08Rangoni Of Florence NEW4Amy Elsner
1006Juan R TollnerIndia2024-04-17Rangoni Of Florence PROPOSAL39Xuxue Feng
1007Ivar S DarakjyJapan2024-04-22Feltz Printing Service NEW7Asiya Javayant
1008Faith S KolmetzRussia2024-04-15King, Christopher A Esq NEGOTIATION89Onyama Limba
1009Claire H IturbideItaly2024-04-23Rangoni Of Florence RENEWAL95Stephen Shaw
1010Morrow L WhobreyArgentina2024-04-18Rousseaux, Michael Esq UNQUALIFIED28Ioni Bowcher
1011Salvatore Y GauchoJapan2024-04-01Benton, John B Jr PROPOSAL33Asiya Javayant
1012Greenwood M MaletJapan2024-04-11Printing Dimensions NEGOTIATION5Ioni Bowcher
1013Maisha Z MacleadUnited Kingdom2024-04-23Rousseaux, Michael Esq UNQUALIFIED24Anna Fali
1014Costa B CaldareraFrance2024-04-10Printing Dimensions RENEWAL15Anna Fali
1015Stacey I WhobreyItaly2024-04-24Truhlar And Truhlar Attys PROPOSAL97Onyama Limba
1016Antonio Y ButtArgentina2024-04-08Chemel, James L Cpa QUALIFIED30Amy Elsner
1017Ricardo X AmigonGermany2024-04-01King, Christopher A Esq QUALIFIED41Ivan Magalhaes
1018Jennifer Q InouyeUnited Kingdom2024-03-31Chemel, James L Cpa NEGOTIATION94Bernardo Dominic
1019Jones B SchemmerArgentina2024-04-25Chanay, Jeffrey A Esq RENEWAL85Stephen Shaw
1020Cody Q OldroydIndia2024-04-02Morlong Associates PROPOSAL32Asiya Javayant
1021Darci N FlosiIndia2024-04-15Chemel, James L Cpa NEW84Ivan Magalhaes
1022Jennifer I MacleadRussia2024-04-21Buckley Miller Wright PROPOSAL47Asiya Javayant
1023Izzy S BowleyRussia2024-04-27Buckley Miller Wright PROPOSAL23Stephen Shaw
1024Maisha H StockhamIndia2024-04-01Rangoni Of Florence NEW62Amy Elsner
1025Leja Z SergiGermany2024-04-20Feltz Printing Service QUALIFIED89Asiya Javayant
1026Tony B StensethArgentina2024-04-02Feltz Printing Service PROPOSAL56Elwin Sharvill
1027Morrow Y PerinFrance2024-03-30Morlong Associates PROPOSAL65Elwin Sharvill
1028Stacey O GauchoAustralia2024-03-30Rangoni Of Florence NEW98Anna Fali
1029Salvatore R MaletArgentina2024-03-30Chemel, James L Cpa PROPOSAL3Stephen Shaw
1030David E KuskoCanada2024-04-09Commercial Press NEW62Asiya Javayant
1031Stacey Z ChuiSpain2024-04-13Dorl, James J Esq QUALIFIED33Ivan Magalhaes
1032Aruna A WaycottFrance2024-04-01Feiner Bros PROPOSAL74Xuxue Feng
1033Maria R NickaItaly2024-04-11Feiner Bros PROPOSAL78Xuxue Feng
1034James O GarufiArgentina2024-04-21Rangoni Of Florence NEW17Amy Elsner
1035Antonio R RutaUnited Kingdom2024-04-09Benton, John B Jr NEGOTIATION74Asiya Javayant
1036Chavez C GillianItaly2024-03-31Buckley Miller Wright UNQUALIFIED38Anna Fali
1037Julie H DoeItaly2024-04-14Rousseaux, Michael Esq UNQUALIFIED81Xuxue Feng
1038James V MacleadGermany2024-04-23Truhlar And Truhlar Attys RENEWAL47Bernardo Dominic
1039Mayumi C FlosiItaly2024-04-14Dorl, James J Esq PROPOSAL31Anna Fali
1040Misaki U BowleyJapan2024-04-11Morlong Associates UNQUALIFIED54Anna Fali
1041Wickens W CaldareraSpain2024-04-25Feiner Bros PROPOSAL0Onyama Limba
1042Tony A GarufiItaly2024-04-21Commercial Press QUALIFIED35Ioni Bowcher
1043Misaki Q StensethArgentina2024-04-15Rangoni Of Florence QUALIFIED4Elwin Sharvill
1044Julie P PerinAustralia2024-04-27Chanay, Jeffrey A Esq RENEWAL34Amy Elsner
1045Clifford X ShinkoBrazil2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED51Bernardo Dominic
1046Maisha G GarufiBrazil2024-04-05Rangoni Of Florence PROPOSAL36Anna Fali
1047Ricardo X WaycottItaly2024-04-13Commercial Press QUALIFIED93Xuxue Feng
1048Adams U PaprockiSpain2024-04-23Feiner Bros NEGOTIATION4Stephen Shaw
1049Cody U BologniaArgentina2024-04-26Chanay, Jeffrey A Esq RENEWAL95Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja R WhobreyIndiaStephen Shaw PROPOSAL
Octavia E KolmetzItalyElwin Sharvill PROPOSAL
Wickens J ButtItalyBernardo Dominic NEGOTIATION
Arvin W ButtRussiaIvan Magalhaes UNQUALIFIED
Stacey F ShinkoArgentinaAsiya Javayant RENEWAL
Greenwood L StockhamUnited KingdomAmy Elsner UNQUALIFIED
Wickens G CampainBrazilStephen Shaw NEW
Johnson W NickaGermanyStephen Shaw PROPOSAL
Arvin S SlusarskiUnited KingdomElwin Sharvill RENEWAL
Aika I StockhamAustraliaStephen Shaw UNQUALIFIED
Jennifer P RimAustraliaAnna Fali NEGOTIATION
Faith S IturbideAustraliaStephen Shaw UNQUALIFIED
Ricardo L VenereAustraliaXuxue Feng UNQUALIFIED
David C DoeGermanyAmy Elsner RENEWAL
Stacey H KolmetzCanadaIvan Magalhaes QUALIFIED
Smith C CaldareraFranceIoni Bowcher NEW
David T SchemmerIndiaIoni Bowcher NEW
Darci V RutaArgentinaBernardo Dominic UNQUALIFIED
Leja Q NickaUnited KingdomAsiya Javayant NEW
Arvin P KuskoItalyAsiya Javayant PROPOSAL
James U CaudyRussiaAsiya Javayant RENEWAL
Morrow F BriddickSpainElwin Sharvill UNQUALIFIED
Claire E OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh K KuskoBrazilIvan Magalhaes NEW
David U RimUnited KingdomBernardo Dominic PROPOSAL
Ashley H DarakjyUnited KingdomAnna Fali NEW
Jones F NickaBrazilIvan Magalhaes UNQUALIFIED
Tony V AlbaresAustraliaXuxue Feng NEW
David J PoquetteCanadaIoni Bowcher NEGOTIATION
Faith X DarakjyItalyIvan Magalhaes QUALIFIED
Chavez V BowleyIndiaAnna Fali NEW
Leon G ChuiItalyBernardo Dominic PROPOSAL
Munro T GillianIndiaAmy Elsner RENEWAL
Izzy F MaletUnited KingdomBernardo Dominic UNQUALIFIED
Smith Q GauchoBrazilAsiya Javayant NEGOTIATION
Costa N WhobreyFranceStephen Shaw QUALIFIED
Emily E PoquetteGermanyIoni Bowcher NEGOTIATION
Greenwood O TollnerGermanyStephen Shaw NEW
Julie C ButtArgentinaIvan Magalhaes NEW
Juan R NestleArgentinaXuxue Feng NEW
Morrow G TollnerSpainElwin Sharvill NEGOTIATION
Kaitlin E PaprockiBrazilAmy Elsner UNQUALIFIED
Darci H MaletFranceAsiya Javayant RENEWAL
Mujtaba S RutaIndiaXuxue Feng QUALIFIED
Silvio C MarrierBrazilIoni Bowcher UNQUALIFIED
Jones E RoysterFranceIoni Bowcher PROPOSAL
Jennifer I AmigonIndiaStephen Shaw NEGOTIATION
Jeanfrancois B MacleadFranceBernardo Dominic NEGOTIATION
Greenwood F KolmetzRussiaAnna Fali QUALIFIED
Julie D VenereSpainElwin Sharvill RENEWAL
Frozen Columns
Name
Julie E Bolognia
Jones Y Nestle
Salvatore N Albares
Maria A Poquette
Rodrigues D Maclead
Aika D Ostrosky
Johnson D Inouye
Morrow T Ferencz
Cody X Morasca
Isabel E Ferencz
Jennifer D Flosi
Ashley S Schemmer
Kadeem O Bowley
Jefferson M Nicka
Francesco R Wieser
Silvio D Flosi
Silvio B Malet
Chavez Z Amigon
Smith G Marrier
Octavia V Ruta
Mujtaba D Figeroa
Misaki O Stockham
Greenwood B Maclead
Murillo H Ostrosky
Clifford L Rulapaugh
Smith L Ferencz
Aditya R Gillian
Tony Z Poquette
Munro B Ostrosky
Maria U Albares
James K Slusarski
Deepesh I Bowley
Adams S Oldroyd
Julie T Iturbide
Nicolas L Rulapaugh
Kaitlin C Malet
Cody B Kolmetz
Sinclair H Royster
Francesco F Kusko
Emily P Glick
Kadeem B Waycott
Francesco D Saylors
Emily P Caudy
Tony K Amigon
Leja Q Albares
Murillo Q Kusko
Stacey K Inouye
Juan H Marrier
Mujtaba J Gillian
Ivar B Caldarera
IdCountryDate
1000United Kingdom2024-04-09
1001Russia2024-04-13
1002Italy2024-04-24
1003Germany2024-04-23
1004Italy2024-04-18
1005Argentina2024-04-27
1006United Kingdom2024-04-20
1007Canada2024-04-10
1008Russia2024-04-27
1009United Kingdom2024-04-16
1010Australia2024-04-11
1011Brazil2024-04-21
1012Australia2024-03-29
1013India2024-04-12
1014Italy2024-04-05
1015Japan2024-04-19
1016France2024-03-29
1017Germany2024-04-14
1018Australia2024-04-08
1019Russia2024-04-22
1020India2024-04-22
1021Russia2024-04-21
1022United Kingdom2024-04-10
1023France2024-04-24
1024India2024-04-27
1025United Kingdom2024-04-26
1026France2024-03-29
1027Canada2024-04-22
1028Japan2024-03-30
1029United Kingdom2024-04-21
1030Canada2024-04-23
1031Spain2024-04-22
1032France2024-04-21
1033Russia2024-04-24
1034Russia2024-04-11
1035United Kingdom2024-04-09
1036Australia2024-04-25
1037India2024-04-23
1038United Kingdom2024-04-04
1039France2024-04-21
1040Italy2024-04-08
1041India2024-04-25
1042India2024-04-22
1043Brazil2024-04-24
1044Japan2024-04-12
1045Italy2024-04-23
1046Argentina2024-04-12
1047Argentina2024-04-07
1048Brazil2024-03-30
1049Argentina2024-04-20

On-Demand Data

NameIdCountryDate
Maria R Stenseth1000Canada2024-04-20
Ivar C Briddick1001Spain2024-04-18
Jones C Maclead1002France2024-04-04
Isabel T Stockham1003Italy2024-04-08
Misaki Z Dilliard1004Brazil2024-04-02
Sinclair I Caldarera1005Japan2024-04-17
Sinclair N Stockham1006Argentina2024-04-27
Morrow Z Kusko1007United Kingdom2024-04-20
Misaki L Morasca1008Canada2024-04-16
Leon P Kusko1009Canada2024-04-27
Maisha N Kolmetz1010Spain2024-04-07
Greenwood G Kolmetz1011United Kingdom2024-04-25
Darci R Foller1012Russia2024-04-03
Kaitlin U Flosi1013Brazil2024-04-02
James S Gillian1014France2024-04-21
Sinclair C Oldroyd1015Australia2024-04-11
Octavia A Wieser1016Japan2024-04-06
Aditya N Flosi1017Italy2024-04-12
Aditya D Kusko1018Canada2024-04-18
James C Briddick1019Spain2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia W ButtRussiaAmy Elsner NEGOTIATION
Faith Z WaycottRussiaIoni Bowcher UNQUALIFIED
Murillo W ShinkoIndiaIoni Bowcher QUALIFIED
Johnson S KuskoCanadaOnyama Limba UNQUALIFIED
Adams Q ShinkoRussiaIoni Bowcher NEW
Tony P CaudyUnited KingdomAnna Fali QUALIFIED
Aruna Q AlbaresRussiaAsiya Javayant NEGOTIATION
Julie V RimIndiaBernardo Dominic PROPOSAL
Leon V NestleJapanBernardo Dominic UNQUALIFIED
Sinclair I DarakjyJapanIoni Bowcher NEGOTIATION
James X GauchoRussiaAsiya Javayant PROPOSAL
Munro E FollerFranceElwin Sharvill QUALIFIED
Rodrigues Q GillianFranceAmy Elsner RENEWAL
Murillo Y FerenczArgentinaAsiya Javayant PROPOSAL
Maria I CaudyBrazilAnna Fali NEW
Antonio C RutaBrazilAmy Elsner PROPOSAL
Julie E RulapaughArgentinaStephen Shaw NEW
Maria P IturbideGermanyIvan Magalhaes PROPOSAL
Jeanfrancois J KuskoUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois E KuskoAustraliaBernardo Dominic NEW
Johnson B MaletCanadaIvan Magalhaes UNQUALIFIED
Leja I ChuiJapanBernardo Dominic NEGOTIATION
Sinclair E CaldareraSpainElwin Sharvill UNQUALIFIED
Murillo O MorascaAustraliaOnyama Limba NEGOTIATION
Claire Q SergiItalyStephen Shaw RENEWAL
Leon B PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy F MarrierIndiaStephen Shaw RENEWAL
Francesco Q GauchoBrazilAsiya Javayant QUALIFIED
Misaki V OstroskyAustraliaXuxue Feng NEGOTIATION
Kadeem P OldroydIndiaIoni Bowcher NEGOTIATION
Jeanfrancois Z BowleyIndiaStephen Shaw QUALIFIED
Rodrigues I KolmetzItalyOnyama Limba UNQUALIFIED
Clifford P InouyeFranceIvan Magalhaes NEGOTIATION
Sinclair L FigeroaUnited KingdomStephen Shaw NEW
Aditya K BologniaCanadaIoni Bowcher PROPOSAL
Darci Y FollerSpainAnna Fali UNQUALIFIED
Isabel L OstroskyArgentinaXuxue Feng PROPOSAL
Silvio T StockhamRussiaIvan Magalhaes QUALIFIED
Mayumi T PoquetteFranceAmy Elsner UNQUALIFIED
Stacey N BologniaSpainIoni Bowcher 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>