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
Mayumi KolmetzFranceAsiya Javayant UNQUALIFIED
Ashley DoeGermanyXuxue Feng NEW
Ivar PaprockiRussiaAmy Elsner UNQUALIFIED
Ashley DoeCanadaIvan Magalhaes RENEWAL
Kadeem FlosiItalyXuxue Feng QUALIFIED
Antonio CaudyItalyBernardo Dominic NEW
Munro FerenczIndiaAsiya Javayant NEGOTIATION
Chavez BriddickRussiaAnna Fali UNQUALIFIED
Tony FollerFranceIoni Bowcher QUALIFIED
Emily WhobreyCanadaAmy Elsner RENEWAL
Costa DilliardJapanAnna Fali RENEWAL
Kadeem FlosiAustraliaStephen Shaw RENEWAL
Emily WhobreySpainIvan Magalhaes PROPOSAL
Murillo MaletSpainOnyama Limba QUALIFIED
Clifford RimJapanStephen Shaw NEW
Emily WhobreyFranceIoni Bowcher RENEWAL
Emily WhobreyItalyBernardo Dominic QUALIFIED
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Izzy GarufiItalyAmy Elsner NEW
Deepesh ChuiSpainAmy Elsner PROPOSAL
Leja CaldareraJapanAmy Elsner QUALIFIED
Adams MorascaSpainIvan Magalhaes NEGOTIATION
Adams MorascaSpainIvan Magalhaes NEW
Rodrigues CampainCanadaElwin Sharvill NEGOTIATION
Cody SaylorsArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyBrazilIvan Magalhaes UNQUALIFIED
Adams MorascaUnited KingdomStephen Shaw UNQUALIFIED
Silvio SlusarskiAustraliaOnyama Limba NEW
David DarakjyGermanyIvan Magalhaes UNQUALIFIED
Leon OldroydItalyAsiya Javayant NEW
Maisha RulapaughAustraliaBernardo Dominic NEGOTIATION
Julie StensethFranceXuxue Feng RENEWAL
Smith GlickCanadaElwin Sharvill PROPOSAL
Adams MorascaCanadaXuxue Feng NEGOTIATION
Emily WhobreyFranceIvan Magalhaes UNQUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill PROPOSAL
Arvin AlbaresArgentinaOnyama Limba NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill QUALIFIED
Adams MorascaJapanAnna Fali RENEWAL
Leja CaldareraItalyOnyama Limba PROPOSAL
Maria MarrierAustraliaIvan Magalhaes RENEWAL
Kaitlin OstroskyUnited KingdomXuxue Feng NEGOTIATION
Kadeem FlosiIndiaAsiya Javayant NEGOTIATION
Jennifer AmigonArgentinaBernardo Dominic UNQUALIFIED
Adams MorascaUnited KingdomOnyama Limba NEGOTIATION
Juan WieserIndiaXuxue Feng UNQUALIFIED
Morrow RutaUnited KingdomAnna Fali NEW
Rodrigues CampainRussiaElwin Sharvill NEW
Aditya KuskoItalyElwin Sharvill UNQUALIFIED
Darci PoquetteSpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickJapanOnyama Limba PROPOSAL
Ashley DoeIndiaAmy Elsner UNQUALIFIED
Mujtaba NickaSpainXuxue Feng NEGOTIATION
Chavez BriddickArgentinaAnna Fali NEGOTIATION
Juan WieserCanadaAmy Elsner NEW
Faith GillianCanadaIoni Bowcher NEW
Deepesh ChuiArgentinaAnna Fali NEGOTIATION
Antonio CaudyArgentinaXuxue Feng RENEWAL
Cody SaylorsBrazilStephen Shaw QUALIFIED
Ivar PaprockiRussiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoCanada2026-05-19Chemel, James L Cpa NEGOTIATION36Ivan Magalhaes
1001Ashley DoeBrazil2026-05-28Commercial Press UNQUALIFIED6Xuxue Feng
1002Isabel BowleyJapan2026-06-11Printing Dimensions NEW97Xuxue Feng
1003Greenwood BologniaFrance2026-05-23Chapman, Ross E Esq QUALIFIED44Ivan Magalhaes
1004Adams MorascaItaly2026-06-06Chapman, Ross E Esq NEGOTIATION87Ioni Bowcher
1005Nicolas IturbideGermany2026-05-29Dorl, James J Esq NEGOTIATION77Amy Elsner
1006Greenwood BologniaFrance2026-05-27Dorl, James J Esq PROPOSAL3Onyama Limba
1007Munro FerenczArgentina2026-06-04Morlong Associates QUALIFIED7Asiya Javayant
1008Ricardo GauchoRussia2026-06-13Commercial Press RENEWAL15Xuxue Feng
1009Emily WhobreyCanada2026-06-12Chemel, James L Cpa RENEWAL35Asiya Javayant
1010Antonio CaudyItaly2026-06-14Morlong Associates PROPOSAL88Onyama Limba
1011Darci PoquetteSpain2026-06-08Truhlar And Truhlar Attys NEW22Anna Fali
1012Jennifer AmigonIndia2026-05-25Truhlar And Truhlar Attys RENEWAL46Onyama Limba
1013Silvio SlusarskiUnited Kingdom2026-05-23King, Christopher A Esq UNQUALIFIED74Xuxue Feng
1014Rodrigues CampainJapan2026-05-19Commercial Press NEW29Stephen Shaw
1015Adams MorascaCanada2026-05-27Chanay, Jeffrey A Esq NEGOTIATION27Ivan Magalhaes
1016Silvio SlusarskiGermany2026-05-24Feltz Printing Service QUALIFIED25Stephen Shaw
1017Mayumi KolmetzItaly2026-06-12Benton, John B Jr UNQUALIFIED70Anna Fali
1018Mujtaba NickaCanada2026-06-06Truhlar And Truhlar Attys NEW3Amy Elsner
1019Leja CaldareraArgentina2026-06-08Dorl, James J Esq UNQUALIFIED79Elwin Sharvill
1020Maisha RulapaughFrance2026-05-22Truhlar And Truhlar Attys NEGOTIATION94Bernardo Dominic
1021Aika InouyeIndia2026-06-01Feltz Printing Service UNQUALIFIED50Ioni Bowcher
1022David DarakjyUnited Kingdom2026-06-09Feiner Bros QUALIFIED89Stephen Shaw
1023Mujtaba NickaUnited Kingdom2026-05-21Truhlar And Truhlar Attys PROPOSAL79Asiya Javayant
1024Jeanfrancois VenereFrance2026-05-31Truhlar And Truhlar Attys NEW15Xuxue Feng
1025Octavia MaletAustralia2026-05-30Feiner Bros NEW67Asiya Javayant
1026Nicolas IturbideItaly2026-06-05Chapman, Ross E Esq RENEWAL9Onyama Limba
1027Deepesh ChuiArgentina2026-05-20Rousseaux, Michael Esq PROPOSAL1Asiya Javayant
1028Clifford RimRussia2026-05-25Rangoni Of Florence PROPOSAL7Anna Fali
1029Aika InouyeGermany2026-05-16Chapman, Ross E Esq QUALIFIED51Xuxue Feng
1030Murillo MaletIndia2026-06-08King, Christopher A Esq NEW80Asiya Javayant
1031David DarakjyFrance2026-06-07Rousseaux, Michael Esq NEW71Amy Elsner
1032Darci PoquetteSpain2026-05-26Feltz Printing Service NEW75Ivan Magalhaes
1033Octavia MaletBrazil2026-05-27Rangoni Of Florence NEW2Onyama Limba
1034Juan WieserRussia2026-05-21Benton, John B Jr PROPOSAL19Bernardo Dominic
1035Munro FerenczIndia2026-05-26Feiner Bros RENEWAL99Asiya Javayant
1036Nicolas IturbideRussia2026-06-09Commercial Press NEGOTIATION52Stephen Shaw
1037Alejandro PerinCanada2026-05-17Chanay, Jeffrey A Esq QUALIFIED51Anna Fali
1038Claire TollnerCanada2026-05-24Benton, John B Jr QUALIFIED75Anna Fali
1039Francesco ShinkoArgentina2026-05-29Chanay, Jeffrey A Esq QUALIFIED46Elwin Sharvill
1040Cody SaylorsJapan2026-06-09Chemel, James L Cpa RENEWAL39Ioni Bowcher
1041Jefferson SchemmerArgentina2026-06-07Rangoni Of Florence NEGOTIATION8Amy Elsner
1042Julie StensethSpain2026-05-28Chapman, Ross E Esq QUALIFIED95Elwin Sharvill
1043Aruna FigeroaAustralia2026-05-27Feltz Printing Service UNQUALIFIED54Asiya Javayant
1044Julie StensethItaly2026-05-24Commercial Press PROPOSAL7Stephen Shaw
1045James ButtBrazil2026-06-02Commercial Press QUALIFIED72Bernardo Dominic
1046Nicolas IturbideGermany2026-06-06Rangoni Of Florence NEW89Elwin Sharvill
1047Mayumi KolmetzFrance2026-05-18Feltz Printing Service RENEWAL35Asiya Javayant
1048Chavez BriddickRussia2026-05-29Rangoni Of Florence PROPOSAL80Onyama Limba
1049Silvio SlusarskiRussia2026-05-19Rousseaux, Michael Esq NEW73Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiAustraliaXuxue Feng PROPOSAL
Chavez BriddickArgentinaAmy Elsner NEGOTIATION
Silvio SlusarskiIndiaAmy Elsner UNQUALIFIED
Julie StensethAustraliaStephen Shaw QUALIFIED
Antonio CaudyGermanyXuxue Feng UNQUALIFIED
Jones VocelkaIndiaOnyama Limba PROPOSAL
Jefferson SchemmerItalyIvan Magalhaes RENEWAL
Rodrigues CampainIndiaIoni Bowcher NEW
Leon OldroydFranceBernardo Dominic NEGOTIATION
James ButtFranceXuxue Feng NEW
Darci PoquetteAustraliaAsiya Javayant NEW
Tony FollerArgentinaIvan Magalhaes PROPOSAL
Clifford RimIndiaAnna Fali UNQUALIFIED
Leja CaldareraAustraliaIvan Magalhaes QUALIFIED
Leon OldroydIndiaXuxue Feng UNQUALIFIED
David DarakjyGermanyStephen Shaw QUALIFIED
Maria MarrierBrazilIoni Bowcher RENEWAL
Alejandro PerinArgentinaAnna Fali QUALIFIED
Rodrigues CampainIndiaElwin Sharvill QUALIFIED
Mujtaba NickaUnited KingdomXuxue Feng PROPOSAL
Wickens NestleAustraliaElwin Sharvill NEW
Octavia MaletGermanyAsiya Javayant UNQUALIFIED
Aditya KuskoSpainOnyama Limba NEW
Claire TollnerJapanOnyama Limba NEGOTIATION
Aruna FigeroaArgentinaAmy Elsner NEGOTIATION
Cody SaylorsSpainIvan Magalhaes UNQUALIFIED
Mayumi KolmetzBrazilAmy Elsner RENEWAL
Maria MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Aika InouyeBrazilElwin Sharvill NEW
Sinclair WaycottItalyStephen Shaw UNQUALIFIED
Greenwood BologniaBrazilIvan Magalhaes NEGOTIATION
Tony FollerUnited KingdomAsiya Javayant RENEWAL
Ricardo GauchoItalyBernardo Dominic NEW
Kaitlin OstroskyItalyAmy Elsner UNQUALIFIED
Kaitlin OstroskyFranceOnyama Limba NEGOTIATION
Stacey MacleadJapanAmy Elsner PROPOSAL
Leja CaldareraBrazilAsiya Javayant NEGOTIATION
Costa DilliardIndiaAmy Elsner PROPOSAL
Maria MarrierBrazilXuxue Feng UNQUALIFIED
Ivar PaprockiJapanAsiya Javayant PROPOSAL
Aruna FigeroaAustraliaIvan Magalhaes PROPOSAL
Arvin AlbaresFranceIoni Bowcher RENEWAL
Wickens NestleRussiaStephen Shaw NEW
Jefferson SchemmerJapanIoni Bowcher UNQUALIFIED
Mujtaba NickaArgentinaIoni Bowcher RENEWAL
Ivar PaprockiSpainStephen Shaw PROPOSAL
Isabel BowleyFranceAnna Fali NEGOTIATION
Arvin AlbaresAustraliaAnna Fali PROPOSAL
Nicolas IturbideFranceXuxue Feng RENEWAL
Ashley DoeCanadaStephen Shaw NEW
Frozen Columns
Name
Arvin Albares
Mujtaba Nicka
James Butt
Cody Saylors
Leon Oldroyd
Arvin Albares
Julie Stenseth
Aditya Kusko
Adams Morasca
Chavez Briddick
Clifford Rim
Tony Foller
Jefferson Schemmer
Darci Poquette
Adams Morasca
Izzy Garufi
Leja Caldarera
Wickens Nestle
Kadeem Flosi
Clifford Rim
Wickens Nestle
Kaitlin Ostrosky
Darci Poquette
Leon Oldroyd
Rodrigues Campain
Kadeem Flosi
Jefferson Schemmer
Johnson Sergi
Ashley Doe
Alejandro Perin
Morrow Ruta
Nicolas Iturbide
Aika Inouye
Ivar Paprocki
Salvatore Stockham
Rodrigues Campain
Ashley Doe
Antonio Caudy
Kadeem Flosi
Nicolas Iturbide
Jennifer Amigon
Johnson Sergi
Nicolas Iturbide
Silvio Slusarski
Murillo Malet
Smith Glick
Francesco Shinko
Isabel Bowley
Kadeem Flosi
Cody Saylors
IdCountryDate
1000France2026-06-04
1001Argentina2026-06-10
1002India2026-05-21
1003Australia2026-06-02
1004Japan2026-05-29
1005Canada2026-06-09
1006Germany2026-05-26
1007Brazil2026-05-31
1008India2026-06-06
1009Australia2026-05-26
1010Germany2026-06-05
1011Japan2026-06-04
1012Japan2026-05-16
1013United Kingdom2026-05-25
1014India2026-05-24
1015Australia2026-05-22
1016Japan2026-06-12
1017Brazil2026-05-26
1018United Kingdom2026-05-23
1019India2026-06-06
1020Spain2026-05-20
1021Italy2026-06-06
1022Spain2026-05-30
1023Spain2026-05-20
1024France2026-06-06
1025Argentina2026-06-01
1026Russia2026-06-05
1027Germany2026-05-18
1028Japan2026-05-19
1029France2026-06-03
1030Brazil2026-06-07
1031Brazil2026-05-21
1032Italy2026-06-08
1033France2026-05-22
1034Australia2026-06-14
1035Italy2026-05-26
1036Australia2026-06-04
1037Brazil2026-05-31
1038Japan2026-05-28
1039Spain2026-05-16
1040Italy2026-05-19
1041Germany2026-06-12
1042Germany2026-06-07
1043India2026-05-21
1044Canada2026-05-19
1045Germany2026-05-20
1046Canada2026-05-29
1047Germany2026-05-30
1048Argentina2026-06-04
1049Australia2026-05-23

On-Demand Data

NameIdCountryDate
Johnson Sergi1000Canada2026-06-05
Clifford Rim1001Australia2026-06-12
Sinclair Waycott1002Russia2026-06-01
Faith Gillian1003Spain2026-06-13
Mujtaba Nicka1004France2026-05-30
Julie Stenseth1005Japan2026-05-26
Deepesh Chui1006Russia2026-05-31
Cody Saylors1007Canada2026-06-07
Ricardo Gaucho1008Argentina2026-05-23
Darci Poquette1009United Kingdom2026-06-08
Murillo Malet1010Argentina2026-05-28
Octavia Malet1011Italy2026-06-12
Juan Wieser1012Brazil2026-06-13
Murillo Malet1013India2026-05-29
Mayumi Kolmetz1014Germany2026-05-30
Kadeem Flosi1015Japan2026-06-03
Arvin Albares1016Canada2026-06-11
David Darakjy1017Australia2026-05-29
Aruna Figeroa1018Germany2026-05-16
Ashley Doe1019Brazil2026-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaGermanyIoni Bowcher RENEWAL
Sinclair WaycottCanadaIoni Bowcher UNQUALIFIED
Aruna FigeroaIndiaStephen Shaw NEW
Juan WieserCanadaAmy Elsner PROPOSAL
Jennifer AmigonJapanAnna Fali PROPOSAL
Murillo MaletSpainAsiya Javayant QUALIFIED
Adams MorascaRussiaIvan Magalhaes QUALIFIED
Munro FerenczJapanAmy Elsner RENEWAL
Emily WhobreyGermanyStephen Shaw UNQUALIFIED
Izzy GarufiItalyXuxue Feng PROPOSAL
James ButtJapanAsiya Javayant QUALIFIED
Emily WhobreyRussiaAmy Elsner UNQUALIFIED
Maisha RulapaughAustraliaIvan Magalhaes NEW
Leon OldroydJapanAmy Elsner RENEWAL
Costa DilliardAustraliaXuxue Feng UNQUALIFIED
Leon OldroydSpainXuxue Feng UNQUALIFIED
Leon OldroydArgentinaAmy Elsner RENEWAL
Nicolas IturbideJapanIoni Bowcher NEW
Morrow RutaJapanAsiya Javayant NEW
Smith GlickAustraliaAnna Fali QUALIFIED
Silvio SlusarskiIndiaStephen Shaw QUALIFIED
Costa DilliardJapanAmy Elsner NEGOTIATION
Morrow RutaSpainElwin Sharvill PROPOSAL
Deepesh ChuiIndiaAnna Fali RENEWAL
Munro FerenczCanadaAsiya Javayant NEW
Antonio CaudyArgentinaStephen Shaw NEGOTIATION
Kadeem FlosiGermanyOnyama Limba QUALIFIED
Johnson SergiRussiaXuxue Feng NEW
Antonio CaudyAustraliaXuxue Feng UNQUALIFIED
Munro FerenczIndiaAmy Elsner NEGOTIATION
Morrow RutaAustraliaAsiya Javayant NEGOTIATION
Tony FollerItalyAnna Fali PROPOSAL
Jefferson SchemmerGermanyAsiya Javayant NEW
Octavia MaletAustraliaAnna Fali QUALIFIED
Emily WhobreyBrazilStephen Shaw QUALIFIED
Tony FollerBrazilOnyama Limba QUALIFIED
Tony FollerRussiaBernardo Dominic QUALIFIED
Kadeem FlosiRussiaBernardo Dominic PROPOSAL
Nicolas IturbideCanadaAsiya Javayant RENEWAL
Julie StensethCanadaElwin Sharvill NEGOTIATION

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