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
Jennifer AmigonItalyIoni Bowcher NEGOTIATION
Smith GlickCanadaAnna Fali RENEWAL
Juan WieserSpainOnyama Limba UNQUALIFIED
Rodrigues CampainCanadaOnyama Limba UNQUALIFIED
David DarakjySpainXuxue Feng NEW
Murillo MaletJapanIoni Bowcher UNQUALIFIED
James ButtJapanXuxue Feng QUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher PROPOSAL
Misaki RoysterJapanIvan Magalhaes NEW
Kaitlin OstroskyJapanXuxue Feng QUALIFIED
Jones VocelkaCanadaAsiya Javayant UNQUALIFIED
Sinclair WaycottCanadaStephen Shaw NEGOTIATION
Ivar PaprockiIndiaIvan Magalhaes QUALIFIED
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Alejandro PerinArgentinaOnyama Limba QUALIFIED
Morrow RutaAustraliaAnna Fali QUALIFIED
Darci PoquetteItalyXuxue Feng RENEWAL
Claire TollnerCanadaAnna Fali RENEWAL
Salvatore StockhamAustraliaIvan Magalhaes QUALIFIED
Kadeem FlosiCanadaOnyama Limba PROPOSAL
Greenwood BologniaGermanyIoni Bowcher RENEWAL
Mujtaba NickaIndiaOnyama Limba RENEWAL
Wickens NestleBrazilAsiya Javayant QUALIFIED
Jefferson SchemmerJapanBernardo Dominic NEW
Octavia MaletArgentinaElwin Sharvill PROPOSAL
Greenwood BologniaSpainAmy Elsner RENEWAL
Juan WieserSpainIvan Magalhaes QUALIFIED
Jefferson SchemmerItalyXuxue Feng UNQUALIFIED
Deepesh ChuiItalyAmy Elsner NEGOTIATION
Julie StensethJapanAmy Elsner RENEWAL
Deepesh ChuiFranceIvan Magalhaes RENEWAL
Chavez BriddickAustraliaStephen Shaw QUALIFIED
Maisha RulapaughUnited KingdomAsiya Javayant NEW
Silvio SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Cody SaylorsArgentinaStephen Shaw RENEWAL
Ashley DoeArgentinaXuxue Feng QUALIFIED
Jeanfrancois VenereBrazilStephen Shaw PROPOSAL
Julie StensethBrazilAmy Elsner QUALIFIED
Leja CaldareraSpainAnna Fali NEW
Smith GlickRussiaAmy Elsner UNQUALIFIED
Munro FerenczAustraliaElwin Sharvill RENEWAL
Aika InouyeIndiaElwin Sharvill PROPOSAL
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiCanadaIoni Bowcher RENEWAL
Jeanfrancois VenereAustraliaBernardo Dominic NEW
Francesco ShinkoUnited KingdomXuxue Feng PROPOSAL
Antonio CaudyRussiaAmy Elsner PROPOSAL
Jefferson SchemmerItalyIoni Bowcher PROPOSAL
Salvatore StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Silvio SlusarskiFranceOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiGermanyBernardo Dominic RENEWAL
Arvin AlbaresCanadaAmy Elsner UNQUALIFIED
Jefferson SchemmerFranceIvan Magalhaes UNQUALIFIED
Leja CaldareraJapanAsiya Javayant PROPOSAL
Salvatore StockhamFranceOnyama Limba PROPOSAL
Isabel BowleySpainIoni Bowcher UNQUALIFIED
Darci PoquetteAustraliaAmy Elsner NEGOTIATION
Leon OldroydArgentinaOnyama Limba NEGOTIATION
Claire TollnerArgentinaAmy Elsner NEW
Adams MorascaUnited KingdomIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletItaly2026-05-17Chapman, Ross E Esq QUALIFIED88Anna Fali
1001Ricardo GauchoJapan2026-05-27Benton, John B Jr QUALIFIED37Ivan Magalhaes
1002Kaitlin OstroskyUnited Kingdom2026-05-26Printing Dimensions NEGOTIATION9Xuxue Feng
1003Murillo MaletSpain2026-06-06Buckley Miller Wright NEW20Anna Fali
1004Isabel BowleyItaly2026-06-01Commercial Press NEW28Xuxue Feng
1005Murillo MaletUnited Kingdom2026-05-20Buckley Miller Wright PROPOSAL13Asiya Javayant
1006Claire TollnerUnited Kingdom2026-05-20Rousseaux, Michael Esq NEW91Ivan Magalhaes
1007Antonio CaudyAustralia2026-05-27Morlong Associates NEW13Asiya Javayant
1008Wickens NestleAustralia2026-06-14Feltz Printing Service UNQUALIFIED60Asiya Javayant
1009Nicolas IturbideUnited Kingdom2026-06-09Rangoni Of Florence NEW35Anna Fali
1010Chavez BriddickJapan2026-06-10Commercial Press UNQUALIFIED98Ioni Bowcher
1011Aika InouyeGermany2026-06-05Chapman, Ross E Esq RENEWAL82Anna Fali
1012Morrow RutaIndia2026-06-04Rangoni Of Florence QUALIFIED65Asiya Javayant
1013Sinclair WaycottCanada2026-06-10Rousseaux, Michael Esq PROPOSAL16Onyama Limba
1014Jeanfrancois VenereSpain2026-05-18Chemel, James L Cpa NEGOTIATION90Ivan Magalhaes
1015Alejandro PerinGermany2026-06-13Feiner Bros RENEWAL52Anna Fali
1016Murillo MaletAustralia2026-06-12Feiner Bros RENEWAL72Ioni Bowcher
1017Deepesh ChuiBrazil2026-05-21Chapman, Ross E Esq NEW51Ivan Magalhaes
1018Sinclair WaycottItaly2026-05-23Chapman, Ross E Esq QUALIFIED92Ioni Bowcher
1019Aika InouyeArgentina2026-05-18Commercial Press QUALIFIED89Anna Fali
1020Jeanfrancois VenereSpain2026-06-07Printing Dimensions PROPOSAL30Stephen Shaw
1021Ivar PaprockiJapan2026-05-25Chapman, Ross E Esq PROPOSAL24Asiya Javayant
1022Ricardo GauchoItaly2026-06-07Feiner Bros UNQUALIFIED78Ioni Bowcher
1023Costa DilliardUnited Kingdom2026-05-29Feiner Bros UNQUALIFIED29Elwin Sharvill
1024Smith GlickAustralia2026-05-23Benton, John B Jr UNQUALIFIED13Ioni Bowcher
1025Izzy GarufiGermany2026-06-09King, Christopher A Esq RENEWAL45Anna Fali
1026Darci PoquetteFrance2026-06-01Dorl, James J Esq NEGOTIATION65Anna Fali
1027Kaitlin OstroskyItaly2026-06-09Rousseaux, Michael Esq NEW80Stephen Shaw
1028Greenwood BologniaArgentina2026-05-29Buckley Miller Wright UNQUALIFIED89Elwin Sharvill
1029Stacey MacleadRussia2026-06-08Feiner Bros PROPOSAL79Asiya Javayant
1030Jeanfrancois VenereIndia2026-06-01Morlong Associates UNQUALIFIED60Ivan Magalhaes
1031Smith GlickAustralia2026-05-30Feltz Printing Service RENEWAL75Anna Fali
1032Jefferson SchemmerGermany2026-06-09Dorl, James J Esq RENEWAL39Stephen Shaw
1033Jennifer AmigonItaly2026-05-27Benton, John B Jr RENEWAL49Amy Elsner
1034Mujtaba NickaCanada2026-06-10Morlong Associates UNQUALIFIED0Amy Elsner
1035Leon OldroydRussia2026-05-20Truhlar And Truhlar Attys PROPOSAL89Amy Elsner
1036Misaki RoysterItaly2026-05-18Dorl, James J Esq NEGOTIATION46Ivan Magalhaes
1037Johnson SergiArgentina2026-05-17Dorl, James J Esq RENEWAL91Amy Elsner
1038Salvatore StockhamGermany2026-05-22Feiner Bros RENEWAL25Bernardo Dominic
1039Jennifer AmigonBrazil2026-05-27Chemel, James L Cpa NEGOTIATION32Bernardo Dominic
1040Jennifer AmigonBrazil2026-06-11Chanay, Jeffrey A Esq RENEWAL82Ivan Magalhaes
1041Greenwood BologniaJapan2026-06-15Chanay, Jeffrey A Esq NEGOTIATION81Anna Fali
1042Faith GillianSpain2026-05-17Feltz Printing Service NEW6Xuxue Feng
1043Leja CaldareraIndia2026-06-12Chapman, Ross E Esq UNQUALIFIED83Xuxue Feng
1044Arvin AlbaresGermany2026-05-21Printing Dimensions UNQUALIFIED44Anna Fali
1045Maisha RulapaughArgentina2026-06-08Chanay, Jeffrey A Esq UNQUALIFIED28Onyama Limba
1046Ashley DoeBrazil2026-05-18King, Christopher A Esq QUALIFIED53Xuxue Feng
1047Sinclair WaycottIndia2026-05-27Benton, John B Jr NEGOTIATION41Asiya Javayant
1048Deepesh ChuiSpain2026-06-13Printing Dimensions PROPOSAL34Xuxue Feng
1049Costa DilliardUnited Kingdom2026-06-08Rangoni Of Florence NEGOTIATION9Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereAustraliaAnna Fali RENEWAL
Antonio CaudyFranceIoni Bowcher NEW
Maria MarrierFranceAnna Fali PROPOSAL
Ivar PaprockiBrazilIvan Magalhaes NEW
Mujtaba NickaUnited KingdomAmy Elsner UNQUALIFIED
Aditya KuskoGermanyAmy Elsner NEW
Misaki RoysterGermanyXuxue Feng QUALIFIED
Leja CaldareraAustraliaIvan Magalhaes NEW
Aruna FigeroaAustraliaXuxue Feng NEW
Munro FerenczRussiaXuxue Feng UNQUALIFIED
Antonio CaudyAustraliaStephen Shaw PROPOSAL
Emily WhobreyGermanyAnna Fali NEW
Juan WieserUnited KingdomAnna Fali QUALIFIED
Clifford RimCanadaStephen Shaw NEGOTIATION
Wickens NestleJapanStephen Shaw UNQUALIFIED
Emily WhobreyJapanIoni Bowcher QUALIFIED
Emily WhobreyIndiaElwin Sharvill NEW
Arvin AlbaresGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoRussiaAsiya Javayant NEGOTIATION
Jennifer AmigonRussiaIvan Magalhaes NEW
Greenwood BologniaCanadaStephen Shaw NEW
Darci PoquetteArgentinaAmy Elsner UNQUALIFIED
Ivar PaprockiIndiaAnna Fali NEGOTIATION
David DarakjySpainBernardo Dominic NEGOTIATION
Misaki RoysterItalyAmy Elsner UNQUALIFIED
Murillo MaletCanadaOnyama Limba NEGOTIATION
Maria MarrierJapanAmy Elsner NEW
Jennifer AmigonBrazilStephen Shaw NEGOTIATION
Clifford RimUnited KingdomAsiya Javayant PROPOSAL
Sinclair WaycottFranceOnyama Limba PROPOSAL
Aditya KuskoFranceIoni Bowcher UNQUALIFIED
Darci PoquetteRussiaBernardo Dominic PROPOSAL
Morrow RutaAustraliaAsiya Javayant UNQUALIFIED
Francesco ShinkoIndiaAmy Elsner NEW
Julie StensethGermanyStephen Shaw PROPOSAL
Claire TollnerGermanyIvan Magalhaes RENEWAL
Kaitlin OstroskyGermanyAsiya Javayant QUALIFIED
Johnson SergiSpainStephen Shaw UNQUALIFIED
Emily WhobreySpainIoni Bowcher PROPOSAL
Clifford RimIndiaStephen Shaw RENEWAL
Murillo MaletGermanyAmy Elsner PROPOSAL
Greenwood BologniaSpainIvan Magalhaes UNQUALIFIED
James ButtArgentinaIoni Bowcher NEGOTIATION
James ButtIndiaAsiya Javayant QUALIFIED
Silvio SlusarskiAustraliaBernardo Dominic RENEWAL
Isabel BowleyItalyIoni Bowcher NEW
Costa DilliardFranceOnyama Limba RENEWAL
Nicolas IturbideItalyAnna Fali NEGOTIATION
Juan WieserUnited KingdomXuxue Feng RENEWAL
Ashley DoeUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Jones Vocelka
Deepesh Chui
Nicolas Iturbide
Jennifer Amigon
Juan Wieser
Sinclair Waycott
Juan Wieser
Maisha Rulapaugh
Jennifer Amigon
Kaitlin Ostrosky
Tony Foller
Darci Poquette
Cody Saylors
Emily Whobrey
Leja Caldarera
Salvatore Stockham
Johnson Sergi
Morrow Ruta
Aika Inouye
Jones Vocelka
Aditya Kusko
Alejandro Perin
Chavez Briddick
Leon Oldroyd
Maisha Rulapaugh
Octavia Malet
Nicolas Iturbide
Stacey Maclead
Jennifer Amigon
Jennifer Amigon
Izzy Garufi
Misaki Royster
Alejandro Perin
Ricardo Gaucho
Izzy Garufi
Silvio Slusarski
Cody Saylors
Misaki Royster
Arvin Albares
Munro Ferencz
Wickens Nestle
Kaitlin Ostrosky
Faith Gillian
Stacey Maclead
Francesco Shinko
Izzy Garufi
Chavez Briddick
Aika Inouye
Jones Vocelka
Tony Foller
IdCountryDate
1000United Kingdom2026-05-31
1001France2026-05-26
1002Japan2026-06-14
1003Canada2026-06-01
1004Spain2026-05-25
1005Germany2026-06-14
1006Canada2026-05-22
1007Argentina2026-05-23
1008France2026-05-26
1009Canada2026-06-07
1010Japan2026-05-27
1011Australia2026-06-07
1012Russia2026-05-19
1013Germany2026-05-30
1014Germany2026-06-08
1015Germany2026-05-26
1016Argentina2026-05-30
1017Russia2026-06-10
1018Spain2026-06-04
1019Canada2026-05-31
1020Italy2026-05-23
1021United Kingdom2026-05-17
1022Brazil2026-05-31
1023Australia2026-05-24
1024Russia2026-06-04
1025Canada2026-05-27
1026Argentina2026-06-11
1027Canada2026-05-30
1028Spain2026-06-07
1029Italy2026-06-13
1030Spain2026-05-17
1031Australia2026-05-19
1032Canada2026-05-31
1033Argentina2026-06-09
1034Russia2026-05-22
1035Spain2026-06-13
1036Japan2026-06-12
1037France2026-05-19
1038Australia2026-06-15
1039Canada2026-05-23
1040India2026-06-06
1041Germany2026-05-27
1042Argentina2026-05-18
1043Argentina2026-05-17
1044India2026-06-01
1045United Kingdom2026-06-15
1046Japan2026-06-13
1047Italy2026-05-31
1048Germany2026-05-25
1049Germany2026-05-29

On-Demand Data

NameIdCountryDate
Emily Whobrey1000Italy2026-05-22
Claire Tollner1001Japan2026-06-15
Deepesh Chui1002United Kingdom2026-06-06
Octavia Malet1003Japan2026-06-03
Izzy Garufi1004Australia2026-05-24
Jennifer Amigon1005Spain2026-06-07
Emily Whobrey1006Germany2026-05-30
Leja Caldarera1007Italy2026-05-23
Adams Morasca1008Germany2026-06-01
Aika Inouye1009Canada2026-06-12
Aika Inouye1010Brazil2026-06-09
Aruna Figeroa1011Italy2026-06-04
Smith Glick1012Germany2026-05-29
Faith Gillian1013Japan2026-05-17
Darci Poquette1014Brazil2026-05-23
Greenwood Bolognia1015United Kingdom2026-06-15
Maisha Rulapaugh1016United Kingdom2026-05-29
Tony Foller1017United Kingdom2026-05-30
Juan Wieser1018Brazil2026-06-14
Aditya Kusko1019Germany2026-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardAustraliaAnna Fali RENEWAL
Francesco ShinkoAustraliaStephen Shaw UNQUALIFIED
Maria MarrierAustraliaXuxue Feng RENEWAL
Munro FerenczJapanBernardo Dominic NEGOTIATION
Octavia MaletBrazilBernardo Dominic NEGOTIATION
Ricardo GauchoFranceOnyama Limba NEGOTIATION
James ButtSpainOnyama Limba NEW
Kadeem FlosiArgentinaXuxue Feng QUALIFIED
Alejandro PerinAustraliaAnna Fali UNQUALIFIED
Aruna FigeroaIndiaStephen Shaw UNQUALIFIED
Kaitlin OstroskyJapanIvan Magalhaes NEGOTIATION
Clifford RimItalyAnna Fali NEGOTIATION
Costa DilliardRussiaIvan Magalhaes NEW
Maria MarrierIndiaXuxue Feng RENEWAL
Faith GillianFranceBernardo Dominic NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill PROPOSAL
Smith GlickIndiaAsiya Javayant NEW
Tony FollerItalyAsiya Javayant NEGOTIATION
Aruna FigeroaFranceElwin Sharvill UNQUALIFIED
Arvin AlbaresIndiaStephen Shaw PROPOSAL
Johnson SergiRussiaAmy Elsner NEW
Rodrigues CampainFranceOnyama Limba RENEWAL
Wickens NestleArgentinaStephen Shaw NEW
David DarakjyIndiaAsiya Javayant NEGOTIATION
Faith GillianArgentinaIoni Bowcher RENEWAL
Murillo MaletGermanyAsiya Javayant QUALIFIED
Morrow RutaBrazilOnyama Limba RENEWAL
Sinclair WaycottFranceIvan Magalhaes QUALIFIED
Isabel BowleyUnited KingdomXuxue Feng UNQUALIFIED
Nicolas IturbideRussiaElwin Sharvill UNQUALIFIED
Adams MorascaFranceAsiya Javayant UNQUALIFIED
Morrow RutaItalyIoni Bowcher QUALIFIED
Greenwood BologniaGermanyAmy Elsner NEW
Francesco ShinkoUnited KingdomStephen Shaw NEGOTIATION
Nicolas IturbideIndiaIvan Magalhaes NEGOTIATION
Jennifer AmigonCanadaIoni Bowcher RENEWAL
Silvio SlusarskiArgentinaElwin Sharvill UNQUALIFIED
Munro FerenczCanadaElwin Sharvill PROPOSAL
Mujtaba NickaArgentinaOnyama Limba RENEWAL
Wickens NestleUnited KingdomOnyama Limba PROPOSAL

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