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
Morrow RutaGermanyAnna Fali QUALIFIED
Ivar PaprockiUnited KingdomAmy Elsner PROPOSAL
Alejandro PerinArgentinaIvan Magalhaes NEGOTIATION
Nicolas IturbideCanadaAmy Elsner QUALIFIED
Isabel BowleyJapanIvan Magalhaes NEW
Leja CaldareraSpainOnyama Limba QUALIFIED
Clifford RimAustraliaAmy Elsner PROPOSAL
Francesco ShinkoGermanyBernardo Dominic QUALIFIED
Leja CaldareraAustraliaBernardo Dominic NEGOTIATION
Johnson SergiAustraliaIoni Bowcher PROPOSAL
Misaki RoysterAustraliaElwin Sharvill UNQUALIFIED
Mujtaba NickaUnited KingdomStephen Shaw NEGOTIATION
Kadeem FlosiCanadaXuxue Feng UNQUALIFIED
Francesco ShinkoAustraliaIvan Magalhaes PROPOSAL
Izzy GarufiBrazilOnyama Limba PROPOSAL
Salvatore StockhamCanadaIvan Magalhaes QUALIFIED
Ivar PaprockiFranceXuxue Feng RENEWAL
Morrow RutaCanadaAsiya Javayant NEGOTIATION
Cody SaylorsJapanStephen Shaw QUALIFIED
Murillo MaletSpainXuxue Feng RENEWAL
Kadeem FlosiCanadaXuxue Feng QUALIFIED
Wickens NestleSpainElwin Sharvill UNQUALIFIED
Aika InouyeCanadaIvan Magalhaes UNQUALIFIED
Mujtaba NickaSpainBernardo Dominic PROPOSAL
Misaki RoysterCanadaIvan Magalhaes NEW
Salvatore StockhamCanadaAmy Elsner UNQUALIFIED
Aditya KuskoAustraliaElwin Sharvill PROPOSAL
James ButtFranceIvan Magalhaes PROPOSAL
Jeanfrancois VenereBrazilStephen Shaw UNQUALIFIED
Darci PoquetteAustraliaAsiya Javayant PROPOSAL
Greenwood BologniaArgentinaAsiya Javayant NEW
Chavez BriddickGermanyAsiya Javayant QUALIFIED
Octavia MaletCanadaElwin Sharvill PROPOSAL
Sinclair WaycottItalyBernardo Dominic UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Darci PoquetteItalyIoni Bowcher NEW
Smith GlickJapanOnyama Limba NEW
Deepesh ChuiRussiaXuxue Feng RENEWAL
Alejandro PerinCanadaIoni Bowcher UNQUALIFIED
Aditya KuskoJapanAmy Elsner UNQUALIFIED
Antonio CaudyRussiaStephen Shaw QUALIFIED
Claire TollnerSpainXuxue Feng NEW
Arvin AlbaresCanadaBernardo Dominic UNQUALIFIED
Emily WhobreyJapanAnna Fali NEW
Aruna FigeroaItalyAmy Elsner NEW
Octavia MaletBrazilAsiya Javayant RENEWAL
Alejandro PerinRussiaElwin Sharvill NEGOTIATION
Aditya KuskoItalyElwin Sharvill QUALIFIED
Arvin AlbaresSpainElwin Sharvill RENEWAL
Leja CaldareraBrazilAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainIndiaAmy Elsner RENEWAL
Clifford RimGermanyElwin Sharvill PROPOSAL
Jones VocelkaJapanAmy Elsner QUALIFIED
Juan WieserRussiaAmy Elsner PROPOSAL
Claire TollnerArgentinaAsiya Javayant NEW
Johnson SergiCanadaIoni Bowcher QUALIFIED
Emily WhobreyCanadaAnna Fali NEW
Antonio CaudyBrazilOnyama Limba NEGOTIATION
Wickens NestleRussiaAsiya Javayant PROPOSAL
Maisha RulapaughUnited KingdomIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydRussia2026-04-21Commercial Press PROPOSAL57Asiya Javayant
1001Munro FerenczJapan2026-04-19Feltz Printing Service UNQUALIFIED42Onyama Limba
1002Juan WieserJapan2026-04-21Feltz Printing Service QUALIFIED3Stephen Shaw
1003Smith GlickCanada2026-05-06King, Christopher A Esq RENEWAL57Onyama Limba
1004Kaitlin OstroskyCanada2026-04-19Buckley Miller Wright NEW5Stephen Shaw
1005Aditya KuskoIndia2026-04-15Morlong Associates UNQUALIFIED23Stephen Shaw
1006Greenwood BologniaRussia2026-04-26Morlong Associates NEW85Amy Elsner
1007Misaki RoysterIndia2026-04-25Feltz Printing Service QUALIFIED82Amy Elsner
1008Tony FollerArgentina2026-05-14Rangoni Of Florence RENEWAL79Asiya Javayant
1009Silvio SlusarskiSpain2026-05-09Rousseaux, Michael Esq RENEWAL35Bernardo Dominic
1010Wickens NestleRussia2026-05-07Truhlar And Truhlar Attys PROPOSAL39Anna Fali
1011Aditya KuskoUnited Kingdom2026-05-12Rousseaux, Michael Esq QUALIFIED80Amy Elsner
1012Murillo MaletAustralia2026-04-15Dorl, James J Esq PROPOSAL55Xuxue Feng
1013Izzy GarufiGermany2026-05-04Dorl, James J Esq RENEWAL45Ioni Bowcher
1014Smith GlickCanada2026-05-01Buckley Miller Wright UNQUALIFIED52Amy Elsner
1015Arvin AlbaresJapan2026-05-06Buckley Miller Wright PROPOSAL86Anna Fali
1016Jones VocelkaAustralia2026-04-18Chanay, Jeffrey A Esq RENEWAL76Onyama Limba
1017Jeanfrancois VenereBrazil2026-05-03Buckley Miller Wright PROPOSAL77Stephen Shaw
1018Ashley DoeAustralia2026-05-12Rangoni Of Florence RENEWAL21Amy Elsner
1019Maisha RulapaughFrance2026-04-25Buckley Miller Wright PROPOSAL77Ioni Bowcher
1020Silvio SlusarskiSpain2026-04-25Chemel, James L Cpa UNQUALIFIED41Anna Fali
1021Ivar PaprockiSpain2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED73Elwin Sharvill
1022Murillo MaletGermany2026-04-28Commercial Press NEGOTIATION79Anna Fali
1023Octavia MaletAustralia2026-05-05Benton, John B Jr QUALIFIED93Xuxue Feng
1024Emily WhobreyCanada2026-04-27Commercial Press UNQUALIFIED28Ivan Magalhaes
1025Greenwood BologniaIndia2026-04-15King, Christopher A Esq PROPOSAL40Ioni Bowcher
1026Silvio SlusarskiArgentina2026-05-12Commercial Press UNQUALIFIED93Amy Elsner
1027Izzy GarufiCanada2026-05-08Buckley Miller Wright NEW74Elwin Sharvill
1028Alejandro PerinRussia2026-04-20Buckley Miller Wright RENEWAL86Anna Fali
1029Juan WieserRussia2026-05-02Truhlar And Truhlar Attys PROPOSAL54Elwin Sharvill
1030Silvio SlusarskiUnited Kingdom2026-05-06Rangoni Of Florence NEGOTIATION56Bernardo Dominic
1031Murillo MaletGermany2026-05-07Chemel, James L Cpa NEGOTIATION12Xuxue Feng
1032Mayumi KolmetzFrance2026-04-18Chanay, Jeffrey A Esq PROPOSAL74Ivan Magalhaes
1033Ricardo GauchoAustralia2026-05-14Buckley Miller Wright PROPOSAL18Anna Fali
1034Jennifer AmigonCanada2026-05-11King, Christopher A Esq QUALIFIED33Asiya Javayant
1035James ButtIndia2026-04-18Feiner Bros NEW50Ivan Magalhaes
1036Ricardo GauchoCanada2026-04-16Morlong Associates NEW19Xuxue Feng
1037Julie StensethSpain2026-04-16Truhlar And Truhlar Attys RENEWAL82Anna Fali
1038Emily WhobreyItaly2026-05-07Commercial Press RENEWAL43Amy Elsner
1039Kaitlin OstroskyBrazil2026-05-07King, Christopher A Esq QUALIFIED26Anna Fali
1040Morrow RutaGermany2026-04-24Commercial Press NEW65Bernardo Dominic
1041Ricardo GauchoJapan2026-04-16Feiner Bros PROPOSAL54Elwin Sharvill
1042Stacey MacleadRussia2026-05-11King, Christopher A Esq RENEWAL17Bernardo Dominic
1043Antonio CaudyRussia2026-04-19Feiner Bros NEGOTIATION3Elwin Sharvill
1044Kadeem FlosiArgentina2026-04-20Chanay, Jeffrey A Esq UNQUALIFIED21Amy Elsner
1045David DarakjyItaly2026-04-17Feltz Printing Service NEGOTIATION57Amy Elsner
1046Emily WhobreyIndia2026-05-04Printing Dimensions PROPOSAL92Ivan Magalhaes
1047Jennifer AmigonRussia2026-04-29Buckley Miller Wright NEGOTIATION20Ivan Magalhaes
1048Maria MarrierAustralia2026-04-26Benton, John B Jr NEGOTIATION88Bernardo Dominic
1049Claire TollnerGermany2026-05-07Dorl, James J Esq QUALIFIED96Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiCanadaStephen Shaw QUALIFIED
Morrow RutaFranceAsiya Javayant QUALIFIED
Jennifer AmigonIndiaAsiya Javayant NEGOTIATION
Nicolas IturbideIndiaIvan Magalhaes RENEWAL
Juan WieserSpainElwin Sharvill NEGOTIATION
Murillo MaletArgentinaIvan Magalhaes NEW
Izzy GarufiArgentinaOnyama Limba NEW
Mayumi KolmetzFranceAsiya Javayant RENEWAL
Izzy GarufiItalyAmy Elsner NEGOTIATION
Salvatore StockhamGermanyAnna Fali NEW
Juan WieserRussiaStephen Shaw PROPOSAL
James ButtCanadaOnyama Limba PROPOSAL
Clifford RimUnited KingdomXuxue Feng QUALIFIED
Nicolas IturbideItalyElwin Sharvill NEGOTIATION
Silvio SlusarskiGermanyXuxue Feng NEW
Ricardo GauchoJapanIoni Bowcher PROPOSAL
Rodrigues CampainGermanyStephen Shaw RENEWAL
Nicolas IturbideIndiaXuxue Feng NEGOTIATION
Stacey MacleadAustraliaAmy Elsner QUALIFIED
Morrow RutaUnited KingdomElwin Sharvill UNQUALIFIED
Isabel BowleyBrazilElwin Sharvill RENEWAL
Sinclair WaycottFranceAnna Fali PROPOSAL
Emily WhobreyCanadaAsiya Javayant NEGOTIATION
Octavia MaletUnited KingdomAnna Fali RENEWAL
James ButtAustraliaOnyama Limba NEW
Jeanfrancois VenereIndiaElwin Sharvill QUALIFIED
Faith GillianIndiaAmy Elsner RENEWAL
Tony FollerIndiaIoni Bowcher RENEWAL
Jefferson SchemmerArgentinaBernardo Dominic NEGOTIATION
Kaitlin OstroskyAustraliaElwin Sharvill NEW
Munro FerenczGermanyAmy Elsner QUALIFIED
Tony FollerJapanAnna Fali PROPOSAL
James ButtRussiaElwin Sharvill PROPOSAL
Stacey MacleadSpainOnyama Limba UNQUALIFIED
Faith GillianGermanyAmy Elsner RENEWAL
Jones VocelkaJapanAsiya Javayant UNQUALIFIED
Wickens NestleCanadaBernardo Dominic NEW
Johnson SergiArgentinaStephen Shaw QUALIFIED
Juan WieserJapanIvan Magalhaes RENEWAL
Izzy GarufiArgentinaBernardo Dominic RENEWAL
Clifford RimIndiaOnyama Limba QUALIFIED
Izzy GarufiCanadaAnna Fali NEGOTIATION
Jefferson SchemmerItalyAmy Elsner RENEWAL
Ricardo GauchoBrazilStephen Shaw NEGOTIATION
Julie StensethSpainAmy Elsner PROPOSAL
Jennifer AmigonGermanyIoni Bowcher PROPOSAL
Rodrigues CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford RimUnited KingdomElwin Sharvill NEGOTIATION
Maisha RulapaughRussiaOnyama Limba NEW
Jefferson SchemmerAustraliaAnna Fali UNQUALIFIED
Frozen Columns
Name
Mayumi Kolmetz
Ivar Paprocki
Arvin Albares
Tony Foller
Aika Inouye
Adams Morasca
Clifford Rim
Rodrigues Campain
Johnson Sergi
Ricardo Gaucho
Jefferson Schemmer
James Butt
David Darakjy
Mayumi Kolmetz
Jennifer Amigon
Emily Whobrey
Faith Gillian
Stacey Maclead
Maisha Rulapaugh
Octavia Malet
Sinclair Waycott
Ivar Paprocki
Darci Poquette
Faith Gillian
Clifford Rim
Isabel Bowley
Greenwood Bolognia
Johnson Sergi
Aruna Figeroa
Emily Whobrey
Cody Saylors
Salvatore Stockham
Wickens Nestle
Costa Dilliard
Mujtaba Nicka
Maisha Rulapaugh
Cody Saylors
Deepesh Chui
Deepesh Chui
Salvatore Stockham
Salvatore Stockham
James Butt
Cody Saylors
Kaitlin Ostrosky
Faith Gillian
Morrow Ruta
Aruna Figeroa
Smith Glick
Costa Dilliard
Kaitlin Ostrosky
IdCountryDate
1000Australia2026-04-25
1001Australia2026-05-13
1002Canada2026-04-22
1003Argentina2026-05-14
1004France2026-04-27
1005Spain2026-05-11
1006Canada2026-05-06
1007Germany2026-04-27
1008Russia2026-05-08
1009France2026-04-17
1010Russia2026-04-28
1011Russia2026-04-21
1012India2026-04-18
1013France2026-05-11
1014France2026-04-23
1015Canada2026-05-08
1016Japan2026-04-29
1017Japan2026-05-11
1018Japan2026-04-23
1019Canada2026-04-17
1020Brazil2026-05-03
1021India2026-05-12
1022India2026-05-07
1023Spain2026-04-15
1024Australia2026-05-11
1025Japan2026-04-24
1026Argentina2026-04-23
1027Russia2026-05-03
1028Brazil2026-05-11
1029Italy2026-05-10
1030Spain2026-05-04
1031Canada2026-05-02
1032Argentina2026-05-05
1033Spain2026-04-28
1034Brazil2026-05-07
1035India2026-04-28
1036Japan2026-05-01
1037United Kingdom2026-04-25
1038Brazil2026-05-11
1039United Kingdom2026-05-07
1040United Kingdom2026-04-16
1041Brazil2026-05-05
1042Argentina2026-04-28
1043Australia2026-04-17
1044Canada2026-04-24
1045Italy2026-05-14
1046Australia2026-04-22
1047Japan2026-04-30
1048Spain2026-04-22
1049Russia2026-05-12

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Australia2026-05-14
Costa Dilliard1001Canada2026-04-26
Munro Ferencz1002France2026-05-10
Juan Wieser1003United Kingdom2026-05-05
Darci Poquette1004United Kingdom2026-05-10
Mujtaba Nicka1005Brazil2026-05-05
Sinclair Waycott1006Russia2026-05-09
Ivar Paprocki1007Argentina2026-05-08
David Darakjy1008India2026-04-22
Silvio Slusarski1009Spain2026-05-11
Mujtaba Nicka1010Canada2026-04-28
Aika Inouye1011Argentina2026-05-11
Morrow Ruta1012Australia2026-04-25
Leon Oldroyd1013France2026-05-13
Darci Poquette1014Russia2026-04-28
Stacey Maclead1015Brazil2026-05-10
Aruna Figeroa1016Spain2026-05-13
Adams Morasca1017United Kingdom2026-04-26
Mujtaba Nicka1018India2026-04-30
Mayumi Kolmetz1019Brazil2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoBrazilIvan Magalhaes RENEWAL
Sinclair WaycottGermanyIoni Bowcher PROPOSAL
Kaitlin OstroskyItalyOnyama Limba PROPOSAL
Rodrigues CampainItalyIvan Magalhaes NEGOTIATION
Alejandro PerinFranceOnyama Limba UNQUALIFIED
Mujtaba NickaFranceAnna Fali NEW
Antonio CaudyRussiaIvan Magalhaes RENEWAL
Nicolas IturbideItalyBernardo Dominic PROPOSAL
Munro FerenczGermanyBernardo Dominic QUALIFIED
Costa DilliardRussiaAsiya Javayant UNQUALIFIED
Mujtaba NickaUnited KingdomOnyama Limba NEW
Maria MarrierGermanyAsiya Javayant PROPOSAL
Jennifer AmigonGermanyAsiya Javayant RENEWAL
Greenwood BologniaItalyAsiya Javayant UNQUALIFIED
Silvio SlusarskiGermanyStephen Shaw QUALIFIED
Isabel BowleyArgentinaXuxue Feng RENEWAL
Costa DilliardGermanyBernardo Dominic NEW
Ivar PaprockiItalyOnyama Limba UNQUALIFIED
Rodrigues CampainItalyOnyama Limba NEW
Munro FerenczSpainIvan Magalhaes PROPOSAL
Cody SaylorsUnited KingdomBernardo Dominic NEGOTIATION
Kaitlin OstroskyJapanIoni Bowcher RENEWAL
Faith GillianIndiaAnna Fali PROPOSAL
Juan WieserGermanyAnna Fali PROPOSAL
Aruna FigeroaJapanAnna Fali UNQUALIFIED
Aika InouyeAustraliaAmy Elsner UNQUALIFIED
Aika InouyeItalyIoni Bowcher PROPOSAL
Faith GillianBrazilOnyama Limba NEW
Kaitlin OstroskyFranceIoni Bowcher UNQUALIFIED
Claire TollnerBrazilAsiya Javayant PROPOSAL
Wickens NestleUnited KingdomElwin Sharvill NEGOTIATION
Salvatore StockhamJapanIoni Bowcher QUALIFIED
Maisha RulapaughFranceAmy Elsner RENEWAL
Maisha RulapaughGermanyAnna Fali NEW
Chavez BriddickAustraliaIoni Bowcher QUALIFIED
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Misaki RoysterCanadaAnna Fali UNQUALIFIED
Leon OldroydAustraliaAsiya Javayant QUALIFIED
Mujtaba NickaCanadaBernardo Dominic PROPOSAL
Darci PoquetteRussiaAsiya Javayant 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>