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
Deepesh ChuiGermanyIvan Magalhaes NEW
Silvio SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Aditya KuskoRussiaOnyama Limba NEW
Murillo MaletItalyStephen Shaw NEGOTIATION
Juan WieserFranceIvan Magalhaes UNQUALIFIED
Ricardo GauchoUnited KingdomBernardo Dominic NEW
Arvin AlbaresItalyXuxue Feng NEW
Salvatore StockhamCanadaBernardo Dominic NEGOTIATION
Jones VocelkaSpainStephen Shaw PROPOSAL
Morrow RutaAustraliaElwin Sharvill NEGOTIATION
Alejandro PerinUnited KingdomAmy Elsner QUALIFIED
Julie StensethFranceIvan Magalhaes QUALIFIED
Salvatore StockhamFranceIoni Bowcher NEGOTIATION
Johnson SergiCanadaBernardo Dominic QUALIFIED
Clifford RimRussiaElwin Sharvill PROPOSAL
Ashley DoeBrazilAsiya Javayant NEGOTIATION
Jefferson SchemmerIndiaStephen Shaw UNQUALIFIED
Johnson SergiSpainStephen Shaw QUALIFIED
Tony FollerJapanIoni Bowcher PROPOSAL
Sinclair WaycottJapanBernardo Dominic NEW
Kaitlin OstroskyBrazilIoni Bowcher RENEWAL
Chavez BriddickGermanyBernardo Dominic RENEWAL
Chavez BriddickUnited KingdomAnna Fali NEGOTIATION
Octavia MaletSpainXuxue Feng PROPOSAL
Stacey MacleadUnited KingdomAnna Fali RENEWAL
Aditya KuskoUnited KingdomBernardo Dominic NEW
Mujtaba NickaRussiaXuxue Feng RENEWAL
Smith GlickUnited KingdomAmy Elsner RENEWAL
Silvio SlusarskiItalyStephen Shaw NEGOTIATION
Cody SaylorsAustraliaIoni Bowcher NEGOTIATION
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Deepesh ChuiRussiaXuxue Feng NEGOTIATION
James ButtSpainStephen Shaw NEGOTIATION
James ButtJapanAnna Fali UNQUALIFIED
James ButtCanadaIoni Bowcher NEGOTIATION
Faith GillianCanadaXuxue Feng RENEWAL
Sinclair WaycottItalyElwin Sharvill UNQUALIFIED
Costa DilliardItalyStephen Shaw RENEWAL
Alejandro PerinSpainBernardo Dominic PROPOSAL
Darci PoquetteJapanAmy Elsner NEGOTIATION
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Nicolas IturbideAustraliaElwin Sharvill NEGOTIATION
Ricardo GauchoBrazilElwin Sharvill QUALIFIED
Maria MarrierItalyAsiya Javayant NEW
Ivar PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco ShinkoRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereRussiaOnyama Limba UNQUALIFIED
Maria MarrierSpainIoni Bowcher QUALIFIED
Adams MorascaCanadaAmy Elsner NEGOTIATION
Rodrigues CampainCanadaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson SergiGermanyAnna Fali RENEWAL
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Misaki RoysterUnited KingdomAnna Fali PROPOSAL
Deepesh ChuiItalyIoni Bowcher NEGOTIATION
Jeanfrancois VenereIndiaAmy Elsner NEW
Mujtaba NickaAustraliaAnna Fali UNQUALIFIED
Mayumi KolmetzArgentinaIoni Bowcher NEGOTIATION
Chavez BriddickUnited KingdomAsiya Javayant PROPOSAL
Alejandro PerinSpainStephen Shaw NEGOTIATION
Deepesh ChuiSpainXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyAustralia2026-05-22Rousseaux, Michael Esq NEGOTIATION57Amy Elsner
1001Julie StensethUnited Kingdom2026-05-15Commercial Press QUALIFIED68Elwin Sharvill
1002Adams MorascaAustralia2026-05-27Morlong Associates NEW65Anna Fali
1003Nicolas IturbideUnited Kingdom2026-05-31Rangoni Of Florence UNQUALIFIED39Onyama Limba
1004Mayumi KolmetzItaly2026-05-25Feiner Bros RENEWAL72Stephen Shaw
1005Faith GillianItaly2026-05-07Feltz Printing Service RENEWAL94Anna Fali
1006Faith GillianJapan2026-05-26Rousseaux, Michael Esq NEGOTIATION98Anna Fali
1007Wickens NestleSpain2026-05-27Rangoni Of Florence PROPOSAL56Asiya Javayant
1008Alejandro PerinBrazil2026-05-31Feltz Printing Service PROPOSAL41Ioni Bowcher
1009Cody SaylorsUnited Kingdom2026-05-05Rousseaux, Michael Esq QUALIFIED30Ioni Bowcher
1010Francesco ShinkoIndia2026-05-26Feiner Bros NEW3Ioni Bowcher
1011Deepesh ChuiBrazil2026-05-05Buckley Miller Wright QUALIFIED34Onyama Limba
1012Aruna FigeroaItaly2026-05-09Feiner Bros RENEWAL16Ivan Magalhaes
1013Greenwood BologniaJapan2026-05-24Rousseaux, Michael Esq QUALIFIED48Elwin Sharvill
1014Aika InouyeSpain2026-05-08Benton, John B Jr PROPOSAL78Asiya Javayant
1015Jefferson SchemmerSpain2026-05-29Commercial Press UNQUALIFIED72Ivan Magalhaes
1016Emily WhobreyItaly2026-05-25Commercial Press UNQUALIFIED60Anna Fali
1017Jones VocelkaArgentina2026-05-03Rousseaux, Michael Esq NEW95Anna Fali
1018Clifford RimFrance2026-05-06Rousseaux, Michael Esq RENEWAL44Anna Fali
1019Emily WhobreyAustralia2026-05-06Feiner Bros NEGOTIATION9Stephen Shaw
1020Arvin AlbaresItaly2026-05-04Morlong Associates UNQUALIFIED48Bernardo Dominic
1021David DarakjyIndia2026-05-04Printing Dimensions NEW24Anna Fali
1022Jefferson SchemmerCanada2026-05-02Commercial Press RENEWAL53Onyama Limba
1023Jeanfrancois VenereFrance2026-05-27Chapman, Ross E Esq QUALIFIED53Elwin Sharvill
1024Aditya KuskoJapan2026-05-10Chemel, James L Cpa NEGOTIATION20Ioni Bowcher
1025Misaki RoysterIndia2026-05-08Benton, John B Jr PROPOSAL73Stephen Shaw
1026Jeanfrancois VenereArgentina2026-05-17Feiner Bros PROPOSAL79Onyama Limba
1027Emily WhobreyAustralia2026-05-04King, Christopher A Esq PROPOSAL74Stephen Shaw
1028Leon OldroydRussia2026-05-15Chanay, Jeffrey A Esq NEGOTIATION32Xuxue Feng
1029Jeanfrancois VenereSpain2026-05-12Rangoni Of Florence NEGOTIATION12Ivan Magalhaes
1030Clifford RimJapan2026-05-02Buckley Miller Wright NEGOTIATION54Ioni Bowcher
1031James ButtRussia2026-05-31Buckley Miller Wright RENEWAL83Amy Elsner
1032Ricardo GauchoItaly2026-05-17Rangoni Of Florence PROPOSAL52Ivan Magalhaes
1033Arvin AlbaresGermany2026-05-27Benton, John B Jr RENEWAL41Stephen Shaw
1034Wickens NestleJapan2026-05-18Rousseaux, Michael Esq UNQUALIFIED51Onyama Limba
1035James ButtIndia2026-05-28Commercial Press PROPOSAL39Xuxue Feng
1036David DarakjyGermany2026-05-24Dorl, James J Esq NEGOTIATION90Onyama Limba
1037Francesco ShinkoUnited Kingdom2026-05-17Rangoni Of Florence PROPOSAL28Ioni Bowcher
1038Tony FollerCanada2026-05-19King, Christopher A Esq RENEWAL59Ioni Bowcher
1039Sinclair WaycottJapan2026-05-28Dorl, James J Esq NEW60Amy Elsner
1040Jennifer AmigonIndia2026-05-15Feiner Bros NEGOTIATION59Anna Fali
1041Leja CaldareraRussia2026-05-04Feltz Printing Service PROPOSAL10Ivan Magalhaes
1042James ButtUnited Kingdom2026-05-16Rangoni Of Florence NEW27Amy Elsner
1043Arvin AlbaresGermany2026-05-14Dorl, James J Esq QUALIFIED71Onyama Limba
1044Munro FerenczUnited Kingdom2026-05-22Chapman, Ross E Esq NEGOTIATION46Ivan Magalhaes
1045Antonio CaudyGermany2026-05-24Printing Dimensions UNQUALIFIED54Amy Elsner
1046Misaki RoysterArgentina2026-05-25Chemel, James L Cpa UNQUALIFIED20Onyama Limba
1047Kadeem FlosiSpain2026-05-25Benton, John B Jr NEGOTIATION11Bernardo Dominic
1048Leja CaldareraSpain2026-05-25King, Christopher A Esq RENEWAL36Anna Fali
1049Mujtaba NickaRussia2026-05-21Chanay, Jeffrey A Esq UNQUALIFIED42Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainRussiaStephen Shaw PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher PROPOSAL
Deepesh ChuiBrazilXuxue Feng RENEWAL
Morrow RutaRussiaOnyama Limba RENEWAL
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Julie StensethUnited KingdomAmy Elsner NEGOTIATION
Sinclair WaycottRussiaOnyama Limba RENEWAL
Juan WieserIndiaStephen Shaw NEW
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Jones VocelkaUnited KingdomAnna Fali PROPOSAL
Rodrigues CampainJapanAnna Fali NEW
Ashley DoeGermanyStephen Shaw RENEWAL
Jeanfrancois VenereIndiaXuxue Feng NEW
Cody SaylorsBrazilOnyama Limba QUALIFIED
Misaki RoysterJapanAnna Fali UNQUALIFIED
Adams MorascaAustraliaIvan Magalhaes QUALIFIED
Tony FollerFranceAmy Elsner QUALIFIED
Maisha RulapaughRussiaAnna Fali RENEWAL
Leja CaldareraSpainAmy Elsner QUALIFIED
Faith GillianCanadaElwin Sharvill PROPOSAL
Ricardo GauchoRussiaStephen Shaw QUALIFIED
Murillo MaletJapanAnna Fali RENEWAL
Stacey MacleadFranceOnyama Limba QUALIFIED
Smith GlickUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois VenereFranceXuxue Feng PROPOSAL
Nicolas IturbideIndiaStephen Shaw QUALIFIED
Claire TollnerCanadaAnna Fali RENEWAL
Stacey MacleadItalyIoni Bowcher QUALIFIED
Antonio CaudyRussiaXuxue Feng RENEWAL
Ivar PaprockiBrazilAsiya Javayant RENEWAL
Wickens NestleSpainAmy Elsner NEW
Adams MorascaFranceBernardo Dominic QUALIFIED
Faith GillianAustraliaStephen Shaw PROPOSAL
Izzy GarufiSpainXuxue Feng PROPOSAL
Darci PoquetteSpainIvan Magalhaes RENEWAL
Emily WhobreyCanadaElwin Sharvill NEGOTIATION
Munro FerenczBrazilOnyama Limba UNQUALIFIED
Clifford RimArgentinaStephen Shaw QUALIFIED
Costa DilliardItalyElwin Sharvill QUALIFIED
Jones VocelkaRussiaAsiya Javayant QUALIFIED
Misaki RoysterSpainStephen Shaw RENEWAL
Isabel BowleyUnited KingdomStephen Shaw NEGOTIATION
Chavez BriddickIndiaAmy Elsner UNQUALIFIED
Sinclair WaycottSpainAmy Elsner RENEWAL
Smith GlickItalyAsiya Javayant UNQUALIFIED
Jennifer AmigonBrazilStephen Shaw RENEWAL
Clifford RimBrazilAnna Fali NEW
Juan WieserGermanyIoni Bowcher RENEWAL
Jefferson SchemmerItalyStephen Shaw PROPOSAL
Johnson SergiBrazilAnna Fali PROPOSAL
Frozen Columns
Name
Alejandro Perin
Leon Oldroyd
Misaki Royster
Maisha Rulapaugh
Jeanfrancois Venere
Mujtaba Nicka
Francesco Shinko
Wickens Nestle
Jeanfrancois Venere
Darci Poquette
Faith Gillian
Mayumi Kolmetz
Tony Foller
Adams Morasca
Ricardo Gaucho
Chavez Briddick
Leon Oldroyd
Claire Tollner
Maria Marrier
Ashley Doe
Salvatore Stockham
Kadeem Flosi
Salvatore Stockham
Aruna Figeroa
Leja Caldarera
Sinclair Waycott
Nicolas Iturbide
Cody Saylors
Kadeem Flosi
Emily Whobrey
Tony Foller
Darci Poquette
Maria Marrier
Morrow Ruta
Julie Stenseth
Ivar Paprocki
Misaki Royster
Ivar Paprocki
Misaki Royster
Emily Whobrey
Silvio Slusarski
Aruna Figeroa
Leon Oldroyd
Julie Stenseth
Ivar Paprocki
Greenwood Bolognia
Sinclair Waycott
Emily Whobrey
Greenwood Bolognia
Ricardo Gaucho
IdCountryDate
1000Japan2026-05-15
1001Spain2026-05-22
1002Italy2026-05-29
1003Argentina2026-05-29
1004France2026-05-19
1005Spain2026-05-30
1006Brazil2026-05-19
1007Italy2026-05-18
1008Japan2026-05-24
1009Russia2026-05-28
1010Japan2026-05-11
1011Australia2026-05-30
1012United Kingdom2026-05-23
1013Russia2026-05-07
1014United Kingdom2026-05-04
1015Japan2026-05-26
1016Canada2026-05-19
1017Germany2026-05-21
1018Russia2026-05-02
1019Germany2026-05-12
1020India2026-05-04
1021Germany2026-05-15
1022Italy2026-05-23
1023United Kingdom2026-05-14
1024Brazil2026-05-22
1025United Kingdom2026-05-20
1026Germany2026-05-09
1027India2026-05-07
1028United Kingdom2026-05-18
1029Japan2026-05-17
1030India2026-05-26
1031Canada2026-05-04
1032Russia2026-05-16
1033France2026-05-09
1034Australia2026-05-15
1035Russia2026-05-12
1036Australia2026-05-12
1037United Kingdom2026-05-13
1038Japan2026-05-23
1039Italy2026-05-03
1040India2026-05-09
1041Russia2026-05-15
1042India2026-05-31
1043Argentina2026-05-16
1044Russia2026-05-31
1045Italy2026-05-07
1046Russia2026-05-05
1047Russia2026-05-31
1048United Kingdom2026-05-27
1049India2026-05-06

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000Italy2026-05-21
Rodrigues Campain1001France2026-05-15
Aruna Figeroa1002Japan2026-05-03
Mujtaba Nicka1003Argentina2026-05-13
Morrow Ruta1004Canada2026-05-05
Octavia Malet1005India2026-05-11
Jennifer Amigon1006Argentina2026-05-28
Tony Foller1007Russia2026-05-10
Chavez Briddick1008Argentina2026-05-21
Jefferson Schemmer1009Germany2026-05-11
Octavia Malet1010Italy2026-05-21
Murillo Malet1011Spain2026-05-24
Murillo Malet1012France2026-05-27
Costa Dilliard1013Russia2026-05-19
Greenwood Bolognia1014Australia2026-05-21
Murillo Malet1015India2026-05-22
Antonio Caudy1016France2026-05-03
Izzy Garufi1017Brazil2026-05-27
Silvio Slusarski1018Japan2026-05-18
Ricardo Gaucho1019Canada2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinAustraliaAmy Elsner RENEWAL
Murillo MaletRussiaAnna Fali PROPOSAL
Isabel BowleyFranceAnna Fali QUALIFIED
Salvatore StockhamIndiaIvan Magalhaes NEGOTIATION
Stacey MacleadSpainAmy Elsner NEW
Aika InouyeItalyXuxue Feng PROPOSAL
Greenwood BologniaSpainIvan Magalhaes NEGOTIATION
James ButtGermanyAnna Fali PROPOSAL
Morrow RutaSpainStephen Shaw RENEWAL
Aruna FigeroaIndiaElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes UNQUALIFIED
Maria MarrierFranceBernardo Dominic RENEWAL
Antonio CaudyJapanStephen Shaw PROPOSAL
James ButtArgentinaXuxue Feng NEGOTIATION
Faith GillianBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois VenereArgentinaOnyama Limba PROPOSAL
Salvatore StockhamArgentinaAsiya Javayant NEGOTIATION
Chavez BriddickUnited KingdomAsiya Javayant RENEWAL
Cody SaylorsAustraliaAmy Elsner NEGOTIATION
Alejandro PerinItalyIvan Magalhaes QUALIFIED
Wickens NestleSpainBernardo Dominic NEGOTIATION
Stacey MacleadCanadaIvan Magalhaes QUALIFIED
Tony FollerSpainAsiya Javayant NEGOTIATION
Adams MorascaIndiaBernardo Dominic NEW
Rodrigues CampainSpainAsiya Javayant NEGOTIATION
Stacey MacleadIndiaAsiya Javayant QUALIFIED
Maria MarrierUnited KingdomIoni Bowcher RENEWAL
Ashley DoeAustraliaIoni Bowcher UNQUALIFIED
Darci PoquetteJapanBernardo Dominic PROPOSAL
Chavez BriddickAustraliaAmy Elsner UNQUALIFIED
Morrow RutaBrazilBernardo Dominic UNQUALIFIED
Mujtaba NickaItalyElwin Sharvill NEGOTIATION
Jeanfrancois VenereRussiaAnna Fali PROPOSAL
Kadeem FlosiCanadaIoni Bowcher RENEWAL
Maisha RulapaughSpainIoni Bowcher NEGOTIATION
Aditya KuskoUnited KingdomAmy Elsner PROPOSAL
Darci PoquetteIndiaElwin Sharvill RENEWAL
Silvio SlusarskiSpainOnyama Limba NEW
Francesco ShinkoArgentinaIoni Bowcher PROPOSAL
Leon OldroydGermanyAmy Elsner NEGOTIATION

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