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
Arvin AlbaresRussiaAmy Elsner UNQUALIFIED
Johnson SergiUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiBrazilOnyama Limba UNQUALIFIED
Clifford RimJapanElwin Sharvill UNQUALIFIED
Munro FerenczJapanXuxue Feng QUALIFIED
Kaitlin OstroskyRussiaOnyama Limba NEW
Izzy GarufiUnited KingdomOnyama Limba RENEWAL
Wickens NestleRussiaOnyama Limba NEGOTIATION
Jefferson SchemmerBrazilOnyama Limba NEW
Kadeem FlosiCanadaStephen Shaw UNQUALIFIED
Darci PoquetteRussiaAsiya Javayant NEW
Munro FerenczJapanStephen Shaw NEGOTIATION
Darci PoquetteAustraliaXuxue Feng UNQUALIFIED
Julie StensethItalyStephen Shaw NEW
Wickens NestleJapanStephen Shaw UNQUALIFIED
Juan WieserCanadaStephen Shaw RENEWAL
Leja CaldareraSpainAsiya Javayant RENEWAL
Jeanfrancois VenereFranceAsiya Javayant PROPOSAL
Mujtaba NickaGermanyBernardo Dominic NEGOTIATION
Izzy GarufiUnited KingdomXuxue Feng QUALIFIED
Nicolas IturbideArgentinaIoni Bowcher RENEWAL
Mayumi KolmetzFranceIvan Magalhaes UNQUALIFIED
Leja CaldareraAustraliaAmy Elsner NEGOTIATION
Mayumi KolmetzItalyBernardo Dominic RENEWAL
Leon OldroydIndiaAnna Fali PROPOSAL
Jones VocelkaGermanyAsiya Javayant UNQUALIFIED
Salvatore StockhamUnited KingdomStephen Shaw PROPOSAL
Wickens NestleArgentinaIvan Magalhaes UNQUALIFIED
Faith GillianSpainAmy Elsner PROPOSAL
Chavez BriddickAustraliaXuxue Feng QUALIFIED
Morrow RutaGermanyIoni Bowcher PROPOSAL
Johnson SergiArgentinaBernardo Dominic QUALIFIED
Stacey MacleadIndiaElwin Sharvill NEW
Chavez BriddickAustraliaBernardo Dominic NEGOTIATION
Francesco ShinkoBrazilBernardo Dominic QUALIFIED
Octavia MaletAustraliaIvan Magalhaes QUALIFIED
Maisha RulapaughGermanyAmy Elsner UNQUALIFIED
Aika InouyeSpainIvan Magalhaes QUALIFIED
Tony FollerIndiaXuxue Feng UNQUALIFIED
Antonio CaudyGermanyAsiya Javayant UNQUALIFIED
Stacey MacleadJapanStephen Shaw QUALIFIED
Jefferson SchemmerRussiaAsiya Javayant QUALIFIED
Jennifer AmigonCanadaXuxue Feng NEGOTIATION
Emily WhobreyFranceIvan Magalhaes NEGOTIATION
Sinclair WaycottRussiaStephen Shaw RENEWAL
Arvin AlbaresItalyAmy Elsner QUALIFIED
Francesco ShinkoArgentinaAsiya Javayant PROPOSAL
Smith GlickGermanyAnna Fali UNQUALIFIED
Jefferson SchemmerCanadaAnna Fali RENEWAL
Adams MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsBrazilElwin Sharvill UNQUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant NEGOTIATION
Francesco ShinkoAustraliaAnna Fali PROPOSAL
Cody SaylorsArgentinaAmy Elsner UNQUALIFIED
Rodrigues CampainSpainXuxue Feng UNQUALIFIED
Kadeem FlosiUnited KingdomXuxue Feng RENEWAL
Jennifer AmigonGermanyBernardo Dominic NEW
Juan WieserUnited KingdomAnna Fali NEGOTIATION
Mujtaba NickaUnited KingdomStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughGermany2026-06-08Printing Dimensions NEW26Anna Fali
1001Leon OldroydAustralia2026-06-09Morlong Associates PROPOSAL38Bernardo Dominic
1002Clifford RimIndia2026-05-25Morlong Associates UNQUALIFIED29Amy Elsner
1003Mayumi KolmetzGermany2026-05-26Chemel, James L Cpa RENEWAL67Ioni Bowcher
1004Murillo MaletRussia2026-05-23Morlong Associates QUALIFIED91Xuxue Feng
1005Maria MarrierRussia2026-05-26Commercial Press NEGOTIATION6Elwin Sharvill
1006Adams MorascaRussia2026-05-25Chanay, Jeffrey A Esq NEGOTIATION42Bernardo Dominic
1007Octavia MaletArgentina2026-06-18Feltz Printing Service NEW44Anna Fali
1008Juan WieserCanada2026-06-06Benton, John B Jr QUALIFIED84Ivan Magalhaes
1009Clifford RimCanada2026-06-05Dorl, James J Esq NEGOTIATION19Onyama Limba
1010Antonio CaudyItaly2026-05-28Feltz Printing Service UNQUALIFIED38Ivan Magalhaes
1011Izzy GarufiIndia2026-06-06Rangoni Of Florence NEW19Bernardo Dominic
1012Juan WieserUnited Kingdom2026-06-09Buckley Miller Wright RENEWAL56Asiya Javayant
1013Arvin AlbaresArgentina2026-05-28Printing Dimensions PROPOSAL13Asiya Javayant
1014Aditya KuskoItaly2026-06-12Morlong Associates NEW76Asiya Javayant
1015Tony FollerIndia2026-05-28Chanay, Jeffrey A Esq NEW74Ivan Magalhaes
1016Chavez BriddickRussia2026-06-16Morlong Associates RENEWAL50Amy Elsner
1017Aruna FigeroaJapan2026-06-10Commercial Press NEGOTIATION58Stephen Shaw
1018Mujtaba NickaGermany2026-06-03Commercial Press NEGOTIATION95Elwin Sharvill
1019Ricardo GauchoUnited Kingdom2026-05-29Morlong Associates NEW48Anna Fali
1020Kaitlin OstroskyJapan2026-05-27King, Christopher A Esq PROPOSAL70Elwin Sharvill
1021James ButtJapan2026-06-18Rangoni Of Florence NEGOTIATION8Onyama Limba
1022Juan WieserSpain2026-06-14Benton, John B Jr UNQUALIFIED32Xuxue Feng
1023Isabel BowleyAustralia2026-05-29Morlong Associates NEGOTIATION83Asiya Javayant
1024Faith GillianFrance2026-05-24Chemel, James L Cpa PROPOSAL5Elwin Sharvill
1025Wickens NestleRussia2026-05-31Feiner Bros UNQUALIFIED85Xuxue Feng
1026Ricardo GauchoAustralia2026-06-12Printing Dimensions NEGOTIATION45Asiya Javayant
1027Johnson SergiSpain2026-06-01Chapman, Ross E Esq QUALIFIED49Stephen Shaw
1028Salvatore StockhamGermany2026-06-16Buckley Miller Wright UNQUALIFIED82Ivan Magalhaes
1029Faith GillianFrance2026-06-21Printing Dimensions PROPOSAL14Bernardo Dominic
1030Aruna FigeroaGermany2026-06-15Feltz Printing Service QUALIFIED4Stephen Shaw
1031Mayumi KolmetzRussia2026-05-23Dorl, James J Esq NEGOTIATION84Bernardo Dominic
1032Murillo MaletAustralia2026-06-01Chapman, Ross E Esq NEW48Amy Elsner
1033Claire TollnerIndia2026-06-08Dorl, James J Esq UNQUALIFIED48Elwin Sharvill
1034Cody SaylorsJapan2026-05-29Rangoni Of Florence PROPOSAL20Ioni Bowcher
1035Morrow RutaIndia2026-06-05Chemel, James L Cpa NEGOTIATION77Amy Elsner
1036Jennifer AmigonJapan2026-05-30Chanay, Jeffrey A Esq QUALIFIED63Elwin Sharvill
1037Alejandro PerinGermany2026-05-30Rousseaux, Michael Esq PROPOSAL44Xuxue Feng
1038Aika InouyeCanada2026-06-07Buckley Miller Wright NEGOTIATION93Amy Elsner
1039Clifford RimIndia2026-06-14Chemel, James L Cpa UNQUALIFIED31Xuxue Feng
1040Smith GlickIndia2026-06-03Truhlar And Truhlar Attys RENEWAL15Anna Fali
1041Julie StensethGermany2026-05-27Benton, John B Jr PROPOSAL13Anna Fali
1042Arvin AlbaresUnited Kingdom2026-06-14Morlong Associates RENEWAL23Elwin Sharvill
1043Aditya KuskoSpain2026-06-12Printing Dimensions UNQUALIFIED89Elwin Sharvill
1044Isabel BowleyFrance2026-06-04Printing Dimensions RENEWAL76Stephen Shaw
1045Murillo MaletGermany2026-05-28Benton, John B Jr QUALIFIED90Anna Fali
1046Deepesh ChuiUnited Kingdom2026-06-20Commercial Press UNQUALIFIED95Ivan Magalhaes
1047Aruna FigeroaUnited Kingdom2026-05-23King, Christopher A Esq RENEWAL67Asiya Javayant
1048Alejandro PerinGermany2026-06-08Dorl, James J Esq NEGOTIATION34Ivan Magalhaes
1049Silvio SlusarskiCanada2026-06-01Benton, John B Jr UNQUALIFIED42Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerSpainAsiya Javayant UNQUALIFIED
Mayumi KolmetzUnited KingdomAmy Elsner NEW
Chavez BriddickSpainAsiya Javayant PROPOSAL
Kaitlin OstroskyCanadaIoni Bowcher RENEWAL
Izzy GarufiSpainAmy Elsner QUALIFIED
Kaitlin OstroskyGermanyOnyama Limba RENEWAL
Maria MarrierSpainStephen Shaw QUALIFIED
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Adams MorascaUnited KingdomAsiya Javayant NEW
Morrow RutaUnited KingdomStephen Shaw UNQUALIFIED
Jones VocelkaItalyStephen Shaw PROPOSAL
Mayumi KolmetzCanadaAnna Fali QUALIFIED
Morrow RutaSpainElwin Sharvill QUALIFIED
Juan WieserFranceAsiya Javayant PROPOSAL
Maisha RulapaughArgentinaOnyama Limba RENEWAL
Maria MarrierRussiaAnna Fali QUALIFIED
Clifford RimCanadaAnna Fali NEGOTIATION
Jennifer AmigonIndiaIvan Magalhaes RENEWAL
Costa DilliardRussiaIvan Magalhaes PROPOSAL
Sinclair WaycottRussiaXuxue Feng NEGOTIATION
Smith GlickIndiaAnna Fali RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant NEGOTIATION
Antonio CaudyAustraliaOnyama Limba PROPOSAL
Maria MarrierAustraliaBernardo Dominic NEGOTIATION
Aruna FigeroaGermanyAnna Fali QUALIFIED
Octavia MaletUnited KingdomIoni Bowcher PROPOSAL
Ivar PaprockiIndiaAnna Fali UNQUALIFIED
Munro FerenczFranceBernardo Dominic RENEWAL
Deepesh ChuiUnited KingdomElwin Sharvill RENEWAL
Sinclair WaycottCanadaOnyama Limba UNQUALIFIED
Chavez BriddickBrazilAnna Fali QUALIFIED
Clifford RimIndiaIvan Magalhaes NEW
Octavia MaletArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletArgentinaOnyama Limba QUALIFIED
Faith GillianItalyOnyama Limba UNQUALIFIED
Juan WieserIndiaAsiya Javayant QUALIFIED
Francesco ShinkoItalyElwin Sharvill QUALIFIED
Murillo MaletJapanXuxue Feng QUALIFIED
Faith GillianGermanyAmy Elsner RENEWAL
Morrow RutaCanadaIvan Magalhaes RENEWAL
Mayumi KolmetzIndiaIoni Bowcher QUALIFIED
Smith GlickRussiaXuxue Feng QUALIFIED
Ricardo GauchoRussiaAmy Elsner UNQUALIFIED
Deepesh ChuiArgentinaIvan Magalhaes QUALIFIED
Aditya KuskoJapanOnyama Limba RENEWAL
Leon OldroydCanadaXuxue Feng PROPOSAL
Salvatore StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo GauchoFranceIoni Bowcher NEGOTIATION
Chavez BriddickCanadaAmy Elsner NEW
Frozen Columns
Name
Maria Marrier
Adams Morasca
Costa Dilliard
Aditya Kusko
Mayumi Kolmetz
Jennifer Amigon
Smith Glick
Julie Stenseth
Kaitlin Ostrosky
Deepesh Chui
Misaki Royster
Antonio Caudy
Adams Morasca
Jeanfrancois Venere
Arvin Albares
Ashley Doe
Octavia Malet
Nicolas Iturbide
Maisha Rulapaugh
Rodrigues Campain
Jeanfrancois Venere
Ashley Doe
Darci Poquette
Aika Inouye
Rodrigues Campain
Maria Marrier
Mujtaba Nicka
Octavia Malet
Silvio Slusarski
Misaki Royster
James Butt
Jennifer Amigon
Emily Whobrey
Faith Gillian
Munro Ferencz
Emily Whobrey
Wickens Nestle
Faith Gillian
Isabel Bowley
Octavia Malet
Greenwood Bolognia
James Butt
Murillo Malet
Munro Ferencz
Jones Vocelka
Julie Stenseth
Juan Wieser
Adams Morasca
Smith Glick
Morrow Ruta
IdCountryDate
1000India2026-05-24
1001Japan2026-06-19
1002France2026-05-27
1003Canada2026-05-24
1004Canada2026-06-19
1005Brazil2026-06-16
1006Italy2026-05-23
1007Italy2026-06-18
1008Italy2026-05-28
1009Spain2026-06-04
1010Italy2026-06-07
1011Canada2026-06-05
1012France2026-06-05
1013Italy2026-06-06
1014India2026-06-20
1015India2026-06-16
1016Russia2026-06-19
1017Canada2026-05-30
1018France2026-05-29
1019United Kingdom2026-06-18
1020Spain2026-05-28
1021Germany2026-06-01
1022France2026-06-20
1023Canada2026-05-29
1024Spain2026-05-26
1025Russia2026-06-21
1026France2026-06-04
1027India2026-05-25
1028France2026-06-08
1029India2026-06-14
1030Italy2026-05-27
1031Russia2026-06-05
1032Argentina2026-06-08
1033United Kingdom2026-06-21
1034India2026-06-06
1035France2026-05-27
1036Italy2026-06-14
1037Argentina2026-06-06
1038India2026-06-08
1039United Kingdom2026-05-30
1040Australia2026-05-25
1041Japan2026-05-24
1042Canada2026-06-14
1043France2026-06-07
1044Italy2026-05-23
1045Italy2026-06-15
1046Germany2026-06-21
1047Germany2026-05-26
1048Japan2026-06-18
1049Japan2026-06-14

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Russia2026-06-03
Leja Caldarera1001Canada2026-05-27
Jefferson Schemmer1002Spain2026-06-18
Wickens Nestle1003Germany2026-06-19
Izzy Garufi1004Brazil2026-06-21
Tony Foller1005India2026-06-16
Adams Morasca1006India2026-06-16
Stacey Maclead1007Brazil2026-05-25
Costa Dilliard1008Germany2026-05-26
Silvio Slusarski1009Japan2026-06-02
Leja Caldarera1010Russia2026-06-10
Silvio Slusarski1011Canada2026-06-10
Adams Morasca1012Italy2026-05-31
Ricardo Gaucho1013United Kingdom2026-05-25
David Darakjy1014France2026-06-09
Murillo Malet1015Russia2026-06-20
Munro Ferencz1016Argentina2026-06-21
Morrow Ruta1017Canada2026-05-29
Arvin Albares1018Spain2026-06-16
Jennifer Amigon1019Russia2026-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoAustraliaOnyama Limba NEW
Mayumi KolmetzAustraliaOnyama Limba NEGOTIATION
Smith GlickArgentinaElwin Sharvill NEGOTIATION
Faith GillianGermanyAsiya Javayant NEGOTIATION
Jennifer AmigonCanadaAsiya Javayant NEW
Mujtaba NickaUnited KingdomElwin Sharvill PROPOSAL
Octavia MaletAustraliaElwin Sharvill NEGOTIATION
Izzy GarufiCanadaXuxue Feng QUALIFIED
Tony FollerCanadaIoni Bowcher RENEWAL
Kadeem FlosiSpainStephen Shaw NEW
Tony FollerJapanElwin Sharvill UNQUALIFIED
Jeanfrancois VenereFranceStephen Shaw NEGOTIATION
Wickens NestleGermanyAnna Fali NEW
Murillo MaletSpainIvan Magalhaes UNQUALIFIED
Mayumi KolmetzJapanIoni Bowcher UNQUALIFIED
Isabel BowleyJapanAsiya Javayant RENEWAL
Octavia MaletGermanyOnyama Limba UNQUALIFIED
Jones VocelkaRussiaAmy Elsner QUALIFIED
Murillo MaletFranceAnna Fali UNQUALIFIED
Tony FollerArgentinaBernardo Dominic NEW
Ashley DoeRussiaOnyama Limba NEGOTIATION
Darci PoquetteFranceAsiya Javayant NEW
Octavia MaletFranceOnyama Limba QUALIFIED
Antonio CaudyRussiaBernardo Dominic QUALIFIED
Izzy GarufiRussiaStephen Shaw PROPOSAL
Leja CaldareraUnited KingdomIvan Magalhaes NEW
Ivar PaprockiJapanAsiya Javayant UNQUALIFIED
Maisha RulapaughFranceIoni Bowcher PROPOSAL
Emily WhobreyItalyAsiya Javayant NEW
Ivar PaprockiRussiaElwin Sharvill NEW
Munro FerenczRussiaAnna Fali QUALIFIED
Munro FerenczAustraliaAmy Elsner PROPOSAL
Mayumi KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues CampainItalyIvan Magalhaes UNQUALIFIED
Clifford RimJapanStephen Shaw UNQUALIFIED
Wickens NestleFranceIvan Magalhaes UNQUALIFIED
Nicolas IturbideRussiaAnna Fali QUALIFIED
Rodrigues CampainItalyAsiya Javayant NEW
David DarakjyJapanBernardo Dominic RENEWAL
Chavez BriddickSpainIvan Magalhaes 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>