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
Faith GillianArgentinaIoni Bowcher RENEWAL
Tony FollerItalyOnyama Limba RENEWAL
Deepesh ChuiAustraliaElwin Sharvill PROPOSAL
Ashley DoeUnited KingdomAmy Elsner QUALIFIED
Maria MarrierUnited KingdomXuxue Feng QUALIFIED
Sinclair WaycottGermanyAnna Fali NEW
Leon OldroydAustraliaIoni Bowcher RENEWAL
Nicolas IturbideArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes RENEWAL
Wickens NestleAustraliaAmy Elsner NEW
Murillo MaletIndiaBernardo Dominic NEGOTIATION
Greenwood BologniaBrazilIvan Magalhaes PROPOSAL
Francesco ShinkoSpainAsiya Javayant QUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes QUALIFIED
Nicolas IturbideArgentinaAsiya Javayant QUALIFIED
Chavez BriddickUnited KingdomOnyama Limba PROPOSAL
Mujtaba NickaGermanyIoni Bowcher NEGOTIATION
Morrow RutaBrazilIoni Bowcher NEGOTIATION
David DarakjyJapanStephen Shaw QUALIFIED
Costa DilliardIndiaAnna Fali RENEWAL
Adams MorascaIndiaAmy Elsner NEW
Deepesh ChuiAustraliaAnna Fali NEGOTIATION
Salvatore StockhamRussiaAnna Fali UNQUALIFIED
Julie StensethFranceStephen Shaw RENEWAL
Claire TollnerCanadaAnna Fali NEW
James ButtRussiaIvan Magalhaes NEW
Aditya KuskoSpainXuxue Feng UNQUALIFIED
Johnson SergiArgentinaAnna Fali RENEWAL
Jones VocelkaCanadaAmy Elsner QUALIFIED
Emily WhobreySpainOnyama Limba NEGOTIATION
James ButtIndiaBernardo Dominic UNQUALIFIED
Kadeem FlosiUnited KingdomXuxue Feng RENEWAL
Clifford RimItalyOnyama Limba NEW
Juan WieserAustraliaAnna Fali PROPOSAL
Julie StensethRussiaIvan Magalhaes UNQUALIFIED
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Maria MarrierAustraliaOnyama Limba NEGOTIATION
Isabel BowleyGermanyStephen Shaw NEW
Costa DilliardAustraliaElwin Sharvill UNQUALIFIED
Jefferson SchemmerArgentinaOnyama Limba RENEWAL
Kaitlin OstroskyCanadaElwin Sharvill UNQUALIFIED
Julie StensethSpainAmy Elsner NEW
Julie StensethUnited KingdomIvan Magalhaes NEGOTIATION
Jones VocelkaGermanyOnyama Limba NEGOTIATION
Claire TollnerUnited KingdomAnna Fali NEW
Kadeem FlosiGermanyBernardo Dominic NEGOTIATION
Arvin AlbaresRussiaIvan Magalhaes RENEWAL
Leja CaldareraSpainBernardo Dominic NEGOTIATION
Octavia MaletItalyElwin Sharvill NEGOTIATION
David DarakjyIndiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Stacey MacleadUnited KingdomBernardo Dominic PROPOSAL
Wickens NestleAustraliaElwin Sharvill QUALIFIED
Francesco ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Misaki RoysterItalyBernardo Dominic NEGOTIATION
Silvio SlusarskiSpainElwin Sharvill NEW
Juan WieserArgentinaIvan Magalhaes UNQUALIFIED
Nicolas IturbideAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyFranceOnyama Limba NEGOTIATION
Leon OldroydFranceAsiya Javayant NEGOTIATION
Tony FollerFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimJapan2026-04-10Benton, John B Jr UNQUALIFIED47Ioni Bowcher
1001Octavia MaletIndia2026-04-01Rousseaux, Michael Esq NEGOTIATION48Ioni Bowcher
1002Smith GlickBrazil2026-04-19Dorl, James J Esq NEW52Xuxue Feng
1003Stacey MacleadBrazil2026-04-08Chapman, Ross E Esq UNQUALIFIED10Stephen Shaw
1004Alejandro PerinSpain2026-04-20Commercial Press NEW54Asiya Javayant
1005Wickens NestleSpain2026-04-02Rangoni Of Florence NEW38Ioni Bowcher
1006Emily WhobreyUnited Kingdom2026-03-30Chemel, James L Cpa PROPOSAL95Bernardo Dominic
1007Deepesh ChuiItaly2026-03-31Rangoni Of Florence UNQUALIFIED13Asiya Javayant
1008Sinclair WaycottFrance2026-03-30Feiner Bros NEGOTIATION57Anna Fali
1009Johnson SergiCanada2026-04-07Truhlar And Truhlar Attys NEGOTIATION48Anna Fali
1010Murillo MaletSpain2026-04-10Feltz Printing Service UNQUALIFIED52Onyama Limba
1011Ricardo GauchoFrance2026-04-01Morlong Associates NEGOTIATION39Ivan Magalhaes
1012Aika InouyeFrance2026-04-20Chanay, Jeffrey A Esq PROPOSAL25Ivan Magalhaes
1013Mayumi KolmetzFrance2026-03-25Printing Dimensions RENEWAL28Elwin Sharvill
1014Murillo MaletAustralia2026-03-22Feltz Printing Service UNQUALIFIED59Bernardo Dominic
1015Maisha RulapaughIndia2026-04-06Rousseaux, Michael Esq NEW13Amy Elsner
1016Murillo MaletSpain2026-04-19Chanay, Jeffrey A Esq NEW81Asiya Javayant
1017Cody SaylorsJapan2026-03-23Benton, John B Jr RENEWAL70Asiya Javayant
1018Isabel BowleyFrance2026-04-07Rangoni Of Florence UNQUALIFIED10Onyama Limba
1019Greenwood BologniaFrance2026-03-23Commercial Press NEW78Elwin Sharvill
1020Deepesh ChuiJapan2026-04-15Feiner Bros NEW10Stephen Shaw
1021Jefferson SchemmerGermany2026-03-25Benton, John B Jr UNQUALIFIED17Stephen Shaw
1022Faith GillianBrazil2026-04-17Feltz Printing Service PROPOSAL61Elwin Sharvill
1023Wickens NestleAustralia2026-04-18Rousseaux, Michael Esq NEW32Elwin Sharvill
1024Arvin AlbaresItaly2026-04-17Chemel, James L Cpa NEGOTIATION0Onyama Limba
1025Murillo MaletGermany2026-04-02King, Christopher A Esq QUALIFIED60Ivan Magalhaes
1026Jefferson SchemmerAustralia2026-03-27Feltz Printing Service NEGOTIATION49Ioni Bowcher
1027Ashley DoeCanada2026-04-13Dorl, James J Esq UNQUALIFIED50Bernardo Dominic
1028Alejandro PerinIndia2026-03-22Feltz Printing Service UNQUALIFIED83Asiya Javayant
1029Arvin AlbaresFrance2026-04-07Buckley Miller Wright UNQUALIFIED28Amy Elsner
1030Munro FerenczCanada2026-04-02Feltz Printing Service UNQUALIFIED16Stephen Shaw
1031Jennifer AmigonAustralia2026-04-18Feltz Printing Service QUALIFIED31Ivan Magalhaes
1032Aika InouyeFrance2026-04-06Morlong Associates NEW18Amy Elsner
1033Misaki RoysterRussia2026-04-17Feiner Bros PROPOSAL20Asiya Javayant
1034Faith GillianIndia2026-04-10Commercial Press PROPOSAL97Xuxue Feng
1035Costa DilliardAustralia2026-04-14Morlong Associates UNQUALIFIED46Stephen Shaw
1036Jeanfrancois VenereArgentina2026-04-04Truhlar And Truhlar Attys RENEWAL8Ioni Bowcher
1037Alejandro PerinGermany2026-03-30Buckley Miller Wright QUALIFIED39Asiya Javayant
1038Stacey MacleadFrance2026-03-31Chanay, Jeffrey A Esq PROPOSAL7Ioni Bowcher
1039Adams MorascaJapan2026-04-12Chemel, James L Cpa PROPOSAL50Bernardo Dominic
1040Aika InouyeFrance2026-04-05Commercial Press NEGOTIATION47Anna Fali
1041Jones VocelkaArgentina2026-04-11Printing Dimensions NEW98Stephen Shaw
1042Claire TollnerArgentina2026-04-11Chemel, James L Cpa RENEWAL5Xuxue Feng
1043Jeanfrancois VenereRussia2026-04-13Chapman, Ross E Esq UNQUALIFIED99Xuxue Feng
1044Clifford RimFrance2026-04-20Commercial Press NEW62Elwin Sharvill
1045Mujtaba NickaArgentina2026-03-28Buckley Miller Wright RENEWAL37Asiya Javayant
1046Greenwood BologniaAustralia2026-04-03Benton, John B Jr QUALIFIED74Onyama Limba
1047Faith GillianSpain2026-04-12Benton, John B Jr NEGOTIATION7Xuxue Feng
1048Smith GlickUnited Kingdom2026-03-23Commercial Press UNQUALIFIED88Ioni Bowcher
1049Faith GillianGermany2026-04-20Printing Dimensions UNQUALIFIED20Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamAustraliaBernardo Dominic NEGOTIATION
Isabel BowleyRussiaAsiya Javayant QUALIFIED
Smith GlickItalyAsiya Javayant NEGOTIATION
Isabel BowleyAustraliaOnyama Limba UNQUALIFIED
Faith GillianIndiaStephen Shaw NEGOTIATION
Stacey MacleadBrazilXuxue Feng QUALIFIED
Antonio CaudyIndiaOnyama Limba QUALIFIED
Maisha RulapaughAustraliaIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaIvan Magalhaes RENEWAL
Claire TollnerArgentinaAnna Fali NEW
Costa DilliardAustraliaElwin Sharvill UNQUALIFIED
Izzy GarufiFranceAmy Elsner NEW
Leon OldroydSpainStephen Shaw NEGOTIATION
Isabel BowleyArgentinaBernardo Dominic NEGOTIATION
Sinclair WaycottArgentinaAsiya Javayant NEGOTIATION
Greenwood BologniaIndiaOnyama Limba PROPOSAL
Kadeem FlosiItalyStephen Shaw NEGOTIATION
Leja CaldareraFranceIvan Magalhaes UNQUALIFIED
Alejandro PerinIndiaStephen Shaw RENEWAL
Murillo MaletRussiaAsiya Javayant PROPOSAL
David DarakjyItalyAsiya Javayant QUALIFIED
Deepesh ChuiGermanyAmy Elsner PROPOSAL
Jeanfrancois VenereGermanyOnyama Limba QUALIFIED
Darci PoquetteAustraliaXuxue Feng UNQUALIFIED
Murillo MaletGermanyElwin Sharvill QUALIFIED
Clifford RimJapanAmy Elsner NEGOTIATION
Deepesh ChuiCanadaElwin Sharvill QUALIFIED
Leon OldroydCanadaAnna Fali PROPOSAL
David DarakjyJapanBernardo Dominic NEW
Arvin AlbaresIndiaAsiya Javayant NEGOTIATION
Kaitlin OstroskyCanadaOnyama Limba NEGOTIATION
Deepesh ChuiGermanyXuxue Feng UNQUALIFIED
Clifford RimBrazilAmy Elsner QUALIFIED
Julie StensethJapanAsiya Javayant NEGOTIATION
Mayumi KolmetzRussiaOnyama Limba RENEWAL
Aruna FigeroaRussiaAnna Fali QUALIFIED
Deepesh ChuiArgentinaIvan Magalhaes RENEWAL
Mujtaba NickaGermanyIoni Bowcher RENEWAL
Sinclair WaycottAustraliaIvan Magalhaes RENEWAL
Stacey MacleadAustraliaOnyama Limba PROPOSAL
Ivar PaprockiCanadaAsiya Javayant NEGOTIATION
Johnson SergiRussiaStephen Shaw PROPOSAL
Sinclair WaycottUnited KingdomAnna Fali NEGOTIATION
Jefferson SchemmerJapanIvan Magalhaes PROPOSAL
Aika InouyeArgentinaIvan Magalhaes PROPOSAL
Wickens NestleCanadaIoni Bowcher UNQUALIFIED
Greenwood BologniaAustraliaIvan Magalhaes UNQUALIFIED
Darci PoquetteGermanyIoni Bowcher UNQUALIFIED
Faith GillianArgentinaElwin Sharvill NEGOTIATION
Faith GillianBrazilAmy Elsner PROPOSAL
Frozen Columns
Name
Juan Wieser
Sinclair Waycott
Ivar Paprocki
Izzy Garufi
Silvio Slusarski
Jones Vocelka
Wickens Nestle
Ricardo Gaucho
Stacey Maclead
Julie Stenseth
Ricardo Gaucho
Clifford Rim
Smith Glick
Sinclair Waycott
Munro Ferencz
Kadeem Flosi
Johnson Sergi
Chavez Briddick
Julie Stenseth
Smith Glick
Misaki Royster
Isabel Bowley
Kaitlin Ostrosky
Claire Tollner
Isabel Bowley
Clifford Rim
Murillo Malet
Jefferson Schemmer
Tony Foller
Maisha Rulapaugh
Francesco Shinko
Mayumi Kolmetz
Kadeem Flosi
Ashley Doe
David Darakjy
Isabel Bowley
Nicolas Iturbide
Izzy Garufi
Francesco Shinko
Aika Inouye
Jeanfrancois Venere
Darci Poquette
Misaki Royster
Jeanfrancois Venere
Isabel Bowley
Adams Morasca
Adams Morasca
Wickens Nestle
Emily Whobrey
Jones Vocelka
IdCountryDate
1000Canada2026-04-06
1001Argentina2026-04-08
1002France2026-04-07
1003Spain2026-04-05
1004Russia2026-04-06
1005United Kingdom2026-04-10
1006Japan2026-04-05
1007Argentina2026-04-13
1008Australia2026-03-27
1009Italy2026-03-24
1010Japan2026-03-26
1011Spain2026-04-19
1012Australia2026-04-14
1013Germany2026-04-16
1014Italy2026-04-01
1015Australia2026-03-24
1016Spain2026-04-05
1017Canada2026-04-20
1018Italy2026-04-17
1019Canada2026-04-01
1020Brazil2026-03-29
1021Australia2026-04-07
1022United Kingdom2026-03-25
1023Germany2026-03-31
1024Australia2026-04-20
1025Germany2026-03-28
1026Germany2026-04-04
1027Japan2026-04-01
1028Canada2026-04-10
1029United Kingdom2026-04-14
1030Russia2026-04-08
1031Germany2026-04-16
1032Japan2026-04-07
1033Spain2026-04-20
1034Australia2026-04-18
1035Canada2026-04-15
1036Argentina2026-03-27
1037Italy2026-03-26
1038Australia2026-03-23
1039Spain2026-04-05
1040Australia2026-04-03
1041Germany2026-04-09
1042Germany2026-04-15
1043Japan2026-03-27
1044France2026-04-10
1045Argentina2026-04-10
1046Italy2026-04-04
1047Argentina2026-04-13
1048Japan2026-04-18
1049Australia2026-03-26

On-Demand Data

NameIdCountryDate
Faith Gillian1000Japan2026-04-15
Mujtaba Nicka1001Japan2026-03-24
Silvio Slusarski1002Spain2026-03-26
Adams Morasca1003Russia2026-03-28
Kaitlin Ostrosky1004France2026-04-16
Maria Marrier1005Italy2026-03-24
Ivar Paprocki1006Spain2026-03-28
Smith Glick1007India2026-03-29
Julie Stenseth1008Italy2026-04-18
Aika Inouye1009Russia2026-04-02
Jennifer Amigon1010Germany2026-04-19
Salvatore Stockham1011Canada2026-04-20
Ivar Paprocki1012India2026-04-10
Silvio Slusarski1013Brazil2026-04-13
David Darakjy1014India2026-03-28
Leja Caldarera1015Australia2026-04-17
Emily Whobrey1016Argentina2026-04-11
Alejandro Perin1017Japan2026-04-03
Munro Ferencz1018Canada2026-04-17
David Darakjy1019Japan2026-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerAustraliaIvan Magalhaes NEGOTIATION
Misaki RoysterAustraliaElwin Sharvill PROPOSAL
Izzy GarufiJapanAmy Elsner PROPOSAL
Smith GlickSpainAmy Elsner NEGOTIATION
David DarakjySpainIoni Bowcher NEGOTIATION
Aditya KuskoBrazilOnyama Limba PROPOSAL
Arvin AlbaresIndiaOnyama Limba QUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher UNQUALIFIED
Chavez BriddickSpainAsiya Javayant RENEWAL
Nicolas IturbideCanadaBernardo Dominic QUALIFIED
Ivar PaprockiSpainAsiya Javayant RENEWAL
Cody SaylorsBrazilIoni Bowcher UNQUALIFIED
Jones VocelkaRussiaStephen Shaw PROPOSAL
Maria MarrierSpainAmy Elsner UNQUALIFIED
Salvatore StockhamItalyElwin Sharvill PROPOSAL
David DarakjyGermanyElwin Sharvill PROPOSAL
Izzy GarufiSpainIvan Magalhaes RENEWAL
Jones VocelkaJapanStephen Shaw QUALIFIED
Claire TollnerArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiCanadaOnyama Limba QUALIFIED
Morrow RutaAustraliaAmy Elsner QUALIFIED
Salvatore StockhamBrazilIvan Magalhaes RENEWAL
Murillo MaletRussiaAnna Fali NEW
Rodrigues CampainJapanStephen Shaw PROPOSAL
Aditya KuskoFranceXuxue Feng PROPOSAL
Stacey MacleadRussiaXuxue Feng RENEWAL
Aika InouyeItalyIoni Bowcher QUALIFIED
Smith GlickJapanAmy Elsner NEW
Ricardo GauchoSpainXuxue Feng NEGOTIATION
Arvin AlbaresSpainElwin Sharvill QUALIFIED
Misaki RoysterItalyXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaStephen Shaw NEW
Greenwood BologniaJapanOnyama Limba QUALIFIED
Aruna FigeroaUnited KingdomAnna Fali QUALIFIED
Salvatore StockhamUnited KingdomIoni Bowcher RENEWAL
Kaitlin OstroskyRussiaXuxue Feng NEW
Faith GillianGermanyStephen Shaw RENEWAL
Greenwood BologniaArgentinaIoni Bowcher NEW
Francesco ShinkoRussiaAnna Fali NEW
Jennifer AmigonItalyAnna 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>