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
Greenwood BologniaArgentinaAsiya Javayant QUALIFIED
Morrow RutaJapanAmy Elsner QUALIFIED
Mayumi KolmetzIndiaIoni Bowcher QUALIFIED
Tony FollerSpainIoni Bowcher UNQUALIFIED
Leon OldroydJapanElwin Sharvill QUALIFIED
David DarakjyArgentinaAnna Fali QUALIFIED
Faith GillianAustraliaElwin Sharvill NEGOTIATION
Arvin AlbaresJapanBernardo Dominic NEW
Aika InouyeArgentinaAnna Fali NEW
David DarakjySpainAnna Fali PROPOSAL
Claire TollnerRussiaAnna Fali UNQUALIFIED
Francesco ShinkoBrazilAsiya Javayant PROPOSAL
Aditya KuskoArgentinaBernardo Dominic RENEWAL
Aruna FigeroaJapanIoni Bowcher RENEWAL
Costa DilliardBrazilIoni Bowcher RENEWAL
Greenwood BologniaJapanIoni Bowcher RENEWAL
Wickens NestleGermanyIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaOnyama Limba NEW
Cody SaylorsJapanAsiya Javayant PROPOSAL
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Izzy GarufiItalyAmy Elsner QUALIFIED
Misaki RoysterUnited KingdomOnyama Limba RENEWAL
Ricardo GauchoItalyIoni Bowcher QUALIFIED
Ricardo GauchoAustraliaIoni Bowcher NEW
Salvatore StockhamBrazilOnyama Limba UNQUALIFIED
Adams MorascaJapanXuxue Feng NEW
Nicolas IturbideAustraliaElwin Sharvill RENEWAL
Clifford RimJapanOnyama Limba NEW
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Mayumi KolmetzIndiaIvan Magalhaes RENEWAL
Claire TollnerAustraliaBernardo Dominic UNQUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes NEW
Murillo MaletGermanyAsiya Javayant RENEWAL
Jeanfrancois VenereRussiaStephen Shaw NEGOTIATION
Misaki RoysterRussiaIoni Bowcher UNQUALIFIED
Smith GlickRussiaAsiya Javayant NEGOTIATION
Emily WhobreyCanadaAnna Fali RENEWAL
Emily WhobreyAustraliaStephen Shaw PROPOSAL
Adams MorascaIndiaOnyama Limba NEW
Silvio SlusarskiAustraliaAsiya Javayant QUALIFIED
Jones VocelkaItalyAsiya Javayant QUALIFIED
Mujtaba NickaGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiUnited KingdomAnna Fali NEW
Francesco ShinkoAustraliaElwin Sharvill PROPOSAL
Jeanfrancois VenereSpainIoni Bowcher UNQUALIFIED
Wickens NestleJapanBernardo Dominic PROPOSAL
Leon OldroydJapanElwin Sharvill NEGOTIATION
Murillo MaletBrazilAsiya Javayant NEGOTIATION
Darci PoquetteGermanyStephen Shaw UNQUALIFIED
Alejandro PerinUnited KingdomIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughIndiaStephen Shaw PROPOSAL
Arvin AlbaresAustraliaElwin Sharvill UNQUALIFIED
Wickens NestleArgentinaAsiya Javayant QUALIFIED
Silvio SlusarskiGermanyAsiya Javayant UNQUALIFIED
Smith GlickRussiaElwin Sharvill NEW
Sinclair WaycottUnited KingdomBernardo Dominic NEW
Adams MorascaArgentinaOnyama Limba NEW
Mujtaba NickaSpainAnna Fali PROPOSAL
Deepesh ChuiItalyStephen Shaw NEGOTIATION
Ricardo GauchoArgentinaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimItaly2026-04-02Chapman, Ross E Esq QUALIFIED77Ivan Magalhaes
1001Silvio SlusarskiSpain2026-04-21Feiner Bros RENEWAL73Asiya Javayant
1002Antonio CaudyAustralia2026-04-24Chanay, Jeffrey A Esq QUALIFIED2Elwin Sharvill
1003Rodrigues CampainJapan2026-04-10Rousseaux, Michael Esq NEW36Stephen Shaw
1004Sinclair WaycottAustralia2026-04-08Commercial Press PROPOSAL84Amy Elsner
1005Maria MarrierBrazil2026-03-27Dorl, James J Esq RENEWAL67Onyama Limba
1006Greenwood BologniaAustralia2026-04-09Printing Dimensions RENEWAL7Onyama Limba
1007Ricardo GauchoCanada2026-04-24Commercial Press QUALIFIED51Stephen Shaw
1008Silvio SlusarskiRussia2026-03-28Chanay, Jeffrey A Esq RENEWAL59Ivan Magalhaes
1009Sinclair WaycottItaly2026-03-28Rangoni Of Florence PROPOSAL35Bernardo Dominic
1010Jefferson SchemmerUnited Kingdom2026-04-03Benton, John B Jr QUALIFIED50Xuxue Feng
1011James ButtSpain2026-04-11Chanay, Jeffrey A Esq QUALIFIED79Amy Elsner
1012Ashley DoeAustralia2026-04-18Chapman, Ross E Esq NEW5Ioni Bowcher
1013Chavez BriddickGermany2026-03-29Morlong Associates QUALIFIED11Onyama Limba
1014Morrow RutaGermany2026-04-06Feiner Bros PROPOSAL83Amy Elsner
1015Kadeem FlosiAustralia2026-03-30Rangoni Of Florence NEW62Amy Elsner
1016James ButtRussia2026-04-18Feltz Printing Service QUALIFIED64Onyama Limba
1017Sinclair WaycottCanada2026-03-27Commercial Press RENEWAL19Anna Fali
1018Leja CaldareraBrazil2026-04-03Printing Dimensions NEGOTIATION42Elwin Sharvill
1019Antonio CaudyBrazil2026-04-01Truhlar And Truhlar Attys NEW8Ivan Magalhaes
1020Rodrigues CampainRussia2026-04-12Chapman, Ross E Esq QUALIFIED70Elwin Sharvill
1021Ricardo GauchoItaly2026-04-06Feiner Bros UNQUALIFIED90Asiya Javayant
1022Darci PoquetteFrance2026-03-29Printing Dimensions NEW61Bernardo Dominic
1023Greenwood BologniaSpain2026-04-13Feiner Bros PROPOSAL29Bernardo Dominic
1024Mayumi KolmetzRussia2026-04-12Truhlar And Truhlar Attys NEGOTIATION22Bernardo Dominic
1025James ButtCanada2026-04-25Feltz Printing Service PROPOSAL19Xuxue Feng
1026Morrow RutaJapan2026-04-09Dorl, James J Esq NEGOTIATION43Ivan Magalhaes
1027Aruna FigeroaIndia2026-04-22Chanay, Jeffrey A Esq RENEWAL42Asiya Javayant
1028Morrow RutaIndia2026-04-17King, Christopher A Esq NEW92Ivan Magalhaes
1029Adams MorascaItaly2026-04-01Dorl, James J Esq RENEWAL56Amy Elsner
1030Munro FerenczArgentina2026-04-03Chemel, James L Cpa NEGOTIATION55Xuxue Feng
1031Emily WhobreySpain2026-04-21Commercial Press UNQUALIFIED71Ioni Bowcher
1032David DarakjyItaly2026-04-15King, Christopher A Esq RENEWAL68Bernardo Dominic
1033Emily WhobreySpain2026-04-19Chapman, Ross E Esq NEGOTIATION98Amy Elsner
1034Chavez BriddickBrazil2026-04-11Rousseaux, Michael Esq PROPOSAL77Stephen Shaw
1035Maisha RulapaughFrance2026-04-21Commercial Press NEGOTIATION84Elwin Sharvill
1036Leja CaldareraIndia2026-03-30Buckley Miller Wright UNQUALIFIED49Ioni Bowcher
1037Kadeem FlosiItaly2026-04-10Chanay, Jeffrey A Esq NEGOTIATION2Onyama Limba
1038Aditya KuskoSpain2026-04-20Rangoni Of Florence RENEWAL7Anna Fali
1039Izzy GarufiUnited Kingdom2026-04-12Printing Dimensions UNQUALIFIED78Onyama Limba
1040Juan WieserBrazil2026-04-01King, Christopher A Esq PROPOSAL28Asiya Javayant
1041Maisha RulapaughArgentina2026-04-20Truhlar And Truhlar Attys QUALIFIED88Xuxue Feng
1042Wickens NestleGermany2026-04-04Rangoni Of Florence RENEWAL10Elwin Sharvill
1043James ButtItaly2026-03-27Feltz Printing Service PROPOSAL2Xuxue Feng
1044Wickens NestleAustralia2026-04-18Chapman, Ross E Esq RENEWAL33Bernardo Dominic
1045Aika InouyeUnited Kingdom2026-04-23Rangoni Of Florence QUALIFIED95Ivan Magalhaes
1046Jones VocelkaJapan2026-04-25Chapman, Ross E Esq QUALIFIED30Bernardo Dominic
1047Jefferson SchemmerArgentina2026-03-27Commercial Press RENEWAL77Ivan Magalhaes
1048Silvio SlusarskiUnited Kingdom2026-04-10Benton, John B Jr PROPOSAL55Anna Fali
1049Jefferson SchemmerGermany2026-03-28Buckley Miller Wright PROPOSAL55Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoRussiaElwin Sharvill RENEWAL
Tony FollerFranceAsiya Javayant NEW
Cody SaylorsArgentinaAnna Fali PROPOSAL
Francesco ShinkoCanadaOnyama Limba NEGOTIATION
Claire TollnerSpainElwin Sharvill NEW
Murillo MaletArgentinaBernardo Dominic NEW
Costa DilliardItalyStephen Shaw QUALIFIED
Kadeem FlosiIndiaIoni Bowcher NEW
Francesco ShinkoArgentinaAsiya Javayant RENEWAL
Izzy GarufiCanadaAsiya Javayant RENEWAL
Francesco ShinkoSpainOnyama Limba PROPOSAL
Johnson SergiBrazilAnna Fali UNQUALIFIED
Adams MorascaJapanIoni Bowcher PROPOSAL
Morrow RutaBrazilElwin Sharvill PROPOSAL
Aruna FigeroaItalyStephen Shaw RENEWAL
Rodrigues CampainBrazilIoni Bowcher NEW
Wickens NestleCanadaBernardo Dominic QUALIFIED
Clifford RimBrazilStephen Shaw UNQUALIFIED
Maisha RulapaughCanadaIvan Magalhaes PROPOSAL
Antonio CaudyCanadaIoni Bowcher NEGOTIATION
Faith GillianArgentinaAnna Fali NEW
Mayumi KolmetzBrazilIoni Bowcher RENEWAL
Tony FollerRussiaElwin Sharvill UNQUALIFIED
Adams MorascaCanadaElwin Sharvill PROPOSAL
Ricardo GauchoUnited KingdomOnyama Limba QUALIFIED
Maria MarrierRussiaOnyama Limba QUALIFIED
Leon OldroydCanadaOnyama Limba UNQUALIFIED
Greenwood BologniaUnited KingdomBernardo Dominic QUALIFIED
Juan WieserAustraliaOnyama Limba NEGOTIATION
Morrow RutaSpainIoni Bowcher PROPOSAL
Emily WhobreyItalyStephen Shaw NEW
Tony FollerAustraliaBernardo Dominic RENEWAL
Jennifer AmigonItalyXuxue Feng PROPOSAL
Misaki RoysterBrazilElwin Sharvill QUALIFIED
Adams MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Misaki RoysterJapanOnyama Limba QUALIFIED
Stacey MacleadGermanyAsiya Javayant NEGOTIATION
Silvio SlusarskiIndiaAnna Fali QUALIFIED
Greenwood BologniaBrazilIvan Magalhaes PROPOSAL
Wickens NestleJapanOnyama Limba NEW
Darci PoquetteCanadaIvan Magalhaes PROPOSAL
Julie StensethSpainStephen Shaw RENEWAL
Wickens NestleCanadaAmy Elsner NEW
Cody SaylorsAustraliaAsiya Javayant UNQUALIFIED
Costa DilliardAustraliaElwin Sharvill NEW
Tony FollerBrazilOnyama Limba RENEWAL
Rodrigues CampainSpainXuxue Feng UNQUALIFIED
Ivar PaprockiCanadaAsiya Javayant NEW
Smith GlickSpainBernardo Dominic UNQUALIFIED
Tony FollerRussiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Leon Oldroyd
Cody Saylors
Kadeem Flosi
Cody Saylors
Francesco Shinko
Silvio Slusarski
Salvatore Stockham
Chavez Briddick
Antonio Caudy
Clifford Rim
Smith Glick
Aruna Figeroa
Emily Whobrey
Jones Vocelka
Smith Glick
Chavez Briddick
Greenwood Bolognia
Isabel Bowley
Kaitlin Ostrosky
David Darakjy
Deepesh Chui
Maisha Rulapaugh
Faith Gillian
Rodrigues Campain
Juan Wieser
Ricardo Gaucho
Adams Morasca
Costa Dilliard
Aika Inouye
Silvio Slusarski
Jennifer Amigon
Claire Tollner
Maria Marrier
Emily Whobrey
Murillo Malet
Leon Oldroyd
Smith Glick
Claire Tollner
Aika Inouye
Deepesh Chui
Deepesh Chui
Ivar Paprocki
David Darakjy
Nicolas Iturbide
Sinclair Waycott
Jefferson Schemmer
Juan Wieser
Silvio Slusarski
Mujtaba Nicka
Morrow Ruta
IdCountryDate
1000Canada2026-04-15
1001Canada2026-04-22
1002Italy2026-04-01
1003Canada2026-04-07
1004France2026-04-15
1005India2026-04-24
1006Italy2026-04-14
1007Brazil2026-04-03
1008Canada2026-04-05
1009India2026-04-12
1010United Kingdom2026-03-30
1011Germany2026-04-25
1012Germany2026-04-12
1013Canada2026-04-06
1014Brazil2026-04-25
1015Italy2026-03-27
1016Russia2026-04-08
1017Argentina2026-04-12
1018Russia2026-04-18
1019Japan2026-04-19
1020France2026-03-29
1021Russia2026-04-17
1022Brazil2026-04-20
1023Germany2026-04-07
1024Canada2026-04-17
1025France2026-04-03
1026Brazil2026-04-06
1027Canada2026-04-09
1028Brazil2026-04-24
1029Australia2026-04-12
1030Spain2026-04-23
1031Argentina2026-04-17
1032Germany2026-04-24
1033Germany2026-04-06
1034United Kingdom2026-04-10
1035Italy2026-04-03
1036Russia2026-04-19
1037Germany2026-04-19
1038Spain2026-04-21
1039India2026-04-06
1040Spain2026-03-30
1041Canada2026-03-29
1042Australia2026-04-02
1043France2026-04-17
1044Argentina2026-04-08
1045United Kingdom2026-04-14
1046Japan2026-04-24
1047Germany2026-04-18
1048India2026-03-30
1049Canada2026-03-27

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Germany2026-04-06
Costa Dilliard1001Canada2026-04-07
Munro Ferencz1002Australia2026-04-08
Salvatore Stockham1003Italy2026-03-31
David Darakjy1004Brazil2026-04-24
Aditya Kusko1005India2026-04-18
Alejandro Perin1006Australia2026-04-08
Jeanfrancois Venere1007France2026-03-27
Costa Dilliard1008Germany2026-04-17
Leon Oldroyd1009Germany2026-04-04
Kadeem Flosi1010Argentina2026-04-23
Octavia Malet1011Russia2026-04-10
Johnson Sergi1012Argentina2026-04-15
Rodrigues Campain1013United Kingdom2026-03-29
Juan Wieser1014Argentina2026-04-25
Antonio Caudy1015Argentina2026-04-11
Deepesh Chui1016France2026-03-28
Julie Stenseth1017Brazil2026-04-14
Kaitlin Ostrosky1018India2026-04-21
Jefferson Schemmer1019Argentina2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerFranceStephen Shaw NEGOTIATION
James ButtCanadaAsiya Javayant NEGOTIATION
Claire TollnerFranceOnyama Limba QUALIFIED
Jennifer AmigonIndiaBernardo Dominic QUALIFIED
David DarakjyAustraliaAmy Elsner PROPOSAL
Misaki RoysterRussiaAsiya Javayant UNQUALIFIED
Isabel BowleyRussiaAnna Fali NEGOTIATION
Izzy GarufiCanadaOnyama Limba PROPOSAL
Ricardo GauchoAustraliaIoni Bowcher NEGOTIATION
Octavia MaletItalyXuxue Feng RENEWAL
Chavez BriddickIndiaAsiya Javayant NEW
Ricardo GauchoGermanyAsiya Javayant PROPOSAL
Kaitlin OstroskyFranceAmy Elsner NEGOTIATION
Murillo MaletIndiaAnna Fali NEW
Izzy GarufiJapanAnna Fali NEGOTIATION
Izzy GarufiFranceElwin Sharvill QUALIFIED
Ashley DoeGermanyBernardo Dominic NEW
Isabel BowleyJapanAmy Elsner QUALIFIED
Clifford RimFranceXuxue Feng RENEWAL
Deepesh ChuiJapanAsiya Javayant UNQUALIFIED
Wickens NestleAustraliaIoni Bowcher UNQUALIFIED
Ivar PaprockiIndiaXuxue Feng RENEWAL
Isabel BowleyJapanStephen Shaw PROPOSAL
Jeanfrancois VenereJapanIvan Magalhaes PROPOSAL
Arvin AlbaresSpainAsiya Javayant UNQUALIFIED
Leja CaldareraJapanOnyama Limba RENEWAL
Kaitlin OstroskyItalyBernardo Dominic QUALIFIED
Ricardo GauchoBrazilAmy Elsner UNQUALIFIED
Smith GlickJapanIoni Bowcher NEW
Claire TollnerIndiaXuxue Feng PROPOSAL
Juan WieserGermanyXuxue Feng NEW
Chavez BriddickFranceAmy Elsner UNQUALIFIED
Munro FerenczBrazilStephen Shaw UNQUALIFIED
Faith GillianFranceXuxue Feng QUALIFIED
Kadeem FlosiCanadaAsiya Javayant NEGOTIATION
Antonio CaudyFranceOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaAnna Fali UNQUALIFIED
Aika InouyeIndiaElwin Sharvill QUALIFIED
Greenwood BologniaAustraliaAmy Elsner QUALIFIED
Kaitlin OstroskyItalyAnna 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>