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
Cody SaylorsGermanyElwin Sharvill UNQUALIFIED
Silvio SlusarskiCanadaAnna Fali QUALIFIED
Smith GlickIndiaAmy Elsner NEW
Emily WhobreySpainXuxue Feng PROPOSAL
Ivar PaprockiGermanyAnna Fali QUALIFIED
Adams MorascaGermanyAmy Elsner PROPOSAL
Julie StensethSpainAmy Elsner RENEWAL
Munro FerenczFranceOnyama Limba NEGOTIATION
Kadeem FlosiItalyIoni Bowcher NEW
Clifford RimCanadaAsiya Javayant PROPOSAL
Jefferson SchemmerArgentinaAmy Elsner NEW
Ivar PaprockiSpainStephen Shaw PROPOSAL
Juan WieserRussiaAmy Elsner PROPOSAL
Salvatore StockhamCanadaIoni Bowcher NEW
Aditya KuskoItalyStephen Shaw NEW
Salvatore StockhamIndiaIvan Magalhaes NEGOTIATION
Leon OldroydIndiaAnna Fali NEW
Jeanfrancois VenereFranceIvan Magalhaes NEW
James ButtItalyAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomOnyama Limba QUALIFIED
Chavez BriddickRussiaBernardo Dominic UNQUALIFIED
James ButtSpainStephen Shaw PROPOSAL
Morrow RutaBrazilIoni Bowcher NEW
Sinclair WaycottArgentinaStephen Shaw PROPOSAL
Jennifer AmigonItalyElwin Sharvill RENEWAL
Leja CaldareraGermanyIvan Magalhaes NEW
Emily WhobreyFranceAnna Fali PROPOSAL
Morrow RutaIndiaOnyama Limba PROPOSAL
Greenwood BologniaJapanAmy Elsner RENEWAL
Smith GlickArgentinaStephen Shaw PROPOSAL
Ivar PaprockiArgentinaElwin Sharvill NEGOTIATION
Nicolas IturbideUnited KingdomBernardo Dominic NEW
Darci PoquetteArgentinaOnyama Limba QUALIFIED
Smith GlickAustraliaAnna Fali NEW
Ricardo GauchoCanadaAmy Elsner RENEWAL
Deepesh ChuiJapanOnyama Limba NEW
Chavez BriddickRussiaElwin Sharvill PROPOSAL
Julie StensethItalyElwin Sharvill RENEWAL
Francesco ShinkoJapanStephen Shaw QUALIFIED
Johnson SergiItalyElwin Sharvill NEGOTIATION
Morrow RutaIndiaBernardo Dominic RENEWAL
Antonio CaudyArgentinaIoni Bowcher NEGOTIATION
Claire TollnerCanadaElwin Sharvill PROPOSAL
Julie StensethFranceIoni Bowcher RENEWAL
Arvin AlbaresFranceStephen Shaw NEW
Stacey MacleadItalyIvan Magalhaes NEW
Kaitlin OstroskyIndiaElwin Sharvill QUALIFIED
Emily WhobreyFranceAnna Fali UNQUALIFIED
Maisha RulapaughItalyIvan Magalhaes PROPOSAL
Greenwood BologniaAustraliaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Adams MorascaUnited KingdomAnna Fali RENEWAL
Aika InouyeJapanStephen Shaw PROPOSAL
Clifford RimItalyBernardo Dominic UNQUALIFIED
Isabel BowleyItalyIvan Magalhaes NEGOTIATION
Morrow RutaJapanElwin Sharvill PROPOSAL
Mujtaba NickaRussiaIvan Magalhaes PROPOSAL
Antonio CaudyJapanIoni Bowcher NEGOTIATION
Jennifer AmigonCanadaElwin Sharvill QUALIFIED
Ivar PaprockiSpainElwin Sharvill QUALIFIED
James ButtItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleySpain2026-04-02Rousseaux, Michael Esq QUALIFIED11Stephen Shaw
1001Aruna FigeroaCanada2026-04-12Printing Dimensions NEW61Anna Fali
1002Deepesh ChuiItaly2026-04-25Buckley Miller Wright NEW52Onyama Limba
1003Jones VocelkaArgentina2026-04-25Rousseaux, Michael Esq NEGOTIATION76Onyama Limba
1004Aditya KuskoAustralia2026-04-26Buckley Miller Wright NEW24Onyama Limba
1005Sinclair WaycottFrance2026-04-06Dorl, James J Esq QUALIFIED92Amy Elsner
1006Stacey MacleadFrance2026-04-16Rousseaux, Michael Esq RENEWAL76Ioni Bowcher
1007Tony FollerRussia2026-04-20Buckley Miller Wright NEW87Ivan Magalhaes
1008Costa DilliardGermany2026-04-10Morlong Associates QUALIFIED72Stephen Shaw
1009Alejandro PerinIndia2026-04-17Printing Dimensions PROPOSAL73Amy Elsner
1010Rodrigues CampainRussia2026-04-22Benton, John B Jr QUALIFIED68Anna Fali
1011Costa DilliardFrance2026-04-28Buckley Miller Wright PROPOSAL99Elwin Sharvill
1012Claire TollnerFrance2026-04-19Feiner Bros QUALIFIED62Asiya Javayant
1013Mujtaba NickaArgentina2026-04-16Feltz Printing Service PROPOSAL15Asiya Javayant
1014Wickens NestleCanada2026-04-14Chanay, Jeffrey A Esq UNQUALIFIED4Asiya Javayant
1015Isabel BowleyUnited Kingdom2026-04-07King, Christopher A Esq QUALIFIED76Xuxue Feng
1016Alejandro PerinBrazil2026-04-23Commercial Press QUALIFIED0Elwin Sharvill
1017Mayumi KolmetzFrance2026-05-01Rangoni Of Florence QUALIFIED19Ivan Magalhaes
1018Murillo MaletGermany2026-04-07Chapman, Ross E Esq UNQUALIFIED11Ivan Magalhaes
1019Leja CaldareraSpain2026-04-15Feltz Printing Service RENEWAL76Anna Fali
1020Octavia MaletItaly2026-04-22Feltz Printing Service NEGOTIATION19Asiya Javayant
1021Clifford RimArgentina2026-04-24Benton, John B Jr QUALIFIED12Amy Elsner
1022Nicolas IturbideArgentina2026-04-13Rousseaux, Michael Esq NEGOTIATION39Elwin Sharvill
1023Clifford RimUnited Kingdom2026-04-13Feiner Bros NEW39Bernardo Dominic
1024Leon OldroydItaly2026-04-06Feltz Printing Service PROPOSAL99Xuxue Feng
1025Kadeem FlosiGermany2026-04-28Chanay, Jeffrey A Esq PROPOSAL12Elwin Sharvill
1026Julie StensethCanada2026-04-02Chanay, Jeffrey A Esq UNQUALIFIED66Bernardo Dominic
1027Alejandro PerinGermany2026-04-07Printing Dimensions UNQUALIFIED21Onyama Limba
1028Aruna FigeroaCanada2026-04-21Chemel, James L Cpa QUALIFIED45Xuxue Feng
1029Kaitlin OstroskyBrazil2026-04-27Commercial Press PROPOSAL53Asiya Javayant
1030Octavia MaletArgentina2026-04-23Feltz Printing Service RENEWAL27Bernardo Dominic
1031Salvatore StockhamRussia2026-04-15Morlong Associates PROPOSAL64Anna Fali
1032Antonio CaudyIndia2026-04-20Rangoni Of Florence NEGOTIATION5Onyama Limba
1033Wickens NestleItaly2026-04-23King, Christopher A Esq UNQUALIFIED56Ivan Magalhaes
1034Maria MarrierUnited Kingdom2026-04-30Printing Dimensions RENEWAL80Ioni Bowcher
1035Jeanfrancois VenereUnited Kingdom2026-04-07Chanay, Jeffrey A Esq NEGOTIATION1Ioni Bowcher
1036Maisha RulapaughFrance2026-04-25Truhlar And Truhlar Attys RENEWAL70Amy Elsner
1037Misaki RoysterArgentina2026-04-02Chemel, James L Cpa NEGOTIATION10Amy Elsner
1038Isabel BowleyCanada2026-04-14Rangoni Of Florence QUALIFIED35Amy Elsner
1039Ricardo GauchoBrazil2026-04-02Feiner Bros RENEWAL13Stephen Shaw
1040Jeanfrancois VenereJapan2026-04-28Truhlar And Truhlar Attys UNQUALIFIED83Bernardo Dominic
1041Adams MorascaArgentina2026-04-20Rousseaux, Michael Esq RENEWAL97Asiya Javayant
1042Maisha RulapaughRussia2026-04-22Dorl, James J Esq PROPOSAL73Stephen Shaw
1043Darci PoquetteSpain2026-04-22Feltz Printing Service NEGOTIATION50Ioni Bowcher
1044Rodrigues CampainAustralia2026-04-05Feiner Bros PROPOSAL22Onyama Limba
1045Alejandro PerinIndia2026-04-25Dorl, James J Esq NEGOTIATION63Stephen Shaw
1046Clifford RimSpain2026-04-03Morlong Associates UNQUALIFIED33Ivan Magalhaes
1047Munro FerenczSpain2026-04-10Chanay, Jeffrey A Esq UNQUALIFIED60Amy Elsner
1048Claire TollnerItaly2026-04-17Morlong Associates NEGOTIATION21Xuxue Feng
1049Faith GillianFrance2026-04-04Rangoni Of Florence NEGOTIATION45Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereUnited KingdomAnna Fali RENEWAL
Emily WhobreyRussiaStephen Shaw RENEWAL
Rodrigues CampainBrazilXuxue Feng UNQUALIFIED
Chavez BriddickUnited KingdomIoni Bowcher PROPOSAL
Sinclair WaycottItalyBernardo Dominic PROPOSAL
Smith GlickFranceIoni Bowcher RENEWAL
Munro FerenczItalyAnna Fali UNQUALIFIED
Jefferson SchemmerSpainAsiya Javayant QUALIFIED
Claire TollnerGermanyElwin Sharvill NEW
Clifford RimItalyOnyama Limba NEW
Ricardo GauchoSpainElwin Sharvill NEW
Sinclair WaycottRussiaAmy Elsner RENEWAL
Deepesh ChuiFranceAmy Elsner QUALIFIED
Darci PoquetteRussiaBernardo Dominic RENEWAL
Isabel BowleyJapanStephen Shaw NEGOTIATION
Clifford RimGermanyIoni Bowcher QUALIFIED
Rodrigues CampainIndiaElwin Sharvill NEW
Kadeem FlosiItalyIvan Magalhaes QUALIFIED
Leja CaldareraUnited KingdomXuxue Feng NEW
Adams MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Claire TollnerCanadaOnyama Limba RENEWAL
Cody SaylorsGermanyAmy Elsner QUALIFIED
Mayumi KolmetzAustraliaAsiya Javayant NEW
Juan WieserIndiaIvan Magalhaes UNQUALIFIED
Nicolas IturbideCanadaAsiya Javayant PROPOSAL
Jennifer AmigonJapanBernardo Dominic NEW
Kadeem FlosiUnited KingdomStephen Shaw QUALIFIED
Murillo MaletGermanyAnna Fali UNQUALIFIED
Octavia MaletIndiaStephen Shaw NEGOTIATION
Misaki RoysterArgentinaAnna Fali NEW
Salvatore StockhamUnited KingdomXuxue Feng NEW
Maisha RulapaughItalyElwin Sharvill RENEWAL
Tony FollerSpainIvan Magalhaes NEGOTIATION
Costa DilliardBrazilAmy Elsner UNQUALIFIED
Costa DilliardJapanIoni Bowcher RENEWAL
Costa DilliardFranceXuxue Feng NEGOTIATION
Clifford RimArgentinaStephen Shaw PROPOSAL
Izzy GarufiBrazilAsiya Javayant UNQUALIFIED
Juan WieserIndiaAmy Elsner RENEWAL
Francesco ShinkoSpainXuxue Feng PROPOSAL
Silvio SlusarskiJapanXuxue Feng RENEWAL
Juan WieserUnited KingdomBernardo Dominic NEW
James ButtUnited KingdomAsiya Javayant NEGOTIATION
Sinclair WaycottIndiaAnna Fali PROPOSAL
Julie StensethRussiaBernardo Dominic PROPOSAL
Kadeem FlosiUnited KingdomAmy Elsner PROPOSAL
Nicolas IturbideUnited KingdomBernardo Dominic NEW
Jefferson SchemmerIndiaXuxue Feng RENEWAL
Clifford RimGermanyAsiya Javayant QUALIFIED
Octavia MaletJapanIoni Bowcher NEGOTIATION
Frozen Columns
Name
Smith Glick
Claire Tollner
Munro Ferencz
Ashley Doe
Izzy Garufi
Mayumi Kolmetz
Darci Poquette
Sinclair Waycott
Adams Morasca
Jefferson Schemmer
Alejandro Perin
Cody Saylors
Izzy Garufi
Clifford Rim
Jeanfrancois Venere
Aika Inouye
Salvatore Stockham
Stacey Maclead
Jefferson Schemmer
Julie Stenseth
Silvio Slusarski
Aika Inouye
Maisha Rulapaugh
Salvatore Stockham
Aruna Figeroa
Jones Vocelka
Aika Inouye
Mayumi Kolmetz
Munro Ferencz
Kadeem Flosi
Clifford Rim
Emily Whobrey
Sinclair Waycott
Deepesh Chui
Emily Whobrey
Murillo Malet
Izzy Garufi
Maria Marrier
Maisha Rulapaugh
Emily Whobrey
Leja Caldarera
Mujtaba Nicka
Julie Stenseth
Aika Inouye
Nicolas Iturbide
Jefferson Schemmer
Munro Ferencz
Munro Ferencz
Jefferson Schemmer
Mujtaba Nicka
IdCountryDate
1000Brazil2026-04-11
1001India2026-04-05
1002Japan2026-04-19
1003Argentina2026-04-25
1004France2026-04-19
1005Australia2026-04-27
1006Spain2026-04-11
1007Italy2026-04-20
1008Italy2026-04-14
1009Brazil2026-04-22
1010Brazil2026-04-15
1011Spain2026-04-06
1012Germany2026-04-21
1013Japan2026-04-17
1014Argentina2026-04-30
1015Australia2026-04-03
1016Japan2026-04-02
1017Italy2026-04-28
1018Russia2026-04-14
1019France2026-04-18
1020Russia2026-04-21
1021Australia2026-04-23
1022Russia2026-04-13
1023Japan2026-04-03
1024Spain2026-04-22
1025France2026-04-13
1026United Kingdom2026-04-04
1027Canada2026-04-04
1028Argentina2026-04-07
1029Germany2026-04-30
1030Japan2026-04-28
1031Australia2026-04-29
1032Spain2026-04-19
1033Spain2026-05-01
1034Argentina2026-04-19
1035Italy2026-04-04
1036India2026-04-19
1037United Kingdom2026-04-22
1038United Kingdom2026-04-26
1039Argentina2026-04-04
1040France2026-04-30
1041Australia2026-04-18
1042Japan2026-04-03
1043Brazil2026-04-26
1044France2026-04-20
1045Germany2026-04-09
1046Brazil2026-04-26
1047Japan2026-04-28
1048Japan2026-04-21
1049Australia2026-04-21

On-Demand Data

NameIdCountryDate
Munro Ferencz1000United Kingdom2026-04-13
Kadeem Flosi1001Canada2026-04-04
Aditya Kusko1002United Kingdom2026-04-08
Mujtaba Nicka1003Germany2026-04-04
Costa Dilliard1004Brazil2026-04-06
Darci Poquette1005Japan2026-04-29
Claire Tollner1006Australia2026-04-13
Munro Ferencz1007Italy2026-04-10
Nicolas Iturbide1008Japan2026-04-19
Munro Ferencz1009Germany2026-04-21
Deepesh Chui1010United Kingdom2026-04-10
Izzy Garufi1011Russia2026-04-09
Aika Inouye1012United Kingdom2026-04-07
Octavia Malet1013Russia2026-04-23
Rodrigues Campain1014Japan2026-04-20
Silvio Slusarski1015Argentina2026-04-06
James Butt1016United Kingdom2026-04-12
Salvatore Stockham1017Japan2026-04-22
Aditya Kusko1018Spain2026-04-24
Ricardo Gaucho1019United Kingdom2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilStephen Shaw PROPOSAL
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Alejandro PerinGermanyBernardo Dominic PROPOSAL
Aditya KuskoArgentinaIoni Bowcher UNQUALIFIED
Claire TollnerIndiaStephen Shaw PROPOSAL
Stacey MacleadArgentinaBernardo Dominic RENEWAL
Sinclair WaycottIndiaAmy Elsner NEGOTIATION
Misaki RoysterCanadaAnna Fali RENEWAL
David DarakjyIndiaStephen Shaw RENEWAL
Alejandro PerinItalyBernardo Dominic QUALIFIED
Jones VocelkaAustraliaOnyama Limba QUALIFIED
Emily WhobreyCanadaOnyama Limba NEW
Munro FerenczIndiaXuxue Feng QUALIFIED
Kadeem FlosiSpainAmy Elsner UNQUALIFIED
Tony FollerItalyAsiya Javayant UNQUALIFIED
Julie StensethJapanIvan Magalhaes NEW
Stacey MacleadIndiaAnna Fali QUALIFIED
Ricardo GauchoUnited KingdomAsiya Javayant PROPOSAL
Salvatore StockhamGermanyOnyama Limba QUALIFIED
Francesco ShinkoBrazilBernardo Dominic NEGOTIATION
James ButtUnited KingdomIoni Bowcher PROPOSAL
Murillo MaletIndiaAmy Elsner NEW
Mujtaba NickaGermanyAmy Elsner RENEWAL
Mayumi KolmetzCanadaElwin Sharvill NEGOTIATION
Cody SaylorsIndiaAnna Fali PROPOSAL
Adams MorascaCanadaAnna Fali NEGOTIATION
Leon OldroydRussiaElwin Sharvill PROPOSAL
Rodrigues CampainRussiaAnna Fali RENEWAL
Smith GlickItalyIvan Magalhaes UNQUALIFIED
Chavez BriddickBrazilAmy Elsner RENEWAL
Munro FerenczGermanyXuxue Feng QUALIFIED
Kadeem FlosiRussiaBernardo Dominic NEGOTIATION
Leja CaldareraCanadaAnna Fali NEGOTIATION
Juan WieserCanadaBernardo Dominic RENEWAL
Kaitlin OstroskyItalyStephen Shaw QUALIFIED
Maisha RulapaughGermanyAnna Fali QUALIFIED
Cody SaylorsRussiaStephen Shaw RENEWAL
Silvio SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Nicolas IturbideJapanElwin Sharvill PROPOSAL
Antonio CaudyGermanyOnyama Limba QUALIFIED

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