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
Rodrigues CampainFranceStephen Shaw NEW
Izzy GarufiGermanyIvan Magalhaes NEW
Jefferson SchemmerUnited KingdomAmy Elsner RENEWAL
Emily WhobreyBrazilIvan Magalhaes NEGOTIATION
Johnson SergiJapanXuxue Feng UNQUALIFIED
Ashley DoeBrazilIvan Magalhaes RENEWAL
Misaki RoysterUnited KingdomOnyama Limba PROPOSAL
Adams MorascaAustraliaAmy Elsner QUALIFIED
Emily WhobreyCanadaXuxue Feng QUALIFIED
Mujtaba NickaSpainAsiya Javayant NEW
Alejandro PerinSpainOnyama Limba NEGOTIATION
Darci PoquetteCanadaElwin Sharvill NEW
Maisha RulapaughAustraliaBernardo Dominic QUALIFIED
Costa DilliardArgentinaAsiya Javayant UNQUALIFIED
Leon OldroydIndiaXuxue Feng NEW
Murillo MaletUnited KingdomOnyama Limba QUALIFIED
Alejandro PerinArgentinaElwin Sharvill PROPOSAL
Costa DilliardItalyAnna Fali UNQUALIFIED
Rodrigues CampainAustraliaXuxue Feng RENEWAL
Juan WieserArgentinaOnyama Limba NEGOTIATION
David DarakjyFranceAsiya Javayant UNQUALIFIED
Jones VocelkaAustraliaAmy Elsner UNQUALIFIED
David DarakjySpainOnyama Limba PROPOSAL
Juan WieserIndiaStephen Shaw QUALIFIED
Aruna FigeroaFranceXuxue Feng RENEWAL
Isabel BowleyCanadaStephen Shaw UNQUALIFIED
Arvin AlbaresCanadaAmy Elsner UNQUALIFIED
Misaki RoysterItalyOnyama Limba PROPOSAL
Maria MarrierRussiaXuxue Feng QUALIFIED
Misaki RoysterJapanStephen Shaw NEW
Octavia MaletBrazilAmy Elsner PROPOSAL
Emily WhobreyItalyOnyama Limba UNQUALIFIED
Rodrigues CampainUnited KingdomOnyama Limba PROPOSAL
Silvio SlusarskiJapanBernardo Dominic PROPOSAL
David DarakjyCanadaAmy Elsner NEW
Aika InouyeArgentinaXuxue Feng NEW
Kaitlin OstroskyRussiaIoni Bowcher NEW
Octavia MaletFranceBernardo Dominic NEGOTIATION
Emily WhobreyFranceAmy Elsner RENEWAL
Stacey MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Kadeem FlosiBrazilElwin Sharvill RENEWAL
Ivar PaprockiCanadaBernardo Dominic PROPOSAL
Clifford RimFranceXuxue Feng UNQUALIFIED
Octavia MaletJapanOnyama Limba QUALIFIED
Octavia MaletJapanElwin Sharvill NEGOTIATION
Izzy GarufiFranceStephen Shaw NEGOTIATION
Munro FerenczItalyElwin Sharvill NEGOTIATION
Faith GillianSpainAmy Elsner NEGOTIATION
Isabel BowleySpainStephen Shaw UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin OstroskyItalyBernardo Dominic PROPOSAL
Costa DilliardUnited KingdomXuxue Feng NEW
Rodrigues CampainUnited KingdomAmy Elsner NEW
Silvio SlusarskiAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois VenereFranceStephen Shaw NEGOTIATION
Arvin AlbaresJapanIoni Bowcher NEW
Adams MorascaGermanyElwin Sharvill QUALIFIED
Mujtaba NickaJapanAmy Elsner NEW
Jones VocelkaCanadaStephen Shaw RENEWAL
Aruna FigeroaJapanElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereItaly2026-06-11Feltz Printing Service NEGOTIATION13Xuxue Feng
1001Misaki RoysterArgentina2026-05-31Truhlar And Truhlar Attys UNQUALIFIED14Anna Fali
1002Salvatore StockhamIndia2026-06-03Feltz Printing Service NEW16Stephen Shaw
1003Nicolas IturbideJapan2026-05-23Chemel, James L Cpa NEGOTIATION26Ivan Magalhaes
1004Antonio CaudyGermany2026-05-23Rangoni Of Florence QUALIFIED92Onyama Limba
1005Aruna FigeroaGermany2026-05-30Chanay, Jeffrey A Esq NEW17Xuxue Feng
1006Leja CaldareraCanada2026-06-03Buckley Miller Wright NEGOTIATION91Xuxue Feng
1007Emily WhobreyRussia2026-06-14King, Christopher A Esq NEW37Asiya Javayant
1008Antonio CaudyIndia2026-06-17Buckley Miller Wright NEGOTIATION55Bernardo Dominic
1009Deepesh ChuiGermany2026-06-15Morlong Associates PROPOSAL32Anna Fali
1010Arvin AlbaresBrazil2026-06-06Commercial Press RENEWAL6Ioni Bowcher
1011Leon OldroydGermany2026-06-14Buckley Miller Wright NEGOTIATION39Amy Elsner
1012Wickens NestleGermany2026-06-15Feltz Printing Service NEW48Ivan Magalhaes
1013David DarakjyGermany2026-06-15Rangoni Of Florence QUALIFIED3Xuxue Feng
1014Jones VocelkaRussia2026-06-01Truhlar And Truhlar Attys NEGOTIATION55Xuxue Feng
1015Maria MarrierBrazil2026-06-11Rangoni Of Florence UNQUALIFIED56Amy Elsner
1016Jones VocelkaAustralia2026-06-05Chapman, Ross E Esq PROPOSAL86Bernardo Dominic
1017Nicolas IturbideAustralia2026-06-02Truhlar And Truhlar Attys UNQUALIFIED65Anna Fali
1018Leon OldroydSpain2026-06-15Benton, John B Jr NEW40Ivan Magalhaes
1019Ashley DoeGermany2026-06-07Rangoni Of Florence QUALIFIED36Amy Elsner
1020Leja CaldareraUnited Kingdom2026-06-16Printing Dimensions QUALIFIED78Elwin Sharvill
1021Kadeem FlosiJapan2026-06-07Buckley Miller Wright NEW68Bernardo Dominic
1022Isabel BowleyArgentina2026-06-04Feltz Printing Service RENEWAL56Stephen Shaw
1023Stacey MacleadBrazil2026-06-04Feltz Printing Service NEW90Xuxue Feng
1024James ButtFrance2026-05-21Chapman, Ross E Esq QUALIFIED14Bernardo Dominic
1025Salvatore StockhamRussia2026-06-03King, Christopher A Esq NEW88Amy Elsner
1026Adams MorascaGermany2026-05-25Chemel, James L Cpa NEGOTIATION86Asiya Javayant
1027James ButtRussia2026-06-06Chanay, Jeffrey A Esq QUALIFIED66Ioni Bowcher
1028Jennifer AmigonItaly2026-05-30Printing Dimensions NEGOTIATION33Xuxue Feng
1029Ivar PaprockiAustralia2026-05-25Feltz Printing Service PROPOSAL63Anna Fali
1030Jefferson SchemmerItaly2026-05-31Chemel, James L Cpa RENEWAL46Stephen Shaw
1031Munro FerenczArgentina2026-05-28King, Christopher A Esq NEGOTIATION64Bernardo Dominic
1032Johnson SergiJapan2026-06-06Feltz Printing Service QUALIFIED31Bernardo Dominic
1033Sinclair WaycottFrance2026-05-25Feiner Bros RENEWAL37Onyama Limba
1034Aditya KuskoSpain2026-06-07Printing Dimensions PROPOSAL5Amy Elsner
1035Kaitlin OstroskyArgentina2026-05-20King, Christopher A Esq NEW29Xuxue Feng
1036David DarakjyJapan2026-05-25Truhlar And Truhlar Attys RENEWAL32Onyama Limba
1037Ricardo GauchoBrazil2026-06-13Feltz Printing Service UNQUALIFIED19Xuxue Feng
1038Jennifer AmigonGermany2026-06-02Chapman, Ross E Esq QUALIFIED98Onyama Limba
1039James ButtAustralia2026-06-11Rangoni Of Florence NEGOTIATION86Stephen Shaw
1040Leon OldroydRussia2026-05-19Truhlar And Truhlar Attys PROPOSAL95Ioni Bowcher
1041Nicolas IturbideGermany2026-06-09Dorl, James J Esq QUALIFIED59Ioni Bowcher
1042Juan WieserGermany2026-05-31Morlong Associates PROPOSAL58Asiya Javayant
1043Francesco ShinkoGermany2026-06-08Rangoni Of Florence UNQUALIFIED68Anna Fali
1044Silvio SlusarskiIndia2026-05-20King, Christopher A Esq QUALIFIED96Xuxue Feng
1045Cody SaylorsUnited Kingdom2026-05-22Truhlar And Truhlar Attys NEGOTIATION6Anna Fali
1046Antonio CaudyFrance2026-05-22Feiner Bros UNQUALIFIED75Xuxue Feng
1047Kaitlin OstroskyArgentina2026-06-04Morlong Associates RENEWAL91Onyama Limba
1048Adams MorascaItaly2026-05-24Benton, John B Jr QUALIFIED72Onyama Limba
1049Morrow RutaAustralia2026-05-27Buckley Miller Wright NEGOTIATION99Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaIndiaAsiya Javayant RENEWAL
David DarakjyItalyStephen Shaw NEW
Juan WieserIndiaXuxue Feng RENEWAL
Mayumi KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Faith GillianJapanAmy Elsner NEGOTIATION
Maisha RulapaughSpainStephen Shaw UNQUALIFIED
Jefferson SchemmerBrazilXuxue Feng UNQUALIFIED
Smith GlickAustraliaOnyama Limba RENEWAL
Aika InouyeUnited KingdomXuxue Feng NEW
Munro FerenczRussiaElwin Sharvill RENEWAL
Misaki RoysterArgentinaAsiya Javayant NEW
Murillo MaletItalyAsiya Javayant NEGOTIATION
Munro FerenczCanadaAnna Fali RENEWAL
Aruna FigeroaSpainBernardo Dominic NEGOTIATION
Mayumi KolmetzJapanElwin Sharvill UNQUALIFIED
Aruna FigeroaJapanIvan Magalhaes RENEWAL
Aruna FigeroaFranceStephen Shaw PROPOSAL
Octavia MaletIndiaElwin Sharvill RENEWAL
Aika InouyeAustraliaOnyama Limba QUALIFIED
Izzy GarufiItalyIvan Magalhaes PROPOSAL
Jones VocelkaAustraliaXuxue Feng NEW
Smith GlickArgentinaAmy Elsner PROPOSAL
Ivar PaprockiRussiaAsiya Javayant QUALIFIED
Juan WieserUnited KingdomXuxue Feng RENEWAL
Adams MorascaRussiaAsiya Javayant NEW
Emily WhobreyFranceAnna Fali UNQUALIFIED
Munro FerenczItalyStephen Shaw NEW
Mujtaba NickaBrazilElwin Sharvill NEW
Octavia MaletRussiaStephen Shaw UNQUALIFIED
Misaki RoysterFranceXuxue Feng QUALIFIED
Morrow RutaIndiaAnna Fali RENEWAL
Jones VocelkaJapanElwin Sharvill RENEWAL
Darci PoquetteCanadaIoni Bowcher NEW
Sinclair WaycottFranceXuxue Feng NEW
Juan WieserJapanStephen Shaw PROPOSAL
Jeanfrancois VenereItalyIvan Magalhaes PROPOSAL
Aditya KuskoJapanIvan Magalhaes PROPOSAL
Stacey MacleadCanadaXuxue Feng NEW
Mayumi KolmetzUnited KingdomElwin Sharvill NEW
Morrow RutaCanadaAmy Elsner RENEWAL
Adams MorascaBrazilOnyama Limba PROPOSAL
Salvatore StockhamRussiaIoni Bowcher NEGOTIATION
Kadeem FlosiArgentinaAsiya Javayant RENEWAL
Aditya KuskoSpainAmy Elsner UNQUALIFIED
Aruna FigeroaJapanIoni Bowcher RENEWAL
Juan WieserSpainAnna Fali NEW
Chavez BriddickGermanyAsiya Javayant NEGOTIATION
Jeanfrancois VenereArgentinaElwin Sharvill RENEWAL
Kadeem FlosiFranceBernardo Dominic NEGOTIATION
Leon OldroydGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Nicolas Iturbide
Stacey Maclead
Francesco Shinko
Morrow Ruta
Costa Dilliard
Ivar Paprocki
Stacey Maclead
Salvatore Stockham
Deepesh Chui
Claire Tollner
Nicolas Iturbide
Isabel Bowley
Francesco Shinko
Arvin Albares
Clifford Rim
James Butt
Darci Poquette
David Darakjy
Kadeem Flosi
Clifford Rim
Rodrigues Campain
Jeanfrancois Venere
Chavez Briddick
Mujtaba Nicka
Wickens Nestle
Sinclair Waycott
Arvin Albares
Maisha Rulapaugh
Deepesh Chui
Mayumi Kolmetz
Costa Dilliard
Faith Gillian
Jones Vocelka
Faith Gillian
Deepesh Chui
Arvin Albares
Silvio Slusarski
Misaki Royster
Murillo Malet
Francesco Shinko
Rodrigues Campain
Julie Stenseth
Clifford Rim
Arvin Albares
Cody Saylors
Leja Caldarera
Maria Marrier
David Darakjy
Deepesh Chui
Costa Dilliard
IdCountryDate
1000Canada2026-06-17
1001Canada2026-05-20
1002Italy2026-06-11
1003India2026-06-15
1004India2026-05-24
1005United Kingdom2026-06-16
1006Japan2026-06-10
1007Brazil2026-06-10
1008Japan2026-05-29
1009Italy2026-06-12
1010Australia2026-06-17
1011Russia2026-06-10
1012Brazil2026-05-31
1013Spain2026-05-28
1014Australia2026-06-07
1015Russia2026-06-01
1016Germany2026-06-11
1017Canada2026-05-21
1018France2026-06-12
1019Brazil2026-06-17
1020Italy2026-06-06
1021France2026-06-03
1022Russia2026-06-13
1023Argentina2026-05-23
1024Brazil2026-05-20
1025Argentina2026-06-09
1026France2026-05-24
1027Argentina2026-05-25
1028Russia2026-05-28
1029India2026-05-29
1030France2026-05-26
1031Japan2026-06-04
1032Russia2026-06-06
1033United Kingdom2026-05-28
1034Germany2026-06-07
1035Italy2026-06-08
1036France2026-06-17
1037Spain2026-05-27
1038Canada2026-06-11
1039India2026-05-19
1040Canada2026-05-20
1041Australia2026-06-13
1042Spain2026-06-15
1043Brazil2026-06-15
1044United Kingdom2026-05-27
1045Spain2026-05-29
1046Australia2026-05-20
1047Spain2026-06-07
1048Canada2026-05-31
1049Australia2026-05-23

On-Demand Data

NameIdCountryDate
Silvio Slusarski1000United Kingdom2026-06-06
Adams Morasca1001United Kingdom2026-05-25
Greenwood Bolognia1002Spain2026-06-03
Arvin Albares1003Argentina2026-06-06
Munro Ferencz1004India2026-05-30
Ricardo Gaucho1005Argentina2026-06-02
Aruna Figeroa1006Brazil2026-06-04
Aruna Figeroa1007France2026-06-17
Kaitlin Ostrosky1008United Kingdom2026-06-01
Tony Foller1009Germany2026-05-24
Leon Oldroyd1010India2026-06-03
Kadeem Flosi1011France2026-06-13
Jefferson Schemmer1012Russia2026-06-12
Silvio Slusarski1013Canada2026-06-01
Alejandro Perin1014Spain2026-06-17
Kadeem Flosi1015United Kingdom2026-06-01
Clifford Rim1016Spain2026-06-11
Adams Morasca1017India2026-05-23
Jeanfrancois Venere1018Japan2026-05-27
Leja Caldarera1019Brazil2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottCanadaElwin Sharvill UNQUALIFIED
Mayumi KolmetzAustraliaStephen Shaw QUALIFIED
Costa DilliardArgentinaAnna Fali NEW
Rodrigues CampainUnited KingdomIoni Bowcher PROPOSAL
Costa DilliardIndiaAsiya Javayant NEGOTIATION
Aruna FigeroaAustraliaOnyama Limba NEW
Isabel BowleyIndiaElwin Sharvill NEW
Adams MorascaCanadaStephen Shaw RENEWAL
Nicolas IturbideGermanyAnna Fali QUALIFIED
Kadeem FlosiUnited KingdomAmy Elsner RENEWAL
Izzy GarufiFranceAnna Fali RENEWAL
Jennifer AmigonArgentinaAnna Fali PROPOSAL
Jefferson SchemmerJapanIoni Bowcher QUALIFIED
Misaki RoysterItalyXuxue Feng QUALIFIED
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Chavez BriddickIndiaAsiya Javayant PROPOSAL
Maria MarrierFranceIvan Magalhaes RENEWAL
Rodrigues CampainJapanXuxue Feng NEW
Emily WhobreyRussiaStephen Shaw NEGOTIATION
Juan WieserArgentinaIvan Magalhaes QUALIFIED
Tony FollerUnited KingdomOnyama Limba PROPOSAL
David DarakjyRussiaAsiya Javayant NEGOTIATION
Tony FollerGermanyOnyama Limba QUALIFIED
Maisha RulapaughJapanElwin Sharvill RENEWAL
Juan WieserBrazilStephen Shaw RENEWAL
Antonio CaudyGermanyStephen Shaw NEW
Juan WieserItalyAnna Fali PROPOSAL
Leja CaldareraGermanyIoni Bowcher NEW
Emily WhobreyGermanyBernardo Dominic RENEWAL
Sinclair WaycottSpainOnyama Limba PROPOSAL
Misaki RoysterBrazilXuxue Feng QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng UNQUALIFIED
Aika InouyeAustraliaIoni Bowcher PROPOSAL
Mujtaba NickaUnited KingdomBernardo Dominic RENEWAL
Rodrigues CampainIndiaOnyama Limba UNQUALIFIED
Arvin AlbaresAustraliaIoni Bowcher RENEWAL
Juan WieserCanadaIvan Magalhaes PROPOSAL
Clifford RimFranceXuxue Feng RENEWAL
Morrow RutaUnited KingdomAnna Fali RENEWAL
Jennifer AmigonArgentinaElwin Sharvill 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>