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
Murillo MaletItalyIoni Bowcher UNQUALIFIED
Cody SaylorsCanadaXuxue Feng NEGOTIATION
Aruna FigeroaJapanAsiya Javayant NEGOTIATION
Ricardo GauchoBrazilAmy Elsner NEW
Cody SaylorsSpainAnna Fali NEW
Alejandro PerinJapanBernardo Dominic NEGOTIATION
Costa DilliardRussiaElwin Sharvill PROPOSAL
Mujtaba NickaAustraliaIvan Magalhaes NEGOTIATION
Misaki RoysterItalyAsiya Javayant NEGOTIATION
Mujtaba NickaSpainAnna Fali PROPOSAL
Chavez BriddickSpainAsiya Javayant UNQUALIFIED
Rodrigues CampainJapanElwin Sharvill PROPOSAL
Wickens NestleSpainAnna Fali RENEWAL
Julie StensethIndiaIoni Bowcher RENEWAL
Chavez BriddickItalyAmy Elsner NEW
Murillo MaletAustraliaAnna Fali PROPOSAL
Jefferson SchemmerAustraliaStephen Shaw NEW
Izzy GarufiBrazilAnna Fali QUALIFIED
Leon OldroydSpainBernardo Dominic UNQUALIFIED
Aruna FigeroaBrazilIvan Magalhaes QUALIFIED
Tony FollerIndiaIoni Bowcher PROPOSAL
Claire TollnerCanadaElwin Sharvill PROPOSAL
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Emily WhobreyItalyOnyama Limba QUALIFIED
Aditya KuskoRussiaXuxue Feng UNQUALIFIED
Kaitlin OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Deepesh ChuiSpainStephen Shaw PROPOSAL
Ashley DoeAustraliaElwin Sharvill PROPOSAL
Kadeem FlosiAustraliaXuxue Feng QUALIFIED
Smith GlickItalyIvan Magalhaes QUALIFIED
Johnson SergiUnited KingdomIoni Bowcher NEW
Cody SaylorsIndiaStephen Shaw QUALIFIED
Johnson SergiFranceIoni Bowcher RENEWAL
Maria MarrierGermanyIvan Magalhaes RENEWAL
Juan WieserRussiaAsiya Javayant NEGOTIATION
Stacey MacleadSpainAsiya Javayant PROPOSAL
Aruna FigeroaItalyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyAustraliaOnyama Limba PROPOSAL
Chavez BriddickJapanXuxue Feng NEGOTIATION
Adams MorascaBrazilOnyama Limba UNQUALIFIED
Faith GillianUnited KingdomXuxue Feng NEGOTIATION
Nicolas IturbideGermanyXuxue Feng UNQUALIFIED
Faith GillianJapanOnyama Limba NEW
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
Aditya KuskoSpainElwin Sharvill NEW
Octavia MaletUnited KingdomBernardo Dominic UNQUALIFIED
Costa DilliardCanadaOnyama Limba NEGOTIATION
James ButtJapanAnna Fali RENEWAL
Jefferson SchemmerFranceStephen Shaw RENEWAL
Adams MorascaCanadaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterUnited KingdomAsiya Javayant NEGOTIATION
Silvio SlusarskiUnited KingdomStephen Shaw RENEWAL
Salvatore StockhamArgentinaIoni Bowcher NEW
Murillo MaletUnited KingdomIvan Magalhaes NEGOTIATION
Silvio SlusarskiAustraliaBernardo Dominic UNQUALIFIED
Maisha RulapaughSpainElwin Sharvill QUALIFIED
Leon OldroydSpainIoni Bowcher UNQUALIFIED
Alejandro PerinIndiaAsiya Javayant NEW
Morrow RutaItalyAnna Fali NEW
Stacey MacleadUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserJapan2026-05-20Dorl, James J Esq PROPOSAL63Ivan Magalhaes
1001Mujtaba NickaFrance2026-04-21Printing Dimensions QUALIFIED27Anna Fali
1002Claire TollnerItaly2026-05-01Commercial Press UNQUALIFIED69Stephen Shaw
1003Smith GlickItaly2026-05-12Buckley Miller Wright NEW69Xuxue Feng
1004Stacey MacleadSpain2026-05-07Truhlar And Truhlar Attys NEGOTIATION19Xuxue Feng
1005Mayumi KolmetzBrazil2026-05-17Chanay, Jeffrey A Esq RENEWAL29Anna Fali
1006Jennifer AmigonFrance2026-04-27Chanay, Jeffrey A Esq UNQUALIFIED1Ivan Magalhaes
1007Ivar PaprockiAustralia2026-05-04Printing Dimensions QUALIFIED24Amy Elsner
1008David DarakjyRussia2026-05-10Chanay, Jeffrey A Esq RENEWAL48Stephen Shaw
1009Aika InouyeAustralia2026-05-10Feltz Printing Service NEGOTIATION65Anna Fali
1010Isabel BowleySpain2026-05-06Dorl, James J Esq NEW41Asiya Javayant
1011Mujtaba NickaJapan2026-05-16Dorl, James J Esq PROPOSAL62Stephen Shaw
1012Alejandro PerinAustralia2026-05-19Chapman, Ross E Esq PROPOSAL9Ivan Magalhaes
1013Alejandro PerinUnited Kingdom2026-05-05Chanay, Jeffrey A Esq NEGOTIATION56Asiya Javayant
1014Julie StensethBrazil2026-05-09Dorl, James J Esq RENEWAL40Amy Elsner
1015Mujtaba NickaArgentina2026-05-05Printing Dimensions RENEWAL25Onyama Limba
1016Maisha RulapaughGermany2026-05-08King, Christopher A Esq PROPOSAL77Asiya Javayant
1017Aditya KuskoSpain2026-05-03Chemel, James L Cpa NEGOTIATION42Ivan Magalhaes
1018Octavia MaletBrazil2026-05-11Truhlar And Truhlar Attys UNQUALIFIED16Stephen Shaw
1019Antonio CaudyRussia2026-04-23Rousseaux, Michael Esq PROPOSAL64Ioni Bowcher
1020Murillo MaletGermany2026-05-13Chemel, James L Cpa PROPOSAL23Onyama Limba
1021Cody SaylorsItaly2026-05-04Morlong Associates NEW99Onyama Limba
1022Alejandro PerinFrance2026-04-28Benton, John B Jr RENEWAL69Onyama Limba
1023Aika InouyeItaly2026-05-15Truhlar And Truhlar Attys RENEWAL63Anna Fali
1024Kaitlin OstroskyArgentina2026-04-30Commercial Press NEW89Xuxue Feng
1025Aruna FigeroaRussia2026-05-15Chapman, Ross E Esq NEW36Xuxue Feng
1026Nicolas IturbideUnited Kingdom2026-05-03Rangoni Of Florence NEW81Amy Elsner
1027Antonio CaudyIndia2026-04-23Chapman, Ross E Esq NEW55Ioni Bowcher
1028Jennifer AmigonAustralia2026-05-14Chapman, Ross E Esq PROPOSAL86Bernardo Dominic
1029Emily WhobreyArgentina2026-04-21Rousseaux, Michael Esq NEW10Elwin Sharvill
1030Costa DilliardCanada2026-05-02Rousseaux, Michael Esq RENEWAL37Onyama Limba
1031Arvin AlbaresRussia2026-05-01Feltz Printing Service PROPOSAL62Stephen Shaw
1032David DarakjyJapan2026-05-01King, Christopher A Esq PROPOSAL67Elwin Sharvill
1033Silvio SlusarskiJapan2026-05-04Truhlar And Truhlar Attys UNQUALIFIED45Anna Fali
1034David DarakjyJapan2026-05-16Chanay, Jeffrey A Esq RENEWAL67Ioni Bowcher
1035Isabel BowleyBrazil2026-04-23Feiner Bros NEW56Ioni Bowcher
1036Jeanfrancois VenereCanada2026-04-24Buckley Miller Wright QUALIFIED87Xuxue Feng
1037Isabel BowleyUnited Kingdom2026-05-09Chapman, Ross E Esq PROPOSAL12Bernardo Dominic
1038Ricardo GauchoJapan2026-05-06Benton, John B Jr RENEWAL32Anna Fali
1039Tony FollerCanada2026-04-23Commercial Press UNQUALIFIED42Ioni Bowcher
1040Arvin AlbaresGermany2026-04-23Chapman, Ross E Esq PROPOSAL84Stephen Shaw
1041Mayumi KolmetzAustralia2026-05-16Feltz Printing Service NEW41Bernardo Dominic
1042Kaitlin OstroskyIndia2026-05-16Benton, John B Jr UNQUALIFIED88Ioni Bowcher
1043Ivar PaprockiIndia2026-05-07Printing Dimensions QUALIFIED5Xuxue Feng
1044James ButtFrance2026-05-11Feltz Printing Service UNQUALIFIED20Ioni Bowcher
1045Munro FerenczFrance2026-05-10Morlong Associates RENEWAL57Amy Elsner
1046Juan WieserJapan2026-05-13Chemel, James L Cpa NEGOTIATION89Stephen Shaw
1047Jennifer AmigonArgentina2026-04-25Feltz Printing Service NEGOTIATION91Xuxue Feng
1048David DarakjyBrazil2026-05-07Dorl, James J Esq NEGOTIATION6Xuxue Feng
1049Johnson SergiRussia2026-05-02Truhlar And Truhlar Attys PROPOSAL86Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyRussiaAnna Fali PROPOSAL
Francesco ShinkoFranceAnna Fali UNQUALIFIED
Jeanfrancois VenereAustraliaXuxue Feng PROPOSAL
Izzy GarufiArgentinaOnyama Limba PROPOSAL
Greenwood BologniaIndiaElwin Sharvill NEGOTIATION
David DarakjyAustraliaOnyama Limba UNQUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant NEW
Clifford RimItalyAnna Fali NEW
Tony FollerFranceElwin Sharvill PROPOSAL
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Alejandro PerinFranceStephen Shaw UNQUALIFIED
Murillo MaletCanadaXuxue Feng NEGOTIATION
Ricardo GauchoJapanElwin Sharvill NEW
Jennifer AmigonBrazilBernardo Dominic NEGOTIATION
Julie StensethRussiaXuxue Feng NEGOTIATION
Deepesh ChuiBrazilOnyama Limba PROPOSAL
Jeanfrancois VenereRussiaAmy Elsner NEW
Kaitlin OstroskyBrazilIoni Bowcher PROPOSAL
Rodrigues CampainFranceAsiya Javayant NEW
Izzy GarufiRussiaAnna Fali QUALIFIED
Arvin AlbaresJapanIvan Magalhaes RENEWAL
Alejandro PerinBrazilStephen Shaw RENEWAL
Chavez BriddickIndiaXuxue Feng NEW
Alejandro PerinSpainElwin Sharvill PROPOSAL
Greenwood BologniaIndiaAnna Fali UNQUALIFIED
Wickens NestleGermanyBernardo Dominic UNQUALIFIED
Octavia MaletCanadaAnna Fali PROPOSAL
Maisha RulapaughFranceIvan Magalhaes NEGOTIATION
Francesco ShinkoGermanyIoni Bowcher NEW
Ivar PaprockiFranceXuxue Feng NEGOTIATION
Francesco ShinkoUnited KingdomAmy Elsner NEGOTIATION
Rodrigues CampainJapanBernardo Dominic QUALIFIED
James ButtUnited KingdomAmy Elsner RENEWAL
Rodrigues CampainItalyElwin Sharvill PROPOSAL
Octavia MaletIndiaAmy Elsner UNQUALIFIED
Smith GlickRussiaIoni Bowcher QUALIFIED
Mujtaba NickaItalyAnna Fali QUALIFIED
Smith GlickRussiaElwin Sharvill PROPOSAL
Silvio SlusarskiJapanAsiya Javayant UNQUALIFIED
Murillo MaletRussiaIoni Bowcher NEGOTIATION
Adams MorascaRussiaBernardo Dominic QUALIFIED
Claire TollnerIndiaAmy Elsner NEGOTIATION
Clifford RimJapanAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomStephen Shaw RENEWAL
Jeanfrancois VenereRussiaBernardo Dominic NEW
Clifford RimGermanyXuxue Feng UNQUALIFIED
Isabel BowleyItalyAmy Elsner RENEWAL
Emily WhobreyJapanXuxue Feng PROPOSAL
James ButtRussiaAnna Fali QUALIFIED
Smith GlickJapanStephen Shaw RENEWAL
Frozen Columns
Name
Kadeem Flosi
Deepesh Chui
Maisha Rulapaugh
Mayumi Kolmetz
David Darakjy
Mayumi Kolmetz
Arvin Albares
Ricardo Gaucho
Jefferson Schemmer
Cody Saylors
Izzy Garufi
Sinclair Waycott
Juan Wieser
Adams Morasca
Jones Vocelka
Darci Poquette
Maria Marrier
Julie Stenseth
Jones Vocelka
Murillo Malet
Morrow Ruta
Ivar Paprocki
Julie Stenseth
Mayumi Kolmetz
Clifford Rim
Izzy Garufi
Smith Glick
Ivar Paprocki
Mujtaba Nicka
Aika Inouye
Emily Whobrey
Faith Gillian
Izzy Garufi
Antonio Caudy
Aruna Figeroa
Mujtaba Nicka
Jeanfrancois Venere
Aika Inouye
Wickens Nestle
Jeanfrancois Venere
Cody Saylors
Antonio Caudy
Jefferson Schemmer
Faith Gillian
Jeanfrancois Venere
Izzy Garufi
Morrow Ruta
Greenwood Bolognia
David Darakjy
Aika Inouye
IdCountryDate
1000Australia2026-05-08
1001United Kingdom2026-04-30
1002Canada2026-04-28
1003Canada2026-04-24
1004Spain2026-04-22
1005Australia2026-05-09
1006India2026-05-13
1007Russia2026-05-20
1008Russia2026-04-27
1009Russia2026-05-17
1010Japan2026-05-15
1011Russia2026-05-04
1012Australia2026-04-26
1013Australia2026-05-16
1014Russia2026-05-15
1015Canada2026-04-30
1016Canada2026-05-10
1017Brazil2026-04-26
1018Spain2026-05-09
1019Canada2026-04-26
1020Canada2026-04-21
1021Spain2026-05-12
1022India2026-05-18
1023Argentina2026-05-15
1024Spain2026-05-10
1025Australia2026-05-06
1026United Kingdom2026-05-03
1027Argentina2026-04-29
1028Japan2026-04-28
1029France2026-05-14
1030Brazil2026-04-29
1031Canada2026-05-09
1032Australia2026-04-29
1033Argentina2026-04-24
1034India2026-05-17
1035United Kingdom2026-04-21
1036Australia2026-05-15
1037France2026-04-29
1038France2026-04-29
1039Russia2026-05-15
1040India2026-04-21
1041Brazil2026-05-07
1042Russia2026-04-24
1043Brazil2026-05-15
1044Brazil2026-05-17
1045Australia2026-05-11
1046Japan2026-04-25
1047Australia2026-05-11
1048Russia2026-05-01
1049Australia2026-05-13

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Germany2026-04-22
Nicolas Iturbide1001Argentina2026-04-30
Emily Whobrey1002India2026-05-02
Antonio Caudy1003United Kingdom2026-05-14
Morrow Ruta1004United Kingdom2026-05-16
David Darakjy1005Italy2026-04-24
Stacey Maclead1006United Kingdom2026-05-20
Leon Oldroyd1007France2026-04-23
Antonio Caudy1008Germany2026-04-24
Kaitlin Ostrosky1009Japan2026-05-05
Emily Whobrey1010Brazil2026-05-02
Aditya Kusko1011France2026-04-27
Ivar Paprocki1012Canada2026-04-25
Juan Wieser1013Germany2026-04-29
Adams Morasca1014Spain2026-05-03
Deepesh Chui1015Brazil2026-05-12
Kadeem Flosi1016France2026-05-10
Tony Foller1017Canada2026-05-17
Murillo Malet1018Russia2026-04-25
Aditya Kusko1019Japan2026-05-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottFranceAnna Fali PROPOSAL
Wickens NestleJapanStephen Shaw UNQUALIFIED
Aruna FigeroaSpainBernardo Dominic QUALIFIED
Costa DilliardBrazilAmy Elsner RENEWAL
Ivar PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
Faith GillianItalyOnyama Limba QUALIFIED
Maria MarrierArgentinaOnyama Limba UNQUALIFIED
Faith GillianAustraliaElwin Sharvill RENEWAL
Kaitlin OstroskyAustraliaStephen Shaw NEW
Leja CaldareraGermanyOnyama Limba PROPOSAL
Sinclair WaycottUnited KingdomAmy Elsner RENEWAL
Aika InouyeSpainIoni Bowcher PROPOSAL
Mayumi KolmetzUnited KingdomStephen Shaw PROPOSAL
Aruna FigeroaArgentinaXuxue Feng UNQUALIFIED
Chavez BriddickRussiaOnyama Limba PROPOSAL
Jennifer AmigonUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiGermanyAnna Fali RENEWAL
Johnson SergiJapanElwin Sharvill NEW
Misaki RoysterGermanyElwin Sharvill RENEWAL
Octavia MaletBrazilAmy Elsner UNQUALIFIED
Stacey MacleadGermanyXuxue Feng PROPOSAL
Aruna FigeroaSpainAsiya Javayant QUALIFIED
Jeanfrancois VenereArgentinaStephen Shaw NEGOTIATION
Darci PoquetteRussiaXuxue Feng NEGOTIATION
Chavez BriddickFranceAmy Elsner NEGOTIATION
Claire TollnerItalyIvan Magalhaes PROPOSAL
James ButtBrazilElwin Sharvill NEGOTIATION
David DarakjyJapanXuxue Feng NEW
Silvio SlusarskiCanadaElwin Sharvill UNQUALIFIED
Aika InouyeItalyXuxue Feng PROPOSAL
Silvio SlusarskiJapanOnyama Limba QUALIFIED
Isabel BowleyJapanAmy Elsner PROPOSAL
Mayumi KolmetzFranceAnna Fali PROPOSAL
Maisha RulapaughGermanyOnyama Limba UNQUALIFIED
Leon OldroydUnited KingdomIoni Bowcher PROPOSAL
Emily WhobreySpainBernardo Dominic PROPOSAL
Salvatore StockhamAustraliaAnna Fali QUALIFIED
Sinclair WaycottGermanyBernardo Dominic NEGOTIATION
Antonio CaudyRussiaOnyama Limba QUALIFIED

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