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
Arvin AlbaresSpainBernardo Dominic NEW
Aika InouyeIndiaOnyama Limba NEGOTIATION
David DarakjyArgentinaXuxue Feng RENEWAL
Leja CaldareraSpainStephen Shaw UNQUALIFIED
Darci PoquetteJapanIvan Magalhaes NEW
Maria MarrierIndiaXuxue Feng NEGOTIATION
Darci PoquetteSpainBernardo Dominic NEGOTIATION
Costa DilliardGermanyOnyama Limba NEGOTIATION
Ricardo GauchoAustraliaIoni Bowcher RENEWAL
Arvin AlbaresSpainOnyama Limba NEGOTIATION
Costa DilliardJapanIoni Bowcher UNQUALIFIED
Aditya KuskoIndiaBernardo Dominic UNQUALIFIED
Misaki RoysterCanadaXuxue Feng NEW
Ivar PaprockiGermanyXuxue Feng PROPOSAL
Wickens NestleSpainAnna Fali PROPOSAL
Adams MorascaIndiaAmy Elsner NEGOTIATION
Ivar PaprockiAustraliaStephen Shaw NEGOTIATION
Silvio SlusarskiRussiaBernardo Dominic RENEWAL
Maisha RulapaughJapanIvan Magalhaes NEW
Aika InouyeJapanIoni Bowcher QUALIFIED
Aika InouyeFranceAmy Elsner PROPOSAL
Izzy GarufiCanadaIoni Bowcher NEGOTIATION
Ricardo GauchoSpainOnyama Limba PROPOSAL
Silvio SlusarskiGermanyIoni Bowcher PROPOSAL
Nicolas IturbideArgentinaOnyama Limba NEW
Mujtaba NickaGermanyXuxue Feng PROPOSAL
Smith GlickItalyXuxue Feng PROPOSAL
Izzy GarufiAustraliaIoni Bowcher RENEWAL
Salvatore StockhamBrazilXuxue Feng UNQUALIFIED
James ButtItalyOnyama Limba NEW
Leon OldroydSpainIvan Magalhaes RENEWAL
Francesco ShinkoFranceXuxue Feng UNQUALIFIED
Leja CaldareraAustraliaAmy Elsner RENEWAL
Mayumi KolmetzBrazilAmy Elsner PROPOSAL
Costa DilliardRussiaAsiya Javayant NEW
Murillo MaletBrazilXuxue Feng PROPOSAL
Ashley DoeAustraliaBernardo Dominic UNQUALIFIED
Claire TollnerFranceIvan Magalhaes PROPOSAL
Jefferson SchemmerItalyIvan Magalhaes QUALIFIED
Antonio CaudyBrazilIvan Magalhaes RENEWAL
Rodrigues CampainItalyOnyama Limba NEGOTIATION
Munro FerenczIndiaIoni Bowcher PROPOSAL
Salvatore StockhamAustraliaXuxue Feng PROPOSAL
Silvio SlusarskiItalyAnna Fali QUALIFIED
Cody SaylorsIndiaIvan Magalhaes QUALIFIED
Greenwood BologniaGermanyXuxue Feng QUALIFIED
Smith GlickRussiaStephen Shaw NEW
Chavez BriddickRussiaStephen Shaw PROPOSAL
Faith GillianAustraliaAmy Elsner PROPOSAL
Salvatore StockhamArgentinaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyJapanBernardo Dominic NEW
Clifford RimSpainAmy Elsner UNQUALIFIED
Isabel BowleyJapanAnna Fali UNQUALIFIED
Mujtaba NickaFranceAsiya Javayant PROPOSAL
Salvatore StockhamSpainIvan Magalhaes UNQUALIFIED
Maria MarrierJapanAsiya Javayant UNQUALIFIED
Kadeem FlosiAustraliaElwin Sharvill PROPOSAL
Cody SaylorsJapanXuxue Feng RENEWAL
Ivar PaprockiItalyElwin Sharvill NEW
Kaitlin OstroskyArgentinaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamItaly2026-04-03Chemel, James L Cpa UNQUALIFIED78Elwin Sharvill
1001Munro FerenczJapan2026-04-12Chanay, Jeffrey A Esq PROPOSAL18Ioni Bowcher
1002Adams MorascaUnited Kingdom2026-04-28Rangoni Of Florence RENEWAL64Stephen Shaw
1003Jeanfrancois VenereJapan2026-04-21Dorl, James J Esq RENEWAL64Ioni Bowcher
1004Alejandro PerinJapan2026-04-02Feiner Bros NEGOTIATION91Bernardo Dominic
1005Mujtaba NickaSpain2026-04-27Benton, John B Jr NEGOTIATION11Xuxue Feng
1006Mujtaba NickaSpain2026-04-14Chapman, Ross E Esq QUALIFIED53Anna Fali
1007Salvatore StockhamGermany2026-04-23King, Christopher A Esq PROPOSAL14Bernardo Dominic
1008Mayumi KolmetzUnited Kingdom2026-04-03Feiner Bros UNQUALIFIED14Stephen Shaw
1009Antonio CaudyJapan2026-04-11Feltz Printing Service NEW33Anna Fali
1010Murillo MaletFrance2026-04-04Dorl, James J Esq NEGOTIATION94Onyama Limba
1011Emily WhobreyGermany2026-04-04King, Christopher A Esq NEW65Amy Elsner
1012Kadeem FlosiBrazil2026-04-17Feltz Printing Service NEGOTIATION85Ivan Magalhaes
1013Tony FollerArgentina2026-04-26Printing Dimensions QUALIFIED88Asiya Javayant
1014Greenwood BologniaJapan2026-04-24Benton, John B Jr QUALIFIED60Ioni Bowcher
1015Sinclair WaycottSpain2026-04-03Morlong Associates QUALIFIED33Asiya Javayant
1016David DarakjyBrazil2026-04-29Dorl, James J Esq RENEWAL16Xuxue Feng
1017David DarakjyFrance2026-04-17Truhlar And Truhlar Attys NEW94Onyama Limba
1018Arvin AlbaresJapan2026-04-10Feiner Bros UNQUALIFIED32Elwin Sharvill
1019Wickens NestleArgentina2026-04-19Feltz Printing Service UNQUALIFIED46Ivan Magalhaes
1020Jones VocelkaIndia2026-04-18Feltz Printing Service PROPOSAL64Onyama Limba
1021Francesco ShinkoRussia2026-04-14Morlong Associates NEGOTIATION19Stephen Shaw
1022Ashley DoeJapan2026-04-11Truhlar And Truhlar Attys UNQUALIFIED27Amy Elsner
1023Francesco ShinkoCanada2026-04-05Printing Dimensions NEW7Amy Elsner
1024Adams MorascaIndia2026-04-02King, Christopher A Esq QUALIFIED56Amy Elsner
1025Alejandro PerinItaly2026-04-13Chemel, James L Cpa UNQUALIFIED98Asiya Javayant
1026Maria MarrierAustralia2026-04-22Chapman, Ross E Esq PROPOSAL98Onyama Limba
1027Misaki RoysterItaly2026-04-01Chanay, Jeffrey A Esq NEW83Anna Fali
1028Tony FollerGermany2026-04-21Chapman, Ross E Esq QUALIFIED89Ivan Magalhaes
1029Mayumi KolmetzBrazil2026-04-06Rangoni Of Florence PROPOSAL98Anna Fali
1030Johnson SergiRussia2026-04-14Rangoni Of Florence NEW80Stephen Shaw
1031Nicolas IturbideGermany2026-04-25Chemel, James L Cpa NEGOTIATION78Ivan Magalhaes
1032Ashley DoeSpain2026-04-05Truhlar And Truhlar Attys QUALIFIED69Onyama Limba
1033Wickens NestleJapan2026-04-23Chapman, Ross E Esq RENEWAL43Xuxue Feng
1034Leja CaldareraIndia2026-04-22Feiner Bros RENEWAL38Bernardo Dominic
1035Silvio SlusarskiUnited Kingdom2026-04-08Printing Dimensions NEW83Anna Fali
1036Alejandro PerinBrazil2026-04-16Benton, John B Jr QUALIFIED2Xuxue Feng
1037Juan WieserSpain2026-04-20Rangoni Of Florence NEW55Amy Elsner
1038James ButtJapan2026-04-08Feltz Printing Service UNQUALIFIED27Bernardo Dominic
1039Jennifer AmigonCanada2026-04-11Chemel, James L Cpa QUALIFIED39Anna Fali
1040Juan WieserIndia2026-04-30Chapman, Ross E Esq NEW74Ivan Magalhaes
1041Adams MorascaCanada2026-04-06Chanay, Jeffrey A Esq PROPOSAL19Anna Fali
1042Salvatore StockhamArgentina2026-04-06Buckley Miller Wright QUALIFIED53Anna Fali
1043Izzy GarufiRussia2026-04-04Commercial Press UNQUALIFIED87Anna Fali
1044Jefferson SchemmerBrazil2026-04-16Feltz Printing Service PROPOSAL15Amy Elsner
1045Ivar PaprockiIndia2026-04-09Chanay, Jeffrey A Esq UNQUALIFIED21Stephen Shaw
1046Octavia MaletUnited Kingdom2026-04-06Dorl, James J Esq UNQUALIFIED80Asiya Javayant
1047Faith GillianRussia2026-04-28Buckley Miller Wright NEW6Elwin Sharvill
1048Wickens NestleAustralia2026-04-23Printing Dimensions NEGOTIATION70Elwin Sharvill
1049Johnson SergiFrance2026-04-22King, Christopher A Esq UNQUALIFIED0Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeSpainXuxue Feng PROPOSAL
Adams MorascaArgentinaIvan Magalhaes RENEWAL
Sinclair WaycottJapanElwin Sharvill RENEWAL
Leon OldroydCanadaXuxue Feng PROPOSAL
Claire TollnerJapanBernardo Dominic UNQUALIFIED
Costa DilliardItalyElwin Sharvill NEGOTIATION
Emily WhobreyIndiaOnyama Limba PROPOSAL
Leon OldroydUnited KingdomAnna Fali QUALIFIED
Misaki RoysterAustraliaIoni Bowcher NEW
Jones VocelkaSpainAmy Elsner UNQUALIFIED
James ButtAustraliaStephen Shaw NEGOTIATION
Clifford RimRussiaIoni Bowcher QUALIFIED
Adams MorascaSpainOnyama Limba NEW
Alejandro PerinUnited KingdomIvan Magalhaes NEW
Ricardo GauchoGermanyOnyama Limba RENEWAL
Clifford RimCanadaAmy Elsner QUALIFIED
Jones VocelkaItalyElwin Sharvill PROPOSAL
Arvin AlbaresFranceIoni Bowcher QUALIFIED
Faith GillianItalyAnna Fali NEW
Chavez BriddickArgentinaAnna Fali PROPOSAL
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Johnson SergiSpainBernardo Dominic QUALIFIED
Jones VocelkaItalyIoni Bowcher NEW
Jeanfrancois VenereSpainOnyama Limba RENEWAL
Leja CaldareraAustraliaOnyama Limba QUALIFIED
Rodrigues CampainIndiaBernardo Dominic NEW
Greenwood BologniaJapanAnna Fali NEW
Murillo MaletFranceAsiya Javayant NEW
Jefferson SchemmerItalyXuxue Feng UNQUALIFIED
Mayumi KolmetzJapanElwin Sharvill NEGOTIATION
Sinclair WaycottBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerJapanIvan Magalhaes QUALIFIED
Isabel BowleyRussiaAmy Elsner QUALIFIED
Izzy GarufiRussiaBernardo Dominic NEW
Ricardo GauchoItalyAnna Fali RENEWAL
Emily WhobreyArgentinaElwin Sharvill NEGOTIATION
Clifford RimRussiaAsiya Javayant RENEWAL
Aika InouyeUnited KingdomXuxue Feng QUALIFIED
Nicolas IturbideRussiaIoni Bowcher PROPOSAL
Greenwood BologniaJapanAmy Elsner QUALIFIED
Francesco ShinkoAustraliaIvan Magalhaes RENEWAL
Aditya KuskoFranceBernardo Dominic NEW
Kaitlin OstroskyFranceAsiya Javayant QUALIFIED
Jefferson SchemmerGermanyElwin Sharvill QUALIFIED
Ashley DoeItalyIvan Magalhaes PROPOSAL
Morrow RutaIndiaElwin Sharvill QUALIFIED
Tony FollerUnited KingdomAnna Fali RENEWAL
Faith GillianSpainStephen Shaw RENEWAL
Misaki RoysterIndiaAnna Fali QUALIFIED
Isabel BowleyUnited KingdomAmy Elsner NEW
Frozen Columns
Name
Ricardo Gaucho
Faith Gillian
Murillo Malet
Jefferson Schemmer
Tony Foller
Ricardo Gaucho
Clifford Rim
Kadeem Flosi
Rodrigues Campain
Adams Morasca
Faith Gillian
Clifford Rim
Ashley Doe
Jefferson Schemmer
Chavez Briddick
Smith Glick
Aika Inouye
Clifford Rim
Claire Tollner
Aditya Kusko
Misaki Royster
Julie Stenseth
Maria Marrier
James Butt
Murillo Malet
Francesco Shinko
Juan Wieser
Murillo Malet
Sinclair Waycott
Costa Dilliard
Deepesh Chui
Sinclair Waycott
Antonio Caudy
Maria Marrier
Leja Caldarera
Greenwood Bolognia
Maria Marrier
Aruna Figeroa
Nicolas Iturbide
Claire Tollner
Aruna Figeroa
Francesco Shinko
Nicolas Iturbide
Claire Tollner
Salvatore Stockham
Aruna Figeroa
Rodrigues Campain
Jefferson Schemmer
Octavia Malet
Jefferson Schemmer
IdCountryDate
1000Australia2026-04-23
1001Germany2026-04-24
1002Japan2026-04-25
1003Spain2026-04-28
1004Argentina2026-04-18
1005Australia2026-04-01
1006Argentina2026-04-01
1007Brazil2026-04-15
1008Spain2026-04-20
1009Japan2026-04-30
1010Canada2026-04-14
1011Argentina2026-04-19
1012Canada2026-04-21
1013Italy2026-04-15
1014Russia2026-04-01
1015Russia2026-04-24
1016Italy2026-04-09
1017Germany2026-04-21
1018Italy2026-04-22
1019Italy2026-04-24
1020Argentina2026-04-27
1021Brazil2026-04-10
1022United Kingdom2026-04-04
1023France2026-04-12
1024Russia2026-04-14
1025Brazil2026-04-07
1026Spain2026-04-20
1027Japan2026-04-11
1028Germany2026-04-24
1029India2026-04-20
1030Spain2026-04-07
1031France2026-04-12
1032Australia2026-04-15
1033Russia2026-04-11
1034Argentina2026-04-24
1035Canada2026-04-02
1036Japan2026-04-10
1037Argentina2026-04-20
1038Australia2026-04-20
1039Argentina2026-04-22
1040India2026-04-18
1041Argentina2026-04-10
1042France2026-04-17
1043France2026-04-25
1044Australia2026-04-05
1045India2026-04-13
1046United Kingdom2026-04-24
1047United Kingdom2026-04-16
1048Italy2026-04-05
1049Germany2026-04-02

On-Demand Data

NameIdCountryDate
Octavia Malet1000Brazil2026-04-21
Ivar Paprocki1001India2026-04-04
Juan Wieser1002Russia2026-04-02
Octavia Malet1003Spain2026-04-07
Deepesh Chui1004Germany2026-04-19
Emily Whobrey1005India2026-04-25
Greenwood Bolognia1006France2026-04-27
Isabel Bowley1007France2026-04-18
Kaitlin Ostrosky1008India2026-04-20
Francesco Shinko1009United Kingdom2026-04-17
Adams Morasca1010United Kingdom2026-04-27
Johnson Sergi1011Italy2026-04-13
Kaitlin Ostrosky1012Australia2026-04-23
Ricardo Gaucho1013Germany2026-04-18
Darci Poquette1014Russia2026-04-19
Jennifer Amigon1015Brazil2026-04-02
Murillo Malet1016United Kingdom2026-04-25
Claire Tollner1017India2026-04-23
Ashley Doe1018Argentina2026-04-25
Murillo Malet1019Japan2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickRussiaXuxue Feng RENEWAL
Kaitlin OstroskyAustraliaOnyama Limba PROPOSAL
Julie StensethRussiaAsiya Javayant RENEWAL
Sinclair WaycottArgentinaIvan Magalhaes RENEWAL
Stacey MacleadGermanyXuxue Feng NEW
Silvio SlusarskiBrazilAmy Elsner UNQUALIFIED
Aruna FigeroaAustraliaAnna Fali RENEWAL
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Faith GillianUnited KingdomIoni Bowcher PROPOSAL
Aruna FigeroaIndiaIvan Magalhaes UNQUALIFIED
Emily WhobreyItalyIvan Magalhaes NEGOTIATION
Leja CaldareraSpainIvan Magalhaes QUALIFIED
Claire TollnerCanadaIvan Magalhaes UNQUALIFIED
Misaki RoysterIndiaIvan Magalhaes RENEWAL
Aika InouyeCanadaIvan Magalhaes PROPOSAL
David DarakjyAustraliaAmy Elsner QUALIFIED
Maria MarrierJapanIvan Magalhaes QUALIFIED
Tony FollerJapanAsiya Javayant UNQUALIFIED
Maisha RulapaughBrazilAnna Fali QUALIFIED
Alejandro PerinGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoItalyOnyama Limba QUALIFIED
Maria MarrierArgentinaIoni Bowcher NEW
Cody SaylorsFranceAnna Fali NEW
Julie StensethJapanAnna Fali RENEWAL
James ButtItalyBernardo Dominic PROPOSAL
Darci PoquetteUnited KingdomBernardo Dominic RENEWAL
Wickens NestleCanadaStephen Shaw PROPOSAL
Sinclair WaycottFranceAsiya Javayant RENEWAL
Clifford RimJapanIoni Bowcher QUALIFIED
Murillo MaletSpainElwin Sharvill PROPOSAL
Silvio SlusarskiGermanyIvan Magalhaes NEW
Adams MorascaBrazilXuxue Feng QUALIFIED
Octavia MaletArgentinaIoni Bowcher NEW
Sinclair WaycottBrazilAsiya Javayant RENEWAL
Adams MorascaBrazilAnna Fali RENEWAL
Maria MarrierSpainAnna Fali QUALIFIED
Murillo MaletFranceBernardo Dominic UNQUALIFIED
Chavez BriddickJapanXuxue Feng UNQUALIFIED
Julie StensethSpainAmy Elsner QUALIFIED
Sinclair WaycottUnited KingdomElwin Sharvill 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>