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
Aika Y GlickFranceStephen Shaw PROPOSAL
Octavia J StockhamAustraliaOnyama Limba RENEWAL
Arvin M ChuiSpainOnyama Limba QUALIFIED
Leon T SaylorsBrazilAmy Elsner NEGOTIATION
Morrow L AlbaresItalyAsiya Javayant NEW
Claire R NickaArgentinaStephen Shaw NEW
Izzy J AmigonGermanyElwin Sharvill RENEWAL
Kadeem Y VocelkaGermanyOnyama Limba NEW
Alejandro V TollnerRussiaXuxue Feng UNQUALIFIED
Rodrigues N NickaRussiaOnyama Limba NEGOTIATION
Salvatore A GarufiIndiaIvan Magalhaes NEW
Stacey K ShinkoIndiaOnyama Limba NEGOTIATION
Chavez I TollnerCanadaAnna Fali QUALIFIED
Ivar T RimBrazilXuxue Feng UNQUALIFIED
Cody Z DoeCanadaAnna Fali PROPOSAL
Ivar X SlusarskiUnited KingdomAmy Elsner QUALIFIED
Misaki Q RoysterGermanyAnna Fali PROPOSAL
Clifford H RulapaughBrazilElwin Sharvill QUALIFIED
Maisha O StockhamCanadaXuxue Feng NEGOTIATION
Munro L DilliardJapanIoni Bowcher NEW
Costa Q OldroydGermanyOnyama Limba QUALIFIED
Maria K CampainItalyXuxue Feng PROPOSAL
Smith G OstroskyAustraliaStephen Shaw PROPOSAL
Arvin X DoeSpainElwin Sharvill RENEWAL
Aditya U SergiFranceAmy Elsner PROPOSAL
Aditya V FollerRussiaAnna Fali UNQUALIFIED
Ricardo W GauchoIndiaIoni Bowcher QUALIFIED
Nicolas O NestleGermanyIvan Magalhaes NEGOTIATION
Jennifer R FollerGermanyAnna Fali UNQUALIFIED
Jones F PerinGermanyElwin Sharvill QUALIFIED
Faith D OstroskyItalyOnyama Limba RENEWAL
Claire G GauchoFranceAsiya Javayant NEGOTIATION
Morrow A StockhamBrazilStephen Shaw RENEWAL
Darci H InouyeJapanAmy Elsner UNQUALIFIED
David I PaprockiRussiaAsiya Javayant NEW
Kaitlin W DarakjyRussiaElwin Sharvill PROPOSAL
Claire Y GillianJapanAmy Elsner PROPOSAL
Kadeem A CaudyIndiaAmy Elsner NEGOTIATION
Leja D DoeCanadaIoni Bowcher PROPOSAL
Kadeem L GarufiJapanIoni Bowcher PROPOSAL
Costa X FigeroaItalyAmy Elsner NEW
Aditya I KolmetzBrazilXuxue Feng QUALIFIED
Octavia P PoquetteIndiaAnna Fali UNQUALIFIED
Salvatore H InouyeBrazilAnna Fali NEW
Kaitlin G StensethJapanStephen Shaw UNQUALIFIED
Emily D DoeUnited KingdomStephen Shaw UNQUALIFIED
Juan T SchemmerItalyIvan Magalhaes NEW
Julie W SaylorsJapanBernardo Dominic NEGOTIATION
Darci X MarrierAustraliaXuxue Feng PROPOSAL
Nicolas H VenereAustraliaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Maria H RulapaughFranceXuxue Feng PROPOSAL
Maisha L FollerUnited KingdomBernardo Dominic RENEWAL
Jennifer N GlickCanadaAnna Fali NEGOTIATION
Faith F ButtAustraliaXuxue Feng PROPOSAL
Arvin R RutaCanadaOnyama Limba PROPOSAL
Cody E NestleUnited KingdomXuxue Feng PROPOSAL
Isabel Q GarufiGermanyIvan Magalhaes NEW
Ashley W ChuiGermanyOnyama Limba NEGOTIATION
Kaitlin G NestleSpainIoni Bowcher QUALIFIED
Darci E GarufiArgentinaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony T SlusarskiIndia2024-04-25Truhlar And Truhlar Attys NEGOTIATION84Ivan Magalhaes
1001Emily T GauchoItaly2024-04-05Truhlar And Truhlar Attys UNQUALIFIED99Ivan Magalhaes
1002Morrow W VocelkaGermany2024-04-29Rousseaux, Michael Esq NEGOTIATION70Onyama Limba
1003Tony T PoquetteFrance2024-04-01Printing Dimensions NEGOTIATION28Xuxue Feng
1004Aruna P DarakjyArgentina2024-04-23Commercial Press NEW86Amy Elsner
1005Maisha Q GlickCanada2024-04-12Rangoni Of Florence NEW89Onyama Limba
1006Johnson C OstroskyCanada2024-04-29Rousseaux, Michael Esq NEGOTIATION28Asiya Javayant
1007Deepesh D StensethBrazil2024-04-03Rangoni Of Florence NEGOTIATION74Bernardo Dominic
1008Sinclair J WieserRussia2024-04-30Rousseaux, Michael Esq PROPOSAL86Elwin Sharvill
1009Clifford O PaprockiRussia2024-04-23Chemel, James L Cpa NEW82Stephen Shaw
1010Francesco L PoquetteCanada2024-04-14Commercial Press NEW11Xuxue Feng
1011Rodrigues S GillianFrance2024-04-18Rousseaux, Michael Esq PROPOSAL93Ivan Magalhaes
1012Aruna W MarrierCanada2024-04-19Truhlar And Truhlar Attys RENEWAL91Amy Elsner
1013Maria Y BowleyBrazil2024-04-06Buckley Miller Wright RENEWAL89Ioni Bowcher
1014Greenwood P SlusarskiItaly2024-04-30Chanay, Jeffrey A Esq PROPOSAL22Asiya Javayant
1015Mayumi E IturbideCanada2024-04-17Buckley Miller Wright PROPOSAL1Anna Fali
1016Johnson X FerenczSpain2024-04-08Chemel, James L Cpa PROPOSAL23Bernardo Dominic
1017Tony O AmigonIndia2024-04-06Morlong Associates UNQUALIFIED35Stephen Shaw
1018Ivar T CaldareraGermany2024-04-26Rangoni Of Florence NEGOTIATION51Asiya Javayant
1019Faith L SlusarskiCanada2024-04-14Truhlar And Truhlar Attys RENEWAL79Bernardo Dominic
1020Claire E GauchoArgentina2024-04-04Buckley Miller Wright UNQUALIFIED88Ivan Magalhaes
1021Aditya H GillianBrazil2024-04-27Dorl, James J Esq RENEWAL30Anna Fali
1022Julie J FlosiRussia2024-04-05Morlong Associates PROPOSAL75Anna Fali
1023Aruna P FerenczUnited Kingdom2024-04-03Rousseaux, Michael Esq NEGOTIATION82Asiya Javayant
1024Leja K DoeIndia2024-04-13Morlong Associates NEGOTIATION37Amy Elsner
1025Francesco U PoquetteJapan2024-04-14Benton, John B Jr QUALIFIED94Asiya Javayant
1026Mujtaba K WieserGermany2024-04-04Benton, John B Jr UNQUALIFIED5Bernardo Dominic
1027David B VenereUnited Kingdom2024-04-25Feiner Bros PROPOSAL31Ivan Magalhaes
1028Aika M SchemmerCanada2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED22Asiya Javayant
1029Leja B AlbaresJapan2024-04-20Printing Dimensions UNQUALIFIED45Asiya Javayant
1030Jennifer C NestleJapan2024-04-13Chapman, Ross E Esq UNQUALIFIED95Xuxue Feng
1031Claire K CaldareraSpain2024-04-09King, Christopher A Esq RENEWAL67Stephen Shaw
1032Jones D KolmetzItaly2024-04-15King, Christopher A Esq PROPOSAL4Stephen Shaw
1033Claire E FollerRussia2024-04-12Benton, John B Jr RENEWAL42Xuxue Feng
1034Mayumi M NickaSpain2024-04-09Chanay, Jeffrey A Esq PROPOSAL62Xuxue Feng
1035Munro Q PoquetteRussia2024-04-24Rousseaux, Michael Esq PROPOSAL81Anna Fali
1036Isabel L VenereJapan2024-04-10Feiner Bros QUALIFIED2Asiya Javayant
1037Deepesh I RoysterItaly2024-04-15Benton, John B Jr RENEWAL90Ioni Bowcher
1038Isabel H RutaUnited Kingdom2024-04-29Rousseaux, Michael Esq QUALIFIED89Ioni Bowcher
1039Faith M TollnerSpain2024-04-21Chapman, Ross E Esq UNQUALIFIED41Elwin Sharvill
1040Greenwood Q WieserUnited Kingdom2024-04-03Commercial Press NEGOTIATION41Elwin Sharvill
1041Adams A RutaFrance2024-04-21Printing Dimensions NEGOTIATION82Onyama Limba
1042Isabel D GauchoRussia2024-04-01Rangoni Of Florence NEGOTIATION74Onyama Limba
1043Juan N FlosiIndia2024-04-26Commercial Press RENEWAL80Ioni Bowcher
1044Tony D MaletCanada2024-04-06Benton, John B Jr UNQUALIFIED0Ivan Magalhaes
1045Darci M TollnerAustralia2024-04-24Dorl, James J Esq UNQUALIFIED28Bernardo Dominic
1046Darci S ChuiIndia2024-04-07Chapman, Ross E Esq NEW99Elwin Sharvill
1047Maria D DoeSpain2024-04-17Truhlar And Truhlar Attys NEW73Stephen Shaw
1048Kadeem I OstroskyGermany2024-04-10King, Christopher A Esq NEW43Anna Fali
1049Antonio W IturbideSpain2024-04-02Printing Dimensions NEW37Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jefferson H IturbideBrazilStephen Shaw UNQUALIFIED
Jones D MaletSpainAsiya Javayant UNQUALIFIED
Chavez Y BologniaAustraliaAmy Elsner QUALIFIED
Rodrigues T OstroskyCanadaOnyama Limba RENEWAL
Aditya G MorascaSpainAsiya Javayant QUALIFIED
Ashley B StensethGermanyBernardo Dominic RENEWAL
Deepesh H KolmetzRussiaIoni Bowcher UNQUALIFIED
Mujtaba I RimBrazilElwin Sharvill NEW
Jefferson B GarufiArgentinaAsiya Javayant NEGOTIATION
Ivar U CaldareraBrazilOnyama Limba PROPOSAL
Sinclair H NestleSpainAsiya Javayant PROPOSAL
Stacey P ButtCanadaBernardo Dominic NEGOTIATION
Stacey Z OstroskyArgentinaStephen Shaw NEW
Leon L OstroskyBrazilStephen Shaw RENEWAL
Misaki D AmigonCanadaAmy Elsner NEW
Sinclair J CampainFranceStephen Shaw UNQUALIFIED
James X AmigonCanadaIoni Bowcher NEGOTIATION
Rodrigues Y SlusarskiBrazilStephen Shaw NEW
Aruna M PerinFranceBernardo Dominic UNQUALIFIED
Sinclair Z WieserGermanyBernardo Dominic UNQUALIFIED
Chavez A ButtSpainStephen Shaw QUALIFIED
Juan D RimBrazilElwin Sharvill QUALIFIED
Juan P RimJapanBernardo Dominic QUALIFIED
David W ChuiGermanyElwin Sharvill NEGOTIATION
Munro Z RimArgentinaIvan Magalhaes RENEWAL
Cody P WhobreyUnited KingdomStephen Shaw NEGOTIATION
Cody R CaudySpainIvan Magalhaes PROPOSAL
Arvin D GlickCanadaElwin Sharvill PROPOSAL
Ashley E WaycottBrazilAsiya Javayant NEW
Faith V RimBrazilStephen Shaw PROPOSAL
Nicolas H SlusarskiGermanyBernardo Dominic PROPOSAL
Tony W GauchoItalyAnna Fali NEGOTIATION
Mayumi B AmigonRussiaAmy Elsner RENEWAL
Murillo G MarrierAustraliaIvan Magalhaes NEGOTIATION
Antonio C AmigonAustraliaAnna Fali UNQUALIFIED
Juan J FlosiAustraliaBernardo Dominic NEW
Munro Q AlbaresItalyElwin Sharvill RENEWAL
Chavez R BowleySpainElwin Sharvill RENEWAL
Julie U PoquetteGermanyElwin Sharvill UNQUALIFIED
Jefferson Z AmigonUnited KingdomBernardo Dominic PROPOSAL
Silvio S StockhamIndiaAmy Elsner NEW
Wickens N RutaItalyBernardo Dominic RENEWAL
Deepesh H BriddickAustraliaStephen Shaw NEGOTIATION
Smith V MacleadFranceElwin Sharvill PROPOSAL
Johnson V BriddickAustraliaOnyama Limba NEGOTIATION
Leja N FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Sinclair K BologniaSpainAmy Elsner PROPOSAL
Jennifer X GauchoBrazilIoni Bowcher UNQUALIFIED
Jefferson G SchemmerItalyIvan Magalhaes UNQUALIFIED
Morrow O ButtSpainElwin Sharvill NEGOTIATION
Frozen Columns
Name
Jones K Albares
Maria H Kolmetz
Costa U Rim
Greenwood T Morasca
Stacey E Maclead
Salvatore H Briddick
Adams N Waycott
Sinclair X Chui
Rodrigues T Glick
Maisha R Saylors
Ashley V Malet
Jennifer C Amigon
Clifford C Stenseth
Sinclair V Butt
Chavez D Dilliard
Adams P Briddick
Morrow A Sergi
Adams J Saylors
Misaki X Gillian
Rodrigues Z Sergi
Aika N Garufi
Darci I Gillian
Maria N Marrier
Francesco H Amigon
Octavia B Morasca
Juan S Gillian
Ivar K Paprocki
Izzy P Kolmetz
Johnson A Albares
Jeanfrancois M Campain
Aika D Chui
Claire Y Rim
Ashley Y Garufi
Aika V Briddick
Mujtaba T Glick
Greenwood N Saylors
Mujtaba X Poquette
Maria E Malet
Aika J Bolognia
Mujtaba Y Dilliard
Wickens I Kolmetz
Deepesh F Chui
Mujtaba M Rulapaugh
Morrow F Flosi
Silvio B Wieser
Jennifer B Albares
Cody A Schemmer
Leon N Rim
Darci H Shinko
Sinclair K Stenseth
IdCountryDate
1000Canada2024-04-16
1001Canada2024-04-01
1002India2024-04-29
1003Spain2024-04-03
1004Brazil2024-04-27
1005Germany2024-04-10
1006Argentina2024-04-27
1007Canada2024-04-02
1008Australia2024-04-08
1009Brazil2024-04-13
1010Spain2024-04-25
1011Italy2024-04-17
1012Italy2024-04-26
1013France2024-04-30
1014France2024-04-25
1015United Kingdom2024-04-21
1016Germany2024-04-14
1017France2024-04-25
1018Australia2024-04-15
1019Japan2024-04-06
1020Argentina2024-04-22
1021Canada2024-04-03
1022Germany2024-04-09
1023Italy2024-04-04
1024Russia2024-04-27
1025Australia2024-04-25
1026Argentina2024-04-23
1027Japan2024-04-14
1028Brazil2024-04-02
1029Argentina2024-04-18
1030Canada2024-04-16
1031Russia2024-04-25
1032Spain2024-04-18
1033Australia2024-04-17
1034Brazil2024-04-08
1035United Kingdom2024-04-06
1036Russia2024-04-11
1037Argentina2024-04-21
1038India2024-04-16
1039Australia2024-04-12
1040Canada2024-04-22
1041Australia2024-04-05
1042United Kingdom2024-04-14
1043France2024-04-15
1044Argentina2024-04-14
1045France2024-04-05
1046Russia2024-04-30
1047Australia2024-04-27
1048Australia2024-04-20
1049Russia2024-04-18

On-Demand Data

NameIdCountryDate
Misaki T Wieser1000Germany2024-04-07
Maria A Kusko1001Italy2024-04-15
Sinclair V Albares1002Brazil2024-04-27
Cody Y Venere1003Russia2024-04-08
Silvio A Marrier1004Germany2024-04-14
Leon E Ruta1005France2024-04-19
Clifford W Saylors1006India2024-04-27
Sinclair F Waycott1007Canada2024-04-20
Misaki T Shinko1008Italy2024-04-14
Julie O Stockham1009Australia2024-04-16
Emily O Morasca1010Australia2024-04-03
Arvin A Nicka1011Japan2024-04-26
Ricardo M Glick1012Spain2024-04-17
Leja J Bolognia1013Brazil2024-04-13
Smith G Figeroa1014Australia2024-04-18
Maisha G Campain1015Germany2024-04-29
Ashley E Stockham1016Australia2024-04-20
Sinclair X Ostrosky1017Spain2024-04-29
Claire V Glick1018Spain2024-04-15
Ivar D Inouye1019United Kingdom2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro X TollnerAustraliaElwin Sharvill RENEWAL
Munro W OldroydItalyAmy Elsner QUALIFIED
Aditya M DarakjyCanadaAnna Fali NEGOTIATION
Deepesh O OstroskyUnited KingdomOnyama Limba NEGOTIATION
Aika C RoysterItalyXuxue Feng NEGOTIATION
Octavia U PerinFranceBernardo Dominic NEW
Antonio X RulapaughBrazilStephen Shaw NEGOTIATION
Aruna R CaldareraRussiaIoni Bowcher PROPOSAL
Leon L BowleyIndiaAnna Fali PROPOSAL
Jones D RimItalyElwin Sharvill PROPOSAL
Sinclair M InouyeCanadaAsiya Javayant PROPOSAL
Jefferson Z GarufiUnited KingdomOnyama Limba UNQUALIFIED
Silvio P StensethBrazilAmy Elsner QUALIFIED
Kaitlin L DilliardUnited KingdomAmy Elsner NEGOTIATION
Jennifer L RimBrazilIvan Magalhaes UNQUALIFIED
Leon Q BowleyGermanyAmy Elsner NEGOTIATION
Faith K WhobreyUnited KingdomAmy Elsner NEGOTIATION
Stacey I RulapaughAustraliaElwin Sharvill PROPOSAL
Costa W AlbaresIndiaIvan Magalhaes RENEWAL
Ashley V SaylorsIndiaAnna Fali NEGOTIATION
Leon D IturbideAustraliaAmy Elsner QUALIFIED
Claire E StensethRussiaBernardo Dominic NEGOTIATION
Octavia W CaudyGermanyXuxue Feng PROPOSAL
Kaitlin B SchemmerJapanAmy Elsner RENEWAL
Kadeem F WhobreyJapanBernardo Dominic UNQUALIFIED
Rodrigues V SergiItalyAsiya Javayant UNQUALIFIED
Wickens V StensethJapanStephen Shaw UNQUALIFIED
Leja K NestleItalyAmy Elsner UNQUALIFIED
Costa F OstroskyJapanIvan Magalhaes NEW
Juan Z AlbaresIndiaOnyama Limba PROPOSAL
Jennifer J AlbaresCanadaIoni Bowcher PROPOSAL
Octavia I DilliardRussiaAnna Fali NEGOTIATION
Aditya C RoysterSpainAsiya Javayant NEW
Ashley Q ChuiArgentinaIvan Magalhaes NEW
Leon Y KuskoArgentinaBernardo Dominic RENEWAL
Mayumi R CaldareraSpainStephen Shaw NEGOTIATION
Ricardo I MaletGermanyXuxue Feng QUALIFIED
Morrow X MarrierRussiaAnna Fali NEW
Jefferson W RimUnited KingdomIoni Bowcher UNQUALIFIED
Darci J WaycottAustraliaAnna 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>