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
Emily WhobreyIndiaOnyama Limba NEGOTIATION
Adams MorascaAustraliaOnyama Limba UNQUALIFIED
Jennifer AmigonArgentinaXuxue Feng RENEWAL
Darci PoquetteIndiaBernardo Dominic RENEWAL
Murillo MaletSpainOnyama Limba PROPOSAL
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Cody SaylorsAustraliaAnna Fali QUALIFIED
Silvio SlusarskiFranceOnyama Limba PROPOSAL
Tony FollerArgentinaOnyama Limba PROPOSAL
David DarakjyItalyElwin Sharvill QUALIFIED
Kaitlin OstroskyCanadaOnyama Limba NEW
Morrow RutaItalyElwin Sharvill QUALIFIED
Stacey MacleadSpainAmy Elsner NEW
Chavez BriddickRussiaAsiya Javayant NEW
Morrow RutaCanadaIvan Magalhaes QUALIFIED
Rodrigues CampainGermanyAsiya Javayant UNQUALIFIED
Chavez BriddickAustraliaIvan Magalhaes NEW
Antonio CaudyCanadaBernardo Dominic PROPOSAL
Silvio SlusarskiAustraliaIoni Bowcher NEGOTIATION
Nicolas IturbideSpainElwin Sharvill PROPOSAL
Isabel BowleyIndiaIoni Bowcher UNQUALIFIED
Cody SaylorsIndiaIoni Bowcher RENEWAL
Julie StensethJapanStephen Shaw NEW
Silvio SlusarskiGermanyElwin Sharvill QUALIFIED
Kadeem FlosiIndiaOnyama Limba RENEWAL
Leja CaldareraJapanXuxue Feng RENEWAL
Kadeem FlosiBrazilElwin Sharvill PROPOSAL
Mujtaba NickaJapanIvan Magalhaes NEGOTIATION
Ricardo GauchoGermanyAmy Elsner NEGOTIATION
Smith GlickJapanAsiya Javayant QUALIFIED
Mujtaba NickaAustraliaBernardo Dominic QUALIFIED
Faith GillianRussiaAsiya Javayant PROPOSAL
Octavia MaletUnited KingdomStephen Shaw QUALIFIED
Leja CaldareraGermanyAmy Elsner QUALIFIED
Juan WieserArgentinaBernardo Dominic NEW
Misaki RoysterArgentinaXuxue Feng NEW
Juan WieserSpainStephen Shaw QUALIFIED
Kaitlin OstroskyItalyXuxue Feng QUALIFIED
Jefferson SchemmerRussiaOnyama Limba NEW
Tony FollerJapanElwin Sharvill NEW
Morrow RutaIndiaIvan Magalhaes RENEWAL
Maria MarrierFranceElwin Sharvill NEW
Costa DilliardAustraliaBernardo Dominic QUALIFIED
Leja CaldareraArgentinaXuxue Feng PROPOSAL
Kadeem FlosiFranceBernardo Dominic PROPOSAL
Smith GlickCanadaAsiya Javayant NEW
Salvatore StockhamItalyOnyama Limba PROPOSAL
Stacey MacleadArgentinaXuxue Feng RENEWAL
Maria MarrierBrazilIvan Magalhaes UNQUALIFIED
Chavez BriddickSpainStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoCanadaIoni Bowcher QUALIFIED
Darci PoquetteFranceAsiya Javayant QUALIFIED
Darci PoquetteGermanyXuxue Feng QUALIFIED
Rodrigues CampainCanadaIoni Bowcher NEW
Arvin AlbaresUnited KingdomStephen Shaw PROPOSAL
Murillo MaletItalyAsiya Javayant PROPOSAL
Salvatore StockhamIndiaAnna Fali NEW
Rodrigues CampainItalyXuxue Feng QUALIFIED
Leon OldroydItalyIvan Magalhaes NEGOTIATION
Maria MarrierFranceIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh ChuiBrazil2026-06-02Chapman, Ross E Esq QUALIFIED92Stephen Shaw
1001Adams MorascaArgentina2026-06-01Dorl, James J Esq QUALIFIED67Elwin Sharvill
1002Jeanfrancois VenereSpain2026-06-17Benton, John B Jr NEGOTIATION40Amy Elsner
1003Isabel BowleySpain2026-06-03King, Christopher A Esq NEW34Bernardo Dominic
1004Greenwood BologniaItaly2026-06-13Feiner Bros NEGOTIATION0Anna Fali
1005Misaki RoysterUnited Kingdom2026-06-06King, Christopher A Esq PROPOSAL17Asiya Javayant
1006Chavez BriddickArgentina2026-05-28Buckley Miller Wright PROPOSAL6Asiya Javayant
1007Johnson SergiBrazil2026-05-26Feltz Printing Service UNQUALIFIED16Stephen Shaw
1008Jones VocelkaRussia2026-05-24Benton, John B Jr NEW87Amy Elsner
1009Aika InouyeSpain2026-05-24Feltz Printing Service RENEWAL4Elwin Sharvill
1010Jennifer AmigonAustralia2026-06-10Chemel, James L Cpa QUALIFIED19Bernardo Dominic
1011Juan WieserGermany2026-06-02Feiner Bros UNQUALIFIED90Bernardo Dominic
1012Murillo MaletSpain2026-05-28Feiner Bros QUALIFIED26Asiya Javayant
1013Jeanfrancois VenereFrance2026-05-22Dorl, James J Esq NEW20Asiya Javayant
1014Morrow RutaBrazil2026-06-05Morlong Associates NEGOTIATION77Ioni Bowcher
1015Cody SaylorsBrazil2026-05-20Benton, John B Jr NEW63Ioni Bowcher
1016Silvio SlusarskiArgentina2026-06-01King, Christopher A Esq NEW30Anna Fali
1017Mayumi KolmetzUnited Kingdom2026-06-02Truhlar And Truhlar Attys NEW35Onyama Limba
1018Silvio SlusarskiFrance2026-05-28Benton, John B Jr RENEWAL11Ivan Magalhaes
1019Darci PoquetteItaly2026-06-08Rangoni Of Florence PROPOSAL87Bernardo Dominic
1020Aditya KuskoBrazil2026-05-31Rangoni Of Florence QUALIFIED34Ioni Bowcher
1021Kaitlin OstroskyIndia2026-05-23Commercial Press NEW68Ioni Bowcher
1022Salvatore StockhamRussia2026-05-30Dorl, James J Esq NEGOTIATION7Asiya Javayant
1023Jennifer AmigonArgentina2026-06-17Buckley Miller Wright PROPOSAL92Asiya Javayant
1024Claire TollnerUnited Kingdom2026-05-21Chapman, Ross E Esq UNQUALIFIED1Amy Elsner
1025Kadeem FlosiArgentina2026-06-15Morlong Associates NEW98Stephen Shaw
1026Maria MarrierBrazil2026-05-30Morlong Associates NEW91Elwin Sharvill
1027Ricardo GauchoBrazil2026-05-31Benton, John B Jr NEW87Asiya Javayant
1028Mayumi KolmetzAustralia2026-06-04Benton, John B Jr PROPOSAL44Onyama Limba
1029Arvin AlbaresGermany2026-05-25Feltz Printing Service NEGOTIATION9Bernardo Dominic
1030Julie StensethUnited Kingdom2026-06-02Feiner Bros QUALIFIED66Elwin Sharvill
1031Jeanfrancois VenereAustralia2026-06-02Feiner Bros UNQUALIFIED56Ioni Bowcher
1032Sinclair WaycottIndia2026-05-20King, Christopher A Esq RENEWAL54Ioni Bowcher
1033Smith GlickAustralia2026-06-10Chapman, Ross E Esq NEGOTIATION84Stephen Shaw
1034Kadeem FlosiArgentina2026-05-30Benton, John B Jr RENEWAL41Asiya Javayant
1035Arvin AlbaresBrazil2026-06-03Buckley Miller Wright NEGOTIATION61Ioni Bowcher
1036Smith GlickIndia2026-06-16Morlong Associates UNQUALIFIED8Xuxue Feng
1037Julie StensethRussia2026-06-12Rousseaux, Michael Esq RENEWAL76Onyama Limba
1038Aditya KuskoCanada2026-06-07Feiner Bros RENEWAL68Amy Elsner
1039Emily WhobreyGermany2026-05-25King, Christopher A Esq PROPOSAL81Asiya Javayant
1040Emily WhobreyBrazil2026-05-20Feltz Printing Service RENEWAL59Anna Fali
1041Jeanfrancois VenereSpain2026-06-04Morlong Associates NEW97Asiya Javayant
1042Morrow RutaRussia2026-05-29Morlong Associates PROPOSAL37Xuxue Feng
1043Chavez BriddickItaly2026-06-05Dorl, James J Esq UNQUALIFIED0Amy Elsner
1044Tony FollerGermany2026-06-09Dorl, James J Esq NEGOTIATION93Anna Fali
1045Mujtaba NickaAustralia2026-06-16King, Christopher A Esq RENEWAL86Anna Fali
1046Kadeem FlosiRussia2026-05-26King, Christopher A Esq QUALIFIED71Anna Fali
1047Leja CaldareraIndia2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED97Ivan Magalhaes
1048Maria MarrierCanada2026-05-27Benton, John B Jr UNQUALIFIED96Elwin Sharvill
1049Murillo MaletJapan2026-06-14Rousseaux, Michael Esq QUALIFIED36Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaIndiaOnyama Limba UNQUALIFIED
Clifford RimCanadaAnna Fali RENEWAL
Johnson SergiFranceAsiya Javayant QUALIFIED
Mujtaba NickaJapanOnyama Limba NEGOTIATION
Clifford RimGermanyAmy Elsner QUALIFIED
Smith GlickBrazilXuxue Feng NEGOTIATION
Deepesh ChuiBrazilElwin Sharvill NEW
Aditya KuskoJapanAmy Elsner UNQUALIFIED
Leon OldroydItalyAmy Elsner PROPOSAL
James ButtGermanyStephen Shaw PROPOSAL
Antonio CaudyCanadaStephen Shaw RENEWAL
Aruna FigeroaGermanyIvan Magalhaes QUALIFIED
Juan WieserUnited KingdomStephen Shaw NEGOTIATION
Octavia MaletJapanStephen Shaw RENEWAL
Smith GlickJapanStephen Shaw QUALIFIED
Chavez BriddickFranceIvan Magalhaes NEW
Leja CaldareraSpainIvan Magalhaes QUALIFIED
Alejandro PerinIndiaBernardo Dominic NEW
Leja CaldareraCanadaStephen Shaw NEW
Adams MorascaFranceIoni Bowcher NEW
James ButtCanadaBernardo Dominic QUALIFIED
Adams MorascaItalyOnyama Limba PROPOSAL
Kadeem FlosiArgentinaElwin Sharvill UNQUALIFIED
Alejandro PerinArgentinaOnyama Limba NEW
Julie StensethArgentinaOnyama Limba RENEWAL
Mayumi KolmetzFranceIvan Magalhaes QUALIFIED
Wickens NestleArgentinaBernardo Dominic UNQUALIFIED
Rodrigues CampainBrazilAsiya Javayant NEGOTIATION
Julie StensethIndiaAnna Fali QUALIFIED
Aditya KuskoJapanAsiya Javayant PROPOSAL
Greenwood BologniaIndiaAnna Fali QUALIFIED
Izzy GarufiUnited KingdomAmy Elsner NEW
Sinclair WaycottRussiaAsiya Javayant NEW
Julie StensethBrazilIvan Magalhaes QUALIFIED
Nicolas IturbideItalyIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomAnna Fali PROPOSAL
Adams MorascaJapanOnyama Limba UNQUALIFIED
Isabel BowleyRussiaIoni Bowcher NEW
Cody SaylorsJapanIoni Bowcher NEW
Cody SaylorsRussiaBernardo Dominic RENEWAL
Darci PoquetteSpainBernardo Dominic QUALIFIED
Silvio SlusarskiItalyIoni Bowcher UNQUALIFIED
Tony FollerCanadaIvan Magalhaes RENEWAL
Maisha RulapaughJapanOnyama Limba QUALIFIED
Deepesh ChuiCanadaAmy Elsner PROPOSAL
Clifford RimJapanIoni Bowcher NEW
Jeanfrancois VenereSpainOnyama Limba QUALIFIED
Maria MarrierRussiaStephen Shaw NEGOTIATION
Chavez BriddickSpainOnyama Limba QUALIFIED
Stacey MacleadGermanyAnna Fali NEGOTIATION
Frozen Columns
Name
Mayumi Kolmetz
Jones Vocelka
Julie Stenseth
Deepesh Chui
Wickens Nestle
Rodrigues Campain
Francesco Shinko
Salvatore Stockham
Claire Tollner
Johnson Sergi
Johnson Sergi
Jones Vocelka
Kadeem Flosi
Octavia Malet
Cody Saylors
Ivar Paprocki
Leja Caldarera
Octavia Malet
Aditya Kusko
Jennifer Amigon
Rodrigues Campain
Morrow Ruta
Mujtaba Nicka
Mujtaba Nicka
Izzy Garufi
Aditya Kusko
Jennifer Amigon
Munro Ferencz
Mayumi Kolmetz
Alejandro Perin
Mujtaba Nicka
Stacey Maclead
Smith Glick
Rodrigues Campain
Chavez Briddick
Costa Dilliard
Deepesh Chui
Mayumi Kolmetz
Octavia Malet
Deepesh Chui
Nicolas Iturbide
Clifford Rim
Leja Caldarera
Johnson Sergi
Rodrigues Campain
Jeanfrancois Venere
Greenwood Bolognia
Kadeem Flosi
Adams Morasca
Mayumi Kolmetz
IdCountryDate
1000Germany2026-06-17
1001Spain2026-06-06
1002Russia2026-06-10
1003France2026-05-28
1004Germany2026-06-07
1005Argentina2026-05-24
1006Japan2026-05-19
1007India2026-06-13
1008Argentina2026-06-09
1009Brazil2026-06-11
1010Brazil2026-05-22
1011Brazil2026-06-09
1012United Kingdom2026-05-19
1013Canada2026-06-13
1014Australia2026-05-28
1015United Kingdom2026-06-13
1016Australia2026-06-09
1017France2026-05-20
1018France2026-06-12
1019Spain2026-06-05
1020Germany2026-06-10
1021Argentina2026-06-05
1022France2026-06-15
1023Russia2026-06-07
1024Spain2026-05-29
1025Japan2026-06-14
1026Japan2026-06-01
1027Australia2026-06-09
1028Russia2026-05-31
1029Australia2026-06-05
1030France2026-06-08
1031France2026-06-10
1032Japan2026-06-09
1033Russia2026-05-31
1034Japan2026-06-09
1035India2026-06-11
1036Russia2026-06-02
1037France2026-06-15
1038Argentina2026-05-22
1039Brazil2026-06-06
1040Argentina2026-05-19
1041India2026-06-13
1042Germany2026-06-10
1043Brazil2026-06-03
1044Australia2026-05-21
1045Germany2026-05-24
1046Canada2026-05-27
1047United Kingdom2026-06-12
1048France2026-05-20
1049France2026-06-03

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Japan2026-06-12
Rodrigues Campain1001Spain2026-05-20
Maisha Rulapaugh1002Argentina2026-06-11
Mayumi Kolmetz1003Argentina2026-05-31
Arvin Albares1004India2026-05-28
Adams Morasca1005Canada2026-05-23
James Butt1006Italy2026-05-31
Clifford Rim1007United Kingdom2026-06-10
Greenwood Bolognia1008India2026-05-31
Morrow Ruta1009Australia2026-05-23
Izzy Garufi1010Germany2026-05-22
Aika Inouye1011United Kingdom2026-06-10
Faith Gillian1012Australia2026-05-19
Darci Poquette1013Brazil2026-06-05
Aika Inouye1014United Kingdom2026-05-22
Jones Vocelka1015Brazil2026-06-02
David Darakjy1016Spain2026-06-16
Jeanfrancois Venere1017Germany2026-05-21
Julie Stenseth1018Argentina2026-06-15
Mayumi Kolmetz1019Italy2026-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyCanadaXuxue Feng NEW
Morrow RutaGermanyAsiya Javayant NEGOTIATION
Maisha RulapaughFranceOnyama Limba NEGOTIATION
Juan WieserItalyBernardo Dominic UNQUALIFIED
Deepesh ChuiItalyXuxue Feng RENEWAL
Johnson SergiArgentinaXuxue Feng NEGOTIATION
Jefferson SchemmerIndiaXuxue Feng QUALIFIED
Leon OldroydItalyOnyama Limba RENEWAL
David DarakjyFranceOnyama Limba QUALIFIED
Julie StensethRussiaBernardo Dominic NEW
Jennifer AmigonIndiaStephen Shaw QUALIFIED
Sinclair WaycottJapanBernardo Dominic UNQUALIFIED
Morrow RutaGermanyAsiya Javayant QUALIFIED
Greenwood BologniaRussiaAsiya Javayant NEGOTIATION
Mayumi KolmetzArgentinaElwin Sharvill QUALIFIED
Jones VocelkaJapanBernardo Dominic NEW
Murillo MaletRussiaOnyama Limba RENEWAL
Sinclair WaycottSpainAsiya Javayant PROPOSAL
Aruna FigeroaSpainAsiya Javayant NEGOTIATION
Jennifer AmigonSpainAsiya Javayant NEGOTIATION
Claire TollnerSpainIoni Bowcher UNQUALIFIED
Sinclair WaycottItalyAsiya Javayant UNQUALIFIED
Arvin AlbaresGermanyBernardo Dominic RENEWAL
Rodrigues CampainArgentinaAmy Elsner PROPOSAL
Cody SaylorsBrazilIvan Magalhaes NEGOTIATION
Jones VocelkaBrazilElwin Sharvill QUALIFIED
Mujtaba NickaCanadaAmy Elsner NEGOTIATION
Aruna FigeroaIndiaOnyama Limba RENEWAL
Emily WhobreyRussiaAnna Fali NEGOTIATION
Smith GlickIndiaOnyama Limba RENEWAL
Sinclair WaycottSpainIvan Magalhaes UNQUALIFIED
Maisha RulapaughJapanOnyama Limba PROPOSAL
Cody SaylorsAustraliaBernardo Dominic RENEWAL
Jeanfrancois VenereSpainAnna Fali NEW
Darci PoquetteArgentinaBernardo Dominic NEGOTIATION
Smith GlickIndiaStephen Shaw QUALIFIED
Rodrigues CampainCanadaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba UNQUALIFIED
Nicolas IturbideIndiaIoni Bowcher NEW
Munro FerenczIndiaAnna Fali PROPOSAL

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