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
Costa DilliardFranceIvan Magalhaes NEW
Adams MorascaBrazilBernardo Dominic PROPOSAL
Munro FerenczItalyAmy Elsner PROPOSAL
Darci PoquetteFranceAnna Fali NEW
Stacey MacleadJapanAnna Fali QUALIFIED
Cody SaylorsBrazilIoni Bowcher PROPOSAL
Octavia MaletRussiaAnna Fali PROPOSAL
Misaki RoysterFranceAmy Elsner RENEWAL
Izzy GarufiJapanAnna Fali QUALIFIED
David DarakjyIndiaIoni Bowcher NEGOTIATION
Maria MarrierBrazilStephen Shaw QUALIFIED
Izzy GarufiItalyIvan Magalhaes UNQUALIFIED
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Cody SaylorsAustraliaIvan Magalhaes RENEWAL
Arvin AlbaresFranceAnna Fali RENEWAL
Mujtaba NickaRussiaAmy Elsner NEW
Munro FerenczUnited KingdomOnyama Limba RENEWAL
Tony FollerJapanBernardo Dominic QUALIFIED
Alejandro PerinIndiaXuxue Feng UNQUALIFIED
Murillo MaletJapanXuxue Feng NEW
Morrow RutaRussiaXuxue Feng RENEWAL
Kadeem FlosiBrazilStephen Shaw QUALIFIED
Ashley DoeRussiaOnyama Limba RENEWAL
Kaitlin OstroskyJapanElwin Sharvill NEW
Munro FerenczJapanOnyama Limba NEGOTIATION
Cody SaylorsSpainAmy Elsner RENEWAL
David DarakjyIndiaElwin Sharvill NEGOTIATION
Izzy GarufiJapanBernardo Dominic RENEWAL
Alejandro PerinAustraliaStephen Shaw UNQUALIFIED
Izzy GarufiCanadaStephen Shaw NEW
Claire TollnerItalyOnyama Limba NEGOTIATION
Cody SaylorsJapanElwin Sharvill NEW
Leja CaldareraArgentinaOnyama Limba UNQUALIFIED
Ivar PaprockiIndiaBernardo Dominic NEGOTIATION
Stacey MacleadRussiaAmy Elsner RENEWAL
Ivar PaprockiIndiaOnyama Limba NEGOTIATION
Costa DilliardBrazilStephen Shaw UNQUALIFIED
Jeanfrancois VenereJapanXuxue Feng UNQUALIFIED
Tony FollerCanadaStephen Shaw PROPOSAL
Jennifer AmigonBrazilOnyama Limba UNQUALIFIED
Jeanfrancois VenereJapanBernardo Dominic RENEWAL
Smith GlickFranceOnyama Limba NEW
Francesco ShinkoIndiaAsiya Javayant QUALIFIED
Johnson SergiRussiaStephen Shaw UNQUALIFIED
Smith GlickFranceElwin Sharvill RENEWAL
James ButtSpainAsiya Javayant NEGOTIATION
Salvatore StockhamFranceBernardo Dominic UNQUALIFIED
Adams MorascaFranceStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomAnna Fali UNQUALIFIED
Munro FerenczBrazilAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaIndiaXuxue Feng NEW
Johnson SergiRussiaIvan Magalhaes NEW
Izzy GarufiSpainElwin Sharvill PROPOSAL
Deepesh ChuiCanadaXuxue Feng RENEWAL
Aruna FigeroaJapanAsiya Javayant PROPOSAL
Darci PoquetteIndiaAnna Fali UNQUALIFIED
Arvin AlbaresAustraliaIvan Magalhaes QUALIFIED
Misaki RoysterIndiaAsiya Javayant PROPOSAL
Salvatore StockhamFranceXuxue Feng NEW
Jefferson SchemmerCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterGermany2025-09-18Dorl, James J Esq PROPOSAL44Asiya Javayant
1001Johnson SergiItaly2025-10-02Truhlar And Truhlar Attys UNQUALIFIED65Amy Elsner
1002Aika InouyeIndia2025-10-06Dorl, James J Esq UNQUALIFIED67Elwin Sharvill
1003Rodrigues CampainIndia2025-09-25Printing Dimensions NEGOTIATION23Anna Fali
1004Ricardo GauchoUnited Kingdom2025-09-17Morlong Associates RENEWAL86Onyama Limba
1005Kadeem FlosiItaly2025-09-21Commercial Press QUALIFIED13Amy Elsner
1006Munro FerenczSpain2025-10-08King, Christopher A Esq RENEWAL30Ivan Magalhaes
1007Nicolas IturbideFrance2025-10-04Chapman, Ross E Esq NEW55Bernardo Dominic
1008Jefferson SchemmerSpain2025-10-09Truhlar And Truhlar Attys UNQUALIFIED17Asiya Javayant
1009Kaitlin OstroskySpain2025-09-13King, Christopher A Esq UNQUALIFIED1Xuxue Feng
1010Arvin AlbaresCanada2025-10-02Rousseaux, Michael Esq NEW15Anna Fali
1011Octavia MaletItaly2025-09-27Chanay, Jeffrey A Esq UNQUALIFIED75Amy Elsner
1012Silvio SlusarskiIndia2025-09-14King, Christopher A Esq QUALIFIED14Asiya Javayant
1013Misaki RoysterFrance2025-09-17Feiner Bros NEGOTIATION66Bernardo Dominic
1014Ivar PaprockiIndia2025-10-02Chanay, Jeffrey A Esq PROPOSAL7Amy Elsner
1015Cody SaylorsGermany2025-10-05Rousseaux, Michael Esq RENEWAL1Xuxue Feng
1016Misaki RoysterItaly2025-09-23Rousseaux, Michael Esq UNQUALIFIED91Asiya Javayant
1017Cody SaylorsBrazil2025-09-24Chapman, Ross E Esq RENEWAL37Bernardo Dominic
1018Murillo MaletFrance2025-09-26Morlong Associates UNQUALIFIED76Elwin Sharvill
1019Silvio SlusarskiBrazil2025-09-27King, Christopher A Esq NEW67Xuxue Feng
1020Kaitlin OstroskyAustralia2025-09-19Dorl, James J Esq NEGOTIATION78Onyama Limba
1021Greenwood BologniaIndia2025-09-21Buckley Miller Wright NEW74Stephen Shaw
1022Emily WhobreyGermany2025-10-10Feiner Bros NEW18Stephen Shaw
1023Darci PoquetteSpain2025-09-20Chanay, Jeffrey A Esq NEGOTIATION51Stephen Shaw
1024Antonio CaudyItaly2025-09-30Buckley Miller Wright QUALIFIED76Amy Elsner
1025Emily WhobreyGermany2025-10-01Feiner Bros RENEWAL33Ivan Magalhaes
1026Deepesh ChuiFrance2025-09-28Feiner Bros NEW42Xuxue Feng
1027Salvatore StockhamRussia2025-09-24Feiner Bros NEGOTIATION10Xuxue Feng
1028Emily WhobreyAustralia2025-10-11Morlong Associates NEGOTIATION61Xuxue Feng
1029Murillo MaletItaly2025-10-04Chemel, James L Cpa NEGOTIATION88Ivan Magalhaes
1030Juan WieserIndia2025-10-02Dorl, James J Esq PROPOSAL72Elwin Sharvill
1031Rodrigues CampainJapan2025-09-22Commercial Press PROPOSAL41Bernardo Dominic
1032Claire TollnerJapan2025-09-27Truhlar And Truhlar Attys UNQUALIFIED28Ivan Magalhaes
1033Isabel BowleyItaly2025-10-05Rangoni Of Florence UNQUALIFIED47Onyama Limba
1034Silvio SlusarskiArgentina2025-09-28Dorl, James J Esq NEGOTIATION13Onyama Limba
1035Greenwood BologniaJapan2025-09-26Morlong Associates NEW86Onyama Limba
1036Deepesh ChuiIndia2025-10-06Feltz Printing Service RENEWAL72Amy Elsner
1037Darci PoquetteFrance2025-10-03Chemel, James L Cpa NEW67Ioni Bowcher
1038Ashley DoeSpain2025-09-12King, Christopher A Esq NEGOTIATION47Anna Fali
1039Juan WieserGermany2025-10-04Chanay, Jeffrey A Esq PROPOSAL85Asiya Javayant
1040Wickens NestleIndia2025-10-08Truhlar And Truhlar Attys RENEWAL32Anna Fali
1041Munro FerenczBrazil2025-10-05King, Christopher A Esq NEGOTIATION59Onyama Limba
1042Mujtaba NickaCanada2025-09-22Morlong Associates PROPOSAL27Onyama Limba
1043Aika InouyeUnited Kingdom2025-09-19King, Christopher A Esq UNQUALIFIED50Ioni Bowcher
1044Kaitlin OstroskyJapan2025-10-03Printing Dimensions UNQUALIFIED39Xuxue Feng
1045Costa DilliardIndia2025-09-14Dorl, James J Esq UNQUALIFIED86Amy Elsner
1046Tony FollerAustralia2025-09-20Rousseaux, Michael Esq NEGOTIATION53Bernardo Dominic
1047Mayumi KolmetzIndia2025-09-24Dorl, James J Esq NEGOTIATION60Xuxue Feng
1048Morrow RutaIndia2025-09-16Chemel, James L Cpa QUALIFIED48Asiya Javayant
1049Maria MarrierItaly2025-09-19Commercial Press PROPOSAL97Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiJapanAnna Fali PROPOSAL
Mujtaba NickaUnited KingdomAsiya Javayant UNQUALIFIED
Ivar PaprockiItalyStephen Shaw RENEWAL
Ivar PaprockiIndiaXuxue Feng QUALIFIED
Darci PoquetteCanadaIoni Bowcher UNQUALIFIED
Stacey MacleadAustraliaOnyama Limba NEGOTIATION
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Izzy GarufiAustraliaStephen Shaw PROPOSAL
Octavia MaletCanadaIoni Bowcher NEW
James ButtAustraliaOnyama Limba QUALIFIED
Rodrigues CampainItalyAnna Fali UNQUALIFIED
Morrow RutaCanadaAmy Elsner PROPOSAL
Mujtaba NickaAustraliaElwin Sharvill PROPOSAL
Misaki RoysterAustraliaElwin Sharvill RENEWAL
Jones VocelkaIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughCanadaAsiya Javayant NEGOTIATION
Tony FollerArgentinaAnna Fali NEGOTIATION
Cody SaylorsItalyXuxue Feng PROPOSAL
Kaitlin OstroskyIndiaAsiya Javayant QUALIFIED
Aditya KuskoGermanyIvan Magalhaes PROPOSAL
Leja CaldareraJapanXuxue Feng NEGOTIATION
Johnson SergiRussiaOnyama Limba NEW
Maria MarrierItalyStephen Shaw QUALIFIED
James ButtSpainElwin Sharvill NEW
Murillo MaletAustraliaStephen Shaw QUALIFIED
Leon OldroydAustraliaIoni Bowcher NEW
Kadeem FlosiJapanIvan Magalhaes NEW
Wickens NestleSpainIoni Bowcher RENEWAL
Arvin AlbaresCanadaAmy Elsner QUALIFIED
Rodrigues CampainFranceBernardo Dominic UNQUALIFIED
Julie StensethUnited KingdomStephen Shaw QUALIFIED
Munro FerenczItalyXuxue Feng QUALIFIED
Emily WhobreyCanadaElwin Sharvill NEGOTIATION
Nicolas IturbideAustraliaAmy Elsner QUALIFIED
Wickens NestleFranceAmy Elsner UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw UNQUALIFIED
Alejandro PerinFranceElwin Sharvill RENEWAL
Julie StensethAustraliaAsiya Javayant NEW
Misaki RoysterSpainElwin Sharvill PROPOSAL
Stacey MacleadArgentinaAmy Elsner PROPOSAL
Kaitlin OstroskyGermanyIoni Bowcher UNQUALIFIED
Cody SaylorsJapanAnna Fali NEW
Faith GillianAustraliaXuxue Feng PROPOSAL
Emily WhobreyItalyBernardo Dominic PROPOSAL
Salvatore StockhamJapanXuxue Feng NEW
Clifford RimGermanyIvan Magalhaes NEW
Greenwood BologniaJapanAsiya Javayant NEW
Cody SaylorsFranceElwin Sharvill NEW
Antonio CaudyBrazilElwin Sharvill QUALIFIED
Nicolas IturbideSpainAsiya Javayant PROPOSAL
Frozen Columns
Name
Maria Marrier
Tony Foller
Claire Tollner
Sinclair Waycott
Julie Stenseth
Isabel Bowley
Jeanfrancois Venere
Ricardo Gaucho
Chavez Briddick
Darci Poquette
Emily Whobrey
Misaki Royster
David Darakjy
Jefferson Schemmer
Wickens Nestle
Aditya Kusko
Ricardo Gaucho
Morrow Ruta
Tony Foller
Clifford Rim
Francesco Shinko
Silvio Slusarski
Deepesh Chui
Deepesh Chui
Mayumi Kolmetz
Costa Dilliard
Julie Stenseth
Aditya Kusko
Juan Wieser
Tony Foller
Kadeem Flosi
Rodrigues Campain
Chavez Briddick
Rodrigues Campain
Johnson Sergi
Octavia Malet
Jeanfrancois Venere
Wickens Nestle
Octavia Malet
Kaitlin Ostrosky
Mujtaba Nicka
Claire Tollner
Cody Saylors
Jones Vocelka
Wickens Nestle
Salvatore Stockham
Misaki Royster
Johnson Sergi
Aruna Figeroa
Isabel Bowley
IdCountryDate
1000Canada2025-09-26
1001India2025-09-27
1002Japan2025-10-02
1003Australia2025-09-14
1004Spain2025-09-25
1005India2025-10-11
1006Germany2025-09-22
1007Argentina2025-10-02
1008Germany2025-09-29
1009India2025-10-05
1010Spain2025-09-15
1011Russia2025-10-08
1012Canada2025-10-11
1013Canada2025-09-14
1014France2025-10-09
1015India2025-09-29
1016Australia2025-10-01
1017United Kingdom2025-10-04
1018Brazil2025-10-02
1019Spain2025-09-19
1020Australia2025-10-01
1021Australia2025-09-28
1022Australia2025-09-30
1023France2025-09-17
1024Canada2025-09-24
1025Brazil2025-10-10
1026India2025-09-17
1027Germany2025-10-07
1028Spain2025-09-13
1029Japan2025-09-16
1030Brazil2025-09-24
1031Brazil2025-09-26
1032Russia2025-09-25
1033Canada2025-09-24
1034Australia2025-09-13
1035Argentina2025-09-21
1036Australia2025-10-07
1037Brazil2025-10-09
1038United Kingdom2025-09-17
1039France2025-09-13
1040Canada2025-09-12
1041Brazil2025-09-26
1042Spain2025-09-13
1043Japan2025-10-10
1044India2025-10-02
1045Germany2025-09-23
1046Canada2025-10-05
1047Brazil2025-10-10
1048Australia2025-10-01
1049India2025-10-04

On-Demand Data

NameIdCountryDate
Faith Gillian1000Argentina2025-09-18
Aditya Kusko1001Canada2025-10-09
Maria Marrier1002Germany2025-10-07
Mujtaba Nicka1003Spain2025-10-09
Rodrigues Campain1004India2025-09-26
James Butt1005Germany2025-10-11
Emily Whobrey1006Italy2025-09-24
Leon Oldroyd1007Italy2025-10-04
Stacey Maclead1008Germany2025-09-17
Faith Gillian1009Spain2025-09-28
Silvio Slusarski1010United Kingdom2025-09-19
Aruna Figeroa1011Australia2025-09-23
Maria Marrier1012Spain2025-09-28
Wickens Nestle1013Canada2025-10-07
Aika Inouye1014United Kingdom2025-09-21
Salvatore Stockham1015Australia2025-09-25
Deepesh Chui1016Argentina2025-09-17
Maisha Rulapaugh1017Italy2025-10-02
Cody Saylors1018Canada2025-09-24
Antonio Caudy1019Russia2025-10-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyCanadaBernardo Dominic NEGOTIATION
Johnson SergiFranceIvan Magalhaes UNQUALIFIED
Aruna FigeroaJapanOnyama Limba NEW
Silvio SlusarskiGermanyAmy Elsner UNQUALIFIED
Sinclair WaycottBrazilBernardo Dominic QUALIFIED
Aditya KuskoJapanElwin Sharvill PROPOSAL
Jennifer AmigonAustraliaElwin Sharvill UNQUALIFIED
Adams MorascaGermanyXuxue Feng RENEWAL
Salvatore StockhamRussiaIvan Magalhaes RENEWAL
Misaki RoysterSpainStephen Shaw NEGOTIATION
Juan WieserRussiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiSpainIvan Magalhaes UNQUALIFIED
Salvatore StockhamBrazilAnna Fali NEW
Sinclair WaycottGermanyStephen Shaw NEW
Silvio SlusarskiJapanStephen Shaw PROPOSAL
Mayumi KolmetzBrazilBernardo Dominic RENEWAL
Mujtaba NickaSpainIoni Bowcher QUALIFIED
Morrow RutaCanadaStephen Shaw UNQUALIFIED
Izzy GarufiItalyAsiya Javayant PROPOSAL
Jefferson SchemmerBrazilStephen Shaw NEW
Cody SaylorsItalyAmy Elsner NEW
Kadeem FlosiCanadaXuxue Feng UNQUALIFIED
Kaitlin OstroskyBrazilAmy Elsner UNQUALIFIED
Morrow RutaSpainXuxue Feng NEW
Johnson SergiItalyElwin Sharvill PROPOSAL
Leja CaldareraSpainOnyama Limba UNQUALIFIED
Jones VocelkaRussiaBernardo Dominic QUALIFIED
Leon OldroydJapanAmy Elsner NEW
Emily WhobreyGermanyAnna Fali NEGOTIATION
Emily WhobreyItalyStephen Shaw RENEWAL
Munro FerenczSpainAmy Elsner QUALIFIED
Jefferson SchemmerIndiaAsiya Javayant QUALIFIED
Aika InouyeRussiaAmy Elsner RENEWAL
Deepesh ChuiFranceBernardo Dominic UNQUALIFIED
Chavez BriddickIndiaAnna Fali PROPOSAL
Cody SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Maria MarrierRussiaBernardo Dominic UNQUALIFIED
Kadeem FlosiBrazilStephen Shaw QUALIFIED
Antonio CaudyGermanyElwin Sharvill RENEWAL
Murillo MaletIndiaAnna Fali UNQUALIFIED

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