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
Arvin AlbaresBrazilAmy Elsner NEGOTIATION
Salvatore StockhamFranceStephen Shaw NEGOTIATION
Jefferson SchemmerArgentinaBernardo Dominic QUALIFIED
Jefferson SchemmerItalyAnna Fali NEGOTIATION
Mujtaba NickaArgentinaBernardo Dominic PROPOSAL
Rodrigues CampainItalyElwin Sharvill RENEWAL
Aruna FigeroaAustraliaIvan Magalhaes QUALIFIED
Darci PoquetteIndiaBernardo Dominic QUALIFIED
Stacey MacleadGermanyAsiya Javayant RENEWAL
Silvio SlusarskiArgentinaXuxue Feng UNQUALIFIED
Silvio SlusarskiCanadaAnna Fali QUALIFIED
Jones VocelkaBrazilAmy Elsner UNQUALIFIED
Ashley DoeIndiaXuxue Feng NEGOTIATION
Munro FerenczCanadaStephen Shaw NEGOTIATION
Sinclair WaycottRussiaOnyama Limba PROPOSAL
Deepesh ChuiItalyAsiya Javayant UNQUALIFIED
Morrow RutaGermanyAmy Elsner PROPOSAL
Murillo MaletJapanAmy Elsner RENEWAL
Sinclair WaycottCanadaIoni Bowcher RENEWAL
Jeanfrancois VenereItalyIoni Bowcher NEW
Morrow RutaSpainAmy Elsner RENEWAL
Deepesh ChuiBrazilAnna Fali PROPOSAL
Chavez BriddickFranceElwin Sharvill UNQUALIFIED
Leon OldroydItalyAsiya Javayant QUALIFIED
Jennifer AmigonIndiaXuxue Feng NEGOTIATION
Jeanfrancois VenereItalyAsiya Javayant PROPOSAL
Aditya KuskoAustraliaIoni Bowcher UNQUALIFIED
James ButtItalyOnyama Limba RENEWAL
Tony FollerIndiaIoni Bowcher PROPOSAL
Izzy GarufiJapanIoni Bowcher QUALIFIED
Ricardo GauchoSpainXuxue Feng PROPOSAL
Clifford RimGermanyOnyama Limba RENEWAL
Aditya KuskoBrazilXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaOnyama Limba NEGOTIATION
Wickens NestleIndiaAsiya Javayant QUALIFIED
Kadeem FlosiJapanXuxue Feng RENEWAL
Antonio CaudyFranceAnna Fali NEW
James ButtItalyAmy Elsner RENEWAL
Murillo MaletJapanAmy Elsner UNQUALIFIED
Clifford RimItalyBernardo Dominic PROPOSAL
Faith GillianArgentinaIoni Bowcher UNQUALIFIED
Darci PoquetteIndiaAnna Fali NEW
Jeanfrancois VenereFranceXuxue Feng QUALIFIED
Stacey MacleadIndiaAmy Elsner UNQUALIFIED
Rodrigues CampainCanadaStephen Shaw UNQUALIFIED
Maisha RulapaughItalyAnna Fali QUALIFIED
Juan WieserJapanOnyama Limba PROPOSAL
Kaitlin OstroskyArgentinaBernardo Dominic NEW
Deepesh ChuiAustraliaAnna Fali RENEWAL
Tony FollerBrazilXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickJapanAnna Fali RENEWAL
Leon OldroydRussiaXuxue Feng RENEWAL
Misaki RoysterSpainAnna Fali RENEWAL
Mayumi KolmetzCanadaStephen Shaw QUALIFIED
Ashley DoeJapanIvan Magalhaes QUALIFIED
Ashley DoeFranceIvan Magalhaes NEGOTIATION
Antonio CaudyItalyIoni Bowcher NEW
Claire TollnerRussiaAnna Fali UNQUALIFIED
Tony FollerBrazilAsiya Javayant NEGOTIATION
Nicolas IturbideArgentinaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczSpain2026-04-17Morlong Associates QUALIFIED22Elwin Sharvill
1001Misaki RoysterBrazil2026-05-01Benton, John B Jr QUALIFIED2Amy Elsner
1002Smith GlickIndia2026-04-22Dorl, James J Esq QUALIFIED19Elwin Sharvill
1003Munro FerenczCanada2026-05-01Commercial Press RENEWAL34Bernardo Dominic
1004Juan WieserJapan2026-04-30Benton, John B Jr PROPOSAL18Asiya Javayant
1005James ButtUnited Kingdom2026-05-05Chapman, Ross E Esq NEW33Elwin Sharvill
1006Isabel BowleyJapan2026-04-22Commercial Press RENEWAL59Ivan Magalhaes
1007Jones VocelkaAustralia2026-04-21Chapman, Ross E Esq NEGOTIATION35Onyama Limba
1008Alejandro PerinArgentina2026-04-19Chapman, Ross E Esq NEGOTIATION64Elwin Sharvill
1009Izzy GarufiGermany2026-04-21Rangoni Of Florence PROPOSAL6Asiya Javayant
1010Antonio CaudyAustralia2026-04-15Rousseaux, Michael Esq NEGOTIATION77Bernardo Dominic
1011Jefferson SchemmerJapan2026-04-17Commercial Press QUALIFIED94Ioni Bowcher
1012Jennifer AmigonItaly2026-05-06Buckley Miller Wright PROPOSAL78Elwin Sharvill
1013Rodrigues CampainArgentina2026-04-20Rousseaux, Michael Esq PROPOSAL81Xuxue Feng
1014Mayumi KolmetzUnited Kingdom2026-04-22Chapman, Ross E Esq QUALIFIED74Stephen Shaw
1015Clifford RimAustralia2026-05-05Rousseaux, Michael Esq UNQUALIFIED84Asiya Javayant
1016Mayumi KolmetzArgentina2026-05-07Benton, John B Jr RENEWAL26Elwin Sharvill
1017Jones VocelkaCanada2026-04-15Morlong Associates QUALIFIED79Onyama Limba
1018Aruna FigeroaCanada2026-05-06Chemel, James L Cpa PROPOSAL72Anna Fali
1019Ashley DoeFrance2026-05-01King, Christopher A Esq NEW33Bernardo Dominic
1020Kaitlin OstroskyBrazil2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED40Elwin Sharvill
1021Stacey MacleadCanada2026-04-18Dorl, James J Esq NEW35Onyama Limba
1022Emily WhobreyUnited Kingdom2026-05-05Chemel, James L Cpa RENEWAL94Xuxue Feng
1023Deepesh ChuiCanada2026-04-15Feltz Printing Service QUALIFIED70Xuxue Feng
1024Johnson SergiUnited Kingdom2026-04-14Chemel, James L Cpa NEGOTIATION6Stephen Shaw
1025Darci PoquetteArgentina2026-04-24Chanay, Jeffrey A Esq NEGOTIATION88Stephen Shaw
1026Ricardo GauchoJapan2026-04-12Commercial Press QUALIFIED18Onyama Limba
1027Clifford RimFrance2026-04-24Truhlar And Truhlar Attys PROPOSAL77Anna Fali
1028Morrow RutaGermany2026-04-26Printing Dimensions NEW59Amy Elsner
1029Claire TollnerArgentina2026-05-10Rousseaux, Michael Esq RENEWAL97Elwin Sharvill
1030Aruna FigeroaGermany2026-05-09Morlong Associates NEW10Ivan Magalhaes
1031Aditya KuskoBrazil2026-04-30Morlong Associates UNQUALIFIED64Ivan Magalhaes
1032Deepesh ChuiArgentina2026-04-15Feltz Printing Service PROPOSAL88Anna Fali
1033Ashley DoeSpain2026-05-06Chapman, Ross E Esq UNQUALIFIED4Asiya Javayant
1034Darci PoquetteUnited Kingdom2026-05-09Feiner Bros RENEWAL98Elwin Sharvill
1035Ashley DoeJapan2026-04-16Chanay, Jeffrey A Esq PROPOSAL92Asiya Javayant
1036Ashley DoeGermany2026-04-19King, Christopher A Esq UNQUALIFIED98Elwin Sharvill
1037Jeanfrancois VenereAustralia2026-05-09Benton, John B Jr PROPOSAL48Bernardo Dominic
1038Aika InouyeArgentina2026-05-07Chapman, Ross E Esq NEW72Xuxue Feng
1039Wickens NestleFrance2026-04-21Chapman, Ross E Esq RENEWAL69Ivan Magalhaes
1040Leon OldroydSpain2026-04-23Buckley Miller Wright UNQUALIFIED82Elwin Sharvill
1041Clifford RimAustralia2026-05-10Chemel, James L Cpa QUALIFIED54Ioni Bowcher
1042Ivar PaprockiAustralia2026-05-01King, Christopher A Esq NEGOTIATION99Elwin Sharvill
1043Kadeem FlosiSpain2026-04-30Rousseaux, Michael Esq UNQUALIFIED47Anna Fali
1044Munro FerenczGermany2026-04-14Chapman, Ross E Esq NEGOTIATION61Xuxue Feng
1045Emily WhobreyFrance2026-04-26Truhlar And Truhlar Attys UNQUALIFIED41Xuxue Feng
1046Jennifer AmigonBrazil2026-04-29Chemel, James L Cpa QUALIFIED41Bernardo Dominic
1047Greenwood BologniaJapan2026-05-09Morlong Associates PROPOSAL83Amy Elsner
1048Chavez BriddickFrance2026-04-13Printing Dimensions UNQUALIFIED94Elwin Sharvill
1049Ashley DoeRussia2026-04-22Chanay, Jeffrey A Esq PROPOSAL61Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoBrazilElwin Sharvill PROPOSAL
Claire TollnerFranceAnna Fali UNQUALIFIED
Adams MorascaFranceOnyama Limba PROPOSAL
Morrow RutaItalyXuxue Feng RENEWAL
Mujtaba NickaUnited KingdomAmy Elsner NEGOTIATION
Arvin AlbaresItalyBernardo Dominic NEGOTIATION
Jefferson SchemmerBrazilBernardo Dominic NEW
Ashley DoeBrazilXuxue Feng NEGOTIATION
Darci PoquetteIndiaIvan Magalhaes NEGOTIATION
Aditya KuskoRussiaIoni Bowcher QUALIFIED
James ButtItalyAsiya Javayant QUALIFIED
Octavia MaletFranceElwin Sharvill RENEWAL
Isabel BowleyIndiaStephen Shaw UNQUALIFIED
Ricardo GauchoRussiaStephen Shaw QUALIFIED
Salvatore StockhamAustraliaIoni Bowcher RENEWAL
Claire TollnerArgentinaAmy Elsner RENEWAL
Mayumi KolmetzCanadaElwin Sharvill NEW
Smith GlickItalyElwin Sharvill NEW
Jennifer AmigonFranceStephen Shaw NEW
David DarakjyAustraliaBernardo Dominic UNQUALIFIED
Smith GlickJapanStephen Shaw NEGOTIATION
Arvin AlbaresRussiaAmy Elsner NEW
Aika InouyeRussiaIoni Bowcher PROPOSAL
Cody SaylorsGermanyXuxue Feng QUALIFIED
Adams MorascaIndiaStephen Shaw RENEWAL
Juan WieserSpainAsiya Javayant NEW
Ashley DoeUnited KingdomIvan Magalhaes NEW
Isabel BowleyUnited KingdomElwin Sharvill NEGOTIATION
Octavia MaletUnited KingdomAnna Fali QUALIFIED
Cody SaylorsRussiaIoni Bowcher NEW
Emily WhobreyGermanyBernardo Dominic QUALIFIED
Francesco ShinkoGermanyXuxue Feng QUALIFIED
Izzy GarufiFranceAsiya Javayant NEGOTIATION
Smith GlickSpainAnna Fali PROPOSAL
James ButtUnited KingdomOnyama Limba UNQUALIFIED
Sinclair WaycottItalyAmy Elsner NEW
Faith GillianFranceIoni Bowcher UNQUALIFIED
Isabel BowleyIndiaOnyama Limba NEW
Alejandro PerinRussiaAmy Elsner NEGOTIATION
Juan WieserGermanyAmy Elsner RENEWAL
Aruna FigeroaJapanAsiya Javayant NEGOTIATION
Sinclair WaycottSpainIvan Magalhaes QUALIFIED
Antonio CaudyFranceXuxue Feng RENEWAL
Nicolas IturbideFranceOnyama Limba NEGOTIATION
Morrow RutaAustraliaIvan Magalhaes UNQUALIFIED
Smith GlickArgentinaXuxue Feng QUALIFIED
Faith GillianSpainAmy Elsner PROPOSAL
Leja CaldareraIndiaXuxue Feng RENEWAL
Maisha RulapaughCanadaAmy Elsner QUALIFIED
Francesco ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Frozen Columns
Name
Kaitlin Ostrosky
Alejandro Perin
Juan Wieser
Cody Saylors
Maisha Rulapaugh
Jefferson Schemmer
Clifford Rim
Munro Ferencz
Izzy Garufi
Octavia Malet
Isabel Bowley
Wickens Nestle
Tony Foller
Leja Caldarera
Jones Vocelka
Antonio Caudy
Munro Ferencz
Darci Poquette
Faith Gillian
Aika Inouye
Rodrigues Campain
Sinclair Waycott
Izzy Garufi
Francesco Shinko
James Butt
Julie Stenseth
Morrow Ruta
Kaitlin Ostrosky
Stacey Maclead
Darci Poquette
Munro Ferencz
Salvatore Stockham
Juan Wieser
Silvio Slusarski
Rodrigues Campain
Misaki Royster
James Butt
Deepesh Chui
Aika Inouye
Leja Caldarera
Maisha Rulapaugh
Salvatore Stockham
Greenwood Bolognia
James Butt
Isabel Bowley
Silvio Slusarski
Faith Gillian
Darci Poquette
Misaki Royster
Izzy Garufi
IdCountryDate
1000United Kingdom2026-04-23
1001Australia2026-04-19
1002United Kingdom2026-04-12
1003Japan2026-05-03
1004Spain2026-04-18
1005Canada2026-04-27
1006Russia2026-05-03
1007Russia2026-04-30
1008Argentina2026-05-02
1009Australia2026-04-17
1010Russia2026-05-01
1011Germany2026-05-11
1012Canada2026-04-24
1013Argentina2026-05-10
1014Spain2026-04-20
1015Russia2026-04-13
1016Canada2026-04-27
1017Australia2026-04-30
1018France2026-04-27
1019Japan2026-04-25
1020Canada2026-04-22
1021France2026-04-20
1022Brazil2026-05-05
1023Spain2026-04-24
1024Germany2026-04-28
1025Germany2026-05-03
1026Argentina2026-04-15
1027United Kingdom2026-04-30
1028Brazil2026-05-03
1029Brazil2026-05-01
1030Japan2026-05-01
1031Japan2026-05-08
1032Canada2026-04-20
1033Canada2026-04-28
1034Australia2026-04-25
1035Canada2026-04-27
1036United Kingdom2026-05-07
1037Canada2026-05-07
1038India2026-04-15
1039Germany2026-04-23
1040India2026-04-27
1041United Kingdom2026-04-21
1042United Kingdom2026-04-12
1043France2026-05-08
1044Japan2026-04-30
1045Australia2026-05-09
1046Italy2026-05-09
1047Italy2026-04-21
1048Germany2026-04-30
1049Argentina2026-05-10

On-Demand Data

NameIdCountryDate
Faith Gillian1000Spain2026-05-08
Emily Whobrey1001Japan2026-04-20
Alejandro Perin1002Japan2026-04-20
Johnson Sergi1003Canada2026-05-11
Mujtaba Nicka1004France2026-04-19
Adams Morasca1005Italy2026-04-14
Leja Caldarera1006Russia2026-04-22
Salvatore Stockham1007Germany2026-04-30
Aditya Kusko1008India2026-04-30
Jones Vocelka1009India2026-05-09
Emily Whobrey1010United Kingdom2026-04-19
Kaitlin Ostrosky1011Australia2026-05-04
Tony Foller1012United Kingdom2026-05-10
Misaki Royster1013Japan2026-05-05
David Darakjy1014Russia2026-04-30
Isabel Bowley1015Argentina2026-05-10
Maria Marrier1016Italy2026-05-02
Darci Poquette1017Canada2026-04-29
Jefferson Schemmer1018Russia2026-04-20
Maisha Rulapaugh1019Japan2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaCanadaOnyama Limba NEW
Tony FollerRussiaAnna Fali RENEWAL
Smith GlickAustraliaAmy Elsner QUALIFIED
Sinclair WaycottArgentinaAmy Elsner NEW
Mayumi KolmetzIndiaAsiya Javayant RENEWAL
Mayumi KolmetzSpainAmy Elsner RENEWAL
Greenwood BologniaAustraliaElwin Sharvill RENEWAL
Maria MarrierRussiaXuxue Feng RENEWAL
Leja CaldareraBrazilAmy Elsner NEW
Smith GlickCanadaBernardo Dominic PROPOSAL
Darci PoquetteSpainOnyama Limba NEW
Jennifer AmigonJapanAmy Elsner PROPOSAL
Maisha RulapaughUnited KingdomBernardo Dominic QUALIFIED
Clifford RimBrazilOnyama Limba PROPOSAL
Faith GillianJapanAsiya Javayant NEW
Mayumi KolmetzArgentinaAsiya Javayant RENEWAL
Salvatore StockhamCanadaXuxue Feng UNQUALIFIED
Greenwood BologniaJapanAsiya Javayant PROPOSAL
Jeanfrancois VenereBrazilBernardo Dominic UNQUALIFIED
Sinclair WaycottFranceIoni Bowcher NEW
Ivar PaprockiGermanyAmy Elsner PROPOSAL
Claire TollnerIndiaAmy Elsner NEGOTIATION
Costa DilliardAustraliaOnyama Limba QUALIFIED
Cody SaylorsAustraliaElwin Sharvill PROPOSAL
Mujtaba NickaGermanyAsiya Javayant PROPOSAL
Leon OldroydIndiaAnna Fali PROPOSAL
Leja CaldareraJapanAsiya Javayant PROPOSAL
Mayumi KolmetzArgentinaStephen Shaw QUALIFIED
Costa DilliardArgentinaXuxue Feng QUALIFIED
Francesco ShinkoAustraliaAmy Elsner QUALIFIED
Sinclair WaycottAustraliaBernardo Dominic UNQUALIFIED
Rodrigues CampainSpainIvan Magalhaes QUALIFIED
Izzy GarufiItalyAsiya Javayant NEGOTIATION
Ashley DoeBrazilIvan Magalhaes NEGOTIATION
Wickens NestleBrazilAsiya Javayant UNQUALIFIED
Smith GlickGermanyElwin Sharvill PROPOSAL
Maisha RulapaughIndiaXuxue Feng QUALIFIED
David DarakjyFranceAmy Elsner RENEWAL
Nicolas IturbideCanadaStephen Shaw QUALIFIED
Murillo MaletAustraliaAmy Elsner 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>