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
Wickens NestleItalyAnna Fali UNQUALIFIED
Aruna FigeroaRussiaStephen Shaw NEGOTIATION
Antonio CaudyCanadaElwin Sharvill NEW
Jones VocelkaArgentinaAnna Fali RENEWAL
Mujtaba NickaSpainIoni Bowcher NEGOTIATION
Wickens NestleCanadaAmy Elsner PROPOSAL
Jefferson SchemmerUnited KingdomXuxue Feng RENEWAL
Francesco ShinkoCanadaIoni Bowcher UNQUALIFIED
Claire TollnerAustraliaOnyama Limba QUALIFIED
Aika InouyeArgentinaStephen Shaw NEGOTIATION
Murillo MaletBrazilIvan Magalhaes UNQUALIFIED
Smith GlickSpainXuxue Feng NEW
Octavia MaletUnited KingdomIoni Bowcher PROPOSAL
Isabel BowleyBrazilXuxue Feng NEW
Maria MarrierBrazilXuxue Feng QUALIFIED
Antonio CaudyFranceIoni Bowcher QUALIFIED
Nicolas IturbideItalyAmy Elsner UNQUALIFIED
Stacey MacleadGermanyOnyama Limba UNQUALIFIED
Adams MorascaIndiaBernardo Dominic UNQUALIFIED
Wickens NestleIndiaXuxue Feng PROPOSAL
Jennifer AmigonSpainAnna Fali NEW
Darci PoquetteJapanBernardo Dominic QUALIFIED
Stacey MacleadJapanAsiya Javayant RENEWAL
Emily WhobreyArgentinaOnyama Limba PROPOSAL
Antonio CaudySpainElwin Sharvill NEW
Clifford RimFranceElwin Sharvill UNQUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic PROPOSAL
David DarakjyJapanAnna Fali UNQUALIFIED
James ButtAustraliaAnna Fali RENEWAL
Tony FollerCanadaIoni Bowcher RENEWAL
Smith GlickArgentinaIoni Bowcher PROPOSAL
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Jones VocelkaIndiaStephen Shaw NEGOTIATION
Aditya KuskoIndiaIoni Bowcher UNQUALIFIED
Tony FollerRussiaIoni Bowcher RENEWAL
Maisha RulapaughSpainXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaAsiya Javayant RENEWAL
Aruna FigeroaSpainBernardo Dominic QUALIFIED
Ivar PaprockiBrazilElwin Sharvill QUALIFIED
Nicolas IturbideGermanyXuxue Feng RENEWAL
David DarakjyJapanAsiya Javayant RENEWAL
Murillo MaletRussiaBernardo Dominic UNQUALIFIED
Murillo MaletJapanAmy Elsner RENEWAL
Jefferson SchemmerIndiaXuxue Feng NEGOTIATION
Ivar PaprockiSpainBernardo Dominic QUALIFIED
Kadeem FlosiBrazilAmy Elsner NEW
Munro FerenczIndiaAmy Elsner QUALIFIED
Wickens NestleJapanAnna Fali QUALIFIED
Nicolas IturbideIndiaIvan Magalhaes RENEWAL
Smith GlickJapanElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro FerenczRussiaAnna Fali RENEWAL
Ricardo GauchoFranceAsiya Javayant RENEWAL
Stacey MacleadAustraliaIoni Bowcher PROPOSAL
Juan WieserGermanyStephen Shaw NEGOTIATION
Deepesh ChuiArgentinaAnna Fali NEW
Clifford RimUnited KingdomAmy Elsner UNQUALIFIED
Nicolas IturbideItalyXuxue Feng NEGOTIATION
Aditya KuskoSpainBernardo Dominic NEW
Murillo MaletRussiaAnna Fali RENEWAL
Octavia MaletBrazilElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiBrazil2026-05-05Chanay, Jeffrey A Esq QUALIFIED30Elwin Sharvill
1001Greenwood BologniaJapan2026-05-21Chanay, Jeffrey A Esq NEW0Amy Elsner
1002Tony FollerCanada2026-05-03Chanay, Jeffrey A Esq NEW99Xuxue Feng
1003Leja CaldareraAustralia2026-05-07King, Christopher A Esq UNQUALIFIED16Onyama Limba
1004James ButtRussia2026-05-02Chapman, Ross E Esq RENEWAL11Asiya Javayant
1005Aditya KuskoArgentina2026-05-20Benton, John B Jr UNQUALIFIED83Stephen Shaw
1006Jefferson SchemmerFrance2026-05-21Chapman, Ross E Esq NEW52Stephen Shaw
1007Ashley DoeGermany2026-05-15Feiner Bros QUALIFIED99Xuxue Feng
1008Jeanfrancois VenereBrazil2026-05-21Chemel, James L Cpa UNQUALIFIED29Ioni Bowcher
1009Emily WhobreyItaly2026-05-25Chapman, Ross E Esq PROPOSAL52Stephen Shaw
1010Stacey MacleadBrazil2026-05-05Dorl, James J Esq NEW90Elwin Sharvill
1011Munro FerenczUnited Kingdom2026-05-02Chapman, Ross E Esq RENEWAL81Asiya Javayant
1012Aruna FigeroaBrazil2026-05-14Commercial Press QUALIFIED40Onyama Limba
1013Arvin AlbaresCanada2026-05-17Chapman, Ross E Esq NEW94Asiya Javayant
1014David DarakjyItaly2026-05-23Morlong Associates NEGOTIATION43Stephen Shaw
1015Johnson SergiIndia2026-05-15Buckley Miller Wright NEW68Xuxue Feng
1016Misaki RoysterItaly2026-04-28Rousseaux, Michael Esq QUALIFIED79Amy Elsner
1017Sinclair WaycottAustralia2026-05-09Benton, John B Jr UNQUALIFIED39Ioni Bowcher
1018Aika InouyeBrazil2026-05-19Dorl, James J Esq QUALIFIED27Stephen Shaw
1019Greenwood BologniaJapan2026-05-08Truhlar And Truhlar Attys RENEWAL2Ivan Magalhaes
1020Claire TollnerAustralia2026-05-11Feltz Printing Service NEGOTIATION81Ivan Magalhaes
1021Isabel BowleySpain2026-05-01Feltz Printing Service NEW75Stephen Shaw
1022Rodrigues CampainSpain2026-05-10Chanay, Jeffrey A Esq NEGOTIATION50Elwin Sharvill
1023Julie StensethRussia2026-05-27Benton, John B Jr PROPOSAL40Ivan Magalhaes
1024Jones VocelkaBrazil2026-05-20Chanay, Jeffrey A Esq NEW80Asiya Javayant
1025Maria MarrierJapan2026-05-26Chapman, Ross E Esq PROPOSAL89Bernardo Dominic
1026Ivar PaprockiGermany2026-04-29Printing Dimensions PROPOSAL45Stephen Shaw
1027Jennifer AmigonJapan2026-05-14Rousseaux, Michael Esq RENEWAL34Xuxue Feng
1028Julie StensethItaly2026-05-21Truhlar And Truhlar Attys NEGOTIATION82Ivan Magalhaes
1029Adams MorascaSpain2026-05-08Buckley Miller Wright NEW92Elwin Sharvill
1030David DarakjyIndia2026-05-06Chanay, Jeffrey A Esq QUALIFIED85Elwin Sharvill
1031Maria MarrierGermany2026-05-20Dorl, James J Esq RENEWAL74Ioni Bowcher
1032Salvatore StockhamItaly2026-05-01Rangoni Of Florence NEW18Asiya Javayant
1033David DarakjyItaly2026-05-20Benton, John B Jr RENEWAL38Elwin Sharvill
1034Costa DilliardItaly2026-05-16Chanay, Jeffrey A Esq RENEWAL68Elwin Sharvill
1035Jefferson SchemmerIndia2026-05-11Chanay, Jeffrey A Esq RENEWAL31Ioni Bowcher
1036Jennifer AmigonSpain2026-05-17Rangoni Of Florence UNQUALIFIED19Bernardo Dominic
1037Johnson SergiJapan2026-04-29Dorl, James J Esq PROPOSAL43Stephen Shaw
1038Jeanfrancois VenereIndia2026-05-04Benton, John B Jr RENEWAL14Amy Elsner
1039Greenwood BologniaUnited Kingdom2026-05-20Chemel, James L Cpa PROPOSAL11Elwin Sharvill
1040James ButtCanada2026-05-08Printing Dimensions PROPOSAL19Elwin Sharvill
1041Emily WhobreyBrazil2026-05-18Chanay, Jeffrey A Esq NEGOTIATION1Ivan Magalhaes
1042Johnson SergiRussia2026-05-19Chapman, Ross E Esq PROPOSAL66Onyama Limba
1043Murillo MaletUnited Kingdom2026-05-27Feltz Printing Service NEGOTIATION14Amy Elsner
1044Emily WhobreyGermany2026-04-30Printing Dimensions QUALIFIED82Ioni Bowcher
1045Deepesh ChuiCanada2026-05-08Morlong Associates RENEWAL25Bernardo Dominic
1046Darci PoquetteBrazil2026-05-15Rangoni Of Florence RENEWAL72Xuxue Feng
1047Mayumi KolmetzGermany2026-05-12King, Christopher A Esq PROPOSAL81Elwin Sharvill
1048Johnson SergiRussia2026-05-22Printing Dimensions QUALIFIED97Xuxue Feng
1049Deepesh ChuiArgentina2026-05-17King, Christopher A Esq NEGOTIATION30Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyGermanyBernardo Dominic RENEWAL
Julie StensethJapanAmy Elsner PROPOSAL
Kadeem FlosiFranceBernardo Dominic PROPOSAL
Kaitlin OstroskyJapanXuxue Feng UNQUALIFIED
Costa DilliardArgentinaStephen Shaw QUALIFIED
Chavez BriddickSpainXuxue Feng UNQUALIFIED
Chavez BriddickAustraliaBernardo Dominic PROPOSAL
Jones VocelkaAustraliaAsiya Javayant NEW
Costa DilliardItalyOnyama Limba NEW
Isabel BowleyIndiaAsiya Javayant UNQUALIFIED
Ivar PaprockiAustraliaAsiya Javayant PROPOSAL
Emily WhobreyItalyIvan Magalhaes NEW
Juan WieserGermanyXuxue Feng PROPOSAL
Alejandro PerinItalyElwin Sharvill RENEWAL
Jeanfrancois VenereIndiaBernardo Dominic NEW
Aditya KuskoSpainElwin Sharvill UNQUALIFIED
Greenwood BologniaArgentinaOnyama Limba PROPOSAL
Juan WieserIndiaOnyama Limba NEW
Antonio CaudyFranceIoni Bowcher RENEWAL
Murillo MaletJapanOnyama Limba NEGOTIATION
Kaitlin OstroskyBrazilXuxue Feng NEGOTIATION
Smith GlickArgentinaXuxue Feng UNQUALIFIED
Emily WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson SchemmerGermanyAnna Fali UNQUALIFIED
Isabel BowleyGermanyStephen Shaw UNQUALIFIED
Munro FerenczBrazilXuxue Feng QUALIFIED
Misaki RoysterIndiaAmy Elsner RENEWAL
Isabel BowleyBrazilElwin Sharvill UNQUALIFIED
Leon OldroydArgentinaAmy Elsner NEGOTIATION
Aika InouyeRussiaStephen Shaw RENEWAL
Maria MarrierUnited KingdomAmy Elsner PROPOSAL
Aruna FigeroaSpainIoni Bowcher RENEWAL
Greenwood BologniaBrazilStephen Shaw RENEWAL
Francesco ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Emily WhobreyBrazilAnna Fali PROPOSAL
Isabel BowleyUnited KingdomStephen Shaw UNQUALIFIED
Salvatore StockhamAustraliaBernardo Dominic PROPOSAL
Aika InouyeRussiaOnyama Limba RENEWAL
Emily WhobreyArgentinaBernardo Dominic NEGOTIATION
Silvio SlusarskiUnited KingdomAnna Fali RENEWAL
Kaitlin OstroskyBrazilAnna Fali RENEWAL
Rodrigues CampainUnited KingdomAmy Elsner NEW
Morrow RutaArgentinaBernardo Dominic PROPOSAL
Clifford RimJapanBernardo Dominic UNQUALIFIED
Isabel BowleySpainXuxue Feng PROPOSAL
Kaitlin OstroskyFranceElwin Sharvill QUALIFIED
Wickens NestleJapanStephen Shaw RENEWAL
Wickens NestleJapanAmy Elsner QUALIFIED
Faith GillianBrazilAnna Fali UNQUALIFIED
Tony FollerCanadaOnyama Limba PROPOSAL
Frozen Columns
Name
Izzy Garufi
Chavez Briddick
Cody Saylors
Octavia Malet
Salvatore Stockham
Sinclair Waycott
Jennifer Amigon
Leja Caldarera
Darci Poquette
Johnson Sergi
Costa Dilliard
Ricardo Gaucho
Claire Tollner
Leja Caldarera
Munro Ferencz
Maria Marrier
Kadeem Flosi
Jones Vocelka
Cody Saylors
Ashley Doe
Jeanfrancois Venere
Emily Whobrey
Aruna Figeroa
Ashley Doe
Emily Whobrey
Mujtaba Nicka
Jennifer Amigon
Deepesh Chui
Leon Oldroyd
Emily Whobrey
David Darakjy
Antonio Caudy
Rodrigues Campain
Aruna Figeroa
Faith Gillian
Silvio Slusarski
Jones Vocelka
Maisha Rulapaugh
Tony Foller
Maisha Rulapaugh
Leon Oldroyd
Mujtaba Nicka
Aditya Kusko
Chavez Briddick
Wickens Nestle
Octavia Malet
Mujtaba Nicka
Silvio Slusarski
Julie Stenseth
Isabel Bowley
IdCountryDate
1000United Kingdom2026-05-20
1001Australia2026-05-26
1002India2026-05-24
1003Argentina2026-05-13
1004Australia2026-05-08
1005Brazil2026-05-24
1006Argentina2026-05-13
1007Canada2026-05-24
1008Spain2026-04-29
1009United Kingdom2026-05-25
1010United Kingdom2026-05-03
1011Italy2026-05-23
1012Italy2026-05-05
1013Japan2026-05-18
1014India2026-05-21
1015France2026-05-27
1016Canada2026-05-20
1017United Kingdom2026-05-19
1018Japan2026-04-29
1019Germany2026-05-08
1020France2026-05-15
1021Canada2026-05-13
1022France2026-05-05
1023Canada2026-04-30
1024Argentina2026-05-09
1025Australia2026-05-13
1026India2026-05-18
1027Spain2026-05-18
1028Brazil2026-04-29
1029Brazil2026-05-08
1030Argentina2026-05-27
1031Canada2026-05-26
1032United Kingdom2026-05-26
1033India2026-05-10
1034Germany2026-05-17
1035Russia2026-05-04
1036Australia2026-05-09
1037United Kingdom2026-04-28
1038Australia2026-05-19
1039Brazil2026-04-30
1040Japan2026-05-07
1041Brazil2026-05-27
1042France2026-05-14
1043Argentina2026-05-16
1044Italy2026-05-27
1045Argentina2026-04-30
1046Italy2026-05-25
1047Argentina2026-05-20
1048United Kingdom2026-04-30
1049Russia2026-05-01

On-Demand Data

NameIdCountryDate
Munro Ferencz1000Argentina2026-05-22
Claire Tollner1001France2026-05-14
Salvatore Stockham1002India2026-05-12
Arvin Albares1003Brazil2026-05-10
Rodrigues Campain1004Australia2026-05-16
Mujtaba Nicka1005Japan2026-05-20
Stacey Maclead1006Canada2026-05-04
Ivar Paprocki1007Spain2026-05-02
Wickens Nestle1008Argentina2026-05-02
Ivar Paprocki1009Argentina2026-05-18
Ivar Paprocki1010Germany2026-05-24
Darci Poquette1011France2026-04-29
Aditya Kusko1012Brazil2026-05-05
Aika Inouye1013Italy2026-04-28
Maria Marrier1014Brazil2026-05-09
Julie Stenseth1015Russia2026-05-15
Clifford Rim1016Germany2026-05-20
Smith Glick1017Italy2026-05-20
Aruna Figeroa1018France2026-05-03
Kadeem Flosi1019India2026-05-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeItalyXuxue Feng RENEWAL
Maria MarrierFranceStephen Shaw QUALIFIED
Nicolas IturbideAustraliaStephen Shaw PROPOSAL
Julie StensethSpainAsiya Javayant PROPOSAL
Rodrigues CampainArgentinaBernardo Dominic QUALIFIED
David DarakjyArgentinaAnna Fali UNQUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi KolmetzFranceAnna Fali NEGOTIATION
Aruna FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas IturbideItalyIoni Bowcher NEGOTIATION
Rodrigues CampainUnited KingdomIvan Magalhaes QUALIFIED
Antonio CaudyAustraliaAnna Fali NEGOTIATION
Julie StensethCanadaIvan Magalhaes NEW
Leon OldroydIndiaXuxue Feng UNQUALIFIED
James ButtGermanyStephen Shaw PROPOSAL
Wickens NestleCanadaBernardo Dominic NEW
Maria MarrierSpainIvan Magalhaes NEGOTIATION
Smith GlickAustraliaAmy Elsner RENEWAL
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Jefferson SchemmerCanadaBernardo Dominic QUALIFIED
Leon OldroydItalyBernardo Dominic RENEWAL
Leja CaldareraItalyIvan Magalhaes QUALIFIED
Chavez BriddickItalyElwin Sharvill UNQUALIFIED
Cody SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Arvin AlbaresSpainStephen Shaw NEW
Ricardo GauchoGermanyElwin Sharvill NEGOTIATION
Ashley DoeGermanyXuxue Feng NEGOTIATION
Munro FerenczUnited KingdomIoni Bowcher NEW
Leja CaldareraRussiaAnna Fali UNQUALIFIED
Stacey MacleadUnited KingdomIoni Bowcher RENEWAL
Izzy GarufiGermanyElwin Sharvill RENEWAL
Leon OldroydItalyXuxue Feng NEW
Kadeem FlosiArgentinaElwin Sharvill NEGOTIATION
Leon OldroydFranceElwin Sharvill NEW
Faith GillianArgentinaBernardo Dominic PROPOSAL
Francesco ShinkoUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiUnited KingdomAsiya Javayant QUALIFIED
Isabel BowleyFranceAsiya Javayant RENEWAL
Greenwood BologniaFranceIoni Bowcher PROPOSAL
Kadeem FlosiItalyBernardo Dominic 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>