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
Claire TollnerArgentinaElwin Sharvill NEW
Tony FollerJapanStephen Shaw UNQUALIFIED
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Aika InouyeSpainElwin Sharvill RENEWAL
Salvatore StockhamJapanAmy Elsner NEGOTIATION
Adams MorascaBrazilAnna Fali QUALIFIED
Leja CaldareraJapanStephen Shaw QUALIFIED
Aditya KuskoAustraliaElwin Sharvill NEW
David DarakjyArgentinaStephen Shaw QUALIFIED
Kaitlin OstroskySpainXuxue Feng NEGOTIATION
Kaitlin OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson SchemmerSpainXuxue Feng RENEWAL
Tony FollerItalyAsiya Javayant RENEWAL
Deepesh ChuiGermanyOnyama Limba NEGOTIATION
David DarakjyAustraliaAnna Fali UNQUALIFIED
Leon OldroydUnited KingdomStephen Shaw PROPOSAL
Maisha RulapaughGermanyOnyama Limba NEW
Murillo MaletFranceAnna Fali PROPOSAL
Maisha RulapaughItalyIvan Magalhaes NEGOTIATION
James ButtItalyOnyama Limba QUALIFIED
Cody SaylorsJapanStephen Shaw NEW
Sinclair WaycottJapanBernardo Dominic NEGOTIATION
Jefferson SchemmerUnited KingdomAnna Fali UNQUALIFIED
Adams MorascaSpainStephen Shaw QUALIFIED
Jennifer AmigonItalyStephen Shaw NEW
Claire TollnerSpainAnna Fali PROPOSAL
Rodrigues CampainArgentinaElwin Sharvill QUALIFIED
Costa DilliardCanadaBernardo Dominic PROPOSAL
Wickens NestleAustraliaAnna Fali NEW
Emily WhobreySpainIvan Magalhaes RENEWAL
Mujtaba NickaIndiaOnyama Limba RENEWAL
Kadeem FlosiArgentinaElwin Sharvill UNQUALIFIED
Emily WhobreyGermanyStephen Shaw NEW
Smith GlickIndiaBernardo Dominic QUALIFIED
Antonio CaudyIndiaBernardo Dominic PROPOSAL
Mayumi KolmetzFranceAnna Fali QUALIFIED
Maisha RulapaughGermanyStephen Shaw NEGOTIATION
Cody SaylorsIndiaOnyama Limba PROPOSAL
Alejandro PerinFranceAmy Elsner RENEWAL
Murillo MaletRussiaIoni Bowcher PROPOSAL
Misaki RoysterCanadaXuxue Feng RENEWAL
Ivar PaprockiCanadaOnyama Limba NEW
Wickens NestleUnited KingdomBernardo Dominic NEGOTIATION
Aika InouyeGermanyElwin Sharvill UNQUALIFIED
Munro FerenczIndiaIvan Magalhaes NEW
Munro FerenczArgentinaOnyama Limba QUALIFIED
Kaitlin OstroskyItalyXuxue Feng UNQUALIFIED
Darci PoquetteRussiaAnna Fali NEW
Julie StensethUnited KingdomElwin Sharvill UNQUALIFIED
Juan WieserItalyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiSpainAnna Fali NEGOTIATION
Izzy GarufiUnited KingdomXuxue Feng PROPOSAL
Greenwood BologniaGermanyOnyama Limba RENEWAL
Francesco ShinkoItalyXuxue Feng NEW
Isabel BowleyArgentinaIvan Magalhaes NEGOTIATION
Cody SaylorsFranceXuxue Feng RENEWAL
Alejandro PerinIndiaAsiya Javayant QUALIFIED
Maria MarrierGermanyXuxue Feng QUALIFIED
Sinclair WaycottUnited KingdomAmy Elsner RENEWAL
Maria MarrierAustraliaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereRussia2026-04-15Chemel, James L Cpa UNQUALIFIED37Elwin Sharvill
1001Deepesh ChuiCanada2026-04-10Chemel, James L Cpa NEGOTIATION84Onyama Limba
1002Ashley DoeSpain2026-04-12Truhlar And Truhlar Attys RENEWAL69Amy Elsner
1003Claire TollnerAustralia2026-04-10King, Christopher A Esq RENEWAL84Ivan Magalhaes
1004Faith GillianArgentina2026-04-12Chanay, Jeffrey A Esq NEGOTIATION38Anna Fali
1005Jennifer AmigonUnited Kingdom2026-04-11Buckley Miller Wright PROPOSAL35Ioni Bowcher
1006Deepesh ChuiBrazil2026-04-30Morlong Associates NEGOTIATION36Xuxue Feng
1007Smith GlickSpain2026-04-09Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1008Faith GillianItaly2026-04-05Feiner Bros NEW6Bernardo Dominic
1009Maria MarrierSpain2026-05-02Benton, John B Jr NEGOTIATION42Anna Fali
1010Silvio SlusarskiRussia2026-04-14Truhlar And Truhlar Attys PROPOSAL14Asiya Javayant
1011Chavez BriddickBrazil2026-04-07Feltz Printing Service NEGOTIATION36Asiya Javayant
1012Leon OldroydItaly2026-04-19Benton, John B Jr QUALIFIED90Ivan Magalhaes
1013Salvatore StockhamJapan2026-04-05Benton, John B Jr RENEWAL90Ioni Bowcher
1014Emily WhobreyFrance2026-04-08Commercial Press NEW48Stephen Shaw
1015Silvio SlusarskiArgentina2026-04-09Truhlar And Truhlar Attys NEW24Amy Elsner
1016Maisha RulapaughFrance2026-05-02Benton, John B Jr UNQUALIFIED59Asiya Javayant
1017James ButtCanada2026-04-10Buckley Miller Wright NEGOTIATION76Ioni Bowcher
1018Izzy GarufiArgentina2026-04-15Printing Dimensions RENEWAL43Elwin Sharvill
1019Clifford RimRussia2026-05-02Commercial Press RENEWAL60Onyama Limba
1020Sinclair WaycottAustralia2026-04-04Morlong Associates RENEWAL87Ivan Magalhaes
1021Kaitlin OstroskyIndia2026-04-13Feltz Printing Service NEW90Amy Elsner
1022Johnson SergiArgentina2026-04-10King, Christopher A Esq UNQUALIFIED67Ivan Magalhaes
1023Deepesh ChuiCanada2026-04-24Truhlar And Truhlar Attys RENEWAL47Bernardo Dominic
1024Mujtaba NickaIndia2026-04-17Buckley Miller Wright NEW65Anna Fali
1025Nicolas IturbideCanada2026-04-08Dorl, James J Esq PROPOSAL24Bernardo Dominic
1026Antonio CaudyUnited Kingdom2026-05-02Rousseaux, Michael Esq NEGOTIATION90Ivan Magalhaes
1027Antonio CaudyArgentina2026-04-11King, Christopher A Esq QUALIFIED67Onyama Limba
1028Kadeem FlosiSpain2026-04-22Rangoni Of Florence PROPOSAL40Elwin Sharvill
1029Ricardo GauchoItaly2026-04-24Buckley Miller Wright NEGOTIATION29Ivan Magalhaes
1030James ButtFrance2026-04-11Chanay, Jeffrey A Esq QUALIFIED99Ivan Magalhaes
1031Rodrigues CampainBrazil2026-04-27Rangoni Of Florence QUALIFIED82Elwin Sharvill
1032Antonio CaudySpain2026-04-29King, Christopher A Esq UNQUALIFIED12Elwin Sharvill
1033Isabel BowleyIndia2026-04-21Feltz Printing Service NEW54Stephen Shaw
1034Wickens NestleBrazil2026-04-24Dorl, James J Esq UNQUALIFIED19Ioni Bowcher
1035Maisha RulapaughFrance2026-05-03Feltz Printing Service UNQUALIFIED93Ioni Bowcher
1036Juan WieserItaly2026-04-04King, Christopher A Esq NEW33Ioni Bowcher
1037Murillo MaletBrazil2026-04-19Printing Dimensions NEGOTIATION59Bernardo Dominic
1038Greenwood BologniaAustralia2026-04-18Chemel, James L Cpa NEGOTIATION49Asiya Javayant
1039Clifford RimCanada2026-04-20Chemel, James L Cpa NEW90Xuxue Feng
1040Chavez BriddickFrance2026-04-10Truhlar And Truhlar Attys NEW55Stephen Shaw
1041Silvio SlusarskiFrance2026-04-14Feltz Printing Service PROPOSAL15Xuxue Feng
1042Isabel BowleyGermany2026-04-20Benton, John B Jr PROPOSAL63Onyama Limba
1043Antonio CaudyCanada2026-04-05King, Christopher A Esq RENEWAL29Ivan Magalhaes
1044Stacey MacleadCanada2026-04-19Morlong Associates QUALIFIED19Elwin Sharvill
1045Murillo MaletBrazil2026-04-16Truhlar And Truhlar Attys UNQUALIFIED56Elwin Sharvill
1046Munro FerenczGermany2026-04-18Rousseaux, Michael Esq PROPOSAL13Ivan Magalhaes
1047Juan WieserIndia2026-04-07Printing Dimensions RENEWAL87Asiya Javayant
1048Jones VocelkaAustralia2026-04-18Printing Dimensions NEW59Amy Elsner
1049Adams MorascaSpain2026-05-03Chapman, Ross E Esq UNQUALIFIED98Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaJapanIoni Bowcher QUALIFIED
Morrow RutaArgentinaStephen Shaw NEGOTIATION
Kaitlin OstroskyCanadaXuxue Feng QUALIFIED
Cody SaylorsArgentinaIvan Magalhaes NEGOTIATION
Deepesh ChuiItalyElwin Sharvill NEW
Juan WieserAustraliaOnyama Limba NEGOTIATION
Tony FollerItalyAmy Elsner QUALIFIED
Jones VocelkaFranceAnna Fali NEW
Emily WhobreyBrazilOnyama Limba NEGOTIATION
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Rodrigues CampainIndiaIvan Magalhaes QUALIFIED
Clifford RimFranceAsiya Javayant PROPOSAL
Arvin AlbaresSpainIoni Bowcher PROPOSAL
Mayumi KolmetzGermanyIvan Magalhaes NEGOTIATION
James ButtCanadaAnna Fali UNQUALIFIED
Kadeem FlosiSpainAsiya Javayant NEW
Silvio SlusarskiAustraliaBernardo Dominic NEW
Wickens NestleGermanyIoni Bowcher QUALIFIED
Mayumi KolmetzSpainAnna Fali NEGOTIATION
Maisha RulapaughSpainXuxue Feng RENEWAL
Ricardo GauchoUnited KingdomIvan Magalhaes RENEWAL
Johnson SergiUnited KingdomBernardo Dominic PROPOSAL
Julie StensethSpainAsiya Javayant PROPOSAL
Kadeem FlosiUnited KingdomBernardo Dominic PROPOSAL
Wickens NestleGermanyIoni Bowcher UNQUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali NEW
Greenwood BologniaJapanBernardo Dominic RENEWAL
Claire TollnerBrazilIvan Magalhaes UNQUALIFIED
Mujtaba NickaArgentinaAnna Fali NEGOTIATION
Salvatore StockhamGermanyBernardo Dominic UNQUALIFIED
Aika InouyeFranceElwin Sharvill NEW
Isabel BowleyCanadaIoni Bowcher NEW
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Johnson SergiJapanOnyama Limba NEGOTIATION
Maria MarrierUnited KingdomXuxue Feng PROPOSAL
Claire TollnerCanadaBernardo Dominic PROPOSAL
Kadeem FlosiIndiaIvan Magalhaes PROPOSAL
Aika InouyeItalyStephen Shaw NEGOTIATION
Morrow RutaFranceAmy Elsner QUALIFIED
Leja CaldareraFranceElwin Sharvill QUALIFIED
Arvin AlbaresAustraliaAnna Fali RENEWAL
Kaitlin OstroskyCanadaAnna Fali QUALIFIED
Deepesh ChuiFranceIoni Bowcher QUALIFIED
Rodrigues CampainItalyAsiya Javayant QUALIFIED
Clifford RimJapanIvan Magalhaes RENEWAL
Jefferson SchemmerGermanyAnna Fali UNQUALIFIED
Isabel BowleyBrazilAnna Fali RENEWAL
Morrow RutaArgentinaBernardo Dominic RENEWAL
Faith GillianFranceStephen Shaw QUALIFIED
Ashley DoeArgentinaIvan Magalhaes RENEWAL
Frozen Columns
Name
Jennifer Amigon
Izzy Garufi
Octavia Malet
Kaitlin Ostrosky
Salvatore Stockham
Cody Saylors
Juan Wieser
Isabel Bowley
Costa Dilliard
Smith Glick
Murillo Malet
Wickens Nestle
Darci Poquette
Mayumi Kolmetz
Chavez Briddick
Murillo Malet
Adams Morasca
Rodrigues Campain
Nicolas Iturbide
Mujtaba Nicka
Stacey Maclead
Maisha Rulapaugh
Ivar Paprocki
Sinclair Waycott
Leja Caldarera
James Butt
Rodrigues Campain
Ashley Doe
Maisha Rulapaugh
Arvin Albares
Munro Ferencz
Misaki Royster
Emily Whobrey
Nicolas Iturbide
Ashley Doe
Smith Glick
Mayumi Kolmetz
Kaitlin Ostrosky
Jennifer Amigon
Murillo Malet
Claire Tollner
Aditya Kusko
Leja Caldarera
Leon Oldroyd
Silvio Slusarski
Leon Oldroyd
Darci Poquette
Costa Dilliard
Ashley Doe
Chavez Briddick
IdCountryDate
1000Germany2026-04-15
1001Japan2026-04-13
1002Canada2026-04-15
1003France2026-04-27
1004Brazil2026-04-17
1005Argentina2026-04-16
1006Argentina2026-04-12
1007Germany2026-04-25
1008Argentina2026-04-17
1009Brazil2026-04-27
1010Australia2026-04-13
1011France2026-04-05
1012Argentina2026-04-10
1013Argentina2026-04-08
1014United Kingdom2026-04-11
1015Canada2026-04-19
1016United Kingdom2026-04-14
1017Brazil2026-04-14
1018Spain2026-04-14
1019Canada2026-04-16
1020Brazil2026-04-16
1021United Kingdom2026-04-22
1022Russia2026-04-22
1023Canada2026-04-17
1024Canada2026-04-10
1025Germany2026-04-12
1026Canada2026-04-20
1027United Kingdom2026-04-28
1028Spain2026-04-05
1029France2026-04-14
1030Japan2026-04-21
1031Italy2026-05-02
1032Argentina2026-05-02
1033United Kingdom2026-05-02
1034Australia2026-04-05
1035Australia2026-04-30
1036France2026-04-26
1037Brazil2026-04-04
1038Argentina2026-04-10
1039Japan2026-04-22
1040Australia2026-04-05
1041Japan2026-04-06
1042Japan2026-04-17
1043United Kingdom2026-04-09
1044Spain2026-05-03
1045United Kingdom2026-05-03
1046India2026-04-07
1047India2026-05-03
1048France2026-04-27
1049Russia2026-04-07

On-Demand Data

NameIdCountryDate
Octavia Malet1000Italy2026-04-18
Nicolas Iturbide1001Italy2026-04-15
Stacey Maclead1002Spain2026-04-14
Ricardo Gaucho1003India2026-04-30
Sinclair Waycott1004France2026-04-04
Costa Dilliard1005Argentina2026-04-06
Deepesh Chui1006India2026-04-27
Aika Inouye1007Italy2026-05-03
Octavia Malet1008United Kingdom2026-04-21
Kaitlin Ostrosky1009France2026-04-24
Jeanfrancois Venere1010Brazil2026-04-10
James Butt1011France2026-04-17
Isabel Bowley1012Germany2026-04-30
Cody Saylors1013Italy2026-04-28
Isabel Bowley1014Canada2026-04-14
Jefferson Schemmer1015France2026-04-20
Leja Caldarera1016France2026-04-25
Misaki Royster1017France2026-04-05
Clifford Rim1018Russia2026-04-25
Morrow Ruta1019Japan2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerIndiaStephen Shaw NEGOTIATION
Deepesh ChuiGermanyIoni Bowcher QUALIFIED
Kadeem FlosiFranceAnna Fali QUALIFIED
Claire TollnerGermanyIoni Bowcher PROPOSAL
Jeanfrancois VenereGermanyStephen Shaw RENEWAL
Jones VocelkaItalyStephen Shaw PROPOSAL
Clifford RimItalyAnna Fali NEW
Faith GillianUnited KingdomAsiya Javayant RENEWAL
Morrow RutaJapanStephen Shaw QUALIFIED
Smith GlickArgentinaBernardo Dominic QUALIFIED
Aika InouyeUnited KingdomAmy Elsner UNQUALIFIED
Julie StensethRussiaXuxue Feng RENEWAL
Arvin AlbaresArgentinaElwin Sharvill PROPOSAL
Maria MarrierBrazilAsiya Javayant QUALIFIED
Aika InouyeJapanStephen Shaw QUALIFIED
David DarakjyCanadaStephen Shaw NEGOTIATION
Johnson SergiUnited KingdomBernardo Dominic QUALIFIED
Aruna FigeroaCanadaAnna Fali NEW
Claire TollnerItalyXuxue Feng PROPOSAL
Aditya KuskoUnited KingdomAsiya Javayant NEGOTIATION
Smith GlickBrazilXuxue Feng RENEWAL
Faith GillianRussiaAmy Elsner QUALIFIED
Antonio CaudyUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois VenereGermanyStephen Shaw NEW
Munro FerenczJapanIoni Bowcher PROPOSAL
Misaki RoysterGermanyAmy Elsner NEGOTIATION
Clifford RimJapanIvan Magalhaes RENEWAL
Ricardo GauchoItalyBernardo Dominic NEW
Emily WhobreySpainElwin Sharvill QUALIFIED
Maisha RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Jefferson SchemmerArgentinaElwin Sharvill QUALIFIED
Juan WieserFranceIoni Bowcher UNQUALIFIED
Octavia MaletUnited KingdomStephen Shaw UNQUALIFIED
Wickens NestleBrazilOnyama Limba PROPOSAL
Ricardo GauchoUnited KingdomOnyama Limba NEGOTIATION
Aruna FigeroaSpainOnyama Limba NEGOTIATION
Maria MarrierAustraliaAnna Fali UNQUALIFIED
Johnson SergiRussiaXuxue Feng NEGOTIATION
Claire TollnerJapanAnna Fali UNQUALIFIED
Ivar PaprockiRussiaIoni Bowcher 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>