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
Francesco ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin OstroskyRussiaElwin Sharvill NEGOTIATION
Darci PoquetteJapanBernardo Dominic PROPOSAL
Deepesh ChuiIndiaStephen Shaw UNQUALIFIED
Jefferson SchemmerFranceAsiya Javayant UNQUALIFIED
Alejandro PerinAustraliaAnna Fali RENEWAL
Ivar PaprockiJapanStephen Shaw PROPOSAL
Francesco ShinkoCanadaXuxue Feng QUALIFIED
Aika InouyeArgentinaAmy Elsner RENEWAL
Francesco ShinkoJapanElwin Sharvill PROPOSAL
Johnson SergiJapanOnyama Limba PROPOSAL
Faith GillianBrazilStephen Shaw NEGOTIATION
Nicolas IturbideRussiaBernardo Dominic PROPOSAL
Julie StensethSpainIoni Bowcher RENEWAL
Misaki RoysterIndiaAsiya Javayant QUALIFIED
Morrow RutaJapanXuxue Feng QUALIFIED
Leon OldroydArgentinaAsiya Javayant UNQUALIFIED
Juan WieserAustraliaIoni Bowcher QUALIFIED
Juan WieserItalyStephen Shaw UNQUALIFIED
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Rodrigues CampainBrazilXuxue Feng QUALIFIED
Juan WieserBrazilIoni Bowcher QUALIFIED
Francesco ShinkoUnited KingdomXuxue Feng NEW
Cody SaylorsGermanyAnna Fali QUALIFIED
Morrow RutaAustraliaAnna Fali NEW
Morrow RutaAustraliaAnna Fali RENEWAL
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Salvatore StockhamGermanyStephen Shaw RENEWAL
Silvio SlusarskiBrazilAmy Elsner PROPOSAL
Nicolas IturbideRussiaStephen Shaw PROPOSAL
Greenwood BologniaArgentinaXuxue Feng PROPOSAL
Ashley DoeIndiaAnna Fali NEW
Costa DilliardItalyAmy Elsner QUALIFIED
Jeanfrancois VenereCanadaBernardo Dominic NEW
Mayumi KolmetzAustraliaIvan Magalhaes RENEWAL
Mujtaba NickaCanadaBernardo Dominic QUALIFIED
Emily WhobreySpainElwin Sharvill UNQUALIFIED
Faith GillianFranceIoni Bowcher RENEWAL
Faith GillianUnited KingdomAnna Fali PROPOSAL
Munro FerenczGermanyStephen Shaw PROPOSAL
Kadeem FlosiRussiaElwin Sharvill NEGOTIATION
James ButtBrazilIoni Bowcher QUALIFIED
Kadeem FlosiAustraliaIvan Magalhaes PROPOSAL
Ricardo GauchoArgentinaAnna Fali UNQUALIFIED
Kaitlin OstroskyAustraliaXuxue Feng PROPOSAL
David DarakjyGermanyOnyama Limba UNQUALIFIED
Chavez BriddickBrazilStephen Shaw QUALIFIED
Leja CaldareraJapanElwin Sharvill QUALIFIED
Leon OldroydJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresBrazilXuxue Feng UNQUALIFIED
Faith GillianJapanStephen Shaw QUALIFIED
Francesco ShinkoSpainBernardo Dominic NEGOTIATION
Cody SaylorsSpainElwin Sharvill UNQUALIFIED
Munro FerenczBrazilAnna Fali UNQUALIFIED
Leja CaldareraIndiaOnyama Limba PROPOSAL
Julie StensethIndiaAsiya Javayant NEGOTIATION
Stacey MacleadGermanyAsiya Javayant UNQUALIFIED
Kadeem FlosiAustraliaAmy Elsner PROPOSAL
Sinclair WaycottGermanyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiBrazil2026-04-16Rangoni Of Florence UNQUALIFIED2Asiya Javayant
1001Mujtaba NickaJapan2026-04-01Truhlar And Truhlar Attys RENEWAL46Elwin Sharvill
1002Tony FollerSpain2026-04-23King, Christopher A Esq UNQUALIFIED50Bernardo Dominic
1003Salvatore StockhamAustralia2026-03-29Rangoni Of Florence RENEWAL34Elwin Sharvill
1004Julie StensethIndia2026-04-23Printing Dimensions NEW83Elwin Sharvill
1005Emily WhobreyIndia2026-03-27Dorl, James J Esq NEW95Xuxue Feng
1006Silvio SlusarskiItaly2026-04-05Chapman, Ross E Esq UNQUALIFIED66Ioni Bowcher
1007Mayumi KolmetzJapan2026-04-17Dorl, James J Esq UNQUALIFIED65Elwin Sharvill
1008Costa DilliardSpain2026-04-14Printing Dimensions RENEWAL26Asiya Javayant
1009James ButtUnited Kingdom2026-04-14Feiner Bros QUALIFIED64Ioni Bowcher
1010Octavia MaletArgentina2026-03-30Chapman, Ross E Esq QUALIFIED42Stephen Shaw
1011Adams MorascaAustralia2026-04-14Morlong Associates NEGOTIATION5Anna Fali
1012Deepesh ChuiGermany2026-03-31Printing Dimensions RENEWAL14Anna Fali
1013Smith GlickJapan2026-04-15King, Christopher A Esq PROPOSAL37Stephen Shaw
1014Tony FollerFrance2026-04-22Printing Dimensions RENEWAL73Ivan Magalhaes
1015Costa DilliardUnited Kingdom2026-04-12Dorl, James J Esq NEGOTIATION87Amy Elsner
1016Jefferson SchemmerArgentina2026-04-19Rousseaux, Michael Esq RENEWAL19Xuxue Feng
1017Aditya KuskoJapan2026-03-26King, Christopher A Esq PROPOSAL34Xuxue Feng
1018Jeanfrancois VenereItaly2026-04-18Benton, John B Jr QUALIFIED75Amy Elsner
1019Jennifer AmigonArgentina2026-04-07Chapman, Ross E Esq UNQUALIFIED87Xuxue Feng
1020Maisha RulapaughBrazil2026-04-09Printing Dimensions NEGOTIATION52Bernardo Dominic
1021Wickens NestleFrance2026-03-28Feltz Printing Service PROPOSAL67Onyama Limba
1022Izzy GarufiRussia2026-03-25Feltz Printing Service PROPOSAL13Elwin Sharvill
1023Aruna FigeroaCanada2026-04-11Dorl, James J Esq NEGOTIATION63Amy Elsner
1024Kaitlin OstroskyIndia2026-04-11Rangoni Of Florence PROPOSAL76Amy Elsner
1025Kadeem FlosiCanada2026-04-05Rangoni Of Florence NEGOTIATION46Amy Elsner
1026Darci PoquetteCanada2026-04-20Truhlar And Truhlar Attys NEW18Asiya Javayant
1027Stacey MacleadJapan2026-04-15Feiner Bros QUALIFIED22Elwin Sharvill
1028Jefferson SchemmerArgentina2026-03-26Chanay, Jeffrey A Esq QUALIFIED19Amy Elsner
1029Nicolas IturbideUnited Kingdom2026-03-28Chemel, James L Cpa UNQUALIFIED14Xuxue Feng
1030Leon OldroydCanada2026-04-17Chapman, Ross E Esq RENEWAL12Elwin Sharvill
1031Leja CaldareraFrance2026-03-27Commercial Press PROPOSAL63Elwin Sharvill
1032Jones VocelkaUnited Kingdom2026-04-15King, Christopher A Esq PROPOSAL66Elwin Sharvill
1033Deepesh ChuiSpain2026-03-30Morlong Associates QUALIFIED56Ivan Magalhaes
1034Aruna FigeroaRussia2026-04-11Commercial Press RENEWAL28Asiya Javayant
1035Kadeem FlosiGermany2026-03-25Printing Dimensions RENEWAL95Ivan Magalhaes
1036Leja CaldareraCanada2026-04-15Morlong Associates PROPOSAL13Ivan Magalhaes
1037Rodrigues CampainGermany2026-04-07Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1038Leon OldroydBrazil2026-03-29Printing Dimensions PROPOSAL34Ioni Bowcher
1039Salvatore StockhamIndia2026-04-20Benton, John B Jr RENEWAL5Ioni Bowcher
1040Costa DilliardArgentina2026-04-06King, Christopher A Esq NEGOTIATION50Amy Elsner
1041Tony FollerRussia2026-03-27Printing Dimensions NEW38Elwin Sharvill
1042James ButtBrazil2026-03-30Chanay, Jeffrey A Esq UNQUALIFIED74Ioni Bowcher
1043Kaitlin OstroskyUnited Kingdom2026-03-31Commercial Press PROPOSAL94Xuxue Feng
1044Rodrigues CampainCanada2026-04-15Benton, John B Jr QUALIFIED60Stephen Shaw
1045Johnson SergiItaly2026-03-25Benton, John B Jr NEGOTIATION91Xuxue Feng
1046Smith GlickJapan2026-04-19Chanay, Jeffrey A Esq QUALIFIED91Amy Elsner
1047Aika InouyeSpain2026-04-23Feiner Bros UNQUALIFIED40Bernardo Dominic
1048Octavia MaletSpain2026-03-29Feiner Bros NEW31Stephen Shaw
1049Deepesh ChuiAustralia2026-03-28Buckley Miller Wright PROPOSAL78Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiArgentinaBernardo Dominic NEGOTIATION
Morrow RutaArgentinaXuxue Feng PROPOSAL
Morrow RutaGermanyAnna Fali NEGOTIATION
Silvio SlusarskiJapanXuxue Feng UNQUALIFIED
Rodrigues CampainJapanElwin Sharvill NEGOTIATION
Wickens NestleSpainBernardo Dominic NEW
Antonio CaudyItalyAsiya Javayant UNQUALIFIED
Darci PoquetteItalyBernardo Dominic NEW
Leon OldroydAustraliaIoni Bowcher NEGOTIATION
Arvin AlbaresUnited KingdomXuxue Feng QUALIFIED
Ashley DoeAustraliaElwin Sharvill NEW
Mayumi KolmetzCanadaIvan Magalhaes NEW
Aruna FigeroaCanadaStephen Shaw QUALIFIED
Aika InouyeIndiaOnyama Limba PROPOSAL
Deepesh ChuiBrazilIoni Bowcher RENEWAL
Greenwood BologniaSpainIoni Bowcher UNQUALIFIED
Silvio SlusarskiGermanyAsiya Javayant RENEWAL
Kadeem FlosiJapanElwin Sharvill UNQUALIFIED
Arvin AlbaresSpainStephen Shaw PROPOSAL
Misaki RoysterItalyOnyama Limba NEGOTIATION
Silvio SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Costa DilliardSpainOnyama Limba NEW
Sinclair WaycottAustraliaIoni Bowcher PROPOSAL
Claire TollnerItalyXuxue Feng NEW
Murillo MaletArgentinaAsiya Javayant QUALIFIED
Stacey MacleadArgentinaElwin Sharvill NEW
James ButtFranceXuxue Feng PROPOSAL
Leja CaldareraJapanAsiya Javayant QUALIFIED
Arvin AlbaresJapanIoni Bowcher NEW
Kaitlin OstroskySpainElwin Sharvill QUALIFIED
Nicolas IturbideGermanyStephen Shaw NEGOTIATION
Emily WhobreyRussiaAnna Fali RENEWAL
Clifford RimArgentinaBernardo Dominic UNQUALIFIED
Greenwood BologniaIndiaIvan Magalhaes NEW
Jeanfrancois VenereUnited KingdomStephen Shaw UNQUALIFIED
Leja CaldareraIndiaBernardo Dominic RENEWAL
Salvatore StockhamRussiaAnna Fali QUALIFIED
Isabel BowleyGermanyBernardo Dominic NEGOTIATION
James ButtCanadaBernardo Dominic QUALIFIED
Izzy GarufiBrazilElwin Sharvill NEW
Aruna FigeroaBrazilStephen Shaw QUALIFIED
Deepesh ChuiIndiaBernardo Dominic RENEWAL
James ButtJapanOnyama Limba NEW
Jennifer AmigonItalyOnyama Limba PROPOSAL
Cody SaylorsGermanyXuxue Feng NEW
Maisha RulapaughJapanXuxue Feng PROPOSAL
Silvio SlusarskiBrazilIoni Bowcher NEGOTIATION
Mayumi KolmetzFranceIoni Bowcher NEW
Stacey MacleadBrazilXuxue Feng QUALIFIED
Aruna FigeroaIndiaAsiya Javayant NEW
Frozen Columns
Name
Aditya Kusko
Mayumi Kolmetz
Darci Poquette
Misaki Royster
Rodrigues Campain
Stacey Maclead
Salvatore Stockham
Julie Stenseth
James Butt
Morrow Ruta
Jennifer Amigon
Clifford Rim
Maisha Rulapaugh
Salvatore Stockham
Aruna Figeroa
Jones Vocelka
Aika Inouye
Ivar Paprocki
Jones Vocelka
Nicolas Iturbide
Deepesh Chui
Julie Stenseth
Mujtaba Nicka
Claire Tollner
Isabel Bowley
Arvin Albares
Morrow Ruta
Octavia Malet
Mayumi Kolmetz
Greenwood Bolognia
Cody Saylors
David Darakjy
Costa Dilliard
Nicolas Iturbide
Antonio Caudy
Ivar Paprocki
Sinclair Waycott
Munro Ferencz
Aruna Figeroa
Julie Stenseth
Aditya Kusko
Ricardo Gaucho
Rodrigues Campain
Alejandro Perin
Alejandro Perin
Rodrigues Campain
Jeanfrancois Venere
Mujtaba Nicka
Cody Saylors
Misaki Royster
IdCountryDate
1000Russia2026-03-28
1001Argentina2026-04-02
1002Argentina2026-04-14
1003France2026-03-29
1004Spain2026-04-15
1005Japan2026-04-07
1006Italy2026-04-11
1007Canada2026-03-28
1008United Kingdom2026-04-14
1009Argentina2026-04-02
1010Japan2026-03-25
1011Argentina2026-03-25
1012Russia2026-04-21
1013France2026-04-12
1014Argentina2026-04-23
1015United Kingdom2026-03-25
1016Argentina2026-04-08
1017Argentina2026-04-20
1018Spain2026-03-30
1019Russia2026-04-08
1020Spain2026-03-26
1021Canada2026-04-20
1022Brazil2026-04-18
1023France2026-04-12
1024Italy2026-04-13
1025France2026-03-25
1026Canada2026-04-10
1027India2026-04-10
1028India2026-03-29
1029Russia2026-04-15
1030Spain2026-04-17
1031Australia2026-03-27
1032Italy2026-04-14
1033Canada2026-04-19
1034France2026-03-27
1035Australia2026-03-26
1036Italy2026-04-15
1037United Kingdom2026-04-14
1038Japan2026-04-21
1039Spain2026-04-03
1040Canada2026-04-07
1041United Kingdom2026-03-28
1042Argentina2026-04-11
1043Japan2026-04-16
1044Italy2026-04-21
1045Germany2026-03-25
1046Argentina2026-04-17
1047Russia2026-04-16
1048Germany2026-04-02
1049Russia2026-03-27

On-Demand Data

NameIdCountryDate
James Butt1000Japan2026-04-04
Stacey Maclead1001Spain2026-03-25
Maisha Rulapaugh1002Brazil2026-04-05
Kaitlin Ostrosky1003Japan2026-04-09
Ashley Doe1004Argentina2026-04-18
Greenwood Bolognia1005India2026-04-15
Maisha Rulapaugh1006Brazil2026-04-01
Aika Inouye1007Japan2026-04-21
Greenwood Bolognia1008India2026-04-11
Misaki Royster1009Russia2026-04-12
Kadeem Flosi1010Germany2026-04-09
Smith Glick1011Australia2026-03-30
Aika Inouye1012Brazil2026-04-17
Jefferson Schemmer1013Russia2026-03-28
Maisha Rulapaugh1014France2026-04-08
David Darakjy1015United Kingdom2026-04-23
Morrow Ruta1016Spain2026-04-20
Emily Whobrey1017France2026-04-04
Maisha Rulapaugh1018France2026-03-28
Jefferson Schemmer1019Australia2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaIndiaElwin Sharvill NEW
Octavia MaletAustraliaBernardo Dominic NEGOTIATION
David DarakjyJapanAmy Elsner QUALIFIED
Octavia MaletBrazilBernardo Dominic NEW
Kadeem FlosiAustraliaOnyama Limba NEGOTIATION
Wickens NestleItalyIoni Bowcher QUALIFIED
Murillo MaletSpainAnna Fali UNQUALIFIED
Antonio CaudyIndiaStephen Shaw RENEWAL
Faith GillianSpainIoni Bowcher QUALIFIED
Darci PoquetteCanadaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiFranceOnyama Limba RENEWAL
Kadeem FlosiSpainOnyama Limba NEW
Nicolas IturbideFranceAmy Elsner UNQUALIFIED
Leja CaldareraBrazilOnyama Limba UNQUALIFIED
Sinclair WaycottJapanOnyama Limba NEW
James ButtUnited KingdomAmy Elsner QUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill RENEWAL
Mujtaba NickaSpainElwin Sharvill PROPOSAL
Silvio SlusarskiGermanyIvan Magalhaes RENEWAL
Greenwood BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Misaki RoysterJapanIvan Magalhaes PROPOSAL
Nicolas IturbideAustraliaXuxue Feng PROPOSAL
Julie StensethItalyOnyama Limba RENEWAL
Kadeem FlosiIndiaIvan Magalhaes NEW
Johnson SergiCanadaAmy Elsner QUALIFIED
Mayumi KolmetzCanadaAnna Fali RENEWAL
Kadeem FlosiCanadaStephen Shaw RENEWAL
Chavez BriddickAustraliaOnyama Limba NEGOTIATION
Antonio CaudyArgentinaStephen Shaw PROPOSAL
Juan WieserAustraliaAnna Fali PROPOSAL
Faith GillianFranceElwin Sharvill NEW
Ivar PaprockiJapanElwin Sharvill NEGOTIATION
Jeanfrancois VenereSpainIoni Bowcher UNQUALIFIED
Izzy GarufiRussiaIvan Magalhaes NEW
Ivar PaprockiJapanOnyama Limba QUALIFIED
Ricardo GauchoBrazilIoni Bowcher QUALIFIED
Misaki RoysterGermanyElwin Sharvill NEW
Jefferson SchemmerFranceAnna Fali QUALIFIED
Smith GlickFranceXuxue Feng NEW
Izzy GarufiAustraliaAsiya Javayant 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>