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
Kaitlin OstroskyAustraliaElwin Sharvill RENEWAL
Faith GillianBrazilIoni Bowcher UNQUALIFIED
Arvin AlbaresBrazilIoni Bowcher UNQUALIFIED
Tony FollerJapanAsiya Javayant QUALIFIED
Salvatore StockhamFranceOnyama Limba PROPOSAL
Mujtaba NickaUnited KingdomXuxue Feng NEGOTIATION
Ivar PaprockiCanadaAsiya Javayant NEW
Costa DilliardBrazilElwin Sharvill RENEWAL
Deepesh ChuiBrazilBernardo Dominic UNQUALIFIED
Leja CaldareraRussiaAmy Elsner QUALIFIED
Aruna FigeroaArgentinaElwin Sharvill PROPOSAL
Cody SaylorsItalyAnna Fali QUALIFIED
Johnson SergiGermanyAmy Elsner UNQUALIFIED
Deepesh ChuiIndiaAmy Elsner RENEWAL
Misaki RoysterGermanyXuxue Feng NEGOTIATION
Jones VocelkaUnited KingdomIoni Bowcher PROPOSAL
Morrow RutaCanadaElwin Sharvill RENEWAL
Sinclair WaycottItalyElwin Sharvill PROPOSAL
Emily WhobreyAustraliaIoni Bowcher RENEWAL
Morrow RutaJapanXuxue Feng NEGOTIATION
Chavez BriddickArgentinaOnyama Limba NEW
Kaitlin OstroskyJapanElwin Sharvill PROPOSAL
Alejandro PerinRussiaAmy Elsner NEGOTIATION
Kadeem FlosiGermanyOnyama Limba QUALIFIED
Wickens NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood BologniaAustraliaElwin Sharvill QUALIFIED
Nicolas IturbideIndiaIvan Magalhaes NEW
Francesco ShinkoItalyOnyama Limba RENEWAL
Johnson SergiCanadaAmy Elsner QUALIFIED
Kadeem FlosiGermanyBernardo Dominic RENEWAL
Murillo MaletArgentinaXuxue Feng QUALIFIED
Costa DilliardAustraliaAsiya Javayant UNQUALIFIED
Faith GillianRussiaStephen Shaw NEW
Emily WhobreyIndiaElwin Sharvill PROPOSAL
Mayumi KolmetzItalyElwin Sharvill PROPOSAL
Jennifer AmigonRussiaBernardo Dominic NEW
Smith GlickSpainAnna Fali RENEWAL
Tony FollerArgentinaXuxue Feng NEW
Cody SaylorsGermanyIvan Magalhaes RENEWAL
Silvio SlusarskiItalyXuxue Feng UNQUALIFIED
Juan WieserIndiaBernardo Dominic NEW
Chavez BriddickUnited KingdomAmy Elsner QUALIFIED
Costa DilliardItalyXuxue Feng RENEWAL
Greenwood BologniaJapanStephen Shaw RENEWAL
Leja CaldareraSpainOnyama Limba NEGOTIATION
Juan WieserGermanyIoni Bowcher UNQUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill PROPOSAL
Wickens NestleSpainElwin Sharvill PROPOSAL
Morrow RutaGermanyBernardo Dominic NEGOTIATION
Costa DilliardJapanIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzGermanyAmy Elsner UNQUALIFIED
Aruna FigeroaIndiaAnna Fali RENEWAL
Jennifer AmigonGermanyXuxue Feng RENEWAL
Francesco ShinkoItalyStephen Shaw NEW
Deepesh ChuiJapanIvan Magalhaes UNQUALIFIED
Izzy GarufiCanadaXuxue Feng RENEWAL
Leja CaldareraIndiaAmy Elsner UNQUALIFIED
Jennifer AmigonIndiaIvan Magalhaes NEGOTIATION
Smith GlickAustraliaIoni Bowcher NEGOTIATION
Leon OldroydIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserRussia2026-04-28Morlong Associates NEW64Ivan Magalhaes
1001Juan WieserGermany2026-04-15Morlong Associates NEGOTIATION50Ivan Magalhaes
1002Smith GlickIndia2026-04-14Buckley Miller Wright PROPOSAL58Elwin Sharvill
1003Murillo MaletGermany2026-05-10Buckley Miller Wright RENEWAL83Xuxue Feng
1004Adams MorascaRussia2026-05-06Rangoni Of Florence RENEWAL36Bernardo Dominic
1005Clifford RimArgentina2026-04-17Feltz Printing Service NEW67Stephen Shaw
1006Smith GlickRussia2026-04-15Feiner Bros UNQUALIFIED54Elwin Sharvill
1007Munro FerenczUnited Kingdom2026-04-22Feltz Printing Service UNQUALIFIED70Ioni Bowcher
1008Octavia MaletCanada2026-05-08Truhlar And Truhlar Attys NEGOTIATION94Asiya Javayant
1009James ButtUnited Kingdom2026-05-02Buckley Miller Wright PROPOSAL73Ioni Bowcher
1010Faith GillianJapan2026-04-23Morlong Associates NEW93Xuxue Feng
1011Chavez BriddickSpain2026-05-01Chanay, Jeffrey A Esq UNQUALIFIED46Bernardo Dominic
1012Maria MarrierBrazil2026-04-19Rangoni Of Florence RENEWAL66Asiya Javayant
1013Munro FerenczJapan2026-04-19Chemel, James L Cpa PROPOSAL41Asiya Javayant
1014Julie StensethBrazil2026-04-21Chemel, James L Cpa UNQUALIFIED63Ivan Magalhaes
1015Maria MarrierItaly2026-05-01Rangoni Of Florence QUALIFIED44Stephen Shaw
1016Claire TollnerItaly2026-04-17Chemel, James L Cpa RENEWAL85Amy Elsner
1017Tony FollerAustralia2026-04-16Feltz Printing Service UNQUALIFIED54Anna Fali
1018Mayumi KolmetzBrazil2026-05-09Rousseaux, Michael Esq NEGOTIATION21Amy Elsner
1019Morrow RutaIndia2026-05-07Chanay, Jeffrey A Esq UNQUALIFIED86Ivan Magalhaes
1020Ricardo GauchoItaly2026-04-27Benton, John B Jr UNQUALIFIED89Xuxue Feng
1021James ButtJapan2026-05-04Chemel, James L Cpa PROPOSAL40Elwin Sharvill
1022Clifford RimAustralia2026-04-28Benton, John B Jr NEW60Bernardo Dominic
1023Adams MorascaRussia2026-04-14Morlong Associates PROPOSAL80Anna Fali
1024Sinclair WaycottCanada2026-04-24Printing Dimensions NEGOTIATION60Amy Elsner
1025Murillo MaletUnited Kingdom2026-05-09Feiner Bros NEW49Amy Elsner
1026Jennifer AmigonSpain2026-05-06Rangoni Of Florence NEGOTIATION52Onyama Limba
1027Maisha RulapaughUnited Kingdom2026-05-04Chanay, Jeffrey A Esq NEGOTIATION75Stephen Shaw
1028Arvin AlbaresIndia2026-05-01Chemel, James L Cpa UNQUALIFIED92Onyama Limba
1029Deepesh ChuiCanada2026-04-23Feltz Printing Service RENEWAL18Ivan Magalhaes
1030Ricardo GauchoRussia2026-05-01Commercial Press RENEWAL75Elwin Sharvill
1031Rodrigues CampainGermany2026-04-24Morlong Associates QUALIFIED69Amy Elsner
1032Wickens NestleRussia2026-04-26Rangoni Of Florence RENEWAL87Xuxue Feng
1033Aika InouyeCanada2026-04-30Truhlar And Truhlar Attys NEW51Onyama Limba
1034Julie StensethJapan2026-04-25Feiner Bros UNQUALIFIED96Bernardo Dominic
1035Alejandro PerinCanada2026-05-05Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1036Chavez BriddickUnited Kingdom2026-05-09Commercial Press NEW31Xuxue Feng
1037David DarakjySpain2026-05-01Rangoni Of Florence NEGOTIATION63Amy Elsner
1038Nicolas IturbideBrazil2026-05-10Feiner Bros UNQUALIFIED58Amy Elsner
1039Tony FollerItaly2026-04-16Benton, John B Jr UNQUALIFIED51Asiya Javayant
1040Smith GlickAustralia2026-04-18Chemel, James L Cpa NEW41Bernardo Dominic
1041Jones VocelkaCanada2026-05-07Rousseaux, Michael Esq NEW50Amy Elsner
1042Wickens NestleFrance2026-04-24King, Christopher A Esq RENEWAL45Stephen Shaw
1043Sinclair WaycottAustralia2026-04-28Commercial Press NEGOTIATION49Elwin Sharvill
1044Costa DilliardBrazil2026-05-09Benton, John B Jr QUALIFIED87Ioni Bowcher
1045Wickens NestleGermany2026-05-02Chanay, Jeffrey A Esq RENEWAL40Stephen Shaw
1046Aika InouyeSpain2026-05-08Feiner Bros RENEWAL42Anna Fali
1047Izzy GarufiBrazil2026-05-03Printing Dimensions QUALIFIED48Ivan Magalhaes
1048Jefferson SchemmerRussia2026-04-18Printing Dimensions UNQUALIFIED92Anna Fali
1049Maisha RulapaughCanada2026-04-29Chanay, Jeffrey A Esq PROPOSAL42Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickItalyAmy Elsner NEW
Deepesh ChuiUnited KingdomAsiya Javayant PROPOSAL
Munro FerenczJapanElwin Sharvill PROPOSAL
Leja CaldareraAustraliaStephen Shaw NEGOTIATION
Sinclair WaycottRussiaAnna Fali UNQUALIFIED
Deepesh ChuiRussiaAmy Elsner NEGOTIATION
Kaitlin OstroskyGermanyOnyama Limba QUALIFIED
Murillo MaletBrazilOnyama Limba NEW
Leon OldroydCanadaStephen Shaw NEGOTIATION
Ivar PaprockiItalyAsiya Javayant NEGOTIATION
Izzy GarufiRussiaXuxue Feng NEW
Octavia MaletIndiaXuxue Feng RENEWAL
Arvin AlbaresItalyAsiya Javayant QUALIFIED
Chavez BriddickBrazilStephen Shaw NEW
Juan WieserAustraliaIvan Magalhaes NEW
Leja CaldareraAustraliaAnna Fali PROPOSAL
Jefferson SchemmerIndiaIoni Bowcher QUALIFIED
Cody SaylorsBrazilIoni Bowcher NEW
Emily WhobreyArgentinaOnyama Limba UNQUALIFIED
Sinclair WaycottArgentinaAnna Fali NEGOTIATION
Silvio SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Johnson SergiItalyOnyama Limba QUALIFIED
Stacey MacleadCanadaIvan Magalhaes PROPOSAL
Johnson SergiArgentinaOnyama Limba RENEWAL
Jennifer AmigonJapanAmy Elsner PROPOSAL
Emily WhobreyUnited KingdomAnna Fali QUALIFIED
Clifford RimJapanElwin Sharvill NEGOTIATION
Ivar PaprockiFranceOnyama Limba NEW
James ButtGermanyAnna Fali NEGOTIATION
Faith GillianBrazilStephen Shaw RENEWAL
Murillo MaletFranceAnna Fali RENEWAL
Juan WieserRussiaAmy Elsner UNQUALIFIED
Emily WhobreyGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaAmy Elsner NEW
Clifford RimGermanyIvan Magalhaes NEW
Adams MorascaJapanAsiya Javayant UNQUALIFIED
Deepesh ChuiGermanyXuxue Feng NEW
Tony FollerFranceAsiya Javayant RENEWAL
Morrow RutaRussiaAnna Fali RENEWAL
David DarakjyFranceStephen Shaw NEW
Stacey MacleadItalyIoni Bowcher QUALIFIED
Darci PoquetteUnited KingdomOnyama Limba QUALIFIED
Deepesh ChuiItalyAmy Elsner QUALIFIED
Arvin AlbaresIndiaElwin Sharvill NEW
Ivar PaprockiRussiaOnyama Limba RENEWAL
Salvatore StockhamArgentinaIoni Bowcher NEW
Maisha RulapaughIndiaStephen Shaw UNQUALIFIED
Nicolas IturbideAustraliaBernardo Dominic NEW
Francesco ShinkoRussiaAmy Elsner NEGOTIATION
Claire TollnerCanadaIvan Magalhaes NEW
Frozen Columns
Name
Octavia Malet
Faith Gillian
Deepesh Chui
Wickens Nestle
Costa Dilliard
Rodrigues Campain
Kadeem Flosi
Maria Marrier
Costa Dilliard
Leja Caldarera
Misaki Royster
Jefferson Schemmer
Sinclair Waycott
Jones Vocelka
Faith Gillian
Nicolas Iturbide
Cody Saylors
Jennifer Amigon
Ashley Doe
Izzy Garufi
Murillo Malet
Antonio Caudy
Morrow Ruta
Juan Wieser
Tony Foller
Jones Vocelka
Nicolas Iturbide
Smith Glick
Aruna Figeroa
Wickens Nestle
Kadeem Flosi
Clifford Rim
Antonio Caudy
Octavia Malet
Leja Caldarera
Julie Stenseth
Emily Whobrey
James Butt
Deepesh Chui
Stacey Maclead
Misaki Royster
Johnson Sergi
Clifford Rim
Clifford Rim
Sinclair Waycott
Jennifer Amigon
Costa Dilliard
Chavez Briddick
Jeanfrancois Venere
Aika Inouye
IdCountryDate
1000Spain2026-05-09
1001United Kingdom2026-04-29
1002India2026-04-22
1003Russia2026-05-06
1004United Kingdom2026-04-13
1005Brazil2026-04-30
1006India2026-05-10
1007United Kingdom2026-04-16
1008Argentina2026-05-02
1009France2026-05-05
1010India2026-04-13
1011Spain2026-04-12
1012Canada2026-05-11
1013Brazil2026-04-13
1014Spain2026-05-03
1015Spain2026-05-01
1016Germany2026-04-14
1017India2026-05-08
1018Brazil2026-04-19
1019United Kingdom2026-04-23
1020France2026-04-29
1021Italy2026-04-17
1022Brazil2026-05-04
1023Brazil2026-04-17
1024Germany2026-05-03
1025Australia2026-04-28
1026India2026-04-17
1027Germany2026-04-13
1028Japan2026-04-28
1029Japan2026-05-02
1030Germany2026-04-25
1031Canada2026-04-15
1032Japan2026-04-29
1033Australia2026-05-04
1034Argentina2026-04-27
1035Brazil2026-05-10
1036Canada2026-04-22
1037Japan2026-04-24
1038Japan2026-04-25
1039Brazil2026-04-26
1040Canada2026-05-09
1041Spain2026-04-18
1042Canada2026-04-29
1043Spain2026-05-11
1044Argentina2026-04-27
1045Spain2026-04-30
1046Brazil2026-04-23
1047Brazil2026-04-12
1048France2026-04-15
1049Germany2026-04-20

On-Demand Data

NameIdCountryDate
Cody Saylors1000Italy2026-04-19
Chavez Briddick1001Canada2026-04-24
Leja Caldarera1002Germany2026-04-20
Salvatore Stockham1003United Kingdom2026-04-22
Deepesh Chui1004Australia2026-04-19
Wickens Nestle1005Japan2026-04-26
Maria Marrier1006Germany2026-05-08
Leja Caldarera1007Japan2026-04-14
James Butt1008United Kingdom2026-05-01
Isabel Bowley1009Australia2026-04-30
Misaki Royster1010India2026-05-04
Munro Ferencz1011Brazil2026-05-06
Stacey Maclead1012Japan2026-04-16
Munro Ferencz1013Spain2026-05-05
Alejandro Perin1014Canada2026-04-29
Maria Marrier1015Australia2026-05-01
Claire Tollner1016France2026-04-27
Kaitlin Ostrosky1017Argentina2026-04-13
Arvin Albares1018Spain2026-05-08
Clifford Rim1019India2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues CampainSpainOnyama Limba NEW
Jefferson SchemmerBrazilElwin Sharvill UNQUALIFIED
Ashley DoeJapanXuxue Feng NEW
Misaki RoysterFranceIvan Magalhaes PROPOSAL
Isabel BowleyUnited KingdomXuxue Feng NEGOTIATION
Chavez BriddickUnited KingdomStephen Shaw NEW
Nicolas IturbideIndiaIvan Magalhaes NEW
Alejandro PerinIndiaAnna Fali NEGOTIATION
Tony FollerIndiaXuxue Feng RENEWAL
Maria MarrierUnited KingdomElwin Sharvill NEGOTIATION
Silvio SlusarskiAustraliaAmy Elsner QUALIFIED
Stacey MacleadBrazilXuxue Feng UNQUALIFIED
Aditya KuskoArgentinaIvan Magalhaes RENEWAL
Munro FerenczCanadaAmy Elsner QUALIFIED
Ricardo GauchoRussiaAnna Fali UNQUALIFIED
Misaki RoysterUnited KingdomElwin Sharvill PROPOSAL
Misaki RoysterIndiaOnyama Limba NEGOTIATION
Clifford RimArgentinaOnyama Limba NEGOTIATION
Kaitlin OstroskyIndiaStephen Shaw NEW
Claire TollnerSpainBernardo Dominic NEGOTIATION
Salvatore StockhamAustraliaAsiya Javayant QUALIFIED
Mayumi KolmetzSpainAsiya Javayant NEW
Ivar PaprockiArgentinaElwin Sharvill NEW
Jefferson SchemmerFranceAmy Elsner PROPOSAL
Darci PoquetteGermanyBernardo Dominic NEGOTIATION
Chavez BriddickJapanElwin Sharvill QUALIFIED
Kadeem FlosiCanadaElwin Sharvill PROPOSAL
Johnson SergiSpainOnyama Limba NEGOTIATION
Jennifer AmigonAustraliaOnyama Limba QUALIFIED
Jeanfrancois VenereAustraliaOnyama Limba NEW
Kaitlin OstroskyItalyBernardo Dominic NEGOTIATION
Chavez BriddickJapanIvan Magalhaes UNQUALIFIED
Ashley DoeBrazilBernardo Dominic NEW
Deepesh ChuiFranceIvan Magalhaes NEW
Misaki RoysterAustraliaElwin Sharvill NEW
Stacey MacleadFranceAsiya Javayant PROPOSAL
Morrow RutaSpainIoni Bowcher NEW
Juan WieserAustraliaAmy Elsner QUALIFIED
Jennifer AmigonBrazilAnna Fali UNQUALIFIED
Arvin AlbaresAustraliaAsiya Javayant 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>