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
Alejandro PerinCanadaIvan Magalhaes QUALIFIED
Johnson SergiRussiaBernardo Dominic UNQUALIFIED
Stacey MacleadFranceIoni Bowcher NEW
Costa DilliardCanadaStephen Shaw NEW
Smith GlickGermanyElwin Sharvill QUALIFIED
Jones VocelkaArgentinaStephen Shaw PROPOSAL
Mayumi KolmetzRussiaAmy Elsner QUALIFIED
Darci PoquetteCanadaIoni Bowcher PROPOSAL
Arvin AlbaresBrazilElwin Sharvill NEGOTIATION
David DarakjyRussiaAnna Fali QUALIFIED
Smith GlickItalyIvan Magalhaes UNQUALIFIED
Alejandro PerinGermanyElwin Sharvill QUALIFIED
Maria MarrierAustraliaXuxue Feng RENEWAL
Nicolas IturbideCanadaStephen Shaw UNQUALIFIED
Darci PoquetteCanadaAsiya Javayant RENEWAL
Ricardo GauchoIndiaAnna Fali PROPOSAL
Leja CaldareraRussiaXuxue Feng QUALIFIED
Antonio CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Leon OldroydCanadaOnyama Limba RENEWAL
Kaitlin OstroskyGermanyStephen Shaw QUALIFIED
Greenwood BologniaCanadaAmy Elsner UNQUALIFIED
Murillo MaletRussiaElwin Sharvill RENEWAL
Kaitlin OstroskyItalyAmy Elsner UNQUALIFIED
Isabel BowleyArgentinaElwin Sharvill UNQUALIFIED
Aruna FigeroaCanadaOnyama Limba QUALIFIED
Wickens NestleFranceStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomAnna Fali NEW
Johnson SergiGermanyOnyama Limba PROPOSAL
Izzy GarufiUnited KingdomAnna Fali NEW
Murillo MaletJapanElwin Sharvill UNQUALIFIED
Maria MarrierAustraliaAmy Elsner RENEWAL
Aditya KuskoGermanyElwin Sharvill PROPOSAL
Jones VocelkaSpainIvan Magalhaes NEW
Emily WhobreyAustraliaIvan Magalhaes UNQUALIFIED
Julie StensethSpainElwin Sharvill PROPOSAL
James ButtItalyStephen Shaw NEW
Maisha RulapaughGermanyElwin Sharvill NEW
Clifford RimGermanyXuxue Feng NEGOTIATION
Ashley DoeCanadaAnna Fali PROPOSAL
Deepesh ChuiSpainBernardo Dominic NEGOTIATION
Clifford RimFranceXuxue Feng QUALIFIED
Morrow RutaArgentinaStephen Shaw NEGOTIATION
Salvatore StockhamItalyStephen Shaw RENEWAL
Claire TollnerItalyXuxue Feng NEW
Emily WhobreyItalyStephen Shaw QUALIFIED
Octavia MaletItalyXuxue Feng QUALIFIED
Leja CaldareraAustraliaAnna Fali QUALIFIED
Mayumi KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba NickaJapanOnyama Limba RENEWAL
Jennifer AmigonFranceStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamRussiaAnna Fali NEGOTIATION
Ricardo GauchoAustraliaStephen Shaw UNQUALIFIED
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic RENEWAL
Maria MarrierUnited KingdomBernardo Dominic NEW
Stacey MacleadItalyXuxue Feng NEW
Isabel BowleyItalyBernardo Dominic NEW
James ButtSpainBernardo Dominic NEGOTIATION
Aditya KuskoItalyAnna Fali NEW
Greenwood BologniaItalyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickAustralia2026-04-26Buckley Miller Wright NEGOTIATION69Xuxue Feng
1001Wickens NestleAustralia2026-05-07Chemel, James L Cpa RENEWAL18Ioni Bowcher
1002Kaitlin OstroskyJapan2026-04-20Morlong Associates PROPOSAL93Ioni Bowcher
1003Ivar PaprockiAustralia2026-04-25Chemel, James L Cpa NEGOTIATION15Asiya Javayant
1004Clifford RimCanada2026-04-16Feiner Bros UNQUALIFIED11Xuxue Feng
1005Adams MorascaArgentina2026-05-09Feltz Printing Service NEW30Anna Fali
1006Octavia MaletAustralia2026-05-02Buckley Miller Wright PROPOSAL51Asiya Javayant
1007Salvatore StockhamFrance2026-04-30Benton, John B Jr QUALIFIED3Anna Fali
1008Leon OldroydAustralia2026-04-22Truhlar And Truhlar Attys PROPOSAL61Anna Fali
1009Octavia MaletJapan2026-04-19Chemel, James L Cpa QUALIFIED78Elwin Sharvill
1010Munro FerenczArgentina2026-04-30Printing Dimensions NEW42Anna Fali
1011Emily WhobreyIndia2026-05-06Truhlar And Truhlar Attys UNQUALIFIED37Xuxue Feng
1012Adams MorascaBrazil2026-04-25Chemel, James L Cpa RENEWAL9Amy Elsner
1013Jennifer AmigonAustralia2026-05-05Dorl, James J Esq UNQUALIFIED46Ioni Bowcher
1014Ricardo GauchoArgentina2026-04-25Feiner Bros NEW38Xuxue Feng
1015Ashley DoeRussia2026-05-04Feltz Printing Service PROPOSAL94Ioni Bowcher
1016Arvin AlbaresItaly2026-04-29Benton, John B Jr UNQUALIFIED71Ivan Magalhaes
1017Maisha RulapaughCanada2026-04-23Chanay, Jeffrey A Esq QUALIFIED39Stephen Shaw
1018Smith GlickItaly2026-04-12Chemel, James L Cpa PROPOSAL18Onyama Limba
1019Stacey MacleadBrazil2026-05-02Feiner Bros UNQUALIFIED3Elwin Sharvill
1020Mayumi KolmetzItaly2026-05-05Feltz Printing Service PROPOSAL85Ioni Bowcher
1021Claire TollnerFrance2026-05-07Morlong Associates NEW47Ivan Magalhaes
1022Darci PoquetteGermany2026-04-22Rangoni Of Florence NEGOTIATION70Onyama Limba
1023Rodrigues CampainGermany2026-04-24Feltz Printing Service UNQUALIFIED48Asiya Javayant
1024Emily WhobreyIndia2026-04-21Buckley Miller Wright NEGOTIATION26Ioni Bowcher
1025Leon OldroydIndia2026-05-03Chanay, Jeffrey A Esq RENEWAL91Onyama Limba
1026Maria MarrierUnited Kingdom2026-04-10Rangoni Of Florence QUALIFIED17Asiya Javayant
1027Munro FerenczSpain2026-04-26Morlong Associates RENEWAL74Amy Elsner
1028Ivar PaprockiItaly2026-04-12Rousseaux, Michael Esq RENEWAL54Onyama Limba
1029Munro FerenczGermany2026-04-23Chemel, James L Cpa UNQUALIFIED26Anna Fali
1030Aika InouyeRussia2026-04-24Rousseaux, Michael Esq NEW30Onyama Limba
1031Jennifer AmigonSpain2026-05-06Buckley Miller Wright NEW44Stephen Shaw
1032Aruna FigeroaCanada2026-05-08Rousseaux, Michael Esq RENEWAL95Elwin Sharvill
1033Chavez BriddickSpain2026-05-05King, Christopher A Esq PROPOSAL77Asiya Javayant
1034Misaki RoysterAustralia2026-05-06Buckley Miller Wright NEW55Ioni Bowcher
1035Greenwood BologniaFrance2026-04-18Chanay, Jeffrey A Esq QUALIFIED30Anna Fali
1036Stacey MacleadCanada2026-05-02Feltz Printing Service UNQUALIFIED25Onyama Limba
1037Adams MorascaSpain2026-04-19Chapman, Ross E Esq RENEWAL94Anna Fali
1038Cody SaylorsJapan2026-04-13Benton, John B Jr NEW27Ivan Magalhaes
1039Stacey MacleadSpain2026-04-15Commercial Press PROPOSAL4Ioni Bowcher
1040Maria MarrierArgentina2026-04-28Chapman, Ross E Esq NEW17Anna Fali
1041James ButtUnited Kingdom2026-05-09Rangoni Of Florence UNQUALIFIED60Ioni Bowcher
1042Munro FerenczJapan2026-04-30Chemel, James L Cpa RENEWAL45Xuxue Feng
1043Stacey MacleadSpain2026-04-22Feiner Bros NEW86Amy Elsner
1044Mujtaba NickaBrazil2026-04-13Rousseaux, Michael Esq UNQUALIFIED85Ioni Bowcher
1045Silvio SlusarskiGermany2026-05-01Commercial Press QUALIFIED74Ivan Magalhaes
1046Murillo MaletFrance2026-05-01Dorl, James J Esq QUALIFIED39Anna Fali
1047Octavia MaletJapan2026-04-29Feiner Bros NEW49Xuxue Feng
1048Izzy GarufiGermany2026-04-26Commercial Press QUALIFIED66Asiya Javayant
1049Ricardo GauchoSpain2026-04-24King, Christopher A Esq UNQUALIFIED26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiJapanOnyama Limba UNQUALIFIED
Kaitlin OstroskyItalyAsiya Javayant NEGOTIATION
Ivar PaprockiUnited KingdomAsiya Javayant PROPOSAL
Alejandro PerinFranceStephen Shaw PROPOSAL
Ashley DoeItalyIvan Magalhaes NEW
Octavia MaletRussiaIvan Magalhaes QUALIFIED
David DarakjyItalyStephen Shaw QUALIFIED
Stacey MacleadIndiaAnna Fali NEW
Murillo MaletArgentinaElwin Sharvill RENEWAL
Salvatore StockhamArgentinaIoni Bowcher RENEWAL
Izzy GarufiItalyStephen Shaw PROPOSAL
Aika InouyeItalyElwin Sharvill NEW
Darci PoquetteCanadaElwin Sharvill NEW
Cody SaylorsUnited KingdomAmy Elsner NEW
Ashley DoeRussiaStephen Shaw UNQUALIFIED
Darci PoquetteFranceStephen Shaw UNQUALIFIED
Mujtaba NickaSpainIvan Magalhaes NEW
Murillo MaletAustraliaElwin Sharvill QUALIFIED
Misaki RoysterArgentinaAsiya Javayant NEW
Stacey MacleadJapanAnna Fali NEW
Faith GillianItalyStephen Shaw UNQUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Deepesh ChuiJapanAmy Elsner QUALIFIED
Isabel BowleyAustraliaElwin Sharvill RENEWAL
Antonio CaudyJapanIoni Bowcher QUALIFIED
James ButtGermanyBernardo Dominic QUALIFIED
Ricardo GauchoJapanStephen Shaw UNQUALIFIED
Chavez BriddickCanadaStephen Shaw RENEWAL
Greenwood BologniaIndiaAmy Elsner QUALIFIED
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Greenwood BologniaCanadaAsiya Javayant RENEWAL
Silvio SlusarskiCanadaIvan Magalhaes NEW
Arvin AlbaresBrazilBernardo Dominic NEW
Johnson SergiBrazilAnna Fali UNQUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant NEW
James ButtIndiaAmy Elsner NEW
Greenwood BologniaAustraliaAnna Fali RENEWAL
Jennifer AmigonBrazilAnna Fali QUALIFIED
Nicolas IturbideFranceAmy Elsner QUALIFIED
Antonio CaudySpainXuxue Feng UNQUALIFIED
Ashley DoeFranceAmy Elsner PROPOSAL
Adams MorascaAustraliaStephen Shaw RENEWAL
Costa DilliardArgentinaElwin Sharvill PROPOSAL
Ivar PaprockiRussiaXuxue Feng UNQUALIFIED
Sinclair WaycottIndiaAnna Fali RENEWAL
Maisha RulapaughIndiaStephen Shaw NEW
Kadeem FlosiGermanyStephen Shaw UNQUALIFIED
Darci PoquetteItalyStephen Shaw RENEWAL
Ashley DoeIndiaStephen Shaw NEW
Juan WieserCanadaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Sinclair Waycott
Juan Wieser
Tony Foller
Tony Foller
Faith Gillian
Johnson Sergi
Munro Ferencz
Jefferson Schemmer
Maisha Rulapaugh
Izzy Garufi
Munro Ferencz
Munro Ferencz
Juan Wieser
Juan Wieser
Tony Foller
Munro Ferencz
Ashley Doe
Jefferson Schemmer
Mujtaba Nicka
Ricardo Gaucho
Rodrigues Campain
Munro Ferencz
Julie Stenseth
Isabel Bowley
Leon Oldroyd
Octavia Malet
Emily Whobrey
Nicolas Iturbide
Aruna Figeroa
Chavez Briddick
Alejandro Perin
Juan Wieser
Nicolas Iturbide
Greenwood Bolognia
Kaitlin Ostrosky
Leon Oldroyd
Claire Tollner
Ricardo Gaucho
Ivar Paprocki
Costa Dilliard
Izzy Garufi
Juan Wieser
Tony Foller
Nicolas Iturbide
Murillo Malet
Chavez Briddick
Alejandro Perin
Jones Vocelka
David Darakjy
Leja Caldarera
IdCountryDate
1000United Kingdom2026-04-17
1001Spain2026-04-23
1002United Kingdom2026-04-11
1003Brazil2026-04-12
1004Australia2026-04-12
1005Argentina2026-04-11
1006Brazil2026-04-24
1007Canada2026-04-17
1008Italy2026-04-25
1009Spain2026-04-18
1010France2026-04-28
1011Spain2026-04-18
1012Brazil2026-05-05
1013United Kingdom2026-05-08
1014Argentina2026-04-17
1015Argentina2026-04-13
1016Germany2026-05-08
1017India2026-04-19
1018Australia2026-05-07
1019Russia2026-04-14
1020Russia2026-05-05
1021Spain2026-04-30
1022Canada2026-04-14
1023Italy2026-04-13
1024Italy2026-04-14
1025India2026-04-30
1026India2026-05-04
1027United Kingdom2026-05-04
1028Argentina2026-04-29
1029Japan2026-04-20
1030Spain2026-04-24
1031France2026-05-03
1032Canada2026-04-13
1033Russia2026-05-01
1034France2026-04-16
1035Australia2026-04-23
1036Brazil2026-04-13
1037Canada2026-04-30
1038Russia2026-05-05
1039Canada2026-05-05
1040India2026-04-28
1041Canada2026-05-03
1042Canada2026-04-14
1043Argentina2026-04-25
1044Spain2026-04-27
1045Canada2026-04-26
1046Canada2026-04-28
1047India2026-04-29
1048Russia2026-04-23
1049France2026-05-08

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000India2026-04-29
Costa Dilliard1001Japan2026-05-07
Tony Foller1002Germany2026-05-08
Mujtaba Nicka1003Argentina2026-04-15
Nicolas Iturbide1004Brazil2026-04-28
Kaitlin Ostrosky1005United Kingdom2026-04-20
Francesco Shinko1006Australia2026-04-29
Wickens Nestle1007United Kingdom2026-04-29
Tony Foller1008Spain2026-05-06
Arvin Albares1009India2026-04-21
Stacey Maclead1010Spain2026-04-16
Rodrigues Campain1011Japan2026-04-30
Aditya Kusko1012Brazil2026-04-20
Wickens Nestle1013Italy2026-04-28
Aika Inouye1014Argentina2026-05-04
Johnson Sergi1015United Kingdom2026-05-06
Mayumi Kolmetz1016France2026-04-13
Murillo Malet1017Russia2026-05-06
Darci Poquette1018Italy2026-04-11
Alejandro Perin1019Japan2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyGermanyIoni Bowcher NEW
Ricardo GauchoJapanIoni Bowcher NEGOTIATION
Claire TollnerUnited KingdomIvan Magalhaes NEW
Mayumi KolmetzUnited KingdomAnna Fali PROPOSAL
Silvio SlusarskiItalyIvan Magalhaes NEGOTIATION
Johnson SergiCanadaOnyama Limba PROPOSAL
Silvio SlusarskiIndiaIoni Bowcher UNQUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes PROPOSAL
Murillo MaletIndiaIvan Magalhaes NEGOTIATION
Jones VocelkaJapanBernardo Dominic NEW
Rodrigues CampainUnited KingdomIoni Bowcher PROPOSAL
Maria MarrierCanadaOnyama Limba PROPOSAL
Sinclair WaycottUnited KingdomAmy Elsner PROPOSAL
Alejandro PerinGermanyIoni Bowcher UNQUALIFIED
Aditya KuskoSpainBernardo Dominic RENEWAL
Misaki RoysterFranceElwin Sharvill UNQUALIFIED
Julie StensethFranceIoni Bowcher RENEWAL
Johnson SergiRussiaIoni Bowcher UNQUALIFIED
Johnson SergiGermanyOnyama Limba NEW
Leja CaldareraRussiaBernardo Dominic RENEWAL
Jeanfrancois VenereBrazilStephen Shaw NEW
Isabel BowleyCanadaAsiya Javayant NEW
Jeanfrancois VenereRussiaAnna Fali UNQUALIFIED
Wickens NestleGermanyElwin Sharvill QUALIFIED
Munro FerenczBrazilXuxue Feng PROPOSAL
Juan WieserJapanAnna Fali UNQUALIFIED
Octavia MaletIndiaAnna Fali UNQUALIFIED
Alejandro PerinFranceIvan Magalhaes RENEWAL
Johnson SergiCanadaElwin Sharvill NEW
Greenwood BologniaJapanBernardo Dominic NEGOTIATION
Nicolas IturbideSpainStephen Shaw QUALIFIED
Wickens NestleCanadaOnyama Limba QUALIFIED
Jefferson SchemmerBrazilAnna Fali NEW
Antonio CaudyFranceOnyama Limba PROPOSAL
Leja CaldareraRussiaOnyama Limba NEGOTIATION
Emily WhobreyJapanStephen Shaw NEGOTIATION
Juan WieserCanadaOnyama Limba PROPOSAL
Cody SaylorsJapanIvan Magalhaes UNQUALIFIED
Sinclair WaycottSpainOnyama Limba RENEWAL
Deepesh ChuiUnited KingdomAmy Elsner NEGOTIATION

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