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 PerinItalyStephen Shaw PROPOSAL
Cody SaylorsSpainIoni Bowcher QUALIFIED
James ButtBrazilOnyama Limba QUALIFIED
Octavia MaletRussiaAsiya Javayant NEGOTIATION
Mujtaba NickaJapanBernardo Dominic QUALIFIED
Misaki RoysterAustraliaBernardo Dominic RENEWAL
Alejandro PerinGermanyAnna Fali UNQUALIFIED
Maria MarrierBrazilAnna Fali RENEWAL
Silvio SlusarskiItalyIoni Bowcher QUALIFIED
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Cody SaylorsGermanyIoni Bowcher NEGOTIATION
Faith GillianBrazilAnna Fali PROPOSAL
Emily WhobreyUnited KingdomXuxue Feng RENEWAL
Izzy GarufiUnited KingdomIvan Magalhaes QUALIFIED
Nicolas IturbideCanadaBernardo Dominic PROPOSAL
Aditya KuskoFranceIoni Bowcher PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill UNQUALIFIED
Juan WieserBrazilIvan Magalhaes UNQUALIFIED
Nicolas IturbideAustraliaIoni Bowcher QUALIFIED
Costa DilliardGermanyIoni Bowcher RENEWAL
Costa DilliardIndiaAsiya Javayant NEGOTIATION
James ButtJapanStephen Shaw NEW
Greenwood BologniaArgentinaAnna Fali QUALIFIED
Leja CaldareraCanadaAsiya Javayant UNQUALIFIED
Mayumi KolmetzJapanXuxue Feng PROPOSAL
Tony FollerArgentinaAnna Fali RENEWAL
Leja CaldareraIndiaElwin Sharvill QUALIFIED
Isabel BowleyCanadaBernardo Dominic NEW
Octavia MaletIndiaElwin Sharvill QUALIFIED
Mayumi KolmetzBrazilAmy Elsner RENEWAL
Salvatore StockhamFranceIvan Magalhaes NEW
Johnson SergiBrazilIoni Bowcher NEW
Izzy GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair WaycottFranceAsiya Javayant RENEWAL
Mayumi KolmetzArgentinaOnyama Limba QUALIFIED
Ricardo GauchoArgentinaAsiya Javayant PROPOSAL
Faith GillianItalyElwin Sharvill NEW
Sinclair WaycottIndiaXuxue Feng NEW
Leon OldroydFranceAsiya Javayant QUALIFIED
Smith GlickIndiaAmy Elsner NEW
Maisha RulapaughGermanyElwin Sharvill RENEWAL
Julie StensethArgentinaBernardo Dominic QUALIFIED
Rodrigues CampainIndiaAnna Fali NEW
Salvatore StockhamBrazilIoni Bowcher RENEWAL
Arvin AlbaresRussiaIvan Magalhaes RENEWAL
Emily WhobreyBrazilXuxue Feng NEW
James ButtGermanyAsiya Javayant PROPOSAL
Jefferson SchemmerGermanyXuxue Feng RENEWAL
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Francesco ShinkoRussiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro PerinIndiaElwin Sharvill UNQUALIFIED
Maisha RulapaughItalyIvan Magalhaes RENEWAL
Murillo MaletBrazilIoni Bowcher NEW
Ivar PaprockiRussiaStephen Shaw RENEWAL
David DarakjyArgentinaStephen Shaw RENEWAL
Izzy GarufiBrazilIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher NEGOTIATION
Tony FollerGermanyElwin Sharvill PROPOSAL
Julie StensethBrazilElwin Sharvill NEGOTIATION
Salvatore StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiBrazil2026-04-03King, Christopher A Esq UNQUALIFIED78Amy Elsner
1001Smith GlickGermany2026-03-27Benton, John B Jr NEW88Stephen Shaw
1002Mayumi KolmetzArgentina2026-04-20Chanay, Jeffrey A Esq NEGOTIATION7Onyama Limba
1003Rodrigues CampainAustralia2026-03-30Chapman, Ross E Esq NEW80Stephen Shaw
1004Misaki RoysterGermany2026-04-21Chapman, Ross E Esq RENEWAL93Anna Fali
1005Sinclair WaycottFrance2026-04-21Rousseaux, Michael Esq PROPOSAL84Elwin Sharvill
1006Misaki RoysterItaly2026-04-06King, Christopher A Esq PROPOSAL71Elwin Sharvill
1007Alejandro PerinIndia2026-04-11Chemel, James L Cpa RENEWAL53Bernardo Dominic
1008Salvatore StockhamAustralia2026-04-18Truhlar And Truhlar Attys RENEWAL34Onyama Limba
1009Nicolas IturbideBrazil2026-04-06Dorl, James J Esq RENEWAL81Onyama Limba
1010Antonio CaudyFrance2026-03-27Truhlar And Truhlar Attys NEGOTIATION70Bernardo Dominic
1011James ButtCanada2026-04-09Feltz Printing Service PROPOSAL91Elwin Sharvill
1012Octavia MaletArgentina2026-04-06Chemel, James L Cpa NEW98Asiya Javayant
1013Francesco ShinkoArgentina2026-03-25King, Christopher A Esq QUALIFIED62Ivan Magalhaes
1014Maria MarrierIndia2026-04-08Commercial Press RENEWAL31Stephen Shaw
1015Misaki RoysterUnited Kingdom2026-04-09Benton, John B Jr PROPOSAL16Bernardo Dominic
1016Julie StensethItaly2026-04-09Dorl, James J Esq NEGOTIATION4Asiya Javayant
1017Costa DilliardAustralia2026-04-14Feltz Printing Service QUALIFIED60Stephen Shaw
1018Ashley DoeSpain2026-04-21Dorl, James J Esq NEGOTIATION18Ivan Magalhaes
1019Greenwood BologniaIndia2026-04-16Chemel, James L Cpa UNQUALIFIED44Anna Fali
1020Kadeem FlosiGermany2026-04-16Chapman, Ross E Esq NEW70Bernardo Dominic
1021Deepesh ChuiIndia2026-03-28Chapman, Ross E Esq NEGOTIATION29Amy Elsner
1022Leon OldroydIndia2026-04-13Commercial Press PROPOSAL76Ivan Magalhaes
1023Aika InouyeGermany2026-03-30Rangoni Of Florence UNQUALIFIED80Ioni Bowcher
1024Morrow RutaSpain2026-04-09Morlong Associates QUALIFIED34Ioni Bowcher
1025James ButtBrazil2026-04-01Feiner Bros QUALIFIED14Elwin Sharvill
1026Ricardo GauchoArgentina2026-03-29Chapman, Ross E Esq RENEWAL14Stephen Shaw
1027Sinclair WaycottGermany2026-04-19Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1028Juan WieserSpain2026-03-27Commercial Press RENEWAL94Anna Fali
1029Deepesh ChuiSpain2026-03-28Chanay, Jeffrey A Esq QUALIFIED97Amy Elsner
1030Claire TollnerJapan2026-04-18Chapman, Ross E Esq UNQUALIFIED38Xuxue Feng
1031Deepesh ChuiGermany2026-03-27Feltz Printing Service UNQUALIFIED65Asiya Javayant
1032Ashley DoeFrance2026-03-30Feiner Bros QUALIFIED75Elwin Sharvill
1033Jones VocelkaRussia2026-04-08King, Christopher A Esq PROPOSAL35Ioni Bowcher
1034Cody SaylorsFrance2026-04-17Benton, John B Jr NEW70Amy Elsner
1035Johnson SergiSpain2026-03-28Rousseaux, Michael Esq NEGOTIATION78Onyama Limba
1036Murillo MaletSpain2026-04-15Chapman, Ross E Esq NEW61Ivan Magalhaes
1037Julie StensethCanada2026-03-26Rousseaux, Michael Esq UNQUALIFIED2Ivan Magalhaes
1038Octavia MaletItaly2026-04-20Feltz Printing Service UNQUALIFIED56Asiya Javayant
1039Mujtaba NickaRussia2026-04-07Rousseaux, Michael Esq PROPOSAL14Anna Fali
1040Cody SaylorsGermany2026-03-27Rousseaux, Michael Esq RENEWAL92Xuxue Feng
1041Jefferson SchemmerBrazil2026-04-11Chemel, James L Cpa NEW21Anna Fali
1042Claire TollnerBrazil2026-03-31Printing Dimensions UNQUALIFIED1Elwin Sharvill
1043Jeanfrancois VenereAustralia2026-04-17Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1044Rodrigues CampainBrazil2026-04-11Truhlar And Truhlar Attys UNQUALIFIED19Xuxue Feng
1045Cody SaylorsItaly2026-04-12Buckley Miller Wright NEW2Amy Elsner
1046Aditya KuskoUnited Kingdom2026-04-02King, Christopher A Esq RENEWAL2Asiya Javayant
1047Arvin AlbaresGermany2026-03-30King, Christopher A Esq PROPOSAL88Ioni Bowcher
1048Emily WhobreyArgentina2026-04-10Chanay, Jeffrey A Esq NEGOTIATION29Bernardo Dominic
1049Misaki RoysterAustralia2026-04-13Feiner Bros QUALIFIED28Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughAustraliaXuxue Feng QUALIFIED
Julie StensethJapanIoni Bowcher NEGOTIATION
Misaki RoysterIndiaAsiya Javayant NEW
James ButtFranceStephen Shaw QUALIFIED
Maria MarrierArgentinaAmy Elsner NEW
Silvio SlusarskiIndiaStephen Shaw QUALIFIED
Darci PoquetteJapanStephen Shaw NEW
Mujtaba NickaUnited KingdomBernardo Dominic NEGOTIATION
Izzy GarufiIndiaAnna Fali UNQUALIFIED
Maria MarrierRussiaAmy Elsner UNQUALIFIED
Ivar PaprockiJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereIndiaXuxue Feng PROPOSAL
Chavez BriddickFranceAsiya Javayant QUALIFIED
Leja CaldareraAustraliaIvan Magalhaes RENEWAL
James ButtJapanAsiya Javayant QUALIFIED
Costa DilliardBrazilElwin Sharvill QUALIFIED
Ricardo GauchoIndiaElwin Sharvill RENEWAL
Ricardo GauchoRussiaAnna Fali UNQUALIFIED
Jefferson SchemmerBrazilElwin Sharvill UNQUALIFIED
Leja CaldareraFranceIvan Magalhaes NEGOTIATION
Maisha RulapaughBrazilBernardo Dominic NEGOTIATION
Deepesh ChuiArgentinaIoni Bowcher UNQUALIFIED
Francesco ShinkoUnited KingdomAnna Fali NEW
Octavia MaletSpainXuxue Feng NEW
Morrow RutaBrazilIoni Bowcher QUALIFIED
Jennifer AmigonSpainAnna Fali RENEWAL
David DarakjyItalyIvan Magalhaes NEGOTIATION
Kadeem FlosiIndiaAnna Fali QUALIFIED
Ricardo GauchoCanadaAsiya Javayant NEW
Darci PoquetteRussiaElwin Sharvill RENEWAL
Leja CaldareraUnited KingdomStephen Shaw NEW
Octavia MaletArgentinaAsiya Javayant PROPOSAL
Greenwood BologniaBrazilElwin Sharvill NEGOTIATION
Johnson SergiAustraliaAsiya Javayant RENEWAL
Deepesh ChuiJapanXuxue Feng PROPOSAL
Ivar PaprockiUnited KingdomBernardo Dominic NEW
Salvatore StockhamArgentinaElwin Sharvill RENEWAL
Jennifer AmigonRussiaAsiya Javayant NEW
Clifford RimItalyIvan Magalhaes RENEWAL
Costa DilliardJapanBernardo Dominic QUALIFIED
Arvin AlbaresAustraliaIvan Magalhaes RENEWAL
Aditya KuskoUnited KingdomXuxue Feng UNQUALIFIED
Mayumi KolmetzSpainAsiya Javayant NEW
Alejandro PerinCanadaStephen Shaw NEGOTIATION
Greenwood BologniaBrazilOnyama Limba NEW
James ButtGermanyAmy Elsner NEGOTIATION
Kadeem FlosiFranceXuxue Feng UNQUALIFIED
Alejandro PerinUnited KingdomAsiya Javayant NEW
Misaki RoysterAustraliaIvan Magalhaes QUALIFIED
Deepesh ChuiArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Arvin Albares
Nicolas Iturbide
Aika Inouye
Chavez Briddick
Octavia Malet
Munro Ferencz
Jefferson Schemmer
Octavia Malet
Adams Morasca
Jeanfrancois Venere
Morrow Ruta
Adams Morasca
Jennifer Amigon
Izzy Garufi
Arvin Albares
Stacey Maclead
Cody Saylors
Antonio Caudy
Clifford Rim
Chavez Briddick
Mayumi Kolmetz
Aditya Kusko
James Butt
Jones Vocelka
Leja Caldarera
Maria Marrier
Arvin Albares
Wickens Nestle
Kaitlin Ostrosky
Morrow Ruta
Johnson Sergi
Ricardo Gaucho
Morrow Ruta
Octavia Malet
Chavez Briddick
Darci Poquette
Nicolas Iturbide
Jeanfrancois Venere
Emily Whobrey
Murillo Malet
Mayumi Kolmetz
Costa Dilliard
Emily Whobrey
Izzy Garufi
Maria Marrier
Stacey Maclead
Claire Tollner
Deepesh Chui
Morrow Ruta
Mayumi Kolmetz
IdCountryDate
1000Australia2026-04-14
1001India2026-04-19
1002Spain2026-03-27
1003Japan2026-04-09
1004Italy2026-04-02
1005Russia2026-04-10
1006Canada2026-04-16
1007Germany2026-03-29
1008Argentina2026-04-06
1009United Kingdom2026-04-01
1010Germany2026-03-31
1011United Kingdom2026-04-23
1012Brazil2026-04-20
1013Japan2026-04-08
1014Russia2026-03-28
1015Spain2026-04-15
1016Canada2026-04-13
1017Australia2026-04-15
1018Russia2026-04-17
1019Canada2026-04-09
1020Australia2026-04-18
1021Brazil2026-04-09
1022Australia2026-04-06
1023Russia2026-04-05
1024Japan2026-04-23
1025Italy2026-04-12
1026Canada2026-04-10
1027India2026-03-26
1028Canada2026-04-05
1029United Kingdom2026-04-04
1030Japan2026-04-23
1031Russia2026-04-20
1032Russia2026-04-19
1033France2026-03-26
1034Argentina2026-03-27
1035Germany2026-04-04
1036Australia2026-04-18
1037France2026-04-21
1038Spain2026-03-27
1039France2026-04-16
1040Germany2026-04-13
1041Italy2026-04-19
1042Canada2026-04-06
1043Italy2026-04-21
1044Russia2026-04-16
1045Argentina2026-04-13
1046Italy2026-04-16
1047Spain2026-04-04
1048Canada2026-04-21
1049Australia2026-03-31

On-Demand Data

NameIdCountryDate
Johnson Sergi1000India2026-04-23
Munro Ferencz1001Brazil2026-04-15
Greenwood Bolognia1002Germany2026-04-09
Silvio Slusarski1003Australia2026-03-29
Rodrigues Campain1004Japan2026-04-13
Jefferson Schemmer1005Canada2026-04-23
Antonio Caudy1006Canada2026-04-20
Sinclair Waycott1007France2026-04-03
Mayumi Kolmetz1008Brazil2026-04-16
Isabel Bowley1009United Kingdom2026-04-02
Wickens Nestle1010Japan2026-04-10
Maria Marrier1011United Kingdom2026-04-08
Claire Tollner1012Germany2026-04-01
Claire Tollner1013India2026-04-18
Leja Caldarera1014Germany2026-04-07
Kadeem Flosi1015Russia2026-03-30
Clifford Rim1016India2026-04-06
Darci Poquette1017Italy2026-04-11
Costa Dilliard1018Japan2026-04-14
Adams Morasca1019Brazil2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens NestleArgentinaStephen Shaw QUALIFIED
Jones VocelkaCanadaXuxue Feng UNQUALIFIED
Jefferson SchemmerJapanIvan Magalhaes QUALIFIED
James ButtJapanAsiya Javayant NEGOTIATION
Nicolas IturbideUnited KingdomStephen Shaw PROPOSAL
Misaki RoysterSpainAnna Fali RENEWAL
Aika InouyeItalyAnna Fali RENEWAL
Juan WieserArgentinaIoni Bowcher UNQUALIFIED
Misaki RoysterJapanStephen Shaw NEGOTIATION
Ricardo GauchoJapanIoni Bowcher NEGOTIATION
Juan WieserUnited KingdomXuxue Feng NEGOTIATION
Deepesh ChuiSpainElwin Sharvill RENEWAL
Alejandro PerinCanadaElwin Sharvill NEW
Jeanfrancois VenereAustraliaOnyama Limba NEW
Emily WhobreyRussiaElwin Sharvill NEGOTIATION
Munro FerenczFranceIoni Bowcher PROPOSAL
Aika InouyeFranceOnyama Limba PROPOSAL
Chavez BriddickJapanOnyama Limba RENEWAL
Aika InouyeIndiaElwin Sharvill PROPOSAL
Octavia MaletGermanyElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomOnyama Limba UNQUALIFIED
Tony FollerJapanOnyama Limba NEGOTIATION
Costa DilliardSpainXuxue Feng PROPOSAL
Francesco ShinkoBrazilElwin Sharvill NEGOTIATION
Jefferson SchemmerJapanAnna Fali NEGOTIATION
Ricardo GauchoUnited KingdomAnna Fali PROPOSAL
David DarakjyJapanAmy Elsner NEGOTIATION
Clifford RimGermanyBernardo Dominic UNQUALIFIED
Silvio SlusarskiGermanyElwin Sharvill RENEWAL
Morrow RutaGermanyAsiya Javayant UNQUALIFIED
Ricardo GauchoAustraliaAsiya Javayant NEW
Adams MorascaCanadaIoni Bowcher NEGOTIATION
Jeanfrancois VenereJapanElwin Sharvill QUALIFIED
Deepesh ChuiGermanyAsiya Javayant RENEWAL
Jennifer AmigonJapanXuxue Feng RENEWAL
Jeanfrancois VenereFranceAnna Fali RENEWAL
Adams MorascaGermanyStephen Shaw UNQUALIFIED
Aditya KuskoBrazilIvan Magalhaes NEW
Octavia MaletBrazilAnna Fali NEW
Jefferson SchemmerUnited KingdomElwin Sharvill 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>