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
Ashley DoeFranceIvan Magalhaes NEGOTIATION
Antonio CaudyAustraliaElwin Sharvill UNQUALIFIED
Leon OldroydIndiaXuxue Feng RENEWAL
Ricardo GauchoRussiaElwin Sharvill QUALIFIED
Jones VocelkaItalyIoni Bowcher NEGOTIATION
Mujtaba NickaCanadaBernardo Dominic QUALIFIED
Faith GillianUnited KingdomAsiya Javayant RENEWAL
Juan WieserCanadaStephen Shaw UNQUALIFIED
Deepesh ChuiUnited KingdomAsiya Javayant PROPOSAL
Cody SaylorsCanadaAnna Fali PROPOSAL
Stacey MacleadIndiaElwin Sharvill PROPOSAL
Greenwood BologniaSpainBernardo Dominic PROPOSAL
Aika InouyeSpainBernardo Dominic RENEWAL
Leja CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Sinclair WaycottArgentinaAmy Elsner UNQUALIFIED
Kadeem FlosiIndiaIvan Magalhaes NEW
Jeanfrancois VenereRussiaXuxue Feng RENEWAL
Claire TollnerRussiaOnyama Limba RENEWAL
Smith GlickIndiaAmy Elsner RENEWAL
Kaitlin OstroskyRussiaXuxue Feng PROPOSAL
Ashley DoeSpainAmy Elsner RENEWAL
Aruna FigeroaIndiaXuxue Feng UNQUALIFIED
Morrow RutaCanadaElwin Sharvill QUALIFIED
Ashley DoeSpainOnyama Limba NEW
Octavia MaletIndiaAnna Fali UNQUALIFIED
Julie StensethItalyStephen Shaw NEW
Leja CaldareraUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois VenereBrazilStephen Shaw PROPOSAL
Darci PoquetteRussiaIvan Magalhaes PROPOSAL
Alejandro PerinIndiaIvan Magalhaes NEW
Cody SaylorsSpainElwin Sharvill RENEWAL
Wickens NestleFranceOnyama Limba RENEWAL
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Darci PoquetteCanadaIoni Bowcher QUALIFIED
Silvio SlusarskiAustraliaElwin Sharvill PROPOSAL
Aika InouyeRussiaAnna Fali NEW
Chavez BriddickIndiaAmy Elsner NEW
Deepesh ChuiFranceBernardo Dominic NEGOTIATION
David DarakjySpainIoni Bowcher QUALIFIED
Costa DilliardRussiaAsiya Javayant UNQUALIFIED
Sinclair WaycottItalyIvan Magalhaes NEGOTIATION
Aruna FigeroaFranceIvan Magalhaes QUALIFIED
Jones VocelkaRussiaAsiya Javayant NEGOTIATION
Clifford RimRussiaElwin Sharvill QUALIFIED
Aruna FigeroaCanadaIvan Magalhaes NEGOTIATION
Ashley DoeBrazilAsiya Javayant NEW
Rodrigues CampainIndiaElwin Sharvill NEW
Johnson SergiBrazilAnna Fali QUALIFIED
Chavez BriddickCanadaIvan Magalhaes UNQUALIFIED
Octavia MaletArgentinaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow RutaIndiaAmy Elsner NEW
Johnson SergiBrazilIoni Bowcher PROPOSAL
Adams MorascaGermanyOnyama Limba QUALIFIED
Leon OldroydJapanXuxue Feng PROPOSAL
Cody SaylorsSpainAmy Elsner QUALIFIED
Arvin AlbaresItalyIoni Bowcher RENEWAL
Mayumi KolmetzIndiaAnna Fali NEGOTIATION
Greenwood BologniaGermanyStephen Shaw NEW
Munro FerenczSpainIvan Magalhaes NEW
Clifford RimItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianItaly2026-05-30Morlong Associates QUALIFIED90Stephen Shaw
1001Jefferson SchemmerAustralia2026-05-18Chanay, Jeffrey A Esq RENEWAL92Ivan Magalhaes
1002Clifford RimItaly2026-05-31Benton, John B Jr NEW93Stephen Shaw
1003Juan WieserCanada2026-05-23Rousseaux, Michael Esq QUALIFIED14Ivan Magalhaes
1004Chavez BriddickArgentina2026-06-06Benton, John B Jr QUALIFIED82Onyama Limba
1005Leja CaldareraFrance2026-06-09Printing Dimensions UNQUALIFIED51Onyama Limba
1006Aika InouyeIndia2026-06-01Truhlar And Truhlar Attys NEW51Elwin Sharvill
1007Costa DilliardFrance2026-05-16Rousseaux, Michael Esq NEGOTIATION15Xuxue Feng
1008Mujtaba NickaItaly2026-05-13King, Christopher A Esq RENEWAL85Ivan Magalhaes
1009Silvio SlusarskiAustralia2026-05-15Benton, John B Jr NEW67Ivan Magalhaes
1010Jennifer AmigonItaly2026-05-20King, Christopher A Esq RENEWAL7Ivan Magalhaes
1011Ashley DoeArgentina2026-05-21Buckley Miller Wright PROPOSAL88Stephen Shaw
1012Kaitlin OstroskyCanada2026-05-15Dorl, James J Esq UNQUALIFIED24Onyama Limba
1013Sinclair WaycottAustralia2026-05-17Commercial Press QUALIFIED7Asiya Javayant
1014Jeanfrancois VenereGermany2026-05-20Commercial Press RENEWAL40Bernardo Dominic
1015Emily WhobreyUnited Kingdom2026-05-17Chemel, James L Cpa RENEWAL52Xuxue Feng
1016Izzy GarufiJapan2026-06-09Chemel, James L Cpa NEW54Ioni Bowcher
1017Stacey MacleadIndia2026-05-21Chemel, James L Cpa NEW72Amy Elsner
1018Sinclair WaycottCanada2026-06-06King, Christopher A Esq NEW78Ioni Bowcher
1019Rodrigues CampainArgentina2026-06-04Printing Dimensions QUALIFIED61Stephen Shaw
1020David DarakjyBrazil2026-05-25Chemel, James L Cpa QUALIFIED22Bernardo Dominic
1021Tony FollerJapan2026-05-13Feltz Printing Service NEW6Stephen Shaw
1022Kaitlin OstroskyItaly2026-05-17Printing Dimensions UNQUALIFIED74Xuxue Feng
1023Darci PoquetteGermany2026-06-08Rangoni Of Florence NEGOTIATION99Onyama Limba
1024Morrow RutaCanada2026-05-14Truhlar And Truhlar Attys RENEWAL62Bernardo Dominic
1025Maisha RulapaughGermany2026-06-09King, Christopher A Esq RENEWAL94Elwin Sharvill
1026Leja CaldareraIndia2026-06-07Commercial Press UNQUALIFIED75Elwin Sharvill
1027Adams MorascaFrance2026-06-11King, Christopher A Esq PROPOSAL14Stephen Shaw
1028Cody SaylorsSpain2026-05-20Rangoni Of Florence QUALIFIED80Ioni Bowcher
1029Aika InouyeUnited Kingdom2026-06-05Benton, John B Jr NEGOTIATION0Xuxue Feng
1030Leon OldroydBrazil2026-06-02Morlong Associates RENEWAL30Xuxue Feng
1031Isabel BowleyUnited Kingdom2026-05-21Chemel, James L Cpa NEGOTIATION40Bernardo Dominic
1032Misaki RoysterGermany2026-06-10Chanay, Jeffrey A Esq RENEWAL14Stephen Shaw
1033Mayumi KolmetzCanada2026-06-06Chapman, Ross E Esq UNQUALIFIED33Amy Elsner
1034Jennifer AmigonFrance2026-05-18Chemel, James L Cpa NEGOTIATION61Xuxue Feng
1035Wickens NestleItaly2026-06-02Commercial Press PROPOSAL62Onyama Limba
1036James ButtCanada2026-06-07Printing Dimensions PROPOSAL87Anna Fali
1037Tony FollerIndia2026-05-24Benton, John B Jr RENEWAL22Elwin Sharvill
1038Silvio SlusarskiCanada2026-06-07Chanay, Jeffrey A Esq UNQUALIFIED8Onyama Limba
1039Stacey MacleadBrazil2026-05-23Chemel, James L Cpa UNQUALIFIED20Stephen Shaw
1040Isabel BowleyGermany2026-05-15Rangoni Of Florence NEW31Stephen Shaw
1041Claire TollnerGermany2026-06-01Feiner Bros QUALIFIED96Ivan Magalhaes
1042Salvatore StockhamGermany2026-05-28Chanay, Jeffrey A Esq PROPOSAL60Elwin Sharvill
1043James ButtArgentina2026-05-25Buckley Miller Wright NEW34Elwin Sharvill
1044Jennifer AmigonCanada2026-06-03Feiner Bros PROPOSAL48Anna Fali
1045Nicolas IturbideAustralia2026-06-08Printing Dimensions RENEWAL79Bernardo Dominic
1046Wickens NestleCanada2026-05-21Feltz Printing Service NEW52Asiya Javayant
1047Nicolas IturbideUnited Kingdom2026-05-18Feiner Bros NEGOTIATION26Bernardo Dominic
1048Costa DilliardFrance2026-06-11Feiner Bros NEW13Ioni Bowcher
1049James ButtBrazil2026-05-28Morlong Associates UNQUALIFIED32Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyGermanyOnyama Limba PROPOSAL
Aditya KuskoRussiaAsiya Javayant NEW
Greenwood BologniaUnited KingdomAnna Fali NEW
Mayumi KolmetzGermanyIoni Bowcher QUALIFIED
Aika InouyeIndiaXuxue Feng NEW
Arvin AlbaresCanadaIoni Bowcher QUALIFIED
Juan WieserItalyBernardo Dominic QUALIFIED
Mujtaba NickaBrazilAnna Fali RENEWAL
Francesco ShinkoItalyAmy Elsner QUALIFIED
Faith GillianRussiaAnna Fali NEW
Izzy GarufiUnited KingdomAmy Elsner QUALIFIED
David DarakjyAustraliaAmy Elsner RENEWAL
Darci PoquetteBrazilOnyama Limba QUALIFIED
Leja CaldareraIndiaIvan Magalhaes NEW
Sinclair WaycottItalyIvan Magalhaes UNQUALIFIED
Claire TollnerJapanStephen Shaw NEW
Claire TollnerArgentinaOnyama Limba QUALIFIED
Faith GillianSpainIvan Magalhaes NEW
Ashley DoeItalyXuxue Feng NEW
Darci PoquetteFranceBernardo Dominic RENEWAL
Nicolas IturbideRussiaStephen Shaw PROPOSAL
Francesco ShinkoGermanyElwin Sharvill UNQUALIFIED
Juan WieserIndiaAmy Elsner NEGOTIATION
Murillo MaletArgentinaElwin Sharvill NEGOTIATION
Deepesh ChuiArgentinaXuxue Feng PROPOSAL
Wickens NestleIndiaXuxue Feng NEGOTIATION
Ashley DoeUnited KingdomElwin Sharvill NEGOTIATION
Salvatore StockhamSpainAsiya Javayant NEGOTIATION
Costa DilliardJapanStephen Shaw PROPOSAL
Antonio CaudyBrazilIvan Magalhaes NEW
Deepesh ChuiRussiaAnna Fali QUALIFIED
Morrow RutaAustraliaIoni Bowcher QUALIFIED
James ButtItalyElwin Sharvill RENEWAL
Deepesh ChuiCanadaXuxue Feng PROPOSAL
Greenwood BologniaAustraliaElwin Sharvill PROPOSAL
Juan WieserIndiaStephen Shaw RENEWAL
Stacey MacleadCanadaXuxue Feng NEGOTIATION
Jones VocelkaBrazilElwin Sharvill NEW
Claire TollnerArgentinaAmy Elsner QUALIFIED
Ashley DoeBrazilAsiya Javayant PROPOSAL
Chavez BriddickBrazilXuxue Feng UNQUALIFIED
Jennifer AmigonCanadaXuxue Feng NEW
Leon OldroydAustraliaBernardo Dominic NEGOTIATION
Alejandro PerinArgentinaBernardo Dominic PROPOSAL
Jennifer AmigonFranceIvan Magalhaes NEGOTIATION
Deepesh ChuiIndiaOnyama Limba NEW
Morrow RutaRussiaAmy Elsner PROPOSAL
Clifford RimIndiaOnyama Limba QUALIFIED
Izzy GarufiItalyStephen Shaw NEW
Jennifer AmigonJapanIoni Bowcher QUALIFIED
Frozen Columns
Name
Aika Inouye
Julie Stenseth
Aruna Figeroa
Darci Poquette
Sinclair Waycott
Alejandro Perin
Tony Foller
Izzy Garufi
Alejandro Perin
Morrow Ruta
Rodrigues Campain
Darci Poquette
Johnson Sergi
Leon Oldroyd
Salvatore Stockham
Leon Oldroyd
James Butt
Jeanfrancois Venere
Greenwood Bolognia
Alejandro Perin
Deepesh Chui
Aditya Kusko
Antonio Caudy
Aika Inouye
Antonio Caudy
Jennifer Amigon
Aruna Figeroa
Ashley Doe
Tony Foller
Aditya Kusko
Antonio Caudy
Chavez Briddick
Tony Foller
Wickens Nestle
Jefferson Schemmer
Aditya Kusko
Munro Ferencz
David Darakjy
Murillo Malet
Jones Vocelka
Julie Stenseth
Rodrigues Campain
Adams Morasca
Ivar Paprocki
Leja Caldarera
Julie Stenseth
Claire Tollner
Deepesh Chui
Julie Stenseth
James Butt
IdCountryDate
1000Italy2026-06-08
1001United Kingdom2026-06-03
1002India2026-05-26
1003Australia2026-05-20
1004Brazil2026-06-06
1005Australia2026-05-18
1006Germany2026-06-09
1007Italy2026-05-13
1008Argentina2026-06-04
1009United Kingdom2026-05-30
1010Russia2026-05-27
1011India2026-06-03
1012Japan2026-06-07
1013India2026-05-19
1014Brazil2026-06-09
1015India2026-06-02
1016Germany2026-06-03
1017Australia2026-06-04
1018Germany2026-05-29
1019Argentina2026-06-11
1020United Kingdom2026-05-29
1021Canada2026-05-25
1022Brazil2026-05-26
1023Japan2026-05-21
1024India2026-05-18
1025India2026-05-13
1026Germany2026-05-27
1027Japan2026-06-02
1028Japan2026-06-08
1029Canada2026-05-26
1030Argentina2026-05-21
1031France2026-05-17
1032Argentina2026-05-30
1033Russia2026-06-05
1034Italy2026-05-21
1035Italy2026-06-04
1036Germany2026-06-03
1037United Kingdom2026-06-03
1038Brazil2026-05-17
1039Brazil2026-05-27
1040Russia2026-06-07
1041Russia2026-05-18
1042India2026-05-25
1043United Kingdom2026-05-21
1044Brazil2026-05-20
1045Italy2026-06-11
1046Italy2026-05-13
1047Germany2026-05-21
1048Germany2026-05-17
1049Spain2026-05-27

On-Demand Data

NameIdCountryDate
Ashley Doe1000United Kingdom2026-05-16
Aruna Figeroa1001Argentina2026-05-19
Francesco Shinko1002Canada2026-05-19
Silvio Slusarski1003Italy2026-06-06
Faith Gillian1004Canada2026-06-04
Juan Wieser1005Brazil2026-05-23
Maisha Rulapaugh1006Canada2026-05-28
Wickens Nestle1007Brazil2026-05-22
Munro Ferencz1008Canada2026-06-06
Kaitlin Ostrosky1009Canada2026-05-25
Maisha Rulapaugh1010Japan2026-05-21
Tony Foller1011France2026-05-22
Deepesh Chui1012Canada2026-06-07
Izzy Garufi1013Japan2026-05-25
Mujtaba Nicka1014Australia2026-06-04
Salvatore Stockham1015Brazil2026-05-18
Jefferson Schemmer1016Italy2026-05-30
Salvatore Stockham1017Argentina2026-06-05
Darci Poquette1018Canada2026-06-10
Salvatore Stockham1019Argentina2026-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoIndiaBernardo Dominic QUALIFIED
Aika InouyeIndiaOnyama Limba RENEWAL
Rodrigues CampainUnited KingdomBernardo Dominic PROPOSAL
Nicolas IturbideCanadaIvan Magalhaes PROPOSAL
Mayumi KolmetzSpainXuxue Feng QUALIFIED
Jefferson SchemmerSpainOnyama Limba QUALIFIED
Leja CaldareraItalyAmy Elsner UNQUALIFIED
Maisha RulapaughIndiaIoni Bowcher NEW
Nicolas IturbideArgentinaIoni Bowcher UNQUALIFIED
Arvin AlbaresItalyAnna Fali RENEWAL
David DarakjySpainXuxue Feng RENEWAL
Munro FerenczArgentinaStephen Shaw PROPOSAL
Jennifer AmigonItalyAsiya Javayant QUALIFIED
Claire TollnerItalyXuxue Feng UNQUALIFIED
Greenwood BologniaBrazilOnyama Limba UNQUALIFIED
Adams MorascaBrazilIoni Bowcher NEGOTIATION
Aditya KuskoArgentinaAsiya Javayant UNQUALIFIED
Jefferson SchemmerRussiaAsiya Javayant NEGOTIATION
Smith GlickSpainAmy Elsner QUALIFIED
Aditya KuskoAustraliaXuxue Feng PROPOSAL
Alejandro PerinIndiaElwin Sharvill NEGOTIATION
Juan WieserArgentinaAnna Fali NEW
Izzy GarufiBrazilIoni Bowcher NEW
Jennifer AmigonGermanyBernardo Dominic UNQUALIFIED
Alejandro PerinSpainAnna Fali PROPOSAL
Mayumi KolmetzItalyIoni Bowcher RENEWAL
Salvatore StockhamAustraliaElwin Sharvill NEW
Arvin AlbaresBrazilStephen Shaw NEW
Octavia MaletUnited KingdomOnyama Limba RENEWAL
Darci PoquetteFranceIoni Bowcher NEW
Tony FollerAustraliaXuxue Feng QUALIFIED
Wickens NestleUnited KingdomOnyama Limba NEGOTIATION
Aika InouyeFranceAmy Elsner NEGOTIATION
Ricardo GauchoSpainIvan Magalhaes NEW
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Munro FerenczAustraliaAmy Elsner PROPOSAL
Aditya KuskoArgentinaAmy Elsner UNQUALIFIED
Julie StensethFranceBernardo Dominic UNQUALIFIED
Jennifer AmigonItalyIvan Magalhaes 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>