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
Munro FerenczItalyIvan Magalhaes PROPOSAL
David DarakjyBrazilXuxue Feng NEGOTIATION
Antonio CaudyBrazilIvan Magalhaes NEGOTIATION
Morrow RutaCanadaStephen Shaw NEGOTIATION
Ivar PaprockiArgentinaStephen Shaw NEGOTIATION
Ivar PaprockiUnited KingdomBernardo Dominic NEW
Morrow RutaUnited KingdomXuxue Feng QUALIFIED
Antonio CaudyIndiaAsiya Javayant UNQUALIFIED
Sinclair WaycottFranceOnyama Limba NEGOTIATION
Aika InouyeArgentinaAnna Fali RENEWAL
Leon OldroydFranceElwin Sharvill RENEWAL
Julie StensethAustraliaStephen Shaw NEGOTIATION
Munro FerenczFranceAmy Elsner QUALIFIED
Juan WieserArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues CampainCanadaBernardo Dominic RENEWAL
Chavez BriddickArgentinaIoni Bowcher RENEWAL
Greenwood BologniaCanadaOnyama Limba NEGOTIATION
Cody SaylorsAustraliaElwin Sharvill NEW
Julie StensethJapanAmy Elsner NEW
Costa DilliardItalyElwin Sharvill RENEWAL
Salvatore StockhamBrazilIoni Bowcher NEW
Johnson SergiSpainOnyama Limba NEW
Jennifer AmigonFranceStephen Shaw RENEWAL
Smith GlickCanadaBernardo Dominic NEW
Ashley DoeItalyOnyama Limba PROPOSAL
Maisha RulapaughFranceAnna Fali QUALIFIED
Claire TollnerItalyXuxue Feng NEGOTIATION
Faith GillianAustraliaAmy Elsner RENEWAL
Leja CaldareraJapanXuxue Feng RENEWAL
Aruna FigeroaAustraliaBernardo Dominic QUALIFIED
Morrow RutaSpainStephen Shaw PROPOSAL
Francesco ShinkoGermanyElwin Sharvill NEGOTIATION
Juan WieserArgentinaElwin Sharvill QUALIFIED
Munro FerenczBrazilIoni Bowcher QUALIFIED
Antonio CaudyJapanElwin Sharvill RENEWAL
Jefferson SchemmerIndiaElwin Sharvill RENEWAL
Arvin AlbaresSpainAmy Elsner QUALIFIED
Mayumi KolmetzSpainXuxue Feng NEGOTIATION
Maisha RulapaughFranceAnna Fali NEW
Nicolas IturbideRussiaAmy Elsner QUALIFIED
Munro FerenczFranceAsiya Javayant UNQUALIFIED
Costa DilliardSpainElwin Sharvill PROPOSAL
Aditya KuskoGermanyAnna Fali UNQUALIFIED
Izzy GarufiItalyXuxue Feng NEW
Smith GlickCanadaStephen Shaw RENEWAL
Salvatore StockhamSpainIoni Bowcher NEGOTIATION
Maria MarrierIndiaAsiya Javayant RENEWAL
Aditya KuskoJapanAmy Elsner QUALIFIED
Deepesh ChuiItalyOnyama Limba QUALIFIED
Leon OldroydCanadaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzItalyXuxue Feng RENEWAL
Nicolas IturbideSpainIvan Magalhaes RENEWAL
Costa DilliardFranceAmy Elsner RENEWAL
Jefferson SchemmerRussiaBernardo Dominic NEW
Rodrigues CampainItalyXuxue Feng PROPOSAL
James ButtAustraliaAnna Fali RENEWAL
Mujtaba NickaRussiaIoni Bowcher PROPOSAL
Cody SaylorsCanadaOnyama Limba NEW
Kaitlin OstroskyJapanIvan Magalhaes NEGOTIATION
Alejandro PerinFranceOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickArgentina2026-06-07Feltz Printing Service PROPOSAL5Anna Fali
1001Tony FollerCanada2026-06-04Feltz Printing Service NEW19Elwin Sharvill
1002Salvatore StockhamFrance2026-06-04Buckley Miller Wright UNQUALIFIED51Elwin Sharvill
1003Chavez BriddickItaly2026-06-05Printing Dimensions RENEWAL46Ivan Magalhaes
1004Jennifer AmigonAustralia2026-05-28Rangoni Of Florence QUALIFIED4Amy Elsner
1005Aruna FigeroaCanada2026-06-03Rangoni Of Florence PROPOSAL3Bernardo Dominic
1006Misaki RoysterIndia2026-06-05Feltz Printing Service PROPOSAL64Ivan Magalhaes
1007Morrow RutaUnited Kingdom2026-05-16Chanay, Jeffrey A Esq QUALIFIED42Stephen Shaw
1008Izzy GarufiRussia2026-05-24Feiner Bros UNQUALIFIED17Xuxue Feng
1009Aruna FigeroaJapan2026-06-01Feltz Printing Service RENEWAL76Bernardo Dominic
1010Francesco ShinkoItaly2026-06-06Feiner Bros UNQUALIFIED57Onyama Limba
1011Emily WhobreyBrazil2026-05-25Feltz Printing Service RENEWAL14Anna Fali
1012Nicolas IturbideJapan2026-05-22King, Christopher A Esq PROPOSAL55Stephen Shaw
1013Julie StensethIndia2026-05-23Commercial Press UNQUALIFIED61Asiya Javayant
1014Mujtaba NickaSpain2026-05-16Chemel, James L Cpa NEW73Ioni Bowcher
1015Leon OldroydArgentina2026-05-20Benton, John B Jr NEGOTIATION78Onyama Limba
1016Deepesh ChuiCanada2026-05-10Rangoni Of Florence RENEWAL84Stephen Shaw
1017Alejandro PerinUnited Kingdom2026-05-27Printing Dimensions NEGOTIATION39Stephen Shaw
1018Clifford RimBrazil2026-05-31Chapman, Ross E Esq UNQUALIFIED61Elwin Sharvill
1019David DarakjyAustralia2026-06-06Truhlar And Truhlar Attys NEGOTIATION65Amy Elsner
1020Ivar PaprockiIndia2026-05-21Morlong Associates UNQUALIFIED60Stephen Shaw
1021Maisha RulapaughItaly2026-05-22King, Christopher A Esq UNQUALIFIED84Anna Fali
1022David DarakjyCanada2026-05-29Truhlar And Truhlar Attys NEW71Bernardo Dominic
1023Greenwood BologniaCanada2026-05-10Chanay, Jeffrey A Esq QUALIFIED99Asiya Javayant
1024Munro FerenczAustralia2026-06-02Feiner Bros NEGOTIATION46Anna Fali
1025Maria MarrierUnited Kingdom2026-05-26Rangoni Of Florence RENEWAL28Amy Elsner
1026Isabel BowleyItaly2026-05-14Rangoni Of Florence PROPOSAL96Anna Fali
1027Murillo MaletGermany2026-06-01Benton, John B Jr RENEWAL69Xuxue Feng
1028Mujtaba NickaBrazil2026-05-11Benton, John B Jr RENEWAL2Ivan Magalhaes
1029Mujtaba NickaAustralia2026-06-04Printing Dimensions RENEWAL35Stephen Shaw
1030Emily WhobreyGermany2026-05-10Rousseaux, Michael Esq RENEWAL13Onyama Limba
1031Juan WieserGermany2026-06-06Morlong Associates UNQUALIFIED8Xuxue Feng
1032Juan WieserGermany2026-05-30Chemel, James L Cpa QUALIFIED8Elwin Sharvill
1033Morrow RutaFrance2026-05-28Morlong Associates NEGOTIATION77Amy Elsner
1034Murillo MaletJapan2026-05-26Morlong Associates PROPOSAL20Ioni Bowcher
1035Ashley DoeAustralia2026-06-01Morlong Associates QUALIFIED34Onyama Limba
1036Maisha RulapaughUnited Kingdom2026-05-29Truhlar And Truhlar Attys UNQUALIFIED37Anna Fali
1037Silvio SlusarskiJapan2026-05-18King, Christopher A Esq NEW36Asiya Javayant
1038Cody SaylorsRussia2026-05-12Chanay, Jeffrey A Esq NEGOTIATION40Ioni Bowcher
1039Francesco ShinkoJapan2026-06-01Printing Dimensions UNQUALIFIED6Asiya Javayant
1040Antonio CaudyIndia2026-05-29Buckley Miller Wright NEGOTIATION39Bernardo Dominic
1041Julie StensethGermany2026-06-03Printing Dimensions UNQUALIFIED62Bernardo Dominic
1042Francesco ShinkoBrazil2026-05-09Truhlar And Truhlar Attys QUALIFIED92Onyama Limba
1043Kadeem FlosiCanada2026-05-19Feltz Printing Service UNQUALIFIED43Stephen Shaw
1044Izzy GarufiFrance2026-05-18Chanay, Jeffrey A Esq NEGOTIATION94Elwin Sharvill
1045Ricardo GauchoGermany2026-05-29Feltz Printing Service UNQUALIFIED32Elwin Sharvill
1046Clifford RimBrazil2026-05-13Dorl, James J Esq NEGOTIATION24Amy Elsner
1047Leja CaldareraJapan2026-06-06Buckley Miller Wright NEW75Ioni Bowcher
1048Johnson SergiIndia2026-06-07Commercial Press NEW1Onyama Limba
1049Clifford RimJapan2026-05-24Commercial Press NEW13Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiAustraliaStephen Shaw RENEWAL
Darci PoquetteUnited KingdomXuxue Feng QUALIFIED
Misaki RoysterSpainAnna Fali PROPOSAL
Arvin AlbaresJapanElwin Sharvill NEW
Aditya KuskoRussiaAnna Fali UNQUALIFIED
Misaki RoysterArgentinaAmy Elsner RENEWAL
Chavez BriddickCanadaOnyama Limba NEGOTIATION
Aruna FigeroaGermanyIvan Magalhaes NEGOTIATION
Morrow RutaCanadaAnna Fali PROPOSAL
Rodrigues CampainItalyIoni Bowcher NEGOTIATION
Cody SaylorsGermanyIoni Bowcher UNQUALIFIED
Leon OldroydAustraliaAnna Fali NEGOTIATION
Salvatore StockhamJapanElwin Sharvill NEGOTIATION
Nicolas IturbideSpainBernardo Dominic RENEWAL
Kadeem FlosiAustraliaAsiya Javayant NEGOTIATION
Stacey MacleadFranceStephen Shaw PROPOSAL
Leon OldroydJapanStephen Shaw NEW
Ricardo GauchoFranceAnna Fali QUALIFIED
Morrow RutaSpainAnna Fali UNQUALIFIED
David DarakjyJapanElwin Sharvill QUALIFIED
David DarakjyAustraliaStephen Shaw NEW
Nicolas IturbideJapanIvan Magalhaes QUALIFIED
Jennifer AmigonArgentinaElwin Sharvill PROPOSAL
Adams MorascaRussiaAnna Fali NEW
Claire TollnerUnited KingdomXuxue Feng QUALIFIED
Arvin AlbaresGermanyIoni Bowcher RENEWAL
Tony FollerUnited KingdomAnna Fali PROPOSAL
Rodrigues CampainJapanElwin Sharvill UNQUALIFIED
Darci PoquetteBrazilStephen Shaw PROPOSAL
Stacey MacleadSpainAsiya Javayant QUALIFIED
Leon OldroydJapanXuxue Feng RENEWAL
Costa DilliardFranceIoni Bowcher QUALIFIED
Emily WhobreyGermanyStephen Shaw NEGOTIATION
Aika InouyeItalyStephen Shaw UNQUALIFIED
Tony FollerItalyOnyama Limba NEGOTIATION
Smith GlickIndiaStephen Shaw NEW
Aruna FigeroaFranceIoni Bowcher QUALIFIED
Costa DilliardArgentinaAsiya Javayant QUALIFIED
Ashley DoeGermanyStephen Shaw QUALIFIED
Cody SaylorsFranceAmy Elsner PROPOSAL
Wickens NestleBrazilIoni Bowcher RENEWAL
Deepesh ChuiBrazilElwin Sharvill UNQUALIFIED
Leon OldroydItalyBernardo Dominic NEGOTIATION
Isabel BowleyAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois VenereAustraliaStephen Shaw PROPOSAL
David DarakjyJapanXuxue Feng PROPOSAL
Claire TollnerSpainIoni Bowcher QUALIFIED
David DarakjyBrazilAmy Elsner UNQUALIFIED
Munro FerenczIndiaAnna Fali QUALIFIED
David DarakjyFranceOnyama Limba UNQUALIFIED
Frozen Columns
Name
Ricardo Gaucho
Jennifer Amigon
Ricardo Gaucho
Darci Poquette
Julie Stenseth
Murillo Malet
Izzy Garufi
Munro Ferencz
Leja Caldarera
Greenwood Bolognia
Leon Oldroyd
Jennifer Amigon
Darci Poquette
Stacey Maclead
Salvatore Stockham
Julie Stenseth
Wickens Nestle
Johnson Sergi
Octavia Malet
Silvio Slusarski
James Butt
Johnson Sergi
Jennifer Amigon
Ashley Doe
Stacey Maclead
Antonio Caudy
Darci Poquette
Munro Ferencz
Jefferson Schemmer
Smith Glick
Arvin Albares
Alejandro Perin
Silvio Slusarski
Ashley Doe
Izzy Garufi
Silvio Slusarski
Jeanfrancois Venere
Nicolas Iturbide
Silvio Slusarski
Munro Ferencz
Silvio Slusarski
Jennifer Amigon
Izzy Garufi
Rodrigues Campain
Tony Foller
Emily Whobrey
Smith Glick
Morrow Ruta
Costa Dilliard
Greenwood Bolognia
IdCountryDate
1000Germany2026-05-21
1001Canada2026-06-05
1002Japan2026-05-25
1003Australia2026-05-29
1004France2026-05-13
1005France2026-05-10
1006Germany2026-05-12
1007Italy2026-05-26
1008Italy2026-05-14
1009India2026-05-29
1010France2026-06-01
1011Germany2026-05-19
1012France2026-05-27
1013France2026-06-04
1014Argentina2026-05-24
1015Canada2026-05-21
1016Australia2026-05-21
1017United Kingdom2026-05-18
1018Italy2026-06-02
1019Russia2026-05-17
1020Australia2026-05-23
1021Italy2026-05-13
1022France2026-05-13
1023Spain2026-05-15
1024Japan2026-05-15
1025Spain2026-05-17
1026Brazil2026-05-16
1027Spain2026-05-22
1028Germany2026-05-11
1029Germany2026-05-23
1030Russia2026-05-28
1031United Kingdom2026-05-22
1032France2026-06-04
1033France2026-06-05
1034United Kingdom2026-05-15
1035Spain2026-06-07
1036Australia2026-05-28
1037Argentina2026-05-24
1038Russia2026-05-09
1039Australia2026-06-06
1040Canada2026-05-31
1041Spain2026-06-03
1042Argentina2026-05-11
1043India2026-05-17
1044Canada2026-05-25
1045India2026-05-09
1046Japan2026-06-02
1047India2026-05-17
1048Spain2026-05-31
1049Spain2026-05-20

On-Demand Data

NameIdCountryDate
Smith Glick1000Italy2026-05-20
Aruna Figeroa1001France2026-06-06
Smith Glick1002United Kingdom2026-05-20
Maria Marrier1003Germany2026-05-25
Ashley Doe1004Canada2026-05-31
Mayumi Kolmetz1005Spain2026-05-16
Mayumi Kolmetz1006Argentina2026-05-23
Julie Stenseth1007Argentina2026-05-25
Mujtaba Nicka1008Italy2026-05-11
Aruna Figeroa1009Argentina2026-05-10
Murillo Malet1010Germany2026-05-26
Cody Saylors1011Spain2026-06-07
Clifford Rim1012Russia2026-05-18
Francesco Shinko1013Italy2026-05-16
Juan Wieser1014Germany2026-05-31
Morrow Ruta1015Italy2026-05-22
Misaki Royster1016Germany2026-05-24
Morrow Ruta1017Italy2026-06-03
Emily Whobrey1018Germany2026-05-19
Jeanfrancois Venere1019Spain2026-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsArgentinaXuxue Feng UNQUALIFIED
Faith GillianCanadaElwin Sharvill RENEWAL
Ricardo GauchoArgentinaIvan Magalhaes RENEWAL
Alejandro PerinIndiaAsiya Javayant PROPOSAL
Munro FerenczIndiaIvan Magalhaes RENEWAL
Aruna FigeroaBrazilIvan Magalhaes QUALIFIED
Aruna FigeroaRussiaElwin Sharvill NEGOTIATION
Octavia MaletCanadaAsiya Javayant UNQUALIFIED
Aika InouyeBrazilOnyama Limba RENEWAL
Julie StensethItalyStephen Shaw QUALIFIED
Jennifer AmigonFranceAmy Elsner PROPOSAL
Wickens NestleJapanElwin Sharvill UNQUALIFIED
Antonio CaudyUnited KingdomIoni Bowcher NEGOTIATION
Claire TollnerSpainAmy Elsner PROPOSAL
Ricardo GauchoCanadaStephen Shaw UNQUALIFIED
Salvatore StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Tony FollerBrazilIoni Bowcher PROPOSAL
Mujtaba NickaGermanyAsiya Javayant RENEWAL
Tony FollerBrazilStephen Shaw NEGOTIATION
Darci PoquetteSpainOnyama Limba QUALIFIED
Deepesh ChuiFranceStephen Shaw PROPOSAL
Sinclair WaycottFranceAsiya Javayant RENEWAL
Greenwood BologniaCanadaStephen Shaw NEGOTIATION
Jones VocelkaArgentinaXuxue Feng PROPOSAL
Kaitlin OstroskyBrazilBernardo Dominic UNQUALIFIED
Stacey MacleadAustraliaOnyama Limba NEGOTIATION
Wickens NestleJapanAmy Elsner QUALIFIED
Izzy GarufiArgentinaIvan Magalhaes NEW
Maisha RulapaughBrazilBernardo Dominic UNQUALIFIED
Smith GlickIndiaIoni Bowcher QUALIFIED
Deepesh ChuiBrazilIoni Bowcher NEW
Octavia MaletFranceIvan Magalhaes RENEWAL
Smith GlickFranceAmy Elsner NEW
Mayumi KolmetzIndiaBernardo Dominic UNQUALIFIED
Kadeem FlosiRussiaOnyama Limba PROPOSAL
Emily WhobreyFranceIvan Magalhaes NEW
David DarakjyIndiaIoni Bowcher NEGOTIATION
Jones VocelkaItalyIvan Magalhaes NEW
Jefferson SchemmerItalyXuxue Feng UNQUALIFIED
Kadeem FlosiJapanOnyama Limba QUALIFIED

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