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
Ivar PaprockiCanadaAnna Fali QUALIFIED
Greenwood BologniaIndiaAnna Fali RENEWAL
James ButtArgentinaBernardo Dominic NEW
Morrow RutaGermanyAsiya Javayant QUALIFIED
Darci PoquetteItalyBernardo Dominic NEW
David DarakjyUnited KingdomAmy Elsner NEW
Ricardo GauchoGermanyOnyama Limba RENEWAL
Julie StensethCanadaAnna Fali RENEWAL
Adams MorascaItalyIvan Magalhaes NEGOTIATION
David DarakjyItalyXuxue Feng NEGOTIATION
Kadeem FlosiArgentinaAsiya Javayant QUALIFIED
Aditya KuskoJapanXuxue Feng NEGOTIATION
Salvatore StockhamGermanyAmy Elsner NEGOTIATION
Aruna FigeroaJapanXuxue Feng PROPOSAL
Jeanfrancois VenereCanadaIoni Bowcher QUALIFIED
Francesco ShinkoSpainXuxue Feng NEGOTIATION
Costa DilliardItalyStephen Shaw QUALIFIED
Johnson SergiCanadaStephen Shaw NEW
Ashley DoeRussiaAmy Elsner NEW
Mayumi KolmetzItalyAsiya Javayant NEGOTIATION
Julie StensethJapanBernardo Dominic RENEWAL
Salvatore StockhamGermanyBernardo Dominic NEW
Aruna FigeroaGermanyIoni Bowcher QUALIFIED
Jefferson SchemmerRussiaStephen Shaw UNQUALIFIED
Arvin AlbaresJapanAmy Elsner PROPOSAL
Rodrigues CampainAustraliaAsiya Javayant NEGOTIATION
Leon OldroydItalyAnna Fali QUALIFIED
Aruna FigeroaBrazilXuxue Feng UNQUALIFIED
Jefferson SchemmerFranceIvan Magalhaes RENEWAL
Morrow RutaJapanIoni Bowcher PROPOSAL
Alejandro PerinJapanXuxue Feng NEW
Leon OldroydItalyIoni Bowcher NEW
Maisha RulapaughGermanyElwin Sharvill UNQUALIFIED
Wickens NestleCanadaElwin Sharvill NEGOTIATION
Salvatore StockhamUnited KingdomAnna Fali UNQUALIFIED
Jefferson SchemmerJapanOnyama Limba NEW
Ivar PaprockiRussiaIvan Magalhaes PROPOSAL
Claire TollnerCanadaStephen Shaw QUALIFIED
Costa DilliardGermanyAmy Elsner PROPOSAL
Maria MarrierBrazilStephen Shaw PROPOSAL
Maria MarrierCanadaStephen Shaw PROPOSAL
Kadeem FlosiRussiaElwin Sharvill QUALIFIED
Salvatore StockhamCanadaElwin Sharvill QUALIFIED
Octavia MaletAustraliaAsiya Javayant RENEWAL
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Murillo MaletJapanXuxue Feng PROPOSAL
Aika InouyeSpainAsiya Javayant PROPOSAL
Wickens NestleBrazilStephen Shaw NEW
Kadeem FlosiBrazilXuxue Feng NEGOTIATION
Ricardo GauchoAustraliaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Johnson SergiIndiaStephen Shaw QUALIFIED
Faith GillianCanadaIvan Magalhaes NEW
Johnson SergiIndiaIvan Magalhaes PROPOSAL
Alejandro PerinAustraliaAsiya Javayant QUALIFIED
Morrow RutaGermanyIoni Bowcher NEGOTIATION
Arvin AlbaresRussiaAsiya Javayant NEGOTIATION
Stacey MacleadArgentinaXuxue Feng NEGOTIATION
Jeanfrancois VenereUnited KingdomStephen Shaw UNQUALIFIED
Smith GlickAustraliaOnyama Limba NEGOTIATION
Mayumi KolmetzBrazilXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio SlusarskiSpain2026-04-14Chemel, James L Cpa QUALIFIED9Anna Fali
1001Stacey MacleadJapan2026-04-09Printing Dimensions UNQUALIFIED92Stephen Shaw
1002Stacey MacleadCanada2026-04-16Morlong Associates PROPOSAL33Stephen Shaw
1003Ivar PaprockiUnited Kingdom2026-04-25Truhlar And Truhlar Attys NEW13Elwin Sharvill
1004Leon OldroydBrazil2026-04-25Printing Dimensions QUALIFIED43Elwin Sharvill
1005Adams MorascaUnited Kingdom2026-04-23Commercial Press UNQUALIFIED96Xuxue Feng
1006Arvin AlbaresAustralia2026-04-14Commercial Press PROPOSAL46Xuxue Feng
1007Maisha RulapaughUnited Kingdom2026-04-13Commercial Press QUALIFIED85Xuxue Feng
1008Izzy GarufiItaly2026-04-24Chapman, Ross E Esq RENEWAL22Elwin Sharvill
1009Jennifer AmigonSpain2026-04-24Chemel, James L Cpa NEW67Xuxue Feng
1010Munro FerenczItaly2026-04-10Feiner Bros RENEWAL43Onyama Limba
1011Munro FerenczSpain2026-04-18Feiner Bros RENEWAL5Asiya Javayant
1012Izzy GarufiIndia2026-05-02Chanay, Jeffrey A Esq NEW78Amy Elsner
1013Juan WieserIndia2026-04-24Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1014Julie StensethGermany2026-04-18Feiner Bros RENEWAL68Onyama Limba
1015Morrow RutaSpain2026-04-10Chemel, James L Cpa NEW26Amy Elsner
1016Faith GillianBrazil2026-04-11Truhlar And Truhlar Attys NEGOTIATION80Asiya Javayant
1017Leja CaldareraSpain2026-04-20Chapman, Ross E Esq PROPOSAL26Stephen Shaw
1018Jefferson SchemmerRussia2026-04-20Chanay, Jeffrey A Esq NEGOTIATION79Asiya Javayant
1019Juan WieserCanada2026-04-21Commercial Press QUALIFIED51Asiya Javayant
1020Wickens NestleGermany2026-04-08Feltz Printing Service QUALIFIED79Bernardo Dominic
1021Jones VocelkaArgentina2026-04-25Morlong Associates RENEWAL27Ioni Bowcher
1022Jones VocelkaRussia2026-05-01Buckley Miller Wright QUALIFIED65Ivan Magalhaes
1023Sinclair WaycottSpain2026-04-24Dorl, James J Esq QUALIFIED55Xuxue Feng
1024Greenwood BologniaAustralia2026-04-11Commercial Press RENEWAL1Asiya Javayant
1025Julie StensethGermany2026-04-14Benton, John B Jr PROPOSAL85Anna Fali
1026Mayumi KolmetzArgentina2026-04-06Chemel, James L Cpa QUALIFIED70Xuxue Feng
1027Aika InouyeJapan2026-04-20Morlong Associates NEW8Elwin Sharvill
1028Johnson SergiItaly2026-05-01Dorl, James J Esq QUALIFIED58Anna Fali
1029Mayumi KolmetzGermany2026-04-20Chapman, Ross E Esq NEGOTIATION40Stephen Shaw
1030Faith GillianCanada2026-04-23Chemel, James L Cpa UNQUALIFIED37Elwin Sharvill
1031Johnson SergiUnited Kingdom2026-04-15Rousseaux, Michael Esq NEGOTIATION81Xuxue Feng
1032Salvatore StockhamItaly2026-04-12Truhlar And Truhlar Attys UNQUALIFIED31Stephen Shaw
1033Murillo MaletItaly2026-04-08Chapman, Ross E Esq NEGOTIATION48Xuxue Feng
1034Adams MorascaCanada2026-04-26Truhlar And Truhlar Attys QUALIFIED34Amy Elsner
1035Jennifer AmigonSpain2026-05-02King, Christopher A Esq NEGOTIATION34Onyama Limba
1036Julie StensethJapan2026-04-14Rousseaux, Michael Esq NEW21Onyama Limba
1037Julie StensethFrance2026-04-12Printing Dimensions PROPOSAL19Bernardo Dominic
1038David DarakjyArgentina2026-04-07Benton, John B Jr QUALIFIED14Amy Elsner
1039David DarakjyArgentina2026-04-27Feiner Bros QUALIFIED53Onyama Limba
1040Costa DilliardArgentina2026-04-06King, Christopher A Esq NEW76Ivan Magalhaes
1041Leon OldroydRussia2026-05-03King, Christopher A Esq UNQUALIFIED62Elwin Sharvill
1042Adams MorascaUnited Kingdom2026-04-17Truhlar And Truhlar Attys QUALIFIED20Ivan Magalhaes
1043Claire TollnerArgentina2026-04-10Chanay, Jeffrey A Esq NEGOTIATION50Asiya Javayant
1044Clifford RimIndia2026-05-03King, Christopher A Esq QUALIFIED90Asiya Javayant
1045Maria MarrierUnited Kingdom2026-04-07Chanay, Jeffrey A Esq NEW87Onyama Limba
1046Ivar PaprockiArgentina2026-04-21Feltz Printing Service NEGOTIATION8Amy Elsner
1047Aruna FigeroaItaly2026-04-30Benton, John B Jr NEW27Onyama Limba
1048Aditya KuskoJapan2026-05-01Rangoni Of Florence UNQUALIFIED91Bernardo Dominic
1049Darci PoquetteCanada2026-04-16Dorl, James J Esq RENEWAL86Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideSpainAnna Fali RENEWAL
Claire TollnerRussiaIvan Magalhaes NEW
Morrow RutaSpainXuxue Feng UNQUALIFIED
Mujtaba NickaIndiaAsiya Javayant NEW
Aditya KuskoUnited KingdomStephen Shaw NEW
Alejandro PerinRussiaAmy Elsner UNQUALIFIED
Stacey MacleadIndiaXuxue Feng NEGOTIATION
Octavia MaletAustraliaXuxue Feng NEGOTIATION
Munro FerenczJapanStephen Shaw PROPOSAL
Izzy GarufiJapanXuxue Feng UNQUALIFIED
Salvatore StockhamJapanBernardo Dominic RENEWAL
Alejandro PerinItalyElwin Sharvill RENEWAL
Maria MarrierSpainOnyama Limba NEW
Ivar PaprockiGermanyIvan Magalhaes PROPOSAL
Costa DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Ivar PaprockiFranceAsiya Javayant PROPOSAL
Nicolas IturbideFranceAsiya Javayant NEW
Costa DilliardRussiaIoni Bowcher NEW
Francesco ShinkoGermanyBernardo Dominic NEW
Costa DilliardBrazilIoni Bowcher NEW
Mayumi KolmetzGermanyStephen Shaw UNQUALIFIED
Kaitlin OstroskyIndiaOnyama Limba UNQUALIFIED
Jones VocelkaBrazilAnna Fali UNQUALIFIED
Nicolas IturbideIndiaIoni Bowcher UNQUALIFIED
Rodrigues CampainUnited KingdomAsiya Javayant NEGOTIATION
Deepesh ChuiIndiaXuxue Feng NEW
Aika InouyeJapanIoni Bowcher NEW
Deepesh ChuiIndiaOnyama Limba NEGOTIATION
Aditya KuskoCanadaBernardo Dominic PROPOSAL
Clifford RimAustraliaBernardo Dominic PROPOSAL
Kaitlin OstroskyGermanyIoni Bowcher NEW
Rodrigues CampainRussiaOnyama Limba NEW
Kaitlin OstroskyCanadaAnna Fali UNQUALIFIED
Jefferson SchemmerSpainBernardo Dominic NEW
Darci PoquetteGermanyOnyama Limba RENEWAL
Kaitlin OstroskyIndiaStephen Shaw QUALIFIED
Leon OldroydGermanyAmy Elsner PROPOSAL
David DarakjyArgentinaAnna Fali PROPOSAL
Claire TollnerArgentinaXuxue Feng UNQUALIFIED
Izzy GarufiUnited KingdomElwin Sharvill QUALIFIED
Darci PoquetteArgentinaOnyama Limba QUALIFIED
Salvatore StockhamAustraliaIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill NEGOTIATION
Ricardo GauchoRussiaIvan Magalhaes NEW
Chavez BriddickSpainElwin Sharvill PROPOSAL
Johnson SergiAustraliaIoni Bowcher QUALIFIED
Darci PoquetteItalyAsiya Javayant UNQUALIFIED
Stacey MacleadItalyXuxue Feng QUALIFIED
Isabel BowleyAustraliaIvan Magalhaes PROPOSAL
Maisha RulapaughAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Aruna Figeroa
Jeanfrancois Venere
Misaki Royster
Juan Wieser
Faith Gillian
Aditya Kusko
Julie Stenseth
Jennifer Amigon
Chavez Briddick
Jeanfrancois Venere
Arvin Albares
Octavia Malet
Nicolas Iturbide
Cody Saylors
Salvatore Stockham
James Butt
Aditya Kusko
Jeanfrancois Venere
Chavez Briddick
Antonio Caudy
Ivar Paprocki
David Darakjy
Jennifer Amigon
Kadeem Flosi
Wickens Nestle
Faith Gillian
Leja Caldarera
Ricardo Gaucho
Julie Stenseth
Jennifer Amigon
Smith Glick
Mayumi Kolmetz
Emily Whobrey
Faith Gillian
Jennifer Amigon
Faith Gillian
Francesco Shinko
Clifford Rim
Stacey Maclead
David Darakjy
Darci Poquette
Claire Tollner
Francesco Shinko
Arvin Albares
Jennifer Amigon
Murillo Malet
Munro Ferencz
Kadeem Flosi
Chavez Briddick
Chavez Briddick
IdCountryDate
1000Italy2026-04-30
1001Russia2026-04-05
1002Canada2026-04-08
1003United Kingdom2026-04-05
1004India2026-04-30
1005United Kingdom2026-04-14
1006United Kingdom2026-04-19
1007United Kingdom2026-04-13
1008Japan2026-04-04
1009France2026-04-15
1010France2026-04-28
1011Italy2026-04-29
1012Argentina2026-04-29
1013Italy2026-04-06
1014Italy2026-04-21
1015Argentina2026-04-20
1016United Kingdom2026-04-19
1017Brazil2026-04-20
1018Italy2026-04-19
1019Brazil2026-04-17
1020United Kingdom2026-04-10
1021France2026-04-08
1022Argentina2026-05-03
1023Italy2026-04-20
1024Canada2026-05-01
1025Spain2026-04-17
1026Italy2026-04-22
1027India2026-05-02
1028Brazil2026-04-13
1029Russia2026-04-06
1030Spain2026-04-25
1031Australia2026-04-17
1032India2026-04-24
1033France2026-04-28
1034Brazil2026-05-02
1035Argentina2026-04-19
1036Australia2026-04-25
1037United Kingdom2026-04-14
1038Spain2026-05-01
1039Brazil2026-04-22
1040Japan2026-04-14
1041France2026-04-05
1042Argentina2026-04-18
1043Italy2026-04-14
1044Germany2026-04-26
1045Argentina2026-04-28
1046France2026-04-11
1047United Kingdom2026-04-14
1048Japan2026-04-26
1049Canada2026-04-17

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Germany2026-04-21
Maisha Rulapaugh1001India2026-05-01
Sinclair Waycott1002United Kingdom2026-04-15
Arvin Albares1003Australia2026-04-04
Adams Morasca1004Brazil2026-04-30
Ashley Doe1005France2026-05-03
Ricardo Gaucho1006France2026-04-12
Deepesh Chui1007Brazil2026-04-23
Aika Inouye1008Argentina2026-04-25
Aditya Kusko1009Canada2026-05-03
Morrow Ruta1010Canada2026-04-20
Kaitlin Ostrosky1011France2026-04-29
Maria Marrier1012India2026-05-03
Clifford Rim1013Canada2026-05-02
Maria Marrier1014Italy2026-04-29
Emily Whobrey1015Italy2026-04-21
Sinclair Waycott1016Argentina2026-05-03
Ivar Paprocki1017Australia2026-04-26
Arvin Albares1018Japan2026-04-20
Maria Marrier1019Brazil2026-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickAustraliaStephen Shaw NEW
Wickens NestleRussiaStephen Shaw RENEWAL
Wickens NestleUnited KingdomXuxue Feng NEW
Adams MorascaCanadaAnna Fali NEGOTIATION
Alejandro PerinAustraliaBernardo Dominic QUALIFIED
Rodrigues CampainRussiaStephen Shaw PROPOSAL
Octavia MaletItalyAsiya Javayant UNQUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba RENEWAL
David DarakjyFranceStephen Shaw RENEWAL
Mayumi KolmetzAustraliaXuxue Feng RENEWAL
Johnson SergiGermanyXuxue Feng UNQUALIFIED
Wickens NestleIndiaStephen Shaw PROPOSAL
Octavia MaletAustraliaIvan Magalhaes RENEWAL
Rodrigues CampainAustraliaAnna Fali NEGOTIATION
Alejandro PerinIndiaStephen Shaw RENEWAL
Jefferson SchemmerItalyIvan Magalhaes NEW
Kaitlin OstroskyFranceAmy Elsner QUALIFIED
Maria MarrierGermanyAnna Fali NEW
Jones VocelkaIndiaAmy Elsner UNQUALIFIED
Ricardo GauchoCanadaAmy Elsner NEW
Salvatore StockhamCanadaAmy Elsner PROPOSAL
Darci PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow RutaSpainIvan Magalhaes UNQUALIFIED
Stacey MacleadFranceAnna Fali PROPOSAL
Munro FerenczGermanyBernardo Dominic NEGOTIATION
Smith GlickArgentinaStephen Shaw QUALIFIED
Darci PoquetteItalyBernardo Dominic QUALIFIED
David DarakjyFranceIvan Magalhaes PROPOSAL
Arvin AlbaresUnited KingdomAnna Fali QUALIFIED
Costa DilliardArgentinaAnna Fali NEW
Faith GillianArgentinaBernardo Dominic UNQUALIFIED
Kadeem FlosiSpainAnna Fali NEGOTIATION
Leon OldroydUnited KingdomAsiya Javayant NEW
Clifford RimRussiaBernardo Dominic NEGOTIATION
Leon OldroydJapanStephen Shaw RENEWAL
Emily WhobreyItalyStephen Shaw RENEWAL
Leja CaldareraIndiaIvan Magalhaes NEGOTIATION
Juan WieserItalyElwin Sharvill PROPOSAL
Leja CaldareraRussiaAsiya Javayant UNQUALIFIED
Kaitlin OstroskyIndiaXuxue Feng 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>