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
Alejandro PerinJapanOnyama Limba RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher NEW
Darci PoquetteBrazilAsiya Javayant QUALIFIED
Alejandro PerinGermanyAsiya Javayant UNQUALIFIED
Francesco ShinkoBrazilIoni Bowcher QUALIFIED
Silvio SlusarskiCanadaElwin Sharvill NEW
Julie StensethAustraliaAsiya Javayant NEW
Ricardo GauchoBrazilAsiya Javayant PROPOSAL
Faith GillianSpainAnna Fali NEW
Arvin AlbaresFranceAmy Elsner RENEWAL
Stacey MacleadCanadaIvan Magalhaes RENEWAL
Leja CaldareraSpainElwin Sharvill NEGOTIATION
Izzy GarufiArgentinaXuxue Feng NEW
Nicolas IturbideJapanAnna Fali UNQUALIFIED
Greenwood BologniaArgentinaIoni Bowcher QUALIFIED
Smith GlickJapanXuxue Feng RENEWAL
Misaki RoysterBrazilIoni Bowcher RENEWAL
Aditya KuskoBrazilIoni Bowcher UNQUALIFIED
Aruna FigeroaIndiaXuxue Feng QUALIFIED
Mayumi KolmetzRussiaAnna Fali PROPOSAL
Cody SaylorsArgentinaElwin Sharvill RENEWAL
Salvatore StockhamItalyOnyama Limba UNQUALIFIED
Maria MarrierFranceElwin Sharvill NEW
Mayumi KolmetzIndiaElwin Sharvill QUALIFIED
Sinclair WaycottIndiaIvan Magalhaes QUALIFIED
Francesco ShinkoJapanAsiya Javayant NEW
Murillo MaletUnited KingdomXuxue Feng NEW
Julie StensethBrazilAnna Fali QUALIFIED
Ashley DoeJapanOnyama Limba QUALIFIED
Julie StensethCanadaIoni Bowcher NEGOTIATION
Maria MarrierJapanAsiya Javayant NEGOTIATION
Emily WhobreyUnited KingdomAmy Elsner PROPOSAL
Johnson SergiArgentinaAsiya Javayant UNQUALIFIED
Johnson SergiJapanStephen Shaw RENEWAL
Maria MarrierSpainStephen Shaw PROPOSAL
Clifford RimJapanOnyama Limba NEGOTIATION
Izzy GarufiIndiaBernardo Dominic RENEWAL
Jennifer AmigonArgentinaAsiya Javayant QUALIFIED
Stacey MacleadGermanyAmy Elsner NEGOTIATION
Clifford RimRussiaIoni Bowcher RENEWAL
Ivar PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Leon OldroydUnited KingdomStephen Shaw RENEWAL
Stacey MacleadUnited KingdomIoni Bowcher RENEWAL
Mujtaba NickaRussiaIoni Bowcher NEW
Kaitlin OstroskyAustraliaXuxue Feng QUALIFIED
Sinclair WaycottGermanyStephen Shaw QUALIFIED
Murillo MaletFranceOnyama Limba QUALIFIED
Johnson SergiUnited KingdomAmy Elsner QUALIFIED
Emily WhobreyRussiaIvan Magalhaes QUALIFIED
Jones VocelkaItalyElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Johnson SergiItalyAsiya Javayant QUALIFIED
Wickens NestleCanadaIoni Bowcher RENEWAL
David DarakjyCanadaAmy Elsner QUALIFIED
Clifford RimIndiaIoni Bowcher NEW
Antonio CaudyCanadaBernardo Dominic NEW
Juan WieserCanadaAnna Fali NEW
Munro FerenczRussiaStephen Shaw UNQUALIFIED
Costa DilliardItalyStephen Shaw RENEWAL
Maria MarrierBrazilStephen Shaw NEW
Cody SaylorsFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughFrance2026-04-28Buckley Miller Wright QUALIFIED99Amy Elsner
1001Faith GillianItaly2026-04-22Chapman, Ross E Esq NEW9Xuxue Feng
1002Francesco ShinkoCanada2026-04-12Morlong Associates NEW34Ioni Bowcher
1003Stacey MacleadBrazil2026-04-12Chanay, Jeffrey A Esq QUALIFIED66Amy Elsner
1004Izzy GarufiArgentina2026-05-10Rangoni Of Florence RENEWAL11Asiya Javayant
1005Julie StensethBrazil2026-04-30Truhlar And Truhlar Attys PROPOSAL53Asiya Javayant
1006Darci PoquetteItaly2026-05-05Rangoni Of Florence PROPOSAL84Stephen Shaw
1007Adams MorascaBrazil2026-05-05Benton, John B Jr NEGOTIATION36Asiya Javayant
1008Aika InouyeArgentina2026-05-10Dorl, James J Esq PROPOSAL76Asiya Javayant
1009Maria MarrierCanada2026-05-03Rousseaux, Michael Esq NEGOTIATION14Ioni Bowcher
1010Maisha RulapaughItaly2026-04-26Benton, John B Jr UNQUALIFIED52Ivan Magalhaes
1011Faith GillianCanada2026-04-23Truhlar And Truhlar Attys RENEWAL42Ioni Bowcher
1012James ButtGermany2026-05-03Benton, John B Jr PROPOSAL92Ioni Bowcher
1013Adams MorascaBrazil2026-04-16Printing Dimensions UNQUALIFIED17Bernardo Dominic
1014Leon OldroydJapan2026-05-07Commercial Press RENEWAL61Onyama Limba
1015Mujtaba NickaSpain2026-04-28Printing Dimensions RENEWAL94Asiya Javayant
1016Arvin AlbaresFrance2026-04-26Chanay, Jeffrey A Esq NEW83Ioni Bowcher
1017Octavia MaletBrazil2026-05-07Dorl, James J Esq NEGOTIATION92Ivan Magalhaes
1018Antonio CaudyUnited Kingdom2026-04-24Commercial Press PROPOSAL25Bernardo Dominic
1019Aruna FigeroaArgentina2026-05-06Chanay, Jeffrey A Esq RENEWAL48Onyama Limba
1020Ricardo GauchoGermany2026-04-13King, Christopher A Esq NEW31Xuxue Feng
1021David DarakjyIndia2026-05-04Feltz Printing Service QUALIFIED10Amy Elsner
1022Leon OldroydSpain2026-04-28Feltz Printing Service UNQUALIFIED77Amy Elsner
1023Julie StensethRussia2026-04-12Commercial Press PROPOSAL51Ioni Bowcher
1024Izzy GarufiJapan2026-04-29Printing Dimensions PROPOSAL3Ivan Magalhaes
1025Ricardo GauchoUnited Kingdom2026-04-22Commercial Press RENEWAL85Bernardo Dominic
1026Ashley DoeGermany2026-04-18Feiner Bros UNQUALIFIED67Xuxue Feng
1027Sinclair WaycottFrance2026-05-05Buckley Miller Wright NEW14Elwin Sharvill
1028Aika InouyeAustralia2026-04-12Chanay, Jeffrey A Esq RENEWAL71Amy Elsner
1029Chavez BriddickCanada2026-04-25Chanay, Jeffrey A Esq UNQUALIFIED8Amy Elsner
1030Sinclair WaycottBrazil2026-04-23Truhlar And Truhlar Attys QUALIFIED25Ioni Bowcher
1031Deepesh ChuiUnited Kingdom2026-05-01Chapman, Ross E Esq NEGOTIATION90Ioni Bowcher
1032Ivar PaprockiCanada2026-04-24Printing Dimensions PROPOSAL41Amy Elsner
1033Jones VocelkaFrance2026-04-23Rangoni Of Florence PROPOSAL2Anna Fali
1034Tony FollerJapan2026-04-19Morlong Associates PROPOSAL35Amy Elsner
1035David DarakjyIndia2026-05-02Benton, John B Jr PROPOSAL61Xuxue Feng
1036Mayumi KolmetzJapan2026-05-08Rangoni Of Florence RENEWAL27Ivan Magalhaes
1037Antonio CaudyCanada2026-04-22Feltz Printing Service NEGOTIATION30Ioni Bowcher
1038David DarakjyRussia2026-05-09Feltz Printing Service QUALIFIED92Elwin Sharvill
1039Jennifer AmigonArgentina2026-04-19Commercial Press UNQUALIFIED85Ivan Magalhaes
1040Kadeem FlosiSpain2026-05-11Rangoni Of Florence RENEWAL55Bernardo Dominic
1041Costa DilliardGermany2026-05-06Commercial Press NEGOTIATION86Anna Fali
1042Alejandro PerinJapan2026-04-19Truhlar And Truhlar Attys NEGOTIATION33Elwin Sharvill
1043Cody SaylorsIndia2026-04-24Chemel, James L Cpa UNQUALIFIED6Xuxue Feng
1044Adams MorascaRussia2026-05-03Rangoni Of Florence UNQUALIFIED22Ioni Bowcher
1045Claire TollnerFrance2026-05-08Commercial Press NEW69Asiya Javayant
1046Darci PoquetteArgentina2026-05-03Chapman, Ross E Esq NEW18Xuxue Feng
1047Antonio CaudyRussia2026-05-04Chapman, Ross E Esq NEGOTIATION70Anna Fali
1048Alejandro PerinItaly2026-05-03Morlong Associates PROPOSAL21Ioni Bowcher
1049Salvatore StockhamArgentina2026-04-23Printing Dimensions UNQUALIFIED42Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczUnited KingdomOnyama Limba QUALIFIED
Arvin AlbaresSpainBernardo Dominic QUALIFIED
Antonio CaudyItalyAnna Fali QUALIFIED
Ashley DoeGermanyIvan Magalhaes UNQUALIFIED
Claire TollnerCanadaXuxue Feng NEW
Deepesh ChuiItalyAsiya Javayant NEW
Aruna FigeroaSpainXuxue Feng NEW
Johnson SergiAustraliaAmy Elsner RENEWAL
David DarakjyFranceOnyama Limba QUALIFIED
Francesco ShinkoItalyAmy Elsner PROPOSAL
Francesco ShinkoItalyStephen Shaw RENEWAL
Aditya KuskoSpainElwin Sharvill QUALIFIED
Aika InouyeCanadaStephen Shaw NEW
Faith GillianSpainStephen Shaw RENEWAL
Aruna FigeroaAustraliaBernardo Dominic PROPOSAL
Nicolas IturbideUnited KingdomAsiya Javayant NEW
Kaitlin OstroskyJapanStephen Shaw PROPOSAL
Juan WieserBrazilIvan Magalhaes PROPOSAL
Stacey MacleadRussiaOnyama Limba QUALIFIED
Murillo MaletIndiaBernardo Dominic NEW
Kadeem FlosiJapanAnna Fali NEGOTIATION
Jefferson SchemmerRussiaStephen Shaw NEGOTIATION
Chavez BriddickCanadaXuxue Feng UNQUALIFIED
Sinclair WaycottSpainElwin Sharvill NEW
Emily WhobreyAustraliaAsiya Javayant RENEWAL
Chavez BriddickUnited KingdomOnyama Limba PROPOSAL
David DarakjyBrazilStephen Shaw NEW
Kaitlin OstroskyCanadaIoni Bowcher PROPOSAL
Ivar PaprockiSpainIoni Bowcher NEW
Sinclair WaycottItalyIoni Bowcher UNQUALIFIED
James ButtIndiaAsiya Javayant RENEWAL
Greenwood BologniaItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaArgentinaOnyama Limba NEGOTIATION
Jeanfrancois VenereArgentinaBernardo Dominic NEW
Octavia MaletAustraliaStephen Shaw NEW
Jennifer AmigonCanadaAsiya Javayant NEW
Mayumi KolmetzIndiaAmy Elsner NEGOTIATION
Salvatore StockhamJapanAsiya Javayant RENEWAL
Isabel BowleyJapanXuxue Feng RENEWAL
Tony FollerGermanyIoni Bowcher NEGOTIATION
Cody SaylorsGermanyXuxue Feng UNQUALIFIED
Darci PoquetteSpainXuxue Feng NEW
Mayumi KolmetzRussiaBernardo Dominic PROPOSAL
Tony FollerArgentinaXuxue Feng UNQUALIFIED
Isabel BowleyAustraliaBernardo Dominic QUALIFIED
David DarakjyRussiaIoni Bowcher UNQUALIFIED
Alejandro PerinUnited KingdomXuxue Feng NEW
Alejandro PerinIndiaXuxue Feng NEW
Isabel BowleyRussiaAsiya Javayant NEW
Misaki RoysterArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Maisha Rulapaugh
Tony Foller
Salvatore Stockham
Nicolas Iturbide
Leja Caldarera
David Darakjy
Maisha Rulapaugh
Sinclair Waycott
Rodrigues Campain
Misaki Royster
Munro Ferencz
Arvin Albares
Aruna Figeroa
Aika Inouye
Ivar Paprocki
Adams Morasca
Mayumi Kolmetz
Leja Caldarera
Mayumi Kolmetz
Rodrigues Campain
Emily Whobrey
Aditya Kusko
Silvio Slusarski
Ashley Doe
Leja Caldarera
Juan Wieser
Clifford Rim
Maria Marrier
Jennifer Amigon
Faith Gillian
Wickens Nestle
Mujtaba Nicka
Maisha Rulapaugh
Aruna Figeroa
Francesco Shinko
Misaki Royster
Maria Marrier
Greenwood Bolognia
Tony Foller
Izzy Garufi
Juan Wieser
Ashley Doe
Aruna Figeroa
Jennifer Amigon
Smith Glick
Jefferson Schemmer
Mayumi Kolmetz
Morrow Ruta
Maria Marrier
David Darakjy
IdCountryDate
1000France2026-05-09
1001Canada2026-04-26
1002India2026-04-21
1003Spain2026-05-03
1004India2026-05-02
1005Germany2026-04-19
1006Argentina2026-04-13
1007France2026-04-20
1008Argentina2026-04-17
1009United Kingdom2026-04-27
1010Canada2026-04-15
1011India2026-04-21
1012India2026-04-17
1013Italy2026-04-23
1014Brazil2026-05-04
1015Italy2026-04-13
1016India2026-04-30
1017India2026-05-11
1018Australia2026-04-12
1019Russia2026-04-16
1020France2026-05-06
1021Japan2026-04-18
1022Spain2026-04-13
1023United Kingdom2026-04-17
1024United Kingdom2026-05-05
1025United Kingdom2026-05-01
1026Brazil2026-04-23
1027Italy2026-04-16
1028Spain2026-05-09
1029Spain2026-04-13
1030Italy2026-04-17
1031Australia2026-04-17
1032United Kingdom2026-04-26
1033France2026-04-25
1034Germany2026-05-02
1035Germany2026-04-17
1036Germany2026-05-02
1037Australia2026-04-27
1038Canada2026-04-22
1039Italy2026-04-18
1040Spain2026-04-27
1041France2026-05-04
1042Canada2026-04-29
1043Germany2026-05-09
1044Canada2026-04-18
1045Australia2026-04-20
1046Spain2026-05-09
1047Brazil2026-04-20
1048France2026-04-29
1049Italy2026-05-09

On-Demand Data

NameIdCountryDate
Aika Inouye1000Canada2026-04-29
Maisha Rulapaugh1001Italy2026-04-28
Kadeem Flosi1002United Kingdom2026-05-08
Kaitlin Ostrosky1003Japan2026-04-12
Smith Glick1004Japan2026-04-17
Deepesh Chui1005Germany2026-04-26
Clifford Rim1006Germany2026-04-20
Isabel Bowley1007Canada2026-05-08
Morrow Ruta1008Spain2026-05-06
Aruna Figeroa1009Brazil2026-04-21
Wickens Nestle1010Australia2026-05-10
Claire Tollner1011France2026-04-17
Leon Oldroyd1012United Kingdom2026-05-05
Aika Inouye1013Japan2026-05-03
Aruna Figeroa1014Canada2026-04-12
Deepesh Chui1015Canada2026-04-28
Faith Gillian1016Italy2026-04-30
Adams Morasca1017Spain2026-05-05
Aika Inouye1018Germany2026-04-17
Jeanfrancois Venere1019Japan2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoFranceXuxue Feng NEW
Murillo MaletAustraliaAmy Elsner PROPOSAL
Leja CaldareraRussiaIvan Magalhaes NEW
Emily WhobreyGermanyXuxue Feng UNQUALIFIED
Izzy GarufiArgentinaIvan Magalhaes UNQUALIFIED
Leon OldroydAustraliaAmy Elsner QUALIFIED
Leja CaldareraAustraliaIvan Magalhaes RENEWAL
Isabel BowleyArgentinaIvan Magalhaes QUALIFIED
Octavia MaletJapanOnyama Limba UNQUALIFIED
Maisha RulapaughFranceOnyama Limba QUALIFIED
Chavez BriddickRussiaStephen Shaw QUALIFIED
Alejandro PerinAustraliaBernardo Dominic NEW
Maria MarrierIndiaStephen Shaw QUALIFIED
Smith GlickUnited KingdomAmy Elsner QUALIFIED
Rodrigues CampainArgentinaBernardo Dominic NEW
Maisha RulapaughFranceBernardo Dominic RENEWAL
Aditya KuskoSpainOnyama Limba PROPOSAL
Stacey MacleadItalyXuxue Feng RENEWAL
Aruna FigeroaUnited KingdomAmy Elsner PROPOSAL
Claire TollnerAustraliaAsiya Javayant NEGOTIATION
Morrow RutaBrazilIoni Bowcher RENEWAL
Arvin AlbaresJapanElwin Sharvill QUALIFIED
Tony FollerBrazilStephen Shaw QUALIFIED
Sinclair WaycottJapanElwin Sharvill QUALIFIED
Adams MorascaGermanyAsiya Javayant UNQUALIFIED
Munro FerenczGermanyAmy Elsner RENEWAL
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Jennifer AmigonJapanAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomAnna Fali RENEWAL
Isabel BowleyBrazilAsiya Javayant QUALIFIED
Costa DilliardItalyBernardo Dominic RENEWAL
Alejandro PerinArgentinaXuxue Feng UNQUALIFIED
Kaitlin OstroskyCanadaOnyama Limba PROPOSAL
Izzy GarufiAustraliaIvan Magalhaes NEGOTIATION
Francesco ShinkoSpainAnna Fali QUALIFIED
Isabel BowleyAustraliaAnna Fali NEGOTIATION
Stacey MacleadArgentinaOnyama Limba PROPOSAL
Aditya KuskoIndiaElwin Sharvill RENEWAL
Alejandro PerinIndiaXuxue Feng PROPOSAL
Arvin AlbaresRussiaAsiya Javayant 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>