Locale

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Bangla
Bosnian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
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
Ricardo GauchoUnited KingdomStephen Shaw RENEWAL
Juan WieserJapanAnna Fali PROPOSAL
Silvio SlusarskiCanadaAmy Elsner QUALIFIED
Aruna FigeroaUnited KingdomIvan Magalhaes NEW
Francesco ShinkoCanadaElwin Sharvill NEW
Jones VocelkaGermanyStephen Shaw RENEWAL
Aditya KuskoSpainAnna Fali UNQUALIFIED
Costa DilliardGermanyAmy Elsner UNQUALIFIED
Nicolas IturbideSpainAsiya Javayant RENEWAL
Leon OldroydSpainElwin Sharvill QUALIFIED
Ivar PaprockiFranceIvan Magalhaes PROPOSAL
Alejandro PerinFranceAmy Elsner PROPOSAL
Emily WhobreyJapanAnna Fali NEW
Izzy GarufiItalyStephen Shaw NEW
Salvatore StockhamUnited KingdomIvan Magalhaes NEW
Salvatore StockhamRussiaIvan Magalhaes NEGOTIATION
Aika InouyeCanadaAsiya Javayant NEGOTIATION
Cody SaylorsIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiFranceOnyama Limba RENEWAL
Jefferson SchemmerCanadaAnna Fali NEW
Nicolas IturbideCanadaAmy Elsner QUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Morrow RutaItalyElwin Sharvill NEGOTIATION
Cody SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Greenwood BologniaSpainAsiya Javayant UNQUALIFIED
Murillo MaletSpainXuxue Feng NEGOTIATION
Leon OldroydArgentinaOnyama Limba UNQUALIFIED
Ricardo GauchoGermanyIvan Magalhaes PROPOSAL
Murillo MaletJapanXuxue Feng NEW
Smith GlickAustraliaXuxue Feng PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant UNQUALIFIED
Julie StensethArgentinaIoni Bowcher PROPOSAL
Emily WhobreyRussiaXuxue Feng NEW
Izzy GarufiArgentinaAnna Fali UNQUALIFIED
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Emily WhobreyFranceXuxue Feng UNQUALIFIED
Darci PoquetteItalyIoni Bowcher RENEWAL
Ricardo GauchoFranceOnyama Limba UNQUALIFIED
Emily WhobreyFranceAmy Elsner NEGOTIATION
Julie StensethBrazilXuxue Feng NEGOTIATION
Morrow RutaAustraliaOnyama Limba QUALIFIED
Greenwood BologniaAustraliaBernardo Dominic NEGOTIATION
Aruna FigeroaArgentinaAnna Fali UNQUALIFIED
Munro FerenczArgentinaAnna Fali RENEWAL
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
Nicolas IturbideSpainElwin Sharvill UNQUALIFIED
Ashley DoeArgentinaXuxue Feng NEGOTIATION
Ricardo GauchoAustraliaOnyama Limba UNQUALIFIED
Cody SaylorsFranceOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Wickens NestleUnited KingdomXuxue Feng NEGOTIATION
Greenwood BologniaGermanyAmy Elsner NEW
Julie StensethCanadaAnna Fali QUALIFIED
Jennifer AmigonSpainBernardo Dominic RENEWAL
Leja CaldareraBrazilIvan Magalhaes UNQUALIFIED
Isabel BowleyUnited KingdomAsiya Javayant QUALIFIED
Darci PoquetteCanadaStephen Shaw UNQUALIFIED
Octavia MaletRussiaAnna Fali NEGOTIATION
Tony FollerItalyIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh ChuiArgentina2025-01-06Printing Dimensions RENEWAL68Anna Fali
1001Darci PoquetteItaly2025-01-04Feltz Printing Service PROPOSAL57Stephen Shaw
1002Maisha RulapaughRussia2025-01-16Dorl, James J Esq UNQUALIFIED63Ioni Bowcher
1003Silvio SlusarskiArgentina2024-12-21Rousseaux, Michael Esq RENEWAL85Anna Fali
1004Faith GillianIndia2025-01-05King, Christopher A Esq QUALIFIED8Onyama Limba
1005Murillo MaletArgentina2024-12-22Chanay, Jeffrey A Esq PROPOSAL62Ioni Bowcher
1006Murillo MaletFrance2024-12-20Commercial Press RENEWAL8Anna Fali
1007Maisha RulapaughItaly2024-12-26Dorl, James J Esq PROPOSAL93Ivan Magalhaes
1008Francesco ShinkoIndia2024-12-21Feltz Printing Service UNQUALIFIED87Anna Fali
1009Francesco ShinkoArgentina2025-01-10Feiner Bros UNQUALIFIED29Onyama Limba
1010Darci PoquetteJapan2025-01-09Dorl, James J Esq NEGOTIATION80Amy Elsner
1011Misaki RoysterFrance2024-12-29Chapman, Ross E Esq RENEWAL45Bernardo Dominic
1012Aika InouyeArgentina2024-12-21Buckley Miller Wright PROPOSAL6Ivan Magalhaes
1013Clifford RimBrazil2025-01-09Morlong Associates QUALIFIED5Asiya Javayant
1014Johnson SergiBrazil2025-01-06Rousseaux, Michael Esq PROPOSAL8Xuxue Feng
1015Silvio SlusarskiIndia2025-01-01Dorl, James J Esq PROPOSAL5Stephen Shaw
1016Maisha RulapaughItaly2025-01-11Feltz Printing Service RENEWAL19Xuxue Feng
1017Chavez BriddickGermany2025-01-05Dorl, James J Esq NEGOTIATION76Bernardo Dominic
1018Wickens NestleAustralia2025-01-16Buckley Miller Wright PROPOSAL63Amy Elsner
1019Arvin AlbaresJapan2025-01-08Feiner Bros NEW91Anna Fali
1020Kaitlin OstroskyIndia2024-12-31Benton, John B Jr UNQUALIFIED94Onyama Limba
1021David DarakjyIndia2025-01-03Chemel, James L Cpa NEGOTIATION14Bernardo Dominic
1022Octavia MaletArgentina2024-12-21Rousseaux, Michael Esq QUALIFIED9Xuxue Feng
1023Ricardo GauchoSpain2025-01-03Feltz Printing Service NEW57Stephen Shaw
1024Tony FollerSpain2024-12-29Chapman, Ross E Esq QUALIFIED26Amy Elsner
1025Leon OldroydFrance2024-12-19Feiner Bros QUALIFIED34Amy Elsner
1026Rodrigues CampainBrazil2025-01-03Truhlar And Truhlar Attys UNQUALIFIED51Stephen Shaw
1027Claire TollnerItaly2024-12-20Feltz Printing Service NEW50Elwin Sharvill
1028Sinclair WaycottItaly2024-12-24Feiner Bros PROPOSAL88Asiya Javayant
1029Costa DilliardGermany2025-01-08Morlong Associates NEW56Ivan Magalhaes
1030Ricardo GauchoSpain2025-01-12Chapman, Ross E Esq UNQUALIFIED68Asiya Javayant
1031Rodrigues CampainCanada2024-12-24Chapman, Ross E Esq NEW32Xuxue Feng
1032Julie StensethSpain2025-01-08Feltz Printing Service RENEWAL32Amy Elsner
1033Francesco ShinkoFrance2024-12-30Printing Dimensions NEGOTIATION4Ivan Magalhaes
1034Octavia MaletItaly2025-01-06Chapman, Ross E Esq UNQUALIFIED90Bernardo Dominic
1035Greenwood BologniaFrance2025-01-15Chemel, James L Cpa RENEWAL36Stephen Shaw
1036Johnson SergiSpain2024-12-21Commercial Press RENEWAL79Ioni Bowcher
1037Jennifer AmigonRussia2025-01-16King, Christopher A Esq NEGOTIATION97Bernardo Dominic
1038Nicolas IturbideAustralia2024-12-26Chemel, James L Cpa UNQUALIFIED9Asiya Javayant
1039Rodrigues CampainItaly2024-12-19Dorl, James J Esq UNQUALIFIED85Ivan Magalhaes
1040Jones VocelkaItaly2025-01-07Feiner Bros RENEWAL18Ioni Bowcher
1041Ricardo GauchoRussia2024-12-28Benton, John B Jr NEGOTIATION52Ioni Bowcher
1042Deepesh ChuiFrance2025-01-04Dorl, James J Esq RENEWAL20Asiya Javayant
1043Mujtaba NickaCanada2025-01-14Feiner Bros NEW54Amy Elsner
1044Claire TollnerIndia2024-12-20Benton, John B Jr NEW71Xuxue Feng
1045Rodrigues CampainRussia2024-12-19Feiner Bros QUALIFIED76Onyama Limba
1046Izzy GarufiAustralia2024-12-28Printing Dimensions PROPOSAL51Xuxue Feng
1047Clifford RimRussia2025-01-09Commercial Press NEGOTIATION22Elwin Sharvill
1048Aika InouyeBrazil2025-01-07Truhlar And Truhlar Attys PROPOSAL91Amy Elsner
1049Octavia MaletFrance2024-12-28Commercial Press PROPOSAL78Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletFranceXuxue Feng QUALIFIED
Costa DilliardAustraliaStephen Shaw NEW
Aika InouyeItalyStephen Shaw RENEWAL
Jefferson SchemmerItalyIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomElwin Sharvill NEW
Nicolas IturbideSpainOnyama Limba NEGOTIATION
Isabel BowleyAustraliaOnyama Limba UNQUALIFIED
Greenwood BologniaCanadaElwin Sharvill RENEWAL
Sinclair WaycottCanadaElwin Sharvill UNQUALIFIED
Misaki RoysterItalyAmy Elsner NEW
Ashley DoeRussiaOnyama Limba PROPOSAL
Emily WhobreyJapanStephen Shaw PROPOSAL
Aruna FigeroaIndiaIoni Bowcher PROPOSAL
Jeanfrancois VenereGermanyIoni Bowcher PROPOSAL
Izzy GarufiRussiaElwin Sharvill PROPOSAL
Izzy GarufiArgentinaOnyama Limba QUALIFIED
Adams MorascaGermanyBernardo Dominic NEGOTIATION
Aika InouyeSpainAmy Elsner QUALIFIED
Faith GillianBrazilIvan Magalhaes RENEWAL
Aditya KuskoFranceIoni Bowcher NEW
Salvatore StockhamGermanyAnna Fali RENEWAL
Aika InouyeRussiaElwin Sharvill RENEWAL
Julie StensethSpainAmy Elsner NEW
Adams MorascaUnited KingdomAsiya Javayant NEGOTIATION
Aruna FigeroaBrazilAnna Fali NEW
Arvin AlbaresItalyAsiya Javayant QUALIFIED
Jones VocelkaArgentinaOnyama Limba QUALIFIED
Alejandro PerinBrazilBernardo Dominic QUALIFIED
Emily WhobreyBrazilXuxue Feng UNQUALIFIED
Costa DilliardArgentinaAmy Elsner PROPOSAL
Claire TollnerSpainIvan Magalhaes QUALIFIED
Munro FerenczSpainIoni Bowcher QUALIFIED
Adams MorascaFranceOnyama Limba RENEWAL
Smith GlickIndiaBernardo Dominic UNQUALIFIED
James ButtSpainOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaIvan Magalhaes NEGOTIATION
Emily WhobreyIndiaIoni Bowcher UNQUALIFIED
Jennifer AmigonArgentinaAsiya Javayant NEGOTIATION
Murillo MaletAustraliaElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomAnna Fali NEW
Morrow RutaJapanAmy Elsner PROPOSAL
Cody SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Julie StensethFranceXuxue Feng NEW
Kadeem FlosiCanadaStephen Shaw QUALIFIED
Jones VocelkaJapanElwin Sharvill QUALIFIED
Ivar PaprockiSpainOnyama Limba NEW
Salvatore StockhamBrazilOnyama Limba NEW
Ashley DoeUnited KingdomXuxue Feng RENEWAL
Aika InouyeUnited KingdomBernardo Dominic NEGOTIATION
Julie StensethArgentinaAmy Elsner NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Julie Stenseth
Costa Dilliard
Darci Poquette
Izzy Garufi
Ricardo Gaucho
Octavia Malet
Izzy Garufi
Isabel Bowley
Kadeem Flosi
Misaki Royster
Maisha Rulapaugh
Arvin Albares
Sinclair Waycott
Emily Whobrey
Leja Caldarera
Leon Oldroyd
Julie Stenseth
Munro Ferencz
David Darakjy
Juan Wieser
Julie Stenseth
Darci Poquette
Ricardo Gaucho
James Butt
Jones Vocelka
Jefferson Schemmer
Chavez Briddick
Nicolas Iturbide
Misaki Royster
Antonio Caudy
Wickens Nestle
Octavia Malet
Leon Oldroyd
Cody Saylors
Sinclair Waycott
Deepesh Chui
Leja Caldarera
Chavez Briddick
Mayumi Kolmetz
Stacey Maclead
Leon Oldroyd
Silvio Slusarski
Rodrigues Campain
Maria Marrier
Kaitlin Ostrosky
Ashley Doe
Aditya Kusko
Jeanfrancois Venere
Stacey Maclead
IdCountryDate
1000Russia2025-01-06
1001Italy2025-01-07
1002Brazil2024-12-25
1003United Kingdom2025-01-11
1004Russia2024-12-30
1005Argentina2025-01-16
1006Spain2024-12-27
1007Argentina2025-01-06
1008Germany2025-01-10
1009United Kingdom2025-01-02
1010Brazil2025-01-02
1011Argentina2024-12-29
1012France2024-12-19
1013Argentina2024-12-20
1014Russia2025-01-05
1015Italy2025-01-05
1016Japan2025-01-06
1017Russia2024-12-30
1018Russia2025-01-13
1019Argentina2025-01-05
1020Japan2025-01-11
1021Australia2024-12-31
1022Russia2025-01-10
1023Russia2024-12-21
1024India2025-01-06
1025India2025-01-02
1026Italy2025-01-07
1027Germany2024-12-21
1028India2024-12-19
1029Argentina2024-12-27
1030India2024-12-26
1031United Kingdom2025-01-12
1032United Kingdom2025-01-06
1033Spain2025-01-02
1034Italy2024-12-25
1035France2025-01-16
1036Spain2025-01-08
1037Germany2024-12-20
1038United Kingdom2024-12-21
1039Australia2025-01-14
1040Argentina2025-01-15
1041Australia2024-12-27
1042Spain2024-12-30
1043Australia2025-01-12
1044Argentina2025-01-15
1045Japan2025-01-02
1046Brazil2025-01-10
1047Argentina2025-01-10
1048Italy2025-01-02
1049Italy2024-12-26

On-Demand Data

NameIdCountryDate
Darci Poquette1000France2025-01-04
Mayumi Kolmetz1001Canada2024-12-24
Ivar Paprocki1002Brazil2024-12-22
Chavez Briddick1003Australia2025-01-15
Wickens Nestle1004Australia2025-01-17
Munro Ferencz1005Germany2025-01-17
Arvin Albares1006Italy2025-01-01
Jeanfrancois Venere1007Germany2025-01-04
Ivar Paprocki1008Spain2025-01-13
Izzy Garufi1009Italy2024-12-29
Wickens Nestle1010Spain2024-12-23
Tony Foller1011France2024-12-25
James Butt1012India2024-12-25
Clifford Rim1013Spain2025-01-03
Wickens Nestle1014Russia2024-12-24
Murillo Malet1015Germany2025-01-08
James Butt1016United Kingdom2025-01-06
Francesco Shinko1017Germany2025-01-09
Smith Glick1018Germany2024-12-26
Murillo Malet1019Germany2025-01-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon OldroydIndiaIvan Magalhaes QUALIFIED
Sinclair WaycottJapanAnna Fali RENEWAL
Maria MarrierUnited KingdomIvan Magalhaes NEW
Nicolas IturbideSpainIvan Magalhaes RENEWAL
Leja CaldareraSpainXuxue Feng UNQUALIFIED
Silvio SlusarskiBrazilStephen Shaw UNQUALIFIED
Leon OldroydArgentinaAnna Fali NEGOTIATION
Misaki RoysterUnited KingdomStephen Shaw UNQUALIFIED
Alejandro PerinUnited KingdomXuxue Feng QUALIFIED
Juan WieserFranceAnna Fali QUALIFIED
Mujtaba NickaArgentinaAmy Elsner NEGOTIATION
Sinclair WaycottGermanyIvan Magalhaes QUALIFIED
Aika InouyeSpainIvan Magalhaes RENEWAL
Arvin AlbaresGermanyIvan Magalhaes RENEWAL
Stacey MacleadIndiaAsiya Javayant RENEWAL
Ashley DoeFranceAnna Fali NEW
Tony FollerItalyElwin Sharvill RENEWAL
Munro FerenczFranceIoni Bowcher PROPOSAL
Maria MarrierSpainOnyama Limba RENEWAL
Ashley DoeFranceXuxue Feng PROPOSAL
Leon OldroydUnited KingdomIvan Magalhaes RENEWAL
Tony FollerIndiaAmy Elsner PROPOSAL
Juan WieserItalyAnna Fali NEW
Greenwood BologniaGermanyAnna Fali QUALIFIED
Cody SaylorsBrazilAsiya Javayant QUALIFIED
Jones VocelkaGermanyAsiya Javayant QUALIFIED
Maisha RulapaughSpainIvan Magalhaes PROPOSAL
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
David DarakjyJapanStephen Shaw NEGOTIATION
Darci PoquetteArgentinaStephen Shaw RENEWAL
Wickens NestleCanadaStephen Shaw NEW
Kaitlin OstroskyCanadaAnna Fali NEW
Aruna FigeroaSpainIvan Magalhaes NEGOTIATION
Antonio CaudyJapanAsiya Javayant NEGOTIATION
Francesco ShinkoGermanyBernardo Dominic NEW
Kaitlin OstroskyJapanOnyama Limba NEGOTIATION
Izzy GarufiItalyAnna Fali NEW
Faith GillianGermanyIvan Magalhaes NEGOTIATION
Greenwood BologniaItalyOnyama Limba QUALIFIED
Johnson SergiFranceIoni Bowcher 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>