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
Aditya KuskoUnited KingdomElwin Sharvill NEW
James ButtArgentinaAmy Elsner NEGOTIATION
Aika InouyeAustraliaElwin Sharvill PROPOSAL
Stacey MacleadArgentinaIoni Bowcher RENEWAL
Munro FerenczRussiaOnyama Limba RENEWAL
Antonio CaudyBrazilIvan Magalhaes PROPOSAL
Silvio SlusarskiGermanyIoni Bowcher PROPOSAL
Aruna FigeroaJapanElwin Sharvill UNQUALIFIED
Adams MorascaSpainAsiya Javayant RENEWAL
Ricardo GauchoIndiaAmy Elsner RENEWAL
Mujtaba NickaCanadaIvan Magalhaes RENEWAL
Greenwood BologniaFranceElwin Sharvill NEGOTIATION
Rodrigues CampainBrazilAnna Fali RENEWAL
Jennifer AmigonIndiaAnna Fali PROPOSAL
James ButtJapanIoni Bowcher NEGOTIATION
Julie StensethJapanOnyama Limba UNQUALIFIED
Isabel BowleyJapanAmy Elsner UNQUALIFIED
Adams MorascaRussiaAnna Fali UNQUALIFIED
Jones VocelkaSpainIvan Magalhaes PROPOSAL
Chavez BriddickSpainXuxue Feng RENEWAL
Leja CaldareraBrazilIoni Bowcher RENEWAL
Maria MarrierArgentinaStephen Shaw UNQUALIFIED
Darci PoquetteUnited KingdomAnna Fali RENEWAL
Antonio CaudyBrazilAmy Elsner PROPOSAL
Mujtaba NickaJapanIvan Magalhaes RENEWAL
Maisha RulapaughAustraliaIoni Bowcher RENEWAL
Deepesh ChuiGermanyAsiya Javayant QUALIFIED
Mayumi KolmetzCanadaElwin Sharvill PROPOSAL
Nicolas IturbideFranceBernardo Dominic RENEWAL
James ButtAustraliaAmy Elsner QUALIFIED
Jennifer AmigonSpainOnyama Limba RENEWAL
Nicolas IturbideAustraliaAnna Fali QUALIFIED
Stacey MacleadCanadaIoni Bowcher NEW
Juan WieserGermanyAmy Elsner PROPOSAL
Julie StensethRussiaXuxue Feng UNQUALIFIED
Faith GillianRussiaElwin Sharvill PROPOSAL
David DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Emily WhobreyGermanyXuxue Feng PROPOSAL
Izzy GarufiBrazilOnyama Limba PROPOSAL
Kaitlin OstroskyIndiaStephen Shaw UNQUALIFIED
Mayumi KolmetzSpainIoni Bowcher QUALIFIED
David DarakjyBrazilXuxue Feng UNQUALIFIED
Emily WhobreyUnited KingdomAsiya Javayant NEW
Costa DilliardRussiaStephen Shaw NEW
Cody SaylorsCanadaStephen Shaw NEW
Ashley DoeGermanyBernardo Dominic QUALIFIED
Kaitlin OstroskyRussiaStephen Shaw NEGOTIATION
Isabel BowleyGermanyBernardo Dominic NEW
Deepesh ChuiJapanStephen Shaw RENEWAL
Mujtaba NickaGermanyElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Claire TollnerAustraliaStephen Shaw UNQUALIFIED
Silvio SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Mayumi KolmetzRussiaBernardo Dominic QUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant RENEWAL
Kadeem FlosiArgentinaAmy Elsner QUALIFIED
Antonio CaudyArgentinaStephen Shaw RENEWAL
Aruna FigeroaJapanOnyama Limba UNQUALIFIED
Salvatore StockhamAustraliaIvan Magalhaes RENEWAL
Smith GlickFranceAsiya Javayant QUALIFIED
Alejandro PerinRussiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiRussia2026-05-18Truhlar And Truhlar Attys QUALIFIED40Anna Fali
1001Silvio SlusarskiRussia2026-05-24Feltz Printing Service PROPOSAL75Anna Fali
1002Nicolas IturbideSpain2026-05-21Chemel, James L Cpa QUALIFIED21Xuxue Feng
1003Antonio CaudyIndia2026-06-03King, Christopher A Esq UNQUALIFIED38Stephen Shaw
1004Silvio SlusarskiSpain2026-05-31Commercial Press PROPOSAL90Bernardo Dominic
1005Deepesh ChuiAustralia2026-05-11Commercial Press NEGOTIATION20Ioni Bowcher
1006Smith GlickRussia2026-05-28Chanay, Jeffrey A Esq PROPOSAL87Stephen Shaw
1007Maisha RulapaughSpain2026-05-17Chapman, Ross E Esq NEGOTIATION18Ioni Bowcher
1008Arvin AlbaresGermany2026-05-18Printing Dimensions NEW37Elwin Sharvill
1009Jennifer AmigonRussia2026-05-14Commercial Press RENEWAL19Anna Fali
1010Arvin AlbaresSpain2026-06-07Dorl, James J Esq NEW93Xuxue Feng
1011Kadeem FlosiItaly2026-06-03Rangoni Of Florence QUALIFIED86Anna Fali
1012Nicolas IturbideItaly2026-05-23Printing Dimensions NEGOTIATION96Ioni Bowcher
1013Juan WieserCanada2026-05-09King, Christopher A Esq QUALIFIED47Anna Fali
1014Ricardo GauchoSpain2026-05-17Chemel, James L Cpa UNQUALIFIED60Anna Fali
1015Clifford RimAustralia2026-06-07Truhlar And Truhlar Attys NEW56Onyama Limba
1016Deepesh ChuiRussia2026-05-30Printing Dimensions NEGOTIATION86Ioni Bowcher
1017James ButtRussia2026-05-27Feiner Bros NEGOTIATION21Stephen Shaw
1018Julie StensethSpain2026-06-05Dorl, James J Esq UNQUALIFIED39Ivan Magalhaes
1019Deepesh ChuiFrance2026-05-28Truhlar And Truhlar Attys QUALIFIED81Xuxue Feng
1020Octavia MaletItaly2026-06-04Chapman, Ross E Esq PROPOSAL13Asiya Javayant
1021Munro FerenczArgentina2026-05-14Chanay, Jeffrey A Esq UNQUALIFIED89Anna Fali
1022Salvatore StockhamFrance2026-06-04Benton, John B Jr QUALIFIED96Anna Fali
1023Jennifer AmigonUnited Kingdom2026-06-06Chapman, Ross E Esq QUALIFIED17Anna Fali
1024James ButtCanada2026-05-21Commercial Press UNQUALIFIED88Elwin Sharvill
1025Maisha RulapaughBrazil2026-05-21Commercial Press QUALIFIED80Xuxue Feng
1026Faith GillianFrance2026-05-30King, Christopher A Esq NEW84Anna Fali
1027Adams MorascaItaly2026-05-20Benton, John B Jr NEGOTIATION51Onyama Limba
1028Tony FollerJapan2026-05-10Truhlar And Truhlar Attys PROPOSAL40Stephen Shaw
1029Salvatore StockhamSpain2026-05-29Dorl, James J Esq QUALIFIED7Amy Elsner
1030Isabel BowleyGermany2026-05-23Chapman, Ross E Esq RENEWAL10Asiya Javayant
1031Alejandro PerinFrance2026-06-04Printing Dimensions NEGOTIATION42Onyama Limba
1032Kaitlin OstroskyRussia2026-05-30Printing Dimensions NEW46Asiya Javayant
1033Adams MorascaGermany2026-06-06Rousseaux, Michael Esq QUALIFIED81Bernardo Dominic
1034Ivar PaprockiJapan2026-06-06King, Christopher A Esq UNQUALIFIED50Bernardo Dominic
1035Arvin AlbaresFrance2026-06-04King, Christopher A Esq RENEWAL61Xuxue Feng
1036Octavia MaletGermany2026-05-25Rousseaux, Michael Esq NEW94Anna Fali
1037Misaki RoysterBrazil2026-06-01King, Christopher A Esq PROPOSAL84Elwin Sharvill
1038Jeanfrancois VenereIndia2026-05-12Chemel, James L Cpa QUALIFIED93Bernardo Dominic
1039Izzy GarufiCanada2026-06-04Feiner Bros PROPOSAL96Ioni Bowcher
1040Ashley DoeAustralia2026-06-03King, Christopher A Esq UNQUALIFIED43Xuxue Feng
1041Ashley DoeItaly2026-06-07Commercial Press NEGOTIATION19Anna Fali
1042Smith GlickFrance2026-05-11Benton, John B Jr NEW43Anna Fali
1043Sinclair WaycottBrazil2026-05-10Printing Dimensions NEGOTIATION7Elwin Sharvill
1044Jones VocelkaArgentina2026-05-21Benton, John B Jr RENEWAL80Amy Elsner
1045Ricardo GauchoItaly2026-05-22Rousseaux, Michael Esq QUALIFIED78Amy Elsner
1046Darci PoquetteCanada2026-05-15Morlong Associates NEW78Ioni Bowcher
1047Octavia MaletCanada2026-05-18Morlong Associates PROPOSAL43Elwin Sharvill
1048Isabel BowleyRussia2026-05-18King, Christopher A Esq QUALIFIED87Ioni Bowcher
1049Smith GlickCanada2026-05-22Buckley Miller Wright PROPOSAL86Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Faith GillianItalyAnna Fali PROPOSAL
Leja CaldareraJapanBernardo Dominic RENEWAL
Octavia MaletItalyAsiya Javayant UNQUALIFIED
David DarakjyFranceXuxue Feng QUALIFIED
Octavia MaletGermanyAmy Elsner NEW
Nicolas IturbideCanadaAsiya Javayant UNQUALIFIED
Silvio SlusarskiAustraliaAmy Elsner QUALIFIED
Antonio CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo GauchoJapanXuxue Feng NEW
Johnson SergiSpainBernardo Dominic PROPOSAL
Francesco ShinkoCanadaIoni Bowcher NEW
Julie StensethItalyStephen Shaw RENEWAL
Cody SaylorsAustraliaIoni Bowcher NEGOTIATION
Sinclair WaycottArgentinaElwin Sharvill NEW
Clifford RimFranceAmy Elsner NEGOTIATION
Jones VocelkaCanadaAmy Elsner RENEWAL
Stacey MacleadUnited KingdomIvan Magalhaes RENEWAL
Jennifer AmigonItalyAnna Fali RENEWAL
Smith GlickUnited KingdomOnyama Limba QUALIFIED
Antonio CaudyRussiaIoni Bowcher PROPOSAL
Arvin AlbaresBrazilStephen Shaw QUALIFIED
Maria MarrierJapanXuxue Feng QUALIFIED
Kaitlin OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Munro FerenczAustraliaXuxue Feng RENEWAL
David DarakjyArgentinaAsiya Javayant PROPOSAL
Murillo MaletAustraliaXuxue Feng PROPOSAL
Johnson SergiSpainBernardo Dominic NEW
Cody SaylorsAustraliaStephen Shaw NEGOTIATION
Aditya KuskoCanadaBernardo Dominic PROPOSAL
Juan WieserCanadaXuxue Feng RENEWAL
Misaki RoysterUnited KingdomElwin Sharvill QUALIFIED
Alejandro PerinSpainStephen Shaw NEGOTIATION
Murillo MaletJapanAnna Fali RENEWAL
Claire TollnerFranceIvan Magalhaes PROPOSAL
Mujtaba NickaGermanyStephen Shaw RENEWAL
Kadeem FlosiAustraliaElwin Sharvill NEGOTIATION
Murillo MaletRussiaAmy Elsner QUALIFIED
Emily WhobreyFranceElwin Sharvill NEGOTIATION
Kaitlin OstroskyUnited KingdomOnyama Limba NEGOTIATION
Alejandro PerinRussiaStephen Shaw QUALIFIED
Jennifer AmigonFranceOnyama Limba QUALIFIED
Maisha RulapaughCanadaIoni Bowcher PROPOSAL
Jefferson SchemmerIndiaBernardo Dominic PROPOSAL
Tony FollerIndiaXuxue Feng PROPOSAL
Silvio SlusarskiGermanyIoni Bowcher UNQUALIFIED
Ricardo GauchoSpainIoni Bowcher NEGOTIATION
Adams MorascaUnited KingdomStephen Shaw NEGOTIATION
Ricardo GauchoIndiaXuxue Feng PROPOSAL
Cody SaylorsBrazilElwin Sharvill PROPOSAL
Frozen Columns
Name
Ivar Paprocki
Aika Inouye
Johnson Sergi
Stacey Maclead
Aruna Figeroa
Isabel Bowley
Adams Morasca
Sinclair Waycott
Isabel Bowley
Munro Ferencz
Francesco Shinko
Leon Oldroyd
David Darakjy
Rodrigues Campain
Stacey Maclead
Izzy Garufi
Arvin Albares
Octavia Malet
Isabel Bowley
Mujtaba Nicka
Greenwood Bolognia
Tony Foller
Alejandro Perin
Claire Tollner
Rodrigues Campain
Sinclair Waycott
Isabel Bowley
Jefferson Schemmer
Jeanfrancois Venere
Ashley Doe
Smith Glick
Murillo Malet
Faith Gillian
Emily Whobrey
Mayumi Kolmetz
Antonio Caudy
Tony Foller
Rodrigues Campain
Silvio Slusarski
Munro Ferencz
Kaitlin Ostrosky
Julie Stenseth
Octavia Malet
James Butt
Jefferson Schemmer
Mujtaba Nicka
Izzy Garufi
Deepesh Chui
Antonio Caudy
Emily Whobrey
IdCountryDate
1000United Kingdom2026-05-10
1001Spain2026-05-19
1002Italy2026-05-20
1003Spain2026-05-29
1004Canada2026-05-31
1005Australia2026-06-05
1006Japan2026-06-07
1007United Kingdom2026-05-16
1008Argentina2026-05-22
1009Brazil2026-06-06
1010Canada2026-05-21
1011Italy2026-05-09
1012Italy2026-05-14
1013Australia2026-05-23
1014Brazil2026-06-03
1015France2026-05-23
1016United Kingdom2026-05-29
1017Argentina2026-05-25
1018Italy2026-05-28
1019India2026-05-17
1020Canada2026-05-23
1021Australia2026-05-17
1022Argentina2026-06-07
1023India2026-05-21
1024Argentina2026-05-10
1025Italy2026-06-07
1026Australia2026-05-10
1027India2026-05-13
1028Canada2026-06-06
1029Brazil2026-05-31
1030Argentina2026-06-06
1031Canada2026-05-12
1032Brazil2026-05-15
1033United Kingdom2026-05-10
1034Canada2026-05-30
1035Australia2026-05-31
1036Japan2026-05-15
1037Argentina2026-05-30
1038Russia2026-06-06
1039Italy2026-05-13
1040Argentina2026-05-21
1041Italy2026-05-14
1042Russia2026-06-05
1043Brazil2026-05-24
1044France2026-05-21
1045Canada2026-06-04
1046Australia2026-05-12
1047France2026-05-15
1048Australia2026-05-09
1049Argentina2026-05-27

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Australia2026-05-18
Greenwood Bolognia1001Japan2026-06-05
Nicolas Iturbide1002Russia2026-05-12
Julie Stenseth1003United Kingdom2026-05-15
Mujtaba Nicka1004Canada2026-05-17
Nicolas Iturbide1005Italy2026-05-17
Arvin Albares1006Canada2026-05-14
Sinclair Waycott1007France2026-05-18
Sinclair Waycott1008United Kingdom2026-05-27
Faith Gillian1009Argentina2026-05-22
Octavia Malet1010Italy2026-06-06
Johnson Sergi1011Italy2026-05-09
Octavia Malet1012Spain2026-06-06
Isabel Bowley1013Germany2026-05-14
Clifford Rim1014Germany2026-06-07
Ashley Doe1015Russia2026-05-09
Kaitlin Ostrosky1016Italy2026-06-07
Smith Glick1017Russia2026-05-22
Smith Glick1018France2026-05-10
Leja Caldarera1019Spain2026-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerRussiaAsiya Javayant PROPOSAL
Jefferson SchemmerItalyOnyama Limba RENEWAL
Rodrigues CampainCanadaAnna Fali UNQUALIFIED
Ricardo GauchoRussiaElwin Sharvill NEGOTIATION
Leon OldroydArgentinaAnna Fali NEW
Faith GillianJapanStephen Shaw RENEWAL
Costa DilliardUnited KingdomStephen Shaw UNQUALIFIED
Smith GlickBrazilElwin Sharvill NEGOTIATION
Kaitlin OstroskyAustraliaXuxue Feng NEW
Emily WhobreyItalyBernardo Dominic NEGOTIATION
Mujtaba NickaFranceAnna Fali NEGOTIATION
James ButtItalyStephen Shaw RENEWAL
Faith GillianItalyAnna Fali PROPOSAL
Mayumi KolmetzJapanAmy Elsner RENEWAL
Arvin AlbaresFranceAsiya Javayant PROPOSAL
Izzy GarufiSpainIoni Bowcher UNQUALIFIED
Jeanfrancois VenereJapanOnyama Limba QUALIFIED
Kaitlin OstroskyFranceBernardo Dominic UNQUALIFIED
Julie StensethBrazilOnyama Limba UNQUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba RENEWAL
Murillo MaletFranceAnna Fali QUALIFIED
Cody SaylorsIndiaXuxue Feng QUALIFIED
Sinclair WaycottIndiaBernardo Dominic RENEWAL
Octavia MaletJapanElwin Sharvill RENEWAL
Adams MorascaAustraliaAmy Elsner NEGOTIATION
David DarakjyGermanyXuxue Feng PROPOSAL
Ivar PaprockiUnited KingdomStephen Shaw NEW
Juan WieserAustraliaIoni Bowcher UNQUALIFIED
Jefferson SchemmerArgentinaXuxue Feng UNQUALIFIED
Murillo MaletItalyBernardo Dominic UNQUALIFIED
Johnson SergiSpainXuxue Feng PROPOSAL
Leon OldroydAustraliaElwin Sharvill NEW
Misaki RoysterBrazilIoni Bowcher UNQUALIFIED
Emily WhobreyJapanAmy Elsner NEGOTIATION
Mujtaba NickaCanadaIvan Magalhaes NEW
Salvatore StockhamItalyIoni Bowcher RENEWAL
Sinclair WaycottRussiaAsiya Javayant QUALIFIED
Leon OldroydJapanAnna Fali UNQUALIFIED
Leja CaldareraIndiaBernardo Dominic QUALIFIED
Aika InouyeItalyElwin Sharvill 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>