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
Francesco ShinkoArgentinaIoni Bowcher QUALIFIED
Wickens NestleBrazilStephen Shaw UNQUALIFIED
Chavez BriddickAustraliaStephen Shaw UNQUALIFIED
Munro FerenczItalyAmy Elsner UNQUALIFIED
David DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Francesco ShinkoRussiaBernardo Dominic RENEWAL
Claire TollnerSpainIoni Bowcher PROPOSAL
Jeanfrancois VenereRussiaAmy Elsner UNQUALIFIED
Leja CaldareraBrazilIoni Bowcher NEGOTIATION
Juan WieserJapanXuxue Feng RENEWAL
Sinclair WaycottItalyXuxue Feng NEW
Leja CaldareraFranceAnna Fali RENEWAL
Tony FollerRussiaIvan Magalhaes PROPOSAL
Misaki RoysterRussiaBernardo Dominic NEW
Aruna FigeroaUnited KingdomOnyama Limba RENEWAL
Jeanfrancois VenereCanadaAsiya Javayant RENEWAL
Kadeem FlosiIndiaElwin Sharvill RENEWAL
David DarakjyGermanyAnna Fali UNQUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes QUALIFIED
Jefferson SchemmerBrazilIvan Magalhaes UNQUALIFIED
Ivar PaprockiSpainStephen Shaw RENEWAL
Costa DilliardUnited KingdomAnna Fali NEW
Clifford RimIndiaBernardo Dominic NEW
Leon OldroydIndiaAnna Fali PROPOSAL
Juan WieserItalyXuxue Feng NEW
Clifford RimGermanyXuxue Feng NEW
Adams MorascaCanadaElwin Sharvill RENEWAL
Silvio SlusarskiJapanAsiya Javayant RENEWAL
Morrow RutaRussiaAmy Elsner PROPOSAL
Darci PoquetteSpainOnyama Limba PROPOSAL
Adams MorascaArgentinaIoni Bowcher QUALIFIED
Claire TollnerAustraliaIoni Bowcher UNQUALIFIED
Aruna FigeroaAustraliaElwin Sharvill RENEWAL
Kaitlin OstroskyCanadaElwin Sharvill UNQUALIFIED
Leon OldroydAustraliaOnyama Limba NEGOTIATION
Francesco ShinkoSpainOnyama Limba PROPOSAL
Aruna FigeroaJapanAsiya Javayant NEW
Aika InouyeFranceAnna Fali QUALIFIED
Claire TollnerIndiaStephen Shaw NEGOTIATION
Kadeem FlosiJapanAnna Fali PROPOSAL
Leon OldroydSpainAsiya Javayant NEGOTIATION
Wickens NestleGermanyAsiya Javayant NEW
Greenwood BologniaUnited KingdomIvan Magalhaes PROPOSAL
Aditya KuskoAustraliaXuxue Feng NEW
Maria MarrierUnited KingdomStephen Shaw NEGOTIATION
Aditya KuskoRussiaStephen Shaw QUALIFIED
Misaki RoysterFranceAnna Fali QUALIFIED
Cody SaylorsBrazilIoni Bowcher NEW
Leja CaldareraCanadaAmy Elsner NEW
Mujtaba NickaItalyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford RimBrazilStephen Shaw RENEWAL
Adams MorascaItalyAsiya Javayant NEGOTIATION
Maria MarrierArgentinaBernardo Dominic UNQUALIFIED
Rodrigues CampainUnited KingdomAmy Elsner NEW
Ivar PaprockiItalyAmy Elsner RENEWAL
Misaki RoysterFranceIoni Bowcher QUALIFIED
Jeanfrancois VenereJapanOnyama Limba NEW
Ashley DoeSpainIvan Magalhaes UNQUALIFIED
Kadeem FlosiGermanyXuxue Feng QUALIFIED
Ivar PaprockiRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianAustralia2025-06-17Truhlar And Truhlar Attys RENEWAL60Xuxue Feng
1001Isabel BowleyItaly2025-06-13Buckley Miller Wright NEGOTIATION60Onyama Limba
1002Smith GlickBrazil2025-06-23Morlong Associates NEGOTIATION14Xuxue Feng
1003Ashley DoeArgentina2025-06-29Printing Dimensions PROPOSAL88Asiya Javayant
1004David DarakjySpain2025-06-18Feiner Bros PROPOSAL91Stephen Shaw
1005Rodrigues CampainIndia2025-06-07King, Christopher A Esq QUALIFIED0Asiya Javayant
1006Maisha RulapaughAustralia2025-06-23Morlong Associates NEGOTIATION47Onyama Limba
1007Mayumi KolmetzCanada2025-06-20Rangoni Of Florence RENEWAL27Anna Fali
1008Aika InouyeJapan2025-06-14Chanay, Jeffrey A Esq PROPOSAL19Ivan Magalhaes
1009Mujtaba NickaIndia2025-06-06Buckley Miller Wright UNQUALIFIED53Anna Fali
1010Jefferson SchemmerSpain2025-06-19Truhlar And Truhlar Attys NEGOTIATION2Asiya Javayant
1011Johnson SergiCanada2025-06-06Rousseaux, Michael Esq QUALIFIED58Onyama Limba
1012Johnson SergiUnited Kingdom2025-06-08Benton, John B Jr UNQUALIFIED65Asiya Javayant
1013Maria MarrierItaly2025-06-17Morlong Associates UNQUALIFIED26Stephen Shaw
1014Francesco ShinkoBrazil2025-06-21King, Christopher A Esq RENEWAL32Bernardo Dominic
1015Claire TollnerRussia2025-06-25Chapman, Ross E Esq UNQUALIFIED78Bernardo Dominic
1016Cody SaylorsItaly2025-06-07Chanay, Jeffrey A Esq NEW98Elwin Sharvill
1017Antonio CaudyFrance2025-06-20Dorl, James J Esq QUALIFIED27Anna Fali
1018Jefferson SchemmerJapan2025-06-07Commercial Press NEW2Ivan Magalhaes
1019Clifford RimRussia2025-06-27Morlong Associates QUALIFIED55Elwin Sharvill
1020Mayumi KolmetzGermany2025-06-10Chanay, Jeffrey A Esq UNQUALIFIED27Amy Elsner
1021Arvin AlbaresArgentina2025-06-12Rangoni Of Florence QUALIFIED92Ivan Magalhaes
1022Ashley DoeFrance2025-06-13Chemel, James L Cpa RENEWAL81Asiya Javayant
1023Arvin AlbaresArgentina2025-06-18Printing Dimensions NEGOTIATION94Onyama Limba
1024Silvio SlusarskiGermany2025-06-06Benton, John B Jr RENEWAL80Xuxue Feng
1025Morrow RutaSpain2025-06-02Morlong Associates NEGOTIATION92Ivan Magalhaes
1026Murillo MaletUnited Kingdom2025-06-26Benton, John B Jr QUALIFIED27Ioni Bowcher
1027Arvin AlbaresJapan2025-06-02Morlong Associates RENEWAL10Ivan Magalhaes
1028Rodrigues CampainSpain2025-06-04Rousseaux, Michael Esq NEW15Stephen Shaw
1029Costa DilliardFrance2025-06-21Buckley Miller Wright NEGOTIATION30Asiya Javayant
1030Misaki RoysterRussia2025-06-13Feltz Printing Service RENEWAL48Xuxue Feng
1031Francesco ShinkoFrance2025-06-23Chanay, Jeffrey A Esq NEGOTIATION44Bernardo Dominic
1032Aika InouyeBrazil2025-06-24Chapman, Ross E Esq PROPOSAL11Anna Fali
1033Izzy GarufiGermany2025-06-30Dorl, James J Esq NEW36Stephen Shaw
1034Ricardo GauchoItaly2025-06-08Feiner Bros QUALIFIED38Xuxue Feng
1035Isabel BowleyItaly2025-06-21Feltz Printing Service UNQUALIFIED76Asiya Javayant
1036Adams MorascaIndia2025-06-17Printing Dimensions UNQUALIFIED79Elwin Sharvill
1037Clifford RimBrazil2025-06-08Chapman, Ross E Esq NEGOTIATION44Elwin Sharvill
1038Faith GillianJapan2025-06-05Printing Dimensions NEGOTIATION22Stephen Shaw
1039Juan WieserBrazil2025-06-17Benton, John B Jr RENEWAL76Ioni Bowcher
1040Kaitlin OstroskyItaly2025-06-12Truhlar And Truhlar Attys NEW87Ivan Magalhaes
1041Antonio CaudyCanada2025-06-20Printing Dimensions UNQUALIFIED16Elwin Sharvill
1042Leja CaldareraGermany2025-06-04Rousseaux, Michael Esq RENEWAL85Xuxue Feng
1043Wickens NestleCanada2025-06-26Benton, John B Jr RENEWAL82Bernardo Dominic
1044Julie StensethItaly2025-06-14Commercial Press NEGOTIATION4Onyama Limba
1045Rodrigues CampainAustralia2025-06-21Chanay, Jeffrey A Esq RENEWAL9Anna Fali
1046Maria MarrierJapan2025-06-06Feltz Printing Service RENEWAL38Xuxue Feng
1047Claire TollnerFrance2025-06-04Rangoni Of Florence PROPOSAL37Amy Elsner
1048Ashley DoeItaly2025-06-04Printing Dimensions QUALIFIED51Elwin Sharvill
1049David DarakjyJapan2025-07-01Printing Dimensions QUALIFIED90Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
James ButtItalyOnyama Limba RENEWAL
Stacey MacleadCanadaAmy Elsner QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi KolmetzFranceOnyama Limba NEGOTIATION
Kaitlin OstroskySpainAsiya Javayant PROPOSAL
Jeanfrancois VenereSpainOnyama Limba RENEWAL
Juan WieserIndiaOnyama Limba PROPOSAL
Leon OldroydCanadaElwin Sharvill UNQUALIFIED
Sinclair WaycottAustraliaOnyama Limba PROPOSAL
Emily WhobreyRussiaXuxue Feng UNQUALIFIED
Tony FollerAustraliaBernardo Dominic PROPOSAL
Murillo MaletAustraliaStephen Shaw UNQUALIFIED
Julie StensethSpainAnna Fali NEW
Costa DilliardGermanyIvan Magalhaes PROPOSAL
Cody SaylorsBrazilXuxue Feng QUALIFIED
Kadeem FlosiGermanyXuxue Feng RENEWAL
Alejandro PerinCanadaAsiya Javayant RENEWAL
Stacey MacleadArgentinaAsiya Javayant NEGOTIATION
Kaitlin OstroskyIndiaAsiya Javayant NEW
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Nicolas IturbideRussiaElwin Sharvill NEGOTIATION
Aruna FigeroaFranceIvan Magalhaes NEGOTIATION
Wickens NestleSpainElwin Sharvill NEW
Sinclair WaycottIndiaXuxue Feng NEW
Alejandro PerinFranceIvan Magalhaes NEW
Aditya KuskoJapanAmy Elsner NEW
Nicolas IturbideIndiaAmy Elsner RENEWAL
Morrow RutaAustraliaXuxue Feng QUALIFIED
James ButtSpainAnna Fali PROPOSAL
Ricardo GauchoUnited KingdomAsiya Javayant NEW
Adams MorascaFranceIvan Magalhaes PROPOSAL
Ashley DoeUnited KingdomAsiya Javayant QUALIFIED
Isabel BowleyFranceIoni Bowcher RENEWAL
Ivar PaprockiItalyIoni Bowcher QUALIFIED
James ButtBrazilOnyama Limba UNQUALIFIED
Sinclair WaycottRussiaAmy Elsner NEW
Kadeem FlosiItalyIoni Bowcher RENEWAL
Stacey MacleadArgentinaIoni Bowcher QUALIFIED
Jefferson SchemmerCanadaIoni Bowcher NEW
Deepesh ChuiRussiaXuxue Feng NEW
Chavez BriddickGermanyElwin Sharvill NEW
Octavia MaletItalyIoni Bowcher PROPOSAL
Silvio SlusarskiBrazilBernardo Dominic RENEWAL
Kaitlin OstroskyArgentinaIvan Magalhaes RENEWAL
Aditya KuskoCanadaBernardo Dominic RENEWAL
Morrow RutaBrazilAmy Elsner NEGOTIATION
Stacey MacleadFranceAsiya Javayant QUALIFIED
Mayumi KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Smith GlickIndiaAnna Fali UNQUALIFIED
Kadeem FlosiArgentinaIoni Bowcher NEW
Frozen Columns
Name
Morrow Ruta
Jeanfrancois Venere
David Darakjy
Aruna Figeroa
Francesco Shinko
Aika Inouye
Mujtaba Nicka
Julie Stenseth
Mayumi Kolmetz
Ashley Doe
Octavia Malet
Jones Vocelka
Leja Caldarera
Adams Morasca
Mujtaba Nicka
Francesco Shinko
Maisha Rulapaugh
Misaki Royster
Salvatore Stockham
Ivar Paprocki
Salvatore Stockham
Clifford Rim
Rodrigues Campain
Arvin Albares
Leon Oldroyd
Kaitlin Ostrosky
Aruna Figeroa
Stacey Maclead
Johnson Sergi
Tony Foller
Smith Glick
James Butt
Jones Vocelka
Kadeem Flosi
James Butt
David Darakjy
Jones Vocelka
Salvatore Stockham
Aruna Figeroa
Smith Glick
Morrow Ruta
Kadeem Flosi
David Darakjy
Salvatore Stockham
Ivar Paprocki
Sinclair Waycott
Kadeem Flosi
Ivar Paprocki
Leja Caldarera
Alejandro Perin
IdCountryDate
1000France2025-06-09
1001Spain2025-06-17
1002Argentina2025-06-19
1003Canada2025-06-09
1004France2025-06-28
1005Brazil2025-06-13
1006United Kingdom2025-06-06
1007United Kingdom2025-07-01
1008Italy2025-06-09
1009Russia2025-06-20
1010Germany2025-06-24
1011Canada2025-06-21
1012Spain2025-06-16
1013Brazil2025-06-08
1014Canada2025-06-20
1015Germany2025-06-06
1016United Kingdom2025-06-22
1017France2025-06-17
1018Argentina2025-06-02
1019United Kingdom2025-06-15
1020India2025-06-28
1021Russia2025-06-30
1022Argentina2025-06-08
1023Australia2025-06-24
1024Brazil2025-06-12
1025France2025-06-28
1026Australia2025-06-24
1027Japan2025-06-05
1028India2025-06-17
1029Argentina2025-07-01
1030Brazil2025-06-07
1031United Kingdom2025-06-20
1032Brazil2025-06-18
1033Brazil2025-06-25
1034Argentina2025-06-14
1035Germany2025-06-24
1036Argentina2025-06-24
1037India2025-07-01
1038France2025-06-16
1039India2025-06-15
1040Japan2025-06-02
1041Germany2025-06-30
1042Italy2025-06-23
1043Germany2025-06-17
1044Brazil2025-06-29
1045Australia2025-06-05
1046Australia2025-06-29
1047Russia2025-06-17
1048Brazil2025-06-17
1049Spain2025-06-08

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Australia2025-06-12
Arvin Albares1001Germany2025-06-07
Murillo Malet1002Canada2025-07-01
Leon Oldroyd1003United Kingdom2025-06-07
Mujtaba Nicka1004Canada2025-06-06
Leja Caldarera1005Australia2025-06-21
Mayumi Kolmetz1006Germany2025-06-15
Leja Caldarera1007India2025-06-10
Leon Oldroyd1008Brazil2025-06-20
Julie Stenseth1009Italy2025-06-19
Clifford Rim1010Germany2025-06-29
Morrow Ruta1011India2025-06-09
Antonio Caudy1012United Kingdom2025-06-02
Ricardo Gaucho1013Brazil2025-06-29
James Butt1014Argentina2025-06-14
Kadeem Flosi1015Canada2025-06-02
Alejandro Perin1016Argentina2025-06-25
Jefferson Schemmer1017United Kingdom2025-06-21
Octavia Malet1018Brazil2025-06-04
Greenwood Bolognia1019Spain2025-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresArgentinaBernardo Dominic UNQUALIFIED
Octavia MaletAustraliaAnna Fali RENEWAL
Kaitlin OstroskyIndiaAmy Elsner QUALIFIED
Silvio SlusarskiArgentinaBernardo Dominic NEW
Isabel BowleyJapanAmy Elsner UNQUALIFIED
Clifford RimUnited KingdomAsiya Javayant PROPOSAL
Juan WieserIndiaElwin Sharvill NEGOTIATION
Maria MarrierSpainAsiya Javayant UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner QUALIFIED
Julie StensethArgentinaElwin Sharvill NEGOTIATION
Wickens NestleBrazilAnna Fali NEW
Maisha RulapaughArgentinaXuxue Feng NEW
Aditya KuskoJapanIoni Bowcher NEW
Silvio SlusarskiArgentinaBernardo Dominic QUALIFIED
Faith GillianFranceBernardo Dominic NEGOTIATION
Juan WieserRussiaElwin Sharvill NEGOTIATION
Murillo MaletJapanBernardo Dominic PROPOSAL
Smith GlickAustraliaOnyama Limba QUALIFIED
Jennifer AmigonFranceIvan Magalhaes QUALIFIED
Stacey MacleadCanadaElwin Sharvill NEW
Nicolas IturbideAustraliaElwin Sharvill NEGOTIATION
Faith GillianGermanyElwin Sharvill QUALIFIED
Greenwood BologniaGermanyOnyama Limba UNQUALIFIED
Maria MarrierCanadaXuxue Feng UNQUALIFIED
Chavez BriddickItalyAsiya Javayant QUALIFIED
Sinclair WaycottBrazilAmy Elsner PROPOSAL
Ricardo GauchoBrazilElwin Sharvill PROPOSAL
Arvin AlbaresCanadaIvan Magalhaes PROPOSAL
Ivar PaprockiCanadaAnna Fali NEW
Kadeem FlosiItalyXuxue Feng NEW
Juan WieserFranceIoni Bowcher NEGOTIATION
Clifford RimIndiaAnna Fali NEGOTIATION
Misaki RoysterSpainBernardo Dominic NEGOTIATION
Faith GillianBrazilAsiya Javayant QUALIFIED
Isabel BowleyRussiaXuxue Feng PROPOSAL
Aruna FigeroaBrazilStephen Shaw NEGOTIATION
Jones VocelkaJapanIvan Magalhaes NEGOTIATION
Johnson SergiJapanElwin Sharvill QUALIFIED
Sinclair WaycottFranceAnna Fali RENEWAL
Julie StensethItalyElwin Sharvill 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>