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
Stacey MacleadCanadaBernardo Dominic RENEWAL
Cody SaylorsRussiaOnyama Limba QUALIFIED
Kaitlin OstroskyGermanyElwin Sharvill PROPOSAL
Sinclair WaycottItalyOnyama Limba NEW
Emily WhobreySpainElwin Sharvill NEW
Smith GlickGermanyAsiya Javayant RENEWAL
Mujtaba NickaGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoCanadaAnna Fali NEGOTIATION
Ashley DoeFranceIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyCanadaAsiya Javayant NEW
Greenwood BologniaArgentinaIvan Magalhaes NEGOTIATION
Juan WieserBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois VenereRussiaBernardo Dominic RENEWAL
Salvatore StockhamSpainAmy Elsner UNQUALIFIED
Aditya KuskoBrazilAsiya Javayant NEW
Ricardo GauchoCanadaBernardo Dominic QUALIFIED
Greenwood BologniaIndiaBernardo Dominic UNQUALIFIED
Emily WhobreyRussiaAnna Fali NEW
Mujtaba NickaRussiaBernardo Dominic NEW
Cody SaylorsAustraliaStephen Shaw RENEWAL
Salvatore StockhamArgentinaAsiya Javayant PROPOSAL
Silvio SlusarskiIndiaIoni Bowcher NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba NEGOTIATION
Murillo MaletGermanyAsiya Javayant QUALIFIED
Salvatore StockhamAustraliaOnyama Limba RENEWAL
Misaki RoysterRussiaAsiya Javayant QUALIFIED
Greenwood BologniaCanadaIvan Magalhaes QUALIFIED
Claire TollnerFranceIoni Bowcher NEGOTIATION
Leja CaldareraIndiaOnyama Limba NEGOTIATION
Misaki RoysterJapanBernardo Dominic PROPOSAL
Wickens NestleItalyAnna Fali QUALIFIED
Maria MarrierSpainStephen Shaw NEW
Jones VocelkaArgentinaXuxue Feng QUALIFIED
Stacey MacleadItalyElwin Sharvill NEW
Johnson SergiJapanIvan Magalhaes PROPOSAL
Deepesh ChuiSpainElwin Sharvill NEW
Octavia MaletIndiaBernardo Dominic PROPOSAL
Jeanfrancois VenereItalyOnyama Limba RENEWAL
Clifford RimArgentinaIvan Magalhaes QUALIFIED
Morrow RutaRussiaBernardo Dominic UNQUALIFIED
Misaki RoysterRussiaAnna Fali NEGOTIATION
David DarakjyItalyIoni Bowcher NEW
Mujtaba NickaAustraliaBernardo Dominic RENEWAL
Tony FollerFranceOnyama Limba NEGOTIATION
Antonio CaudySpainBernardo Dominic RENEWAL
Greenwood BologniaGermanyAmy Elsner NEGOTIATION
Ivar PaprockiCanadaXuxue Feng RENEWAL
Greenwood BologniaUnited KingdomIoni Bowcher NEW
Aruna FigeroaRussiaStephen Shaw NEGOTIATION
Kadeem FlosiRussiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan WieserBrazilAmy Elsner NEGOTIATION
Costa DilliardUnited KingdomAnna Fali PROPOSAL
Clifford RimAustraliaIoni Bowcher PROPOSAL
Claire TollnerIndiaIoni Bowcher NEW
Leon OldroydBrazilXuxue Feng UNQUALIFIED
Arvin AlbaresBrazilOnyama Limba QUALIFIED
Alejandro PerinAustraliaIvan Magalhaes PROPOSAL
Cody SaylorsIndiaAsiya Javayant RENEWAL
Silvio SlusarskiFranceIoni Bowcher RENEWAL
Emily WhobreyBrazilIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottJapan2026-05-10Benton, John B Jr PROPOSAL24Stephen Shaw
1001Maisha RulapaughItaly2026-05-01Commercial Press NEW64Amy Elsner
1002Ricardo GauchoGermany2026-05-01Printing Dimensions RENEWAL42Ioni Bowcher
1003Jones VocelkaItaly2026-05-27Dorl, James J Esq QUALIFIED34Xuxue Feng
1004Rodrigues CampainAustralia2026-05-29Commercial Press PROPOSAL89Asiya Javayant
1005Maisha RulapaughArgentina2026-05-18Chemel, James L Cpa NEGOTIATION43Anna Fali
1006Ricardo GauchoCanada2026-05-28Chemel, James L Cpa QUALIFIED52Ioni Bowcher
1007Deepesh ChuiArgentina2026-05-11Rousseaux, Michael Esq UNQUALIFIED12Asiya Javayant
1008Isabel BowleyArgentina2026-05-23King, Christopher A Esq NEGOTIATION29Anna Fali
1009Faith GillianIndia2026-05-20Morlong Associates NEGOTIATION15Amy Elsner
1010Leja CaldareraUnited Kingdom2026-05-20Feltz Printing Service RENEWAL2Amy Elsner
1011Johnson SergiSpain2026-05-13Buckley Miller Wright QUALIFIED94Asiya Javayant
1012Munro FerenczBrazil2026-05-10Feiner Bros PROPOSAL0Amy Elsner
1013Maria MarrierGermany2026-05-15Chemel, James L Cpa QUALIFIED49Ivan Magalhaes
1014Ivar PaprockiRussia2026-05-03Chemel, James L Cpa UNQUALIFIED26Elwin Sharvill
1015Greenwood BologniaRussia2026-05-26Chapman, Ross E Esq QUALIFIED93Ivan Magalhaes
1016Arvin AlbaresIndia2026-05-24Chanay, Jeffrey A Esq RENEWAL54Ivan Magalhaes
1017Smith GlickItaly2026-05-16Chanay, Jeffrey A Esq NEW65Ioni Bowcher
1018Chavez BriddickAustralia2026-05-19Commercial Press NEW65Xuxue Feng
1019Sinclair WaycottArgentina2026-05-04Chemel, James L Cpa RENEWAL11Ivan Magalhaes
1020Costa DilliardArgentina2026-05-19Feltz Printing Service NEW82Stephen Shaw
1021Ashley DoeArgentina2026-05-05Commercial Press QUALIFIED36Anna Fali
1022Smith GlickAustralia2026-05-20Morlong Associates PROPOSAL99Xuxue Feng
1023Octavia MaletCanada2026-05-28Chemel, James L Cpa NEW80Anna Fali
1024Sinclair WaycottCanada2026-05-18Morlong Associates QUALIFIED87Ivan Magalhaes
1025Silvio SlusarskiAustralia2026-05-21Rousseaux, Michael Esq RENEWAL53Anna Fali
1026Costa DilliardAustralia2026-05-30Chanay, Jeffrey A Esq QUALIFIED49Amy Elsner
1027Ashley DoeSpain2026-05-21Chapman, Ross E Esq NEW77Onyama Limba
1028Isabel BowleyItaly2026-05-28Chanay, Jeffrey A Esq PROPOSAL61Amy Elsner
1029Octavia MaletIndia2026-05-19Printing Dimensions RENEWAL97Anna Fali
1030Juan WieserBrazil2026-05-12Benton, John B Jr RENEWAL59Ivan Magalhaes
1031Tony FollerJapan2026-05-16Truhlar And Truhlar Attys UNQUALIFIED76Ioni Bowcher
1032Mayumi KolmetzFrance2026-05-05Feiner Bros UNQUALIFIED25Bernardo Dominic
1033Mujtaba NickaJapan2026-05-01Rangoni Of Florence NEW18Ioni Bowcher
1034Maisha RulapaughUnited Kingdom2026-05-14Feiner Bros RENEWAL45Bernardo Dominic
1035Julie StensethUnited Kingdom2026-05-28Chanay, Jeffrey A Esq QUALIFIED1Anna Fali
1036Ivar PaprockiAustralia2026-05-29Chapman, Ross E Esq RENEWAL69Anna Fali
1037Izzy GarufiFrance2026-05-23Feiner Bros QUALIFIED35Onyama Limba
1038Adams MorascaFrance2026-05-10Printing Dimensions NEGOTIATION16Bernardo Dominic
1039Maria MarrierAustralia2026-05-28Benton, John B Jr RENEWAL84Amy Elsner
1040Wickens NestleCanada2026-05-08Chapman, Ross E Esq PROPOSAL99Onyama Limba
1041Jefferson SchemmerGermany2026-05-18Feltz Printing Service RENEWAL24Anna Fali
1042Ivar PaprockiBrazil2026-05-23Truhlar And Truhlar Attys RENEWAL52Elwin Sharvill
1043Aika InouyeAustralia2026-05-02Commercial Press QUALIFIED77Stephen Shaw
1044Jones VocelkaCanada2026-05-19Commercial Press NEW95Amy Elsner
1045Sinclair WaycottSpain2026-05-16Chanay, Jeffrey A Esq QUALIFIED80Stephen Shaw
1046Stacey MacleadFrance2026-05-04Rousseaux, Michael Esq NEW6Asiya Javayant
1047Stacey MacleadGermany2026-05-11Benton, John B Jr NEGOTIATION71Onyama Limba
1048Emily WhobreyFrance2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED50Bernardo Dominic
1049Arvin AlbaresRussia2026-05-26Chapman, Ross E Esq QUALIFIED79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiIndiaAsiya Javayant RENEWAL
Silvio SlusarskiCanadaIvan Magalhaes PROPOSAL
David DarakjyGermanyAnna Fali PROPOSAL
Aditya KuskoJapanAmy Elsner QUALIFIED
Octavia MaletItalyAmy Elsner PROPOSAL
Octavia MaletAustraliaIvan Magalhaes NEW
Costa DilliardFranceBernardo Dominic PROPOSAL
Aditya KuskoFranceOnyama Limba RENEWAL
Nicolas IturbideRussiaElwin Sharvill PROPOSAL
Jeanfrancois VenereBrazilAmy Elsner NEGOTIATION
Silvio SlusarskiSpainAnna Fali PROPOSAL
Jennifer AmigonBrazilBernardo Dominic RENEWAL
Jennifer AmigonSpainOnyama Limba PROPOSAL
Kadeem FlosiUnited KingdomElwin Sharvill NEGOTIATION
Johnson SergiIndiaAmy Elsner QUALIFIED
Deepesh ChuiItalyStephen Shaw QUALIFIED
Maria MarrierBrazilElwin Sharvill PROPOSAL
Nicolas IturbideArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois VenereRussiaAnna Fali NEW
Greenwood BologniaJapanBernardo Dominic PROPOSAL
Rodrigues CampainSpainOnyama Limba UNQUALIFIED
James ButtCanadaBernardo Dominic NEW
Munro FerenczJapanXuxue Feng RENEWAL
Tony FollerGermanyStephen Shaw QUALIFIED
Antonio CaudyItalyOnyama Limba QUALIFIED
Costa DilliardGermanyAnna Fali QUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba NEGOTIATION
Misaki RoysterGermanyAmy Elsner RENEWAL
Mayumi KolmetzRussiaXuxue Feng NEW
Costa DilliardItalyElwin Sharvill QUALIFIED
Francesco ShinkoUnited KingdomBernardo Dominic QUALIFIED
Murillo MaletJapanBernardo Dominic QUALIFIED
Sinclair WaycottSpainStephen Shaw RENEWAL
Octavia MaletUnited KingdomIoni Bowcher NEGOTIATION
Greenwood BologniaJapanOnyama Limba NEGOTIATION
Alejandro PerinBrazilBernardo Dominic QUALIFIED
Aditya KuskoJapanIvan Magalhaes UNQUALIFIED
Claire TollnerJapanIvan Magalhaes QUALIFIED
Greenwood BologniaArgentinaOnyama Limba UNQUALIFIED
Maria MarrierRussiaStephen Shaw NEW
Munro FerenczFranceIoni Bowcher QUALIFIED
Arvin AlbaresJapanAsiya Javayant RENEWAL
James ButtArgentinaIvan Magalhaes RENEWAL
Alejandro PerinRussiaIvan Magalhaes NEW
Maria MarrierRussiaAmy Elsner NEW
Johnson SergiFranceIoni Bowcher QUALIFIED
Johnson SergiRussiaAmy Elsner NEW
Mujtaba NickaFranceStephen Shaw NEGOTIATION
Misaki RoysterGermanyOnyama Limba NEGOTIATION
Jefferson SchemmerJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Sinclair Waycott
Maria Marrier
Francesco Shinko
Aditya Kusko
Clifford Rim
Leja Caldarera
Salvatore Stockham
Tony Foller
Chavez Briddick
Munro Ferencz
David Darakjy
Antonio Caudy
Aika Inouye
Aika Inouye
Johnson Sergi
Munro Ferencz
Aditya Kusko
Chavez Briddick
Isabel Bowley
Costa Dilliard
Octavia Malet
Leja Caldarera
Arvin Albares
Octavia Malet
Octavia Malet
Clifford Rim
Ashley Doe
Jefferson Schemmer
Stacey Maclead
Julie Stenseth
Chavez Briddick
Clifford Rim
Antonio Caudy
Mujtaba Nicka
Rodrigues Campain
Misaki Royster
Juan Wieser
Claire Tollner
Murillo Malet
Darci Poquette
Clifford Rim
Greenwood Bolognia
Antonio Caudy
Nicolas Iturbide
James Butt
Costa Dilliard
James Butt
Adams Morasca
Aika Inouye
Maria Marrier
IdCountryDate
1000Spain2026-05-29
1001United Kingdom2026-05-20
1002Argentina2026-05-01
1003Argentina2026-05-08
1004Italy2026-05-22
1005Germany2026-05-26
1006Japan2026-05-10
1007Canada2026-05-05
1008United Kingdom2026-05-19
1009Australia2026-05-27
1010Australia2026-05-03
1011Canada2026-05-02
1012Argentina2026-05-29
1013India2026-05-06
1014Russia2026-05-11
1015Russia2026-05-29
1016Germany2026-05-11
1017Japan2026-05-16
1018Brazil2026-05-07
1019Italy2026-05-06
1020Germany2026-05-02
1021Russia2026-05-11
1022Argentina2026-05-11
1023Japan2026-05-27
1024Brazil2026-05-17
1025France2026-05-21
1026Spain2026-05-12
1027Germany2026-05-29
1028France2026-05-24
1029France2026-05-09
1030United Kingdom2026-05-09
1031Argentina2026-05-25
1032Canada2026-05-19
1033Russia2026-05-03
1034Russia2026-05-14
1035Italy2026-05-13
1036India2026-05-30
1037Spain2026-05-25
1038Canada2026-05-21
1039Canada2026-05-20
1040Argentina2026-05-04
1041India2026-05-29
1042Argentina2026-05-10
1043France2026-05-08
1044India2026-05-07
1045Argentina2026-05-15
1046Brazil2026-05-07
1047Italy2026-05-15
1048Australia2026-05-19
1049Italy2026-05-20

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Argentina2026-05-21
David Darakjy1001Canada2026-05-21
Aruna Figeroa1002Brazil2026-05-23
Darci Poquette1003United Kingdom2026-05-04
Leon Oldroyd1004Argentina2026-05-25
Claire Tollner1005Spain2026-05-10
Octavia Malet1006France2026-05-10
Kaitlin Ostrosky1007Argentina2026-05-17
Jeanfrancois Venere1008India2026-05-02
Faith Gillian1009Spain2026-05-01
Adams Morasca1010Canada2026-05-11
Kadeem Flosi1011United Kingdom2026-05-23
James Butt1012Russia2026-05-25
Adams Morasca1013Argentina2026-05-24
Leja Caldarera1014Spain2026-05-19
Jefferson Schemmer1015Italy2026-05-17
Silvio Slusarski1016Japan2026-05-14
Sinclair Waycott1017Germany2026-05-28
Darci Poquette1018Japan2026-05-23
Mujtaba Nicka1019Argentina2026-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinJapanElwin Sharvill QUALIFIED
Silvio SlusarskiFranceOnyama Limba NEGOTIATION
David DarakjyBrazilIoni Bowcher NEW
Isabel BowleyCanadaAnna Fali NEW
Tony FollerIndiaOnyama Limba NEGOTIATION
Jennifer AmigonAustraliaBernardo Dominic NEW
Emily WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Cody SaylorsGermanyXuxue Feng UNQUALIFIED
Deepesh ChuiArgentinaElwin Sharvill NEW
Chavez BriddickSpainOnyama Limba NEW
Emily WhobreyIndiaIvan Magalhaes PROPOSAL
Salvatore StockhamSpainIoni Bowcher RENEWAL
Leja CaldareraCanadaAmy Elsner NEW
Aditya KuskoBrazilIvan Magalhaes NEGOTIATION
Stacey MacleadJapanIvan Magalhaes UNQUALIFIED
Aruna FigeroaGermanyStephen Shaw NEGOTIATION
Cody SaylorsFranceAsiya Javayant NEGOTIATION
Salvatore StockhamCanadaElwin Sharvill NEW
Octavia MaletGermanyXuxue Feng NEGOTIATION
Clifford RimAustraliaIvan Magalhaes PROPOSAL
Kadeem FlosiCanadaStephen Shaw QUALIFIED
Munro FerenczSpainElwin Sharvill RENEWAL
Adams MorascaRussiaBernardo Dominic RENEWAL
Arvin AlbaresAustraliaAnna Fali NEW
Faith GillianFranceXuxue Feng QUALIFIED
Murillo MaletGermanyAsiya Javayant RENEWAL
Wickens NestleCanadaStephen Shaw PROPOSAL
Costa DilliardJapanXuxue Feng NEW
Faith GillianGermanyAmy Elsner RENEWAL
Stacey MacleadFranceAnna Fali UNQUALIFIED
Jeanfrancois VenereIndiaAnna Fali QUALIFIED
Misaki RoysterItalyIvan Magalhaes RENEWAL
Kadeem FlosiAustraliaStephen Shaw NEW
Jeanfrancois VenereFranceStephen Shaw NEGOTIATION
Aika InouyeBrazilElwin Sharvill PROPOSAL
Julie StensethBrazilAnna Fali NEGOTIATION
Sinclair WaycottBrazilOnyama Limba NEGOTIATION
Tony FollerAustraliaAmy Elsner QUALIFIED
Faith GillianUnited KingdomOnyama Limba UNQUALIFIED
Aika InouyeCanadaOnyama Limba 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>