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
Mayumi KolmetzUnited KingdomAnna Fali QUALIFIED
Leon OldroydCanadaIoni Bowcher NEW
Jefferson SchemmerGermanyIvan Magalhaes UNQUALIFIED
Cody SaylorsAustraliaAmy Elsner NEW
David DarakjyItalyXuxue Feng PROPOSAL
Antonio CaudyRussiaXuxue Feng UNQUALIFIED
Morrow RutaSpainIoni Bowcher PROPOSAL
Johnson SergiAustraliaAnna Fali QUALIFIED
Izzy GarufiCanadaIoni Bowcher QUALIFIED
Munro FerenczBrazilAnna Fali RENEWAL
Ashley DoeSpainBernardo Dominic PROPOSAL
Aika InouyeSpainOnyama Limba UNQUALIFIED
David DarakjyCanadaAsiya Javayant QUALIFIED
James ButtFranceAmy Elsner PROPOSAL
Jeanfrancois VenereArgentinaXuxue Feng QUALIFIED
Leja CaldareraItalyIoni Bowcher UNQUALIFIED
Octavia MaletRussiaStephen Shaw PROPOSAL
Aika InouyeItalyAmy Elsner NEW
Kaitlin OstroskyItalyAnna Fali NEGOTIATION
Arvin AlbaresFranceStephen Shaw UNQUALIFIED
Misaki RoysterUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadFranceIvan Magalhaes NEW
Darci PoquetteGermanyXuxue Feng QUALIFIED
Francesco ShinkoSpainBernardo Dominic PROPOSAL
Misaki RoysterRussiaElwin Sharvill PROPOSAL
Emily WhobreyItalyAnna Fali RENEWAL
Kaitlin OstroskyAustraliaAsiya Javayant NEW
Cody SaylorsGermanyAnna Fali RENEWAL
Misaki RoysterFranceAsiya Javayant NEW
Izzy GarufiRussiaAsiya Javayant NEW
Salvatore StockhamItalyIoni Bowcher NEW
Kadeem FlosiSpainOnyama Limba UNQUALIFIED
Jeanfrancois VenereSpainXuxue Feng NEW
Salvatore StockhamIndiaStephen Shaw UNQUALIFIED
Kaitlin OstroskyFranceOnyama Limba RENEWAL
Ricardo GauchoItalyAmy Elsner NEW
Arvin AlbaresAustraliaXuxue Feng UNQUALIFIED
Mayumi KolmetzArgentinaIvan Magalhaes RENEWAL
Faith GillianArgentinaXuxue Feng NEGOTIATION
Maria MarrierGermanyIoni Bowcher NEW
Izzy GarufiCanadaIoni Bowcher RENEWAL
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Nicolas IturbideArgentinaBernardo Dominic RENEWAL
Octavia MaletFranceAsiya Javayant RENEWAL
Aika InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Murillo MaletAustraliaXuxue Feng PROPOSAL
Emily WhobreyBrazilAsiya Javayant UNQUALIFIED
David DarakjyArgentinaAnna Fali PROPOSAL
Tony FollerBrazilXuxue Feng PROPOSAL
Ivar PaprockiArgentinaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
James ButtIndiaIvan Magalhaes PROPOSAL
Greenwood BologniaCanadaIvan Magalhaes RENEWAL
Claire TollnerCanadaAmy Elsner NEW
Octavia MaletJapanXuxue Feng UNQUALIFIED
Deepesh ChuiCanadaAsiya Javayant QUALIFIED
Octavia MaletFranceAmy Elsner QUALIFIED
Darci PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Julie StensethGermanyIvan Magalhaes QUALIFIED
Chavez BriddickRussiaAsiya Javayant QUALIFIED
Maria MarrierGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoArgentina2026-04-05Feltz Printing Service UNQUALIFIED14Ivan Magalhaes
1001Emily WhobreyUnited Kingdom2026-05-02Dorl, James J Esq NEGOTIATION34Ivan Magalhaes
1002Jennifer AmigonGermany2026-04-23Rangoni Of Florence PROPOSAL74Anna Fali
1003Cody SaylorsCanada2026-04-12Printing Dimensions UNQUALIFIED4Anna Fali
1004Murillo MaletAustralia2026-04-11Commercial Press NEW50Onyama Limba
1005Murillo MaletJapan2026-04-25Printing Dimensions QUALIFIED71Bernardo Dominic
1006Alejandro PerinIndia2026-04-29Chemel, James L Cpa QUALIFIED54Onyama Limba
1007Octavia MaletItaly2026-04-22Benton, John B Jr NEGOTIATION66Xuxue Feng
1008Faith GillianCanada2026-05-02Morlong Associates PROPOSAL13Bernardo Dominic
1009Morrow RutaUnited Kingdom2026-04-09Rousseaux, Michael Esq NEW39Anna Fali
1010Maisha RulapaughItaly2026-05-01Chapman, Ross E Esq NEW79Anna Fali
1011Costa DilliardArgentina2026-04-18King, Christopher A Esq RENEWAL36Xuxue Feng
1012Kadeem FlosiUnited Kingdom2026-04-26Feltz Printing Service NEGOTIATION44Amy Elsner
1013Octavia MaletArgentina2026-04-06Chemel, James L Cpa NEW38Amy Elsner
1014Tony FollerUnited Kingdom2026-04-12Truhlar And Truhlar Attys NEW68Amy Elsner
1015Jefferson SchemmerSpain2026-04-30Buckley Miller Wright NEW42Anna Fali
1016Johnson SergiSpain2026-04-18Chemel, James L Cpa UNQUALIFIED69Asiya Javayant
1017Julie StensethGermany2026-04-30Chanay, Jeffrey A Esq NEGOTIATION38Anna Fali
1018Deepesh ChuiSpain2026-04-21Rousseaux, Michael Esq RENEWAL72Bernardo Dominic
1019Smith GlickArgentina2026-04-07Buckley Miller Wright RENEWAL5Asiya Javayant
1020Stacey MacleadGermany2026-04-19Truhlar And Truhlar Attys PROPOSAL42Ioni Bowcher
1021Cody SaylorsArgentina2026-04-23Buckley Miller Wright RENEWAL94Bernardo Dominic
1022Leon OldroydSpain2026-04-14Chapman, Ross E Esq NEGOTIATION77Amy Elsner
1023Ricardo GauchoCanada2026-04-06Feiner Bros PROPOSAL60Ivan Magalhaes
1024Smith GlickArgentina2026-04-07Feiner Bros UNQUALIFIED51Ioni Bowcher
1025Tony FollerIndia2026-04-22Commercial Press PROPOSAL75Onyama Limba
1026Juan WieserUnited Kingdom2026-04-12King, Christopher A Esq NEW36Asiya Javayant
1027Julie StensethItaly2026-04-26Commercial Press NEGOTIATION65Ioni Bowcher
1028Adams MorascaFrance2026-04-27Rangoni Of Florence UNQUALIFIED29Anna Fali
1029Cody SaylorsBrazil2026-04-23Feltz Printing Service NEW47Onyama Limba
1030Aditya KuskoFrance2026-04-18Rangoni Of Florence RENEWAL94Anna Fali
1031Darci PoquetteRussia2026-04-29Commercial Press PROPOSAL61Ivan Magalhaes
1032Jefferson SchemmerUnited Kingdom2026-04-30Rousseaux, Michael Esq QUALIFIED99Asiya Javayant
1033Maisha RulapaughJapan2026-04-22King, Christopher A Esq PROPOSAL88Elwin Sharvill
1034Salvatore StockhamCanada2026-04-18Morlong Associates PROPOSAL45Asiya Javayant
1035Aika InouyeArgentina2026-04-06Rangoni Of Florence NEW51Amy Elsner
1036Kaitlin OstroskyUnited Kingdom2026-05-03Chemel, James L Cpa QUALIFIED49Bernardo Dominic
1037Clifford RimRussia2026-05-02Rangoni Of Florence PROPOSAL37Ioni Bowcher
1038Clifford RimBrazil2026-05-01Buckley Miller Wright NEW68Stephen Shaw
1039Izzy GarufiIndia2026-04-13Buckley Miller Wright UNQUALIFIED22Amy Elsner
1040Aruna FigeroaIndia2026-04-24Chapman, Ross E Esq UNQUALIFIED40Amy Elsner
1041Jeanfrancois VenereItaly2026-04-14Feltz Printing Service NEW7Ivan Magalhaes
1042Aika InouyeIndia2026-04-19Truhlar And Truhlar Attys PROPOSAL62Anna Fali
1043Maria MarrierUnited Kingdom2026-04-26King, Christopher A Esq UNQUALIFIED51Stephen Shaw
1044Clifford RimSpain2026-04-28Chemel, James L Cpa NEGOTIATION78Onyama Limba
1045Tony FollerFrance2026-04-18Printing Dimensions NEW67Bernardo Dominic
1046Adams MorascaRussia2026-04-23Buckley Miller Wright RENEWAL13Elwin Sharvill
1047Jefferson SchemmerSpain2026-04-25Morlong Associates PROPOSAL80Xuxue Feng
1048Faith GillianBrazil2026-04-19Printing Dimensions QUALIFIED51Anna Fali
1049Leja CaldareraSpain2026-04-25Rousseaux, Michael Esq QUALIFIED64Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
James ButtRussiaStephen Shaw NEGOTIATION
Leon OldroydGermanyAnna Fali RENEWAL
Emily WhobreyCanadaBernardo Dominic PROPOSAL
Maisha RulapaughIndiaAnna Fali UNQUALIFIED
Darci PoquetteJapanAnna Fali QUALIFIED
Faith GillianIndiaOnyama Limba NEW
Deepesh ChuiIndiaIvan Magalhaes NEGOTIATION
Jones VocelkaJapanAsiya Javayant QUALIFIED
Ashley DoeFranceAsiya Javayant RENEWAL
Deepesh ChuiItalyAsiya Javayant QUALIFIED
Chavez BriddickArgentinaOnyama Limba QUALIFIED
Jeanfrancois VenereItalyAmy Elsner NEGOTIATION
James ButtGermanyOnyama Limba NEW
Costa DilliardBrazilXuxue Feng UNQUALIFIED
Munro FerenczFranceIvan Magalhaes NEGOTIATION
Clifford RimAustraliaAmy Elsner RENEWAL
Mayumi KolmetzIndiaStephen Shaw NEGOTIATION
Murillo MaletIndiaIvan Magalhaes NEGOTIATION
Johnson SergiFranceAsiya Javayant UNQUALIFIED
Wickens NestleSpainElwin Sharvill NEW
David DarakjyItalyIvan Magalhaes NEW
Ricardo GauchoAustraliaIoni Bowcher NEW
Adams MorascaJapanElwin Sharvill PROPOSAL
Jennifer AmigonJapanIoni Bowcher QUALIFIED
Aika InouyeArgentinaIvan Magalhaes NEGOTIATION
Morrow RutaUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba NickaAustraliaAsiya Javayant PROPOSAL
Arvin AlbaresGermanyIoni Bowcher NEW
Rodrigues CampainBrazilAnna Fali PROPOSAL
Juan WieserCanadaAnna Fali PROPOSAL
Maria MarrierIndiaStephen Shaw NEW
Misaki RoysterItalyElwin Sharvill PROPOSAL
Stacey MacleadJapanAmy Elsner PROPOSAL
Tony FollerFranceXuxue Feng QUALIFIED
Mayumi KolmetzGermanyStephen Shaw RENEWAL
Aruna FigeroaItalyIvan Magalhaes UNQUALIFIED
Ricardo GauchoIndiaOnyama Limba NEW
Cody SaylorsBrazilBernardo Dominic NEW
Alejandro PerinArgentinaAnna Fali NEW
Leon OldroydRussiaStephen Shaw RENEWAL
Maisha RulapaughJapanXuxue Feng PROPOSAL
Claire TollnerAustraliaStephen Shaw UNQUALIFIED
Salvatore StockhamSpainAmy Elsner NEW
Chavez BriddickJapanOnyama Limba PROPOSAL
Faith GillianUnited KingdomAnna Fali NEGOTIATION
Munro FerenczRussiaXuxue Feng PROPOSAL
Octavia MaletCanadaStephen Shaw NEW
Deepesh ChuiSpainElwin Sharvill PROPOSAL
Izzy GarufiCanadaAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaElwin Sharvill QUALIFIED
Frozen Columns
Name
Ricardo Gaucho
Sinclair Waycott
Deepesh Chui
Kadeem Flosi
Deepesh Chui
Mayumi Kolmetz
Greenwood Bolognia
Chavez Briddick
Murillo Malet
Jefferson Schemmer
Maria Marrier
Isabel Bowley
Leja Caldarera
Arvin Albares
Octavia Malet
Murillo Malet
Aika Inouye
Maria Marrier
Clifford Rim
Sinclair Waycott
Ivar Paprocki
Leja Caldarera
Alejandro Perin
Tony Foller
Ricardo Gaucho
Leon Oldroyd
Leon Oldroyd
Kadeem Flosi
Darci Poquette
Kaitlin Ostrosky
Faith Gillian
Adams Morasca
Silvio Slusarski
Maria Marrier
Jennifer Amigon
Greenwood Bolognia
Munro Ferencz
Mayumi Kolmetz
Aika Inouye
Aditya Kusko
Rodrigues Campain
Aruna Figeroa
Juan Wieser
Munro Ferencz
Octavia Malet
Morrow Ruta
Tony Foller
Wickens Nestle
Jefferson Schemmer
Morrow Ruta
IdCountryDate
1000Australia2026-05-01
1001Australia2026-04-27
1002Australia2026-04-18
1003France2026-04-21
1004India2026-05-02
1005Spain2026-05-02
1006Russia2026-04-09
1007Russia2026-04-17
1008Argentina2026-04-22
1009Australia2026-04-22
1010Spain2026-04-19
1011India2026-04-28
1012Germany2026-04-10
1013Argentina2026-04-06
1014India2026-04-26
1015United Kingdom2026-04-18
1016Japan2026-04-12
1017Argentina2026-04-30
1018Brazil2026-04-13
1019India2026-04-06
1020Russia2026-04-18
1021Italy2026-04-13
1022India2026-04-16
1023Spain2026-04-14
1024Canada2026-04-14
1025Italy2026-04-15
1026Brazil2026-04-13
1027Canada2026-04-16
1028United Kingdom2026-04-07
1029Australia2026-04-14
1030Germany2026-04-05
1031Brazil2026-04-15
1032Italy2026-04-22
1033Italy2026-04-11
1034India2026-04-18
1035Brazil2026-05-01
1036France2026-04-27
1037Japan2026-04-29
1038Brazil2026-05-02
1039Germany2026-05-02
1040Brazil2026-04-19
1041Japan2026-04-11
1042Canada2026-04-09
1043France2026-04-10
1044Russia2026-04-10
1045France2026-04-09
1046Russia2026-04-07
1047Argentina2026-04-29
1048Australia2026-04-18
1049Italy2026-05-02

On-Demand Data

NameIdCountryDate
Isabel Bowley1000Spain2026-04-08
Julie Stenseth1001Canada2026-04-30
Darci Poquette1002Brazil2026-04-05
Alejandro Perin1003Canada2026-04-08
Mayumi Kolmetz1004India2026-05-03
Kaitlin Ostrosky1005Spain2026-04-04
Ashley Doe1006Germany2026-04-13
Aditya Kusko1007Italy2026-04-05
Salvatore Stockham1008Spain2026-04-25
Faith Gillian1009Canada2026-04-20
Stacey Maclead1010Japan2026-04-14
Leja Caldarera1011France2026-04-29
Costa Dilliard1012Canada2026-04-26
Aruna Figeroa1013Canada2026-04-14
Ashley Doe1014India2026-04-27
Arvin Albares1015United Kingdom2026-04-04
Juan Wieser1016Japan2026-04-15
Nicolas Iturbide1017Germany2026-04-22
Jeanfrancois Venere1018Brazil2026-04-11
Clifford Rim1019Australia2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci PoquetteItalyIoni Bowcher RENEWAL
Rodrigues CampainAustraliaAmy Elsner RENEWAL
Mayumi KolmetzSpainStephen Shaw NEGOTIATION
Salvatore StockhamFranceIvan Magalhaes UNQUALIFIED
Leon OldroydSpainIvan Magalhaes QUALIFIED
Mayumi KolmetzJapanAnna Fali RENEWAL
Rodrigues CampainSpainIvan Magalhaes RENEWAL
David DarakjyGermanyStephen Shaw PROPOSAL
Chavez BriddickFranceAsiya Javayant RENEWAL
Johnson SergiArgentinaIoni Bowcher RENEWAL
Smith GlickBrazilAnna Fali RENEWAL
Emily WhobreyIndiaAnna Fali PROPOSAL
Maisha RulapaughItalyElwin Sharvill PROPOSAL
Deepesh ChuiRussiaAnna Fali UNQUALIFIED
Wickens NestleFranceAmy Elsner NEW
Jeanfrancois VenereFranceIoni Bowcher NEW
Sinclair WaycottIndiaElwin Sharvill NEGOTIATION
Arvin AlbaresIndiaOnyama Limba QUALIFIED
Stacey MacleadCanadaAsiya Javayant UNQUALIFIED
Maria MarrierJapanAnna Fali PROPOSAL
Francesco ShinkoGermanyBernardo Dominic RENEWAL
Julie StensethIndiaBernardo Dominic PROPOSAL
Mujtaba NickaArgentinaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyItalyXuxue Feng PROPOSAL
Arvin AlbaresIndiaIoni Bowcher RENEWAL
Adams MorascaRussiaAmy Elsner UNQUALIFIED
Aruna FigeroaAustraliaAsiya Javayant UNQUALIFIED
Faith GillianSpainXuxue Feng RENEWAL
Arvin AlbaresIndiaBernardo Dominic QUALIFIED
Emily WhobreyIndiaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyFranceOnyama Limba PROPOSAL
Maria MarrierIndiaIoni Bowcher QUALIFIED
Stacey MacleadUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya KuskoArgentinaAmy Elsner NEW
Salvatore StockhamFranceElwin Sharvill RENEWAL
Maria MarrierFranceElwin Sharvill QUALIFIED
Juan WieserFranceElwin Sharvill NEGOTIATION
Darci PoquetteArgentinaBernardo Dominic NEGOTIATION
Aruna FigeroaCanadaXuxue Feng PROPOSAL
Chavez BriddickGermanyStephen Shaw RENEWAL

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