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
Adams MorascaFranceBernardo Dominic NEW
Kaitlin OstroskyFranceAmy Elsner NEW
Darci PoquetteSpainStephen Shaw NEW
Arvin AlbaresArgentinaXuxue Feng RENEWAL
Mayumi KolmetzBrazilXuxue Feng QUALIFIED
Leja CaldareraIndiaOnyama Limba NEW
Emily WhobreyRussiaAsiya Javayant QUALIFIED
Aruna FigeroaJapanStephen Shaw UNQUALIFIED
Tony FollerJapanElwin Sharvill NEW
Smith GlickIndiaOnyama Limba RENEWAL
Octavia MaletIndiaOnyama Limba UNQUALIFIED
Smith GlickCanadaOnyama Limba NEW
Silvio SlusarskiCanadaBernardo Dominic UNQUALIFIED
Octavia MaletRussiaXuxue Feng NEGOTIATION
Adams MorascaUnited KingdomAnna Fali QUALIFIED
Greenwood BologniaGermanyXuxue Feng NEW
Adams MorascaArgentinaXuxue Feng UNQUALIFIED
Maria MarrierSpainElwin Sharvill PROPOSAL
Darci PoquetteCanadaStephen Shaw NEGOTIATION
Silvio SlusarskiBrazilAnna Fali NEGOTIATION
Jones VocelkaBrazilBernardo Dominic NEGOTIATION
Ashley DoeFranceBernardo Dominic UNQUALIFIED
Julie StensethItalyElwin Sharvill RENEWAL
Salvatore StockhamIndiaXuxue Feng PROPOSAL
Kadeem FlosiFranceBernardo Dominic QUALIFIED
Smith GlickUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois VenereBrazilStephen Shaw PROPOSAL
Juan WieserJapanAnna Fali UNQUALIFIED
Aika InouyeFranceXuxue Feng NEGOTIATION
Adams MorascaBrazilAmy Elsner UNQUALIFIED
Maria MarrierArgentinaAmy Elsner NEGOTIATION
Costa DilliardUnited KingdomAsiya Javayant NEGOTIATION
Aruna FigeroaJapanXuxue Feng QUALIFIED
Kaitlin OstroskyFranceXuxue Feng NEW
Maisha RulapaughItalyXuxue Feng PROPOSAL
Arvin AlbaresJapanAmy Elsner NEGOTIATION
Silvio SlusarskiRussiaAnna Fali RENEWAL
Emily WhobreyJapanAsiya Javayant RENEWAL
Jeanfrancois VenereRussiaIvan Magalhaes NEGOTIATION
Isabel BowleyAustraliaOnyama Limba UNQUALIFIED
Morrow RutaGermanyIoni Bowcher RENEWAL
Smith GlickArgentinaAnna Fali QUALIFIED
Ivar PaprockiRussiaOnyama Limba QUALIFIED
Faith GillianJapanIvan Magalhaes UNQUALIFIED
Adams MorascaFranceIvan Magalhaes PROPOSAL
Adams MorascaAustraliaAnna Fali PROPOSAL
Stacey MacleadRussiaOnyama Limba QUALIFIED
Antonio CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Tony FollerSpainOnyama Limba QUALIFIED
Salvatore StockhamRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow RutaBrazilIoni Bowcher NEGOTIATION
Leja CaldareraCanadaBernardo Dominic QUALIFIED
Misaki RoysterIndiaXuxue Feng UNQUALIFIED
Kadeem FlosiArgentinaStephen Shaw NEW
Kaitlin OstroskyIndiaStephen Shaw NEW
Aika InouyeJapanAnna Fali RENEWAL
Rodrigues CampainFranceBernardo Dominic NEGOTIATION
Antonio CaudyAustraliaXuxue Feng PROPOSAL
Julie StensethSpainIvan Magalhaes NEW
Ricardo GauchoItalyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardIndia2026-04-04Commercial Press RENEWAL92Elwin Sharvill
1001Chavez BriddickSpain2026-04-29Commercial Press RENEWAL18Asiya Javayant
1002Cody SaylorsFrance2026-04-14Buckley Miller Wright PROPOSAL4Xuxue Feng
1003Octavia MaletJapan2026-04-24Chanay, Jeffrey A Esq QUALIFIED48Onyama Limba
1004David DarakjyAustralia2026-04-21Feltz Printing Service RENEWAL81Onyama Limba
1005Salvatore StockhamItaly2026-04-10Chapman, Ross E Esq NEW69Stephen Shaw
1006Jennifer AmigonSpain2026-04-08Chapman, Ross E Esq QUALIFIED53Amy Elsner
1007Tony FollerJapan2026-04-08Rousseaux, Michael Esq PROPOSAL85Xuxue Feng
1008Smith GlickFrance2026-04-22Morlong Associates UNQUALIFIED31Ivan Magalhaes
1009Maisha RulapaughUnited Kingdom2026-05-02Printing Dimensions PROPOSAL86Anna Fali
1010Maria MarrierRussia2026-04-19Chemel, James L Cpa NEW60Anna Fali
1011Sinclair WaycottSpain2026-04-20Dorl, James J Esq NEW55Ioni Bowcher
1012Isabel BowleyFrance2026-04-27Benton, John B Jr RENEWAL4Onyama Limba
1013Stacey MacleadUnited Kingdom2026-04-20Buckley Miller Wright RENEWAL29Elwin Sharvill
1014Alejandro PerinBrazil2026-04-27King, Christopher A Esq RENEWAL74Bernardo Dominic
1015Tony FollerArgentina2026-05-02Dorl, James J Esq NEGOTIATION72Elwin Sharvill
1016Adams MorascaGermany2026-04-09Truhlar And Truhlar Attys UNQUALIFIED83Bernardo Dominic
1017Mayumi KolmetzRussia2026-04-12Rousseaux, Michael Esq UNQUALIFIED31Onyama Limba
1018Maisha RulapaughAustralia2026-04-12Buckley Miller Wright NEGOTIATION75Ioni Bowcher
1019Faith GillianRussia2026-04-04Chanay, Jeffrey A Esq NEGOTIATION82Stephen Shaw
1020Mayumi KolmetzGermany2026-04-21Buckley Miller Wright NEW40Ivan Magalhaes
1021Costa DilliardBrazil2026-04-28Rangoni Of Florence NEGOTIATION59Amy Elsner
1022Jeanfrancois VenereFrance2026-04-05Dorl, James J Esq PROPOSAL72Anna Fali
1023Maisha RulapaughJapan2026-04-19Benton, John B Jr RENEWAL47Ioni Bowcher
1024Antonio CaudyRussia2026-04-29Chanay, Jeffrey A Esq NEGOTIATION49Amy Elsner
1025Darci PoquetteFrance2026-04-24Printing Dimensions RENEWAL11Amy Elsner
1026Maria MarrierRussia2026-04-08King, Christopher A Esq NEW66Bernardo Dominic
1027Francesco ShinkoFrance2026-04-17Truhlar And Truhlar Attys RENEWAL87Stephen Shaw
1028Antonio CaudyFrance2026-04-21King, Christopher A Esq NEW28Xuxue Feng
1029Ricardo GauchoJapan2026-04-07Chapman, Ross E Esq NEGOTIATION73Elwin Sharvill
1030Ashley DoeRussia2026-04-22Benton, John B Jr PROPOSAL97Stephen Shaw
1031Silvio SlusarskiAustralia2026-04-17Morlong Associates NEW86Anna Fali
1032Juan WieserUnited Kingdom2026-04-08Commercial Press NEGOTIATION29Amy Elsner
1033Faith GillianRussia2026-04-10Chapman, Ross E Esq NEGOTIATION31Amy Elsner
1034Sinclair WaycottItaly2026-05-01Feiner Bros QUALIFIED15Stephen Shaw
1035Misaki RoysterRussia2026-04-19Chapman, Ross E Esq UNQUALIFIED73Ivan Magalhaes
1036Leon OldroydAustralia2026-04-28Benton, John B Jr RENEWAL17Anna Fali
1037Ivar PaprockiItaly2026-05-01Chapman, Ross E Esq QUALIFIED58Ivan Magalhaes
1038Salvatore StockhamGermany2026-05-01Dorl, James J Esq RENEWAL89Asiya Javayant
1039Cody SaylorsGermany2026-04-17Commercial Press RENEWAL84Amy Elsner
1040Salvatore StockhamUnited Kingdom2026-04-06Buckley Miller Wright NEW80Onyama Limba
1041David DarakjySpain2026-04-12Chemel, James L Cpa PROPOSAL79Xuxue Feng
1042Munro FerenczIndia2026-04-21Rousseaux, Michael Esq PROPOSAL73Asiya Javayant
1043Ashley DoeCanada2026-04-08Feiner Bros NEW82Stephen Shaw
1044Chavez BriddickFrance2026-04-27Feltz Printing Service PROPOSAL63Anna Fali
1045Juan WieserUnited Kingdom2026-04-15Printing Dimensions UNQUALIFIED40Amy Elsner
1046Jones VocelkaBrazil2026-04-23Chemel, James L Cpa NEGOTIATION46Elwin Sharvill
1047Mujtaba NickaBrazil2026-05-03Printing Dimensions QUALIFIED30Bernardo Dominic
1048Leon OldroydFrance2026-04-17Rangoni Of Florence NEGOTIATION91Ivan Magalhaes
1049Julie StensethIndia2026-05-01Rousseaux, Michael Esq RENEWAL99Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserRussiaIvan Magalhaes PROPOSAL
Aditya KuskoJapanAsiya Javayant RENEWAL
Rodrigues CampainCanadaAsiya Javayant QUALIFIED
Nicolas IturbideSpainAsiya Javayant NEW
Alejandro PerinCanadaElwin Sharvill NEW
Salvatore StockhamSpainXuxue Feng NEW
Johnson SergiRussiaXuxue Feng PROPOSAL
Jones VocelkaJapanBernardo Dominic NEW
Nicolas IturbideCanadaElwin Sharvill UNQUALIFIED
Misaki RoysterGermanyIvan Magalhaes NEW
Stacey MacleadGermanyAsiya Javayant PROPOSAL
Deepesh ChuiBrazilAmy Elsner RENEWAL
Aika InouyeRussiaStephen Shaw PROPOSAL
Murillo MaletFranceStephen Shaw NEGOTIATION
David DarakjyItalyBernardo Dominic UNQUALIFIED
Morrow RutaAustraliaBernardo Dominic QUALIFIED
Deepesh ChuiRussiaAmy Elsner QUALIFIED
Francesco ShinkoRussiaIoni Bowcher QUALIFIED
Leja CaldareraItalyAnna Fali QUALIFIED
Isabel BowleyBrazilAsiya Javayant QUALIFIED
Kadeem FlosiIndiaOnyama Limba NEW
Aruna FigeroaAustraliaStephen Shaw NEW
Johnson SergiBrazilAsiya Javayant UNQUALIFIED
Morrow RutaGermanyBernardo Dominic PROPOSAL
Deepesh ChuiArgentinaXuxue Feng NEGOTIATION
Leja CaldareraAustraliaOnyama Limba QUALIFIED
Jones VocelkaAustraliaIvan Magalhaes NEGOTIATION
Juan WieserFranceAmy Elsner PROPOSAL
Claire TollnerRussiaStephen Shaw NEGOTIATION
Alejandro PerinItalyAmy Elsner QUALIFIED
Wickens NestleCanadaAnna Fali UNQUALIFIED
Jefferson SchemmerArgentinaXuxue Feng UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes QUALIFIED
Ashley DoeItalyOnyama Limba RENEWAL
Maisha RulapaughCanadaAmy Elsner RENEWAL
Deepesh ChuiJapanIoni Bowcher UNQUALIFIED
Maria MarrierBrazilIoni Bowcher UNQUALIFIED
Maisha RulapaughJapanIvan Magalhaes NEW
Isabel BowleyAustraliaAmy Elsner QUALIFIED
Jones VocelkaAustraliaIoni Bowcher RENEWAL
Mujtaba NickaUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin OstroskyGermanyElwin Sharvill UNQUALIFIED
Murillo MaletItalyIoni Bowcher PROPOSAL
Isabel BowleyItalyIvan Magalhaes RENEWAL
Claire TollnerBrazilOnyama Limba NEGOTIATION
Mayumi KolmetzUnited KingdomIvan Magalhaes NEW
Jefferson SchemmerJapanElwin Sharvill QUALIFIED
Cody SaylorsRussiaElwin Sharvill NEGOTIATION
Octavia MaletCanadaStephen Shaw UNQUALIFIED
Clifford RimSpainBernardo Dominic NEGOTIATION
Frozen Columns
Name
Mayumi Kolmetz
Francesco Shinko
Stacey Maclead
Faith Gillian
Aditya Kusko
Kadeem Flosi
Alejandro Perin
Octavia Malet
Kadeem Flosi
Juan Wieser
Francesco Shinko
Greenwood Bolognia
Salvatore Stockham
Izzy Garufi
Aruna Figeroa
Costa Dilliard
Murillo Malet
Aruna Figeroa
Antonio Caudy
Greenwood Bolognia
Claire Tollner
Aika Inouye
Adams Morasca
Mayumi Kolmetz
Isabel Bowley
Julie Stenseth
Emily Whobrey
Johnson Sergi
Ivar Paprocki
Claire Tollner
Rodrigues Campain
David Darakjy
Rodrigues Campain
Francesco Shinko
Julie Stenseth
Morrow Ruta
Kaitlin Ostrosky
Ricardo Gaucho
Munro Ferencz
Munro Ferencz
Wickens Nestle
Cody Saylors
Rodrigues Campain
Darci Poquette
David Darakjy
Ricardo Gaucho
Johnson Sergi
Johnson Sergi
Antonio Caudy
Leja Caldarera
IdCountryDate
1000Germany2026-04-18
1001United Kingdom2026-04-14
1002Germany2026-04-07
1003Japan2026-04-09
1004Germany2026-04-05
1005Spain2026-04-16
1006Argentina2026-05-02
1007Canada2026-04-21
1008Brazil2026-04-23
1009Australia2026-04-06
1010Canada2026-04-15
1011Argentina2026-04-21
1012India2026-05-01
1013Italy2026-04-18
1014Argentina2026-04-08
1015United Kingdom2026-04-27
1016Canada2026-04-05
1017Canada2026-04-08
1018Argentina2026-04-26
1019Argentina2026-04-24
1020United Kingdom2026-04-30
1021Japan2026-04-04
1022Brazil2026-04-11
1023Brazil2026-04-09
1024United Kingdom2026-04-07
1025Argentina2026-04-14
1026Argentina2026-04-07
1027Japan2026-04-10
1028Russia2026-04-11
1029Argentina2026-04-23
1030Spain2026-04-20
1031Australia2026-04-24
1032Brazil2026-04-24
1033United Kingdom2026-04-09
1034Spain2026-04-05
1035France2026-04-21
1036Australia2026-05-03
1037Australia2026-04-28
1038Brazil2026-04-20
1039Japan2026-05-02
1040France2026-04-16
1041Russia2026-04-21
1042Canada2026-04-28
1043Japan2026-04-18
1044Russia2026-05-03
1045United Kingdom2026-04-21
1046Japan2026-04-18
1047Russia2026-04-17
1048Italy2026-04-09
1049Australia2026-04-15

On-Demand Data

NameIdCountryDate
Clifford Rim1000United Kingdom2026-04-08
Morrow Ruta1001Japan2026-04-23
Julie Stenseth1002India2026-04-10
Antonio Caudy1003Japan2026-05-03
Nicolas Iturbide1004Italy2026-04-30
Maisha Rulapaugh1005Japan2026-04-08
Rodrigues Campain1006Russia2026-04-23
Clifford Rim1007Australia2026-04-24
Salvatore Stockham1008India2026-04-26
Adams Morasca1009Italy2026-04-14
Jeanfrancois Venere1010Italy2026-04-04
Cody Saylors1011India2026-04-21
Maisha Rulapaugh1012India2026-04-15
Isabel Bowley1013Russia2026-04-30
Jeanfrancois Venere1014Canada2026-04-05
Mayumi Kolmetz1015Brazil2026-04-28
Aruna Figeroa1016Italy2026-04-08
Rodrigues Campain1017Argentina2026-05-02
Isabel Bowley1018Spain2026-04-10
James Butt1019Italy2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaCanadaIvan Magalhaes QUALIFIED
Ivar PaprockiCanadaIoni Bowcher NEW
Isabel BowleyBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerBrazilAsiya Javayant NEGOTIATION
Alejandro PerinCanadaStephen Shaw QUALIFIED
Leja CaldareraBrazilOnyama Limba NEW
Rodrigues CampainFranceXuxue Feng RENEWAL
Mujtaba NickaUnited KingdomBernardo Dominic NEW
Claire TollnerIndiaIoni Bowcher QUALIFIED
Sinclair WaycottIndiaIoni Bowcher RENEWAL
Cody SaylorsArgentinaElwin Sharvill NEW
Murillo MaletRussiaBernardo Dominic NEW
Stacey MacleadCanadaAnna Fali NEW
Murillo MaletBrazilIoni Bowcher RENEWAL
Smith GlickSpainOnyama Limba NEGOTIATION
Jeanfrancois VenereRussiaStephen Shaw NEW
Munro FerenczAustraliaElwin Sharvill RENEWAL
Sinclair WaycottIndiaAmy Elsner NEGOTIATION
Stacey MacleadUnited KingdomOnyama Limba PROPOSAL
Francesco ShinkoIndiaElwin Sharvill PROPOSAL
Alejandro PerinUnited KingdomAsiya Javayant QUALIFIED
Sinclair WaycottItalyAnna Fali PROPOSAL
Leja CaldareraJapanAsiya Javayant PROPOSAL
Sinclair WaycottSpainXuxue Feng QUALIFIED
Izzy GarufiFranceAnna Fali NEW
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Mujtaba NickaCanadaElwin Sharvill NEW
Francesco ShinkoFranceAnna Fali RENEWAL
Costa DilliardArgentinaElwin Sharvill UNQUALIFIED
Jennifer AmigonAustraliaIoni Bowcher NEGOTIATION
Jones VocelkaIndiaStephen Shaw NEGOTIATION
Wickens NestleSpainAmy Elsner NEW
Emily WhobreyBrazilBernardo Dominic NEW
Emily WhobreyArgentinaIoni Bowcher PROPOSAL
Alejandro PerinItalyIvan Magalhaes PROPOSAL
Aruna FigeroaAustraliaIoni Bowcher QUALIFIED
Munro FerenczRussiaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyCanadaXuxue Feng UNQUALIFIED
Maisha RulapaughItalyBernardo Dominic QUALIFIED
Darci PoquetteIndiaIoni Bowcher QUALIFIED

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