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
Ricardo GauchoAustraliaAsiya Javayant NEGOTIATION
Morrow RutaAustraliaIvan Magalhaes QUALIFIED
Jefferson SchemmerGermanyOnyama Limba QUALIFIED
Cody SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Chavez BriddickItalyBernardo Dominic NEW
Arvin AlbaresFranceBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaAnna Fali UNQUALIFIED
Darci PoquetteSpainBernardo Dominic NEW
Mujtaba NickaAustraliaIvan Magalhaes QUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes NEW
Ricardo GauchoItalyAsiya Javayant QUALIFIED
Francesco ShinkoArgentinaAmy Elsner RENEWAL
Ricardo GauchoRussiaAnna Fali NEGOTIATION
Maisha RulapaughCanadaIoni Bowcher RENEWAL
Mujtaba NickaIndiaAmy Elsner UNQUALIFIED
Cody SaylorsRussiaAsiya Javayant UNQUALIFIED
James ButtJapanElwin Sharvill RENEWAL
Silvio SlusarskiGermanyAmy Elsner NEGOTIATION
Clifford RimJapanStephen Shaw RENEWAL
Aditya KuskoBrazilStephen Shaw QUALIFIED
Sinclair WaycottItalyXuxue Feng NEGOTIATION
David DarakjyArgentinaElwin Sharvill PROPOSAL
Jeanfrancois VenereRussiaAsiya Javayant NEW
Leja CaldareraCanadaOnyama Limba NEGOTIATION
Aditya KuskoIndiaAnna Fali RENEWAL
Cody SaylorsBrazilOnyama Limba NEGOTIATION
Faith GillianAustraliaXuxue Feng PROPOSAL
Emily WhobreySpainAmy Elsner QUALIFIED
Jones VocelkaRussiaAnna Fali QUALIFIED
Juan WieserRussiaElwin Sharvill UNQUALIFIED
Morrow RutaItalyIoni Bowcher PROPOSAL
Faith GillianUnited KingdomStephen Shaw PROPOSAL
Ricardo GauchoJapanXuxue Feng NEW
Deepesh ChuiItalyAnna Fali RENEWAL
Emily WhobreyCanadaIoni Bowcher NEGOTIATION
Aika InouyeSpainBernardo Dominic RENEWAL
Maria MarrierGermanyStephen Shaw QUALIFIED
James ButtGermanyAsiya Javayant NEGOTIATION
Stacey MacleadUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois VenereJapanAnna Fali NEGOTIATION
Leja CaldareraFranceStephen Shaw NEGOTIATION
Misaki RoysterSpainStephen Shaw QUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant RENEWAL
Sinclair WaycottJapanIoni Bowcher NEGOTIATION
Octavia MaletArgentinaStephen Shaw PROPOSAL
Faith GillianUnited KingdomBernardo Dominic NEGOTIATION
Aditya KuskoRussiaAmy Elsner UNQUALIFIED
Costa DilliardSpainAmy Elsner RENEWAL
Arvin AlbaresArgentinaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaGermanyOnyama Limba UNQUALIFIED
Smith GlickRussiaOnyama Limba QUALIFIED
Kadeem FlosiRussiaXuxue Feng PROPOSAL
Clifford RimBrazilAmy Elsner NEGOTIATION
Izzy GarufiCanadaElwin Sharvill QUALIFIED
Alejandro PerinSpainAmy Elsner UNQUALIFIED
Munro FerenczUnited KingdomAnna Fali PROPOSAL
Munro FerenczIndiaXuxue Feng QUALIFIED
Antonio CaudyAustraliaIoni Bowcher PROPOSAL
Kadeem FlosiBrazilStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardAustralia2026-04-28Truhlar And Truhlar Attys PROPOSAL38Xuxue Feng
1001Adams MorascaGermany2026-04-08Chanay, Jeffrey A Esq NEW81Asiya Javayant
1002Alejandro PerinIndia2026-05-04Chanay, Jeffrey A Esq QUALIFIED65Ivan Magalhaes
1003Cody SaylorsAustralia2026-04-19Feiner Bros QUALIFIED51Onyama Limba
1004Sinclair WaycottFrance2026-04-11Dorl, James J Esq RENEWAL6Xuxue Feng
1005James ButtGermany2026-04-07Morlong Associates UNQUALIFIED22Asiya Javayant
1006Emily WhobreySpain2026-04-24Feltz Printing Service RENEWAL74Onyama Limba
1007Wickens NestleArgentina2026-05-04Benton, John B Jr NEW57Stephen Shaw
1008Jeanfrancois VenereGermany2026-04-30Chapman, Ross E Esq NEW85Elwin Sharvill
1009James ButtSpain2026-04-08Feltz Printing Service NEGOTIATION53Ivan Magalhaes
1010Chavez BriddickSpain2026-04-09Feiner Bros RENEWAL11Ioni Bowcher
1011Munro FerenczFrance2026-04-17Chapman, Ross E Esq RENEWAL96Bernardo Dominic
1012Jeanfrancois VenereFrance2026-04-08Rangoni Of Florence PROPOSAL7Onyama Limba
1013Arvin AlbaresUnited Kingdom2026-05-03Commercial Press NEW33Amy Elsner
1014Aditya KuskoUnited Kingdom2026-04-07Feltz Printing Service RENEWAL29Elwin Sharvill
1015Cody SaylorsJapan2026-04-05Printing Dimensions UNQUALIFIED15Xuxue Feng
1016Silvio SlusarskiSpain2026-04-15Rangoni Of Florence RENEWAL0Ioni Bowcher
1017Ricardo GauchoIndia2026-05-02Feiner Bros NEGOTIATION86Xuxue Feng
1018Munro FerenczFrance2026-04-21Rousseaux, Michael Esq NEW85Asiya Javayant
1019Tony FollerCanada2026-04-06Feiner Bros PROPOSAL87Ivan Magalhaes
1020Nicolas IturbideAustralia2026-04-15Commercial Press QUALIFIED25Ioni Bowcher
1021Jefferson SchemmerGermany2026-04-12Chapman, Ross E Esq RENEWAL76Anna Fali
1022Rodrigues CampainArgentina2026-04-06Chemel, James L Cpa QUALIFIED76Amy Elsner
1023Smith GlickIndia2026-04-25Feiner Bros NEW8Elwin Sharvill
1024Aika InouyeIndia2026-04-14Truhlar And Truhlar Attys RENEWAL38Amy Elsner
1025Cody SaylorsIndia2026-04-19Commercial Press UNQUALIFIED55Onyama Limba
1026Johnson SergiGermany2026-04-16Morlong Associates NEGOTIATION6Onyama Limba
1027Jefferson SchemmerItaly2026-04-28King, Christopher A Esq NEGOTIATION33Elwin Sharvill
1028Nicolas IturbideArgentina2026-04-09Benton, John B Jr QUALIFIED89Onyama Limba
1029Murillo MaletRussia2026-04-29Feltz Printing Service NEW39Anna Fali
1030Maisha RulapaughSpain2026-05-01Chanay, Jeffrey A Esq UNQUALIFIED78Asiya Javayant
1031Maria MarrierAustralia2026-04-26Chanay, Jeffrey A Esq RENEWAL80Bernardo Dominic
1032Chavez BriddickFrance2026-04-15Buckley Miller Wright PROPOSAL36Amy Elsner
1033Antonio CaudyGermany2026-04-20Buckley Miller Wright UNQUALIFIED76Ivan Magalhaes
1034Salvatore StockhamSpain2026-04-17Chemel, James L Cpa NEW9Bernardo Dominic
1035Jeanfrancois VenereBrazil2026-04-20Feiner Bros UNQUALIFIED78Amy Elsner
1036Francesco ShinkoArgentina2026-04-19Buckley Miller Wright QUALIFIED84Onyama Limba
1037Tony FollerRussia2026-05-03Rangoni Of Florence NEGOTIATION77Ivan Magalhaes
1038Julie StensethJapan2026-04-28Buckley Miller Wright PROPOSAL94Stephen Shaw
1039Rodrigues CampainJapan2026-05-02Chapman, Ross E Esq PROPOSAL97Ioni Bowcher
1040Sinclair WaycottItaly2026-04-29Rangoni Of Florence NEW34Ioni Bowcher
1041Aruna FigeroaAustralia2026-05-03Commercial Press NEW63Ioni Bowcher
1042Alejandro PerinItaly2026-05-04Benton, John B Jr PROPOSAL39Asiya Javayant
1043Cody SaylorsFrance2026-04-06Chemel, James L Cpa NEW66Ioni Bowcher
1044Mujtaba NickaBrazil2026-04-23Feiner Bros PROPOSAL68Xuxue Feng
1045Clifford RimIndia2026-04-16Chanay, Jeffrey A Esq NEGOTIATION59Ivan Magalhaes
1046Adams MorascaIndia2026-05-01Printing Dimensions RENEWAL37Asiya Javayant
1047Adams MorascaBrazil2026-04-11Commercial Press UNQUALIFIED13Ivan Magalhaes
1048Wickens NestleBrazil2026-04-15Commercial Press QUALIFIED85Anna Fali
1049Izzy GarufiCanada2026-04-30King, Christopher A Esq UNQUALIFIED87Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteArgentinaElwin Sharvill UNQUALIFIED
Nicolas IturbideUnited KingdomAmy Elsner RENEWAL
Clifford RimGermanyXuxue Feng PROPOSAL
Wickens NestleBrazilXuxue Feng NEGOTIATION
Clifford RimJapanIvan Magalhaes RENEWAL
Leja CaldareraArgentinaAsiya Javayant NEGOTIATION
Costa DilliardAustraliaIoni Bowcher QUALIFIED
Claire TollnerJapanIoni Bowcher NEW
Greenwood BologniaJapanOnyama Limba NEGOTIATION
Emily WhobreySpainAmy Elsner QUALIFIED
Kaitlin OstroskyFranceStephen Shaw NEGOTIATION
Greenwood BologniaCanadaBernardo Dominic PROPOSAL
Mayumi KolmetzAustraliaAmy Elsner QUALIFIED
Emily WhobreySpainXuxue Feng UNQUALIFIED
James ButtGermanyXuxue Feng RENEWAL
Clifford RimAustraliaIoni Bowcher UNQUALIFIED
James ButtBrazilAmy Elsner PROPOSAL
Aditya KuskoAustraliaBernardo Dominic QUALIFIED
Maria MarrierFranceXuxue Feng QUALIFIED
Aika InouyeIndiaAmy Elsner PROPOSAL
Jennifer AmigonAustraliaElwin Sharvill UNQUALIFIED
Ricardo GauchoIndiaBernardo Dominic PROPOSAL
Mayumi KolmetzAustraliaElwin Sharvill NEGOTIATION
Claire TollnerCanadaAsiya Javayant PROPOSAL
Nicolas IturbideArgentinaIoni Bowcher NEW
Mujtaba NickaGermanyIoni Bowcher PROPOSAL
Jones VocelkaRussiaAsiya Javayant RENEWAL
Mayumi KolmetzRussiaBernardo Dominic NEW
Jeanfrancois VenereGermanyIoni Bowcher UNQUALIFIED
Aditya KuskoBrazilAnna Fali NEW
Emily WhobreyRussiaOnyama Limba NEW
Leja CaldareraIndiaAsiya Javayant NEGOTIATION
Ashley DoeJapanIvan Magalhaes RENEWAL
Claire TollnerIndiaIoni Bowcher PROPOSAL
Mayumi KolmetzSpainBernardo Dominic PROPOSAL
Rodrigues CampainArgentinaXuxue Feng NEW
Wickens NestleItalyAnna Fali UNQUALIFIED
Chavez BriddickBrazilOnyama Limba QUALIFIED
Jones VocelkaCanadaIoni Bowcher PROPOSAL
Antonio CaudyBrazilOnyama Limba UNQUALIFIED
Izzy GarufiSpainElwin Sharvill QUALIFIED
Salvatore StockhamRussiaElwin Sharvill NEGOTIATION
Adams MorascaGermanyOnyama Limba PROPOSAL
Arvin AlbaresItalyBernardo Dominic QUALIFIED
Jennifer AmigonCanadaOnyama Limba NEW
Leja CaldareraSpainIoni Bowcher QUALIFIED
Jennifer AmigonSpainStephen Shaw QUALIFIED
Faith GillianBrazilAsiya Javayant NEGOTIATION
Stacey MacleadItalyIvan Magalhaes RENEWAL
Emily WhobreyFranceAnna Fali NEW
Frozen Columns
Name
Izzy Garufi
Silvio Slusarski
Murillo Malet
Deepesh Chui
Ricardo Gaucho
Misaki Royster
Ricardo Gaucho
Jeanfrancois Venere
Jennifer Amigon
Alejandro Perin
Aika Inouye
Salvatore Stockham
Maisha Rulapaugh
Jefferson Schemmer
Rodrigues Campain
Jeanfrancois Venere
Sinclair Waycott
Johnson Sergi
Sinclair Waycott
Ivar Paprocki
Deepesh Chui
Nicolas Iturbide
Nicolas Iturbide
Cody Saylors
Kaitlin Ostrosky
Antonio Caudy
Mayumi Kolmetz
Leon Oldroyd
Aruna Figeroa
Smith Glick
Maisha Rulapaugh
Darci Poquette
Stacey Maclead
David Darakjy
Greenwood Bolognia
Adams Morasca
Rodrigues Campain
Murillo Malet
Francesco Shinko
James Butt
Rodrigues Campain
Faith Gillian
Costa Dilliard
Smith Glick
Misaki Royster
Sinclair Waycott
James Butt
James Butt
Ricardo Gaucho
Isabel Bowley
IdCountryDate
1000United Kingdom2026-04-21
1001Australia2026-04-28
1002Russia2026-04-14
1003Japan2026-04-25
1004Russia2026-04-22
1005Germany2026-05-02
1006Argentina2026-04-05
1007Russia2026-05-04
1008Brazil2026-04-15
1009Italy2026-04-07
1010United Kingdom2026-05-03
1011Russia2026-04-11
1012Italy2026-04-07
1013Italy2026-04-17
1014France2026-04-15
1015India2026-04-23
1016United Kingdom2026-05-03
1017Italy2026-04-16
1018Spain2026-04-05
1019Japan2026-04-21
1020Canada2026-04-08
1021Italy2026-04-30
1022Germany2026-04-21
1023Italy2026-04-30
1024Japan2026-04-08
1025United Kingdom2026-04-08
1026India2026-04-08
1027Russia2026-04-12
1028France2026-04-12
1029Japan2026-04-29
1030France2026-04-08
1031Canada2026-04-17
1032Argentina2026-04-25
1033France2026-04-05
1034Russia2026-04-05
1035United Kingdom2026-05-04
1036France2026-05-02
1037Spain2026-04-11
1038Japan2026-04-24
1039Japan2026-04-17
1040United Kingdom2026-04-12
1041Canada2026-04-13
1042Germany2026-05-02
1043United Kingdom2026-04-28
1044Italy2026-04-30
1045Australia2026-04-15
1046Australia2026-04-17
1047Italy2026-05-03
1048Germany2026-04-23
1049Canada2026-05-01

On-Demand Data

NameIdCountryDate
Cody Saylors1000Japan2026-04-29
Julie Stenseth1001France2026-04-30
Jefferson Schemmer1002Russia2026-04-22
Silvio Slusarski1003United Kingdom2026-04-21
Munro Ferencz1004Australia2026-04-16
David Darakjy1005Japan2026-04-09
Aika Inouye1006Canada2026-04-20
Salvatore Stockham1007Argentina2026-05-03
Murillo Malet1008United Kingdom2026-04-13
Emily Whobrey1009India2026-04-09
Misaki Royster1010Spain2026-04-25
Jones Vocelka1011Spain2026-04-17
Maria Marrier1012Russia2026-04-26
Salvatore Stockham1013Spain2026-04-13
Costa Dilliard1014United Kingdom2026-04-13
Jennifer Amigon1015Russia2026-04-13
Aditya Kusko1016Germany2026-05-04
Claire Tollner1017Brazil2026-05-01
Alejandro Perin1018Argentina2026-04-30
Jeanfrancois Venere1019Japan2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterBrazilOnyama Limba QUALIFIED
Cody SaylorsRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamBrazilOnyama Limba RENEWAL
Jones VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Juan WieserRussiaAmy Elsner NEGOTIATION
Adams MorascaIndiaAsiya Javayant PROPOSAL
Nicolas IturbideAustraliaElwin Sharvill PROPOSAL
Wickens NestleArgentinaAsiya Javayant PROPOSAL
Jennifer AmigonFranceAnna Fali NEGOTIATION
Jeanfrancois VenereSpainStephen Shaw UNQUALIFIED
Aruna FigeroaGermanyXuxue Feng QUALIFIED
Sinclair WaycottIndiaAmy Elsner QUALIFIED
Kadeem FlosiAustraliaElwin Sharvill PROPOSAL
Aika InouyeUnited KingdomIoni Bowcher RENEWAL
Misaki RoysterIndiaElwin Sharvill NEW
Alejandro PerinGermanyElwin Sharvill NEGOTIATION
Izzy GarufiFranceIvan Magalhaes NEGOTIATION
Kaitlin OstroskyRussiaIvan Magalhaes RENEWAL
Juan WieserIndiaAmy Elsner QUALIFIED
Arvin AlbaresSpainAsiya Javayant QUALIFIED
Claire TollnerBrazilIvan Magalhaes QUALIFIED
Kadeem FlosiGermanyAmy Elsner RENEWAL
Adams MorascaIndiaIoni Bowcher QUALIFIED
Kadeem FlosiSpainIoni Bowcher NEGOTIATION
Chavez BriddickSpainXuxue Feng NEW
Cody SaylorsAustraliaIoni Bowcher UNQUALIFIED
Misaki RoysterArgentinaAnna Fali UNQUALIFIED
Ricardo GauchoRussiaOnyama Limba NEGOTIATION
Munro FerenczFranceElwin Sharvill RENEWAL
Antonio CaudyGermanyOnyama Limba PROPOSAL
Kaitlin OstroskyArgentinaStephen Shaw NEW
Jones VocelkaBrazilOnyama Limba NEGOTIATION
Arvin AlbaresJapanElwin Sharvill PROPOSAL
Antonio CaudyIndiaAnna Fali NEW
Nicolas IturbideJapanXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaXuxue Feng PROPOSAL
Tony FollerUnited KingdomAmy Elsner QUALIFIED
Aika InouyeSpainIvan Magalhaes PROPOSAL
David DarakjySpainElwin Sharvill QUALIFIED
Silvio SlusarskiSpainAmy Elsner NEGOTIATION

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