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
Jones VocelkaRussiaXuxue Feng UNQUALIFIED
Leja CaldareraRussiaBernardo Dominic UNQUALIFIED
Tony FollerRussiaStephen Shaw NEW
Faith GillianFranceBernardo Dominic RENEWAL
Francesco ShinkoBrazilBernardo Dominic PROPOSAL
Mayumi KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Nicolas IturbideGermanyIvan Magalhaes QUALIFIED
David DarakjyItalyElwin Sharvill NEW
Clifford RimGermanyStephen Shaw RENEWAL
Mayumi KolmetzRussiaAsiya Javayant RENEWAL
Clifford RimJapanIvan Magalhaes QUALIFIED
Murillo MaletCanadaAmy Elsner RENEWAL
Mayumi KolmetzAustraliaAnna Fali QUALIFIED
Izzy GarufiIndiaElwin Sharvill PROPOSAL
Jefferson SchemmerIndiaOnyama Limba NEW
Ashley DoeGermanyElwin Sharvill PROPOSAL
Jefferson SchemmerAustraliaAmy Elsner RENEWAL
Ivar PaprockiRussiaIvan Magalhaes NEGOTIATION
Stacey MacleadJapanOnyama Limba UNQUALIFIED
Sinclair WaycottAustraliaStephen Shaw PROPOSAL
Maria MarrierAustraliaOnyama Limba NEGOTIATION
Arvin AlbaresGermanyIoni Bowcher UNQUALIFIED
Sinclair WaycottUnited KingdomXuxue Feng UNQUALIFIED
James ButtGermanyElwin Sharvill NEW
Juan WieserGermanyIvan Magalhaes PROPOSAL
Kadeem FlosiRussiaXuxue Feng QUALIFIED
Mayumi KolmetzRussiaAmy Elsner RENEWAL
Francesco ShinkoCanadaIoni Bowcher NEGOTIATION
Smith GlickSpainAnna Fali RENEWAL
Silvio SlusarskiIndiaAmy Elsner PROPOSAL
Antonio CaudyFranceAnna Fali QUALIFIED
Arvin AlbaresBrazilAsiya Javayant NEGOTIATION
Tony FollerSpainAsiya Javayant NEGOTIATION
Faith GillianAustraliaBernardo Dominic PROPOSAL
Sinclair WaycottJapanIoni Bowcher RENEWAL
Alejandro PerinItalyIvan Magalhaes PROPOSAL
Maisha RulapaughRussiaAsiya Javayant QUALIFIED
Wickens NestleFranceOnyama Limba RENEWAL
Misaki RoysterGermanyIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaElwin Sharvill QUALIFIED
Aditya KuskoRussiaXuxue Feng NEGOTIATION
Greenwood BologniaGermanyAsiya Javayant PROPOSAL
Smith GlickAustraliaIoni Bowcher PROPOSAL
Mayumi KolmetzGermanyBernardo Dominic NEW
Ashley DoeUnited KingdomAmy Elsner UNQUALIFIED
Salvatore StockhamBrazilXuxue Feng NEGOTIATION
Juan WieserRussiaAmy Elsner QUALIFIED
Nicolas IturbideUnited KingdomXuxue Feng QUALIFIED
Izzy GarufiJapanAmy Elsner NEW
James ButtBrazilAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Wickens NestleCanadaXuxue Feng PROPOSAL
Clifford RimSpainAmy Elsner UNQUALIFIED
Munro FerenczAustraliaAnna Fali RENEWAL
Arvin AlbaresRussiaElwin Sharvill PROPOSAL
Mayumi KolmetzIndiaElwin Sharvill RENEWAL
Leja CaldareraFranceStephen Shaw NEW
Mayumi KolmetzUnited KingdomElwin Sharvill NEGOTIATION
James ButtBrazilOnyama Limba PROPOSAL
Clifford RimAustraliaAsiya Javayant UNQUALIFIED
Leja CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonIndia2025-07-27Chapman, Ross E Esq RENEWAL86Bernardo Dominic
1001Sinclair WaycottCanada2025-08-01Buckley Miller Wright NEGOTIATION45Elwin Sharvill
1002Darci PoquetteRussia2025-07-09Rangoni Of Florence RENEWAL6Stephen Shaw
1003Costa DilliardAustralia2025-07-20Feltz Printing Service NEGOTIATION43Asiya Javayant
1004Ricardo GauchoAustralia2025-07-21King, Christopher A Esq QUALIFIED33Ivan Magalhaes
1005Stacey MacleadSpain2025-07-27Truhlar And Truhlar Attys QUALIFIED42Asiya Javayant
1006Salvatore StockhamGermany2025-08-03Feltz Printing Service RENEWAL48Stephen Shaw
1007Jones VocelkaIndia2025-07-10Benton, John B Jr PROPOSAL23Anna Fali
1008Jennifer AmigonSpain2025-07-20Buckley Miller Wright UNQUALIFIED61Amy Elsner
1009Misaki RoysterRussia2025-07-14Feltz Printing Service QUALIFIED75Bernardo Dominic
1010Ivar PaprockiItaly2025-08-02Chemel, James L Cpa PROPOSAL74Onyama Limba
1011Cody SaylorsRussia2025-07-06Morlong Associates NEGOTIATION32Bernardo Dominic
1012Salvatore StockhamAustralia2025-07-15Dorl, James J Esq RENEWAL95Anna Fali
1013Murillo MaletJapan2025-07-10Morlong Associates NEW65Bernardo Dominic
1014Faith GillianIndia2025-07-19Commercial Press PROPOSAL88Ioni Bowcher
1015David DarakjyCanada2025-07-10Feltz Printing Service NEW41Xuxue Feng
1016Cody SaylorsFrance2025-07-26Printing Dimensions RENEWAL39Ivan Magalhaes
1017Clifford RimArgentina2025-07-16Chanay, Jeffrey A Esq QUALIFIED9Asiya Javayant
1018Rodrigues CampainSpain2025-08-01Morlong Associates NEGOTIATION29Asiya Javayant
1019Aruna FigeroaItaly2025-07-29Feltz Printing Service RENEWAL3Bernardo Dominic
1020Jones VocelkaUnited Kingdom2025-07-11Buckley Miller Wright RENEWAL55Ivan Magalhaes
1021Rodrigues CampainSpain2025-07-06Chapman, Ross E Esq QUALIFIED92Amy Elsner
1022Stacey MacleadSpain2025-07-26Buckley Miller Wright NEW32Bernardo Dominic
1023Kadeem FlosiUnited Kingdom2025-08-02Chapman, Ross E Esq PROPOSAL96Onyama Limba
1024Aika InouyeArgentina2025-07-14Chapman, Ross E Esq NEGOTIATION84Xuxue Feng
1025Faith GillianFrance2025-07-27Buckley Miller Wright NEGOTIATION77Stephen Shaw
1026Faith GillianIndia2025-07-23Benton, John B Jr RENEWAL32Ivan Magalhaes
1027Emily WhobreyCanada2025-07-15Benton, John B Jr PROPOSAL97Onyama Limba
1028Aika InouyeFrance2025-07-14Chemel, James L Cpa PROPOSAL35Stephen Shaw
1029Clifford RimArgentina2025-07-15Feiner Bros UNQUALIFIED78Amy Elsner
1030Arvin AlbaresIndia2025-07-13Feiner Bros PROPOSAL12Elwin Sharvill
1031Emily WhobreyAustralia2025-07-27Dorl, James J Esq RENEWAL90Onyama Limba
1032Nicolas IturbideGermany2025-08-01Chanay, Jeffrey A Esq PROPOSAL4Elwin Sharvill
1033Aditya KuskoBrazil2025-07-30Chanay, Jeffrey A Esq NEW50Stephen Shaw
1034Darci PoquetteJapan2025-08-03Rangoni Of Florence NEGOTIATION5Ivan Magalhaes
1035Salvatore StockhamRussia2025-07-29Morlong Associates NEW71Stephen Shaw
1036Maria MarrierBrazil2025-07-06Dorl, James J Esq NEGOTIATION5Anna Fali
1037Johnson SergiAustralia2025-07-24Rangoni Of Florence NEW31Onyama Limba
1038David DarakjyAustralia2025-08-01King, Christopher A Esq UNQUALIFIED41Xuxue Feng
1039Chavez BriddickIndia2025-07-09Chapman, Ross E Esq QUALIFIED28Asiya Javayant
1040Munro FerenczItaly2025-07-26Dorl, James J Esq UNQUALIFIED50Asiya Javayant
1041Deepesh ChuiArgentina2025-08-01Commercial Press UNQUALIFIED57Amy Elsner
1042Juan WieserRussia2025-07-12Dorl, James J Esq NEGOTIATION63Asiya Javayant
1043Chavez BriddickFrance2025-07-28Feltz Printing Service QUALIFIED22Elwin Sharvill
1044Smith GlickUnited Kingdom2025-07-23Printing Dimensions PROPOSAL48Anna Fali
1045Aditya KuskoJapan2025-07-23Commercial Press NEGOTIATION35Bernardo Dominic
1046Aika InouyeCanada2025-08-02Dorl, James J Esq QUALIFIED43Xuxue Feng
1047Darci PoquetteRussia2025-07-07Commercial Press NEGOTIATION71Anna Fali
1048Morrow RutaCanada2025-07-21Rangoni Of Florence UNQUALIFIED24Bernardo Dominic
1049Munro FerenczGermany2025-07-30Buckley Miller Wright QUALIFIED60Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletIndiaAmy Elsner UNQUALIFIED
Kaitlin OstroskyRussiaIoni Bowcher UNQUALIFIED
Morrow RutaBrazilIvan Magalhaes NEGOTIATION
Antonio CaudyIndiaAnna Fali QUALIFIED
Claire TollnerFranceXuxue Feng NEGOTIATION
Leja CaldareraRussiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresRussiaElwin Sharvill RENEWAL
Isabel BowleyFranceXuxue Feng NEGOTIATION
Julie StensethArgentinaOnyama Limba QUALIFIED
James ButtItalyOnyama Limba NEW
Ashley DoeAustraliaBernardo Dominic NEGOTIATION
Misaki RoysterRussiaBernardo Dominic QUALIFIED
Arvin AlbaresFranceAnna Fali UNQUALIFIED
Maisha RulapaughJapanAnna Fali PROPOSAL
Misaki RoysterGermanyXuxue Feng UNQUALIFIED
Salvatore StockhamJapanBernardo Dominic QUALIFIED
Leja CaldareraAustraliaAnna Fali NEGOTIATION
Isabel BowleyAustraliaXuxue Feng NEW
Costa DilliardSpainBernardo Dominic NEGOTIATION
Sinclair WaycottCanadaXuxue Feng NEW
Tony FollerUnited KingdomOnyama Limba RENEWAL
Silvio SlusarskiArgentinaXuxue Feng NEGOTIATION
Antonio CaudySpainStephen Shaw NEGOTIATION
Julie StensethGermanyElwin Sharvill PROPOSAL
Octavia MaletRussiaBernardo Dominic RENEWAL
Tony FollerBrazilBernardo Dominic PROPOSAL
Greenwood BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Juan WieserAustraliaAsiya Javayant RENEWAL
Ricardo GauchoCanadaOnyama Limba PROPOSAL
Adams MorascaAustraliaBernardo Dominic UNQUALIFIED
Juan WieserIndiaAsiya Javayant NEW
Johnson SergiUnited KingdomIoni Bowcher RENEWAL
Kadeem FlosiJapanAsiya Javayant PROPOSAL
Aika InouyeArgentinaIoni Bowcher UNQUALIFIED
Cody SaylorsCanadaAmy Elsner NEW
Wickens NestleBrazilElwin Sharvill NEGOTIATION
Tony FollerGermanyIvan Magalhaes PROPOSAL
Emily WhobreyAustraliaAnna Fali PROPOSAL
Clifford RimAustraliaAmy Elsner QUALIFIED
Jennifer AmigonJapanOnyama Limba NEW
Julie StensethAustraliaBernardo Dominic RENEWAL
Cody SaylorsRussiaBernardo Dominic PROPOSAL
Stacey MacleadJapanAmy Elsner UNQUALIFIED
Greenwood BologniaIndiaAsiya Javayant UNQUALIFIED
Deepesh ChuiCanadaAmy Elsner UNQUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill PROPOSAL
Julie StensethRussiaIoni Bowcher UNQUALIFIED
Stacey MacleadFranceBernardo Dominic PROPOSAL
Aika InouyeFranceOnyama Limba RENEWAL
Murillo MaletArgentinaAnna Fali PROPOSAL
Frozen Columns
Name
Arvin Albares
Izzy Garufi
Nicolas Iturbide
Jones Vocelka
Juan Wieser
Clifford Rim
Murillo Malet
Ashley Doe
Kadeem Flosi
James Butt
Adams Morasca
Costa Dilliard
Antonio Caudy
Octavia Malet
Tony Foller
Mayumi Kolmetz
Munro Ferencz
Emily Whobrey
Salvatore Stockham
Isabel Bowley
Aika Inouye
Smith Glick
Murillo Malet
Salvatore Stockham
James Butt
Jones Vocelka
Munro Ferencz
Adams Morasca
Misaki Royster
Johnson Sergi
Mayumi Kolmetz
Tony Foller
Jones Vocelka
Johnson Sergi
Ricardo Gaucho
Silvio Slusarski
Johnson Sergi
Smith Glick
Nicolas Iturbide
Kadeem Flosi
Leon Oldroyd
Isabel Bowley
Claire Tollner
Julie Stenseth
Isabel Bowley
Leja Caldarera
Ivar Paprocki
Alejandro Perin
Ivar Paprocki
Tony Foller
IdCountryDate
1000India2025-07-11
1001Italy2025-07-25
1002Russia2025-07-20
1003Canada2025-07-26
1004Australia2025-07-26
1005Argentina2025-07-16
1006Italy2025-07-28
1007Australia2025-07-07
1008Argentina2025-07-07
1009Canada2025-07-23
1010India2025-07-12
1011Russia2025-08-04
1012Spain2025-07-25
1013Russia2025-08-04
1014Spain2025-08-01
1015Russia2025-07-10
1016Brazil2025-07-27
1017Australia2025-07-20
1018Italy2025-08-03
1019Australia2025-08-04
1020Spain2025-08-04
1021Russia2025-08-04
1022Brazil2025-07-30
1023Italy2025-07-27
1024Brazil2025-07-14
1025India2025-08-03
1026Spain2025-07-28
1027Australia2025-07-29
1028Spain2025-07-12
1029Australia2025-07-21
1030Russia2025-07-30
1031India2025-07-15
1032Spain2025-07-11
1033Russia2025-07-21
1034Japan2025-07-23
1035Canada2025-07-25
1036Italy2025-07-30
1037Spain2025-07-10
1038India2025-07-12
1039Canada2025-07-31
1040Germany2025-07-13
1041India2025-07-09
1042Brazil2025-07-29
1043Brazil2025-07-30
1044France2025-07-09
1045Germany2025-07-12
1046Japan2025-07-17
1047United Kingdom2025-08-03
1048United Kingdom2025-07-16
1049France2025-07-29

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Argentina2025-08-01
Mayumi Kolmetz1001France2025-08-04
Costa Dilliard1002Italy2025-07-16
Rodrigues Campain1003Japan2025-07-11
Maria Marrier1004Italy2025-07-12
Chavez Briddick1005India2025-07-23
Juan Wieser1006Russia2025-07-20
Izzy Garufi1007Italy2025-07-23
Mujtaba Nicka1008France2025-07-13
Faith Gillian1009United Kingdom2025-08-01
Mujtaba Nicka1010Australia2025-07-28
Wickens Nestle1011Germany2025-07-24
Morrow Ruta1012United Kingdom2025-07-07
Morrow Ruta1013Argentina2025-07-24
Nicolas Iturbide1014Japan2025-07-10
Munro Ferencz1015Brazil2025-07-09
Nicolas Iturbide1016France2025-07-09
Emily Whobrey1017Canada2025-07-22
Morrow Ruta1018Germany2025-07-23
Kadeem Flosi1019United Kingdom2025-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerIndiaElwin Sharvill UNQUALIFIED
Leon OldroydItalyXuxue Feng NEGOTIATION
Clifford RimItalyAmy Elsner NEW
Francesco ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiArgentinaIvan Magalhaes QUALIFIED
Aika InouyeItalyElwin Sharvill QUALIFIED
Francesco ShinkoRussiaOnyama Limba NEGOTIATION
Cody SaylorsUnited KingdomAmy Elsner NEGOTIATION
Deepesh ChuiSpainElwin Sharvill QUALIFIED
Claire TollnerGermanyIvan Magalhaes UNQUALIFIED
Misaki RoysterIndiaIoni Bowcher NEW
Aika InouyeFranceXuxue Feng NEGOTIATION
Wickens NestleArgentinaStephen Shaw QUALIFIED
Juan WieserCanadaXuxue Feng NEW
Leja CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair WaycottRussiaAnna Fali PROPOSAL
Jefferson SchemmerUnited KingdomElwin Sharvill NEW
Ricardo GauchoSpainIoni Bowcher NEW
Clifford RimJapanBernardo Dominic NEGOTIATION
Chavez BriddickCanadaAnna Fali PROPOSAL
Jefferson SchemmerAustraliaBernardo Dominic PROPOSAL
Mayumi KolmetzGermanyOnyama Limba NEW
Tony FollerSpainIoni Bowcher PROPOSAL
Silvio SlusarskiAustraliaAnna Fali UNQUALIFIED
Faith GillianBrazilAnna Fali RENEWAL
Sinclair WaycottAustraliaBernardo Dominic PROPOSAL
Deepesh ChuiJapanAsiya Javayant NEGOTIATION
Mayumi KolmetzItalyOnyama Limba PROPOSAL
Costa DilliardBrazilAmy Elsner NEGOTIATION
Jones VocelkaSpainAsiya Javayant NEW
Nicolas IturbideJapanIvan Magalhaes QUALIFIED
Aditya KuskoAustraliaAsiya Javayant NEGOTIATION
Mayumi KolmetzItalyOnyama Limba QUALIFIED
Maisha RulapaughBrazilBernardo Dominic UNQUALIFIED
Smith GlickGermanyIvan Magalhaes UNQUALIFIED
Johnson SergiCanadaAmy Elsner QUALIFIED
Smith GlickAustraliaStephen Shaw NEGOTIATION
Adams MorascaSpainOnyama Limba NEW
Costa DilliardJapanIoni Bowcher UNQUALIFIED
Leon OldroydItalyOnyama 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>