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
Isabel BowleyRussiaBernardo Dominic RENEWAL
Clifford RimItalyAmy Elsner NEGOTIATION
Maria MarrierIndiaXuxue Feng NEW
Octavia MaletArgentinaOnyama Limba PROPOSAL
Morrow RutaRussiaAmy Elsner PROPOSAL
Claire TollnerJapanAnna Fali QUALIFIED
Darci PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Claire TollnerItalyXuxue Feng NEGOTIATION
Aditya KuskoBrazilBernardo Dominic NEW
Maisha RulapaughRussiaXuxue Feng NEGOTIATION
Maria MarrierRussiaOnyama Limba QUALIFIED
Ricardo GauchoArgentinaBernardo Dominic QUALIFIED
Salvatore StockhamCanadaIoni Bowcher UNQUALIFIED
Stacey MacleadJapanAsiya Javayant QUALIFIED
Chavez BriddickGermanyIvan Magalhaes NEW
Antonio CaudyJapanIoni Bowcher NEW
Misaki RoysterFranceAsiya Javayant NEGOTIATION
Morrow RutaUnited KingdomAnna Fali RENEWAL
Jones VocelkaRussiaAsiya Javayant NEW
Ivar PaprockiArgentinaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant NEW
Jeanfrancois VenereRussiaElwin Sharvill UNQUALIFIED
Izzy GarufiAustraliaBernardo Dominic RENEWAL
Murillo MaletUnited KingdomBernardo Dominic PROPOSAL
Francesco ShinkoUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues CampainItalyAsiya Javayant RENEWAL
Kaitlin OstroskyUnited KingdomOnyama Limba NEW
Cody SaylorsBrazilOnyama Limba PROPOSAL
Salvatore StockhamBrazilElwin Sharvill PROPOSAL
Kadeem FlosiCanadaIvan Magalhaes PROPOSAL
Kadeem FlosiAustraliaStephen Shaw PROPOSAL
Emily WhobreyArgentinaAsiya Javayant QUALIFIED
Leja CaldareraArgentinaStephen Shaw NEGOTIATION
Octavia MaletRussiaAmy Elsner NEW
Julie StensethJapanElwin Sharvill QUALIFIED
Nicolas IturbideAustraliaAsiya Javayant QUALIFIED
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Mayumi KolmetzAustraliaAmy Elsner NEGOTIATION
Isabel BowleyItalyXuxue Feng NEGOTIATION
Ivar PaprockiUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois VenereJapanAmy Elsner NEGOTIATION
Emily WhobreyUnited KingdomOnyama Limba QUALIFIED
Aika InouyeCanadaOnyama Limba PROPOSAL
Ricardo GauchoIndiaStephen Shaw RENEWAL
Julie StensethJapanAsiya Javayant UNQUALIFIED
Adams MorascaArgentinaXuxue Feng PROPOSAL
Morrow RutaGermanyStephen Shaw NEW
Juan WieserRussiaIvan Magalhaes PROPOSAL
Jennifer AmigonBrazilIoni Bowcher PROPOSAL
Costa DilliardItalyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Adams MorascaBrazilBernardo Dominic RENEWAL
Smith GlickAustraliaAsiya Javayant RENEWAL
Julie StensethUnited KingdomAnna Fali RENEWAL
Ashley DoeSpainStephen Shaw NEGOTIATION
Arvin AlbaresUnited KingdomAnna Fali UNQUALIFIED
James ButtJapanIvan Magalhaes PROPOSAL
Alejandro PerinArgentinaXuxue Feng RENEWAL
Faith GillianUnited KingdomIoni Bowcher NEGOTIATION
Francesco ShinkoGermanyIvan Magalhaes PROPOSAL
Cody SaylorsUnited KingdomAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzIndia2026-04-06Buckley Miller Wright RENEWAL61Asiya Javayant
1001Morrow RutaBrazil2026-04-09Printing Dimensions NEW70Ivan Magalhaes
1002Isabel BowleyFrance2026-03-29Printing Dimensions RENEWAL56Stephen Shaw
1003James ButtArgentina2026-04-08Rousseaux, Michael Esq PROPOSAL40Onyama Limba
1004Francesco ShinkoJapan2026-04-22Feiner Bros NEW65Elwin Sharvill
1005Sinclair WaycottGermany2026-04-17Chemel, James L Cpa UNQUALIFIED63Bernardo Dominic
1006Ricardo GauchoUnited Kingdom2026-04-05Feltz Printing Service NEW75Asiya Javayant
1007Claire TollnerCanada2026-03-30Commercial Press UNQUALIFIED28Stephen Shaw
1008Arvin AlbaresAustralia2026-04-18Buckley Miller Wright NEW64Amy Elsner
1009Aditya KuskoGermany2026-04-15Chapman, Ross E Esq RENEWAL19Anna Fali
1010Johnson SergiFrance2026-04-11Morlong Associates PROPOSAL58Elwin Sharvill
1011Ashley DoeGermany2026-04-16Chemel, James L Cpa UNQUALIFIED2Anna Fali
1012Ivar PaprockiGermany2026-04-13Chapman, Ross E Esq QUALIFIED73Elwin Sharvill
1013Claire TollnerArgentina2026-04-06Feltz Printing Service RENEWAL34Ivan Magalhaes
1014Alejandro PerinUnited Kingdom2026-04-03Chemel, James L Cpa UNQUALIFIED5Anna Fali
1015Morrow RutaSpain2026-04-22Morlong Associates RENEWAL24Elwin Sharvill
1016Darci PoquetteJapan2026-04-12Buckley Miller Wright NEW49Stephen Shaw
1017Johnson SergiUnited Kingdom2026-04-23Buckley Miller Wright RENEWAL62Anna Fali
1018Wickens NestleUnited Kingdom2026-04-08Dorl, James J Esq QUALIFIED61Amy Elsner
1019Salvatore StockhamItaly2026-04-07King, Christopher A Esq RENEWAL9Elwin Sharvill
1020Rodrigues CampainCanada2026-03-27Rousseaux, Michael Esq QUALIFIED2Elwin Sharvill
1021Alejandro PerinArgentina2026-04-08Feiner Bros NEGOTIATION16Asiya Javayant
1022Wickens NestleUnited Kingdom2026-04-20Rangoni Of Florence NEGOTIATION55Ivan Magalhaes
1023David DarakjyIndia2026-04-01Morlong Associates NEGOTIATION18Onyama Limba
1024Aruna FigeroaSpain2026-03-26Dorl, James J Esq QUALIFIED13Stephen Shaw
1025Arvin AlbaresSpain2026-04-10Chemel, James L Cpa NEGOTIATION68Elwin Sharvill
1026Leja CaldareraIndia2026-03-26Benton, John B Jr QUALIFIED38Xuxue Feng
1027Maria MarrierIndia2026-04-06Printing Dimensions RENEWAL34Elwin Sharvill
1028Jefferson SchemmerJapan2026-04-16Printing Dimensions QUALIFIED25Amy Elsner
1029Mayumi KolmetzIndia2026-04-05Benton, John B Jr QUALIFIED93Anna Fali
1030Antonio CaudySpain2026-04-01Chanay, Jeffrey A Esq UNQUALIFIED93Amy Elsner
1031Cody SaylorsBrazil2026-04-07Commercial Press UNQUALIFIED78Onyama Limba
1032James ButtJapan2026-03-30Truhlar And Truhlar Attys NEGOTIATION91Asiya Javayant
1033Deepesh ChuiCanada2026-04-05Morlong Associates NEW96Anna Fali
1034Kadeem FlosiAustralia2026-04-08Morlong Associates UNQUALIFIED18Xuxue Feng
1035Johnson SergiSpain2026-04-15Dorl, James J Esq NEGOTIATION81Elwin Sharvill
1036Stacey MacleadAustralia2026-04-23Feltz Printing Service NEW74Ivan Magalhaes
1037Faith GillianIndia2026-04-08Morlong Associates PROPOSAL99Xuxue Feng
1038Ricardo GauchoCanada2026-04-10Chapman, Ross E Esq NEGOTIATION33Onyama Limba
1039Salvatore StockhamItaly2026-04-09Rangoni Of Florence NEW72Onyama Limba
1040Jefferson SchemmerCanada2026-04-12Commercial Press UNQUALIFIED52Ioni Bowcher
1041Ashley DoeSpain2026-03-31Rousseaux, Michael Esq QUALIFIED13Elwin Sharvill
1042James ButtUnited Kingdom2026-04-13Chapman, Ross E Esq PROPOSAL87Xuxue Feng
1043Tony FollerJapan2026-04-10Chanay, Jeffrey A Esq RENEWAL96Asiya Javayant
1044Mayumi KolmetzIndia2026-04-08Rousseaux, Michael Esq QUALIFIED28Ioni Bowcher
1045Ivar PaprockiCanada2026-04-03Rangoni Of Florence NEGOTIATION60Xuxue Feng
1046Jones VocelkaFrance2026-04-01Chemel, James L Cpa PROPOSAL59Stephen Shaw
1047Tony FollerJapan2026-04-04Buckley Miller Wright NEW83Bernardo Dominic
1048Aruna FigeroaBrazil2026-04-23Morlong Associates NEW65Amy Elsner
1049Jefferson SchemmerCanada2026-03-31Rousseaux, Michael Esq NEGOTIATION45Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteCanadaBernardo Dominic NEGOTIATION
Jones VocelkaJapanAmy Elsner NEGOTIATION
Sinclair WaycottBrazilElwin Sharvill NEW
Darci PoquetteJapanOnyama Limba PROPOSAL
Juan WieserBrazilIoni Bowcher NEGOTIATION
Leon OldroydFranceStephen Shaw RENEWAL
Jennifer AmigonSpainXuxue Feng UNQUALIFIED
Cody SaylorsArgentinaIoni Bowcher NEGOTIATION
Francesco ShinkoAustraliaOnyama Limba RENEWAL
Alejandro PerinCanadaIoni Bowcher PROPOSAL
Rodrigues CampainUnited KingdomOnyama Limba UNQUALIFIED
Costa DilliardAustraliaIoni Bowcher UNQUALIFIED
Mujtaba NickaBrazilStephen Shaw NEGOTIATION
Salvatore StockhamArgentinaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyCanadaOnyama Limba QUALIFIED
Maria MarrierItalyAnna Fali UNQUALIFIED
Faith GillianFranceOnyama Limba PROPOSAL
Greenwood BologniaSpainIoni Bowcher QUALIFIED
Aditya KuskoUnited KingdomAmy Elsner RENEWAL
Rodrigues CampainBrazilOnyama Limba QUALIFIED
Julie StensethUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois VenereJapanIvan Magalhaes NEGOTIATION
David DarakjyArgentinaAsiya Javayant QUALIFIED
Juan WieserAustraliaStephen Shaw NEGOTIATION
Ricardo GauchoUnited KingdomIoni Bowcher NEGOTIATION
Deepesh ChuiArgentinaXuxue Feng QUALIFIED
James ButtUnited KingdomXuxue Feng QUALIFIED
Costa DilliardJapanAsiya Javayant PROPOSAL
Sinclair WaycottSpainStephen Shaw RENEWAL
Silvio SlusarskiSpainIvan Magalhaes UNQUALIFIED
David DarakjyAustraliaStephen Shaw NEGOTIATION
Alejandro PerinFranceStephen Shaw UNQUALIFIED
Tony FollerArgentinaElwin Sharvill UNQUALIFIED
Claire TollnerFranceStephen Shaw PROPOSAL
Isabel BowleyRussiaXuxue Feng RENEWAL
Sinclair WaycottArgentinaElwin Sharvill QUALIFIED
Rodrigues CampainRussiaIvan Magalhaes NEGOTIATION
Maria MarrierBrazilElwin Sharvill NEGOTIATION
Johnson SergiItalyBernardo Dominic UNQUALIFIED
Nicolas IturbideJapanAnna Fali RENEWAL
Smith GlickArgentinaIoni Bowcher QUALIFIED
Munro FerenczCanadaXuxue Feng QUALIFIED
Octavia MaletAustraliaXuxue Feng PROPOSAL
Octavia MaletIndiaIvan Magalhaes PROPOSAL
Kadeem FlosiFranceAnna Fali UNQUALIFIED
Murillo MaletAustraliaIvan Magalhaes QUALIFIED
Faith GillianCanadaAmy Elsner RENEWAL
Stacey MacleadFranceAsiya Javayant PROPOSAL
Ricardo GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba NickaArgentinaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jennifer Amigon
Jones Vocelka
Misaki Royster
Ricardo Gaucho
Salvatore Stockham
Sinclair Waycott
Aika Inouye
Ricardo Gaucho
Ivar Paprocki
Cody Saylors
Chavez Briddick
Kadeem Flosi
Misaki Royster
Jones Vocelka
Cody Saylors
Rodrigues Campain
Mayumi Kolmetz
Ricardo Gaucho
Aika Inouye
Maisha Rulapaugh
Ashley Doe
Kadeem Flosi
Rodrigues Campain
Octavia Malet
Emily Whobrey
Francesco Shinko
Octavia Malet
Faith Gillian
Sinclair Waycott
Wickens Nestle
Jennifer Amigon
Salvatore Stockham
Stacey Maclead
James Butt
Isabel Bowley
Jennifer Amigon
James Butt
Chavez Briddick
Leon Oldroyd
Jones Vocelka
Octavia Malet
Stacey Maclead
Emily Whobrey
Ivar Paprocki
Aditya Kusko
Misaki Royster
Smith Glick
David Darakjy
Ashley Doe
Ricardo Gaucho
IdCountryDate
1000Russia2026-03-26
1001Italy2026-03-30
1002India2026-03-25
1003Argentina2026-04-19
1004Germany2026-04-16
1005Brazil2026-04-15
1006France2026-03-29
1007India2026-04-06
1008Brazil2026-03-27
1009India2026-03-27
1010Italy2026-04-03
1011United Kingdom2026-04-13
1012Germany2026-04-08
1013Canada2026-03-30
1014Brazil2026-03-25
1015Russia2026-04-16
1016Australia2026-04-23
1017Russia2026-04-23
1018Spain2026-04-12
1019Brazil2026-04-16
1020Italy2026-04-01
1021Italy2026-04-08
1022Germany2026-03-28
1023Russia2026-03-29
1024Australia2026-04-09
1025Brazil2026-04-01
1026France2026-04-06
1027Russia2026-04-19
1028France2026-04-20
1029Japan2026-04-14
1030India2026-04-16
1031India2026-04-15
1032France2026-03-31
1033Germany2026-04-22
1034Brazil2026-04-10
1035United Kingdom2026-04-22
1036India2026-04-14
1037Brazil2026-04-16
1038United Kingdom2026-04-20
1039Italy2026-04-19
1040France2026-04-23
1041Spain2026-04-10
1042Russia2026-04-13
1043Brazil2026-04-08
1044Canada2026-03-30
1045Italy2026-04-02
1046Russia2026-03-29
1047India2026-03-27
1048Italy2026-04-10
1049Spain2026-04-10

On-Demand Data

NameIdCountryDate
Faith Gillian1000Brazil2026-04-23
Antonio Caudy1001France2026-04-11
Ivar Paprocki1002France2026-04-10
Cody Saylors1003Germany2026-04-23
Aika Inouye1004United Kingdom2026-04-21
Faith Gillian1005India2026-03-29
Darci Poquette1006Canada2026-03-27
Tony Foller1007Canada2026-04-06
Misaki Royster1008France2026-04-04
Jefferson Schemmer1009Italy2026-03-26
Stacey Maclead1010France2026-04-05
Darci Poquette1011United Kingdom2026-04-02
Adams Morasca1012United Kingdom2026-04-16
Salvatore Stockham1013Japan2026-04-20
David Darakjy1014Spain2026-04-04
Ashley Doe1015Spain2026-04-01
Mayumi Kolmetz1016France2026-04-02
Smith Glick1017United Kingdom2026-04-03
Tony Foller1018United Kingdom2026-04-01
Rodrigues Campain1019Australia2026-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottUnited KingdomIvan Magalhaes PROPOSAL
Aruna FigeroaFranceAmy Elsner NEGOTIATION
Deepesh ChuiSpainAnna Fali RENEWAL
James ButtAustraliaXuxue Feng RENEWAL
Morrow RutaCanadaStephen Shaw RENEWAL
Cody SaylorsJapanElwin Sharvill NEGOTIATION
Juan WieserJapanIvan Magalhaes PROPOSAL
David DarakjySpainIvan Magalhaes NEW
Octavia MaletSpainIvan Magalhaes QUALIFIED
Smith GlickAustraliaStephen Shaw QUALIFIED
Murillo MaletCanadaIoni Bowcher UNQUALIFIED
Munro FerenczIndiaAnna Fali NEW
Aika InouyeGermanyAsiya Javayant PROPOSAL
Leja CaldareraGermanyElwin Sharvill NEGOTIATION
Maisha RulapaughItalyIoni Bowcher NEW
Antonio CaudyIndiaIoni Bowcher NEW
Aika InouyeRussiaElwin Sharvill UNQUALIFIED
Claire TollnerUnited KingdomOnyama Limba PROPOSAL
Costa DilliardAustraliaOnyama Limba UNQUALIFIED
Maria MarrierRussiaOnyama Limba UNQUALIFIED
Greenwood BologniaCanadaAnna Fali UNQUALIFIED
Maisha RulapaughFranceIvan Magalhaes PROPOSAL
Aruna FigeroaUnited KingdomXuxue Feng NEW
Maisha RulapaughGermanyXuxue Feng NEGOTIATION
Emily WhobreyArgentinaOnyama Limba PROPOSAL
Smith GlickAustraliaAnna Fali NEGOTIATION
Greenwood BologniaGermanyAsiya Javayant NEW
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Johnson SergiBrazilXuxue Feng UNQUALIFIED
Cody SaylorsFranceIvan Magalhaes UNQUALIFIED
Jefferson SchemmerFranceAmy Elsner NEGOTIATION
Arvin AlbaresSpainOnyama Limba RENEWAL
David DarakjySpainBernardo Dominic PROPOSAL
Silvio SlusarskiAustraliaStephen Shaw QUALIFIED
David DarakjyUnited KingdomXuxue Feng PROPOSAL
Jennifer AmigonCanadaAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaAnna Fali QUALIFIED
Isabel BowleyRussiaBernardo Dominic PROPOSAL
Leon OldroydArgentinaIoni Bowcher PROPOSAL
Leon OldroydRussiaXuxue Feng UNQUALIFIED

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