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
Leja CaldareraArgentinaStephen Shaw UNQUALIFIED
Aruna FigeroaFranceAnna Fali RENEWAL
Sinclair WaycottGermanyIoni Bowcher NEGOTIATION
Faith GillianCanadaOnyama Limba RENEWAL
Wickens NestleGermanyStephen Shaw UNQUALIFIED
James ButtBrazilElwin Sharvill NEGOTIATION
Maria MarrierSpainIvan Magalhaes NEGOTIATION
Sinclair WaycottBrazilOnyama Limba UNQUALIFIED
Munro FerenczCanadaXuxue Feng QUALIFIED
Greenwood BologniaGermanyAsiya Javayant RENEWAL
Aruna FigeroaJapanIvan Magalhaes UNQUALIFIED
Ashley DoeAustraliaIoni Bowcher UNQUALIFIED
Salvatore StockhamCanadaIvan Magalhaes NEW
Greenwood BologniaIndiaAnna Fali NEGOTIATION
Julie StensethFranceOnyama Limba PROPOSAL
Salvatore StockhamItalyElwin Sharvill QUALIFIED
James ButtIndiaAmy Elsner QUALIFIED
Rodrigues CampainCanadaAmy Elsner PROPOSAL
Faith GillianJapanIvan Magalhaes NEW
Juan WieserCanadaStephen Shaw PROPOSAL
Alejandro PerinItalyElwin Sharvill RENEWAL
Costa DilliardCanadaAsiya Javayant RENEWAL
Leon OldroydCanadaAmy Elsner NEGOTIATION
Salvatore StockhamFranceXuxue Feng QUALIFIED
Antonio CaudySpainIvan Magalhaes UNQUALIFIED
Ashley DoeArgentinaElwin Sharvill UNQUALIFIED
Claire TollnerRussiaIoni Bowcher RENEWAL
Ricardo GauchoJapanIvan Magalhaes NEGOTIATION
Deepesh ChuiFranceOnyama Limba QUALIFIED
James ButtBrazilElwin Sharvill QUALIFIED
Jeanfrancois VenereCanadaOnyama Limba UNQUALIFIED
David DarakjyArgentinaStephen Shaw UNQUALIFIED
Cody SaylorsBrazilIoni Bowcher RENEWAL
Morrow RutaCanadaOnyama Limba NEGOTIATION
Wickens NestleIndiaIvan Magalhaes QUALIFIED
Nicolas IturbideItalyOnyama Limba QUALIFIED
Tony FollerArgentinaIvan Magalhaes PROPOSAL
Faith GillianBrazilAmy Elsner RENEWAL
Cody SaylorsRussiaAnna Fali NEW
Cody SaylorsItalyIvan Magalhaes QUALIFIED
Deepesh ChuiFranceBernardo Dominic RENEWAL
Leon OldroydCanadaOnyama Limba UNQUALIFIED
Costa DilliardItalyElwin Sharvill RENEWAL
Jeanfrancois VenereCanadaAnna Fali RENEWAL
Ricardo GauchoFranceStephen Shaw PROPOSAL
Aditya KuskoIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaXuxue Feng QUALIFIED
Emily WhobreyFranceAsiya Javayant UNQUALIFIED
Tony FollerGermanyAnna Fali RENEWAL
Sinclair WaycottAustraliaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika InouyeAustraliaBernardo Dominic NEW
Misaki RoysterUnited KingdomBernardo Dominic NEW
Aruna FigeroaGermanyAnna Fali NEGOTIATION
Chavez BriddickCanadaBernardo Dominic NEGOTIATION
Ivar PaprockiArgentinaIoni Bowcher NEGOTIATION
Jones VocelkaJapanElwin Sharvill PROPOSAL
Mujtaba NickaUnited KingdomElwin Sharvill NEW
Tony FollerFranceIvan Magalhaes QUALIFIED
Silvio SlusarskiItalyElwin Sharvill UNQUALIFIED
Aditya KuskoGermanyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydRussia2026-04-18Chanay, Jeffrey A Esq NEGOTIATION63Onyama Limba
1001Salvatore StockhamArgentina2026-04-05Chanay, Jeffrey A Esq RENEWAL63Anna Fali
1002Jefferson SchemmerSpain2026-04-07Chemel, James L Cpa NEGOTIATION52Asiya Javayant
1003Murillo MaletRussia2026-04-27Truhlar And Truhlar Attys NEW92Amy Elsner
1004Izzy GarufiAustralia2026-04-15Morlong Associates NEW32Amy Elsner
1005Stacey MacleadUnited Kingdom2026-04-07King, Christopher A Esq NEGOTIATION24Anna Fali
1006Alejandro PerinCanada2026-04-20Rangoni Of Florence NEGOTIATION83Onyama Limba
1007Izzy GarufiAustralia2026-04-08Benton, John B Jr RENEWAL91Bernardo Dominic
1008Mayumi KolmetzFrance2026-04-13Feltz Printing Service NEW57Anna Fali
1009Ricardo GauchoIndia2026-04-24Chanay, Jeffrey A Esq PROPOSAL58Asiya Javayant
1010Isabel BowleyBrazil2026-04-12Morlong Associates RENEWAL36Onyama Limba
1011Sinclair WaycottRussia2026-04-11Benton, John B Jr UNQUALIFIED76Stephen Shaw
1012Misaki RoysterGermany2026-04-04Benton, John B Jr PROPOSAL41Asiya Javayant
1013Jennifer AmigonJapan2026-04-28Chemel, James L Cpa NEW78Amy Elsner
1014Murillo MaletArgentina2026-04-24Buckley Miller Wright NEW97Ioni Bowcher
1015Aditya KuskoItaly2026-04-30King, Christopher A Esq QUALIFIED57Bernardo Dominic
1016Darci PoquetteFrance2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED62Bernardo Dominic
1017Costa DilliardArgentina2026-04-05Buckley Miller Wright NEGOTIATION23Xuxue Feng
1018Ricardo GauchoSpain2026-04-18Dorl, James J Esq NEW31Ivan Magalhaes
1019Leja CaldareraUnited Kingdom2026-04-18Rangoni Of Florence NEGOTIATION33Asiya Javayant
1020Salvatore StockhamSpain2026-04-11Feiner Bros NEGOTIATION18Anna Fali
1021Arvin AlbaresCanada2026-04-29Chapman, Ross E Esq RENEWAL7Anna Fali
1022Misaki RoysterIndia2026-04-28Chemel, James L Cpa UNQUALIFIED34Ioni Bowcher
1023Juan WieserRussia2026-04-13Feiner Bros NEW61Ivan Magalhaes
1024Ivar PaprockiItaly2026-04-22King, Christopher A Esq RENEWAL6Asiya Javayant
1025Chavez BriddickCanada2026-04-26Benton, John B Jr QUALIFIED3Elwin Sharvill
1026Juan WieserJapan2026-04-19Chapman, Ross E Esq RENEWAL42Stephen Shaw
1027Isabel BowleyItaly2026-04-15Benton, John B Jr RENEWAL12Elwin Sharvill
1028Aruna FigeroaJapan2026-04-12Chanay, Jeffrey A Esq RENEWAL64Stephen Shaw
1029Francesco ShinkoSpain2026-04-13King, Christopher A Esq RENEWAL70Ioni Bowcher
1030David DarakjyIndia2026-04-23Dorl, James J Esq PROPOSAL56Ivan Magalhaes
1031Costa DilliardGermany2026-04-24Rangoni Of Florence UNQUALIFIED86Anna Fali
1032Stacey MacleadAustralia2026-04-17Commercial Press NEW68Ivan Magalhaes
1033Juan WieserIndia2026-04-03Chemel, James L Cpa RENEWAL14Onyama Limba
1034Leja CaldareraCanada2026-04-24Rangoni Of Florence UNQUALIFIED29Anna Fali
1035Ashley DoeAustralia2026-04-03Feiner Bros NEGOTIATION23Ioni Bowcher
1036Jeanfrancois VenereCanada2026-04-26Printing Dimensions QUALIFIED96Stephen Shaw
1037Emily WhobreyJapan2026-04-21Feiner Bros QUALIFIED18Anna Fali
1038Adams MorascaArgentina2026-05-01Morlong Associates NEGOTIATION78Stephen Shaw
1039Octavia MaletAustralia2026-04-12Benton, John B Jr NEW40Anna Fali
1040Julie StensethSpain2026-04-11King, Christopher A Esq NEW22Ivan Magalhaes
1041Maisha RulapaughAustralia2026-04-19Feltz Printing Service NEW91Onyama Limba
1042Adams MorascaIndia2026-04-21Dorl, James J Esq UNQUALIFIED87Asiya Javayant
1043Francesco ShinkoJapan2026-04-18Buckley Miller Wright PROPOSAL49Amy Elsner
1044Rodrigues CampainIndia2026-04-06Feltz Printing Service NEGOTIATION50Asiya Javayant
1045Jennifer AmigonCanada2026-04-30Benton, John B Jr QUALIFIED79Xuxue Feng
1046Tony FollerItaly2026-04-16Printing Dimensions UNQUALIFIED73Ivan Magalhaes
1047Costa DilliardUnited Kingdom2026-04-16King, Christopher A Esq NEW65Amy Elsner
1048Isabel BowleyRussia2026-04-26Dorl, James J Esq RENEWAL45Xuxue Feng
1049Julie StensethBrazil2026-04-05Chapman, Ross E Esq NEGOTIATION80Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletGermanyStephen Shaw NEW
Emily WhobreyBrazilAnna Fali NEGOTIATION
Morrow RutaArgentinaAmy Elsner NEW
Ricardo GauchoGermanyElwin Sharvill RENEWAL
Mayumi KolmetzSpainIoni Bowcher NEGOTIATION
Sinclair WaycottIndiaStephen Shaw NEW
Sinclair WaycottCanadaIvan Magalhaes NEW
Kaitlin OstroskyUnited KingdomBernardo Dominic NEW
Juan WieserUnited KingdomIoni Bowcher NEGOTIATION
Greenwood BologniaFranceIoni Bowcher NEW
Emily WhobreyRussiaAnna Fali NEW
Stacey MacleadFranceIoni Bowcher QUALIFIED
Misaki RoysterIndiaIoni Bowcher QUALIFIED
Chavez BriddickItalyIoni Bowcher RENEWAL
Nicolas IturbideJapanAsiya Javayant RENEWAL
Sinclair WaycottFranceStephen Shaw NEGOTIATION
Octavia MaletArgentinaAnna Fali NEW
Jeanfrancois VenereFranceXuxue Feng NEGOTIATION
Adams MorascaIndiaXuxue Feng NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant RENEWAL
Adams MorascaFranceIoni Bowcher UNQUALIFIED
Juan WieserItalyElwin Sharvill NEW
Morrow RutaCanadaIvan Magalhaes QUALIFIED
Isabel BowleyJapanXuxue Feng NEW
Izzy GarufiArgentinaXuxue Feng PROPOSAL
Julie StensethJapanElwin Sharvill UNQUALIFIED
Munro FerenczItalyOnyama Limba NEGOTIATION
Aditya KuskoJapanElwin Sharvill RENEWAL
Juan WieserFranceBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Cody SaylorsUnited KingdomXuxue Feng NEW
Jeanfrancois VenereGermanyAnna Fali NEGOTIATION
Costa DilliardItalyIoni Bowcher NEW
Aruna FigeroaUnited KingdomAnna Fali NEW
Julie StensethArgentinaOnyama Limba NEGOTIATION
Alejandro PerinUnited KingdomAnna Fali NEW
Leja CaldareraSpainOnyama Limba NEW
Aditya KuskoGermanyOnyama Limba PROPOSAL
Aditya KuskoCanadaXuxue Feng RENEWAL
Clifford RimRussiaAnna Fali QUALIFIED
Juan WieserUnited KingdomStephen Shaw NEW
Jeanfrancois VenereFranceElwin Sharvill NEW
Silvio SlusarskiUnited KingdomAmy Elsner NEW
Aditya KuskoRussiaBernardo Dominic RENEWAL
Johnson SergiRussiaXuxue Feng UNQUALIFIED
Adams MorascaItalyStephen Shaw NEGOTIATION
Murillo MaletArgentinaIoni Bowcher NEGOTIATION
Francesco ShinkoBrazilElwin Sharvill PROPOSAL
Tony FollerIndiaAsiya Javayant NEGOTIATION
Aika InouyeAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Chavez Briddick
Jefferson Schemmer
Clifford Rim
Emily Whobrey
Claire Tollner
Stacey Maclead
Julie Stenseth
Juan Wieser
Cody Saylors
Julie Stenseth
James Butt
Octavia Malet
Kadeem Flosi
Octavia Malet
Chavez Briddick
Aditya Kusko
Juan Wieser
Izzy Garufi
Juan Wieser
Julie Stenseth
Ashley Doe
Greenwood Bolognia
Jennifer Amigon
Misaki Royster
Smith Glick
Jeanfrancois Venere
Leja Caldarera
Faith Gillian
Deepesh Chui
Misaki Royster
Maria Marrier
Smith Glick
Isabel Bowley
Francesco Shinko
Mayumi Kolmetz
Costa Dilliard
David Darakjy
Wickens Nestle
James Butt
Nicolas Iturbide
Nicolas Iturbide
Morrow Ruta
David Darakjy
Maria Marrier
Faith Gillian
Mujtaba Nicka
Juan Wieser
Mayumi Kolmetz
Antonio Caudy
Adams Morasca
IdCountryDate
1000Spain2026-04-29
1001Brazil2026-04-14
1002Spain2026-04-19
1003France2026-04-19
1004Australia2026-04-27
1005Russia2026-04-25
1006Italy2026-04-15
1007United Kingdom2026-04-12
1008Germany2026-04-24
1009Australia2026-04-17
1010India2026-04-17
1011France2026-04-15
1012Germany2026-04-25
1013Spain2026-05-01
1014Canada2026-04-18
1015Italy2026-04-03
1016Brazil2026-04-14
1017Germany2026-04-15
1018Canada2026-04-27
1019Australia2026-04-14
1020Germany2026-04-08
1021Japan2026-04-16
1022United Kingdom2026-04-09
1023Canada2026-04-24
1024Brazil2026-04-03
1025Russia2026-04-10
1026India2026-05-02
1027Germany2026-04-06
1028Canada2026-04-08
1029Brazil2026-04-12
1030Japan2026-05-01
1031India2026-04-25
1032Spain2026-05-01
1033Australia2026-04-11
1034India2026-04-09
1035Spain2026-04-11
1036India2026-04-10
1037France2026-04-12
1038Canada2026-04-21
1039India2026-04-17
1040Spain2026-04-08
1041Brazil2026-04-04
1042Brazil2026-04-20
1043Germany2026-04-24
1044Spain2026-04-19
1045Japan2026-05-02
1046Brazil2026-04-24
1047France2026-04-20
1048Japan2026-05-01
1049India2026-04-08

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000Russia2026-04-08
Darci Poquette1001Argentina2026-04-03
Darci Poquette1002Brazil2026-04-21
Maria Marrier1003India2026-05-02
Misaki Royster1004India2026-05-01
Kaitlin Ostrosky1005Australia2026-04-23
Silvio Slusarski1006Australia2026-04-11
Emily Whobrey1007Argentina2026-04-14
Antonio Caudy1008Canada2026-04-23
Arvin Albares1009Germany2026-04-30
Isabel Bowley1010Germany2026-04-03
Arvin Albares1011Argentina2026-04-14
Stacey Maclead1012France2026-04-16
Silvio Slusarski1013Spain2026-04-11
Darci Poquette1014Germany2026-04-25
Smith Glick1015Australia2026-04-29
Leja Caldarera1016Italy2026-04-26
Izzy Garufi1017Brazil2026-04-04
Darci Poquette1018Argentina2026-04-16
Stacey Maclead1019United Kingdom2026-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens NestleRussiaOnyama Limba QUALIFIED
Isabel BowleyArgentinaIoni Bowcher NEW
Antonio CaudyIndiaOnyama Limba RENEWAL
Aruna FigeroaItalyXuxue Feng QUALIFIED
Deepesh ChuiBrazilXuxue Feng QUALIFIED
Stacey MacleadAustraliaElwin Sharvill NEW
Jones VocelkaJapanAmy Elsner QUALIFIED
James ButtUnited KingdomAnna Fali PROPOSAL
Cody SaylorsFranceElwin Sharvill NEGOTIATION
Ivar PaprockiCanadaBernardo Dominic QUALIFIED
Jennifer AmigonFranceAnna Fali NEGOTIATION
Kadeem FlosiGermanyOnyama Limba PROPOSAL
Arvin AlbaresFranceAsiya Javayant NEW
Leja CaldareraArgentinaIoni Bowcher QUALIFIED
Costa DilliardRussiaAnna Fali UNQUALIFIED
David DarakjyFranceXuxue Feng UNQUALIFIED
Ashley DoeAustraliaXuxue Feng NEW
Jennifer AmigonCanadaIvan Magalhaes QUALIFIED
Leon OldroydCanadaXuxue Feng PROPOSAL
Costa DilliardJapanAmy Elsner NEGOTIATION
Wickens NestleJapanIoni Bowcher NEGOTIATION
Misaki RoysterBrazilAnna Fali UNQUALIFIED
Leon OldroydGermanyAnna Fali NEGOTIATION
Sinclair WaycottArgentinaOnyama Limba RENEWAL
Jennifer AmigonIndiaOnyama Limba RENEWAL
Tony FollerUnited KingdomAnna Fali NEGOTIATION
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Octavia MaletAustraliaAmy Elsner UNQUALIFIED
Munro FerenczFranceXuxue Feng NEGOTIATION
Clifford RimArgentinaIvan Magalhaes QUALIFIED
Leja CaldareraGermanyIvan Magalhaes PROPOSAL
Nicolas IturbideIndiaAsiya Javayant QUALIFIED
Morrow RutaIndiaAsiya Javayant UNQUALIFIED
Arvin AlbaresCanadaElwin Sharvill PROPOSAL
Chavez BriddickItalyStephen Shaw PROPOSAL
Stacey MacleadIndiaAmy Elsner RENEWAL
Mayumi KolmetzFranceIvan Magalhaes QUALIFIED
Munro FerenczGermanyBernardo Dominic QUALIFIED
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Morrow RutaItalyIoni Bowcher 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>