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
Johnson SergiCanadaIoni Bowcher UNQUALIFIED
Salvatore StockhamUnited KingdomAsiya Javayant NEW
Jeanfrancois VenereArgentinaXuxue Feng RENEWAL
Emily WhobreyRussiaIvan Magalhaes RENEWAL
Mujtaba NickaItalyElwin Sharvill RENEWAL
Juan WieserJapanStephen Shaw NEW
Tony FollerCanadaAmy Elsner UNQUALIFIED
Francesco ShinkoGermanyAsiya Javayant NEGOTIATION
Costa DilliardCanadaStephen Shaw NEGOTIATION
Silvio SlusarskiFranceAnna Fali NEGOTIATION
Aika InouyeJapanIvan Magalhaes RENEWAL
Sinclair WaycottSpainXuxue Feng UNQUALIFIED
Murillo MaletBrazilElwin Sharvill QUALIFIED
Ricardo GauchoItalyElwin Sharvill PROPOSAL
Misaki RoysterIndiaStephen Shaw NEGOTIATION
Deepesh ChuiCanadaBernardo Dominic QUALIFIED
Octavia MaletGermanyAnna Fali NEGOTIATION
Jefferson SchemmerCanadaStephen Shaw QUALIFIED
Chavez BriddickAustraliaAmy Elsner PROPOSAL
Costa DilliardIndiaElwin Sharvill RENEWAL
Stacey MacleadJapanAmy Elsner RENEWAL
Murillo MaletItalyAsiya Javayant NEGOTIATION
Ricardo GauchoBrazilStephen Shaw QUALIFIED
Silvio SlusarskiJapanIoni Bowcher UNQUALIFIED
Maisha RulapaughGermanyElwin Sharvill NEGOTIATION
Emily WhobreyFranceAmy Elsner PROPOSAL
Izzy GarufiRussiaOnyama Limba QUALIFIED
Octavia MaletItalyAmy Elsner NEGOTIATION
Wickens NestleAustraliaAsiya Javayant NEGOTIATION
Leja CaldareraRussiaElwin Sharvill NEGOTIATION
Misaki RoysterRussiaBernardo Dominic NEGOTIATION
Ashley DoeIndiaStephen Shaw RENEWAL
Ashley DoeRussiaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerGermanyStephen Shaw UNQUALIFIED
Costa DilliardFranceOnyama Limba NEW
Alejandro PerinUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba NickaJapanAmy Elsner QUALIFIED
Aika InouyeCanadaOnyama Limba RENEWAL
Izzy GarufiItalyStephen Shaw PROPOSAL
Julie StensethItalyOnyama Limba PROPOSAL
Antonio CaudyRussiaOnyama Limba UNQUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic NEW
Aika InouyeFranceIvan Magalhaes RENEWAL
Izzy GarufiBrazilOnyama Limba QUALIFIED
Wickens NestleAustraliaIoni Bowcher RENEWAL
Kaitlin OstroskyIndiaAsiya Javayant RENEWAL
Jennifer AmigonJapanStephen Shaw NEW
Faith GillianIndiaOnyama Limba PROPOSAL
Costa DilliardArgentinaBernardo Dominic UNQUALIFIED
Jones VocelkaUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
David DarakjyCanadaAmy Elsner PROPOSAL
Jennifer AmigonAustraliaBernardo Dominic PROPOSAL
Maria MarrierAustraliaBernardo Dominic PROPOSAL
Tony FollerItalyAsiya Javayant PROPOSAL
Isabel BowleyBrazilAmy Elsner PROPOSAL
Stacey MacleadUnited KingdomXuxue Feng NEW
Smith GlickCanadaAnna Fali RENEWAL
James ButtCanadaXuxue Feng UNQUALIFIED
Smith GlickJapanElwin Sharvill NEW
Salvatore StockhamFranceIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaCanada2026-05-10Rangoni Of Florence QUALIFIED65Anna Fali
1001David DarakjyIndia2026-05-05Feltz Printing Service NEW55Onyama Limba
1002Julie StensethBrazil2026-04-27Printing Dimensions NEGOTIATION45Stephen Shaw
1003Arvin AlbaresRussia2026-04-28Dorl, James J Esq QUALIFIED96Ivan Magalhaes
1004Aruna FigeroaAustralia2026-04-23Buckley Miller Wright NEW67Ioni Bowcher
1005Adams MorascaRussia2026-05-04Chapman, Ross E Esq NEW89Ioni Bowcher
1006Jeanfrancois VenereAustralia2026-05-10Morlong Associates QUALIFIED32Ivan Magalhaes
1007Jeanfrancois VenereItaly2026-04-30Benton, John B Jr NEW22Onyama Limba
1008Morrow RutaCanada2026-05-09Chemel, James L Cpa RENEWAL14Onyama Limba
1009Aditya KuskoUnited Kingdom2026-05-03Feltz Printing Service NEGOTIATION14Bernardo Dominic
1010David DarakjyBrazil2026-04-25Buckley Miller Wright RENEWAL72Onyama Limba
1011Jennifer AmigonBrazil2026-04-27Rangoni Of Florence UNQUALIFIED27Onyama Limba
1012Isabel BowleyArgentina2026-05-10Commercial Press RENEWAL74Stephen Shaw
1013Arvin AlbaresIndia2026-04-16King, Christopher A Esq NEGOTIATION1Bernardo Dominic
1014Cody SaylorsBrazil2026-04-14Benton, John B Jr UNQUALIFIED24Onyama Limba
1015Munro FerenczItaly2026-05-09Dorl, James J Esq UNQUALIFIED58Amy Elsner
1016Darci PoquetteFrance2026-04-21King, Christopher A Esq NEGOTIATION80Amy Elsner
1017Aditya KuskoAustralia2026-04-29Commercial Press UNQUALIFIED85Amy Elsner
1018Nicolas IturbideArgentina2026-05-01Chanay, Jeffrey A Esq PROPOSAL68Asiya Javayant
1019Smith GlickIndia2026-04-12Benton, John B Jr UNQUALIFIED5Ioni Bowcher
1020Kaitlin OstroskyArgentina2026-04-26Chapman, Ross E Esq UNQUALIFIED37Onyama Limba
1021Murillo MaletItaly2026-05-05Truhlar And Truhlar Attys PROPOSAL86Ivan Magalhaes
1022Ashley DoeJapan2026-04-20Benton, John B Jr NEGOTIATION48Onyama Limba
1023Leon OldroydGermany2026-05-02Morlong Associates QUALIFIED95Onyama Limba
1024Costa DilliardCanada2026-04-29Commercial Press NEW61Asiya Javayant
1025Aruna FigeroaFrance2026-04-19Truhlar And Truhlar Attys RENEWAL10Bernardo Dominic
1026Tony FollerGermany2026-05-06Feiner Bros RENEWAL88Stephen Shaw
1027Maria MarrierItaly2026-04-27Commercial Press PROPOSAL98Ivan Magalhaes
1028Tony FollerJapan2026-04-12Commercial Press NEGOTIATION4Asiya Javayant
1029Maria MarrierIndia2026-05-11Printing Dimensions PROPOSAL16Bernardo Dominic
1030Faith GillianBrazil2026-05-06Chemel, James L Cpa UNQUALIFIED37Onyama Limba
1031Wickens NestleIndia2026-04-14Chemel, James L Cpa NEW59Stephen Shaw
1032Kaitlin OstroskyGermany2026-04-17Chanay, Jeffrey A Esq NEGOTIATION12Onyama Limba
1033Claire TollnerRussia2026-04-24Feiner Bros PROPOSAL89Onyama Limba
1034Jennifer AmigonArgentina2026-04-15Truhlar And Truhlar Attys PROPOSAL6Amy Elsner
1035Aditya KuskoRussia2026-05-03Feltz Printing Service RENEWAL91Anna Fali
1036Aditya KuskoRussia2026-05-10Chapman, Ross E Esq NEW56Anna Fali
1037Faith GillianCanada2026-05-10Morlong Associates RENEWAL91Asiya Javayant
1038Misaki RoysterArgentina2026-04-30Truhlar And Truhlar Attys RENEWAL43Ioni Bowcher
1039Juan WieserFrance2026-04-21Rangoni Of Florence UNQUALIFIED72Elwin Sharvill
1040Silvio SlusarskiCanada2026-04-23Chanay, Jeffrey A Esq PROPOSAL19Onyama Limba
1041Izzy GarufiUnited Kingdom2026-04-27Rousseaux, Michael Esq RENEWAL81Xuxue Feng
1042Jeanfrancois VenereArgentina2026-05-03Truhlar And Truhlar Attys NEW61Anna Fali
1043Silvio SlusarskiCanada2026-04-15Feltz Printing Service RENEWAL35Asiya Javayant
1044Munro FerenczFrance2026-04-24Chemel, James L Cpa NEGOTIATION85Anna Fali
1045Rodrigues CampainAustralia2026-04-28King, Christopher A Esq QUALIFIED65Ioni Bowcher
1046Ashley DoeSpain2026-05-01Chapman, Ross E Esq NEW59Anna Fali
1047Greenwood BologniaIndia2026-05-03Truhlar And Truhlar Attys UNQUALIFIED33Ioni Bowcher
1048Julie StensethUnited Kingdom2026-04-29Rousseaux, Michael Esq RENEWAL63Amy Elsner
1049Misaki RoysterSpain2026-04-29Buckley Miller Wright QUALIFIED94Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserFranceAmy Elsner QUALIFIED
Leja CaldareraUnited KingdomStephen Shaw QUALIFIED
Clifford RimAustraliaStephen Shaw RENEWAL
Jeanfrancois VenereItalyIoni Bowcher QUALIFIED
Clifford RimCanadaElwin Sharvill QUALIFIED
Kadeem FlosiRussiaXuxue Feng QUALIFIED
Jeanfrancois VenereAustraliaStephen Shaw QUALIFIED
Rodrigues CampainAustraliaAnna Fali NEGOTIATION
Johnson SergiAustraliaXuxue Feng NEW
Deepesh ChuiSpainIoni Bowcher RENEWAL
Alejandro PerinBrazilAnna Fali RENEWAL
Deepesh ChuiSpainElwin Sharvill QUALIFIED
Leja CaldareraRussiaAsiya Javayant QUALIFIED
Leja CaldareraAustraliaStephen Shaw UNQUALIFIED
Mayumi KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Smith GlickAustraliaStephen Shaw UNQUALIFIED
Chavez BriddickFranceOnyama Limba RENEWAL
Leon OldroydRussiaIoni Bowcher NEGOTIATION
Kadeem FlosiArgentinaAmy Elsner QUALIFIED
James ButtBrazilStephen Shaw QUALIFIED
Alejandro PerinRussiaOnyama Limba PROPOSAL
Murillo MaletBrazilOnyama Limba PROPOSAL
Aruna FigeroaUnited KingdomAsiya Javayant NEW
Antonio CaudyBrazilElwin Sharvill PROPOSAL
Jeanfrancois VenereItalyBernardo Dominic UNQUALIFIED
Misaki RoysterAustraliaXuxue Feng QUALIFIED
Aruna FigeroaArgentinaStephen Shaw RENEWAL
Murillo MaletRussiaOnyama Limba NEGOTIATION
Maria MarrierArgentinaAmy Elsner UNQUALIFIED
Greenwood BologniaArgentinaIvan Magalhaes NEW
Ricardo GauchoIndiaXuxue Feng PROPOSAL
Jennifer AmigonBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaSpainOnyama Limba NEGOTIATION
Rodrigues CampainItalyAmy Elsner QUALIFIED
Alejandro PerinIndiaIoni Bowcher QUALIFIED
Jennifer AmigonBrazilIvan Magalhaes RENEWAL
Claire TollnerJapanIvan Magalhaes UNQUALIFIED
James ButtJapanAmy Elsner QUALIFIED
Misaki RoysterGermanyIoni Bowcher QUALIFIED
Emily WhobreyItalyXuxue Feng PROPOSAL
Greenwood BologniaUnited KingdomOnyama Limba QUALIFIED
Ashley DoeGermanyAnna Fali RENEWAL
Emily WhobreyBrazilIoni Bowcher QUALIFIED
Antonio CaudyJapanAmy Elsner NEW
Mujtaba NickaCanadaElwin Sharvill UNQUALIFIED
Smith GlickFranceOnyama Limba RENEWAL
Salvatore StockhamJapanIvan Magalhaes UNQUALIFIED
Faith GillianJapanElwin Sharvill QUALIFIED
Misaki RoysterIndiaXuxue Feng NEGOTIATION
Isabel BowleyIndiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Octavia Malet
Mujtaba Nicka
Leja Caldarera
Salvatore Stockham
Jeanfrancois Venere
Salvatore Stockham
Murillo Malet
Smith Glick
David Darakjy
Wickens Nestle
Smith Glick
Jeanfrancois Venere
Emily Whobrey
Jefferson Schemmer
Faith Gillian
Aditya Kusko
Kadeem Flosi
Munro Ferencz
Juan Wieser
Julie Stenseth
Claire Tollner
Misaki Royster
Tony Foller
Jeanfrancois Venere
Julie Stenseth
Sinclair Waycott
Clifford Rim
Cody Saylors
Mujtaba Nicka
Leja Caldarera
Alejandro Perin
Kadeem Flosi
Jefferson Schemmer
Greenwood Bolognia
Munro Ferencz
Misaki Royster
Johnson Sergi
Octavia Malet
Emily Whobrey
Munro Ferencz
Ashley Doe
Aditya Kusko
Arvin Albares
James Butt
Jennifer Amigon
Silvio Slusarski
Jefferson Schemmer
Adams Morasca
Ivar Paprocki
Isabel Bowley
IdCountryDate
1000Russia2026-04-24
1001Spain2026-04-21
1002Canada2026-05-01
1003Germany2026-04-28
1004Brazil2026-04-12
1005France2026-05-10
1006Russia2026-04-22
1007Brazil2026-04-24
1008Brazil2026-04-19
1009India2026-05-07
1010Canada2026-05-10
1011France2026-04-18
1012Canada2026-04-12
1013Argentina2026-04-14
1014Japan2026-04-17
1015Brazil2026-05-09
1016United Kingdom2026-04-30
1017Canada2026-04-20
1018United Kingdom2026-04-18
1019Australia2026-05-09
1020India2026-05-08
1021Canada2026-04-27
1022Australia2026-05-11
1023Russia2026-04-22
1024India2026-05-06
1025Spain2026-04-19
1026Russia2026-04-23
1027Russia2026-04-19
1028France2026-04-28
1029India2026-04-23
1030Argentina2026-04-24
1031Russia2026-05-03
1032Italy2026-05-08
1033Brazil2026-04-17
1034Spain2026-04-23
1035United Kingdom2026-05-11
1036United Kingdom2026-04-22
1037France2026-04-23
1038Japan2026-04-21
1039Spain2026-04-15
1040Italy2026-04-30
1041United Kingdom2026-05-02
1042Italy2026-04-12
1043Italy2026-05-07
1044India2026-05-08
1045Australia2026-05-08
1046Brazil2026-04-29
1047United Kingdom2026-04-20
1048Canada2026-04-29
1049Argentina2026-04-12

On-Demand Data

NameIdCountryDate
Ivar Paprocki1000Argentina2026-05-02
Octavia Malet1001Japan2026-04-16
Isabel Bowley1002Spain2026-04-26
Costa Dilliard1003Australia2026-04-24
Munro Ferencz1004Australia2026-04-19
Aika Inouye1005Canada2026-05-07
Antonio Caudy1006Italy2026-04-25
Izzy Garufi1007Germany2026-04-26
Jefferson Schemmer1008United Kingdom2026-04-27
Ricardo Gaucho1009Japan2026-05-05
Kadeem Flosi1010United Kingdom2026-04-17
Mujtaba Nicka1011Germany2026-05-03
Faith Gillian1012Italy2026-05-02
Wickens Nestle1013France2026-05-09
Jefferson Schemmer1014Japan2026-04-18
Aika Inouye1015India2026-04-23
Murillo Malet1016Japan2026-04-22
Misaki Royster1017Germany2026-04-18
Cody Saylors1018Australia2026-05-11
David Darakjy1019Italy2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro FerenczArgentinaAnna Fali NEGOTIATION
Izzy GarufiRussiaOnyama Limba PROPOSAL
Kadeem FlosiAustraliaOnyama Limba NEGOTIATION
Morrow RutaBrazilIoni Bowcher NEGOTIATION
David DarakjyArgentinaBernardo Dominic PROPOSAL
Juan WieserGermanyAnna Fali RENEWAL
Emily WhobreyCanadaElwin Sharvill NEGOTIATION
Faith GillianCanadaOnyama Limba NEGOTIATION
Francesco ShinkoRussiaAmy Elsner UNQUALIFIED
Izzy GarufiFranceAsiya Javayant RENEWAL
Faith GillianJapanXuxue Feng NEW
David DarakjyJapanAnna Fali NEW
Morrow RutaFranceAsiya Javayant NEW
Cody SaylorsUnited KingdomIoni Bowcher PROPOSAL
Tony FollerFranceAnna Fali NEW
Maisha RulapaughFranceAmy Elsner NEW
Salvatore StockhamCanadaOnyama Limba PROPOSAL
Deepesh ChuiArgentinaStephen Shaw QUALIFIED
Kaitlin OstroskyJapanAsiya Javayant UNQUALIFIED
Misaki RoysterRussiaXuxue Feng QUALIFIED
Antonio CaudyJapanXuxue Feng PROPOSAL
Leja CaldareraJapanAsiya Javayant RENEWAL
Salvatore StockhamUnited KingdomAmy Elsner RENEWAL
Jones VocelkaIndiaElwin Sharvill NEW
Jefferson SchemmerItalyElwin Sharvill UNQUALIFIED
Johnson SergiCanadaOnyama Limba PROPOSAL
Rodrigues CampainGermanyXuxue Feng NEW
Sinclair WaycottSpainBernardo Dominic NEW
Cody SaylorsFranceXuxue Feng RENEWAL
Leon OldroydGermanyElwin Sharvill PROPOSAL
Alejandro PerinBrazilIoni Bowcher NEGOTIATION
Ivar PaprockiBrazilAnna Fali NEW
Jones VocelkaIndiaBernardo Dominic NEW
Arvin AlbaresItalyAnna Fali NEGOTIATION
Smith GlickItalyStephen Shaw QUALIFIED
Ivar PaprockiGermanyBernardo Dominic PROPOSAL
Arvin AlbaresBrazilXuxue Feng RENEWAL
Arvin AlbaresGermanyAmy Elsner RENEWAL
Isabel BowleyFranceXuxue Feng PROPOSAL
James ButtItalyXuxue Feng 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>