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
Misaki K WieserIndiaStephen Shaw NEGOTIATION
Leja H FigeroaCanadaElwin Sharvill NEGOTIATION
Wickens M CampainJapanXuxue Feng NEW
Rodrigues X SchemmerGermanyIvan Magalhaes UNQUALIFIED
Izzy Y IturbideBrazilElwin Sharvill QUALIFIED
Alejandro X DarakjyGermanyIvan Magalhaes PROPOSAL
Mujtaba Y GillianGermanyElwin Sharvill RENEWAL
Faith D OldroydRussiaBernardo Dominic RENEWAL
Jefferson S StockhamAustraliaAsiya Javayant NEW
Alejandro T GlickRussiaOnyama Limba NEW
Izzy N OstroskyArgentinaIoni Bowcher NEW
Salvatore W RoysterSpainAnna Fali UNQUALIFIED
Mayumi N PaprockiItalyOnyama Limba QUALIFIED
James D MorascaGermanyIvan Magalhaes UNQUALIFIED
Misaki N MaletArgentinaStephen Shaw QUALIFIED
Arvin Q KolmetzUnited KingdomAsiya Javayant PROPOSAL
Maria Y CampainSpainAmy Elsner NEW
Leja K MacleadIndiaStephen Shaw RENEWAL
Ashley A SergiUnited KingdomOnyama Limba NEGOTIATION
Cody B NestleRussiaElwin Sharvill PROPOSAL
Kadeem X ButtItalyXuxue Feng NEW
Stacey X AlbaresItalyIoni Bowcher RENEWAL
Morrow B RimArgentinaBernardo Dominic NEGOTIATION
Clifford R MaletSpainIoni Bowcher RENEWAL
Darci I KolmetzRussiaAmy Elsner RENEWAL
Jones V MacleadSpainElwin Sharvill UNQUALIFIED
Cody A MarrierSpainAsiya Javayant RENEWAL
Kadeem S RoysterJapanXuxue Feng NEGOTIATION
Morrow J WieserSpainIvan Magalhaes NEW
Jefferson N WieserItalyXuxue Feng PROPOSAL
Mujtaba U FollerAustraliaElwin Sharvill NEW
Antonio E DarakjyIndiaXuxue Feng NEGOTIATION
Murillo D SergiUnited KingdomAsiya Javayant NEW
Maisha M IturbideIndiaAnna Fali PROPOSAL
Nicolas Y TollnerSpainIvan Magalhaes QUALIFIED
Ricardo B InouyeFranceStephen Shaw NEW
Antonio X GillianGermanyStephen Shaw PROPOSAL
Wickens Q InouyeUnited KingdomAmy Elsner NEGOTIATION
Morrow A FlosiAustraliaAnna Fali NEW
Arvin S MacleadSpainIvan Magalhaes QUALIFIED
Ivar M FollerIndiaXuxue Feng RENEWAL
Munro M FigeroaBrazilOnyama Limba RENEWAL
Misaki K CaudySpainIvan Magalhaes PROPOSAL
Chavez W OldroydAustraliaStephen Shaw UNQUALIFIED
Nicolas M ButtBrazilElwin Sharvill NEW
Darci D SchemmerGermanyXuxue Feng NEGOTIATION
Claire B StockhamSpainStephen Shaw NEW
Maria E OldroydCanadaStephen Shaw RENEWAL
Munro P OstroskyArgentinaAsiya Javayant NEW
Jones U PaprockiUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo K DilliardUnited KingdomIoni Bowcher PROPOSAL
Mayumi S VocelkaGermanyIvan Magalhaes PROPOSAL
Aruna C WieserIndiaOnyama Limba NEGOTIATION
Chavez A WieserUnited KingdomAsiya Javayant RENEWAL
Costa G ButtFranceOnyama Limba RENEWAL
Aditya D OstroskyFranceXuxue Feng RENEWAL
Alejandro Y IturbideItalyBernardo Dominic QUALIFIED
Juan X MacleadUnited KingdomOnyama Limba NEGOTIATION
Kadeem E FigeroaRussiaElwin Sharvill NEW
Misaki O PaprockiFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin F GlickFrance2024-04-22Truhlar And Truhlar Attys RENEWAL80Xuxue Feng
1001Claire E KuskoGermany2024-04-03Rousseaux, Michael Esq QUALIFIED59Anna Fali
1002Johnson G MorascaItaly2024-04-05Feiner Bros RENEWAL21Anna Fali
1003Claire M NestleFrance2024-04-03Rangoni Of Florence UNQUALIFIED24Asiya Javayant
1004Isabel W IturbideRussia2024-04-20Chapman, Ross E Esq UNQUALIFIED57Onyama Limba
1005Claire R DilliardArgentina2024-04-18Rangoni Of Florence NEGOTIATION9Onyama Limba
1006Kadeem K TollnerCanada2024-04-26King, Christopher A Esq QUALIFIED12Amy Elsner
1007Mujtaba K NestleIndia2024-04-06Commercial Press RENEWAL28Amy Elsner
1008Chavez B WaycottSpain2024-04-25Dorl, James J Esq NEW52Anna Fali
1009Cody A CaldareraUnited Kingdom2024-04-03Feltz Printing Service RENEWAL78Elwin Sharvill
1010Julie D KuskoCanada2024-04-14Feltz Printing Service QUALIFIED62Ioni Bowcher
1011Greenwood W BriddickIndia2024-04-12Chapman, Ross E Esq PROPOSAL26Bernardo Dominic
1012Emily B RulapaughUnited Kingdom2024-04-24Truhlar And Truhlar Attys NEGOTIATION61Bernardo Dominic
1013Nicolas D PoquetteGermany2024-04-06Rousseaux, Michael Esq UNQUALIFIED47Amy Elsner
1014Francesco V TollnerAustralia2024-04-17Chapman, Ross E Esq UNQUALIFIED88Asiya Javayant
1015Greenwood N WhobreyIndia2024-04-11Morlong Associates RENEWAL63Onyama Limba
1016Stacey L ChuiItaly2024-04-24Feiner Bros QUALIFIED59Stephen Shaw
1017James E AmigonJapan2024-04-18Benton, John B Jr PROPOSAL55Bernardo Dominic
1018Claire C PerinJapan2024-04-16King, Christopher A Esq PROPOSAL73Stephen Shaw
1019Antonio B IturbideFrance2024-04-07Dorl, James J Esq NEW16Bernardo Dominic
1020Chavez R SergiRussia2024-04-25Commercial Press NEW21Bernardo Dominic
1021Darci U StockhamItaly2024-04-08Chemel, James L Cpa QUALIFIED33Bernardo Dominic
1022Salvatore Z SchemmerUnited Kingdom2024-04-22Commercial Press RENEWAL31Anna Fali
1023Cody C DilliardJapan2024-04-24Morlong Associates PROPOSAL95Ioni Bowcher
1024Stacey Z KolmetzAustralia2024-04-11Rousseaux, Michael Esq QUALIFIED13Onyama Limba
1025Antonio U ButtFrance2024-04-11Chemel, James L Cpa RENEWAL21Bernardo Dominic
1026Juan L KuskoBrazil2024-04-03Benton, John B Jr NEW31Amy Elsner
1027Chavez W PerinRussia2024-04-21Printing Dimensions QUALIFIED52Onyama Limba
1028Aruna U KolmetzFrance2024-04-05Commercial Press PROPOSAL64Ioni Bowcher
1029Rodrigues R MaletIndia2024-04-10Rousseaux, Michael Esq PROPOSAL17Onyama Limba
1030Greenwood C TollnerArgentina2024-04-10Chapman, Ross E Esq NEW18Bernardo Dominic
1031Sinclair X NickaJapan2024-04-13Chemel, James L Cpa NEGOTIATION89Ioni Bowcher
1032Greenwood G TollnerJapan2024-04-07Chapman, Ross E Esq NEW79Ivan Magalhaes
1033Costa E VenereRussia2024-04-04Buckley Miller Wright RENEWAL71Asiya Javayant
1034Jennifer P VenereFrance2024-04-23Chemel, James L Cpa NEW86Anna Fali
1035Octavia R InouyeCanada2024-04-23Chanay, Jeffrey A Esq NEGOTIATION41Onyama Limba
1036Rodrigues J WaycottGermany2024-04-09Dorl, James J Esq QUALIFIED82Bernardo Dominic
1037Nicolas R KuskoUnited Kingdom2024-04-04Morlong Associates NEW89Amy Elsner
1038Jeanfrancois J CaudyFrance2024-03-30Commercial Press RENEWAL53Stephen Shaw
1039Octavia N ChuiSpain2024-04-05Feiner Bros NEW41Anna Fali
1040Wickens H CampainUnited Kingdom2024-04-26Chapman, Ross E Esq RENEWAL31Bernardo Dominic
1041Misaki B SchemmerArgentina2024-04-25Chanay, Jeffrey A Esq NEGOTIATION79Amy Elsner
1042Leja V BologniaIndia2024-04-01Printing Dimensions UNQUALIFIED80Bernardo Dominic
1043Faith W IturbideFrance2024-04-13Morlong Associates PROPOSAL70Stephen Shaw
1044Chavez U PerinSpain2024-04-10Rousseaux, Michael Esq UNQUALIFIED81Ivan Magalhaes
1045Ivar H InouyeGermany2024-04-08Rousseaux, Michael Esq RENEWAL38Onyama Limba
1046Stacey R PoquetteGermany2024-04-13Chanay, Jeffrey A Esq RENEWAL83Ivan Magalhaes
1047Aditya N NestleAustralia2024-04-01Commercial Press RENEWAL28Amy Elsner
1048Octavia V CaldareraSpain2024-04-01Chapman, Ross E Esq RENEWAL4Amy Elsner
1049Leja T VocelkaGermany2024-04-25King, Christopher A Esq QUALIFIED13Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kadeem A InouyeCanadaAmy Elsner PROPOSAL
Clifford P AmigonFranceBernardo Dominic UNQUALIFIED
Ashley E GlickFranceBernardo Dominic RENEWAL
Arvin P FollerItalyXuxue Feng QUALIFIED
Silvio Y OstroskyBrazilStephen Shaw NEGOTIATION
Salvatore R StockhamBrazilOnyama Limba NEGOTIATION
Claire F SlusarskiAustraliaIoni Bowcher QUALIFIED
Ashley Y FerenczRussiaElwin Sharvill QUALIFIED
Jennifer Q BowleyAustraliaBernardo Dominic PROPOSAL
Deepesh E StensethIndiaAmy Elsner NEW
Deepesh H RoysterRussiaBernardo Dominic NEGOTIATION
Murillo P AlbaresIndiaIvan Magalhaes QUALIFIED
Murillo G SchemmerArgentinaAsiya Javayant UNQUALIFIED
Jefferson E ShinkoGermanyElwin Sharvill UNQUALIFIED
Aika P FerenczRussiaAnna Fali NEW
Kadeem V StensethCanadaIvan Magalhaes NEW
Deepesh K SchemmerArgentinaElwin Sharvill PROPOSAL
Cody E AmigonJapanElwin Sharvill NEGOTIATION
Adams N BriddickSpainIoni Bowcher PROPOSAL
Aruna K PerinBrazilIoni Bowcher NEW
Leja X DoeJapanAnna Fali UNQUALIFIED
Clifford Q VocelkaCanadaElwin Sharvill PROPOSAL
Rodrigues C ChuiJapanAnna Fali PROPOSAL
Julie S TollnerSpainAsiya Javayant UNQUALIFIED
Isabel B DoeIndiaOnyama Limba QUALIFIED
Aditya D AlbaresBrazilOnyama Limba UNQUALIFIED
Munro Q KuskoGermanyIoni Bowcher QUALIFIED
Jefferson K StensethItalyIoni Bowcher UNQUALIFIED
Octavia X GarufiRussiaAmy Elsner RENEWAL
Leja T FollerGermanyOnyama Limba RENEWAL
Cody V CaudyAustraliaIvan Magalhaes UNQUALIFIED
Sinclair G InouyeUnited KingdomOnyama Limba RENEWAL
Kadeem C BriddickSpainXuxue Feng QUALIFIED
Isabel Y SlusarskiAustraliaOnyama Limba UNQUALIFIED
Jennifer N AmigonJapanIoni Bowcher NEGOTIATION
Izzy O WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Maria N BologniaFranceAsiya Javayant NEGOTIATION
Leon I DilliardGermanyXuxue Feng RENEWAL
Emily S GillianUnited KingdomXuxue Feng PROPOSAL
Arvin O SaylorsJapanAmy Elsner RENEWAL
Nicolas N SergiFranceAmy Elsner UNQUALIFIED
David C CampainItalyAmy Elsner PROPOSAL
Sinclair U MorascaFranceAnna Fali QUALIFIED
Leja R NickaCanadaAmy Elsner QUALIFIED
Claire K InouyeSpainOnyama Limba NEW
Misaki D ButtSpainXuxue Feng UNQUALIFIED
Kaitlin R OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Tony W MarrierSpainStephen Shaw NEGOTIATION
David W SergiAustraliaAsiya Javayant RENEWAL
Wickens Y VenereSpainXuxue Feng NEGOTIATION
Frozen Columns
Name
Mayumi B Shinko
Julie Z Ferencz
Nicolas I Gillian
Smith F Briddick
Aruna F Rim
Murillo W Flosi
Leja Q Perin
Aika E Schemmer
Chavez Z Malet
Francesco S Inouye
Mujtaba S Kolmetz
Stacey V Garufi
Leon C Stockham
Misaki K Figeroa
Johnson X Campain
Cody X Vocelka
Antonio L Marrier
Juan L Briddick
Tony Q Rim
Faith M Figeroa
Sinclair Q Campain
Arvin F Chui
Munro Y Nestle
Mujtaba I Morasca
Sinclair T Rulapaugh
James V Tollner
Juan W Bolognia
Tony S Sergi
Julie X Darakjy
Claire C Darakjy
Claire G Stockham
Emily L Darakjy
Isabel T Ruta
Sinclair E Iturbide
Deepesh H Shinko
James V Iturbide
Alejandro P Glick
Aruna A Kolmetz
Alejandro B Gaucho
Ashley S Figeroa
Faith O Doe
Costa O Dilliard
Antonio F Nestle
Rodrigues L Dilliard
Aruna Q Albares
Aruna T Waycott
Isabel N Gillian
Leon M Waycott
James X Flosi
Salvatore A Morasca
IdCountryDate
1000Russia2024-04-09
1001Australia2024-04-04
1002Italy2024-04-14
1003Argentina2024-04-28
1004Australia2024-04-27
1005India2024-04-05
1006Italy2024-04-24
1007Australia2024-03-31
1008Argentina2024-03-30
1009United Kingdom2024-04-12
1010Japan2024-04-01
1011United Kingdom2024-04-24
1012Argentina2024-04-09
1013Australia2024-03-30
1014Spain2024-04-26
1015Germany2024-04-11
1016Australia2024-04-03
1017Brazil2024-04-15
1018Spain2024-04-14
1019Spain2024-04-06
1020Brazil2024-04-25
1021Brazil2024-04-08
1022United Kingdom2024-03-30
1023United Kingdom2024-04-02
1024Argentina2024-04-02
1025Canada2024-04-02
1026Germany2024-04-21
1027Australia2024-03-31
1028Japan2024-04-14
1029Germany2024-04-06
1030Brazil2024-04-24
1031India2024-04-19
1032Canada2024-04-28
1033Spain2024-04-14
1034India2024-04-23
1035Italy2024-04-12
1036Russia2024-04-08
1037Argentina2024-04-27
1038France2024-04-05
1039Canada2024-04-05
1040Germany2024-04-11
1041Germany2024-04-11
1042Japan2024-04-13
1043Japan2024-04-05
1044Canada2024-04-07
1045France2024-04-26
1046Italy2024-04-17
1047Italy2024-04-26
1048Spain2024-04-20
1049Japan2024-04-18

On-Demand Data

NameIdCountryDate
Jefferson U Waycott1000Russia2024-04-22
Rodrigues E Malet1001United Kingdom2024-04-26
Munro Z Stenseth1002Brazil2024-04-08
Emily G Sergi1003Japan2024-04-11
Morrow L Ferencz1004Canada2024-04-26
Mayumi K Rim1005United Kingdom2024-04-16
Stacey H Oldroyd1006Brazil2024-04-07
Alejandro E Perin1007France2024-04-24
Nicolas K Oldroyd1008Germany2024-04-12
Izzy D Royster1009Brazil2024-04-02
Misaki L Briddick1010Argentina2024-04-17
Leja J Sergi1011Japan2024-04-10
Kadeem K Marrier1012Australia2024-04-16
Chavez W Marrier1013Argentina2024-04-16
Ricardo B Venere1014Russia2024-04-17
Kadeem H Paprocki1015Brazil2024-04-26
Kaitlin Y Kolmetz1016Russia2024-04-24
Octavia B Marrier1017Russia2024-04-07
Alejandro R Figeroa1018Spain2024-04-01
Arvin H Paprocki1019India2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi Q StensethFranceIoni Bowcher UNQUALIFIED
Isabel U PerinIndiaStephen Shaw QUALIFIED
Ashley U VocelkaJapanXuxue Feng NEW
Arvin X ShinkoBrazilStephen Shaw RENEWAL
Ashley F InouyeRussiaAmy Elsner PROPOSAL
Cody M NestleItalyOnyama Limba NEGOTIATION
Costa A CaldareraArgentinaElwin Sharvill QUALIFIED
Maria W MacleadArgentinaXuxue Feng NEGOTIATION
Izzy X IturbideCanadaIvan Magalhaes NEW
Antonio G ChuiBrazilBernardo Dominic NEW
Ivar A PerinArgentinaAnna Fali UNQUALIFIED
Murillo J GauchoArgentinaBernardo Dominic NEGOTIATION
Chavez C FollerIndiaStephen Shaw UNQUALIFIED
Antonio K TollnerArgentinaAnna Fali NEGOTIATION
Leja M RimGermanyAsiya Javayant NEW
Faith E MacleadFranceBernardo Dominic NEGOTIATION
Kaitlin R GarufiArgentinaAnna Fali UNQUALIFIED
Munro P RutaSpainAsiya Javayant NEGOTIATION
Misaki O VocelkaFranceBernardo Dominic NEGOTIATION
Julie H VocelkaFranceAmy Elsner NEGOTIATION
Stacey J ShinkoAustraliaIoni Bowcher PROPOSAL
Maisha B BologniaSpainOnyama Limba NEGOTIATION
Munro E GlickUnited KingdomAmy Elsner PROPOSAL
Nicolas M MacleadArgentinaAsiya Javayant UNQUALIFIED
Darci T FollerBrazilBernardo Dominic RENEWAL
Wickens U FollerItalyAsiya Javayant UNQUALIFIED
Chavez S VocelkaRussiaElwin Sharvill UNQUALIFIED
Arvin S IturbideUnited KingdomBernardo Dominic RENEWAL
Emily X DoeRussiaAmy Elsner NEGOTIATION
Sinclair A ChuiFranceIvan Magalhaes PROPOSAL
Antonio Y MaletSpainStephen Shaw RENEWAL
Jennifer W GillianGermanyOnyama Limba PROPOSAL
Maria H PaprockiSpainBernardo Dominic UNQUALIFIED
Jeanfrancois I OldroydCanadaElwin Sharvill UNQUALIFIED
Octavia H OldroydFranceXuxue Feng NEGOTIATION
Emily D RulapaughArgentinaOnyama Limba PROPOSAL
Alejandro U VocelkaBrazilIvan Magalhaes NEGOTIATION
Misaki T SlusarskiRussiaAnna Fali NEGOTIATION
Jennifer L PaprockiFranceIvan Magalhaes NEGOTIATION
Salvatore N OstroskyRussiaXuxue Feng 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>