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
Jeanfrancois VenereAustraliaStephen Shaw NEGOTIATION
Kadeem FlosiArgentinaAnna Fali NEGOTIATION
Faith GillianUnited KingdomAmy Elsner QUALIFIED
Morrow RutaItalyIvan Magalhaes PROPOSAL
Smith GlickCanadaElwin Sharvill RENEWAL
Jefferson SchemmerRussiaXuxue Feng RENEWAL
Clifford RimIndiaIvan Magalhaes NEW
Cody SaylorsGermanyXuxue Feng QUALIFIED
Arvin AlbaresBrazilOnyama Limba NEGOTIATION
Kadeem FlosiArgentinaElwin Sharvill RENEWAL
Nicolas IturbideGermanyStephen Shaw NEW
Claire TollnerItalyAsiya Javayant RENEWAL
Clifford RimBrazilElwin Sharvill PROPOSAL
Kaitlin OstroskyBrazilIoni Bowcher RENEWAL
Jeanfrancois VenereSpainElwin Sharvill NEGOTIATION
Alejandro PerinFranceOnyama Limba NEW
Salvatore StockhamRussiaAnna Fali NEW
Kadeem FlosiGermanyAsiya Javayant PROPOSAL
Darci PoquetteJapanBernardo Dominic NEGOTIATION
David DarakjyCanadaBernardo Dominic NEGOTIATION
Alejandro PerinRussiaElwin Sharvill RENEWAL
Alejandro PerinIndiaBernardo Dominic RENEWAL
Jefferson SchemmerAustraliaXuxue Feng NEGOTIATION
Munro FerenczUnited KingdomAnna Fali QUALIFIED
Arvin AlbaresJapanBernardo Dominic NEW
Johnson SergiRussiaAnna Fali NEW
Smith GlickFranceStephen Shaw RENEWAL
Jones VocelkaFranceIoni Bowcher QUALIFIED
Greenwood BologniaFranceBernardo Dominic RENEWAL
Octavia MaletBrazilAmy Elsner NEW
Mujtaba NickaItalyBernardo Dominic RENEWAL
Ashley DoeRussiaAnna Fali NEW
Johnson SergiBrazilAnna Fali NEGOTIATION
Murillo MaletArgentinaAnna Fali UNQUALIFIED
Silvio SlusarskiSpainElwin Sharvill PROPOSAL
Munro FerenczArgentinaOnyama Limba NEW
Ivar PaprockiRussiaBernardo Dominic QUALIFIED
Salvatore StockhamJapanAmy Elsner QUALIFIED
Leja CaldareraFranceBernardo Dominic RENEWAL
Chavez BriddickUnited KingdomAmy Elsner NEW
Tony FollerAustraliaAmy Elsner NEGOTIATION
Emily WhobreyJapanAnna Fali RENEWAL
Aditya KuskoFranceStephen Shaw QUALIFIED
Clifford RimBrazilBernardo Dominic RENEWAL
Murillo MaletIndiaOnyama Limba UNQUALIFIED
Claire TollnerRussiaElwin Sharvill NEW
Alejandro PerinBrazilIoni Bowcher NEGOTIATION
Isabel BowleyArgentinaIoni Bowcher NEGOTIATION
Salvatore StockhamCanadaStephen Shaw NEW
Johnson SergiIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
David DarakjyFranceBernardo Dominic UNQUALIFIED
Darci PoquetteSpainIoni Bowcher QUALIFIED
Octavia MaletBrazilIvan Magalhaes PROPOSAL
Claire TollnerCanadaAsiya Javayant PROPOSAL
Misaki RoysterJapanXuxue Feng NEGOTIATION
Jefferson SchemmerUnited KingdomElwin Sharvill RENEWAL
Adams MorascaFranceIoni Bowcher NEGOTIATION
Kadeem FlosiJapanAnna Fali RENEWAL
Aditya KuskoIndiaIoni Bowcher UNQUALIFIED
Maria MarrierBrazilAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaArgentina2025-08-13Printing Dimensions RENEWAL96Ivan Magalhaes
1001Faith GillianSpain2025-08-18Commercial Press RENEWAL61Stephen Shaw
1002Kaitlin OstroskyItaly2025-08-19Dorl, James J Esq RENEWAL71Ioni Bowcher
1003David DarakjyGermany2025-08-13Commercial Press NEW23Elwin Sharvill
1004Jennifer AmigonArgentina2025-09-05Chemel, James L Cpa NEW38Anna Fali
1005Greenwood BologniaGermany2025-08-31Chemel, James L Cpa NEW24Ivan Magalhaes
1006Ricardo GauchoFrance2025-08-26Chemel, James L Cpa UNQUALIFIED93Elwin Sharvill
1007David DarakjyFrance2025-08-24Morlong Associates QUALIFIED80Stephen Shaw
1008Nicolas IturbideRussia2025-08-27Printing Dimensions NEGOTIATION96Elwin Sharvill
1009Maisha RulapaughUnited Kingdom2025-08-29Benton, John B Jr PROPOSAL83Stephen Shaw
1010Clifford RimIndia2025-08-15Truhlar And Truhlar Attys NEW36Xuxue Feng
1011Mujtaba NickaArgentina2025-08-25Benton, John B Jr PROPOSAL26Amy Elsner
1012Deepesh ChuiItaly2025-08-31Buckley Miller Wright RENEWAL6Stephen Shaw
1013Munro FerenczCanada2025-09-04Commercial Press NEW8Stephen Shaw
1014Adams MorascaGermany2025-09-03Buckley Miller Wright RENEWAL65Onyama Limba
1015Rodrigues CampainJapan2025-08-12King, Christopher A Esq PROPOSAL99Xuxue Feng
1016Maisha RulapaughRussia2025-08-21Chemel, James L Cpa RENEWAL25Ioni Bowcher
1017Clifford RimGermany2025-09-05King, Christopher A Esq UNQUALIFIED52Onyama Limba
1018Stacey MacleadSpain2025-09-03Chapman, Ross E Esq RENEWAL64Bernardo Dominic
1019Tony FollerRussia2025-09-01Truhlar And Truhlar Attys PROPOSAL70Xuxue Feng
1020Nicolas IturbideItaly2025-08-23Chapman, Ross E Esq PROPOSAL39Xuxue Feng
1021Julie StensethSpain2025-09-01Commercial Press UNQUALIFIED60Anna Fali
1022Tony FollerArgentina2025-08-23Dorl, James J Esq NEW41Amy Elsner
1023Mujtaba NickaSpain2025-09-05Rousseaux, Michael Esq UNQUALIFIED11Asiya Javayant
1024Leon OldroydSpain2025-09-03Rousseaux, Michael Esq NEW3Xuxue Feng
1025Costa DilliardFrance2025-09-06Commercial Press PROPOSAL25Xuxue Feng
1026Francesco ShinkoItaly2025-08-21Commercial Press RENEWAL65Stephen Shaw
1027Morrow RutaCanada2025-09-05Truhlar And Truhlar Attys PROPOSAL27Xuxue Feng
1028Faith GillianUnited Kingdom2025-08-31Feiner Bros NEW36Ioni Bowcher
1029Costa DilliardJapan2025-09-04Commercial Press RENEWAL77Ivan Magalhaes
1030David DarakjyArgentina2025-08-23Morlong Associates PROPOSAL77Bernardo Dominic
1031Octavia MaletRussia2025-08-30Chemel, James L Cpa UNQUALIFIED64Amy Elsner
1032Wickens NestleUnited Kingdom2025-08-13Chapman, Ross E Esq PROPOSAL60Onyama Limba
1033Munro FerenczAustralia2025-08-30King, Christopher A Esq PROPOSAL22Bernardo Dominic
1034Antonio CaudyAustralia2025-09-03Chemel, James L Cpa UNQUALIFIED99Ivan Magalhaes
1035Smith GlickRussia2025-09-02Commercial Press NEW28Elwin Sharvill
1036Salvatore StockhamBrazil2025-08-21Feltz Printing Service QUALIFIED7Bernardo Dominic
1037Johnson SergiRussia2025-09-01Rangoni Of Florence UNQUALIFIED45Onyama Limba
1038Nicolas IturbideBrazil2025-09-05Commercial Press PROPOSAL68Anna Fali
1039Silvio SlusarskiJapan2025-08-13Morlong Associates NEW64Xuxue Feng
1040Octavia MaletRussia2025-08-17Chanay, Jeffrey A Esq QUALIFIED93Bernardo Dominic
1041Adams MorascaItaly2025-09-07Buckley Miller Wright UNQUALIFIED16Onyama Limba
1042Leon OldroydJapan2025-09-03Commercial Press NEGOTIATION28Bernardo Dominic
1043Smith GlickSpain2025-08-17Benton, John B Jr PROPOSAL75Anna Fali
1044Jennifer AmigonGermany2025-08-23Chemel, James L Cpa NEW37Elwin Sharvill
1045Maria MarrierAustralia2025-08-22Rangoni Of Florence NEGOTIATION93Xuxue Feng
1046Emily WhobreyIndia2025-08-29Buckley Miller Wright UNQUALIFIED46Anna Fali
1047Greenwood BologniaIndia2025-08-30Feltz Printing Service NEW10Bernardo Dominic
1048Tony FollerIndia2025-08-21Printing Dimensions RENEWAL13Ivan Magalhaes
1049Alejandro PerinArgentina2025-09-04King, Christopher A Esq NEGOTIATION23Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaArgentinaElwin Sharvill RENEWAL
Kaitlin OstroskyArgentinaOnyama Limba PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant UNQUALIFIED
Emily WhobreySpainXuxue Feng RENEWAL
Jones VocelkaUnited KingdomBernardo Dominic RENEWAL
Chavez BriddickArgentinaIvan Magalhaes NEW
Smith GlickSpainBernardo Dominic NEGOTIATION
Johnson SergiJapanAmy Elsner NEW
Wickens NestleFranceIvan Magalhaes QUALIFIED
Antonio CaudyAustraliaElwin Sharvill QUALIFIED
Misaki RoysterItalyIoni Bowcher NEGOTIATION
Maria MarrierRussiaAsiya Javayant NEGOTIATION
Jones VocelkaGermanyStephen Shaw RENEWAL
Aruna FigeroaSpainStephen Shaw NEGOTIATION
Emily WhobreyCanadaBernardo Dominic UNQUALIFIED
James ButtRussiaIoni Bowcher PROPOSAL
Leon OldroydArgentinaBernardo Dominic QUALIFIED
Mayumi KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Ivar PaprockiRussiaOnyama Limba PROPOSAL
Octavia MaletSpainElwin Sharvill NEW
Chavez BriddickCanadaStephen Shaw UNQUALIFIED
Sinclair WaycottIndiaIvan Magalhaes UNQUALIFIED
Alejandro PerinBrazilIoni Bowcher NEW
Rodrigues CampainAustraliaAsiya Javayant NEW
Juan WieserJapanAmy Elsner RENEWAL
Ricardo GauchoCanadaOnyama Limba QUALIFIED
Deepesh ChuiRussiaIoni Bowcher UNQUALIFIED
Murillo MaletBrazilOnyama Limba QUALIFIED
Julie StensethSpainAmy Elsner PROPOSAL
Greenwood BologniaAustraliaIvan Magalhaes PROPOSAL
Claire TollnerBrazilAmy Elsner PROPOSAL
Costa DilliardIndiaElwin Sharvill RENEWAL
Adams MorascaAustraliaStephen Shaw NEGOTIATION
Jones VocelkaCanadaAmy Elsner RENEWAL
Ricardo GauchoUnited KingdomIvan Magalhaes PROPOSAL
Johnson SergiSpainElwin Sharvill NEGOTIATION
Darci PoquetteBrazilBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaOnyama Limba NEGOTIATION
Jeanfrancois VenereArgentinaIoni Bowcher PROPOSAL
Silvio SlusarskiSpainXuxue Feng NEGOTIATION
Isabel BowleyRussiaBernardo Dominic NEW
Jeanfrancois VenereUnited KingdomOnyama Limba UNQUALIFIED
Tony FollerCanadaElwin Sharvill QUALIFIED
Leon OldroydGermanyIvan Magalhaes PROPOSAL
David DarakjyAustraliaElwin Sharvill NEGOTIATION
Maria MarrierRussiaAsiya Javayant QUALIFIED
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Kadeem FlosiCanadaStephen Shaw QUALIFIED
Greenwood BologniaAustraliaIvan Magalhaes NEGOTIATION
Greenwood BologniaArgentinaAnna Fali PROPOSAL
Frozen Columns
Name
Clifford Rim
Leja Caldarera
Nicolas Iturbide
Aruna Figeroa
Misaki Royster
Jeanfrancois Venere
Murillo Malet
Kadeem Flosi
Silvio Slusarski
Francesco Shinko
Jennifer Amigon
Greenwood Bolognia
Antonio Caudy
Aruna Figeroa
Jefferson Schemmer
Rodrigues Campain
Deepesh Chui
Smith Glick
Leja Caldarera
Wickens Nestle
Kadeem Flosi
Murillo Malet
Maria Marrier
Darci Poquette
Emily Whobrey
Arvin Albares
Julie Stenseth
Faith Gillian
Aruna Figeroa
Octavia Malet
James Butt
Costa Dilliard
Julie Stenseth
Johnson Sergi
Darci Poquette
David Darakjy
Aika Inouye
Octavia Malet
Chavez Briddick
Antonio Caudy
Juan Wieser
Ivar Paprocki
Murillo Malet
Wickens Nestle
Jones Vocelka
Deepesh Chui
Morrow Ruta
Stacey Maclead
Kadeem Flosi
Izzy Garufi
IdCountryDate
1000Canada2025-08-30
1001Argentina2025-08-13
1002Germany2025-08-31
1003Russia2025-08-28
1004France2025-08-09
1005Argentina2025-08-21
1006Russia2025-08-20
1007Canada2025-09-03
1008United Kingdom2025-08-28
1009France2025-08-23
1010India2025-09-02
1011United Kingdom2025-09-02
1012Japan2025-08-27
1013Japan2025-08-10
1014Germany2025-09-05
1015Spain2025-09-07
1016Australia2025-09-05
1017France2025-08-25
1018Spain2025-09-01
1019Argentina2025-09-06
1020Italy2025-09-05
1021Spain2025-08-19
1022Canada2025-08-16
1023Spain2025-08-11
1024Brazil2025-08-12
1025United Kingdom2025-08-30
1026Russia2025-09-05
1027Argentina2025-08-28
1028Italy2025-08-11
1029Spain2025-08-09
1030Argentina2025-08-23
1031Australia2025-08-22
1032Spain2025-09-04
1033Japan2025-08-24
1034India2025-08-20
1035Russia2025-08-17
1036Italy2025-08-11
1037Japan2025-08-09
1038Canada2025-08-10
1039Russia2025-09-05
1040Germany2025-09-04
1041Brazil2025-08-10
1042Japan2025-08-23
1043Brazil2025-09-01
1044United Kingdom2025-08-16
1045India2025-08-18
1046Germany2025-08-10
1047Argentina2025-09-01
1048France2025-08-18
1049Argentina2025-09-05

On-Demand Data

NameIdCountryDate
Misaki Royster1000India2025-09-07
Salvatore Stockham1001Spain2025-08-31
Clifford Rim1002Spain2025-09-03
Deepesh Chui1003Italy2025-08-24
Nicolas Iturbide1004France2025-08-13
Silvio Slusarski1005Japan2025-08-14
David Darakjy1006United Kingdom2025-08-25
Clifford Rim1007Brazil2025-08-20
Aditya Kusko1008Germany2025-09-01
James Butt1009India2025-08-13
Alejandro Perin1010Spain2025-08-14
Darci Poquette1011Canada2025-08-19
Antonio Caudy1012United Kingdom2025-08-31
Mayumi Kolmetz1013Russia2025-08-27
Julie Stenseth1014France2025-08-17
Adams Morasca1015Japan2025-09-05
James Butt1016Brazil2025-09-02
David Darakjy1017Brazil2025-09-05
Arvin Albares1018France2025-08-31
Adams Morasca1019Spain2025-08-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna FigeroaBrazilXuxue Feng PROPOSAL
Mayumi KolmetzGermanyStephen Shaw QUALIFIED
Mayumi KolmetzFranceAnna Fali NEGOTIATION
Julie StensethGermanyAnna Fali RENEWAL
Julie StensethRussiaIvan Magalhaes NEW
Nicolas IturbideGermanyOnyama Limba RENEWAL
Kaitlin OstroskyUnited KingdomBernardo Dominic QUALIFIED
Antonio CaudyArgentinaAnna Fali PROPOSAL
Morrow RutaSpainIoni Bowcher UNQUALIFIED
Deepesh ChuiSpainElwin Sharvill NEW
Ricardo GauchoRussiaElwin Sharvill NEW
Antonio CaudyCanadaIoni Bowcher UNQUALIFIED
Murillo MaletJapanElwin Sharvill NEW
Juan WieserSpainXuxue Feng PROPOSAL
Ashley DoeJapanAmy Elsner UNQUALIFIED
Maria MarrierCanadaOnyama Limba RENEWAL
Adams MorascaAustraliaIvan Magalhaes RENEWAL
Rodrigues CampainJapanOnyama Limba PROPOSAL
Murillo MaletUnited KingdomElwin Sharvill NEGOTIATION
Aika InouyeIndiaXuxue Feng RENEWAL
Jones VocelkaUnited KingdomBernardo Dominic RENEWAL
Francesco ShinkoCanadaXuxue Feng PROPOSAL
Mayumi KolmetzBrazilElwin Sharvill PROPOSAL
Wickens NestleArgentinaAnna Fali RENEWAL
Leon OldroydJapanAmy Elsner RENEWAL
Jennifer AmigonBrazilStephen Shaw QUALIFIED
Izzy GarufiRussiaAnna Fali RENEWAL
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Isabel BowleySpainBernardo Dominic NEGOTIATION
Ivar PaprockiRussiaAnna Fali NEW
Costa DilliardArgentinaStephen Shaw NEGOTIATION
Aditya KuskoGermanyAsiya Javayant RENEWAL
Kadeem FlosiCanadaOnyama Limba UNQUALIFIED
Izzy GarufiItalyAnna Fali NEGOTIATION
Ivar PaprockiSpainIvan Magalhaes QUALIFIED
Jeanfrancois VenereSpainBernardo Dominic RENEWAL
Faith GillianItalyOnyama Limba RENEWAL
Jennifer AmigonIndiaAnna Fali UNQUALIFIED
Wickens NestleBrazilOnyama Limba NEW
Faith GillianIndiaBernardo Dominic 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>