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
Ashley DoeIndiaXuxue Feng NEW
Maisha RulapaughFranceAmy Elsner PROPOSAL
Munro FerenczCanadaStephen Shaw QUALIFIED
Aditya KuskoGermanyXuxue Feng RENEWAL
Chavez BriddickArgentinaAnna Fali PROPOSAL
Antonio CaudyRussiaAmy Elsner UNQUALIFIED
Costa DilliardItalyOnyama Limba RENEWAL
Antonio CaudySpainOnyama Limba PROPOSAL
Jones VocelkaSpainStephen Shaw RENEWAL
Maisha RulapaughArgentinaStephen Shaw PROPOSAL
Murillo MaletSpainOnyama Limba NEW
Kaitlin OstroskyCanadaIvan Magalhaes PROPOSAL
Stacey MacleadAustraliaIoni Bowcher QUALIFIED
Misaki RoysterArgentinaOnyama Limba NEGOTIATION
Salvatore StockhamJapanIoni Bowcher UNQUALIFIED
Sinclair WaycottCanadaXuxue Feng QUALIFIED
David DarakjyCanadaAnna Fali UNQUALIFIED
Ashley DoeFranceAmy Elsner NEGOTIATION
Deepesh ChuiBrazilStephen Shaw RENEWAL
Claire TollnerJapanAnna Fali PROPOSAL
Smith GlickRussiaXuxue Feng QUALIFIED
Kaitlin OstroskyRussiaBernardo Dominic NEW
Ashley DoeGermanyAsiya Javayant PROPOSAL
Cody SaylorsRussiaAnna Fali UNQUALIFIED
Salvatore StockhamBrazilAnna Fali NEW
Alejandro PerinItalyAnna Fali NEGOTIATION
Adams MorascaArgentinaIvan Magalhaes PROPOSAL
Stacey MacleadAustraliaAmy Elsner PROPOSAL
Alejandro PerinItalyAmy Elsner QUALIFIED
Aruna FigeroaArgentinaXuxue Feng PROPOSAL
Sinclair WaycottFranceIoni Bowcher NEW
Jennifer AmigonArgentinaBernardo Dominic NEW
Mayumi KolmetzItalyBernardo Dominic PROPOSAL
Ivar PaprockiBrazilOnyama Limba RENEWAL
Munro FerenczCanadaBernardo Dominic QUALIFIED
Claire TollnerSpainIoni Bowcher NEW
Jeanfrancois VenereItalyOnyama Limba PROPOSAL
Alejandro PerinCanadaIvan Magalhaes UNQUALIFIED
Adams MorascaGermanyElwin Sharvill QUALIFIED
Claire TollnerSpainElwin Sharvill NEW
Claire TollnerCanadaAmy Elsner QUALIFIED
Wickens NestleGermanyOnyama Limba NEW
Greenwood BologniaRussiaIoni Bowcher NEW
Adams MorascaFranceBernardo Dominic NEW
Julie StensethJapanIvan Magalhaes QUALIFIED
Emily WhobreySpainIoni Bowcher QUALIFIED
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Nicolas IturbideRussiaAsiya Javayant NEGOTIATION
Silvio SlusarskiSpainIvan Magalhaes NEW
Misaki RoysterItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaSpainIvan Magalhaes NEW
Emily WhobreySpainIvan Magalhaes UNQUALIFIED
Smith GlickRussiaIvan Magalhaes NEW
James ButtFranceStephen Shaw NEGOTIATION
Ivar PaprockiCanadaOnyama Limba RENEWAL
Alejandro PerinFranceIoni Bowcher QUALIFIED
Mujtaba NickaBrazilAmy Elsner RENEWAL
Murillo MaletCanadaOnyama Limba NEGOTIATION
Mayumi KolmetzItalyElwin Sharvill RENEWAL
Arvin AlbaresCanadaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickBrazil2026-04-26Printing Dimensions QUALIFIED86Ioni Bowcher
1001Arvin AlbaresRussia2026-04-26Chapman, Ross E Esq NEGOTIATION8Onyama Limba
1002Kaitlin OstroskyJapan2026-04-29Printing Dimensions NEW61Elwin Sharvill
1003Ashley DoeCanada2026-04-28King, Christopher A Esq UNQUALIFIED48Elwin Sharvill
1004Jones VocelkaGermany2026-04-28Printing Dimensions UNQUALIFIED62Bernardo Dominic
1005Jeanfrancois VenereIndia2026-04-24Feltz Printing Service QUALIFIED76Stephen Shaw
1006Clifford RimIndia2026-04-16Benton, John B Jr NEW57Stephen Shaw
1007Ashley DoeIndia2026-05-05Printing Dimensions NEGOTIATION83Amy Elsner
1008Stacey MacleadIndia2026-05-12Chapman, Ross E Esq UNQUALIFIED73Ivan Magalhaes
1009Isabel BowleyFrance2026-05-09Chapman, Ross E Esq NEGOTIATION11Ioni Bowcher
1010Leon OldroydRussia2026-05-11Chanay, Jeffrey A Esq NEGOTIATION91Bernardo Dominic
1011Chavez BriddickBrazil2026-05-15Buckley Miller Wright NEGOTIATION97Amy Elsner
1012Nicolas IturbideFrance2026-04-18Truhlar And Truhlar Attys PROPOSAL5Stephen Shaw
1013Juan WieserIndia2026-04-19Printing Dimensions PROPOSAL5Elwin Sharvill
1014Arvin AlbaresJapan2026-05-05Truhlar And Truhlar Attys NEGOTIATION78Onyama Limba
1015Maisha RulapaughItaly2026-04-22Feltz Printing Service QUALIFIED91Ivan Magalhaes
1016Francesco ShinkoCanada2026-04-30Dorl, James J Esq NEGOTIATION2Bernardo Dominic
1017Izzy GarufiFrance2026-05-14Chemel, James L Cpa QUALIFIED70Onyama Limba
1018Deepesh ChuiRussia2026-04-19Dorl, James J Esq QUALIFIED17Amy Elsner
1019Ashley DoeJapan2026-05-13Rangoni Of Florence RENEWAL65Ioni Bowcher
1020Jeanfrancois VenereSpain2026-05-04Printing Dimensions RENEWAL80Stephen Shaw
1021Murillo MaletFrance2026-05-03Chapman, Ross E Esq PROPOSAL90Amy Elsner
1022Arvin AlbaresItaly2026-05-12Chemel, James L Cpa QUALIFIED38Anna Fali
1023Ivar PaprockiBrazil2026-05-04Truhlar And Truhlar Attys QUALIFIED9Amy Elsner
1024Antonio CaudyGermany2026-05-11Buckley Miller Wright NEW90Amy Elsner
1025Murillo MaletUnited Kingdom2026-04-21Truhlar And Truhlar Attys NEGOTIATION69Ioni Bowcher
1026Greenwood BologniaSpain2026-05-02Rangoni Of Florence QUALIFIED33Bernardo Dominic
1027Leja CaldareraFrance2026-05-05Dorl, James J Esq RENEWAL82Amy Elsner
1028Ivar PaprockiCanada2026-05-04Feltz Printing Service RENEWAL14Amy Elsner
1029Julie StensethUnited Kingdom2026-05-03Feltz Printing Service NEW76Anna Fali
1030Chavez BriddickUnited Kingdom2026-05-12Chemel, James L Cpa QUALIFIED96Ivan Magalhaes
1031Costa DilliardAustralia2026-05-02Feiner Bros NEGOTIATION2Bernardo Dominic
1032Aruna FigeroaIndia2026-05-08Buckley Miller Wright RENEWAL28Anna Fali
1033Julie StensethCanada2026-05-03Rousseaux, Michael Esq NEW71Xuxue Feng
1034Ivar PaprockiFrance2026-05-10Benton, John B Jr PROPOSAL52Bernardo Dominic
1035Maria MarrierUnited Kingdom2026-04-19Morlong Associates NEW51Asiya Javayant
1036Rodrigues CampainRussia2026-05-12Rousseaux, Michael Esq UNQUALIFIED34Stephen Shaw
1037Adams MorascaItaly2026-05-10Feiner Bros NEW53Asiya Javayant
1038Morrow RutaRussia2026-04-18Chanay, Jeffrey A Esq NEGOTIATION17Stephen Shaw
1039Cody SaylorsCanada2026-04-17Buckley Miller Wright RENEWAL88Amy Elsner
1040Deepesh ChuiRussia2026-04-19Rangoni Of Florence UNQUALIFIED68Ioni Bowcher
1041James ButtSpain2026-04-20Commercial Press QUALIFIED63Asiya Javayant
1042Claire TollnerItaly2026-05-11Feiner Bros RENEWAL64Asiya Javayant
1043Juan WieserJapan2026-05-13Chemel, James L Cpa NEW58Stephen Shaw
1044Maria MarrierRussia2026-05-08Buckley Miller Wright RENEWAL24Ivan Magalhaes
1045Kaitlin OstroskyCanada2026-05-08Feiner Bros NEW38Xuxue Feng
1046Munro FerenczRussia2026-04-29Printing Dimensions QUALIFIED76Elwin Sharvill
1047David DarakjyCanada2026-04-24Feiner Bros NEGOTIATION77Bernardo Dominic
1048Clifford RimSpain2026-04-26Chanay, Jeffrey A Esq RENEWAL11Elwin Sharvill
1049Morrow RutaBrazil2026-04-18Chanay, Jeffrey A Esq NEW29Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadUnited KingdomStephen Shaw UNQUALIFIED
Murillo MaletCanadaAsiya Javayant QUALIFIED
David DarakjyGermanyBernardo Dominic NEGOTIATION
Faith GillianGermanyIvan Magalhaes PROPOSAL
Jefferson SchemmerFranceAmy Elsner PROPOSAL
Ricardo GauchoRussiaStephen Shaw RENEWAL
Adams MorascaCanadaIoni Bowcher NEGOTIATION
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Izzy GarufiAustraliaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyFranceAmy Elsner QUALIFIED
Rodrigues CampainCanadaAmy Elsner NEW
Costa DilliardArgentinaElwin Sharvill QUALIFIED
Clifford RimItalyBernardo Dominic RENEWAL
Deepesh ChuiRussiaElwin Sharvill RENEWAL
Ashley DoeAustraliaStephen Shaw RENEWAL
Juan WieserJapanOnyama Limba QUALIFIED
Faith GillianAustraliaOnyama Limba NEGOTIATION
Izzy GarufiJapanAmy Elsner NEW
Sinclair WaycottSpainXuxue Feng UNQUALIFIED
Johnson SergiAustraliaAsiya Javayant NEGOTIATION
Murillo MaletBrazilStephen Shaw UNQUALIFIED
Jennifer AmigonJapanAsiya Javayant RENEWAL
Deepesh ChuiCanadaAnna Fali QUALIFIED
Jeanfrancois VenereItalyXuxue Feng NEW
Leja CaldareraIndiaAnna Fali UNQUALIFIED
David DarakjyGermanyAsiya Javayant NEGOTIATION
Faith GillianCanadaAsiya Javayant NEW
James ButtIndiaBernardo Dominic UNQUALIFIED
Adams MorascaGermanyAmy Elsner NEGOTIATION
Wickens NestleJapanOnyama Limba QUALIFIED
Maria MarrierFranceIvan Magalhaes QUALIFIED
Emily WhobreyItalyXuxue Feng QUALIFIED
Jefferson SchemmerRussiaElwin Sharvill NEW
Rodrigues CampainSpainIvan Magalhaes NEGOTIATION
Munro FerenczBrazilAnna Fali NEGOTIATION
Izzy GarufiCanadaAsiya Javayant PROPOSAL
Aruna FigeroaFranceIvan Magalhaes QUALIFIED
Claire TollnerAustraliaAsiya Javayant UNQUALIFIED
Claire TollnerBrazilAnna Fali QUALIFIED
Leja CaldareraAustraliaIoni Bowcher RENEWAL
Maria MarrierIndiaOnyama Limba PROPOSAL
Adams MorascaJapanOnyama Limba UNQUALIFIED
Francesco ShinkoJapanIoni Bowcher RENEWAL
Munro FerenczRussiaXuxue Feng UNQUALIFIED
Leja CaldareraSpainOnyama Limba NEW
Chavez BriddickSpainXuxue Feng PROPOSAL
Jefferson SchemmerSpainAsiya Javayant QUALIFIED
Morrow RutaFranceElwin Sharvill RENEWAL
Silvio SlusarskiItalyAnna Fali QUALIFIED
Chavez BriddickFranceBernardo Dominic PROPOSAL
Frozen Columns
Name
Stacey Maclead
Greenwood Bolognia
Ivar Paprocki
Salvatore Stockham
James Butt
Aruna Figeroa
Antonio Caudy
Wickens Nestle
Mujtaba Nicka
Faith Gillian
Maisha Rulapaugh
Leon Oldroyd
Octavia Malet
Ricardo Gaucho
Stacey Maclead
Ricardo Gaucho
Jones Vocelka
Tony Foller
Clifford Rim
Morrow Ruta
Maisha Rulapaugh
Ricardo Gaucho
Maisha Rulapaugh
Mayumi Kolmetz
Jennifer Amigon
Salvatore Stockham
Faith Gillian
Julie Stenseth
Nicolas Iturbide
Cody Saylors
Octavia Malet
Morrow Ruta
James Butt
Mujtaba Nicka
Munro Ferencz
Leon Oldroyd
Jennifer Amigon
Costa Dilliard
Stacey Maclead
Mujtaba Nicka
Aika Inouye
David Darakjy
Silvio Slusarski
Leon Oldroyd
Jones Vocelka
Greenwood Bolognia
Wickens Nestle
Tony Foller
Jennifer Amigon
Ashley Doe
IdCountryDate
1000India2026-05-08
1001Italy2026-05-14
1002Germany2026-05-08
1003India2026-04-22
1004Canada2026-05-09
1005France2026-05-09
1006Spain2026-04-23
1007Germany2026-05-03
1008Brazil2026-05-01
1009Canada2026-05-02
1010Germany2026-05-01
1011United Kingdom2026-04-23
1012Spain2026-04-24
1013Italy2026-05-07
1014Japan2026-05-12
1015France2026-05-07
1016Brazil2026-04-30
1017Spain2026-05-07
1018France2026-04-23
1019France2026-04-20
1020India2026-05-04
1021France2026-04-28
1022Russia2026-04-16
1023Japan2026-04-27
1024Australia2026-04-18
1025Italy2026-05-13
1026United Kingdom2026-04-22
1027Russia2026-05-02
1028Canada2026-04-23
1029Italy2026-04-28
1030Italy2026-04-23
1031France2026-05-08
1032Brazil2026-04-24
1033Argentina2026-05-10
1034Australia2026-05-11
1035Russia2026-04-21
1036India2026-04-18
1037Australia2026-04-20
1038France2026-05-13
1039India2026-05-09
1040Japan2026-05-14
1041United Kingdom2026-04-29
1042France2026-05-13
1043United Kingdom2026-04-25
1044Germany2026-04-16
1045Russia2026-04-16
1046Germany2026-05-10
1047Canada2026-05-11
1048Canada2026-05-06
1049Brazil2026-05-11

On-Demand Data

NameIdCountryDate
Emily Whobrey1000Italy2026-05-14
Aditya Kusko1001United Kingdom2026-05-12
Emily Whobrey1002France2026-04-30
Tony Foller1003Argentina2026-05-02
Antonio Caudy1004Argentina2026-05-12
Smith Glick1005Canada2026-04-29
Costa Dilliard1006Germany2026-05-04
Johnson Sergi1007Japan2026-04-24
Jennifer Amigon1008Japan2026-05-10
Leon Oldroyd1009Japan2026-04-24
Aika Inouye1010Canada2026-05-13
Cody Saylors1011India2026-04-26
Mujtaba Nicka1012Argentina2026-05-14
Wickens Nestle1013India2026-05-02
Rodrigues Campain1014Japan2026-05-03
Munro Ferencz1015Japan2026-05-04
Maria Marrier1016Brazil2026-05-08
Smith Glick1017Argentina2026-05-06
Arvin Albares1018Argentina2026-04-21
Octavia Malet1019France2026-05-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoIndiaAsiya Javayant NEW
Faith GillianJapanXuxue Feng NEW
Antonio CaudyAustraliaElwin Sharvill RENEWAL
James ButtAustraliaElwin Sharvill UNQUALIFIED
Rodrigues CampainFranceAmy Elsner UNQUALIFIED
Kaitlin OstroskyFranceAnna Fali QUALIFIED
Greenwood BologniaAustraliaBernardo Dominic RENEWAL
James ButtRussiaElwin Sharvill NEW
Alejandro PerinJapanXuxue Feng PROPOSAL
Murillo MaletFranceAmy Elsner UNQUALIFIED
Adams MorascaRussiaElwin Sharvill RENEWAL
Mayumi KolmetzArgentinaElwin Sharvill UNQUALIFIED
Antonio CaudyRussiaAnna Fali PROPOSAL
Aika InouyeJapanStephen Shaw QUALIFIED
Costa DilliardSpainXuxue Feng QUALIFIED
Mujtaba NickaFranceOnyama Limba UNQUALIFIED
Costa DilliardJapanIvan Magalhaes NEGOTIATION
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Costa DilliardBrazilIoni Bowcher NEW
Jennifer AmigonGermanyXuxue Feng NEW
Maria MarrierUnited KingdomAnna Fali PROPOSAL
Arvin AlbaresGermanyAsiya Javayant NEGOTIATION
Greenwood BologniaFranceXuxue Feng NEW
Darci PoquetteIndiaStephen Shaw NEW
Jefferson SchemmerRussiaXuxue Feng NEGOTIATION
Emily WhobreySpainAnna Fali NEGOTIATION
Mayumi KolmetzFranceAmy Elsner PROPOSAL
Ashley DoeSpainStephen Shaw UNQUALIFIED
Chavez BriddickBrazilXuxue Feng NEGOTIATION
Kadeem FlosiRussiaAnna Fali RENEWAL
Tony FollerItalyOnyama Limba PROPOSAL
Sinclair WaycottFranceElwin Sharvill QUALIFIED
Kadeem FlosiArgentinaOnyama Limba PROPOSAL
Octavia MaletAustraliaElwin Sharvill NEW
James ButtItalyAnna Fali UNQUALIFIED
James ButtCanadaElwin Sharvill NEW
Murillo MaletUnited KingdomXuxue Feng NEW
Emily WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Munro FerenczFranceAnna Fali QUALIFIED
Isabel BowleyAustraliaIoni Bowcher QUALIFIED

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