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
Mujtaba NickaIndiaElwin Sharvill UNQUALIFIED
Rodrigues CampainFranceBernardo Dominic QUALIFIED
Arvin AlbaresBrazilIoni Bowcher RENEWAL
Wickens NestleCanadaIvan Magalhaes NEW
Tony FollerItalyIvan Magalhaes QUALIFIED
Cody SaylorsItalyAmy Elsner NEW
Claire TollnerArgentinaXuxue Feng PROPOSAL
Jeanfrancois VenereAustraliaIvan Magalhaes QUALIFIED
Izzy GarufiBrazilIoni Bowcher NEW
Faith GillianItalyIoni Bowcher RENEWAL
Wickens NestleItalyIoni Bowcher NEW
Faith GillianJapanBernardo Dominic RENEWAL
Greenwood BologniaBrazilAnna Fali RENEWAL
Murillo MaletBrazilAsiya Javayant UNQUALIFIED
Deepesh ChuiArgentinaOnyama Limba QUALIFIED
Johnson SergiSpainAsiya Javayant PROPOSAL
Alejandro PerinFranceXuxue Feng UNQUALIFIED
Kaitlin OstroskyFranceAnna Fali PROPOSAL
Aditya KuskoIndiaXuxue Feng PROPOSAL
Mujtaba NickaArgentinaElwin Sharvill RENEWAL
Wickens NestleIndiaBernardo Dominic NEW
Ivar PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Stacey MacleadAustraliaBernardo Dominic RENEWAL
Aruna FigeroaSpainXuxue Feng NEW
Adams MorascaBrazilXuxue Feng NEW
Jeanfrancois VenereUnited KingdomXuxue Feng QUALIFIED
Mujtaba NickaJapanStephen Shaw UNQUALIFIED
Claire TollnerIndiaAnna Fali QUALIFIED
Emily WhobreyGermanyAsiya Javayant QUALIFIED
Misaki RoysterRussiaAnna Fali RENEWAL
Jefferson SchemmerFranceIvan Magalhaes NEW
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Leja CaldareraCanadaBernardo Dominic RENEWAL
Munro FerenczIndiaXuxue Feng UNQUALIFIED
Izzy GarufiUnited KingdomAnna Fali NEGOTIATION
Misaki RoysterAustraliaAmy Elsner NEW
Salvatore StockhamItalyOnyama Limba NEW
Misaki RoysterFranceAsiya Javayant NEGOTIATION
Munro FerenczJapanStephen Shaw PROPOSAL
Kaitlin OstroskySpainBernardo Dominic QUALIFIED
Faith GillianAustraliaOnyama Limba QUALIFIED
Ricardo GauchoRussiaOnyama Limba NEGOTIATION
Munro FerenczJapanAmy Elsner NEW
Mujtaba NickaAustraliaIoni Bowcher UNQUALIFIED
Octavia MaletFranceStephen Shaw PROPOSAL
Maria MarrierItalyOnyama Limba RENEWAL
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
Arvin AlbaresRussiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteFranceXuxue Feng NEW
Francesco ShinkoJapanAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomAmy Elsner NEW
Arvin AlbaresUnited KingdomStephen Shaw PROPOSAL
Rodrigues CampainCanadaStephen Shaw UNQUALIFIED
Alejandro PerinBrazilIvan Magalhaes NEW
Adams MorascaRussiaBernardo Dominic NEW
Munro FerenczArgentinaAnna Fali UNQUALIFIED
Smith GlickUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois VenereIndiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyAustralia2026-04-05Commercial Press QUALIFIED16Bernardo Dominic
1001Leja CaldareraIndia2026-04-09Morlong Associates PROPOSAL22Xuxue Feng
1002Greenwood BologniaAustralia2026-04-26Chapman, Ross E Esq UNQUALIFIED26Xuxue Feng
1003Kaitlin OstroskyUnited Kingdom2026-04-26Rousseaux, Michael Esq NEW49Xuxue Feng
1004Ricardo GauchoGermany2026-04-01Morlong Associates QUALIFIED47Anna Fali
1005Julie StensethJapan2026-04-19Feltz Printing Service NEW5Bernardo Dominic
1006Aditya KuskoBrazil2026-04-18Printing Dimensions PROPOSAL95Bernardo Dominic
1007Deepesh ChuiFrance2026-04-08Chanay, Jeffrey A Esq UNQUALIFIED99Amy Elsner
1008Kadeem FlosiRussia2026-04-26Benton, John B Jr UNQUALIFIED77Anna Fali
1009Adams MorascaArgentina2026-04-24Chanay, Jeffrey A Esq NEGOTIATION20Xuxue Feng
1010Johnson SergiGermany2026-04-22Chapman, Ross E Esq NEW69Asiya Javayant
1011Kaitlin OstroskySpain2026-04-13Buckley Miller Wright UNQUALIFIED93Xuxue Feng
1012Maria MarrierSpain2026-04-07Printing Dimensions NEW63Ioni Bowcher
1013Isabel BowleyFrance2026-04-04Feltz Printing Service NEW31Anna Fali
1014Maria MarrierItaly2026-03-31Commercial Press QUALIFIED83Xuxue Feng
1015Stacey MacleadGermany2026-04-29Commercial Press NEGOTIATION26Stephen Shaw
1016Jones VocelkaFrance2026-04-15Dorl, James J Esq NEW11Ivan Magalhaes
1017Costa DilliardRussia2026-04-01Feltz Printing Service NEW34Elwin Sharvill
1018Aika InouyeSpain2026-04-13Rangoni Of Florence NEGOTIATION97Stephen Shaw
1019Claire TollnerJapan2026-04-14Chemel, James L Cpa UNQUALIFIED44Onyama Limba
1020Greenwood BologniaCanada2026-04-08Chanay, Jeffrey A Esq UNQUALIFIED34Xuxue Feng
1021Kadeem FlosiItaly2026-04-21Rangoni Of Florence RENEWAL95Elwin Sharvill
1022Munro FerenczItaly2026-04-13Morlong Associates NEGOTIATION86Ioni Bowcher
1023Aditya KuskoSpain2026-04-29Chemel, James L Cpa UNQUALIFIED91Anna Fali
1024Kaitlin OstroskyGermany2026-04-03Chemel, James L Cpa NEW32Xuxue Feng
1025Jennifer AmigonGermany2026-04-11Rangoni Of Florence PROPOSAL16Ivan Magalhaes
1026Ashley DoeUnited Kingdom2026-04-06Truhlar And Truhlar Attys PROPOSAL55Anna Fali
1027Aditya KuskoCanada2026-04-11Rousseaux, Michael Esq RENEWAL27Xuxue Feng
1028Murillo MaletGermany2026-04-23Chemel, James L Cpa RENEWAL64Anna Fali
1029Wickens NestleArgentina2026-04-25Buckley Miller Wright RENEWAL34Xuxue Feng
1030Nicolas IturbideSpain2026-04-12Feltz Printing Service RENEWAL43Anna Fali
1031Leon OldroydIndia2026-03-31Benton, John B Jr NEGOTIATION86Anna Fali
1032Stacey MacleadIndia2026-04-05Chanay, Jeffrey A Esq RENEWAL33Asiya Javayant
1033Murillo MaletSpain2026-04-10Dorl, James J Esq PROPOSAL27Stephen Shaw
1034Morrow RutaBrazil2026-04-18Chanay, Jeffrey A Esq RENEWAL37Onyama Limba
1035Ashley DoeJapan2026-04-29Commercial Press NEGOTIATION83Elwin Sharvill
1036Darci PoquetteBrazil2026-04-10Feiner Bros UNQUALIFIED6Amy Elsner
1037Adams MorascaIndia2026-04-01Commercial Press NEW39Onyama Limba
1038Nicolas IturbideSpain2026-03-31Rangoni Of Florence UNQUALIFIED37Xuxue Feng
1039Octavia MaletUnited Kingdom2026-04-22King, Christopher A Esq PROPOSAL14Xuxue Feng
1040Aika InouyeAustralia2026-04-08Chemel, James L Cpa NEGOTIATION55Xuxue Feng
1041Cody SaylorsAustralia2026-04-27Buckley Miller Wright NEGOTIATION52Xuxue Feng
1042Alejandro PerinJapan2026-04-23Rangoni Of Florence RENEWAL60Anna Fali
1043Murillo MaletFrance2026-04-12Truhlar And Truhlar Attys NEGOTIATION27Xuxue Feng
1044Clifford RimIndia2026-04-05King, Christopher A Esq NEGOTIATION26Ivan Magalhaes
1045Claire TollnerArgentina2026-04-15Feiner Bros NEW38Ioni Bowcher
1046Nicolas IturbideItaly2026-04-23Buckley Miller Wright PROPOSAL22Anna Fali
1047Francesco ShinkoAustralia2026-04-06Benton, John B Jr NEGOTIATION79Xuxue Feng
1048Sinclair WaycottUnited Kingdom2026-04-13Printing Dimensions QUALIFIED23Stephen Shaw
1049Clifford RimBrazil2026-04-02Chapman, Ross E Esq NEGOTIATION26Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
James ButtAustraliaOnyama Limba UNQUALIFIED
Mujtaba NickaItalyIvan Magalhaes PROPOSAL
Munro FerenczSpainElwin Sharvill RENEWAL
Ricardo GauchoBrazilOnyama Limba NEW
Jeanfrancois VenereIndiaIvan Magalhaes NEW
Antonio CaudyRussiaIoni Bowcher PROPOSAL
Jones VocelkaJapanStephen Shaw PROPOSAL
Morrow RutaFranceAnna Fali PROPOSAL
James ButtBrazilIvan Magalhaes UNQUALIFIED
Juan WieserGermanyXuxue Feng QUALIFIED
Rodrigues CampainItalyXuxue Feng NEGOTIATION
David DarakjyCanadaStephen Shaw QUALIFIED
Arvin AlbaresIndiaXuxue Feng PROPOSAL
Claire TollnerAustraliaIoni Bowcher NEGOTIATION
James ButtBrazilOnyama Limba RENEWAL
Arvin AlbaresRussiaAsiya Javayant UNQUALIFIED
Costa DilliardBrazilElwin Sharvill PROPOSAL
Emily WhobreyAustraliaXuxue Feng QUALIFIED
Munro FerenczArgentinaIoni Bowcher NEW
Jones VocelkaItalyIvan Magalhaes PROPOSAL
Mujtaba NickaRussiaIoni Bowcher UNQUALIFIED
James ButtBrazilElwin Sharvill RENEWAL
Julie StensethAustraliaAsiya Javayant NEGOTIATION
Mayumi KolmetzIndiaAsiya Javayant PROPOSAL
Juan WieserAustraliaIoni Bowcher PROPOSAL
Smith GlickBrazilBernardo Dominic RENEWAL
Silvio SlusarskiSpainXuxue Feng PROPOSAL
Munro FerenczJapanIvan Magalhaes NEGOTIATION
Arvin AlbaresSpainAsiya Javayant PROPOSAL
Smith GlickGermanyIvan Magalhaes RENEWAL
Cody SaylorsSpainOnyama Limba NEGOTIATION
Silvio SlusarskiFranceIoni Bowcher RENEWAL
Sinclair WaycottIndiaXuxue Feng UNQUALIFIED
Ivar PaprockiCanadaIoni Bowcher NEGOTIATION
Jones VocelkaArgentinaIvan Magalhaes QUALIFIED
Ivar PaprockiAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois VenereUnited KingdomAnna Fali PROPOSAL
Cody SaylorsAustraliaAnna Fali NEW
Smith GlickAustraliaXuxue Feng RENEWAL
Faith GillianFranceAmy Elsner RENEWAL
David DarakjyArgentinaIvan Magalhaes NEGOTIATION
Ivar PaprockiBrazilAnna Fali RENEWAL
Chavez BriddickJapanIvan Magalhaes NEGOTIATION
Izzy GarufiRussiaAmy Elsner NEW
Kaitlin OstroskyCanadaXuxue Feng NEGOTIATION
Tony FollerBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaArgentinaIoni Bowcher PROPOSAL
Octavia MaletUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro PerinJapanAnna Fali RENEWAL
Misaki RoysterBrazilBernardo Dominic NEW
Frozen Columns
Name
Darci Poquette
Murillo Malet
Isabel Bowley
Jefferson Schemmer
Kaitlin Ostrosky
Adams Morasca
Ivar Paprocki
Jones Vocelka
Cody Saylors
Johnson Sergi
Leon Oldroyd
Rodrigues Campain
Silvio Slusarski
Mujtaba Nicka
Izzy Garufi
Julie Stenseth
Jefferson Schemmer
Tony Foller
Adams Morasca
Leja Caldarera
Ivar Paprocki
Ricardo Gaucho
Octavia Malet
Aruna Figeroa
Morrow Ruta
Mayumi Kolmetz
Ricardo Gaucho
Silvio Slusarski
Silvio Slusarski
Jeanfrancois Venere
Arvin Albares
Silvio Slusarski
Francesco Shinko
Octavia Malet
Aika Inouye
Ricardo Gaucho
Sinclair Waycott
Maisha Rulapaugh
Francesco Shinko
Izzy Garufi
David Darakjy
Adams Morasca
Costa Dilliard
Claire Tollner
Izzy Garufi
Chavez Briddick
James Butt
Antonio Caudy
Sinclair Waycott
Clifford Rim
IdCountryDate
1000Italy2026-04-19
1001India2026-04-29
1002Brazil2026-04-02
1003Canada2026-04-13
1004France2026-04-06
1005Canada2026-04-18
1006Canada2026-04-18
1007Canada2026-03-31
1008Germany2026-04-10
1009United Kingdom2026-04-19
1010Canada2026-04-08
1011France2026-03-31
1012Argentina2026-04-10
1013Russia2026-04-26
1014Canada2026-04-22
1015Italy2026-04-26
1016Germany2026-04-19
1017Spain2026-04-21
1018Japan2026-04-10
1019France2026-04-23
1020India2026-04-23
1021Australia2026-04-22
1022Argentina2026-04-17
1023Argentina2026-04-04
1024Brazil2026-04-15
1025Australia2026-04-24
1026France2026-04-24
1027Spain2026-04-26
1028Russia2026-04-07
1029Japan2026-04-29
1030Argentina2026-04-14
1031France2026-04-14
1032India2026-04-28
1033United Kingdom2026-04-08
1034Brazil2026-03-31
1035Canada2026-03-31
1036Germany2026-03-31
1037Japan2026-04-02
1038Canada2026-04-26
1039Japan2026-04-03
1040Italy2026-04-12
1041Brazil2026-04-09
1042United Kingdom2026-04-03
1043Russia2026-04-04
1044France2026-04-07
1045Italy2026-04-17
1046United Kingdom2026-04-07
1047France2026-04-21
1048Brazil2026-04-25
1049Argentina2026-04-23

On-Demand Data

NameIdCountryDate
Faith Gillian1000Brazil2026-04-08
Jones Vocelka1001Japan2026-04-13
Arvin Albares1002Canada2026-04-02
Octavia Malet1003Germany2026-04-23
Stacey Maclead1004Australia2026-04-29
Faith Gillian1005Japan2026-04-19
Kaitlin Ostrosky1006India2026-04-05
Alejandro Perin1007Brazil2026-03-31
Jones Vocelka1008India2026-04-16
David Darakjy1009Spain2026-04-13
Kadeem Flosi1010Canada2026-04-24
Ricardo Gaucho1011India2026-04-10
Arvin Albares1012Canada2026-04-26
Nicolas Iturbide1013Australia2026-04-19
Maria Marrier1014France2026-04-09
Munro Ferencz1015Japan2026-04-26
Octavia Malet1016France2026-04-21
Clifford Rim1017India2026-04-28
Cody Saylors1018Argentina2026-04-17
Juan Wieser1019Italy2026-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottRussiaBernardo Dominic UNQUALIFIED
Ricardo GauchoFranceAnna Fali NEW
Izzy GarufiJapanAsiya Javayant NEGOTIATION
James ButtSpainAnna Fali PROPOSAL
Rodrigues CampainSpainBernardo Dominic RENEWAL
Ivar PaprockiAustraliaAmy Elsner PROPOSAL
Juan WieserBrazilStephen Shaw QUALIFIED
Jeanfrancois VenereJapanIvan Magalhaes NEGOTIATION
Mayumi KolmetzBrazilAsiya Javayant NEGOTIATION
Rodrigues CampainAustraliaOnyama Limba NEW
Octavia MaletUnited KingdomBernardo Dominic RENEWAL
Maisha RulapaughFranceAsiya Javayant QUALIFIED
Arvin AlbaresGermanyAnna Fali NEGOTIATION
Antonio CaudyCanadaAsiya Javayant QUALIFIED
Julie StensethFranceIoni Bowcher NEGOTIATION
Smith GlickArgentinaStephen Shaw NEGOTIATION
Alejandro PerinAustraliaAnna Fali NEW
Rodrigues CampainItalyAsiya Javayant QUALIFIED
David DarakjyArgentinaAsiya Javayant NEGOTIATION
Claire TollnerGermanyAsiya Javayant NEW
Jefferson SchemmerCanadaXuxue Feng PROPOSAL
Munro FerenczItalyElwin Sharvill RENEWAL
Maisha RulapaughIndiaAnna Fali UNQUALIFIED
Smith GlickRussiaBernardo Dominic RENEWAL
Arvin AlbaresGermanyBernardo Dominic QUALIFIED
Tony FollerIndiaAmy Elsner QUALIFIED
Maisha RulapaughCanadaOnyama Limba RENEWAL
Maria MarrierUnited KingdomElwin Sharvill PROPOSAL
Sinclair WaycottRussiaIoni Bowcher NEW
Silvio SlusarskiJapanXuxue Feng NEGOTIATION
Isabel BowleySpainStephen Shaw PROPOSAL
Sinclair WaycottAustraliaAnna Fali UNQUALIFIED
Maisha RulapaughBrazilIvan Magalhaes QUALIFIED
Deepesh ChuiAustraliaElwin Sharvill PROPOSAL
Claire TollnerItalyStephen Shaw QUALIFIED
Misaki RoysterJapanBernardo Dominic NEW
Stacey MacleadBrazilOnyama Limba QUALIFIED
Kadeem FlosiRussiaElwin Sharvill PROPOSAL
Jennifer AmigonSpainAnna Fali NEW
Johnson SergiArgentinaIvan Magalhaes 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>