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
Francesco ShinkoBrazilXuxue Feng PROPOSAL
Nicolas IturbideRussiaElwin Sharvill PROPOSAL
Cody SaylorsJapanXuxue Feng NEW
Murillo MaletSpainAmy Elsner QUALIFIED
Murillo MaletRussiaElwin Sharvill NEGOTIATION
Aditya KuskoAustraliaAsiya Javayant UNQUALIFIED
Johnson SergiSpainXuxue Feng PROPOSAL
Emily WhobreyJapanAsiya Javayant QUALIFIED
James ButtJapanElwin Sharvill NEGOTIATION
Jones VocelkaArgentinaAnna Fali NEW
Juan WieserCanadaAsiya Javayant PROPOSAL
Clifford RimJapanOnyama Limba UNQUALIFIED
Jennifer AmigonGermanyElwin Sharvill RENEWAL
James ButtUnited KingdomIvan Magalhaes RENEWAL
Wickens NestleArgentinaOnyama Limba QUALIFIED
David DarakjyCanadaOnyama Limba QUALIFIED
Alejandro PerinRussiaElwin Sharvill QUALIFIED
Jennifer AmigonFranceElwin Sharvill NEW
Costa DilliardCanadaAsiya Javayant NEW
Claire TollnerFranceStephen Shaw QUALIFIED
Costa DilliardAustraliaXuxue Feng PROPOSAL
Misaki RoysterRussiaXuxue Feng RENEWAL
Ricardo GauchoRussiaBernardo Dominic UNQUALIFIED
Antonio CaudyIndiaElwin Sharvill QUALIFIED
Deepesh ChuiIndiaIvan Magalhaes QUALIFIED
Wickens NestleArgentinaOnyama Limba QUALIFIED
Cody SaylorsRussiaElwin Sharvill QUALIFIED
Jeanfrancois VenereAustraliaOnyama Limba NEW
Darci PoquetteAustraliaAnna Fali QUALIFIED
Deepesh ChuiGermanyAnna Fali QUALIFIED
Jennifer AmigonBrazilAnna Fali PROPOSAL
Isabel BowleyCanadaIvan Magalhaes NEW
Greenwood BologniaSpainOnyama Limba RENEWAL
Faith GillianSpainXuxue Feng PROPOSAL
Faith GillianIndiaAmy Elsner NEGOTIATION
Jones VocelkaAustraliaAnna Fali PROPOSAL
Salvatore StockhamCanadaOnyama Limba NEGOTIATION
Francesco ShinkoItalyAnna Fali UNQUALIFIED
Faith GillianFranceXuxue Feng PROPOSAL
Jones VocelkaIndiaIoni Bowcher QUALIFIED
Mayumi KolmetzBrazilOnyama Limba NEGOTIATION
Adams MorascaFranceAsiya Javayant NEGOTIATION
Julie StensethSpainAsiya Javayant NEW
Mujtaba NickaGermanyIoni Bowcher NEW
Darci PoquetteRussiaBernardo Dominic PROPOSAL
Maisha RulapaughFranceIoni Bowcher QUALIFIED
Rodrigues CampainSpainAmy Elsner QUALIFIED
Nicolas IturbideItalyBernardo Dominic RENEWAL
Julie StensethFranceOnyama Limba PROPOSAL
Ashley DoeCanadaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteAustraliaIoni Bowcher RENEWAL
Leja CaldareraCanadaOnyama Limba UNQUALIFIED
Leon OldroydItalyAsiya Javayant NEW
Octavia MaletUnited KingdomAnna Fali RENEWAL
Ivar PaprockiArgentinaIvan Magalhaes RENEWAL
Deepesh ChuiJapanIoni Bowcher RENEWAL
Claire TollnerSpainXuxue Feng PROPOSAL
Kaitlin OstroskySpainXuxue Feng NEW
Cody SaylorsJapanXuxue Feng NEW
James ButtCanadaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaIndia2025-08-22Feiner Bros PROPOSAL88Ivan Magalhaes
1001Misaki RoysterItaly2025-08-24Buckley Miller Wright UNQUALIFIED49Bernardo Dominic
1002Rodrigues CampainUnited Kingdom2025-08-21Printing Dimensions UNQUALIFIED56Asiya Javayant
1003Leon OldroydGermany2025-09-05Dorl, James J Esq UNQUALIFIED73Elwin Sharvill
1004Sinclair WaycottGermany2025-08-30King, Christopher A Esq QUALIFIED21Asiya Javayant
1005Jefferson SchemmerIndia2025-08-17Chanay, Jeffrey A Esq NEGOTIATION86Anna Fali
1006Costa DilliardSpain2025-09-13Rousseaux, Michael Esq UNQUALIFIED18Bernardo Dominic
1007Chavez BriddickCanada2025-09-02Feiner Bros RENEWAL78Elwin Sharvill
1008Emily WhobreyRussia2025-08-27Chanay, Jeffrey A Esq RENEWAL86Bernardo Dominic
1009Ashley DoeAustralia2025-08-25Benton, John B Jr NEGOTIATION99Bernardo Dominic
1010Nicolas IturbideItaly2025-08-27Dorl, James J Esq NEGOTIATION87Amy Elsner
1011Leon OldroydGermany2025-08-22Feiner Bros QUALIFIED4Asiya Javayant
1012Aruna FigeroaArgentina2025-08-19Chanay, Jeffrey A Esq NEW49Ioni Bowcher
1013Jennifer AmigonJapan2025-09-08Buckley Miller Wright UNQUALIFIED93Bernardo Dominic
1014Ivar PaprockiJapan2025-09-11Feiner Bros UNQUALIFIED79Amy Elsner
1015Darci PoquetteRussia2025-09-02Feltz Printing Service NEGOTIATION24Stephen Shaw
1016Maisha RulapaughIndia2025-08-29Chapman, Ross E Esq QUALIFIED82Elwin Sharvill
1017Emily WhobreyAustralia2025-09-05Chapman, Ross E Esq QUALIFIED31Bernardo Dominic
1018Faith GillianAustralia2025-08-24Feiner Bros QUALIFIED0Ivan Magalhaes
1019Octavia MaletJapan2025-08-27Rousseaux, Michael Esq RENEWAL46Bernardo Dominic
1020Aditya KuskoJapan2025-08-29Rangoni Of Florence NEW60Xuxue Feng
1021Tony FollerJapan2025-08-24King, Christopher A Esq PROPOSAL96Ivan Magalhaes
1022Deepesh ChuiGermany2025-09-01Feiner Bros UNQUALIFIED26Bernardo Dominic
1023Wickens NestleGermany2025-08-24Rangoni Of Florence NEW69Ivan Magalhaes
1024Arvin AlbaresGermany2025-09-11Buckley Miller Wright UNQUALIFIED77Anna Fali
1025Leja CaldareraUnited Kingdom2025-08-31Feltz Printing Service NEGOTIATION79Amy Elsner
1026Izzy GarufiJapan2025-08-26Rousseaux, Michael Esq QUALIFIED55Onyama Limba
1027Johnson SergiItaly2025-09-06Chanay, Jeffrey A Esq NEW6Elwin Sharvill
1028Aditya KuskoGermany2025-08-18Benton, John B Jr NEGOTIATION19Elwin Sharvill
1029Adams MorascaArgentina2025-08-26Truhlar And Truhlar Attys QUALIFIED26Amy Elsner
1030Maria MarrierCanada2025-09-02Chanay, Jeffrey A Esq NEGOTIATION70Anna Fali
1031Cody SaylorsFrance2025-09-08Rangoni Of Florence NEW35Elwin Sharvill
1032Arvin AlbaresAustralia2025-08-17Buckley Miller Wright QUALIFIED4Anna Fali
1033Rodrigues CampainJapan2025-09-03Rangoni Of Florence NEGOTIATION24Anna Fali
1034Jeanfrancois VenereJapan2025-09-03Chemel, James L Cpa PROPOSAL61Amy Elsner
1035Maria MarrierItaly2025-09-06Chemel, James L Cpa QUALIFIED38Bernardo Dominic
1036Silvio SlusarskiItaly2025-08-26Rousseaux, Michael Esq UNQUALIFIED99Asiya Javayant
1037Mayumi KolmetzUnited Kingdom2025-08-29Buckley Miller Wright RENEWAL72Ivan Magalhaes
1038Maria MarrierIndia2025-09-09Chanay, Jeffrey A Esq NEW29Stephen Shaw
1039Costa DilliardSpain2025-09-13Printing Dimensions UNQUALIFIED31Ivan Magalhaes
1040Darci PoquetteIndia2025-08-29Buckley Miller Wright PROPOSAL87Onyama Limba
1041Francesco ShinkoUnited Kingdom2025-09-12Benton, John B Jr RENEWAL63Xuxue Feng
1042Jones VocelkaItaly2025-09-10Chanay, Jeffrey A Esq QUALIFIED21Ivan Magalhaes
1043Faith GillianArgentina2025-09-15Morlong Associates NEW52Ivan Magalhaes
1044Antonio CaudyArgentina2025-09-11Benton, John B Jr UNQUALIFIED72Amy Elsner
1045James ButtItaly2025-08-31Feltz Printing Service QUALIFIED28Anna Fali
1046Adams MorascaIndia2025-08-17Feiner Bros UNQUALIFIED31Onyama Limba
1047Wickens NestleUnited Kingdom2025-09-11Feltz Printing Service NEW60Elwin Sharvill
1048Chavez BriddickBrazil2025-09-09Feiner Bros UNQUALIFIED75Stephen Shaw
1049Mayumi KolmetzAustralia2025-08-28Chemel, James L Cpa NEW33Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
James ButtIndiaAsiya Javayant RENEWAL
Kaitlin OstroskyCanadaStephen Shaw RENEWAL
Adams MorascaItalyAsiya Javayant RENEWAL
Ashley DoeUnited KingdomXuxue Feng NEGOTIATION
Costa DilliardCanadaAsiya Javayant RENEWAL
Silvio SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Tony FollerCanadaBernardo Dominic RENEWAL
Aditya KuskoFranceIoni Bowcher QUALIFIED
Emily WhobreyUnited KingdomOnyama Limba PROPOSAL
Leja CaldareraJapanIoni Bowcher UNQUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher RENEWAL
Costa DilliardGermanyAsiya Javayant RENEWAL
Clifford RimSpainXuxue Feng UNQUALIFIED
Mujtaba NickaSpainIoni Bowcher RENEWAL
Costa DilliardSpainIoni Bowcher RENEWAL
Salvatore StockhamSpainAmy Elsner RENEWAL
Leja CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Isabel BowleyCanadaElwin Sharvill PROPOSAL
Darci PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Kadeem FlosiUnited KingdomAnna Fali PROPOSAL
Isabel BowleyCanadaElwin Sharvill QUALIFIED
Greenwood BologniaRussiaElwin Sharvill UNQUALIFIED
Alejandro PerinArgentinaElwin Sharvill NEGOTIATION
Antonio CaudyBrazilAmy Elsner PROPOSAL
Octavia MaletCanadaStephen Shaw RENEWAL
Aruna FigeroaSpainOnyama Limba RENEWAL
Greenwood BologniaSpainOnyama Limba QUALIFIED
Julie StensethFranceStephen Shaw NEGOTIATION
Silvio SlusarskiBrazilAnna Fali PROPOSAL
Claire TollnerItalyIvan Magalhaes RENEWAL
Clifford RimSpainIvan Magalhaes NEGOTIATION
Munro FerenczIndiaXuxue Feng PROPOSAL
Sinclair WaycottIndiaXuxue Feng QUALIFIED
Octavia MaletBrazilXuxue Feng NEW
Leja CaldareraSpainOnyama Limba PROPOSAL
Faith GillianCanadaElwin Sharvill NEGOTIATION
Munro FerenczUnited KingdomIvan Magalhaes PROPOSAL
Alejandro PerinItalyAsiya Javayant NEW
Leon OldroydCanadaXuxue Feng UNQUALIFIED
Jeanfrancois VenereCanadaAnna Fali UNQUALIFIED
Faith GillianRussiaIvan Magalhaes QUALIFIED
Munro FerenczUnited KingdomElwin Sharvill NEGOTIATION
Leon OldroydSpainStephen Shaw RENEWAL
Jennifer AmigonAustraliaOnyama Limba QUALIFIED
Jefferson SchemmerGermanyAmy Elsner UNQUALIFIED
Aruna FigeroaSpainIoni Bowcher UNQUALIFIED
Ivar PaprockiAustraliaIvan Magalhaes NEW
Chavez BriddickRussiaXuxue Feng UNQUALIFIED
Deepesh ChuiSpainIoni Bowcher RENEWAL
Johnson SergiJapanXuxue Feng RENEWAL
Frozen Columns
Name
Jefferson Schemmer
Tony Foller
Kaitlin Ostrosky
Smith Glick
Jefferson Schemmer
Julie Stenseth
Jones Vocelka
Izzy Garufi
Greenwood Bolognia
Munro Ferencz
Jefferson Schemmer
Salvatore Stockham
Juan Wieser
Juan Wieser
Salvatore Stockham
Francesco Shinko
Antonio Caudy
Ricardo Gaucho
Rodrigues Campain
Deepesh Chui
Leja Caldarera
Ivar Paprocki
Silvio Slusarski
Darci Poquette
Smith Glick
Aruna Figeroa
Octavia Malet
Silvio Slusarski
Smith Glick
Faith Gillian
Octavia Malet
Wickens Nestle
Munro Ferencz
Morrow Ruta
Chavez Briddick
Jennifer Amigon
Mujtaba Nicka
Isabel Bowley
Darci Poquette
Aruna Figeroa
Rodrigues Campain
Mujtaba Nicka
Izzy Garufi
Nicolas Iturbide
Francesco Shinko
Ricardo Gaucho
Julie Stenseth
Julie Stenseth
Izzy Garufi
Jeanfrancois Venere
IdCountryDate
1000Canada2025-08-24
1001Japan2025-08-24
1002Russia2025-08-31
1003Brazil2025-08-18
1004Spain2025-09-10
1005Germany2025-08-31
1006Russia2025-08-23
1007Argentina2025-09-06
1008United Kingdom2025-08-21
1009Italy2025-09-05
1010Spain2025-09-05
1011United Kingdom2025-09-12
1012Germany2025-08-21
1013Spain2025-08-24
1014Germany2025-09-15
1015Japan2025-08-17
1016Brazil2025-09-02
1017Russia2025-08-26
1018Brazil2025-09-13
1019Russia2025-08-22
1020Australia2025-09-15
1021Australia2025-09-05
1022Germany2025-08-27
1023France2025-09-04
1024Canada2025-09-11
1025India2025-08-24
1026Japan2025-08-20
1027Canada2025-08-19
1028Canada2025-09-06
1029India2025-09-12
1030Spain2025-08-31
1031Italy2025-09-14
1032Japan2025-08-30
1033Germany2025-09-12
1034Japan2025-08-20
1035Spain2025-09-12
1036United Kingdom2025-09-15
1037Argentina2025-08-26
1038France2025-08-21
1039Argentina2025-08-25
1040Australia2025-09-03
1041Argentina2025-08-29
1042Germany2025-08-29
1043Germany2025-08-19
1044France2025-08-20
1045Russia2025-09-08
1046Germany2025-08-23
1047Japan2025-09-07
1048Argentina2025-09-15
1049Australia2025-09-14

On-Demand Data

NameIdCountryDate
Chavez Briddick1000United Kingdom2025-08-25
Greenwood Bolognia1001India2025-09-11
Ivar Paprocki1002India2025-09-10
Antonio Caudy1003Germany2025-08-25
Silvio Slusarski1004Canada2025-08-21
Izzy Garufi1005Italy2025-08-17
Darci Poquette1006India2025-09-09
Izzy Garufi1007Italy2025-08-20
Tony Foller1008Argentina2025-08-23
Faith Gillian1009Germany2025-09-04
Leon Oldroyd1010Brazil2025-09-12
Ricardo Gaucho1011Argentina2025-09-07
Mayumi Kolmetz1012India2025-08-23
Faith Gillian1013India2025-09-05
Greenwood Bolognia1014Australia2025-09-05
Emily Whobrey1015Germany2025-09-10
Mayumi Kolmetz1016Brazil2025-09-06
Aruna Figeroa1017France2025-08-26
Emily Whobrey1018Australia2025-09-09
Clifford Rim1019Spain2025-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaGermanyStephen Shaw NEW
Leon OldroydItalyAmy Elsner RENEWAL
Izzy GarufiGermanyOnyama Limba PROPOSAL
Rodrigues CampainIndiaBernardo Dominic RENEWAL
Claire TollnerIndiaAnna Fali NEW
Tony FollerCanadaIoni Bowcher NEGOTIATION
Leon OldroydFranceAmy Elsner UNQUALIFIED
David DarakjyIndiaIvan Magalhaes NEW
Claire TollnerRussiaStephen Shaw UNQUALIFIED
Greenwood BologniaGermanyAsiya Javayant RENEWAL
Faith GillianUnited KingdomElwin Sharvill QUALIFIED
Costa DilliardArgentinaIvan Magalhaes NEW
Costa DilliardGermanyIvan Magalhaes UNQUALIFIED
Darci PoquetteAustraliaOnyama Limba PROPOSAL
Alejandro PerinItalyIoni Bowcher PROPOSAL
Antonio CaudyUnited KingdomStephen Shaw RENEWAL
David DarakjyGermanyOnyama Limba UNQUALIFIED
Chavez BriddickRussiaOnyama Limba UNQUALIFIED
Maria MarrierFranceOnyama Limba QUALIFIED
Wickens NestleSpainBernardo Dominic NEW
Johnson SergiBrazilStephen Shaw RENEWAL
Kaitlin OstroskyFranceStephen Shaw QUALIFIED
Leon OldroydCanadaAmy Elsner PROPOSAL
Jeanfrancois VenereJapanBernardo Dominic QUALIFIED
Morrow RutaAustraliaAnna Fali UNQUALIFIED
David DarakjyGermanyAnna Fali NEGOTIATION
Salvatore StockhamArgentinaXuxue Feng QUALIFIED
Izzy GarufiIndiaAsiya Javayant NEW
Jones VocelkaSpainBernardo Dominic NEW
Jennifer AmigonItalyElwin Sharvill UNQUALIFIED
James ButtIndiaIoni Bowcher RENEWAL
Ricardo GauchoFranceIoni Bowcher NEW
Maria MarrierItalyIoni Bowcher UNQUALIFIED
Morrow RutaFranceAnna Fali QUALIFIED
Munro FerenczBrazilBernardo Dominic UNQUALIFIED
Smith GlickRussiaXuxue Feng NEGOTIATION
Jennifer AmigonBrazilAmy Elsner QUALIFIED
Ricardo GauchoCanadaStephen Shaw UNQUALIFIED
Jeanfrancois VenereUnited KingdomAmy Elsner NEW
Juan WieserBrazilAmy Elsner 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>