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
Rodrigues CampainSpainAmy Elsner NEW
James ButtRussiaAmy Elsner UNQUALIFIED
Rodrigues CampainCanadaAsiya Javayant UNQUALIFIED
Ivar PaprockiGermanyXuxue Feng NEW
Morrow RutaSpainIvan Magalhaes RENEWAL
Aika InouyeArgentinaStephen Shaw PROPOSAL
Aditya KuskoUnited KingdomAsiya Javayant NEGOTIATION
Julie StensethIndiaIvan Magalhaes PROPOSAL
Octavia MaletItalyOnyama Limba RENEWAL
Aruna FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba NickaBrazilBernardo Dominic UNQUALIFIED
Nicolas IturbideAustraliaAmy Elsner NEGOTIATION
Antonio CaudyIndiaAmy Elsner NEGOTIATION
Julie StensethArgentinaIvan Magalhaes UNQUALIFIED
Stacey MacleadFranceOnyama Limba UNQUALIFIED
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Ricardo GauchoSpainAmy Elsner UNQUALIFIED
Ivar PaprockiSpainElwin Sharvill UNQUALIFIED
Stacey MacleadGermanyOnyama Limba NEGOTIATION
Emily WhobreyItalyStephen Shaw RENEWAL
Maria MarrierIndiaAsiya Javayant QUALIFIED
Kadeem FlosiRussiaIoni Bowcher RENEWAL
Alejandro PerinSpainAmy Elsner PROPOSAL
Tony FollerJapanElwin Sharvill RENEWAL
Jones VocelkaAustraliaStephen Shaw RENEWAL
Cody SaylorsArgentinaOnyama Limba QUALIFIED
Mayumi KolmetzGermanyElwin Sharvill NEW
Salvatore StockhamUnited KingdomOnyama Limba RENEWAL
Tony FollerBrazilOnyama Limba NEW
Aika InouyeItalyIoni Bowcher QUALIFIED
Misaki RoysterItalyAmy Elsner NEW
Johnson SergiIndiaElwin Sharvill NEGOTIATION
Emily WhobreyGermanyAmy Elsner NEGOTIATION
Isabel BowleyGermanyStephen Shaw NEW
Clifford RimFranceIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoCanadaAmy Elsner RENEWAL
James ButtSpainElwin Sharvill NEW
Izzy GarufiJapanXuxue Feng PROPOSAL
Claire TollnerUnited KingdomOnyama Limba UNQUALIFIED
Octavia MaletBrazilAmy Elsner PROPOSAL
Francesco ShinkoAustraliaStephen Shaw RENEWAL
Mujtaba NickaRussiaIvan Magalhaes UNQUALIFIED
James ButtGermanyElwin Sharvill QUALIFIED
Darci PoquetteCanadaAsiya Javayant RENEWAL
Sinclair WaycottSpainIoni Bowcher NEW
Costa DilliardCanadaIoni Bowcher NEGOTIATION
Jones VocelkaAustraliaAnna Fali QUALIFIED
Smith GlickCanadaAmy Elsner QUALIFIED
Antonio CaudyCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson SchemmerIndiaXuxue Feng UNQUALIFIED
Stacey MacleadRussiaXuxue Feng QUALIFIED
Faith GillianJapanXuxue Feng PROPOSAL
Jeanfrancois VenereItalyAnna Fali NEGOTIATION
Rodrigues CampainIndiaXuxue Feng NEW
Julie StensethArgentinaXuxue Feng NEW
Mujtaba NickaArgentinaIoni Bowcher RENEWAL
David DarakjyArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereBrazilOnyama Limba PROPOSAL
Aruna FigeroaAustraliaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonCanada2026-04-10Chanay, Jeffrey A Esq QUALIFIED68Stephen Shaw
1001Juan WieserAustralia2026-03-31Truhlar And Truhlar Attys QUALIFIED67Elwin Sharvill
1002Leon OldroydGermany2026-03-31Buckley Miller Wright QUALIFIED52Asiya Javayant
1003Cody SaylorsFrance2026-04-20Feltz Printing Service UNQUALIFIED59Xuxue Feng
1004Cody SaylorsUnited Kingdom2026-04-10Chapman, Ross E Esq NEGOTIATION71Ioni Bowcher
1005Maria MarrierCanada2026-04-24Chapman, Ross E Esq QUALIFIED73Ivan Magalhaes
1006Jennifer AmigonUnited Kingdom2026-04-19Buckley Miller Wright PROPOSAL34Xuxue Feng
1007Aditya KuskoJapan2026-04-21Chapman, Ross E Esq RENEWAL15Ivan Magalhaes
1008Julie StensethBrazil2026-04-20Truhlar And Truhlar Attys UNQUALIFIED98Stephen Shaw
1009Maria MarrierFrance2026-04-03Dorl, James J Esq NEGOTIATION41Ioni Bowcher
1010Chavez BriddickIndia2026-04-18Chanay, Jeffrey A Esq RENEWAL89Stephen Shaw
1011Salvatore StockhamSpain2026-03-31Chapman, Ross E Esq NEGOTIATION60Amy Elsner
1012Jefferson SchemmerRussia2026-04-12Chemel, James L Cpa RENEWAL71Anna Fali
1013Kaitlin OstroskyItaly2026-03-26Chanay, Jeffrey A Esq PROPOSAL34Amy Elsner
1014Jennifer AmigonJapan2026-04-20Buckley Miller Wright UNQUALIFIED70Amy Elsner
1015Wickens NestleItaly2026-04-12Chanay, Jeffrey A Esq NEW91Ivan Magalhaes
1016Ashley DoeFrance2026-04-18King, Christopher A Esq PROPOSAL30Anna Fali
1017Aika InouyeAustralia2026-04-12Feiner Bros NEGOTIATION48Ioni Bowcher
1018Antonio CaudyRussia2026-04-06Feltz Printing Service PROPOSAL83Asiya Javayant
1019Chavez BriddickIndia2026-04-19Morlong Associates QUALIFIED97Bernardo Dominic
1020Ashley DoeArgentina2026-03-30Morlong Associates RENEWAL61Asiya Javayant
1021Salvatore StockhamBrazil2026-04-18Commercial Press UNQUALIFIED59Amy Elsner
1022Rodrigues CampainUnited Kingdom2026-04-01Chemel, James L Cpa PROPOSAL70Bernardo Dominic
1023Aika InouyeGermany2026-04-06Feltz Printing Service NEGOTIATION63Asiya Javayant
1024Wickens NestleGermany2026-04-03Commercial Press PROPOSAL74Anna Fali
1025Izzy GarufiCanada2026-03-30Feiner Bros NEW8Stephen Shaw
1026Arvin AlbaresItaly2026-04-24Printing Dimensions PROPOSAL11Onyama Limba
1027Sinclair WaycottJapan2026-04-24Feiner Bros NEGOTIATION76Anna Fali
1028Jeanfrancois VenereBrazil2026-04-11Rousseaux, Michael Esq PROPOSAL84Elwin Sharvill
1029Alejandro PerinIndia2026-03-29Rousseaux, Michael Esq UNQUALIFIED68Anna Fali
1030Darci PoquetteCanada2026-04-21King, Christopher A Esq PROPOSAL49Asiya Javayant
1031Greenwood BologniaSpain2026-04-10Benton, John B Jr NEGOTIATION87Amy Elsner
1032Leja CaldareraJapan2026-04-17Rangoni Of Florence QUALIFIED94Xuxue Feng
1033Ricardo GauchoArgentina2026-04-21King, Christopher A Esq NEW65Elwin Sharvill
1034Cody SaylorsJapan2026-04-02King, Christopher A Esq PROPOSAL26Bernardo Dominic
1035Jeanfrancois VenereItaly2026-04-08Chanay, Jeffrey A Esq NEGOTIATION26Ivan Magalhaes
1036Cody SaylorsFrance2026-03-30Truhlar And Truhlar Attys NEW91Ivan Magalhaes
1037James ButtJapan2026-04-07Rousseaux, Michael Esq NEW93Stephen Shaw
1038Misaki RoysterBrazil2026-04-03Chanay, Jeffrey A Esq UNQUALIFIED81Stephen Shaw
1039Claire TollnerArgentina2026-04-21Printing Dimensions NEW17Elwin Sharvill
1040Cody SaylorsGermany2026-04-21Chanay, Jeffrey A Esq NEGOTIATION66Xuxue Feng
1041Wickens NestleCanada2026-04-09Feltz Printing Service RENEWAL75Amy Elsner
1042Mayumi KolmetzBrazil2026-04-07Chemel, James L Cpa NEGOTIATION0Xuxue Feng
1043Isabel BowleyFrance2026-04-05Truhlar And Truhlar Attys QUALIFIED7Onyama Limba
1044Ricardo GauchoGermany2026-04-12Chanay, Jeffrey A Esq QUALIFIED72Ioni Bowcher
1045Ricardo GauchoUnited Kingdom2026-04-12Chapman, Ross E Esq UNQUALIFIED85Bernardo Dominic
1046Ashley DoeFrance2026-03-29Dorl, James J Esq RENEWAL72Onyama Limba
1047Darci PoquetteSpain2026-04-20Chemel, James L Cpa NEGOTIATION38Onyama Limba
1048Jennifer AmigonJapan2026-04-01Chapman, Ross E Esq NEGOTIATION3Elwin Sharvill
1049Murillo MaletItaly2026-04-23King, Christopher A Esq PROPOSAL17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
David DarakjyItalyOnyama Limba NEW
Deepesh ChuiBrazilStephen Shaw RENEWAL
Arvin AlbaresItalyElwin Sharvill PROPOSAL
Leja CaldareraArgentinaElwin Sharvill NEGOTIATION
Faith GillianBrazilStephen Shaw NEW
Arvin AlbaresBrazilIoni Bowcher NEW
Octavia MaletSpainIoni Bowcher UNQUALIFIED
Aika InouyeCanadaIoni Bowcher PROPOSAL
Mayumi KolmetzArgentinaOnyama Limba PROPOSAL
Jennifer AmigonAustraliaAnna Fali NEGOTIATION
Claire TollnerSpainAnna Fali NEW
Munro FerenczBrazilStephen Shaw RENEWAL
Greenwood BologniaBrazilAnna Fali QUALIFIED
Claire TollnerCanadaOnyama Limba NEGOTIATION
Munro FerenczRussiaAnna Fali RENEWAL
Aditya KuskoAustraliaStephen Shaw UNQUALIFIED
Murillo MaletBrazilIoni Bowcher NEGOTIATION
Izzy GarufiSpainAsiya Javayant UNQUALIFIED
Jefferson SchemmerIndiaAnna Fali UNQUALIFIED
Johnson SergiRussiaXuxue Feng QUALIFIED
Aruna FigeroaBrazilAsiya Javayant PROPOSAL
Mujtaba NickaIndiaBernardo Dominic UNQUALIFIED
Sinclair WaycottBrazilAsiya Javayant RENEWAL
Jones VocelkaRussiaIoni Bowcher UNQUALIFIED
Aditya KuskoItalyElwin Sharvill NEGOTIATION
Ashley DoeCanadaStephen Shaw UNQUALIFIED
Julie StensethGermanyAmy Elsner QUALIFIED
Alejandro PerinAustraliaAsiya Javayant NEGOTIATION
Nicolas IturbideIndiaOnyama Limba NEGOTIATION
Emily WhobreyRussiaAmy Elsner RENEWAL
Munro FerenczUnited KingdomStephen Shaw RENEWAL
Kaitlin OstroskyJapanElwin Sharvill PROPOSAL
Murillo MaletGermanyAnna Fali QUALIFIED
Sinclair WaycottIndiaIoni Bowcher UNQUALIFIED
Aruna FigeroaJapanStephen Shaw UNQUALIFIED
Jeanfrancois VenereBrazilAnna Fali PROPOSAL
Octavia MaletUnited KingdomElwin Sharvill NEW
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
Munro FerenczJapanBernardo Dominic UNQUALIFIED
Jeanfrancois VenereRussiaAsiya Javayant RENEWAL
Sinclair WaycottAustraliaIvan Magalhaes NEW
Darci PoquetteGermanyXuxue Feng PROPOSAL
Nicolas IturbideUnited KingdomIvan Magalhaes PROPOSAL
Antonio CaudySpainAsiya Javayant PROPOSAL
Ricardo GauchoJapanBernardo Dominic UNQUALIFIED
Leon OldroydCanadaElwin Sharvill NEGOTIATION
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Ricardo GauchoFranceAnna Fali UNQUALIFIED
Tony FollerArgentinaOnyama Limba RENEWAL
Stacey MacleadGermanyBernardo Dominic PROPOSAL
Frozen Columns
Name
Leja Caldarera
Jones Vocelka
Ivar Paprocki
Aruna Figeroa
Kaitlin Ostrosky
Chavez Briddick
Rodrigues Campain
Aika Inouye
Julie Stenseth
Arvin Albares
Kadeem Flosi
Wickens Nestle
Kadeem Flosi
Claire Tollner
Leja Caldarera
Darci Poquette
Kaitlin Ostrosky
Mayumi Kolmetz
Salvatore Stockham
Jeanfrancois Venere
Jeanfrancois Venere
Tony Foller
Ricardo Gaucho
Morrow Ruta
Ricardo Gaucho
Ricardo Gaucho
Johnson Sergi
Tony Foller
Cody Saylors
Chavez Briddick
Jones Vocelka
Octavia Malet
Kaitlin Ostrosky
Claire Tollner
Leon Oldroyd
Stacey Maclead
Aditya Kusko
Nicolas Iturbide
Antonio Caudy
Maria Marrier
Silvio Slusarski
Leja Caldarera
Wickens Nestle
Misaki Royster
Ricardo Gaucho
Wickens Nestle
Adams Morasca
Leja Caldarera
Sinclair Waycott
Leon Oldroyd
IdCountryDate
1000India2026-04-21
1001Spain2026-04-05
1002Canada2026-04-17
1003Brazil2026-04-23
1004Argentina2026-03-30
1005Italy2026-03-31
1006Italy2026-03-30
1007Spain2026-04-08
1008Italy2026-04-17
1009Argentina2026-04-20
1010Argentina2026-04-24
1011Argentina2026-04-04
1012Spain2026-04-17
1013Japan2026-04-02
1014India2026-04-01
1015India2026-04-06
1016France2026-04-06
1017Italy2026-04-07
1018Russia2026-04-12
1019India2026-04-02
1020Japan2026-04-02
1021Italy2026-04-24
1022Argentina2026-04-24
1023Spain2026-04-17
1024Australia2026-04-20
1025Japan2026-04-03
1026Germany2026-04-03
1027Japan2026-04-22
1028Brazil2026-04-16
1029Canada2026-04-08
1030Germany2026-04-04
1031Russia2026-04-13
1032Argentina2026-04-22
1033Japan2026-04-16
1034Brazil2026-04-02
1035India2026-04-17
1036Australia2026-03-26
1037Japan2026-04-24
1038Germany2026-04-14
1039France2026-04-17
1040Spain2026-04-15
1041Japan2026-04-23
1042Spain2026-04-10
1043Canada2026-04-01
1044India2026-04-23
1045Japan2026-04-05
1046Russia2026-04-04
1047Brazil2026-03-31
1048France2026-04-17
1049Germany2026-03-31

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Brazil2026-04-20
Salvatore Stockham1001India2026-04-04
James Butt1002United Kingdom2026-04-13
Leon Oldroyd1003United Kingdom2026-04-10
Smith Glick1004Russia2026-03-27
Alejandro Perin1005Australia2026-04-12
Clifford Rim1006India2026-03-31
Deepesh Chui1007Argentina2026-04-19
Ashley Doe1008United Kingdom2026-04-19
Octavia Malet1009Russia2026-04-23
Mayumi Kolmetz1010Japan2026-04-02
Leja Caldarera1011Canada2026-04-02
Aika Inouye1012India2026-04-07
Emily Whobrey1013Japan2026-04-16
Costa Dilliard1014Russia2026-03-30
Murillo Malet1015Russia2026-03-26
Claire Tollner1016Russia2026-04-06
Julie Stenseth1017France2026-04-06
Claire Tollner1018Japan2026-04-02
Ivar Paprocki1019Brazil2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaRussiaXuxue Feng PROPOSAL
Octavia MaletSpainBernardo Dominic UNQUALIFIED
Jeanfrancois VenereBrazilAmy Elsner PROPOSAL
Munro FerenczSpainOnyama Limba UNQUALIFIED
Aika InouyeItalyAsiya Javayant RENEWAL
Emily WhobreyRussiaBernardo Dominic QUALIFIED
Adams MorascaUnited KingdomIoni Bowcher PROPOSAL
Faith GillianAustraliaBernardo Dominic NEW
Antonio CaudyItalyAsiya Javayant QUALIFIED
Sinclair WaycottAustraliaAsiya Javayant QUALIFIED
Misaki RoysterSpainAsiya Javayant NEW
Silvio SlusarskiJapanAnna Fali NEGOTIATION
Octavia MaletJapanAnna Fali NEGOTIATION
Isabel BowleyAustraliaXuxue Feng UNQUALIFIED
Aika InouyeGermanyIvan Magalhaes PROPOSAL
Kadeem FlosiCanadaAnna Fali NEW
Ashley DoeFranceStephen Shaw PROPOSAL
Maria MarrierGermanyAnna Fali NEW
Octavia MaletAustraliaIoni Bowcher NEGOTIATION
Aruna FigeroaCanadaIoni Bowcher RENEWAL
Chavez BriddickFranceIoni Bowcher PROPOSAL
Rodrigues CampainJapanBernardo Dominic PROPOSAL
Maria MarrierCanadaBernardo Dominic NEW
Izzy GarufiArgentinaOnyama Limba NEGOTIATION
Morrow RutaAustraliaIoni Bowcher PROPOSAL
Ashley DoeFranceXuxue Feng UNQUALIFIED
Antonio CaudyCanadaIvan Magalhaes NEW
Leja CaldareraIndiaBernardo Dominic NEGOTIATION
Clifford RimIndiaAnna Fali QUALIFIED
Sinclair WaycottCanadaBernardo Dominic UNQUALIFIED
Tony FollerCanadaAnna Fali QUALIFIED
Sinclair WaycottAustraliaAnna Fali NEW
Wickens NestleGermanyElwin Sharvill PROPOSAL
Rodrigues CampainSpainBernardo Dominic QUALIFIED
Smith GlickCanadaOnyama Limba UNQUALIFIED
Clifford RimGermanyBernardo Dominic NEGOTIATION
Greenwood BologniaUnited KingdomIoni Bowcher NEGOTIATION
Leon OldroydFranceOnyama Limba NEGOTIATION
Costa DilliardBrazilAmy Elsner NEGOTIATION
Ricardo GauchoArgentinaIoni Bowcher RENEWAL

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