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
Isabel BowleyUnited KingdomAsiya Javayant PROPOSAL
Ashley DoeIndiaBernardo Dominic NEW
Stacey MacleadCanadaIvan Magalhaes NEW
Francesco ShinkoRussiaXuxue Feng QUALIFIED
Mayumi KolmetzGermanyElwin Sharvill PROPOSAL
Chavez BriddickSpainElwin Sharvill RENEWAL
Kaitlin OstroskyFranceOnyama Limba NEW
Deepesh ChuiUnited KingdomAnna Fali QUALIFIED
Kaitlin OstroskyItalyElwin Sharvill RENEWAL
Ivar PaprockiBrazilBernardo Dominic UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner QUALIFIED
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Jefferson SchemmerSpainAmy Elsner RENEWAL
Nicolas IturbideGermanyStephen Shaw QUALIFIED
Deepesh ChuiBrazilIoni Bowcher NEW
Alejandro PerinSpainXuxue Feng UNQUALIFIED
Adams MorascaRussiaBernardo Dominic NEGOTIATION
Tony FollerIndiaIoni Bowcher PROPOSAL
Clifford RimSpainAnna Fali QUALIFIED
Salvatore StockhamGermanyOnyama Limba RENEWAL
Murillo MaletBrazilElwin Sharvill QUALIFIED
Izzy GarufiUnited KingdomStephen Shaw QUALIFIED
Tony FollerItalyXuxue Feng NEW
Octavia MaletCanadaAmy Elsner NEGOTIATION
Leja CaldareraRussiaAsiya Javayant NEW
Izzy GarufiUnited KingdomXuxue Feng NEW
Ricardo GauchoBrazilXuxue Feng NEGOTIATION
Ivar PaprockiSpainAsiya Javayant QUALIFIED
Costa DilliardItalyBernardo Dominic UNQUALIFIED
Isabel BowleyCanadaAmy Elsner RENEWAL
Munro FerenczAustraliaXuxue Feng NEW
Arvin AlbaresSpainElwin Sharvill UNQUALIFIED
Clifford RimUnited KingdomAmy Elsner NEW
Alejandro PerinJapanIvan Magalhaes PROPOSAL
Smith GlickArgentinaOnyama Limba RENEWAL
Misaki RoysterItalyBernardo Dominic RENEWAL
Greenwood BologniaCanadaAsiya Javayant NEGOTIATION
David DarakjySpainBernardo Dominic NEW
Costa DilliardJapanAsiya Javayant NEW
Greenwood BologniaJapanAsiya Javayant QUALIFIED
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Alejandro PerinGermanyOnyama Limba NEGOTIATION
Emily WhobreyItalyIoni Bowcher UNQUALIFIED
Adams MorascaBrazilOnyama Limba UNQUALIFIED
Ashley DoeRussiaStephen Shaw RENEWAL
Octavia MaletArgentinaXuxue Feng QUALIFIED
Faith GillianSpainIoni Bowcher UNQUALIFIED
Wickens NestleCanadaElwin Sharvill NEGOTIATION
Jennifer AmigonJapanXuxue Feng NEW
James ButtItalyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith GillianArgentinaXuxue Feng QUALIFIED
Aruna FigeroaSpainAmy Elsner QUALIFIED
Clifford RimUnited KingdomOnyama Limba RENEWAL
Maisha RulapaughFranceIvan Magalhaes NEGOTIATION
Jennifer AmigonJapanBernardo Dominic PROPOSAL
Maisha RulapaughJapanAnna Fali QUALIFIED
Aditya KuskoAustraliaAmy Elsner PROPOSAL
Nicolas IturbideGermanyOnyama Limba RENEWAL
Tony FollerBrazilXuxue Feng RENEWAL
Chavez BriddickRussiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczSpain2026-05-30Benton, John B Jr NEGOTIATION73Ioni Bowcher
1001Chavez BriddickGermany2026-05-17Dorl, James J Esq NEW21Bernardo Dominic
1002Wickens NestleRussia2026-06-03Dorl, James J Esq QUALIFIED25Anna Fali
1003Juan WieserRussia2026-05-10Chanay, Jeffrey A Esq RENEWAL85Onyama Limba
1004Johnson SergiAustralia2026-06-06Chapman, Ross E Esq UNQUALIFIED41Ioni Bowcher
1005Ashley DoeUnited Kingdom2026-05-22Chemel, James L Cpa RENEWAL11Elwin Sharvill
1006Johnson SergiRussia2026-05-15Chapman, Ross E Esq PROPOSAL29Onyama Limba
1007Misaki RoysterGermany2026-05-24Commercial Press NEGOTIATION61Elwin Sharvill
1008Jeanfrancois VenereIndia2026-06-04Dorl, James J Esq RENEWAL63Bernardo Dominic
1009Ashley DoeItaly2026-05-10Chanay, Jeffrey A Esq UNQUALIFIED45Anna Fali
1010Octavia MaletUnited Kingdom2026-05-16Feiner Bros NEGOTIATION69Bernardo Dominic
1011Mayumi KolmetzItaly2026-06-02Printing Dimensions PROPOSAL49Onyama Limba
1012Deepesh ChuiFrance2026-06-07Chemel, James L Cpa PROPOSAL90Xuxue Feng
1013Nicolas IturbideBrazil2026-05-15Morlong Associates QUALIFIED94Amy Elsner
1014Alejandro PerinFrance2026-05-25Morlong Associates UNQUALIFIED35Stephen Shaw
1015Ashley DoeGermany2026-05-15Chemel, James L Cpa QUALIFIED76Xuxue Feng
1016Leon OldroydItaly2026-05-22Truhlar And Truhlar Attys RENEWAL53Amy Elsner
1017Salvatore StockhamJapan2026-05-30Chanay, Jeffrey A Esq PROPOSAL14Anna Fali
1018Morrow RutaBrazil2026-05-23Dorl, James J Esq RENEWAL5Xuxue Feng
1019Alejandro PerinIndia2026-06-07Printing Dimensions RENEWAL99Bernardo Dominic
1020Faith GillianBrazil2026-05-27Rangoni Of Florence QUALIFIED63Ioni Bowcher
1021Mujtaba NickaBrazil2026-05-12Commercial Press UNQUALIFIED21Stephen Shaw
1022Emily WhobreyRussia2026-05-24Rousseaux, Michael Esq NEW26Asiya Javayant
1023Salvatore StockhamItaly2026-05-12Rangoni Of Florence NEW37Amy Elsner
1024Ivar PaprockiRussia2026-05-15Benton, John B Jr PROPOSAL77Amy Elsner
1025Deepesh ChuiArgentina2026-05-20Rousseaux, Michael Esq NEGOTIATION13Anna Fali
1026Isabel BowleyArgentina2026-06-01Chapman, Ross E Esq RENEWAL89Ivan Magalhaes
1027Juan WieserArgentina2026-05-22Printing Dimensions UNQUALIFIED7Elwin Sharvill
1028Alejandro PerinArgentina2026-06-02Chapman, Ross E Esq PROPOSAL8Bernardo Dominic
1029Alejandro PerinUnited Kingdom2026-06-01Commercial Press NEGOTIATION40Asiya Javayant
1030Darci PoquetteFrance2026-06-07Benton, John B Jr QUALIFIED95Bernardo Dominic
1031James ButtArgentina2026-05-17Feltz Printing Service RENEWAL72Stephen Shaw
1032Adams MorascaUnited Kingdom2026-05-13Rousseaux, Michael Esq NEW30Stephen Shaw
1033Alejandro PerinBrazil2026-05-30Feltz Printing Service NEW98Ioni Bowcher
1034Adams MorascaArgentina2026-05-24Commercial Press NEGOTIATION13Amy Elsner
1035Mayumi KolmetzArgentina2026-05-19Feiner Bros NEW66Asiya Javayant
1036Munro FerenczArgentina2026-06-01Buckley Miller Wright PROPOSAL72Stephen Shaw
1037Jones VocelkaRussia2026-05-14Rangoni Of Florence RENEWAL22Anna Fali
1038Aruna FigeroaGermany2026-05-24Feiner Bros PROPOSAL1Onyama Limba
1039Sinclair WaycottSpain2026-06-04Chanay, Jeffrey A Esq NEW48Amy Elsner
1040Jefferson SchemmerSpain2026-05-22Dorl, James J Esq RENEWAL15Amy Elsner
1041Wickens NestleRussia2026-05-27Buckley Miller Wright NEW21Amy Elsner
1042Juan WieserJapan2026-05-24Commercial Press PROPOSAL6Stephen Shaw
1043Alejandro PerinUnited Kingdom2026-06-08Feltz Printing Service PROPOSAL92Elwin Sharvill
1044Kaitlin OstroskyJapan2026-05-17Dorl, James J Esq UNQUALIFIED12Ivan Magalhaes
1045Aika InouyeSpain2026-06-04Feltz Printing Service QUALIFIED79Ivan Magalhaes
1046Julie StensethSpain2026-06-06Printing Dimensions NEW6Bernardo Dominic
1047Nicolas IturbideRussia2026-05-22Chapman, Ross E Esq NEGOTIATION16Ioni Bowcher
1048Leja CaldareraCanada2026-06-04Rangoni Of Florence PROPOSAL37Bernardo Dominic
1049Greenwood BologniaIndia2026-05-27Commercial Press PROPOSAL76Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyIndiaIoni Bowcher RENEWAL
Ricardo GauchoCanadaBernardo Dominic UNQUALIFIED
Greenwood BologniaSpainElwin Sharvill QUALIFIED
Rodrigues CampainBrazilIvan Magalhaes NEGOTIATION
Cody SaylorsAustraliaOnyama Limba PROPOSAL
Misaki RoysterIndiaXuxue Feng PROPOSAL
Aditya KuskoJapanElwin Sharvill NEW
Johnson SergiArgentinaStephen Shaw PROPOSAL
Smith GlickIndiaAsiya Javayant QUALIFIED
Jones VocelkaJapanAsiya Javayant RENEWAL
James ButtJapanStephen Shaw RENEWAL
Jefferson SchemmerItalyStephen Shaw PROPOSAL
Sinclair WaycottGermanyAmy Elsner NEGOTIATION
Costa DilliardCanadaAnna Fali UNQUALIFIED
Misaki RoysterBrazilIvan Magalhaes QUALIFIED
Tony FollerArgentinaBernardo Dominic NEW
Aruna FigeroaAustraliaIoni Bowcher NEW
Mayumi KolmetzUnited KingdomOnyama Limba NEGOTIATION
Mayumi KolmetzSpainIoni Bowcher UNQUALIFIED
Cody SaylorsArgentinaBernardo Dominic RENEWAL
David DarakjyRussiaElwin Sharvill NEW
David DarakjyAustraliaAmy Elsner NEW
Ashley DoeJapanAnna Fali NEW
Jefferson SchemmerIndiaXuxue Feng NEW
Jones VocelkaJapanElwin Sharvill NEW
Salvatore StockhamFranceIvan Magalhaes NEW
Johnson SergiCanadaBernardo Dominic RENEWAL
Julie StensethArgentinaStephen Shaw UNQUALIFIED
Arvin AlbaresArgentinaAsiya Javayant UNQUALIFIED
Cody SaylorsCanadaXuxue Feng NEW
Jennifer AmigonSpainElwin Sharvill QUALIFIED
Adams MorascaUnited KingdomBernardo Dominic PROPOSAL
Kaitlin OstroskyAustraliaAsiya Javayant PROPOSAL
Jefferson SchemmerBrazilBernardo Dominic NEW
Aruna FigeroaArgentinaAnna Fali RENEWAL
Aruna FigeroaIndiaOnyama Limba NEGOTIATION
Wickens NestleFranceAmy Elsner NEW
Aika InouyeAustraliaBernardo Dominic NEGOTIATION
Stacey MacleadCanadaAnna Fali NEW
Isabel BowleySpainXuxue Feng RENEWAL
Cody SaylorsGermanyXuxue Feng NEGOTIATION
Darci PoquetteFranceElwin Sharvill NEW
Murillo MaletIndiaAnna Fali NEW
Emily WhobreyGermanyOnyama Limba NEGOTIATION
Leon OldroydCanadaOnyama Limba QUALIFIED
Faith GillianArgentinaXuxue Feng NEW
James ButtIndiaAnna Fali RENEWAL
Octavia MaletArgentinaIoni Bowcher UNQUALIFIED
Murillo MaletFranceAnna Fali PROPOSAL
Mujtaba NickaCanadaAmy Elsner PROPOSAL
Frozen Columns
Name
David Darakjy
Rodrigues Campain
Aditya Kusko
Jones Vocelka
Aruna Figeroa
Leon Oldroyd
Costa Dilliard
Wickens Nestle
Mujtaba Nicka
Maisha Rulapaugh
Emily Whobrey
David Darakjy
Ashley Doe
Jennifer Amigon
Leon Oldroyd
Jennifer Amigon
Leon Oldroyd
Claire Tollner
Wickens Nestle
James Butt
James Butt
Ashley Doe
Costa Dilliard
Misaki Royster
James Butt
Faith Gillian
Sinclair Waycott
Juan Wieser
David Darakjy
Mujtaba Nicka
David Darakjy
Chavez Briddick
David Darakjy
Adams Morasca
Mayumi Kolmetz
Jeanfrancois Venere
Emily Whobrey
Julie Stenseth
Salvatore Stockham
Nicolas Iturbide
Isabel Bowley
Stacey Maclead
Morrow Ruta
Deepesh Chui
Misaki Royster
Faith Gillian
Mayumi Kolmetz
Maisha Rulapaugh
Salvatore Stockham
Kadeem Flosi
IdCountryDate
1000United Kingdom2026-06-05
1001Argentina2026-05-23
1002India2026-05-17
1003Russia2026-06-07
1004Spain2026-06-05
1005Japan2026-06-01
1006Argentina2026-05-28
1007India2026-05-18
1008Argentina2026-05-24
1009Japan2026-05-15
1010Australia2026-05-23
1011Russia2026-05-24
1012Italy2026-05-16
1013India2026-06-05
1014Germany2026-05-23
1015France2026-06-05
1016Brazil2026-06-04
1017Germany2026-06-02
1018Russia2026-06-03
1019France2026-05-11
1020Brazil2026-05-30
1021Italy2026-05-25
1022France2026-05-19
1023Spain2026-06-05
1024Canada2026-05-21
1025Russia2026-05-26
1026Japan2026-06-05
1027Australia2026-05-21
1028Australia2026-06-02
1029Spain2026-06-07
1030Australia2026-05-30
1031Germany2026-05-30
1032Japan2026-05-18
1033Argentina2026-05-25
1034Brazil2026-05-22
1035Spain2026-05-19
1036Australia2026-05-25
1037Germany2026-05-14
1038Japan2026-06-08
1039United Kingdom2026-05-29
1040Spain2026-05-15
1041Japan2026-05-25
1042Australia2026-05-14
1043Japan2026-05-27
1044Japan2026-06-01
1045Russia2026-05-16
1046India2026-05-17
1047Spain2026-05-14
1048Brazil2026-05-30
1049Japan2026-06-02

On-Demand Data

NameIdCountryDate
David Darakjy1000Italy2026-05-27
Maisha Rulapaugh1001Russia2026-06-01
Clifford Rim1002Germany2026-05-27
Mujtaba Nicka1003India2026-05-30
Johnson Sergi1004United Kingdom2026-05-23
Silvio Slusarski1005Brazil2026-06-07
Johnson Sergi1006France2026-05-23
Salvatore Stockham1007Spain2026-05-18
Silvio Slusarski1008Brazil2026-05-16
Clifford Rim1009India2026-06-02
Nicolas Iturbide1010Spain2026-06-06
Ashley Doe1011Spain2026-05-28
James Butt1012Spain2026-05-15
Jennifer Amigon1013Russia2026-06-08
Maisha Rulapaugh1014Italy2026-05-18
Adams Morasca1015Australia2026-05-18
Murillo Malet1016Canada2026-06-02
Deepesh Chui1017Germany2026-06-04
Jefferson Schemmer1018Brazil2026-05-15
Rodrigues Campain1019Italy2026-05-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickCanadaAsiya Javayant NEGOTIATION
Aruna FigeroaBrazilAnna Fali NEW
Tony FollerUnited KingdomAsiya Javayant RENEWAL
Smith GlickArgentinaBernardo Dominic PROPOSAL
Octavia MaletJapanBernardo Dominic UNQUALIFIED
Francesco ShinkoCanadaIvan Magalhaes QUALIFIED
Nicolas IturbideJapanIvan Magalhaes NEGOTIATION
Isabel BowleyArgentinaStephen Shaw QUALIFIED
Isabel BowleyUnited KingdomAmy Elsner PROPOSAL
Claire TollnerUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois VenereIndiaAnna Fali QUALIFIED
Antonio CaudyItalyAmy Elsner NEGOTIATION
Adams MorascaIndiaAnna Fali QUALIFIED
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Aika InouyeItalyIvan Magalhaes RENEWAL
Salvatore StockhamJapanBernardo Dominic NEGOTIATION
Claire TollnerSpainIoni Bowcher PROPOSAL
Jeanfrancois VenereArgentinaXuxue Feng QUALIFIED
Ashley DoeItalyElwin Sharvill UNQUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher UNQUALIFIED
Francesco ShinkoBrazilAsiya Javayant NEW
Munro FerenczJapanAnna Fali RENEWAL
Silvio SlusarskiJapanOnyama Limba UNQUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois VenereArgentinaIoni Bowcher NEGOTIATION
Leon OldroydAustraliaXuxue Feng QUALIFIED
Morrow RutaGermanyStephen Shaw PROPOSAL
Jones VocelkaArgentinaOnyama Limba NEGOTIATION
Aditya KuskoGermanyIoni Bowcher RENEWAL
Misaki RoysterUnited KingdomXuxue Feng NEW
Emily WhobreyUnited KingdomStephen Shaw RENEWAL
Aika InouyeItalyAmy Elsner NEGOTIATION
Sinclair WaycottJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereArgentinaAnna Fali NEGOTIATION
Murillo MaletItalyIoni Bowcher PROPOSAL
Salvatore StockhamFranceIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaIvan Magalhaes NEW
Johnson SergiArgentinaAmy Elsner NEW
Emily WhobreyJapanXuxue Feng PROPOSAL
Salvatore StockhamUnited KingdomIoni Bowcher 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>