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
Aika InouyeFranceAmy Elsner UNQUALIFIED
Kaitlin OstroskyIndiaOnyama Limba UNQUALIFIED
Darci PoquetteCanadaIoni Bowcher QUALIFIED
Jeanfrancois VenereGermanyIvan Magalhaes NEW
Alejandro PerinIndiaElwin Sharvill RENEWAL
Tony FollerIndiaAmy Elsner NEW
Faith GillianCanadaIoni Bowcher NEGOTIATION
Adams MorascaUnited KingdomStephen Shaw PROPOSAL
Cody SaylorsUnited KingdomIoni Bowcher NEW
Clifford RimIndiaElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceAsiya Javayant QUALIFIED
Jefferson SchemmerArgentinaAnna Fali RENEWAL
Juan WieserBrazilAmy Elsner UNQUALIFIED
Francesco ShinkoBrazilStephen Shaw NEW
Misaki RoysterGermanyIvan Magalhaes PROPOSAL
Ashley DoeArgentinaXuxue Feng RENEWAL
Tony FollerItalyAnna Fali PROPOSAL
Leon OldroydUnited KingdomXuxue Feng NEGOTIATION
Wickens NestleFranceAnna Fali RENEWAL
Jeanfrancois VenereJapanElwin Sharvill UNQUALIFIED
Leon OldroydFranceAsiya Javayant RENEWAL
Emily WhobreyFranceBernardo Dominic NEW
Chavez BriddickSpainOnyama Limba NEGOTIATION
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Jones VocelkaJapanBernardo Dominic NEGOTIATION
Chavez BriddickBrazilOnyama Limba QUALIFIED
Smith GlickJapanElwin Sharvill QUALIFIED
James ButtGermanyAsiya Javayant QUALIFIED
Morrow RutaFranceAnna Fali RENEWAL
Misaki RoysterFranceStephen Shaw PROPOSAL
Mayumi KolmetzGermanyBernardo Dominic QUALIFIED
Emily WhobreyRussiaAmy Elsner PROPOSAL
James ButtSpainBernardo Dominic NEGOTIATION
Faith GillianGermanyElwin Sharvill NEGOTIATION
Isabel BowleyGermanyAmy Elsner NEW
Claire TollnerIndiaXuxue Feng NEGOTIATION
Greenwood BologniaCanadaStephen Shaw QUALIFIED
Munro FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Stacey MacleadAustraliaAmy Elsner PROPOSAL
Aruna FigeroaAustraliaOnyama Limba RENEWAL
Munro FerenczIndiaAsiya Javayant NEW
Chavez BriddickGermanyStephen Shaw PROPOSAL
Smith GlickRussiaStephen Shaw QUALIFIED
Aditya KuskoCanadaAmy Elsner NEW
Silvio SlusarskiAustraliaAmy Elsner NEGOTIATION
Morrow RutaCanadaElwin Sharvill RENEWAL
Aruna FigeroaBrazilAsiya Javayant RENEWAL
Jones VocelkaUnited KingdomAmy Elsner NEGOTIATION
Nicolas IturbideArgentinaAnna Fali UNQUALIFIED
Nicolas IturbideJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiIndiaBernardo Dominic QUALIFIED
Cody SaylorsCanadaAmy Elsner NEGOTIATION
Claire TollnerSpainIoni Bowcher PROPOSAL
Darci PoquetteFranceOnyama Limba QUALIFIED
Misaki RoysterRussiaAsiya Javayant UNQUALIFIED
Morrow RutaAustraliaOnyama Limba RENEWAL
Clifford RimUnited KingdomBernardo Dominic RENEWAL
Aditya KuskoArgentinaOnyama Limba UNQUALIFIED
Emily WhobreyCanadaOnyama Limba UNQUALIFIED
Jefferson SchemmerJapanStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaJapan2026-05-11Morlong Associates QUALIFIED39Elwin Sharvill
1001Emily WhobreyArgentina2026-04-26Rangoni Of Florence PROPOSAL17Ioni Bowcher
1002Claire TollnerAustralia2026-05-12Printing Dimensions NEW46Ivan Magalhaes
1003David DarakjyAustralia2026-04-27Rangoni Of Florence NEW11Xuxue Feng
1004Claire TollnerArgentina2026-04-29Dorl, James J Esq UNQUALIFIED63Ioni Bowcher
1005Misaki RoysterItaly2026-04-28Chemel, James L Cpa UNQUALIFIED3Asiya Javayant
1006Rodrigues CampainBrazil2026-04-19Chanay, Jeffrey A Esq NEW22Asiya Javayant
1007Wickens NestleRussia2026-04-30Buckley Miller Wright PROPOSAL54Xuxue Feng
1008Smith GlickSpain2026-04-15Feiner Bros PROPOSAL38Asiya Javayant
1009Cody SaylorsItaly2026-04-15Truhlar And Truhlar Attys RENEWAL5Ivan Magalhaes
1010Tony FollerCanada2026-05-09Dorl, James J Esq UNQUALIFIED45Amy Elsner
1011Greenwood BologniaJapan2026-05-02Commercial Press RENEWAL56Amy Elsner
1012Emily WhobreyItaly2026-05-07Chemel, James L Cpa QUALIFIED57Xuxue Feng
1013Izzy GarufiCanada2026-05-03Printing Dimensions RENEWAL34Stephen Shaw
1014James ButtBrazil2026-04-22Commercial Press UNQUALIFIED32Amy Elsner
1015David DarakjyRussia2026-04-27Buckley Miller Wright UNQUALIFIED8Anna Fali
1016Costa DilliardFrance2026-04-18Feiner Bros UNQUALIFIED36Ivan Magalhaes
1017Leon OldroydGermany2026-05-04Printing Dimensions PROPOSAL94Elwin Sharvill
1018Francesco ShinkoIndia2026-04-15Chanay, Jeffrey A Esq PROPOSAL91Xuxue Feng
1019Arvin AlbaresBrazil2026-04-17Dorl, James J Esq NEGOTIATION3Bernardo Dominic
1020Silvio SlusarskiSpain2026-04-26Printing Dimensions NEGOTIATION50Ivan Magalhaes
1021Alejandro PerinFrance2026-04-15Commercial Press PROPOSAL40Amy Elsner
1022Kaitlin OstroskyArgentina2026-04-14Buckley Miller Wright UNQUALIFIED92Asiya Javayant
1023Smith GlickCanada2026-04-25King, Christopher A Esq NEGOTIATION75Xuxue Feng
1024Alejandro PerinBrazil2026-04-29Commercial Press NEGOTIATION66Asiya Javayant
1025Sinclair WaycottFrance2026-04-29Chanay, Jeffrey A Esq UNQUALIFIED60Xuxue Feng
1026Smith GlickRussia2026-04-28Commercial Press NEW20Xuxue Feng
1027Cody SaylorsUnited Kingdom2026-04-18King, Christopher A Esq NEW57Anna Fali
1028Jeanfrancois VenereRussia2026-05-01Buckley Miller Wright NEGOTIATION84Onyama Limba
1029Leon OldroydSpain2026-04-15Chanay, Jeffrey A Esq RENEWAL86Ioni Bowcher
1030Deepesh ChuiAustralia2026-04-21Printing Dimensions NEW61Stephen Shaw
1031Izzy GarufiGermany2026-04-14Feltz Printing Service NEW73Stephen Shaw
1032Kaitlin OstroskyFrance2026-05-02Chemel, James L Cpa PROPOSAL52Stephen Shaw
1033Adams MorascaArgentina2026-04-19Dorl, James J Esq UNQUALIFIED76Ioni Bowcher
1034Jefferson SchemmerGermany2026-04-16Morlong Associates RENEWAL17Ioni Bowcher
1035Kadeem FlosiAustralia2026-05-09King, Christopher A Esq PROPOSAL14Ioni Bowcher
1036Kaitlin OstroskyGermany2026-04-21Truhlar And Truhlar Attys UNQUALIFIED1Onyama Limba
1037Antonio CaudyIndia2026-04-26Chapman, Ross E Esq NEGOTIATION33Amy Elsner
1038Salvatore StockhamCanada2026-04-16King, Christopher A Esq NEGOTIATION69Amy Elsner
1039Jennifer AmigonRussia2026-04-27Buckley Miller Wright NEGOTIATION39Xuxue Feng
1040Clifford RimItaly2026-04-17King, Christopher A Esq PROPOSAL17Elwin Sharvill
1041Morrow RutaBrazil2026-05-01Chapman, Ross E Esq UNQUALIFIED29Ivan Magalhaes
1042Maria MarrierAustralia2026-04-30Dorl, James J Esq NEW54Amy Elsner
1043Misaki RoysterFrance2026-04-28Feiner Bros PROPOSAL36Onyama Limba
1044Aika InouyeJapan2026-05-10Commercial Press QUALIFIED39Amy Elsner
1045Morrow RutaJapan2026-05-09Printing Dimensions NEW95Anna Fali
1046Cody SaylorsUnited Kingdom2026-04-16Benton, John B Jr QUALIFIED42Stephen Shaw
1047Wickens NestleArgentina2026-04-24Rangoni Of Florence NEGOTIATION27Asiya Javayant
1048Jones VocelkaRussia2026-04-19Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1049Jennifer AmigonFrance2026-04-29Feltz Printing Service QUALIFIED77Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydRussiaStephen Shaw NEGOTIATION
Julie StensethFranceXuxue Feng QUALIFIED
Jones VocelkaFranceOnyama Limba UNQUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes RENEWAL
Leon OldroydBrazilOnyama Limba RENEWAL
Misaki RoysterFranceStephen Shaw RENEWAL
Izzy GarufiUnited KingdomOnyama Limba UNQUALIFIED
Jennifer AmigonJapanStephen Shaw QUALIFIED
Emily WhobreyIndiaIoni Bowcher QUALIFIED
Isabel BowleyAustraliaXuxue Feng UNQUALIFIED
Kaitlin OstroskyRussiaXuxue Feng NEGOTIATION
Tony FollerIndiaElwin Sharvill UNQUALIFIED
Clifford RimBrazilStephen Shaw NEGOTIATION
Faith GillianItalyBernardo Dominic RENEWAL
Clifford RimGermanyBernardo Dominic QUALIFIED
Deepesh ChuiAustraliaXuxue Feng NEGOTIATION
Ashley DoeJapanXuxue Feng PROPOSAL
Juan WieserAustraliaAmy Elsner UNQUALIFIED
Julie StensethCanadaBernardo Dominic NEGOTIATION
Faith GillianAustraliaAmy Elsner UNQUALIFIED
Aditya KuskoArgentinaXuxue Feng QUALIFIED
Izzy GarufiItalyAnna Fali PROPOSAL
Arvin AlbaresGermanyOnyama Limba QUALIFIED
Nicolas IturbideIndiaElwin Sharvill NEGOTIATION
Cody SaylorsItalyAsiya Javayant NEW
Darci PoquetteCanadaIoni Bowcher NEGOTIATION
David DarakjyIndiaXuxue Feng UNQUALIFIED
Morrow RutaIndiaAmy Elsner UNQUALIFIED
Juan WieserJapanAnna Fali PROPOSAL
Sinclair WaycottCanadaIoni Bowcher RENEWAL
Arvin AlbaresUnited KingdomAnna Fali RENEWAL
Stacey MacleadJapanXuxue Feng PROPOSAL
Julie StensethArgentinaAsiya Javayant RENEWAL
Smith GlickSpainElwin Sharvill NEGOTIATION
Ricardo GauchoItalyIoni Bowcher NEGOTIATION
Jennifer AmigonItalyIvan Magalhaes QUALIFIED
Rodrigues CampainGermanyStephen Shaw NEGOTIATION
Salvatore StockhamSpainBernardo Dominic QUALIFIED
Chavez BriddickJapanStephen Shaw UNQUALIFIED
Clifford RimJapanAsiya Javayant QUALIFIED
Greenwood BologniaIndiaStephen Shaw QUALIFIED
Juan WieserJapanAmy Elsner PROPOSAL
Isabel BowleyCanadaStephen Shaw NEGOTIATION
James ButtAustraliaOnyama Limba NEW
Julie StensethUnited KingdomAmy Elsner QUALIFIED
Aruna FigeroaFranceAmy Elsner NEW
Stacey MacleadRussiaStephen Shaw NEW
Murillo MaletItalyStephen Shaw PROPOSAL
Claire TollnerCanadaAnna Fali RENEWAL
Arvin AlbaresSpainOnyama Limba UNQUALIFIED
Frozen Columns
Name
Sinclair Waycott
Adams Morasca
Murillo Malet
Arvin Albares
Francesco Shinko
Aruna Figeroa
Ashley Doe
Ashley Doe
Faith Gillian
Salvatore Stockham
Aditya Kusko
Kadeem Flosi
Kadeem Flosi
Emily Whobrey
Kaitlin Ostrosky
Adams Morasca
Sinclair Waycott
Tony Foller
Emily Whobrey
Costa Dilliard
Mujtaba Nicka
Mujtaba Nicka
Julie Stenseth
Kaitlin Ostrosky
Tony Foller
Nicolas Iturbide
Chavez Briddick
Murillo Malet
Darci Poquette
Kaitlin Ostrosky
Alejandro Perin
Leon Oldroyd
Stacey Maclead
Jeanfrancois Venere
Clifford Rim
Emily Whobrey
Silvio Slusarski
Faith Gillian
Wickens Nestle
Leja Caldarera
Emily Whobrey
Kaitlin Ostrosky
Chavez Briddick
Cody Saylors
Alejandro Perin
Aika Inouye
Sinclair Waycott
Costa Dilliard
Kadeem Flosi
Julie Stenseth
IdCountryDate
1000France2026-04-14
1001India2026-05-10
1002India2026-05-07
1003Australia2026-05-09
1004Australia2026-04-15
1005Australia2026-05-08
1006India2026-04-23
1007Russia2026-04-30
1008Italy2026-04-26
1009Argentina2026-05-10
1010Russia2026-04-25
1011Russia2026-04-25
1012Japan2026-04-13
1013Italy2026-04-15
1014Russia2026-05-10
1015France2026-04-27
1016France2026-05-09
1017France2026-04-24
1018Brazil2026-04-28
1019Argentina2026-04-19
1020Russia2026-04-23
1021Argentina2026-04-24
1022Japan2026-04-24
1023Brazil2026-04-13
1024India2026-05-05
1025United Kingdom2026-04-30
1026Japan2026-05-10
1027France2026-04-20
1028United Kingdom2026-04-19
1029Australia2026-04-14
1030United Kingdom2026-04-24
1031Russia2026-05-07
1032Australia2026-04-19
1033Japan2026-04-19
1034Russia2026-04-28
1035Canada2026-05-04
1036France2026-04-18
1037India2026-04-16
1038France2026-04-15
1039India2026-04-14
1040Japan2026-05-07
1041Argentina2026-04-28
1042Italy2026-05-08
1043Australia2026-04-13
1044France2026-04-29
1045France2026-05-11
1046Spain2026-05-04
1047Australia2026-04-22
1048Canada2026-05-07
1049Russia2026-05-07

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Germany2026-04-23
Antonio Caudy1001United Kingdom2026-05-06
Sinclair Waycott1002Spain2026-05-07
Leon Oldroyd1003Australia2026-04-25
James Butt1004Australia2026-05-09
Stacey Maclead1005Canada2026-04-30
Sinclair Waycott1006United Kingdom2026-04-19
Deepesh Chui1007Italy2026-04-25
Munro Ferencz1008Russia2026-04-21
Francesco Shinko1009India2026-05-07
Stacey Maclead1010Italy2026-04-15
Mujtaba Nicka1011Italy2026-05-06
Leja Caldarera1012Argentina2026-05-07
Octavia Malet1013Italy2026-04-14
Maisha Rulapaugh1014United Kingdom2026-04-27
Leon Oldroyd1015Australia2026-05-06
Murillo Malet1016United Kingdom2026-04-22
Adams Morasca1017Argentina2026-04-15
Ricardo Gaucho1018Germany2026-04-19
Izzy Garufi1019India2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams MorascaCanadaAsiya Javayant NEW
Maisha RulapaughAustraliaAmy Elsner PROPOSAL
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Julie StensethBrazilAsiya Javayant NEW
Salvatore StockhamArgentinaIoni Bowcher NEW
Ricardo GauchoArgentinaBernardo Dominic UNQUALIFIED
Antonio CaudyCanadaBernardo Dominic NEGOTIATION
Deepesh ChuiSpainAnna Fali UNQUALIFIED
Ashley DoeAustraliaStephen Shaw PROPOSAL
Murillo MaletGermanyBernardo Dominic RENEWAL
Morrow RutaCanadaBernardo Dominic QUALIFIED
Mayumi KolmetzIndiaOnyama Limba PROPOSAL
Jefferson SchemmerJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiJapanIvan Magalhaes NEW
Aruna FigeroaBrazilElwin Sharvill QUALIFIED
Isabel BowleyArgentinaAmy Elsner QUALIFIED
Johnson SergiBrazilIvan Magalhaes NEGOTIATION
Morrow RutaBrazilXuxue Feng UNQUALIFIED
Rodrigues CampainArgentinaXuxue Feng PROPOSAL
David DarakjyArgentinaStephen Shaw NEW
Silvio SlusarskiAustraliaAmy Elsner NEW
Mayumi KolmetzJapanXuxue Feng NEGOTIATION
Adams MorascaGermanyElwin Sharvill PROPOSAL
Alejandro PerinRussiaAmy Elsner NEW
Faith GillianJapanAsiya Javayant PROPOSAL
Julie StensethGermanyStephen Shaw RENEWAL
Clifford RimJapanAmy Elsner RENEWAL
Nicolas IturbideCanadaAsiya Javayant PROPOSAL
Julie StensethUnited KingdomAnna Fali PROPOSAL
Smith GlickItalyStephen Shaw QUALIFIED
Aruna FigeroaSpainIvan Magalhaes NEGOTIATION
Jones VocelkaIndiaIoni Bowcher NEGOTIATION
Leon OldroydIndiaAnna Fali QUALIFIED
Tony FollerCanadaBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaIoni Bowcher PROPOSAL
Chavez BriddickIndiaAmy Elsner RENEWAL
Izzy GarufiJapanAnna Fali UNQUALIFIED
Tony FollerCanadaElwin Sharvill NEW
Kaitlin OstroskyRussiaOnyama Limba PROPOSAL
Salvatore StockhamUnited KingdomAmy Elsner 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>