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 FerenczCanadaIoni Bowcher QUALIFIED
Alejandro PerinItalyAnna Fali UNQUALIFIED
Antonio CaudyAustraliaIoni Bowcher QUALIFIED
Leon OldroydFranceBernardo Dominic QUALIFIED
Johnson SergiCanadaIvan Magalhaes RENEWAL
Aruna FigeroaAustraliaBernardo Dominic NEW
Murillo MaletIndiaIoni Bowcher NEW
Munro FerenczBrazilAnna Fali NEGOTIATION
Jennifer AmigonCanadaElwin Sharvill PROPOSAL
Deepesh ChuiIndiaAnna Fali NEW
Juan WieserCanadaIvan Magalhaes QUALIFIED
Juan WieserJapanXuxue Feng RENEWAL
David DarakjyRussiaBernardo Dominic RENEWAL
Ivar PaprockiUnited KingdomAnna Fali NEGOTIATION
Greenwood BologniaUnited KingdomStephen Shaw QUALIFIED
Stacey MacleadUnited KingdomStephen Shaw QUALIFIED
Stacey MacleadBrazilIoni Bowcher UNQUALIFIED
Maisha RulapaughIndiaBernardo Dominic NEW
Izzy GarufiBrazilOnyama Limba QUALIFIED
David DarakjyGermanyIoni Bowcher QUALIFIED
Leja CaldareraIndiaXuxue Feng QUALIFIED
Costa DilliardIndiaIoni Bowcher NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant NEW
Nicolas IturbideIndiaIoni Bowcher NEGOTIATION
Wickens NestleSpainAmy Elsner PROPOSAL
David DarakjyBrazilIvan Magalhaes PROPOSAL
Leja CaldareraGermanyElwin Sharvill NEGOTIATION
Ivar PaprockiBrazilIvan Magalhaes QUALIFIED
David DarakjyGermanyAsiya Javayant NEGOTIATION
Mujtaba NickaFranceAmy Elsner NEW
Claire TollnerRussiaIvan Magalhaes QUALIFIED
Leon OldroydBrazilBernardo Dominic QUALIFIED
Arvin AlbaresBrazilOnyama Limba PROPOSAL
Jones VocelkaItalyAnna Fali RENEWAL
Salvatore StockhamCanadaStephen Shaw RENEWAL
Murillo MaletGermanyElwin Sharvill NEW
Chavez BriddickAustraliaAmy Elsner RENEWAL
Murillo MaletBrazilIvan Magalhaes NEGOTIATION
Greenwood BologniaIndiaOnyama Limba NEGOTIATION
Tony FollerIndiaOnyama Limba QUALIFIED
Arvin AlbaresSpainAnna Fali UNQUALIFIED
Murillo MaletIndiaIoni Bowcher NEGOTIATION
Salvatore StockhamItalyXuxue Feng QUALIFIED
Alejandro PerinCanadaElwin Sharvill QUALIFIED
Aditya KuskoSpainAmy Elsner PROPOSAL
Ashley DoeSpainAmy Elsner PROPOSAL
Aruna FigeroaIndiaXuxue Feng RENEWAL
Jeanfrancois VenereAustraliaIoni Bowcher NEW
David DarakjyIndiaElwin Sharvill NEGOTIATION
Julie StensethRussiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaArgentinaAnna Fali QUALIFIED
Stacey MacleadSpainXuxue Feng RENEWAL
Octavia MaletRussiaOnyama Limba RENEWAL
Francesco ShinkoRussiaBernardo Dominic RENEWAL
Aika InouyeSpainBernardo Dominic NEGOTIATION
Kaitlin OstroskyArgentinaBernardo Dominic QUALIFIED
David DarakjySpainBernardo Dominic QUALIFIED
Murillo MaletFranceAsiya Javayant NEW
Smith GlickCanadaIoni Bowcher UNQUALIFIED
Smith GlickGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyItaly2026-05-26Feltz Printing Service PROPOSAL67Amy Elsner
1001Leon OldroydGermany2026-05-12Morlong Associates UNQUALIFIED71Ivan Magalhaes
1002Aruna FigeroaCanada2026-06-07Chapman, Ross E Esq UNQUALIFIED7Xuxue Feng
1003Faith GillianAustralia2026-06-03Morlong Associates RENEWAL61Xuxue Feng
1004Claire TollnerUnited Kingdom2026-06-06Commercial Press QUALIFIED94Asiya Javayant
1005Munro FerenczFrance2026-06-03Dorl, James J Esq NEGOTIATION9Anna Fali
1006Cody SaylorsArgentina2026-06-04Buckley Miller Wright NEW85Xuxue Feng
1007Tony FollerFrance2026-05-29Buckley Miller Wright RENEWAL22Stephen Shaw
1008Tony FollerRussia2026-05-27Chanay, Jeffrey A Esq QUALIFIED16Bernardo Dominic
1009Ivar PaprockiArgentina2026-05-21Rousseaux, Michael Esq PROPOSAL30Stephen Shaw
1010Octavia MaletCanada2026-06-02Chemel, James L Cpa PROPOSAL75Amy Elsner
1011Octavia MaletBrazil2026-05-13Feiner Bros RENEWAL75Elwin Sharvill
1012Emily WhobreyRussia2026-05-14Feiner Bros RENEWAL13Stephen Shaw
1013Ashley DoeArgentina2026-05-26Benton, John B Jr PROPOSAL25Xuxue Feng
1014Tony FollerUnited Kingdom2026-06-04Buckley Miller Wright NEGOTIATION24Amy Elsner
1015Alejandro PerinCanada2026-05-27Dorl, James J Esq NEW53Ioni Bowcher
1016Juan WieserRussia2026-05-10Dorl, James J Esq UNQUALIFIED96Elwin Sharvill
1017Arvin AlbaresRussia2026-05-12King, Christopher A Esq QUALIFIED27Xuxue Feng
1018Izzy GarufiUnited Kingdom2026-05-27Chapman, Ross E Esq NEGOTIATION68Ivan Magalhaes
1019Izzy GarufiJapan2026-05-29Rousseaux, Michael Esq NEGOTIATION49Xuxue Feng
1020Faith GillianAustralia2026-05-17Benton, John B Jr NEGOTIATION22Amy Elsner
1021Morrow RutaIndia2026-05-17Feiner Bros NEGOTIATION6Onyama Limba
1022Deepesh ChuiJapan2026-05-19Dorl, James J Esq QUALIFIED72Anna Fali
1023Darci PoquetteJapan2026-05-16Rousseaux, Michael Esq NEW18Ivan Magalhaes
1024Emily WhobreyItaly2026-05-25Chemel, James L Cpa QUALIFIED21Ivan Magalhaes
1025Maisha RulapaughRussia2026-05-12Chapman, Ross E Esq UNQUALIFIED30Xuxue Feng
1026Jennifer AmigonFrance2026-06-04Buckley Miller Wright NEGOTIATION31Xuxue Feng
1027Mayumi KolmetzAustralia2026-05-19Feltz Printing Service QUALIFIED81Amy Elsner
1028Johnson SergiRussia2026-05-20Dorl, James J Esq QUALIFIED37Ivan Magalhaes
1029Munro FerenczAustralia2026-05-19Feltz Printing Service RENEWAL50Elwin Sharvill
1030Francesco ShinkoGermany2026-06-08Chemel, James L Cpa NEGOTIATION79Ioni Bowcher
1031Aditya KuskoFrance2026-05-20Rousseaux, Michael Esq NEW59Bernardo Dominic
1032Wickens NestleUnited Kingdom2026-06-06Buckley Miller Wright NEW96Onyama Limba
1033Jefferson SchemmerRussia2026-06-07Chapman, Ross E Esq QUALIFIED62Onyama Limba
1034Ashley DoeRussia2026-06-02Chanay, Jeffrey A Esq NEW27Ioni Bowcher
1035Julie StensethCanada2026-06-02Dorl, James J Esq NEW79Onyama Limba
1036Cody SaylorsCanada2026-05-13Buckley Miller Wright UNQUALIFIED37Elwin Sharvill
1037Kaitlin OstroskyAustralia2026-05-19Chapman, Ross E Esq RENEWAL44Elwin Sharvill
1038Ashley DoeSpain2026-05-18Buckley Miller Wright RENEWAL61Bernardo Dominic
1039Smith GlickArgentina2026-05-22Truhlar And Truhlar Attys PROPOSAL73Onyama Limba
1040Salvatore StockhamFrance2026-05-28Feiner Bros QUALIFIED92Amy Elsner
1041Francesco ShinkoRussia2026-06-03Chemel, James L Cpa QUALIFIED52Xuxue Feng
1042Aditya KuskoBrazil2026-05-11Benton, John B Jr NEGOTIATION71Anna Fali
1043Leja CaldareraSpain2026-05-25Commercial Press RENEWAL49Elwin Sharvill
1044Claire TollnerFrance2026-05-14Feiner Bros QUALIFIED17Ioni Bowcher
1045Mujtaba NickaGermany2026-05-11Chanay, Jeffrey A Esq NEGOTIATION11Anna Fali
1046Alejandro PerinArgentina2026-05-17Printing Dimensions QUALIFIED37Elwin Sharvill
1047Juan WieserRussia2026-06-04Feltz Printing Service RENEWAL62Onyama Limba
1048David DarakjyRussia2026-05-18Rousseaux, Michael Esq RENEWAL52Ivan Magalhaes
1049Mayumi KolmetzCanada2026-05-15Benton, John B Jr QUALIFIED39Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainGermanyBernardo Dominic PROPOSAL
Jones VocelkaRussiaBernardo Dominic UNQUALIFIED
Aditya KuskoJapanOnyama Limba NEGOTIATION
Murillo MaletBrazilIvan Magalhaes NEW
Smith GlickArgentinaAmy Elsner RENEWAL
Adams MorascaArgentinaBernardo Dominic PROPOSAL
Nicolas IturbideFranceAmy Elsner NEW
Darci PoquetteCanadaAnna Fali PROPOSAL
Wickens NestleRussiaBernardo Dominic PROPOSAL
Nicolas IturbideUnited KingdomElwin Sharvill NEW
Rodrigues CampainBrazilAmy Elsner UNQUALIFIED
Leon OldroydCanadaBernardo Dominic UNQUALIFIED
Emily WhobreySpainAsiya Javayant QUALIFIED
Mayumi KolmetzItalyXuxue Feng RENEWAL
Sinclair WaycottAustraliaBernardo Dominic PROPOSAL
Nicolas IturbideUnited KingdomAsiya Javayant PROPOSAL
David DarakjyBrazilOnyama Limba PROPOSAL
Kaitlin OstroskyItalyOnyama Limba UNQUALIFIED
Emily WhobreyAustraliaStephen Shaw RENEWAL
Johnson SergiJapanOnyama Limba UNQUALIFIED
Juan WieserJapanBernardo Dominic PROPOSAL
Salvatore StockhamJapanAsiya Javayant RENEWAL
Isabel BowleyFranceIvan Magalhaes NEGOTIATION
Antonio CaudyCanadaXuxue Feng NEW
Johnson SergiBrazilAsiya Javayant NEGOTIATION
Morrow RutaJapanElwin Sharvill RENEWAL
Faith GillianUnited KingdomIvan Magalhaes RENEWAL
Stacey MacleadGermanyElwin Sharvill NEGOTIATION
Johnson SergiJapanAmy Elsner RENEWAL
Francesco ShinkoItalyElwin Sharvill QUALIFIED
Mayumi KolmetzJapanElwin Sharvill RENEWAL
Ivar PaprockiArgentinaOnyama Limba PROPOSAL
Izzy GarufiSpainOnyama Limba QUALIFIED
Leon OldroydSpainIoni Bowcher PROPOSAL
Munro FerenczAustraliaOnyama Limba PROPOSAL
Nicolas IturbideArgentinaStephen Shaw RENEWAL
Alejandro PerinJapanAsiya Javayant NEW
Jones VocelkaRussiaAmy Elsner UNQUALIFIED
Julie StensethAustraliaAnna Fali NEGOTIATION
Sinclair WaycottCanadaXuxue Feng RENEWAL
Deepesh ChuiRussiaStephen Shaw QUALIFIED
Rodrigues CampainSpainAsiya Javayant NEGOTIATION
Aditya KuskoGermanyIoni Bowcher UNQUALIFIED
Jones VocelkaBrazilAsiya Javayant RENEWAL
Chavez BriddickIndiaAsiya Javayant UNQUALIFIED
Julie StensethItalyIvan Magalhaes NEW
Francesco ShinkoIndiaAmy Elsner NEGOTIATION
Ashley DoeGermanyElwin Sharvill RENEWAL
Jefferson SchemmerUnited KingdomXuxue Feng NEW
Maria MarrierCanadaIvan Magalhaes RENEWAL
Frozen Columns
Name
Jeanfrancois Venere
Jennifer Amigon
Murillo Malet
Juan Wieser
Nicolas Iturbide
Wickens Nestle
Francesco Shinko
Julie Stenseth
Salvatore Stockham
Greenwood Bolognia
Claire Tollner
Costa Dilliard
Tony Foller
Johnson Sergi
Stacey Maclead
Jones Vocelka
Deepesh Chui
Smith Glick
Jones Vocelka
Emily Whobrey
Leja Caldarera
Munro Ferencz
Morrow Ruta
Leja Caldarera
Misaki Royster
Aditya Kusko
Aditya Kusko
Ashley Doe
Deepesh Chui
Aika Inouye
Francesco Shinko
Claire Tollner
Ashley Doe
Octavia Malet
Mujtaba Nicka
Chavez Briddick
Leja Caldarera
Johnson Sergi
Antonio Caudy
Salvatore Stockham
Ashley Doe
Isabel Bowley
Leja Caldarera
Ashley Doe
Aruna Figeroa
Mayumi Kolmetz
Misaki Royster
Adams Morasca
Darci Poquette
Julie Stenseth
IdCountryDate
1000India2026-05-29
1001United Kingdom2026-05-31
1002Italy2026-05-12
1003Spain2026-05-18
1004Japan2026-05-16
1005France2026-06-08
1006Italy2026-05-13
1007Germany2026-05-25
1008France2026-05-24
1009Spain2026-05-22
1010Spain2026-05-27
1011Italy2026-05-20
1012Australia2026-05-10
1013France2026-05-20
1014India2026-05-10
1015Italy2026-06-08
1016Germany2026-05-23
1017India2026-05-11
1018Russia2026-05-30
1019Australia2026-06-02
1020Germany2026-06-08
1021Argentina2026-05-13
1022India2026-06-03
1023Japan2026-05-10
1024Australia2026-05-12
1025Brazil2026-06-07
1026Argentina2026-05-14
1027Australia2026-05-25
1028Argentina2026-05-17
1029Spain2026-05-30
1030United Kingdom2026-05-12
1031Japan2026-05-30
1032Canada2026-06-08
1033Japan2026-05-22
1034Australia2026-05-27
1035France2026-05-28
1036France2026-06-08
1037India2026-05-31
1038Brazil2026-06-03
1039India2026-05-27
1040India2026-05-10
1041Australia2026-05-16
1042United Kingdom2026-05-19
1043Italy2026-06-08
1044Argentina2026-05-31
1045United Kingdom2026-05-17
1046United Kingdom2026-05-17
1047Canada2026-05-31
1048Canada2026-05-29
1049Australia2026-05-31

On-Demand Data

NameIdCountryDate
Jones Vocelka1000India2026-05-20
Julie Stenseth1001Argentina2026-05-16
Francesco Shinko1002Australia2026-06-07
Silvio Slusarski1003Germany2026-05-18
Nicolas Iturbide1004Australia2026-05-14
Francesco Shinko1005India2026-05-22
Jennifer Amigon1006India2026-05-24
Clifford Rim1007France2026-05-16
Stacey Maclead1008Italy2026-06-03
Aika Inouye1009Brazil2026-05-22
Claire Tollner1010Australia2026-05-30
Leon Oldroyd1011Italy2026-05-31
Cody Saylors1012Brazil2026-05-23
Greenwood Bolognia1013Canada2026-05-22
Aditya Kusko1014Brazil2026-06-07
Jefferson Schemmer1015Australia2026-05-18
Costa Dilliard1016Canada2026-05-17
Ivar Paprocki1017France2026-06-01
Murillo Malet1018Argentina2026-06-05
Morrow Ruta1019Italy2026-05-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadFranceAmy Elsner QUALIFIED
Ivar PaprockiAustraliaAnna Fali NEGOTIATION
Nicolas IturbideBrazilIoni Bowcher NEGOTIATION
Clifford RimAustraliaIoni Bowcher QUALIFIED
Alejandro PerinUnited KingdomStephen Shaw UNQUALIFIED
Juan WieserUnited KingdomXuxue Feng NEGOTIATION
Murillo MaletItalyBernardo Dominic UNQUALIFIED
Murillo MaletFranceAsiya Javayant UNQUALIFIED
Maisha RulapaughAustraliaXuxue Feng QUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Aika InouyeIndiaElwin Sharvill UNQUALIFIED
Mujtaba NickaUnited KingdomAnna Fali RENEWAL
Smith GlickAustraliaStephen Shaw PROPOSAL
Maisha RulapaughJapanElwin Sharvill PROPOSAL
Claire TollnerIndiaAmy Elsner PROPOSAL
Octavia MaletArgentinaOnyama Limba PROPOSAL
Izzy GarufiItalyIvan Magalhaes NEW
Darci PoquetteJapanAmy Elsner UNQUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic PROPOSAL
Ashley DoeUnited KingdomIoni Bowcher NEW
Sinclair WaycottUnited KingdomIoni Bowcher RENEWAL
Kadeem FlosiItalyAsiya Javayant PROPOSAL
David DarakjyBrazilXuxue Feng NEW
Sinclair WaycottRussiaXuxue Feng QUALIFIED
Deepesh ChuiIndiaOnyama Limba QUALIFIED
Greenwood BologniaArgentinaAsiya Javayant QUALIFIED
Salvatore StockhamSpainXuxue Feng QUALIFIED
Kaitlin OstroskyUnited KingdomAmy Elsner QUALIFIED
Alejandro PerinGermanyAnna Fali PROPOSAL
Faith GillianGermanyXuxue Feng NEW
Julie StensethItalyAmy Elsner NEGOTIATION
Munro FerenczBrazilBernardo Dominic PROPOSAL
Smith GlickUnited KingdomElwin Sharvill NEW
Ricardo GauchoGermanyIoni Bowcher RENEWAL
Arvin AlbaresSpainBernardo Dominic NEGOTIATION
Misaki RoysterSpainStephen Shaw RENEWAL
Tony FollerBrazilIvan Magalhaes UNQUALIFIED
Ivar PaprockiJapanStephen Shaw QUALIFIED
Smith GlickBrazilBernardo Dominic NEGOTIATION
Francesco ShinkoFranceIoni Bowcher 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>