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
Aruna FigeroaFranceIvan Magalhaes UNQUALIFIED
Claire TollnerCanadaElwin Sharvill NEW
Greenwood BologniaSpainXuxue Feng PROPOSAL
Jennifer AmigonJapanStephen Shaw NEW
Maisha RulapaughIndiaBernardo Dominic NEGOTIATION
James ButtAustraliaAnna Fali UNQUALIFIED
Sinclair WaycottAustraliaBernardo Dominic NEW
Leon OldroydIndiaAmy Elsner NEW
Salvatore StockhamSpainStephen Shaw NEGOTIATION
Murillo MaletArgentinaElwin Sharvill RENEWAL
Tony FollerIndiaAsiya Javayant QUALIFIED
Emily WhobreyCanadaAmy Elsner NEGOTIATION
Jeanfrancois VenereUnited KingdomStephen Shaw UNQUALIFIED
Morrow RutaGermanyOnyama Limba NEW
Silvio SlusarskiGermanyElwin Sharvill NEGOTIATION
Emily WhobreyUnited KingdomElwin Sharvill RENEWAL
Alejandro PerinFranceXuxue Feng NEGOTIATION
Misaki RoysterArgentinaStephen Shaw NEW
Francesco ShinkoUnited KingdomAnna Fali UNQUALIFIED
Kadeem FlosiAustraliaOnyama Limba PROPOSAL
Silvio SlusarskiSpainOnyama Limba UNQUALIFIED
Aika InouyeCanadaAmy Elsner UNQUALIFIED
Claire TollnerAustraliaOnyama Limba RENEWAL
Chavez BriddickSpainAsiya Javayant UNQUALIFIED
Alejandro PerinBrazilBernardo Dominic NEW
Rodrigues CampainFranceXuxue Feng NEW
Aditya KuskoUnited KingdomStephen Shaw NEW
Mayumi KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Maisha RulapaughJapanXuxue Feng UNQUALIFIED
Leon OldroydFranceXuxue Feng PROPOSAL
Maisha RulapaughCanadaElwin Sharvill UNQUALIFIED
Claire TollnerItalyBernardo Dominic QUALIFIED
Ivar PaprockiIndiaAsiya Javayant NEGOTIATION
Tony FollerIndiaAsiya Javayant PROPOSAL
Maisha RulapaughSpainStephen Shaw PROPOSAL
Tony FollerArgentinaElwin Sharvill QUALIFIED
Greenwood BologniaArgentinaIvan Magalhaes RENEWAL
Greenwood BologniaIndiaAnna Fali QUALIFIED
David DarakjyRussiaAmy Elsner RENEWAL
Smith GlickGermanyBernardo Dominic QUALIFIED
Jefferson SchemmerIndiaAsiya Javayant UNQUALIFIED
Francesco ShinkoItalyOnyama Limba UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic NEGOTIATION
Octavia MaletItalyAnna Fali NEW
Mujtaba NickaJapanIvan Magalhaes PROPOSAL
Octavia MaletSpainElwin Sharvill QUALIFIED
Sinclair WaycottUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiItalyXuxue Feng UNQUALIFIED
Rodrigues CampainItalyIoni Bowcher RENEWAL
Adams MorascaItalyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiCanadaAmy Elsner PROPOSAL
Tony FollerUnited KingdomAsiya Javayant RENEWAL
Rodrigues CampainIndiaStephen Shaw UNQUALIFIED
Leon OldroydRussiaAnna Fali RENEWAL
Deepesh ChuiFranceOnyama Limba NEW
Morrow RutaRussiaIvan Magalhaes PROPOSAL
Isabel BowleyCanadaStephen Shaw RENEWAL
Morrow RutaBrazilIvan Magalhaes RENEWAL
Maisha RulapaughArgentinaBernardo Dominic PROPOSAL
David DarakjyArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci PoquetteFrance2026-04-18Morlong Associates QUALIFIED58Ioni Bowcher
1001Antonio CaudyUnited Kingdom2026-04-09Benton, John B Jr NEGOTIATION2Elwin Sharvill
1002Morrow RutaFrance2026-04-01Feltz Printing Service QUALIFIED3Ioni Bowcher
1003Darci PoquetteRussia2026-04-07Dorl, James J Esq UNQUALIFIED72Ivan Magalhaes
1004Nicolas IturbideArgentina2026-04-19Buckley Miller Wright PROPOSAL53Anna Fali
1005Tony FollerJapan2026-04-05Truhlar And Truhlar Attys UNQUALIFIED6Stephen Shaw
1006James ButtIndia2026-04-20Truhlar And Truhlar Attys UNQUALIFIED67Stephen Shaw
1007Aditya KuskoFrance2026-04-01Dorl, James J Esq PROPOSAL39Elwin Sharvill
1008Kadeem FlosiUnited Kingdom2026-04-20Feiner Bros PROPOSAL32Ioni Bowcher
1009David DarakjyCanada2026-04-19Chapman, Ross E Esq NEGOTIATION71Anna Fali
1010Silvio SlusarskiArgentina2026-04-21Printing Dimensions RENEWAL23Bernardo Dominic
1011Morrow RutaAustralia2026-04-09Chanay, Jeffrey A Esq RENEWAL11Elwin Sharvill
1012James ButtRussia2026-04-23Dorl, James J Esq NEGOTIATION78Stephen Shaw
1013Mayumi KolmetzJapan2026-04-23Printing Dimensions UNQUALIFIED33Amy Elsner
1014Sinclair WaycottRussia2026-04-03Truhlar And Truhlar Attys NEW59Amy Elsner
1015Alejandro PerinCanada2026-04-06Commercial Press UNQUALIFIED5Anna Fali
1016Murillo MaletGermany2026-04-05Buckley Miller Wright QUALIFIED75Ioni Bowcher
1017Jeanfrancois VenereRussia2026-04-22Feltz Printing Service NEW94Bernardo Dominic
1018Claire TollnerFrance2026-03-30Chanay, Jeffrey A Esq QUALIFIED35Ivan Magalhaes
1019Izzy GarufiAustralia2026-03-29King, Christopher A Esq NEW66Xuxue Feng
1020Rodrigues CampainAustralia2026-04-03Chemel, James L Cpa RENEWAL3Stephen Shaw
1021Rodrigues CampainFrance2026-04-05Truhlar And Truhlar Attys PROPOSAL36Stephen Shaw
1022Nicolas IturbideIndia2026-04-23Feltz Printing Service UNQUALIFIED10Xuxue Feng
1023Murillo MaletAustralia2026-04-07King, Christopher A Esq UNQUALIFIED15Ioni Bowcher
1024Mayumi KolmetzIndia2026-04-05Printing Dimensions NEW89Ioni Bowcher
1025Murillo MaletCanada2026-04-10Rangoni Of Florence NEGOTIATION54Elwin Sharvill
1026Deepesh ChuiArgentina2026-04-14Rangoni Of Florence NEGOTIATION31Elwin Sharvill
1027Clifford RimUnited Kingdom2026-04-20Chapman, Ross E Esq RENEWAL11Asiya Javayant
1028David DarakjyUnited Kingdom2026-04-26Feiner Bros NEW31Asiya Javayant
1029Julie StensethArgentina2026-03-29Truhlar And Truhlar Attys NEW25Xuxue Feng
1030David DarakjyRussia2026-03-29Chapman, Ross E Esq QUALIFIED62Elwin Sharvill
1031Kaitlin OstroskyItaly2026-04-16Rangoni Of Florence NEGOTIATION10Ivan Magalhaes
1032Cody SaylorsCanada2026-04-23Chanay, Jeffrey A Esq RENEWAL17Onyama Limba
1033Maria MarrierAustralia2026-04-12Feiner Bros QUALIFIED50Bernardo Dominic
1034Julie StensethArgentina2026-04-08Rousseaux, Michael Esq QUALIFIED95Elwin Sharvill
1035Julie StensethSpain2026-04-01King, Christopher A Esq UNQUALIFIED54Ivan Magalhaes
1036Arvin AlbaresItaly2026-04-16Benton, John B Jr UNQUALIFIED39Anna Fali
1037Chavez BriddickJapan2026-04-02Feiner Bros UNQUALIFIED71Onyama Limba
1038Tony FollerCanada2026-04-21Benton, John B Jr QUALIFIED70Elwin Sharvill
1039Alejandro PerinGermany2026-04-07King, Christopher A Esq RENEWAL5Onyama Limba
1040Tony FollerUnited Kingdom2026-04-26Truhlar And Truhlar Attys RENEWAL72Xuxue Feng
1041Kadeem FlosiSpain2026-03-28Feiner Bros RENEWAL35Asiya Javayant
1042Julie StensethItaly2026-04-08Rousseaux, Michael Esq PROPOSAL30Xuxue Feng
1043Jennifer AmigonSpain2026-04-13Commercial Press NEGOTIATION61Elwin Sharvill
1044David DarakjySpain2026-03-29Morlong Associates QUALIFIED88Xuxue Feng
1045Ivar PaprockiItaly2026-04-18Commercial Press PROPOSAL43Ioni Bowcher
1046Rodrigues CampainAustralia2026-04-21Rousseaux, Michael Esq UNQUALIFIED40Ivan Magalhaes
1047Emily WhobreyUnited Kingdom2026-04-11Truhlar And Truhlar Attys QUALIFIED79Onyama Limba
1048Faith GillianItaly2026-04-23Feltz Printing Service RENEWAL62Stephen Shaw
1049Chavez BriddickFrance2026-04-22Rousseaux, Michael Esq RENEWAL80Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserBrazilAsiya Javayant QUALIFIED
Ivar PaprockiItalyIoni Bowcher NEW
Maria MarrierArgentinaAsiya Javayant RENEWAL
Jones VocelkaIndiaAmy Elsner UNQUALIFIED
Silvio SlusarskiGermanyIoni Bowcher RENEWAL
Darci PoquetteFranceAnna Fali NEGOTIATION
Morrow RutaBrazilIoni Bowcher RENEWAL
Darci PoquetteFranceBernardo Dominic PROPOSAL
Costa DilliardRussiaBernardo Dominic NEW
Clifford RimGermanyElwin Sharvill RENEWAL
Cody SaylorsSpainIvan Magalhaes UNQUALIFIED
Tony FollerArgentinaAmy Elsner NEGOTIATION
Sinclair WaycottUnited KingdomBernardo Dominic QUALIFIED
Deepesh ChuiJapanXuxue Feng UNQUALIFIED
Misaki RoysterRussiaIoni Bowcher UNQUALIFIED
Alejandro PerinIndiaStephen Shaw QUALIFIED
Silvio SlusarskiAustraliaAnna Fali QUALIFIED
Aika InouyeAustraliaElwin Sharvill NEW
Chavez BriddickSpainAmy Elsner RENEWAL
Salvatore StockhamSpainXuxue Feng UNQUALIFIED
Smith GlickSpainAsiya Javayant RENEWAL
Munro FerenczJapanElwin Sharvill UNQUALIFIED
Deepesh ChuiJapanBernardo Dominic PROPOSAL
Salvatore StockhamSpainElwin Sharvill NEW
Claire TollnerBrazilAsiya Javayant RENEWAL
Munro FerenczFranceBernardo Dominic PROPOSAL
Stacey MacleadAustraliaStephen Shaw UNQUALIFIED
Sinclair WaycottBrazilIvan Magalhaes RENEWAL
Cody SaylorsRussiaOnyama Limba NEGOTIATION
Jeanfrancois VenereAustraliaElwin Sharvill QUALIFIED
Leon OldroydJapanBernardo Dominic QUALIFIED
Deepesh ChuiItalyIoni Bowcher RENEWAL
Isabel BowleyCanadaBernardo Dominic UNQUALIFIED
Maria MarrierSpainXuxue Feng NEW
Greenwood BologniaJapanAsiya Javayant NEGOTIATION
Ricardo GauchoCanadaBernardo Dominic QUALIFIED
Emily WhobreyItalyIvan Magalhaes PROPOSAL
Emily WhobreySpainElwin Sharvill RENEWAL
Kadeem FlosiGermanyXuxue Feng PROPOSAL
Misaki RoysterFranceBernardo Dominic NEW
Maisha RulapaughSpainBernardo Dominic PROPOSAL
Leja CaldareraIndiaOnyama Limba NEW
Deepesh ChuiSpainAmy Elsner QUALIFIED
Morrow RutaAustraliaXuxue Feng UNQUALIFIED
Stacey MacleadCanadaAmy Elsner NEGOTIATION
Greenwood BologniaRussiaAsiya Javayant UNQUALIFIED
Mujtaba NickaCanadaAmy Elsner RENEWAL
Faith GillianGermanyAsiya Javayant NEW
Izzy GarufiArgentinaOnyama Limba PROPOSAL
Arvin AlbaresIndiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Misaki Royster
Murillo Malet
Murillo Malet
Rodrigues Campain
Isabel Bowley
Leon Oldroyd
Leon Oldroyd
Arvin Albares
Octavia Malet
Clifford Rim
Rodrigues Campain
Sinclair Waycott
Adams Morasca
David Darakjy
Mayumi Kolmetz
Mujtaba Nicka
Misaki Royster
Emily Whobrey
Salvatore Stockham
Greenwood Bolognia
Jefferson Schemmer
Jennifer Amigon
Cody Saylors
Cody Saylors
Juan Wieser
Jefferson Schemmer
Jones Vocelka
Ricardo Gaucho
Jennifer Amigon
Aika Inouye
Salvatore Stockham
Maria Marrier
Alejandro Perin
Sinclair Waycott
Maisha Rulapaugh
Rodrigues Campain
Rodrigues Campain
Antonio Caudy
Maria Marrier
Salvatore Stockham
Cody Saylors
Ashley Doe
Alejandro Perin
Ricardo Gaucho
Cody Saylors
Isabel Bowley
Aika Inouye
Adams Morasca
Emily Whobrey
Mayumi Kolmetz
IdCountryDate
1000Spain2026-03-28
1001Argentina2026-04-20
1002United Kingdom2026-04-06
1003Germany2026-04-08
1004United Kingdom2026-04-24
1005Spain2026-04-15
1006Canada2026-04-26
1007Spain2026-04-02
1008Germany2026-04-22
1009Canada2026-04-05
1010Russia2026-04-20
1011Brazil2026-04-20
1012Japan2026-04-04
1013India2026-04-25
1014Argentina2026-04-21
1015India2026-04-11
1016Canada2026-04-07
1017Canada2026-04-02
1018Japan2026-04-01
1019Russia2026-04-14
1020Spain2026-04-06
1021Germany2026-04-24
1022Canada2026-04-19
1023Canada2026-04-14
1024India2026-04-18
1025Germany2026-04-21
1026Argentina2026-04-24
1027Japan2026-04-07
1028France2026-04-08
1029Australia2026-04-12
1030Germany2026-04-07
1031Russia2026-04-06
1032Australia2026-04-09
1033Brazil2026-03-30
1034Spain2026-04-07
1035Japan2026-04-17
1036Australia2026-04-26
1037Brazil2026-04-26
1038Canada2026-04-16
1039India2026-04-02
1040France2026-04-08
1041Japan2026-04-08
1042Argentina2026-04-04
1043India2026-03-28
1044India2026-03-28
1045France2026-04-04
1046Australia2026-04-10
1047United Kingdom2026-04-14
1048United Kingdom2026-04-14
1049India2026-04-01

On-Demand Data

NameIdCountryDate
Wickens Nestle1000United Kingdom2026-04-04
Jennifer Amigon1001Russia2026-03-31
Munro Ferencz1002Japan2026-04-14
Arvin Albares1003Japan2026-04-04
Morrow Ruta1004Italy2026-04-24
Darci Poquette1005Brazil2026-04-12
Arvin Albares1006India2026-04-04
Arvin Albares1007Argentina2026-04-26
Mayumi Kolmetz1008Australia2026-03-28
Murillo Malet1009Spain2026-03-29
Murillo Malet1010Italy2026-04-26
Johnson Sergi1011Germany2026-04-08
Rodrigues Campain1012Argentina2026-04-09
Ivar Paprocki1013Spain2026-04-07
Darci Poquette1014Canada2026-04-20
Munro Ferencz1015Spain2026-04-03
Sinclair Waycott1016Italy2026-03-31
Munro Ferencz1017India2026-04-15
Jeanfrancois Venere1018Australia2026-04-22
Sinclair Waycott1019Italy2026-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraAustraliaIoni Bowcher QUALIFIED
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Rodrigues CampainBrazilOnyama Limba RENEWAL
Maisha RulapaughFranceOnyama Limba QUALIFIED
James ButtJapanAnna Fali QUALIFIED
Clifford RimCanadaElwin Sharvill QUALIFIED
Arvin AlbaresItalyOnyama Limba NEW
Maria MarrierItalyElwin Sharvill UNQUALIFIED
Isabel BowleyGermanyXuxue Feng RENEWAL
Mayumi KolmetzIndiaIoni Bowcher UNQUALIFIED
Tony FollerRussiaIvan Magalhaes NEW
Aditya KuskoAustraliaAsiya Javayant NEW
Maisha RulapaughRussiaIoni Bowcher NEGOTIATION
Claire TollnerItalyOnyama Limba UNQUALIFIED
Johnson SergiIndiaAnna Fali NEW
Chavez BriddickItalyOnyama Limba NEGOTIATION
Morrow RutaJapanBernardo Dominic RENEWAL
Ivar PaprockiBrazilAnna Fali PROPOSAL
Ashley DoeCanadaXuxue Feng QUALIFIED
Aruna FigeroaJapanAmy Elsner UNQUALIFIED
Claire TollnerBrazilOnyama Limba NEGOTIATION
Alejandro PerinCanadaAsiya Javayant PROPOSAL
Aditya KuskoItalyXuxue Feng RENEWAL
Leon OldroydArgentinaIoni Bowcher RENEWAL
Leja CaldareraCanadaAnna Fali UNQUALIFIED
Faith GillianArgentinaIoni Bowcher QUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant UNQUALIFIED
Arvin AlbaresRussiaIoni Bowcher NEW
Smith GlickUnited KingdomElwin Sharvill NEW
Emily WhobreyCanadaElwin Sharvill UNQUALIFIED
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Clifford RimFranceAsiya Javayant QUALIFIED
Sinclair WaycottBrazilXuxue Feng NEGOTIATION
David DarakjyCanadaAmy Elsner RENEWAL
Izzy GarufiArgentinaStephen Shaw PROPOSAL
Wickens NestleAustraliaOnyama Limba PROPOSAL
Julie StensethJapanStephen Shaw UNQUALIFIED
Emily WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Clifford RimRussiaXuxue Feng RENEWAL
Emily WhobreyIndiaIoni 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>