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
Izzy GarufiAustraliaIvan Magalhaes PROPOSAL
Cody SaylorsAustraliaAmy Elsner UNQUALIFIED
Tony FollerIndiaXuxue Feng NEGOTIATION
Munro FerenczFranceBernardo Dominic PROPOSAL
Arvin AlbaresBrazilIoni Bowcher NEGOTIATION
Arvin AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiGermanyBernardo Dominic RENEWAL
Sinclair WaycottArgentinaAnna Fali QUALIFIED
Antonio CaudyUnited KingdomIvan Magalhaes RENEWAL
Stacey MacleadUnited KingdomAsiya Javayant RENEWAL
Adams MorascaCanadaAmy Elsner QUALIFIED
Stacey MacleadSpainIoni Bowcher RENEWAL
Leja CaldareraArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher NEGOTIATION
Jeanfrancois VenereArgentinaIoni Bowcher PROPOSAL
Adams MorascaJapanAnna Fali NEW
Mujtaba NickaRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereIndiaAnna Fali RENEWAL
Isabel BowleyItalyStephen Shaw NEGOTIATION
Costa DilliardRussiaElwin Sharvill UNQUALIFIED
Ivar PaprockiArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletSpainIoni Bowcher PROPOSAL
Murillo MaletJapanIvan Magalhaes QUALIFIED
Wickens NestleRussiaAmy Elsner PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant NEW
Salvatore StockhamArgentinaXuxue Feng PROPOSAL
Salvatore StockhamBrazilElwin Sharvill QUALIFIED
Jefferson SchemmerRussiaOnyama Limba RENEWAL
Maria MarrierCanadaBernardo Dominic NEGOTIATION
Francesco ShinkoJapanXuxue Feng PROPOSAL
Jennifer AmigonArgentinaStephen Shaw PROPOSAL
Julie StensethRussiaBernardo Dominic PROPOSAL
Alejandro PerinBrazilAnna Fali QUALIFIED
Kadeem FlosiBrazilStephen Shaw QUALIFIED
Francesco ShinkoAustraliaAmy Elsner UNQUALIFIED
Juan WieserIndiaAsiya Javayant PROPOSAL
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Antonio CaudyCanadaIoni Bowcher NEW
Alejandro PerinAustraliaAsiya Javayant NEGOTIATION
Johnson SergiBrazilIoni Bowcher NEW
Morrow RutaFranceAsiya Javayant NEW
Johnson SergiFranceIvan Magalhaes NEGOTIATION
Clifford RimArgentinaIoni Bowcher NEGOTIATION
Smith GlickJapanBernardo Dominic RENEWAL
Leon OldroydItalyElwin Sharvill NEGOTIATION
Deepesh ChuiArgentinaAnna Fali RENEWAL
Alejandro PerinRussiaAnna Fali PROPOSAL
Ricardo GauchoBrazilAmy Elsner QUALIFIED
Mujtaba NickaUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin OstroskyGermanyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire TollnerRussiaXuxue Feng QUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill RENEWAL
David DarakjyGermanyAmy Elsner NEW
Juan WieserRussiaBernardo Dominic NEGOTIATION
Mujtaba NickaAustraliaBernardo Dominic RENEWAL
Greenwood BologniaUnited KingdomIoni Bowcher RENEWAL
Francesco ShinkoCanadaIvan Magalhaes NEGOTIATION
Jones VocelkaArgentinaBernardo Dominic RENEWAL
Adams MorascaItalyXuxue Feng UNQUALIFIED
Kaitlin OstroskyFranceIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzFrance2025-07-16Feltz Printing Service NEGOTIATION78Anna Fali
1001Jones VocelkaAustralia2025-07-14Feltz Printing Service RENEWAL38Elwin Sharvill
1002Greenwood BologniaJapan2025-07-27Chemel, James L Cpa NEGOTIATION37Ivan Magalhaes
1003Darci PoquetteIndia2025-08-07Printing Dimensions UNQUALIFIED45Ivan Magalhaes
1004Juan WieserAustralia2025-08-05Buckley Miller Wright NEGOTIATION27Ioni Bowcher
1005Johnson SergiFrance2025-07-20Feltz Printing Service UNQUALIFIED24Bernardo Dominic
1006Arvin AlbaresAustralia2025-07-15Morlong Associates UNQUALIFIED13Ivan Magalhaes
1007Wickens NestleGermany2025-07-21Feltz Printing Service PROPOSAL4Elwin Sharvill
1008Aditya KuskoArgentina2025-07-30Rangoni Of Florence QUALIFIED25Anna Fali
1009Salvatore StockhamGermany2025-08-02Buckley Miller Wright RENEWAL89Stephen Shaw
1010Maria MarrierBrazil2025-07-19Chanay, Jeffrey A Esq RENEWAL80Elwin Sharvill
1011Juan WieserGermany2025-07-28Printing Dimensions UNQUALIFIED11Ivan Magalhaes
1012Johnson SergiItaly2025-08-08Truhlar And Truhlar Attys PROPOSAL35Onyama Limba
1013Francesco ShinkoCanada2025-08-06Morlong Associates QUALIFIED56Elwin Sharvill
1014Chavez BriddickBrazil2025-08-09Rousseaux, Michael Esq NEGOTIATION73Ivan Magalhaes
1015Clifford RimGermany2025-07-29Truhlar And Truhlar Attys PROPOSAL70Xuxue Feng
1016Munro FerenczJapan2025-07-24Rousseaux, Michael Esq NEGOTIATION36Ivan Magalhaes
1017Stacey MacleadSpain2025-07-31Rangoni Of Florence NEW35Asiya Javayant
1018Juan WieserIndia2025-08-01Benton, John B Jr QUALIFIED48Elwin Sharvill
1019Aika InouyeJapan2025-08-10Rousseaux, Michael Esq RENEWAL13Elwin Sharvill
1020Arvin AlbaresIndia2025-07-31Morlong Associates NEW54Elwin Sharvill
1021Tony FollerCanada2025-07-25Chanay, Jeffrey A Esq NEGOTIATION74Onyama Limba
1022Clifford RimJapan2025-07-18Morlong Associates UNQUALIFIED73Ioni Bowcher
1023Greenwood BologniaAustralia2025-08-03Truhlar And Truhlar Attys UNQUALIFIED34Onyama Limba
1024Adams MorascaGermany2025-08-03Benton, John B Jr QUALIFIED91Ioni Bowcher
1025Arvin AlbaresIndia2025-07-18Truhlar And Truhlar Attys UNQUALIFIED55Ivan Magalhaes
1026Maria MarrierIndia2025-08-01Rangoni Of Florence PROPOSAL42Ivan Magalhaes
1027Wickens NestleGermany2025-08-04Rangoni Of Florence NEGOTIATION36Xuxue Feng
1028Aditya KuskoCanada2025-07-16Chapman, Ross E Esq NEGOTIATION94Anna Fali
1029Deepesh ChuiItaly2025-07-22Morlong Associates RENEWAL78Ivan Magalhaes
1030Izzy GarufiRussia2025-07-28Dorl, James J Esq RENEWAL52Ioni Bowcher
1031Faith GillianArgentina2025-08-09Printing Dimensions QUALIFIED76Elwin Sharvill
1032Izzy GarufiRussia2025-07-17Commercial Press RENEWAL65Elwin Sharvill
1033Maria MarrierJapan2025-07-23Rangoni Of Florence QUALIFIED88Bernardo Dominic
1034Aika InouyeRussia2025-08-09Rousseaux, Michael Esq NEGOTIATION84Stephen Shaw
1035Clifford RimCanada2025-08-10Chapman, Ross E Esq PROPOSAL26Ioni Bowcher
1036Sinclair WaycottSpain2025-07-22Feiner Bros PROPOSAL0Onyama Limba
1037Ivar PaprockiUnited Kingdom2025-07-15Truhlar And Truhlar Attys NEW40Stephen Shaw
1038Clifford RimSpain2025-07-17Chapman, Ross E Esq RENEWAL10Elwin Sharvill
1039Ricardo GauchoItaly2025-07-24Truhlar And Truhlar Attys RENEWAL64Stephen Shaw
1040Faith GillianItaly2025-07-16Chemel, James L Cpa NEGOTIATION26Bernardo Dominic
1041Clifford RimSpain2025-08-05Chapman, Ross E Esq NEW93Bernardo Dominic
1042James ButtArgentina2025-07-22King, Christopher A Esq RENEWAL91Anna Fali
1043Emily WhobreyArgentina2025-08-12Feltz Printing Service PROPOSAL18Stephen Shaw
1044Ricardo GauchoItaly2025-07-29Rousseaux, Michael Esq RENEWAL15Ivan Magalhaes
1045Munro FerenczFrance2025-07-18Printing Dimensions RENEWAL20Anna Fali
1046Aruna FigeroaIndia2025-07-22Printing Dimensions QUALIFIED8Elwin Sharvill
1047Claire TollnerGermany2025-08-12Rousseaux, Michael Esq QUALIFIED33Onyama Limba
1048Stacey MacleadFrance2025-08-11Feiner Bros QUALIFIED84Elwin Sharvill
1049Cody SaylorsBrazil2025-07-27Buckley Miller Wright PROPOSAL54Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsRussiaXuxue Feng RENEWAL
Faith GillianItalyIvan Magalhaes RENEWAL
Murillo MaletSpainAmy Elsner PROPOSAL
Smith GlickBrazilIvan Magalhaes NEGOTIATION
Silvio SlusarskiSpainElwin Sharvill UNQUALIFIED
Ashley DoeCanadaAnna Fali NEGOTIATION
Alejandro PerinSpainElwin Sharvill UNQUALIFIED
Maisha RulapaughItalyOnyama Limba QUALIFIED
Silvio SlusarskiUnited KingdomElwin Sharvill NEW
Stacey MacleadIndiaBernardo Dominic NEW
Octavia MaletSpainBernardo Dominic RENEWAL
Jeanfrancois VenereArgentinaBernardo Dominic QUALIFIED
Juan WieserRussiaStephen Shaw NEGOTIATION
Murillo MaletArgentinaStephen Shaw RENEWAL
Chavez BriddickRussiaAmy Elsner NEGOTIATION
Stacey MacleadFranceBernardo Dominic NEW
Cody SaylorsGermanyIvan Magalhaes PROPOSAL
Kaitlin OstroskyBrazilOnyama Limba PROPOSAL
Leon OldroydArgentinaElwin Sharvill UNQUALIFIED
James ButtCanadaIoni Bowcher NEGOTIATION
Juan WieserIndiaIoni Bowcher NEGOTIATION
Aditya KuskoBrazilIoni Bowcher QUALIFIED
Octavia MaletFranceAsiya Javayant NEGOTIATION
Arvin AlbaresItalyXuxue Feng UNQUALIFIED
Clifford RimRussiaIvan Magalhaes UNQUALIFIED
Maria MarrierBrazilBernardo Dominic UNQUALIFIED
Smith GlickSpainStephen Shaw UNQUALIFIED
Alejandro PerinRussiaAmy Elsner PROPOSAL
Aruna FigeroaUnited KingdomAnna Fali NEW
Darci PoquetteGermanyBernardo Dominic UNQUALIFIED
Emily WhobreyGermanyAnna Fali QUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill PROPOSAL
Ashley DoeAustraliaIoni Bowcher NEGOTIATION
Tony FollerArgentinaBernardo Dominic UNQUALIFIED
Sinclair WaycottBrazilXuxue Feng NEGOTIATION
Greenwood BologniaArgentinaElwin Sharvill NEGOTIATION
Isabel BowleyBrazilAmy Elsner QUALIFIED
Ashley DoeGermanyStephen Shaw UNQUALIFIED
Ashley DoeIndiaIvan Magalhaes QUALIFIED
Aditya KuskoItalyXuxue Feng QUALIFIED
Nicolas IturbideCanadaAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomBernardo Dominic NEGOTIATION
Leon OldroydArgentinaBernardo Dominic UNQUALIFIED
Julie StensethItalyBernardo Dominic NEW
Adams MorascaIndiaOnyama Limba NEGOTIATION
Aditya KuskoArgentinaIoni Bowcher PROPOSAL
Izzy GarufiFranceAmy Elsner PROPOSAL
Aditya KuskoBrazilIoni Bowcher QUALIFIED
Kadeem FlosiItalyAsiya Javayant NEW
Julie StensethFranceAmy Elsner NEW
Frozen Columns
Name
Stacey Maclead
Darci Poquette
Johnson Sergi
Izzy Garufi
Costa Dilliard
Claire Tollner
Silvio Slusarski
Ashley Doe
Mujtaba Nicka
Ivar Paprocki
Mayumi Kolmetz
Salvatore Stockham
James Butt
Faith Gillian
Francesco Shinko
Francesco Shinko
Rodrigues Campain
Aruna Figeroa
Leja Caldarera
Leja Caldarera
Adams Morasca
Wickens Nestle
Aika Inouye
Smith Glick
Kadeem Flosi
Mayumi Kolmetz
Silvio Slusarski
Ashley Doe
Isabel Bowley
Sinclair Waycott
Salvatore Stockham
Misaki Royster
Cody Saylors
Tony Foller
Claire Tollner
Munro Ferencz
Ashley Doe
Izzy Garufi
Adams Morasca
Deepesh Chui
Darci Poquette
Munro Ferencz
Kaitlin Ostrosky
Claire Tollner
Morrow Ruta
Salvatore Stockham
Jones Vocelka
Aditya Kusko
Leja Caldarera
Cody Saylors
IdCountryDate
1000Argentina2025-08-07
1001Brazil2025-07-28
1002Brazil2025-08-10
1003France2025-07-31
1004Argentina2025-07-26
1005Spain2025-08-11
1006Argentina2025-07-30
1007Japan2025-08-07
1008Australia2025-08-08
1009Brazil2025-07-29
1010Argentina2025-07-27
1011Spain2025-08-07
1012India2025-08-11
1013Argentina2025-07-26
1014Argentina2025-07-17
1015Australia2025-08-07
1016Canada2025-07-26
1017Spain2025-08-04
1018Brazil2025-08-11
1019Australia2025-07-19
1020United Kingdom2025-07-31
1021Italy2025-07-15
1022Russia2025-08-11
1023Germany2025-07-27
1024Japan2025-08-07
1025United Kingdom2025-08-05
1026United Kingdom2025-07-27
1027Germany2025-08-03
1028United Kingdom2025-07-22
1029Germany2025-07-31
1030Germany2025-07-16
1031United Kingdom2025-08-06
1032Russia2025-08-12
1033Japan2025-08-10
1034France2025-07-27
1035Argentina2025-08-12
1036Italy2025-07-25
1037United Kingdom2025-07-30
1038Canada2025-08-11
1039Argentina2025-08-09
1040France2025-08-08
1041United Kingdom2025-07-30
1042Japan2025-08-03
1043Italy2025-08-11
1044Spain2025-07-24
1045Russia2025-07-28
1046Japan2025-08-09
1047Italy2025-08-10
1048Brazil2025-07-21
1049France2025-08-05

On-Demand Data

NameIdCountryDate
Clifford Rim1000Australia2025-07-26
Morrow Ruta1001Canada2025-07-19
Rodrigues Campain1002Russia2025-07-23
Johnson Sergi1003France2025-08-08
Leon Oldroyd1004India2025-07-22
Faith Gillian1005United Kingdom2025-08-12
Cody Saylors1006Canada2025-07-21
Aditya Kusko1007India2025-08-12
Adams Morasca1008United Kingdom2025-07-23
Ricardo Gaucho1009Russia2025-07-15
Adams Morasca1010Spain2025-08-04
Octavia Malet1011Germany2025-07-14
Rodrigues Campain1012Italy2025-08-09
Francesco Shinko1013Japan2025-08-01
Mayumi Kolmetz1014Russia2025-07-22
Jeanfrancois Venere1015United Kingdom2025-07-30
Julie Stenseth1016India2025-07-22
Emily Whobrey1017France2025-07-19
Izzy Garufi1018Germany2025-08-11
Maria Marrier1019Italy2025-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinItalyAsiya Javayant RENEWAL
Maria MarrierIndiaElwin Sharvill QUALIFIED
Clifford RimCanadaIvan Magalhaes PROPOSAL
Kadeem FlosiItalyIvan Magalhaes RENEWAL
Antonio CaudyJapanBernardo Dominic NEGOTIATION
Deepesh ChuiCanadaAnna Fali PROPOSAL
Juan WieserFranceAnna Fali UNQUALIFIED
Leon OldroydGermanyIoni Bowcher NEGOTIATION
Clifford RimSpainOnyama Limba PROPOSAL
Leon OldroydBrazilBernardo Dominic UNQUALIFIED
Alejandro PerinItalyAsiya Javayant NEGOTIATION
Rodrigues CampainAustraliaStephen Shaw RENEWAL
Morrow RutaSpainAmy Elsner PROPOSAL
Munro FerenczRussiaStephen Shaw UNQUALIFIED
Aruna FigeroaCanadaIoni Bowcher QUALIFIED
Aditya KuskoBrazilOnyama Limba NEW
Ivar PaprockiIndiaStephen Shaw QUALIFIED
Isabel BowleySpainAsiya Javayant UNQUALIFIED
Leon OldroydCanadaIvan Magalhaes NEGOTIATION
Maria MarrierIndiaStephen Shaw NEW
Johnson SergiBrazilStephen Shaw PROPOSAL
David DarakjyCanadaAmy Elsner NEW
Mayumi KolmetzBrazilOnyama Limba QUALIFIED
Isabel BowleyIndiaXuxue Feng QUALIFIED
Sinclair WaycottJapanBernardo Dominic PROPOSAL
Izzy GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Ivar PaprockiCanadaAmy Elsner RENEWAL
Kaitlin OstroskyBrazilIoni Bowcher NEGOTIATION
Leon OldroydBrazilIoni Bowcher PROPOSAL
Deepesh ChuiIndiaIoni Bowcher NEGOTIATION
Aditya KuskoSpainIoni Bowcher QUALIFIED
Chavez BriddickBrazilXuxue Feng UNQUALIFIED
Darci PoquetteArgentinaXuxue Feng RENEWAL
Stacey MacleadAustraliaElwin Sharvill RENEWAL
Murillo MaletFranceStephen Shaw NEW
Leon OldroydItalyAsiya Javayant PROPOSAL
Isabel BowleyRussiaStephen Shaw NEGOTIATION
Wickens NestleJapanBernardo Dominic NEW
Stacey MacleadRussiaStephen Shaw RENEWAL
Emily WhobreyIndiaOnyama Limba 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>