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
Tony FollerCanadaIvan Magalhaes NEW
Mujtaba NickaArgentinaAnna Fali RENEWAL
Greenwood BologniaFranceBernardo Dominic RENEWAL
Isabel BowleyRussiaIvan Magalhaes NEW
Sinclair WaycottJapanIoni Bowcher NEW
Julie StensethRussiaAsiya Javayant PROPOSAL
Aika InouyeGermanyIoni Bowcher NEW
Mujtaba NickaGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiGermanyXuxue Feng NEW
Francesco ShinkoIndiaBernardo Dominic UNQUALIFIED
Jones VocelkaFranceElwin Sharvill UNQUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Munro FerenczJapanElwin Sharvill NEW
Francesco ShinkoSpainAmy Elsner QUALIFIED
Greenwood BologniaBrazilElwin Sharvill PROPOSAL
Kaitlin OstroskyIndiaIvan Magalhaes UNQUALIFIED
Leja CaldareraCanadaXuxue Feng UNQUALIFIED
Silvio SlusarskiBrazilIvan Magalhaes QUALIFIED
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereAustraliaAmy Elsner NEGOTIATION
Tony FollerRussiaStephen Shaw QUALIFIED
Izzy GarufiIndiaIvan Magalhaes QUALIFIED
Rodrigues CampainArgentinaBernardo Dominic RENEWAL
Morrow RutaUnited KingdomStephen Shaw QUALIFIED
Emily WhobreyCanadaIvan Magalhaes NEGOTIATION
Ivar PaprockiUnited KingdomBernardo Dominic NEW
Francesco ShinkoBrazilIoni Bowcher NEW
Francesco ShinkoCanadaElwin Sharvill NEGOTIATION
Octavia MaletArgentinaIoni Bowcher UNQUALIFIED
Antonio CaudyAustraliaXuxue Feng PROPOSAL
Antonio CaudyIndiaOnyama Limba RENEWAL
Octavia MaletArgentinaStephen Shaw QUALIFIED
Aika InouyeSpainAmy Elsner UNQUALIFIED
Smith GlickRussiaElwin Sharvill UNQUALIFIED
Juan WieserGermanyElwin Sharvill QUALIFIED
Darci PoquetteFranceAmy Elsner PROPOSAL
Deepesh ChuiFranceBernardo Dominic QUALIFIED
Izzy GarufiSpainStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomAnna Fali NEW
Ashley DoeArgentinaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyItalyAnna Fali RENEWAL
Tony FollerItalyAnna Fali RENEWAL
Jones VocelkaItalyStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore StockhamCanadaAmy Elsner NEGOTIATION
Chavez BriddickJapanAnna Fali QUALIFIED
Antonio CaudyJapanAsiya Javayant NEGOTIATION
Ricardo GauchoItalyStephen Shaw RENEWAL
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Mayumi KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith GillianArgentinaAsiya Javayant UNQUALIFIED
Smith GlickFranceXuxue Feng PROPOSAL
Rodrigues CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens NestleRussiaBernardo Dominic PROPOSAL
Greenwood BologniaAustraliaIoni Bowcher NEW
Munro FerenczUnited KingdomXuxue Feng NEW
James ButtBrazilAnna Fali QUALIFIED
Nicolas IturbideItalyAsiya Javayant RENEWAL
Morrow RutaGermanyXuxue Feng PROPOSAL
Misaki RoysterJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskyAustralia2026-05-03King, Christopher A Esq QUALIFIED60Anna Fali
1001Darci PoquetteRussia2026-05-13Dorl, James J Esq NEW54Amy Elsner
1002Cody SaylorsCanada2026-05-13Feiner Bros UNQUALIFIED48Xuxue Feng
1003Ivar PaprockiFrance2026-05-22King, Christopher A Esq QUALIFIED93Anna Fali
1004Rodrigues CampainFrance2026-05-17Feltz Printing Service RENEWAL15Xuxue Feng
1005Mujtaba NickaAustralia2026-05-19King, Christopher A Esq NEW96Stephen Shaw
1006Deepesh ChuiUnited Kingdom2026-05-19Rousseaux, Michael Esq PROPOSAL45Onyama Limba
1007Adams MorascaAustralia2026-05-24Commercial Press NEW82Amy Elsner
1008Jefferson SchemmerSpain2026-05-02Feltz Printing Service NEGOTIATION44Ioni Bowcher
1009Faith GillianJapan2026-05-03Rangoni Of Florence QUALIFIED57Ivan Magalhaes
1010Wickens NestleSpain2026-05-01Feiner Bros PROPOSAL53Asiya Javayant
1011Juan WieserGermany2026-05-09Feltz Printing Service RENEWAL88Xuxue Feng
1012Greenwood BologniaJapan2026-05-15King, Christopher A Esq NEGOTIATION11Ioni Bowcher
1013Johnson SergiIndia2026-05-23Chapman, Ross E Esq RENEWAL47Anna Fali
1014Jones VocelkaFrance2026-05-23Chapman, Ross E Esq NEGOTIATION78Ioni Bowcher
1015Clifford RimGermany2026-05-09Feiner Bros NEW25Asiya Javayant
1016James ButtJapan2026-05-13Commercial Press QUALIFIED87Ioni Bowcher
1017Nicolas IturbideItaly2026-05-12Printing Dimensions RENEWAL28Xuxue Feng
1018Julie StensethFrance2026-05-03Feiner Bros QUALIFIED29Bernardo Dominic
1019Silvio SlusarskiJapan2026-04-28Chapman, Ross E Esq NEGOTIATION19Onyama Limba
1020Murillo MaletIndia2026-04-28Printing Dimensions QUALIFIED86Amy Elsner
1021Faith GillianRussia2026-05-17Feiner Bros PROPOSAL34Amy Elsner
1022Rodrigues CampainRussia2026-05-16Printing Dimensions QUALIFIED85Onyama Limba
1023Misaki RoysterJapan2026-04-27Truhlar And Truhlar Attys QUALIFIED24Stephen Shaw
1024Cody SaylorsBrazil2026-05-14Chemel, James L Cpa PROPOSAL72Ivan Magalhaes
1025James ButtFrance2026-05-12Feiner Bros NEGOTIATION55Onyama Limba
1026Adams MorascaSpain2026-04-29Chanay, Jeffrey A Esq QUALIFIED1Onyama Limba
1027Sinclair WaycottRussia2026-05-19Chemel, James L Cpa RENEWAL87Amy Elsner
1028Isabel BowleyBrazil2026-05-24Truhlar And Truhlar Attys QUALIFIED87Elwin Sharvill
1029Maria MarrierIndia2026-05-03Benton, John B Jr QUALIFIED34Stephen Shaw
1030Rodrigues CampainCanada2026-05-21Commercial Press RENEWAL97Ioni Bowcher
1031Mujtaba NickaCanada2026-04-30Benton, John B Jr PROPOSAL87Ivan Magalhaes
1032Isabel BowleyItaly2026-05-18Dorl, James J Esq UNQUALIFIED17Amy Elsner
1033Stacey MacleadSpain2026-05-12Chemel, James L Cpa RENEWAL10Ioni Bowcher
1034Smith GlickBrazil2026-04-26Chanay, Jeffrey A Esq PROPOSAL10Ivan Magalhaes
1035Arvin AlbaresIndia2026-05-01Morlong Associates NEGOTIATION89Elwin Sharvill
1036Deepesh ChuiArgentina2026-05-01Buckley Miller Wright PROPOSAL67Bernardo Dominic
1037Francesco ShinkoSpain2026-05-06Commercial Press PROPOSAL5Amy Elsner
1038Claire TollnerItaly2026-05-22Chapman, Ross E Esq RENEWAL48Bernardo Dominic
1039Julie StensethRussia2026-04-29Feltz Printing Service NEW79Anna Fali
1040Deepesh ChuiSpain2026-05-08Chemel, James L Cpa QUALIFIED29Asiya Javayant
1041Morrow RutaUnited Kingdom2026-05-12Printing Dimensions RENEWAL62Ioni Bowcher
1042Ricardo GauchoJapan2026-05-20Chapman, Ross E Esq NEGOTIATION52Amy Elsner
1043Alejandro PerinRussia2026-05-03Rangoni Of Florence PROPOSAL75Ivan Magalhaes
1044Rodrigues CampainUnited Kingdom2026-05-12Chemel, James L Cpa QUALIFIED45Onyama Limba
1045Jeanfrancois VenereFrance2026-05-11Feltz Printing Service PROPOSAL16Xuxue Feng
1046Jeanfrancois VenereAustralia2026-05-18Printing Dimensions RENEWAL63Amy Elsner
1047Nicolas IturbideItaly2026-05-14Rangoni Of Florence RENEWAL12Onyama Limba
1048Jeanfrancois VenereAustralia2026-05-03Buckley Miller Wright QUALIFIED19Amy Elsner
1049Isabel BowleyAustralia2026-05-24Rangoni Of Florence NEGOTIATION62Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainFranceXuxue Feng NEW
Maria MarrierArgentinaXuxue Feng PROPOSAL
Mujtaba NickaUnited KingdomAsiya Javayant UNQUALIFIED
Leon OldroydGermanyAmy Elsner UNQUALIFIED
Antonio CaudySpainBernardo Dominic NEGOTIATION
Jefferson SchemmerItalyXuxue Feng QUALIFIED
Izzy GarufiUnited KingdomOnyama Limba QUALIFIED
Nicolas IturbideArgentinaAnna Fali QUALIFIED
Jones VocelkaRussiaXuxue Feng UNQUALIFIED
Jones VocelkaJapanXuxue Feng PROPOSAL
Sinclair WaycottRussiaIoni Bowcher QUALIFIED
James ButtBrazilXuxue Feng NEW
Octavia MaletBrazilElwin Sharvill QUALIFIED
Leon OldroydSpainXuxue Feng NEW
Julie StensethGermanyIvan Magalhaes PROPOSAL
Faith GillianGermanyOnyama Limba NEW
Jeanfrancois VenereFranceIoni Bowcher NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher UNQUALIFIED
Jefferson SchemmerFranceIvan Magalhaes QUALIFIED
Aika InouyeJapanAsiya Javayant UNQUALIFIED
Mayumi KolmetzCanadaStephen Shaw NEGOTIATION
Emily WhobreyGermanyAsiya Javayant PROPOSAL
Sinclair WaycottAustraliaAsiya Javayant NEGOTIATION
Julie StensethUnited KingdomXuxue Feng NEGOTIATION
Isabel BowleyGermanyAnna Fali UNQUALIFIED
Cody SaylorsBrazilXuxue Feng NEW
Aruna FigeroaArgentinaIoni Bowcher PROPOSAL
Mayumi KolmetzJapanOnyama Limba UNQUALIFIED
Jeanfrancois VenereRussiaIoni Bowcher PROPOSAL
Mayumi KolmetzCanadaBernardo Dominic UNQUALIFIED
Jones VocelkaGermanyAnna Fali NEGOTIATION
Juan WieserFranceAnna Fali NEW
Octavia MaletGermanyIvan Magalhaes UNQUALIFIED
Deepesh ChuiItalyXuxue Feng QUALIFIED
Isabel BowleyAustraliaElwin Sharvill NEW
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Izzy GarufiFranceBernardo Dominic PROPOSAL
Julie StensethJapanXuxue Feng UNQUALIFIED
Isabel BowleySpainIoni Bowcher PROPOSAL
Faith GillianAustraliaAnna Fali QUALIFIED
Izzy GarufiJapanOnyama Limba NEGOTIATION
Kaitlin OstroskyIndiaAmy Elsner NEW
Jeanfrancois VenereAustraliaStephen Shaw UNQUALIFIED
Deepesh ChuiFranceAnna Fali PROPOSAL
Faith GillianIndiaIoni Bowcher PROPOSAL
Tony FollerSpainXuxue Feng NEW
Jeanfrancois VenereIndiaOnyama Limba PROPOSAL
Tony FollerItalyIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanAnna Fali UNQUALIFIED
Alejandro PerinJapanOnyama Limba UNQUALIFIED
Frozen Columns
Name
Sinclair Waycott
Ricardo Gaucho
Costa Dilliard
Salvatore Stockham
Cody Saylors
Cody Saylors
Wickens Nestle
Julie Stenseth
Claire Tollner
Adams Morasca
Johnson Sergi
Maria Marrier
Munro Ferencz
Misaki Royster
Nicolas Iturbide
Nicolas Iturbide
Salvatore Stockham
Kadeem Flosi
Faith Gillian
Alejandro Perin
Deepesh Chui
Murillo Malet
Isabel Bowley
Deepesh Chui
Leon Oldroyd
Aika Inouye
Salvatore Stockham
Misaki Royster
Isabel Bowley
Aika Inouye
Smith Glick
Ricardo Gaucho
Kadeem Flosi
Antonio Caudy
Munro Ferencz
Murillo Malet
Francesco Shinko
Wickens Nestle
Isabel Bowley
Nicolas Iturbide
Tony Foller
Leon Oldroyd
Francesco Shinko
Darci Poquette
Ricardo Gaucho
Ashley Doe
Jennifer Amigon
Cody Saylors
Leon Oldroyd
Murillo Malet
IdCountryDate
1000Germany2026-05-19
1001Germany2026-05-18
1002Russia2026-05-07
1003Japan2026-05-08
1004Brazil2026-05-23
1005Brazil2026-05-08
1006Germany2026-04-25
1007United Kingdom2026-05-18
1008Russia2026-04-30
1009Italy2026-05-19
1010United Kingdom2026-04-28
1011India2026-05-18
1012Australia2026-04-28
1013United Kingdom2026-05-07
1014Japan2026-05-02
1015Canada2026-05-19
1016Germany2026-04-26
1017Germany2026-05-06
1018Argentina2026-05-18
1019Spain2026-04-28
1020Italy2026-04-30
1021Russia2026-04-30
1022Italy2026-04-26
1023France2026-05-02
1024United Kingdom2026-05-16
1025United Kingdom2026-05-02
1026Australia2026-05-13
1027Japan2026-04-29
1028United Kingdom2026-05-10
1029Japan2026-05-04
1030Japan2026-05-17
1031Canada2026-05-13
1032United Kingdom2026-05-05
1033Brazil2026-05-21
1034Canada2026-05-10
1035Russia2026-04-29
1036Russia2026-05-22
1037Spain2026-05-06
1038India2026-05-15
1039Japan2026-05-01
1040Canada2026-05-12
1041Australia2026-05-09
1042United Kingdom2026-05-08
1043Spain2026-05-24
1044Germany2026-04-30
1045Brazil2026-04-30
1046Japan2026-05-18
1047Brazil2026-05-21
1048Russia2026-05-16
1049Spain2026-05-08

On-Demand Data

NameIdCountryDate
Ashley Doe1000Russia2026-05-10
Ivar Paprocki1001Germany2026-05-23
Claire Tollner1002Spain2026-05-13
Deepesh Chui1003Canada2026-05-19
Costa Dilliard1004Spain2026-05-16
Ricardo Gaucho1005India2026-05-18
Rodrigues Campain1006United Kingdom2026-05-15
Stacey Maclead1007Germany2026-05-13
Juan Wieser1008Japan2026-05-07
Wickens Nestle1009Japan2026-04-25
Murillo Malet1010Spain2026-04-25
Stacey Maclead1011Italy2026-04-25
Adams Morasca1012Italy2026-05-09
Maria Marrier1013Australia2026-05-11
Greenwood Bolognia1014Russia2026-04-26
Aruna Figeroa1015Russia2026-05-19
Darci Poquette1016Italy2026-05-22
Mayumi Kolmetz1017Italy2026-05-07
Leja Caldarera1018United Kingdom2026-05-19
Aruna Figeroa1019Italy2026-05-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinJapanAmy Elsner RENEWAL
James ButtRussiaElwin Sharvill UNQUALIFIED
Clifford RimArgentinaXuxue Feng RENEWAL
Isabel BowleyUnited KingdomElwin Sharvill NEW
Stacey MacleadGermanyOnyama Limba NEGOTIATION
Jones VocelkaSpainAnna Fali NEGOTIATION
Arvin AlbaresRussiaStephen Shaw NEGOTIATION
Costa DilliardBrazilOnyama Limba UNQUALIFIED
Chavez BriddickGermanyAsiya Javayant UNQUALIFIED
Cody SaylorsUnited KingdomIoni Bowcher NEW
Antonio CaudyArgentinaElwin Sharvill NEGOTIATION
Smith GlickSpainAmy Elsner UNQUALIFIED
Munro FerenczArgentinaXuxue Feng PROPOSAL
Maria MarrierArgentinaIoni Bowcher PROPOSAL
Juan WieserIndiaIoni Bowcher NEGOTIATION
Ivar PaprockiArgentinaAsiya Javayant NEGOTIATION
Smith GlickSpainBernardo Dominic RENEWAL
Francesco ShinkoFranceAmy Elsner NEGOTIATION
Mayumi KolmetzUnited KingdomElwin Sharvill NEW
Sinclair WaycottGermanyXuxue Feng UNQUALIFIED
Chavez BriddickCanadaOnyama Limba UNQUALIFIED
Salvatore StockhamFranceXuxue Feng NEW
Kadeem FlosiUnited KingdomOnyama Limba PROPOSAL
Kadeem FlosiAustraliaAnna Fali RENEWAL
Jeanfrancois VenereItalyBernardo Dominic NEW
Costa DilliardArgentinaStephen Shaw PROPOSAL
Aika InouyeItalyXuxue Feng UNQUALIFIED
Rodrigues CampainUnited KingdomOnyama Limba RENEWAL
Antonio CaudyBrazilAnna Fali NEGOTIATION
Ivar PaprockiBrazilAmy Elsner QUALIFIED
Mayumi KolmetzRussiaOnyama Limba NEW
Adams MorascaUnited KingdomStephen Shaw NEGOTIATION
Mayumi KolmetzFranceBernardo Dominic NEW
Alejandro PerinBrazilStephen Shaw RENEWAL
Mayumi KolmetzAustraliaXuxue Feng NEGOTIATION
Aika InouyeItalyBernardo Dominic RENEWAL
Claire TollnerRussiaIvan Magalhaes RENEWAL
Julie StensethArgentinaXuxue Feng PROPOSAL
Silvio SlusarskiBrazilElwin Sharvill UNQUALIFIED
Clifford RimRussiaIoni Bowcher NEW

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