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
Aika InouyeBrazilIvan Magalhaes NEGOTIATION
Emily WhobreyRussiaElwin Sharvill RENEWAL
Juan WieserCanadaAmy Elsner UNQUALIFIED
David DarakjyBrazilBernardo Dominic PROPOSAL
Nicolas IturbideArgentinaIoni Bowcher NEGOTIATION
Deepesh ChuiBrazilIoni Bowcher NEW
Johnson SergiArgentinaIvan Magalhaes QUALIFIED
Adams MorascaFranceOnyama Limba UNQUALIFIED
Alejandro PerinArgentinaOnyama Limba NEW
Leon OldroydJapanBernardo Dominic QUALIFIED
Mujtaba NickaFranceElwin Sharvill NEW
Francesco ShinkoItalyAmy Elsner NEGOTIATION
Ivar PaprockiJapanBernardo Dominic NEW
Jefferson SchemmerIndiaAsiya Javayant NEW
Ivar PaprockiBrazilOnyama Limba PROPOSAL
Murillo MaletSpainIvan Magalhaes NEGOTIATION
Leon OldroydGermanyElwin Sharvill PROPOSAL
Francesco ShinkoSpainAsiya Javayant PROPOSAL
Misaki RoysterJapanXuxue Feng RENEWAL
Aditya KuskoRussiaBernardo Dominic QUALIFIED
Clifford RimAustraliaAmy Elsner PROPOSAL
Cody SaylorsFranceAnna Fali RENEWAL
Ivar PaprockiIndiaElwin Sharvill PROPOSAL
Julie StensethCanadaIvan Magalhaes UNQUALIFIED
Smith GlickIndiaAsiya Javayant NEGOTIATION
Rodrigues CampainIndiaOnyama Limba PROPOSAL
Adams MorascaAustraliaElwin Sharvill RENEWAL
Salvatore StockhamIndiaIoni Bowcher QUALIFIED
Sinclair WaycottCanadaIoni Bowcher PROPOSAL
Smith GlickJapanAmy Elsner PROPOSAL
Tony FollerBrazilOnyama Limba UNQUALIFIED
Mujtaba NickaAustraliaOnyama Limba QUALIFIED
Arvin AlbaresFranceStephen Shaw RENEWAL
Arvin AlbaresJapanAsiya Javayant PROPOSAL
Emily WhobreyCanadaIoni Bowcher PROPOSAL
Claire TollnerCanadaIvan Magalhaes NEW
Morrow RutaBrazilAmy Elsner UNQUALIFIED
Jefferson SchemmerBrazilElwin Sharvill PROPOSAL
Aruna FigeroaFranceIoni Bowcher RENEWAL
James ButtJapanStephen Shaw PROPOSAL
Adams MorascaUnited KingdomOnyama Limba UNQUALIFIED
Smith GlickItalyOnyama Limba NEGOTIATION
Stacey MacleadRussiaIoni Bowcher NEW
Deepesh ChuiSpainBernardo Dominic QUALIFIED
Arvin AlbaresFranceAmy Elsner PROPOSAL
Maria MarrierBrazilBernardo Dominic QUALIFIED
Ricardo GauchoBrazilAmy Elsner NEW
Misaki RoysterRussiaAnna Fali QUALIFIED
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Jefferson SchemmerSpainIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainRussiaAmy Elsner PROPOSAL
Smith GlickItalyStephen Shaw RENEWAL
Tony FollerIndiaStephen Shaw UNQUALIFIED
Leon OldroydSpainAnna Fali NEW
Izzy GarufiIndiaBernardo Dominic UNQUALIFIED
Smith GlickBrazilIvan Magalhaes NEGOTIATION
Izzy GarufiUnited KingdomElwin Sharvill QUALIFIED
Aruna FigeroaIndiaElwin Sharvill UNQUALIFIED
Faith GillianRussiaIvan Magalhaes NEW
Leja CaldareraRussiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaJapan2026-05-20Chemel, James L Cpa QUALIFIED12Ivan Magalhaes
1001Deepesh ChuiIndia2026-05-19Morlong Associates RENEWAL44Ioni Bowcher
1002David DarakjySpain2026-05-24Rangoni Of Florence NEGOTIATION56Onyama Limba
1003Chavez BriddickBrazil2026-05-15Chapman, Ross E Esq NEW6Elwin Sharvill
1004James ButtCanada2026-05-12Chemel, James L Cpa NEGOTIATION91Ioni Bowcher
1005Antonio CaudyArgentina2026-05-17Printing Dimensions QUALIFIED10Amy Elsner
1006Smith GlickGermany2026-05-30Benton, John B Jr RENEWAL11Xuxue Feng
1007Ashley DoeRussia2026-05-25Chemel, James L Cpa PROPOSAL1Asiya Javayant
1008Munro FerenczJapan2026-05-21Dorl, James J Esq UNQUALIFIED19Asiya Javayant
1009Arvin AlbaresJapan2026-05-22Chanay, Jeffrey A Esq QUALIFIED53Onyama Limba
1010Kadeem FlosiIndia2026-05-17Morlong Associates PROPOSAL43Ioni Bowcher
1011Costa DilliardGermany2026-05-30Truhlar And Truhlar Attys NEW23Onyama Limba
1012Maria MarrierBrazil2026-05-28Printing Dimensions PROPOSAL74Ioni Bowcher
1013Aika InouyeCanada2026-05-11Commercial Press QUALIFIED54Ioni Bowcher
1014Isabel BowleyJapan2026-05-10Benton, John B Jr UNQUALIFIED24Elwin Sharvill
1015Sinclair WaycottRussia2026-05-29Rangoni Of Florence NEW78Elwin Sharvill
1016Alejandro PerinBrazil2026-05-04Truhlar And Truhlar Attys NEW65Amy Elsner
1017Faith GillianItaly2026-05-26Feltz Printing Service NEGOTIATION89Xuxue Feng
1018Mujtaba NickaUnited Kingdom2026-05-20Feltz Printing Service NEGOTIATION62Xuxue Feng
1019Aditya KuskoFrance2026-05-16King, Christopher A Esq PROPOSAL34Bernardo Dominic
1020Kaitlin OstroskyIndia2026-05-10Rangoni Of Florence UNQUALIFIED30Anna Fali
1021Leja CaldareraSpain2026-05-06Rousseaux, Michael Esq RENEWAL33Elwin Sharvill
1022Ivar PaprockiFrance2026-05-24Feiner Bros PROPOSAL42Anna Fali
1023Jeanfrancois VenereUnited Kingdom2026-05-10Dorl, James J Esq NEGOTIATION72Elwin Sharvill
1024Leja CaldareraBrazil2026-05-16Chanay, Jeffrey A Esq RENEWAL21Asiya Javayant
1025Misaki RoysterArgentina2026-05-28Benton, John B Jr RENEWAL76Xuxue Feng
1026Emily WhobreyGermany2026-05-16Rousseaux, Michael Esq UNQUALIFIED47Xuxue Feng
1027Kadeem FlosiBrazil2026-05-13Feiner Bros RENEWAL86Elwin Sharvill
1028Rodrigues CampainBrazil2026-05-25Rangoni Of Florence NEW40Bernardo Dominic
1029Julie StensethJapan2026-05-04Commercial Press QUALIFIED76Amy Elsner
1030Rodrigues CampainJapan2026-05-27Printing Dimensions RENEWAL12Onyama Limba
1031Francesco ShinkoAustralia2026-05-30Buckley Miller Wright UNQUALIFIED0Asiya Javayant
1032Clifford RimBrazil2026-05-10Truhlar And Truhlar Attys UNQUALIFIED27Amy Elsner
1033Ashley DoeGermany2026-05-22Chanay, Jeffrey A Esq RENEWAL74Onyama Limba
1034Maria MarrierSpain2026-05-12Buckley Miller Wright QUALIFIED51Elwin Sharvill
1035Jeanfrancois VenereUnited Kingdom2026-05-31Feltz Printing Service QUALIFIED45Amy Elsner
1036Sinclair WaycottBrazil2026-05-18King, Christopher A Esq RENEWAL48Amy Elsner
1037Smith GlickCanada2026-05-25Dorl, James J Esq NEGOTIATION34Bernardo Dominic
1038Ivar PaprockiArgentina2026-05-17Chemel, James L Cpa NEW48Anna Fali
1039Cody SaylorsArgentina2026-05-06Printing Dimensions PROPOSAL81Asiya Javayant
1040Mayumi KolmetzFrance2026-05-13Chanay, Jeffrey A Esq NEGOTIATION38Elwin Sharvill
1041Ivar PaprockiAustralia2026-05-13Commercial Press RENEWAL22Ioni Bowcher
1042Adams MorascaBrazil2026-05-08Morlong Associates PROPOSAL30Onyama Limba
1043Mayumi KolmetzUnited Kingdom2026-05-04Feiner Bros NEW17Amy Elsner
1044Mayumi KolmetzArgentina2026-05-08Chemel, James L Cpa UNQUALIFIED76Stephen Shaw
1045Rodrigues CampainIndia2026-05-13Morlong Associates RENEWAL40Anna Fali
1046Ashley DoeGermany2026-05-12Commercial Press NEW86Ioni Bowcher
1047Francesco ShinkoItaly2026-05-11Rangoni Of Florence PROPOSAL60Onyama Limba
1048Smith GlickRussia2026-05-24Rousseaux, Michael Esq PROPOSAL27Ioni Bowcher
1049Murillo MaletArgentina2026-05-07Feiner Bros PROPOSAL28Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleCanadaElwin Sharvill NEGOTIATION
Smith GlickIndiaIvan Magalhaes QUALIFIED
Jennifer AmigonAustraliaAsiya Javayant UNQUALIFIED
Stacey MacleadRussiaElwin Sharvill RENEWAL
Francesco ShinkoArgentinaStephen Shaw NEW
Jeanfrancois VenereAustraliaElwin Sharvill UNQUALIFIED
Greenwood BologniaUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois VenereFranceIoni Bowcher PROPOSAL
Maisha RulapaughArgentinaOnyama Limba PROPOSAL
Murillo MaletFranceIoni Bowcher UNQUALIFIED
Darci PoquetteSpainIvan Magalhaes RENEWAL
Rodrigues CampainFranceAsiya Javayant NEW
Aruna FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia MaletJapanOnyama Limba RENEWAL
Silvio SlusarskiJapanAsiya Javayant NEW
Rodrigues CampainSpainAnna Fali QUALIFIED
Sinclair WaycottFranceAsiya Javayant QUALIFIED
Munro FerenczArgentinaOnyama Limba RENEWAL
Clifford RimJapanAsiya Javayant NEGOTIATION
Silvio SlusarskiAustraliaXuxue Feng NEGOTIATION
Jefferson SchemmerItalyAsiya Javayant PROPOSAL
Alejandro PerinFranceAnna Fali UNQUALIFIED
Smith GlickFranceStephen Shaw NEW
Kaitlin OstroskyGermanyStephen Shaw RENEWAL
Ashley DoeItalyElwin Sharvill NEGOTIATION
James ButtFranceAnna Fali NEW
Maria MarrierAustraliaStephen Shaw UNQUALIFIED
Juan WieserSpainAsiya Javayant NEGOTIATION
Kaitlin OstroskyCanadaOnyama Limba PROPOSAL
Costa DilliardArgentinaIvan Magalhaes NEGOTIATION
Faith GillianRussiaElwin Sharvill NEW
Salvatore StockhamSpainBernardo Dominic NEW
Faith GillianAustraliaAnna Fali QUALIFIED
Octavia MaletBrazilElwin Sharvill NEW
Antonio CaudyCanadaElwin Sharvill PROPOSAL
Sinclair WaycottJapanAmy Elsner QUALIFIED
Aditya KuskoCanadaIvan Magalhaes RENEWAL
Deepesh ChuiCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyIvan Magalhaes QUALIFIED
James ButtArgentinaIoni Bowcher NEGOTIATION
Antonio CaudyRussiaAsiya Javayant PROPOSAL
Izzy GarufiItalyBernardo Dominic UNQUALIFIED
Kaitlin OstroskyBrazilBernardo Dominic RENEWAL
Greenwood BologniaArgentinaAsiya Javayant NEGOTIATION
Stacey MacleadIndiaBernardo Dominic PROPOSAL
Munro FerenczUnited KingdomBernardo Dominic UNQUALIFIED
Arvin AlbaresItalyAsiya Javayant NEW
Adams MorascaUnited KingdomOnyama Limba NEGOTIATION
Misaki RoysterItalyAnna Fali QUALIFIED
Johnson SergiIndiaXuxue Feng NEW
Frozen Columns
Name
Deepesh Chui
Aditya Kusko
Aika Inouye
Stacey Maclead
Nicolas Iturbide
Nicolas Iturbide
Aruna Figeroa
Smith Glick
Antonio Caudy
David Darakjy
Cody Saylors
Octavia Malet
Deepesh Chui
Stacey Maclead
Antonio Caudy
Chavez Briddick
Izzy Garufi
Nicolas Iturbide
Salvatore Stockham
Rodrigues Campain
Stacey Maclead
Wickens Nestle
Cody Saylors
Kaitlin Ostrosky
Ivar Paprocki
Jefferson Schemmer
Aditya Kusko
Alejandro Perin
Izzy Garufi
Clifford Rim
James Butt
Aruna Figeroa
James Butt
Johnson Sergi
Misaki Royster
Isabel Bowley
Adams Morasca
Adams Morasca
Julie Stenseth
Deepesh Chui
Kadeem Flosi
Stacey Maclead
Morrow Ruta
Claire Tollner
Chavez Briddick
Silvio Slusarski
Murillo Malet
Maisha Rulapaugh
Jones Vocelka
Deepesh Chui
IdCountryDate
1000Brazil2026-05-06
1001Italy2026-05-30
1002Australia2026-05-25
1003India2026-05-04
1004Canada2026-05-10
1005Russia2026-05-13
1006United Kingdom2026-05-21
1007Japan2026-06-01
1008Japan2026-05-19
1009Canada2026-05-07
1010Spain2026-05-17
1011Russia2026-05-29
1012Spain2026-05-24
1013United Kingdom2026-05-10
1014Germany2026-05-20
1015Italy2026-05-11
1016United Kingdom2026-05-13
1017Italy2026-05-03
1018India2026-05-07
1019Italy2026-05-24
1020France2026-05-30
1021Argentina2026-05-20
1022Argentina2026-05-29
1023Australia2026-05-19
1024Australia2026-05-19
1025Australia2026-05-21
1026India2026-05-27
1027Spain2026-05-28
1028France2026-05-20
1029Canada2026-05-20
1030Argentina2026-05-30
1031Japan2026-05-20
1032Japan2026-05-09
1033Canada2026-05-31
1034United Kingdom2026-05-14
1035Argentina2026-05-28
1036Japan2026-05-26
1037Italy2026-05-14
1038Brazil2026-05-05
1039Russia2026-05-25
1040United Kingdom2026-05-22
1041Italy2026-05-16
1042Italy2026-05-11
1043Germany2026-05-18
1044France2026-05-29
1045Australia2026-05-17
1046Canada2026-05-08
1047France2026-05-22
1048Germany2026-06-01
1049United Kingdom2026-05-10

On-Demand Data

NameIdCountryDate
Francesco Shinko1000Brazil2026-05-04
Francesco Shinko1001Canada2026-05-06
Ashley Doe1002Spain2026-05-22
Rodrigues Campain1003Italy2026-05-10
Jefferson Schemmer1004Argentina2026-05-21
Murillo Malet1005Brazil2026-05-15
Izzy Garufi1006Japan2026-05-30
Salvatore Stockham1007Spain2026-05-08
Wickens Nestle1008Canada2026-06-01
Julie Stenseth1009Australia2026-06-01
Leon Oldroyd1010Russia2026-05-27
Sinclair Waycott1011United Kingdom2026-05-08
Silvio Slusarski1012United Kingdom2026-05-29
Aditya Kusko1013United Kingdom2026-05-22
Sinclair Waycott1014Germany2026-05-10
Julie Stenseth1015Australia2026-06-01
Tony Foller1016Canada2026-05-16
Ashley Doe1017Japan2026-05-22
Claire Tollner1018France2026-05-05
Leja Caldarera1019Germany2026-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyItalyElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanIoni Bowcher RENEWAL
Juan WieserArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeJapanIoni Bowcher QUALIFIED
Kaitlin OstroskyGermanyStephen Shaw NEW
Kaitlin OstroskyJapanIvan Magalhaes UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Greenwood BologniaUnited KingdomAnna Fali NEGOTIATION
Silvio SlusarskiItalyIoni Bowcher RENEWAL
Salvatore StockhamIndiaElwin Sharvill QUALIFIED
Ivar PaprockiBrazilOnyama Limba NEW
Leja CaldareraSpainOnyama Limba PROPOSAL
Faith GillianAustraliaAsiya Javayant NEGOTIATION
Clifford RimUnited KingdomAnna Fali UNQUALIFIED
Munro FerenczJapanIoni Bowcher UNQUALIFIED
Francesco ShinkoRussiaElwin Sharvill RENEWAL
Tony FollerRussiaAmy Elsner QUALIFIED
Leja CaldareraItalyStephen Shaw PROPOSAL
Morrow RutaFranceStephen Shaw PROPOSAL
Jennifer AmigonJapanIvan Magalhaes RENEWAL
Isabel BowleyItalyElwin Sharvill NEW
Mayumi KolmetzFranceIoni Bowcher PROPOSAL
Nicolas IturbideSpainStephen Shaw RENEWAL
Jefferson SchemmerItalyOnyama Limba NEGOTIATION
Wickens NestleRussiaStephen Shaw RENEWAL
Clifford RimJapanStephen Shaw RENEWAL
Aika InouyeUnited KingdomAnna Fali NEW
Cody SaylorsSpainElwin Sharvill UNQUALIFIED
Mayumi KolmetzItalyBernardo Dominic QUALIFIED
Aditya KuskoSpainAmy Elsner RENEWAL
Aditya KuskoUnited KingdomStephen Shaw QUALIFIED
Juan WieserJapanOnyama Limba NEGOTIATION
Stacey MacleadSpainAsiya Javayant UNQUALIFIED
Maisha RulapaughBrazilOnyama Limba RENEWAL
Ashley DoeIndiaAmy Elsner UNQUALIFIED
Mujtaba NickaUnited KingdomIvan Magalhaes NEGOTIATION
Morrow RutaIndiaXuxue Feng PROPOSAL
Leja CaldareraBrazilAnna Fali NEGOTIATION
Leja CaldareraFranceAnna Fali RENEWAL

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