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
Ricardo GauchoAustraliaStephen Shaw QUALIFIED
Misaki RoysterBrazilBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilIoni Bowcher QUALIFIED
Jeanfrancois VenereUnited KingdomOnyama Limba NEW
Adams MorascaItalyIvan Magalhaes PROPOSAL
Clifford RimIndiaIvan Magalhaes PROPOSAL
Sinclair WaycottBrazilIoni Bowcher PROPOSAL
Leja CaldareraCanadaStephen Shaw NEW
Leon OldroydRussiaStephen Shaw UNQUALIFIED
Aika InouyeSpainAmy Elsner NEW
Maisha RulapaughCanadaXuxue Feng NEW
Chavez BriddickAustraliaIvan Magalhaes UNQUALIFIED
Maria MarrierFranceIvan Magalhaes RENEWAL
Leon OldroydAustraliaAnna Fali NEW
Johnson SergiIndiaIvan Magalhaes RENEWAL
Jennifer AmigonCanadaStephen Shaw NEW
Munro FerenczRussiaOnyama Limba NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill NEW
Costa DilliardGermanyStephen Shaw NEW
Adams MorascaAustraliaXuxue Feng PROPOSAL
Kaitlin OstroskyRussiaAmy Elsner PROPOSAL
Ashley DoeBrazilIvan Magalhaes NEGOTIATION
Stacey MacleadGermanyBernardo Dominic UNQUALIFIED
Aika InouyeJapanIvan Magalhaes PROPOSAL
Misaki RoysterJapanIoni Bowcher RENEWAL
Tony FollerItalyIoni Bowcher UNQUALIFIED
Jones VocelkaJapanAsiya Javayant NEGOTIATION
Octavia MaletUnited KingdomBernardo Dominic NEW
Sinclair WaycottArgentinaIvan Magalhaes UNQUALIFIED
Ivar PaprockiGermanyBernardo Dominic NEGOTIATION
Munro FerenczCanadaXuxue Feng NEGOTIATION
Jefferson SchemmerCanadaStephen Shaw RENEWAL
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Claire TollnerAustraliaAmy Elsner QUALIFIED
Silvio SlusarskiSpainStephen Shaw NEGOTIATION
Misaki RoysterAustraliaAsiya Javayant PROPOSAL
Mayumi KolmetzBrazilAmy Elsner QUALIFIED
Chavez BriddickUnited KingdomXuxue Feng PROPOSAL
Tony FollerFranceOnyama Limba NEGOTIATION
Johnson SergiIndiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiArgentinaAnna Fali RENEWAL
Maisha RulapaughItalyElwin Sharvill QUALIFIED
Tony FollerArgentinaOnyama Limba QUALIFIED
Aika InouyeJapanAmy Elsner NEGOTIATION
Emily WhobreyJapanOnyama Limba NEGOTIATION
Aditya KuskoGermanyOnyama Limba UNQUALIFIED
Costa DilliardArgentinaAnna Fali QUALIFIED
Ashley DoeIndiaOnyama Limba NEGOTIATION
Salvatore StockhamBrazilAmy Elsner QUALIFIED
Arvin AlbaresItalyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow RutaAustraliaIvan Magalhaes QUALIFIED
Maria MarrierCanadaAsiya Javayant NEGOTIATION
Juan WieserFranceAnna Fali NEGOTIATION
Morrow RutaCanadaAsiya Javayant RENEWAL
Alejandro PerinUnited KingdomStephen Shaw QUALIFIED
David DarakjyJapanXuxue Feng NEGOTIATION
Francesco ShinkoItalyAmy Elsner RENEWAL
Smith GlickBrazilStephen Shaw UNQUALIFIED
Isabel BowleyArgentinaIvan Magalhaes PROPOSAL
Nicolas IturbideGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianUnited Kingdom2026-04-30Commercial Press NEGOTIATION80Stephen Shaw
1001Mayumi KolmetzItaly2026-04-26Buckley Miller Wright NEGOTIATION84Ioni Bowcher
1002Leon OldroydIndia2026-05-11Commercial Press QUALIFIED6Bernardo Dominic
1003Leja CaldareraUnited Kingdom2026-05-02Morlong Associates QUALIFIED23Stephen Shaw
1004Smith GlickRussia2026-04-27Feltz Printing Service RENEWAL88Onyama Limba
1005Greenwood BologniaGermany2026-05-09Chemel, James L Cpa RENEWAL16Amy Elsner
1006Leja CaldareraAustralia2026-05-11Benton, John B Jr QUALIFIED95Bernardo Dominic
1007Nicolas IturbideCanada2026-04-19Truhlar And Truhlar Attys NEGOTIATION37Ivan Magalhaes
1008Kadeem FlosiArgentina2026-04-20Rangoni Of Florence PROPOSAL25Ivan Magalhaes
1009David DarakjyFrance2026-05-02Commercial Press RENEWAL54Bernardo Dominic
1010Izzy GarufiRussia2026-05-03Benton, John B Jr QUALIFIED87Anna Fali
1011Jones VocelkaBrazil2026-04-23King, Christopher A Esq RENEWAL77Bernardo Dominic
1012Jones VocelkaItaly2026-04-22Printing Dimensions PROPOSAL46Elwin Sharvill
1013Murillo MaletIndia2026-04-24Rangoni Of Florence UNQUALIFIED97Stephen Shaw
1014Salvatore StockhamUnited Kingdom2026-04-17Feltz Printing Service PROPOSAL9Amy Elsner
1015Maisha RulapaughArgentina2026-04-23Buckley Miller Wright NEGOTIATION53Ivan Magalhaes
1016Emily WhobreyFrance2026-04-23Feiner Bros QUALIFIED77Ioni Bowcher
1017Stacey MacleadGermany2026-04-23Dorl, James J Esq NEW91Ivan Magalhaes
1018Tony FollerFrance2026-05-03Commercial Press NEW66Amy Elsner
1019Mayumi KolmetzCanada2026-04-27Chapman, Ross E Esq UNQUALIFIED50Amy Elsner
1020Ivar PaprockiArgentina2026-05-02Morlong Associates NEGOTIATION48Onyama Limba
1021Leon OldroydItaly2026-04-25Feltz Printing Service QUALIFIED8Amy Elsner
1022Smith GlickAustralia2026-05-13Feltz Printing Service PROPOSAL10Bernardo Dominic
1023Izzy GarufiGermany2026-05-07Truhlar And Truhlar Attys PROPOSAL21Elwin Sharvill
1024Juan WieserSpain2026-05-03Morlong Associates PROPOSAL52Ioni Bowcher
1025Misaki RoysterArgentina2026-05-08Chanay, Jeffrey A Esq NEW61Bernardo Dominic
1026Jennifer AmigonAustralia2026-05-12Truhlar And Truhlar Attys UNQUALIFIED80Ivan Magalhaes
1027Cody SaylorsAustralia2026-05-10Feiner Bros QUALIFIED81Onyama Limba
1028Antonio CaudyRussia2026-04-25Truhlar And Truhlar Attys PROPOSAL97Stephen Shaw
1029Jones VocelkaUnited Kingdom2026-04-15Buckley Miller Wright NEW37Ioni Bowcher
1030Chavez BriddickBrazil2026-04-20Benton, John B Jr NEW8Asiya Javayant
1031Smith GlickCanada2026-04-28Chanay, Jeffrey A Esq QUALIFIED76Asiya Javayant
1032Salvatore StockhamArgentina2026-05-08Chemel, James L Cpa NEGOTIATION38Anna Fali
1033Emily WhobreyRussia2026-05-05Feltz Printing Service PROPOSAL29Amy Elsner
1034Izzy GarufiItaly2026-04-26Chemel, James L Cpa NEW90Stephen Shaw
1035Juan WieserSpain2026-04-28Printing Dimensions UNQUALIFIED76Asiya Javayant
1036Mayumi KolmetzCanada2026-04-28Rousseaux, Michael Esq QUALIFIED1Asiya Javayant
1037Octavia MaletUnited Kingdom2026-05-11King, Christopher A Esq NEW50Elwin Sharvill
1038Maria MarrierArgentina2026-04-22Benton, John B Jr NEW17Xuxue Feng
1039Murillo MaletItaly2026-04-22Dorl, James J Esq QUALIFIED33Anna Fali
1040Aruna FigeroaIndia2026-05-13Benton, John B Jr PROPOSAL82Xuxue Feng
1041James ButtSpain2026-05-06Buckley Miller Wright NEW95Bernardo Dominic
1042Antonio CaudyGermany2026-05-01Rousseaux, Michael Esq NEW4Amy Elsner
1043Maria MarrierGermany2026-04-29King, Christopher A Esq NEW27Xuxue Feng
1044Deepesh ChuiSpain2026-04-24Benton, John B Jr UNQUALIFIED84Anna Fali
1045Costa DilliardUnited Kingdom2026-04-14Feiner Bros NEGOTIATION32Anna Fali
1046Izzy GarufiJapan2026-05-02Chemel, James L Cpa NEW14Asiya Javayant
1047Octavia MaletGermany2026-05-04Printing Dimensions RENEWAL12Stephen Shaw
1048Aika InouyeJapan2026-05-02Feltz Printing Service UNQUALIFIED76Elwin Sharvill
1049Mujtaba NickaJapan2026-05-06King, Christopher A Esq NEGOTIATION89Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterGermanyIoni Bowcher QUALIFIED
Darci PoquetteRussiaIvan Magalhaes RENEWAL
Jennifer AmigonFranceIoni Bowcher PROPOSAL
Aika InouyeAustraliaIoni Bowcher UNQUALIFIED
Antonio CaudyAustraliaAmy Elsner NEW
David DarakjyJapanStephen Shaw NEW
Izzy GarufiUnited KingdomStephen Shaw NEGOTIATION
Faith GillianCanadaIoni Bowcher PROPOSAL
Kaitlin OstroskyAustraliaAsiya Javayant RENEWAL
Jennifer AmigonIndiaOnyama Limba QUALIFIED
Stacey MacleadSpainXuxue Feng RENEWAL
Ricardo GauchoItalyIvan Magalhaes NEW
Leja CaldareraItalyOnyama Limba QUALIFIED
Tony FollerBrazilAmy Elsner UNQUALIFIED
Julie StensethSpainIoni Bowcher NEGOTIATION
Salvatore StockhamBrazilIoni Bowcher UNQUALIFIED
Silvio SlusarskiBrazilOnyama Limba NEGOTIATION
Arvin AlbaresJapanIoni Bowcher RENEWAL
Antonio CaudyAustraliaStephen Shaw NEW
Juan WieserRussiaElwin Sharvill RENEWAL
Rodrigues CampainArgentinaElwin Sharvill RENEWAL
Leon OldroydArgentinaAnna Fali UNQUALIFIED
Wickens NestleJapanIoni Bowcher NEGOTIATION
Silvio SlusarskiBrazilElwin Sharvill NEGOTIATION
Maria MarrierItalyAnna Fali PROPOSAL
Maisha RulapaughUnited KingdomOnyama Limba PROPOSAL
Morrow RutaItalyOnyama Limba NEW
Jefferson SchemmerUnited KingdomBernardo Dominic PROPOSAL
Octavia MaletJapanStephen Shaw QUALIFIED
Nicolas IturbideAustraliaAnna Fali RENEWAL
Leja CaldareraFranceXuxue Feng UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner PROPOSAL
Emily WhobreyArgentinaStephen Shaw QUALIFIED
Greenwood BologniaBrazilAsiya Javayant RENEWAL
Alejandro PerinJapanAmy Elsner NEGOTIATION
Darci PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Smith GlickFranceAnna Fali RENEWAL
Juan WieserBrazilElwin Sharvill RENEWAL
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois VenereUnited KingdomAsiya Javayant QUALIFIED
Adams MorascaItalyElwin Sharvill PROPOSAL
Munro FerenczIndiaOnyama Limba NEW
Jennifer AmigonIndiaAsiya Javayant UNQUALIFIED
Morrow RutaItalyAnna Fali UNQUALIFIED
Rodrigues CampainUnited KingdomOnyama Limba QUALIFIED
Leon OldroydCanadaElwin Sharvill NEGOTIATION
Izzy GarufiBrazilIoni Bowcher UNQUALIFIED
Smith GlickArgentinaXuxue Feng RENEWAL
Rodrigues CampainFranceIoni Bowcher QUALIFIED
Cody SaylorsItalyAnna Fali RENEWAL
Frozen Columns
Name
Ashley Doe
Salvatore Stockham
Emily Whobrey
Johnson Sergi
Tony Foller
Chavez Briddick
Octavia Malet
Mujtaba Nicka
Tony Foller
Kadeem Flosi
Maria Marrier
Wickens Nestle
Chavez Briddick
James Butt
Antonio Caudy
Ricardo Gaucho
Silvio Slusarski
Julie Stenseth
Aruna Figeroa
Alejandro Perin
Mayumi Kolmetz
Silvio Slusarski
Sinclair Waycott
Greenwood Bolognia
Juan Wieser
Antonio Caudy
Deepesh Chui
Chavez Briddick
Jennifer Amigon
Ivar Paprocki
Darci Poquette
Ashley Doe
Leon Oldroyd
Clifford Rim
Wickens Nestle
Silvio Slusarski
Stacey Maclead
David Darakjy
Misaki Royster
Isabel Bowley
Aika Inouye
Costa Dilliard
Darci Poquette
Isabel Bowley
Wickens Nestle
Jeanfrancois Venere
Cody Saylors
Greenwood Bolognia
Adams Morasca
Clifford Rim
IdCountryDate
1000Argentina2026-05-03
1001Brazil2026-04-15
1002France2026-04-15
1003Italy2026-04-24
1004Russia2026-04-19
1005Canada2026-04-25
1006Italy2026-04-30
1007Canada2026-04-24
1008Germany2026-05-06
1009Brazil2026-04-14
1010Australia2026-04-26
1011Canada2026-04-22
1012United Kingdom2026-05-06
1013Russia2026-04-16
1014Germany2026-04-27
1015Italy2026-04-16
1016Australia2026-05-01
1017France2026-04-24
1018Italy2026-05-06
1019Japan2026-04-21
1020Russia2026-05-02
1021Russia2026-04-24
1022Italy2026-05-04
1023France2026-04-17
1024Australia2026-05-04
1025Australia2026-04-23
1026Germany2026-04-19
1027Japan2026-04-25
1028Japan2026-04-28
1029France2026-05-05
1030United Kingdom2026-04-29
1031Spain2026-05-07
1032Russia2026-04-28
1033India2026-04-19
1034Brazil2026-05-03
1035United Kingdom2026-04-15
1036Japan2026-04-19
1037France2026-04-14
1038Argentina2026-04-26
1039Australia2026-05-12
1040Australia2026-05-08
1041Russia2026-05-05
1042Argentina2026-04-22
1043Germany2026-05-10
1044India2026-04-16
1045Canada2026-04-16
1046Italy2026-04-19
1047Brazil2026-04-24
1048United Kingdom2026-04-20
1049Japan2026-04-29

On-Demand Data

NameIdCountryDate
Misaki Royster1000Germany2026-04-23
Salvatore Stockham1001Italy2026-04-18
Isabel Bowley1002France2026-04-22
Maria Marrier1003Argentina2026-04-16
Maisha Rulapaugh1004Italy2026-04-24
Munro Ferencz1005Russia2026-05-03
Mujtaba Nicka1006India2026-05-08
Munro Ferencz1007Japan2026-05-12
Claire Tollner1008Canada2026-05-06
Antonio Caudy1009Japan2026-04-18
Murillo Malet1010India2026-05-08
Wickens Nestle1011France2026-04-16
Octavia Malet1012Italy2026-04-27
Misaki Royster1013Argentina2026-04-23
Nicolas Iturbide1014Brazil2026-05-13
James Butt1015Argentina2026-04-15
Salvatore Stockham1016Canada2026-05-13
Darci Poquette1017Brazil2026-04-14
David Darakjy1018Russia2026-04-30
Tony Foller1019Japan2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon OldroydSpainElwin Sharvill RENEWAL
Isabel BowleyRussiaElwin Sharvill UNQUALIFIED
James ButtJapanAmy Elsner RENEWAL
Costa DilliardCanadaAnna Fali NEGOTIATION
Smith GlickGermanyXuxue Feng QUALIFIED
Wickens NestleBrazilAmy Elsner NEW
Stacey MacleadSpainStephen Shaw NEW
Jennifer AmigonBrazilIoni Bowcher UNQUALIFIED
Nicolas IturbideJapanXuxue Feng RENEWAL
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
Darci PoquetteJapanOnyama Limba UNQUALIFIED
Greenwood BologniaBrazilAnna Fali QUALIFIED
Mujtaba NickaJapanAsiya Javayant UNQUALIFIED
Francesco ShinkoJapanAsiya Javayant NEW
Aika InouyeJapanAnna Fali QUALIFIED
Kaitlin OstroskyItalyAnna Fali NEGOTIATION
Mayumi KolmetzIndiaElwin Sharvill NEGOTIATION
Darci PoquetteItalyXuxue Feng RENEWAL
Clifford RimSpainAsiya Javayant NEW
Jennifer AmigonBrazilIoni Bowcher RENEWAL
Morrow RutaFranceOnyama Limba PROPOSAL
Julie StensethUnited KingdomStephen Shaw QUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng NEW
Kadeem FlosiBrazilAnna Fali NEGOTIATION
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Antonio CaudyJapanAnna Fali QUALIFIED
Deepesh ChuiItalyBernardo Dominic NEGOTIATION
Jefferson SchemmerRussiaAnna Fali QUALIFIED
Darci PoquetteIndiaAsiya Javayant QUALIFIED
Maisha RulapaughCanadaElwin Sharvill QUALIFIED
Stacey MacleadSpainXuxue Feng RENEWAL
Juan WieserCanadaStephen Shaw UNQUALIFIED
Munro FerenczUnited KingdomStephen Shaw UNQUALIFIED
Leon OldroydRussiaStephen Shaw PROPOSAL
Rodrigues CampainBrazilIoni Bowcher PROPOSAL
Morrow RutaJapanOnyama Limba NEW
Aditya KuskoJapanAsiya Javayant UNQUALIFIED
Maisha RulapaughSpainAsiya Javayant NEW
Aditya KuskoFranceAmy Elsner QUALIFIED
Emily WhobreyArgentinaAsiya Javayant 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>