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
Jennifer AmigonAustraliaAmy Elsner UNQUALIFIED
Ivar PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer AmigonCanadaStephen Shaw UNQUALIFIED
Jeanfrancois VenereRussiaIvan Magalhaes NEW
Jennifer AmigonIndiaStephen Shaw NEW
Johnson SergiUnited KingdomElwin Sharvill NEW
Johnson SergiFranceAsiya Javayant NEW
Emily WhobreyItalyAmy Elsner RENEWAL
Jones VocelkaArgentinaIoni Bowcher UNQUALIFIED
Jefferson SchemmerFranceBernardo Dominic PROPOSAL
Misaki RoysterUnited KingdomXuxue Feng PROPOSAL
Smith GlickArgentinaBernardo Dominic RENEWAL
Maria MarrierIndiaStephen Shaw NEW
Aditya KuskoRussiaAnna Fali QUALIFIED
Julie StensethFranceIvan Magalhaes NEGOTIATION
Emily WhobreyAustraliaIoni Bowcher NEW
Octavia MaletUnited KingdomXuxue Feng NEGOTIATION
Tony FollerSpainStephen Shaw UNQUALIFIED
Jones VocelkaAustraliaAsiya Javayant PROPOSAL
Ashley DoeCanadaIvan Magalhaes RENEWAL
James ButtIndiaXuxue Feng QUALIFIED
Silvio SlusarskiIndiaOnyama Limba PROPOSAL
Aditya KuskoAustraliaAsiya Javayant UNQUALIFIED
Maria MarrierGermanyIvan Magalhaes PROPOSAL
Juan WieserItalyAnna Fali UNQUALIFIED
Morrow RutaCanadaIvan Magalhaes NEW
Alejandro PerinIndiaBernardo Dominic NEGOTIATION
Ivar PaprockiBrazilElwin Sharvill RENEWAL
Kaitlin OstroskyIndiaStephen Shaw NEGOTIATION
Juan WieserGermanyBernardo Dominic UNQUALIFIED
Cody SaylorsUnited KingdomBernardo Dominic RENEWAL
Silvio SlusarskiBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaIvan Magalhaes PROPOSAL
Leon OldroydItalyAmy Elsner PROPOSAL
Munro FerenczAustraliaXuxue Feng NEW
Tony FollerUnited KingdomAnna Fali PROPOSAL
Greenwood BologniaItalyAmy Elsner NEW
Sinclair WaycottArgentinaStephen Shaw NEGOTIATION
James ButtItalyAsiya Javayant NEW
Costa DilliardAustraliaAmy Elsner NEW
Alejandro PerinItalyIoni Bowcher PROPOSAL
Costa DilliardUnited KingdomStephen Shaw PROPOSAL
Rodrigues CampainAustraliaBernardo Dominic NEGOTIATION
Murillo MaletUnited KingdomElwin Sharvill UNQUALIFIED
Emily WhobreyArgentinaAmy Elsner RENEWAL
Julie StensethSpainBernardo Dominic QUALIFIED
Faith GillianCanadaIvan Magalhaes PROPOSAL
Alejandro PerinArgentinaXuxue Feng RENEWAL
Clifford RimBrazilElwin Sharvill NEW
Rodrigues CampainFranceAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Ivar PaprockiArgentinaElwin Sharvill UNQUALIFIED
Mayumi KolmetzFranceXuxue Feng NEGOTIATION
Darci PoquetteUnited KingdomStephen Shaw PROPOSAL
David DarakjyJapanIoni Bowcher QUALIFIED
Rodrigues CampainArgentinaElwin Sharvill PROPOSAL
Murillo MaletSpainStephen Shaw UNQUALIFIED
Ivar PaprockiBrazilAsiya Javayant QUALIFIED
Aika InouyeFranceElwin Sharvill RENEWAL
Ashley DoeFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyCanada2026-04-08Printing Dimensions QUALIFIED28Anna Fali
1001Deepesh ChuiAustralia2026-04-17Chanay, Jeffrey A Esq PROPOSAL43Ioni Bowcher
1002Ashley DoeGermany2026-04-17Printing Dimensions NEGOTIATION48Stephen Shaw
1003Izzy GarufiRussia2026-04-17Commercial Press RENEWAL9Onyama Limba
1004Leon OldroydFrance2026-04-20Morlong Associates RENEWAL24Bernardo Dominic
1005Leon OldroydSpain2026-04-09Chanay, Jeffrey A Esq PROPOSAL97Xuxue Feng
1006Ashley DoeSpain2026-04-15Feltz Printing Service NEW0Ivan Magalhaes
1007Maisha RulapaughFrance2026-04-12Feiner Bros NEGOTIATION88Ivan Magalhaes
1008Morrow RutaGermany2026-03-31Commercial Press RENEWAL81Xuxue Feng
1009Rodrigues CampainItaly2026-04-09Feltz Printing Service QUALIFIED62Stephen Shaw
1010Juan WieserIndia2026-03-27Chemel, James L Cpa RENEWAL86Asiya Javayant
1011Cody SaylorsGermany2026-04-19Buckley Miller Wright QUALIFIED76Ivan Magalhaes
1012Faith GillianArgentina2026-04-02Chanay, Jeffrey A Esq RENEWAL36Bernardo Dominic
1013Smith GlickItaly2026-03-30Dorl, James J Esq RENEWAL51Amy Elsner
1014Aika InouyeCanada2026-03-27Rousseaux, Michael Esq UNQUALIFIED50Amy Elsner
1015Smith GlickFrance2026-03-31Chanay, Jeffrey A Esq UNQUALIFIED30Asiya Javayant
1016Stacey MacleadCanada2026-04-07Chanay, Jeffrey A Esq QUALIFIED68Stephen Shaw
1017Wickens NestleCanada2026-04-13Buckley Miller Wright RENEWAL53Stephen Shaw
1018Rodrigues CampainArgentina2026-04-15Buckley Miller Wright RENEWAL12Ioni Bowcher
1019Ashley DoeIndia2026-03-24King, Christopher A Esq QUALIFIED19Elwin Sharvill
1020Smith GlickCanada2026-04-17Truhlar And Truhlar Attys NEW85Bernardo Dominic
1021Ricardo GauchoGermany2026-04-12Truhlar And Truhlar Attys PROPOSAL19Elwin Sharvill
1022Aika InouyeJapan2026-04-12Rousseaux, Michael Esq QUALIFIED66Asiya Javayant
1023Maisha RulapaughFrance2026-03-22Rangoni Of Florence NEW19Stephen Shaw
1024Sinclair WaycottAustralia2026-03-27Chapman, Ross E Esq RENEWAL44Amy Elsner
1025Leja CaldareraIndia2026-04-05Chemel, James L Cpa QUALIFIED92Bernardo Dominic
1026David DarakjyCanada2026-03-24Chapman, Ross E Esq RENEWAL33Asiya Javayant
1027James ButtFrance2026-04-10Morlong Associates QUALIFIED25Amy Elsner
1028Leon OldroydIndia2026-04-14Rousseaux, Michael Esq NEGOTIATION99Onyama Limba
1029Francesco ShinkoItaly2026-03-31Buckley Miller Wright RENEWAL10Stephen Shaw
1030Murillo MaletIndia2026-04-10Benton, John B Jr NEGOTIATION98Ioni Bowcher
1031Emily WhobreyUnited Kingdom2026-04-18Printing Dimensions NEW67Bernardo Dominic
1032Jefferson SchemmerUnited Kingdom2026-04-12Printing Dimensions QUALIFIED48Xuxue Feng
1033Ivar PaprockiArgentina2026-03-25Benton, John B Jr NEW16Bernardo Dominic
1034Octavia MaletAustralia2026-04-16Chanay, Jeffrey A Esq NEGOTIATION5Onyama Limba
1035Ivar PaprockiItaly2026-04-12Commercial Press RENEWAL40Amy Elsner
1036Greenwood BologniaArgentina2026-04-08Rangoni Of Florence UNQUALIFIED77Elwin Sharvill
1037Darci PoquetteJapan2026-04-05Printing Dimensions UNQUALIFIED38Asiya Javayant
1038Octavia MaletIndia2026-04-12Rangoni Of Florence RENEWAL97Ivan Magalhaes
1039Johnson SergiRussia2026-04-04Dorl, James J Esq UNQUALIFIED44Onyama Limba
1040Alejandro PerinGermany2026-04-20Feiner Bros QUALIFIED39Onyama Limba
1041Izzy GarufiFrance2026-04-07Truhlar And Truhlar Attys PROPOSAL23Elwin Sharvill
1042Izzy GarufiIndia2026-04-08King, Christopher A Esq NEGOTIATION42Bernardo Dominic
1043Cody SaylorsGermany2026-03-26Truhlar And Truhlar Attys PROPOSAL80Elwin Sharvill
1044Antonio CaudySpain2026-04-08Rousseaux, Michael Esq NEGOTIATION41Anna Fali
1045Clifford RimAustralia2026-04-20Truhlar And Truhlar Attys NEGOTIATION87Xuxue Feng
1046Mayumi KolmetzGermany2026-03-29Chemel, James L Cpa RENEWAL38Ivan Magalhaes
1047Adams MorascaAustralia2026-04-01Rousseaux, Michael Esq NEGOTIATION9Onyama Limba
1048Clifford RimBrazil2026-04-09Truhlar And Truhlar Attys PROPOSAL13Anna Fali
1049Leja CaldareraCanada2026-04-07Rousseaux, Michael Esq RENEWAL70Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleCanadaXuxue Feng PROPOSAL
David DarakjyAustraliaAmy Elsner NEGOTIATION
Misaki RoysterFranceElwin Sharvill NEW
Juan WieserUnited KingdomAmy Elsner NEGOTIATION
Aika InouyeSpainIvan Magalhaes UNQUALIFIED
Rodrigues CampainItalyAsiya Javayant QUALIFIED
Misaki RoysterFranceBernardo Dominic NEW
Ricardo GauchoAustraliaAnna Fali NEW
Silvio SlusarskiAustraliaElwin Sharvill RENEWAL
Cody SaylorsAustraliaIvan Magalhaes NEW
Maisha RulapaughIndiaAnna Fali NEGOTIATION
Aika InouyeItalyBernardo Dominic QUALIFIED
Chavez BriddickRussiaBernardo Dominic NEW
Leja CaldareraArgentinaAnna Fali NEW
Maria MarrierRussiaElwin Sharvill PROPOSAL
Claire TollnerCanadaAsiya Javayant RENEWAL
Antonio CaudyArgentinaAsiya Javayant PROPOSAL
Nicolas IturbideBrazilBernardo Dominic NEGOTIATION
Chavez BriddickJapanElwin Sharvill UNQUALIFIED
Sinclair WaycottItalyAsiya Javayant QUALIFIED
Costa DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Emily WhobreyFranceIvan Magalhaes NEGOTIATION
Tony FollerItalyAnna Fali PROPOSAL
Ivar PaprockiRussiaBernardo Dominic NEGOTIATION
Ashley DoeArgentinaStephen Shaw QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes PROPOSAL
Alejandro PerinRussiaBernardo Dominic NEGOTIATION
Jennifer AmigonItalyStephen Shaw UNQUALIFIED
James ButtBrazilAmy Elsner NEW
Izzy GarufiJapanAmy Elsner QUALIFIED
Aruna FigeroaRussiaStephen Shaw NEW
Isabel BowleyItalyStephen Shaw NEW
Munro FerenczIndiaIoni Bowcher NEGOTIATION
Costa DilliardRussiaStephen Shaw RENEWAL
Julie StensethGermanyOnyama Limba RENEWAL
Salvatore StockhamGermanyBernardo Dominic PROPOSAL
Izzy GarufiRussiaBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba NickaCanadaAsiya Javayant RENEWAL
Maria MarrierIndiaOnyama Limba UNQUALIFIED
Kadeem FlosiJapanXuxue Feng QUALIFIED
David DarakjyGermanyBernardo Dominic RENEWAL
Maria MarrierAustraliaXuxue Feng UNQUALIFIED
Cody SaylorsGermanyElwin Sharvill NEW
Ricardo GauchoUnited KingdomOnyama Limba RENEWAL
Chavez BriddickFranceIoni Bowcher PROPOSAL
Morrow RutaSpainAsiya Javayant PROPOSAL
Deepesh ChuiRussiaAsiya Javayant RENEWAL
Murillo MaletGermanyStephen Shaw NEW
Mayumi KolmetzJapanIoni Bowcher QUALIFIED
Frozen Columns
Name
Salvatore Stockham
Ricardo Gaucho
Francesco Shinko
Faith Gillian
Adams Morasca
Kaitlin Ostrosky
Salvatore Stockham
Aika Inouye
Antonio Caudy
Morrow Ruta
Salvatore Stockham
Julie Stenseth
Greenwood Bolognia
Juan Wieser
Adams Morasca
Emily Whobrey
Kaitlin Ostrosky
Clifford Rim
Juan Wieser
Clifford Rim
Tony Foller
Stacey Maclead
Maisha Rulapaugh
Nicolas Iturbide
Isabel Bowley
Morrow Ruta
Francesco Shinko
Alejandro Perin
Alejandro Perin
Jones Vocelka
Julie Stenseth
Cody Saylors
Claire Tollner
Alejandro Perin
Deepesh Chui
Mujtaba Nicka
Johnson Sergi
Tony Foller
Octavia Malet
Johnson Sergi
David Darakjy
Nicolas Iturbide
Isabel Bowley
Tony Foller
James Butt
Isabel Bowley
Murillo Malet
Nicolas Iturbide
Smith Glick
Greenwood Bolognia
IdCountryDate
1000Russia2026-04-05
1001India2026-04-16
1002Canada2026-04-07
1003Italy2026-04-02
1004France2026-04-02
1005Germany2026-04-04
1006Argentina2026-03-28
1007India2026-04-20
1008Australia2026-04-14
1009Argentina2026-03-23
1010Germany2026-03-23
1011Germany2026-04-19
1012Italy2026-04-11
1013United Kingdom2026-03-25
1014Canada2026-03-24
1015Brazil2026-04-03
1016Brazil2026-04-20
1017France2026-03-24
1018France2026-04-03
1019Japan2026-04-19
1020Germany2026-03-23
1021India2026-03-31
1022Canada2026-04-08
1023Spain2026-04-03
1024Australia2026-04-16
1025Canada2026-03-25
1026United Kingdom2026-03-22
1027United Kingdom2026-03-25
1028India2026-04-11
1029United Kingdom2026-04-01
1030United Kingdom2026-03-25
1031Argentina2026-04-14
1032Australia2026-03-23
1033Germany2026-04-07
1034Canada2026-04-18
1035France2026-04-04
1036Spain2026-03-22
1037Spain2026-04-10
1038Canada2026-04-12
1039France2026-04-20
1040Canada2026-03-29
1041Argentina2026-03-31
1042Spain2026-03-28
1043Italy2026-04-02
1044Japan2026-04-11
1045Russia2026-03-30
1046India2026-04-04
1047Brazil2026-04-05
1048Russia2026-04-16
1049Russia2026-04-15

On-Demand Data

NameIdCountryDate
Murillo Malet1000India2026-04-02
Darci Poquette1001United Kingdom2026-04-05
Darci Poquette1002Russia2026-04-20
Darci Poquette1003Australia2026-03-26
Faith Gillian1004Spain2026-04-08
Alejandro Perin1005Canada2026-04-18
Izzy Garufi1006France2026-04-18
Aruna Figeroa1007Japan2026-04-17
Greenwood Bolognia1008Brazil2026-04-08
Izzy Garufi1009Canada2026-04-19
Mujtaba Nicka1010Australia2026-03-28
Adams Morasca1011India2026-04-18
Aika Inouye1012Brazil2026-04-15
Rodrigues Campain1013Russia2026-04-04
Cody Saylors1014Australia2026-04-07
Emily Whobrey1015India2026-04-06
Aruna Figeroa1016United Kingdom2026-04-14
David Darakjy1017India2026-04-06
Smith Glick1018Spain2026-04-02
Morrow Ruta1019Canada2026-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna FigeroaJapanIvan Magalhaes PROPOSAL
Juan WieserRussiaAnna Fali RENEWAL
Emily WhobreyFranceBernardo Dominic RENEWAL
Johnson SergiBrazilXuxue Feng UNQUALIFIED
Deepesh ChuiFranceOnyama Limba UNQUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant PROPOSAL
Jones VocelkaJapanElwin Sharvill RENEWAL
Tony FollerIndiaBernardo Dominic NEW
Kadeem FlosiAustraliaAmy Elsner PROPOSAL
Johnson SergiGermanyAnna Fali UNQUALIFIED
Mujtaba NickaCanadaAnna Fali QUALIFIED
Murillo MaletIndiaAsiya Javayant NEGOTIATION
Ivar PaprockiBrazilIvan Magalhaes QUALIFIED
Juan WieserArgentinaBernardo Dominic PROPOSAL
Ricardo GauchoArgentinaAmy Elsner UNQUALIFIED
Clifford RimItalyElwin Sharvill PROPOSAL
Emily WhobreySpainAnna Fali NEGOTIATION
James ButtBrazilStephen Shaw UNQUALIFIED
Tony FollerFranceXuxue Feng NEW
Wickens NestleArgentinaBernardo Dominic PROPOSAL
Jeanfrancois VenereCanadaOnyama Limba QUALIFIED
Clifford RimBrazilOnyama Limba PROPOSAL
Aruna FigeroaFranceOnyama Limba QUALIFIED
Smith GlickArgentinaElwin Sharvill UNQUALIFIED
Maisha RulapaughBrazilElwin Sharvill PROPOSAL
Jennifer AmigonJapanOnyama Limba QUALIFIED
Ashley DoeArgentinaIoni Bowcher NEGOTIATION
Cody SaylorsItalyIvan Magalhaes QUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes NEW
Chavez BriddickFranceBernardo Dominic PROPOSAL
Francesco ShinkoJapanOnyama Limba PROPOSAL
Aditya KuskoGermanyAnna Fali QUALIFIED
Antonio CaudyGermanyXuxue Feng PROPOSAL
Leon OldroydIndiaAsiya Javayant UNQUALIFIED
Ricardo GauchoIndiaIvan Magalhaes UNQUALIFIED
Greenwood BologniaIndiaAsiya Javayant NEW
Claire TollnerGermanyBernardo Dominic NEGOTIATION
Jeanfrancois VenereRussiaOnyama Limba PROPOSAL
Jennifer AmigonBrazilXuxue Feng NEGOTIATION
Claire TollnerRussiaAmy Elsner NEW

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