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
Arvin AlbaresAustraliaStephen Shaw NEW
Stacey MacleadUnited KingdomXuxue Feng NEGOTIATION
Ivar PaprockiCanadaElwin Sharvill UNQUALIFIED
Munro FerenczSpainIoni Bowcher QUALIFIED
Chavez BriddickArgentinaOnyama Limba PROPOSAL
Costa DilliardCanadaAnna Fali PROPOSAL
Misaki RoysterRussiaBernardo Dominic NEGOTIATION
Francesco ShinkoGermanyBernardo Dominic NEW
Ricardo GauchoCanadaOnyama Limba RENEWAL
Adams MorascaUnited KingdomStephen Shaw NEGOTIATION
Maisha RulapaughUnited KingdomAnna Fali QUALIFIED
Aika InouyeUnited KingdomAnna Fali UNQUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Leja CaldareraArgentinaElwin Sharvill NEW
Alejandro PerinItalyAmy Elsner QUALIFIED
Octavia MaletBrazilIvan Magalhaes PROPOSAL
Johnson SergiFranceBernardo Dominic NEGOTIATION
Ricardo GauchoCanadaAmy Elsner PROPOSAL
Ivar PaprockiBrazilOnyama Limba UNQUALIFIED
Jeanfrancois VenereIndiaAsiya Javayant NEGOTIATION
Morrow RutaIndiaIoni Bowcher NEGOTIATION
Francesco ShinkoGermanyStephen Shaw QUALIFIED
Leja CaldareraRussiaAmy Elsner QUALIFIED
Nicolas IturbideRussiaElwin Sharvill PROPOSAL
Aditya KuskoRussiaOnyama Limba UNQUALIFIED
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
Aruna FigeroaUnited KingdomStephen Shaw NEGOTIATION
Mujtaba NickaArgentinaOnyama Limba QUALIFIED
Darci PoquetteFranceIoni Bowcher NEW
Darci PoquetteArgentinaBernardo Dominic UNQUALIFIED
Johnson SergiJapanStephen Shaw UNQUALIFIED
Octavia MaletItalyAmy Elsner UNQUALIFIED
Leon OldroydAustraliaXuxue Feng NEGOTIATION
Misaki RoysterAustraliaOnyama Limba PROPOSAL
Juan WieserIndiaAnna Fali QUALIFIED
Tony FollerItalyIoni Bowcher NEW
Smith GlickRussiaStephen Shaw NEGOTIATION
Faith GillianSpainXuxue Feng NEGOTIATION
Jeanfrancois VenereCanadaAsiya Javayant QUALIFIED
Jefferson SchemmerCanadaAsiya Javayant UNQUALIFIED
Juan WieserIndiaIvan Magalhaes PROPOSAL
Julie StensethBrazilElwin Sharvill UNQUALIFIED
Nicolas IturbideAustraliaAsiya Javayant UNQUALIFIED
Julie StensethItalyOnyama Limba NEW
Alejandro PerinRussiaBernardo Dominic PROPOSAL
Darci PoquetteGermanyAmy Elsner NEW
Alejandro PerinArgentinaXuxue Feng UNQUALIFIED
Emily WhobreyIndiaOnyama Limba RENEWAL
Octavia MaletItalyIvan Magalhaes QUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickRussiaAnna Fali QUALIFIED
Emily WhobreyFranceXuxue Feng NEW
Faith GillianIndiaAsiya Javayant UNQUALIFIED
Alejandro PerinAustraliaXuxue Feng PROPOSAL
Emily WhobreyBrazilBernardo Dominic QUALIFIED
Emily WhobreyItalyElwin Sharvill PROPOSAL
Tony FollerGermanyAsiya Javayant RENEWAL
Arvin AlbaresAustraliaAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaIoni Bowcher UNQUALIFIED
Costa DilliardBrazilStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraJapan2026-05-13Feltz Printing Service NEGOTIATION7Asiya Javayant
1001Deepesh ChuiIndia2026-05-23Feltz Printing Service UNQUALIFIED89Asiya Javayant
1002Misaki RoysterCanada2026-05-17Rousseaux, Michael Esq RENEWAL32Ivan Magalhaes
1003Mujtaba NickaArgentina2026-06-01King, Christopher A Esq RENEWAL43Anna Fali
1004Ricardo GauchoItaly2026-06-01Benton, John B Jr NEW53Anna Fali
1005Octavia MaletRussia2026-05-13Commercial Press NEW48Stephen Shaw
1006Maisha RulapaughIndia2026-05-24Feltz Printing Service QUALIFIED97Xuxue Feng
1007Stacey MacleadCanada2026-05-26Commercial Press PROPOSAL74Asiya Javayant
1008Salvatore StockhamCanada2026-05-25Feltz Printing Service PROPOSAL67Xuxue Feng
1009Leon OldroydBrazil2026-06-01Feltz Printing Service UNQUALIFIED91Onyama Limba
1010Julie StensethCanada2026-05-27Dorl, James J Esq NEW19Onyama Limba
1011Stacey MacleadArgentina2026-05-20Dorl, James J Esq PROPOSAL14Stephen Shaw
1012Leja CaldareraAustralia2026-05-03Feiner Bros UNQUALIFIED11Anna Fali
1013Greenwood BologniaUnited Kingdom2026-05-30Feiner Bros NEW17Ivan Magalhaes
1014Leja CaldareraSpain2026-05-17Feiner Bros RENEWAL19Ioni Bowcher
1015Smith GlickFrance2026-05-24Feltz Printing Service NEGOTIATION69Amy Elsner
1016Emily WhobreySpain2026-05-21Dorl, James J Esq UNQUALIFIED50Bernardo Dominic
1017Misaki RoysterBrazil2026-05-08Feltz Printing Service NEGOTIATION33Asiya Javayant
1018James ButtSpain2026-05-10Rangoni Of Florence NEGOTIATION15Xuxue Feng
1019Claire TollnerCanada2026-05-05Truhlar And Truhlar Attys PROPOSAL82Asiya Javayant
1020Smith GlickBrazil2026-05-16Printing Dimensions RENEWAL80Bernardo Dominic
1021Clifford RimBrazil2026-05-20Chapman, Ross E Esq NEGOTIATION73Amy Elsner
1022Leon OldroydRussia2026-05-31Printing Dimensions RENEWAL19Asiya Javayant
1023Smith GlickIndia2026-05-30King, Christopher A Esq UNQUALIFIED65Stephen Shaw
1024Chavez BriddickFrance2026-05-27Chemel, James L Cpa RENEWAL14Anna Fali
1025Emily WhobreyRussia2026-05-05Buckley Miller Wright QUALIFIED80Asiya Javayant
1026Kadeem FlosiBrazil2026-05-20King, Christopher A Esq NEGOTIATION11Ioni Bowcher
1027Jefferson SchemmerBrazil2026-05-29Chanay, Jeffrey A Esq QUALIFIED24Ivan Magalhaes
1028Salvatore StockhamFrance2026-05-16Commercial Press NEGOTIATION96Asiya Javayant
1029Mayumi KolmetzAustralia2026-05-10Rousseaux, Michael Esq NEW52Ivan Magalhaes
1030Chavez BriddickCanada2026-05-24Chemel, James L Cpa QUALIFIED15Elwin Sharvill
1031Aika InouyeUnited Kingdom2026-05-05Feltz Printing Service UNQUALIFIED53Xuxue Feng
1032Wickens NestleUnited Kingdom2026-05-14Dorl, James J Esq NEW57Asiya Javayant
1033Cody SaylorsBrazil2026-05-04Feltz Printing Service NEGOTIATION73Amy Elsner
1034Misaki RoysterAustralia2026-05-20Benton, John B Jr QUALIFIED81Ivan Magalhaes
1035Stacey MacleadAustralia2026-05-19Dorl, James J Esq RENEWAL61Asiya Javayant
1036Cody SaylorsGermany2026-05-18Truhlar And Truhlar Attys NEW55Ivan Magalhaes
1037Jones VocelkaItaly2026-05-25Rangoni Of Florence PROPOSAL89Ioni Bowcher
1038Tony FollerCanada2026-05-15Chemel, James L Cpa UNQUALIFIED57Onyama Limba
1039Stacey MacleadCanada2026-05-20Commercial Press PROPOSAL23Bernardo Dominic
1040Clifford RimSpain2026-05-22Feiner Bros RENEWAL80Onyama Limba
1041Ricardo GauchoAustralia2026-05-31Printing Dimensions NEW6Ivan Magalhaes
1042Murillo MaletItaly2026-05-21Buckley Miller Wright UNQUALIFIED87Stephen Shaw
1043Claire TollnerFrance2026-05-11Morlong Associates NEGOTIATION42Anna Fali
1044Maisha RulapaughItaly2026-05-12Commercial Press NEGOTIATION68Xuxue Feng
1045Jones VocelkaGermany2026-06-01Chemel, James L Cpa RENEWAL53Ivan Magalhaes
1046Nicolas IturbideGermany2026-05-17King, Christopher A Esq QUALIFIED14Amy Elsner
1047Francesco ShinkoCanada2026-05-14King, Christopher A Esq PROPOSAL7Bernardo Dominic
1048Kadeem FlosiFrance2026-05-25Rousseaux, Michael Esq UNQUALIFIED87Anna Fali
1049Alejandro PerinCanada2026-05-18Rangoni Of Florence RENEWAL34Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaRussiaAmy Elsner RENEWAL
Deepesh ChuiCanadaOnyama Limba UNQUALIFIED
Francesco ShinkoFranceIvan Magalhaes PROPOSAL
Jefferson SchemmerJapanAsiya Javayant QUALIFIED
Ivar PaprockiItalyStephen Shaw QUALIFIED
Costa DilliardItalyAmy Elsner PROPOSAL
Maisha RulapaughSpainStephen Shaw QUALIFIED
Izzy GarufiJapanElwin Sharvill NEW
Nicolas IturbideSpainOnyama Limba NEGOTIATION
Juan WieserUnited KingdomElwin Sharvill RENEWAL
Kadeem FlosiGermanyXuxue Feng QUALIFIED
Darci PoquetteJapanAnna Fali UNQUALIFIED
Izzy GarufiArgentinaXuxue Feng NEGOTIATION
Stacey MacleadUnited KingdomOnyama Limba PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant UNQUALIFIED
Munro FerenczBrazilIvan Magalhaes RENEWAL
Maria MarrierJapanStephen Shaw UNQUALIFIED
Cody SaylorsSpainAnna Fali QUALIFIED
Stacey MacleadFranceXuxue Feng UNQUALIFIED
Jeanfrancois VenereCanadaIvan Magalhaes UNQUALIFIED
Costa DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Misaki RoysterRussiaXuxue Feng PROPOSAL
Alejandro PerinCanadaIvan Magalhaes NEGOTIATION
Morrow RutaAustraliaIoni Bowcher UNQUALIFIED
Isabel BowleyRussiaElwin Sharvill NEGOTIATION
James ButtGermanyIvan Magalhaes PROPOSAL
Salvatore StockhamJapanElwin Sharvill UNQUALIFIED
Cody SaylorsItalyOnyama Limba RENEWAL
James ButtBrazilXuxue Feng PROPOSAL
Emily WhobreyUnited KingdomAmy Elsner PROPOSAL
Francesco ShinkoSpainIvan Magalhaes QUALIFIED
Deepesh ChuiJapanAnna Fali UNQUALIFIED
Isabel BowleyJapanElwin Sharvill NEGOTIATION
Mujtaba NickaIndiaXuxue Feng NEGOTIATION
Maria MarrierIndiaStephen Shaw NEW
Costa DilliardAustraliaAmy Elsner NEGOTIATION
Jefferson SchemmerGermanyIvan Magalhaes NEW
Claire TollnerAustraliaStephen Shaw PROPOSAL
Arvin AlbaresSpainStephen Shaw NEGOTIATION
Faith GillianAustraliaIoni Bowcher NEW
Costa DilliardGermanyStephen Shaw QUALIFIED
Salvatore StockhamFranceAsiya Javayant QUALIFIED
Antonio CaudyJapanAnna Fali UNQUALIFIED
Mayumi KolmetzArgentinaAnna Fali PROPOSAL
Juan WieserRussiaIoni Bowcher UNQUALIFIED
Mayumi KolmetzAustraliaStephen Shaw UNQUALIFIED
Murillo MaletCanadaStephen Shaw NEW
Leon OldroydJapanOnyama Limba NEGOTIATION
Deepesh ChuiUnited KingdomXuxue Feng QUALIFIED
Nicolas IturbideJapanXuxue Feng NEGOTIATION
Frozen Columns
Name
Arvin Albares
Murillo Malet
James Butt
Aditya Kusko
Deepesh Chui
Aruna Figeroa
Costa Dilliard
Ashley Doe
Jennifer Amigon
Morrow Ruta
Leon Oldroyd
Ricardo Gaucho
Maria Marrier
Tony Foller
Alejandro Perin
Tony Foller
Maria Marrier
Adams Morasca
Jefferson Schemmer
James Butt
Silvio Slusarski
Faith Gillian
Mujtaba Nicka
Leon Oldroyd
Jones Vocelka
Nicolas Iturbide
Costa Dilliard
Isabel Bowley
Johnson Sergi
Smith Glick
Mujtaba Nicka
Nicolas Iturbide
Chavez Briddick
Maisha Rulapaugh
Chavez Briddick
Morrow Ruta
Jennifer Amigon
Tony Foller
James Butt
Stacey Maclead
Isabel Bowley
Ivar Paprocki
Greenwood Bolognia
David Darakjy
Jennifer Amigon
Aruna Figeroa
Johnson Sergi
Maisha Rulapaugh
Leja Caldarera
Claire Tollner
IdCountryDate
1000Spain2026-05-07
1001France2026-05-26
1002Italy2026-05-06
1003Russia2026-05-18
1004France2026-05-22
1005United Kingdom2026-05-14
1006Argentina2026-05-12
1007Canada2026-05-19
1008Brazil2026-05-27
1009United Kingdom2026-05-09
1010Argentina2026-05-18
1011Spain2026-05-22
1012Spain2026-05-18
1013Brazil2026-05-28
1014Italy2026-05-29
1015Argentina2026-05-17
1016Italy2026-05-23
1017Germany2026-05-31
1018Italy2026-05-22
1019Spain2026-05-03
1020Spain2026-05-21
1021Japan2026-05-05
1022France2026-05-20
1023Brazil2026-05-23
1024Brazil2026-05-19
1025India2026-05-17
1026Japan2026-05-09
1027Argentina2026-05-06
1028Germany2026-05-29
1029Australia2026-05-08
1030India2026-05-28
1031Germany2026-05-14
1032Brazil2026-05-08
1033Germany2026-05-14
1034Russia2026-05-04
1035Russia2026-05-29
1036India2026-05-13
1037France2026-05-10
1038France2026-05-06
1039India2026-05-23
1040United Kingdom2026-05-07
1041United Kingdom2026-05-17
1042Russia2026-05-06
1043Spain2026-05-08
1044Brazil2026-05-21
1045Brazil2026-05-15
1046United Kingdom2026-05-26
1047Brazil2026-05-05
1048Germany2026-05-24
1049Argentina2026-05-04

On-Demand Data

NameIdCountryDate
Aika Inouye1000India2026-05-08
Jennifer Amigon1001India2026-05-10
Sinclair Waycott1002Canada2026-05-22
Maisha Rulapaugh1003Russia2026-05-12
Silvio Slusarski1004India2026-05-27
Aika Inouye1005United Kingdom2026-05-22
Leja Caldarera1006Argentina2026-05-27
Morrow Ruta1007Spain2026-05-04
Emily Whobrey1008Australia2026-05-14
Octavia Malet1009Germany2026-05-06
Darci Poquette1010Spain2026-05-24
Chavez Briddick1011Canada2026-05-06
Jones Vocelka1012Italy2026-06-01
Ricardo Gaucho1013Germany2026-05-09
Leja Caldarera1014India2026-05-19
Aditya Kusko1015Japan2026-05-03
Octavia Malet1016Italy2026-05-10
Rodrigues Campain1017France2026-05-07
Aruna Figeroa1018Japan2026-05-12
Stacey Maclead1019Russia2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon OldroydFranceIoni Bowcher PROPOSAL
Kadeem FlosiRussiaIoni Bowcher PROPOSAL
Munro FerenczUnited KingdomAsiya Javayant PROPOSAL
Kadeem FlosiIndiaIvan Magalhaes PROPOSAL
Johnson SergiSpainAmy Elsner UNQUALIFIED
Ricardo GauchoIndiaAmy Elsner NEW
Maria MarrierCanadaIoni Bowcher UNQUALIFIED
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Nicolas IturbideItalyIoni Bowcher NEGOTIATION
Leja CaldareraGermanyOnyama Limba NEW
Tony FollerRussiaBernardo Dominic NEW
Izzy GarufiSpainIvan Magalhaes PROPOSAL
Tony FollerFranceBernardo Dominic PROPOSAL
Ashley DoeCanadaStephen Shaw NEW
Aditya KuskoRussiaStephen Shaw UNQUALIFIED
Mujtaba NickaIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiRussiaIvan Magalhaes NEGOTIATION
Julie StensethAustraliaAnna Fali RENEWAL
Silvio SlusarskiSpainStephen Shaw RENEWAL
Tony FollerIndiaStephen Shaw NEW
Aruna FigeroaIndiaIoni Bowcher NEW
Misaki RoysterCanadaBernardo Dominic PROPOSAL
Sinclair WaycottFranceAnna Fali RENEWAL
Deepesh ChuiRussiaIoni Bowcher NEGOTIATION
Julie StensethArgentinaElwin Sharvill NEW
Stacey MacleadItalyStephen Shaw QUALIFIED
Octavia MaletUnited KingdomStephen Shaw NEGOTIATION
Ashley DoeRussiaOnyama Limba NEGOTIATION
Ricardo GauchoUnited KingdomXuxue Feng PROPOSAL
Francesco ShinkoFranceBernardo Dominic RENEWAL
Jefferson SchemmerUnited KingdomAsiya Javayant QUALIFIED
Juan WieserIndiaIoni Bowcher QUALIFIED
Stacey MacleadFranceOnyama Limba NEGOTIATION
Smith GlickSpainBernardo Dominic PROPOSAL
Izzy GarufiCanadaIoni Bowcher NEGOTIATION
Jefferson SchemmerGermanyXuxue Feng NEGOTIATION
David DarakjyIndiaElwin Sharvill RENEWAL
Johnson SergiAustraliaAnna Fali QUALIFIED
Johnson SergiBrazilAmy Elsner RENEWAL
Smith GlickUnited KingdomOnyama Limba 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>