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
Murillo MaletJapanAnna Fali NEGOTIATION
Claire TollnerItalyAmy Elsner QUALIFIED
Kadeem FlosiSpainOnyama Limba NEGOTIATION
Julie StensethUnited KingdomElwin Sharvill PROPOSAL
Jefferson SchemmerIndiaBernardo Dominic RENEWAL
Murillo MaletSpainOnyama Limba RENEWAL
Maisha RulapaughRussiaAnna Fali NEW
Faith GillianSpainAsiya Javayant PROPOSAL
Costa DilliardFranceXuxue Feng NEGOTIATION
Wickens NestleBrazilAsiya Javayant NEW
Faith GillianArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletArgentinaIvan Magalhaes RENEWAL
Adams MorascaSpainIvan Magalhaes RENEWAL
Tony FollerJapanBernardo Dominic RENEWAL
Morrow RutaJapanAmy Elsner UNQUALIFIED
Aditya KuskoCanadaAmy Elsner UNQUALIFIED
Misaki RoysterFranceAnna Fali PROPOSAL
Emily WhobreyJapanOnyama Limba NEGOTIATION
Johnson SergiCanadaIvan Magalhaes QUALIFIED
Ashley DoeFranceOnyama Limba UNQUALIFIED
Rodrigues CampainCanadaAnna Fali PROPOSAL
Ashley DoeCanadaIvan Magalhaes PROPOSAL
Faith GillianCanadaIoni Bowcher RENEWAL
Stacey MacleadAustraliaElwin Sharvill PROPOSAL
Octavia MaletAustraliaXuxue Feng NEW
Sinclair WaycottJapanIvan Magalhaes NEGOTIATION
Arvin AlbaresIndiaIvan Magalhaes NEGOTIATION
Greenwood BologniaIndiaElwin Sharvill NEGOTIATION
Smith GlickJapanStephen Shaw UNQUALIFIED
Murillo MaletSpainAsiya Javayant NEW
Mujtaba NickaSpainAnna Fali RENEWAL
Octavia MaletIndiaXuxue Feng NEW
Isabel BowleyRussiaXuxue Feng PROPOSAL
Rodrigues CampainBrazilElwin Sharvill NEW
Octavia MaletIndiaAsiya Javayant QUALIFIED
Clifford RimArgentinaElwin Sharvill NEW
Jefferson SchemmerJapanAmy Elsner PROPOSAL
Mayumi KolmetzArgentinaStephen Shaw QUALIFIED
James ButtAustraliaIoni Bowcher UNQUALIFIED
Johnson SergiJapanAsiya Javayant PROPOSAL
Aruna FigeroaSpainBernardo Dominic NEGOTIATION
Francesco ShinkoFranceOnyama Limba NEGOTIATION
Rodrigues CampainIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Isabel BowleyItalyAsiya Javayant QUALIFIED
Isabel BowleyBrazilOnyama Limba QUALIFIED
Emily WhobreyArgentinaAnna Fali RENEWAL
Stacey MacleadGermanyXuxue Feng PROPOSAL
Jeanfrancois VenereJapanXuxue Feng NEW
David DarakjyFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon OldroydFranceIvan Magalhaes QUALIFIED
Jefferson SchemmerCanadaAnna Fali QUALIFIED
James ButtFranceBernardo Dominic NEGOTIATION
Francesco ShinkoFranceAnna Fali NEGOTIATION
Wickens NestleGermanyAnna Fali NEGOTIATION
Izzy GarufiAustraliaOnyama Limba RENEWAL
David DarakjyJapanIvan Magalhaes NEW
Salvatore StockhamItalyAnna Fali UNQUALIFIED
Emily WhobreyCanadaAsiya Javayant PROPOSAL
Isabel BowleyAustraliaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraFrance2026-03-26King, Christopher A Esq NEGOTIATION55Anna Fali
1001Ashley DoeCanada2026-04-05Rousseaux, Michael Esq NEW38Ivan Magalhaes
1002Murillo MaletGermany2026-04-13Printing Dimensions NEGOTIATION35Stephen Shaw
1003Sinclair WaycottCanada2026-04-06Chapman, Ross E Esq NEGOTIATION83Onyama Limba
1004Smith GlickSpain2026-04-03Commercial Press PROPOSAL48Onyama Limba
1005Aika InouyeUnited Kingdom2026-04-11Morlong Associates NEW44Stephen Shaw
1006Salvatore StockhamGermany2026-04-09Morlong Associates QUALIFIED99Asiya Javayant
1007Maisha RulapaughGermany2026-03-27Dorl, James J Esq UNQUALIFIED85Xuxue Feng
1008Aditya KuskoItaly2026-03-26Rousseaux, Michael Esq PROPOSAL29Ivan Magalhaes
1009Leja CaldareraCanada2026-03-25Chanay, Jeffrey A Esq QUALIFIED80Ioni Bowcher
1010Jefferson SchemmerAustralia2026-03-28Feiner Bros RENEWAL90Ivan Magalhaes
1011Jones VocelkaGermany2026-04-10Benton, John B Jr NEGOTIATION70Asiya Javayant
1012Octavia MaletFrance2026-04-19Benton, John B Jr NEW22Elwin Sharvill
1013Aditya KuskoAustralia2026-04-04Commercial Press NEW24Bernardo Dominic
1014Cody SaylorsAustralia2026-04-12Commercial Press RENEWAL4Anna Fali
1015James ButtUnited Kingdom2026-04-18Rousseaux, Michael Esq PROPOSAL88Anna Fali
1016Greenwood BologniaUnited Kingdom2026-04-18Rousseaux, Michael Esq NEGOTIATION93Elwin Sharvill
1017Juan WieserBrazil2026-04-14Chanay, Jeffrey A Esq PROPOSAL83Anna Fali
1018Tony FollerUnited Kingdom2026-03-27Rousseaux, Michael Esq PROPOSAL20Stephen Shaw
1019Jeanfrancois VenereIndia2026-04-20Benton, John B Jr NEW54Asiya Javayant
1020Johnson SergiAustralia2026-04-16Truhlar And Truhlar Attys PROPOSAL77Ioni Bowcher
1021Mayumi KolmetzUnited Kingdom2026-03-27Benton, John B Jr QUALIFIED30Ivan Magalhaes
1022Aika InouyeIndia2026-04-19Morlong Associates RENEWAL50Ioni Bowcher
1023Francesco ShinkoGermany2026-04-07Printing Dimensions PROPOSAL31Ioni Bowcher
1024Kadeem FlosiSpain2026-04-13Rangoni Of Florence PROPOSAL59Xuxue Feng
1025Izzy GarufiJapan2026-04-01King, Christopher A Esq NEW29Anna Fali
1026Jones VocelkaAustralia2026-04-10King, Christopher A Esq QUALIFIED86Stephen Shaw
1027Sinclair WaycottBrazil2026-04-12Printing Dimensions NEW25Ioni Bowcher
1028Faith GillianBrazil2026-03-27Dorl, James J Esq NEW70Xuxue Feng
1029Smith GlickUnited Kingdom2026-04-16Buckley Miller Wright NEGOTIATION34Amy Elsner
1030Silvio SlusarskiUnited Kingdom2026-03-27Feltz Printing Service NEGOTIATION27Stephen Shaw
1031David DarakjyUnited Kingdom2026-04-06Feltz Printing Service PROPOSAL63Elwin Sharvill
1032Smith GlickIndia2026-04-23Rangoni Of Florence RENEWAL25Anna Fali
1033Munro FerenczFrance2026-04-09Dorl, James J Esq PROPOSAL47Ioni Bowcher
1034Jennifer AmigonSpain2026-04-13Rangoni Of Florence PROPOSAL64Onyama Limba
1035Maria MarrierRussia2026-04-23King, Christopher A Esq PROPOSAL29Onyama Limba
1036Aika InouyeUnited Kingdom2026-03-29King, Christopher A Esq RENEWAL63Xuxue Feng
1037Leon OldroydAustralia2026-04-05Truhlar And Truhlar Attys NEGOTIATION1Stephen Shaw
1038Antonio CaudyUnited Kingdom2026-04-01Morlong Associates RENEWAL49Asiya Javayant
1039Jefferson SchemmerAustralia2026-03-29Feiner Bros RENEWAL94Bernardo Dominic
1040David DarakjyUnited Kingdom2026-04-09Benton, John B Jr NEGOTIATION3Onyama Limba
1041Tony FollerBrazil2026-04-14Buckley Miller Wright QUALIFIED67Amy Elsner
1042Francesco ShinkoRussia2026-03-30Benton, John B Jr UNQUALIFIED14Amy Elsner
1043Nicolas IturbideGermany2026-04-21King, Christopher A Esq UNQUALIFIED32Onyama Limba
1044Ashley DoeUnited Kingdom2026-04-16Rangoni Of Florence UNQUALIFIED54Elwin Sharvill
1045Costa DilliardFrance2026-04-07Chanay, Jeffrey A Esq NEGOTIATION1Ioni Bowcher
1046Aruna FigeroaSpain2026-03-28Rousseaux, Michael Esq RENEWAL77Xuxue Feng
1047Francesco ShinkoIndia2026-04-16Benton, John B Jr RENEWAL86Anna Fali
1048Smith GlickIndia2026-04-08Chanay, Jeffrey A Esq UNQUALIFIED31Xuxue Feng
1049David DarakjyRussia2026-04-09Dorl, James J Esq NEW99Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerRussiaAmy Elsner NEW
Isabel BowleyArgentinaOnyama Limba NEGOTIATION
Misaki RoysterUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiCanadaElwin Sharvill NEW
Munro FerenczFranceOnyama Limba RENEWAL
Wickens NestleIndiaStephen Shaw NEW
Murillo MaletFranceAsiya Javayant QUALIFIED
Maria MarrierGermanyBernardo Dominic NEGOTIATION
Chavez BriddickFranceBernardo Dominic NEGOTIATION
Stacey MacleadGermanyElwin Sharvill NEW
Murillo MaletRussiaStephen Shaw UNQUALIFIED
Murillo MaletAustraliaAnna Fali RENEWAL
Sinclair WaycottGermanyElwin Sharvill NEW
Leon OldroydUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro PerinAustraliaBernardo Dominic NEW
Aditya KuskoFranceIvan Magalhaes RENEWAL
Leja CaldareraItalyIvan Magalhaes QUALIFIED
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Claire TollnerFranceElwin Sharvill PROPOSAL
Morrow RutaItalyIoni Bowcher UNQUALIFIED
Darci PoquetteIndiaOnyama Limba NEGOTIATION
Arvin AlbaresArgentinaAmy Elsner QUALIFIED
Chavez BriddickItalyIvan Magalhaes UNQUALIFIED
Ivar PaprockiFranceXuxue Feng NEW
Jennifer AmigonGermanyBernardo Dominic UNQUALIFIED
Maisha RulapaughJapanOnyama Limba NEW
Silvio SlusarskiAustraliaElwin Sharvill RENEWAL
Rodrigues CampainItalyXuxue Feng NEW
Adams MorascaSpainOnyama Limba QUALIFIED
Maisha RulapaughItalyXuxue Feng NEW
Mayumi KolmetzJapanAsiya Javayant UNQUALIFIED
Clifford RimUnited KingdomIoni Bowcher RENEWAL
Cody SaylorsBrazilAsiya Javayant QUALIFIED
Mujtaba NickaBrazilIvan Magalhaes NEW
Maria MarrierAustraliaIoni Bowcher UNQUALIFIED
Maria MarrierAustraliaXuxue Feng PROPOSAL
Maisha RulapaughBrazilAnna Fali NEW
Jefferson SchemmerCanadaXuxue Feng NEW
Tony FollerArgentinaIoni Bowcher QUALIFIED
Kadeem FlosiCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereAustraliaBernardo Dominic PROPOSAL
Rodrigues CampainCanadaAsiya Javayant RENEWAL
Ivar PaprockiCanadaAmy Elsner NEGOTIATION
Ricardo GauchoBrazilAmy Elsner NEW
Isabel BowleyItalyStephen Shaw NEGOTIATION
Maria MarrierCanadaIvan Magalhaes QUALIFIED
Costa DilliardCanadaIvan Magalhaes UNQUALIFIED
Stacey MacleadFranceBernardo Dominic PROPOSAL
Claire TollnerIndiaStephen Shaw RENEWAL
Faith GillianGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Tony Foller
Maria Marrier
Cody Saylors
Clifford Rim
Faith Gillian
Arvin Albares
Ivar Paprocki
Jennifer Amigon
Wickens Nestle
Aditya Kusko
Costa Dilliard
David Darakjy
Darci Poquette
Maisha Rulapaugh
Morrow Ruta
Jones Vocelka
Juan Wieser
David Darakjy
Clifford Rim
Morrow Ruta
Jefferson Schemmer
Johnson Sergi
Murillo Malet
Deepesh Chui
Tony Foller
Wickens Nestle
Munro Ferencz
Jeanfrancois Venere
Kadeem Flosi
Maria Marrier
Faith Gillian
Darci Poquette
Nicolas Iturbide
Izzy Garufi
Claire Tollner
Chavez Briddick
Emily Whobrey
Antonio Caudy
Cody Saylors
Faith Gillian
Aika Inouye
Ricardo Gaucho
Ashley Doe
Chavez Briddick
Maisha Rulapaugh
Ivar Paprocki
Darci Poquette
Munro Ferencz
Leon Oldroyd
Faith Gillian
IdCountryDate
1000Italy2026-04-16
1001Canada2026-04-21
1002Australia2026-04-18
1003Australia2026-04-01
1004Canada2026-04-05
1005Argentina2026-04-09
1006Italy2026-04-06
1007Germany2026-04-17
1008India2026-04-23
1009India2026-04-05
1010Germany2026-04-09
1011Argentina2026-04-05
1012India2026-04-05
1013Italy2026-03-29
1014France2026-04-23
1015Italy2026-03-29
1016Brazil2026-04-01
1017Italy2026-04-19
1018France2026-04-18
1019United Kingdom2026-03-25
1020United Kingdom2026-04-13
1021Russia2026-03-25
1022Argentina2026-03-29
1023Italy2026-03-25
1024Spain2026-04-12
1025Germany2026-04-12
1026Australia2026-04-03
1027Canada2026-03-28
1028Japan2026-04-06
1029Germany2026-04-01
1030Germany2026-04-18
1031Russia2026-04-13
1032Japan2026-04-15
1033Argentina2026-04-07
1034Spain2026-04-19
1035Italy2026-04-20
1036Australia2026-04-14
1037Spain2026-04-14
1038Canada2026-04-02
1039India2026-04-17
1040France2026-03-30
1041India2026-03-28
1042India2026-04-11
1043Brazil2026-04-19
1044Spain2026-03-31
1045Japan2026-04-17
1046Canada2026-03-26
1047Japan2026-04-20
1048Australia2026-03-28
1049Brazil2026-04-16

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000Russia2026-04-03
Francesco Shinko1001Italy2026-04-19
Leon Oldroyd1002Brazil2026-03-28
Maria Marrier1003Germany2026-04-01
Francesco Shinko1004Spain2026-04-17
Arvin Albares1005India2026-03-31
Ashley Doe1006Brazil2026-03-30
Munro Ferencz1007Australia2026-04-02
Kadeem Flosi1008Italy2026-03-27
Costa Dilliard1009Canada2026-04-21
Darci Poquette1010Italy2026-04-21
Antonio Caudy1011Brazil2026-04-07
Kadeem Flosi1012Japan2026-04-02
Francesco Shinko1013France2026-04-16
Munro Ferencz1014France2026-04-01
Kaitlin Ostrosky1015Australia2026-03-28
Jones Vocelka1016Brazil2026-03-27
Clifford Rim1017France2026-03-25
Mujtaba Nicka1018United Kingdom2026-04-05
Deepesh Chui1019Germany2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsArgentinaAmy Elsner QUALIFIED
Ivar PaprockiBrazilBernardo Dominic UNQUALIFIED
Isabel BowleyCanadaAsiya Javayant NEW
Murillo MaletFranceStephen Shaw RENEWAL
Mayumi KolmetzSpainXuxue Feng UNQUALIFIED
Cody SaylorsFranceOnyama Limba PROPOSAL
James ButtSpainAnna Fali NEGOTIATION
Izzy GarufiRussiaIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaXuxue Feng NEGOTIATION
Antonio CaudyJapanXuxue Feng QUALIFIED
Arvin AlbaresItalyAmy Elsner RENEWAL
Leja CaldareraSpainIoni Bowcher QUALIFIED
Stacey MacleadUnited KingdomAmy Elsner QUALIFIED
Octavia MaletJapanIoni Bowcher QUALIFIED
Ricardo GauchoUnited KingdomOnyama Limba NEGOTIATION
Mayumi KolmetzUnited KingdomAnna Fali PROPOSAL
Munro FerenczAustraliaOnyama Limba NEW
Smith GlickItalyAnna Fali UNQUALIFIED
Juan WieserUnited KingdomElwin Sharvill NEW
Murillo MaletGermanyAmy Elsner RENEWAL
Murillo MaletArgentinaIvan Magalhaes RENEWAL
Leon OldroydCanadaIvan Magalhaes NEGOTIATION
Aditya KuskoBrazilOnyama Limba RENEWAL
Faith GillianBrazilIoni Bowcher QUALIFIED
Jeanfrancois VenereAustraliaAmy Elsner NEW
Aruna FigeroaIndiaIoni Bowcher NEW
Silvio SlusarskiAustraliaAnna Fali NEW
Greenwood BologniaFranceOnyama Limba RENEWAL
Johnson SergiRussiaElwin Sharvill NEGOTIATION
Maisha RulapaughJapanBernardo Dominic RENEWAL
Nicolas IturbideUnited KingdomIoni Bowcher QUALIFIED
Costa DilliardSpainStephen Shaw PROPOSAL
Juan WieserItalyBernardo Dominic NEGOTIATION
Murillo MaletSpainIoni Bowcher QUALIFIED
Jennifer AmigonBrazilAsiya Javayant QUALIFIED
Deepesh ChuiAustraliaXuxue Feng RENEWAL
Morrow RutaIndiaIoni Bowcher UNQUALIFIED
Aika InouyeGermanyAsiya Javayant UNQUALIFIED
David DarakjyArgentinaAsiya Javayant NEW
Nicolas IturbideFranceStephen Shaw 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>