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
Sinclair WaycottGermanyBernardo Dominic UNQUALIFIED
Chavez BriddickItalyAsiya Javayant QUALIFIED
Jones VocelkaFranceIvan Magalhaes NEW
Isabel BowleyAustraliaAsiya Javayant NEW
Ivar PaprockiCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereArgentinaAsiya Javayant NEW
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Maria MarrierFranceStephen Shaw RENEWAL
Smith GlickSpainAnna Fali QUALIFIED
Salvatore StockhamCanadaStephen Shaw RENEWAL
Aruna FigeroaArgentinaAnna Fali PROPOSAL
Maisha RulapaughFranceIoni Bowcher RENEWAL
Emily WhobreyIndiaAmy Elsner NEW
Jones VocelkaSpainIvan Magalhaes QUALIFIED
Francesco ShinkoFranceIoni Bowcher RENEWAL
Stacey MacleadBrazilIvan Magalhaes UNQUALIFIED
Salvatore StockhamRussiaAnna Fali NEGOTIATION
Octavia MaletAustraliaIoni Bowcher NEW
Jennifer AmigonCanadaStephen Shaw NEW
Octavia MaletItalyAnna Fali NEW
Jeanfrancois VenereArgentinaIvan Magalhaes NEGOTIATION
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Mayumi KolmetzCanadaIoni Bowcher QUALIFIED
Aruna FigeroaIndiaIvan Magalhaes UNQUALIFIED
Sinclair WaycottGermanyOnyama Limba NEGOTIATION
Adams MorascaIndiaBernardo Dominic PROPOSAL
Costa DilliardJapanElwin Sharvill RENEWAL
Kadeem FlosiJapanAsiya Javayant RENEWAL
Kadeem FlosiArgentinaXuxue Feng PROPOSAL
Jones VocelkaRussiaStephen Shaw RENEWAL
Jennifer AmigonRussiaStephen Shaw UNQUALIFIED
Emily WhobreyFranceOnyama Limba UNQUALIFIED
Ashley DoeUnited KingdomElwin Sharvill QUALIFIED
Clifford RimIndiaStephen Shaw UNQUALIFIED
Sinclair WaycottIndiaAnna Fali QUALIFIED
David DarakjySpainStephen Shaw RENEWAL
Aika InouyeAustraliaAnna Fali QUALIFIED
Sinclair WaycottRussiaAmy Elsner QUALIFIED
Maisha RulapaughGermanyIoni Bowcher PROPOSAL
Wickens NestleIndiaElwin Sharvill UNQUALIFIED
Aika InouyeGermanyStephen Shaw QUALIFIED
Arvin AlbaresBrazilXuxue Feng NEGOTIATION
Faith GillianRussiaOnyama Limba NEGOTIATION
Kaitlin OstroskyItalyIoni Bowcher UNQUALIFIED
Leon OldroydItalyAsiya Javayant RENEWAL
Kaitlin OstroskyGermanyIoni Bowcher PROPOSAL
Mayumi KolmetzJapanStephen Shaw NEGOTIATION
Jones VocelkaBrazilIoni Bowcher RENEWAL
Ricardo GauchoRussiaIvan Magalhaes PROPOSAL
Jeanfrancois VenereUnited KingdomStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonAustraliaIoni Bowcher RENEWAL
Izzy GarufiBrazilAnna Fali PROPOSAL
Deepesh ChuiBrazilStephen Shaw RENEWAL
Deepesh ChuiIndiaBernardo Dominic UNQUALIFIED
Octavia MaletCanadaIoni Bowcher UNQUALIFIED
Morrow RutaUnited KingdomXuxue Feng QUALIFIED
Darci PoquetteFranceBernardo Dominic UNQUALIFIED
Deepesh ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Wickens NestleItalyIoni Bowcher QUALIFIED
Rodrigues CampainSpainAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianUnited Kingdom2026-04-07Feiner Bros NEGOTIATION38Onyama Limba
1001Isabel BowleyIndia2026-04-04Dorl, James J Esq QUALIFIED65Elwin Sharvill
1002Izzy GarufiItaly2026-04-02Chanay, Jeffrey A Esq UNQUALIFIED2Ivan Magalhaes
1003Isabel BowleyIndia2026-03-29Benton, John B Jr NEW67Stephen Shaw
1004Juan WieserRussia2026-04-04Commercial Press UNQUALIFIED78Ivan Magalhaes
1005Munro FerenczSpain2026-04-09Dorl, James J Esq NEW15Amy Elsner
1006Octavia MaletRussia2026-03-25Rousseaux, Michael Esq QUALIFIED91Anna Fali
1007Nicolas IturbideUnited Kingdom2026-04-05Chanay, Jeffrey A Esq NEW43Onyama Limba
1008David DarakjyGermany2026-04-13Chapman, Ross E Esq QUALIFIED38Bernardo Dominic
1009Jones VocelkaUnited Kingdom2026-04-19Printing Dimensions NEW71Ioni Bowcher
1010Deepesh ChuiBrazil2026-04-03King, Christopher A Esq RENEWAL48Asiya Javayant
1011Smith GlickCanada2026-03-26Benton, John B Jr UNQUALIFIED35Ioni Bowcher
1012Sinclair WaycottRussia2026-04-06Benton, John B Jr NEW98Ioni Bowcher
1013Salvatore StockhamIndia2026-04-12Commercial Press RENEWAL5Anna Fali
1014Mayumi KolmetzItaly2026-04-08Rangoni Of Florence RENEWAL25Amy Elsner
1015Leja CaldareraGermany2026-04-14Printing Dimensions UNQUALIFIED76Elwin Sharvill
1016James ButtIndia2026-04-09Rangoni Of Florence PROPOSAL64Ivan Magalhaes
1017Chavez BriddickSpain2026-04-02Chemel, James L Cpa NEGOTIATION36Xuxue Feng
1018Leon OldroydJapan2026-03-29Benton, John B Jr PROPOSAL96Ioni Bowcher
1019Isabel BowleyRussia2026-03-26Benton, John B Jr NEW34Amy Elsner
1020Nicolas IturbideUnited Kingdom2026-04-05Feiner Bros NEW28Ivan Magalhaes
1021Aruna FigeroaFrance2026-04-18Benton, John B Jr NEGOTIATION61Ioni Bowcher
1022James ButtCanada2026-04-07Rangoni Of Florence RENEWAL91Asiya Javayant
1023Jennifer AmigonCanada2026-04-20Chapman, Ross E Esq RENEWAL81Elwin Sharvill
1024Misaki RoysterUnited Kingdom2026-04-05Truhlar And Truhlar Attys QUALIFIED52Ioni Bowcher
1025Aditya KuskoUnited Kingdom2026-04-17Chemel, James L Cpa NEGOTIATION4Onyama Limba
1026Antonio CaudyUnited Kingdom2026-03-27Rangoni Of Florence RENEWAL41Bernardo Dominic
1027Kaitlin OstroskyCanada2026-03-27Chapman, Ross E Esq QUALIFIED21Asiya Javayant
1028Mayumi KolmetzRussia2026-03-31Rousseaux, Michael Esq QUALIFIED86Ioni Bowcher
1029Stacey MacleadAustralia2026-04-01King, Christopher A Esq QUALIFIED36Elwin Sharvill
1030Mujtaba NickaUnited Kingdom2026-03-25Chapman, Ross E Esq QUALIFIED13Ioni Bowcher
1031Arvin AlbaresIndia2026-03-27Chapman, Ross E Esq PROPOSAL55Elwin Sharvill
1032Ashley DoeCanada2026-04-11Rousseaux, Michael Esq NEW67Anna Fali
1033Greenwood BologniaSpain2026-04-21Feiner Bros RENEWAL91Amy Elsner
1034Clifford RimIndia2026-04-01Benton, John B Jr QUALIFIED45Elwin Sharvill
1035Johnson SergiArgentina2026-03-30Feiner Bros QUALIFIED91Ioni Bowcher
1036Greenwood BologniaSpain2026-03-27Feltz Printing Service RENEWAL13Stephen Shaw
1037Adams MorascaUnited Kingdom2026-04-07Chapman, Ross E Esq QUALIFIED31Elwin Sharvill
1038Juan WieserFrance2026-03-25Chemel, James L Cpa NEGOTIATION54Anna Fali
1039Salvatore StockhamJapan2026-03-27Dorl, James J Esq RENEWAL49Bernardo Dominic
1040Adams MorascaAustralia2026-04-05Feiner Bros PROPOSAL24Bernardo Dominic
1041Jennifer AmigonJapan2026-04-14Chapman, Ross E Esq NEW52Elwin Sharvill
1042Salvatore StockhamGermany2026-04-13Commercial Press RENEWAL13Asiya Javayant
1043Salvatore StockhamAustralia2026-03-25Dorl, James J Esq QUALIFIED9Amy Elsner
1044Darci PoquetteIndia2026-04-17Benton, John B Jr NEW10Onyama Limba
1045Claire TollnerItaly2026-03-25Chanay, Jeffrey A Esq NEW51Stephen Shaw
1046Mujtaba NickaJapan2026-04-05King, Christopher A Esq PROPOSAL2Elwin Sharvill
1047Rodrigues CampainIndia2026-04-04Rangoni Of Florence NEW58Anna Fali
1048Octavia MaletBrazil2026-03-30Chapman, Ross E Esq UNQUALIFIED69Amy Elsner
1049Ricardo GauchoArgentina2026-03-26Truhlar And Truhlar Attys NEGOTIATION75Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereArgentinaAnna Fali UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba PROPOSAL
Cody SaylorsBrazilElwin Sharvill PROPOSAL
Deepesh ChuiArgentinaStephen Shaw NEW
Murillo MaletCanadaXuxue Feng PROPOSAL
Faith GillianGermanyAsiya Javayant UNQUALIFIED
Jones VocelkaBrazilIoni Bowcher RENEWAL
Clifford RimRussiaAnna Fali PROPOSAL
Aditya KuskoUnited KingdomOnyama Limba NEW
Izzy GarufiUnited KingdomXuxue Feng NEW
Silvio SlusarskiIndiaAnna Fali RENEWAL
Francesco ShinkoJapanIoni Bowcher PROPOSAL
Ashley DoeIndiaStephen Shaw NEGOTIATION
Alejandro PerinAustraliaElwin Sharvill NEGOTIATION
Jennifer AmigonJapanAmy Elsner NEW
Isabel BowleyArgentinaIvan Magalhaes NEW
Munro FerenczSpainStephen Shaw UNQUALIFIED
Morrow RutaSpainIoni Bowcher NEGOTIATION
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Costa DilliardItalyIoni Bowcher UNQUALIFIED
Aditya KuskoFranceElwin Sharvill UNQUALIFIED
Darci PoquetteUnited KingdomStephen Shaw NEW
Mujtaba NickaArgentinaAsiya Javayant QUALIFIED
Antonio CaudyUnited KingdomAmy Elsner QUALIFIED
Morrow RutaRussiaOnyama Limba NEGOTIATION
Ivar PaprockiArgentinaAmy Elsner UNQUALIFIED
Wickens NestleRussiaAsiya Javayant NEGOTIATION
Leon OldroydAustraliaIvan Magalhaes RENEWAL
Munro FerenczGermanyOnyama Limba UNQUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali UNQUALIFIED
Claire TollnerRussiaAmy Elsner RENEWAL
Clifford RimArgentinaOnyama Limba QUALIFIED
Antonio CaudyUnited KingdomOnyama Limba PROPOSAL
Darci PoquetteSpainElwin Sharvill QUALIFIED
Misaki RoysterRussiaAnna Fali RENEWAL
Wickens NestleSpainOnyama Limba PROPOSAL
Stacey MacleadRussiaAnna Fali RENEWAL
Adams MorascaItalyElwin Sharvill NEGOTIATION
Izzy GarufiArgentinaAsiya Javayant UNQUALIFIED
Ashley DoeUnited KingdomOnyama Limba PROPOSAL
Rodrigues CampainJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraIndiaIoni Bowcher NEGOTIATION
Silvio SlusarskiSpainIvan Magalhaes RENEWAL
Julie StensethGermanyXuxue Feng PROPOSAL
Adams MorascaArgentinaXuxue Feng UNQUALIFIED
Costa DilliardUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiCanadaIoni Bowcher QUALIFIED
Chavez BriddickJapanXuxue Feng RENEWAL
Adams MorascaSpainIvan Magalhaes PROPOSAL
Wickens NestleIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Johnson Sergi
Jefferson Schemmer
Jeanfrancois Venere
David Darakjy
Rodrigues Campain
Octavia Malet
Kadeem Flosi
Tony Foller
Julie Stenseth
Silvio Slusarski
Silvio Slusarski
Maria Marrier
Adams Morasca
Claire Tollner
Francesco Shinko
Maria Marrier
Johnson Sergi
Kaitlin Ostrosky
Faith Gillian
Misaki Royster
Stacey Maclead
Francesco Shinko
Morrow Ruta
Alejandro Perin
Munro Ferencz
Wickens Nestle
Ivar Paprocki
Smith Glick
Rodrigues Campain
Cody Saylors
Faith Gillian
Greenwood Bolognia
Wickens Nestle
Antonio Caudy
Mujtaba Nicka
Mujtaba Nicka
Ivar Paprocki
Izzy Garufi
Ricardo Gaucho
Cody Saylors
Faith Gillian
Maisha Rulapaugh
Adams Morasca
Salvatore Stockham
Antonio Caudy
Jefferson Schemmer
Sinclair Waycott
Darci Poquette
Costa Dilliard
Kadeem Flosi
IdCountryDate
1000Germany2026-04-15
1001France2026-03-31
1002Russia2026-04-16
1003United Kingdom2026-04-11
1004Italy2026-04-19
1005Argentina2026-04-20
1006Japan2026-04-10
1007Russia2026-04-11
1008Germany2026-04-16
1009France2026-04-03
1010United Kingdom2026-03-29
1011Australia2026-04-04
1012United Kingdom2026-04-03
1013Russia2026-03-29
1014Argentina2026-03-30
1015Canada2026-04-05
1016France2026-04-06
1017Germany2026-03-27
1018Argentina2026-04-09
1019India2026-04-10
1020India2026-04-05
1021United Kingdom2026-03-27
1022Argentina2026-03-30
1023Australia2026-04-05
1024Spain2026-04-16
1025Russia2026-04-22
1026Argentina2026-03-28
1027Australia2026-04-19
1028Australia2026-04-10
1029Russia2026-04-06
1030Spain2026-04-08
1031Russia2026-04-09
1032Russia2026-04-14
1033Canada2026-04-16
1034Spain2026-04-21
1035Japan2026-04-01
1036India2026-04-04
1037Spain2026-04-08
1038Russia2026-04-11
1039Brazil2026-04-05
1040Spain2026-04-05
1041Germany2026-04-08
1042Japan2026-03-31
1043Japan2026-04-20
1044Argentina2026-04-09
1045Italy2026-04-13
1046Brazil2026-03-25
1047India2026-04-02
1048Brazil2026-04-02
1049Japan2026-04-03

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000Brazil2026-03-27
Kaitlin Ostrosky1001India2026-04-10
Wickens Nestle1002Germany2026-04-01
Deepesh Chui1003France2026-04-08
Misaki Royster1004Russia2026-04-06
Chavez Briddick1005Canada2026-04-11
Octavia Malet1006Italy2026-03-29
James Butt1007Japan2026-03-27
Johnson Sergi1008Italy2026-04-22
Maria Marrier1009Australia2026-04-12
Ricardo Gaucho1010Australia2026-04-18
Isabel Bowley1011Japan2026-04-15
Arvin Albares1012Argentina2026-04-01
Octavia Malet1013Germany2026-03-31
Jeanfrancois Venere1014Italy2026-04-06
Jeanfrancois Venere1015Japan2026-03-27
Jeanfrancois Venere1016Italy2026-04-14
Alejandro Perin1017Australia2026-04-17
Cody Saylors1018Germany2026-04-21
Clifford Rim1019United Kingdom2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyCanadaAsiya Javayant QUALIFIED
Darci PoquetteBrazilIoni Bowcher RENEWAL
Greenwood BologniaBrazilXuxue Feng NEGOTIATION
Johnson SergiSpainXuxue Feng UNQUALIFIED
Adams MorascaRussiaAnna Fali PROPOSAL
Deepesh ChuiFranceAnna Fali NEGOTIATION
Greenwood BologniaItalyIoni Bowcher PROPOSAL
Aruna FigeroaJapanStephen Shaw NEW
Deepesh ChuiJapanAmy Elsner PROPOSAL
Leon OldroydFranceIvan Magalhaes NEGOTIATION
Faith GillianGermanyIvan Magalhaes PROPOSAL
Alejandro PerinGermanyIvan Magalhaes NEW
Smith GlickUnited KingdomXuxue Feng NEW
Claire TollnerCanadaAsiya Javayant UNQUALIFIED
Alejandro PerinAustraliaStephen Shaw QUALIFIED
Salvatore StockhamBrazilAnna Fali UNQUALIFIED
Alejandro PerinBrazilIoni Bowcher RENEWAL
Salvatore StockhamIndiaAsiya Javayant PROPOSAL
Stacey MacleadRussiaAsiya Javayant UNQUALIFIED
Deepesh ChuiUnited KingdomAmy Elsner NEGOTIATION
Isabel BowleyBrazilOnyama Limba RENEWAL
Johnson SergiJapanElwin Sharvill QUALIFIED
Faith GillianFranceAnna Fali NEW
Jeanfrancois VenereGermanyAnna Fali NEGOTIATION
Kadeem FlosiCanadaXuxue Feng NEGOTIATION
Julie StensethUnited KingdomAmy Elsner NEGOTIATION
Costa DilliardArgentinaAnna Fali PROPOSAL
Jennifer AmigonAustraliaElwin Sharvill UNQUALIFIED
James ButtAustraliaElwin Sharvill RENEWAL
Octavia MaletBrazilIoni Bowcher QUALIFIED
Misaki RoysterAustraliaStephen Shaw UNQUALIFIED
Chavez BriddickSpainOnyama Limba PROPOSAL
Maisha RulapaughFranceIoni Bowcher PROPOSAL
Aditya KuskoRussiaStephen Shaw QUALIFIED
Mujtaba NickaAustraliaXuxue Feng NEW
James ButtUnited KingdomAmy Elsner NEGOTIATION
Nicolas IturbideCanadaAnna Fali NEGOTIATION
Antonio CaudyCanadaStephen Shaw NEW
Sinclair WaycottAustraliaIvan Magalhaes NEW
Misaki RoysterIndiaAsiya Javayant NEGOTIATION

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