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
Misaki RoysterRussiaXuxue Feng RENEWAL
Rodrigues CampainIndiaAsiya Javayant UNQUALIFIED
Munro FerenczIndiaOnyama Limba RENEWAL
Nicolas IturbideIndiaAsiya Javayant NEGOTIATION
Nicolas IturbideCanadaAsiya Javayant RENEWAL
Tony FollerIndiaXuxue Feng QUALIFIED
Murillo MaletJapanBernardo Dominic PROPOSAL
Sinclair WaycottAustraliaIoni Bowcher NEGOTIATION
Claire TollnerArgentinaOnyama Limba PROPOSAL
Francesco ShinkoAustraliaIvan Magalhaes NEW
Salvatore StockhamGermanyAnna Fali PROPOSAL
Juan WieserBrazilBernardo Dominic PROPOSAL
Jennifer AmigonGermanyIoni Bowcher PROPOSAL
Wickens NestleCanadaIvan Magalhaes RENEWAL
Jones VocelkaUnited KingdomAmy Elsner PROPOSAL
Misaki RoysterUnited KingdomBernardo Dominic NEGOTIATION
James ButtCanadaAsiya Javayant NEW
Ashley DoeFranceIvan Magalhaes NEW
Cody SaylorsGermanyStephen Shaw RENEWAL
Aika InouyeJapanStephen Shaw NEGOTIATION
Aditya KuskoUnited KingdomBernardo Dominic NEGOTIATION
Ricardo GauchoSpainStephen Shaw QUALIFIED
Nicolas IturbideUnited KingdomOnyama Limba NEW
Octavia MaletItalyOnyama Limba NEGOTIATION
Octavia MaletRussiaXuxue Feng RENEWAL
Jefferson SchemmerSpainElwin Sharvill NEW
Tony FollerSpainElwin Sharvill QUALIFIED
Aika InouyeAustraliaStephen Shaw QUALIFIED
Julie StensethFranceIvan Magalhaes QUALIFIED
Tony FollerCanadaXuxue Feng NEGOTIATION
Izzy GarufiBrazilIoni Bowcher UNQUALIFIED
Sinclair WaycottRussiaXuxue Feng NEGOTIATION
Leon OldroydArgentinaIoni Bowcher RENEWAL
Jeanfrancois VenereAustraliaBernardo Dominic PROPOSAL
Murillo MaletArgentinaAsiya Javayant UNQUALIFIED
Ricardo GauchoBrazilIoni Bowcher QUALIFIED
Ivar PaprockiArgentinaOnyama Limba PROPOSAL
Johnson SergiJapanOnyama Limba QUALIFIED
Nicolas IturbideBrazilElwin Sharvill NEGOTIATION
Julie StensethGermanyStephen Shaw PROPOSAL
Ivar PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Morrow RutaArgentinaStephen Shaw UNQUALIFIED
Francesco ShinkoBrazilElwin Sharvill NEW
Aditya KuskoFranceAnna Fali NEGOTIATION
Wickens NestleCanadaAmy Elsner RENEWAL
Aika InouyeRussiaXuxue Feng PROPOSAL
Mayumi KolmetzFranceBernardo Dominic NEW
Darci PoquetteFranceIoni Bowcher PROPOSAL
Deepesh ChuiRussiaXuxue Feng NEGOTIATION
Silvio SlusarskiSpainStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterBrazilOnyama Limba PROPOSAL
Wickens NestleIndiaXuxue Feng QUALIFIED
Adams MorascaItalyAsiya Javayant NEW
Maria MarrierUnited KingdomOnyama Limba PROPOSAL
Clifford RimCanadaIvan Magalhaes NEW
David DarakjyAustraliaAsiya Javayant QUALIFIED
Arvin AlbaresSpainElwin Sharvill UNQUALIFIED
Ashley DoeCanadaOnyama Limba NEGOTIATION
Alejandro PerinItalyXuxue Feng NEGOTIATION
Deepesh ChuiCanadaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeFrance2026-04-25Rousseaux, Michael Esq PROPOSAL36Ioni Bowcher
1001Leja CaldareraArgentina2026-04-29Commercial Press QUALIFIED83Ivan Magalhaes
1002Kadeem FlosiItaly2026-04-21Commercial Press QUALIFIED87Anna Fali
1003Sinclair WaycottRussia2026-04-22Benton, John B Jr RENEWAL45Anna Fali
1004Chavez BriddickBrazil2026-05-02Morlong Associates QUALIFIED65Stephen Shaw
1005Arvin AlbaresSpain2026-05-03Buckley Miller Wright RENEWAL17Onyama Limba
1006Tony FollerArgentina2026-05-06Commercial Press PROPOSAL71Elwin Sharvill
1007Mujtaba NickaCanada2026-04-16Feltz Printing Service NEGOTIATION17Anna Fali
1008Wickens NestleArgentina2026-04-17King, Christopher A Esq PROPOSAL91Anna Fali
1009Kaitlin OstroskyCanada2026-04-27Feltz Printing Service NEW94Amy Elsner
1010Octavia MaletAustralia2026-05-10Rangoni Of Florence NEW2Bernardo Dominic
1011Faith GillianUnited Kingdom2026-05-06Chanay, Jeffrey A Esq QUALIFIED15Elwin Sharvill
1012Ivar PaprockiSpain2026-04-12Rousseaux, Michael Esq UNQUALIFIED34Stephen Shaw
1013Antonio CaudyItaly2026-05-07Feltz Printing Service PROPOSAL80Anna Fali
1014Sinclair WaycottRussia2026-04-17Buckley Miller Wright NEGOTIATION67Xuxue Feng
1015Murillo MaletFrance2026-04-23Buckley Miller Wright QUALIFIED59Ioni Bowcher
1016Silvio SlusarskiItaly2026-04-26Chapman, Ross E Esq NEW28Ivan Magalhaes
1017Julie StensethJapan2026-04-13Chapman, Ross E Esq PROPOSAL26Xuxue Feng
1018Darci PoquetteIndia2026-04-25Chemel, James L Cpa NEGOTIATION41Onyama Limba
1019Aruna FigeroaGermany2026-04-14Rangoni Of Florence PROPOSAL70Bernardo Dominic
1020Cody SaylorsGermany2026-04-14Chemel, James L Cpa PROPOSAL32Bernardo Dominic
1021Munro FerenczJapan2026-05-06Benton, John B Jr PROPOSAL53Anna Fali
1022Adams MorascaRussia2026-04-27Rangoni Of Florence UNQUALIFIED23Xuxue Feng
1023Murillo MaletCanada2026-05-01Truhlar And Truhlar Attys QUALIFIED90Bernardo Dominic
1024Isabel BowleyCanada2026-04-29Commercial Press QUALIFIED87Onyama Limba
1025Antonio CaudyIndia2026-04-13Printing Dimensions UNQUALIFIED70Onyama Limba
1026Jefferson SchemmerAustralia2026-05-07Morlong Associates NEW4Xuxue Feng
1027Greenwood BologniaCanada2026-04-11Chanay, Jeffrey A Esq NEW39Amy Elsner
1028Jennifer AmigonUnited Kingdom2026-04-16Printing Dimensions NEW57Amy Elsner
1029Alejandro PerinFrance2026-05-10Feiner Bros UNQUALIFIED48Ioni Bowcher
1030Morrow RutaFrance2026-04-30Buckley Miller Wright NEW70Xuxue Feng
1031Munro FerenczUnited Kingdom2026-04-19King, Christopher A Esq RENEWAL80Bernardo Dominic
1032Ivar PaprockiFrance2026-05-03Dorl, James J Esq PROPOSAL28Amy Elsner
1033Jones VocelkaFrance2026-04-12Chanay, Jeffrey A Esq NEW42Asiya Javayant
1034Tony FollerGermany2026-04-15Feiner Bros NEW0Bernardo Dominic
1035Tony FollerFrance2026-04-24Buckley Miller Wright RENEWAL26Asiya Javayant
1036Octavia MaletBrazil2026-04-20Dorl, James J Esq RENEWAL31Stephen Shaw
1037Kaitlin OstroskyIndia2026-05-10Rangoni Of Florence NEGOTIATION22Xuxue Feng
1038Jefferson SchemmerIndia2026-04-19King, Christopher A Esq RENEWAL84Xuxue Feng
1039Wickens NestleBrazil2026-05-08Benton, John B Jr QUALIFIED34Onyama Limba
1040Leja CaldareraRussia2026-05-06Feltz Printing Service NEW42Stephen Shaw
1041Cody SaylorsFrance2026-04-21Morlong Associates UNQUALIFIED53Onyama Limba
1042Alejandro PerinSpain2026-04-23Dorl, James J Esq QUALIFIED98Stephen Shaw
1043David DarakjyJapan2026-04-30Truhlar And Truhlar Attys PROPOSAL3Anna Fali
1044Juan WieserCanada2026-04-15Chanay, Jeffrey A Esq NEGOTIATION54Ioni Bowcher
1045Deepesh ChuiIndia2026-05-07Chanay, Jeffrey A Esq QUALIFIED38Asiya Javayant
1046Costa DilliardSpain2026-04-12Morlong Associates PROPOSAL7Bernardo Dominic
1047Clifford RimGermany2026-05-07Truhlar And Truhlar Attys PROPOSAL90Anna Fali
1048Isabel BowleyRussia2026-04-20Rangoni Of Florence NEGOTIATION78Amy Elsner
1049Johnson SergiArgentina2026-04-22Truhlar And Truhlar Attys UNQUALIFIED52Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletGermanyIvan Magalhaes UNQUALIFIED
Clifford RimBrazilAmy Elsner NEW
Mayumi KolmetzArgentinaIvan Magalhaes QUALIFIED
Costa DilliardCanadaElwin Sharvill RENEWAL
Mayumi KolmetzIndiaElwin Sharvill QUALIFIED
Jefferson SchemmerBrazilAmy Elsner UNQUALIFIED
Kadeem FlosiCanadaAsiya Javayant NEGOTIATION
Salvatore StockhamGermanyStephen Shaw NEW
Greenwood BologniaRussiaIoni Bowcher UNQUALIFIED
Johnson SergiSpainIoni Bowcher NEGOTIATION
Jefferson SchemmerGermanyStephen Shaw PROPOSAL
Rodrigues CampainBrazilAnna Fali NEW
Leja CaldareraCanadaAnna Fali NEGOTIATION
Isabel BowleyIndiaBernardo Dominic PROPOSAL
David DarakjyItalyStephen Shaw QUALIFIED
Maria MarrierRussiaXuxue Feng NEGOTIATION
Wickens NestleGermanyAmy Elsner QUALIFIED
Costa DilliardJapanIoni Bowcher UNQUALIFIED
Aika InouyeArgentinaIvan Magalhaes UNQUALIFIED
Johnson SergiItalyOnyama Limba QUALIFIED
James ButtFranceElwin Sharvill QUALIFIED
Alejandro PerinBrazilOnyama Limba PROPOSAL
James ButtAustraliaElwin Sharvill UNQUALIFIED
Greenwood BologniaIndiaElwin Sharvill PROPOSAL
Chavez BriddickSpainStephen Shaw NEGOTIATION
Adams MorascaSpainAsiya Javayant NEW
Stacey MacleadJapanAmy Elsner UNQUALIFIED
Jones VocelkaBrazilIvan Magalhaes RENEWAL
Isabel BowleyFranceElwin Sharvill RENEWAL
Adams MorascaArgentinaAmy Elsner UNQUALIFIED
Isabel BowleyGermanyOnyama Limba NEGOTIATION
Antonio CaudyItalyOnyama Limba UNQUALIFIED
Mayumi KolmetzUnited KingdomXuxue Feng PROPOSAL
Octavia MaletFranceOnyama Limba UNQUALIFIED
Octavia MaletAustraliaAsiya Javayant RENEWAL
Tony FollerBrazilIvan Magalhaes NEGOTIATION
Greenwood BologniaCanadaAsiya Javayant UNQUALIFIED
Smith GlickSpainIvan Magalhaes RENEWAL
David DarakjyItalyAnna Fali PROPOSAL
Aika InouyeFranceIvan Magalhaes NEGOTIATION
Munro FerenczGermanyAsiya Javayant QUALIFIED
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
David DarakjyGermanyAsiya Javayant NEGOTIATION
Cody SaylorsSpainElwin Sharvill NEGOTIATION
Mujtaba NickaJapanElwin Sharvill NEGOTIATION
Adams MorascaArgentinaIoni Bowcher RENEWAL
Silvio SlusarskiUnited KingdomBernardo Dominic RENEWAL
Kaitlin OstroskyArgentinaAsiya Javayant PROPOSAL
Juan WieserItalyElwin Sharvill UNQUALIFIED
Juan WieserFranceXuxue Feng RENEWAL
Frozen Columns
Name
Smith Glick
Isabel Bowley
Maisha Rulapaugh
Isabel Bowley
James Butt
Kaitlin Ostrosky
Jefferson Schemmer
Faith Gillian
Clifford Rim
Sinclair Waycott
Nicolas Iturbide
Wickens Nestle
Sinclair Waycott
Ashley Doe
Antonio Caudy
Smith Glick
Claire Tollner
Greenwood Bolognia
Isabel Bowley
Octavia Malet
Arvin Albares
Tony Foller
Izzy Garufi
Emily Whobrey
Stacey Maclead
Francesco Shinko
Adams Morasca
Arvin Albares
Claire Tollner
Ivar Paprocki
Deepesh Chui
Morrow Ruta
Clifford Rim
Kadeem Flosi
Kadeem Flosi
Francesco Shinko
Arvin Albares
Misaki Royster
Adams Morasca
Salvatore Stockham
Kadeem Flosi
Misaki Royster
Antonio Caudy
Francesco Shinko
Mujtaba Nicka
Munro Ferencz
Aruna Figeroa
Ashley Doe
Johnson Sergi
Jeanfrancois Venere
IdCountryDate
1000Japan2026-05-06
1001Russia2026-05-07
1002Germany2026-04-24
1003Australia2026-05-05
1004Australia2026-04-16
1005Italy2026-04-30
1006Brazil2026-04-13
1007Canada2026-04-11
1008Australia2026-05-09
1009Spain2026-04-11
1010Argentina2026-05-04
1011Brazil2026-04-21
1012Italy2026-04-27
1013Russia2026-04-29
1014United Kingdom2026-04-25
1015Brazil2026-04-12
1016Brazil2026-05-09
1017Argentina2026-05-07
1018Japan2026-04-22
1019Japan2026-04-18
1020Canada2026-04-28
1021Canada2026-05-09
1022Germany2026-04-26
1023Canada2026-04-21
1024United Kingdom2026-05-09
1025India2026-04-26
1026Spain2026-04-18
1027Italy2026-05-07
1028Brazil2026-04-18
1029Spain2026-04-20
1030Australia2026-04-15
1031France2026-04-29
1032Canada2026-04-21
1033Brazil2026-05-08
1034Russia2026-04-21
1035Australia2026-05-10
1036Argentina2026-04-29
1037Argentina2026-04-14
1038France2026-04-25
1039Japan2026-04-22
1040Russia2026-04-27
1041France2026-04-16
1042Spain2026-04-23
1043Canada2026-04-16
1044Spain2026-04-28
1045Germany2026-05-08
1046India2026-05-09
1047Japan2026-04-27
1048India2026-05-03
1049Germany2026-05-04

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000Canada2026-04-11
Wickens Nestle1001Canada2026-05-04
Murillo Malet1002Spain2026-05-04
Jeanfrancois Venere1003Argentina2026-05-02
David Darakjy1004Argentina2026-04-19
Arvin Albares1005Russia2026-04-12
Alejandro Perin1006Brazil2026-04-14
Morrow Ruta1007Italy2026-05-09
Mujtaba Nicka1008France2026-04-21
Munro Ferencz1009Argentina2026-05-09
Clifford Rim1010Australia2026-04-27
Juan Wieser1011India2026-04-25
Jennifer Amigon1012Japan2026-04-24
Jennifer Amigon1013Australia2026-05-08
Ivar Paprocki1014Russia2026-05-10
Claire Tollner1015United Kingdom2026-04-26
Kaitlin Ostrosky1016India2026-04-22
Emily Whobrey1017France2026-04-16
Ivar Paprocki1018Brazil2026-04-25
Darci Poquette1019Russia2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyCanadaOnyama Limba UNQUALIFIED
Francesco ShinkoAustraliaOnyama Limba QUALIFIED
Isabel BowleyArgentinaAmy Elsner NEW
Stacey MacleadJapanOnyama Limba RENEWAL
Leja CaldareraFranceAmy Elsner NEW
Jefferson SchemmerBrazilAnna Fali NEGOTIATION
Ivar PaprockiJapanAmy Elsner QUALIFIED
David DarakjyIndiaIvan Magalhaes UNQUALIFIED
Deepesh ChuiAustraliaXuxue Feng NEGOTIATION
Octavia MaletIndiaStephen Shaw UNQUALIFIED
Alejandro PerinGermanyOnyama Limba QUALIFIED
Julie StensethJapanOnyama Limba NEW
Nicolas IturbideCanadaIvan Magalhaes NEGOTIATION
Clifford RimGermanyIoni Bowcher PROPOSAL
Ivar PaprockiGermanyElwin Sharvill UNQUALIFIED
Darci PoquetteIndiaAmy Elsner RENEWAL
Cody SaylorsRussiaOnyama Limba NEW
Izzy GarufiItalyElwin Sharvill PROPOSAL
Greenwood BologniaJapanAsiya Javayant PROPOSAL
Misaki RoysterIndiaIoni Bowcher NEGOTIATION
Claire TollnerAustraliaAmy Elsner NEGOTIATION
Mayumi KolmetzUnited KingdomAmy Elsner QUALIFIED
David DarakjyBrazilIoni Bowcher QUALIFIED
Jefferson SchemmerGermanyIoni Bowcher PROPOSAL
Clifford RimGermanyAmy Elsner QUALIFIED
Aruna FigeroaJapanStephen Shaw NEGOTIATION
Ashley DoeFranceStephen Shaw NEGOTIATION
Ivar PaprockiCanadaStephen Shaw UNQUALIFIED
Arvin AlbaresGermanyAmy Elsner NEGOTIATION
Claire TollnerBrazilElwin Sharvill RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher NEGOTIATION
Ivar PaprockiRussiaAmy Elsner RENEWAL
Salvatore StockhamIndiaElwin Sharvill QUALIFIED
Claire TollnerAustraliaIvan Magalhaes NEGOTIATION
Arvin AlbaresJapanStephen Shaw QUALIFIED
Chavez BriddickFranceOnyama Limba NEW
Ashley DoeSpainAmy Elsner QUALIFIED
Ricardo GauchoIndiaStephen Shaw PROPOSAL
Wickens NestleGermanyAnna Fali QUALIFIED
Tony FollerFranceAsiya Javayant 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.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>