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
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Leon OldroydAustraliaStephen Shaw QUALIFIED
Claire TollnerSpainBernardo Dominic NEGOTIATION
Emily WhobreySpainStephen Shaw RENEWAL
Kaitlin OstroskyJapanIvan Magalhaes RENEWAL
Leon OldroydGermanyStephen Shaw RENEWAL
Aika InouyeGermanyXuxue Feng NEGOTIATION
Maisha RulapaughFranceIoni Bowcher NEW
Silvio SlusarskiCanadaAsiya Javayant RENEWAL
James ButtSpainAnna Fali RENEWAL
Maisha RulapaughAustraliaAmy Elsner NEW
Costa DilliardIndiaXuxue Feng NEW
Tony FollerAustraliaAsiya Javayant NEW
Stacey MacleadUnited KingdomElwin Sharvill PROPOSAL
Mujtaba NickaCanadaBernardo Dominic PROPOSAL
Jefferson SchemmerRussiaXuxue Feng QUALIFIED
Mujtaba NickaRussiaAmy Elsner NEGOTIATION
Johnson SergiBrazilElwin Sharvill NEGOTIATION
Rodrigues CampainItalyXuxue Feng UNQUALIFIED
Costa DilliardUnited KingdomIoni Bowcher NEGOTIATION
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Julie StensethAustraliaAmy Elsner NEW
Izzy GarufiSpainStephen Shaw NEW
Smith GlickArgentinaAmy Elsner NEW
Salvatore StockhamArgentinaIvan Magalhaes QUALIFIED
Octavia MaletBrazilStephen Shaw RENEWAL
James ButtIndiaAnna Fali NEGOTIATION
Jennifer AmigonRussiaAnna Fali PROPOSAL
Emily WhobreyArgentinaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyUnited KingdomIoni Bowcher QUALIFIED
Adams MorascaAustraliaIoni Bowcher RENEWAL
Johnson SergiSpainAnna Fali NEGOTIATION
Faith GillianSpainAsiya Javayant NEW
Claire TollnerGermanyElwin Sharvill NEW
Jennifer AmigonUnited KingdomAsiya Javayant PROPOSAL
Emily WhobreyRussiaIvan Magalhaes QUALIFIED
Sinclair WaycottGermanyOnyama Limba QUALIFIED
Kaitlin OstroskyItalyStephen Shaw NEW
Jones VocelkaJapanIvan Magalhaes NEGOTIATION
Leja CaldareraFranceOnyama Limba NEGOTIATION
Jennifer AmigonFranceStephen Shaw NEGOTIATION
Jennifer AmigonRussiaElwin Sharvill NEGOTIATION
Adams MorascaFranceElwin Sharvill QUALIFIED
Leja CaldareraAustraliaOnyama Limba UNQUALIFIED
Faith GillianBrazilAsiya Javayant NEGOTIATION
Francesco ShinkoArgentinaAmy Elsner NEW
Silvio SlusarskiArgentinaElwin Sharvill NEW
Stacey MacleadItalyIvan Magalhaes NEW
Morrow RutaIndiaOnyama Limba NEGOTIATION
Maria MarrierItalyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo MaletCanadaOnyama Limba NEGOTIATION
Stacey MacleadAustraliaIoni Bowcher NEW
Octavia MaletArgentinaStephen Shaw QUALIFIED
Ricardo GauchoRussiaAsiya Javayant UNQUALIFIED
Mayumi KolmetzFranceIoni Bowcher NEW
Chavez BriddickSpainStephen Shaw QUALIFIED
Leja CaldareraBrazilAsiya Javayant NEW
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Kadeem FlosiJapanAsiya Javayant UNQUALIFIED
Maria MarrierCanadaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottUnited Kingdom2026-05-01Buckley Miller Wright UNQUALIFIED19Asiya Javayant
1001Silvio SlusarskiIndia2026-04-24Chanay, Jeffrey A Esq NEW76Asiya Javayant
1002Tony FollerArgentina2026-04-14Truhlar And Truhlar Attys RENEWAL80Onyama Limba
1003Morrow RutaUnited Kingdom2026-04-26Rangoni Of Florence QUALIFIED66Ivan Magalhaes
1004Arvin AlbaresCanada2026-04-25Chanay, Jeffrey A Esq NEW63Asiya Javayant
1005Ivar PaprockiUnited Kingdom2026-04-19Chemel, James L Cpa RENEWAL67Xuxue Feng
1006Maria MarrierUnited Kingdom2026-04-30Morlong Associates NEW13Elwin Sharvill
1007Nicolas IturbideBrazil2026-04-24Truhlar And Truhlar Attys QUALIFIED7Ivan Magalhaes
1008James ButtJapan2026-05-13Chapman, Ross E Esq UNQUALIFIED77Anna Fali
1009Maisha RulapaughIndia2026-04-25Feltz Printing Service UNQUALIFIED54Asiya Javayant
1010Jefferson SchemmerAustralia2026-04-19Chanay, Jeffrey A Esq UNQUALIFIED47Ioni Bowcher
1011Ivar PaprockiCanada2026-05-01Chemel, James L Cpa NEW11Stephen Shaw
1012Greenwood BologniaGermany2026-04-19Feltz Printing Service UNQUALIFIED66Elwin Sharvill
1013Murillo MaletItaly2026-05-04Benton, John B Jr UNQUALIFIED24Ioni Bowcher
1014Deepesh ChuiSpain2026-05-05Dorl, James J Esq NEGOTIATION34Ioni Bowcher
1015James ButtFrance2026-05-13Buckley Miller Wright NEW86Ivan Magalhaes
1016Isabel BowleyGermany2026-04-15Chapman, Ross E Esq PROPOSAL21Bernardo Dominic
1017Deepesh ChuiArgentina2026-05-03Buckley Miller Wright NEW85Xuxue Feng
1018Greenwood BologniaArgentina2026-04-21Buckley Miller Wright UNQUALIFIED25Stephen Shaw
1019Greenwood BologniaRussia2026-04-22Dorl, James J Esq UNQUALIFIED0Anna Fali
1020Stacey MacleadUnited Kingdom2026-04-17Feltz Printing Service UNQUALIFIED6Ioni Bowcher
1021Juan WieserRussia2026-04-28Benton, John B Jr NEW23Anna Fali
1022Maisha RulapaughBrazil2026-05-07Rousseaux, Michael Esq NEGOTIATION85Bernardo Dominic
1023Costa DilliardCanada2026-04-26Commercial Press UNQUALIFIED0Asiya Javayant
1024Leon OldroydAustralia2026-05-06Buckley Miller Wright UNQUALIFIED11Ioni Bowcher
1025Kadeem FlosiAustralia2026-05-07Chemel, James L Cpa NEGOTIATION18Stephen Shaw
1026Rodrigues CampainCanada2026-04-20Morlong Associates NEW98Ivan Magalhaes
1027Cody SaylorsItaly2026-05-09Buckley Miller Wright PROPOSAL60Anna Fali
1028Sinclair WaycottGermany2026-04-24Commercial Press PROPOSAL3Stephen Shaw
1029Leja CaldareraIndia2026-05-12Benton, John B Jr QUALIFIED68Anna Fali
1030Morrow RutaBrazil2026-05-11Rousseaux, Michael Esq UNQUALIFIED99Asiya Javayant
1031Jones VocelkaAustralia2026-04-20Chapman, Ross E Esq QUALIFIED59Elwin Sharvill
1032Clifford RimIndia2026-04-17Commercial Press PROPOSAL31Onyama Limba
1033Octavia MaletGermany2026-05-02Benton, John B Jr RENEWAL27Stephen Shaw
1034Clifford RimGermany2026-04-23Morlong Associates RENEWAL92Ioni Bowcher
1035Wickens NestleAustralia2026-04-22Feltz Printing Service RENEWAL13Ivan Magalhaes
1036Kaitlin OstroskyArgentina2026-04-22Chemel, James L Cpa UNQUALIFIED81Stephen Shaw
1037Darci PoquetteUnited Kingdom2026-04-19Feltz Printing Service NEGOTIATION5Ivan Magalhaes
1038Nicolas IturbideArgentina2026-05-05Chemel, James L Cpa PROPOSAL98Elwin Sharvill
1039Francesco ShinkoArgentina2026-05-07Feiner Bros NEW53Asiya Javayant
1040Antonio CaudyBrazil2026-04-20Truhlar And Truhlar Attys UNQUALIFIED77Bernardo Dominic
1041Juan WieserAustralia2026-04-14Morlong Associates NEGOTIATION83Ivan Magalhaes
1042Emily WhobreyCanada2026-04-15Rangoni Of Florence QUALIFIED7Amy Elsner
1043Nicolas IturbideArgentina2026-04-26Printing Dimensions UNQUALIFIED80Amy Elsner
1044Kaitlin OstroskyBrazil2026-04-28Benton, John B Jr QUALIFIED21Ioni Bowcher
1045Misaki RoysterRussia2026-04-24Feiner Bros UNQUALIFIED28Elwin Sharvill
1046Aruna FigeroaAustralia2026-05-07Rangoni Of Florence NEGOTIATION8Stephen Shaw
1047David DarakjyItaly2026-04-21Commercial Press PROPOSAL4Ivan Magalhaes
1048Leja CaldareraGermany2026-04-27Chanay, Jeffrey A Esq PROPOSAL5Xuxue Feng
1049Adams MorascaUnited Kingdom2026-04-25Chemel, James L Cpa NEW82Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo GauchoSpainStephen Shaw RENEWAL
Murillo MaletCanadaIvan Magalhaes UNQUALIFIED
Leja CaldareraSpainXuxue Feng NEW
Ricardo GauchoJapanStephen Shaw NEW
Deepesh ChuiFranceXuxue Feng NEGOTIATION
Silvio SlusarskiGermanyOnyama Limba PROPOSAL
Jefferson SchemmerArgentinaXuxue Feng NEW
Salvatore StockhamGermanyBernardo Dominic QUALIFIED
Murillo MaletArgentinaAmy Elsner NEW
Ashley DoeArgentinaOnyama Limba QUALIFIED
Tony FollerCanadaAsiya Javayant UNQUALIFIED
Isabel BowleyItalyIoni Bowcher UNQUALIFIED
Murillo MaletItalyAnna Fali PROPOSAL
David DarakjyRussiaIvan Magalhaes PROPOSAL
Ivar PaprockiUnited KingdomAnna Fali NEGOTIATION
Jennifer AmigonUnited KingdomIvan Magalhaes PROPOSAL
Aruna FigeroaUnited KingdomAmy Elsner RENEWAL
Adams MorascaFranceStephen Shaw UNQUALIFIED
Ricardo GauchoIndiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresCanadaIvan Magalhaes RENEWAL
Francesco ShinkoJapanStephen Shaw RENEWAL
Emily WhobreyJapanAmy Elsner QUALIFIED
Ashley DoeCanadaIoni Bowcher NEGOTIATION
Antonio CaudyBrazilAsiya Javayant UNQUALIFIED
Claire TollnerJapanXuxue Feng NEW
James ButtSpainAnna Fali NEGOTIATION
Tony FollerArgentinaAnna Fali NEW
Adams MorascaIndiaAsiya Javayant PROPOSAL
Morrow RutaSpainBernardo Dominic QUALIFIED
Julie StensethBrazilAnna Fali NEGOTIATION
Deepesh ChuiGermanyElwin Sharvill RENEWAL
Tony FollerUnited KingdomIvan Magalhaes NEW
Francesco ShinkoSpainElwin Sharvill UNQUALIFIED
Nicolas IturbideArgentinaElwin Sharvill NEW
Maria MarrierRussiaIoni Bowcher QUALIFIED
Julie StensethAustraliaElwin Sharvill UNQUALIFIED
Johnson SergiSpainAnna Fali NEW
Johnson SergiAustraliaAmy Elsner NEW
Izzy GarufiRussiaIvan Magalhaes NEW
Julie StensethCanadaAsiya Javayant QUALIFIED
Juan WieserAustraliaIoni Bowcher RENEWAL
Aika InouyeUnited KingdomOnyama Limba QUALIFIED
Clifford RimIndiaIoni Bowcher RENEWAL
Nicolas IturbideArgentinaStephen Shaw PROPOSAL
Deepesh ChuiAustraliaElwin Sharvill QUALIFIED
Cody SaylorsFranceIvan Magalhaes QUALIFIED
Juan WieserJapanAnna Fali RENEWAL
Arvin AlbaresRussiaStephen Shaw UNQUALIFIED
Munro FerenczSpainStephen Shaw NEGOTIATION
Leja CaldareraItalyIvan Magalhaes QUALIFIED
Frozen Columns
Name
Francesco Shinko
Darci Poquette
Sinclair Waycott
Aditya Kusko
Clifford Rim
Mayumi Kolmetz
Salvatore Stockham
Aika Inouye
Ashley Doe
Alejandro Perin
Antonio Caudy
David Darakjy
Leon Oldroyd
Julie Stenseth
Ivar Paprocki
Mayumi Kolmetz
Adams Morasca
Rodrigues Campain
Kaitlin Ostrosky
Emily Whobrey
Arvin Albares
Aditya Kusko
Smith Glick
Kadeem Flosi
Clifford Rim
Murillo Malet
James Butt
Cody Saylors
Greenwood Bolognia
Aruna Figeroa
Kaitlin Ostrosky
Costa Dilliard
Maria Marrier
Sinclair Waycott
Adams Morasca
Francesco Shinko
Murillo Malet
Faith Gillian
Clifford Rim
Wickens Nestle
Maria Marrier
Jefferson Schemmer
James Butt
Isabel Bowley
Costa Dilliard
Smith Glick
Emily Whobrey
Rodrigues Campain
Faith Gillian
Deepesh Chui
IdCountryDate
1000Germany2026-04-26
1001Spain2026-04-20
1002Italy2026-05-09
1003United Kingdom2026-05-13
1004India2026-05-11
1005Japan2026-04-23
1006Canada2026-05-07
1007Argentina2026-04-14
1008France2026-05-08
1009Germany2026-05-06
1010Brazil2026-04-30
1011India2026-04-16
1012Canada2026-04-22
1013Italy2026-05-03
1014Canada2026-04-19
1015Italy2026-05-11
1016Italy2026-05-11
1017Argentina2026-05-07
1018Canada2026-05-09
1019Argentina2026-04-26
1020India2026-05-13
1021Brazil2026-04-28
1022Australia2026-04-17
1023United Kingdom2026-04-15
1024Russia2026-04-25
1025Spain2026-05-01
1026Russia2026-05-11
1027Argentina2026-04-15
1028Russia2026-04-18
1029France2026-05-06
1030Brazil2026-04-19
1031Germany2026-05-01
1032France2026-04-20
1033Canada2026-04-28
1034Italy2026-05-09
1035India2026-05-11
1036Italy2026-04-30
1037Australia2026-05-07
1038Russia2026-05-02
1039Australia2026-04-23
1040Spain2026-05-10
1041Japan2026-04-27
1042Brazil2026-04-27
1043Japan2026-04-21
1044Russia2026-04-29
1045India2026-05-01
1046India2026-05-10
1047Australia2026-05-02
1048Japan2026-04-25
1049Spain2026-05-02

On-Demand Data

NameIdCountryDate
Leja Caldarera1000India2026-04-26
Clifford Rim1001Italy2026-04-30
Murillo Malet1002India2026-04-15
Silvio Slusarski1003Australia2026-05-04
Chavez Briddick1004India2026-04-24
Morrow Ruta1005Australia2026-05-10
Tony Foller1006Australia2026-05-07
Stacey Maclead1007France2026-05-03
Salvatore Stockham1008Italy2026-05-12
Clifford Rim1009Russia2026-05-11
Alejandro Perin1010Russia2026-05-12
Wickens Nestle1011India2026-04-14
Silvio Slusarski1012United Kingdom2026-04-29
Murillo Malet1013Japan2026-04-27
Deepesh Chui1014Argentina2026-05-07
Aika Inouye1015Australia2026-04-27
Costa Dilliard1016India2026-04-14
Isabel Bowley1017Russia2026-04-21
Maria Marrier1018Germany2026-05-13
Misaki Royster1019Spain2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha RulapaughIndiaXuxue Feng QUALIFIED
Clifford RimGermanyIoni Bowcher PROPOSAL
Maisha RulapaughAustraliaElwin Sharvill PROPOSAL
Alejandro PerinIndiaAmy Elsner PROPOSAL
Sinclair WaycottFranceStephen Shaw NEGOTIATION
Munro FerenczCanadaAnna Fali NEGOTIATION
Julie StensethCanadaIvan Magalhaes UNQUALIFIED
Arvin AlbaresArgentinaAsiya Javayant NEGOTIATION
Sinclair WaycottItalyXuxue Feng PROPOSAL
Ashley DoeArgentinaAnna Fali UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner UNQUALIFIED
Johnson SergiAustraliaStephen Shaw NEGOTIATION
Mujtaba NickaArgentinaIvan Magalhaes RENEWAL
Misaki RoysterItalyStephen Shaw NEW
Aruna FigeroaFranceElwin Sharvill QUALIFIED
Sinclair WaycottAustraliaStephen Shaw UNQUALIFIED
Antonio CaudyGermanyStephen Shaw NEW
Munro FerenczCanadaIvan Magalhaes PROPOSAL
Adams MorascaFranceStephen Shaw PROPOSAL
Alejandro PerinAustraliaAsiya Javayant PROPOSAL
Ricardo GauchoIndiaOnyama Limba QUALIFIED
Morrow RutaFranceAmy Elsner QUALIFIED
Antonio CaudyGermanyBernardo Dominic QUALIFIED
Aruna FigeroaSpainAmy Elsner QUALIFIED
Greenwood BologniaGermanyAsiya Javayant NEW
Morrow RutaFranceAsiya Javayant UNQUALIFIED
Costa DilliardSpainStephen Shaw NEGOTIATION
Murillo MaletSpainIvan Magalhaes RENEWAL
David DarakjyAustraliaOnyama Limba NEGOTIATION
Clifford RimJapanStephen Shaw RENEWAL
Izzy GarufiUnited KingdomIvan Magalhaes NEW
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois VenereCanadaAmy Elsner NEGOTIATION
Leon OldroydRussiaStephen Shaw NEW
Nicolas IturbideRussiaAsiya Javayant QUALIFIED
Wickens NestleIndiaAnna Fali UNQUALIFIED
Mujtaba NickaJapanStephen Shaw QUALIFIED
Aditya KuskoArgentinaAsiya Javayant RENEWAL
Morrow RutaAustraliaAnna Fali RENEWAL
Juan WieserIndiaStephen Shaw 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>