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
Munro FerenczRussiaStephen Shaw NEGOTIATION
Isabel BowleyJapanBernardo Dominic PROPOSAL
Maisha RulapaughRussiaElwin Sharvill PROPOSAL
Ashley DoeBrazilAnna Fali UNQUALIFIED
Aika InouyeCanadaAsiya Javayant UNQUALIFIED
Deepesh ChuiAustraliaOnyama Limba PROPOSAL
Misaki RoysterBrazilOnyama Limba NEGOTIATION
Clifford RimUnited KingdomXuxue Feng RENEWAL
Wickens NestleCanadaAsiya Javayant UNQUALIFIED
Aika InouyeGermanyAsiya Javayant NEGOTIATION
Kadeem FlosiFranceAnna Fali NEGOTIATION
Leon OldroydRussiaAnna Fali QUALIFIED
Ashley DoeItalyBernardo Dominic UNQUALIFIED
Leja CaldareraIndiaAsiya Javayant NEGOTIATION
Deepesh ChuiSpainIvan Magalhaes NEW
David DarakjyItalyOnyama Limba UNQUALIFIED
Kadeem FlosiAustraliaAsiya Javayant RENEWAL
Johnson SergiGermanyAmy Elsner NEGOTIATION
Ricardo GauchoItalyIvan Magalhaes PROPOSAL
Jennifer AmigonItalyElwin Sharvill UNQUALIFIED
Mujtaba NickaBrazilElwin Sharvill RENEWAL
Maisha RulapaughFranceStephen Shaw RENEWAL
Mujtaba NickaArgentinaStephen Shaw NEGOTIATION
Ashley DoeCanadaOnyama Limba NEGOTIATION
Munro FerenczCanadaAnna Fali QUALIFIED
Julie StensethAustraliaIvan Magalhaes QUALIFIED
Clifford RimGermanyXuxue Feng UNQUALIFIED
Leon OldroydFranceAnna Fali RENEWAL
Jeanfrancois VenereSpainBernardo Dominic RENEWAL
James ButtArgentinaAnna Fali QUALIFIED
Emily WhobreyAustraliaBernardo Dominic UNQUALIFIED
Aruna FigeroaJapanAmy Elsner NEGOTIATION
Mujtaba NickaItalyAmy Elsner RENEWAL
Jennifer AmigonBrazilBernardo Dominic RENEWAL
Tony FollerFranceAsiya Javayant NEGOTIATION
Costa DilliardBrazilAnna Fali UNQUALIFIED
Jefferson SchemmerFranceBernardo Dominic QUALIFIED
Ricardo GauchoCanadaAsiya Javayant RENEWAL
Clifford RimAustraliaElwin Sharvill RENEWAL
Mujtaba NickaArgentinaIoni Bowcher UNQUALIFIED
Aditya KuskoSpainBernardo Dominic QUALIFIED
Leja CaldareraJapanXuxue Feng QUALIFIED
Salvatore StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Faith GillianFranceIvan Magalhaes QUALIFIED
Ashley DoeRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereGermanyElwin Sharvill NEGOTIATION
Francesco ShinkoFranceElwin Sharvill QUALIFIED
Murillo MaletItalyBernardo Dominic RENEWAL
Isabel BowleyUnited KingdomElwin Sharvill NEW
Greenwood BologniaRussiaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiUnited KingdomElwin Sharvill NEW
Maisha RulapaughCanadaAnna Fali PROPOSAL
Greenwood BologniaJapanBernardo Dominic UNQUALIFIED
Deepesh ChuiRussiaAsiya Javayant RENEWAL
Munro FerenczFranceIvan Magalhaes PROPOSAL
Wickens NestleFranceStephen Shaw QUALIFIED
Sinclair WaycottSpainIoni Bowcher PROPOSAL
Octavia MaletRussiaXuxue Feng PROPOSAL
Wickens NestleFranceElwin Sharvill RENEWAL
Jeanfrancois VenereRussiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethUnited Kingdom2025-10-12Benton, John B Jr NEW96Elwin Sharvill
1001Arvin AlbaresGermany2025-09-19Buckley Miller Wright RENEWAL85Anna Fali
1002Arvin AlbaresRussia2025-09-25Chapman, Ross E Esq UNQUALIFIED64Asiya Javayant
1003Emily WhobreyRussia2025-10-01Dorl, James J Esq NEGOTIATION52Ioni Bowcher
1004Nicolas IturbideArgentina2025-09-23Truhlar And Truhlar Attys NEGOTIATION36Ivan Magalhaes
1005Greenwood BologniaSpain2025-09-28Morlong Associates PROPOSAL42Onyama Limba
1006Deepesh ChuiAustralia2025-10-13Buckley Miller Wright RENEWAL39Asiya Javayant
1007Stacey MacleadIndia2025-09-27Benton, John B Jr NEW25Stephen Shaw
1008Aika InouyeIndia2025-09-21King, Christopher A Esq RENEWAL98Ivan Magalhaes
1009Cody SaylorsSpain2025-10-02Printing Dimensions NEGOTIATION39Ioni Bowcher
1010Misaki RoysterRussia2025-10-05Feltz Printing Service UNQUALIFIED30Onyama Limba
1011Izzy GarufiSpain2025-09-21Morlong Associates PROPOSAL28Stephen Shaw
1012Leon OldroydAustralia2025-09-22Buckley Miller Wright NEGOTIATION97Onyama Limba
1013Mujtaba NickaGermany2025-09-30Rangoni Of Florence UNQUALIFIED77Amy Elsner
1014Clifford RimGermany2025-09-28Printing Dimensions UNQUALIFIED3Anna Fali
1015Costa DilliardRussia2025-10-08Buckley Miller Wright PROPOSAL54Asiya Javayant
1016Mujtaba NickaFrance2025-10-08Rousseaux, Michael Esq QUALIFIED88Ioni Bowcher
1017Misaki RoysterRussia2025-09-18Feiner Bros QUALIFIED16Amy Elsner
1018Cody SaylorsCanada2025-10-07Feltz Printing Service NEGOTIATION91Stephen Shaw
1019Salvatore StockhamArgentina2025-09-22Morlong Associates NEW34Anna Fali
1020Juan WieserJapan2025-09-22Commercial Press NEW49Stephen Shaw
1021Leja CaldareraBrazil2025-10-06Benton, John B Jr NEGOTIATION49Amy Elsner
1022Misaki RoysterGermany2025-09-28King, Christopher A Esq PROPOSAL78Onyama Limba
1023Clifford RimArgentina2025-10-09Morlong Associates UNQUALIFIED72Stephen Shaw
1024Mujtaba NickaIndia2025-10-11Chanay, Jeffrey A Esq RENEWAL72Onyama Limba
1025Arvin AlbaresIndia2025-10-05Commercial Press QUALIFIED53Onyama Limba
1026Kaitlin OstroskyBrazil2025-09-26Morlong Associates UNQUALIFIED14Asiya Javayant
1027Kadeem FlosiGermany2025-09-15Dorl, James J Esq NEW6Elwin Sharvill
1028Aika InouyeUnited Kingdom2025-09-24Rousseaux, Michael Esq QUALIFIED9Bernardo Dominic
1029Stacey MacleadArgentina2025-09-25Feltz Printing Service RENEWAL40Onyama Limba
1030Wickens NestleUnited Kingdom2025-10-10Rangoni Of Florence NEGOTIATION26Ioni Bowcher
1031Stacey MacleadGermany2025-10-10Benton, John B Jr RENEWAL21Amy Elsner
1032Adams MorascaCanada2025-10-04Morlong Associates RENEWAL59Bernardo Dominic
1033Clifford RimSpain2025-10-01Truhlar And Truhlar Attys RENEWAL8Asiya Javayant
1034Nicolas IturbideFrance2025-09-24Printing Dimensions NEGOTIATION51Anna Fali
1035Alejandro PerinBrazil2025-09-14Chapman, Ross E Esq RENEWAL47Anna Fali
1036Wickens NestleSpain2025-09-21Benton, John B Jr PROPOSAL85Stephen Shaw
1037Rodrigues CampainUnited Kingdom2025-09-16Feltz Printing Service UNQUALIFIED27Bernardo Dominic
1038Juan WieserItaly2025-10-06Rousseaux, Michael Esq RENEWAL75Stephen Shaw
1039Kadeem FlosiCanada2025-09-16Commercial Press UNQUALIFIED78Xuxue Feng
1040David DarakjyItaly2025-09-19King, Christopher A Esq QUALIFIED16Asiya Javayant
1041Nicolas IturbideArgentina2025-09-20Morlong Associates QUALIFIED20Elwin Sharvill
1042Aruna FigeroaUnited Kingdom2025-10-03Morlong Associates UNQUALIFIED54Amy Elsner
1043Johnson SergiAustralia2025-10-04Chemel, James L Cpa NEGOTIATION2Elwin Sharvill
1044Cody SaylorsSpain2025-09-26Morlong Associates RENEWAL58Amy Elsner
1045Jeanfrancois VenereAustralia2025-09-19Commercial Press NEGOTIATION66Anna Fali
1046Clifford RimArgentina2025-09-15Commercial Press PROPOSAL8Ioni Bowcher
1047Misaki RoysterJapan2025-10-08Chemel, James L Cpa QUALIFIED92Amy Elsner
1048Misaki RoysterCanada2025-09-20Chanay, Jeffrey A Esq PROPOSAL30Ivan Magalhaes
1049Chavez BriddickUnited Kingdom2025-10-12Chemel, James L Cpa PROPOSAL80Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyGermanyElwin Sharvill QUALIFIED
Smith GlickCanadaOnyama Limba NEW
Mujtaba NickaIndiaBernardo Dominic QUALIFIED
Leon OldroydCanadaIoni Bowcher UNQUALIFIED
Julie StensethBrazilElwin Sharvill PROPOSAL
Izzy GarufiCanadaAnna Fali NEW
Tony FollerSpainStephen Shaw QUALIFIED
Darci PoquetteRussiaStephen Shaw NEGOTIATION
Morrow RutaJapanIoni Bowcher NEGOTIATION
Mujtaba NickaJapanBernardo Dominic QUALIFIED
Greenwood BologniaFranceAsiya Javayant PROPOSAL
Munro FerenczArgentinaXuxue Feng NEW
Greenwood BologniaIndiaAmy Elsner NEW
Kadeem FlosiSpainIoni Bowcher UNQUALIFIED
Greenwood BologniaAustraliaBernardo Dominic NEW
Cody SaylorsCanadaAmy Elsner PROPOSAL
Faith GillianSpainBernardo Dominic NEGOTIATION
Tony FollerItalyStephen Shaw NEW
Silvio SlusarskiAustraliaBernardo Dominic UNQUALIFIED
Morrow RutaJapanAnna Fali RENEWAL
Deepesh ChuiBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoAustraliaAmy Elsner RENEWAL
Alejandro PerinAustraliaAnna Fali UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Salvatore StockhamUnited KingdomXuxue Feng RENEWAL
Arvin AlbaresJapanOnyama Limba PROPOSAL
Costa DilliardRussiaXuxue Feng NEW
Antonio CaudyJapanAnna Fali PROPOSAL
Jefferson SchemmerAustraliaStephen Shaw UNQUALIFIED
Aika InouyeBrazilOnyama Limba QUALIFIED
Greenwood BologniaGermanyXuxue Feng UNQUALIFIED
Rodrigues CampainSpainElwin Sharvill UNQUALIFIED
Murillo MaletGermanyIoni Bowcher RENEWAL
Cody SaylorsIndiaAsiya Javayant RENEWAL
Kaitlin OstroskyFranceBernardo Dominic UNQUALIFIED
Izzy GarufiGermanyXuxue Feng QUALIFIED
Salvatore StockhamArgentinaAnna Fali RENEWAL
Jefferson SchemmerCanadaAmy Elsner RENEWAL
Aika InouyeArgentinaAsiya Javayant NEGOTIATION
Silvio SlusarskiCanadaAnna Fali QUALIFIED
Maria MarrierGermanyIvan Magalhaes UNQUALIFIED
Faith GillianArgentinaIvan Magalhaes RENEWAL
Misaki RoysterBrazilAnna Fali PROPOSAL
Mujtaba NickaGermanyOnyama Limba RENEWAL
James ButtFranceIvan Magalhaes QUALIFIED
Rodrigues CampainItalyBernardo Dominic PROPOSAL
Faith GillianIndiaAnna Fali NEGOTIATION
Darci PoquetteFranceElwin Sharvill PROPOSAL
Ashley DoeSpainStephen Shaw NEW
Juan WieserAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
Rodrigues Campain
Francesco Shinko
Clifford Rim
Aruna Figeroa
Leon Oldroyd
Aruna Figeroa
Chavez Briddick
Johnson Sergi
Juan Wieser
Arvin Albares
Chavez Briddick
Aditya Kusko
Leon Oldroyd
Aika Inouye
Octavia Malet
Claire Tollner
Adams Morasca
Aditya Kusko
Jennifer Amigon
Isabel Bowley
Kaitlin Ostrosky
Aditya Kusko
Stacey Maclead
Izzy Garufi
Greenwood Bolognia
Juan Wieser
Mayumi Kolmetz
Ashley Doe
Darci Poquette
Jones Vocelka
Smith Glick
Mujtaba Nicka
Sinclair Waycott
Izzy Garufi
Aruna Figeroa
Maria Marrier
Emily Whobrey
Adams Morasca
Misaki Royster
Tony Foller
Julie Stenseth
Jefferson Schemmer
Deepesh Chui
Tony Foller
Faith Gillian
Julie Stenseth
Munro Ferencz
Adams Morasca
Maria Marrier
James Butt
IdCountryDate
1000Brazil2025-10-01
1001India2025-10-03
1002Spain2025-09-25
1003India2025-09-19
1004France2025-10-12
1005France2025-10-05
1006Germany2025-09-23
1007United Kingdom2025-09-29
1008Brazil2025-09-23
1009Australia2025-10-12
1010Germany2025-09-18
1011Italy2025-10-10
1012Japan2025-10-10
1013Russia2025-10-13
1014France2025-10-12
1015United Kingdom2025-10-08
1016Canada2025-09-21
1017Australia2025-10-09
1018Argentina2025-10-05
1019Canada2025-09-27
1020Japan2025-10-09
1021Japan2025-09-22
1022Japan2025-09-19
1023Australia2025-09-23
1024Italy2025-10-05
1025Argentina2025-09-19
1026France2025-10-05
1027Japan2025-10-03
1028Russia2025-09-14
1029India2025-10-12
1030Russia2025-10-11
1031Japan2025-10-02
1032France2025-09-17
1033Brazil2025-10-02
1034Russia2025-10-13
1035Spain2025-10-04
1036Brazil2025-10-11
1037India2025-10-02
1038Canada2025-10-02
1039Canada2025-10-12
1040Russia2025-09-30
1041Canada2025-10-11
1042Italy2025-10-09
1043Russia2025-10-07
1044Russia2025-09-27
1045Spain2025-09-27
1046Germany2025-10-09
1047India2025-10-07
1048Italy2025-09-27
1049Spain2025-09-20

On-Demand Data

NameIdCountryDate
Isabel Bowley1000Brazil2025-10-03
Francesco Shinko1001Brazil2025-10-09
Emily Whobrey1002Italy2025-10-06
Rodrigues Campain1003India2025-09-22
Ashley Doe1004United Kingdom2025-10-10
Deepesh Chui1005Australia2025-09-20
Leja Caldarera1006United Kingdom2025-10-06
Deepesh Chui1007Japan2025-09-27
Munro Ferencz1008France2025-09-16
Kadeem Flosi1009Italy2025-09-19
Mujtaba Nicka1010Argentina2025-09-29
Arvin Albares1011Argentina2025-09-21
Izzy Garufi1012Australia2025-10-02
Emily Whobrey1013France2025-10-12
Munro Ferencz1014Japan2025-09-16
Sinclair Waycott1015Spain2025-10-06
Kaitlin Ostrosky1016United Kingdom2025-09-26
Arvin Albares1017Canada2025-09-26
David Darakjy1018Italy2025-09-28
Mayumi Kolmetz1019Australia2025-10-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardAustraliaElwin Sharvill RENEWAL
Juan WieserAustraliaIoni Bowcher PROPOSAL
Aditya KuskoCanadaXuxue Feng NEW
Julie StensethIndiaOnyama Limba QUALIFIED
Ivar PaprockiGermanyOnyama Limba NEW
Isabel BowleyCanadaStephen Shaw QUALIFIED
Adams MorascaArgentinaElwin Sharvill QUALIFIED
Maria MarrierGermanyStephen Shaw QUALIFIED
Maria MarrierSpainAmy Elsner UNQUALIFIED
Aruna FigeroaGermanyOnyama Limba QUALIFIED
Clifford RimAustraliaIoni Bowcher PROPOSAL
Rodrigues CampainSpainIoni Bowcher NEGOTIATION
Cody SaylorsArgentinaAmy Elsner NEW
Juan WieserIndiaAnna Fali PROPOSAL
Aruna FigeroaAustraliaAmy Elsner NEW
Sinclair WaycottArgentinaElwin Sharvill NEGOTIATION
Leon OldroydIndiaAmy Elsner NEW
Nicolas IturbideFranceStephen Shaw UNQUALIFIED
Jones VocelkaItalyElwin Sharvill PROPOSAL
Leon OldroydJapanIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyRussiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiBrazilXuxue Feng UNQUALIFIED
Deepesh ChuiGermanyXuxue Feng QUALIFIED
Ashley DoeBrazilBernardo Dominic NEW
Cody SaylorsFranceAmy Elsner RENEWAL
Leja CaldareraUnited KingdomAmy Elsner NEGOTIATION
Claire TollnerJapanOnyama Limba RENEWAL
Claire TollnerAustraliaElwin Sharvill RENEWAL
Kaitlin OstroskyFranceOnyama Limba PROPOSAL
Jennifer AmigonArgentinaBernardo Dominic PROPOSAL
Morrow RutaCanadaStephen Shaw NEW
Johnson SergiGermanyOnyama Limba NEGOTIATION
Claire TollnerBrazilXuxue Feng NEW
Aditya KuskoGermanyBernardo Dominic NEW
Ashley DoeRussiaElwin Sharvill RENEWAL
Jefferson SchemmerCanadaAsiya Javayant UNQUALIFIED
Maria MarrierJapanOnyama Limba NEGOTIATION
Misaki RoysterCanadaElwin Sharvill PROPOSAL
Smith GlickBrazilIvan Magalhaes PROPOSAL
Juan WieserFranceAnna Fali PROPOSAL

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