Locale

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Bangla
Bosnian
Czech
Greek
Estonian
Persian
Finnish
Danish
Hindi
Indonesian
Icelandic
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

Saga Saga
Vela Vela
Arya Arya

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

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Kaitlin OstroskyRussiaStephen Shaw NEW
Jefferson SchemmerRussiaXuxue Feng PROPOSAL
Johnson SergiUnited KingdomAmy Elsner UNQUALIFIED
Tony FollerUnited KingdomXuxue Feng RENEWAL
Ricardo GauchoIndiaOnyama Limba UNQUALIFIED
Costa DilliardRussiaStephen Shaw NEW
Aika InouyeCanadaAsiya Javayant NEGOTIATION
Stacey MacleadArgentinaBernardo Dominic NEGOTIATION
Leon OldroydAustraliaOnyama Limba QUALIFIED
Isabel BowleyAustraliaXuxue Feng UNQUALIFIED
Aika InouyeUnited KingdomBernardo Dominic RENEWAL
Munro FerenczAustraliaAsiya Javayant RENEWAL
Chavez BriddickIndiaAsiya Javayant UNQUALIFIED
Stacey MacleadAustraliaAnna Fali QUALIFIED
Arvin AlbaresJapanElwin Sharvill NEW
Cody SaylorsAustraliaBernardo Dominic UNQUALIFIED
Jennifer AmigonSpainOnyama Limba RENEWAL
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Ricardo GauchoRussiaOnyama Limba NEW
Johnson SergiGermanyAnna Fali NEW
Murillo MaletCanadaAmy Elsner QUALIFIED
Costa DilliardBrazilIoni Bowcher PROPOSAL
James ButtAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoCanadaBernardo Dominic NEW
Smith GlickIndiaStephen Shaw QUALIFIED
Morrow RutaRussiaStephen Shaw PROPOSAL
Jeanfrancois VenereJapanBernardo Dominic NEW
Mujtaba NickaItalyXuxue Feng UNQUALIFIED
Isabel BowleyRussiaStephen Shaw QUALIFIED
Jones VocelkaFranceBernardo Dominic QUALIFIED
Chavez BriddickFranceBernardo Dominic PROPOSAL
Maisha RulapaughItalyBernardo Dominic PROPOSAL
Faith GillianAustraliaAsiya Javayant UNQUALIFIED
Octavia MaletItalyStephen Shaw RENEWAL
Arvin AlbaresGermanyOnyama Limba PROPOSAL
Greenwood BologniaFranceOnyama Limba RENEWAL
Isabel BowleyJapanXuxue Feng UNQUALIFIED
Alejandro PerinGermanyStephen Shaw PROPOSAL
Morrow RutaItalyElwin Sharvill QUALIFIED
Faith GillianFranceBernardo Dominic NEW
Ivar PaprockiIndiaAnna Fali QUALIFIED
James ButtUnited KingdomStephen Shaw NEGOTIATION
Stacey MacleadRussiaAmy Elsner NEW
Misaki RoysterGermanyElwin Sharvill UNQUALIFIED
Greenwood BologniaArgentinaAsiya Javayant RENEWAL
Aditya KuskoFranceOnyama Limba PROPOSAL
Tony FollerJapanElwin Sharvill QUALIFIED
Stacey MacleadFranceElwin Sharvill RENEWAL
Maria MarrierArgentinaAnna Fali RENEWAL
Maisha RulapaughSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Juan WieserIndiaIoni Bowcher PROPOSAL
Ashley DoeCanadaAnna Fali QUALIFIED
Sinclair WaycottUnited KingdomAsiya Javayant NEW
Ricardo GauchoGermanyAnna Fali RENEWAL
Jennifer AmigonBrazilAsiya Javayant RENEWAL
Maria MarrierArgentinaXuxue Feng UNQUALIFIED
Mujtaba NickaUnited KingdomAmy Elsner QUALIFIED
Rodrigues CampainFranceIvan Magalhaes NEW
Nicolas IturbideItalyXuxue Feng UNQUALIFIED
Mayumi KolmetzItalyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyCanada2026-04-11Commercial Press PROPOSAL34Bernardo Dominic
1001Ashley DoeIndia2026-03-29Chapman, Ross E Esq RENEWAL60Amy Elsner
1002Jennifer AmigonUnited Kingdom2026-04-07King, Christopher A Esq QUALIFIED17Anna Fali
1003Francesco ShinkoRussia2026-03-30Commercial Press RENEWAL88Ioni Bowcher
1004Smith GlickUnited Kingdom2026-03-28Chapman, Ross E Esq QUALIFIED72Stephen Shaw
1005Greenwood BologniaJapan2026-04-23Chapman, Ross E Esq UNQUALIFIED36Ioni Bowcher
1006Alejandro PerinGermany2026-04-23Dorl, James J Esq QUALIFIED44Elwin Sharvill
1007Ricardo GauchoUnited Kingdom2026-04-06Commercial Press NEW51Anna Fali
1008Johnson SergiGermany2026-04-14Commercial Press PROPOSAL43Bernardo Dominic
1009Aruna FigeroaRussia2026-04-08Feiner Bros PROPOSAL87Elwin Sharvill
1010Aika InouyeUnited Kingdom2026-04-18Chanay, Jeffrey A Esq QUALIFIED82Onyama Limba
1011Nicolas IturbideRussia2026-04-20Feltz Printing Service NEGOTIATION62Onyama Limba
1012Nicolas IturbideArgentina2026-03-26Feltz Printing Service UNQUALIFIED80Stephen Shaw
1013Stacey MacleadSpain2026-04-02Dorl, James J Esq NEGOTIATION61Stephen Shaw
1014Murillo MaletItaly2026-04-20Printing Dimensions NEGOTIATION81Ioni Bowcher
1015Emily WhobreyCanada2026-04-21Printing Dimensions NEW45Ioni Bowcher
1016Arvin AlbaresSpain2026-04-11Rousseaux, Michael Esq PROPOSAL95Xuxue Feng
1017Rodrigues CampainGermany2026-04-11King, Christopher A Esq UNQUALIFIED80Amy Elsner
1018Clifford RimUnited Kingdom2026-04-16Buckley Miller Wright QUALIFIED86Asiya Javayant
1019Ivar PaprockiArgentina2026-04-08Chemel, James L Cpa PROPOSAL54Elwin Sharvill
1020Stacey MacleadArgentina2026-04-23Printing Dimensions NEW20Ioni Bowcher
1021Morrow RutaItaly2026-04-23Feiner Bros RENEWAL67Amy Elsner
1022Wickens NestleItaly2026-04-04Feltz Printing Service NEGOTIATION59Onyama Limba
1023Johnson SergiUnited Kingdom2026-04-16Commercial Press NEW38Asiya Javayant
1024Mayumi KolmetzGermany2026-04-16Buckley Miller Wright PROPOSAL84Bernardo Dominic
1025Sinclair WaycottGermany2026-04-08Benton, John B Jr PROPOSAL9Amy Elsner
1026Adams MorascaUnited Kingdom2026-04-19Commercial Press UNQUALIFIED52Amy Elsner
1027Chavez BriddickRussia2026-04-19King, Christopher A Esq NEW33Asiya Javayant
1028James ButtSpain2026-04-17Benton, John B Jr PROPOSAL66Ivan Magalhaes
1029Nicolas IturbideArgentina2026-04-22Rangoni Of Florence NEGOTIATION3Onyama Limba
1030Leon OldroydAustralia2026-04-14Printing Dimensions PROPOSAL28Elwin Sharvill
1031Jefferson SchemmerJapan2026-03-25Feiner Bros UNQUALIFIED2Amy Elsner
1032Murillo MaletUnited Kingdom2026-03-27King, Christopher A Esq QUALIFIED44Amy Elsner
1033Aika InouyeUnited Kingdom2026-03-30Dorl, James J Esq NEW93Elwin Sharvill
1034Izzy GarufiRussia2026-04-02Rousseaux, Michael Esq RENEWAL5Ioni Bowcher
1035Munro FerenczGermany2026-04-14Feiner Bros NEGOTIATION92Elwin Sharvill
1036Darci PoquetteFrance2026-04-06Rangoni Of Florence NEGOTIATION71Onyama Limba
1037Aika InouyeJapan2026-04-05Dorl, James J Esq UNQUALIFIED89Xuxue Feng
1038Emily WhobreyRussia2026-04-17Dorl, James J Esq PROPOSAL94Ioni Bowcher
1039Aditya KuskoCanada2026-04-20Benton, John B Jr NEW65Xuxue Feng
1040Greenwood BologniaCanada2026-04-14Feiner Bros UNQUALIFIED52Stephen Shaw
1041Jennifer AmigonCanada2026-04-03Benton, John B Jr QUALIFIED99Stephen Shaw
1042Claire TollnerIndia2026-04-21Buckley Miller Wright NEW68Anna Fali
1043Izzy GarufiIndia2026-04-14Benton, John B Jr QUALIFIED90Stephen Shaw
1044Francesco ShinkoCanada2026-04-22Chanay, Jeffrey A Esq PROPOSAL66Anna Fali
1045Mayumi KolmetzIndia2026-03-28Truhlar And Truhlar Attys NEW8Asiya Javayant
1046Izzy GarufiSpain2026-03-31King, Christopher A Esq NEW7Asiya Javayant
1047Murillo MaletSpain2026-04-03Commercial Press PROPOSAL54Ioni Bowcher
1048Sinclair WaycottItaly2026-04-16Truhlar And Truhlar Attys PROPOSAL44Xuxue Feng
1049Cody SaylorsSpain2026-03-27Rousseaux, Michael Esq NEGOTIATION81Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kadeem FlosiGermanyBernardo Dominic NEGOTIATION
Aruna FigeroaAustraliaAnna Fali NEW
Aruna FigeroaJapanXuxue Feng RENEWAL
Kaitlin OstroskyFranceIoni Bowcher UNQUALIFIED
Adams MorascaUnited KingdomAmy Elsner UNQUALIFIED
Juan WieserFranceAmy Elsner PROPOSAL
Arvin AlbaresJapanAsiya Javayant UNQUALIFIED
Izzy GarufiCanadaIvan Magalhaes QUALIFIED
Izzy GarufiArgentinaBernardo Dominic QUALIFIED
Isabel BowleyArgentinaAnna Fali RENEWAL
Maria MarrierIndiaIvan Magalhaes UNQUALIFIED
Faith GillianArgentinaAsiya Javayant PROPOSAL
Munro FerenczSpainBernardo Dominic NEW
Aika InouyeAustraliaXuxue Feng QUALIFIED
Arvin AlbaresFranceXuxue Feng NEW
Morrow RutaGermanyIvan Magalhaes NEGOTIATION
Rodrigues CampainJapanAnna Fali PROPOSAL
Johnson SergiBrazilAsiya Javayant UNQUALIFIED
Silvio SlusarskiArgentinaAsiya Javayant QUALIFIED
Antonio CaudyGermanyStephen Shaw NEGOTIATION
Leon OldroydIndiaIoni Bowcher UNQUALIFIED
Maisha RulapaughSpainIoni Bowcher UNQUALIFIED
Izzy GarufiItalyBernardo Dominic UNQUALIFIED
Antonio CaudyCanadaIoni Bowcher PROPOSAL
Francesco ShinkoGermanyIvan Magalhaes RENEWAL
Ivar PaprockiSpainElwin Sharvill NEW
Mujtaba NickaArgentinaElwin Sharvill NEW
Jefferson SchemmerJapanIoni Bowcher NEW
James ButtSpainAnna Fali NEGOTIATION
Aditya KuskoCanadaIvan Magalhaes RENEWAL
Wickens NestleSpainBernardo Dominic RENEWAL
Isabel BowleySpainXuxue Feng RENEWAL
Maria MarrierAustraliaElwin Sharvill NEGOTIATION
Smith GlickArgentinaStephen Shaw NEW
Smith GlickGermanyAsiya Javayant QUALIFIED
Adams MorascaCanadaBernardo Dominic NEGOTIATION
Leon OldroydBrazilIvan Magalhaes UNQUALIFIED
Jennifer AmigonAustraliaOnyama Limba UNQUALIFIED
Juan WieserItalyStephen Shaw NEW
Johnson SergiRussiaIvan Magalhaes RENEWAL
Leon OldroydItalyElwin Sharvill QUALIFIED
Jeanfrancois VenereUnited KingdomIoni Bowcher PROPOSAL
Ashley DoeAustraliaIvan Magalhaes NEW
Leon OldroydItalyXuxue Feng NEW
Leja CaldareraUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzArgentinaAmy Elsner NEW
James ButtAustraliaXuxue Feng NEW
Greenwood BologniaCanadaBernardo Dominic NEGOTIATION
Salvatore StockhamRussiaAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomOnyama Limba NEW
Frozen Columns
Name
Ricardo Gaucho
Jefferson Schemmer
Costa Dilliard
Alejandro Perin
Stacey Maclead
Jeanfrancois Venere
Claire Tollner
Arvin Albares
Arvin Albares
Julie Stenseth
Darci Poquette
Adams Morasca
Faith Gillian
Antonio Caudy
David Darakjy
Kaitlin Ostrosky
Mujtaba Nicka
Julie Stenseth
Chavez Briddick
Jones Vocelka
Murillo Malet
Izzy Garufi
Smith Glick
Claire Tollner
Johnson Sergi
Silvio Slusarski
Ivar Paprocki
Francesco Shinko
Ashley Doe
Emily Whobrey
Leja Caldarera
Mayumi Kolmetz
Murillo Malet
Jennifer Amigon
Jones Vocelka
Octavia Malet
Aika Inouye
Rodrigues Campain
Costa Dilliard
Antonio Caudy
Darci Poquette
Julie Stenseth
Leon Oldroyd
Jeanfrancois Venere
Julie Stenseth
Claire Tollner
Mujtaba Nicka
Adams Morasca
Ricardo Gaucho
Kaitlin Ostrosky
IdCountryDate
1000Russia2026-04-21
1001Spain2026-04-07
1002Italy2026-03-26
1003United Kingdom2026-03-29
1004Australia2026-04-23
1005Australia2026-04-11
1006India2026-04-17
1007United Kingdom2026-04-08
1008Canada2026-04-23
1009Australia2026-04-08
1010Japan2026-03-29
1011Brazil2026-04-08
1012Germany2026-04-21
1013Russia2026-04-10
1014India2026-03-31
1015United Kingdom2026-04-14
1016Canada2026-04-04
1017Italy2026-03-30
1018Italy2026-04-12
1019Australia2026-04-04
1020Germany2026-04-23
1021Italy2026-04-19
1022Australia2026-03-28
1023Canada2026-04-05
1024Argentina2026-04-06
1025Argentina2026-04-06
1026Argentina2026-04-23
1027France2026-04-13
1028Japan2026-03-30
1029Brazil2026-04-21
1030Spain2026-04-22
1031Italy2026-03-27
1032India2026-03-26
1033Brazil2026-04-19
1034Japan2026-04-03
1035Brazil2026-04-13
1036Italy2026-04-02
1037Russia2026-04-07
1038Spain2026-04-02
1039Russia2026-04-02
1040Australia2026-04-22
1041Germany2026-03-29
1042Argentina2026-04-12
1043Germany2026-04-07
1044Russia2026-04-07
1045Japan2026-04-18
1046Russia2026-04-10
1047Brazil2026-04-01
1048France2026-04-04
1049Brazil2026-04-03

On-Demand Data

NameIdCountryDate
Rodrigues Campain1000United Kingdom2026-04-23
Isabel Bowley1001Brazil2026-04-08
Munro Ferencz1002Germany2026-04-17
Murillo Malet1003United Kingdom2026-03-27
Ivar Paprocki1004Canada2026-03-30
Rodrigues Campain1005Argentina2026-03-28
Morrow Ruta1006Argentina2026-03-25
Sinclair Waycott1007Spain2026-03-28
Chavez Briddick1008Australia2026-04-14
Francesco Shinko1009Spain2026-03-25
Nicolas Iturbide1010Spain2026-03-31
Claire Tollner1011United Kingdom2026-04-06
Greenwood Bolognia1012Germany2026-04-08
Ivar Paprocki1013Canada2026-04-07
Darci Poquette1014Argentina2026-04-20
Francesco Shinko1015Italy2026-04-07
Emily Whobrey1016Canada2026-03-25
Greenwood Bolognia1017Australia2026-04-16
Izzy Garufi1018Brazil2026-04-19
Emily Whobrey1019Spain2026-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiGermanyElwin Sharvill NEW
Salvatore StockhamIndiaAsiya Javayant RENEWAL
Darci PoquetteUnited KingdomElwin Sharvill NEW
Octavia MaletAustraliaAmy Elsner PROPOSAL
Cody SaylorsSpainAsiya Javayant UNQUALIFIED
Mujtaba NickaJapanXuxue Feng NEGOTIATION
Emily WhobreyArgentinaStephen Shaw PROPOSAL
Ricardo GauchoFranceAsiya Javayant RENEWAL
Ashley DoeItalyIvan Magalhaes NEGOTIATION
Aruna FigeroaItalyStephen Shaw RENEWAL
Antonio CaudyIndiaStephen Shaw PROPOSAL
Antonio CaudyUnited KingdomBernardo Dominic PROPOSAL
Leon OldroydFranceOnyama Limba NEW
Julie StensethIndiaBernardo Dominic NEGOTIATION
Murillo MaletGermanyElwin Sharvill RENEWAL
Darci PoquetteItalyIvan Magalhaes NEW
Nicolas IturbideIndiaAmy Elsner RENEWAL
Claire TollnerIndiaXuxue Feng UNQUALIFIED
Francesco ShinkoFranceBernardo Dominic RENEWAL
Emily WhobreyGermanyAsiya Javayant NEGOTIATION
Maria MarrierFranceElwin Sharvill NEGOTIATION
Sinclair WaycottFranceXuxue Feng UNQUALIFIED
Alejandro PerinJapanAnna Fali PROPOSAL
Silvio SlusarskiAustraliaElwin Sharvill NEW
Salvatore StockhamJapanStephen Shaw NEW
Adams MorascaGermanyElwin Sharvill NEGOTIATION
Ricardo GauchoItalyElwin Sharvill RENEWAL
Silvio SlusarskiGermanyXuxue Feng UNQUALIFIED
Francesco ShinkoJapanAsiya Javayant NEW
Johnson SergiIndiaAnna Fali QUALIFIED
Deepesh ChuiBrazilAnna Fali PROPOSAL
Smith GlickCanadaStephen Shaw RENEWAL
Mujtaba NickaRussiaAsiya Javayant QUALIFIED
Jefferson SchemmerItalyElwin Sharvill QUALIFIED
Silvio SlusarskiCanadaAsiya Javayant PROPOSAL
Antonio CaudyRussiaXuxue Feng QUALIFIED
Clifford RimCanadaIoni Bowcher QUALIFIED
Faith GillianGermanyStephen Shaw RENEWAL
Arvin AlbaresCanadaXuxue Feng QUALIFIED
Wickens NestleBrazilIvan Magalhaes RENEWAL

<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.statusName}">#{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.statusName}">#{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.statusName}">#{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.statusName}">#{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.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>