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
Sinclair WaycottBrazilIoni Bowcher PROPOSAL
Francesco ShinkoCanadaAnna Fali NEGOTIATION
Clifford RimJapanAsiya Javayant QUALIFIED
Salvatore StockhamRussiaOnyama Limba RENEWAL
Arvin AlbaresAustraliaIvan Magalhaes NEW
Misaki RoysterBrazilOnyama Limba RENEWAL
Clifford RimAustraliaBernardo Dominic NEGOTIATION
Wickens NestleItalyIvan Magalhaes QUALIFIED
Mayumi KolmetzCanadaAnna Fali UNQUALIFIED
Smith GlickJapanOnyama Limba PROPOSAL
Tony FollerItalyElwin Sharvill PROPOSAL
Faith GillianIndiaOnyama Limba UNQUALIFIED
Ashley DoeGermanyAsiya Javayant PROPOSAL
Maisha RulapaughGermanyElwin Sharvill RENEWAL
Sinclair WaycottFranceBernardo Dominic QUALIFIED
Kadeem FlosiAustraliaStephen Shaw QUALIFIED
Misaki RoysterArgentinaAsiya Javayant PROPOSAL
Greenwood BologniaArgentinaStephen Shaw NEW
Jeanfrancois VenereBrazilBernardo Dominic RENEWAL
Izzy GarufiAustraliaXuxue Feng NEGOTIATION
Arvin AlbaresSpainElwin Sharvill NEGOTIATION
Stacey MacleadArgentinaBernardo Dominic NEGOTIATION
Ricardo GauchoSpainIvan Magalhaes NEW
Cody SaylorsAustraliaAmy Elsner RENEWAL
David DarakjySpainAnna Fali PROPOSAL
Greenwood BologniaFranceElwin Sharvill NEW
Leon OldroydCanadaIvan Magalhaes PROPOSAL
Silvio SlusarskiFranceAsiya Javayant RENEWAL
Greenwood BologniaAustraliaElwin Sharvill UNQUALIFIED
Maria MarrierArgentinaAsiya Javayant NEGOTIATION
Rodrigues CampainUnited KingdomAnna Fali NEW
Juan WieserRussiaIoni Bowcher UNQUALIFIED
Mujtaba NickaUnited KingdomBernardo Dominic RENEWAL
Maria MarrierIndiaStephen Shaw RENEWAL
Jennifer AmigonUnited KingdomAsiya Javayant RENEWAL
Costa DilliardRussiaAsiya Javayant QUALIFIED
Costa DilliardSpainOnyama Limba NEW
Smith GlickSpainAnna Fali UNQUALIFIED
Kaitlin OstroskyBrazilIoni Bowcher NEGOTIATION
Morrow RutaAustraliaOnyama Limba UNQUALIFIED
Rodrigues CampainIndiaStephen Shaw RENEWAL
Jeanfrancois VenereSpainIoni Bowcher QUALIFIED
Maria MarrierArgentinaAmy Elsner PROPOSAL
Aditya KuskoRussiaOnyama Limba NEGOTIATION
Deepesh ChuiBrazilAnna Fali UNQUALIFIED
Wickens NestleIndiaAmy Elsner PROPOSAL
Aika InouyeGermanyXuxue Feng PROPOSAL
Clifford RimJapanBernardo Dominic UNQUALIFIED
Jeanfrancois VenereCanadaElwin Sharvill PROPOSAL
Johnson SergiIndiaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Smith GlickIndiaAnna Fali QUALIFIED
Greenwood BologniaUnited KingdomAmy Elsner NEGOTIATION
Leja CaldareraAustraliaAmy Elsner NEW
Aditya KuskoRussiaIoni Bowcher QUALIFIED
Leon OldroydUnited KingdomBernardo Dominic RENEWAL
Aika InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Adams MorascaRussiaAsiya Javayant QUALIFIED
Misaki RoysterUnited KingdomElwin Sharvill NEW
Kaitlin OstroskyItalyXuxue Feng NEGOTIATION
Leja CaldareraFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaGermany2025-10-12Rousseaux, Michael Esq QUALIFIED39Ivan Magalhaes
1001Ricardo GauchoSpain2025-09-29Morlong Associates RENEWAL97Anna Fali
1002Darci PoquetteBrazil2025-10-18Chapman, Ross E Esq QUALIFIED93Ivan Magalhaes
1003Francesco ShinkoAustralia2025-09-30Dorl, James J Esq NEW50Elwin Sharvill
1004Cody SaylorsCanada2025-09-25Rangoni Of Florence QUALIFIED38Elwin Sharvill
1005Smith GlickIndia2025-09-20Feltz Printing Service RENEWAL92Anna Fali
1006Maria MarrierSpain2025-09-21Morlong Associates NEGOTIATION53Asiya Javayant
1007Antonio CaudyGermany2025-09-29Feltz Printing Service NEW98Elwin Sharvill
1008Kaitlin OstroskyJapan2025-10-13Rangoni Of Florence RENEWAL59Elwin Sharvill
1009Sinclair WaycottSpain2025-10-05Commercial Press QUALIFIED43Elwin Sharvill
1010Chavez BriddickArgentina2025-09-21Feltz Printing Service NEW99Amy Elsner
1011Leja CaldareraFrance2025-10-12Morlong Associates NEW6Anna Fali
1012Ashley DoeGermany2025-09-27Feltz Printing Service PROPOSAL18Onyama Limba
1013Sinclair WaycottIndia2025-09-22Feiner Bros UNQUALIFIED71Anna Fali
1014Kadeem FlosiFrance2025-10-04Chemel, James L Cpa UNQUALIFIED96Onyama Limba
1015Leja CaldareraGermany2025-10-05Printing Dimensions PROPOSAL52Ioni Bowcher
1016Tony FollerJapan2025-10-02Rousseaux, Michael Esq QUALIFIED61Asiya Javayant
1017Francesco ShinkoCanada2025-10-11Truhlar And Truhlar Attys RENEWAL32Bernardo Dominic
1018Jennifer AmigonRussia2025-09-29Feltz Printing Service UNQUALIFIED3Bernardo Dominic
1019Cody SaylorsSpain2025-10-10Chemel, James L Cpa NEGOTIATION97Asiya Javayant
1020Jennifer AmigonSpain2025-10-06Buckley Miller Wright PROPOSAL42Elwin Sharvill
1021Costa DilliardItaly2025-10-19Commercial Press NEW58Asiya Javayant
1022Chavez BriddickAustralia2025-10-17Dorl, James J Esq NEW78Ioni Bowcher
1023James ButtJapan2025-10-15Chapman, Ross E Esq RENEWAL91Onyama Limba
1024Juan WieserBrazil2025-10-03Chemel, James L Cpa NEGOTIATION98Ivan Magalhaes
1025Chavez BriddickItaly2025-10-02Morlong Associates PROPOSAL27Elwin Sharvill
1026Ricardo GauchoJapan2025-10-18Chanay, Jeffrey A Esq NEW13Asiya Javayant
1027Aruna FigeroaJapan2025-09-24Rangoni Of Florence NEGOTIATION20Onyama Limba
1028Maria MarrierCanada2025-09-21Benton, John B Jr RENEWAL84Asiya Javayant
1029Leon OldroydFrance2025-10-05Chemel, James L Cpa UNQUALIFIED28Bernardo Dominic
1030Arvin AlbaresIndia2025-09-26Commercial Press UNQUALIFIED21Elwin Sharvill
1031Emily WhobreyGermany2025-10-14Commercial Press QUALIFIED38Bernardo Dominic
1032Emily WhobreyUnited Kingdom2025-10-07Chemel, James L Cpa RENEWAL95Asiya Javayant
1033Faith GillianIndia2025-10-06Rangoni Of Florence QUALIFIED15Elwin Sharvill
1034Murillo MaletBrazil2025-10-13Chapman, Ross E Esq QUALIFIED39Asiya Javayant
1035Stacey MacleadItaly2025-10-03Chapman, Ross E Esq RENEWAL90Anna Fali
1036Sinclair WaycottJapan2025-10-08Rangoni Of Florence NEGOTIATION96Elwin Sharvill
1037Antonio CaudyFrance2025-09-21Chapman, Ross E Esq RENEWAL66Amy Elsner
1038Mujtaba NickaJapan2025-09-29Buckley Miller Wright NEW59Ioni Bowcher
1039Tony FollerIndia2025-09-23Printing Dimensions UNQUALIFIED24Amy Elsner
1040Munro FerenczCanada2025-10-12Printing Dimensions PROPOSAL66Onyama Limba
1041David DarakjyAustralia2025-10-04Rangoni Of Florence QUALIFIED47Anna Fali
1042Darci PoquetteArgentina2025-10-04Feiner Bros NEGOTIATION7Onyama Limba
1043Claire TollnerGermany2025-10-10Buckley Miller Wright RENEWAL68Bernardo Dominic
1044Isabel BowleyAustralia2025-10-01Feltz Printing Service PROPOSAL36Amy Elsner
1045David DarakjyJapan2025-09-24Chanay, Jeffrey A Esq QUALIFIED4Onyama Limba
1046Emily WhobreyAustralia2025-10-05Feiner Bros NEGOTIATION81Bernardo Dominic
1047Chavez BriddickItaly2025-09-30Rousseaux, Michael Esq PROPOSAL50Anna Fali
1048Kadeem FlosiItaly2025-09-27Truhlar And Truhlar Attys NEGOTIATION38Ivan Magalhaes
1049Chavez BriddickCanada2025-10-11King, Christopher A Esq NEW61Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaJapanStephen Shaw PROPOSAL
Ashley DoeJapanOnyama Limba UNQUALIFIED
Aika InouyeBrazilElwin Sharvill QUALIFIED
Izzy GarufiUnited KingdomAsiya Javayant NEW
Murillo MaletSpainIoni Bowcher RENEWAL
Aruna FigeroaRussiaBernardo Dominic PROPOSAL
Chavez BriddickAustraliaAmy Elsner RENEWAL
Ivar PaprockiAustraliaAnna Fali RENEWAL
Deepesh ChuiBrazilAnna Fali UNQUALIFIED
Aika InouyeGermanyBernardo Dominic QUALIFIED
Isabel BowleyIndiaAnna Fali UNQUALIFIED
Mujtaba NickaRussiaAmy Elsner QUALIFIED
Costa DilliardFranceAsiya Javayant RENEWAL
Greenwood BologniaAustraliaBernardo Dominic QUALIFIED
Arvin AlbaresArgentinaAnna Fali NEGOTIATION
Maria MarrierJapanXuxue Feng RENEWAL
Jennifer AmigonFranceAnna Fali RENEWAL
Ashley DoeUnited KingdomStephen Shaw UNQUALIFIED
Munro FerenczItalyOnyama Limba PROPOSAL
Clifford RimBrazilBernardo Dominic QUALIFIED
Stacey MacleadJapanAmy Elsner RENEWAL
David DarakjySpainIoni Bowcher RENEWAL
Leja CaldareraAustraliaStephen Shaw NEGOTIATION
Mujtaba NickaGermanyAmy Elsner NEGOTIATION
Wickens NestleArgentinaElwin Sharvill QUALIFIED
Ricardo GauchoCanadaIvan Magalhaes NEW
Darci PoquetteFranceIvan Magalhaes NEW
Jeanfrancois VenereBrazilIoni Bowcher QUALIFIED
Johnson SergiCanadaOnyama Limba RENEWAL
Maria MarrierIndiaAsiya Javayant QUALIFIED
Salvatore StockhamJapanAnna Fali QUALIFIED
Wickens NestleFranceElwin Sharvill RENEWAL
Maisha RulapaughRussiaStephen Shaw NEGOTIATION
Maria MarrierUnited KingdomElwin Sharvill PROPOSAL
Aditya KuskoCanadaElwin Sharvill RENEWAL
Chavez BriddickBrazilIvan Magalhaes PROPOSAL
Isabel BowleySpainElwin Sharvill UNQUALIFIED
Murillo MaletArgentinaOnyama Limba PROPOSAL
Rodrigues CampainCanadaAsiya Javayant NEGOTIATION
Aika InouyeSpainIoni Bowcher NEW
Antonio CaudyIndiaBernardo Dominic QUALIFIED
Kaitlin OstroskyAustraliaBernardo Dominic UNQUALIFIED
Silvio SlusarskiSpainAnna Fali UNQUALIFIED
Johnson SergiItalyAnna Fali UNQUALIFIED
David DarakjyUnited KingdomBernardo Dominic NEW
Jefferson SchemmerCanadaIvan Magalhaes NEGOTIATION
Julie StensethGermanyAmy Elsner RENEWAL
Munro FerenczGermanyAmy Elsner NEW
Leon OldroydFranceOnyama Limba PROPOSAL
Misaki RoysterBrazilStephen Shaw NEGOTIATION
Frozen Columns
Name
Faith Gillian
Rodrigues Campain
Kadeem Flosi
Aika Inouye
Sinclair Waycott
Faith Gillian
Mayumi Kolmetz
Aruna Figeroa
Murillo Malet
Kaitlin Ostrosky
Alejandro Perin
Munro Ferencz
James Butt
David Darakjy
Ricardo Gaucho
Mujtaba Nicka
Silvio Slusarski
Morrow Ruta
Julie Stenseth
Claire Tollner
Costa Dilliard
Isabel Bowley
Isabel Bowley
Mayumi Kolmetz
Morrow Ruta
Aruna Figeroa
Mayumi Kolmetz
Munro Ferencz
Munro Ferencz
Cody Saylors
Arvin Albares
Darci Poquette
Rodrigues Campain
Tony Foller
Aruna Figeroa
Jennifer Amigon
Cody Saylors
Stacey Maclead
Izzy Garufi
Costa Dilliard
Jefferson Schemmer
Deepesh Chui
Jefferson Schemmer
Johnson Sergi
Chavez Briddick
Octavia Malet
Ivar Paprocki
Isabel Bowley
Stacey Maclead
Salvatore Stockham
IdCountryDate
1000France2025-10-18
1001Russia2025-09-25
1002Argentina2025-10-07
1003Italy2025-09-23
1004Italy2025-10-08
1005United Kingdom2025-10-08
1006Russia2025-10-02
1007Germany2025-10-19
1008Japan2025-09-27
1009France2025-10-02
1010United Kingdom2025-09-29
1011Spain2025-09-22
1012Canada2025-10-13
1013Russia2025-09-24
1014Canada2025-10-03
1015Argentina2025-10-19
1016Spain2025-09-23
1017Australia2025-10-03
1018United Kingdom2025-10-07
1019Canada2025-10-11
1020United Kingdom2025-10-10
1021Brazil2025-10-07
1022Brazil2025-10-16
1023Australia2025-10-04
1024Germany2025-09-25
1025France2025-10-08
1026Russia2025-09-21
1027France2025-10-01
1028Australia2025-09-23
1029Argentina2025-10-08
1030Russia2025-10-04
1031Germany2025-09-22
1032United Kingdom2025-09-28
1033Brazil2025-10-04
1034Italy2025-09-21
1035Italy2025-10-10
1036Italy2025-09-28
1037Germany2025-09-30
1038Russia2025-10-10
1039Italy2025-10-06
1040Germany2025-09-20
1041United Kingdom2025-09-20
1042United Kingdom2025-10-14
1043Brazil2025-10-08
1044Australia2025-09-24
1045Brazil2025-10-06
1046Japan2025-09-24
1047India2025-09-28
1048United Kingdom2025-10-05
1049Russia2025-09-24

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000Spain2025-10-17
Smith Glick1001Argentina2025-10-05
Kadeem Flosi1002Germany2025-10-01
Ashley Doe1003Japan2025-09-27
Faith Gillian1004Italy2025-09-27
Munro Ferencz1005Germany2025-09-20
Jones Vocelka1006Argentina2025-10-13
Deepesh Chui1007Italy2025-09-28
Aditya Kusko1008Spain2025-10-11
Alejandro Perin1009Japan2025-10-04
Greenwood Bolognia1010France2025-10-08
Aditya Kusko1011India2025-10-05
David Darakjy1012Canada2025-09-26
Faith Gillian1013Spain2025-09-24
Juan Wieser1014Russia2025-10-17
Faith Gillian1015Spain2025-10-15
Juan Wieser1016United Kingdom2025-10-07
Johnson Sergi1017India2025-10-10
Aika Inouye1018Japan2025-10-02
Isabel Bowley1019Argentina2025-10-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiAustraliaBernardo Dominic UNQUALIFIED
Francesco ShinkoBrazilIoni Bowcher PROPOSAL
Cody SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens NestleGermanyElwin Sharvill NEW
Darci PoquetteRussiaAnna Fali QUALIFIED
Wickens NestleAustraliaAmy Elsner NEW
Munro FerenczBrazilIvan Magalhaes UNQUALIFIED
Maria MarrierGermanyAnna Fali QUALIFIED
Leja CaldareraArgentinaXuxue Feng NEW
Clifford RimCanadaIvan Magalhaes RENEWAL
Cody SaylorsUnited KingdomOnyama Limba NEW
Mayumi KolmetzIndiaElwin Sharvill NEGOTIATION
Izzy GarufiCanadaXuxue Feng NEW
Jeanfrancois VenereItalyAnna Fali NEW
Faith GillianItalyElwin Sharvill PROPOSAL
Smith GlickRussiaAsiya Javayant NEGOTIATION
Juan WieserUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois VenereIndiaAmy Elsner NEGOTIATION
Murillo MaletCanadaBernardo Dominic NEW
Nicolas IturbideIndiaBernardo Dominic RENEWAL
Maria MarrierGermanyElwin Sharvill QUALIFIED
Faith GillianGermanyAsiya Javayant QUALIFIED
Cody SaylorsJapanOnyama Limba QUALIFIED
Faith GillianAustraliaIoni Bowcher QUALIFIED
Leja CaldareraBrazilStephen Shaw RENEWAL
Izzy GarufiSpainBernardo Dominic NEGOTIATION
Izzy GarufiCanadaAsiya Javayant PROPOSAL
Leon OldroydArgentinaIvan Magalhaes PROPOSAL
Ivar PaprockiSpainXuxue Feng QUALIFIED
Chavez BriddickItalyElwin Sharvill PROPOSAL
Isabel BowleyCanadaBernardo Dominic PROPOSAL
Cody SaylorsItalyIvan Magalhaes UNQUALIFIED
James ButtBrazilAsiya Javayant QUALIFIED
Murillo MaletCanadaStephen Shaw PROPOSAL
Stacey MacleadRussiaIvan Magalhaes NEGOTIATION
Ashley DoeJapanStephen Shaw QUALIFIED
Octavia MaletArgentinaAsiya Javayant NEW
Clifford RimItalyIvan Magalhaes RENEWAL
Ricardo GauchoUnited KingdomXuxue Feng NEW
Chavez BriddickArgentinaIvan Magalhaes 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>