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
Costa DilliardGermanyOnyama Limba QUALIFIED
Costa DilliardIndiaAmy Elsner NEW
Costa DilliardJapanElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaAnna Fali RENEWAL
Wickens NestleCanadaAmy Elsner QUALIFIED
Stacey MacleadItalyBernardo Dominic NEW
Johnson SergiIndiaIoni Bowcher PROPOSAL
James ButtArgentinaOnyama Limba UNQUALIFIED
Sinclair WaycottBrazilAmy Elsner UNQUALIFIED
Chavez BriddickSpainElwin Sharvill QUALIFIED
Morrow RutaFranceOnyama Limba NEGOTIATION
Izzy GarufiBrazilAmy Elsner RENEWAL
Cody SaylorsItalyBernardo Dominic QUALIFIED
Ivar PaprockiUnited KingdomAsiya Javayant RENEWAL
Emily WhobreyItalyStephen Shaw PROPOSAL
Adams MorascaJapanXuxue Feng RENEWAL
Leon OldroydIndiaIoni Bowcher NEGOTIATION
Emily WhobreyJapanXuxue Feng UNQUALIFIED
Cody SaylorsUnited KingdomXuxue Feng PROPOSAL
Octavia MaletGermanyIvan Magalhaes RENEWAL
Cody SaylorsIndiaBernardo Dominic NEGOTIATION
Jefferson SchemmerAustraliaAmy Elsner NEGOTIATION
Aditya KuskoAustraliaIoni Bowcher UNQUALIFIED
Juan WieserBrazilIoni Bowcher NEW
Arvin AlbaresAustraliaElwin Sharvill QUALIFIED
Smith GlickIndiaAmy Elsner NEGOTIATION
Costa DilliardItalyAmy Elsner RENEWAL
Stacey MacleadArgentinaStephen Shaw QUALIFIED
Maisha RulapaughBrazilAnna Fali UNQUALIFIED
Antonio CaudyJapanIvan Magalhaes QUALIFIED
Darci PoquetteBrazilElwin Sharvill NEGOTIATION
Leon OldroydFranceStephen Shaw NEW
Clifford RimFranceAmy Elsner QUALIFIED
Murillo MaletBrazilAmy Elsner NEGOTIATION
Clifford RimSpainAmy Elsner QUALIFIED
Jones VocelkaItalyXuxue Feng PROPOSAL
Murillo MaletBrazilAnna Fali UNQUALIFIED
Francesco ShinkoAustraliaIoni Bowcher PROPOSAL
Ashley DoeSpainBernardo Dominic NEW
Kadeem FlosiCanadaAnna Fali NEGOTIATION
Kadeem FlosiIndiaAmy Elsner PROPOSAL
Isabel BowleyUnited KingdomElwin Sharvill NEGOTIATION
Jefferson SchemmerArgentinaElwin Sharvill RENEWAL
Francesco ShinkoJapanXuxue Feng NEW
Jeanfrancois VenereItalyAsiya Javayant NEGOTIATION
Kaitlin OstroskyUnited KingdomAnna Fali NEGOTIATION
Jones VocelkaRussiaAnna Fali UNQUALIFIED
Chavez BriddickCanadaOnyama Limba NEGOTIATION
Claire TollnerGermanyXuxue Feng PROPOSAL
Ivar PaprockiCanadaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiRussiaStephen Shaw UNQUALIFIED
Nicolas IturbideSpainAsiya Javayant PROPOSAL
James ButtAustraliaAsiya Javayant RENEWAL
David DarakjyBrazilAnna Fali RENEWAL
Ashley DoeUnited KingdomBernardo Dominic PROPOSAL
Cody SaylorsJapanBernardo Dominic UNQUALIFIED
Jennifer AmigonIndiaXuxue Feng RENEWAL
Adams MorascaBrazilXuxue Feng NEGOTIATION
Julie StensethSpainAsiya Javayant PROPOSAL
Chavez BriddickCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughBrazil2026-04-11Rangoni Of Florence UNQUALIFIED3Asiya Javayant
1001Leja CaldareraUnited Kingdom2026-04-16Rousseaux, Michael Esq PROPOSAL67Elwin Sharvill
1002Octavia MaletSpain2026-04-18Rousseaux, Michael Esq RENEWAL9Stephen Shaw
1003Clifford RimUnited Kingdom2026-03-28Buckley Miller Wright RENEWAL34Stephen Shaw
1004Maisha RulapaughCanada2026-04-24Commercial Press UNQUALIFIED0Anna Fali
1005Jefferson SchemmerAustralia2026-04-02Printing Dimensions NEW69Elwin Sharvill
1006Johnson SergiFrance2026-04-20Feiner Bros RENEWAL95Elwin Sharvill
1007Ricardo GauchoArgentina2026-04-06King, Christopher A Esq PROPOSAL58Asiya Javayant
1008Smith GlickItaly2026-04-19Chanay, Jeffrey A Esq RENEWAL24Ioni Bowcher
1009Jeanfrancois VenereJapan2026-04-03Truhlar And Truhlar Attys NEW30Onyama Limba
1010Stacey MacleadArgentina2026-04-16Feltz Printing Service UNQUALIFIED70Onyama Limba
1011Aditya KuskoGermany2026-04-20Chanay, Jeffrey A Esq NEGOTIATION14Asiya Javayant
1012Maria MarrierCanada2026-04-09Buckley Miller Wright NEW49Ivan Magalhaes
1013Jones VocelkaRussia2026-04-25Feltz Printing Service PROPOSAL11Elwin Sharvill
1014Aditya KuskoCanada2026-04-06Benton, John B Jr NEGOTIATION41Elwin Sharvill
1015Francesco ShinkoAustralia2026-04-20Buckley Miller Wright PROPOSAL60Bernardo Dominic
1016Deepesh ChuiRussia2026-04-19Dorl, James J Esq RENEWAL82Ioni Bowcher
1017Francesco ShinkoIndia2026-03-28Truhlar And Truhlar Attys NEGOTIATION58Stephen Shaw
1018Smith GlickItaly2026-03-31Benton, John B Jr NEW92Anna Fali
1019Leon OldroydIndia2026-04-18King, Christopher A Esq PROPOSAL64Anna Fali
1020Ricardo GauchoCanada2026-04-22Chemel, James L Cpa UNQUALIFIED94Asiya Javayant
1021Emily WhobreyBrazil2026-04-12Rangoni Of Florence PROPOSAL41Elwin Sharvill
1022Izzy GarufiRussia2026-04-14Commercial Press QUALIFIED49Asiya Javayant
1023Morrow RutaFrance2026-04-11Commercial Press NEGOTIATION83Anna Fali
1024Murillo MaletBrazil2026-03-29Morlong Associates NEW23Elwin Sharvill
1025Isabel BowleyJapan2026-04-13Chanay, Jeffrey A Esq PROPOSAL62Bernardo Dominic
1026Smith GlickJapan2026-04-07Printing Dimensions NEW37Ioni Bowcher
1027Julie StensethJapan2026-04-14Feiner Bros NEGOTIATION81Bernardo Dominic
1028Claire TollnerJapan2026-04-07Morlong Associates UNQUALIFIED56Bernardo Dominic
1029Rodrigues CampainBrazil2026-04-13Chanay, Jeffrey A Esq PROPOSAL71Bernardo Dominic
1030Misaki RoysterAustralia2026-04-22Buckley Miller Wright PROPOSAL26Asiya Javayant
1031Nicolas IturbideFrance2026-03-27Truhlar And Truhlar Attys NEW30Xuxue Feng
1032Emily WhobreyCanada2026-04-22Benton, John B Jr RENEWAL90Anna Fali
1033Leja CaldareraItaly2026-04-09Chanay, Jeffrey A Esq NEW89Xuxue Feng
1034Nicolas IturbideBrazil2026-04-02Buckley Miller Wright NEW55Ivan Magalhaes
1035Darci PoquetteAustralia2026-03-29Rangoni Of Florence RENEWAL79Bernardo Dominic
1036Cody SaylorsArgentina2026-04-11Chanay, Jeffrey A Esq RENEWAL2Elwin Sharvill
1037Salvatore StockhamGermany2026-04-04King, Christopher A Esq PROPOSAL63Onyama Limba
1038Salvatore StockhamFrance2026-04-19Feltz Printing Service NEGOTIATION84Bernardo Dominic
1039Greenwood BologniaBrazil2026-04-12King, Christopher A Esq PROPOSAL57Onyama Limba
1040Clifford RimItaly2026-04-13Chemel, James L Cpa NEW38Ioni Bowcher
1041Greenwood BologniaAustralia2026-04-03Buckley Miller Wright PROPOSAL63Xuxue Feng
1042Adams MorascaItaly2026-04-17Rangoni Of Florence RENEWAL88Onyama Limba
1043Silvio SlusarskiFrance2026-04-02Benton, John B Jr NEGOTIATION38Stephen Shaw
1044Aika InouyeCanada2026-04-15Rangoni Of Florence QUALIFIED46Asiya Javayant
1045Greenwood BologniaUnited Kingdom2026-03-29Chemel, James L Cpa RENEWAL78Xuxue Feng
1046Jones VocelkaAustralia2026-03-28Printing Dimensions RENEWAL53Xuxue Feng
1047Leja CaldareraAustralia2026-04-01Morlong Associates PROPOSAL31Ivan Magalhaes
1048Aruna FigeroaIndia2026-04-09Chapman, Ross E Esq NEGOTIATION30Anna Fali
1049Isabel BowleyJapan2026-04-05Truhlar And Truhlar Attys NEGOTIATION12Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydRussiaBernardo Dominic RENEWAL
Sinclair WaycottItalyIvan Magalhaes NEW
Francesco ShinkoUnited KingdomXuxue Feng QUALIFIED
Wickens NestleRussiaAmy Elsner UNQUALIFIED
Darci PoquetteCanadaAnna Fali RENEWAL
Jones VocelkaSpainBernardo Dominic UNQUALIFIED
Octavia MaletFranceIvan Magalhaes RENEWAL
Aika InouyeAustraliaAsiya Javayant QUALIFIED
Mayumi KolmetzItalyBernardo Dominic NEGOTIATION
Munro FerenczRussiaAsiya Javayant UNQUALIFIED
Chavez BriddickAustraliaAsiya Javayant NEW
Juan WieserSpainAnna Fali RENEWAL
Ashley DoeIndiaAnna Fali NEGOTIATION
Alejandro PerinAustraliaAsiya Javayant RENEWAL
Nicolas IturbideJapanAsiya Javayant UNQUALIFIED
Misaki RoysterArgentinaAmy Elsner RENEWAL
Munro FerenczRussiaElwin Sharvill RENEWAL
Arvin AlbaresRussiaBernardo Dominic QUALIFIED
Silvio SlusarskiBrazilAnna Fali UNQUALIFIED
Maisha RulapaughCanadaXuxue Feng RENEWAL
Nicolas IturbideFranceElwin Sharvill RENEWAL
Greenwood BologniaAustraliaXuxue Feng NEW
Munro FerenczFranceAnna Fali RENEWAL
Arvin AlbaresFranceAnna Fali RENEWAL
Ricardo GauchoCanadaXuxue Feng UNQUALIFIED
Maria MarrierItalyBernardo Dominic QUALIFIED
Isabel BowleyRussiaIoni Bowcher NEW
Morrow RutaSpainIvan Magalhaes RENEWAL
Antonio CaudyBrazilAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaBernardo Dominic QUALIFIED
David DarakjyJapanIvan Magalhaes NEGOTIATION
Cody SaylorsJapanBernardo Dominic UNQUALIFIED
Jeanfrancois VenereUnited KingdomBernardo Dominic PROPOSAL
Ivar PaprockiArgentinaElwin Sharvill QUALIFIED
Clifford RimFranceStephen Shaw NEGOTIATION
Morrow RutaArgentinaElwin Sharvill NEGOTIATION
Claire TollnerGermanyAnna Fali RENEWAL
Faith GillianCanadaStephen Shaw RENEWAL
Aruna FigeroaFranceAmy Elsner UNQUALIFIED
Octavia MaletUnited KingdomAmy Elsner RENEWAL
Rodrigues CampainBrazilElwin Sharvill NEW
Jennifer AmigonIndiaIoni Bowcher NEW
Nicolas IturbideBrazilElwin Sharvill PROPOSAL
Isabel BowleyItalyAmy Elsner NEGOTIATION
Jefferson SchemmerJapanBernardo Dominic QUALIFIED
Darci PoquetteAustraliaAmy Elsner NEGOTIATION
Antonio CaudyIndiaIoni Bowcher UNQUALIFIED
Johnson SergiSpainAmy Elsner NEW
Mujtaba NickaIndiaOnyama Limba UNQUALIFIED
Faith GillianUnited KingdomIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Adams Morasca
Sinclair Waycott
Deepesh Chui
Rodrigues Campain
Jeanfrancois Venere
Chavez Briddick
Misaki Royster
Alejandro Perin
Emily Whobrey
Aditya Kusko
Rodrigues Campain
Jeanfrancois Venere
Emily Whobrey
Maisha Rulapaugh
Stacey Maclead
Deepesh Chui
James Butt
Darci Poquette
Emily Whobrey
Johnson Sergi
Jefferson Schemmer
Adams Morasca
Silvio Slusarski
Sinclair Waycott
Sinclair Waycott
Julie Stenseth
Kaitlin Ostrosky
Julie Stenseth
Emily Whobrey
Murillo Malet
Julie Stenseth
Aditya Kusko
Silvio Slusarski
Leja Caldarera
Alejandro Perin
Wickens Nestle
Mujtaba Nicka
Salvatore Stockham
Claire Tollner
Isabel Bowley
Morrow Ruta
Misaki Royster
Murillo Malet
Deepesh Chui
Smith Glick
Jennifer Amigon
Juan Wieser
Johnson Sergi
Emily Whobrey
Clifford Rim
IdCountryDate
1000Spain2026-04-15
1001Australia2026-04-06
1002France2026-03-29
1003Japan2026-04-10
1004United Kingdom2026-04-01
1005Italy2026-04-06
1006Russia2026-04-06
1007Italy2026-04-13
1008Canada2026-04-07
1009Russia2026-04-04
1010Germany2026-04-19
1011Italy2026-04-12
1012France2026-04-09
1013Italy2026-04-24
1014Canada2026-04-20
1015Australia2026-04-19
1016Spain2026-03-28
1017Italy2026-04-18
1018Argentina2026-04-18
1019France2026-04-01
1020Spain2026-04-06
1021Australia2026-04-09
1022Japan2026-03-29
1023Spain2026-04-02
1024India2026-04-13
1025Germany2026-03-27
1026Argentina2026-04-24
1027United Kingdom2026-04-04
1028Russia2026-04-04
1029France2026-04-01
1030Brazil2026-04-16
1031Australia2026-04-08
1032Argentina2026-04-11
1033India2026-04-18
1034Argentina2026-04-09
1035Russia2026-04-09
1036Spain2026-04-01
1037Russia2026-04-18
1038Italy2026-04-10
1039Italy2026-04-23
1040Japan2026-04-14
1041Canada2026-04-04
1042Russia2026-04-25
1043Canada2026-04-21
1044Japan2026-04-12
1045Italy2026-04-12
1046Japan2026-04-22
1047France2026-04-17
1048Australia2026-04-07
1049Australia2026-04-06

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000United Kingdom2026-04-03
Stacey Maclead1001Spain2026-03-28
Octavia Malet1002Argentina2026-04-20
Greenwood Bolognia1003United Kingdom2026-04-03
Adams Morasca1004Australia2026-04-25
Wickens Nestle1005Italy2026-04-10
Silvio Slusarski1006Italy2026-03-30
Salvatore Stockham1007Germany2026-04-25
Aditya Kusko1008Japan2026-04-16
Arvin Albares1009Japan2026-03-27
Isabel Bowley1010France2026-04-23
Misaki Royster1011Canada2026-04-25
Jennifer Amigon1012Russia2026-04-13
Maria Marrier1013Russia2026-04-23
Morrow Ruta1014Italy2026-03-31
Aruna Figeroa1015Argentina2026-04-09
Aika Inouye1016Brazil2026-04-24
Ricardo Gaucho1017Argentina2026-04-23
Murillo Malet1018Canada2026-03-27
Murillo Malet1019Argentina2026-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoJapanAnna Fali NEGOTIATION
Munro FerenczCanadaStephen Shaw NEGOTIATION
Costa DilliardFranceElwin Sharvill NEW
Darci PoquetteSpainAmy Elsner NEW
Maria MarrierGermanyStephen Shaw RENEWAL
Aruna FigeroaAustraliaXuxue Feng NEW
Antonio CaudyUnited KingdomAsiya Javayant NEGOTIATION
Maria MarrierIndiaAnna Fali QUALIFIED
Clifford RimAustraliaOnyama Limba NEW
Rodrigues CampainFranceStephen Shaw QUALIFIED
Antonio CaudyGermanyAsiya Javayant NEW
Isabel BowleyRussiaAmy Elsner NEGOTIATION
Jones VocelkaRussiaStephen Shaw RENEWAL
Maisha RulapaughFranceAmy Elsner RENEWAL
Arvin AlbaresAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois VenereGermanyAnna Fali NEW
Kadeem FlosiGermanyAnna Fali RENEWAL
Francesco ShinkoGermanyXuxue Feng NEGOTIATION
Emily WhobreyFranceXuxue Feng UNQUALIFIED
Julie StensethJapanBernardo Dominic QUALIFIED
Cody SaylorsItalyAnna Fali UNQUALIFIED
Rodrigues CampainRussiaBernardo Dominic NEW
James ButtCanadaAsiya Javayant NEGOTIATION
Aika InouyeIndiaAsiya Javayant NEGOTIATION
Munro FerenczFranceOnyama Limba QUALIFIED
Murillo MaletJapanAsiya Javayant PROPOSAL
Misaki RoysterAustraliaOnyama Limba NEGOTIATION
Antonio CaudyFranceAnna Fali QUALIFIED
Claire TollnerUnited KingdomXuxue Feng RENEWAL
Claire TollnerUnited KingdomAnna Fali NEGOTIATION
Jeanfrancois VenereSpainAsiya Javayant PROPOSAL
Izzy GarufiFranceIvan Magalhaes NEW
Stacey MacleadFranceIvan Magalhaes UNQUALIFIED
Adams MorascaIndiaIvan Magalhaes NEW
Aditya KuskoItalyAsiya Javayant QUALIFIED
Antonio CaudyJapanAmy Elsner UNQUALIFIED
Costa DilliardGermanyAnna Fali NEW
Sinclair WaycottRussiaAsiya Javayant UNQUALIFIED
Julie StensethJapanXuxue Feng NEW
Johnson SergiRussiaAnna Fali 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>