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
Jennifer AmigonJapanOnyama Limba QUALIFIED
Wickens NestleFranceIoni Bowcher NEW
Cody SaylorsFranceBernardo Dominic NEGOTIATION
Sinclair WaycottRussiaBernardo Dominic RENEWAL
Juan WieserAustraliaXuxue Feng UNQUALIFIED
Deepesh ChuiAustraliaXuxue Feng QUALIFIED
Maria MarrierIndiaOnyama Limba QUALIFIED
Stacey MacleadBrazilAmy Elsner QUALIFIED
Antonio CaudyFranceIoni Bowcher UNQUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw QUALIFIED
Jennifer AmigonJapanAnna Fali NEW
Faith GillianItalyElwin Sharvill RENEWAL
David DarakjyRussiaBernardo Dominic QUALIFIED
Rodrigues CampainJapanAnna Fali QUALIFIED
Murillo MaletSpainElwin Sharvill NEW
Jefferson SchemmerItalyIvan Magalhaes PROPOSAL
Kadeem FlosiIndiaIoni Bowcher UNQUALIFIED
Tony FollerSpainBernardo Dominic NEGOTIATION
Munro FerenczJapanAsiya Javayant UNQUALIFIED
Juan WieserArgentinaOnyama Limba PROPOSAL
Emily WhobreyArgentinaAsiya Javayant PROPOSAL
Faith GillianArgentinaIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaAnna Fali RENEWAL
Jones VocelkaBrazilOnyama Limba RENEWAL
Salvatore StockhamFranceAnna Fali PROPOSAL
Sinclair WaycottIndiaAsiya Javayant UNQUALIFIED
Misaki RoysterSpainAsiya Javayant NEW
Faith GillianGermanyAnna Fali NEGOTIATION
Chavez BriddickIndiaIoni Bowcher NEW
Jeanfrancois VenereArgentinaElwin Sharvill UNQUALIFIED
Silvio SlusarskiSpainXuxue Feng UNQUALIFIED
Murillo MaletItalyXuxue Feng QUALIFIED
Francesco ShinkoRussiaAsiya Javayant NEW
Misaki RoysterSpainXuxue Feng NEGOTIATION
Maisha RulapaughCanadaAmy Elsner NEGOTIATION
Kadeem FlosiAustraliaXuxue Feng QUALIFIED
Wickens NestleItalyIvan Magalhaes QUALIFIED
Antonio CaudyAustraliaIvan Magalhaes RENEWAL
David DarakjyJapanIvan Magalhaes PROPOSAL
Rodrigues CampainJapanIvan Magalhaes NEW
Antonio CaudyIndiaStephen Shaw NEGOTIATION
Claire TollnerJapanOnyama Limba RENEWAL
Aruna FigeroaItalyAnna Fali UNQUALIFIED
Alejandro PerinCanadaStephen Shaw RENEWAL
Salvatore StockhamSpainElwin Sharvill NEW
Aika InouyeUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiRussiaAnna Fali NEW
Claire TollnerArgentinaAnna Fali QUALIFIED
David DarakjyFranceElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa DilliardGermanyOnyama Limba QUALIFIED
Wickens NestleFranceOnyama Limba NEGOTIATION
Kadeem FlosiCanadaAnna Fali NEW
Juan WieserFranceBernardo Dominic RENEWAL
Wickens NestleGermanyAmy Elsner QUALIFIED
James ButtItalyIoni Bowcher UNQUALIFIED
Emily WhobreyCanadaOnyama Limba NEW
Ricardo GauchoGermanyXuxue Feng NEGOTIATION
Antonio CaudyJapanAmy Elsner PROPOSAL
Antonio CaudyFranceStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimArgentina2026-04-15Feltz Printing Service UNQUALIFIED69Onyama Limba
1001Arvin AlbaresCanada2026-04-26Commercial Press NEW55Asiya Javayant
1002Julie StensethFrance2026-04-25Morlong Associates UNQUALIFIED89Onyama Limba
1003Claire TollnerJapan2026-04-15Printing Dimensions QUALIFIED27Onyama Limba
1004Morrow RutaItaly2026-04-06Chanay, Jeffrey A Esq RENEWAL39Ivan Magalhaes
1005Mayumi KolmetzUnited Kingdom2026-04-23Printing Dimensions PROPOSAL27Ivan Magalhaes
1006Nicolas IturbideItaly2026-04-16Chapman, Ross E Esq RENEWAL91Stephen Shaw
1007Leja CaldareraIndia2026-04-27Chanay, Jeffrey A Esq QUALIFIED85Asiya Javayant
1008Alejandro PerinJapan2026-04-23Rousseaux, Michael Esq QUALIFIED15Ioni Bowcher
1009Wickens NestleGermany2026-04-21Morlong Associates PROPOSAL64Elwin Sharvill
1010Julie StensethFrance2026-04-05Printing Dimensions NEW59Ivan Magalhaes
1011Greenwood BologniaIndia2026-04-11Rangoni Of Florence QUALIFIED82Ivan Magalhaes
1012Jones VocelkaGermany2026-04-20Chanay, Jeffrey A Esq NEGOTIATION74Bernardo Dominic
1013Sinclair WaycottItaly2026-04-06Feiner Bros NEGOTIATION47Xuxue Feng
1014Faith GillianJapan2026-04-08Feiner Bros QUALIFIED36Onyama Limba
1015Mayumi KolmetzSpain2026-04-30Feiner Bros UNQUALIFIED18Onyama Limba
1016Silvio SlusarskiSpain2026-04-27Feiner Bros PROPOSAL63Elwin Sharvill
1017Ricardo GauchoItaly2026-04-08King, Christopher A Esq RENEWAL38Asiya Javayant
1018Misaki RoysterIndia2026-04-07Rousseaux, Michael Esq UNQUALIFIED96Xuxue Feng
1019Ricardo GauchoFrance2026-04-13Rangoni Of Florence NEW9Elwin Sharvill
1020Kaitlin OstroskyRussia2026-04-30Printing Dimensions RENEWAL1Stephen Shaw
1021Costa DilliardItaly2026-04-24Rousseaux, Michael Esq QUALIFIED28Ivan Magalhaes
1022Jefferson SchemmerGermany2026-04-09Chemel, James L Cpa RENEWAL13Amy Elsner
1023Chavez BriddickAustralia2026-04-08Feltz Printing Service PROPOSAL0Elwin Sharvill
1024Faith GillianAustralia2026-04-29Rousseaux, Michael Esq NEW15Xuxue Feng
1025Greenwood BologniaFrance2026-04-30Dorl, James J Esq PROPOSAL64Stephen Shaw
1026Kadeem FlosiItaly2026-05-03Chapman, Ross E Esq UNQUALIFIED39Elwin Sharvill
1027Munro FerenczArgentina2026-04-04Rangoni Of Florence UNQUALIFIED72Anna Fali
1028Emily WhobreySpain2026-04-18Benton, John B Jr PROPOSAL82Elwin Sharvill
1029Jeanfrancois VenereIndia2026-04-22Chemel, James L Cpa RENEWAL51Onyama Limba
1030Leon OldroydFrance2026-04-06Printing Dimensions NEW95Elwin Sharvill
1031Greenwood BologniaJapan2026-04-29Chanay, Jeffrey A Esq UNQUALIFIED1Asiya Javayant
1032Izzy GarufiBrazil2026-04-09Rousseaux, Michael Esq NEGOTIATION3Bernardo Dominic
1033James ButtArgentina2026-04-18Rousseaux, Michael Esq QUALIFIED75Bernardo Dominic
1034Jeanfrancois VenereArgentina2026-04-25Printing Dimensions PROPOSAL26Ivan Magalhaes
1035Clifford RimAustralia2026-04-09Chapman, Ross E Esq UNQUALIFIED57Onyama Limba
1036Smith GlickIndia2026-04-16Dorl, James J Esq RENEWAL14Ioni Bowcher
1037Ivar PaprockiItaly2026-04-21Chanay, Jeffrey A Esq QUALIFIED63Asiya Javayant
1038Wickens NestleCanada2026-04-30Chapman, Ross E Esq RENEWAL53Asiya Javayant
1039Izzy GarufiGermany2026-04-12King, Christopher A Esq RENEWAL89Elwin Sharvill
1040Faith GillianItaly2026-04-16Rangoni Of Florence RENEWAL88Amy Elsner
1041Ivar PaprockiRussia2026-04-05Morlong Associates QUALIFIED66Bernardo Dominic
1042Aruna FigeroaItaly2026-04-28Rangoni Of Florence RENEWAL26Anna Fali
1043Clifford RimJapan2026-05-01Morlong Associates NEW94Bernardo Dominic
1044Smith GlickUnited Kingdom2026-04-08King, Christopher A Esq QUALIFIED52Elwin Sharvill
1045Morrow RutaBrazil2026-04-30Printing Dimensions UNQUALIFIED3Bernardo Dominic
1046Alejandro PerinItaly2026-04-27King, Christopher A Esq QUALIFIED88Ivan Magalhaes
1047Jones VocelkaAustralia2026-04-22Benton, John B Jr NEGOTIATION54Ivan Magalhaes
1048Claire TollnerGermany2026-04-29Chapman, Ross E Esq UNQUALIFIED24Stephen Shaw
1049Antonio CaudyFrance2026-05-02Feltz Printing Service UNQUALIFIED23Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierIndiaAnna Fali RENEWAL
Smith GlickSpainXuxue Feng QUALIFIED
Silvio SlusarskiJapanIvan Magalhaes UNQUALIFIED
Mujtaba NickaCanadaIvan Magalhaes NEW
Misaki RoysterItalyStephen Shaw RENEWAL
Deepesh ChuiItalyStephen Shaw PROPOSAL
Arvin AlbaresIndiaXuxue Feng NEGOTIATION
Adams MorascaFranceOnyama Limba NEW
Juan WieserSpainStephen Shaw UNQUALIFIED
Jefferson SchemmerSpainOnyama Limba NEW
Murillo MaletGermanyAmy Elsner PROPOSAL
Mujtaba NickaItalyAmy Elsner RENEWAL
Silvio SlusarskiUnited KingdomAnna Fali PROPOSAL
Aruna FigeroaSpainXuxue Feng NEGOTIATION
Murillo MaletBrazilElwin Sharvill RENEWAL
Izzy GarufiItalyIvan Magalhaes PROPOSAL
Ashley DoeAustraliaStephen Shaw UNQUALIFIED
Isabel BowleyBrazilElwin Sharvill UNQUALIFIED
James ButtJapanAmy Elsner NEW
David DarakjyRussiaAsiya Javayant PROPOSAL
Misaki RoysterArgentinaOnyama Limba NEW
Silvio SlusarskiJapanOnyama Limba PROPOSAL
Maisha RulapaughGermanyIvan Magalhaes RENEWAL
Octavia MaletArgentinaElwin Sharvill UNQUALIFIED
Faith GillianAustraliaStephen Shaw UNQUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba NEGOTIATION
Costa DilliardItalyOnyama Limba NEGOTIATION
Maisha RulapaughCanadaXuxue Feng UNQUALIFIED
Greenwood BologniaCanadaAsiya Javayant NEW
Isabel BowleyFranceAsiya Javayant NEW
Costa DilliardIndiaAnna Fali NEW
Aditya KuskoUnited KingdomElwin Sharvill RENEWAL
Ivar PaprockiCanadaXuxue Feng RENEWAL
Murillo MaletGermanyIoni Bowcher QUALIFIED
Aika InouyeGermanyXuxue Feng QUALIFIED
Ashley DoeArgentinaAsiya Javayant UNQUALIFIED
Mayumi KolmetzRussiaOnyama Limba NEW
Jefferson SchemmerArgentinaAnna Fali NEW
Aruna FigeroaUnited KingdomOnyama Limba QUALIFIED
Wickens NestleFranceBernardo Dominic PROPOSAL
Chavez BriddickBrazilIvan Magalhaes PROPOSAL
Maisha RulapaughItalyAmy Elsner NEW
Adams MorascaAustraliaXuxue Feng PROPOSAL
Darci PoquetteItalyIvan Magalhaes PROPOSAL
Francesco ShinkoBrazilAmy Elsner UNQUALIFIED
Cody SaylorsItalyAsiya Javayant QUALIFIED
Kadeem FlosiBrazilAsiya Javayant NEW
Ashley DoeCanadaIoni Bowcher QUALIFIED
Deepesh ChuiCanadaXuxue Feng RENEWAL
Rodrigues CampainSpainAsiya Javayant QUALIFIED
Frozen Columns
Name
Adams Morasca
Octavia Malet
Smith Glick
Adams Morasca
Darci Poquette
Chavez Briddick
Ivar Paprocki
Arvin Albares
Nicolas Iturbide
Maria Marrier
Deepesh Chui
Silvio Slusarski
Salvatore Stockham
Tony Foller
Smith Glick
Mayumi Kolmetz
Clifford Rim
Nicolas Iturbide
Wickens Nestle
Costa Dilliard
Johnson Sergi
Claire Tollner
Clifford Rim
Munro Ferencz
Rodrigues Campain
Aruna Figeroa
Juan Wieser
Rodrigues Campain
Alejandro Perin
Smith Glick
Nicolas Iturbide
Isabel Bowley
Munro Ferencz
Munro Ferencz
Misaki Royster
Ashley Doe
Emily Whobrey
Sinclair Waycott
Murillo Malet
Faith Gillian
Jeanfrancois Venere
Misaki Royster
Costa Dilliard
Greenwood Bolognia
Salvatore Stockham
Francesco Shinko
Leja Caldarera
Salvatore Stockham
James Butt
Wickens Nestle
IdCountryDate
1000Italy2026-04-29
1001Russia2026-04-16
1002United Kingdom2026-04-20
1003Russia2026-04-29
1004Germany2026-04-12
1005United Kingdom2026-04-18
1006France2026-04-17
1007Spain2026-04-20
1008Italy2026-04-09
1009Argentina2026-04-07
1010France2026-04-27
1011Japan2026-04-23
1012France2026-04-06
1013Brazil2026-04-11
1014Japan2026-04-04
1015Canada2026-04-05
1016Germany2026-05-03
1017Canada2026-04-08
1018Japan2026-04-10
1019Italy2026-04-28
1020India2026-04-20
1021India2026-04-17
1022Spain2026-05-03
1023Canada2026-05-02
1024Italy2026-04-17
1025Russia2026-04-16
1026Italy2026-04-19
1027United Kingdom2026-04-19
1028Japan2026-04-11
1029Australia2026-04-07
1030Argentina2026-04-08
1031Russia2026-04-15
1032Australia2026-04-06
1033United Kingdom2026-04-09
1034France2026-05-03
1035Italy2026-04-21
1036France2026-04-15
1037France2026-04-27
1038Japan2026-04-04
1039Argentina2026-04-07
1040Spain2026-04-24
1041Brazil2026-04-12
1042Argentina2026-04-23
1043Brazil2026-04-19
1044Canada2026-04-30
1045Russia2026-04-07
1046Australia2026-04-06
1047Spain2026-05-02
1048Japan2026-04-07
1049Japan2026-04-10

On-Demand Data

NameIdCountryDate
Ashley Doe1000Germany2026-04-25
Maria Marrier1001Russia2026-04-11
Emily Whobrey1002Germany2026-04-05
Murillo Malet1003Australia2026-04-19
Tony Foller1004Russia2026-04-09
Clifford Rim1005Spain2026-04-22
Arvin Albares1006India2026-04-05
Jeanfrancois Venere1007France2026-05-03
Smith Glick1008India2026-04-22
Octavia Malet1009Italy2026-04-14
Maria Marrier1010Germany2026-04-05
Rodrigues Campain1011Japan2026-04-04
Claire Tollner1012Argentina2026-04-13
Chavez Briddick1013Canada2026-04-09
Stacey Maclead1014Australia2026-04-22
Juan Wieser1015Australia2026-05-01
Kadeem Flosi1016Russia2026-04-15
Leja Caldarera1017France2026-04-09
Mujtaba Nicka1018Australia2026-04-19
Francesco Shinko1019Argentina2026-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues CampainCanadaIoni Bowcher PROPOSAL
Maria MarrierSpainIoni Bowcher PROPOSAL
Emily WhobreyIndiaAmy Elsner RENEWAL
Kadeem FlosiSpainXuxue Feng QUALIFIED
Aruna FigeroaGermanyStephen Shaw NEGOTIATION
Faith GillianSpainIvan Magalhaes PROPOSAL
Misaki RoysterBrazilBernardo Dominic QUALIFIED
Julie StensethArgentinaElwin Sharvill NEGOTIATION
Aditya KuskoJapanIvan Magalhaes RENEWAL
Jefferson SchemmerAustraliaElwin Sharvill NEGOTIATION
Murillo MaletBrazilAsiya Javayant RENEWAL
Costa DilliardItalyElwin Sharvill NEW
Tony FollerFranceElwin Sharvill RENEWAL
Octavia MaletFranceElwin Sharvill UNQUALIFIED
Claire TollnerGermanyXuxue Feng QUALIFIED
Stacey MacleadAustraliaIvan Magalhaes NEW
Jefferson SchemmerAustraliaAmy Elsner RENEWAL
Jefferson SchemmerJapanIvan Magalhaes NEW
Maisha RulapaughAustraliaAnna Fali UNQUALIFIED
Rodrigues CampainAustraliaStephen Shaw UNQUALIFIED
Aruna FigeroaArgentinaXuxue Feng PROPOSAL
Silvio SlusarskiUnited KingdomElwin Sharvill RENEWAL
Wickens NestleBrazilStephen Shaw QUALIFIED
Ashley DoeFranceAsiya Javayant UNQUALIFIED
David DarakjyCanadaAsiya Javayant NEW
Ivar PaprockiRussiaBernardo Dominic PROPOSAL
Izzy GarufiItalyIoni Bowcher NEW
Mayumi KolmetzUnited KingdomAmy Elsner RENEWAL
Clifford RimBrazilIoni Bowcher UNQUALIFIED
Misaki RoysterGermanyAmy Elsner NEGOTIATION
Jennifer AmigonJapanAnna Fali NEGOTIATION
Adams MorascaGermanyAnna Fali RENEWAL
Octavia MaletBrazilAsiya Javayant PROPOSAL
Francesco ShinkoItalyElwin Sharvill UNQUALIFIED
Chavez BriddickCanadaStephen Shaw NEGOTIATION
Julie StensethCanadaAnna Fali QUALIFIED
Murillo MaletJapanStephen Shaw QUALIFIED
Claire TollnerArgentinaIoni Bowcher NEW
Chavez BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo MaletIndiaElwin Sharvill 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>