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
Leja CaldareraSpainOnyama Limba UNQUALIFIED
Arvin AlbaresItalyAmy Elsner NEGOTIATION
Morrow RutaArgentinaBernardo Dominic PROPOSAL
Tony FollerJapanAsiya Javayant NEGOTIATION
Munro FerenczCanadaAnna Fali QUALIFIED
Wickens NestleAustraliaAnna Fali RENEWAL
Deepesh ChuiRussiaXuxue Feng QUALIFIED
Chavez BriddickJapanStephen Shaw RENEWAL
Salvatore StockhamBrazilAmy Elsner PROPOSAL
Sinclair WaycottIndiaElwin Sharvill QUALIFIED
Ashley DoeJapanXuxue Feng UNQUALIFIED
Munro FerenczJapanXuxue Feng QUALIFIED
Salvatore StockhamJapanAsiya Javayant PROPOSAL
Mayumi KolmetzIndiaElwin Sharvill NEW
Deepesh ChuiFranceAsiya Javayant PROPOSAL
Kadeem FlosiCanadaStephen Shaw NEW
Adams MorascaAustraliaIoni Bowcher PROPOSAL
Faith GillianFranceXuxue Feng RENEWAL
Munro FerenczGermanyAsiya Javayant NEGOTIATION
Isabel BowleyUnited KingdomAmy Elsner NEGOTIATION
Jefferson SchemmerRussiaStephen Shaw UNQUALIFIED
Francesco ShinkoItalyAmy Elsner UNQUALIFIED
Costa DilliardFranceAnna Fali RENEWAL
Mayumi KolmetzAustraliaXuxue Feng UNQUALIFIED
Greenwood BologniaUnited KingdomBernardo Dominic UNQUALIFIED
James ButtJapanAsiya Javayant PROPOSAL
Leon OldroydFranceIvan Magalhaes UNQUALIFIED
Mayumi KolmetzBrazilElwin Sharvill NEW
Morrow RutaFranceBernardo Dominic NEW
Mujtaba NickaArgentinaIoni Bowcher PROPOSAL
Silvio SlusarskiItalyBernardo Dominic UNQUALIFIED
Aruna FigeroaAustraliaOnyama Limba RENEWAL
Alejandro PerinBrazilBernardo Dominic RENEWAL
Aditya KuskoUnited KingdomBernardo Dominic QUALIFIED
Murillo MaletSpainAsiya Javayant NEGOTIATION
Leja CaldareraUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzBrazilAnna Fali NEGOTIATION
Juan WieserBrazilOnyama Limba UNQUALIFIED
Aditya KuskoArgentinaBernardo Dominic UNQUALIFIED
Francesco ShinkoAustraliaOnyama Limba NEW
Jennifer AmigonJapanAmy Elsner NEW
Kadeem FlosiArgentinaAmy Elsner NEGOTIATION
Mujtaba NickaGermanyStephen Shaw NEW
Alejandro PerinGermanyXuxue Feng UNQUALIFIED
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Clifford RimSpainElwin Sharvill RENEWAL
Munro FerenczSpainAnna Fali NEGOTIATION
Maisha RulapaughBrazilAmy Elsner UNQUALIFIED
Murillo MaletBrazilXuxue Feng UNQUALIFIED
Mujtaba NickaJapanStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoAustraliaElwin Sharvill NEW
Mujtaba NickaCanadaIoni Bowcher PROPOSAL
Jennifer AmigonAustraliaAsiya Javayant PROPOSAL
Morrow RutaBrazilBernardo Dominic PROPOSAL
Murillo MaletJapanStephen Shaw NEW
Darci PoquetteRussiaOnyama Limba UNQUALIFIED
Morrow RutaIndiaXuxue Feng RENEWAL
Murillo MaletBrazilXuxue Feng PROPOSAL
Misaki RoysterItalyIoni Bowcher NEW
Tony FollerFranceAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresUnited Kingdom2026-05-16Feiner Bros QUALIFIED2Onyama Limba
1001Maisha RulapaughSpain2026-05-10Rousseaux, Michael Esq NEGOTIATION56Ioni Bowcher
1002Clifford RimRussia2026-05-06Printing Dimensions UNQUALIFIED52Ivan Magalhaes
1003Emily WhobreyItaly2026-05-22Feltz Printing Service PROPOSAL77Ioni Bowcher
1004Salvatore StockhamAustralia2026-05-21Chanay, Jeffrey A Esq PROPOSAL45Ioni Bowcher
1005Maisha RulapaughGermany2026-05-23Chemel, James L Cpa RENEWAL31Xuxue Feng
1006Johnson SergiArgentina2026-06-03Chapman, Ross E Esq PROPOSAL60Stephen Shaw
1007Chavez BriddickAustralia2026-05-12Rousseaux, Michael Esq RENEWAL17Xuxue Feng
1008Leon OldroydSpain2026-05-28King, Christopher A Esq PROPOSAL13Amy Elsner
1009James ButtSpain2026-05-27Feiner Bros UNQUALIFIED86Ivan Magalhaes
1010Mujtaba NickaBrazil2026-05-19Rousseaux, Michael Esq NEGOTIATION36Onyama Limba
1011Darci PoquetteIndia2026-05-15Chapman, Ross E Esq NEW94Amy Elsner
1012Antonio CaudyIndia2026-05-15Truhlar And Truhlar Attys QUALIFIED68Amy Elsner
1013Kaitlin OstroskyGermany2026-05-19Feiner Bros NEW61Onyama Limba
1014Leja CaldareraGermany2026-06-04Dorl, James J Esq NEGOTIATION87Onyama Limba
1015Morrow RutaItaly2026-05-23Truhlar And Truhlar Attys NEW33Asiya Javayant
1016Greenwood BologniaFrance2026-06-03Rousseaux, Michael Esq NEW67Elwin Sharvill
1017Ricardo GauchoSpain2026-06-01Feltz Printing Service NEGOTIATION16Stephen Shaw
1018Chavez BriddickArgentina2026-05-30Feltz Printing Service NEGOTIATION12Stephen Shaw
1019Murillo MaletJapan2026-05-24Morlong Associates RENEWAL94Ivan Magalhaes
1020Jennifer AmigonFrance2026-05-07Printing Dimensions NEGOTIATION71Anna Fali
1021Clifford RimJapan2026-05-18Feltz Printing Service NEW14Ioni Bowcher
1022Izzy GarufiSpain2026-06-01Morlong Associates NEGOTIATION12Ivan Magalhaes
1023Munro FerenczIndia2026-05-18Morlong Associates QUALIFIED15Ivan Magalhaes
1024Leja CaldareraBrazil2026-05-08Feiner Bros UNQUALIFIED40Asiya Javayant
1025Mayumi KolmetzIndia2026-05-26Dorl, James J Esq NEGOTIATION56Ivan Magalhaes
1026David DarakjyCanada2026-05-10King, Christopher A Esq PROPOSAL46Anna Fali
1027Chavez BriddickIndia2026-05-13Feiner Bros RENEWAL11Stephen Shaw
1028Stacey MacleadGermany2026-05-07Benton, John B Jr UNQUALIFIED72Bernardo Dominic
1029Rodrigues CampainUnited Kingdom2026-05-29Truhlar And Truhlar Attys QUALIFIED41Bernardo Dominic
1030Leja CaldareraCanada2026-05-31Chanay, Jeffrey A Esq RENEWAL88Elwin Sharvill
1031Kaitlin OstroskyItaly2026-05-14Printing Dimensions NEGOTIATION59Onyama Limba
1032Izzy GarufiGermany2026-06-03Commercial Press NEW75Anna Fali
1033Alejandro PerinRussia2026-05-15Morlong Associates UNQUALIFIED59Onyama Limba
1034Chavez BriddickAustralia2026-05-20Feiner Bros NEW8Asiya Javayant
1035Smith GlickGermany2026-05-15Chemel, James L Cpa RENEWAL79Amy Elsner
1036Claire TollnerItaly2026-05-07Chapman, Ross E Esq UNQUALIFIED44Ioni Bowcher
1037Isabel BowleyItaly2026-05-27Dorl, James J Esq NEW95Onyama Limba
1038Rodrigues CampainFrance2026-05-19Commercial Press QUALIFIED99Stephen Shaw
1039Sinclair WaycottItaly2026-05-29Commercial Press QUALIFIED58Elwin Sharvill
1040Morrow RutaGermany2026-05-19Feltz Printing Service NEGOTIATION49Elwin Sharvill
1041Izzy GarufiIndia2026-05-27Truhlar And Truhlar Attys NEGOTIATION39Xuxue Feng
1042Ashley DoeIndia2026-05-14Chanay, Jeffrey A Esq NEW70Stephen Shaw
1043Ivar PaprockiAustralia2026-05-09King, Christopher A Esq NEW19Ivan Magalhaes
1044Smith GlickCanada2026-05-19Commercial Press RENEWAL25Xuxue Feng
1045Salvatore StockhamBrazil2026-05-25Dorl, James J Esq RENEWAL14Anna Fali
1046Octavia MaletBrazil2026-05-25Rousseaux, Michael Esq NEGOTIATION56Anna Fali
1047Claire TollnerCanada2026-05-29Feltz Printing Service NEGOTIATION6Anna Fali
1048Isabel BowleyRussia2026-05-30Buckley Miller Wright PROPOSAL91Bernardo Dominic
1049Alejandro PerinRussia2026-05-27Printing Dimensions QUALIFIED87Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaCanadaElwin Sharvill NEW
Johnson SergiRussiaAsiya Javayant RENEWAL
Arvin AlbaresItalyOnyama Limba UNQUALIFIED
Costa DilliardRussiaBernardo Dominic QUALIFIED
Ashley DoeBrazilAsiya Javayant RENEWAL
Aika InouyeIndiaIoni Bowcher RENEWAL
Deepesh ChuiCanadaAnna Fali NEGOTIATION
Smith GlickIndiaAnna Fali RENEWAL
Arvin AlbaresUnited KingdomIoni Bowcher PROPOSAL
Sinclair WaycottJapanIvan Magalhaes NEGOTIATION
James ButtItalyXuxue Feng UNQUALIFIED
Izzy GarufiFranceBernardo Dominic NEW
Claire TollnerAustraliaBernardo Dominic RENEWAL
Nicolas IturbideItalyAsiya Javayant UNQUALIFIED
Wickens NestleRussiaOnyama Limba NEW
Wickens NestleArgentinaStephen Shaw NEW
Costa DilliardFranceBernardo Dominic NEGOTIATION
Silvio SlusarskiGermanyOnyama Limba QUALIFIED
Mayumi KolmetzAustraliaStephen Shaw UNQUALIFIED
Greenwood BologniaIndiaOnyama Limba NEW
Greenwood BologniaRussiaStephen Shaw PROPOSAL
David DarakjyGermanyOnyama Limba PROPOSAL
Antonio CaudyGermanyAnna Fali NEW
Costa DilliardSpainAsiya Javayant QUALIFIED
Mujtaba NickaJapanBernardo Dominic NEGOTIATION
Faith GillianRussiaAsiya Javayant PROPOSAL
Kaitlin OstroskyBrazilAmy Elsner QUALIFIED
Aika InouyeGermanyElwin Sharvill UNQUALIFIED
Kaitlin OstroskyItalyXuxue Feng QUALIFIED
Adams MorascaSpainIoni Bowcher UNQUALIFIED
Stacey MacleadAustraliaBernardo Dominic UNQUALIFIED
Ricardo GauchoSpainStephen Shaw RENEWAL
Maisha RulapaughJapanElwin Sharvill NEGOTIATION
Nicolas IturbideBrazilElwin Sharvill NEGOTIATION
Emily WhobreyBrazilStephen Shaw PROPOSAL
Leja CaldareraArgentinaAnna Fali QUALIFIED
Maisha RulapaughGermanyBernardo Dominic RENEWAL
Antonio CaudySpainElwin Sharvill QUALIFIED
Mayumi KolmetzItalyAsiya Javayant PROPOSAL
Isabel BowleyRussiaXuxue Feng QUALIFIED
Octavia MaletRussiaOnyama Limba UNQUALIFIED
Silvio SlusarskiJapanOnyama Limba PROPOSAL
Cody SaylorsSpainAsiya Javayant RENEWAL
Chavez BriddickFranceAmy Elsner QUALIFIED
Rodrigues CampainUnited KingdomAmy Elsner NEW
Smith GlickSpainAmy Elsner RENEWAL
Murillo MaletSpainOnyama Limba NEW
Smith GlickSpainAnna Fali NEGOTIATION
Darci PoquetteCanadaElwin Sharvill UNQUALIFIED
Rodrigues CampainRussiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Cody Saylors
Deepesh Chui
Kadeem Flosi
Adams Morasca
Francesco Shinko
Deepesh Chui
Johnson Sergi
David Darakjy
Maria Marrier
Greenwood Bolognia
Misaki Royster
Julie Stenseth
Octavia Malet
Adams Morasca
Maria Marrier
Clifford Rim
Murillo Malet
Misaki Royster
Claire Tollner
Morrow Ruta
Ivar Paprocki
Deepesh Chui
Isabel Bowley
Darci Poquette
Faith Gillian
Chavez Briddick
Chavez Briddick
Francesco Shinko
Aika Inouye
Arvin Albares
Wickens Nestle
Jennifer Amigon
Misaki Royster
Ivar Paprocki
Rodrigues Campain
Silvio Slusarski
Tony Foller
Aditya Kusko
Nicolas Iturbide
Johnson Sergi
Costa Dilliard
Jennifer Amigon
Leon Oldroyd
Tony Foller
Stacey Maclead
Octavia Malet
Leon Oldroyd
Claire Tollner
Emily Whobrey
Leon Oldroyd
IdCountryDate
1000France2026-05-15
1001Argentina2026-05-29
1002Canada2026-05-22
1003Japan2026-05-25
1004India2026-05-23
1005Brazil2026-05-30
1006France2026-05-16
1007Japan2026-06-02
1008France2026-05-24
1009Germany2026-05-26
1010France2026-06-04
1011Canada2026-05-23
1012Brazil2026-05-24
1013France2026-05-10
1014Italy2026-05-25
1015Italy2026-05-19
1016Canada2026-05-30
1017France2026-05-06
1018Canada2026-05-08
1019France2026-05-11
1020Italy2026-05-20
1021United Kingdom2026-05-28
1022Australia2026-05-06
1023Spain2026-05-15
1024Argentina2026-05-11
1025France2026-05-17
1026United Kingdom2026-05-22
1027Canada2026-05-15
1028Brazil2026-05-16
1029Brazil2026-05-28
1030Brazil2026-05-20
1031United Kingdom2026-05-06
1032India2026-05-18
1033Italy2026-05-29
1034Germany2026-05-11
1035Argentina2026-05-24
1036Brazil2026-05-16
1037Germany2026-05-28
1038France2026-05-14
1039Germany2026-05-07
1040United Kingdom2026-05-18
1041Argentina2026-05-07
1042India2026-05-21
1043Japan2026-05-10
1044Brazil2026-05-11
1045Italy2026-06-01
1046Germany2026-05-23
1047Japan2026-05-13
1048Brazil2026-05-09
1049France2026-05-30

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Russia2026-05-24
Munro Ferencz1001France2026-05-18
Julie Stenseth1002France2026-05-06
Misaki Royster1003Australia2026-05-14
Mujtaba Nicka1004Japan2026-06-01
Ashley Doe1005Brazil2026-05-23
Aika Inouye1006India2026-05-20
Ricardo Gaucho1007United Kingdom2026-05-10
Faith Gillian1008Argentina2026-05-11
Nicolas Iturbide1009Australia2026-05-23
Salvatore Stockham1010Russia2026-06-01
Jennifer Amigon1011Brazil2026-05-22
Izzy Garufi1012United Kingdom2026-05-14
Ricardo Gaucho1013Australia2026-05-27
Johnson Sergi1014Spain2026-05-15
Darci Poquette1015Italy2026-06-02
Kadeem Flosi1016Germany2026-05-23
Johnson Sergi1017France2026-05-29
Misaki Royster1018United Kingdom2026-05-13
Aditya Kusko1019Argentina2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresSpainElwin Sharvill NEW
Leja CaldareraJapanAnna Fali NEGOTIATION
Silvio SlusarskiBrazilAnna Fali RENEWAL
Greenwood BologniaSpainXuxue Feng NEW
Nicolas IturbideAustraliaAmy Elsner NEGOTIATION
Leja CaldareraJapanBernardo Dominic PROPOSAL
Leja CaldareraSpainOnyama Limba UNQUALIFIED
Ivar PaprockiArgentinaOnyama Limba PROPOSAL
Tony FollerUnited KingdomAmy Elsner PROPOSAL
Murillo MaletBrazilElwin Sharvill NEW
Leja CaldareraCanadaStephen Shaw NEW
Nicolas IturbideArgentinaStephen Shaw NEW
Leon OldroydBrazilBernardo Dominic UNQUALIFIED
Rodrigues CampainFranceStephen Shaw RENEWAL
Costa DilliardJapanXuxue Feng NEGOTIATION
Jones VocelkaCanadaXuxue Feng QUALIFIED
Misaki RoysterCanadaOnyama Limba PROPOSAL
Claire TollnerUnited KingdomAnna Fali PROPOSAL
Aruna FigeroaUnited KingdomOnyama Limba NEW
Jefferson SchemmerCanadaStephen Shaw NEGOTIATION
Costa DilliardAustraliaOnyama Limba NEGOTIATION
Johnson SergiSpainAnna Fali RENEWAL
Isabel BowleyArgentinaOnyama Limba QUALIFIED
Johnson SergiItalyStephen Shaw UNQUALIFIED
Leja CaldareraJapanElwin Sharvill NEGOTIATION
Tony FollerGermanyBernardo Dominic PROPOSAL
Kadeem FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Juan WieserAustraliaAnna Fali PROPOSAL
Nicolas IturbideJapanAsiya Javayant NEGOTIATION
Maisha RulapaughBrazilBernardo Dominic UNQUALIFIED
Ivar PaprockiCanadaAsiya Javayant RENEWAL
Francesco ShinkoItalyAmy Elsner NEGOTIATION
Ricardo GauchoFranceBernardo Dominic PROPOSAL
Arvin AlbaresFranceIvan Magalhaes PROPOSAL
James ButtJapanAsiya Javayant NEW
Claire TollnerItalyBernardo Dominic PROPOSAL
Aika InouyeJapanAmy Elsner RENEWAL
Jeanfrancois VenereArgentinaAmy Elsner RENEWAL
Antonio CaudyArgentinaIoni Bowcher NEW
Costa DilliardGermanyStephen 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>