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
Aika InouyeUnited KingdomAnna Fali NEGOTIATION
Mayumi KolmetzFranceElwin Sharvill NEW
Arvin AlbaresItalyBernardo Dominic RENEWAL
Murillo MaletRussiaAmy Elsner NEGOTIATION
Costa DilliardAustraliaAsiya Javayant NEW
Jones VocelkaAustraliaIoni Bowcher UNQUALIFIED
Nicolas IturbideIndiaElwin Sharvill QUALIFIED
Leon OldroydBrazilIoni Bowcher RENEWAL
Munro FerenczSpainIvan Magalhaes PROPOSAL
Jefferson SchemmerArgentinaElwin Sharvill QUALIFIED
Adams MorascaBrazilAmy Elsner PROPOSAL
Maisha RulapaughUnited KingdomElwin Sharvill PROPOSAL
Salvatore StockhamRussiaOnyama Limba NEGOTIATION
Alejandro PerinRussiaIvan Magalhaes UNQUALIFIED
Salvatore StockhamRussiaAsiya Javayant PROPOSAL
Stacey MacleadCanadaOnyama Limba NEGOTIATION
James ButtItalyIvan Magalhaes NEW
Murillo MaletItalyAsiya Javayant QUALIFIED
Silvio SlusarskiIndiaIoni Bowcher NEGOTIATION
Cody SaylorsItalyIoni Bowcher PROPOSAL
Arvin AlbaresItalyBernardo Dominic PROPOSAL
Murillo MaletIndiaXuxue Feng PROPOSAL
Antonio CaudyGermanyAmy Elsner UNQUALIFIED
Ricardo GauchoIndiaIvan Magalhaes PROPOSAL
Faith GillianFranceXuxue Feng NEGOTIATION
Aika InouyeCanadaXuxue Feng PROPOSAL
Jefferson SchemmerItalyOnyama Limba QUALIFIED
Leja CaldareraUnited KingdomXuxue Feng PROPOSAL
Francesco ShinkoSpainElwin Sharvill NEW
Maria MarrierGermanyAnna Fali RENEWAL
Costa DilliardRussiaXuxue Feng NEW
Isabel BowleyIndiaAmy Elsner NEGOTIATION
Aika InouyeAustraliaIvan Magalhaes QUALIFIED
Rodrigues CampainCanadaStephen Shaw UNQUALIFIED
Jefferson SchemmerSpainXuxue Feng RENEWAL
Clifford RimGermanyOnyama Limba QUALIFIED
Murillo MaletFranceAmy Elsner PROPOSAL
Tony FollerAustraliaIoni Bowcher RENEWAL
Johnson SergiFranceElwin Sharvill NEW
Sinclair WaycottItalyElwin Sharvill QUALIFIED
Cody SaylorsRussiaAmy Elsner NEW
Munro FerenczCanadaStephen Shaw QUALIFIED
Maisha RulapaughFranceOnyama Limba RENEWAL
Claire TollnerCanadaIvan Magalhaes PROPOSAL
Jefferson SchemmerUnited KingdomAsiya Javayant RENEWAL
Octavia MaletItalyStephen Shaw PROPOSAL
Leja CaldareraUnited KingdomAsiya Javayant QUALIFIED
Antonio CaudyCanadaStephen Shaw NEGOTIATION
Izzy GarufiUnited KingdomAsiya Javayant NEGOTIATION
Mayumi KolmetzItalyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Aika InouyeCanadaAsiya Javayant QUALIFIED
David DarakjyItalyStephen Shaw UNQUALIFIED
Greenwood BologniaJapanBernardo Dominic NEW
Morrow RutaItalyAsiya Javayant UNQUALIFIED
Silvio SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Arvin AlbaresIndiaElwin Sharvill QUALIFIED
Aika InouyeAustraliaXuxue Feng PROPOSAL
Costa DilliardFranceStephen Shaw QUALIFIED
Murillo MaletUnited KingdomIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaItaly2026-06-06Feiner Bros UNQUALIFIED95Elwin Sharvill
1001Claire TollnerCanada2026-05-20Truhlar And Truhlar Attys NEGOTIATION60Anna Fali
1002Misaki RoysterFrance2026-05-31Dorl, James J Esq RENEWAL14Xuxue Feng
1003Mujtaba NickaRussia2026-05-25Commercial Press QUALIFIED77Ioni Bowcher
1004Faith GillianRussia2026-05-21King, Christopher A Esq PROPOSAL80Xuxue Feng
1005Salvatore StockhamItaly2026-05-30Morlong Associates QUALIFIED23Onyama Limba
1006Aditya KuskoBrazil2026-05-29King, Christopher A Esq NEGOTIATION47Ivan Magalhaes
1007Mayumi KolmetzCanada2026-06-14Chemel, James L Cpa NEGOTIATION99Bernardo Dominic
1008Izzy GarufiJapan2026-05-26Rangoni Of Florence NEW31Ivan Magalhaes
1009Claire TollnerIndia2026-05-30Benton, John B Jr NEW1Xuxue Feng
1010Jefferson SchemmerBrazil2026-06-14Feiner Bros QUALIFIED39Onyama Limba
1011Chavez BriddickSpain2026-05-23Rangoni Of Florence QUALIFIED60Stephen Shaw
1012James ButtIndia2026-06-01King, Christopher A Esq NEW32Elwin Sharvill
1013Tony FollerBrazil2026-06-07Feltz Printing Service UNQUALIFIED71Stephen Shaw
1014Costa DilliardAustralia2026-06-01Feltz Printing Service NEW93Ioni Bowcher
1015Wickens NestleAustralia2026-06-12Chemel, James L Cpa UNQUALIFIED99Amy Elsner
1016Ricardo GauchoIndia2026-05-22Chanay, Jeffrey A Esq PROPOSAL34Amy Elsner
1017Jeanfrancois VenereArgentina2026-06-04Chanay, Jeffrey A Esq NEGOTIATION59Xuxue Feng
1018Emily WhobreyIndia2026-05-24Chanay, Jeffrey A Esq QUALIFIED71Bernardo Dominic
1019Mujtaba NickaUnited Kingdom2026-06-16Benton, John B Jr PROPOSAL45Stephen Shaw
1020Emily WhobreySpain2026-05-24Chanay, Jeffrey A Esq QUALIFIED93Xuxue Feng
1021Arvin AlbaresSpain2026-05-24Benton, John B Jr QUALIFIED47Onyama Limba
1022Greenwood BologniaJapan2026-06-08Chapman, Ross E Esq UNQUALIFIED27Anna Fali
1023Jones VocelkaBrazil2026-05-21Feiner Bros QUALIFIED53Elwin Sharvill
1024Claire TollnerUnited Kingdom2026-05-25King, Christopher A Esq NEGOTIATION81Bernardo Dominic
1025Claire TollnerArgentina2026-05-27Printing Dimensions RENEWAL14Onyama Limba
1026Arvin AlbaresGermany2026-05-21Benton, John B Jr NEW78Amy Elsner
1027Arvin AlbaresItaly2026-05-19Buckley Miller Wright QUALIFIED60Onyama Limba
1028Leja CaldareraRussia2026-05-31Buckley Miller Wright QUALIFIED67Xuxue Feng
1029Faith GillianGermany2026-06-08Commercial Press QUALIFIED68Xuxue Feng
1030Claire TollnerCanada2026-06-05Morlong Associates RENEWAL48Xuxue Feng
1031Izzy GarufiJapan2026-05-19Feltz Printing Service UNQUALIFIED32Xuxue Feng
1032Antonio CaudyGermany2026-05-28Truhlar And Truhlar Attys PROPOSAL22Onyama Limba
1033Costa DilliardJapan2026-05-22Feiner Bros QUALIFIED0Onyama Limba
1034Claire TollnerItaly2026-05-27Feiner Bros UNQUALIFIED34Asiya Javayant
1035Costa DilliardGermany2026-06-08Commercial Press NEGOTIATION10Asiya Javayant
1036Octavia MaletRussia2026-05-23Rangoni Of Florence PROPOSAL96Anna Fali
1037Aika InouyeSpain2026-05-28Commercial Press PROPOSAL49Ivan Magalhaes
1038Jefferson SchemmerCanada2026-05-24Commercial Press RENEWAL95Stephen Shaw
1039Maisha RulapaughItaly2026-05-22Feiner Bros NEGOTIATION6Elwin Sharvill
1040Octavia MaletSpain2026-06-08Commercial Press QUALIFIED46Onyama Limba
1041Julie StensethCanada2026-05-29Buckley Miller Wright NEW25Xuxue Feng
1042Stacey MacleadItaly2026-05-30Printing Dimensions NEGOTIATION10Stephen Shaw
1043Aditya KuskoCanada2026-05-27Buckley Miller Wright NEGOTIATION22Ivan Magalhaes
1044Smith GlickItaly2026-06-13Benton, John B Jr RENEWAL15Elwin Sharvill
1045Jones VocelkaFrance2026-05-23Chemel, James L Cpa QUALIFIED34Onyama Limba
1046Wickens NestleUnited Kingdom2026-06-14Feltz Printing Service QUALIFIED95Onyama Limba
1047Silvio SlusarskiIndia2026-05-28King, Christopher A Esq PROPOSAL83Anna Fali
1048Jones VocelkaFrance2026-06-06Benton, John B Jr NEW79Anna Fali
1049Antonio CaudyJapan2026-05-20Dorl, James J Esq NEW85Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadCanadaIoni Bowcher QUALIFIED
Juan WieserAustraliaOnyama Limba NEW
Misaki RoysterUnited KingdomStephen Shaw RENEWAL
Ricardo GauchoCanadaElwin Sharvill UNQUALIFIED
Mayumi KolmetzGermanyIvan Magalhaes RENEWAL
Wickens NestleJapanAsiya Javayant NEW
Emily WhobreyArgentinaElwin Sharvill NEGOTIATION
Munro FerenczFranceStephen Shaw UNQUALIFIED
Mujtaba NickaFranceXuxue Feng NEGOTIATION
Jennifer AmigonCanadaXuxue Feng RENEWAL
Maria MarrierAustraliaIvan Magalhaes NEW
Izzy GarufiSpainIvan Magalhaes RENEWAL
Jeanfrancois VenereBrazilAsiya Javayant NEW
James ButtIndiaXuxue Feng UNQUALIFIED
Francesco ShinkoArgentinaAsiya Javayant NEGOTIATION
Aditya KuskoArgentinaOnyama Limba PROPOSAL
David DarakjyArgentinaStephen Shaw RENEWAL
Claire TollnerCanadaIoni Bowcher PROPOSAL
Leon OldroydRussiaStephen Shaw NEW
Julie StensethBrazilXuxue Feng PROPOSAL
Maisha RulapaughArgentinaOnyama Limba RENEWAL
Emily WhobreyUnited KingdomIvan Magalhaes NEW
Leja CaldareraBrazilBernardo Dominic QUALIFIED
Ashley DoeBrazilBernardo Dominic NEW
David DarakjyIndiaBernardo Dominic RENEWAL
Murillo MaletSpainAnna Fali QUALIFIED
Ivar PaprockiRussiaBernardo Dominic NEW
Francesco ShinkoCanadaIoni Bowcher RENEWAL
Juan WieserFranceIvan Magalhaes PROPOSAL
Salvatore StockhamAustraliaOnyama Limba PROPOSAL
Silvio SlusarskiSpainBernardo Dominic NEW
David DarakjyJapanStephen Shaw RENEWAL
Johnson SergiRussiaIvan Magalhaes RENEWAL
Julie StensethRussiaXuxue Feng NEW
Ashley DoeArgentinaElwin Sharvill PROPOSAL
Salvatore StockhamIndiaAsiya Javayant UNQUALIFIED
James ButtBrazilXuxue Feng NEW
Julie StensethGermanyAnna Fali NEGOTIATION
Cody SaylorsArgentinaXuxue Feng NEW
Greenwood BologniaSpainOnyama Limba PROPOSAL
Emily WhobreySpainBernardo Dominic RENEWAL
David DarakjyCanadaBernardo Dominic NEGOTIATION
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Greenwood BologniaJapanIoni Bowcher NEW
Leja CaldareraRussiaIvan Magalhaes QUALIFIED
Aditya KuskoBrazilElwin Sharvill UNQUALIFIED
Maria MarrierGermanyAsiya Javayant PROPOSAL
Aruna FigeroaIndiaBernardo Dominic PROPOSAL
Juan WieserItalyAnna Fali RENEWAL
Maria MarrierGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Greenwood Bolognia
Claire Tollner
Leja Caldarera
Cody Saylors
Ricardo Gaucho
Jones Vocelka
Leja Caldarera
Greenwood Bolognia
Kadeem Flosi
Leja Caldarera
Ashley Doe
Leon Oldroyd
Leja Caldarera
Jennifer Amigon
Johnson Sergi
Greenwood Bolognia
Greenwood Bolognia
David Darakjy
Aruna Figeroa
Izzy Garufi
Emily Whobrey
Faith Gillian
Jeanfrancois Venere
Juan Wieser
Sinclair Waycott
Ivar Paprocki
Aika Inouye
Costa Dilliard
Costa Dilliard
Deepesh Chui
Mayumi Kolmetz
Mayumi Kolmetz
Maria Marrier
Arvin Albares
Faith Gillian
Morrow Ruta
Cody Saylors
Faith Gillian
Munro Ferencz
Ivar Paprocki
Adams Morasca
Morrow Ruta
Jennifer Amigon
Silvio Slusarski
Costa Dilliard
Ivar Paprocki
Greenwood Bolognia
Murillo Malet
Julie Stenseth
Salvatore Stockham
IdCountryDate
1000India2026-06-04
1001Spain2026-05-27
1002France2026-06-16
1003Spain2026-05-29
1004Russia2026-05-22
1005India2026-06-03
1006France2026-05-25
1007Russia2026-06-09
1008France2026-05-29
1009India2026-06-13
1010Brazil2026-05-19
1011Spain2026-06-04
1012Brazil2026-05-21
1013Spain2026-05-27
1014Germany2026-06-04
1015Argentina2026-06-08
1016Russia2026-06-14
1017India2026-05-27
1018Germany2026-06-12
1019Brazil2026-05-28
1020Brazil2026-05-26
1021Germany2026-06-11
1022Brazil2026-06-06
1023France2026-06-03
1024Germany2026-05-25
1025Brazil2026-06-06
1026Japan2026-05-21
1027Japan2026-06-11
1028India2026-06-04
1029United Kingdom2026-05-21
1030Canada2026-05-29
1031Italy2026-06-03
1032Italy2026-06-04
1033Argentina2026-06-15
1034Italy2026-06-01
1035India2026-05-25
1036Canada2026-06-09
1037Russia2026-06-02
1038Japan2026-06-01
1039France2026-05-29
1040Germany2026-05-30
1041United Kingdom2026-06-08
1042Japan2026-06-16
1043Japan2026-05-29
1044Brazil2026-05-26
1045India2026-05-20
1046Brazil2026-06-14
1047Canada2026-05-30
1048United Kingdom2026-05-31
1049France2026-06-06

On-Demand Data

NameIdCountryDate
Johnson Sergi1000India2026-05-29
Aruna Figeroa1001Australia2026-05-31
Greenwood Bolognia1002Australia2026-06-07
Antonio Caudy1003Canada2026-05-30
Leon Oldroyd1004Russia2026-05-31
Ashley Doe1005Canada2026-06-17
Ricardo Gaucho1006Canada2026-06-02
Isabel Bowley1007Russia2026-05-24
Leon Oldroyd1008India2026-06-15
Maisha Rulapaugh1009Brazil2026-06-03
Rodrigues Campain1010India2026-05-31
James Butt1011United Kingdom2026-06-07
Tony Foller1012India2026-06-06
Adams Morasca1013France2026-05-19
Silvio Slusarski1014Russia2026-05-22
Arvin Albares1015France2026-06-03
Claire Tollner1016Spain2026-06-03
Faith Gillian1017United Kingdom2026-06-13
Stacey Maclead1018Italy2026-06-07
Aika Inouye1019Germany2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzRussiaIoni Bowcher NEW
David DarakjyGermanyIoni Bowcher PROPOSAL
Mayumi KolmetzIndiaOnyama Limba RENEWAL
Juan WieserSpainXuxue Feng RENEWAL
Murillo MaletGermanyAmy Elsner UNQUALIFIED
Chavez BriddickIndiaXuxue Feng NEW
Misaki RoysterCanadaXuxue Feng QUALIFIED
Aditya KuskoJapanBernardo Dominic RENEWAL
Izzy GarufiRussiaAmy Elsner PROPOSAL
Maisha RulapaughUnited KingdomAnna Fali PROPOSAL
James ButtRussiaIoni Bowcher RENEWAL
Costa DilliardUnited KingdomAsiya Javayant NEGOTIATION
Jennifer AmigonIndiaElwin Sharvill PROPOSAL
Mayumi KolmetzBrazilXuxue Feng PROPOSAL
Aruna FigeroaFranceXuxue Feng NEW
Kadeem FlosiSpainElwin Sharvill UNQUALIFIED
Deepesh ChuiArgentinaXuxue Feng UNQUALIFIED
Arvin AlbaresIndiaIoni Bowcher RENEWAL
Clifford RimUnited KingdomIoni Bowcher RENEWAL
Jefferson SchemmerCanadaElwin Sharvill QUALIFIED
Smith GlickIndiaAsiya Javayant NEGOTIATION
Clifford RimBrazilAnna Fali NEW
David DarakjyJapanBernardo Dominic NEW
David DarakjyGermanyIoni Bowcher NEW
Ashley DoeItalyXuxue Feng NEW
Costa DilliardItalyXuxue Feng PROPOSAL
Clifford RimJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereIndiaXuxue Feng RENEWAL
David DarakjyItalyAsiya Javayant PROPOSAL
Silvio SlusarskiItalyAmy Elsner NEW
Julie StensethRussiaXuxue Feng RENEWAL
Arvin AlbaresArgentinaElwin Sharvill NEGOTIATION
Sinclair WaycottRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamUnited KingdomBernardo Dominic PROPOSAL
Smith GlickArgentinaOnyama Limba QUALIFIED
James ButtAustraliaAnna Fali PROPOSAL
Claire TollnerIndiaAmy Elsner QUALIFIED
Alejandro PerinJapanBernardo Dominic QUALIFIED
Ivar PaprockiCanadaAnna Fali NEGOTIATION
Ricardo GauchoRussiaIvan Magalhaes 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>