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
Kaitlin OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Faith GillianBrazilAmy Elsner RENEWAL
Ivar PaprockiItalyOnyama Limba RENEWAL
Emily WhobreyGermanyAnna Fali UNQUALIFIED
Isabel BowleyFranceXuxue Feng RENEWAL
Deepesh ChuiGermanyOnyama Limba PROPOSAL
Antonio CaudyAustraliaAnna Fali QUALIFIED
David DarakjyGermanyIvan Magalhaes RENEWAL
Adams MorascaSpainStephen Shaw PROPOSAL
Chavez BriddickItalyIoni Bowcher NEGOTIATION
Tony FollerBrazilStephen Shaw QUALIFIED
Greenwood BologniaFranceIvan Magalhaes NEGOTIATION
Smith GlickUnited KingdomBernardo Dominic QUALIFIED
Leon OldroydArgentinaAnna Fali PROPOSAL
Alejandro PerinCanadaStephen Shaw RENEWAL
Silvio SlusarskiBrazilOnyama Limba NEGOTIATION
Aika InouyeIndiaElwin Sharvill RENEWAL
James ButtSpainIvan Magalhaes PROPOSAL
Julie StensethIndiaXuxue Feng RENEWAL
Jeanfrancois VenereJapanAsiya Javayant PROPOSAL
Juan WieserIndiaElwin Sharvill PROPOSAL
Antonio CaudyJapanStephen Shaw RENEWAL
Izzy GarufiSpainBernardo Dominic NEGOTIATION
Morrow RutaItalyIoni Bowcher RENEWAL
Aika InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaAustraliaIoni Bowcher UNQUALIFIED
Tony FollerCanadaIoni Bowcher PROPOSAL
Clifford RimJapanIoni Bowcher NEGOTIATION
Leja CaldareraIndiaBernardo Dominic PROPOSAL
Aruna FigeroaCanadaAnna Fali RENEWAL
Aditya KuskoJapanIoni Bowcher UNQUALIFIED
Maria MarrierGermanyAsiya Javayant PROPOSAL
Maria MarrierSpainAmy Elsner QUALIFIED
James ButtRussiaAsiya Javayant QUALIFIED
Nicolas IturbideRussiaIvan Magalhaes NEGOTIATION
Maria MarrierCanadaAnna Fali UNQUALIFIED
Mayumi KolmetzSpainElwin Sharvill PROPOSAL
James ButtCanadaIvan Magalhaes PROPOSAL
Smith GlickItalyBernardo Dominic UNQUALIFIED
Nicolas IturbideCanadaAsiya Javayant PROPOSAL
Wickens NestleIndiaXuxue Feng QUALIFIED
Rodrigues CampainFranceXuxue Feng NEW
Izzy GarufiIndiaAsiya Javayant RENEWAL
Francesco ShinkoIndiaOnyama Limba QUALIFIED
Ashley DoeBrazilAmy Elsner QUALIFIED
James ButtItalyElwin Sharvill PROPOSAL
Wickens NestleJapanIoni Bowcher NEGOTIATION
Chavez BriddickBrazilAsiya Javayant RENEWAL
Kaitlin OstroskyGermanyElwin Sharvill QUALIFIED
Isabel BowleyItalyBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro FerenczUnited KingdomBernardo Dominic PROPOSAL
Murillo MaletIndiaAnna Fali QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill QUALIFIED
Costa DilliardIndiaAsiya Javayant UNQUALIFIED
Cody SaylorsItalyIvan Magalhaes NEW
Isabel BowleyCanadaBernardo Dominic RENEWAL
Morrow RutaItalyXuxue Feng UNQUALIFIED
James ButtGermanyIvan Magalhaes RENEWAL
Wickens NestleAustraliaAmy Elsner UNQUALIFIED
Costa DilliardJapanBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyArgentina2026-05-17Chapman, Ross E Esq NEW38Xuxue Feng
1001Munro FerenczArgentina2026-05-20Commercial Press PROPOSAL95Xuxue Feng
1002Darci PoquetteJapan2026-05-22Chanay, Jeffrey A Esq NEGOTIATION46Bernardo Dominic
1003Ricardo GauchoIndia2026-05-13Truhlar And Truhlar Attys NEGOTIATION22Ioni Bowcher
1004Maria MarrierRussia2026-05-14Feltz Printing Service RENEWAL20Anna Fali
1005Costa DilliardSpain2026-05-11Feiner Bros QUALIFIED87Amy Elsner
1006Leon OldroydRussia2026-04-30Chapman, Ross E Esq NEW28Amy Elsner
1007Chavez BriddickCanada2026-05-20Feltz Printing Service RENEWAL79Ioni Bowcher
1008Smith GlickItaly2026-05-12Commercial Press PROPOSAL64Elwin Sharvill
1009Johnson SergiCanada2026-05-04Rousseaux, Michael Esq PROPOSAL71Ioni Bowcher
1010Kaitlin OstroskyIndia2026-05-20Buckley Miller Wright RENEWAL42Anna Fali
1011Mujtaba NickaGermany2026-04-29Benton, John B Jr NEW63Onyama Limba
1012Faith GillianJapan2026-05-19Benton, John B Jr NEGOTIATION74Amy Elsner
1013Stacey MacleadSpain2026-05-15Chemel, James L Cpa NEW34Ivan Magalhaes
1014Aditya KuskoJapan2026-04-30Buckley Miller Wright PROPOSAL40Elwin Sharvill
1015Stacey MacleadAustralia2026-05-14Feltz Printing Service PROPOSAL71Stephen Shaw
1016Nicolas IturbideUnited Kingdom2026-05-21Chemel, James L Cpa QUALIFIED23Ioni Bowcher
1017Smith GlickItaly2026-05-09Buckley Miller Wright NEGOTIATION39Ivan Magalhaes
1018Chavez BriddickBrazil2026-04-25Chapman, Ross E Esq UNQUALIFIED74Ivan Magalhaes
1019Darci PoquetteCanada2026-04-25Truhlar And Truhlar Attys NEW97Bernardo Dominic
1020Ivar PaprockiAustralia2026-05-12Rangoni Of Florence NEGOTIATION39Xuxue Feng
1021Morrow RutaRussia2026-05-14Chanay, Jeffrey A Esq NEW91Xuxue Feng
1022Adams MorascaUnited Kingdom2026-05-11Truhlar And Truhlar Attys UNQUALIFIED65Onyama Limba
1023Darci PoquetteSpain2026-05-16Rousseaux, Michael Esq UNQUALIFIED46Ioni Bowcher
1024Rodrigues CampainRussia2026-04-24Printing Dimensions PROPOSAL39Ivan Magalhaes
1025Morrow RutaAustralia2026-05-21Chanay, Jeffrey A Esq PROPOSAL48Xuxue Feng
1026Aruna FigeroaGermany2026-04-24Commercial Press RENEWAL57Elwin Sharvill
1027Jones VocelkaIndia2026-05-17Truhlar And Truhlar Attys PROPOSAL64Xuxue Feng
1028Izzy GarufiUnited Kingdom2026-05-02King, Christopher A Esq PROPOSAL72Bernardo Dominic
1029Munro FerenczSpain2026-05-06Rangoni Of Florence UNQUALIFIED70Onyama Limba
1030Leon OldroydFrance2026-05-04Printing Dimensions NEGOTIATION64Amy Elsner
1031Jeanfrancois VenereRussia2026-05-01Rousseaux, Michael Esq NEW58Asiya Javayant
1032James ButtItaly2026-05-01Printing Dimensions NEGOTIATION3Elwin Sharvill
1033Kadeem FlosiSpain2026-05-16Feiner Bros NEGOTIATION76Ioni Bowcher
1034Greenwood BologniaArgentina2026-05-13Commercial Press QUALIFIED13Stephen Shaw
1035Jeanfrancois VenereArgentina2026-05-04Feiner Bros UNQUALIFIED65Stephen Shaw
1036Misaki RoysterIndia2026-05-19Rousseaux, Michael Esq NEW47Stephen Shaw
1037Claire TollnerFrance2026-05-04Feltz Printing Service RENEWAL71Bernardo Dominic
1038Sinclair WaycottFrance2026-04-25Chemel, James L Cpa QUALIFIED34Onyama Limba
1039Izzy GarufiIndia2026-05-20Chapman, Ross E Esq RENEWAL58Ioni Bowcher
1040Rodrigues CampainSpain2026-05-22Dorl, James J Esq QUALIFIED84Asiya Javayant
1041Greenwood BologniaAustralia2026-05-21Feiner Bros PROPOSAL82Ivan Magalhaes
1042James ButtBrazil2026-05-09Dorl, James J Esq NEW60Ivan Magalhaes
1043Ricardo GauchoBrazil2026-05-08Benton, John B Jr RENEWAL78Ivan Magalhaes
1044Francesco ShinkoBrazil2026-04-27Benton, John B Jr UNQUALIFIED98Onyama Limba
1045Francesco ShinkoSpain2026-05-08Chemel, James L Cpa NEGOTIATION54Stephen Shaw
1046Jeanfrancois VenereUnited Kingdom2026-05-09Benton, John B Jr QUALIFIED42Onyama Limba
1047Adams MorascaArgentina2026-05-06Feiner Bros NEGOTIATION16Stephen Shaw
1048Izzy GarufiIndia2026-05-10Benton, John B Jr QUALIFIED4Xuxue Feng
1049Antonio CaudyAustralia2026-05-21Buckley Miller Wright QUALIFIED46Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerIndiaIvan Magalhaes RENEWAL
Jennifer AmigonArgentinaElwin Sharvill QUALIFIED
Darci PoquetteAustraliaAnna Fali UNQUALIFIED
Aruna FigeroaArgentinaElwin Sharvill QUALIFIED
Jones VocelkaSpainXuxue Feng NEW
Isabel BowleyArgentinaIoni Bowcher NEGOTIATION
Tony FollerSpainOnyama Limba NEGOTIATION
Aika InouyeGermanyAnna Fali RENEWAL
Maisha RulapaughGermanyStephen Shaw UNQUALIFIED
Francesco ShinkoRussiaIoni Bowcher RENEWAL
Aditya KuskoItalyAsiya Javayant QUALIFIED
Jeanfrancois VenereFranceOnyama Limba QUALIFIED
Antonio CaudyItalyIvan Magalhaes NEW
Tony FollerFranceIvan Magalhaes QUALIFIED
Greenwood BologniaGermanyAsiya Javayant QUALIFIED
Leon OldroydIndiaStephen Shaw QUALIFIED
Adams MorascaItalyElwin Sharvill NEGOTIATION
Cody SaylorsCanadaStephen Shaw QUALIFIED
James ButtSpainXuxue Feng UNQUALIFIED
Darci PoquetteUnited KingdomStephen Shaw NEGOTIATION
Ricardo GauchoFranceIvan Magalhaes UNQUALIFIED
Isabel BowleyFranceXuxue Feng NEW
Jones VocelkaCanadaIvan Magalhaes PROPOSAL
Jennifer AmigonAustraliaIvan Magalhaes UNQUALIFIED
Wickens NestleItalyElwin Sharvill UNQUALIFIED
Aditya KuskoJapanAnna Fali QUALIFIED
Isabel BowleyJapanXuxue Feng NEGOTIATION
Wickens NestleSpainAsiya Javayant NEGOTIATION
Kadeem FlosiUnited KingdomIvan Magalhaes QUALIFIED
Munro FerenczJapanXuxue Feng QUALIFIED
Sinclair WaycottBrazilAsiya Javayant RENEWAL
Octavia MaletFranceStephen Shaw NEGOTIATION
Aruna FigeroaAustraliaAsiya Javayant QUALIFIED
Wickens NestleIndiaAmy Elsner QUALIFIED
Morrow RutaJapanStephen Shaw PROPOSAL
Jennifer AmigonRussiaAnna Fali PROPOSAL
Misaki RoysterIndiaOnyama Limba RENEWAL
Isabel BowleyAustraliaElwin Sharvill UNQUALIFIED
Murillo MaletAustraliaAmy Elsner RENEWAL
Adams MorascaItalyIoni Bowcher NEGOTIATION
Ricardo GauchoRussiaAsiya Javayant RENEWAL
Chavez BriddickJapanElwin Sharvill NEW
Stacey MacleadSpainIoni Bowcher RENEWAL
Silvio SlusarskiRussiaElwin Sharvill PROPOSAL
Tony FollerCanadaElwin Sharvill PROPOSAL
Aruna FigeroaUnited KingdomBernardo Dominic QUALIFIED
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
Wickens NestleAustraliaOnyama Limba NEW
Ricardo GauchoItalyIvan Magalhaes UNQUALIFIED
Morrow RutaJapanOnyama Limba QUALIFIED
Frozen Columns
Name
James Butt
Claire Tollner
Emily Whobrey
James Butt
Ricardo Gaucho
Antonio Caudy
Cody Saylors
Arvin Albares
Aruna Figeroa
James Butt
Faith Gillian
Jennifer Amigon
Mujtaba Nicka
Nicolas Iturbide
Leja Caldarera
James Butt
Smith Glick
Alejandro Perin
Julie Stenseth
Jefferson Schemmer
Emily Whobrey
Aruna Figeroa
Smith Glick
Darci Poquette
Munro Ferencz
Ashley Doe
Costa Dilliard
Isabel Bowley
Mayumi Kolmetz
Juan Wieser
Octavia Malet
Johnson Sergi
Clifford Rim
Clifford Rim
Leja Caldarera
Jones Vocelka
Aditya Kusko
Deepesh Chui
Maisha Rulapaugh
Leja Caldarera
Francesco Shinko
Nicolas Iturbide
Deepesh Chui
Leon Oldroyd
Jefferson Schemmer
Jones Vocelka
Maisha Rulapaugh
Juan Wieser
Chavez Briddick
Ashley Doe
IdCountryDate
1000Argentina2026-05-17
1001Italy2026-05-14
1002Germany2026-05-03
1003Brazil2026-05-18
1004India2026-04-27
1005Brazil2026-05-05
1006India2026-05-17
1007Australia2026-04-26
1008Canada2026-05-16
1009Germany2026-05-17
1010Brazil2026-05-17
1011Germany2026-05-17
1012Brazil2026-05-09
1013Russia2026-04-27
1014Spain2026-04-23
1015Australia2026-05-14
1016Australia2026-05-10
1017India2026-05-14
1018Spain2026-05-08
1019Argentina2026-04-25
1020Spain2026-05-10
1021Japan2026-05-13
1022United Kingdom2026-05-20
1023Canada2026-04-30
1024Brazil2026-05-03
1025Russia2026-05-20
1026United Kingdom2026-05-01
1027India2026-04-27
1028Canada2026-05-20
1029Brazil2026-05-18
1030Australia2026-04-30
1031Argentina2026-05-18
1032Spain2026-05-14
1033Spain2026-04-25
1034Brazil2026-04-29
1035Spain2026-05-07
1036France2026-05-20
1037Spain2026-05-08
1038Spain2026-04-26
1039Japan2026-05-16
1040Russia2026-05-05
1041Australia2026-05-05
1042Russia2026-05-14
1043Argentina2026-05-01
1044Japan2026-05-05
1045Germany2026-04-24
1046Spain2026-05-10
1047Germany2026-04-26
1048United Kingdom2026-05-12
1049Germany2026-05-02

On-Demand Data

NameIdCountryDate
Deepesh Chui1000Russia2026-04-30
Julie Stenseth1001Brazil2026-05-01
Cody Saylors1002Brazil2026-04-30
Wickens Nestle1003Russia2026-05-16
Smith Glick1004France2026-05-08
Antonio Caudy1005India2026-05-03
Julie Stenseth1006Japan2026-04-24
Ashley Doe1007Brazil2026-05-03
Misaki Royster1008United Kingdom2026-05-22
Jefferson Schemmer1009Italy2026-04-27
James Butt1010Germany2026-05-11
Silvio Slusarski1011Argentina2026-05-13
Chavez Briddick1012Brazil2026-04-23
Morrow Ruta1013Canada2026-04-25
Jennifer Amigon1014Canada2026-05-18
Morrow Ruta1015Brazil2026-05-15
Rodrigues Campain1016Germany2026-05-09
Jeanfrancois Venere1017India2026-04-28
Leon Oldroyd1018Spain2026-05-03
Jeanfrancois Venere1019France2026-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerCanadaOnyama Limba RENEWAL
Alejandro PerinAustraliaAnna Fali UNQUALIFIED
Juan WieserSpainIvan Magalhaes QUALIFIED
Antonio CaudyUnited KingdomStephen Shaw RENEWAL
Ivar PaprockiFranceIoni Bowcher QUALIFIED
Morrow RutaCanadaStephen Shaw NEW
Aditya KuskoBrazilElwin Sharvill QUALIFIED
Chavez BriddickUnited KingdomAmy Elsner PROPOSAL
Wickens NestleRussiaAmy Elsner NEGOTIATION
Kaitlin OstroskyArgentinaBernardo Dominic NEW
Nicolas IturbideIndiaIvan Magalhaes NEW
Mujtaba NickaAustraliaIvan Magalhaes PROPOSAL
Leja CaldareraRussiaAsiya Javayant QUALIFIED
Wickens NestleFranceOnyama Limba RENEWAL
Mujtaba NickaIndiaAnna Fali RENEWAL
Juan WieserAustraliaBernardo Dominic NEGOTIATION
Claire TollnerCanadaAmy Elsner PROPOSAL
Faith GillianAustraliaAnna Fali PROPOSAL
David DarakjyFranceElwin Sharvill NEGOTIATION
Ivar PaprockiFranceBernardo Dominic QUALIFIED
Morrow RutaArgentinaIoni Bowcher RENEWAL
Jennifer AmigonFranceIoni Bowcher RENEWAL
Jeanfrancois VenereUnited KingdomBernardo Dominic UNQUALIFIED
Emily WhobreyItalyIoni Bowcher PROPOSAL
Clifford RimBrazilIoni Bowcher NEGOTIATION
Sinclair WaycottUnited KingdomElwin Sharvill RENEWAL
Smith GlickAustraliaIvan Magalhaes RENEWAL
Adams MorascaGermanyStephen Shaw NEW
Aika InouyeIndiaXuxue Feng QUALIFIED
Leon OldroydCanadaAmy Elsner UNQUALIFIED
Juan WieserRussiaAnna Fali NEW
Greenwood BologniaBrazilAmy Elsner RENEWAL
Johnson SergiSpainBernardo Dominic PROPOSAL
Juan WieserItalyBernardo Dominic UNQUALIFIED
Izzy GarufiJapanOnyama Limba PROPOSAL
Emily WhobreyCanadaAnna Fali NEW
Salvatore StockhamUnited KingdomAnna Fali NEW
Juan WieserCanadaBernardo Dominic PROPOSAL
Octavia MaletGermanyXuxue Feng UNQUALIFIED
Kaitlin OstroskyCanadaElwin Sharvill PROPOSAL

<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>