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
Isabel BowleyGermanyAnna Fali UNQUALIFIED
Aruna FigeroaCanadaIoni Bowcher PROPOSAL
Izzy GarufiJapanIoni Bowcher NEGOTIATION
Sinclair WaycottFranceAmy Elsner NEGOTIATION
Juan WieserSpainBernardo Dominic NEGOTIATION
Arvin AlbaresGermanyElwin Sharvill QUALIFIED
Julie StensethIndiaAnna Fali QUALIFIED
Costa DilliardUnited KingdomStephen Shaw PROPOSAL
Ivar PaprockiCanadaAmy Elsner PROPOSAL
Cody SaylorsIndiaIvan Magalhaes QUALIFIED
James ButtItalyBernardo Dominic NEGOTIATION
Wickens NestleIndiaStephen Shaw UNQUALIFIED
Juan WieserAustraliaAnna Fali NEW
Mayumi KolmetzSpainXuxue Feng QUALIFIED
Francesco ShinkoSpainIvan Magalhaes RENEWAL
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Costa DilliardJapanOnyama Limba NEGOTIATION
Morrow RutaItalyAnna Fali RENEWAL
Alejandro PerinCanadaAmy Elsner NEW
David DarakjyFranceXuxue Feng QUALIFIED
Ricardo GauchoFranceIoni Bowcher NEW
Aika InouyeItalyOnyama Limba NEW
Misaki RoysterCanadaOnyama Limba NEGOTIATION
Cody SaylorsCanadaAmy Elsner QUALIFIED
Francesco ShinkoAustraliaStephen Shaw NEW
Isabel BowleyUnited KingdomElwin Sharvill NEGOTIATION
Juan WieserIndiaIvan Magalhaes NEW
Darci PoquetteArgentinaElwin Sharvill QUALIFIED
Deepesh ChuiIndiaIvan Magalhaes QUALIFIED
Emily WhobreyItalyXuxue Feng QUALIFIED
Chavez BriddickAustraliaOnyama Limba NEGOTIATION
Rodrigues CampainJapanElwin Sharvill RENEWAL
Chavez BriddickItalyOnyama Limba PROPOSAL
Darci PoquetteJapanBernardo Dominic NEGOTIATION
Smith GlickRussiaElwin Sharvill NEGOTIATION
Greenwood BologniaSpainBernardo Dominic NEGOTIATION
Octavia MaletGermanyBernardo Dominic UNQUALIFIED
Claire TollnerJapanAnna Fali PROPOSAL
Maria MarrierGermanyIoni Bowcher PROPOSAL
Clifford RimGermanyStephen Shaw RENEWAL
Munro FerenczRussiaIvan Magalhaes UNQUALIFIED
Chavez BriddickFranceIoni Bowcher NEW
Adams MorascaFranceBernardo Dominic NEGOTIATION
Chavez BriddickBrazilXuxue Feng NEW
Ashley DoeJapanIoni Bowcher QUALIFIED
Cody SaylorsFranceStephen Shaw RENEWAL
Mujtaba NickaItalyAmy Elsner QUALIFIED
Munro FerenczCanadaOnyama Limba RENEWAL
Julie StensethAustraliaAnna Fali NEW
Aika InouyeCanadaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Isabel BowleyGermanyAmy Elsner UNQUALIFIED
Francesco ShinkoCanadaElwin Sharvill NEGOTIATION
Jennifer AmigonSpainElwin Sharvill QUALIFIED
Morrow RutaJapanXuxue Feng NEW
Johnson SergiAustraliaBernardo Dominic RENEWAL
Mayumi KolmetzCanadaAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomAnna Fali RENEWAL
Francesco ShinkoIndiaOnyama Limba UNQUALIFIED
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Cody SaylorsItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiAustralia2026-06-11Chemel, James L Cpa NEGOTIATION80Xuxue Feng
1001Aika InouyeRussia2026-06-03Feltz Printing Service PROPOSAL83Amy Elsner
1002Arvin AlbaresIndia2026-06-11Printing Dimensions PROPOSAL52Asiya Javayant
1003Chavez BriddickJapan2026-05-28Dorl, James J Esq NEW96Anna Fali
1004Mujtaba NickaAustralia2026-06-01Benton, John B Jr PROPOSAL65Elwin Sharvill
1005Aditya KuskoSpain2026-06-05Benton, John B Jr UNQUALIFIED21Asiya Javayant
1006Kadeem FlosiFrance2026-06-09Dorl, James J Esq UNQUALIFIED64Ivan Magalhaes
1007David DarakjyItaly2026-06-01Commercial Press NEW57Stephen Shaw
1008Smith GlickJapan2026-06-14Chanay, Jeffrey A Esq RENEWAL14Bernardo Dominic
1009Mayumi KolmetzRussia2026-05-27Commercial Press QUALIFIED90Elwin Sharvill
1010Jones VocelkaUnited Kingdom2026-05-28Commercial Press QUALIFIED1Stephen Shaw
1011Jefferson SchemmerCanada2026-06-07Benton, John B Jr NEGOTIATION25Xuxue Feng
1012Alejandro PerinJapan2026-06-16Chemel, James L Cpa UNQUALIFIED11Onyama Limba
1013Aruna FigeroaGermany2026-06-01Chapman, Ross E Esq NEGOTIATION91Anna Fali
1014Juan WieserSpain2026-05-28King, Christopher A Esq NEGOTIATION80Elwin Sharvill
1015Morrow RutaGermany2026-06-08King, Christopher A Esq QUALIFIED99Elwin Sharvill
1016Chavez BriddickArgentina2026-06-10Truhlar And Truhlar Attys QUALIFIED48Asiya Javayant
1017Maisha RulapaughBrazil2026-06-09Feltz Printing Service NEW27Stephen Shaw
1018David DarakjyRussia2026-05-25Rangoni Of Florence UNQUALIFIED87Xuxue Feng
1019Alejandro PerinItaly2026-06-17Printing Dimensions RENEWAL45Stephen Shaw
1020Sinclair WaycottCanada2026-05-23Morlong Associates RENEWAL37Elwin Sharvill
1021Munro FerenczCanada2026-06-04Benton, John B Jr NEW29Elwin Sharvill
1022James ButtArgentina2026-06-17Chemel, James L Cpa NEW78Xuxue Feng
1023Izzy GarufiJapan2026-05-25Dorl, James J Esq QUALIFIED79Elwin Sharvill
1024Maria MarrierRussia2026-05-25Dorl, James J Esq RENEWAL71Ivan Magalhaes
1025Silvio SlusarskiGermany2026-06-08Rangoni Of Florence NEW85Xuxue Feng
1026Francesco ShinkoAustralia2026-06-13Chemel, James L Cpa NEW97Anna Fali
1027Smith GlickBrazil2026-05-31Dorl, James J Esq NEW58Onyama Limba
1028Emily WhobreyArgentina2026-05-24Printing Dimensions NEGOTIATION78Ioni Bowcher
1029Kaitlin OstroskySpain2026-06-16Chapman, Ross E Esq PROPOSAL83Onyama Limba
1030Maria MarrierUnited Kingdom2026-05-22Chemel, James L Cpa RENEWAL44Xuxue Feng
1031Antonio CaudyAustralia2026-06-10Chemel, James L Cpa NEGOTIATION51Stephen Shaw
1032Juan WieserIndia2026-05-19Rousseaux, Michael Esq NEGOTIATION13Stephen Shaw
1033Antonio CaudyAustralia2026-06-16Dorl, James J Esq QUALIFIED8Ivan Magalhaes
1034Cody SaylorsJapan2026-06-01Rousseaux, Michael Esq NEGOTIATION14Ioni Bowcher
1035Smith GlickJapan2026-05-21Commercial Press PROPOSAL82Xuxue Feng
1036Deepesh ChuiAustralia2026-06-07King, Christopher A Esq PROPOSAL7Onyama Limba
1037Julie StensethIndia2026-05-31Chemel, James L Cpa NEGOTIATION81Stephen Shaw
1038Munro FerenczFrance2026-06-15King, Christopher A Esq NEW16Stephen Shaw
1039James ButtGermany2026-06-01Truhlar And Truhlar Attys NEGOTIATION33Elwin Sharvill
1040Jennifer AmigonIndia2026-06-12King, Christopher A Esq UNQUALIFIED28Anna Fali
1041Greenwood BologniaItaly2026-05-25Commercial Press UNQUALIFIED91Bernardo Dominic
1042Alejandro PerinCanada2026-06-02Dorl, James J Esq UNQUALIFIED17Elwin Sharvill
1043Sinclair WaycottFrance2026-06-12King, Christopher A Esq PROPOSAL31Amy Elsner
1044Julie StensethIndia2026-05-19Feltz Printing Service NEW83Ioni Bowcher
1045Maisha RulapaughGermany2026-05-23Benton, John B Jr RENEWAL21Ioni Bowcher
1046Jefferson SchemmerRussia2026-05-22Rousseaux, Michael Esq RENEWAL24Ioni Bowcher
1047Greenwood BologniaAustralia2026-06-08Buckley Miller Wright NEW59Ivan Magalhaes
1048Sinclair WaycottRussia2026-06-09Commercial Press NEW47Amy Elsner
1049Ashley DoeIndia2026-05-25King, Christopher A Esq RENEWAL13Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteArgentinaAmy Elsner NEW
Silvio SlusarskiBrazilIvan Magalhaes PROPOSAL
Nicolas IturbideSpainIoni Bowcher QUALIFIED
Maria MarrierBrazilAsiya Javayant PROPOSAL
Johnson SergiIndiaStephen Shaw NEGOTIATION
Wickens NestleJapanIvan Magalhaes UNQUALIFIED
Munro FerenczItalyElwin Sharvill NEGOTIATION
Jefferson SchemmerJapanXuxue Feng PROPOSAL
Deepesh ChuiCanadaXuxue Feng PROPOSAL
Maisha RulapaughJapanStephen Shaw RENEWAL
Rodrigues CampainArgentinaOnyama Limba NEGOTIATION
Jones VocelkaFranceAnna Fali RENEWAL
Darci PoquetteUnited KingdomIvan Magalhaes RENEWAL
Kaitlin OstroskyRussiaIoni Bowcher PROPOSAL
Leon OldroydIndiaIoni Bowcher NEW
Emily WhobreySpainAnna Fali PROPOSAL
Morrow RutaUnited KingdomIoni Bowcher QUALIFIED
Jones VocelkaRussiaAsiya Javayant UNQUALIFIED
Leon OldroydFranceOnyama Limba NEW
Kadeem FlosiUnited KingdomAmy Elsner RENEWAL
Leon OldroydBrazilAmy Elsner UNQUALIFIED
Arvin AlbaresGermanyAsiya Javayant NEW
Chavez BriddickFranceStephen Shaw UNQUALIFIED
Aika InouyeSpainStephen Shaw QUALIFIED
Nicolas IturbideIndiaAsiya Javayant QUALIFIED
Johnson SergiArgentinaOnyama Limba QUALIFIED
Maisha RulapaughArgentinaAnna Fali RENEWAL
Morrow RutaItalyIvan Magalhaes NEW
Ivar PaprockiSpainAnna Fali QUALIFIED
Mujtaba NickaRussiaIvan Magalhaes NEGOTIATION
Deepesh ChuiBrazilAsiya Javayant NEW
Deepesh ChuiAustraliaIvan Magalhaes PROPOSAL
Emily WhobreyFranceIvan Magalhaes UNQUALIFIED
Tony FollerFranceAnna Fali RENEWAL
Isabel BowleyUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois VenereItalyOnyama Limba NEW
Rodrigues CampainIndiaBernardo Dominic NEGOTIATION
Ashley DoeCanadaOnyama Limba QUALIFIED
Aika InouyeUnited KingdomAmy Elsner PROPOSAL
Jones VocelkaJapanXuxue Feng NEGOTIATION
James ButtIndiaOnyama Limba RENEWAL
Morrow RutaAustraliaIoni Bowcher QUALIFIED
Smith GlickGermanyStephen Shaw NEW
Jefferson SchemmerRussiaOnyama Limba PROPOSAL
Emily WhobreyUnited KingdomAnna Fali UNQUALIFIED
Nicolas IturbideIndiaBernardo Dominic NEW
Tony FollerSpainBernardo Dominic UNQUALIFIED
Jeanfrancois VenereItalyAmy Elsner PROPOSAL
Smith GlickRussiaElwin Sharvill QUALIFIED
Emily WhobreySpainIvan Magalhaes QUALIFIED
Frozen Columns
Name
Octavia Malet
Maria Marrier
Stacey Maclead
Cody Saylors
Rodrigues Campain
Kadeem Flosi
Octavia Malet
Jennifer Amigon
Jennifer Amigon
Ivar Paprocki
Maria Marrier
Juan Wieser
Morrow Ruta
Ricardo Gaucho
Salvatore Stockham
Ricardo Gaucho
Greenwood Bolognia
Claire Tollner
Maria Marrier
Cody Saylors
Arvin Albares
Salvatore Stockham
Morrow Ruta
Stacey Maclead
Munro Ferencz
Stacey Maclead
Leon Oldroyd
Alejandro Perin
Salvatore Stockham
Chavez Briddick
David Darakjy
Misaki Royster
David Darakjy
Nicolas Iturbide
Maria Marrier
Francesco Shinko
Ivar Paprocki
Kadeem Flosi
Izzy Garufi
Isabel Bowley
Leja Caldarera
Aika Inouye
Cody Saylors
Silvio Slusarski
Tony Foller
Octavia Malet
Ivar Paprocki
Antonio Caudy
Deepesh Chui
Alejandro Perin
IdCountryDate
1000Japan2026-05-31
1001Australia2026-06-05
1002Japan2026-06-05
1003Canada2026-06-11
1004Spain2026-06-10
1005Australia2026-06-12
1006Canada2026-05-19
1007Russia2026-06-01
1008Australia2026-05-24
1009Spain2026-06-03
1010Japan2026-05-27
1011France2026-06-12
1012Germany2026-05-22
1013Japan2026-06-05
1014Brazil2026-05-26
1015Argentina2026-06-14
1016Canada2026-05-27
1017Germany2026-06-13
1018Germany2026-06-04
1019India2026-06-01
1020Brazil2026-06-08
1021Australia2026-05-29
1022France2026-05-30
1023Brazil2026-05-30
1024France2026-05-30
1025Spain2026-06-11
1026Argentina2026-06-16
1027Spain2026-05-30
1028Japan2026-06-04
1029Brazil2026-06-12
1030Italy2026-05-20
1031Russia2026-06-12
1032Germany2026-06-13
1033Russia2026-06-13
1034Japan2026-06-17
1035Canada2026-05-21
1036Argentina2026-06-17
1037Germany2026-05-20
1038Russia2026-06-07
1039United Kingdom2026-05-21
1040Russia2026-05-25
1041Canada2026-06-08
1042Argentina2026-06-01
1043France2026-06-08
1044France2026-05-23
1045Russia2026-06-06
1046Japan2026-06-15
1047United Kingdom2026-06-14
1048Spain2026-05-28
1049India2026-05-29

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000France2026-06-17
Costa Dilliard1001Russia2026-05-25
Arvin Albares1002Argentina2026-06-06
Francesco Shinko1003Brazil2026-05-25
Smith Glick1004Australia2026-06-08
Isabel Bowley1005Spain2026-05-28
Alejandro Perin1006Australia2026-06-10
Izzy Garufi1007Argentina2026-06-16
Julie Stenseth1008Argentina2026-06-16
Aditya Kusko1009Germany2026-06-17
Cody Saylors1010Australia2026-06-08
Stacey Maclead1011India2026-05-25
Adams Morasca1012Australia2026-06-10
Juan Wieser1013Argentina2026-06-11
Rodrigues Campain1014France2026-06-03
Leja Caldarera1015Brazil2026-05-23
Chavez Briddick1016Spain2026-06-11
Izzy Garufi1017Germany2026-05-20
Sinclair Waycott1018Spain2026-05-21
Costa Dilliard1019Brazil2026-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterCanadaOnyama Limba NEW
Ashley DoeArgentinaXuxue Feng NEW
David DarakjySpainAnna Fali UNQUALIFIED
Jones VocelkaItalyStephen Shaw RENEWAL
Deepesh ChuiFranceAmy Elsner UNQUALIFIED
Darci PoquetteCanadaAmy Elsner NEGOTIATION
Chavez BriddickRussiaIoni Bowcher QUALIFIED
Izzy GarufiIndiaXuxue Feng RENEWAL
Sinclair WaycottIndiaIoni Bowcher QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
James ButtJapanXuxue Feng UNQUALIFIED
Leja CaldareraSpainBernardo Dominic PROPOSAL
Alejandro PerinSpainXuxue Feng NEGOTIATION
Leja CaldareraJapanAnna Fali UNQUALIFIED
Aditya KuskoFranceAmy Elsner PROPOSAL
Faith GillianRussiaBernardo Dominic RENEWAL
Claire TollnerSpainAnna Fali NEGOTIATION
Stacey MacleadCanadaAsiya Javayant QUALIFIED
Aditya KuskoFranceIoni Bowcher RENEWAL
Darci PoquetteUnited KingdomAnna Fali NEW
Leon OldroydSpainElwin Sharvill QUALIFIED
Murillo MaletUnited KingdomElwin Sharvill NEGOTIATION
Antonio CaudySpainOnyama Limba QUALIFIED
Aruna FigeroaRussiaAnna Fali RENEWAL
Adams MorascaAustraliaStephen Shaw NEGOTIATION
Julie StensethRussiaAnna Fali RENEWAL
Emily WhobreyFranceBernardo Dominic NEGOTIATION
James ButtBrazilXuxue Feng PROPOSAL
Silvio SlusarskiAustraliaAmy Elsner NEGOTIATION
Jennifer AmigonRussiaOnyama Limba RENEWAL
Izzy GarufiBrazilIvan Magalhaes RENEWAL
Francesco ShinkoFranceAmy Elsner QUALIFIED
Tony FollerRussiaIvan Magalhaes NEW
Aruna FigeroaAustraliaIoni Bowcher NEW
Faith GillianIndiaAnna Fali NEW
Jennifer AmigonIndiaAnna Fali NEGOTIATION
Ivar PaprockiArgentinaBernardo Dominic NEW
Silvio SlusarskiIndiaAnna Fali QUALIFIED
Darci PoquetteAustraliaStephen Shaw NEGOTIATION
Ivar PaprockiIndiaAsiya Javayant RENEWAL

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