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
Tony FollerUnited KingdomXuxue Feng QUALIFIED
Izzy GarufiCanadaOnyama Limba RENEWAL
Salvatore StockhamUnited KingdomBernardo Dominic NEGOTIATION
Rodrigues CampainJapanXuxue Feng UNQUALIFIED
Emily WhobreyAustraliaElwin Sharvill UNQUALIFIED
Misaki RoysterFranceBernardo Dominic NEGOTIATION
Munro FerenczArgentinaStephen Shaw QUALIFIED
Salvatore StockhamIndiaOnyama Limba QUALIFIED
Jefferson SchemmerJapanBernardo Dominic QUALIFIED
Juan WieserRussiaAsiya Javayant NEGOTIATION
Deepesh ChuiGermanyBernardo Dominic PROPOSAL
David DarakjyArgentinaIvan Magalhaes RENEWAL
Leja CaldareraAustraliaIvan Magalhaes QUALIFIED
Jennifer AmigonJapanAmy Elsner QUALIFIED
Aruna FigeroaIndiaStephen Shaw QUALIFIED
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba NickaFranceXuxue Feng PROPOSAL
Silvio SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Jennifer AmigonIndiaIoni Bowcher NEW
Aruna FigeroaIndiaAmy Elsner RENEWAL
Clifford RimRussiaStephen Shaw RENEWAL
Leja CaldareraGermanyAsiya Javayant NEW
Ricardo GauchoIndiaAsiya Javayant NEGOTIATION
Maisha RulapaughFranceBernardo Dominic UNQUALIFIED
Darci PoquetteSpainXuxue Feng QUALIFIED
Smith GlickRussiaStephen Shaw UNQUALIFIED
Sinclair WaycottArgentinaAsiya Javayant NEW
Antonio CaudyBrazilOnyama Limba NEGOTIATION
Maria MarrierJapanOnyama Limba QUALIFIED
Emily WhobreyCanadaAmy Elsner QUALIFIED
Clifford RimIndiaAsiya Javayant NEW
Morrow RutaAustraliaIvan Magalhaes PROPOSAL
James ButtAustraliaOnyama Limba RENEWAL
Ivar PaprockiCanadaIoni Bowcher QUALIFIED
Adams MorascaRussiaAnna Fali UNQUALIFIED
Octavia MaletIndiaAnna Fali NEGOTIATION
Isabel BowleyItalyStephen Shaw NEW
Maisha RulapaughFranceBernardo Dominic RENEWAL
Faith GillianRussiaOnyama Limba UNQUALIFIED
Ashley DoeItalyAmy Elsner QUALIFIED
Maria MarrierUnited KingdomXuxue Feng PROPOSAL
Emily WhobreyBrazilBernardo Dominic NEW
Rodrigues CampainFranceXuxue Feng PROPOSAL
Octavia MaletSpainElwin Sharvill QUALIFIED
Chavez BriddickIndiaAnna Fali NEW
Misaki RoysterArgentinaAnna Fali QUALIFIED
Aditya KuskoAustraliaOnyama Limba UNQUALIFIED
Sinclair WaycottArgentinaAsiya Javayant QUALIFIED
Morrow RutaItalyBernardo Dominic PROPOSAL
Deepesh ChuiBrazilAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsItalyBernardo Dominic NEW
Francesco ShinkoAustraliaAmy Elsner QUALIFIED
Wickens NestleCanadaAsiya Javayant NEGOTIATION
Jefferson SchemmerIndiaXuxue Feng NEW
David DarakjyIndiaAsiya Javayant PROPOSAL
Johnson SergiCanadaOnyama Limba PROPOSAL
Chavez BriddickJapanXuxue Feng QUALIFIED
Morrow RutaAustraliaElwin Sharvill QUALIFIED
Deepesh ChuiFranceAnna Fali UNQUALIFIED
Maria MarrierArgentinaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethItaly2026-04-21King, Christopher A Esq RENEWAL62Asiya Javayant
1001Chavez BriddickArgentina2026-05-02Morlong Associates RENEWAL25Onyama Limba
1002Wickens NestleItaly2026-04-29Benton, John B Jr QUALIFIED84Bernardo Dominic
1003Jennifer AmigonBrazil2026-04-18Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1004Arvin AlbaresJapan2026-04-14Commercial Press NEGOTIATION7Bernardo Dominic
1005Leja CaldareraUnited Kingdom2026-04-26Rousseaux, Michael Esq NEGOTIATION44Ivan Magalhaes
1006Octavia MaletCanada2026-04-19Rangoni Of Florence NEW0Stephen Shaw
1007Sinclair WaycottRussia2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED45Ioni Bowcher
1008Morrow RutaFrance2026-04-14Rangoni Of Florence QUALIFIED64Asiya Javayant
1009Aruna FigeroaIndia2026-04-28Feltz Printing Service NEW32Bernardo Dominic
1010Munro FerenczItaly2026-04-16Morlong Associates NEW83Xuxue Feng
1011Kaitlin OstroskyGermany2026-04-14Rousseaux, Michael Esq RENEWAL10Stephen Shaw
1012Faith GillianAustralia2026-04-27Benton, John B Jr QUALIFIED89Stephen Shaw
1013Rodrigues CampainItaly2026-04-15Chapman, Ross E Esq QUALIFIED85Bernardo Dominic
1014Costa DilliardAustralia2026-05-12Benton, John B Jr NEGOTIATION29Elwin Sharvill
1015Munro FerenczSpain2026-04-23Morlong Associates NEGOTIATION9Anna Fali
1016Alejandro PerinJapan2026-04-16Buckley Miller Wright RENEWAL40Ioni Bowcher
1017Jennifer AmigonIndia2026-04-14Chapman, Ross E Esq QUALIFIED52Stephen Shaw
1018Aditya KuskoAustralia2026-04-14Buckley Miller Wright NEGOTIATION34Xuxue Feng
1019Wickens NestleGermany2026-05-06Rangoni Of Florence NEW88Asiya Javayant
1020Francesco ShinkoBrazil2026-04-13Commercial Press QUALIFIED39Bernardo Dominic
1021Rodrigues CampainCanada2026-04-24Rousseaux, Michael Esq UNQUALIFIED77Ivan Magalhaes
1022Costa DilliardItaly2026-04-17Printing Dimensions PROPOSAL88Amy Elsner
1023Stacey MacleadFrance2026-04-13Morlong Associates PROPOSAL56Anna Fali
1024Emily WhobreySpain2026-05-03King, Christopher A Esq RENEWAL68Elwin Sharvill
1025Jones VocelkaAustralia2026-04-25Feltz Printing Service NEW34Onyama Limba
1026Kaitlin OstroskyIndia2026-04-18Rangoni Of Florence NEW13Bernardo Dominic
1027Darci PoquetteCanada2026-04-29Chapman, Ross E Esq UNQUALIFIED70Xuxue Feng
1028Nicolas IturbideSpain2026-04-20Feiner Bros QUALIFIED44Stephen Shaw
1029Murillo MaletCanada2026-04-17Chapman, Ross E Esq UNQUALIFIED70Amy Elsner
1030Ricardo GauchoSpain2026-04-28Benton, John B Jr QUALIFIED97Bernardo Dominic
1031Munro FerenczFrance2026-04-18Chanay, Jeffrey A Esq NEW22Ivan Magalhaes
1032Clifford RimIndia2026-04-22King, Christopher A Esq RENEWAL2Ioni Bowcher
1033James ButtJapan2026-04-20Commercial Press NEGOTIATION33Amy Elsner
1034Smith GlickSpain2026-04-14Rangoni Of Florence UNQUALIFIED26Asiya Javayant
1035Rodrigues CampainArgentina2026-04-16Chanay, Jeffrey A Esq NEW40Stephen Shaw
1036Isabel BowleyIndia2026-04-17Chapman, Ross E Esq UNQUALIFIED54Anna Fali
1037Aruna FigeroaIndia2026-04-22Buckley Miller Wright RENEWAL61Ivan Magalhaes
1038Arvin AlbaresIndia2026-04-22Rangoni Of Florence QUALIFIED8Onyama Limba
1039Maria MarrierJapan2026-04-14Rangoni Of Florence RENEWAL16Ioni Bowcher
1040Emily WhobreyRussia2026-05-01Printing Dimensions NEGOTIATION22Onyama Limba
1041Izzy GarufiCanada2026-05-10Rangoni Of Florence QUALIFIED35Stephen Shaw
1042Aditya KuskoRussia2026-04-14Commercial Press QUALIFIED73Xuxue Feng
1043Darci PoquetteSpain2026-05-04Commercial Press UNQUALIFIED73Onyama Limba
1044Tony FollerJapan2026-04-21King, Christopher A Esq NEGOTIATION45Onyama Limba
1045Jennifer AmigonArgentina2026-04-21Feltz Printing Service NEW65Bernardo Dominic
1046Costa DilliardCanada2026-04-19Morlong Associates NEGOTIATION29Ivan Magalhaes
1047Salvatore StockhamCanada2026-04-28Feiner Bros NEW12Onyama Limba
1048David DarakjySpain2026-04-26Truhlar And Truhlar Attys RENEWAL25Xuxue Feng
1049Murillo MaletGermany2026-04-27Benton, John B Jr UNQUALIFIED41Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilXuxue Feng QUALIFIED
Isabel BowleyArgentinaIoni Bowcher QUALIFIED
Aditya KuskoItalyStephen Shaw QUALIFIED
Jones VocelkaAustraliaXuxue Feng NEGOTIATION
Cody SaylorsItalyAnna Fali UNQUALIFIED
Jennifer AmigonArgentinaAsiya Javayant NEW
Smith GlickFranceXuxue Feng NEGOTIATION
Murillo MaletArgentinaXuxue Feng RENEWAL
Munro FerenczUnited KingdomAnna Fali PROPOSAL
Rodrigues CampainItalyAnna Fali RENEWAL
Jeanfrancois VenereFranceOnyama Limba PROPOSAL
Leon OldroydAustraliaIoni Bowcher RENEWAL
Sinclair WaycottRussiaAsiya Javayant NEW
Deepesh ChuiUnited KingdomAnna Fali NEGOTIATION
Leja CaldareraAustraliaAnna Fali UNQUALIFIED
Wickens NestleArgentinaElwin Sharvill NEW
Kadeem FlosiBrazilOnyama Limba UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw PROPOSAL
Adams MorascaRussiaIvan Magalhaes PROPOSAL
Leon OldroydArgentinaAnna Fali QUALIFIED
Kadeem FlosiArgentinaIoni Bowcher PROPOSAL
Octavia MaletItalyAnna Fali UNQUALIFIED
Ashley DoeArgentinaXuxue Feng NEW
Leja CaldareraGermanyAnna Fali NEGOTIATION
Aruna FigeroaGermanyXuxue Feng PROPOSAL
Maisha RulapaughFranceAmy Elsner RENEWAL
Adams MorascaBrazilElwin Sharvill NEGOTIATION
Rodrigues CampainFranceXuxue Feng NEW
Chavez BriddickGermanyBernardo Dominic NEGOTIATION
Smith GlickArgentinaAsiya Javayant PROPOSAL
Nicolas IturbideRussiaBernardo Dominic QUALIFIED
Claire TollnerFranceXuxue Feng NEGOTIATION
Costa DilliardUnited KingdomIoni Bowcher QUALIFIED
Jennifer AmigonArgentinaElwin Sharvill UNQUALIFIED
Aruna FigeroaItalyBernardo Dominic NEW
Faith GillianArgentinaElwin Sharvill QUALIFIED
Faith GillianBrazilStephen Shaw RENEWAL
James ButtItalyIoni Bowcher PROPOSAL
Izzy GarufiGermanyElwin Sharvill NEW
Maria MarrierBrazilAnna Fali UNQUALIFIED
Mayumi KolmetzJapanAmy Elsner RENEWAL
Aditya KuskoUnited KingdomBernardo Dominic NEW
Johnson SergiIndiaStephen Shaw NEGOTIATION
Leon OldroydItalyXuxue Feng RENEWAL
Kadeem FlosiJapanBernardo Dominic PROPOSAL
Rodrigues CampainAustraliaIvan Magalhaes NEW
Darci PoquetteSpainIoni Bowcher PROPOSAL
Claire TollnerGermanyIvan Magalhaes PROPOSAL
Sinclair WaycottBrazilStephen Shaw NEW
Munro FerenczSpainStephen Shaw UNQUALIFIED
Frozen Columns
Name
Kaitlin Ostrosky
Misaki Royster
Rodrigues Campain
Ricardo Gaucho
Leja Caldarera
Jefferson Schemmer
Julie Stenseth
Isabel Bowley
Stacey Maclead
David Darakjy
Misaki Royster
Arvin Albares
Chavez Briddick
Silvio Slusarski
Aika Inouye
Mayumi Kolmetz
Ashley Doe
Tony Foller
Aika Inouye
Johnson Sergi
Mayumi Kolmetz
Salvatore Stockham
Aruna Figeroa
Ricardo Gaucho
Munro Ferencz
Ricardo Gaucho
Cody Saylors
Nicolas Iturbide
Adams Morasca
Leon Oldroyd
Ivar Paprocki
Aditya Kusko
Mayumi Kolmetz
Darci Poquette
Leon Oldroyd
Deepesh Chui
Adams Morasca
Adams Morasca
Kaitlin Ostrosky
Leja Caldarera
Emily Whobrey
Johnson Sergi
Chavez Briddick
Izzy Garufi
Deepesh Chui
Stacey Maclead
Faith Gillian
Maisha Rulapaugh
Alejandro Perin
Deepesh Chui
IdCountryDate
1000Japan2026-04-18
1001United Kingdom2026-04-18
1002Italy2026-05-07
1003France2026-05-06
1004Spain2026-04-27
1005France2026-05-07
1006United Kingdom2026-04-28
1007India2026-04-29
1008India2026-04-27
1009Argentina2026-04-30
1010Spain2026-04-28
1011Italy2026-05-10
1012Germany2026-04-14
1013France2026-05-10
1014Canada2026-04-27
1015India2026-05-01
1016India2026-04-26
1017France2026-04-16
1018Japan2026-04-15
1019United Kingdom2026-05-04
1020Spain2026-05-12
1021India2026-04-30
1022Canada2026-04-30
1023India2026-04-13
1024India2026-04-19
1025France2026-05-09
1026Japan2026-04-21
1027United Kingdom2026-05-11
1028Brazil2026-04-18
1029Germany2026-05-10
1030United Kingdom2026-04-24
1031Brazil2026-05-05
1032Italy2026-05-06
1033Argentina2026-04-25
1034Canada2026-04-18
1035Argentina2026-05-07
1036Argentina2026-04-21
1037Italy2026-05-04
1038United Kingdom2026-04-15
1039Canada2026-05-03
1040Australia2026-05-12
1041Japan2026-04-20
1042France2026-05-03
1043Brazil2026-04-17
1044Germany2026-05-05
1045Canada2026-05-04
1046Spain2026-05-11
1047Argentina2026-05-01
1048Spain2026-05-07
1049Canada2026-04-25

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Brazil2026-05-07
Ivar Paprocki1001Argentina2026-04-13
Rodrigues Campain1002Canada2026-05-04
Morrow Ruta1003Argentina2026-04-25
Ashley Doe1004Argentina2026-04-22
Deepesh Chui1005Germany2026-05-01
Octavia Malet1006Australia2026-05-01
Cody Saylors1007France2026-05-05
Mayumi Kolmetz1008Japan2026-05-02
Claire Tollner1009Argentina2026-04-18
Kadeem Flosi1010France2026-05-07
Darci Poquette1011Canada2026-05-01
Arvin Albares1012Japan2026-04-13
Silvio Slusarski1013Italy2026-05-08
Octavia Malet1014France2026-04-19
Silvio Slusarski1015Brazil2026-04-25
Costa Dilliard1016Russia2026-04-20
Aditya Kusko1017Argentina2026-05-12
Deepesh Chui1018United Kingdom2026-05-09
Jennifer Amigon1019Brazil2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerRussiaStephen Shaw RENEWAL
Mayumi KolmetzJapanAnna Fali NEGOTIATION
Jennifer AmigonIndiaBernardo Dominic NEGOTIATION
Jones VocelkaAustraliaBernardo Dominic NEW
Morrow RutaUnited KingdomAnna Fali NEGOTIATION
Emily WhobreyGermanyStephen Shaw NEGOTIATION
Juan WieserAustraliaStephen Shaw PROPOSAL
Kadeem FlosiItalyAnna Fali UNQUALIFIED
Ivar PaprockiGermanyAsiya Javayant PROPOSAL
Munro FerenczRussiaAnna Fali NEGOTIATION
Isabel BowleyBrazilElwin Sharvill NEGOTIATION
Octavia MaletSpainIvan Magalhaes NEGOTIATION
Darci PoquetteUnited KingdomIoni Bowcher UNQUALIFIED
Wickens NestleCanadaStephen Shaw RENEWAL
Silvio SlusarskiJapanStephen Shaw QUALIFIED
Aruna FigeroaItalyIvan Magalhaes NEGOTIATION
Juan WieserCanadaElwin Sharvill NEW
Salvatore StockhamFranceAmy Elsner RENEWAL
Isabel BowleyArgentinaOnyama Limba QUALIFIED
Rodrigues CampainArgentinaAnna Fali QUALIFIED
Murillo MaletAustraliaOnyama Limba UNQUALIFIED
Maisha RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Stacey MacleadFranceStephen Shaw RENEWAL
Cody SaylorsAustraliaIoni Bowcher RENEWAL
Stacey MacleadItalyAmy Elsner UNQUALIFIED
Kadeem FlosiFranceOnyama Limba NEGOTIATION
Rodrigues CampainAustraliaOnyama Limba NEGOTIATION
Clifford RimUnited KingdomAmy Elsner PROPOSAL
Mujtaba NickaJapanStephen Shaw PROPOSAL
Aruna FigeroaJapanAsiya Javayant PROPOSAL
Munro FerenczAustraliaBernardo Dominic PROPOSAL
Cody SaylorsGermanyOnyama Limba UNQUALIFIED
Ashley DoeJapanElwin Sharvill RENEWAL
Jones VocelkaCanadaElwin Sharvill PROPOSAL
Greenwood BologniaIndiaAnna Fali NEW
Aika InouyeBrazilBernardo Dominic PROPOSAL
Alejandro PerinUnited KingdomStephen Shaw NEW
Chavez BriddickAustraliaOnyama Limba UNQUALIFIED
Kaitlin OstroskyIndiaElwin Sharvill UNQUALIFIED
Octavia MaletIndiaIoni Bowcher RENEWAL

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