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 DilliardArgentinaAmy Elsner QUALIFIED
Maria MarrierRussiaAsiya Javayant UNQUALIFIED
Julie StensethIndiaStephen Shaw NEGOTIATION
Wickens NestleRussiaIvan Magalhaes PROPOSAL
Nicolas IturbideIndiaBernardo Dominic RENEWAL
Aruna FigeroaItalyAmy Elsner QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes NEW
Clifford RimCanadaXuxue Feng NEW
James ButtFranceIoni Bowcher NEGOTIATION
Octavia MaletFranceOnyama Limba UNQUALIFIED
Kadeem FlosiBrazilAnna Fali NEW
Rodrigues CampainItalyAmy Elsner QUALIFIED
Maisha RulapaughFranceBernardo Dominic PROPOSAL
Morrow RutaFranceAsiya Javayant PROPOSAL
Smith GlickAustraliaAnna Fali PROPOSAL
Tony FollerBrazilOnyama Limba NEW
Francesco ShinkoFranceIoni Bowcher RENEWAL
Isabel BowleyArgentinaIoni Bowcher PROPOSAL
Tony FollerArgentinaAmy Elsner QUALIFIED
Murillo MaletRussiaIvan Magalhaes QUALIFIED
Arvin AlbaresItalyAsiya Javayant NEW
Leja CaldareraBrazilStephen Shaw QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba RENEWAL
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Sinclair WaycottAustraliaAnna Fali UNQUALIFIED
Chavez BriddickUnited KingdomElwin Sharvill QUALIFIED
Jennifer AmigonCanadaElwin Sharvill NEW
Tony FollerJapanOnyama Limba UNQUALIFIED
Clifford RimRussiaAmy Elsner UNQUALIFIED
Antonio CaudyCanadaStephen Shaw RENEWAL
Chavez BriddickArgentinaStephen Shaw RENEWAL
Jones VocelkaItalyXuxue Feng NEW
Juan WieserBrazilOnyama Limba NEW
Adams MorascaFranceAmy Elsner PROPOSAL
Maria MarrierJapanAsiya Javayant PROPOSAL
Nicolas IturbideFranceIvan Magalhaes QUALIFIED
Rodrigues CampainRussiaAnna Fali NEW
Greenwood BologniaSpainAnna Fali PROPOSAL
Cody SaylorsJapanXuxue Feng QUALIFIED
James ButtIndiaElwin Sharvill QUALIFIED
Tony FollerUnited KingdomAmy Elsner NEW
James ButtIndiaStephen Shaw NEW
Octavia MaletSpainOnyama Limba UNQUALIFIED
Maisha RulapaughSpainOnyama Limba NEW
Costa DilliardCanadaAmy Elsner QUALIFIED
Nicolas IturbideAustraliaElwin Sharvill NEGOTIATION
Munro FerenczAustraliaAmy Elsner UNQUALIFIED
Deepesh ChuiRussiaAsiya Javayant NEGOTIATION
Julie StensethAustraliaStephen Shaw NEW
Maisha RulapaughJapanAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams MorascaGermanyIvan Magalhaes NEGOTIATION
Tony FollerJapanAnna Fali NEGOTIATION
Mayumi KolmetzGermanyXuxue Feng UNQUALIFIED
Ivar PaprockiUnited KingdomAsiya Javayant NEW
Kaitlin OstroskyGermanyStephen Shaw NEW
Leon OldroydItalyBernardo Dominic PROPOSAL
Cody SaylorsItalyIvan Magalhaes PROPOSAL
Stacey MacleadSpainAsiya Javayant RENEWAL
Arvin AlbaresItalyAmy Elsner NEGOTIATION
Clifford RimJapanIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickJapan2025-09-27Commercial Press PROPOSAL71Onyama Limba
1001Morrow RutaFrance2025-09-20Commercial Press RENEWAL99Amy Elsner
1002Leon OldroydAustralia2025-09-28Benton, John B Jr QUALIFIED50Xuxue Feng
1003Cody SaylorsItaly2025-09-25King, Christopher A Esq UNQUALIFIED94Elwin Sharvill
1004Rodrigues CampainSpain2025-10-02King, Christopher A Esq QUALIFIED29Elwin Sharvill
1005Munro FerenczFrance2025-10-01Truhlar And Truhlar Attys RENEWAL85Asiya Javayant
1006Deepesh ChuiGermany2025-09-21Dorl, James J Esq PROPOSAL32Asiya Javayant
1007Leja CaldareraSpain2025-09-26Printing Dimensions RENEWAL2Anna Fali
1008Silvio SlusarskiArgentina2025-10-03Benton, John B Jr PROPOSAL60Ivan Magalhaes
1009Clifford RimArgentina2025-09-07Printing Dimensions RENEWAL39Stephen Shaw
1010Stacey MacleadItaly2025-09-07Chemel, James L Cpa QUALIFIED70Elwin Sharvill
1011Silvio SlusarskiFrance2025-09-08Feiner Bros PROPOSAL78Anna Fali
1012Leon OldroydJapan2025-09-10Rangoni Of Florence NEGOTIATION25Elwin Sharvill
1013Morrow RutaAustralia2025-10-05Commercial Press UNQUALIFIED21Ivan Magalhaes
1014Cody SaylorsCanada2025-09-12Dorl, James J Esq QUALIFIED99Ioni Bowcher
1015Munro FerenczCanada2025-09-28Printing Dimensions NEW63Stephen Shaw
1016Claire TollnerIndia2025-09-13Morlong Associates RENEWAL88Ivan Magalhaes
1017Kadeem FlosiBrazil2025-09-20Feiner Bros UNQUALIFIED28Bernardo Dominic
1018Ashley DoeSpain2025-09-14Rousseaux, Michael Esq NEW81Bernardo Dominic
1019Francesco ShinkoBrazil2025-10-04Printing Dimensions QUALIFIED10Ioni Bowcher
1020Jeanfrancois VenereBrazil2025-09-27Benton, John B Jr RENEWAL42Asiya Javayant
1021Francesco ShinkoArgentina2025-09-18Rangoni Of Florence QUALIFIED70Ioni Bowcher
1022Johnson SergiUnited Kingdom2025-10-05Dorl, James J Esq RENEWAL8Onyama Limba
1023James ButtRussia2025-09-27Rangoni Of Florence NEW47Anna Fali
1024Wickens NestleCanada2025-10-05Chemel, James L Cpa NEW12Amy Elsner
1025Izzy GarufiArgentina2025-10-03Benton, John B Jr PROPOSAL87Xuxue Feng
1026Sinclair WaycottSpain2025-09-28King, Christopher A Esq PROPOSAL49Ioni Bowcher
1027Smith GlickBrazil2025-09-29Commercial Press QUALIFIED66Ioni Bowcher
1028Silvio SlusarskiCanada2025-09-17Rousseaux, Michael Esq PROPOSAL44Ioni Bowcher
1029James ButtArgentina2025-09-07Feiner Bros NEW7Amy Elsner
1030Costa DilliardBrazil2025-09-09Benton, John B Jr NEGOTIATION70Bernardo Dominic
1031Darci PoquetteFrance2025-10-05Buckley Miller Wright QUALIFIED79Ioni Bowcher
1032Jefferson SchemmerUnited Kingdom2025-09-24Chapman, Ross E Esq PROPOSAL34Elwin Sharvill
1033Misaki RoysterJapan2025-10-01Chapman, Ross E Esq NEW65Amy Elsner
1034Mujtaba NickaSpain2025-09-15Feiner Bros UNQUALIFIED87Xuxue Feng
1035Izzy GarufiItaly2025-09-14Rousseaux, Michael Esq NEW46Xuxue Feng
1036Costa DilliardIndia2025-09-26Morlong Associates NEGOTIATION43Stephen Shaw
1037Leja CaldareraBrazil2025-09-30Rangoni Of Florence UNQUALIFIED83Anna Fali
1038Clifford RimAustralia2025-09-20Dorl, James J Esq NEGOTIATION35Xuxue Feng
1039Alejandro PerinBrazil2025-09-09Rousseaux, Michael Esq RENEWAL30Asiya Javayant
1040Cody SaylorsGermany2025-10-05Chemel, James L Cpa NEGOTIATION20Onyama Limba
1041Isabel BowleyRussia2025-09-18Rangoni Of Florence PROPOSAL70Asiya Javayant
1042Mayumi KolmetzArgentina2025-09-13Truhlar And Truhlar Attys NEGOTIATION43Stephen Shaw
1043Mayumi KolmetzUnited Kingdom2025-10-03Chemel, James L Cpa QUALIFIED82Ioni Bowcher
1044Maisha RulapaughItaly2025-09-08King, Christopher A Esq NEGOTIATION1Bernardo Dominic
1045Deepesh ChuiArgentina2025-10-04Buckley Miller Wright NEGOTIATION61Ioni Bowcher
1046Ivar PaprockiFrance2025-09-22Truhlar And Truhlar Attys UNQUALIFIED94Anna Fali
1047Nicolas IturbideUnited Kingdom2025-09-20Commercial Press NEW95Xuxue Feng
1048Leon OldroydArgentina2025-09-27Chapman, Ross E Esq QUALIFIED17Stephen Shaw
1049Izzy GarufiJapan2025-09-14Truhlar And Truhlar Attys NEW85Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi KolmetzItalyAmy Elsner RENEWAL
Isabel BowleyJapanElwin Sharvill NEW
Salvatore StockhamBrazilBernardo Dominic RENEWAL
Wickens NestleFranceAnna Fali NEW
Jeanfrancois VenereGermanyIoni Bowcher NEW
Mayumi KolmetzSpainOnyama Limba NEGOTIATION
Kaitlin OstroskyJapanIvan Magalhaes NEGOTIATION
Antonio CaudyRussiaAnna Fali RENEWAL
Rodrigues CampainUnited KingdomOnyama Limba RENEWAL
Emily WhobreyJapanOnyama Limba NEGOTIATION
Nicolas IturbideIndiaElwin Sharvill NEGOTIATION
Emily WhobreyItalyBernardo Dominic QUALIFIED
Leja CaldareraItalyAsiya Javayant QUALIFIED
Ashley DoeSpainElwin Sharvill UNQUALIFIED
Maria MarrierItalyAnna Fali NEW
Leon OldroydCanadaIvan Magalhaes NEW
Stacey MacleadAustraliaIoni Bowcher RENEWAL
Alejandro PerinItalyXuxue Feng QUALIFIED
Leon OldroydCanadaStephen Shaw RENEWAL
Munro FerenczCanadaElwin Sharvill NEW
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic PROPOSAL
Chavez BriddickAustraliaAnna Fali QUALIFIED
Aditya KuskoFranceAnna Fali QUALIFIED
Izzy GarufiJapanIvan Magalhaes NEW
Jefferson SchemmerBrazilStephen Shaw NEGOTIATION
Jeanfrancois VenereCanadaAsiya Javayant UNQUALIFIED
Francesco ShinkoRussiaBernardo Dominic UNQUALIFIED
Sinclair WaycottBrazilElwin Sharvill PROPOSAL
Faith GillianArgentinaBernardo Dominic NEW
Emily WhobreyFranceIoni Bowcher QUALIFIED
Leja CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Costa DilliardFranceAnna Fali PROPOSAL
Antonio CaudyJapanStephen Shaw NEW
Adams MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi KolmetzJapanXuxue Feng NEW
Kaitlin OstroskyArgentinaXuxue Feng NEGOTIATION
James ButtJapanIoni Bowcher PROPOSAL
Maria MarrierItalyAsiya Javayant PROPOSAL
Costa DilliardRussiaXuxue Feng RENEWAL
Ashley DoeAustraliaAmy Elsner RENEWAL
Juan WieserAustraliaStephen Shaw PROPOSAL
Mayumi KolmetzFranceAnna Fali RENEWAL
Misaki RoysterJapanAmy Elsner UNQUALIFIED
Nicolas IturbideUnited KingdomIoni Bowcher NEW
Stacey MacleadCanadaIvan Magalhaes UNQUALIFIED
Misaki RoysterJapanXuxue Feng QUALIFIED
Francesco ShinkoBrazilXuxue Feng NEGOTIATION
Antonio CaudySpainStephen Shaw NEGOTIATION
Julie StensethRussiaAnna Fali NEW
Frozen Columns
Name
Emily Whobrey
Rodrigues Campain
Kadeem Flosi
Wickens Nestle
Tony Foller
Aditya Kusko
Faith Gillian
Sinclair Waycott
Jefferson Schemmer
Alejandro Perin
David Darakjy
Nicolas Iturbide
Stacey Maclead
Deepesh Chui
Rodrigues Campain
Adams Morasca
Tony Foller
Sinclair Waycott
Greenwood Bolognia
Jennifer Amigon
Kadeem Flosi
Jefferson Schemmer
Deepesh Chui
Izzy Garufi
Leon Oldroyd
Arvin Albares
James Butt
Misaki Royster
Leon Oldroyd
James Butt
Isabel Bowley
Faith Gillian
Maisha Rulapaugh
James Butt
Tony Foller
Mujtaba Nicka
Jennifer Amigon
Misaki Royster
Adams Morasca
Izzy Garufi
Julie Stenseth
Murillo Malet
James Butt
Kaitlin Ostrosky
Ashley Doe
Morrow Ruta
James Butt
Francesco Shinko
Morrow Ruta
Wickens Nestle
IdCountryDate
1000United Kingdom2025-09-23
1001Canada2025-09-26
1002Italy2025-09-23
1003France2025-09-22
1004United Kingdom2025-10-03
1005France2025-09-19
1006India2025-09-11
1007Spain2025-09-15
1008Japan2025-09-21
1009Canada2025-09-06
1010France2025-09-18
1011Germany2025-10-04
1012Argentina2025-09-16
1013Italy2025-09-29
1014Australia2025-09-27
1015India2025-09-07
1016United Kingdom2025-09-09
1017Australia2025-09-30
1018Germany2025-09-06
1019United Kingdom2025-09-13
1020India2025-09-28
1021Italy2025-10-03
1022Brazil2025-09-22
1023Canada2025-09-07
1024Japan2025-09-23
1025India2025-09-26
1026Japan2025-09-29
1027United Kingdom2025-09-17
1028Canada2025-10-05
1029Germany2025-09-14
1030Argentina2025-09-13
1031Spain2025-10-04
1032Russia2025-09-10
1033France2025-09-10
1034Japan2025-09-26
1035France2025-09-06
1036Canada2025-09-30
1037Italy2025-09-15
1038Russia2025-09-28
1039Japan2025-09-14
1040Italy2025-09-13
1041Germany2025-09-15
1042Japan2025-10-01
1043United Kingdom2025-09-06
1044Brazil2025-09-07
1045Brazil2025-09-09
1046United Kingdom2025-09-27
1047Spain2025-09-16
1048Russia2025-09-27
1049Japan2025-09-29

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Canada2025-09-08
Jennifer Amigon1001Spain2025-09-18
Leon Oldroyd1002Spain2025-09-15
Julie Stenseth1003Brazil2025-09-07
Wickens Nestle1004Germany2025-10-02
Misaki Royster1005Germany2025-09-11
Ricardo Gaucho1006United Kingdom2025-10-04
Octavia Malet1007Argentina2025-09-24
Claire Tollner1008Brazil2025-09-23
Izzy Garufi1009Canada2025-09-25
Alejandro Perin1010Germany2025-09-12
Isabel Bowley1011United Kingdom2025-09-08
Emily Whobrey1012Japan2025-10-04
Ricardo Gaucho1013France2025-10-05
Wickens Nestle1014Italy2025-09-23
Jefferson Schemmer1015Australia2025-09-28
Smith Glick1016Australia2025-09-17
Nicolas Iturbide1017Brazil2025-10-01
Silvio Slusarski1018Spain2025-10-04
Juan Wieser1019Canada2025-10-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiGermanyOnyama Limba PROPOSAL
Rodrigues CampainJapanAsiya Javayant UNQUALIFIED
Munro FerenczJapanOnyama Limba PROPOSAL
Jeanfrancois VenereUnited KingdomElwin Sharvill NEGOTIATION
Cody SaylorsSpainAmy Elsner UNQUALIFIED
Isabel BowleySpainAmy Elsner UNQUALIFIED
Adams MorascaIndiaStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilIoni Bowcher RENEWAL
Ashley DoeIndiaIoni Bowcher RENEWAL
Tony FollerGermanyStephen Shaw QUALIFIED
David DarakjyGermanyIvan Magalhaes QUALIFIED
Francesco ShinkoIndiaIoni Bowcher NEGOTIATION
Claire TollnerGermanyIoni Bowcher NEGOTIATION
Julie StensethFranceStephen Shaw NEW
Deepesh ChuiArgentinaAmy Elsner NEW
Ricardo GauchoSpainAsiya Javayant NEW
Juan WieserUnited KingdomIoni Bowcher NEW
Deepesh ChuiGermanyIvan Magalhaes NEGOTIATION
Wickens NestleFranceOnyama Limba QUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher NEGOTIATION
Maria MarrierAustraliaOnyama Limba UNQUALIFIED
Francesco ShinkoSpainIoni Bowcher UNQUALIFIED
Smith GlickGermanyStephen Shaw NEW
Antonio CaudyGermanyXuxue Feng QUALIFIED
Julie StensethIndiaIvan Magalhaes NEGOTIATION
Tony FollerBrazilXuxue Feng RENEWAL
Jefferson SchemmerCanadaAsiya Javayant RENEWAL
Jeanfrancois VenereJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughAustraliaIvan Magalhaes QUALIFIED
Munro FerenczSpainAsiya Javayant NEGOTIATION
Silvio SlusarskiIndiaElwin Sharvill UNQUALIFIED
Munro FerenczSpainAsiya Javayant UNQUALIFIED
Maisha RulapaughRussiaStephen Shaw PROPOSAL
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Ashley DoeBrazilXuxue Feng NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant QUALIFIED
Julie StensethItalyIoni Bowcher RENEWAL
Morrow RutaItalyStephen Shaw PROPOSAL
Silvio SlusarskiBrazilAsiya Javayant PROPOSAL
Deepesh ChuiBrazilXuxue Feng QUALIFIED

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