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
Juan WieserArgentinaElwin Sharvill UNQUALIFIED
Rodrigues CampainCanadaElwin Sharvill NEW
Leon OldroydGermanyXuxue Feng NEW
Jennifer AmigonGermanyIoni Bowcher NEGOTIATION
Smith GlickUnited KingdomIvan Magalhaes RENEWAL
Alejandro PerinArgentinaBernardo Dominic RENEWAL
Juan WieserBrazilAmy Elsner NEGOTIATION
Smith GlickAustraliaXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaStephen Shaw RENEWAL
Cody SaylorsCanadaStephen Shaw RENEWAL
Octavia MaletIndiaAmy Elsner RENEWAL
Costa DilliardSpainBernardo Dominic NEW
Leon OldroydGermanyElwin Sharvill NEGOTIATION
Nicolas IturbideArgentinaAmy Elsner RENEWAL
Aruna FigeroaSpainAnna Fali NEGOTIATION
Greenwood BologniaArgentinaIoni Bowcher UNQUALIFIED
Faith GillianItalyAsiya Javayant NEGOTIATION
Adams MorascaUnited KingdomStephen Shaw RENEWAL
Cody SaylorsRussiaOnyama Limba QUALIFIED
Aika InouyeSpainAsiya Javayant PROPOSAL
Aditya KuskoArgentinaElwin Sharvill NEW
Ivar PaprockiUnited KingdomIoni Bowcher NEW
Jennifer AmigonAustraliaXuxue Feng NEW
Jefferson SchemmerFranceOnyama Limba PROPOSAL
Aditya KuskoSpainAmy Elsner NEGOTIATION
Maria MarrierCanadaStephen Shaw NEGOTIATION
Jennifer AmigonIndiaBernardo Dominic NEGOTIATION
Chavez BriddickIndiaIoni Bowcher QUALIFIED
Ashley DoeCanadaAmy Elsner UNQUALIFIED
Sinclair WaycottCanadaIvan Magalhaes NEGOTIATION
Deepesh ChuiRussiaIoni Bowcher PROPOSAL
Julie StensethArgentinaAsiya Javayant PROPOSAL
Chavez BriddickArgentinaXuxue Feng PROPOSAL
Juan WieserArgentinaElwin Sharvill PROPOSAL
Antonio CaudyBrazilAnna Fali PROPOSAL
Izzy GarufiItalyIoni Bowcher RENEWAL
Chavez BriddickUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiJapanIvan Magalhaes UNQUALIFIED
Silvio SlusarskiBrazilStephen Shaw QUALIFIED
David DarakjyGermanyAnna Fali RENEWAL
Tony FollerItalyElwin Sharvill RENEWAL
Costa DilliardUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadArgentinaStephen Shaw QUALIFIED
Leja CaldareraGermanyIoni Bowcher PROPOSAL
Morrow RutaSpainBernardo Dominic NEW
Smith GlickSpainStephen Shaw PROPOSAL
Mayumi KolmetzBrazilAsiya Javayant PROPOSAL
Claire TollnerSpainElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaAmy Elsner UNQUALIFIED
Kadeem FlosiAustraliaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoItalyAnna Fali NEGOTIATION
Jefferson SchemmerJapanAmy Elsner UNQUALIFIED
Izzy GarufiAustraliaAmy Elsner NEGOTIATION
Nicolas IturbideGermanyIvan Magalhaes NEGOTIATION
Costa DilliardGermanyBernardo Dominic PROPOSAL
Izzy GarufiItalyStephen Shaw RENEWAL
Clifford RimRussiaOnyama Limba PROPOSAL
Wickens NestleAustraliaBernardo Dominic QUALIFIED
Clifford RimAustraliaXuxue Feng NEW
Aika InouyeSpainXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianItaly2026-04-08Feltz Printing Service NEGOTIATION35Bernardo Dominic
1001Kaitlin OstroskyFrance2026-04-18Chapman, Ross E Esq UNQUALIFIED61Onyama Limba
1002Stacey MacleadFrance2026-03-31Chemel, James L Cpa QUALIFIED93Onyama Limba
1003Jeanfrancois VenereArgentina2026-04-20Printing Dimensions UNQUALIFIED3Ivan Magalhaes
1004Juan WieserUnited Kingdom2026-04-22Buckley Miller Wright RENEWAL22Amy Elsner
1005Murillo MaletArgentina2026-04-21Morlong Associates UNQUALIFIED31Elwin Sharvill
1006Chavez BriddickUnited Kingdom2026-04-16Rousseaux, Michael Esq QUALIFIED14Stephen Shaw
1007Izzy GarufiArgentina2026-04-24Feltz Printing Service QUALIFIED41Amy Elsner
1008David DarakjyIndia2026-04-18Feiner Bros PROPOSAL83Ioni Bowcher
1009Clifford RimItaly2026-04-12Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1010Izzy GarufiBrazil2026-03-27Feiner Bros NEGOTIATION21Ivan Magalhaes
1011Leon OldroydSpain2026-04-15Buckley Miller Wright NEGOTIATION44Onyama Limba
1012Aika InouyeGermany2026-04-06Feltz Printing Service NEGOTIATION75Amy Elsner
1013Stacey MacleadIndia2026-04-18Dorl, James J Esq UNQUALIFIED92Stephen Shaw
1014Jennifer AmigonCanada2026-04-21Feltz Printing Service UNQUALIFIED82Bernardo Dominic
1015Mujtaba NickaUnited Kingdom2026-03-30Truhlar And Truhlar Attys NEGOTIATION66Amy Elsner
1016Juan WieserAustralia2026-04-09King, Christopher A Esq PROPOSAL60Asiya Javayant
1017Isabel BowleyJapan2026-04-10Printing Dimensions NEGOTIATION22Anna Fali
1018Aditya KuskoFrance2026-04-03Rangoni Of Florence NEGOTIATION25Bernardo Dominic
1019Faith GillianAustralia2026-04-17Commercial Press QUALIFIED23Stephen Shaw
1020Murillo MaletBrazil2026-04-08Buckley Miller Wright RENEWAL54Bernardo Dominic
1021Alejandro PerinCanada2026-03-31Chanay, Jeffrey A Esq PROPOSAL50Ioni Bowcher
1022Darci PoquetteArgentina2026-04-17Printing Dimensions PROPOSAL38Onyama Limba
1023Leja CaldareraItaly2026-04-24Morlong Associates RENEWAL87Stephen Shaw
1024Emily WhobreyGermany2026-04-17Buckley Miller Wright NEGOTIATION58Onyama Limba
1025Wickens NestleArgentina2026-04-21Chanay, Jeffrey A Esq PROPOSAL43Stephen Shaw
1026Aika InouyeGermany2026-03-30Buckley Miller Wright PROPOSAL17Ivan Magalhaes
1027Ashley DoeRussia2026-04-18Rangoni Of Florence QUALIFIED61Anna Fali
1028Juan WieserCanada2026-04-18Buckley Miller Wright NEW46Anna Fali
1029Ricardo GauchoArgentina2026-03-28Commercial Press PROPOSAL81Ivan Magalhaes
1030Izzy GarufiAustralia2026-04-14Truhlar And Truhlar Attys PROPOSAL39Stephen Shaw
1031Izzy GarufiArgentina2026-04-22Feltz Printing Service UNQUALIFIED11Anna Fali
1032Francesco ShinkoRussia2026-04-10Benton, John B Jr PROPOSAL30Ivan Magalhaes
1033Mujtaba NickaIndia2026-03-31Chemel, James L Cpa QUALIFIED22Amy Elsner
1034Kadeem FlosiRussia2026-03-29Chapman, Ross E Esq QUALIFIED96Bernardo Dominic
1035Silvio SlusarskiFrance2026-04-22Chanay, Jeffrey A Esq UNQUALIFIED81Onyama Limba
1036Arvin AlbaresRussia2026-04-18Benton, John B Jr RENEWAL24Ioni Bowcher
1037Nicolas IturbideFrance2026-04-08Printing Dimensions QUALIFIED20Xuxue Feng
1038Alejandro PerinAustralia2026-04-24Chanay, Jeffrey A Esq UNQUALIFIED70Bernardo Dominic
1039Maisha RulapaughCanada2026-04-16Truhlar And Truhlar Attys PROPOSAL20Elwin Sharvill
1040Maisha RulapaughCanada2026-04-17Rangoni Of Florence UNQUALIFIED81Stephen Shaw
1041Francesco ShinkoArgentina2026-04-20Morlong Associates PROPOSAL43Bernardo Dominic
1042Rodrigues CampainCanada2026-04-02Chapman, Ross E Esq RENEWAL48Amy Elsner
1043Ashley DoeIndia2026-04-20Feiner Bros NEGOTIATION57Xuxue Feng
1044Leja CaldareraJapan2026-04-13Dorl, James J Esq NEW19Asiya Javayant
1045Clifford RimIndia2026-03-30Buckley Miller Wright QUALIFIED93Onyama Limba
1046Julie StensethIndia2026-04-04Benton, John B Jr NEW52Xuxue Feng
1047Adams MorascaItaly2026-04-04Morlong Associates NEW47Elwin Sharvill
1048Mayumi KolmetzCanada2026-04-07Commercial Press RENEWAL51Bernardo Dominic
1049Isabel BowleyItaly2026-04-16Feiner Bros QUALIFIED59Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleIndiaAsiya Javayant NEGOTIATION
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Mayumi KolmetzBrazilIvan Magalhaes QUALIFIED
Arvin AlbaresJapanAsiya Javayant NEW
Izzy GarufiUnited KingdomAsiya Javayant PROPOSAL
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
Misaki RoysterAustraliaOnyama Limba NEW
Aditya KuskoAustraliaAsiya Javayant RENEWAL
Julie StensethSpainStephen Shaw QUALIFIED
Smith GlickRussiaIvan Magalhaes NEW
Leja CaldareraFranceAmy Elsner QUALIFIED
Juan WieserRussiaXuxue Feng UNQUALIFIED
Cody SaylorsRussiaAmy Elsner NEGOTIATION
Morrow RutaArgentinaBernardo Dominic NEW
David DarakjyAustraliaBernardo Dominic RENEWAL
Juan WieserFranceStephen Shaw UNQUALIFIED
Aditya KuskoSpainOnyama Limba NEGOTIATION
Chavez BriddickJapanAnna Fali PROPOSAL
Mayumi KolmetzFranceIoni Bowcher PROPOSAL
Jennifer AmigonItalyIoni Bowcher NEGOTIATION
Claire TollnerArgentinaBernardo Dominic UNQUALIFIED
Ashley DoeAustraliaAmy Elsner RENEWAL
Aruna FigeroaIndiaXuxue Feng QUALIFIED
Maisha RulapaughFranceIoni Bowcher RENEWAL
Ashley DoeAustraliaIvan Magalhaes NEGOTIATION
Jones VocelkaJapanIoni Bowcher UNQUALIFIED
Murillo MaletFranceXuxue Feng QUALIFIED
David DarakjyItalyElwin Sharvill UNQUALIFIED
Octavia MaletJapanIoni Bowcher NEGOTIATION
Chavez BriddickRussiaBernardo Dominic NEW
Smith GlickArgentinaOnyama Limba UNQUALIFIED
Stacey MacleadBrazilBernardo Dominic PROPOSAL
Mujtaba NickaRussiaAsiya Javayant NEGOTIATION
Adams MorascaCanadaAmy Elsner NEGOTIATION
Chavez BriddickIndiaOnyama Limba NEGOTIATION
Smith GlickSpainIvan Magalhaes PROPOSAL
Julie StensethFranceAnna Fali NEW
Wickens NestleGermanyAnna Fali PROPOSAL
Nicolas IturbideItalyAnna Fali NEGOTIATION
Morrow RutaIndiaXuxue Feng NEW
Francesco ShinkoBrazilIoni Bowcher NEW
Ashley DoeGermanyAmy Elsner QUALIFIED
Kaitlin OstroskyRussiaElwin Sharvill RENEWAL
Johnson SergiJapanAnna Fali PROPOSAL
Jennifer AmigonJapanIvan Magalhaes PROPOSAL
Johnson SergiAustraliaAnna Fali NEW
Aruna FigeroaGermanyAmy Elsner NEW
Isabel BowleyBrazilAnna Fali UNQUALIFIED
Jones VocelkaUnited KingdomXuxue Feng RENEWAL
Maria MarrierIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Aruna Figeroa
Nicolas Iturbide
Wickens Nestle
Johnson Sergi
Greenwood Bolognia
Kaitlin Ostrosky
Mayumi Kolmetz
Aditya Kusko
Faith Gillian
Arvin Albares
Deepesh Chui
Deepesh Chui
Morrow Ruta
Costa Dilliard
Claire Tollner
Chavez Briddick
Ricardo Gaucho
Jeanfrancois Venere
Adams Morasca
Stacey Maclead
Silvio Slusarski
Rodrigues Campain
Antonio Caudy
Leja Caldarera
Munro Ferencz
Francesco Shinko
Silvio Slusarski
James Butt
Ivar Paprocki
Clifford Rim
Jefferson Schemmer
Salvatore Stockham
Jeanfrancois Venere
Aika Inouye
Leon Oldroyd
Greenwood Bolognia
Morrow Ruta
Mujtaba Nicka
Jones Vocelka
Julie Stenseth
Cody Saylors
Murillo Malet
Adams Morasca
David Darakjy
Julie Stenseth
Leon Oldroyd
Juan Wieser
Wickens Nestle
Maria Marrier
Jones Vocelka
IdCountryDate
1000Italy2026-03-26
1001Argentina2026-04-12
1002Germany2026-04-15
1003Spain2026-04-14
1004Germany2026-04-15
1005Italy2026-04-10
1006Brazil2026-04-05
1007Italy2026-04-14
1008Canada2026-04-11
1009Canada2026-04-19
1010Russia2026-04-13
1011France2026-04-06
1012Germany2026-04-14
1013Canada2026-04-10
1014Russia2026-04-09
1015India2026-04-16
1016Italy2026-04-12
1017Brazil2026-04-01
1018Japan2026-04-14
1019Russia2026-03-29
1020Italy2026-04-18
1021Russia2026-04-14
1022Spain2026-03-26
1023Australia2026-03-31
1024Argentina2026-04-19
1025United Kingdom2026-04-21
1026France2026-04-23
1027France2026-04-19
1028Russia2026-04-22
1029Spain2026-04-18
1030India2026-04-18
1031Italy2026-04-12
1032Germany2026-04-16
1033Spain2026-04-13
1034Russia2026-04-11
1035Russia2026-04-21
1036United Kingdom2026-04-09
1037Australia2026-04-16
1038France2026-04-03
1039Brazil2026-03-30
1040Australia2026-04-02
1041France2026-03-30
1042Argentina2026-04-14
1043Germany2026-04-18
1044Germany2026-04-11
1045France2026-04-04
1046Germany2026-04-09
1047Brazil2026-03-30
1048India2026-03-26
1049India2026-04-24

On-Demand Data

NameIdCountryDate
Faith Gillian1000Germany2026-04-19
Faith Gillian1001France2026-03-27
Salvatore Stockham1002United Kingdom2026-03-28
Salvatore Stockham1003France2026-04-13
Francesco Shinko1004Russia2026-04-01
Aruna Figeroa1005Australia2026-04-03
Aruna Figeroa1006Italy2026-04-09
Izzy Garufi1007Brazil2026-03-27
Tony Foller1008United Kingdom2026-04-03
Munro Ferencz1009Germany2026-03-28
Maria Marrier1010Argentina2026-04-02
James Butt1011India2026-04-22
Octavia Malet1012Italy2026-04-22
Chavez Briddick1013Canada2026-04-08
Kaitlin Ostrosky1014Argentina2026-04-04
Jennifer Amigon1015Argentina2026-03-30
Leja Caldarera1016Brazil2026-03-28
Salvatore Stockham1017Brazil2026-04-15
Ivar Paprocki1018Germany2026-04-21
Julie Stenseth1019Canada2026-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoCanadaAnna Fali RENEWAL
Ricardo GauchoSpainAsiya Javayant RENEWAL
Aditya KuskoGermanyXuxue Feng RENEWAL
Mujtaba NickaRussiaIoni Bowcher PROPOSAL
Cody SaylorsCanadaXuxue Feng PROPOSAL
Aika InouyeUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba NickaBrazilAmy Elsner PROPOSAL
Leja CaldareraGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoCanadaXuxue Feng RENEWAL
Kaitlin OstroskyFranceAnna Fali RENEWAL
James ButtFranceStephen Shaw UNQUALIFIED
Kaitlin OstroskyFranceAmy Elsner QUALIFIED
Isabel BowleyJapanAsiya Javayant UNQUALIFIED
Sinclair WaycottRussiaStephen Shaw NEW
Sinclair WaycottCanadaXuxue Feng NEW
Tony FollerGermanyIoni Bowcher NEW
Munro FerenczBrazilElwin Sharvill RENEWAL
Aruna FigeroaFranceAmy Elsner RENEWAL
Mayumi KolmetzAustraliaAnna Fali PROPOSAL
Salvatore StockhamFranceStephen Shaw NEW
Darci PoquetteUnited KingdomAnna Fali PROPOSAL
Kadeem FlosiJapanStephen Shaw PROPOSAL
Isabel BowleyIndiaElwin Sharvill NEGOTIATION
Izzy GarufiBrazilAsiya Javayant RENEWAL
Aika InouyeCanadaBernardo Dominic NEGOTIATION
James ButtArgentinaAsiya Javayant NEW
Murillo MaletGermanyStephen Shaw PROPOSAL
Aditya KuskoIndiaIoni Bowcher UNQUALIFIED
Aruna FigeroaIndiaXuxue Feng RENEWAL
Alejandro PerinBrazilOnyama Limba PROPOSAL
Kadeem FlosiJapanOnyama Limba RENEWAL
Antonio CaudyArgentinaXuxue Feng RENEWAL
Ashley DoeRussiaAnna Fali RENEWAL
Rodrigues CampainIndiaXuxue Feng PROPOSAL
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Ashley DoeAustraliaIvan Magalhaes RENEWAL
Isabel BowleySpainAmy Elsner RENEWAL
Deepesh ChuiCanadaBernardo Dominic QUALIFIED
Smith GlickCanadaStephen Shaw QUALIFIED
Faith GillianSpainAnna Fali 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>