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
Smith GlickSpainElwin Sharvill PROPOSAL
Deepesh ChuiJapanXuxue Feng QUALIFIED
Maria MarrierItalyXuxue Feng RENEWAL
Claire TollnerBrazilIvan Magalhaes PROPOSAL
Morrow RutaUnited KingdomStephen Shaw UNQUALIFIED
Emily WhobreyJapanAsiya Javayant RENEWAL
Rodrigues CampainUnited KingdomIoni Bowcher NEW
Maisha RulapaughGermanyStephen Shaw NEGOTIATION
Salvatore StockhamUnited KingdomAmy Elsner UNQUALIFIED
Maisha RulapaughArgentinaElwin Sharvill NEW
Jefferson SchemmerIndiaXuxue Feng UNQUALIFIED
Sinclair WaycottBrazilAmy Elsner NEW
Kaitlin OstroskyRussiaOnyama Limba PROPOSAL
Salvatore StockhamItalyAsiya Javayant UNQUALIFIED
Chavez BriddickCanadaAnna Fali PROPOSAL
Leja CaldareraJapanOnyama Limba UNQUALIFIED
Jeanfrancois VenereSpainStephen Shaw UNQUALIFIED
Jeanfrancois VenereGermanyOnyama Limba RENEWAL
Jeanfrancois VenereItalyStephen Shaw UNQUALIFIED
Stacey MacleadFranceStephen Shaw NEW
Clifford RimJapanStephen Shaw PROPOSAL
Faith GillianBrazilOnyama Limba NEW
Arvin AlbaresItalyElwin Sharvill RENEWAL
David DarakjyIndiaElwin Sharvill PROPOSAL
Morrow RutaItalyAsiya Javayant UNQUALIFIED
Faith GillianSpainOnyama Limba NEW
Aika InouyeFranceAsiya Javayant RENEWAL
Aika InouyeFranceBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanAmy Elsner QUALIFIED
Stacey MacleadJapanStephen Shaw PROPOSAL
Aika InouyeRussiaAsiya Javayant RENEWAL
Ashley DoeBrazilOnyama Limba NEW
Izzy GarufiJapanBernardo Dominic NEW
Ivar PaprockiCanadaIoni Bowcher PROPOSAL
Aika InouyeRussiaStephen Shaw NEGOTIATION
Izzy GarufiIndiaAnna Fali NEW
Isabel BowleyBrazilIoni Bowcher RENEWAL
Maria MarrierIndiaOnyama Limba NEW
Juan WieserUnited KingdomAnna Fali UNQUALIFIED
Mujtaba NickaArgentinaXuxue Feng NEGOTIATION
Chavez BriddickRussiaIoni Bowcher NEW
Munro FerenczSpainBernardo Dominic PROPOSAL
Julie StensethGermanyXuxue Feng RENEWAL
Morrow RutaJapanStephen Shaw RENEWAL
Kaitlin OstroskySpainXuxue Feng PROPOSAL
Nicolas IturbideRussiaElwin Sharvill PROPOSAL
Tony FollerIndiaAmy Elsner UNQUALIFIED
Jennifer AmigonSpainIvan Magalhaes NEGOTIATION
Wickens NestleFranceAnna Fali PROPOSAL
Costa DilliardAustraliaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonIndiaBernardo Dominic NEW
Mayumi KolmetzItalyOnyama Limba QUALIFIED
Tony FollerItalyAmy Elsner RENEWAL
Rodrigues CampainGermanyStephen Shaw NEGOTIATION
James ButtJapanOnyama Limba NEW
Jones VocelkaFranceAsiya Javayant PROPOSAL
James ButtItalyIoni Bowcher NEGOTIATION
Morrow RutaFranceOnyama Limba PROPOSAL
Mayumi KolmetzUnited KingdomElwin Sharvill QUALIFIED
Mayumi KolmetzCanadaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonBrazil2026-05-12Rousseaux, Michael Esq NEGOTIATION21Amy Elsner
1001Ricardo GauchoArgentina2026-05-18Chemel, James L Cpa NEGOTIATION92Anna Fali
1002Darci PoquetteUnited Kingdom2026-05-01Feiner Bros RENEWAL83Elwin Sharvill
1003Arvin AlbaresAustralia2026-04-23Truhlar And Truhlar Attys QUALIFIED62Stephen Shaw
1004Izzy GarufiUnited Kingdom2026-05-02Feiner Bros QUALIFIED27Asiya Javayant
1005Emily WhobreyArgentina2026-05-19Commercial Press QUALIFIED5Xuxue Feng
1006Julie StensethIndia2026-05-10Chemel, James L Cpa QUALIFIED9Xuxue Feng
1007Arvin AlbaresCanada2026-05-16Truhlar And Truhlar Attys UNQUALIFIED74Onyama Limba
1008Nicolas IturbideJapan2026-05-15Chemel, James L Cpa UNQUALIFIED25Xuxue Feng
1009James ButtUnited Kingdom2026-05-13Buckley Miller Wright UNQUALIFIED46Amy Elsner
1010Mujtaba NickaGermany2026-05-02Rousseaux, Michael Esq RENEWAL9Xuxue Feng
1011Silvio SlusarskiRussia2026-05-07Truhlar And Truhlar Attys NEW49Ioni Bowcher
1012Jones VocelkaJapan2026-05-09Commercial Press PROPOSAL22Onyama Limba
1013Kadeem FlosiUnited Kingdom2026-05-15Benton, John B Jr RENEWAL27Anna Fali
1014Cody SaylorsIndia2026-05-02Commercial Press QUALIFIED33Amy Elsner
1015Johnson SergiFrance2026-05-22Commercial Press NEW66Ioni Bowcher
1016Antonio CaudyArgentina2026-05-11Chanay, Jeffrey A Esq UNQUALIFIED16Asiya Javayant
1017Sinclair WaycottGermany2026-05-02Dorl, James J Esq PROPOSAL84Xuxue Feng
1018Rodrigues CampainRussia2026-05-20Chemel, James L Cpa UNQUALIFIED20Xuxue Feng
1019Deepesh ChuiCanada2026-05-18Rangoni Of Florence NEGOTIATION70Anna Fali
1020Costa DilliardUnited Kingdom2026-05-17Morlong Associates QUALIFIED58Elwin Sharvill
1021Antonio CaudyItaly2026-04-30Printing Dimensions NEW97Amy Elsner
1022Darci PoquetteAustralia2026-05-08Chemel, James L Cpa QUALIFIED31Elwin Sharvill
1023Chavez BriddickRussia2026-05-05Rousseaux, Michael Esq RENEWAL31Elwin Sharvill
1024Ashley DoeItaly2026-04-26King, Christopher A Esq PROPOSAL52Bernardo Dominic
1025Deepesh ChuiGermany2026-04-30Rangoni Of Florence NEGOTIATION79Amy Elsner
1026Murillo MaletGermany2026-04-25King, Christopher A Esq RENEWAL27Xuxue Feng
1027Sinclair WaycottGermany2026-05-17Feiner Bros NEGOTIATION74Amy Elsner
1028Arvin AlbaresRussia2026-05-17Printing Dimensions RENEWAL60Xuxue Feng
1029Jefferson SchemmerRussia2026-04-28King, Christopher A Esq NEW7Ivan Magalhaes
1030Misaki RoysterAustralia2026-04-27Commercial Press UNQUALIFIED55Ivan Magalhaes
1031Francesco ShinkoBrazil2026-05-09Benton, John B Jr NEGOTIATION6Elwin Sharvill
1032Ricardo GauchoBrazil2026-05-11Rangoni Of Florence PROPOSAL87Elwin Sharvill
1033Mujtaba NickaBrazil2026-05-18Printing Dimensions QUALIFIED5Xuxue Feng
1034Stacey MacleadArgentina2026-05-22Morlong Associates RENEWAL13Xuxue Feng
1035Aditya KuskoItaly2026-05-03Feiner Bros RENEWAL86Ivan Magalhaes
1036Faith GillianJapan2026-05-02Morlong Associates PROPOSAL41Bernardo Dominic
1037David DarakjyIndia2026-05-06Dorl, James J Esq NEW77Anna Fali
1038Ricardo GauchoItaly2026-05-19Commercial Press NEGOTIATION74Onyama Limba
1039Ashley DoeGermany2026-05-09Rangoni Of Florence QUALIFIED9Stephen Shaw
1040Munro FerenczItaly2026-05-05Feltz Printing Service QUALIFIED87Ivan Magalhaes
1041Wickens NestleSpain2026-04-24Chanay, Jeffrey A Esq UNQUALIFIED48Ivan Magalhaes
1042Salvatore StockhamIndia2026-05-17Morlong Associates NEW2Ioni Bowcher
1043Francesco ShinkoCanada2026-05-17Feltz Printing Service PROPOSAL46Bernardo Dominic
1044Chavez BriddickFrance2026-04-30Feltz Printing Service NEW40Xuxue Feng
1045Stacey MacleadCanada2026-05-20Morlong Associates QUALIFIED41Xuxue Feng
1046Wickens NestleSpain2026-04-27Chanay, Jeffrey A Esq NEGOTIATION89Asiya Javayant
1047Antonio CaudyArgentina2026-04-25Feltz Printing Service NEGOTIATION54Asiya Javayant
1048Jennifer AmigonIndia2026-05-02Feiner Bros PROPOSAL81Amy Elsner
1049Costa DilliardFrance2026-05-04Feltz Printing Service PROPOSAL5Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadUnited KingdomIoni Bowcher NEGOTIATION
Darci PoquetteItalyStephen Shaw RENEWAL
Isabel BowleyUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher UNQUALIFIED
Maisha RulapaughJapanAnna Fali NEW
Morrow RutaItalyBernardo Dominic NEGOTIATION
Tony FollerSpainStephen Shaw RENEWAL
Izzy GarufiUnited KingdomBernardo Dominic NEGOTIATION
Rodrigues CampainJapanBernardo Dominic NEW
Murillo MaletItalyIvan Magalhaes NEW
Silvio SlusarskiIndiaBernardo Dominic NEGOTIATION
Aditya KuskoFranceBernardo Dominic NEGOTIATION
Ashley DoeUnited KingdomAmy Elsner RENEWAL
Leon OldroydRussiaStephen Shaw NEW
Julie StensethAustraliaIvan Magalhaes RENEWAL
Tony FollerItalyXuxue Feng NEW
Juan WieserArgentinaStephen Shaw PROPOSAL
Mayumi KolmetzIndiaAmy Elsner NEW
Izzy GarufiBrazilIoni Bowcher QUALIFIED
Clifford RimArgentinaIoni Bowcher PROPOSAL
Adams MorascaJapanIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilStephen Shaw QUALIFIED
Ricardo GauchoCanadaBernardo Dominic QUALIFIED
Rodrigues CampainSpainStephen Shaw NEGOTIATION
Kaitlin OstroskySpainIoni Bowcher QUALIFIED
Munro FerenczSpainXuxue Feng QUALIFIED
Munro FerenczBrazilAsiya Javayant UNQUALIFIED
Stacey MacleadBrazilStephen Shaw RENEWAL
Ricardo GauchoCanadaIvan Magalhaes NEGOTIATION
Aika InouyeUnited KingdomXuxue Feng NEGOTIATION
Costa DilliardSpainXuxue Feng UNQUALIFIED
Kaitlin OstroskyCanadaAnna Fali NEGOTIATION
Aika InouyeCanadaIoni Bowcher NEGOTIATION
Kaitlin OstroskyRussiaIoni Bowcher NEGOTIATION
Murillo MaletGermanyIvan Magalhaes QUALIFIED
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Nicolas IturbideItalyIoni Bowcher NEW
Wickens NestleBrazilOnyama Limba NEW
Faith GillianItalyBernardo Dominic QUALIFIED
Chavez BriddickJapanElwin Sharvill NEW
Smith GlickRussiaIvan Magalhaes RENEWAL
Claire TollnerFranceAnna Fali NEGOTIATION
Morrow RutaFranceAnna Fali RENEWAL
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Chavez BriddickBrazilXuxue Feng RENEWAL
Jeanfrancois VenereArgentinaAsiya Javayant NEW
Maisha RulapaughIndiaXuxue Feng QUALIFIED
Deepesh ChuiItalyAnna Fali QUALIFIED
Nicolas IturbideIndiaStephen Shaw PROPOSAL
Ivar PaprockiItalyOnyama Limba NEW
Frozen Columns
Name
Francesco Shinko
Munro Ferencz
Nicolas Iturbide
Salvatore Stockham
Juan Wieser
Aruna Figeroa
Leja Caldarera
Francesco Shinko
Alejandro Perin
Morrow Ruta
Cody Saylors
Mujtaba Nicka
Wickens Nestle
David Darakjy
Aika Inouye
Jennifer Amigon
Claire Tollner
Deepesh Chui
Maisha Rulapaugh
Jones Vocelka
Maria Marrier
Faith Gillian
David Darakjy
Silvio Slusarski
Juan Wieser
Tony Foller
Faith Gillian
Mujtaba Nicka
Clifford Rim
Ashley Doe
Ivar Paprocki
Jefferson Schemmer
Francesco Shinko
Costa Dilliard
Clifford Rim
Jeanfrancois Venere
Jones Vocelka
Cody Saylors
Jefferson Schemmer
Salvatore Stockham
Aruna Figeroa
Clifford Rim
Arvin Albares
Deepesh Chui
Leon Oldroyd
Stacey Maclead
Alejandro Perin
Jefferson Schemmer
Aruna Figeroa
Antonio Caudy
IdCountryDate
1000Japan2026-05-01
1001France2026-05-10
1002United Kingdom2026-05-14
1003France2026-05-21
1004Italy2026-05-09
1005Russia2026-05-11
1006Italy2026-05-05
1007Canada2026-05-02
1008Germany2026-05-08
1009France2026-04-25
1010Russia2026-05-20
1011Brazil2026-05-07
1012France2026-05-11
1013United Kingdom2026-05-11
1014Canada2026-05-21
1015Russia2026-05-03
1016Brazil2026-05-17
1017Germany2026-04-23
1018Spain2026-05-09
1019Argentina2026-05-03
1020France2026-05-01
1021United Kingdom2026-05-22
1022Russia2026-04-27
1023India2026-05-05
1024Japan2026-05-17
1025Japan2026-05-05
1026Brazil2026-04-30
1027Australia2026-05-14
1028Brazil2026-05-17
1029Spain2026-05-20
1030Germany2026-05-05
1031India2026-05-02
1032Japan2026-05-19
1033Spain2026-04-23
1034Italy2026-05-12
1035Japan2026-05-06
1036Italy2026-05-18
1037Brazil2026-05-22
1038Brazil2026-05-10
1039Brazil2026-05-09
1040Japan2026-05-13
1041India2026-05-07
1042India2026-05-12
1043Russia2026-05-08
1044France2026-05-19
1045Australia2026-05-15
1046Spain2026-05-12
1047Japan2026-05-11
1048France2026-04-27
1049Brazil2026-04-24

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Brazil2026-05-08
Chavez Briddick1001Italy2026-05-04
Cody Saylors1002Australia2026-04-28
Faith Gillian1003Japan2026-05-19
Emily Whobrey1004Brazil2026-05-01
Arvin Albares1005Russia2026-05-03
Deepesh Chui1006United Kingdom2026-04-26
Morrow Ruta1007Argentina2026-04-25
Salvatore Stockham1008Italy2026-04-30
Aruna Figeroa1009Canada2026-05-04
Chavez Briddick1010Brazil2026-05-11
Isabel Bowley1011France2026-05-20
Costa Dilliard1012Argentina2026-04-28
Greenwood Bolognia1013Russia2026-04-25
Arvin Albares1014Japan2026-05-20
Claire Tollner1015India2026-05-02
Clifford Rim1016Brazil2026-05-20
Munro Ferencz1017Canada2026-05-02
Aditya Kusko1018Germany2026-05-04
Leon Oldroyd1019Canada2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues CampainRussiaAmy Elsner QUALIFIED
James ButtJapanAmy Elsner RENEWAL
Chavez BriddickJapanIoni Bowcher UNQUALIFIED
Emily WhobreyBrazilAnna Fali QUALIFIED
Kadeem FlosiAustraliaXuxue Feng UNQUALIFIED
Aruna FigeroaItalyAmy Elsner NEGOTIATION
Aditya KuskoSpainOnyama Limba PROPOSAL
Mayumi KolmetzIndiaIvan Magalhaes UNQUALIFIED
Maisha RulapaughRussiaStephen Shaw NEGOTIATION
Antonio CaudyIndiaXuxue Feng NEGOTIATION
Emily WhobreyJapanIvan Magalhaes UNQUALIFIED
Mayumi KolmetzBrazilBernardo Dominic PROPOSAL
Aruna FigeroaIndiaAnna Fali RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher UNQUALIFIED
James ButtArgentinaStephen Shaw PROPOSAL
Maria MarrierJapanAmy Elsner QUALIFIED
Aruna FigeroaIndiaIvan Magalhaes NEW
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Mujtaba NickaCanadaIvan Magalhaes QUALIFIED
Mujtaba NickaItalyBernardo Dominic RENEWAL
David DarakjyBrazilOnyama Limba NEW
Adams MorascaArgentinaIvan Magalhaes NEW
Kadeem FlosiArgentinaIvan Magalhaes NEGOTIATION
Maria MarrierSpainXuxue Feng UNQUALIFIED
Johnson SergiGermanyOnyama Limba UNQUALIFIED
Johnson SergiCanadaStephen Shaw NEGOTIATION
Aruna FigeroaGermanyElwin Sharvill PROPOSAL
Ivar PaprockiBrazilOnyama Limba QUALIFIED
Nicolas IturbideArgentinaXuxue Feng UNQUALIFIED
Claire TollnerSpainAnna Fali UNQUALIFIED
Juan WieserGermanyBernardo Dominic NEGOTIATION
Leon OldroydIndiaElwin Sharvill RENEWAL
Jennifer AmigonCanadaAnna Fali PROPOSAL
Adams MorascaSpainAnna Fali NEW
Isabel BowleyItalyIoni Bowcher NEGOTIATION
Jennifer AmigonFranceOnyama Limba NEGOTIATION
Murillo MaletAustraliaStephen Shaw RENEWAL
Aruna FigeroaCanadaAmy Elsner RENEWAL
Izzy GarufiSpainIvan Magalhaes NEGOTIATION
Smith GlickRussiaOnyama Limba NEW

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