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
Silvio SlusarskiArgentinaAsiya Javayant QUALIFIED
Smith GlickIndiaAmy Elsner NEW
Misaki RoysterBrazilAmy Elsner PROPOSAL
Aruna FigeroaCanadaIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomStephen Shaw RENEWAL
Ricardo GauchoCanadaBernardo Dominic NEW
Aruna FigeroaSpainAnna Fali PROPOSAL
Ivar PaprockiArgentinaOnyama Limba UNQUALIFIED
Wickens NestleAustraliaStephen Shaw UNQUALIFIED
Johnson SergiBrazilStephen Shaw RENEWAL
Leja CaldareraArgentinaBernardo Dominic PROPOSAL
Alejandro PerinCanadaIoni Bowcher PROPOSAL
David DarakjyArgentinaAnna Fali NEW
Johnson SergiUnited KingdomAmy Elsner NEGOTIATION
Wickens NestleJapanIoni Bowcher PROPOSAL
Wickens NestleBrazilAnna Fali NEGOTIATION
Jefferson SchemmerRussiaAnna Fali RENEWAL
Salvatore StockhamArgentinaIvan Magalhaes UNQUALIFIED
James ButtAustraliaXuxue Feng RENEWAL
Octavia MaletFranceStephen Shaw PROPOSAL
Clifford RimBrazilAsiya Javayant QUALIFIED
Deepesh ChuiJapanXuxue Feng NEGOTIATION
Cody SaylorsRussiaIoni Bowcher QUALIFIED
Jefferson SchemmerFranceXuxue Feng QUALIFIED
Izzy GarufiAustraliaAmy Elsner RENEWAL
Tony FollerFranceAnna Fali UNQUALIFIED
Kaitlin OstroskyAustraliaStephen Shaw NEGOTIATION
Johnson SergiAustraliaIoni Bowcher QUALIFIED
Rodrigues CampainGermanyAsiya Javayant QUALIFIED
Morrow RutaRussiaAsiya Javayant UNQUALIFIED
Rodrigues CampainRussiaIoni Bowcher QUALIFIED
Faith GillianAustraliaAnna Fali PROPOSAL
Alejandro PerinGermanyAsiya Javayant UNQUALIFIED
Arvin AlbaresItalyStephen Shaw QUALIFIED
Murillo MaletSpainStephen Shaw NEW
Aditya KuskoAustraliaAmy Elsner NEW
Jefferson SchemmerBrazilAsiya Javayant NEGOTIATION
James ButtArgentinaOnyama Limba RENEWAL
Octavia MaletArgentinaStephen Shaw NEW
Greenwood BologniaUnited KingdomAsiya Javayant QUALIFIED
Sinclair WaycottCanadaAmy Elsner NEGOTIATION
Aika InouyeCanadaStephen Shaw UNQUALIFIED
Misaki RoysterItalyOnyama Limba PROPOSAL
Costa DilliardSpainAmy Elsner QUALIFIED
Adams MorascaIndiaIoni Bowcher PROPOSAL
Rodrigues CampainFranceAsiya Javayant NEW
Kaitlin OstroskyItalyAsiya Javayant UNQUALIFIED
Alejandro PerinGermanyAsiya Javayant QUALIFIED
Munro FerenczFranceIoni Bowcher RENEWAL
Leja CaldareraAustraliaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickRussiaBernardo Dominic UNQUALIFIED
Leon OldroydBrazilStephen Shaw QUALIFIED
Francesco ShinkoSpainStephen Shaw NEGOTIATION
Chavez BriddickBrazilIoni Bowcher NEW
Ricardo GauchoGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoFranceAsiya Javayant UNQUALIFIED
Rodrigues CampainFranceAmy Elsner QUALIFIED
Sinclair WaycottCanadaAmy Elsner PROPOSAL
Aditya KuskoIndiaAnna Fali NEGOTIATION
Smith GlickSpainAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickFrance2026-05-21Chapman, Ross E Esq UNQUALIFIED96Elwin Sharvill
1001Leon OldroydFrance2026-05-30Chemel, James L Cpa NEW2Ivan Magalhaes
1002Tony FollerIndia2026-05-26Chanay, Jeffrey A Esq RENEWAL20Anna Fali
1003Salvatore StockhamBrazil2026-05-10Morlong Associates UNQUALIFIED66Xuxue Feng
1004Costa DilliardFrance2026-05-08Chapman, Ross E Esq NEW42Elwin Sharvill
1005Smith GlickBrazil2026-05-26Commercial Press RENEWAL91Xuxue Feng
1006Julie StensethItaly2026-05-05Chemel, James L Cpa QUALIFIED9Elwin Sharvill
1007Julie StensethJapan2026-05-02Chapman, Ross E Esq NEW72Ivan Magalhaes
1008Ashley DoeGermany2026-05-28King, Christopher A Esq PROPOSAL34Anna Fali
1009Murillo MaletSpain2026-05-18Morlong Associates NEW88Xuxue Feng
1010Maria MarrierAustralia2026-05-23Chapman, Ross E Esq NEGOTIATION95Elwin Sharvill
1011Ashley DoeSpain2026-05-13Chapman, Ross E Esq QUALIFIED19Xuxue Feng
1012Aika InouyeGermany2026-05-02Dorl, James J Esq NEGOTIATION42Bernardo Dominic
1013Jones VocelkaSpain2026-05-16Commercial Press QUALIFIED2Xuxue Feng
1014Chavez BriddickSpain2026-05-23Truhlar And Truhlar Attys RENEWAL60Ivan Magalhaes
1015Wickens NestleJapan2026-05-29Benton, John B Jr RENEWAL91Xuxue Feng
1016Claire TollnerFrance2026-05-10Commercial Press UNQUALIFIED53Ioni Bowcher
1017Chavez BriddickCanada2026-05-30Rangoni Of Florence QUALIFIED95Asiya Javayant
1018Smith GlickFrance2026-05-18Truhlar And Truhlar Attys NEGOTIATION80Bernardo Dominic
1019Leon OldroydArgentina2026-05-25King, Christopher A Esq RENEWAL14Ivan Magalhaes
1020Stacey MacleadArgentina2026-05-09Dorl, James J Esq QUALIFIED29Bernardo Dominic
1021Kaitlin OstroskyItaly2026-05-13Chanay, Jeffrey A Esq QUALIFIED34Anna Fali
1022Francesco ShinkoRussia2026-05-17Morlong Associates PROPOSAL8Elwin Sharvill
1023Alejandro PerinJapan2026-05-27Commercial Press NEGOTIATION67Xuxue Feng
1024Isabel BowleyIndia2026-05-07Rousseaux, Michael Esq PROPOSAL66Ivan Magalhaes
1025Rodrigues CampainFrance2026-05-14Feiner Bros NEGOTIATION77Ivan Magalhaes
1026Julie StensethCanada2026-05-04Rousseaux, Michael Esq RENEWAL56Anna Fali
1027Jennifer AmigonBrazil2026-05-31Commercial Press QUALIFIED99Bernardo Dominic
1028Morrow RutaSpain2026-05-16Commercial Press PROPOSAL4Amy Elsner
1029Leon OldroydIndia2026-05-10Truhlar And Truhlar Attys QUALIFIED30Ivan Magalhaes
1030Francesco ShinkoJapan2026-05-28King, Christopher A Esq PROPOSAL28Stephen Shaw
1031Tony FollerGermany2026-05-26Truhlar And Truhlar Attys NEW59Anna Fali
1032Salvatore StockhamJapan2026-05-06Chapman, Ross E Esq NEW28Onyama Limba
1033Stacey MacleadUnited Kingdom2026-05-10Chapman, Ross E Esq RENEWAL22Bernardo Dominic
1034Arvin AlbaresIndia2026-05-23Rousseaux, Michael Esq RENEWAL56Asiya Javayant
1035James ButtCanada2026-05-10Feltz Printing Service NEGOTIATION44Ioni Bowcher
1036Mujtaba NickaRussia2026-05-11Benton, John B Jr NEW36Amy Elsner
1037Izzy GarufiFrance2026-05-19Buckley Miller Wright NEW34Anna Fali
1038David DarakjyCanada2026-05-25Truhlar And Truhlar Attys NEGOTIATION40Anna Fali
1039Kaitlin OstroskySpain2026-05-14Truhlar And Truhlar Attys UNQUALIFIED96Stephen Shaw
1040Alejandro PerinArgentina2026-05-04Dorl, James J Esq RENEWAL78Elwin Sharvill
1041Mayumi KolmetzRussia2026-05-06Benton, John B Jr NEW83Stephen Shaw
1042Aruna FigeroaFrance2026-05-06Feltz Printing Service NEGOTIATION94Anna Fali
1043Johnson SergiCanada2026-05-12King, Christopher A Esq NEGOTIATION37Xuxue Feng
1044Ivar PaprockiGermany2026-05-24Rousseaux, Michael Esq PROPOSAL83Bernardo Dominic
1045Antonio CaudyGermany2026-05-07Feltz Printing Service PROPOSAL97Bernardo Dominic
1046Faith GillianArgentina2026-05-25Buckley Miller Wright RENEWAL83Elwin Sharvill
1047Aditya KuskoSpain2026-05-08Benton, John B Jr PROPOSAL69Ioni Bowcher
1048Isabel BowleySpain2026-05-13Feltz Printing Service NEGOTIATION69Xuxue Feng
1049Aditya KuskoBrazil2026-05-12Rousseaux, Michael Esq RENEWAL30Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
David DarakjyGermanyOnyama Limba UNQUALIFIED
Deepesh ChuiJapanIoni Bowcher NEGOTIATION
Salvatore StockhamCanadaAsiya Javayant NEW
Kadeem FlosiAustraliaIoni Bowcher UNQUALIFIED
Salvatore StockhamIndiaAmy Elsner QUALIFIED
Sinclair WaycottSpainIvan Magalhaes NEW
Aika InouyeFranceElwin Sharvill NEW
Ashley DoeRussiaAsiya Javayant NEGOTIATION
Mujtaba NickaArgentinaAsiya Javayant QUALIFIED
Julie StensethFranceElwin Sharvill PROPOSAL
Wickens NestleIndiaElwin Sharvill NEW
Jeanfrancois VenereItalyOnyama Limba QUALIFIED
Morrow RutaBrazilAsiya Javayant RENEWAL
Stacey MacleadArgentinaIvan Magalhaes NEGOTIATION
Isabel BowleyIndiaOnyama Limba PROPOSAL
Rodrigues CampainJapanXuxue Feng UNQUALIFIED
Silvio SlusarskiJapanAsiya Javayant RENEWAL
Francesco ShinkoRussiaAsiya Javayant RENEWAL
Leja CaldareraItalyXuxue Feng NEGOTIATION
Chavez BriddickJapanElwin Sharvill UNQUALIFIED
Adams MorascaSpainAsiya Javayant UNQUALIFIED
Leon OldroydArgentinaOnyama Limba UNQUALIFIED
Cody SaylorsGermanyIoni Bowcher QUALIFIED
Morrow RutaSpainStephen Shaw UNQUALIFIED
Salvatore StockhamAustraliaXuxue Feng PROPOSAL
Clifford RimCanadaIoni Bowcher UNQUALIFIED
Cody SaylorsSpainAmy Elsner PROPOSAL
Jones VocelkaFranceAsiya Javayant QUALIFIED
Clifford RimRussiaAsiya Javayant NEGOTIATION
James ButtAustraliaAsiya Javayant PROPOSAL
Munro FerenczIndiaAsiya Javayant QUALIFIED
Silvio SlusarskiFranceAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaStephen Shaw RENEWAL
Ivar PaprockiJapanElwin Sharvill RENEWAL
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Rodrigues CampainGermanyOnyama Limba PROPOSAL
Maisha RulapaughBrazilStephen Shaw QUALIFIED
Munro FerenczGermanyAsiya Javayant NEW
Misaki RoysterIndiaOnyama Limba PROPOSAL
Maria MarrierFranceAsiya Javayant QUALIFIED
Isabel BowleyJapanAnna Fali NEW
Kaitlin OstroskyGermanyXuxue Feng PROPOSAL
Aditya KuskoFranceIvan Magalhaes NEW
Aditya KuskoCanadaStephen Shaw PROPOSAL
Darci PoquetteIndiaXuxue Feng UNQUALIFIED
Smith GlickJapanBernardo Dominic QUALIFIED
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Aditya KuskoUnited KingdomAnna Fali RENEWAL
Morrow RutaItalyOnyama Limba NEGOTIATION
Adams MorascaFranceAsiya Javayant NEW
Frozen Columns
Name
Jefferson Schemmer
Faith Gillian
Clifford Rim
Octavia Malet
Adams Morasca
Costa Dilliard
Antonio Caudy
Ashley Doe
Faith Gillian
Deepesh Chui
Arvin Albares
Francesco Shinko
Rodrigues Campain
Juan Wieser
Aditya Kusko
Mujtaba Nicka
Munro Ferencz
Izzy Garufi
Maria Marrier
Juan Wieser
Isabel Bowley
Clifford Rim
Smith Glick
Jefferson Schemmer
Tony Foller
Antonio Caudy
Maria Marrier
Clifford Rim
Johnson Sergi
Jefferson Schemmer
Costa Dilliard
Julie Stenseth
Nicolas Iturbide
Kadeem Flosi
Kadeem Flosi
Chavez Briddick
Emily Whobrey
Leon Oldroyd
Adams Morasca
Kadeem Flosi
Nicolas Iturbide
Isabel Bowley
Aditya Kusko
Chavez Briddick
Mujtaba Nicka
Costa Dilliard
Silvio Slusarski
Mayumi Kolmetz
Tony Foller
Greenwood Bolognia
IdCountryDate
1000Germany2026-05-18
1001United Kingdom2026-05-30
1002France2026-05-22
1003India2026-05-31
1004Spain2026-05-31
1005Argentina2026-05-22
1006Japan2026-05-11
1007India2026-05-20
1008United Kingdom2026-05-17
1009France2026-05-12
1010Italy2026-05-22
1011France2026-05-28
1012Spain2026-05-20
1013Canada2026-05-10
1014United Kingdom2026-05-19
1015Russia2026-05-23
1016Italy2026-05-12
1017Australia2026-05-13
1018Russia2026-05-15
1019Japan2026-05-02
1020Brazil2026-05-28
1021France2026-05-19
1022India2026-05-13
1023Japan2026-05-28
1024Australia2026-05-15
1025Russia2026-05-29
1026Japan2026-05-19
1027Brazil2026-05-31
1028Brazil2026-05-11
1029Canada2026-05-14
1030Canada2026-05-24
1031India2026-05-04
1032United Kingdom2026-05-14
1033France2026-05-28
1034Russia2026-05-28
1035Argentina2026-05-03
1036United Kingdom2026-05-04
1037United Kingdom2026-05-07
1038France2026-05-04
1039Germany2026-05-03
1040Canada2026-05-22
1041Brazil2026-05-03
1042Canada2026-05-04
1043Japan2026-05-30
1044Spain2026-05-14
1045Italy2026-05-14
1046Japan2026-05-20
1047Italy2026-05-25
1048United Kingdom2026-05-17
1049United Kingdom2026-05-26

On-Demand Data

NameIdCountryDate
Isabel Bowley1000Argentina2026-05-07
Claire Tollner1001Spain2026-05-18
Arvin Albares1002Canada2026-05-27
Clifford Rim1003India2026-05-03
Misaki Royster1004United Kingdom2026-05-24
Leon Oldroyd1005Germany2026-05-13
Deepesh Chui1006Germany2026-05-04
Jefferson Schemmer1007Spain2026-05-10
Jefferson Schemmer1008Russia2026-05-07
Darci Poquette1009Russia2026-05-27
Jefferson Schemmer1010Canada2026-05-11
Chavez Briddick1011Russia2026-05-24
Smith Glick1012Italy2026-05-08
Leon Oldroyd1013Canada2026-05-13
Jones Vocelka1014Canada2026-05-24
Isabel Bowley1015India2026-05-31
Leon Oldroyd1016Italy2026-05-06
Silvio Slusarski1017Russia2026-05-20
Kaitlin Ostrosky1018Germany2026-05-05
Leon Oldroyd1019India2026-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerAustraliaXuxue Feng UNQUALIFIED
Ashley DoeSpainOnyama Limba UNQUALIFIED
Munro FerenczItalyAmy Elsner QUALIFIED
Julie StensethJapanIoni Bowcher UNQUALIFIED
Tony FollerUnited KingdomIvan Magalhaes QUALIFIED
Juan WieserItalyBernardo Dominic QUALIFIED
Maria MarrierIndiaAsiya Javayant NEGOTIATION
Jeanfrancois VenereRussiaElwin Sharvill NEW
Leon OldroydCanadaXuxue Feng PROPOSAL
Kaitlin OstroskyJapanAmy Elsner RENEWAL
Murillo MaletBrazilBernardo Dominic UNQUALIFIED
Mayumi KolmetzSpainIvan Magalhaes PROPOSAL
Aditya KuskoJapanAsiya Javayant NEW
Ivar PaprockiArgentinaOnyama Limba NEW
Mujtaba NickaBrazilIoni Bowcher NEGOTIATION
Darci PoquetteJapanAmy Elsner NEGOTIATION
Ricardo GauchoBrazilIvan Magalhaes PROPOSAL
Maria MarrierArgentinaXuxue Feng UNQUALIFIED
Jennifer AmigonArgentinaOnyama Limba NEGOTIATION
Greenwood BologniaIndiaElwin Sharvill RENEWAL
Darci PoquetteArgentinaBernardo Dominic NEW
Misaki RoysterAustraliaAnna Fali NEGOTIATION
Deepesh ChuiRussiaIoni Bowcher NEW
Leja CaldareraIndiaBernardo Dominic QUALIFIED
Aditya KuskoArgentinaStephen Shaw NEW
Mayumi KolmetzJapanBernardo Dominic RENEWAL
Izzy GarufiArgentinaOnyama Limba PROPOSAL
Octavia MaletUnited KingdomStephen Shaw QUALIFIED
Claire TollnerRussiaIoni Bowcher NEW
Ivar PaprockiRussiaXuxue Feng PROPOSAL
Francesco ShinkoIndiaOnyama Limba NEGOTIATION
Maisha RulapaughJapanXuxue Feng NEGOTIATION
Arvin AlbaresBrazilAsiya Javayant UNQUALIFIED
Aruna FigeroaSpainXuxue Feng QUALIFIED
Smith GlickGermanyIoni Bowcher NEW
Murillo MaletArgentinaElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaAnna Fali QUALIFIED
Stacey MacleadIndiaElwin Sharvill RENEWAL
Munro FerenczJapanAsiya Javayant NEGOTIATION
Jennifer AmigonFranceAmy Elsner 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>