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
Jeanfrancois VenereUnited KingdomXuxue Feng QUALIFIED
Smith GlickCanadaBernardo Dominic QUALIFIED
Maria MarrierGermanyAsiya Javayant RENEWAL
Ashley DoeFranceAnna Fali UNQUALIFIED
Kadeem FlosiCanadaIvan Magalhaes NEGOTIATION
Kadeem FlosiJapanElwin Sharvill RENEWAL
Isabel BowleyAustraliaIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaAmy Elsner NEGOTIATION
Juan WieserAustraliaIoni Bowcher PROPOSAL
Aditya KuskoAustraliaElwin Sharvill RENEWAL
Ivar PaprockiFranceBernardo Dominic QUALIFIED
Alejandro PerinArgentinaAnna Fali QUALIFIED
Murillo MaletFranceStephen Shaw PROPOSAL
Murillo MaletRussiaXuxue Feng PROPOSAL
Octavia MaletIndiaStephen Shaw NEW
Isabel BowleyArgentinaAsiya Javayant RENEWAL
Aditya KuskoFranceAsiya Javayant NEW
Aditya KuskoBrazilAmy Elsner QUALIFIED
Sinclair WaycottFranceAsiya Javayant QUALIFIED
Nicolas IturbideIndiaAsiya Javayant PROPOSAL
Stacey MacleadIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereItalyAsiya Javayant PROPOSAL
Salvatore StockhamSpainBernardo Dominic NEW
Chavez BriddickRussiaAsiya Javayant NEW
Clifford RimItalyOnyama Limba RENEWAL
Aruna FigeroaAustraliaElwin Sharvill QUALIFIED
Mayumi KolmetzUnited KingdomBernardo Dominic QUALIFIED
Leja CaldareraBrazilAsiya Javayant NEGOTIATION
Cody SaylorsItalyIvan Magalhaes UNQUALIFIED
Misaki RoysterAustraliaAmy Elsner NEW
Jefferson SchemmerItalyIvan Magalhaes QUALIFIED
Nicolas IturbideUnited KingdomIvan Magalhaes QUALIFIED
Chavez BriddickSpainIoni Bowcher PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant PROPOSAL
Stacey MacleadCanadaIvan Magalhaes PROPOSAL
Izzy GarufiRussiaElwin Sharvill NEW
Leon OldroydItalyIoni Bowcher QUALIFIED
Deepesh ChuiSpainIvan Magalhaes QUALIFIED
Claire TollnerAustraliaStephen Shaw NEW
David DarakjyJapanXuxue Feng NEW
Leon OldroydRussiaBernardo Dominic NEW
Octavia MaletRussiaOnyama Limba NEGOTIATION
Ivar PaprockiFranceIoni Bowcher RENEWAL
Antonio CaudyRussiaElwin Sharvill QUALIFIED
Misaki RoysterFranceIvan Magalhaes PROPOSAL
Rodrigues CampainItalyAmy Elsner NEW
Rodrigues CampainSpainAnna Fali NEGOTIATION
James ButtSpainElwin Sharvill PROPOSAL
Wickens NestleJapanXuxue Feng NEGOTIATION
Deepesh ChuiCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainCanadaStephen Shaw RENEWAL
Kadeem FlosiIndiaIoni Bowcher RENEWAL
Munro FerenczBrazilElwin Sharvill UNQUALIFIED
Maria MarrierFranceAsiya Javayant UNQUALIFIED
Alejandro PerinFranceXuxue Feng RENEWAL
Aruna FigeroaSpainAsiya Javayant RENEWAL
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Greenwood BologniaIndiaAmy Elsner NEW
Adams MorascaRussiaStephen Shaw NEGOTIATION
Cody SaylorsIndiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimSpain2026-04-28Feiner Bros UNQUALIFIED27Anna Fali
1001Faith GillianJapan2026-04-29Feiner Bros PROPOSAL12Bernardo Dominic
1002Claire TollnerJapan2026-04-17Feltz Printing Service NEW33Stephen Shaw
1003Chavez BriddickBrazil2026-05-03Benton, John B Jr PROPOSAL36Ioni Bowcher
1004David DarakjySpain2026-04-23Rousseaux, Michael Esq PROPOSAL36Ivan Magalhaes
1005Octavia MaletCanada2026-05-14Morlong Associates UNQUALIFIED55Anna Fali
1006Salvatore StockhamJapan2026-05-08Chanay, Jeffrey A Esq NEGOTIATION65Ioni Bowcher
1007James ButtSpain2026-05-02Rousseaux, Michael Esq PROPOSAL59Onyama Limba
1008Ricardo GauchoBrazil2026-04-24Rangoni Of Florence NEW64Bernardo Dominic
1009Jones VocelkaJapan2026-04-25Feltz Printing Service QUALIFIED93Ioni Bowcher
1010Rodrigues CampainRussia2026-04-19Feiner Bros PROPOSAL71Ivan Magalhaes
1011Rodrigues CampainRussia2026-05-13Benton, John B Jr NEW9Xuxue Feng
1012Silvio SlusarskiBrazil2026-04-26Buckley Miller Wright NEGOTIATION93Stephen Shaw
1013Munro FerenczItaly2026-04-26Buckley Miller Wright UNQUALIFIED33Onyama Limba
1014Tony FollerCanada2026-05-03Morlong Associates NEW19Anna Fali
1015Francesco ShinkoFrance2026-04-20Chapman, Ross E Esq QUALIFIED46Onyama Limba
1016Antonio CaudyArgentina2026-04-20Chanay, Jeffrey A Esq UNQUALIFIED15Xuxue Feng
1017Maisha RulapaughSpain2026-04-26Benton, John B Jr UNQUALIFIED19Asiya Javayant
1018Wickens NestleCanada2026-04-23Printing Dimensions QUALIFIED61Amy Elsner
1019Aditya KuskoRussia2026-04-26Truhlar And Truhlar Attys QUALIFIED68Onyama Limba
1020Antonio CaudyIndia2026-04-30Feltz Printing Service NEGOTIATION65Elwin Sharvill
1021Greenwood BologniaIndia2026-05-15Rousseaux, Michael Esq QUALIFIED21Elwin Sharvill
1022Julie StensethRussia2026-04-27Truhlar And Truhlar Attys QUALIFIED76Stephen Shaw
1023David DarakjyUnited Kingdom2026-05-03Buckley Miller Wright NEGOTIATION65Anna Fali
1024Francesco ShinkoItaly2026-05-13Rangoni Of Florence NEW83Ivan Magalhaes
1025Kaitlin OstroskyItaly2026-05-15Benton, John B Jr QUALIFIED19Ivan Magalhaes
1026Aruna FigeroaArgentina2026-04-23Rousseaux, Michael Esq NEW48Asiya Javayant
1027Alejandro PerinSpain2026-05-06Dorl, James J Esq UNQUALIFIED19Bernardo Dominic
1028Munro FerenczSpain2026-04-16Buckley Miller Wright UNQUALIFIED30Onyama Limba
1029Munro FerenczArgentina2026-05-10Commercial Press UNQUALIFIED78Ioni Bowcher
1030Jefferson SchemmerGermany2026-05-03Benton, John B Jr RENEWAL98Elwin Sharvill
1031James ButtBrazil2026-05-04Rousseaux, Michael Esq UNQUALIFIED16Bernardo Dominic
1032Aika InouyeBrazil2026-05-02Dorl, James J Esq QUALIFIED17Ivan Magalhaes
1033Tony FollerSpain2026-05-13Feiner Bros PROPOSAL8Ivan Magalhaes
1034Morrow RutaBrazil2026-04-30Rousseaux, Michael Esq UNQUALIFIED86Anna Fali
1035Salvatore StockhamJapan2026-04-26Feltz Printing Service QUALIFIED70Xuxue Feng
1036Claire TollnerJapan2026-05-04Truhlar And Truhlar Attys NEGOTIATION81Xuxue Feng
1037Leon OldroydAustralia2026-04-29Chemel, James L Cpa PROPOSAL84Anna Fali
1038Mujtaba NickaIndia2026-05-03Truhlar And Truhlar Attys RENEWAL68Ivan Magalhaes
1039Aruna FigeroaItaly2026-05-10Printing Dimensions RENEWAL58Amy Elsner
1040Alejandro PerinBrazil2026-05-14Feiner Bros PROPOSAL15Bernardo Dominic
1041Ashley DoeIndia2026-04-22King, Christopher A Esq UNQUALIFIED20Xuxue Feng
1042Antonio CaudyGermany2026-04-27Chemel, James L Cpa NEGOTIATION72Ivan Magalhaes
1043Antonio CaudyFrance2026-05-09Commercial Press UNQUALIFIED6Stephen Shaw
1044Mujtaba NickaArgentina2026-05-02Benton, John B Jr PROPOSAL27Amy Elsner
1045Jefferson SchemmerRussia2026-04-29Commercial Press NEGOTIATION47Onyama Limba
1046Izzy GarufiFrance2026-04-20Chapman, Ross E Esq PROPOSAL48Anna Fali
1047Juan WieserFrance2026-05-04Morlong Associates NEGOTIATION69Anna Fali
1048Arvin AlbaresSpain2026-04-25King, Christopher A Esq QUALIFIED57Xuxue Feng
1049Stacey MacleadIndia2026-04-23Rousseaux, Michael Esq PROPOSAL27Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczFranceElwin Sharvill NEGOTIATION
Darci PoquetteJapanAnna Fali PROPOSAL
Leon OldroydRussiaIoni Bowcher NEW
Francesco ShinkoBrazilIvan Magalhaes NEGOTIATION
Morrow RutaItalyAnna Fali QUALIFIED
Nicolas IturbideSpainAnna Fali NEGOTIATION
Rodrigues CampainBrazilXuxue Feng RENEWAL
Stacey MacleadCanadaAsiya Javayant PROPOSAL
Tony FollerJapanIoni Bowcher PROPOSAL
Darci PoquetteJapanIoni Bowcher NEGOTIATION
Arvin AlbaresAustraliaXuxue Feng UNQUALIFIED
Sinclair WaycottSpainOnyama Limba NEGOTIATION
Cody SaylorsCanadaIvan Magalhaes NEW
Munro FerenczJapanStephen Shaw QUALIFIED
Alejandro PerinArgentinaStephen Shaw PROPOSAL
Sinclair WaycottCanadaAsiya Javayant RENEWAL
Murillo MaletItalyXuxue Feng NEGOTIATION
Ashley DoeAustraliaXuxue Feng QUALIFIED
Mayumi KolmetzJapanAnna Fali NEGOTIATION
Greenwood BologniaUnited KingdomAsiya Javayant NEW
Arvin AlbaresRussiaXuxue Feng NEW
Francesco ShinkoSpainIvan Magalhaes PROPOSAL
Isabel BowleyRussiaAnna Fali PROPOSAL
Murillo MaletUnited KingdomIvan Magalhaes QUALIFIED
Aruna FigeroaRussiaOnyama Limba UNQUALIFIED
Jefferson SchemmerRussiaXuxue Feng RENEWAL
Octavia MaletJapanXuxue Feng NEGOTIATION
Claire TollnerBrazilIvan Magalhaes QUALIFIED
Jeanfrancois VenereCanadaAnna Fali RENEWAL
Smith GlickCanadaIvan Magalhaes NEW
Maria MarrierCanadaStephen Shaw RENEWAL
Clifford RimItalyAmy Elsner RENEWAL
Leja CaldareraRussiaStephen Shaw RENEWAL
Aika InouyeAustraliaAmy Elsner NEW
Claire TollnerRussiaAnna Fali UNQUALIFIED
Aditya KuskoFranceIoni Bowcher PROPOSAL
Maisha RulapaughArgentinaIvan Magalhaes RENEWAL
Francesco ShinkoSpainIvan Magalhaes QUALIFIED
Ricardo GauchoRussiaIvan Magalhaes NEGOTIATION
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Deepesh ChuiItalyOnyama Limba RENEWAL
David DarakjyRussiaAmy Elsner PROPOSAL
Chavez BriddickFranceIoni Bowcher NEW
Julie StensethSpainIoni Bowcher NEW
Maria MarrierFranceIoni Bowcher QUALIFIED
Juan WieserCanadaElwin Sharvill NEW
Kadeem FlosiBrazilOnyama Limba QUALIFIED
Julie StensethGermanyXuxue Feng QUALIFIED
James ButtItalyIoni Bowcher NEGOTIATION
Kadeem FlosiItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
Silvio Slusarski
Murillo Malet
Salvatore Stockham
Mujtaba Nicka
Salvatore Stockham
Nicolas Iturbide
Octavia Malet
Greenwood Bolognia
Aditya Kusko
Francesco Shinko
Emily Whobrey
Emily Whobrey
Chavez Briddick
Johnson Sergi
James Butt
Silvio Slusarski
Rodrigues Campain
Isabel Bowley
Leja Caldarera
Jennifer Amigon
Johnson Sergi
Aditya Kusko
Leon Oldroyd
Costa Dilliard
Emily Whobrey
Jennifer Amigon
Adams Morasca
Mujtaba Nicka
Julie Stenseth
Mujtaba Nicka
Mujtaba Nicka
Mujtaba Nicka
Aditya Kusko
Sinclair Waycott
Stacey Maclead
Leon Oldroyd
Smith Glick
Alejandro Perin
Aditya Kusko
Kaitlin Ostrosky
Octavia Malet
Stacey Maclead
Adams Morasca
Rodrigues Campain
Ricardo Gaucho
Leja Caldarera
Misaki Royster
Deepesh Chui
Stacey Maclead
Munro Ferencz
IdCountryDate
1000Japan2026-05-07
1001Brazil2026-04-21
1002Germany2026-05-12
1003Canada2026-04-17
1004France2026-04-26
1005Spain2026-05-01
1006France2026-05-12
1007Canada2026-05-10
1008Germany2026-05-06
1009Australia2026-04-28
1010Spain2026-04-25
1011Italy2026-05-10
1012Canada2026-05-03
1013India2026-05-15
1014Japan2026-04-21
1015France2026-04-30
1016Australia2026-04-17
1017France2026-04-23
1018France2026-04-26
1019Brazil2026-04-27
1020France2026-04-22
1021India2026-05-01
1022Argentina2026-05-04
1023Canada2026-04-20
1024France2026-04-28
1025Germany2026-04-24
1026India2026-05-07
1027Argentina2026-04-25
1028Germany2026-05-10
1029Germany2026-04-28
1030Russia2026-05-08
1031Australia2026-04-28
1032France2026-04-18
1033Australia2026-04-17
1034India2026-04-21
1035Italy2026-04-19
1036Argentina2026-05-14
1037India2026-04-22
1038United Kingdom2026-04-29
1039Canada2026-05-08
1040Italy2026-04-19
1041India2026-05-09
1042Australia2026-05-07
1043France2026-05-06
1044France2026-05-01
1045Russia2026-04-17
1046Italy2026-04-25
1047Japan2026-05-12
1048Germany2026-04-19
1049Argentina2026-05-08

On-Demand Data

NameIdCountryDate
Aika Inouye1000Germany2026-04-24
Smith Glick1001Australia2026-05-14
Jefferson Schemmer1002Australia2026-05-12
Jones Vocelka1003Italy2026-05-13
Morrow Ruta1004Brazil2026-05-06
Munro Ferencz1005Italy2026-05-02
Aditya Kusko1006Australia2026-05-13
David Darakjy1007Argentina2026-05-04
Morrow Ruta1008Brazil2026-04-29
Darci Poquette1009Spain2026-04-21
Ricardo Gaucho1010Brazil2026-05-11
Jefferson Schemmer1011Japan2026-05-06
Izzy Garufi1012India2026-04-19
Misaki Royster1013Russia2026-04-23
Rodrigues Campain1014India2026-05-03
Alejandro Perin1015Argentina2026-05-04
Mayumi Kolmetz1016India2026-04-27
Aika Inouye1017India2026-05-15
Aruna Figeroa1018Brazil2026-05-01
Jefferson Schemmer1019India2026-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerRussiaAnna Fali QUALIFIED
Wickens NestleCanadaBernardo Dominic NEW
Deepesh ChuiArgentinaAsiya Javayant PROPOSAL
Emily WhobreyArgentinaAmy Elsner PROPOSAL
Jefferson SchemmerArgentinaIoni Bowcher RENEWAL
Costa DilliardCanadaStephen Shaw PROPOSAL
Antonio CaudyAustraliaOnyama Limba QUALIFIED
Greenwood BologniaItalyAsiya Javayant NEW
Smith GlickUnited KingdomIoni Bowcher RENEWAL
Ricardo GauchoUnited KingdomAnna Fali NEW
Aika InouyeJapanIoni Bowcher NEGOTIATION
Rodrigues CampainAustraliaXuxue Feng NEW
Cody SaylorsSpainXuxue Feng RENEWAL
Isabel BowleyRussiaXuxue Feng RENEWAL
Chavez BriddickFranceBernardo Dominic QUALIFIED
Mujtaba NickaSpainXuxue Feng QUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin OstroskyItalyIvan Magalhaes QUALIFIED
Clifford RimCanadaStephen Shaw NEGOTIATION
Arvin AlbaresGermanyOnyama Limba PROPOSAL
Jones VocelkaCanadaStephen Shaw RENEWAL
Wickens NestleSpainAsiya Javayant NEW
Aruna FigeroaArgentinaBernardo Dominic NEW
Murillo MaletIndiaAmy Elsner NEW
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Smith GlickAustraliaAnna Fali UNQUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng PROPOSAL
Johnson SergiSpainXuxue Feng NEGOTIATION
Morrow RutaSpainOnyama Limba NEGOTIATION
Johnson SergiGermanyAnna Fali NEGOTIATION
Maria MarrierIndiaIoni Bowcher NEW
Faith GillianCanadaAnna Fali UNQUALIFIED
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Jennifer AmigonRussiaXuxue Feng RENEWAL
Ashley DoeRussiaAmy Elsner NEGOTIATION
Kaitlin OstroskyFranceXuxue Feng NEW
Mayumi KolmetzCanadaIoni Bowcher PROPOSAL
Aruna FigeroaAustraliaAsiya Javayant UNQUALIFIED
Greenwood BologniaArgentinaAnna Fali QUALIFIED
David DarakjyFranceElwin Sharvill UNQUALIFIED

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