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
Costa DilliardJapanAsiya Javayant NEW
Maria MarrierFranceAmy Elsner NEW
Smith GlickJapanIvan Magalhaes NEGOTIATION
Adams MorascaArgentinaElwin Sharvill UNQUALIFIED
Maria MarrierAustraliaAmy Elsner PROPOSAL
Smith GlickSpainElwin Sharvill QUALIFIED
David DarakjyUnited KingdomBernardo Dominic RENEWAL
Maisha RulapaughCanadaElwin Sharvill QUALIFIED
David DarakjyJapanAsiya Javayant UNQUALIFIED
Tony FollerFranceXuxue Feng NEW
Mayumi KolmetzSpainAmy Elsner PROPOSAL
Faith GillianSpainAsiya Javayant NEGOTIATION
Deepesh ChuiUnited KingdomAnna Fali UNQUALIFIED
Kaitlin OstroskyItalyIvan Magalhaes UNQUALIFIED
Alejandro PerinSpainAmy Elsner RENEWAL
Smith GlickFranceAnna Fali NEW
Francesco ShinkoItalyAsiya Javayant NEGOTIATION
Sinclair WaycottItalyIvan Magalhaes NEGOTIATION
Aika InouyeGermanyXuxue Feng PROPOSAL
Aruna FigeroaItalyOnyama Limba PROPOSAL
Alejandro PerinBrazilElwin Sharvill QUALIFIED
Ivar PaprockiUnited KingdomBernardo Dominic QUALIFIED
David DarakjyItalyOnyama Limba NEW
Emily WhobreyJapanAsiya Javayant RENEWAL
Izzy GarufiIndiaXuxue Feng UNQUALIFIED
Maria MarrierItalyAsiya Javayant PROPOSAL
Maria MarrierSpainOnyama Limba NEW
Jeanfrancois VenereArgentinaIvan Magalhaes UNQUALIFIED
Salvatore StockhamCanadaIoni Bowcher QUALIFIED
Jeanfrancois VenereArgentinaIoni Bowcher QUALIFIED
Nicolas IturbideRussiaOnyama Limba RENEWAL
Sinclair WaycottUnited KingdomIoni Bowcher NEW
Rodrigues CampainUnited KingdomXuxue Feng UNQUALIFIED
Salvatore StockhamGermanyAnna Fali RENEWAL
David DarakjyCanadaElwin Sharvill QUALIFIED
Alejandro PerinSpainXuxue Feng UNQUALIFIED
Leja CaldareraRussiaAnna Fali NEW
James ButtItalyAnna Fali PROPOSAL
Isabel BowleySpainIvan Magalhaes RENEWAL
Aditya KuskoIndiaOnyama Limba UNQUALIFIED
Salvatore StockhamGermanyElwin Sharvill NEW
Jefferson SchemmerBrazilAsiya Javayant PROPOSAL
Murillo MaletFranceAnna Fali NEGOTIATION
Faith GillianRussiaXuxue Feng NEGOTIATION
Emily WhobreyItalyXuxue Feng RENEWAL
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Jennifer AmigonUnited KingdomIoni Bowcher NEW
Maria MarrierBrazilAmy Elsner NEW
Kadeem FlosiGermanyStephen Shaw QUALIFIED
Johnson SergiArgentinaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford RimRussiaXuxue Feng RENEWAL
Murillo MaletCanadaAsiya Javayant NEW
Smith GlickGermanyXuxue Feng UNQUALIFIED
Jones VocelkaItalyAsiya Javayant PROPOSAL
Maisha RulapaughItalyIoni Bowcher PROPOSAL
Kadeem FlosiBrazilAsiya Javayant NEW
Aika InouyeUnited KingdomStephen Shaw UNQUALIFIED
Murillo MaletItalyAnna Fali RENEWAL
Juan WieserGermanyOnyama Limba UNQUALIFIED
Antonio CaudyCanadaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaRussia2026-05-19Dorl, James J Esq UNQUALIFIED95Ioni Bowcher
1001Salvatore StockhamArgentina2026-05-02Printing Dimensions QUALIFIED41Stephen Shaw
1002Mujtaba NickaUnited Kingdom2026-05-17Truhlar And Truhlar Attys UNQUALIFIED85Anna Fali
1003Leja CaldareraJapan2026-05-24Chanay, Jeffrey A Esq QUALIFIED40Elwin Sharvill
1004Munro FerenczRussia2026-05-22Buckley Miller Wright NEW91Xuxue Feng
1005Clifford RimItaly2026-05-24King, Christopher A Esq NEW36Amy Elsner
1006Kaitlin OstroskyRussia2026-05-25Rousseaux, Michael Esq NEW47Elwin Sharvill
1007Francesco ShinkoItaly2026-05-10Printing Dimensions NEW3Anna Fali
1008Juan WieserUnited Kingdom2026-05-26King, Christopher A Esq NEW40Bernardo Dominic
1009Johnson SergiIndia2026-05-26Morlong Associates RENEWAL77Elwin Sharvill
1010Misaki RoysterAustralia2026-05-30Chemel, James L Cpa PROPOSAL15Bernardo Dominic
1011Smith GlickJapan2026-05-26Dorl, James J Esq PROPOSAL17Ivan Magalhaes
1012Mujtaba NickaIndia2026-05-15Feiner Bros NEGOTIATION10Amy Elsner
1013Tony FollerBrazil2026-05-21Rousseaux, Michael Esq PROPOSAL60Anna Fali
1014Chavez BriddickArgentina2026-05-08Morlong Associates NEGOTIATION70Ioni Bowcher
1015Juan WieserRussia2026-05-21Commercial Press NEW10Ivan Magalhaes
1016Greenwood BologniaArgentina2026-05-07Chanay, Jeffrey A Esq UNQUALIFIED72Elwin Sharvill
1017Alejandro PerinFrance2026-05-20Dorl, James J Esq RENEWAL25Onyama Limba
1018Juan WieserIndia2026-05-11Commercial Press UNQUALIFIED92Bernardo Dominic
1019Misaki RoysterSpain2026-05-06Buckley Miller Wright PROPOSAL80Elwin Sharvill
1020Arvin AlbaresGermany2026-05-08Dorl, James J Esq QUALIFIED87Stephen Shaw
1021Emily WhobreyItaly2026-05-04Rangoni Of Florence NEW9Onyama Limba
1022Juan WieserGermany2026-05-12Feiner Bros NEW12Elwin Sharvill
1023Costa DilliardGermany2026-05-15Benton, John B Jr NEGOTIATION24Anna Fali
1024Leja CaldareraItaly2026-05-21Feltz Printing Service RENEWAL70Xuxue Feng
1025Clifford RimIndia2026-05-07Commercial Press UNQUALIFIED88Stephen Shaw
1026Ivar PaprockiBrazil2026-05-02King, Christopher A Esq RENEWAL94Anna Fali
1027Greenwood BologniaItaly2026-05-17Chapman, Ross E Esq PROPOSAL88Stephen Shaw
1028Wickens NestleGermany2026-05-13Feltz Printing Service RENEWAL23Ivan Magalhaes
1029Julie StensethArgentina2026-05-13Feiner Bros PROPOSAL31Onyama Limba
1030Mayumi KolmetzBrazil2026-05-25Printing Dimensions UNQUALIFIED31Amy Elsner
1031Kaitlin OstroskyCanada2026-05-17Buckley Miller Wright QUALIFIED81Ioni Bowcher
1032Wickens NestleItaly2026-05-23Dorl, James J Esq NEGOTIATION9Bernardo Dominic
1033Juan WieserArgentina2026-05-19Feltz Printing Service QUALIFIED47Stephen Shaw
1034Johnson SergiGermany2026-05-04Dorl, James J Esq NEW2Ioni Bowcher
1035Murillo MaletArgentina2026-05-09Benton, John B Jr QUALIFIED38Ioni Bowcher
1036Claire TollnerGermany2026-05-04Printing Dimensions QUALIFIED32Ivan Magalhaes
1037Aruna FigeroaFrance2026-05-12Commercial Press PROPOSAL75Anna Fali
1038David DarakjyArgentina2026-05-16Benton, John B Jr NEW95Stephen Shaw
1039Juan WieserJapan2026-05-17Feltz Printing Service NEW79Asiya Javayant
1040Leon OldroydUnited Kingdom2026-05-31Chapman, Ross E Esq NEGOTIATION42Ioni Bowcher
1041Salvatore StockhamJapan2026-05-10Morlong Associates NEGOTIATION16Asiya Javayant
1042Johnson SergiAustralia2026-05-25Rangoni Of Florence RENEWAL24Ivan Magalhaes
1043Chavez BriddickCanada2026-05-19King, Christopher A Esq RENEWAL50Stephen Shaw
1044Jennifer AmigonSpain2026-05-24Morlong Associates NEGOTIATION16Anna Fali
1045Aruna FigeroaArgentina2026-05-31Chapman, Ross E Esq NEGOTIATION7Amy Elsner
1046Claire TollnerAustralia2026-05-07Chemel, James L Cpa PROPOSAL3Elwin Sharvill
1047Kadeem FlosiBrazil2026-05-27Dorl, James J Esq NEGOTIATION6Onyama Limba
1048Sinclair WaycottRussia2026-05-12Chemel, James L Cpa UNQUALIFIED67Bernardo Dominic
1049Chavez BriddickFrance2026-05-16King, Christopher A Esq UNQUALIFIED60Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeRussiaBernardo Dominic NEW
Jeanfrancois VenereIndiaBernardo Dominic PROPOSAL
Maria MarrierCanadaStephen Shaw QUALIFIED
Arvin AlbaresFranceXuxue Feng RENEWAL
Arvin AlbaresRussiaElwin Sharvill UNQUALIFIED
Munro FerenczIndiaElwin Sharvill RENEWAL
Maisha RulapaughSpainOnyama Limba QUALIFIED
James ButtIndiaAnna Fali RENEWAL
James ButtItalyXuxue Feng NEW
Maria MarrierRussiaAnna Fali PROPOSAL
Jeanfrancois VenereRussiaOnyama Limba QUALIFIED
Cody SaylorsItalyIoni Bowcher NEW
Mayumi KolmetzSpainStephen Shaw QUALIFIED
Jones VocelkaFranceAmy Elsner UNQUALIFIED
Jones VocelkaIndiaIvan Magalhaes NEGOTIATION
Stacey MacleadAustraliaElwin Sharvill NEGOTIATION
Munro FerenczSpainAmy Elsner QUALIFIED
Claire TollnerUnited KingdomOnyama Limba PROPOSAL
Claire TollnerCanadaOnyama Limba NEW
Kadeem FlosiCanadaBernardo Dominic UNQUALIFIED
Adams MorascaItalyIvan Magalhaes NEW
Francesco ShinkoArgentinaAsiya Javayant QUALIFIED
Maisha RulapaughBrazilStephen Shaw UNQUALIFIED
Salvatore StockhamArgentinaIoni Bowcher PROPOSAL
Ashley DoeArgentinaAnna Fali NEW
Sinclair WaycottItalyStephen Shaw UNQUALIFIED
Leja CaldareraUnited KingdomStephen Shaw NEW
Ivar PaprockiIndiaXuxue Feng NEW
Adams MorascaSpainIoni Bowcher PROPOSAL
Jeanfrancois VenereItalyStephen Shaw PROPOSAL
Ivar PaprockiSpainAsiya Javayant UNQUALIFIED
Jennifer AmigonAustraliaStephen Shaw PROPOSAL
Jeanfrancois VenereSpainIvan Magalhaes RENEWAL
Salvatore StockhamAustraliaElwin Sharvill PROPOSAL
Salvatore StockhamSpainStephen Shaw QUALIFIED
Clifford RimGermanyIvan Magalhaes NEW
Silvio SlusarskiBrazilStephen Shaw PROPOSAL
Emily WhobreyBrazilIoni Bowcher NEGOTIATION
Aruna FigeroaRussiaIoni Bowcher PROPOSAL
Jones VocelkaSpainAsiya Javayant NEGOTIATION
Mujtaba NickaUnited KingdomElwin Sharvill PROPOSAL
Greenwood BologniaRussiaBernardo Dominic PROPOSAL
Chavez BriddickAustraliaAmy Elsner UNQUALIFIED
Ashley DoeIndiaBernardo Dominic PROPOSAL
Maria MarrierJapanXuxue Feng QUALIFIED
Stacey MacleadBrazilAnna Fali PROPOSAL
David DarakjyAustraliaIoni Bowcher PROPOSAL
Aruna FigeroaFranceIvan Magalhaes QUALIFIED
Aika InouyeFranceXuxue Feng RENEWAL
Jefferson SchemmerGermanyAnna Fali NEW
Frozen Columns
Name
Wickens Nestle
Jeanfrancois Venere
Munro Ferencz
Smith Glick
Stacey Maclead
Alejandro Perin
Kaitlin Ostrosky
Mujtaba Nicka
Maisha Rulapaugh
Alejandro Perin
Aruna Figeroa
Sinclair Waycott
Maria Marrier
Chavez Briddick
Ricardo Gaucho
Sinclair Waycott
Jefferson Schemmer
Jones Vocelka
Salvatore Stockham
Isabel Bowley
Deepesh Chui
Darci Poquette
Mujtaba Nicka
Adams Morasca
Misaki Royster
Kaitlin Ostrosky
Leon Oldroyd
Greenwood Bolognia
Salvatore Stockham
Adams Morasca
Darci Poquette
Ashley Doe
Leon Oldroyd
Octavia Malet
Mayumi Kolmetz
Jennifer Amigon
Deepesh Chui
Mayumi Kolmetz
Wickens Nestle
Tony Foller
Stacey Maclead
Antonio Caudy
Greenwood Bolognia
Deepesh Chui
Costa Dilliard
Stacey Maclead
Cody Saylors
Tony Foller
Cody Saylors
Nicolas Iturbide
IdCountryDate
1000Russia2026-05-12
1001Australia2026-05-03
1002Japan2026-05-25
1003Russia2026-05-11
1004Brazil2026-05-03
1005Spain2026-05-28
1006Spain2026-05-19
1007Spain2026-05-19
1008Japan2026-05-31
1009Canada2026-05-07
1010Germany2026-05-13
1011Germany2026-05-15
1012Germany2026-05-21
1013Spain2026-05-04
1014Spain2026-05-07
1015Canada2026-05-18
1016Canada2026-05-02
1017Brazil2026-05-26
1018Japan2026-05-11
1019Germany2026-05-28
1020Argentina2026-05-09
1021Canada2026-05-09
1022Germany2026-05-22
1023Canada2026-05-06
1024India2026-05-08
1025India2026-05-29
1026United Kingdom2026-05-23
1027France2026-05-14
1028Spain2026-05-03
1029United Kingdom2026-05-20
1030Russia2026-05-30
1031Germany2026-05-12
1032Argentina2026-05-07
1033Canada2026-05-27
1034Italy2026-05-09
1035Brazil2026-05-31
1036United Kingdom2026-05-21
1037Japan2026-05-12
1038Italy2026-05-21
1039United Kingdom2026-05-24
1040Spain2026-05-23
1041Germany2026-05-21
1042Spain2026-05-10
1043United Kingdom2026-05-19
1044India2026-05-10
1045Spain2026-05-18
1046Germany2026-05-28
1047Argentina2026-05-15
1048France2026-05-31
1049Brazil2026-05-02

On-Demand Data

NameIdCountryDate
Tony Foller1000United Kingdom2026-05-25
Jones Vocelka1001Germany2026-05-04
Morrow Ruta1002Italy2026-05-23
Munro Ferencz1003Italy2026-05-31
Francesco Shinko1004Australia2026-05-23
Jones Vocelka1005Canada2026-05-13
Mujtaba Nicka1006France2026-05-14
Johnson Sergi1007Australia2026-05-30
Ricardo Gaucho1008Brazil2026-05-26
Ashley Doe1009Spain2026-05-21
Maisha Rulapaugh1010Australia2026-05-09
Clifford Rim1011United Kingdom2026-05-04
Mayumi Kolmetz1012Canada2026-05-05
Cody Saylors1013Russia2026-05-15
Izzy Garufi1014Japan2026-05-25
Jones Vocelka1015Russia2026-05-17
Costa Dilliard1016United Kingdom2026-05-04
Ivar Paprocki1017Italy2026-05-13
Arvin Albares1018Japan2026-05-11
Chavez Briddick1019Russia2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonIndiaBernardo Dominic UNQUALIFIED
Jennifer AmigonSpainAsiya Javayant PROPOSAL
Tony FollerUnited KingdomElwin Sharvill NEW
Kadeem FlosiSpainOnyama Limba NEW
Johnson SergiCanadaAsiya Javayant UNQUALIFIED
Emily WhobreyCanadaOnyama Limba PROPOSAL
Mayumi KolmetzBrazilBernardo Dominic NEGOTIATION
Faith GillianAustraliaXuxue Feng NEGOTIATION
Munro FerenczSpainAnna Fali NEW
Aditya KuskoBrazilAnna Fali NEW
Jones VocelkaIndiaElwin Sharvill PROPOSAL
Sinclair WaycottCanadaAmy Elsner NEGOTIATION
Adams MorascaCanadaAnna Fali NEW
Greenwood BologniaIndiaElwin Sharvill UNQUALIFIED
Darci PoquetteGermanyAsiya Javayant NEW
Mujtaba NickaAustraliaIoni Bowcher RENEWAL
David DarakjyJapanAmy Elsner QUALIFIED
Julie StensethCanadaElwin Sharvill RENEWAL
Leon OldroydFranceIvan Magalhaes NEW
Costa DilliardJapanElwin Sharvill NEGOTIATION
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Arvin AlbaresGermanyIoni Bowcher NEGOTIATION
Cody SaylorsBrazilBernardo Dominic NEW
Ricardo GauchoBrazilElwin Sharvill PROPOSAL
Jefferson SchemmerCanadaAsiya Javayant RENEWAL
Munro FerenczBrazilElwin Sharvill QUALIFIED
Deepesh ChuiAustraliaStephen Shaw RENEWAL
Misaki RoysterGermanyOnyama Limba NEW
Mayumi KolmetzBrazilIvan Magalhaes RENEWAL
Kadeem FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Cody SaylorsRussiaXuxue Feng NEW
Salvatore StockhamBrazilAnna Fali RENEWAL
Francesco ShinkoAustraliaIvan Magalhaes PROPOSAL
Silvio SlusarskiRussiaElwin Sharvill NEW
Leon OldroydItalyOnyama Limba PROPOSAL
Alejandro PerinItalyAnna Fali QUALIFIED
Ricardo GauchoArgentinaXuxue Feng PROPOSAL
Izzy GarufiFranceIvan Magalhaes RENEWAL
Arvin AlbaresItalyAnna Fali RENEWAL
Misaki RoysterCanadaXuxue Feng 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>