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
Mayumi P NestleUnited KingdomElwin Sharvill QUALIFIED
Aruna C GarufiJapanAsiya Javayant UNQUALIFIED
Jeanfrancois M SlusarskiIndiaElwin Sharvill PROPOSAL
Emily K SergiJapanAsiya Javayant QUALIFIED
Ashley M VocelkaArgentinaAsiya Javayant QUALIFIED
Aika K ButtAustraliaAsiya Javayant PROPOSAL
Maisha W NestleItalyAmy Elsner NEGOTIATION
Maisha G ShinkoUnited KingdomAnna Fali NEGOTIATION
Leja C SchemmerJapanElwin Sharvill RENEWAL
Clifford I GlickIndiaAsiya Javayant UNQUALIFIED
Jefferson R KuskoJapanIoni Bowcher UNQUALIFIED
Julie O TollnerJapanAsiya Javayant NEGOTIATION
Aika S SergiUnited KingdomAnna Fali QUALIFIED
Maria E VenereArgentinaAmy Elsner NEGOTIATION
James K PerinGermanyIoni Bowcher UNQUALIFIED
James V FerenczAustraliaXuxue Feng QUALIFIED
Chavez A BologniaCanadaAsiya Javayant NEGOTIATION
Maisha C AmigonGermanyAnna Fali RENEWAL
Ivar U WaycottSpainOnyama Limba NEW
Isabel A NickaArgentinaAnna Fali PROPOSAL
Kaitlin P BowleyAustraliaStephen Shaw NEGOTIATION
Aika D RoysterCanadaAmy Elsner QUALIFIED
Jones P SergiJapanAnna Fali UNQUALIFIED
Emily Z StockhamAustraliaXuxue Feng RENEWAL
Kaitlin K PoquetteBrazilOnyama Limba NEGOTIATION
Ricardo T CampainFranceStephen Shaw NEGOTIATION
Greenwood U TollnerAustraliaAsiya Javayant PROPOSAL
Silvio O RulapaughRussiaBernardo Dominic QUALIFIED
Silvio N IturbideFranceXuxue Feng NEW
Greenwood T FollerUnited KingdomBernardo Dominic NEGOTIATION
Faith K NickaJapanXuxue Feng RENEWAL
Silvio B IturbideJapanAmy Elsner QUALIFIED
Francesco M SchemmerCanadaXuxue Feng QUALIFIED
Jefferson Z ShinkoCanadaElwin Sharvill PROPOSAL
Stacey U GillianUnited KingdomStephen Shaw UNQUALIFIED
Chavez Z NickaIndiaAnna Fali QUALIFIED
Costa B IturbideItalyIoni Bowcher RENEWAL
Nicolas N MaletBrazilAmy Elsner NEGOTIATION
Aditya E GarufiSpainAsiya Javayant RENEWAL
Emily V TollnerCanadaAnna Fali PROPOSAL
Mujtaba L ButtUnited KingdomElwin Sharvill RENEWAL
David Z CampainUnited KingdomXuxue Feng PROPOSAL
Jones H SergiIndiaXuxue Feng RENEWAL
Ashley E KolmetzGermanyOnyama Limba PROPOSAL
Nicolas R SaylorsArgentinaBernardo Dominic PROPOSAL
Tony S AmigonSpainElwin Sharvill NEGOTIATION
Faith Z WhobreyJapanXuxue Feng NEGOTIATION
Ricardo D ShinkoBrazilIoni Bowcher NEGOTIATION
Morrow R RimIndiaAsiya Javayant NEW
Nicolas C OstroskyIndiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki K RimIndiaBernardo Dominic QUALIFIED
Nicolas M MorascaIndiaElwin Sharvill QUALIFIED
Izzy X TollnerCanadaIoni Bowcher QUALIFIED
Maisha G OstroskyIndiaIvan Magalhaes NEGOTIATION
Salvatore X MorascaAustraliaXuxue Feng PROPOSAL
Munro Z GlickRussiaBernardo Dominic UNQUALIFIED
Stacey X CampainArgentinaXuxue Feng QUALIFIED
Adams H FlosiCanadaBernardo Dominic UNQUALIFIED
Smith D OldroydUnited KingdomOnyama Limba NEGOTIATION
Juan I FigeroaItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony D GarufiJapan2024-03-04Printing Dimensions NEGOTIATION85Bernardo Dominic
1001Kaitlin N StensethJapan2024-03-10Rousseaux, Michael Esq QUALIFIED73Ivan Magalhaes
1002Morrow H RulapaughJapan2024-03-26Chanay, Jeffrey A Esq NEW57Ivan Magalhaes
1003Juan L BriddickIndia2024-03-17Chapman, Ross E Esq QUALIFIED34Elwin Sharvill
1004Ricardo O CaldareraRussia2024-03-02Rangoni Of Florence NEW40Ioni Bowcher
1005Jones R SergiCanada2024-02-28Rousseaux, Michael Esq UNQUALIFIED83Bernardo Dominic
1006Leon U FlosiFrance2024-03-25Truhlar And Truhlar Attys QUALIFIED95Bernardo Dominic
1007Jefferson E PoquetteJapan2024-02-28Rousseaux, Michael Esq NEW71Ioni Bowcher
1008Leon N ButtSpain2024-03-12Chemel, James L Cpa UNQUALIFIED14Stephen Shaw
1009Leja J GillianArgentina2024-03-24Chapman, Ross E Esq QUALIFIED85Ioni Bowcher
1010Jennifer F TollnerBrazil2024-03-26Benton, John B Jr NEW88Elwin Sharvill
1011Mayumi G CaldareraRussia2024-03-11Rousseaux, Michael Esq PROPOSAL26Elwin Sharvill
1012Murillo X KolmetzCanada2024-02-28Dorl, James J Esq RENEWAL70Onyama Limba
1013Stacey W RoysterItaly2024-03-18Chapman, Ross E Esq NEGOTIATION6Ioni Bowcher
1014Murillo Y FlosiFrance2024-03-25Feiner Bros RENEWAL58Onyama Limba
1015Stacey S MacleadItaly2024-02-29Morlong Associates NEGOTIATION33Ioni Bowcher
1016Johnson O FollerAustralia2024-03-15Chemel, James L Cpa NEGOTIATION84Asiya Javayant
1017Darci V MorascaSpain2024-03-15Buckley Miller Wright NEW6Onyama Limba
1018Mujtaba N WieserIndia2024-03-12Feltz Printing Service RENEWAL2Elwin Sharvill
1019Jennifer U BriddickSpain2024-03-09Chanay, Jeffrey A Esq RENEWAL97Asiya Javayant
1020Jefferson M RoysterFrance2024-03-20Morlong Associates NEW40Anna Fali
1021Cody E PoquetteCanada2024-03-15Feltz Printing Service NEW15Bernardo Dominic
1022Sinclair Q KolmetzItaly2024-03-16Commercial Press NEGOTIATION36Onyama Limba
1023Julie B InouyeAustralia2024-03-07King, Christopher A Esq RENEWAL55Ivan Magalhaes
1024Munro B MaletItaly2024-03-04Rousseaux, Michael Esq UNQUALIFIED86Bernardo Dominic
1025Cody C InouyeAustralia2024-03-04Rousseaux, Michael Esq UNQUALIFIED32Onyama Limba
1026Emily Z IturbideBrazil2024-03-19Chemel, James L Cpa QUALIFIED62Ivan Magalhaes
1027Faith T BowleySpain2024-03-19Chanay, Jeffrey A Esq RENEWAL39Ivan Magalhaes
1028Arvin Z PaprockiSpain2024-03-24Feiner Bros UNQUALIFIED76Elwin Sharvill
1029Ashley M WhobreyIndia2024-03-28Dorl, James J Esq NEGOTIATION48Amy Elsner
1030Nicolas T RimGermany2024-03-17Feiner Bros QUALIFIED62Asiya Javayant
1031Munro L BologniaRussia2024-02-29Feiner Bros NEGOTIATION82Xuxue Feng
1032Ivar Z MacleadJapan2024-02-28Commercial Press NEGOTIATION38Onyama Limba
1033Aika Z MacleadFrance2024-03-15Rangoni Of Florence NEW88Ivan Magalhaes
1034Kadeem Z BriddickAustralia2024-03-21Feltz Printing Service QUALIFIED54Xuxue Feng
1035Deepesh Q WaycottItaly2024-03-16Buckley Miller Wright NEGOTIATION59Ioni Bowcher
1036Clifford X OldroydItaly2024-03-18Morlong Associates RENEWAL82Amy Elsner
1037Maisha Z CaudyIndia2024-03-07Morlong Associates PROPOSAL58Amy Elsner
1038Nicolas N PerinJapan2024-03-12Buckley Miller Wright NEW8Ioni Bowcher
1039Sinclair M PaprockiBrazil2024-03-08Truhlar And Truhlar Attys NEGOTIATION36Bernardo Dominic
1040Silvio C DilliardIndia2024-03-20Feiner Bros NEW2Ivan Magalhaes
1041Ashley I StensethFrance2024-03-11Buckley Miller Wright UNQUALIFIED2Xuxue Feng
1042Deepesh W ShinkoUnited Kingdom2024-03-12Rangoni Of Florence NEW32Amy Elsner
1043Julie R RutaIndia2024-03-27Rangoni Of Florence NEGOTIATION77Ivan Magalhaes
1044Aditya B MarrierCanada2024-03-09King, Christopher A Esq QUALIFIED29Onyama Limba
1045Adams H MacleadAustralia2024-03-27Rousseaux, Michael Esq RENEWAL64Amy Elsner
1046Deepesh H WhobreyRussia2024-03-17Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1047Isabel C WieserUnited Kingdom2024-03-21Rousseaux, Michael Esq UNQUALIFIED56Bernardo Dominic
1048Morrow L FerenczSpain2024-03-04Rangoni Of Florence RENEWAL9Xuxue Feng
1049Leon H SlusarskiUnited Kingdom2024-03-13King, Christopher A Esq NEGOTIATION86Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leon J MaletJapanAmy Elsner NEGOTIATION
Jones C CaldareraArgentinaAsiya Javayant NEW
Munro D InouyeCanadaAnna Fali NEW
Mujtaba F PaprockiCanadaBernardo Dominic PROPOSAL
Stacey H PoquetteCanadaAsiya Javayant UNQUALIFIED
Misaki C GauchoArgentinaOnyama Limba UNQUALIFIED
Deepesh X DilliardItalyAnna Fali PROPOSAL
Stacey B DoeFranceIvan Magalhaes QUALIFIED
Silvio I FlosiRussiaStephen Shaw PROPOSAL
Darci P RimSpainIvan Magalhaes UNQUALIFIED
Faith B MacleadFranceAmy Elsner PROPOSAL
Leja Q RimFranceIvan Magalhaes PROPOSAL
Rodrigues C BriddickSpainStephen Shaw QUALIFIED
Arvin F MaletItalyStephen Shaw NEW
Murillo W InouyeUnited KingdomStephen Shaw UNQUALIFIED
Emily F SchemmerJapanAnna Fali PROPOSAL
Stacey D StockhamItalyStephen Shaw UNQUALIFIED
James T PaprockiFranceAsiya Javayant RENEWAL
Leon J OldroydSpainBernardo Dominic PROPOSAL
Tony T IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Munro X ButtFranceIvan Magalhaes UNQUALIFIED
Antonio G ChuiIndiaStephen Shaw NEW
Ricardo B MaletArgentinaAsiya Javayant PROPOSAL
Smith T TollnerAustraliaElwin Sharvill NEW
Costa R RimGermanyBernardo Dominic RENEWAL
Mujtaba L AlbaresIndiaAmy Elsner PROPOSAL
Darci Q KolmetzItalyXuxue Feng NEGOTIATION
Deepesh T InouyeBrazilElwin Sharvill NEW
Kaitlin J BowleySpainAmy Elsner NEGOTIATION
Kaitlin X GauchoIndiaAmy Elsner NEGOTIATION
David T WhobreyArgentinaBernardo Dominic RENEWAL
Aditya X RimCanadaAsiya Javayant PROPOSAL
Jeanfrancois E ButtUnited KingdomIoni Bowcher RENEWAL
Johnson Z TollnerCanadaIoni Bowcher NEGOTIATION
Darci L CaudyGermanyBernardo Dominic QUALIFIED
David B RoysterItalyXuxue Feng QUALIFIED
Greenwood G MaletArgentinaAnna Fali QUALIFIED
Maisha X CaudyUnited KingdomIvan Magalhaes RENEWAL
Costa I FlosiItalyAnna Fali UNQUALIFIED
Kaitlin Q FigeroaArgentinaIoni Bowcher NEW
Jeanfrancois R MaletCanadaStephen Shaw PROPOSAL
Ivar H MaletJapanIoni Bowcher NEW
Francesco R NickaCanadaBernardo Dominic UNQUALIFIED
Kaitlin J OstroskySpainIoni Bowcher NEW
Faith F IturbideFranceXuxue Feng PROPOSAL
Julie O DoeIndiaStephen Shaw NEGOTIATION
Faith T GlickIndiaAnna Fali NEW
Jefferson S DoeRussiaAmy Elsner RENEWAL
Munro M IturbideArgentinaAnna Fali RENEWAL
Mayumi W FigeroaGermanyAnna Fali PROPOSAL
Frozen Columns
Name
Munro G Perin
Leon X Nestle
Rodrigues V Figeroa
Morrow L Campain
Kadeem I Venere
Leon T Flosi
Deepesh S Poquette
Adams D Ruta
Jennifer K Albares
Mayumi M Ostrosky
Kadeem Q Campain
Wickens K Marrier
Ashley D Poquette
Francesco D Doe
Emily Q Kusko
Chavez J Stockham
Aditya O Albares
Ivar F Malet
Emily L Nestle
Faith L Paprocki
Octavia J Perin
Deepesh P Wieser
Murillo H Campain
David S Bolognia
Murillo Y Waycott
Maisha B Poquette
Leon M Vocelka
Wickens Y Caudy
Isabel I Dilliard
Aditya F Vocelka
Sinclair H Paprocki
Ricardo D Ostrosky
Izzy Y Bowley
Darci R Saylors
Kaitlin T Glick
Antonio O Morasca
Aika I Gaucho
Murillo H Whobrey
Emily V Schemmer
Nicolas T Kusko
Cody S Campain
Rodrigues P Waycott
Alejandro P Bowley
Ashley F Albares
Ivar Y Kolmetz
Misaki W Paprocki
Murillo A Butt
Sinclair G Chui
Faith S Chui
Maisha N Ostrosky
IdCountryDate
1000Japan2024-03-07
1001Argentina2024-03-01
1002Canada2024-02-28
1003France2024-03-26
1004Germany2024-03-04
1005Australia2024-03-07
1006Spain2024-03-27
1007Australia2024-03-08
1008Germany2024-03-04
1009France2024-03-03
1010Italy2024-03-26
1011Brazil2024-03-15
1012Germany2024-03-23
1013Canada2024-03-02
1014Argentina2024-03-18
1015United Kingdom2024-03-12
1016United Kingdom2024-03-06
1017Russia2024-03-06
1018Germany2024-03-10
1019Argentina2024-03-10
1020United Kingdom2024-03-21
1021Australia2024-03-13
1022Argentina2024-03-15
1023Argentina2024-02-29
1024Argentina2024-03-06
1025Russia2024-03-27
1026Australia2024-03-11
1027Russia2024-03-26
1028Argentina2024-03-19
1029Italy2024-03-14
1030France2024-03-03
1031Italy2024-03-23
1032Spain2024-03-15
1033Italy2024-03-25
1034Argentina2024-03-23
1035Brazil2024-03-08
1036United Kingdom2024-03-08
1037Australia2024-03-01
1038Italy2024-03-25
1039India2024-03-13
1040Russia2024-03-16
1041Brazil2024-03-08
1042India2024-03-15
1043India2024-03-17
1044Germany2024-03-19
1045Brazil2024-03-26
1046Spain2024-03-22
1047Australia2024-03-20
1048Japan2024-03-06
1049France2024-03-08

On-Demand Data

NameIdCountryDate
Ashley X Morasca1000Canada2024-03-21
Alejandro Q Vocelka1001Italy2024-03-05
Chavez J Wieser1002India2024-03-26
Tony W Foller1003Canada2024-03-19
Kadeem E Paprocki1004India2024-02-29
Jennifer M Gaucho1005India2024-03-11
Jennifer H Tollner1006Brazil2024-03-15
Juan E Shinko1007Argentina2024-03-18
Juan P Albares1008Australia2024-03-17
Adams L Tollner1009India2024-02-29
Juan J Paprocki1010United Kingdom2024-03-16
Claire C Ostrosky1011Argentina2024-03-21
Octavia V Shinko1012Spain2024-03-21
Mayumi B Glick1013Italy2024-03-25
Smith H Stockham1014India2024-03-22
Ricardo L Bowley1015Germany2024-03-02
Johnson K Dilliard1016Spain2024-03-19
Chavez Z Shinko1017Italy2024-03-13
Greenwood P Campain1018Brazil2024-03-03
Jeanfrancois K Ruta1019India2024-02-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer D OldroydBrazilIvan Magalhaes UNQUALIFIED
Isabel V ChuiFranceOnyama Limba NEW
Aruna Y VocelkaSpainAnna Fali UNQUALIFIED
David T DilliardUnited KingdomAsiya Javayant PROPOSAL
James B SchemmerArgentinaElwin Sharvill PROPOSAL
Sinclair E ChuiRussiaOnyama Limba NEGOTIATION
Misaki C IturbideRussiaOnyama Limba RENEWAL
Emily Y StockhamCanadaIoni Bowcher PROPOSAL
Rodrigues L InouyeRussiaElwin Sharvill QUALIFIED
Darci I FollerUnited KingdomAnna Fali PROPOSAL
James D CaudyGermanyAnna Fali RENEWAL
Faith U PoquetteAustraliaIoni Bowcher PROPOSAL
Aruna E CaldareraGermanyIvan Magalhaes PROPOSAL
Jeanfrancois C MaletArgentinaXuxue Feng UNQUALIFIED
James L RoysterJapanAnna Fali QUALIFIED
Ivar X OstroskyGermanyIoni Bowcher UNQUALIFIED
Tony Q ShinkoCanadaIvan Magalhaes QUALIFIED
James E AlbaresArgentinaXuxue Feng RENEWAL
Ashley U RimIndiaBernardo Dominic PROPOSAL
Stacey P SlusarskiJapanOnyama Limba NEGOTIATION
Ivar G VenereJapanAsiya Javayant NEGOTIATION
Kadeem G IturbideRussiaAmy Elsner NEW
Faith C PaprockiJapanXuxue Feng NEW
Clifford F OstroskyJapanAnna Fali QUALIFIED
Antonio R IturbideItalyElwin Sharvill UNQUALIFIED
Munro J WaycottIndiaStephen Shaw QUALIFIED
David L InouyeSpainAnna Fali PROPOSAL
Ivar D VenereAustraliaElwin Sharvill NEGOTIATION
Murillo V FollerSpainElwin Sharvill RENEWAL
Silvio G MacleadIndiaAsiya Javayant NEGOTIATION
Tony N AlbaresAustraliaAnna Fali QUALIFIED
Faith X KolmetzCanadaBernardo Dominic NEW
Misaki V CaldareraFranceIoni Bowcher NEGOTIATION
Nicolas Z ButtBrazilStephen Shaw QUALIFIED
Francesco S CaudyGermanyAsiya Javayant PROPOSAL
Greenwood Z FerenczGermanyOnyama Limba NEGOTIATION
Jones V SergiItalyElwin Sharvill RENEWAL
Maisha B GillianBrazilAnna Fali NEGOTIATION
Silvio C StockhamGermanyIvan Magalhaes RENEWAL
Ricardo F GauchoItalyIoni Bowcher 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>