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
Wickens NestleCanadaXuxue Feng UNQUALIFIED
Murillo MaletFranceAsiya Javayant NEW
Murillo MaletBrazilXuxue Feng NEGOTIATION
Chavez BriddickArgentinaXuxue Feng NEW
Alejandro PerinIndiaIvan Magalhaes RENEWAL
Munro FerenczGermanyStephen Shaw NEW
Greenwood BologniaBrazilElwin Sharvill PROPOSAL
Aruna FigeroaArgentinaOnyama Limba QUALIFIED
Darci PoquetteItalyStephen Shaw NEGOTIATION
Wickens NestleGermanyBernardo Dominic QUALIFIED
Misaki RoysterUnited KingdomIoni Bowcher PROPOSAL
Ivar PaprockiRussiaAsiya Javayant RENEWAL
Costa DilliardFranceIoni Bowcher NEW
Aruna FigeroaFranceXuxue Feng UNQUALIFIED
Cody SaylorsSpainAmy Elsner NEW
Nicolas IturbideItalyIvan Magalhaes NEW
Murillo MaletSpainAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaXuxue Feng NEW
Johnson SergiGermanyIvan Magalhaes UNQUALIFIED
Darci PoquetteUnited KingdomIoni Bowcher QUALIFIED
Clifford RimGermanyElwin Sharvill NEGOTIATION
James ButtItalyAnna Fali RENEWAL
Francesco ShinkoCanadaIvan Magalhaes QUALIFIED
Leja CaldareraGermanyOnyama Limba UNQUALIFIED
Tony FollerJapanBernardo Dominic NEW
Nicolas IturbideAustraliaXuxue Feng NEW
Jeanfrancois VenereBrazilXuxue Feng UNQUALIFIED
David DarakjyCanadaElwin Sharvill QUALIFIED
Stacey MacleadUnited KingdomAmy Elsner QUALIFIED
Munro FerenczCanadaAmy Elsner NEGOTIATION
Kadeem FlosiIndiaElwin Sharvill NEGOTIATION
Wickens NestleUnited KingdomAnna Fali UNQUALIFIED
Isabel BowleyFranceStephen Shaw UNQUALIFIED
Deepesh ChuiArgentinaElwin Sharvill RENEWAL
Salvatore StockhamCanadaIoni Bowcher PROPOSAL
Kaitlin OstroskyBrazilStephen Shaw RENEWAL
Murillo MaletAustraliaIoni Bowcher PROPOSAL
Claire TollnerSpainXuxue Feng QUALIFIED
Smith GlickFranceBernardo Dominic QUALIFIED
Salvatore StockhamJapanXuxue Feng RENEWAL
Johnson SergiFranceXuxue Feng PROPOSAL
Arvin AlbaresRussiaXuxue Feng RENEWAL
Silvio SlusarskiArgentinaElwin Sharvill QUALIFIED
Munro FerenczUnited KingdomAnna Fali PROPOSAL
Kadeem FlosiGermanyXuxue Feng NEW
Nicolas IturbideFranceAsiya Javayant NEW
Isabel BowleyAustraliaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
Clifford RimItalyOnyama Limba NEW
Aruna FigeroaUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan WieserArgentinaElwin Sharvill UNQUALIFIED
Chavez BriddickSpainXuxue Feng NEGOTIATION
Izzy GarufiCanadaBernardo Dominic NEGOTIATION
Jennifer AmigonIndiaIvan Magalhaes PROPOSAL
Claire TollnerBrazilElwin Sharvill NEW
Julie StensethUnited KingdomOnyama Limba NEW
Misaki RoysterIndiaXuxue Feng QUALIFIED
Francesco ShinkoBrazilOnyama Limba PROPOSAL
Costa DilliardArgentinaXuxue Feng QUALIFIED
Clifford RimCanadaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianArgentina2026-05-09Feltz Printing Service PROPOSAL82Elwin Sharvill
1001Tony FollerArgentina2026-05-25Truhlar And Truhlar Attys NEGOTIATION73Ioni Bowcher
1002Ashley DoeArgentina2026-05-03Feiner Bros UNQUALIFIED80Anna Fali
1003Alejandro PerinIndia2026-05-22Dorl, James J Esq QUALIFIED7Xuxue Feng
1004James ButtJapan2026-05-17Dorl, James J Esq NEGOTIATION58Asiya Javayant
1005David DarakjyBrazil2026-04-29Chanay, Jeffrey A Esq NEW89Onyama Limba
1006Sinclair WaycottBrazil2026-05-05Dorl, James J Esq QUALIFIED33Onyama Limba
1007Morrow RutaSpain2026-05-10Feiner Bros NEW45Stephen Shaw
1008Munro FerenczGermany2026-05-18Feltz Printing Service NEW0Onyama Limba
1009Faith GillianArgentina2026-05-03Morlong Associates PROPOSAL30Ivan Magalhaes
1010Salvatore StockhamIndia2026-05-24Commercial Press PROPOSAL55Amy Elsner
1011Greenwood BologniaGermany2026-05-08Feltz Printing Service QUALIFIED78Elwin Sharvill
1012Jefferson SchemmerCanada2026-05-21Feltz Printing Service NEW72Ioni Bowcher
1013James ButtIndia2026-05-20Benton, John B Jr NEW40Onyama Limba
1014Kadeem FlosiItaly2026-05-25Rousseaux, Michael Esq RENEWAL88Amy Elsner
1015Silvio SlusarskiUnited Kingdom2026-05-18Chapman, Ross E Esq NEGOTIATION6Asiya Javayant
1016Ivar PaprockiArgentina2026-05-01Rangoni Of Florence RENEWAL57Onyama Limba
1017Mayumi KolmetzJapan2026-05-12Truhlar And Truhlar Attys RENEWAL14Ivan Magalhaes
1018Greenwood BologniaRussia2026-04-29Printing Dimensions UNQUALIFIED6Stephen Shaw
1019Ricardo GauchoJapan2026-05-15Benton, John B Jr QUALIFIED23Xuxue Feng
1020Munro FerenczIndia2026-05-05Dorl, James J Esq RENEWAL3Asiya Javayant
1021Deepesh ChuiCanada2026-05-01Feiner Bros NEW70Bernardo Dominic
1022Octavia MaletJapan2026-05-10Feiner Bros PROPOSAL31Ioni Bowcher
1023Sinclair WaycottGermany2026-05-08Printing Dimensions PROPOSAL26Elwin Sharvill
1024Maria MarrierIndia2026-04-27Dorl, James J Esq UNQUALIFIED45Asiya Javayant
1025Isabel BowleyUnited Kingdom2026-05-06Benton, John B Jr UNQUALIFIED33Onyama Limba
1026Kaitlin OstroskyCanada2026-05-11Chemel, James L Cpa PROPOSAL75Amy Elsner
1027Nicolas IturbideAustralia2026-05-04Truhlar And Truhlar Attys RENEWAL29Stephen Shaw
1028David DarakjyArgentina2026-05-12King, Christopher A Esq PROPOSAL27Elwin Sharvill
1029James ButtArgentina2026-05-03Morlong Associates NEW73Amy Elsner
1030Deepesh ChuiItaly2026-05-25King, Christopher A Esq PROPOSAL37Elwin Sharvill
1031Silvio SlusarskiRussia2026-05-15Feiner Bros UNQUALIFIED89Elwin Sharvill
1032Adams MorascaRussia2026-05-13Commercial Press RENEWAL5Ivan Magalhaes
1033Jeanfrancois VenereBrazil2026-04-29Rousseaux, Michael Esq UNQUALIFIED52Anna Fali
1034Misaki RoysterBrazil2026-05-02Feiner Bros UNQUALIFIED79Amy Elsner
1035Stacey MacleadUnited Kingdom2026-05-24Rangoni Of Florence UNQUALIFIED66Stephen Shaw
1036Tony FollerFrance2026-05-24Buckley Miller Wright NEW45Stephen Shaw
1037Ricardo GauchoRussia2026-05-18Dorl, James J Esq RENEWAL42Onyama Limba
1038Morrow RutaSpain2026-05-20Chapman, Ross E Esq NEGOTIATION76Onyama Limba
1039Kadeem FlosiJapan2026-05-06Commercial Press NEGOTIATION16Amy Elsner
1040Johnson SergiJapan2026-05-15Rousseaux, Michael Esq UNQUALIFIED17Elwin Sharvill
1041Aika InouyeAustralia2026-05-21Rangoni Of Florence NEGOTIATION5Anna Fali
1042Aika InouyeCanada2026-04-28King, Christopher A Esq UNQUALIFIED11Amy Elsner
1043Ricardo GauchoJapan2026-05-13Dorl, James J Esq UNQUALIFIED35Amy Elsner
1044Murillo MaletSpain2026-05-06Chanay, Jeffrey A Esq RENEWAL92Elwin Sharvill
1045Alejandro PerinUnited Kingdom2026-05-17Commercial Press QUALIFIED25Ioni Bowcher
1046Aruna FigeroaItaly2026-05-20Chanay, Jeffrey A Esq UNQUALIFIED74Amy Elsner
1047Murillo MaletRussia2026-04-27Feltz Printing Service NEGOTIATION91Xuxue Feng
1048Alejandro PerinCanada2026-05-13Chanay, Jeffrey A Esq RENEWAL3Elwin Sharvill
1049Jones VocelkaGermany2026-05-03Benton, John B Jr UNQUALIFIED28Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
James ButtSpainOnyama Limba RENEWAL
Alejandro PerinIndiaAmy Elsner PROPOSAL
Emily WhobreyCanadaElwin Sharvill NEGOTIATION
Izzy GarufiBrazilAsiya Javayant NEW
Aika InouyeJapanBernardo Dominic NEW
Cody SaylorsCanadaElwin Sharvill NEGOTIATION
Juan WieserUnited KingdomAmy Elsner NEGOTIATION
Faith GillianArgentinaAnna Fali UNQUALIFIED
Wickens NestleRussiaAnna Fali NEW
Aditya KuskoJapanStephen Shaw RENEWAL
Ricardo GauchoItalyBernardo Dominic UNQUALIFIED
Aruna FigeroaCanadaIoni Bowcher RENEWAL
Jefferson SchemmerRussiaElwin Sharvill UNQUALIFIED
Nicolas IturbideFranceAmy Elsner RENEWAL
Maria MarrierAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyIndiaIoni Bowcher PROPOSAL
Francesco ShinkoArgentinaOnyama Limba QUALIFIED
Deepesh ChuiCanadaElwin Sharvill RENEWAL
Faith GillianIndiaXuxue Feng RENEWAL
Arvin AlbaresUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba NickaItalyBernardo Dominic NEGOTIATION
Salvatore StockhamFranceIoni Bowcher UNQUALIFIED
Kaitlin OstroskyArgentinaIvan Magalhaes NEW
Jefferson SchemmerBrazilXuxue Feng RENEWAL
Rodrigues CampainFranceStephen Shaw UNQUALIFIED
Adams MorascaJapanXuxue Feng PROPOSAL
Kaitlin OstroskyUnited KingdomAsiya Javayant QUALIFIED
Chavez BriddickIndiaIvan Magalhaes RENEWAL
Chavez BriddickIndiaXuxue Feng PROPOSAL
Jennifer AmigonBrazilBernardo Dominic RENEWAL
Antonio CaudyRussiaOnyama Limba NEW
Wickens NestleRussiaStephen Shaw NEW
Jennifer AmigonRussiaAnna Fali UNQUALIFIED
Tony FollerGermanyAmy Elsner QUALIFIED
Antonio CaudyIndiaElwin Sharvill NEW
Jones VocelkaArgentinaStephen Shaw UNQUALIFIED
Morrow RutaRussiaAsiya Javayant UNQUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes NEGOTIATION
Antonio CaudyAustraliaStephen Shaw NEGOTIATION
Emily WhobreyRussiaIoni Bowcher RENEWAL
Isabel BowleySpainElwin Sharvill NEGOTIATION
Mayumi KolmetzRussiaIoni Bowcher QUALIFIED
Smith GlickSpainStephen Shaw NEGOTIATION
Johnson SergiBrazilOnyama Limba NEGOTIATION
Aika InouyeBrazilIoni Bowcher RENEWAL
Francesco ShinkoBrazilStephen Shaw UNQUALIFIED
Alejandro PerinGermanyIoni Bowcher PROPOSAL
Aika InouyeGermanyAsiya Javayant PROPOSAL
Maisha RulapaughAustraliaIoni Bowcher QUALIFIED
Alejandro PerinIndiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Aruna Figeroa
Kadeem Flosi
Adams Morasca
Johnson Sergi
Isabel Bowley
Claire Tollner
Johnson Sergi
Aditya Kusko
Faith Gillian
Munro Ferencz
Deepesh Chui
Cody Saylors
Rodrigues Campain
Ivar Paprocki
Leon Oldroyd
Nicolas Iturbide
Ivar Paprocki
Greenwood Bolognia
Murillo Malet
Mayumi Kolmetz
Jones Vocelka
Smith Glick
Misaki Royster
Isabel Bowley
Deepesh Chui
Aditya Kusko
Leon Oldroyd
Johnson Sergi
Greenwood Bolognia
James Butt
Julie Stenseth
Emily Whobrey
Julie Stenseth
Faith Gillian
Salvatore Stockham
Emily Whobrey
Smith Glick
Misaki Royster
Octavia Malet
Antonio Caudy
James Butt
Tony Foller
Deepesh Chui
James Butt
Misaki Royster
Francesco Shinko
Morrow Ruta
Kaitlin Ostrosky
Ivar Paprocki
Aika Inouye
IdCountryDate
1000France2026-05-14
1001India2026-05-21
1002Argentina2026-05-01
1003Germany2026-05-19
1004Spain2026-05-21
1005Japan2026-05-18
1006Canada2026-05-11
1007France2026-05-14
1008United Kingdom2026-05-15
1009Australia2026-05-23
1010Australia2026-05-13
1011Japan2026-04-28
1012Argentina2026-04-29
1013France2026-05-22
1014India2026-05-04
1015Spain2026-05-18
1016Australia2026-05-02
1017Brazil2026-05-19
1018France2026-05-05
1019France2026-05-25
1020Germany2026-05-23
1021Canada2026-05-11
1022Germany2026-05-10
1023Japan2026-05-14
1024Spain2026-05-04
1025Argentina2026-05-15
1026United Kingdom2026-05-19
1027Spain2026-05-23
1028Brazil2026-05-12
1029Japan2026-04-26
1030Italy2026-05-22
1031Germany2026-05-24
1032India2026-05-03
1033Russia2026-05-10
1034Spain2026-04-30
1035Spain2026-04-30
1036Japan2026-05-18
1037Canada2026-05-13
1038Russia2026-05-18
1039Australia2026-05-18
1040Germany2026-05-08
1041Brazil2026-05-09
1042France2026-05-12
1043France2026-05-15
1044Canada2026-05-25
1045Russia2026-05-08
1046Canada2026-05-19
1047Australia2026-05-19
1048Australia2026-05-06
1049Argentina2026-04-26

On-Demand Data

NameIdCountryDate
James Butt1000Argentina2026-05-06
Murillo Malet1001India2026-05-22
Jennifer Amigon1002India2026-05-05
Nicolas Iturbide1003United Kingdom2026-05-09
Maisha Rulapaugh1004Australia2026-05-18
Costa Dilliard1005Brazil2026-05-22
Munro Ferencz1006Italy2026-05-18
Ricardo Gaucho1007Australia2026-05-16
Aditya Kusko1008Argentina2026-05-21
Jeanfrancois Venere1009Australia2026-04-30
Rodrigues Campain1010United Kingdom2026-04-27
Clifford Rim1011Canada2026-05-05
Kaitlin Ostrosky1012Russia2026-05-17
Clifford Rim1013United Kingdom2026-05-20
Jefferson Schemmer1014Argentina2026-05-02
Murillo Malet1015Russia2026-05-05
Salvatore Stockham1016Spain2026-04-30
Ricardo Gaucho1017Italy2026-05-23
Smith Glick1018Brazil2026-05-03
Sinclair Waycott1019Germany2026-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzJapanElwin Sharvill NEGOTIATION
Arvin AlbaresJapanAsiya Javayant UNQUALIFIED
Faith GillianSpainAmy Elsner QUALIFIED
Nicolas IturbideItalyIoni Bowcher UNQUALIFIED
Cody SaylorsBrazilBernardo Dominic QUALIFIED
Stacey MacleadAustraliaStephen Shaw NEGOTIATION
Kaitlin OstroskyGermanyXuxue Feng UNQUALIFIED
Stacey MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Wickens NestleBrazilAnna Fali QUALIFIED
Aruna FigeroaGermanyBernardo Dominic NEW
Deepesh ChuiIndiaIvan Magalhaes PROPOSAL
Julie StensethAustraliaBernardo Dominic NEGOTIATION
Smith GlickSpainStephen Shaw RENEWAL
Isabel BowleyUnited KingdomIvan Magalhaes NEW
Jeanfrancois VenereUnited KingdomXuxue Feng RENEWAL
James ButtCanadaAmy Elsner QUALIFIED
Aruna FigeroaSpainElwin Sharvill PROPOSAL
Smith GlickArgentinaAmy Elsner RENEWAL
Ricardo GauchoFranceOnyama Limba QUALIFIED
Leja CaldareraItalyStephen Shaw RENEWAL
Mayumi KolmetzSpainAmy Elsner QUALIFIED
Wickens NestleArgentinaAnna Fali RENEWAL
Chavez BriddickJapanIoni Bowcher NEGOTIATION
Jeanfrancois VenereAustraliaBernardo Dominic NEW
Cody SaylorsBrazilStephen Shaw RENEWAL
Ricardo GauchoCanadaAsiya Javayant NEW
Mayumi KolmetzArgentinaElwin Sharvill QUALIFIED
Octavia MaletCanadaAnna Fali QUALIFIED
Francesco ShinkoUnited KingdomOnyama Limba RENEWAL
Alejandro PerinJapanIoni Bowcher NEGOTIATION
Alejandro PerinIndiaIoni Bowcher UNQUALIFIED
Octavia MaletGermanyBernardo Dominic QUALIFIED
Ivar PaprockiRussiaIoni Bowcher QUALIFIED
Juan WieserAustraliaAmy Elsner PROPOSAL
Jones VocelkaJapanAnna Fali RENEWAL
Salvatore StockhamRussiaAnna Fali NEW
Isabel BowleyBrazilOnyama Limba NEGOTIATION
James ButtUnited KingdomAnna Fali QUALIFIED
Johnson SergiUnited KingdomAsiya Javayant PROPOSAL
Arvin AlbaresArgentinaXuxue Feng 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>