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
Smith GlickGermanyAsiya Javayant PROPOSAL
Mayumi KolmetzUnited KingdomOnyama Limba PROPOSAL
Stacey MacleadSpainElwin Sharvill PROPOSAL
Nicolas IturbideItalyOnyama Limba NEGOTIATION
Rodrigues CampainJapanElwin Sharvill NEGOTIATION
Leja CaldareraJapanBernardo Dominic NEW
Wickens NestleCanadaIoni Bowcher UNQUALIFIED
Aruna FigeroaFranceIvan Magalhaes NEGOTIATION
Jones VocelkaFranceXuxue Feng NEW
David DarakjyAustraliaOnyama Limba NEW
Ivar PaprockiFranceBernardo Dominic NEW
Tony FollerSpainAnna Fali RENEWAL
Clifford RimRussiaAsiya Javayant UNQUALIFIED
Mayumi KolmetzUnited KingdomStephen Shaw PROPOSAL
Clifford RimArgentinaAsiya Javayant NEW
Claire TollnerArgentinaIvan Magalhaes NEGOTIATION
Maria MarrierCanadaStephen Shaw PROPOSAL
Greenwood BologniaFranceAnna Fali RENEWAL
Chavez BriddickAustraliaIoni Bowcher RENEWAL
Sinclair WaycottJapanBernardo Dominic NEGOTIATION
Deepesh ChuiGermanyIoni Bowcher NEW
David DarakjyRussiaIoni Bowcher NEW
Antonio CaudyBrazilIvan Magalhaes RENEWAL
Darci PoquetteBrazilBernardo Dominic UNQUALIFIED
Cody SaylorsRussiaAsiya Javayant PROPOSAL
Morrow RutaCanadaBernardo Dominic QUALIFIED
Ashley DoeRussiaIvan Magalhaes RENEWAL
Smith GlickAustraliaBernardo Dominic QUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic NEW
Ivar PaprockiJapanIoni Bowcher NEW
Jeanfrancois VenereItalyBernardo Dominic PROPOSAL
Octavia MaletGermanyXuxue Feng QUALIFIED
Kadeem FlosiAustraliaAsiya Javayant PROPOSAL
Emily WhobreyCanadaAsiya Javayant UNQUALIFIED
Arvin AlbaresGermanyElwin Sharvill UNQUALIFIED
Darci PoquetteUnited KingdomXuxue Feng QUALIFIED
Emily WhobreyArgentinaBernardo Dominic NEW
Aditya KuskoGermanyBernardo Dominic RENEWAL
Ivar PaprockiGermanyAmy Elsner NEW
Clifford RimSpainIoni Bowcher RENEWAL
Wickens NestleRussiaOnyama Limba QUALIFIED
Stacey MacleadAustraliaElwin Sharvill PROPOSAL
Mujtaba NickaFranceAnna Fali QUALIFIED
Claire TollnerUnited KingdomAmy Elsner NEGOTIATION
Leja CaldareraSpainElwin Sharvill NEGOTIATION
Leon OldroydAustraliaIvan Magalhaes PROPOSAL
Stacey MacleadArgentinaElwin Sharvill NEW
Aruna FigeroaAustraliaAsiya Javayant PROPOSAL
Izzy GarufiAustraliaAmy Elsner QUALIFIED
Aditya KuskoUnited KingdomIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika InouyeJapanElwin Sharvill RENEWAL
Adams MorascaIndiaElwin Sharvill QUALIFIED
Leja CaldareraRussiaElwin Sharvill NEGOTIATION
Chavez BriddickFranceIoni Bowcher QUALIFIED
Jeanfrancois VenereRussiaElwin Sharvill NEGOTIATION
Rodrigues CampainArgentinaAnna Fali QUALIFIED
Jefferson SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson SchemmerRussiaIoni Bowcher PROPOSAL
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Izzy GarufiFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyGermany2025-08-11Chemel, James L Cpa UNQUALIFIED1Anna Fali
1001Ivar PaprockiAustralia2025-08-17Rangoni Of Florence PROPOSAL61Xuxue Feng
1002Stacey MacleadBrazil2025-09-06Rangoni Of Florence NEGOTIATION5Xuxue Feng
1003Morrow RutaArgentina2025-08-24Rangoni Of Florence PROPOSAL4Onyama Limba
1004Ivar PaprockiGermany2025-09-08Rangoni Of Florence RENEWAL40Ioni Bowcher
1005Johnson SergiItaly2025-08-15Chapman, Ross E Esq RENEWAL13Ioni Bowcher
1006Aika InouyeBrazil2025-08-25Chemel, James L Cpa NEGOTIATION95Asiya Javayant
1007Misaki RoysterIndia2025-08-24Chemel, James L Cpa RENEWAL2Xuxue Feng
1008Murillo MaletUnited Kingdom2025-08-25Morlong Associates NEW66Ivan Magalhaes
1009Mujtaba NickaRussia2025-08-26Morlong Associates QUALIFIED81Ioni Bowcher
1010Rodrigues CampainItaly2025-08-29Rangoni Of Florence QUALIFIED10Stephen Shaw
1011Mayumi KolmetzRussia2025-09-02Dorl, James J Esq QUALIFIED91Xuxue Feng
1012James ButtRussia2025-08-25Morlong Associates RENEWAL34Onyama Limba
1013James ButtIndia2025-09-03Buckley Miller Wright PROPOSAL50Asiya Javayant
1014Emily WhobreyCanada2025-09-02Morlong Associates QUALIFIED15Xuxue Feng
1015Faith GillianArgentina2025-09-08Benton, John B Jr NEGOTIATION79Asiya Javayant
1016Julie StensethJapan2025-08-24Chemel, James L Cpa RENEWAL14Amy Elsner
1017Silvio SlusarskiJapan2025-09-02Chapman, Ross E Esq NEGOTIATION0Asiya Javayant
1018Aruna FigeroaSpain2025-08-28King, Christopher A Esq RENEWAL78Ivan Magalhaes
1019Morrow RutaCanada2025-08-13Printing Dimensions PROPOSAL4Xuxue Feng
1020Octavia MaletSpain2025-08-22Printing Dimensions QUALIFIED58Anna Fali
1021Chavez BriddickBrazil2025-08-27Feltz Printing Service RENEWAL82Onyama Limba
1022Jeanfrancois VenereJapan2025-08-12Buckley Miller Wright PROPOSAL55Xuxue Feng
1023Jones VocelkaCanada2025-09-09Commercial Press RENEWAL49Bernardo Dominic
1024Aruna FigeroaItaly2025-08-12Rangoni Of Florence PROPOSAL50Amy Elsner
1025Antonio CaudyArgentina2025-08-26Benton, John B Jr PROPOSAL63Ioni Bowcher
1026Nicolas IturbideUnited Kingdom2025-08-28Benton, John B Jr NEW55Bernardo Dominic
1027Salvatore StockhamGermany2025-08-19Printing Dimensions UNQUALIFIED85Bernardo Dominic
1028Adams MorascaIndia2025-09-07Feiner Bros NEGOTIATION92Ivan Magalhaes
1029Deepesh ChuiFrance2025-08-17Feiner Bros PROPOSAL58Asiya Javayant
1030Darci PoquetteCanada2025-09-05Commercial Press QUALIFIED18Asiya Javayant
1031Clifford RimUnited Kingdom2025-08-16Morlong Associates PROPOSAL67Anna Fali
1032Darci PoquetteAustralia2025-08-27Rousseaux, Michael Esq NEGOTIATION17Onyama Limba
1033Stacey MacleadRussia2025-08-16Dorl, James J Esq UNQUALIFIED29Asiya Javayant
1034Ricardo GauchoArgentina2025-08-25Printing Dimensions QUALIFIED54Xuxue Feng
1035Isabel BowleyJapan2025-09-03Printing Dimensions RENEWAL63Anna Fali
1036Smith GlickBrazil2025-08-28Chanay, Jeffrey A Esq RENEWAL48Ivan Magalhaes
1037Mujtaba NickaGermany2025-08-22Chemel, James L Cpa PROPOSAL77Bernardo Dominic
1038Stacey MacleadRussia2025-08-28King, Christopher A Esq UNQUALIFIED72Anna Fali
1039Misaki RoysterSpain2025-08-19Feiner Bros QUALIFIED68Onyama Limba
1040Munro FerenczGermany2025-08-20Dorl, James J Esq NEGOTIATION2Asiya Javayant
1041Francesco ShinkoRussia2025-09-03Commercial Press NEW31Bernardo Dominic
1042David DarakjyAustralia2025-08-13Rangoni Of Florence NEW95Elwin Sharvill
1043Juan WieserSpain2025-09-05Chemel, James L Cpa PROPOSAL18Stephen Shaw
1044Rodrigues CampainItaly2025-08-30Feiner Bros NEW79Elwin Sharvill
1045Julie StensethBrazil2025-09-03Rousseaux, Michael Esq NEGOTIATION51Amy Elsner
1046Tony FollerItaly2025-09-08Rousseaux, Michael Esq QUALIFIED62Ioni Bowcher
1047Isabel BowleyFrance2025-08-22Buckley Miller Wright NEGOTIATION51Amy Elsner
1048Costa DilliardIndia2025-08-13Commercial Press RENEWAL94Asiya Javayant
1049Julie StensethArgentina2025-08-31Rangoni Of Florence QUALIFIED24Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczIndiaOnyama Limba NEW
Francesco ShinkoIndiaBernardo Dominic UNQUALIFIED
Nicolas IturbideCanadaIoni Bowcher PROPOSAL
David DarakjyBrazilIvan Magalhaes PROPOSAL
Claire TollnerBrazilAnna Fali RENEWAL
Darci PoquetteGermanyIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomAsiya Javayant RENEWAL
Alejandro PerinCanadaOnyama Limba RENEWAL
Rodrigues CampainIndiaElwin Sharvill NEGOTIATION
Costa DilliardFranceXuxue Feng UNQUALIFIED
Maria MarrierAustraliaAmy Elsner UNQUALIFIED
Jones VocelkaFranceXuxue Feng QUALIFIED
Aika InouyeSpainAnna Fali QUALIFIED
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Munro FerenczJapanIoni Bowcher QUALIFIED
Adams MorascaArgentinaAnna Fali NEGOTIATION
Aika InouyeArgentinaBernardo Dominic NEGOTIATION
Morrow RutaJapanAsiya Javayant PROPOSAL
Octavia MaletArgentinaElwin Sharvill NEGOTIATION
Aruna FigeroaItalyStephen Shaw PROPOSAL
Smith GlickSpainAmy Elsner NEW
Silvio SlusarskiBrazilStephen Shaw QUALIFIED
Tony FollerSpainAmy Elsner RENEWAL
Jones VocelkaJapanXuxue Feng NEW
Mujtaba NickaGermanyXuxue Feng NEGOTIATION
Faith GillianSpainIoni Bowcher PROPOSAL
Morrow RutaJapanElwin Sharvill NEW
Emily WhobreyIndiaIoni Bowcher PROPOSAL
Kaitlin OstroskyJapanStephen Shaw UNQUALIFIED
Mujtaba NickaItalyBernardo Dominic UNQUALIFIED
Julie StensethFranceAmy Elsner PROPOSAL
Tony FollerArgentinaIoni Bowcher RENEWAL
Francesco ShinkoFranceElwin Sharvill QUALIFIED
Jefferson SchemmerSpainOnyama Limba NEW
Silvio SlusarskiSpainBernardo Dominic UNQUALIFIED
Ivar PaprockiCanadaIoni Bowcher NEW
Octavia MaletBrazilBernardo Dominic RENEWAL
Clifford RimFranceAsiya Javayant RENEWAL
Isabel BowleyFranceAmy Elsner RENEWAL
Deepesh ChuiBrazilStephen Shaw NEW
Aruna FigeroaGermanyStephen Shaw NEGOTIATION
Aruna FigeroaJapanAsiya Javayant PROPOSAL
Aika InouyeJapanAmy Elsner UNQUALIFIED
Maisha RulapaughSpainAnna Fali RENEWAL
Costa DilliardGermanyElwin Sharvill NEW
Kaitlin OstroskyIndiaAnna Fali NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes QUALIFIED
Morrow RutaFranceIoni Bowcher NEGOTIATION
Jones VocelkaIndiaXuxue Feng RENEWAL
Aruna FigeroaSpainIvan Magalhaes RENEWAL
Frozen Columns
Name
Aika Inouye
Jeanfrancois Venere
Smith Glick
Emily Whobrey
Isabel Bowley
Tony Foller
Rodrigues Campain
Rodrigues Campain
Silvio Slusarski
Tony Foller
Izzy Garufi
Johnson Sergi
Munro Ferencz
Chavez Briddick
Morrow Ruta
Kaitlin Ostrosky
James Butt
Juan Wieser
Leja Caldarera
Maria Marrier
Juan Wieser
Leon Oldroyd
Ivar Paprocki
Juan Wieser
Alejandro Perin
Chavez Briddick
Darci Poquette
Jefferson Schemmer
Darci Poquette
Misaki Royster
Silvio Slusarski
Johnson Sergi
James Butt
Claire Tollner
Leon Oldroyd
James Butt
Morrow Ruta
Ivar Paprocki
Nicolas Iturbide
Mujtaba Nicka
David Darakjy
Mayumi Kolmetz
Ricardo Gaucho
Stacey Maclead
James Butt
Silvio Slusarski
Munro Ferencz
Salvatore Stockham
Ivar Paprocki
Tony Foller
IdCountryDate
1000Germany2025-09-08
1001Japan2025-08-27
1002Japan2025-08-17
1003Japan2025-09-01
1004India2025-08-23
1005India2025-08-13
1006Germany2025-08-26
1007Australia2025-08-12
1008Australia2025-09-02
1009Italy2025-09-02
1010Japan2025-08-21
1011Japan2025-08-30
1012Italy2025-08-27
1013Brazil2025-08-22
1014Italy2025-08-25
1015India2025-09-01
1016Germany2025-09-03
1017Italy2025-08-11
1018Canada2025-08-21
1019United Kingdom2025-09-04
1020Brazil2025-08-16
1021Russia2025-08-19
1022France2025-08-21
1023Japan2025-08-11
1024Australia2025-08-20
1025Russia2025-08-29
1026India2025-09-07
1027Russia2025-08-19
1028Argentina2025-08-22
1029India2025-09-03
1030Italy2025-08-28
1031Germany2025-09-06
1032Italy2025-08-21
1033Argentina2025-08-23
1034Italy2025-08-27
1035India2025-08-16
1036Argentina2025-08-28
1037Russia2025-09-06
1038Italy2025-08-13
1039Canada2025-09-03
1040Japan2025-09-05
1041Australia2025-08-23
1042Brazil2025-08-26
1043Australia2025-08-31
1044United Kingdom2025-08-31
1045Russia2025-09-02
1046Spain2025-08-14
1047Spain2025-08-22
1048Australia2025-08-14
1049India2025-08-14

On-Demand Data

NameIdCountryDate
Adams Morasca1000Australia2025-08-30
Wickens Nestle1001Brazil2025-09-09
Greenwood Bolognia1002Germany2025-09-07
Mayumi Kolmetz1003Brazil2025-08-21
Claire Tollner1004Italy2025-09-04
Wickens Nestle1005Australia2025-08-18
Aditya Kusko1006Brazil2025-08-15
Johnson Sergi1007United Kingdom2025-08-16
Mujtaba Nicka1008Germany2025-08-12
Aika Inouye1009Russia2025-08-29
Leja Caldarera1010Russia2025-08-30
Mujtaba Nicka1011Canada2025-08-13
Cody Saylors1012Canada2025-08-26
Munro Ferencz1013Australia2025-08-25
Izzy Garufi1014United Kingdom2025-09-08
Adams Morasca1015Russia2025-08-19
Maria Marrier1016Germany2025-09-02
Alejandro Perin1017Brazil2025-09-06
Isabel Bowley1018Canada2025-09-03
Juan Wieser1019United Kingdom2025-09-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerSpainAsiya Javayant UNQUALIFIED
Leon OldroydFranceIvan Magalhaes RENEWAL
Smith GlickArgentinaElwin Sharvill UNQUALIFIED
Faith GillianItalyXuxue Feng UNQUALIFIED
Sinclair WaycottArgentinaAnna Fali NEGOTIATION
Francesco ShinkoArgentinaBernardo Dominic NEW
Aditya KuskoJapanAmy Elsner NEGOTIATION
James ButtIndiaIoni Bowcher UNQUALIFIED
Ivar PaprockiUnited KingdomAsiya Javayant NEGOTIATION
Isabel BowleyJapanOnyama Limba NEGOTIATION
Jones VocelkaJapanAnna Fali RENEWAL
Smith GlickJapanOnyama Limba QUALIFIED
Misaki RoysterFranceAmy Elsner UNQUALIFIED
Morrow RutaGermanyBernardo Dominic NEGOTIATION
Aruna FigeroaJapanIoni Bowcher NEW
Costa DilliardArgentinaAmy Elsner QUALIFIED
Arvin AlbaresJapanAnna Fali RENEWAL
Antonio CaudyIndiaAnna Fali RENEWAL
Alejandro PerinCanadaIoni Bowcher RENEWAL
Morrow RutaUnited KingdomAnna Fali NEW
Smith GlickIndiaAsiya Javayant PROPOSAL
Aditya KuskoFranceXuxue Feng UNQUALIFIED
Rodrigues CampainFranceStephen Shaw QUALIFIED
Maria MarrierSpainAsiya Javayant NEW
Chavez BriddickItalyOnyama Limba RENEWAL
Johnson SergiUnited KingdomElwin Sharvill UNQUALIFIED
Johnson SergiCanadaElwin Sharvill QUALIFIED
Stacey MacleadIndiaElwin Sharvill RENEWAL
Octavia MaletFranceElwin Sharvill NEGOTIATION
Faith GillianAustraliaBernardo Dominic PROPOSAL
Faith GillianSpainAmy Elsner NEGOTIATION
Arvin AlbaresIndiaAsiya Javayant NEGOTIATION
Ivar PaprockiGermanyXuxue Feng NEW
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Francesco ShinkoArgentinaIoni Bowcher NEW
Misaki RoysterJapanIoni Bowcher RENEWAL
Rodrigues CampainBrazilAsiya Javayant NEW
Aditya KuskoArgentinaAmy Elsner QUALIFIED
Mujtaba NickaAustraliaIvan Magalhaes NEGOTIATION
Jennifer AmigonBrazilBernardo Dominic PROPOSAL

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