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
Ricardo GauchoAustraliaOnyama Limba NEGOTIATION
Arvin AlbaresGermanyIvan Magalhaes UNQUALIFIED
Munro FerenczGermanyIvan Magalhaes QUALIFIED
Leon OldroydCanadaBernardo Dominic QUALIFIED
Claire TollnerSpainOnyama Limba PROPOSAL
Maisha RulapaughJapanOnyama Limba NEW
Jennifer AmigonItalyIvan Magalhaes PROPOSAL
Izzy GarufiCanadaElwin Sharvill RENEWAL
Jeanfrancois VenereSpainAnna Fali NEW
Leja CaldareraRussiaAsiya Javayant QUALIFIED
Johnson SergiAustraliaAmy Elsner QUALIFIED
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilBernardo Dominic QUALIFIED
Costa DilliardAustraliaIvan Magalhaes RENEWAL
Smith GlickSpainAnna Fali RENEWAL
Claire TollnerAustraliaStephen Shaw NEGOTIATION
Alejandro PerinRussiaElwin Sharvill NEGOTIATION
Cody SaylorsBrazilIvan Magalhaes NEW
Nicolas IturbideItalyXuxue Feng NEGOTIATION
Rodrigues CampainFranceIvan Magalhaes QUALIFIED
Nicolas IturbideJapanAmy Elsner UNQUALIFIED
Ashley DoeIndiaStephen Shaw QUALIFIED
Kadeem FlosiIndiaStephen Shaw QUALIFIED
Nicolas IturbideArgentinaStephen Shaw NEW
Johnson SergiSpainOnyama Limba QUALIFIED
James ButtRussiaAmy Elsner UNQUALIFIED
Ivar PaprockiIndiaOnyama Limba QUALIFIED
Francesco ShinkoGermanyStephen Shaw QUALIFIED
Arvin AlbaresSpainAnna Fali PROPOSAL
Aika InouyeItalyBernardo Dominic PROPOSAL
Wickens NestleRussiaAnna Fali NEW
Maria MarrierFranceAmy Elsner NEW
Morrow RutaItalyXuxue Feng QUALIFIED
Leja CaldareraArgentinaBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaStephen Shaw QUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher NEGOTIATION
Adams MorascaFranceAmy Elsner UNQUALIFIED
Johnson SergiCanadaStephen Shaw PROPOSAL
Johnson SergiJapanOnyama Limba NEGOTIATION
Jones VocelkaGermanyBernardo Dominic NEGOTIATION
Octavia MaletFranceAnna Fali RENEWAL
Smith GlickFranceIvan Magalhaes NEGOTIATION
Costa DilliardRussiaBernardo Dominic NEW
Misaki RoysterFranceStephen Shaw UNQUALIFIED
David DarakjyIndiaAnna Fali RENEWAL
Kadeem FlosiFranceIoni Bowcher RENEWAL
Aruna FigeroaItalyBernardo Dominic NEW
Murillo MaletAustraliaAsiya Javayant NEW
Jeanfrancois VenereIndiaOnyama Limba NEGOTIATION
Wickens NestleAustraliaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Murillo MaletCanadaElwin Sharvill NEW
Cody SaylorsRussiaXuxue Feng RENEWAL
Wickens NestleRussiaXuxue Feng PROPOSAL
Darci PoquetteFranceElwin Sharvill PROPOSAL
Johnson SergiIndiaAnna Fali RENEWAL
Jeanfrancois VenereSpainIvan Magalhaes RENEWAL
Maisha RulapaughItalyStephen Shaw RENEWAL
Jones VocelkaGermanyBernardo Dominic UNQUALIFIED
Silvio SlusarskiSpainXuxue Feng QUALIFIED
Aditya KuskoFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserUnited Kingdom2026-04-06Dorl, James J Esq RENEWAL21Anna Fali
1001James ButtRussia2026-04-12Feltz Printing Service PROPOSAL89Asiya Javayant
1002Greenwood BologniaBrazil2026-04-12Morlong Associates UNQUALIFIED0Elwin Sharvill
1003Leja CaldareraUnited Kingdom2026-03-23King, Christopher A Esq RENEWAL53Xuxue Feng
1004Isabel BowleyAustralia2026-03-24Chemel, James L Cpa NEW22Xuxue Feng
1005Wickens NestleItaly2026-03-29King, Christopher A Esq RENEWAL42Anna Fali
1006Cody SaylorsJapan2026-03-22Benton, John B Jr UNQUALIFIED19Xuxue Feng
1007Wickens NestleJapan2026-04-07Chemel, James L Cpa QUALIFIED80Asiya Javayant
1008Munro FerenczFrance2026-03-27King, Christopher A Esq PROPOSAL26Elwin Sharvill
1009Costa DilliardFrance2026-04-12Printing Dimensions NEW63Elwin Sharvill
1010Arvin AlbaresFrance2026-03-26Feiner Bros UNQUALIFIED48Stephen Shaw
1011Jeanfrancois VenereJapan2026-04-09Buckley Miller Wright UNQUALIFIED29Ivan Magalhaes
1012Leon OldroydRussia2026-04-15Benton, John B Jr NEGOTIATION79Bernardo Dominic
1013Deepesh ChuiArgentina2026-04-04Benton, John B Jr NEGOTIATION87Bernardo Dominic
1014Chavez BriddickItaly2026-04-01King, Christopher A Esq NEGOTIATION10Xuxue Feng
1015Cody SaylorsIndia2026-04-07Commercial Press NEW32Bernardo Dominic
1016Maria MarrierRussia2026-04-15Truhlar And Truhlar Attys RENEWAL37Onyama Limba
1017Smith GlickCanada2026-04-13Commercial Press PROPOSAL60Asiya Javayant
1018Maria MarrierAustralia2026-03-30Commercial Press NEW31Bernardo Dominic
1019Isabel BowleyCanada2026-04-15Chanay, Jeffrey A Esq NEW87Xuxue Feng
1020James ButtIndia2026-04-06Feiner Bros QUALIFIED9Onyama Limba
1021Rodrigues CampainBrazil2026-04-06Benton, John B Jr NEW17Stephen Shaw
1022Ashley DoeBrazil2026-04-08Morlong Associates QUALIFIED31Asiya Javayant
1023Greenwood BologniaItaly2026-03-27Benton, John B Jr NEW82Stephen Shaw
1024Maisha RulapaughJapan2026-03-29Dorl, James J Esq NEGOTIATION44Xuxue Feng
1025Isabel BowleyJapan2026-04-06Buckley Miller Wright QUALIFIED34Anna Fali
1026Kadeem FlosiIndia2026-04-04Rangoni Of Florence PROPOSAL12Anna Fali
1027Salvatore StockhamArgentina2026-04-15Chemel, James L Cpa NEW11Stephen Shaw
1028Leon OldroydCanada2026-04-17Dorl, James J Esq QUALIFIED53Asiya Javayant
1029Juan WieserIndia2026-04-18Printing Dimensions PROPOSAL42Elwin Sharvill
1030Antonio CaudyBrazil2026-04-14Dorl, James J Esq NEGOTIATION24Xuxue Feng
1031Leja CaldareraIndia2026-04-06Buckley Miller Wright QUALIFIED44Bernardo Dominic
1032Smith GlickJapan2026-04-15Rousseaux, Michael Esq NEW86Anna Fali
1033James ButtBrazil2026-04-02Commercial Press NEW39Ioni Bowcher
1034Leon OldroydCanada2026-04-02Feiner Bros NEGOTIATION55Xuxue Feng
1035Maisha RulapaughRussia2026-03-22Chemel, James L Cpa RENEWAL29Ivan Magalhaes
1036Stacey MacleadUnited Kingdom2026-04-10Printing Dimensions UNQUALIFIED6Stephen Shaw
1037Sinclair WaycottBrazil2026-04-02Truhlar And Truhlar Attys PROPOSAL49Anna Fali
1038Leja CaldareraRussia2026-04-04Morlong Associates NEW22Stephen Shaw
1039Silvio SlusarskiSpain2026-03-24Feltz Printing Service RENEWAL76Xuxue Feng
1040Salvatore StockhamSpain2026-04-10Rousseaux, Michael Esq NEGOTIATION97Anna Fali
1041Johnson SergiAustralia2026-04-17Truhlar And Truhlar Attys NEGOTIATION54Stephen Shaw
1042Rodrigues CampainBrazil2026-03-24Buckley Miller Wright UNQUALIFIED7Amy Elsner
1043Maria MarrierIndia2026-03-25Buckley Miller Wright RENEWAL71Amy Elsner
1044Mayumi KolmetzFrance2026-03-22King, Christopher A Esq UNQUALIFIED35Anna Fali
1045Jefferson SchemmerBrazil2026-03-20Rangoni Of Florence UNQUALIFIED80Bernardo Dominic
1046Juan WieserArgentina2026-03-30Feiner Bros PROPOSAL77Ivan Magalhaes
1047Rodrigues CampainAustralia2026-03-31Feltz Printing Service PROPOSAL87Xuxue Feng
1048Ashley DoeCanada2026-04-03Rousseaux, Michael Esq NEW54Onyama Limba
1049Aruna FigeroaItaly2026-04-08Feiner Bros QUALIFIED18Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba NickaFranceIoni Bowcher UNQUALIFIED
Arvin AlbaresJapanStephen Shaw NEGOTIATION
Ashley DoeAustraliaIvan Magalhaes RENEWAL
Isabel BowleyBrazilAmy Elsner PROPOSAL
Chavez BriddickArgentinaAnna Fali UNQUALIFIED
Maisha RulapaughCanadaIvan Magalhaes UNQUALIFIED
Antonio CaudyArgentinaIoni Bowcher QUALIFIED
Jeanfrancois VenereSpainOnyama Limba NEGOTIATION
Murillo MaletJapanStephen Shaw PROPOSAL
Tony FollerGermanyStephen Shaw RENEWAL
Tony FollerGermanyXuxue Feng NEW
Aruna FigeroaFranceOnyama Limba NEGOTIATION
Arvin AlbaresArgentinaAnna Fali PROPOSAL
Antonio CaudyJapanAmy Elsner PROPOSAL
Adams MorascaRussiaIoni Bowcher NEW
Jennifer AmigonBrazilIvan Magalhaes QUALIFIED
Costa DilliardBrazilBernardo Dominic RENEWAL
Ivar PaprockiSpainAnna Fali PROPOSAL
Deepesh ChuiUnited KingdomAmy Elsner UNQUALIFIED
Cody SaylorsAustraliaOnyama Limba PROPOSAL
Mayumi KolmetzItalyAmy Elsner QUALIFIED
Jefferson SchemmerBrazilAnna Fali NEW
Deepesh ChuiArgentinaBernardo Dominic QUALIFIED
Kadeem FlosiArgentinaAnna Fali NEW
Julie StensethIndiaAsiya Javayant PROPOSAL
Ivar PaprockiUnited KingdomIoni Bowcher NEW
Jefferson SchemmerGermanyAmy Elsner RENEWAL
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Juan WieserAustraliaOnyama Limba PROPOSAL
Kaitlin OstroskyUnited KingdomBernardo Dominic QUALIFIED
Leon OldroydUnited KingdomBernardo Dominic QUALIFIED
Tony FollerSpainOnyama Limba QUALIFIED
Stacey MacleadGermanyAsiya Javayant NEW
Alejandro PerinJapanIvan Magalhaes RENEWAL
Aditya KuskoFranceAmy Elsner QUALIFIED
Izzy GarufiBrazilXuxue Feng UNQUALIFIED
Faith GillianIndiaIoni Bowcher PROPOSAL
Ivar PaprockiFranceAmy Elsner RENEWAL
Deepesh ChuiArgentinaAnna Fali UNQUALIFIED
Chavez BriddickItalyIvan Magalhaes QUALIFIED
Arvin AlbaresAustraliaXuxue Feng UNQUALIFIED
Ivar PaprockiCanadaIvan Magalhaes RENEWAL
Kadeem FlosiRussiaBernardo Dominic NEGOTIATION
Cody SaylorsAustraliaOnyama Limba UNQUALIFIED
Stacey MacleadSpainIvan Magalhaes NEW
Maisha RulapaughIndiaIoni Bowcher RENEWAL
Jefferson SchemmerSpainStephen Shaw UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes NEGOTIATION
Johnson SergiGermanyOnyama Limba UNQUALIFIED
Murillo MaletIndiaAmy Elsner NEW
Frozen Columns
Name
Clifford Rim
Smith Glick
Octavia Malet
Francesco Shinko
Jones Vocelka
Ashley Doe
Salvatore Stockham
Murillo Malet
Darci Poquette
Greenwood Bolognia
Wickens Nestle
Nicolas Iturbide
James Butt
Ricardo Gaucho
Morrow Ruta
Ashley Doe
Mayumi Kolmetz
Isabel Bowley
Juan Wieser
Costa Dilliard
Morrow Ruta
Jeanfrancois Venere
Chavez Briddick
Izzy Garufi
Salvatore Stockham
Stacey Maclead
Silvio Slusarski
Izzy Garufi
Mayumi Kolmetz
Izzy Garufi
Aruna Figeroa
Salvatore Stockham
Mayumi Kolmetz
Clifford Rim
Leja Caldarera
Stacey Maclead
Mayumi Kolmetz
Deepesh Chui
Nicolas Iturbide
Adams Morasca
Aditya Kusko
Murillo Malet
Leja Caldarera
Clifford Rim
Jones Vocelka
Morrow Ruta
Ashley Doe
Misaki Royster
Faith Gillian
Adams Morasca
IdCountryDate
1000France2026-04-05
1001Argentina2026-03-27
1002France2026-03-22
1003Italy2026-04-03
1004Canada2026-03-30
1005Italy2026-03-27
1006India2026-04-01
1007Italy2026-03-22
1008Germany2026-03-25
1009Brazil2026-04-04
1010India2026-03-31
1011Germany2026-04-10
1012India2026-03-28
1013Germany2026-03-30
1014Canada2026-04-04
1015Argentina2026-04-11
1016France2026-03-28
1017India2026-03-24
1018Brazil2026-04-11
1019Spain2026-04-03
1020Italy2026-04-10
1021Brazil2026-04-03
1022Italy2026-04-03
1023Germany2026-03-31
1024Russia2026-04-18
1025United Kingdom2026-03-28
1026Argentina2026-04-04
1027Australia2026-03-22
1028Spain2026-04-18
1029Russia2026-04-03
1030France2026-04-05
1031Spain2026-04-06
1032Canada2026-03-22
1033Australia2026-04-11
1034Spain2026-03-24
1035Canada2026-03-31
1036Germany2026-04-12
1037Canada2026-04-04
1038India2026-03-25
1039Germany2026-03-27
1040Russia2026-04-11
1041Germany2026-03-25
1042India2026-04-09
1043Japan2026-04-18
1044France2026-03-22
1045Brazil2026-04-09
1046Italy2026-03-21
1047United Kingdom2026-04-08
1048United Kingdom2026-03-22
1049Italy2026-03-21

On-Demand Data

NameIdCountryDate
Smith Glick1000France2026-04-09
Aruna Figeroa1001Spain2026-03-27
Jefferson Schemmer1002France2026-03-24
Murillo Malet1003United Kingdom2026-03-24
Kaitlin Ostrosky1004France2026-04-07
Izzy Garufi1005Australia2026-04-17
Aditya Kusko1006Japan2026-04-06
Mujtaba Nicka1007Japan2026-04-08
Julie Stenseth1008Italy2026-03-28
Johnson Sergi1009Brazil2026-04-14
Adams Morasca1010Argentina2026-04-11
Jeanfrancois Venere1011France2026-04-07
Ivar Paprocki1012Canada2026-03-26
Chavez Briddick1013Canada2026-04-08
Ivar Paprocki1014France2026-04-08
Antonio Caudy1015Spain2026-03-31
Jefferson Schemmer1016Spain2026-04-15
Munro Ferencz1017Spain2026-03-24
Silvio Slusarski1018France2026-03-25
Aika Inouye1019Canada2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonItalyXuxue Feng PROPOSAL
Alejandro PerinBrazilAnna Fali UNQUALIFIED
Rodrigues CampainIndiaIoni Bowcher UNQUALIFIED
Mujtaba NickaCanadaBernardo Dominic QUALIFIED
Octavia MaletSpainIoni Bowcher PROPOSAL
Jones VocelkaArgentinaAnna Fali UNQUALIFIED
Cody SaylorsIndiaBernardo Dominic PROPOSAL
Chavez BriddickArgentinaIvan Magalhaes PROPOSAL
Kaitlin OstroskyJapanAsiya Javayant NEGOTIATION
Mujtaba NickaSpainIoni Bowcher RENEWAL
Munro FerenczRussiaIoni Bowcher NEGOTIATION
Kaitlin OstroskyGermanyXuxue Feng RENEWAL
Morrow RutaBrazilXuxue Feng RENEWAL
Alejandro PerinRussiaAsiya Javayant PROPOSAL
Costa DilliardSpainElwin Sharvill UNQUALIFIED
Leon OldroydJapanStephen Shaw NEW
Arvin AlbaresArgentinaOnyama Limba UNQUALIFIED
Mujtaba NickaGermanyOnyama Limba RENEWAL
Kaitlin OstroskyGermanyOnyama Limba UNQUALIFIED
Ricardo GauchoRussiaAmy Elsner RENEWAL
Johnson SergiAustraliaAsiya Javayant NEGOTIATION
James ButtAustraliaOnyama Limba UNQUALIFIED
Francesco ShinkoSpainAmy Elsner UNQUALIFIED
Mayumi KolmetzJapanAmy Elsner UNQUALIFIED
Clifford RimJapanOnyama Limba PROPOSAL
Julie StensethCanadaBernardo Dominic PROPOSAL
Faith GillianSpainElwin Sharvill NEGOTIATION
Octavia MaletCanadaAmy Elsner RENEWAL
Mayumi KolmetzFranceStephen Shaw RENEWAL
Jones VocelkaRussiaAsiya Javayant RENEWAL
James ButtJapanXuxue Feng QUALIFIED
Maisha RulapaughCanadaIoni Bowcher QUALIFIED
Jefferson SchemmerAustraliaXuxue Feng NEW
Jeanfrancois VenereBrazilAnna Fali QUALIFIED
Juan WieserRussiaAnna Fali UNQUALIFIED
Jennifer AmigonIndiaElwin Sharvill RENEWAL
Johnson SergiCanadaXuxue Feng UNQUALIFIED
Kaitlin OstroskyFranceElwin Sharvill RENEWAL
Chavez BriddickFranceBernardo Dominic RENEWAL
Greenwood BologniaRussiaStephen Shaw PROPOSAL

<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>