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
Greenwood BologniaFranceOnyama Limba RENEWAL
Misaki RoysterCanadaIvan Magalhaes NEGOTIATION
Tony FollerCanadaStephen Shaw RENEWAL
Arvin AlbaresCanadaAmy Elsner UNQUALIFIED
Cody SaylorsBrazilAnna Fali PROPOSAL
Izzy GarufiJapanElwin Sharvill PROPOSAL
Emily WhobreyArgentinaAmy Elsner QUALIFIED
Aditya KuskoAustraliaAmy Elsner PROPOSAL
Misaki RoysterIndiaIoni Bowcher NEGOTIATION
Claire TollnerIndiaAsiya Javayant NEW
Johnson SergiBrazilAmy Elsner NEW
Adams MorascaCanadaIoni Bowcher RENEWAL
David DarakjyGermanyAsiya Javayant NEW
Tony FollerJapanOnyama Limba NEGOTIATION
Costa DilliardIndiaOnyama Limba RENEWAL
Claire TollnerRussiaAmy Elsner NEW
Nicolas IturbideRussiaAnna Fali RENEWAL
Emily WhobreyItalyOnyama Limba NEGOTIATION
Morrow RutaBrazilAmy Elsner NEW
Salvatore StockhamJapanStephen Shaw NEW
Leja CaldareraIndiaAsiya Javayant NEW
Rodrigues CampainAustraliaAnna Fali UNQUALIFIED
Smith GlickGermanyOnyama Limba NEW
Emily WhobreyFranceIvan Magalhaes PROPOSAL
Mujtaba NickaArgentinaAmy Elsner PROPOSAL
Ricardo GauchoItalyIvan Magalhaes RENEWAL
Costa DilliardBrazilAnna Fali QUALIFIED
Arvin AlbaresBrazilIoni Bowcher QUALIFIED
Aditya KuskoJapanStephen Shaw NEGOTIATION
Stacey MacleadArgentinaIvan Magalhaes NEW
Smith GlickUnited KingdomOnyama Limba NEGOTIATION
Costa DilliardUnited KingdomAnna Fali RENEWAL
Emily WhobreyJapanStephen Shaw QUALIFIED
Costa DilliardAustraliaAmy Elsner NEW
Jones VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Francesco ShinkoIndiaIvan Magalhaes QUALIFIED
Kadeem FlosiRussiaOnyama Limba RENEWAL
Octavia MaletAustraliaIvan Magalhaes NEGOTIATION
Ashley DoeItalyIvan Magalhaes NEGOTIATION
Faith GillianAustraliaStephen Shaw NEGOTIATION
Misaki RoysterJapanIoni Bowcher RENEWAL
Francesco ShinkoAustraliaElwin Sharvill PROPOSAL
Juan WieserRussiaStephen Shaw UNQUALIFIED
Greenwood BologniaIndiaXuxue Feng UNQUALIFIED
Salvatore StockhamRussiaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali NEGOTIATION
Smith GlickFranceOnyama Limba NEW
Stacey MacleadJapanIoni Bowcher QUALIFIED
Ivar PaprockiAustraliaOnyama Limba NEW
Aruna FigeroaBrazilOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow RutaIndiaIoni Bowcher UNQUALIFIED
Misaki RoysterAustraliaAmy Elsner QUALIFIED
Morrow RutaItalyIoni Bowcher UNQUALIFIED
Sinclair WaycottCanadaElwin Sharvill UNQUALIFIED
Emily WhobreyJapanBernardo Dominic UNQUALIFIED
Cody SaylorsRussiaOnyama Limba PROPOSAL
Leon OldroydJapanAmy Elsner NEW
Murillo MaletFranceAnna Fali NEW
Maisha RulapaughRussiaAnna Fali UNQUALIFIED
Mayumi KolmetzRussiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinJapan2026-03-23Chapman, Ross E Esq NEW54Bernardo Dominic
1001Cody SaylorsBrazil2026-04-04Chemel, James L Cpa RENEWAL67Asiya Javayant
1002Kadeem FlosiCanada2026-03-26Chanay, Jeffrey A Esq UNQUALIFIED91Ioni Bowcher
1003Izzy GarufiFrance2026-04-01Feltz Printing Service QUALIFIED13Xuxue Feng
1004Jones VocelkaFrance2026-04-14Chapman, Ross E Esq UNQUALIFIED46Stephen Shaw
1005Jefferson SchemmerRussia2026-04-03Feltz Printing Service UNQUALIFIED72Xuxue Feng
1006Isabel BowleyRussia2026-03-29Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1007Jefferson SchemmerIndia2026-04-14Printing Dimensions RENEWAL80Bernardo Dominic
1008Maria MarrierRussia2026-03-22Buckley Miller Wright UNQUALIFIED83Asiya Javayant
1009Izzy GarufiAustralia2026-03-25Chemel, James L Cpa RENEWAL84Stephen Shaw
1010Kaitlin OstroskyAustralia2026-04-16Truhlar And Truhlar Attys PROPOSAL26Stephen Shaw
1011Johnson SergiItaly2026-03-23Morlong Associates UNQUALIFIED1Onyama Limba
1012Ashley DoeBrazil2026-04-15Rangoni Of Florence NEGOTIATION84Amy Elsner
1013Ivar PaprockiCanada2026-03-25Feltz Printing Service NEW15Xuxue Feng
1014Maria MarrierRussia2026-03-28Feltz Printing Service QUALIFIED34Ioni Bowcher
1015Julie StensethAustralia2026-04-05Feltz Printing Service QUALIFIED67Ivan Magalhaes
1016Faith GillianArgentina2026-03-31Benton, John B Jr RENEWAL92Ioni Bowcher
1017Ivar PaprockiGermany2026-04-11Dorl, James J Esq UNQUALIFIED59Xuxue Feng
1018Cody SaylorsRussia2026-04-01Chapman, Ross E Esq RENEWAL67Onyama Limba
1019David DarakjyBrazil2026-03-22Chanay, Jeffrey A Esq NEW46Xuxue Feng
1020Adams MorascaFrance2026-03-30Chapman, Ross E Esq NEGOTIATION18Asiya Javayant
1021James ButtRussia2026-04-18Chanay, Jeffrey A Esq PROPOSAL68Bernardo Dominic
1022Cody SaylorsItaly2026-04-13Truhlar And Truhlar Attys NEGOTIATION66Elwin Sharvill
1023Wickens NestleFrance2026-04-08Commercial Press NEW1Elwin Sharvill
1024Ricardo GauchoCanada2026-04-03Truhlar And Truhlar Attys QUALIFIED92Asiya Javayant
1025Kaitlin OstroskySpain2026-04-08Chemel, James L Cpa NEW3Stephen Shaw
1026Tony FollerItaly2026-03-24Commercial Press NEW13Asiya Javayant
1027Jeanfrancois VenereSpain2026-04-17Feltz Printing Service QUALIFIED27Onyama Limba
1028Costa DilliardCanada2026-03-22Buckley Miller Wright PROPOSAL76Stephen Shaw
1029Ricardo GauchoAustralia2026-04-19Dorl, James J Esq PROPOSAL13Onyama Limba
1030Costa DilliardBrazil2026-04-18King, Christopher A Esq QUALIFIED58Xuxue Feng
1031Aruna FigeroaSpain2026-03-22Benton, John B Jr RENEWAL33Stephen Shaw
1032Greenwood BologniaSpain2026-03-24Printing Dimensions NEGOTIATION87Amy Elsner
1033Octavia MaletIndia2026-03-27Feiner Bros NEGOTIATION39Bernardo Dominic
1034Ricardo GauchoFrance2026-04-12Chapman, Ross E Esq RENEWAL79Ivan Magalhaes
1035Misaki RoysterArgentina2026-04-10Dorl, James J Esq PROPOSAL3Onyama Limba
1036Johnson SergiArgentina2026-03-24Morlong Associates NEW63Amy Elsner
1037Nicolas IturbideItaly2026-04-09Rangoni Of Florence NEW66Onyama Limba
1038Mujtaba NickaItaly2026-04-02Dorl, James J Esq NEW34Anna Fali
1039Ashley DoeBrazil2026-03-23Rangoni Of Florence RENEWAL81Amy Elsner
1040Sinclair WaycottBrazil2026-04-19Benton, John B Jr NEW71Onyama Limba
1041David DarakjyArgentina2026-04-06Truhlar And Truhlar Attys QUALIFIED34Elwin Sharvill
1042Leon OldroydItaly2026-04-07Chanay, Jeffrey A Esq NEW44Amy Elsner
1043Clifford RimBrazil2026-04-09King, Christopher A Esq PROPOSAL44Ioni Bowcher
1044Jones VocelkaRussia2026-04-09Rousseaux, Michael Esq NEGOTIATION17Ioni Bowcher
1045Johnson SergiAustralia2026-04-03Commercial Press PROPOSAL55Anna Fali
1046Octavia MaletRussia2026-04-01Chapman, Ross E Esq NEGOTIATION22Bernardo Dominic
1047Murillo MaletRussia2026-04-11Truhlar And Truhlar Attys PROPOSAL97Amy Elsner
1048Morrow RutaItaly2026-03-28Morlong Associates RENEWAL96Ivan Magalhaes
1049Aruna FigeroaItaly2026-04-10Benton, John B Jr QUALIFIED28Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraGermanyAmy Elsner NEW
Mayumi KolmetzAustraliaXuxue Feng NEW
Wickens NestleUnited KingdomAnna Fali UNQUALIFIED
Aditya KuskoFranceElwin Sharvill PROPOSAL
Wickens NestleBrazilAmy Elsner NEGOTIATION
Ricardo GauchoBrazilOnyama Limba NEW
Juan WieserRussiaAnna Fali NEGOTIATION
Smith GlickAustraliaXuxue Feng NEW
Arvin AlbaresCanadaBernardo Dominic NEGOTIATION
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Salvatore StockhamFranceBernardo Dominic NEGOTIATION
Leon OldroydItalyStephen Shaw NEGOTIATION
Sinclair WaycottRussiaIoni Bowcher UNQUALIFIED
Leon OldroydUnited KingdomAmy Elsner NEW
Ashley DoeGermanyElwin Sharvill NEW
Chavez BriddickSpainXuxue Feng RENEWAL
Aruna FigeroaAustraliaIoni Bowcher NEW
Izzy GarufiItalyIvan Magalhaes PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant NEGOTIATION
Misaki RoysterIndiaOnyama Limba PROPOSAL
Ricardo GauchoUnited KingdomAmy Elsner PROPOSAL
Jefferson SchemmerBrazilBernardo Dominic NEW
Costa DilliardAustraliaXuxue Feng NEGOTIATION
Morrow RutaUnited KingdomBernardo Dominic NEW
Jones VocelkaRussiaXuxue Feng PROPOSAL
Arvin AlbaresItalyAsiya Javayant QUALIFIED
Aditya KuskoCanadaAsiya Javayant RENEWAL
Emily WhobreyBrazilIvan Magalhaes PROPOSAL
Jennifer AmigonGermanyElwin Sharvill QUALIFIED
Izzy GarufiUnited KingdomXuxue Feng RENEWAL
Jones VocelkaItalyIvan Magalhaes PROPOSAL
Leon OldroydIndiaAmy Elsner PROPOSAL
Juan WieserRussiaBernardo Dominic UNQUALIFIED
Salvatore StockhamGermanyAmy Elsner UNQUALIFIED
David DarakjyIndiaBernardo Dominic NEGOTIATION
Arvin AlbaresArgentinaStephen Shaw UNQUALIFIED
Deepesh ChuiAustraliaXuxue Feng RENEWAL
Nicolas IturbideGermanyOnyama Limba NEW
Costa DilliardItalyElwin Sharvill NEW
Rodrigues CampainAustraliaAnna Fali PROPOSAL
Silvio SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Faith GillianGermanyIvan Magalhaes NEW
Kadeem FlosiGermanyStephen Shaw NEGOTIATION
Murillo MaletUnited KingdomIvan Magalhaes PROPOSAL
Julie StensethArgentinaIoni Bowcher NEW
Mujtaba NickaBrazilIvan Magalhaes NEGOTIATION
Murillo MaletIndiaBernardo Dominic NEGOTIATION
Leon OldroydIndiaXuxue Feng PROPOSAL
Rodrigues CampainAustraliaAmy Elsner NEW
Murillo MaletIndiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Kaitlin Ostrosky
Chavez Briddick
David Darakjy
Rodrigues Campain
Isabel Bowley
Maisha Rulapaugh
Faith Gillian
Leja Caldarera
David Darakjy
Alejandro Perin
Antonio Caudy
Johnson Sergi
Cody Saylors
Darci Poquette
Claire Tollner
Leon Oldroyd
Kaitlin Ostrosky
Wickens Nestle
Aditya Kusko
Jeanfrancois Venere
Leon Oldroyd
Mujtaba Nicka
Smith Glick
Chavez Briddick
Jeanfrancois Venere
Isabel Bowley
Leja Caldarera
Ricardo Gaucho
Silvio Slusarski
Maria Marrier
Mayumi Kolmetz
Darci Poquette
Adams Morasca
Faith Gillian
Tony Foller
Morrow Ruta
Morrow Ruta
Maria Marrier
Darci Poquette
Aditya Kusko
Tony Foller
Emily Whobrey
Aika Inouye
Sinclair Waycott
Faith Gillian
Ricardo Gaucho
Maria Marrier
Morrow Ruta
Faith Gillian
Munro Ferencz
IdCountryDate
1000India2026-04-16
1001Australia2026-03-26
1002Brazil2026-03-31
1003Australia2026-04-15
1004Canada2026-04-09
1005Russia2026-04-13
1006Russia2026-04-01
1007United Kingdom2026-03-28
1008Argentina2026-04-12
1009India2026-04-16
1010United Kingdom2026-04-11
1011France2026-04-12
1012France2026-04-13
1013France2026-04-10
1014Spain2026-04-17
1015Brazil2026-04-05
1016Japan2026-03-23
1017United Kingdom2026-04-02
1018Germany2026-04-09
1019Spain2026-04-07
1020United Kingdom2026-03-29
1021Russia2026-04-11
1022Argentina2026-04-13
1023Spain2026-04-09
1024France2026-04-10
1025Brazil2026-03-31
1026United Kingdom2026-04-14
1027Argentina2026-04-20
1028India2026-03-29
1029France2026-04-10
1030India2026-04-07
1031Russia2026-04-09
1032Brazil2026-04-07
1033Canada2026-03-30
1034Australia2026-04-04
1035Russia2026-04-12
1036Brazil2026-04-08
1037France2026-04-19
1038Italy2026-04-09
1039Spain2026-04-11
1040Argentina2026-03-25
1041Canada2026-04-02
1042Japan2026-04-04
1043Japan2026-04-12
1044Japan2026-03-28
1045Brazil2026-03-31
1046United Kingdom2026-03-30
1047Italy2026-04-16
1048Italy2026-03-26
1049Argentina2026-03-29

On-Demand Data

NameIdCountryDate
Smith Glick1000Russia2026-04-08
Juan Wieser1001Australia2026-03-27
Salvatore Stockham1002Canada2026-04-03
Juan Wieser1003Germany2026-03-29
Mujtaba Nicka1004Russia2026-04-08
Izzy Garufi1005Brazil2026-04-01
Francesco Shinko1006Japan2026-03-23
Emily Whobrey1007Russia2026-04-01
Julie Stenseth1008Russia2026-03-30
Mayumi Kolmetz1009Japan2026-04-15
Jefferson Schemmer1010Spain2026-04-08
Tony Foller1011Australia2026-04-07
Izzy Garufi1012India2026-03-26
Murillo Malet1013Japan2026-04-20
Faith Gillian1014Brazil2026-04-20
Aruna Figeroa1015Brazil2026-04-16
James Butt1016Australia2026-03-24
Johnson Sergi1017Spain2026-03-28
Darci Poquette1018France2026-04-14
Greenwood Bolognia1019India2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyUnited KingdomAnna Fali UNQUALIFIED
Julie StensethArgentinaElwin Sharvill PROPOSAL
Alejandro PerinBrazilAmy Elsner RENEWAL
Mujtaba NickaUnited KingdomXuxue Feng NEGOTIATION
Alejandro PerinCanadaAsiya Javayant UNQUALIFIED
Arvin AlbaresBrazilXuxue Feng QUALIFIED
Claire TollnerBrazilElwin Sharvill NEW
Ivar PaprockiArgentinaOnyama Limba QUALIFIED
Morrow RutaAustraliaAnna Fali RENEWAL
Francesco ShinkoArgentinaElwin Sharvill QUALIFIED
Kaitlin OstroskyAustraliaElwin Sharvill RENEWAL
Cody SaylorsJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughItalyAmy Elsner UNQUALIFIED
Nicolas IturbideFranceXuxue Feng PROPOSAL
Murillo MaletAustraliaAsiya Javayant UNQUALIFIED
Deepesh ChuiItalyAsiya Javayant NEGOTIATION
Kadeem FlosiGermanyBernardo Dominic PROPOSAL
Murillo MaletBrazilOnyama Limba UNQUALIFIED
Alejandro PerinGermanyOnyama Limba RENEWAL
Antonio CaudySpainIvan Magalhaes PROPOSAL
Chavez BriddickFranceXuxue Feng UNQUALIFIED
Kadeem FlosiIndiaAnna Fali NEGOTIATION
Adams MorascaGermanyXuxue Feng NEW
Clifford RimSpainStephen Shaw PROPOSAL
Isabel BowleyJapanStephen Shaw QUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic RENEWAL
Aditya KuskoBrazilStephen Shaw RENEWAL
Aditya KuskoArgentinaIoni Bowcher NEW
Jeanfrancois VenereGermanyIvan Magalhaes NEW
Aruna FigeroaUnited KingdomIoni Bowcher NEW
Tony FollerFranceAsiya Javayant PROPOSAL
Tony FollerGermanyIoni Bowcher NEGOTIATION
Jones VocelkaSpainXuxue Feng PROPOSAL
Arvin AlbaresBrazilBernardo Dominic PROPOSAL
Ivar PaprockiBrazilXuxue Feng PROPOSAL
Misaki RoysterUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonIndiaXuxue Feng NEGOTIATION
Misaki RoysterArgentinaAnna Fali QUALIFIED
Arvin AlbaresGermanyElwin Sharvill NEW
Morrow RutaUnited KingdomOnyama Limba RENEWAL

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