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
Greenwood BologniaUnited KingdomBernardo Dominic PROPOSAL
Clifford RimArgentinaElwin Sharvill QUALIFIED
Ivar PaprockiUnited KingdomBernardo Dominic QUALIFIED
Greenwood BologniaSpainAsiya Javayant QUALIFIED
Leon OldroydAustraliaXuxue Feng NEW
Antonio CaudyFranceIvan Magalhaes UNQUALIFIED
Antonio CaudyFranceBernardo Dominic RENEWAL
Stacey MacleadGermanyAsiya Javayant NEGOTIATION
Jeanfrancois VenereUnited KingdomAnna Fali NEW
Alejandro PerinAustraliaElwin Sharvill QUALIFIED
Alejandro PerinArgentinaStephen Shaw NEW
Francesco ShinkoAustraliaOnyama Limba RENEWAL
Ivar PaprockiArgentinaXuxue Feng NEW
Munro FerenczAustraliaIoni Bowcher RENEWAL
Aditya KuskoFranceElwin Sharvill PROPOSAL
Izzy GarufiSpainAmy Elsner RENEWAL
David DarakjyJapanElwin Sharvill UNQUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes RENEWAL
Misaki RoysterRussiaXuxue Feng NEGOTIATION
Greenwood BologniaArgentinaStephen Shaw NEGOTIATION
Aruna FigeroaUnited KingdomIvan Magalhaes RENEWAL
Ricardo GauchoRussiaIvan Magalhaes QUALIFIED
Chavez BriddickSpainAmy Elsner UNQUALIFIED
Adams MorascaBrazilAsiya Javayant RENEWAL
Jennifer AmigonCanadaElwin Sharvill NEGOTIATION
Silvio SlusarskiArgentinaAsiya Javayant NEW
Jennifer AmigonItalyElwin Sharvill PROPOSAL
Chavez BriddickAustraliaOnyama Limba NEGOTIATION
Wickens NestleArgentinaElwin Sharvill QUALIFIED
Kaitlin OstroskyRussiaOnyama Limba NEGOTIATION
Kadeem FlosiSpainBernardo Dominic NEGOTIATION
Ivar PaprockiItalyXuxue Feng NEW
Munro FerenczBrazilXuxue Feng QUALIFIED
Mayumi KolmetzBrazilStephen Shaw NEW
Munro FerenczSpainXuxue Feng PROPOSAL
Octavia MaletFranceElwin Sharvill PROPOSAL
Leon OldroydArgentinaBernardo Dominic QUALIFIED
Claire TollnerAustraliaIoni Bowcher QUALIFIED
Octavia MaletGermanyElwin Sharvill RENEWAL
Juan WieserBrazilAsiya Javayant RENEWAL
Salvatore StockhamBrazilIoni Bowcher PROPOSAL
Wickens NestleUnited KingdomElwin Sharvill NEW
Claire TollnerFranceBernardo Dominic NEGOTIATION
Mujtaba NickaSpainAsiya Javayant NEW
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Francesco ShinkoSpainBernardo Dominic NEW
Emily WhobreyIndiaXuxue Feng UNQUALIFIED
Alejandro PerinAustraliaIvan Magalhaes NEW
James ButtFranceElwin Sharvill NEW
Juan WieserCanadaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin OstroskyAustraliaIvan Magalhaes NEGOTIATION
Adams MorascaAustraliaIoni Bowcher UNQUALIFIED
Smith GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo MaletItalyElwin Sharvill PROPOSAL
Alejandro PerinArgentinaElwin Sharvill NEW
Claire TollnerFranceStephen Shaw NEW
David DarakjyCanadaStephen Shaw NEGOTIATION
Mujtaba NickaItalyAsiya Javayant PROPOSAL
David DarakjyItalyElwin Sharvill UNQUALIFIED
Jones VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottCanada2026-05-16Dorl, James J Esq PROPOSAL35Ioni Bowcher
1001Mayumi KolmetzFrance2026-05-21Rousseaux, Michael Esq NEGOTIATION0Ioni Bowcher
1002Wickens NestleFrance2026-05-29Truhlar And Truhlar Attys UNQUALIFIED62Amy Elsner
1003Faith GillianIndia2026-06-05Printing Dimensions RENEWAL17Amy Elsner
1004Julie StensethIndia2026-06-04Morlong Associates PROPOSAL53Bernardo Dominic
1005Faith GillianCanada2026-06-04Feltz Printing Service NEGOTIATION30Asiya Javayant
1006Isabel BowleyJapan2026-06-11King, Christopher A Esq PROPOSAL85Xuxue Feng
1007Deepesh ChuiFrance2026-05-30King, Christopher A Esq RENEWAL31Xuxue Feng
1008Francesco ShinkoAustralia2026-06-09Feltz Printing Service UNQUALIFIED32Amy Elsner
1009Juan WieserGermany2026-05-28Dorl, James J Esq NEW40Ivan Magalhaes
1010Izzy GarufiFrance2026-06-09Dorl, James J Esq UNQUALIFIED70Onyama Limba
1011Julie StensethAustralia2026-05-27King, Christopher A Esq NEW37Ioni Bowcher
1012Mujtaba NickaJapan2026-05-16Commercial Press NEW55Onyama Limba
1013Aruna FigeroaRussia2026-05-15Rousseaux, Michael Esq RENEWAL16Bernardo Dominic
1014Adams MorascaIndia2026-05-23King, Christopher A Esq NEGOTIATION33Bernardo Dominic
1015Jennifer AmigonIndia2026-06-11Rangoni Of Florence PROPOSAL34Ioni Bowcher
1016Stacey MacleadArgentina2026-06-01Printing Dimensions QUALIFIED81Elwin Sharvill
1017Leja CaldareraAustralia2026-06-13Chemel, James L Cpa NEGOTIATION39Ivan Magalhaes
1018Stacey MacleadRussia2026-06-11Chanay, Jeffrey A Esq NEW71Amy Elsner
1019Smith GlickFrance2026-05-19Morlong Associates NEGOTIATION88Stephen Shaw
1020Ivar PaprockiUnited Kingdom2026-05-29Printing Dimensions NEW19Ivan Magalhaes
1021Faith GillianCanada2026-06-07Dorl, James J Esq NEW70Amy Elsner
1022Faith GillianArgentina2026-06-04Rangoni Of Florence UNQUALIFIED49Onyama Limba
1023Clifford RimGermany2026-06-11Truhlar And Truhlar Attys RENEWAL19Onyama Limba
1024Stacey MacleadArgentina2026-06-10Feltz Printing Service QUALIFIED39Ivan Magalhaes
1025Cody SaylorsAustralia2026-05-24Benton, John B Jr NEW31Elwin Sharvill
1026Nicolas IturbideBrazil2026-05-28Benton, John B Jr PROPOSAL45Elwin Sharvill
1027Aika InouyeCanada2026-06-02Rousseaux, Michael Esq PROPOSAL65Ivan Magalhaes
1028Munro FerenczCanada2026-05-25Morlong Associates RENEWAL11Stephen Shaw
1029Jefferson SchemmerSpain2026-05-31Feltz Printing Service NEW52Elwin Sharvill
1030Darci PoquetteAustralia2026-06-09Feiner Bros QUALIFIED16Asiya Javayant
1031Ivar PaprockiGermany2026-05-22Buckley Miller Wright UNQUALIFIED50Elwin Sharvill
1032Leja CaldareraIndia2026-05-25Feltz Printing Service NEGOTIATION54Anna Fali
1033Francesco ShinkoAustralia2026-06-01Commercial Press UNQUALIFIED51Ioni Bowcher
1034Tony FollerJapan2026-05-16Dorl, James J Esq QUALIFIED42Bernardo Dominic
1035Stacey MacleadRussia2026-05-22Feltz Printing Service NEGOTIATION73Xuxue Feng
1036Munro FerenczBrazil2026-05-21Dorl, James J Esq QUALIFIED53Bernardo Dominic
1037Arvin AlbaresBrazil2026-05-17Feiner Bros NEGOTIATION67Anna Fali
1038Ashley DoeBrazil2026-05-19King, Christopher A Esq QUALIFIED12Xuxue Feng
1039Deepesh ChuiFrance2026-06-10Feiner Bros PROPOSAL98Ivan Magalhaes
1040Darci PoquetteCanada2026-05-22Feltz Printing Service NEGOTIATION80Elwin Sharvill
1041Nicolas IturbideItaly2026-06-02Chapman, Ross E Esq NEGOTIATION3Stephen Shaw
1042Izzy GarufiArgentina2026-06-10Benton, John B Jr RENEWAL6Anna Fali
1043Deepesh ChuiSpain2026-05-24Feiner Bros RENEWAL61Amy Elsner
1044Tony FollerIndia2026-05-21Feiner Bros NEW56Onyama Limba
1045Juan WieserUnited Kingdom2026-05-17Printing Dimensions NEW47Bernardo Dominic
1046Mayumi KolmetzRussia2026-06-04Morlong Associates UNQUALIFIED12Amy Elsner
1047Izzy GarufiRussia2026-06-11Printing Dimensions NEGOTIATION50Amy Elsner
1048Jones VocelkaArgentina2026-06-01Chapman, Ross E Esq PROPOSAL64Ivan Magalhaes
1049Jefferson SchemmerItaly2026-05-16Buckley Miller Wright RENEWAL48Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideSpainXuxue Feng RENEWAL
Sinclair WaycottFranceXuxue Feng RENEWAL
Smith GlickAustraliaIvan Magalhaes UNQUALIFIED
Ashley DoeBrazilIvan Magalhaes RENEWAL
Jones VocelkaCanadaAsiya Javayant RENEWAL
Octavia MaletUnited KingdomAnna Fali NEW
Clifford RimBrazilStephen Shaw RENEWAL
Stacey MacleadBrazilOnyama Limba UNQUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant NEW
David DarakjyIndiaXuxue Feng NEW
Jones VocelkaBrazilBernardo Dominic PROPOSAL
Rodrigues CampainUnited KingdomElwin Sharvill NEW
Jennifer AmigonArgentinaOnyama Limba UNQUALIFIED
Greenwood BologniaSpainAsiya Javayant QUALIFIED
Tony FollerJapanAnna Fali RENEWAL
Costa DilliardIndiaAsiya Javayant UNQUALIFIED
Leon OldroydUnited KingdomAmy Elsner NEW
Claire TollnerFranceAnna Fali QUALIFIED
Tony FollerArgentinaIoni Bowcher QUALIFIED
Johnson SergiRussiaXuxue Feng NEW
Kaitlin OstroskyArgentinaXuxue Feng PROPOSAL
Aruna FigeroaUnited KingdomStephen Shaw NEW
Leon OldroydCanadaElwin Sharvill NEGOTIATION
Clifford RimIndiaElwin Sharvill NEW
Chavez BriddickSpainStephen Shaw NEW
Tony FollerItalyAmy Elsner RENEWAL
James ButtCanadaStephen Shaw QUALIFIED
Munro FerenczIndiaAsiya Javayant RENEWAL
Jeanfrancois VenereJapanIoni Bowcher QUALIFIED
Kadeem FlosiItalyOnyama Limba NEW
David DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw NEGOTIATION
Aditya KuskoRussiaOnyama Limba NEW
Chavez BriddickItalyXuxue Feng RENEWAL
Clifford RimSpainOnyama Limba UNQUALIFIED
Julie StensethRussiaAmy Elsner NEGOTIATION
Salvatore StockhamCanadaAsiya Javayant UNQUALIFIED
Leja CaldareraArgentinaAsiya Javayant UNQUALIFIED
David DarakjyIndiaStephen Shaw RENEWAL
Ivar PaprockiUnited KingdomStephen Shaw NEW
Rodrigues CampainItalyBernardo Dominic PROPOSAL
Maisha RulapaughItalyStephen Shaw NEW
Kaitlin OstroskyJapanElwin Sharvill UNQUALIFIED
Mayumi KolmetzSpainBernardo Dominic RENEWAL
Sinclair WaycottAustraliaAnna Fali NEW
Wickens NestleCanadaAnna Fali PROPOSAL
Johnson SergiGermanyAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomStephen Shaw RENEWAL
Mayumi KolmetzIndiaElwin Sharvill QUALIFIED
Maria MarrierBrazilOnyama Limba NEGOTIATION
Frozen Columns
Name
Maisha Rulapaugh
Murillo Malet
Smith Glick
Nicolas Iturbide
Aika Inouye
Greenwood Bolognia
Claire Tollner
Johnson Sergi
James Butt
Jennifer Amigon
Jefferson Schemmer
Francesco Shinko
Claire Tollner
Juan Wieser
Munro Ferencz
Octavia Malet
Antonio Caudy
Nicolas Iturbide
Nicolas Iturbide
Maisha Rulapaugh
Munro Ferencz
Emily Whobrey
Leja Caldarera
Cody Saylors
Antonio Caudy
Munro Ferencz
Mayumi Kolmetz
Johnson Sergi
Claire Tollner
Isabel Bowley
Johnson Sergi
Cody Saylors
Cody Saylors
Izzy Garufi
Greenwood Bolognia
Chavez Briddick
Rodrigues Campain
Misaki Royster
Antonio Caudy
Morrow Ruta
Jefferson Schemmer
Johnson Sergi
Chavez Briddick
Costa Dilliard
Rodrigues Campain
Francesco Shinko
Morrow Ruta
Johnson Sergi
Julie Stenseth
Juan Wieser
IdCountryDate
1000Germany2026-05-26
1001Russia2026-06-12
1002Australia2026-05-26
1003India2026-05-20
1004India2026-06-07
1005Brazil2026-06-01
1006Italy2026-06-02
1007Argentina2026-06-11
1008Germany2026-05-19
1009Argentina2026-06-04
1010Spain2026-05-23
1011Russia2026-06-10
1012Russia2026-05-31
1013Germany2026-06-09
1014Spain2026-05-30
1015Spain2026-06-13
1016Japan2026-05-19
1017India2026-05-16
1018Brazil2026-05-18
1019United Kingdom2026-06-09
1020Japan2026-06-03
1021Australia2026-06-10
1022Germany2026-05-20
1023Spain2026-05-30
1024India2026-06-05
1025Canada2026-06-02
1026Spain2026-05-29
1027Australia2026-05-27
1028United Kingdom2026-05-31
1029France2026-05-20
1030Australia2026-06-01
1031India2026-05-19
1032Japan2026-06-03
1033France2026-06-11
1034India2026-05-16
1035Canada2026-05-18
1036United Kingdom2026-06-04
1037Argentina2026-05-16
1038Italy2026-05-17
1039Italy2026-05-26
1040Russia2026-05-28
1041Australia2026-05-18
1042Brazil2026-05-19
1043France2026-05-17
1044Russia2026-05-18
1045United Kingdom2026-06-05
1046Italy2026-05-19
1047Spain2026-05-18
1048United Kingdom2026-05-23
1049Germany2026-06-12

On-Demand Data

NameIdCountryDate
Leon Oldroyd1000Spain2026-06-06
James Butt1001Australia2026-06-10
Salvatore Stockham1002Germany2026-05-18
Deepesh Chui1003Italy2026-05-23
Jennifer Amigon1004Canada2026-06-10
Ricardo Gaucho1005Brazil2026-06-04
Ricardo Gaucho1006Spain2026-06-08
Maria Marrier1007Germany2026-06-01
Aika Inouye1008Germany2026-05-28
Costa Dilliard1009Australia2026-05-17
Isabel Bowley1010United Kingdom2026-05-19
Octavia Malet1011Argentina2026-05-28
Adams Morasca1012France2026-05-30
Morrow Ruta1013Canada2026-05-31
Antonio Caudy1014Argentina2026-05-19
Aditya Kusko1015Spain2026-06-07
James Butt1016Italy2026-05-18
Faith Gillian1017United Kingdom2026-05-23
Maria Marrier1018Germany2026-06-05
Leon Oldroyd1019Canada2026-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzItalyIoni Bowcher UNQUALIFIED
Isabel BowleyGermanyIoni Bowcher PROPOSAL
Chavez BriddickFranceAsiya Javayant RENEWAL
Morrow RutaArgentinaIvan Magalhaes PROPOSAL
Maria MarrierBrazilIoni Bowcher NEGOTIATION
Maria MarrierIndiaOnyama Limba UNQUALIFIED
Greenwood BologniaRussiaOnyama Limba QUALIFIED
Wickens NestleSpainStephen Shaw QUALIFIED
Leon OldroydAustraliaAsiya Javayant PROPOSAL
Stacey MacleadJapanBernardo Dominic QUALIFIED
Leon OldroydGermanyIvan Magalhaes QUALIFIED
Isabel BowleyBrazilIoni Bowcher PROPOSAL
Aika InouyeIndiaAsiya Javayant PROPOSAL
Antonio CaudyFranceElwin Sharvill QUALIFIED
Morrow RutaItalyIvan Magalhaes RENEWAL
Smith GlickItalyOnyama Limba PROPOSAL
Kadeem FlosiBrazilIvan Magalhaes PROPOSAL
Octavia MaletBrazilBernardo Dominic RENEWAL
Izzy GarufiIndiaOnyama Limba NEGOTIATION
Deepesh ChuiBrazilXuxue Feng NEW
Mujtaba NickaItalyXuxue Feng NEGOTIATION
Octavia MaletUnited KingdomIoni Bowcher RENEWAL
Kadeem FlosiGermanyIvan Magalhaes NEW
Cody SaylorsGermanyStephen Shaw PROPOSAL
Mujtaba NickaUnited KingdomBernardo Dominic NEGOTIATION
Aruna FigeroaIndiaAmy Elsner QUALIFIED
Antonio CaudyRussiaAmy Elsner NEW
Greenwood BologniaAustraliaIoni Bowcher NEW
Costa DilliardFranceAmy Elsner UNQUALIFIED
Kadeem FlosiJapanXuxue Feng NEW
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Cody SaylorsFranceOnyama Limba QUALIFIED
Ashley DoeIndiaOnyama Limba PROPOSAL
Salvatore StockhamJapanIoni Bowcher PROPOSAL
Wickens NestleFranceAnna Fali UNQUALIFIED
Faith GillianAustraliaIoni Bowcher UNQUALIFIED
Misaki RoysterIndiaOnyama Limba UNQUALIFIED
Cody SaylorsCanadaIvan Magalhaes NEGOTIATION
Faith GillianIndiaAmy Elsner NEW
Rodrigues CampainArgentinaAmy Elsner 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>