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
Mujtaba NickaSpainOnyama Limba NEGOTIATION
Costa DilliardBrazilAsiya Javayant NEW
Faith GillianSpainIvan Magalhaes RENEWAL
Deepesh ChuiItalyAnna Fali UNQUALIFIED
Aika InouyeRussiaIvan Magalhaes PROPOSAL
Isabel BowleyItalyOnyama Limba RENEWAL
Alejandro PerinRussiaAsiya Javayant RENEWAL
Salvatore StockhamCanadaAsiya Javayant NEW
Faith GillianCanadaAsiya Javayant QUALIFIED
Stacey MacleadJapanAmy Elsner RENEWAL
James ButtBrazilOnyama Limba PROPOSAL
Ivar PaprockiBrazilAnna Fali NEGOTIATION
Stacey MacleadFranceAnna Fali NEGOTIATION
Octavia MaletFranceElwin Sharvill RENEWAL
Juan WieserGermanyAmy Elsner RENEWAL
Misaki RoysterArgentinaOnyama Limba RENEWAL
Jeanfrancois VenereAustraliaXuxue Feng PROPOSAL
Deepesh ChuiJapanAmy Elsner PROPOSAL
Julie StensethBrazilStephen Shaw PROPOSAL
Isabel BowleySpainBernardo Dominic NEGOTIATION
Wickens NestleAustraliaAmy Elsner NEW
Greenwood BologniaFranceStephen Shaw UNQUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw NEGOTIATION
Francesco ShinkoRussiaAmy Elsner PROPOSAL
Francesco ShinkoSpainElwin Sharvill PROPOSAL
Misaki RoysterFranceOnyama Limba PROPOSAL
Octavia MaletItalyXuxue Feng NEGOTIATION
Silvio SlusarskiBrazilIoni Bowcher NEW
Mujtaba NickaJapanBernardo Dominic UNQUALIFIED
Jefferson SchemmerJapanElwin Sharvill UNQUALIFIED
Aruna FigeroaArgentinaStephen Shaw NEW
Nicolas IturbideBrazilOnyama Limba UNQUALIFIED
Claire TollnerItalyXuxue Feng PROPOSAL
Alejandro PerinBrazilOnyama Limba PROPOSAL
Jeanfrancois VenereArgentinaAsiya Javayant NEGOTIATION
Greenwood BologniaFranceOnyama Limba UNQUALIFIED
Alejandro PerinRussiaXuxue Feng QUALIFIED
Stacey MacleadRussiaAnna Fali UNQUALIFIED
Silvio SlusarskiArgentinaIvan Magalhaes QUALIFIED
Wickens NestleItalyXuxue Feng RENEWAL
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Jennifer AmigonGermanyAnna Fali RENEWAL
Leon OldroydItalyOnyama Limba NEW
Wickens NestleCanadaStephen Shaw QUALIFIED
Leja CaldareraItalyElwin Sharvill RENEWAL
Alejandro PerinRussiaIvan Magalhaes NEGOTIATION
Emily WhobreyAustraliaStephen Shaw PROPOSAL
Salvatore StockhamIndiaOnyama Limba NEW
Mujtaba NickaFranceIoni Bowcher NEGOTIATION
Clifford RimArgentinaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiBrazilAsiya Javayant QUALIFIED
Aditya KuskoArgentinaElwin Sharvill RENEWAL
Antonio CaudyRussiaIvan Magalhaes RENEWAL
Alejandro PerinUnited KingdomBernardo Dominic QUALIFIED
Nicolas IturbideItalyIoni Bowcher NEGOTIATION
Munro FerenczFranceBernardo Dominic NEGOTIATION
Munro FerenczAustraliaIvan Magalhaes QUALIFIED
Misaki RoysterRussiaStephen Shaw PROPOSAL
Ashley DoeRussiaAmy Elsner RENEWAL
Maria MarrierFranceElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardSpain2026-06-09Benton, John B Jr QUALIFIED26Amy Elsner
1001Stacey MacleadItaly2026-05-23Morlong Associates NEW35Elwin Sharvill
1002Ashley DoeCanada2026-06-03Truhlar And Truhlar Attys QUALIFIED27Ioni Bowcher
1003Aika InouyeUnited Kingdom2026-05-25Chemel, James L Cpa QUALIFIED78Stephen Shaw
1004Ricardo GauchoGermany2026-05-30Feltz Printing Service QUALIFIED95Bernardo Dominic
1005Ashley DoeUnited Kingdom2026-06-06Commercial Press RENEWAL17Anna Fali
1006Deepesh ChuiItaly2026-05-13Morlong Associates NEGOTIATION77Elwin Sharvill
1007Munro FerenczIndia2026-05-30Benton, John B Jr UNQUALIFIED68Onyama Limba
1008Deepesh ChuiCanada2026-05-30Printing Dimensions QUALIFIED98Onyama Limba
1009James ButtCanada2026-06-05Printing Dimensions NEW42Bernardo Dominic
1010Jones VocelkaGermany2026-05-17Dorl, James J Esq QUALIFIED24Onyama Limba
1011Greenwood BologniaSpain2026-05-17Rousseaux, Michael Esq UNQUALIFIED33Amy Elsner
1012Antonio CaudyCanada2026-06-02Morlong Associates UNQUALIFIED33Anna Fali
1013Mayumi KolmetzJapan2026-05-18Benton, John B Jr NEW82Asiya Javayant
1014Rodrigues CampainUnited Kingdom2026-06-06Commercial Press NEGOTIATION72Amy Elsner
1015Jones VocelkaSpain2026-05-25Printing Dimensions PROPOSAL13Elwin Sharvill
1016Jennifer AmigonItaly2026-06-08Chapman, Ross E Esq PROPOSAL57Bernardo Dominic
1017Stacey MacleadFrance2026-05-31Morlong Associates NEW18Ivan Magalhaes
1018Adams MorascaSpain2026-05-22Truhlar And Truhlar Attys RENEWAL87Bernardo Dominic
1019Alejandro PerinArgentina2026-05-17Chanay, Jeffrey A Esq PROPOSAL93Asiya Javayant
1020Maria MarrierUnited Kingdom2026-06-07Benton, John B Jr UNQUALIFIED88Asiya Javayant
1021Jones VocelkaUnited Kingdom2026-05-31Feiner Bros NEW49Elwin Sharvill
1022Sinclair WaycottBrazil2026-06-03Rousseaux, Michael Esq RENEWAL80Stephen Shaw
1023Kadeem FlosiJapan2026-06-10King, Christopher A Esq PROPOSAL83Xuxue Feng
1024Munro FerenczIndia2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED41Stephen Shaw
1025Octavia MaletAustralia2026-05-16Chapman, Ross E Esq RENEWAL61Onyama Limba
1026Clifford RimGermany2026-06-02Chanay, Jeffrey A Esq NEW80Amy Elsner
1027Nicolas IturbideAustralia2026-06-09Truhlar And Truhlar Attys RENEWAL33Elwin Sharvill
1028Smith GlickGermany2026-05-25Buckley Miller Wright NEGOTIATION95Elwin Sharvill
1029Jefferson SchemmerBrazil2026-05-24Dorl, James J Esq NEGOTIATION78Elwin Sharvill
1030Costa DilliardArgentina2026-05-14King, Christopher A Esq RENEWAL71Ivan Magalhaes
1031Smith GlickJapan2026-05-24Buckley Miller Wright UNQUALIFIED5Asiya Javayant
1032Claire TollnerCanada2026-05-29Commercial Press RENEWAL32Ioni Bowcher
1033Greenwood BologniaAustralia2026-06-06Chemel, James L Cpa QUALIFIED81Anna Fali
1034Misaki RoysterCanada2026-05-14Dorl, James J Esq NEW78Anna Fali
1035Costa DilliardAustralia2026-06-01Printing Dimensions NEGOTIATION57Asiya Javayant
1036Julie StensethArgentina2026-05-19King, Christopher A Esq UNQUALIFIED41Ivan Magalhaes
1037Rodrigues CampainSpain2026-05-31Chanay, Jeffrey A Esq QUALIFIED32Onyama Limba
1038Emily WhobreyUnited Kingdom2026-05-14Chapman, Ross E Esq RENEWAL29Ivan Magalhaes
1039Leon OldroydGermany2026-05-16Chemel, James L Cpa UNQUALIFIED75Amy Elsner
1040Stacey MacleadAustralia2026-05-15King, Christopher A Esq QUALIFIED45Stephen Shaw
1041Aika InouyeUnited Kingdom2026-06-03Truhlar And Truhlar Attys UNQUALIFIED73Elwin Sharvill
1042Smith GlickArgentina2026-06-11Commercial Press RENEWAL13Elwin Sharvill
1043Costa DilliardFrance2026-05-30Commercial Press UNQUALIFIED93Ioni Bowcher
1044Costa DilliardAustralia2026-06-06Benton, John B Jr PROPOSAL87Amy Elsner
1045Sinclair WaycottSpain2026-06-08Chanay, Jeffrey A Esq NEW54Onyama Limba
1046Greenwood BologniaUnited Kingdom2026-05-20Printing Dimensions QUALIFIED44Elwin Sharvill
1047Aika InouyeAustralia2026-05-18Chemel, James L Cpa NEGOTIATION60Ioni Bowcher
1048Sinclair WaycottUnited Kingdom2026-05-20Printing Dimensions QUALIFIED40Onyama Limba
1049Salvatore StockhamUnited Kingdom2026-05-23Chanay, Jeffrey A Esq PROPOSAL56Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaOnyama Limba NEGOTIATION
Jefferson SchemmerBrazilElwin Sharvill NEGOTIATION
Costa DilliardBrazilStephen Shaw NEW
Kadeem FlosiIndiaAmy Elsner UNQUALIFIED
Deepesh ChuiGermanyOnyama Limba PROPOSAL
Clifford RimIndiaAnna Fali NEGOTIATION
Jones VocelkaArgentinaAnna Fali PROPOSAL
Cody SaylorsAustraliaIvan Magalhaes NEW
Maisha RulapaughItalyXuxue Feng QUALIFIED
Octavia MaletFranceBernardo Dominic RENEWAL
Alejandro PerinCanadaStephen Shaw QUALIFIED
Emily WhobreyBrazilXuxue Feng NEGOTIATION
Jefferson SchemmerIndiaBernardo Dominic UNQUALIFIED
Stacey MacleadSpainIvan Magalhaes NEGOTIATION
Francesco ShinkoAustraliaIoni Bowcher UNQUALIFIED
Isabel BowleyGermanyElwin Sharvill NEW
Munro FerenczRussiaIoni Bowcher UNQUALIFIED
Murillo MaletJapanOnyama Limba PROPOSAL
Wickens NestleSpainAsiya Javayant UNQUALIFIED
Nicolas IturbideItalyElwin Sharvill RENEWAL
Aruna FigeroaFranceAsiya Javayant NEW
Mayumi KolmetzItalyElwin Sharvill UNQUALIFIED
Julie StensethGermanyOnyama Limba NEW
Maisha RulapaughAustraliaOnyama Limba QUALIFIED
Antonio CaudyIndiaAnna Fali NEW
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Greenwood BologniaUnited KingdomOnyama Limba PROPOSAL
Kadeem FlosiGermanyStephen Shaw NEGOTIATION
Isabel BowleyItalyAnna Fali NEGOTIATION
Juan WieserFranceElwin Sharvill QUALIFIED
Julie StensethGermanyOnyama Limba NEW
Ashley DoeItalyXuxue Feng NEGOTIATION
Isabel BowleyFranceElwin Sharvill QUALIFIED
Clifford RimAustraliaAsiya Javayant QUALIFIED
Maisha RulapaughArgentinaIoni Bowcher NEGOTIATION
Smith GlickUnited KingdomAsiya Javayant NEW
Maisha RulapaughIndiaXuxue Feng RENEWAL
Ivar PaprockiUnited KingdomAnna Fali PROPOSAL
Smith GlickFranceIvan Magalhaes PROPOSAL
Clifford RimAustraliaOnyama Limba PROPOSAL
Stacey MacleadAustraliaElwin Sharvill UNQUALIFIED
David DarakjyAustraliaStephen Shaw QUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Adams MorascaCanadaAmy Elsner NEGOTIATION
Juan WieserBrazilIoni Bowcher NEW
Adams MorascaBrazilOnyama Limba RENEWAL
Rodrigues CampainSpainOnyama Limba NEW
Salvatore StockhamArgentinaElwin Sharvill NEW
Ashley DoeSpainBernardo Dominic NEGOTIATION
Izzy GarufiIndiaAmy Elsner PROPOSAL
Frozen Columns
Name
Smith Glick
Mayumi Kolmetz
Nicolas Iturbide
Faith Gillian
Isabel Bowley
Morrow Ruta
Arvin Albares
Jeanfrancois Venere
Antonio Caudy
Izzy Garufi
Leon Oldroyd
Jones Vocelka
James Butt
Octavia Malet
Emily Whobrey
Leon Oldroyd
Aika Inouye
Kadeem Flosi
Clifford Rim
Alejandro Perin
Greenwood Bolognia
Maisha Rulapaugh
Rodrigues Campain
Antonio Caudy
Cody Saylors
Isabel Bowley
Jeanfrancois Venere
Munro Ferencz
Jefferson Schemmer
Cody Saylors
Aika Inouye
Ivar Paprocki
Greenwood Bolognia
Juan Wieser
Antonio Caudy
Maria Marrier
Silvio Slusarski
Leja Caldarera
Ashley Doe
Julie Stenseth
Deepesh Chui
Aditya Kusko
Darci Poquette
Wickens Nestle
Ivar Paprocki
Murillo Malet
Mujtaba Nicka
Arvin Albares
Mujtaba Nicka
Leon Oldroyd
IdCountryDate
1000Argentina2026-06-05
1001Italy2026-05-24
1002Canada2026-06-10
1003Spain2026-06-08
1004Germany2026-05-16
1005Italy2026-05-15
1006Canada2026-06-09
1007Italy2026-05-17
1008United Kingdom2026-05-24
1009Japan2026-05-28
1010Italy2026-06-08
1011Germany2026-05-22
1012United Kingdom2026-05-26
1013Canada2026-06-03
1014India2026-05-27
1015Brazil2026-05-30
1016Australia2026-05-29
1017Italy2026-06-05
1018Germany2026-05-22
1019Argentina2026-05-26
1020Japan2026-05-18
1021Brazil2026-05-23
1022Italy2026-06-11
1023France2026-06-11
1024Argentina2026-05-24
1025Germany2026-05-19
1026Canada2026-06-11
1027Germany2026-05-26
1028Russia2026-05-17
1029Germany2026-05-24
1030Germany2026-05-22
1031France2026-06-05
1032Germany2026-05-16
1033United Kingdom2026-05-27
1034Italy2026-05-22
1035Russia2026-05-27
1036Australia2026-05-26
1037Australia2026-06-08
1038Australia2026-05-25
1039Australia2026-05-18
1040India2026-05-27
1041Japan2026-05-26
1042United Kingdom2026-05-21
1043India2026-05-20
1044Argentina2026-06-09
1045Russia2026-05-17
1046Germany2026-05-19
1047Japan2026-05-30
1048Argentina2026-06-09
1049Russia2026-05-24

On-Demand Data

NameIdCountryDate
Tony Foller1000Japan2026-05-27
Clifford Rim1001France2026-05-30
Claire Tollner1002Argentina2026-06-05
Aruna Figeroa1003Australia2026-05-26
Aika Inouye1004Spain2026-05-19
Mayumi Kolmetz1005France2026-06-06
Tony Foller1006Japan2026-05-30
Clifford Rim1007Russia2026-05-23
Arvin Albares1008Spain2026-06-10
Leja Caldarera1009Argentina2026-05-18
Julie Stenseth1010Brazil2026-05-20
Emily Whobrey1011France2026-05-20
Wickens Nestle1012France2026-05-23
Aruna Figeroa1013Canada2026-06-03
Wickens Nestle1014Canada2026-06-03
Jefferson Schemmer1015Italy2026-05-15
Costa Dilliard1016Germany2026-06-05
Faith Gillian1017Germany2026-06-02
Greenwood Bolognia1018India2026-05-21
Morrow Ruta1019Japan2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaXuxue Feng UNQUALIFIED
Aika InouyeUnited KingdomAnna Fali NEW
Aruna FigeroaGermanyIvan Magalhaes UNQUALIFIED
Emily WhobreyItalyAnna Fali NEW
Mayumi KolmetzSpainIvan Magalhaes UNQUALIFIED
Misaki RoysterCanadaIvan Magalhaes RENEWAL
Rodrigues CampainItalyStephen Shaw NEW
Kadeem FlosiRussiaIoni Bowcher UNQUALIFIED
Sinclair WaycottSpainXuxue Feng NEW
Munro FerenczJapanXuxue Feng PROPOSAL
Julie StensethArgentinaXuxue Feng NEW
Adams MorascaBrazilXuxue Feng NEW
Mujtaba NickaSpainStephen Shaw QUALIFIED
Aruna FigeroaGermanyAmy Elsner RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes NEGOTIATION
Morrow RutaAustraliaOnyama Limba QUALIFIED
Adams MorascaRussiaIoni Bowcher NEGOTIATION
Izzy GarufiSpainBernardo Dominic NEW
Isabel BowleySpainAmy Elsner UNQUALIFIED
Clifford RimSpainIvan Magalhaes NEW
Aruna FigeroaBrazilIvan Magalhaes QUALIFIED
Johnson SergiBrazilIvan Magalhaes RENEWAL
Aika InouyeGermanyBernardo Dominic UNQUALIFIED
Johnson SergiJapanElwin Sharvill PROPOSAL
Faith GillianSpainStephen Shaw UNQUALIFIED
Darci PoquetteGermanyAsiya Javayant PROPOSAL
Tony FollerCanadaAsiya Javayant PROPOSAL
Wickens NestleIndiaStephen Shaw RENEWAL
Alejandro PerinFranceElwin Sharvill PROPOSAL
Morrow RutaItalyAnna Fali RENEWAL
Leja CaldareraIndiaStephen Shaw PROPOSAL
Darci PoquetteBrazilAsiya Javayant NEGOTIATION
Mayumi KolmetzItalyAmy Elsner RENEWAL
Munro FerenczRussiaIvan Magalhaes UNQUALIFIED
Morrow RutaUnited KingdomIoni Bowcher RENEWAL
Leon OldroydAustraliaIvan Magalhaes PROPOSAL
Clifford RimAustraliaOnyama Limba PROPOSAL
Faith GillianRussiaAnna Fali QUALIFIED
Maisha RulapaughItalyElwin Sharvill NEGOTIATION
Jennifer AmigonCanadaStephen Shaw 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>