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
Aruna FigeroaCanadaElwin Sharvill NEW
Aditya KuskoGermanyOnyama Limba PROPOSAL
Munro FerenczCanadaAnna Fali NEGOTIATION
Mujtaba NickaFranceOnyama Limba PROPOSAL
Jennifer AmigonItalyIoni Bowcher UNQUALIFIED
Adams MorascaArgentinaAmy Elsner NEW
Kaitlin OstroskyBrazilAmy Elsner NEW
Johnson SergiItalyStephen Shaw PROPOSAL
Chavez BriddickFranceIoni Bowcher QUALIFIED
Murillo MaletBrazilIoni Bowcher UNQUALIFIED
Kaitlin OstroskyItalyXuxue Feng NEGOTIATION
Faith GillianFranceIoni Bowcher RENEWAL
Jeanfrancois VenereAustraliaIoni Bowcher RENEWAL
Jennifer AmigonJapanElwin Sharvill RENEWAL
Aika InouyeArgentinaAsiya Javayant RENEWAL
Antonio CaudyIndiaOnyama Limba RENEWAL
Francesco ShinkoJapanIoni Bowcher UNQUALIFIED
Jeanfrancois VenereCanadaOnyama Limba QUALIFIED
Jeanfrancois VenereUnited KingdomAsiya Javayant NEGOTIATION
Aditya KuskoSpainIvan Magalhaes QUALIFIED
Misaki RoysterFranceElwin Sharvill QUALIFIED
David DarakjyAustraliaStephen Shaw NEW
Clifford RimAustraliaXuxue Feng QUALIFIED
Munro FerenczItalyOnyama Limba RENEWAL
Jennifer AmigonRussiaElwin Sharvill NEGOTIATION
James ButtItalyBernardo Dominic RENEWAL
Maisha RulapaughFranceElwin Sharvill RENEWAL
Maria MarrierFranceStephen Shaw NEW
Chavez BriddickArgentinaAnna Fali NEGOTIATION
Stacey MacleadJapanOnyama Limba NEW
Costa DilliardBrazilAsiya Javayant PROPOSAL
Adams MorascaRussiaBernardo Dominic UNQUALIFIED
Morrow RutaBrazilOnyama Limba NEW
Jefferson SchemmerIndiaStephen Shaw NEGOTIATION
James ButtCanadaIoni Bowcher RENEWAL
Francesco ShinkoCanadaElwin Sharvill NEGOTIATION
Isabel BowleyAustraliaBernardo Dominic RENEWAL
Jefferson SchemmerRussiaAmy Elsner NEGOTIATION
Arvin AlbaresUnited KingdomOnyama Limba NEGOTIATION
Clifford RimAustraliaXuxue Feng UNQUALIFIED
Faith GillianUnited KingdomAsiya Javayant RENEWAL
Deepesh ChuiUnited KingdomStephen Shaw NEW
Morrow RutaJapanBernardo Dominic QUALIFIED
Francesco ShinkoRussiaIvan Magalhaes QUALIFIED
Ivar PaprockiFranceAsiya Javayant UNQUALIFIED
Aruna FigeroaJapanIoni Bowcher RENEWAL
Izzy GarufiCanadaStephen Shaw UNQUALIFIED
Smith GlickGermanyAnna Fali NEW
Jeanfrancois VenereRussiaElwin Sharvill NEGOTIATION
Morrow RutaGermanyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaSpainIoni Bowcher PROPOSAL
Darci PoquetteUnited KingdomAmy Elsner RENEWAL
Julie StensethRussiaBernardo Dominic UNQUALIFIED
Rodrigues CampainArgentinaXuxue Feng NEGOTIATION
Silvio SlusarskiIndiaAnna Fali NEW
Aruna FigeroaAustraliaStephen Shaw RENEWAL
Ricardo GauchoArgentinaStephen Shaw QUALIFIED
Aika InouyeItalyElwin Sharvill NEW
Julie StensethUnited KingdomIoni Bowcher RENEWAL
Ivar PaprockiAustraliaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeSpain2026-05-24Morlong Associates PROPOSAL36Bernardo Dominic
1001Cody SaylorsAustralia2026-05-24Feltz Printing Service RENEWAL45Onyama Limba
1002Misaki RoysterAustralia2026-04-28Commercial Press NEW59Bernardo Dominic
1003Greenwood BologniaArgentina2026-05-03Chemel, James L Cpa PROPOSAL15Ivan Magalhaes
1004Maria MarrierArgentina2026-04-30Benton, John B Jr UNQUALIFIED88Ivan Magalhaes
1005Isabel BowleyArgentina2026-05-10Printing Dimensions UNQUALIFIED96Ioni Bowcher
1006Nicolas IturbideArgentina2026-05-16Benton, John B Jr QUALIFIED11Stephen Shaw
1007Deepesh ChuiIndia2026-05-20Buckley Miller Wright NEW53Xuxue Feng
1008Sinclair WaycottGermany2026-05-09Benton, John B Jr RENEWAL22Ioni Bowcher
1009Wickens NestleRussia2026-05-09Truhlar And Truhlar Attys QUALIFIED78Anna Fali
1010James ButtCanada2026-05-07Rangoni Of Florence QUALIFIED19Ivan Magalhaes
1011Antonio CaudyFrance2026-04-29Rangoni Of Florence RENEWAL57Xuxue Feng
1012Stacey MacleadAustralia2026-05-09King, Christopher A Esq PROPOSAL8Bernardo Dominic
1013Clifford RimArgentina2026-04-28Chanay, Jeffrey A Esq QUALIFIED88Bernardo Dominic
1014Isabel BowleyRussia2026-05-20Feiner Bros UNQUALIFIED81Elwin Sharvill
1015Mujtaba NickaSpain2026-05-20Rousseaux, Michael Esq NEGOTIATION15Anna Fali
1016Maisha RulapaughCanada2026-05-12Commercial Press RENEWAL5Ivan Magalhaes
1017Smith GlickArgentina2026-05-16Printing Dimensions UNQUALIFIED85Asiya Javayant
1018Jeanfrancois VenereFrance2026-05-21Chemel, James L Cpa UNQUALIFIED0Asiya Javayant
1019Aika InouyeSpain2026-05-20Rousseaux, Michael Esq PROPOSAL38Amy Elsner
1020Kaitlin OstroskyJapan2026-05-15Morlong Associates RENEWAL50Xuxue Feng
1021Munro FerenczUnited Kingdom2026-05-14King, Christopher A Esq QUALIFIED6Amy Elsner
1022Costa DilliardRussia2026-05-02Benton, John B Jr QUALIFIED66Ioni Bowcher
1023Silvio SlusarskiCanada2026-05-04Chapman, Ross E Esq NEGOTIATION97Ioni Bowcher
1024Jones VocelkaCanada2026-05-15Dorl, James J Esq NEW33Onyama Limba
1025Cody SaylorsAustralia2026-05-27Chapman, Ross E Esq UNQUALIFIED24Xuxue Feng
1026Rodrigues CampainGermany2026-05-03Buckley Miller Wright PROPOSAL39Amy Elsner
1027Juan WieserUnited Kingdom2026-05-01Commercial Press QUALIFIED65Xuxue Feng
1028Adams MorascaGermany2026-04-28Feiner Bros UNQUALIFIED35Xuxue Feng
1029Kaitlin OstroskySpain2026-04-28Printing Dimensions NEW56Ivan Magalhaes
1030Ricardo GauchoIndia2026-05-02Chanay, Jeffrey A Esq QUALIFIED29Bernardo Dominic
1031Misaki RoysterArgentina2026-05-12Benton, John B Jr UNQUALIFIED22Elwin Sharvill
1032Jennifer AmigonAustralia2026-05-17Truhlar And Truhlar Attys NEW56Asiya Javayant
1033Aditya KuskoArgentina2026-05-27Feltz Printing Service PROPOSAL13Stephen Shaw
1034Maria MarrierArgentina2026-04-30Feltz Printing Service UNQUALIFIED23Onyama Limba
1035James ButtSpain2026-05-18Dorl, James J Esq NEW38Xuxue Feng
1036Julie StensethGermany2026-05-24Chemel, James L Cpa RENEWAL82Xuxue Feng
1037Maria MarrierAustralia2026-05-06Chanay, Jeffrey A Esq RENEWAL70Ioni Bowcher
1038Munro FerenczItaly2026-05-21Rangoni Of Florence NEGOTIATION92Elwin Sharvill
1039Deepesh ChuiSpain2026-05-23Commercial Press RENEWAL89Amy Elsner
1040Tony FollerItaly2026-04-29Truhlar And Truhlar Attys RENEWAL71Amy Elsner
1041Aika InouyeUnited Kingdom2026-05-22Rangoni Of Florence RENEWAL58Stephen Shaw
1042Leja CaldareraFrance2026-05-23Morlong Associates NEGOTIATION86Bernardo Dominic
1043Leon OldroydBrazil2026-05-19Morlong Associates QUALIFIED30Bernardo Dominic
1044Wickens NestleRussia2026-05-08Benton, John B Jr QUALIFIED79Stephen Shaw
1045James ButtFrance2026-05-09Chapman, Ross E Esq RENEWAL51Elwin Sharvill
1046Cody SaylorsIndia2026-05-17Benton, John B Jr NEW80Amy Elsner
1047Costa DilliardFrance2026-05-25Commercial Press NEGOTIATION74Onyama Limba
1048Isabel BowleyAustralia2026-05-19Chanay, Jeffrey A Esq QUALIFIED1Anna Fali
1049Faith GillianBrazil2026-05-20Rousseaux, Michael Esq RENEWAL90Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaCanadaIvan Magalhaes RENEWAL
Tony FollerJapanBernardo Dominic NEGOTIATION
Francesco ShinkoCanadaBernardo Dominic NEGOTIATION
Isabel BowleySpainAsiya Javayant NEGOTIATION
Kaitlin OstroskyGermanyIvan Magalhaes UNQUALIFIED
Julie StensethIndiaXuxue Feng QUALIFIED
Ivar PaprockiRussiaAmy Elsner RENEWAL
Kadeem FlosiUnited KingdomAmy Elsner NEGOTIATION
Maisha RulapaughArgentinaIvan Magalhaes QUALIFIED
Ivar PaprockiItalyIvan Magalhaes NEW
Adams MorascaItalyAmy Elsner NEW
Maria MarrierJapanIvan Magalhaes RENEWAL
Misaki RoysterJapanOnyama Limba UNQUALIFIED
Kadeem FlosiArgentinaAnna Fali NEW
James ButtUnited KingdomBernardo Dominic UNQUALIFIED
James ButtCanadaOnyama Limba NEGOTIATION
Silvio SlusarskiAustraliaElwin Sharvill QUALIFIED
Costa DilliardUnited KingdomStephen Shaw UNQUALIFIED
Aditya KuskoCanadaIvan Magalhaes UNQUALIFIED
Mujtaba NickaArgentinaStephen Shaw NEGOTIATION
Claire TollnerFranceElwin Sharvill PROPOSAL
Claire TollnerFranceXuxue Feng NEW
Wickens NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore StockhamCanadaAsiya Javayant NEW
David DarakjyAustraliaXuxue Feng UNQUALIFIED
Johnson SergiAustraliaXuxue Feng QUALIFIED
Salvatore StockhamCanadaOnyama Limba UNQUALIFIED
Octavia MaletItalyStephen Shaw RENEWAL
Rodrigues CampainGermanyAnna Fali RENEWAL
Salvatore StockhamBrazilElwin Sharvill RENEWAL
Clifford RimGermanyStephen Shaw UNQUALIFIED
Cody SaylorsIndiaAsiya Javayant NEW
Leon OldroydUnited KingdomOnyama Limba QUALIFIED
Ashley DoeGermanyElwin Sharvill UNQUALIFIED
Adams MorascaRussiaIvan Magalhaes NEGOTIATION
Murillo MaletUnited KingdomOnyama Limba NEW
Wickens NestleItalyAnna Fali NEGOTIATION
Murillo MaletJapanOnyama Limba NEW
Mujtaba NickaAustraliaStephen Shaw NEW
Jones VocelkaUnited KingdomBernardo Dominic RENEWAL
Arvin AlbaresAustraliaElwin Sharvill NEW
Tony FollerGermanyOnyama Limba UNQUALIFIED
Deepesh ChuiSpainIvan Magalhaes NEGOTIATION
Tony FollerCanadaAsiya Javayant NEGOTIATION
Kadeem FlosiBrazilAnna Fali QUALIFIED
Leja CaldareraGermanyIoni Bowcher RENEWAL
Izzy GarufiBrazilOnyama Limba RENEWAL
Murillo MaletFranceIoni Bowcher UNQUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher RENEWAL
Octavia MaletRussiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Rodrigues Campain
David Darakjy
Chavez Briddick
Juan Wieser
Tony Foller
Maria Marrier
Adams Morasca
Mujtaba Nicka
Aditya Kusko
Morrow Ruta
David Darakjy
Salvatore Stockham
Octavia Malet
Clifford Rim
Alejandro Perin
Kadeem Flosi
Ivar Paprocki
Ricardo Gaucho
Ashley Doe
Smith Glick
Cody Saylors
Morrow Ruta
Aika Inouye
James Butt
Morrow Ruta
Claire Tollner
Adams Morasca
Julie Stenseth
Octavia Malet
Smith Glick
Munro Ferencz
Jefferson Schemmer
Morrow Ruta
Salvatore Stockham
Rodrigues Campain
Jones Vocelka
Adams Morasca
Aruna Figeroa
Jeanfrancois Venere
Stacey Maclead
Murillo Malet
Juan Wieser
Leon Oldroyd
Arvin Albares
Maisha Rulapaugh
Costa Dilliard
Nicolas Iturbide
Ricardo Gaucho
Stacey Maclead
Deepesh Chui
IdCountryDate
1000Argentina2026-05-12
1001Germany2026-05-03
1002Argentina2026-05-07
1003Argentina2026-05-11
1004Canada2026-05-08
1005Russia2026-05-05
1006Australia2026-05-08
1007United Kingdom2026-05-26
1008Italy2026-05-17
1009Canada2026-05-13
1010Japan2026-05-07
1011Australia2026-05-16
1012France2026-05-25
1013Canada2026-05-16
1014Australia2026-05-16
1015Argentina2026-05-08
1016India2026-05-21
1017Brazil2026-05-07
1018Canada2026-05-17
1019Australia2026-05-07
1020Russia2026-05-26
1021Brazil2026-05-06
1022Australia2026-05-20
1023Australia2026-05-14
1024France2026-05-05
1025Australia2026-04-30
1026France2026-05-17
1027Germany2026-05-17
1028Canada2026-05-14
1029Australia2026-05-15
1030France2026-05-15
1031Italy2026-05-12
1032Argentina2026-04-30
1033Italy2026-04-30
1034France2026-05-27
1035Canada2026-05-13
1036Argentina2026-05-18
1037Canada2026-05-07
1038Italy2026-05-15
1039Italy2026-05-25
1040Japan2026-04-30
1041France2026-05-07
1042Japan2026-05-25
1043Spain2026-05-25
1044Argentina2026-05-03
1045Russia2026-05-22
1046Australia2026-05-05
1047France2026-05-15
1048France2026-05-04
1049India2026-05-21

On-Demand Data

NameIdCountryDate
Adams Morasca1000Germany2026-04-30
Isabel Bowley1001Japan2026-05-06
Izzy Garufi1002Japan2026-05-09
Maisha Rulapaugh1003Brazil2026-05-04
Juan Wieser1004Argentina2026-05-26
Morrow Ruta1005Russia2026-05-12
Ivar Paprocki1006Russia2026-05-26
Maria Marrier1007India2026-05-08
Maria Marrier1008Italy2026-05-27
Nicolas Iturbide1009Italy2026-05-05
Johnson Sergi1010Germany2026-05-01
Johnson Sergi1011United Kingdom2026-05-22
Stacey Maclead1012France2026-05-18
Julie Stenseth1013Germany2026-05-02
Nicolas Iturbide1014Japan2026-05-10
Francesco Shinko1015India2026-05-27
Izzy Garufi1016Canada2026-05-01
Kadeem Flosi1017Canada2026-05-09
David Darakjy1018Canada2026-05-02
Jennifer Amigon1019Brazil2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyIndiaIvan Magalhaes UNQUALIFIED
Salvatore StockhamUnited KingdomBernardo Dominic NEW
Emily WhobreyAustraliaStephen Shaw UNQUALIFIED
Leon OldroydRussiaBernardo Dominic UNQUALIFIED
James ButtItalyAnna Fali RENEWAL
Sinclair WaycottBrazilAsiya Javayant QUALIFIED
Silvio SlusarskiItalyStephen Shaw NEW
Kadeem FlosiRussiaXuxue Feng NEGOTIATION
Adams MorascaSpainBernardo Dominic UNQUALIFIED
Octavia MaletArgentinaIvan Magalhaes RENEWAL
Aditya KuskoRussiaBernardo Dominic QUALIFIED
Smith GlickCanadaXuxue Feng RENEWAL
Maria MarrierIndiaXuxue Feng NEW
Ashley DoeGermanyXuxue Feng NEGOTIATION
Ashley DoeJapanOnyama Limba NEW
Octavia MaletGermanyAmy Elsner PROPOSAL
Aditya KuskoSpainOnyama Limba RENEWAL
Mayumi KolmetzItalyStephen Shaw RENEWAL
Kadeem FlosiGermanyIvan Magalhaes PROPOSAL
Aditya KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Darci PoquetteJapanElwin Sharvill NEGOTIATION
Clifford RimRussiaXuxue Feng QUALIFIED
Aika InouyeRussiaIvan Magalhaes NEW
Johnson SergiCanadaElwin Sharvill UNQUALIFIED
Faith GillianIndiaElwin Sharvill NEW
Juan WieserArgentinaIoni Bowcher PROPOSAL
Aika InouyeJapanOnyama Limba QUALIFIED
Aditya KuskoRussiaXuxue Feng QUALIFIED
Leon OldroydUnited KingdomIoni Bowcher NEGOTIATION
Faith GillianJapanIvan Magalhaes QUALIFIED
Alejandro PerinAustraliaAmy Elsner UNQUALIFIED
Izzy GarufiRussiaStephen Shaw PROPOSAL
Kadeem FlosiJapanAnna Fali QUALIFIED
Morrow RutaGermanyOnyama Limba RENEWAL
Juan WieserItalyElwin Sharvill NEGOTIATION
Claire TollnerArgentinaBernardo Dominic NEW
Alejandro PerinBrazilAnna Fali NEGOTIATION
Silvio SlusarskiArgentinaIoni Bowcher NEGOTIATION
Tony FollerIndiaBernardo Dominic RENEWAL
Tony FollerItalyAsiya Javayant NEW

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