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
Maisha RulapaughBrazilOnyama Limba QUALIFIED
Cody SaylorsItalyAmy Elsner NEGOTIATION
Arvin AlbaresRussiaXuxue Feng NEGOTIATION
Alejandro PerinFranceAnna Fali RENEWAL
Maria MarrierJapanIvan Magalhaes PROPOSAL
Francesco ShinkoUnited KingdomIoni Bowcher NEW
Kadeem FlosiSpainElwin Sharvill NEGOTIATION
Antonio CaudyGermanyAnna Fali RENEWAL
Munro FerenczCanadaBernardo Dominic NEW
Sinclair WaycottAustraliaBernardo Dominic QUALIFIED
Salvatore StockhamSpainAsiya Javayant NEW
Izzy GarufiRussiaXuxue Feng QUALIFIED
Izzy GarufiItalyBernardo Dominic RENEWAL
Rodrigues CampainIndiaIvan Magalhaes NEW
Aditya KuskoCanadaAmy Elsner NEGOTIATION
Rodrigues CampainJapanAmy Elsner QUALIFIED
Smith GlickGermanyIvan Magalhaes NEW
Izzy GarufiRussiaOnyama Limba PROPOSAL
Kaitlin OstroskySpainXuxue Feng NEW
Aika InouyeSpainXuxue Feng RENEWAL
Maria MarrierRussiaAsiya Javayant NEGOTIATION
Deepesh ChuiUnited KingdomIoni Bowcher NEGOTIATION
Francesco ShinkoItalyElwin Sharvill QUALIFIED
Smith GlickSpainOnyama Limba PROPOSAL
Costa DilliardSpainStephen Shaw NEGOTIATION
Cody SaylorsArgentinaAsiya Javayant NEW
Faith GillianCanadaAmy Elsner RENEWAL
Izzy GarufiFranceAsiya Javayant RENEWAL
Rodrigues CampainSpainXuxue Feng RENEWAL
Morrow RutaArgentinaIoni Bowcher NEGOTIATION
Ricardo GauchoAustraliaIoni Bowcher RENEWAL
Johnson SergiRussiaAmy Elsner UNQUALIFIED
Rodrigues CampainJapanAnna Fali NEGOTIATION
Francesco ShinkoAustraliaAnna Fali QUALIFIED
Maria MarrierGermanyXuxue Feng NEW
Stacey MacleadFranceAsiya Javayant UNQUALIFIED
Nicolas IturbideAustraliaAsiya Javayant RENEWAL
Maisha RulapaughArgentinaIvan Magalhaes NEGOTIATION
Aika InouyeUnited KingdomStephen Shaw UNQUALIFIED
Aditya KuskoSpainAmy Elsner NEGOTIATION
Cody SaylorsJapanAmy Elsner NEGOTIATION
Ivar PaprockiItalyIoni Bowcher RENEWAL
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Ricardo GauchoBrazilIoni Bowcher NEGOTIATION
Aika InouyeBrazilAnna Fali NEGOTIATION
David DarakjyRussiaXuxue Feng RENEWAL
Darci PoquetteIndiaStephen Shaw NEW
Tony FollerIndiaBernardo Dominic PROPOSAL
Silvio SlusarskiIndiaXuxue Feng RENEWAL
Deepesh ChuiIndiaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresItalyAnna Fali UNQUALIFIED
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Kaitlin OstroskyAustraliaIvan Magalhaes RENEWAL
Adams MorascaRussiaElwin Sharvill UNQUALIFIED
Ricardo GauchoRussiaIoni Bowcher NEW
Sinclair WaycottSpainElwin Sharvill UNQUALIFIED
Salvatore StockhamUnited KingdomAsiya Javayant QUALIFIED
Jones VocelkaCanadaOnyama Limba QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill QUALIFIED
Jefferson SchemmerGermanyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletUnited Kingdom2026-04-06Morlong Associates NEW51Ioni Bowcher
1001Arvin AlbaresCanada2026-05-01Dorl, James J Esq NEW69Onyama Limba
1002Ricardo GauchoFrance2026-04-12Rousseaux, Michael Esq UNQUALIFIED51Bernardo Dominic
1003Wickens NestleJapan2026-04-21Commercial Press QUALIFIED20Ivan Magalhaes
1004David DarakjyUnited Kingdom2026-04-09Truhlar And Truhlar Attys RENEWAL63Anna Fali
1005Jennifer AmigonJapan2026-04-04Morlong Associates NEW31Anna Fali
1006Emily WhobreyRussia2026-04-10Feiner Bros UNQUALIFIED87Elwin Sharvill
1007James ButtSpain2026-04-26Feltz Printing Service RENEWAL0Onyama Limba
1008James ButtRussia2026-04-27Chemel, James L Cpa UNQUALIFIED82Amy Elsner
1009Rodrigues CampainIndia2026-04-10Printing Dimensions RENEWAL60Bernardo Dominic
1010Jennifer AmigonBrazil2026-04-12Feltz Printing Service NEGOTIATION76Bernardo Dominic
1011Emily WhobreyBrazil2026-04-29Commercial Press RENEWAL96Elwin Sharvill
1012Jefferson SchemmerIndia2026-04-24Dorl, James J Esq PROPOSAL67Ivan Magalhaes
1013Sinclair WaycottUnited Kingdom2026-04-24Benton, John B Jr NEGOTIATION65Amy Elsner
1014Maisha RulapaughAustralia2026-04-15Rousseaux, Michael Esq UNQUALIFIED97Onyama Limba
1015Kadeem FlosiUnited Kingdom2026-04-05Chemel, James L Cpa NEW53Anna Fali
1016Ricardo GauchoArgentina2026-04-18Feiner Bros UNQUALIFIED43Elwin Sharvill
1017Claire TollnerArgentina2026-04-08Feiner Bros NEW34Ivan Magalhaes
1018Adams MorascaArgentina2026-04-07Buckley Miller Wright PROPOSAL63Bernardo Dominic
1019Octavia MaletSpain2026-04-19King, Christopher A Esq QUALIFIED37Ioni Bowcher
1020Rodrigues CampainSpain2026-04-26Chanay, Jeffrey A Esq NEW95Stephen Shaw
1021Darci PoquetteArgentina2026-04-29Feltz Printing Service NEGOTIATION38Ivan Magalhaes
1022Jones VocelkaAustralia2026-04-26Truhlar And Truhlar Attys NEGOTIATION37Anna Fali
1023Deepesh ChuiGermany2026-04-22Truhlar And Truhlar Attys QUALIFIED77Anna Fali
1024Jennifer AmigonJapan2026-04-30Chemel, James L Cpa QUALIFIED38Stephen Shaw
1025James ButtArgentina2026-04-23Dorl, James J Esq QUALIFIED16Asiya Javayant
1026Ashley DoeIndia2026-04-05King, Christopher A Esq NEW65Amy Elsner
1027Claire TollnerItaly2026-04-23Feiner Bros NEW14Anna Fali
1028Jeanfrancois VenereRussia2026-04-19Feltz Printing Service QUALIFIED93Bernardo Dominic
1029Mujtaba NickaItaly2026-04-24Printing Dimensions RENEWAL27Elwin Sharvill
1030Aika InouyeAustralia2026-04-22King, Christopher A Esq PROPOSAL0Bernardo Dominic
1031Darci PoquetteJapan2026-04-14Feltz Printing Service NEW22Stephen Shaw
1032Chavez BriddickUnited Kingdom2026-04-21Benton, John B Jr RENEWAL41Bernardo Dominic
1033Sinclair WaycottRussia2026-04-17Morlong Associates PROPOSAL62Anna Fali
1034Sinclair WaycottBrazil2026-04-27Chapman, Ross E Esq NEGOTIATION45Amy Elsner
1035Murillo MaletUnited Kingdom2026-04-09Buckley Miller Wright NEGOTIATION87Anna Fali
1036Aika InouyeIndia2026-04-10Printing Dimensions PROPOSAL24Xuxue Feng
1037Darci PoquetteCanada2026-04-21Commercial Press NEW97Ivan Magalhaes
1038Wickens NestleRussia2026-04-25Morlong Associates NEGOTIATION24Xuxue Feng
1039Cody SaylorsJapan2026-04-16King, Christopher A Esq PROPOSAL62Anna Fali
1040Juan WieserItaly2026-04-29Rousseaux, Michael Esq NEW69Bernardo Dominic
1041Maisha RulapaughAustralia2026-04-15Printing Dimensions PROPOSAL52Ioni Bowcher
1042Aditya KuskoSpain2026-04-07Buckley Miller Wright NEW65Asiya Javayant
1043Smith GlickFrance2026-04-26Buckley Miller Wright RENEWAL78Elwin Sharvill
1044Chavez BriddickArgentina2026-04-26Feiner Bros PROPOSAL55Stephen Shaw
1045Maria MarrierJapan2026-04-17Feltz Printing Service RENEWAL37Anna Fali
1046Julie StensethItaly2026-04-30Feiner Bros NEGOTIATION84Asiya Javayant
1047Silvio SlusarskiItaly2026-04-04Truhlar And Truhlar Attys NEGOTIATION34Asiya Javayant
1048Misaki RoysterUnited Kingdom2026-04-26Feltz Printing Service PROPOSAL33Bernardo Dominic
1049Morrow RutaAustralia2026-04-16King, Christopher A Esq UNQUALIFIED27Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydIndiaStephen Shaw QUALIFIED
Ivar PaprockiAustraliaBernardo Dominic UNQUALIFIED
Mujtaba NickaArgentinaAnna Fali UNQUALIFIED
Ricardo GauchoAustraliaXuxue Feng NEGOTIATION
Stacey MacleadBrazilXuxue Feng NEGOTIATION
Deepesh ChuiCanadaIoni Bowcher NEGOTIATION
Rodrigues CampainRussiaElwin Sharvill QUALIFIED
Kaitlin OstroskyCanadaAmy Elsner RENEWAL
Francesco ShinkoJapanBernardo Dominic NEGOTIATION
Morrow RutaRussiaBernardo Dominic NEW
Aditya KuskoItalyAsiya Javayant NEW
Chavez BriddickBrazilAnna Fali QUALIFIED
Chavez BriddickItalyAsiya Javayant PROPOSAL
Morrow RutaJapanBernardo Dominic PROPOSAL
Wickens NestleIndiaIoni Bowcher NEGOTIATION
Stacey MacleadGermanyXuxue Feng UNQUALIFIED
Juan WieserIndiaElwin Sharvill RENEWAL
Munro FerenczJapanElwin Sharvill NEW
Claire TollnerSpainAmy Elsner RENEWAL
Smith GlickCanadaStephen Shaw NEGOTIATION
Smith GlickArgentinaAsiya Javayant RENEWAL
Julie StensethRussiaBernardo Dominic UNQUALIFIED
Deepesh ChuiItalyAmy Elsner RENEWAL
Stacey MacleadIndiaAnna Fali RENEWAL
Faith GillianUnited KingdomAnna Fali QUALIFIED
Maisha RulapaughArgentinaStephen Shaw QUALIFIED
Murillo MaletBrazilIoni Bowcher PROPOSAL
Maisha RulapaughRussiaIvan Magalhaes PROPOSAL
Emily WhobreyArgentinaBernardo Dominic PROPOSAL
Nicolas IturbideArgentinaOnyama Limba PROPOSAL
Leja CaldareraFranceAsiya Javayant UNQUALIFIED
Tony FollerRussiaAmy Elsner PROPOSAL
Antonio CaudyUnited KingdomStephen Shaw UNQUALIFIED
Maisha RulapaughArgentinaElwin Sharvill RENEWAL
James ButtAustraliaXuxue Feng NEGOTIATION
Leja CaldareraIndiaAnna Fali QUALIFIED
Salvatore StockhamCanadaAmy Elsner QUALIFIED
Aditya KuskoJapanXuxue Feng PROPOSAL
Ivar PaprockiUnited KingdomOnyama Limba PROPOSAL
Antonio CaudyJapanIoni Bowcher QUALIFIED
Wickens NestleItalyAsiya Javayant NEGOTIATION
Octavia MaletUnited KingdomBernardo Dominic NEW
Clifford RimBrazilAnna Fali NEGOTIATION
Darci PoquetteCanadaAsiya Javayant QUALIFIED
Cody SaylorsItalyStephen Shaw RENEWAL
Salvatore StockhamSpainAnna Fali PROPOSAL
Aditya KuskoSpainBernardo Dominic RENEWAL
Jeanfrancois VenereRussiaOnyama Limba NEW
Arvin AlbaresArgentinaAmy Elsner RENEWAL
Francesco ShinkoIndiaXuxue Feng RENEWAL
Frozen Columns
Name
Darci Poquette
Deepesh Chui
Maisha Rulapaugh
Maria Marrier
Cody Saylors
Jefferson Schemmer
Juan Wieser
Francesco Shinko
Maria Marrier
Faith Gillian
Adams Morasca
Jefferson Schemmer
Leja Caldarera
Octavia Malet
Morrow Ruta
Adams Morasca
Faith Gillian
Cody Saylors
Kadeem Flosi
Sinclair Waycott
Salvatore Stockham
Silvio Slusarski
Jefferson Schemmer
Sinclair Waycott
Tony Foller
Greenwood Bolognia
Kadeem Flosi
Johnson Sergi
Julie Stenseth
Aika Inouye
Ivar Paprocki
Aika Inouye
Tony Foller
Wickens Nestle
Wickens Nestle
Nicolas Iturbide
Maria Marrier
Ivar Paprocki
Faith Gillian
Alejandro Perin
Kaitlin Ostrosky
Johnson Sergi
Costa Dilliard
Chavez Briddick
Rodrigues Campain
Kaitlin Ostrosky
David Darakjy
David Darakjy
Julie Stenseth
Rodrigues Campain
IdCountryDate
1000Japan2026-04-05
1001Japan2026-04-17
1002Japan2026-04-06
1003Brazil2026-04-07
1004Russia2026-04-07
1005Argentina2026-05-01
1006Brazil2026-04-08
1007Canada2026-04-15
1008France2026-04-27
1009Japan2026-04-18
1010Argentina2026-04-08
1011Italy2026-04-28
1012Argentina2026-04-30
1013India2026-04-15
1014Canada2026-04-26
1015Australia2026-04-13
1016Germany2026-04-15
1017Canada2026-04-18
1018Spain2026-05-01
1019India2026-04-26
1020Japan2026-04-18
1021India2026-04-16
1022United Kingdom2026-04-09
1023Italy2026-04-13
1024Spain2026-04-10
1025United Kingdom2026-04-11
1026Canada2026-04-08
1027Germany2026-04-24
1028Japan2026-04-13
1029Germany2026-04-23
1030Japan2026-04-27
1031France2026-04-19
1032Argentina2026-04-12
1033Spain2026-04-06
1034India2026-04-08
1035Italy2026-04-29
1036Brazil2026-04-07
1037Argentina2026-04-05
1038Brazil2026-04-18
1039Argentina2026-04-15
1040Canada2026-04-18
1041Russia2026-04-19
1042Italy2026-04-04
1043Australia2026-04-02
1044Germany2026-04-19
1045Spain2026-04-07
1046Italy2026-04-23
1047Germany2026-04-23
1048Brazil2026-04-27
1049Canada2026-04-06

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Argentina2026-04-04
Francesco Shinko1001United Kingdom2026-04-07
Morrow Ruta1002United Kingdom2026-04-03
Arvin Albares1003Russia2026-04-03
Rodrigues Campain1004Brazil2026-04-24
Antonio Caudy1005Australia2026-04-07
Murillo Malet1006Spain2026-04-27
Aditya Kusko1007Russia2026-04-16
Kaitlin Ostrosky1008Spain2026-04-23
Johnson Sergi1009Canada2026-04-27
Juan Wieser1010Canada2026-04-02
Emily Whobrey1011Russia2026-04-12
Jennifer Amigon1012Brazil2026-04-15
Aika Inouye1013Brazil2026-04-23
James Butt1014Germany2026-04-25
Jefferson Schemmer1015United Kingdom2026-04-25
David Darakjy1016Italy2026-04-19
Cody Saylors1017Germany2026-04-17
Aika Inouye1018Germany2026-04-27
Chavez Briddick1019Canada2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoItalyIvan Magalhaes PROPOSAL
Maisha RulapaughBrazilOnyama Limba PROPOSAL
Arvin AlbaresRussiaAsiya Javayant UNQUALIFIED
Adams MorascaSpainXuxue Feng UNQUALIFIED
Smith GlickItalyAmy Elsner NEGOTIATION
Jefferson SchemmerItalyIvan Magalhaes NEW
Ashley DoeSpainBernardo Dominic NEW
Emily WhobreyUnited KingdomOnyama Limba NEGOTIATION
David DarakjyCanadaAmy Elsner NEGOTIATION
Salvatore StockhamAustraliaIvan Magalhaes QUALIFIED
Murillo MaletAustraliaAsiya Javayant NEGOTIATION
Clifford RimGermanyAmy Elsner NEW
Juan WieserAustraliaAsiya Javayant RENEWAL
Jefferson SchemmerFranceIoni Bowcher UNQUALIFIED
Maria MarrierGermanyAmy Elsner PROPOSAL
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Claire TollnerIndiaAnna Fali NEW
Murillo MaletCanadaAnna Fali NEGOTIATION
Faith GillianSpainIvan Magalhaes NEGOTIATION
Octavia MaletAustraliaOnyama Limba UNQUALIFIED
Aika InouyeRussiaBernardo Dominic UNQUALIFIED
Tony FollerCanadaElwin Sharvill UNQUALIFIED
Claire TollnerIndiaIoni Bowcher PROPOSAL
Arvin AlbaresFranceElwin Sharvill NEW
Kadeem FlosiBrazilStephen Shaw QUALIFIED
Silvio SlusarskiGermanyOnyama Limba UNQUALIFIED
Kaitlin OstroskyItalyIoni Bowcher QUALIFIED
Ashley DoeArgentinaXuxue Feng RENEWAL
Sinclair WaycottIndiaOnyama Limba NEGOTIATION
Isabel BowleyUnited KingdomAmy Elsner UNQUALIFIED
Darci PoquetteAustraliaAmy Elsner UNQUALIFIED
Maisha RulapaughFranceAmy Elsner PROPOSAL
Leja CaldareraSpainAsiya Javayant RENEWAL
Salvatore StockhamFranceOnyama Limba UNQUALIFIED
David DarakjySpainBernardo Dominic NEW
Jones VocelkaCanadaElwin Sharvill QUALIFIED
James ButtUnited KingdomAnna Fali PROPOSAL
Juan WieserAustraliaAsiya Javayant RENEWAL
Isabel BowleyJapanIoni Bowcher UNQUALIFIED
Aika InouyeAustraliaStephen Shaw 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>