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
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Alejandro PerinUnited KingdomIoni Bowcher NEGOTIATION
Clifford RimSpainXuxue Feng PROPOSAL
Alejandro PerinAustraliaAsiya Javayant QUALIFIED
Arvin AlbaresAustraliaOnyama Limba NEGOTIATION
Octavia MaletCanadaAmy Elsner PROPOSAL
Francesco ShinkoAustraliaBernardo Dominic QUALIFIED
Wickens NestleJapanElwin Sharvill UNQUALIFIED
Morrow RutaCanadaAsiya Javayant NEGOTIATION
Maisha RulapaughCanadaOnyama Limba UNQUALIFIED
Emily WhobreyItalyBernardo Dominic NEW
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Alejandro PerinSpainIoni Bowcher RENEWAL
Cody SaylorsIndiaAnna Fali NEGOTIATION
Mujtaba NickaCanadaOnyama Limba NEW
Aruna FigeroaFranceBernardo Dominic UNQUALIFIED
Octavia MaletJapanElwin Sharvill NEW
Emily WhobreyFranceAsiya Javayant NEW
Isabel BowleySpainAmy Elsner PROPOSAL
Izzy GarufiItalyOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali UNQUALIFIED
Faith GillianBrazilAnna Fali QUALIFIED
Maria MarrierAustraliaStephen Shaw UNQUALIFIED
Jones VocelkaJapanBernardo Dominic NEW
James ButtBrazilOnyama Limba RENEWAL
Nicolas IturbideAustraliaOnyama Limba NEW
David DarakjyBrazilAsiya Javayant RENEWAL
Claire TollnerSpainBernardo Dominic NEGOTIATION
Mujtaba NickaIndiaBernardo Dominic NEGOTIATION
Arvin AlbaresRussiaAmy Elsner PROPOSAL
Stacey MacleadAustraliaStephen Shaw NEGOTIATION
Salvatore StockhamCanadaAsiya Javayant PROPOSAL
Nicolas IturbideFranceIvan Magalhaes UNQUALIFIED
David DarakjyJapanAmy Elsner UNQUALIFIED
James ButtIndiaBernardo Dominic NEW
Kadeem FlosiArgentinaElwin Sharvill NEGOTIATION
Ivar PaprockiCanadaIoni Bowcher NEGOTIATION
Francesco ShinkoArgentinaAmy Elsner NEW
Silvio SlusarskiAustraliaAnna Fali RENEWAL
Faith GillianGermanyXuxue Feng RENEWAL
Kadeem FlosiAustraliaElwin Sharvill NEGOTIATION
Leja CaldareraBrazilBernardo Dominic UNQUALIFIED
Greenwood BologniaCanadaStephen Shaw RENEWAL
Clifford RimGermanyAnna Fali PROPOSAL
Clifford RimAustraliaElwin Sharvill RENEWAL
Maria MarrierGermanyOnyama Limba NEGOTIATION
Costa DilliardJapanIvan Magalhaes RENEWAL
Leon OldroydCanadaAmy Elsner NEGOTIATION
Kadeem FlosiBrazilIoni Bowcher PROPOSAL
Julie StensethIndiaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson SergiFranceAmy Elsner NEGOTIATION
Aditya KuskoIndiaIoni Bowcher QUALIFIED
Kadeem FlosiFranceStephen Shaw UNQUALIFIED
Stacey MacleadUnited KingdomAmy Elsner NEGOTIATION
Chavez BriddickFranceOnyama Limba NEGOTIATION
Jones VocelkaBrazilAsiya Javayant UNQUALIFIED
Johnson SergiRussiaAmy Elsner PROPOSAL
Leja CaldareraFranceXuxue Feng NEW
Wickens NestleRussiaXuxue Feng UNQUALIFIED
Munro FerenczAustraliaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo GauchoAustralia2026-05-06Chanay, Jeffrey A Esq UNQUALIFIED23Elwin Sharvill
1001Isabel BowleySpain2026-04-30Chemel, James L Cpa PROPOSAL27Anna Fali
1002Jefferson SchemmerJapan2026-05-11Rangoni Of Florence UNQUALIFIED57Onyama Limba
1003James ButtSpain2026-05-08Chemel, James L Cpa NEW20Amy Elsner
1004Jones VocelkaJapan2026-05-04Feiner Bros RENEWAL13Stephen Shaw
1005Leja CaldareraUnited Kingdom2026-05-15Benton, John B Jr NEW44Anna Fali
1006Arvin AlbaresBrazil2026-05-01Feltz Printing Service NEW76Ivan Magalhaes
1007James ButtItaly2026-05-02Morlong Associates NEW78Stephen Shaw
1008Leja CaldareraItaly2026-04-26Feiner Bros UNQUALIFIED14Stephen Shaw
1009Greenwood BologniaItaly2026-05-21Feiner Bros QUALIFIED94Elwin Sharvill
1010Jefferson SchemmerRussia2026-05-20Feiner Bros NEW35Amy Elsner
1011Jefferson SchemmerSpain2026-05-04Benton, John B Jr NEW81Elwin Sharvill
1012Izzy GarufiSpain2026-05-24Benton, John B Jr NEW73Xuxue Feng
1013Munro FerenczIndia2026-05-24Feltz Printing Service NEGOTIATION11Stephen Shaw
1014Ricardo GauchoBrazil2026-05-25Morlong Associates QUALIFIED75Amy Elsner
1015Costa DilliardSpain2026-05-19Rangoni Of Florence NEGOTIATION74Amy Elsner
1016Maisha RulapaughGermany2026-05-06Buckley Miller Wright NEW16Ioni Bowcher
1017Julie StensethGermany2026-05-24Commercial Press RENEWAL40Ioni Bowcher
1018Kadeem FlosiItaly2026-05-08King, Christopher A Esq QUALIFIED64Bernardo Dominic
1019Leon OldroydRussia2026-05-18Chanay, Jeffrey A Esq NEGOTIATION62Onyama Limba
1020Tony FollerArgentina2026-04-26Truhlar And Truhlar Attys RENEWAL57Elwin Sharvill
1021Stacey MacleadBrazil2026-04-29Printing Dimensions QUALIFIED3Ioni Bowcher
1022Morrow RutaCanada2026-05-18Morlong Associates RENEWAL74Onyama Limba
1023Cody SaylorsAustralia2026-04-26Chanay, Jeffrey A Esq NEW49Ivan Magalhaes
1024Ivar PaprockiJapan2026-04-28Morlong Associates PROPOSAL68Bernardo Dominic
1025Nicolas IturbideArgentina2026-04-26Feltz Printing Service PROPOSAL22Stephen Shaw
1026Alejandro PerinAustralia2026-04-29Truhlar And Truhlar Attys PROPOSAL62Ivan Magalhaes
1027Salvatore StockhamSpain2026-05-18Morlong Associates UNQUALIFIED1Bernardo Dominic
1028Juan WieserItaly2026-05-16Chapman, Ross E Esq PROPOSAL86Anna Fali
1029Adams MorascaRussia2026-05-15Printing Dimensions NEW49Xuxue Feng
1030David DarakjyGermany2026-05-25Feltz Printing Service NEGOTIATION98Onyama Limba
1031Munro FerenczArgentina2026-05-21Feiner Bros RENEWAL19Ivan Magalhaes
1032Alejandro PerinArgentina2026-05-04Feiner Bros UNQUALIFIED88Anna Fali
1033Juan WieserBrazil2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED49Bernardo Dominic
1034Johnson SergiIndia2026-05-03Chemel, James L Cpa NEW29Elwin Sharvill
1035Munro FerenczFrance2026-05-11King, Christopher A Esq UNQUALIFIED83Amy Elsner
1036Misaki RoysterUnited Kingdom2026-04-28Truhlar And Truhlar Attys PROPOSAL1Asiya Javayant
1037Salvatore StockhamItaly2026-05-21Chapman, Ross E Esq NEW20Asiya Javayant
1038Aditya KuskoAustralia2026-05-15Rousseaux, Michael Esq QUALIFIED30Onyama Limba
1039Kaitlin OstroskyArgentina2026-04-29Benton, John B Jr PROPOSAL2Onyama Limba
1040Stacey MacleadBrazil2026-05-09Buckley Miller Wright NEGOTIATION50Stephen Shaw
1041Ricardo GauchoAustralia2026-05-16Printing Dimensions NEGOTIATION45Ivan Magalhaes
1042Costa DilliardGermany2026-05-21Chanay, Jeffrey A Esq QUALIFIED18Asiya Javayant
1043Faith GillianArgentina2026-05-03Chanay, Jeffrey A Esq QUALIFIED1Anna Fali
1044Mayumi KolmetzRussia2026-05-01Rousseaux, Michael Esq PROPOSAL52Stephen Shaw
1045Antonio CaudyIndia2026-05-18Rangoni Of Florence RENEWAL89Bernardo Dominic
1046Salvatore StockhamSpain2026-05-24Chapman, Ross E Esq PROPOSAL94Ioni Bowcher
1047Octavia MaletArgentina2026-05-02Commercial Press NEW57Amy Elsner
1048Tony FollerJapan2026-05-13Feiner Bros NEGOTIATION19Stephen Shaw
1049Maria MarrierUnited Kingdom2026-05-09Chapman, Ross E Esq PROPOSAL96Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterItalyIvan Magalhaes NEGOTIATION
Emily WhobreySpainOnyama Limba UNQUALIFIED
Rodrigues CampainGermanyStephen Shaw NEW
Kadeem FlosiJapanXuxue Feng QUALIFIED
Aditya KuskoCanadaAnna Fali RENEWAL
Maria MarrierGermanyAnna Fali QUALIFIED
Johnson SergiJapanBernardo Dominic UNQUALIFIED
Morrow RutaBrazilAmy Elsner UNQUALIFIED
Morrow RutaBrazilIvan Magalhaes NEGOTIATION
Leja CaldareraAustraliaAnna Fali PROPOSAL
Leon OldroydCanadaOnyama Limba UNQUALIFIED
Leja CaldareraFranceElwin Sharvill UNQUALIFIED
Sinclair WaycottAustraliaAsiya Javayant PROPOSAL
Smith GlickIndiaIoni Bowcher PROPOSAL
Smith GlickAustraliaAnna Fali RENEWAL
Alejandro PerinJapanAmy Elsner UNQUALIFIED
Sinclair WaycottJapanOnyama Limba PROPOSAL
Morrow RutaAustraliaElwin Sharvill UNQUALIFIED
Julie StensethGermanyIvan Magalhaes QUALIFIED
Julie StensethRussiaIoni Bowcher PROPOSAL
Arvin AlbaresJapanElwin Sharvill PROPOSAL
Chavez BriddickRussiaBernardo Dominic QUALIFIED
Alejandro PerinCanadaOnyama Limba PROPOSAL
Julie StensethItalyBernardo Dominic NEW
Chavez BriddickGermanyOnyama Limba PROPOSAL
Ivar PaprockiAustraliaAsiya Javayant PROPOSAL
Ivar PaprockiBrazilOnyama Limba NEGOTIATION
Silvio SlusarskiBrazilAsiya Javayant PROPOSAL
Octavia MaletGermanyAsiya Javayant NEW
Aruna FigeroaSpainAmy Elsner PROPOSAL
Aditya KuskoGermanyStephen Shaw NEW
Smith GlickGermanyAsiya Javayant QUALIFIED
Izzy GarufiSpainAsiya Javayant NEW
Ivar PaprockiSpainOnyama Limba UNQUALIFIED
Juan WieserIndiaIoni Bowcher QUALIFIED
Claire TollnerUnited KingdomIoni Bowcher NEW
Maisha RulapaughJapanIoni Bowcher NEGOTIATION
Jeanfrancois VenereIndiaAmy Elsner PROPOSAL
James ButtCanadaOnyama Limba NEGOTIATION
David DarakjyJapanElwin Sharvill NEW
Julie StensethSpainElwin Sharvill PROPOSAL
Ricardo GauchoRussiaBernardo Dominic NEW
Aika InouyeIndiaAsiya Javayant RENEWAL
Nicolas IturbideArgentinaOnyama Limba UNQUALIFIED
Stacey MacleadItalyAnna Fali RENEWAL
Morrow RutaItalyOnyama Limba UNQUALIFIED
Clifford RimCanadaIoni Bowcher NEGOTIATION
Kadeem FlosiIndiaAmy Elsner PROPOSAL
Aditya KuskoJapanIoni Bowcher NEW
Clifford RimGermanyAnna Fali NEW
Frozen Columns
Name
Salvatore Stockham
Morrow Ruta
Silvio Slusarski
Murillo Malet
Alejandro Perin
Jennifer Amigon
Francesco Shinko
Arvin Albares
Munro Ferencz
Deepesh Chui
James Butt
Tony Foller
Julie Stenseth
Chavez Briddick
Arvin Albares
Kaitlin Ostrosky
Ivar Paprocki
Ashley Doe
Aditya Kusko
Maisha Rulapaugh
Ivar Paprocki
Ashley Doe
Ashley Doe
Johnson Sergi
Isabel Bowley
Aditya Kusko
Faith Gillian
Salvatore Stockham
Emily Whobrey
Mayumi Kolmetz
Leja Caldarera
Adams Morasca
Nicolas Iturbide
Leja Caldarera
Silvio Slusarski
Tony Foller
Sinclair Waycott
Julie Stenseth
Murillo Malet
Stacey Maclead
Antonio Caudy
Rodrigues Campain
Smith Glick
Smith Glick
Isabel Bowley
Sinclair Waycott
Jeanfrancois Venere
Jeanfrancois Venere
Ricardo Gaucho
Jeanfrancois Venere
IdCountryDate
1000India2026-05-22
1001Argentina2026-05-23
1002Italy2026-05-23
1003Argentina2026-05-12
1004Canada2026-05-14
1005Argentina2026-05-03
1006Australia2026-05-03
1007United Kingdom2026-05-25
1008Spain2026-05-13
1009Germany2026-05-16
1010France2026-05-21
1011Argentina2026-05-10
1012Spain2026-05-08
1013Brazil2026-05-19
1014Japan2026-05-24
1015Japan2026-05-04
1016Russia2026-05-01
1017Japan2026-04-29
1018Spain2026-04-29
1019Brazil2026-05-25
1020Italy2026-05-23
1021India2026-04-28
1022Australia2026-04-27
1023Canada2026-05-02
1024Russia2026-05-16
1025Canada2026-04-29
1026United Kingdom2026-05-01
1027Brazil2026-05-01
1028Russia2026-05-17
1029India2026-05-18
1030Italy2026-05-14
1031India2026-05-21
1032Argentina2026-05-15
1033Germany2026-05-09
1034Germany2026-05-02
1035Italy2026-05-17
1036Spain2026-04-26
1037Japan2026-04-27
1038India2026-05-04
1039Australia2026-05-16
1040Germany2026-05-08
1041Canada2026-05-08
1042Germany2026-04-28
1043Argentina2026-05-04
1044Japan2026-04-29
1045Russia2026-05-11
1046Italy2026-05-09
1047Russia2026-05-16
1048India2026-05-01
1049Russia2026-05-11

On-Demand Data

NameIdCountryDate
Faith Gillian1000Argentina2026-05-05
Aruna Figeroa1001Japan2026-05-07
Arvin Albares1002Japan2026-05-08
Costa Dilliard1003Argentina2026-04-26
Ivar Paprocki1004Germany2026-05-02
Antonio Caudy1005France2026-05-07
Morrow Ruta1006Spain2026-05-01
Costa Dilliard1007India2026-05-03
Morrow Ruta1008United Kingdom2026-05-14
Aruna Figeroa1009United Kingdom2026-04-30
Arvin Albares1010Brazil2026-05-20
Isabel Bowley1011Russia2026-04-30
Smith Glick1012Canada2026-05-19
Isabel Bowley1013Brazil2026-05-05
Leja Caldarera1014Germany2026-05-01
Adams Morasca1015Spain2026-05-18
Jeanfrancois Venere1016Canada2026-05-19
Ricardo Gaucho1017Germany2026-05-12
Faith Gillian1018Canada2026-05-14
Jennifer Amigon1019United Kingdom2026-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeUnited KingdomIvan Magalhaes RENEWAL
Juan WieserGermanyBernardo Dominic NEW
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Nicolas IturbideSpainIoni Bowcher QUALIFIED
Jennifer AmigonArgentinaOnyama Limba RENEWAL
Mujtaba NickaBrazilIvan Magalhaes UNQUALIFIED
Jefferson SchemmerSpainElwin Sharvill UNQUALIFIED
Maisha RulapaughRussiaElwin Sharvill NEW
Jones VocelkaUnited KingdomBernardo Dominic NEW
Leon OldroydBrazilAmy Elsner NEGOTIATION
Costa DilliardRussiaXuxue Feng QUALIFIED
Arvin AlbaresJapanBernardo Dominic UNQUALIFIED
Smith GlickUnited KingdomStephen Shaw RENEWAL
Juan WieserFranceIvan Magalhaes NEGOTIATION
Jennifer AmigonJapanXuxue Feng UNQUALIFIED
Isabel BowleyCanadaOnyama Limba PROPOSAL
Nicolas IturbideFranceOnyama Limba NEW
Chavez BriddickFranceAnna Fali UNQUALIFIED
Silvio SlusarskiAustraliaStephen Shaw NEW
Darci PoquetteItalyAsiya Javayant NEGOTIATION
Johnson SergiIndiaXuxue Feng NEW
Maisha RulapaughItalyAmy Elsner QUALIFIED
Murillo MaletUnited KingdomBernardo Dominic NEGOTIATION
Greenwood BologniaBrazilIoni Bowcher NEW
Aruna FigeroaItalyOnyama Limba NEGOTIATION
David DarakjyGermanyAnna Fali NEW
Chavez BriddickIndiaAsiya Javayant PROPOSAL
Cody SaylorsRussiaAmy Elsner UNQUALIFIED
Francesco ShinkoJapanOnyama Limba NEGOTIATION
Kaitlin OstroskyArgentinaIvan Magalhaes RENEWAL
Juan WieserItalyElwin Sharvill PROPOSAL
Smith GlickIndiaIoni Bowcher UNQUALIFIED
Rodrigues CampainFranceIoni Bowcher NEW
Silvio SlusarskiCanadaBernardo Dominic NEW
Maisha RulapaughBrazilBernardo Dominic RENEWAL
Ivar PaprockiUnited KingdomAnna Fali RENEWAL
Jeanfrancois VenereCanadaIoni Bowcher QUALIFIED
Jefferson SchemmerRussiaAnna Fali RENEWAL
Leon OldroydSpainAnna Fali RENEWAL
Isabel BowleyFranceBernardo Dominic 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>