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
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Deepesh ChuiIndiaAsiya Javayant NEGOTIATION
Tony FollerRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereJapanXuxue Feng NEW
Morrow RutaCanadaIoni Bowcher UNQUALIFIED
Misaki RoysterGermanyBernardo Dominic QUALIFIED
Greenwood BologniaFranceAmy Elsner NEW
Aruna FigeroaBrazilIoni Bowcher PROPOSAL
Wickens NestleAustraliaIvan Magalhaes NEGOTIATION
Mujtaba NickaRussiaAsiya Javayant QUALIFIED
Morrow RutaIndiaAmy Elsner UNQUALIFIED
David DarakjyGermanyAsiya Javayant UNQUALIFIED
Murillo MaletRussiaBernardo Dominic RENEWAL
Clifford RimGermanyStephen Shaw UNQUALIFIED
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Murillo MaletAustraliaAsiya Javayant UNQUALIFIED
Costa DilliardUnited KingdomBernardo Dominic PROPOSAL
Faith GillianGermanyAmy Elsner QUALIFIED
Antonio CaudySpainOnyama Limba PROPOSAL
Aditya KuskoArgentinaXuxue Feng RENEWAL
Faith GillianBrazilAsiya Javayant RENEWAL
Claire TollnerJapanBernardo Dominic QUALIFIED
Cody SaylorsAustraliaIvan Magalhaes QUALIFIED
Emily WhobreyUnited KingdomAnna Fali NEW
Ivar PaprockiFranceOnyama Limba UNQUALIFIED
Smith GlickAustraliaElwin Sharvill RENEWAL
Rodrigues CampainJapanBernardo Dominic PROPOSAL
Leon OldroydGermanyElwin Sharvill NEW
Tony FollerAustraliaStephen Shaw QUALIFIED
Darci PoquetteFranceElwin Sharvill RENEWAL
James ButtUnited KingdomOnyama Limba UNQUALIFIED
Arvin AlbaresSpainIvan Magalhaes NEW
Faith GillianFranceAmy Elsner UNQUALIFIED
Salvatore StockhamJapanAnna Fali NEGOTIATION
Darci PoquetteJapanBernardo Dominic NEGOTIATION
Juan WieserAustraliaAmy Elsner QUALIFIED
Wickens NestleAustraliaIoni Bowcher QUALIFIED
Julie StensethJapanIoni Bowcher NEW
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Faith GillianAustraliaStephen Shaw NEW
Octavia MaletBrazilElwin Sharvill NEW
Jones VocelkaRussiaAnna Fali PROPOSAL
Claire TollnerFranceAnna Fali NEGOTIATION
Jones VocelkaFranceStephen Shaw NEW
Morrow RutaArgentinaElwin Sharvill NEGOTIATION
Julie StensethAustraliaAmy Elsner QUALIFIED
Jones VocelkaFranceAnna Fali NEGOTIATION
Aditya KuskoSpainStephen Shaw NEGOTIATION
Arvin AlbaresIndiaAsiya Javayant PROPOSAL
Francesco ShinkoIndiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro FerenczFranceStephen Shaw QUALIFIED
Ricardo GauchoGermanyOnyama Limba QUALIFIED
Morrow RutaArgentinaStephen Shaw NEGOTIATION
Silvio SlusarskiItalyAsiya Javayant RENEWAL
Jones VocelkaAustraliaXuxue Feng UNQUALIFIED
Arvin AlbaresJapanIvan Magalhaes QUALIFIED
Ivar PaprockiGermanyIoni Bowcher QUALIFIED
Darci PoquetteAustraliaElwin Sharvill NEW
Leja CaldareraFranceAnna Fali PROPOSAL
Kadeem FlosiUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletUnited Kingdom2026-04-23Buckley Miller Wright PROPOSAL38Asiya Javayant
1001Aditya KuskoArgentina2026-04-23Printing Dimensions NEGOTIATION94Bernardo Dominic
1002Salvatore StockhamAustralia2026-04-02Rousseaux, Michael Esq NEW11Ivan Magalhaes
1003Mujtaba NickaCanada2026-04-18Dorl, James J Esq PROPOSAL6Anna Fali
1004Julie StensethRussia2026-04-10Feltz Printing Service NEGOTIATION11Xuxue Feng
1005Costa DilliardBrazil2026-04-29Printing Dimensions NEGOTIATION82Onyama Limba
1006Antonio CaudyRussia2026-04-05Printing Dimensions NEGOTIATION84Anna Fali
1007Juan WieserIndia2026-04-19Feltz Printing Service UNQUALIFIED77Xuxue Feng
1008David DarakjySpain2026-04-05Dorl, James J Esq PROPOSAL70Xuxue Feng
1009Octavia MaletUnited Kingdom2026-04-13Printing Dimensions RENEWAL0Anna Fali
1010Aruna FigeroaRussia2026-04-15Dorl, James J Esq PROPOSAL36Ivan Magalhaes
1011Costa DilliardGermany2026-04-19King, Christopher A Esq UNQUALIFIED8Ioni Bowcher
1012Alejandro PerinRussia2026-04-14Commercial Press QUALIFIED21Onyama Limba
1013Emily WhobreyJapan2026-04-17Chemel, James L Cpa NEGOTIATION85Bernardo Dominic
1014Silvio SlusarskiSpain2026-04-16Printing Dimensions UNQUALIFIED34Stephen Shaw
1015Mujtaba NickaGermany2026-04-08Printing Dimensions PROPOSAL64Asiya Javayant
1016Nicolas IturbideRussia2026-04-29Commercial Press UNQUALIFIED37Anna Fali
1017Antonio CaudySpain2026-04-04Truhlar And Truhlar Attys NEGOTIATION45Bernardo Dominic
1018Rodrigues CampainJapan2026-04-22Chemel, James L Cpa NEGOTIATION53Asiya Javayant
1019Leon OldroydAustralia2026-04-17Morlong Associates NEW21Bernardo Dominic
1020Chavez BriddickBrazil2026-04-18Morlong Associates UNQUALIFIED72Ioni Bowcher
1021Aruna FigeroaArgentina2026-04-01Truhlar And Truhlar Attys NEGOTIATION89Elwin Sharvill
1022Deepesh ChuiIndia2026-04-17Morlong Associates PROPOSAL7Onyama Limba
1023Sinclair WaycottJapan2026-04-20Chapman, Ross E Esq QUALIFIED88Stephen Shaw
1024Isabel BowleyCanada2026-04-07Rousseaux, Michael Esq UNQUALIFIED44Amy Elsner
1025Ricardo GauchoItaly2026-04-04Truhlar And Truhlar Attys UNQUALIFIED17Amy Elsner
1026Kaitlin OstroskyJapan2026-04-23Morlong Associates RENEWAL86Ioni Bowcher
1027Wickens NestleAustralia2026-04-14Buckley Miller Wright RENEWAL55Asiya Javayant
1028Aika InouyeSpain2026-04-24Chapman, Ross E Esq QUALIFIED92Ivan Magalhaes
1029Jeanfrancois VenereIndia2026-04-03Buckley Miller Wright NEW54Ioni Bowcher
1030Francesco ShinkoBrazil2026-04-07Feiner Bros QUALIFIED18Onyama Limba
1031Aika InouyeArgentina2026-04-25Rangoni Of Florence QUALIFIED2Amy Elsner
1032Misaki RoysterUnited Kingdom2026-04-11Benton, John B Jr UNQUALIFIED12Anna Fali
1033Aditya KuskoJapan2026-03-31Buckley Miller Wright RENEWAL55Ioni Bowcher
1034Ivar PaprockiIndia2026-04-23Truhlar And Truhlar Attys QUALIFIED61Stephen Shaw
1035Morrow RutaItaly2026-04-25Benton, John B Jr QUALIFIED36Bernardo Dominic
1036Leon OldroydRussia2026-04-18Chanay, Jeffrey A Esq NEGOTIATION74Amy Elsner
1037Salvatore StockhamSpain2026-04-07Morlong Associates NEW48Anna Fali
1038Nicolas IturbideCanada2026-04-09Rousseaux, Michael Esq QUALIFIED18Bernardo Dominic
1039Jeanfrancois VenereArgentina2026-04-13Feltz Printing Service RENEWAL13Amy Elsner
1040Costa DilliardIndia2026-04-18Commercial Press NEW27Ivan Magalhaes
1041David DarakjyIndia2026-04-10Printing Dimensions NEGOTIATION20Onyama Limba
1042Maisha RulapaughIndia2026-04-28Morlong Associates QUALIFIED63Amy Elsner
1043Cody SaylorsArgentina2026-04-05Rangoni Of Florence UNQUALIFIED64Ivan Magalhaes
1044Julie StensethGermany2026-04-09Truhlar And Truhlar Attys RENEWAL26Anna Fali
1045Morrow RutaCanada2026-04-03Morlong Associates NEW31Ioni Bowcher
1046Arvin AlbaresArgentina2026-04-09Dorl, James J Esq QUALIFIED60Bernardo Dominic
1047Darci PoquetteAustralia2026-03-31Printing Dimensions QUALIFIED16Xuxue Feng
1048David DarakjyCanada2026-04-27Benton, John B Jr NEGOTIATION72Elwin Sharvill
1049Juan WieserArgentina2026-04-17Truhlar And Truhlar Attys UNQUALIFIED25Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaAustraliaElwin Sharvill UNQUALIFIED
Chavez BriddickBrazilAsiya Javayant QUALIFIED
Aruna FigeroaItalyAmy Elsner NEGOTIATION
Emily WhobreyBrazilOnyama Limba RENEWAL
Morrow RutaFranceXuxue Feng PROPOSAL
Darci PoquetteCanadaElwin Sharvill NEGOTIATION
Julie StensethGermanyIoni Bowcher RENEWAL
Jennifer AmigonGermanyBernardo Dominic NEGOTIATION
Arvin AlbaresJapanStephen Shaw QUALIFIED
Leon OldroydCanadaStephen Shaw QUALIFIED
Alejandro PerinFranceIoni Bowcher QUALIFIED
Adams MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Wickens NestleRussiaStephen Shaw PROPOSAL
Cody SaylorsBrazilIoni Bowcher NEGOTIATION
Chavez BriddickJapanXuxue Feng QUALIFIED
Smith GlickCanadaIoni Bowcher PROPOSAL
Costa DilliardUnited KingdomAnna Fali QUALIFIED
Darci PoquetteUnited KingdomIoni Bowcher NEW
Sinclair WaycottFranceIoni Bowcher NEGOTIATION
Adams MorascaAustraliaStephen Shaw PROPOSAL
Izzy GarufiItalyXuxue Feng UNQUALIFIED
Rodrigues CampainSpainElwin Sharvill NEW
Arvin AlbaresGermanyIvan Magalhaes QUALIFIED
Chavez BriddickAustraliaAmy Elsner NEGOTIATION
Octavia MaletFranceOnyama Limba NEW
Claire TollnerCanadaStephen Shaw NEGOTIATION
David DarakjyArgentinaAnna Fali RENEWAL
Smith GlickCanadaIvan Magalhaes PROPOSAL
Stacey MacleadCanadaAsiya Javayant RENEWAL
Costa DilliardSpainOnyama Limba UNQUALIFIED
Leja CaldareraBrazilAnna Fali NEGOTIATION
Faith GillianUnited KingdomBernardo Dominic RENEWAL
Nicolas IturbideCanadaStephen Shaw QUALIFIED
Aruna FigeroaUnited KingdomAnna Fali UNQUALIFIED
Antonio CaudyAustraliaAsiya Javayant NEW
Sinclair WaycottGermanyAmy Elsner NEW
Johnson SergiAustraliaBernardo Dominic PROPOSAL
Maria MarrierRussiaElwin Sharvill PROPOSAL
Arvin AlbaresCanadaAsiya Javayant PROPOSAL
Leja CaldareraArgentinaXuxue Feng UNQUALIFIED
Ashley DoeItalyOnyama Limba UNQUALIFIED
Deepesh ChuiBrazilElwin Sharvill NEW
Aditya KuskoBrazilElwin Sharvill UNQUALIFIED
Cody SaylorsRussiaOnyama Limba UNQUALIFIED
Costa DilliardSpainBernardo Dominic QUALIFIED
Costa DilliardItalyIoni Bowcher UNQUALIFIED
Leja CaldareraGermanyXuxue Feng NEGOTIATION
Chavez BriddickUnited KingdomOnyama Limba RENEWAL
Aika InouyeBrazilAnna Fali PROPOSAL
Nicolas IturbideCanadaElwin Sharvill RENEWAL
Frozen Columns
Name
Costa Dilliard
Munro Ferencz
Ashley Doe
Arvin Albares
Ricardo Gaucho
Jeanfrancois Venere
Chavez Briddick
Cody Saylors
Munro Ferencz
Adams Morasca
Kaitlin Ostrosky
Julie Stenseth
Deepesh Chui
Salvatore Stockham
Juan Wieser
Costa Dilliard
Cody Saylors
Adams Morasca
Julie Stenseth
Leja Caldarera
Wickens Nestle
Leja Caldarera
Salvatore Stockham
Antonio Caudy
Smith Glick
Rodrigues Campain
Cody Saylors
Jones Vocelka
Claire Tollner
Jeanfrancois Venere
Julie Stenseth
Stacey Maclead
Jones Vocelka
Kaitlin Ostrosky
Nicolas Iturbide
Mayumi Kolmetz
Greenwood Bolognia
Smith Glick
Ivar Paprocki
Wickens Nestle
Morrow Ruta
Stacey Maclead
Claire Tollner
Ashley Doe
Aruna Figeroa
Mayumi Kolmetz
Octavia Malet
Kaitlin Ostrosky
Jones Vocelka
Silvio Slusarski
IdCountryDate
1000Germany2026-04-08
1001Germany2026-04-15
1002Russia2026-04-24
1003Russia2026-04-03
1004France2026-04-10
1005Argentina2026-04-13
1006Russia2026-04-29
1007United Kingdom2026-04-03
1008India2026-04-08
1009Argentina2026-04-13
1010Russia2026-04-19
1011France2026-04-17
1012Australia2026-04-12
1013India2026-04-26
1014United Kingdom2026-04-14
1015Brazil2026-04-05
1016Italy2026-04-08
1017Italy2026-04-05
1018Canada2026-03-31
1019Spain2026-04-07
1020Japan2026-04-11
1021Italy2026-04-19
1022Brazil2026-04-05
1023Germany2026-04-02
1024Spain2026-04-18
1025Canada2026-04-04
1026Germany2026-04-16
1027Argentina2026-04-26
1028Australia2026-04-28
1029Australia2026-04-10
1030Australia2026-04-01
1031India2026-04-26
1032Germany2026-04-20
1033France2026-04-25
1034Canada2026-04-20
1035Russia2026-04-17
1036Argentina2026-04-09
1037Germany2026-04-16
1038Brazil2026-04-29
1039Australia2026-04-10
1040Australia2026-04-25
1041Italy2026-04-19
1042India2026-04-09
1043Italy2026-04-01
1044Brazil2026-04-15
1045Italy2026-04-27
1046Canada2026-04-02
1047Japan2026-04-06
1048Italy2026-04-28
1049Brazil2026-04-20

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Germany2026-04-29
Wickens Nestle1001United Kingdom2026-04-19
Deepesh Chui1002Italy2026-04-02
Ashley Doe1003Russia2026-04-05
Murillo Malet1004Brazil2026-04-12
Julie Stenseth1005France2026-04-28
Chavez Briddick1006Australia2026-04-18
Octavia Malet1007Canada2026-04-01
Clifford Rim1008United Kingdom2026-04-09
Cody Saylors1009United Kingdom2026-04-08
Emily Whobrey1010Russia2026-04-27
Chavez Briddick1011Spain2026-04-19
Munro Ferencz1012Germany2026-04-15
Ivar Paprocki1013France2026-04-26
Aditya Kusko1014Argentina2026-04-25
Ashley Doe1015Spain2026-04-26
Murillo Malet1016India2026-04-05
Johnson Sergi1017Russia2026-03-31
Cody Saylors1018Germany2026-04-28
Jeanfrancois Venere1019France2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickAustraliaStephen Shaw NEW
Claire TollnerSpainBernardo Dominic NEGOTIATION
Antonio CaudyJapanElwin Sharvill QUALIFIED
Ashley DoeJapanStephen Shaw RENEWAL
Johnson SergiSpainAnna Fali NEW
Deepesh ChuiBrazilOnyama Limba NEW
Darci PoquetteRussiaBernardo Dominic PROPOSAL
Faith GillianGermanyIoni Bowcher NEGOTIATION
Isabel BowleyCanadaIoni Bowcher QUALIFIED
Ivar PaprockiBrazilAmy Elsner PROPOSAL
Mujtaba NickaBrazilAsiya Javayant QUALIFIED
Wickens NestleBrazilIvan Magalhaes QUALIFIED
Aruna FigeroaAustraliaAsiya Javayant RENEWAL
Munro FerenczSpainIoni Bowcher PROPOSAL
Juan WieserAustraliaXuxue Feng NEW
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Kadeem FlosiRussiaOnyama Limba QUALIFIED
Julie StensethBrazilStephen Shaw NEW
Murillo MaletFranceXuxue Feng UNQUALIFIED
Clifford RimRussiaIoni Bowcher RENEWAL
Mayumi KolmetzArgentinaAnna Fali QUALIFIED
Antonio CaudyArgentinaAnna Fali NEW
Chavez BriddickCanadaIvan Magalhaes NEGOTIATION
Chavez BriddickJapanAnna Fali NEGOTIATION
Johnson SergiJapanBernardo Dominic NEGOTIATION
Mayumi KolmetzBrazilXuxue Feng QUALIFIED
Aditya KuskoFranceAmy Elsner RENEWAL
Izzy GarufiIndiaAsiya Javayant UNQUALIFIED
Misaki RoysterUnited KingdomIvan Magalhaes NEGOTIATION
Leja CaldareraFranceStephen Shaw PROPOSAL
Jones VocelkaArgentinaIvan Magalhaes NEW
Aditya KuskoGermanyElwin Sharvill NEGOTIATION
Misaki RoysterAustraliaAnna Fali QUALIFIED
Adams MorascaRussiaXuxue Feng NEGOTIATION
Salvatore StockhamJapanAnna Fali PROPOSAL
Jefferson SchemmerItalyOnyama Limba NEW
Nicolas IturbideGermanyIvan Magalhaes QUALIFIED
Alejandro PerinItalyBernardo Dominic RENEWAL
Jeanfrancois VenereItalyOnyama Limba RENEWAL
David DarakjyItalyStephen Shaw 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>