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
Alejandro PerinFranceAsiya Javayant NEGOTIATION
Sinclair WaycottBrazilXuxue Feng UNQUALIFIED
Silvio SlusarskiGermanyElwin Sharvill UNQUALIFIED
Emily WhobreyRussiaBernardo Dominic UNQUALIFIED
Cody SaylorsAustraliaXuxue Feng QUALIFIED
Costa DilliardGermanyElwin Sharvill QUALIFIED
Mayumi KolmetzJapanBernardo Dominic NEGOTIATION
Munro FerenczJapanBernardo Dominic UNQUALIFIED
Clifford RimAustraliaAsiya Javayant UNQUALIFIED
Tony FollerAustraliaIvan Magalhaes NEGOTIATION
Arvin AlbaresItalyStephen Shaw PROPOSAL
Morrow RutaIndiaElwin Sharvill RENEWAL
Sinclair WaycottFranceAnna Fali PROPOSAL
Aika InouyeUnited KingdomStephen Shaw NEGOTIATION
Smith GlickCanadaBernardo Dominic PROPOSAL
Adams MorascaRussiaIoni Bowcher PROPOSAL
Aruna FigeroaGermanyAmy Elsner NEGOTIATION
Silvio SlusarskiBrazilOnyama Limba UNQUALIFIED
Greenwood BologniaArgentinaElwin Sharvill NEW
Kaitlin OstroskyBrazilElwin Sharvill QUALIFIED
Octavia MaletJapanStephen Shaw RENEWAL
Jennifer AmigonBrazilIvan Magalhaes UNQUALIFIED
Smith GlickFranceAmy Elsner NEGOTIATION
Costa DilliardArgentinaAsiya Javayant RENEWAL
Nicolas IturbideArgentinaOnyama Limba QUALIFIED
Francesco ShinkoSpainXuxue Feng NEW
Jefferson SchemmerGermanyBernardo Dominic NEW
Maisha RulapaughBrazilBernardo Dominic RENEWAL
Mayumi KolmetzJapanAsiya Javayant QUALIFIED
Aika InouyeCanadaIvan Magalhaes UNQUALIFIED
David DarakjyCanadaAnna Fali UNQUALIFIED
Costa DilliardGermanyAnna Fali UNQUALIFIED
Deepesh ChuiAustraliaXuxue Feng NEGOTIATION
Chavez BriddickGermanyElwin Sharvill QUALIFIED
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Costa DilliardAustraliaIvan Magalhaes QUALIFIED
Darci PoquetteCanadaStephen Shaw QUALIFIED
Ricardo GauchoArgentinaBernardo Dominic NEGOTIATION
Costa DilliardBrazilIoni Bowcher PROPOSAL
Adams MorascaArgentinaAmy Elsner QUALIFIED
Aika InouyeArgentinaAnna Fali UNQUALIFIED
Morrow RutaArgentinaBernardo Dominic RENEWAL
Cody SaylorsIndiaXuxue Feng UNQUALIFIED
Clifford RimSpainXuxue Feng QUALIFIED
Kaitlin OstroskyRussiaAmy Elsner UNQUALIFIED
Jones VocelkaItalyIoni Bowcher RENEWAL
Claire TollnerGermanyElwin Sharvill UNQUALIFIED
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Mujtaba NickaRussiaXuxue Feng UNQUALIFIED
Arvin AlbaresSpainXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiAustraliaStephen Shaw QUALIFIED
Alejandro PerinSpainAmy Elsner RENEWAL
Nicolas IturbideCanadaAnna Fali RENEWAL
Claire TollnerItalyElwin Sharvill NEW
Claire TollnerUnited KingdomAsiya Javayant QUALIFIED
Tony FollerItalyBernardo Dominic UNQUALIFIED
Jones VocelkaBrazilAnna Fali RENEWAL
Juan WieserUnited KingdomStephen Shaw QUALIFIED
Izzy GarufiItalyXuxue Feng RENEWAL
Costa DilliardIndiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci PoquetteFrance2026-04-16Chemel, James L Cpa NEW12Ioni Bowcher
1001Darci PoquetteUnited Kingdom2026-04-17Commercial Press QUALIFIED2Ioni Bowcher
1002Ivar PaprockiRussia2026-03-26Printing Dimensions UNQUALIFIED23Onyama Limba
1003Izzy GarufiGermany2026-04-16Morlong Associates NEW57Onyama Limba
1004Misaki RoysterAustralia2026-04-01Printing Dimensions RENEWAL24Bernardo Dominic
1005Misaki RoysterItaly2026-03-23Benton, John B Jr PROPOSAL36Ivan Magalhaes
1006Munro FerenczArgentina2026-04-16Printing Dimensions RENEWAL38Elwin Sharvill
1007Ashley DoeAustralia2026-03-29Chemel, James L Cpa PROPOSAL2Ivan Magalhaes
1008Costa DilliardItaly2026-04-11Truhlar And Truhlar Attys PROPOSAL33Stephen Shaw
1009Maria MarrierSpain2026-03-27Feltz Printing Service PROPOSAL90Stephen Shaw
1010Deepesh ChuiGermany2026-04-11King, Christopher A Esq UNQUALIFIED66Onyama Limba
1011Rodrigues CampainUnited Kingdom2026-03-23King, Christopher A Esq RENEWAL48Asiya Javayant
1012Isabel BowleyArgentina2026-04-10Dorl, James J Esq NEW56Bernardo Dominic
1013Mujtaba NickaArgentina2026-03-31Dorl, James J Esq UNQUALIFIED57Bernardo Dominic
1014Murillo MaletAustralia2026-04-14Truhlar And Truhlar Attys NEGOTIATION40Amy Elsner
1015Ricardo GauchoArgentina2026-04-06Printing Dimensions PROPOSAL87Elwin Sharvill
1016Munro FerenczAustralia2026-04-12Morlong Associates UNQUALIFIED21Asiya Javayant
1017Juan WieserItaly2026-04-10Chapman, Ross E Esq NEGOTIATION36Anna Fali
1018Murillo MaletIndia2026-04-08Dorl, James J Esq RENEWAL34Amy Elsner
1019Maria MarrierIndia2026-04-06Feiner Bros NEGOTIATION69Elwin Sharvill
1020Tony FollerIndia2026-03-30Feltz Printing Service RENEWAL86Ivan Magalhaes
1021Kadeem FlosiRussia2026-04-10Feiner Bros UNQUALIFIED61Elwin Sharvill
1022Antonio CaudyUnited Kingdom2026-03-25Truhlar And Truhlar Attys NEW80Onyama Limba
1023Leon OldroydSpain2026-04-12Buckley Miller Wright QUALIFIED91Elwin Sharvill
1024Ricardo GauchoItaly2026-04-01Rousseaux, Michael Esq NEW21Asiya Javayant
1025Alejandro PerinSpain2026-04-17Morlong Associates UNQUALIFIED64Elwin Sharvill
1026James ButtIndia2026-04-11Rousseaux, Michael Esq UNQUALIFIED53Asiya Javayant
1027Silvio SlusarskiArgentina2026-04-12Commercial Press NEW22Ioni Bowcher
1028Maria MarrierJapan2026-04-04Feiner Bros NEGOTIATION4Ivan Magalhaes
1029Sinclair WaycottAustralia2026-04-07Feltz Printing Service NEW18Ioni Bowcher
1030Alejandro PerinBrazil2026-04-04Truhlar And Truhlar Attys NEW45Amy Elsner
1031David DarakjyArgentina2026-03-28Printing Dimensions NEW73Xuxue Feng
1032Julie StensethSpain2026-04-20Commercial Press PROPOSAL81Ivan Magalhaes
1033Jeanfrancois VenereGermany2026-04-16Feiner Bros UNQUALIFIED28Bernardo Dominic
1034Costa DilliardJapan2026-03-29Chanay, Jeffrey A Esq QUALIFIED65Onyama Limba
1035Isabel BowleyCanada2026-04-09Chanay, Jeffrey A Esq NEGOTIATION42Bernardo Dominic
1036Kaitlin OstroskyRussia2026-03-24Chemel, James L Cpa RENEWAL7Amy Elsner
1037Aruna FigeroaItaly2026-04-15Rangoni Of Florence QUALIFIED22Xuxue Feng
1038Kadeem FlosiItaly2026-04-05Rangoni Of Florence RENEWAL20Amy Elsner
1039Aruna FigeroaJapan2026-03-25Chapman, Ross E Esq NEGOTIATION75Onyama Limba
1040Alejandro PerinAustralia2026-03-29Morlong Associates RENEWAL30Onyama Limba
1041Wickens NestleBrazil2026-04-06King, Christopher A Esq NEGOTIATION88Amy Elsner
1042Emily WhobreyAustralia2026-04-16Truhlar And Truhlar Attys QUALIFIED17Ivan Magalhaes
1043Francesco ShinkoJapan2026-03-24Rousseaux, Michael Esq UNQUALIFIED62Xuxue Feng
1044James ButtIndia2026-04-01Chanay, Jeffrey A Esq NEW35Ivan Magalhaes
1045Misaki RoysterAustralia2026-04-03Benton, John B Jr RENEWAL85Stephen Shaw
1046Leon OldroydRussia2026-04-04Chemel, James L Cpa PROPOSAL49Bernardo Dominic
1047Maria MarrierArgentina2026-03-25Commercial Press PROPOSAL88Elwin Sharvill
1048Ivar PaprockiCanada2026-04-05Buckley Miller Wright PROPOSAL91Anna Fali
1049Julie StensethBrazil2026-04-18Buckley Miller Wright RENEWAL16Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamJapanStephen Shaw RENEWAL
Aditya KuskoGermanyOnyama Limba NEGOTIATION
Leja CaldareraSpainXuxue Feng UNQUALIFIED
Kadeem FlosiIndiaElwin Sharvill NEGOTIATION
Aika InouyeAustraliaIoni Bowcher PROPOSAL
Murillo MaletRussiaXuxue Feng NEGOTIATION
Rodrigues CampainAustraliaXuxue Feng NEGOTIATION
Isabel BowleyItalyStephen Shaw PROPOSAL
Arvin AlbaresArgentinaIoni Bowcher RENEWAL
Leon OldroydGermanyAmy Elsner NEW
Jones VocelkaBrazilAnna Fali QUALIFIED
Tony FollerUnited KingdomAmy Elsner NEGOTIATION
Isabel BowleyItalyStephen Shaw NEW
Cody SaylorsJapanAmy Elsner QUALIFIED
Maria MarrierFranceIvan Magalhaes PROPOSAL
Mayumi KolmetzSpainIoni Bowcher UNQUALIFIED
Rodrigues CampainJapanXuxue Feng RENEWAL
Faith GillianJapanXuxue Feng NEGOTIATION
Murillo MaletUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues CampainArgentinaAnna Fali NEGOTIATION
Morrow RutaGermanyBernardo Dominic QUALIFIED
Claire TollnerSpainXuxue Feng NEW
Morrow RutaCanadaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyArgentinaIvan Magalhaes NEW
Aditya KuskoUnited KingdomBernardo Dominic NEGOTIATION
Morrow RutaGermanyAsiya Javayant PROPOSAL
Jeanfrancois VenereSpainXuxue Feng PROPOSAL
Cody SaylorsGermanyXuxue Feng NEGOTIATION
David DarakjyFranceIvan Magalhaes UNQUALIFIED
Leon OldroydFranceAnna Fali PROPOSAL
Johnson SergiSpainIvan Magalhaes RENEWAL
Chavez BriddickBrazilElwin Sharvill UNQUALIFIED
Jones VocelkaItalyAmy Elsner RENEWAL
Jennifer AmigonSpainAsiya Javayant QUALIFIED
Sinclair WaycottArgentinaOnyama Limba RENEWAL
Costa DilliardSpainAnna Fali NEW
Emily WhobreyItalyElwin Sharvill NEW
Claire TollnerCanadaBernardo Dominic NEGOTIATION
Chavez BriddickGermanyAsiya Javayant RENEWAL
Francesco ShinkoFranceAmy Elsner NEW
Salvatore StockhamItalyAsiya Javayant QUALIFIED
Aruna FigeroaIndiaXuxue Feng RENEWAL
Rodrigues CampainGermanyIvan Magalhaes PROPOSAL
Claire TollnerGermanyAsiya Javayant PROPOSAL
Stacey MacleadUnited KingdomXuxue Feng QUALIFIED
Emily WhobreyFranceAsiya Javayant QUALIFIED
Greenwood BologniaJapanBernardo Dominic PROPOSAL
Silvio SlusarskiIndiaIvan Magalhaes NEW
James ButtGermanyIoni Bowcher RENEWAL
David DarakjyRussiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Aditya Kusko
Kadeem Flosi
Darci Poquette
Johnson Sergi
Alejandro Perin
Isabel Bowley
Faith Gillian
Stacey Maclead
Francesco Shinko
Kadeem Flosi
Rodrigues Campain
Kadeem Flosi
David Darakjy
Leon Oldroyd
Jeanfrancois Venere
Octavia Malet
Tony Foller
Rodrigues Campain
Aruna Figeroa
Murillo Malet
Rodrigues Campain
Antonio Caudy
Julie Stenseth
Antonio Caudy
Jefferson Schemmer
Chavez Briddick
Salvatore Stockham
Deepesh Chui
Emily Whobrey
Smith Glick
Jefferson Schemmer
Isabel Bowley
Francesco Shinko
Maisha Rulapaugh
Leja Caldarera
Ricardo Gaucho
Leja Caldarera
Sinclair Waycott
Greenwood Bolognia
Munro Ferencz
Morrow Ruta
Adams Morasca
Alejandro Perin
Juan Wieser
Silvio Slusarski
Smith Glick
Leon Oldroyd
Sinclair Waycott
Leon Oldroyd
IdCountryDate
1000Canada2026-04-11
1001Japan2026-03-27
1002Germany2026-03-24
1003Spain2026-04-10
1004Germany2026-04-08
1005Spain2026-04-18
1006Brazil2026-04-05
1007Spain2026-04-09
1008Italy2026-03-30
1009Spain2026-04-16
1010Italy2026-04-08
1011Germany2026-03-27
1012India2026-04-09
1013Spain2026-04-13
1014India2026-03-25
1015Japan2026-03-28
1016Japan2026-04-21
1017Germany2026-04-15
1018Argentina2026-04-09
1019Australia2026-04-05
1020Italy2026-04-01
1021India2026-04-15
1022Italy2026-03-26
1023Russia2026-04-06
1024Spain2026-03-28
1025Argentina2026-03-26
1026India2026-04-12
1027France2026-03-23
1028France2026-03-28
1029Spain2026-04-08
1030Italy2026-04-17
1031Italy2026-04-15
1032Brazil2026-03-27
1033Italy2026-03-27
1034Germany2026-04-03
1035Russia2026-04-20
1036India2026-04-03
1037Brazil2026-04-12
1038Brazil2026-04-01
1039Australia2026-04-10
1040Argentina2026-04-09
1041Italy2026-04-05
1042India2026-03-30
1043Japan2026-04-15
1044France2026-03-31
1045Italy2026-03-28
1046Canada2026-04-13
1047Australia2026-04-07
1048Argentina2026-03-28
1049Canada2026-04-04

On-Demand Data

NameIdCountryDate
Silvio Slusarski1000Italy2026-03-25
Jennifer Amigon1001Italy2026-03-29
Leon Oldroyd1002India2026-04-20
Silvio Slusarski1003France2026-04-18
Aditya Kusko1004India2026-04-13
Jeanfrancois Venere1005Russia2026-04-15
Silvio Slusarski1006Australia2026-04-08
Alejandro Perin1007Canada2026-04-03
Darci Poquette1008Brazil2026-04-11
Silvio Slusarski1009Canada2026-04-03
Nicolas Iturbide1010India2026-04-02
Francesco Shinko1011Italy2026-03-29
Rodrigues Campain1012Australia2026-04-17
Johnson Sergi1013Brazil2026-04-17
Sinclair Waycott1014Australia2026-03-25
Chavez Briddick1015Japan2026-03-29
Julie Stenseth1016Argentina2026-04-01
Murillo Malet1017Japan2026-04-09
Leon Oldroyd1018Brazil2026-04-04
Jones Vocelka1019Brazil2026-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyIndiaAmy Elsner QUALIFIED
Alejandro PerinFranceAsiya Javayant UNQUALIFIED
Juan WieserBrazilOnyama Limba UNQUALIFIED
Tony FollerArgentinaAsiya Javayant NEW
Mujtaba NickaUnited KingdomAnna Fali UNQUALIFIED
Darci PoquetteAustraliaAmy Elsner UNQUALIFIED
James ButtAustraliaXuxue Feng NEW
Jefferson SchemmerUnited KingdomIoni Bowcher PROPOSAL
Darci PoquetteBrazilOnyama Limba UNQUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic NEW
Leon OldroydItalyElwin Sharvill NEGOTIATION
Isabel BowleyRussiaIoni Bowcher RENEWAL
Deepesh ChuiIndiaOnyama Limba RENEWAL
Misaki RoysterFranceXuxue Feng PROPOSAL
Deepesh ChuiJapanElwin Sharvill RENEWAL
Rodrigues CampainSpainOnyama Limba NEGOTIATION
Emily WhobreyJapanAnna Fali QUALIFIED
Jones VocelkaUnited KingdomElwin Sharvill NEW
Stacey MacleadIndiaOnyama Limba UNQUALIFIED
Francesco ShinkoSpainIoni Bowcher NEGOTIATION
Julie StensethRussiaOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaIvan Magalhaes QUALIFIED
Leon OldroydRussiaElwin Sharvill RENEWAL
Jeanfrancois VenereAustraliaIvan Magalhaes QUALIFIED
Johnson SergiIndiaAmy Elsner RENEWAL
Juan WieserUnited KingdomBernardo Dominic UNQUALIFIED
Clifford RimSpainAmy Elsner RENEWAL
Clifford RimBrazilIvan Magalhaes NEGOTIATION
Cody SaylorsAustraliaBernardo Dominic UNQUALIFIED
David DarakjyGermanyBernardo Dominic NEW
Aika InouyeJapanAsiya Javayant QUALIFIED
Izzy GarufiFranceStephen Shaw PROPOSAL
Adams MorascaUnited KingdomAnna Fali NEW
Stacey MacleadIndiaAsiya Javayant UNQUALIFIED
Jones VocelkaCanadaBernardo Dominic UNQUALIFIED
Rodrigues CampainCanadaOnyama Limba NEGOTIATION
Faith GillianSpainIvan Magalhaes QUALIFIED
Maria MarrierSpainAnna Fali QUALIFIED
Julie StensethGermanyElwin Sharvill RENEWAL
Murillo MaletIndiaAnna Fali 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>