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
Izzy GarufiGermanyAsiya Javayant QUALIFIED
Izzy GarufiBrazilIoni Bowcher QUALIFIED
Faith GillianRussiaAnna Fali RENEWAL
Johnson SergiArgentinaAnna Fali QUALIFIED
Tony FollerSpainStephen Shaw NEW
Greenwood BologniaFranceAsiya Javayant PROPOSAL
Antonio CaudyIndiaStephen Shaw NEW
Morrow RutaSpainOnyama Limba NEW
Aika InouyeJapanIvan Magalhaes PROPOSAL
Greenwood BologniaFranceStephen Shaw PROPOSAL
Silvio SlusarskiArgentinaXuxue Feng NEW
Mujtaba NickaGermanyStephen Shaw PROPOSAL
Aika InouyeFranceOnyama Limba NEGOTIATION
Sinclair WaycottGermanyAnna Fali RENEWAL
Tony FollerItalyAnna Fali NEGOTIATION
Leja CaldareraGermanyIoni Bowcher NEW
Sinclair WaycottArgentinaIvan Magalhaes UNQUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic NEW
Leon OldroydFranceIvan Magalhaes QUALIFIED
Sinclair WaycottIndiaAnna Fali NEW
Jennifer AmigonArgentinaXuxue Feng NEW
Tony FollerItalyElwin Sharvill QUALIFIED
Alejandro PerinIndiaElwin Sharvill RENEWAL
Johnson SergiGermanyStephen Shaw QUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng PROPOSAL
Aditya KuskoSpainIvan Magalhaes NEGOTIATION
Adams MorascaGermanyIvan Magalhaes NEGOTIATION
Chavez BriddickAustraliaAmy Elsner RENEWAL
Adams MorascaJapanAnna Fali PROPOSAL
Rodrigues CampainRussiaBernardo Dominic QUALIFIED
Ashley DoeIndiaIoni Bowcher QUALIFIED
Stacey MacleadIndiaIoni Bowcher RENEWAL
Izzy GarufiBrazilStephen Shaw QUALIFIED
David DarakjySpainOnyama Limba NEGOTIATION
Adams MorascaFranceElwin Sharvill NEGOTIATION
Clifford RimBrazilXuxue Feng NEGOTIATION
Maria MarrierCanadaAmy Elsner NEGOTIATION
Kadeem FlosiFranceBernardo Dominic PROPOSAL
David DarakjySpainAsiya Javayant QUALIFIED
Antonio CaudyItalyBernardo Dominic QUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes RENEWAL
Arvin AlbaresCanadaElwin Sharvill QUALIFIED
Francesco ShinkoAustraliaAsiya Javayant PROPOSAL
Jennifer AmigonSpainIvan Magalhaes NEGOTIATION
Ashley DoeItalyAmy Elsner NEW
Ricardo GauchoSpainOnyama Limba RENEWAL
James ButtJapanIoni Bowcher QUALIFIED
Kadeem FlosiItalyStephen Shaw NEW
Jones VocelkaRussiaXuxue Feng RENEWAL
Nicolas IturbideAustraliaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
David DarakjyUnited KingdomOnyama Limba NEW
Greenwood BologniaBrazilBernardo Dominic UNQUALIFIED
Julie StensethSpainOnyama Limba RENEWAL
Jefferson SchemmerUnited KingdomAnna Fali RENEWAL
Aika InouyeRussiaAnna Fali RENEWAL
Kaitlin OstroskyRussiaOnyama Limba NEGOTIATION
Francesco ShinkoGermanyAnna Fali NEW
Isabel BowleySpainXuxue Feng NEGOTIATION
Juan WieserItalyXuxue Feng RENEWAL
Tony FollerFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughRussia2026-06-12Truhlar And Truhlar Attys NEW19Elwin Sharvill
1001Jennifer AmigonBrazil2026-05-22Feltz Printing Service QUALIFIED18Ivan Magalhaes
1002Aruna FigeroaAustralia2026-05-30Chanay, Jeffrey A Esq PROPOSAL67Ivan Magalhaes
1003Johnson SergiUnited Kingdom2026-05-19Benton, John B Jr RENEWAL42Stephen Shaw
1004Mujtaba NickaSpain2026-05-26Truhlar And Truhlar Attys NEGOTIATION47Ioni Bowcher
1005Aika InouyeFrance2026-05-28Chapman, Ross E Esq QUALIFIED98Anna Fali
1006Jeanfrancois VenereArgentina2026-06-02Feltz Printing Service RENEWAL5Anna Fali
1007Morrow RutaItaly2026-05-26Truhlar And Truhlar Attys UNQUALIFIED68Ivan Magalhaes
1008Mayumi KolmetzJapan2026-06-13Dorl, James J Esq RENEWAL13Bernardo Dominic
1009Aruna FigeroaGermany2026-05-21Chemel, James L Cpa NEGOTIATION85Ioni Bowcher
1010Aditya KuskoAustralia2026-05-30Morlong Associates NEW52Stephen Shaw
1011Munro FerenczIndia2026-06-10King, Christopher A Esq RENEWAL13Ivan Magalhaes
1012Deepesh ChuiIndia2026-06-06Chapman, Ross E Esq PROPOSAL8Xuxue Feng
1013Murillo MaletGermany2026-05-23Chapman, Ross E Esq NEGOTIATION72Ivan Magalhaes
1014James ButtSpain2026-05-18Morlong Associates RENEWAL44Anna Fali
1015Munro FerenczArgentina2026-06-08Buckley Miller Wright PROPOSAL32Anna Fali
1016Tony FollerGermany2026-06-12Commercial Press RENEWAL94Elwin Sharvill
1017Maisha RulapaughAustralia2026-05-30Rousseaux, Michael Esq RENEWAL24Ioni Bowcher
1018Jefferson SchemmerIndia2026-06-05Chapman, Ross E Esq NEW24Amy Elsner
1019Aruna FigeroaArgentina2026-05-28Printing Dimensions QUALIFIED90Amy Elsner
1020Izzy GarufiCanada2026-06-06Rangoni Of Florence RENEWAL41Asiya Javayant
1021Francesco ShinkoJapan2026-06-06Benton, John B Jr NEGOTIATION51Amy Elsner
1022Alejandro PerinCanada2026-06-11Chemel, James L Cpa QUALIFIED76Ioni Bowcher
1023Izzy GarufiRussia2026-05-28Dorl, James J Esq UNQUALIFIED64Onyama Limba
1024Smith GlickUnited Kingdom2026-06-12Feltz Printing Service RENEWAL59Elwin Sharvill
1025Rodrigues CampainUnited Kingdom2026-06-05Chemel, James L Cpa PROPOSAL19Stephen Shaw
1026Costa DilliardBrazil2026-06-14Dorl, James J Esq PROPOSAL59Onyama Limba
1027Chavez BriddickArgentina2026-05-22Chemel, James L Cpa NEGOTIATION77Onyama Limba
1028Jennifer AmigonBrazil2026-06-01Chemel, James L Cpa RENEWAL98Onyama Limba
1029Salvatore StockhamBrazil2026-05-26Chemel, James L Cpa RENEWAL72Anna Fali
1030Kadeem FlosiUnited Kingdom2026-06-15King, Christopher A Esq UNQUALIFIED29Ioni Bowcher
1031Ivar PaprockiArgentina2026-05-29Feltz Printing Service NEGOTIATION54Ivan Magalhaes
1032Clifford RimIndia2026-05-23Chapman, Ross E Esq RENEWAL99Anna Fali
1033Smith GlickRussia2026-06-02Rangoni Of Florence RENEWAL51Elwin Sharvill
1034Adams MorascaItaly2026-05-31Feltz Printing Service QUALIFIED7Bernardo Dominic
1035Rodrigues CampainSpain2026-06-01Printing Dimensions RENEWAL39Bernardo Dominic
1036Munro FerenczAustralia2026-05-24Chanay, Jeffrey A Esq RENEWAL52Onyama Limba
1037Kaitlin OstroskyArgentina2026-05-23Buckley Miller Wright RENEWAL39Elwin Sharvill
1038Kaitlin OstroskyGermany2026-06-02Chanay, Jeffrey A Esq QUALIFIED97Asiya Javayant
1039Mayumi KolmetzItaly2026-06-14Truhlar And Truhlar Attys UNQUALIFIED88Stephen Shaw
1040Jones VocelkaGermany2026-05-23Rangoni Of Florence UNQUALIFIED47Bernardo Dominic
1041Mujtaba NickaCanada2026-05-24Benton, John B Jr RENEWAL73Anna Fali
1042Claire TollnerCanada2026-06-09Feltz Printing Service NEW57Bernardo Dominic
1043Smith GlickSpain2026-05-19Benton, John B Jr PROPOSAL14Xuxue Feng
1044Murillo MaletAustralia2026-05-28Rangoni Of Florence NEGOTIATION42Amy Elsner
1045Aika InouyeRussia2026-05-19Feiner Bros PROPOSAL24Anna Fali
1046Silvio SlusarskiArgentina2026-06-10Truhlar And Truhlar Attys QUALIFIED71Elwin Sharvill
1047Julie StensethArgentina2026-06-01Chanay, Jeffrey A Esq QUALIFIED43Elwin Sharvill
1048Adams MorascaFrance2026-05-24Buckley Miller Wright NEW65Amy Elsner
1049Morrow RutaAustralia2026-06-03Truhlar And Truhlar Attys RENEWAL51Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletRussiaOnyama Limba RENEWAL
Johnson SergiGermanyBernardo Dominic QUALIFIED
Greenwood BologniaCanadaElwin Sharvill QUALIFIED
Jeanfrancois VenereAustraliaXuxue Feng PROPOSAL
Stacey MacleadFranceIoni Bowcher PROPOSAL
Jennifer AmigonArgentinaBernardo Dominic RENEWAL
Leja CaldareraFranceOnyama Limba NEW
Munro FerenczJapanXuxue Feng PROPOSAL
Wickens NestleJapanBernardo Dominic PROPOSAL
Salvatore StockhamAustraliaBernardo Dominic NEW
Aruna FigeroaSpainIvan Magalhaes RENEWAL
Ashley DoeCanadaStephen Shaw RENEWAL
Jefferson SchemmerArgentinaOnyama Limba UNQUALIFIED
Cody SaylorsGermanyElwin Sharvill NEGOTIATION
Salvatore StockhamBrazilElwin Sharvill PROPOSAL
Maria MarrierRussiaOnyama Limba RENEWAL
Ivar PaprockiIndiaAsiya Javayant PROPOSAL
Aruna FigeroaIndiaAmy Elsner PROPOSAL
Mayumi KolmetzBrazilAmy Elsner NEGOTIATION
Munro FerenczAustraliaXuxue Feng NEW
James ButtArgentinaOnyama Limba QUALIFIED
Morrow RutaUnited KingdomAmy Elsner PROPOSAL
Greenwood BologniaAustraliaAsiya Javayant PROPOSAL
Aruna FigeroaSpainAsiya Javayant NEW
Nicolas IturbideAustraliaStephen Shaw QUALIFIED
Clifford RimBrazilAsiya Javayant RENEWAL
Rodrigues CampainItalyAnna Fali NEGOTIATION
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Adams MorascaGermanyAnna Fali RENEWAL
Stacey MacleadFranceOnyama Limba NEW
Maisha RulapaughItalyStephen Shaw NEGOTIATION
Ricardo GauchoArgentinaStephen Shaw PROPOSAL
Emily WhobreyItalyXuxue Feng RENEWAL
Kaitlin OstroskyIndiaIvan Magalhaes NEW
Antonio CaudyRussiaStephen Shaw PROPOSAL
Jennifer AmigonJapanAnna Fali QUALIFIED
Misaki RoysterIndiaAnna Fali PROPOSAL
Salvatore StockhamGermanyBernardo Dominic UNQUALIFIED
Juan WieserJapanXuxue Feng NEW
James ButtJapanIvan Magalhaes RENEWAL
Maisha RulapaughGermanyIoni Bowcher NEW
Wickens NestleUnited KingdomAmy Elsner RENEWAL
Morrow RutaSpainAmy Elsner NEGOTIATION
Maria MarrierItalyElwin Sharvill QUALIFIED
Octavia MaletGermanyXuxue Feng PROPOSAL
Stacey MacleadRussiaElwin Sharvill RENEWAL
Maisha RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Darci PoquetteSpainIvan Magalhaes RENEWAL
Smith GlickFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
Kadeem Flosi
Greenwood Bolognia
Tony Foller
Sinclair Waycott
Smith Glick
Aika Inouye
Arvin Albares
Ricardo Gaucho
Alejandro Perin
James Butt
Tony Foller
Smith Glick
Johnson Sergi
Stacey Maclead
James Butt
Juan Wieser
Leja Caldarera
David Darakjy
Jones Vocelka
Ashley Doe
Jones Vocelka
Munro Ferencz
Cody Saylors
Izzy Garufi
Stacey Maclead
Tony Foller
Isabel Bowley
Maria Marrier
Leja Caldarera
Chavez Briddick
Darci Poquette
Costa Dilliard
Greenwood Bolognia
Tony Foller
Antonio Caudy
Costa Dilliard
Jones Vocelka
Mayumi Kolmetz
Leja Caldarera
Maisha Rulapaugh
David Darakjy
Jefferson Schemmer
James Butt
Clifford Rim
Leon Oldroyd
Aika Inouye
Costa Dilliard
Juan Wieser
Morrow Ruta
Tony Foller
IdCountryDate
1000Argentina2026-06-12
1001United Kingdom2026-05-28
1002India2026-06-12
1003Australia2026-06-03
1004Canada2026-05-21
1005Brazil2026-06-01
1006Spain2026-06-13
1007Japan2026-06-03
1008United Kingdom2026-05-21
1009France2026-06-04
1010United Kingdom2026-05-21
1011Japan2026-06-02
1012Argentina2026-05-29
1013Germany2026-06-12
1014Russia2026-06-08
1015Germany2026-05-31
1016Germany2026-05-25
1017Argentina2026-06-07
1018Spain2026-05-18
1019Spain2026-05-21
1020Germany2026-06-03
1021Brazil2026-05-26
1022Brazil2026-05-21
1023Germany2026-06-01
1024Australia2026-05-17
1025Brazil2026-05-31
1026Russia2026-05-18
1027Argentina2026-06-11
1028Italy2026-05-31
1029United Kingdom2026-06-06
1030Italy2026-06-15
1031Canada2026-06-08
1032India2026-05-28
1033Italy2026-05-30
1034Russia2026-06-06
1035United Kingdom2026-06-10
1036Argentina2026-05-18
1037Spain2026-05-22
1038France2026-06-02
1039France2026-05-25
1040France2026-06-03
1041France2026-06-15
1042India2026-05-21
1043United Kingdom2026-06-04
1044Argentina2026-06-15
1045Japan2026-06-13
1046Brazil2026-06-05
1047Japan2026-05-25
1048Italy2026-06-11
1049Argentina2026-05-20

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000Germany2026-05-28
Isabel Bowley1001Italy2026-06-11
Ashley Doe1002India2026-06-03
Cody Saylors1003Japan2026-05-24
Mujtaba Nicka1004India2026-06-15
Deepesh Chui1005Argentina2026-06-02
Leja Caldarera1006Argentina2026-05-27
Maisha Rulapaugh1007Australia2026-06-15
Jeanfrancois Venere1008Canada2026-06-04
Jefferson Schemmer1009India2026-05-20
Clifford Rim1010Germany2026-05-29
Izzy Garufi1011Spain2026-06-04
Francesco Shinko1012Brazil2026-05-24
Aditya Kusko1013Canada2026-06-08
Maisha Rulapaugh1014Italy2026-06-09
Octavia Malet1015Spain2026-05-28
Maria Marrier1016France2026-06-15
Faith Gillian1017Russia2026-06-07
Clifford Rim1018United Kingdom2026-05-18
Salvatore Stockham1019Spain2026-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimRussiaIoni Bowcher UNQUALIFIED
Misaki RoysterAustraliaIoni Bowcher NEW
Jeanfrancois VenereGermanyXuxue Feng RENEWAL
Mujtaba NickaArgentinaAsiya Javayant QUALIFIED
Claire TollnerGermanyStephen Shaw QUALIFIED
Leon OldroydIndiaAmy Elsner NEGOTIATION
Francesco ShinkoItalyOnyama Limba PROPOSAL
Chavez BriddickFranceAmy Elsner NEGOTIATION
Leon OldroydIndiaElwin Sharvill NEGOTIATION
Chavez BriddickIndiaXuxue Feng RENEWAL
Aruna FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Ivar PaprockiRussiaAsiya Javayant RENEWAL
Johnson SergiGermanyElwin Sharvill RENEWAL
Leon OldroydIndiaAnna Fali NEGOTIATION
Darci PoquetteSpainElwin Sharvill NEGOTIATION
Julie StensethSpainStephen Shaw UNQUALIFIED
Antonio CaudyFranceBernardo Dominic PROPOSAL
Munro FerenczBrazilElwin Sharvill QUALIFIED
Claire TollnerIndiaAmy Elsner QUALIFIED
Chavez BriddickUnited KingdomOnyama Limba NEW
James ButtBrazilStephen Shaw NEGOTIATION
Wickens NestleJapanIvan Magalhaes QUALIFIED
Smith GlickCanadaStephen Shaw NEW
Izzy GarufiIndiaXuxue Feng UNQUALIFIED
Kaitlin OstroskyUnited KingdomOnyama Limba RENEWAL
Julie StensethRussiaStephen Shaw RENEWAL
Nicolas IturbideIndiaStephen Shaw PROPOSAL
Izzy GarufiBrazilBernardo Dominic NEW
Misaki RoysterRussiaStephen Shaw QUALIFIED
Munro FerenczIndiaStephen Shaw RENEWAL
Misaki RoysterGermanyOnyama Limba PROPOSAL
Misaki RoysterItalyOnyama Limba NEGOTIATION
Jeanfrancois VenereGermanyAmy Elsner NEGOTIATION
Aruna FigeroaArgentinaBernardo Dominic RENEWAL
Tony FollerJapanOnyama Limba NEGOTIATION
James ButtAustraliaStephen Shaw QUALIFIED
Faith GillianGermanyStephen Shaw PROPOSAL
Silvio SlusarskiAustraliaXuxue Feng NEGOTIATION
Alejandro PerinArgentinaElwin Sharvill PROPOSAL
Alejandro PerinCanadaIoni Bowcher 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>