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
Aika InouyeBrazilIvan Magalhaes QUALIFIED
Ricardo GauchoItalyBernardo Dominic PROPOSAL
Leja CaldareraRussiaAnna Fali PROPOSAL
Juan WieserArgentinaAsiya Javayant UNQUALIFIED
Misaki RoysterFranceBernardo Dominic PROPOSAL
Mayumi KolmetzIndiaXuxue Feng PROPOSAL
Octavia MaletGermanyXuxue Feng UNQUALIFIED
David DarakjyIndiaElwin Sharvill QUALIFIED
Sinclair WaycottGermanyIoni Bowcher PROPOSAL
Sinclair WaycottBrazilIoni Bowcher NEGOTIATION
Tony FollerArgentinaIoni Bowcher QUALIFIED
Jones VocelkaSpainElwin Sharvill PROPOSAL
Faith GillianGermanyAmy Elsner PROPOSAL
Isabel BowleyArgentinaBernardo Dominic NEW
Salvatore StockhamUnited KingdomAnna Fali NEGOTIATION
Izzy GarufiArgentinaElwin Sharvill QUALIFIED
Kaitlin OstroskyGermanyStephen Shaw NEW
James ButtUnited KingdomOnyama Limba PROPOSAL
Jennifer AmigonSpainBernardo Dominic QUALIFIED
Julie StensethFranceIvan Magalhaes PROPOSAL
Jefferson SchemmerSpainIvan Magalhaes QUALIFIED
Jennifer AmigonBrazilStephen Shaw QUALIFIED
Aruna FigeroaArgentinaAsiya Javayant PROPOSAL
David DarakjyItalyBernardo Dominic NEW
Smith GlickGermanyIvan Magalhaes NEGOTIATION
Alejandro PerinGermanyStephen Shaw RENEWAL
Costa DilliardGermanyAnna Fali NEGOTIATION
David DarakjyJapanAnna Fali NEGOTIATION
Leja CaldareraRussiaElwin Sharvill UNQUALIFIED
Murillo MaletBrazilAmy Elsner NEGOTIATION
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Leja CaldareraAustraliaStephen Shaw UNQUALIFIED
Salvatore StockhamSpainAsiya Javayant NEGOTIATION
David DarakjyAustraliaAsiya Javayant RENEWAL
Cody SaylorsGermanyBernardo Dominic QUALIFIED
Leja CaldareraItalyIoni Bowcher RENEWAL
Ashley DoeUnited KingdomOnyama Limba PROPOSAL
James ButtBrazilAnna Fali NEGOTIATION
Rodrigues CampainCanadaIoni Bowcher PROPOSAL
Maisha RulapaughUnited KingdomXuxue Feng UNQUALIFIED
Kadeem FlosiCanadaAnna Fali NEW
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Julie StensethFranceAmy Elsner RENEWAL
Maisha RulapaughArgentinaAnna Fali RENEWAL
Aruna FigeroaIndiaStephen Shaw NEW
Leja CaldareraAustraliaBernardo Dominic NEW
Octavia MaletRussiaAnna Fali UNQUALIFIED
Jefferson SchemmerFranceStephen Shaw PROPOSAL
Greenwood BologniaAustraliaXuxue Feng QUALIFIED
Adams MorascaGermanyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideArgentinaAsiya Javayant NEW
Johnson SergiIndiaElwin Sharvill NEGOTIATION
Morrow RutaArgentinaAmy Elsner RENEWAL
David DarakjyBrazilStephen Shaw QUALIFIED
Greenwood BologniaUnited KingdomAnna Fali PROPOSAL
Deepesh ChuiUnited KingdomIoni Bowcher NEW
Aruna FigeroaItalyOnyama Limba PROPOSAL
Mayumi KolmetzCanadaAmy Elsner QUALIFIED
Jennifer AmigonFranceStephen Shaw NEGOTIATION
Smith GlickArgentinaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainBrazil2026-04-18Morlong Associates UNQUALIFIED54Stephen Shaw
1001Chavez BriddickAustralia2026-04-22Morlong Associates NEGOTIATION54Bernardo Dominic
1002Maisha RulapaughGermany2026-03-30Chapman, Ross E Esq NEGOTIATION68Anna Fali
1003Morrow RutaRussia2026-03-27Morlong Associates PROPOSAL42Anna Fali
1004Wickens NestleAustralia2026-04-06Buckley Miller Wright RENEWAL11Elwin Sharvill
1005Jeanfrancois VenereIndia2026-04-03Chapman, Ross E Esq NEGOTIATION85Stephen Shaw
1006Aika InouyeArgentina2026-03-29Commercial Press QUALIFIED77Amy Elsner
1007Ashley DoeCanada2026-04-11Rangoni Of Florence QUALIFIED38Bernardo Dominic
1008Murillo MaletCanada2026-04-12Dorl, James J Esq NEGOTIATION43Ioni Bowcher
1009Octavia MaletCanada2026-04-06Commercial Press NEGOTIATION5Ivan Magalhaes
1010Wickens NestleItaly2026-04-15Chemel, James L Cpa QUALIFIED93Amy Elsner
1011Murillo MaletArgentina2026-04-24King, Christopher A Esq NEW85Ioni Bowcher
1012Jefferson SchemmerCanada2026-03-29Feltz Printing Service UNQUALIFIED96Bernardo Dominic
1013David DarakjyArgentina2026-04-02Benton, John B Jr NEW99Elwin Sharvill
1014Munro FerenczJapan2026-04-07Feltz Printing Service UNQUALIFIED50Xuxue Feng
1015Jennifer AmigonArgentina2026-04-19Feltz Printing Service QUALIFIED48Onyama Limba
1016Claire TollnerUnited Kingdom2026-04-06Morlong Associates NEGOTIATION83Xuxue Feng
1017Jones VocelkaRussia2026-04-22Feiner Bros UNQUALIFIED74Onyama Limba
1018Jefferson SchemmerSpain2026-04-08Commercial Press NEGOTIATION29Asiya Javayant
1019Ricardo GauchoArgentina2026-04-04Truhlar And Truhlar Attys NEW15Asiya Javayant
1020Aditya KuskoArgentina2026-04-16Feiner Bros NEGOTIATION23Ioni Bowcher
1021Aditya KuskoJapan2026-04-14Printing Dimensions UNQUALIFIED19Ioni Bowcher
1022Ivar PaprockiAustralia2026-04-01Buckley Miller Wright NEW81Stephen Shaw
1023Kaitlin OstroskyArgentina2026-04-18Morlong Associates UNQUALIFIED81Asiya Javayant
1024Arvin AlbaresIndia2026-03-30Benton, John B Jr PROPOSAL91Onyama Limba
1025Salvatore StockhamArgentina2026-04-19Feltz Printing Service RENEWAL22Stephen Shaw
1026Alejandro PerinSpain2026-04-01Buckley Miller Wright QUALIFIED56Anna Fali
1027Ricardo GauchoBrazil2026-04-25Printing Dimensions NEW54Ivan Magalhaes
1028Salvatore StockhamGermany2026-04-15Feiner Bros NEGOTIATION65Anna Fali
1029Stacey MacleadJapan2026-04-08Printing Dimensions UNQUALIFIED33Amy Elsner
1030Jennifer AmigonGermany2026-04-01King, Christopher A Esq UNQUALIFIED17Anna Fali
1031Adams MorascaCanada2026-03-28Printing Dimensions NEW68Anna Fali
1032Ashley DoeCanada2026-04-17Dorl, James J Esq QUALIFIED21Anna Fali
1033Juan WieserArgentina2026-04-09Feiner Bros RENEWAL90Anna Fali
1034Jefferson SchemmerFrance2026-04-19Dorl, James J Esq PROPOSAL15Ivan Magalhaes
1035Kaitlin OstroskyIndia2026-04-15Chanay, Jeffrey A Esq NEGOTIATION53Ioni Bowcher
1036Juan WieserSpain2026-04-09Chanay, Jeffrey A Esq UNQUALIFIED81Ivan Magalhaes
1037Smith GlickFrance2026-04-10Morlong Associates PROPOSAL27Ioni Bowcher
1038Maisha RulapaughCanada2026-04-19Rousseaux, Michael Esq PROPOSAL45Asiya Javayant
1039Jefferson SchemmerIndia2026-04-24Commercial Press RENEWAL30Anna Fali
1040Deepesh ChuiFrance2026-04-15Chanay, Jeffrey A Esq QUALIFIED96Ivan Magalhaes
1041Costa DilliardBrazil2026-04-18Rousseaux, Michael Esq UNQUALIFIED46Xuxue Feng
1042Sinclair WaycottIndia2026-04-16Buckley Miller Wright PROPOSAL91Bernardo Dominic
1043Aruna FigeroaUnited Kingdom2026-04-22Dorl, James J Esq QUALIFIED94Amy Elsner
1044Alejandro PerinRussia2026-04-08Chemel, James L Cpa QUALIFIED52Amy Elsner
1045Emily WhobreyCanada2026-04-10King, Christopher A Esq NEGOTIATION77Onyama Limba
1046Jeanfrancois VenereRussia2026-04-14Chemel, James L Cpa RENEWAL99Onyama Limba
1047Smith GlickGermany2026-03-27Rangoni Of Florence NEW83Elwin Sharvill
1048Adams MorascaBrazil2026-04-06Chapman, Ross E Esq PROPOSAL70Xuxue Feng
1049Arvin AlbaresFrance2026-04-20Feltz Printing Service RENEWAL32Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiCanadaElwin Sharvill RENEWAL
Stacey MacleadItalyIvan Magalhaes NEW
Emily WhobreyAustraliaIoni Bowcher NEW
Jeanfrancois VenereSpainOnyama Limba NEW
Chavez BriddickJapanAmy Elsner QUALIFIED
Francesco ShinkoItalyElwin Sharvill NEW
Chavez BriddickGermanyIoni Bowcher PROPOSAL
Arvin AlbaresJapanAmy Elsner QUALIFIED
Deepesh ChuiUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoSpainIoni Bowcher RENEWAL
Aika InouyeRussiaAmy Elsner UNQUALIFIED
Leon OldroydJapanAmy Elsner NEGOTIATION
Ricardo GauchoBrazilAmy Elsner NEW
Ivar PaprockiJapanAmy Elsner QUALIFIED
Clifford RimCanadaIoni Bowcher PROPOSAL
Antonio CaudyAustraliaIvan Magalhaes QUALIFIED
Arvin AlbaresFranceOnyama Limba RENEWAL
Maria MarrierSpainBernardo Dominic NEGOTIATION
Juan WieserFranceAnna Fali RENEWAL
Claire TollnerSpainIoni Bowcher NEGOTIATION
Leja CaldareraIndiaAmy Elsner UNQUALIFIED
Misaki RoysterItalyAnna Fali QUALIFIED
Francesco ShinkoSpainAsiya Javayant PROPOSAL
Munro FerenczRussiaAsiya Javayant NEW
Clifford RimJapanXuxue Feng UNQUALIFIED
Deepesh ChuiRussiaAmy Elsner NEW
Murillo MaletItalyIoni Bowcher PROPOSAL
Aika InouyeItalyBernardo Dominic UNQUALIFIED
Mujtaba NickaUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleUnited KingdomBernardo Dominic UNQUALIFIED
Claire TollnerCanadaBernardo Dominic QUALIFIED
Adams MorascaArgentinaOnyama Limba RENEWAL
Jones VocelkaGermanyIvan Magalhaes RENEWAL
Antonio CaudyJapanAmy Elsner UNQUALIFIED
Stacey MacleadGermanyBernardo Dominic QUALIFIED
Mujtaba NickaBrazilAnna Fali PROPOSAL
Claire TollnerGermanyAnna Fali QUALIFIED
Leja CaldareraGermanyOnyama Limba NEGOTIATION
Smith GlickGermanyBernardo Dominic PROPOSAL
Alejandro PerinGermanyAnna Fali QUALIFIED
Francesco ShinkoArgentinaOnyama Limba UNQUALIFIED
Costa DilliardItalyAsiya Javayant PROPOSAL
Smith GlickBrazilAmy Elsner NEGOTIATION
Stacey MacleadAustraliaXuxue Feng NEW
Morrow RutaItalyAnna Fali QUALIFIED
Nicolas IturbideItalyIvan Magalhaes NEW
Jeanfrancois VenereGermanyXuxue Feng NEGOTIATION
Mayumi KolmetzRussiaIoni Bowcher UNQUALIFIED
Costa DilliardBrazilOnyama Limba PROPOSAL
Frozen Columns
Name
Jones Vocelka
Francesco Shinko
Maria Marrier
Costa Dilliard
Wickens Nestle
Smith Glick
Jefferson Schemmer
Johnson Sergi
Smith Glick
Kaitlin Ostrosky
Aruna Figeroa
Alejandro Perin
James Butt
Ricardo Gaucho
Kaitlin Ostrosky
Misaki Royster
Kadeem Flosi
Chavez Briddick
Leon Oldroyd
Maria Marrier
Ashley Doe
Aditya Kusko
Rodrigues Campain
Leon Oldroyd
Kadeem Flosi
Maisha Rulapaugh
Darci Poquette
Claire Tollner
Jennifer Amigon
Greenwood Bolognia
Jones Vocelka
Mujtaba Nicka
Jennifer Amigon
Clifford Rim
Deepesh Chui
Costa Dilliard
Claire Tollner
Leon Oldroyd
Ivar Paprocki
Salvatore Stockham
Clifford Rim
Emily Whobrey
Smith Glick
Aditya Kusko
Smith Glick
Ricardo Gaucho
Salvatore Stockham
Greenwood Bolognia
David Darakjy
Greenwood Bolognia
IdCountryDate
1000Germany2026-04-18
1001Italy2026-03-28
1002France2026-04-01
1003Germany2026-04-09
1004Australia2026-04-12
1005Argentina2026-04-01
1006Japan2026-03-29
1007Canada2026-04-10
1008India2026-04-24
1009Japan2026-04-05
1010India2026-04-02
1011Argentina2026-04-15
1012France2026-04-01
1013France2026-04-14
1014Argentina2026-04-12
1015Italy2026-04-25
1016Argentina2026-03-27
1017United Kingdom2026-04-06
1018France2026-04-18
1019Italy2026-04-13
1020Brazil2026-04-12
1021Canada2026-04-03
1022Italy2026-04-20
1023Brazil2026-03-31
1024Japan2026-04-05
1025Australia2026-04-22
1026Italy2026-04-20
1027Argentina2026-04-20
1028Argentina2026-04-02
1029Germany2026-04-03
1030India2026-03-27
1031Italy2026-04-20
1032Australia2026-04-02
1033Argentina2026-03-28
1034India2026-04-18
1035Japan2026-04-14
1036Australia2026-04-05
1037Canada2026-04-06
1038United Kingdom2026-04-04
1039France2026-04-11
1040Australia2026-04-05
1041Brazil2026-04-22
1042Italy2026-04-14
1043Australia2026-04-10
1044India2026-04-22
1045Japan2026-04-05
1046United Kingdom2026-04-24
1047Russia2026-04-19
1048France2026-04-17
1049Argentina2026-04-02

On-Demand Data

NameIdCountryDate
Emily Whobrey1000Russia2026-04-20
Mayumi Kolmetz1001Italy2026-04-18
Emily Whobrey1002France2026-04-09
Mayumi Kolmetz1003Australia2026-04-23
Kaitlin Ostrosky1004Germany2026-04-25
Johnson Sergi1005Canada2026-03-28
Adams Morasca1006France2026-04-20
Kadeem Flosi1007India2026-03-30
Arvin Albares1008France2026-03-30
Leja Caldarera1009Canada2026-04-16
Greenwood Bolognia1010Russia2026-04-13
Chavez Briddick1011Canada2026-04-15
Francesco Shinko1012Russia2026-04-10
Ashley Doe1013Spain2026-04-25
Adams Morasca1014United Kingdom2026-04-17
Aditya Kusko1015India2026-04-11
Jeanfrancois Venere1016Russia2026-04-15
James Butt1017Russia2026-04-23
Juan Wieser1018Japan2026-04-19
Tony Foller1019United Kingdom2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerItalyBernardo Dominic NEW
David DarakjySpainXuxue Feng NEGOTIATION
Juan WieserRussiaBernardo Dominic PROPOSAL
Ricardo GauchoArgentinaStephen Shaw RENEWAL
Munro FerenczJapanBernardo Dominic QUALIFIED
Cody SaylorsAustraliaAmy Elsner NEW
Jones VocelkaSpainIoni Bowcher QUALIFIED
Stacey MacleadIndiaXuxue Feng NEW
Smith GlickIndiaAmy Elsner NEGOTIATION
Deepesh ChuiUnited KingdomBernardo Dominic NEGOTIATION
Misaki RoysterIndiaIvan Magalhaes RENEWAL
Cody SaylorsBrazilAmy Elsner NEGOTIATION
Clifford RimFranceOnyama Limba NEW
Rodrigues CampainArgentinaAmy Elsner QUALIFIED
Alejandro PerinItalyStephen Shaw UNQUALIFIED
Isabel BowleyGermanyBernardo Dominic NEGOTIATION
Leon OldroydBrazilAnna Fali PROPOSAL
David DarakjyArgentinaOnyama Limba UNQUALIFIED
Jennifer AmigonFranceOnyama Limba RENEWAL
Ashley DoeCanadaOnyama Limba QUALIFIED
Isabel BowleyGermanyIvan Magalhaes UNQUALIFIED
Darci PoquetteFranceIoni Bowcher NEW
Aika InouyeArgentinaOnyama Limba RENEWAL
Leon OldroydJapanAmy Elsner NEGOTIATION
Stacey MacleadSpainXuxue Feng QUALIFIED
Deepesh ChuiAustraliaOnyama Limba NEW
Munro FerenczAustraliaBernardo Dominic NEGOTIATION
Nicolas IturbideCanadaElwin Sharvill NEGOTIATION
Jones VocelkaFranceOnyama Limba NEW
Kadeem FlosiAustraliaOnyama Limba NEGOTIATION
Johnson SergiArgentinaBernardo Dominic RENEWAL
Costa DilliardUnited KingdomStephen Shaw QUALIFIED
Izzy GarufiAustraliaElwin Sharvill RENEWAL
Francesco ShinkoAustraliaAnna Fali NEGOTIATION
Silvio SlusarskiFranceElwin Sharvill QUALIFIED
Ivar PaprockiItalyAmy Elsner RENEWAL
Leja CaldareraItalyIoni Bowcher NEW
Izzy GarufiFranceAnna Fali NEGOTIATION
Adams MorascaAustraliaStephen Shaw RENEWAL
Silvio SlusarskiBrazilIoni Bowcher 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>