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
Ivar PaprockiIndiaAsiya Javayant NEGOTIATION
Costa DilliardItalyIvan Magalhaes NEW
Sinclair WaycottIndiaAsiya Javayant RENEWAL
Chavez BriddickGermanyIoni Bowcher NEGOTIATION
Ricardo GauchoRussiaBernardo Dominic PROPOSAL
Leja CaldareraGermanyXuxue Feng NEGOTIATION
Silvio SlusarskiItalyIoni Bowcher NEGOTIATION
Aditya KuskoSpainOnyama Limba UNQUALIFIED
David DarakjyIndiaBernardo Dominic UNQUALIFIED
Faith GillianJapanElwin Sharvill UNQUALIFIED
Cody SaylorsJapanIvan Magalhaes QUALIFIED
James ButtAustraliaAnna Fali NEW
Sinclair WaycottGermanyStephen Shaw QUALIFIED
Julie StensethAustraliaElwin Sharvill NEW
Francesco ShinkoIndiaStephen Shaw NEW
David DarakjyRussiaElwin Sharvill RENEWAL
Stacey MacleadGermanyOnyama Limba UNQUALIFIED
Smith GlickJapanIoni Bowcher RENEWAL
Chavez BriddickAustraliaElwin Sharvill RENEWAL
Adams MorascaCanadaXuxue Feng PROPOSAL
Adams MorascaFranceOnyama Limba RENEWAL
Antonio CaudyArgentinaAmy Elsner QUALIFIED
Smith GlickArgentinaAnna Fali NEGOTIATION
Aika InouyeFranceIvan Magalhaes UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher NEW
Juan WieserRussiaAnna Fali NEGOTIATION
Isabel BowleyIndiaIoni Bowcher RENEWAL
James ButtJapanIoni Bowcher NEW
Darci PoquetteBrazilOnyama Limba NEGOTIATION
Mayumi KolmetzJapanXuxue Feng NEW
Ivar PaprockiJapanXuxue Feng RENEWAL
Smith GlickIndiaBernardo Dominic PROPOSAL
Juan WieserItalyIoni Bowcher NEGOTIATION
Clifford RimJapanAsiya Javayant NEW
Ashley DoeAustraliaStephen Shaw UNQUALIFIED
Deepesh ChuiIndiaIoni Bowcher UNQUALIFIED
Mujtaba NickaArgentinaAmy Elsner UNQUALIFIED
Julie StensethBrazilAnna Fali QUALIFIED
Antonio CaudyItalyXuxue Feng PROPOSAL
Sinclair WaycottCanadaAsiya Javayant NEW
Faith GillianItalyIvan Magalhaes NEW
Tony FollerSpainIvan Magalhaes PROPOSAL
Juan WieserRussiaBernardo Dominic PROPOSAL
Cody SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Arvin AlbaresGermanyOnyama Limba RENEWAL
Leja CaldareraGermanyOnyama Limba NEGOTIATION
Maisha RulapaughIndiaStephen Shaw RENEWAL
Munro FerenczRussiaAsiya Javayant QUALIFIED
Aika InouyeGermanyElwin Sharvill NEGOTIATION
James ButtIndiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford RimBrazilAnna Fali UNQUALIFIED
Maria MarrierGermanyAnna Fali QUALIFIED
Stacey MacleadGermanyElwin Sharvill NEGOTIATION
Kadeem FlosiRussiaIvan Magalhaes NEW
Leon OldroydFranceStephen Shaw NEGOTIATION
Isabel BowleyUnited KingdomBernardo Dominic RENEWAL
David DarakjyUnited KingdomElwin Sharvill QUALIFIED
Jones VocelkaItalyXuxue Feng PROPOSAL
Leja CaldareraCanadaElwin Sharvill PROPOSAL
Aditya KuskoCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserJapan2026-05-10Rangoni Of Florence NEGOTIATION12Onyama Limba
1001David DarakjyItaly2026-05-05Benton, John B Jr QUALIFIED95Ioni Bowcher
1002Jones VocelkaRussia2026-05-18King, Christopher A Esq QUALIFIED52Bernardo Dominic
1003Clifford RimFrance2026-05-15Commercial Press UNQUALIFIED52Stephen Shaw
1004Stacey MacleadSpain2026-05-16Chapman, Ross E Esq QUALIFIED57Stephen Shaw
1005Mayumi KolmetzCanada2026-05-26Rousseaux, Michael Esq RENEWAL42Asiya Javayant
1006Kadeem FlosiSpain2026-05-17Feltz Printing Service UNQUALIFIED33Asiya Javayant
1007David DarakjyIndia2026-05-10Feiner Bros NEGOTIATION95Bernardo Dominic
1008Salvatore StockhamIndia2026-05-24Printing Dimensions NEW78Onyama Limba
1009Johnson SergiFrance2026-05-08Chapman, Ross E Esq NEGOTIATION0Stephen Shaw
1010Jones VocelkaUnited Kingdom2026-05-31Rousseaux, Michael Esq NEW96Xuxue Feng
1011Clifford RimArgentina2026-05-17Rousseaux, Michael Esq NEW61Amy Elsner
1012Francesco ShinkoIndia2026-05-10Rangoni Of Florence PROPOSAL11Elwin Sharvill
1013Greenwood BologniaIndia2026-05-27Benton, John B Jr NEW10Ioni Bowcher
1014Aditya KuskoFrance2026-05-16Commercial Press NEW68Elwin Sharvill
1015Aruna FigeroaItaly2026-05-24Morlong Associates NEW94Xuxue Feng
1016Costa DilliardItaly2026-05-25Rangoni Of Florence RENEWAL97Anna Fali
1017Leja CaldareraSpain2026-05-15Feltz Printing Service QUALIFIED48Ivan Magalhaes
1018Rodrigues CampainIndia2026-05-08Rangoni Of Florence QUALIFIED15Elwin Sharvill
1019Aika InouyeGermany2026-05-24Chanay, Jeffrey A Esq UNQUALIFIED43Bernardo Dominic
1020James ButtFrance2026-05-12Truhlar And Truhlar Attys PROPOSAL59Amy Elsner
1021Kaitlin OstroskySpain2026-05-06King, Christopher A Esq NEGOTIATION50Amy Elsner
1022Leon OldroydJapan2026-05-16Dorl, James J Esq PROPOSAL15Amy Elsner
1023Maisha RulapaughArgentina2026-05-31Printing Dimensions RENEWAL25Xuxue Feng
1024Morrow RutaRussia2026-05-13Rangoni Of Florence PROPOSAL54Stephen Shaw
1025Maisha RulapaughCanada2026-05-09Benton, John B Jr NEGOTIATION89Xuxue Feng
1026Juan WieserBrazil2026-05-16King, Christopher A Esq NEW63Ioni Bowcher
1027Aika InouyeBrazil2026-05-21Chapman, Ross E Esq UNQUALIFIED26Amy Elsner
1028Sinclair WaycottIndia2026-05-13Feiner Bros PROPOSAL50Onyama Limba
1029Stacey MacleadJapan2026-05-26Chapman, Ross E Esq NEW46Bernardo Dominic
1030Claire TollnerAustralia2026-06-02Feiner Bros NEW83Onyama Limba
1031Julie StensethSpain2026-05-09Truhlar And Truhlar Attys UNQUALIFIED78Anna Fali
1032Juan WieserJapan2026-06-03King, Christopher A Esq RENEWAL64Anna Fali
1033Izzy GarufiBrazil2026-05-10Morlong Associates RENEWAL18Xuxue Feng
1034Mujtaba NickaUnited Kingdom2026-06-01Printing Dimensions PROPOSAL82Elwin Sharvill
1035Isabel BowleyUnited Kingdom2026-05-14Chanay, Jeffrey A Esq RENEWAL51Stephen Shaw
1036Clifford RimItaly2026-05-09Truhlar And Truhlar Attys NEGOTIATION66Stephen Shaw
1037Stacey MacleadCanada2026-05-24Buckley Miller Wright QUALIFIED30Asiya Javayant
1038Arvin AlbaresItaly2026-05-28Rousseaux, Michael Esq PROPOSAL52Asiya Javayant
1039Kaitlin OstroskyGermany2026-06-02Dorl, James J Esq PROPOSAL13Bernardo Dominic
1040Smith GlickUnited Kingdom2026-05-26Chapman, Ross E Esq RENEWAL67Anna Fali
1041Aditya KuskoArgentina2026-05-19Commercial Press UNQUALIFIED53Elwin Sharvill
1042Mayumi KolmetzSpain2026-06-02Printing Dimensions NEW7Onyama Limba
1043Kadeem FlosiFrance2026-05-20Chapman, Ross E Esq NEW84Elwin Sharvill
1044Arvin AlbaresArgentina2026-06-02Truhlar And Truhlar Attys QUALIFIED62Amy Elsner
1045Claire TollnerBrazil2026-05-10Feltz Printing Service QUALIFIED49Anna Fali
1046Smith GlickGermany2026-05-10Printing Dimensions RENEWAL17Ivan Magalhaes
1047Murillo MaletArgentina2026-05-25Benton, John B Jr UNQUALIFIED94Xuxue Feng
1048Isabel BowleyUnited Kingdom2026-05-12Chapman, Ross E Esq QUALIFIED44Onyama Limba
1049Maria MarrierGermany2026-05-10Truhlar And Truhlar Attys PROPOSAL47Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraJapanElwin Sharvill NEGOTIATION
Octavia MaletUnited KingdomElwin Sharvill UNQUALIFIED
Munro FerenczRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamJapanAnna Fali RENEWAL
Tony FollerJapanIvan Magalhaes UNQUALIFIED
Salvatore StockhamJapanAmy Elsner QUALIFIED
Jefferson SchemmerItalyIoni Bowcher QUALIFIED
Darci PoquetteIndiaXuxue Feng PROPOSAL
Deepesh ChuiGermanyAnna Fali PROPOSAL
Costa DilliardRussiaBernardo Dominic RENEWAL
Cody SaylorsJapanOnyama Limba QUALIFIED
James ButtRussiaXuxue Feng PROPOSAL
Morrow RutaAustraliaIoni Bowcher RENEWAL
Smith GlickCanadaBernardo Dominic NEW
Jeanfrancois VenereJapanXuxue Feng QUALIFIED
Antonio CaudyArgentinaXuxue Feng RENEWAL
Isabel BowleyGermanyXuxue Feng UNQUALIFIED
Nicolas IturbideItalyIvan Magalhaes NEW
Johnson SergiUnited KingdomStephen Shaw UNQUALIFIED
Juan WieserJapanAnna Fali NEW
Emily WhobreyBrazilAmy Elsner QUALIFIED
Munro FerenczCanadaBernardo Dominic NEGOTIATION
Aditya KuskoItalyAsiya Javayant QUALIFIED
Silvio SlusarskiBrazilAsiya Javayant UNQUALIFIED
Stacey MacleadArgentinaAnna Fali NEW
Darci PoquetteRussiaElwin Sharvill NEW
Wickens NestleBrazilStephen Shaw UNQUALIFIED
Morrow RutaAustraliaBernardo Dominic NEW
Tony FollerSpainXuxue Feng QUALIFIED
Emily WhobreyBrazilIoni Bowcher PROPOSAL
Mayumi KolmetzGermanyAnna Fali RENEWAL
Aruna FigeroaGermanyIvan Magalhaes NEW
Costa DilliardIndiaXuxue Feng UNQUALIFIED
Ashley DoeAustraliaElwin Sharvill UNQUALIFIED
Octavia MaletIndiaAsiya Javayant QUALIFIED
Jefferson SchemmerCanadaXuxue Feng QUALIFIED
Mujtaba NickaIndiaAsiya Javayant NEW
Ricardo GauchoArgentinaOnyama Limba NEGOTIATION
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Alejandro PerinRussiaIvan Magalhaes QUALIFIED
Aika InouyeUnited KingdomAmy Elsner UNQUALIFIED
Munro FerenczUnited KingdomAmy Elsner UNQUALIFIED
Johnson SergiItalyOnyama Limba RENEWAL
Emily WhobreySpainIvan Magalhaes PROPOSAL
Wickens NestleSpainElwin Sharvill QUALIFIED
Juan WieserGermanyElwin Sharvill RENEWAL
Salvatore StockhamIndiaAsiya Javayant UNQUALIFIED
Morrow RutaRussiaIoni Bowcher UNQUALIFIED
Stacey MacleadIndiaIoni Bowcher NEGOTIATION
Misaki RoysterUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Sinclair Waycott
Aditya Kusko
Johnson Sergi
Mujtaba Nicka
Adams Morasca
Kadeem Flosi
Aruna Figeroa
Misaki Royster
Darci Poquette
Alejandro Perin
Ivar Paprocki
Julie Stenseth
Smith Glick
Misaki Royster
Kaitlin Ostrosky
Munro Ferencz
Rodrigues Campain
Jennifer Amigon
Julie Stenseth
Isabel Bowley
Deepesh Chui
Aditya Kusko
Octavia Malet
Johnson Sergi
Adams Morasca
Aruna Figeroa
David Darakjy
Juan Wieser
Arvin Albares
Rodrigues Campain
Morrow Ruta
Murillo Malet
Deepesh Chui
Salvatore Stockham
Julie Stenseth
Darci Poquette
Chavez Briddick
Darci Poquette
Greenwood Bolognia
Greenwood Bolognia
James Butt
Costa Dilliard
Aditya Kusko
Faith Gillian
Mayumi Kolmetz
Antonio Caudy
Alejandro Perin
Antonio Caudy
Adams Morasca
Faith Gillian
IdCountryDate
1000Argentina2026-05-05
1001India2026-06-02
1002Italy2026-05-17
1003Russia2026-05-23
1004Canada2026-05-14
1005Australia2026-06-03
1006India2026-05-08
1007Canada2026-05-11
1008Russia2026-05-23
1009France2026-05-11
1010Spain2026-05-24
1011Australia2026-05-13
1012Brazil2026-05-17
1013Australia2026-05-09
1014Italy2026-05-30
1015France2026-05-26
1016United Kingdom2026-05-21
1017Italy2026-05-27
1018Australia2026-05-12
1019Russia2026-05-07
1020France2026-05-29
1021Russia2026-05-27
1022Australia2026-05-17
1023Australia2026-05-13
1024Russia2026-05-13
1025Brazil2026-06-01
1026Spain2026-05-20
1027Japan2026-06-01
1028United Kingdom2026-05-11
1029Russia2026-05-27
1030France2026-05-25
1031Japan2026-05-22
1032Spain2026-05-10
1033Italy2026-06-02
1034Spain2026-05-27
1035Italy2026-05-22
1036Italy2026-05-29
1037Spain2026-05-19
1038United Kingdom2026-05-08
1039United Kingdom2026-05-21
1040India2026-05-24
1041France2026-05-15
1042Japan2026-05-29
1043Argentina2026-05-24
1044Japan2026-06-02
1045Argentina2026-05-25
1046Russia2026-06-03
1047France2026-05-13
1048Italy2026-05-26
1049Argentina2026-05-28

On-Demand Data

NameIdCountryDate
Juan Wieser1000Russia2026-05-16
Leja Caldarera1001France2026-05-28
Mayumi Kolmetz1002India2026-05-26
Juan Wieser1003India2026-05-12
Deepesh Chui1004Canada2026-05-15
Aika Inouye1005Spain2026-05-21
Greenwood Bolognia1006Russia2026-05-09
Aditya Kusko1007Brazil2026-05-14
Rodrigues Campain1008Spain2026-05-17
Deepesh Chui1009Spain2026-05-18
David Darakjy1010United Kingdom2026-05-07
Leon Oldroyd1011Australia2026-05-15
Chavez Briddick1012Italy2026-05-30
Chavez Briddick1013Canada2026-05-14
Cody Saylors1014Argentina2026-05-15
Mujtaba Nicka1015Australia2026-05-17
Julie Stenseth1016Germany2026-05-26
Deepesh Chui1017United Kingdom2026-05-14
Juan Wieser1018France2026-05-08
Maisha Rulapaugh1019India2026-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha RulapaughJapanAnna Fali PROPOSAL
Maisha RulapaughGermanyIoni Bowcher QUALIFIED
Ricardo GauchoRussiaAmy Elsner RENEWAL
Cody SaylorsItalyAsiya Javayant RENEWAL
Murillo MaletFranceOnyama Limba PROPOSAL
Greenwood BologniaRussiaStephen Shaw UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher UNQUALIFIED
Chavez BriddickCanadaAsiya Javayant NEGOTIATION
Jennifer AmigonSpainStephen Shaw PROPOSAL
Aruna FigeroaSpainStephen Shaw NEGOTIATION
Jones VocelkaAustraliaAsiya Javayant NEGOTIATION
Antonio CaudySpainIoni Bowcher UNQUALIFIED
Leja CaldareraAustraliaStephen Shaw UNQUALIFIED
Jones VocelkaItalyAsiya Javayant RENEWAL
Aruna FigeroaSpainStephen Shaw QUALIFIED
Isabel BowleyArgentinaBernardo Dominic NEGOTIATION
Johnson SergiAustraliaAnna Fali NEGOTIATION
Mujtaba NickaItalyIoni Bowcher NEGOTIATION
Aika InouyeJapanBernardo Dominic NEW
Greenwood BologniaAustraliaElwin Sharvill NEW
Clifford RimRussiaAnna Fali NEGOTIATION
Isabel BowleyRussiaAsiya Javayant NEW
Maria MarrierSpainElwin Sharvill QUALIFIED
Kaitlin OstroskyAustraliaOnyama Limba RENEWAL
Maisha RulapaughCanadaOnyama Limba NEGOTIATION
Izzy GarufiFranceBernardo Dominic NEW
Munro FerenczIndiaXuxue Feng NEGOTIATION
Murillo MaletSpainIvan Magalhaes QUALIFIED
Arvin AlbaresCanadaIoni Bowcher NEGOTIATION
Adams MorascaUnited KingdomIvan Magalhaes RENEWAL
Isabel BowleyGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Octavia MaletAustraliaStephen Shaw PROPOSAL
Murillo MaletUnited KingdomElwin Sharvill PROPOSAL
Rodrigues CampainIndiaXuxue Feng PROPOSAL
James ButtJapanBernardo Dominic QUALIFIED
Leon OldroydAustraliaAmy Elsner PROPOSAL
Leon OldroydCanadaOnyama Limba RENEWAL
Izzy GarufiIndiaIoni Bowcher RENEWAL
Sinclair WaycottIndiaBernardo Dominic 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>