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
Morrow RutaUnited KingdomBernardo Dominic NEW
Isabel BowleyUnited KingdomElwin Sharvill QUALIFIED
Emily WhobreySpainXuxue Feng PROPOSAL
Jeanfrancois VenereCanadaStephen Shaw NEW
Stacey MacleadIndiaIoni Bowcher QUALIFIED
Kaitlin OstroskyUnited KingdomAsiya Javayant PROPOSAL
David DarakjyUnited KingdomIoni Bowcher QUALIFIED
Francesco ShinkoItalyBernardo Dominic RENEWAL
Julie StensethItalyOnyama Limba QUALIFIED
Kaitlin OstroskyIndiaAsiya Javayant NEGOTIATION
Antonio CaudyRussiaXuxue Feng NEGOTIATION
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Johnson SergiRussiaAmy Elsner PROPOSAL
Alejandro PerinGermanyAnna Fali RENEWAL
Adams MorascaJapanIoni Bowcher RENEWAL
Costa DilliardAustraliaOnyama Limba NEW
Kaitlin OstroskyFranceStephen Shaw NEW
Jefferson SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
James ButtFranceIoni Bowcher RENEWAL
Jeanfrancois VenereJapanXuxue Feng QUALIFIED
Francesco ShinkoBrazilAnna Fali UNQUALIFIED
Greenwood BologniaSpainAnna Fali RENEWAL
Jefferson SchemmerBrazilIvan Magalhaes NEW
Misaki RoysterItalyBernardo Dominic NEW
Emily WhobreyArgentinaStephen Shaw NEGOTIATION
Murillo MaletIndiaXuxue Feng UNQUALIFIED
Chavez BriddickArgentinaElwin Sharvill PROPOSAL
Johnson SergiItalyBernardo Dominic PROPOSAL
Sinclair WaycottFranceBernardo Dominic RENEWAL
Leon OldroydFranceAnna Fali UNQUALIFIED
Maria MarrierAustraliaElwin Sharvill NEGOTIATION
Mujtaba NickaGermanyElwin Sharvill PROPOSAL
Stacey MacleadFranceAmy Elsner NEW
Chavez BriddickIndiaAnna Fali PROPOSAL
Julie StensethAustraliaIoni Bowcher PROPOSAL
Stacey MacleadItalyBernardo Dominic QUALIFIED
Alejandro PerinCanadaAnna Fali QUALIFIED
Kaitlin OstroskyArgentinaXuxue Feng NEGOTIATION
Wickens NestleCanadaIvan Magalhaes PROPOSAL
Ivar PaprockiGermanyStephen Shaw UNQUALIFIED
Sinclair WaycottAustraliaStephen Shaw NEGOTIATION
Salvatore StockhamJapanAmy Elsner NEGOTIATION
Jefferson SchemmerItalyXuxue Feng RENEWAL
Julie StensethSpainBernardo Dominic UNQUALIFIED
Stacey MacleadJapanAnna Fali QUALIFIED
Greenwood BologniaIndiaOnyama Limba PROPOSAL
Greenwood BologniaIndiaOnyama Limba RENEWAL
Arvin AlbaresFranceBernardo Dominic PROPOSAL
Johnson SergiAustraliaStephen Shaw PROPOSAL
Misaki RoysterUnited KingdomAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire TollnerRussiaAmy Elsner RENEWAL
Kadeem FlosiIndiaAmy Elsner QUALIFIED
Octavia MaletItalyElwin Sharvill RENEWAL
Leja CaldareraFranceAsiya Javayant RENEWAL
Alejandro PerinCanadaIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanElwin Sharvill NEW
Deepesh ChuiAustraliaAmy Elsner PROPOSAL
Maisha RulapaughFranceElwin Sharvill UNQUALIFIED
Izzy GarufiJapanAsiya Javayant NEW
Aditya KuskoBrazilIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethUnited Kingdom2026-04-25Benton, John B Jr UNQUALIFIED69Xuxue Feng
1001Clifford RimIndia2026-04-04Feltz Printing Service PROPOSAL80Ioni Bowcher
1002Jefferson SchemmerIndia2026-04-10King, Christopher A Esq RENEWAL3Onyama Limba
1003Ivar PaprockiGermany2026-04-26Feltz Printing Service PROPOSAL74Anna Fali
1004Mujtaba NickaArgentina2026-04-10Benton, John B Jr NEW3Onyama Limba
1005Leja CaldareraAustralia2026-04-11Feltz Printing Service QUALIFIED23Elwin Sharvill
1006James ButtSpain2026-05-02Chapman, Ross E Esq NEW46Elwin Sharvill
1007Johnson SergiCanada2026-04-30Morlong Associates NEW43Xuxue Feng
1008Antonio CaudyItaly2026-04-13King, Christopher A Esq RENEWAL21Ioni Bowcher
1009Mayumi KolmetzSpain2026-04-23Chemel, James L Cpa RENEWAL31Onyama Limba
1010Claire TollnerIndia2026-04-04Printing Dimensions QUALIFIED28Bernardo Dominic
1011Ashley DoeSpain2026-04-20Truhlar And Truhlar Attys UNQUALIFIED65Stephen Shaw
1012Nicolas IturbideGermany2026-04-25Commercial Press NEW0Anna Fali
1013Johnson SergiFrance2026-05-03Chemel, James L Cpa QUALIFIED89Amy Elsner
1014David DarakjyBrazil2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED91Asiya Javayant
1015Murillo MaletJapan2026-04-16Chemel, James L Cpa UNQUALIFIED43Elwin Sharvill
1016Jones VocelkaFrance2026-04-09Truhlar And Truhlar Attys NEGOTIATION55Asiya Javayant
1017Leja CaldareraArgentina2026-04-27Rousseaux, Michael Esq UNQUALIFIED20Ivan Magalhaes
1018Jefferson SchemmerFrance2026-04-23King, Christopher A Esq QUALIFIED97Elwin Sharvill
1019Mujtaba NickaBrazil2026-04-30Benton, John B Jr NEW44Amy Elsner
1020Octavia MaletJapan2026-04-21Dorl, James J Esq RENEWAL89Elwin Sharvill
1021Cody SaylorsBrazil2026-04-19Morlong Associates RENEWAL26Anna Fali
1022Jennifer AmigonRussia2026-04-11Morlong Associates UNQUALIFIED63Elwin Sharvill
1023Emily WhobreyFrance2026-04-26Truhlar And Truhlar Attys NEW48Amy Elsner
1024Sinclair WaycottJapan2026-04-24Commercial Press RENEWAL0Anna Fali
1025Antonio CaudyGermany2026-04-23Rousseaux, Michael Esq PROPOSAL60Amy Elsner
1026Antonio CaudyBrazil2026-04-17Truhlar And Truhlar Attys RENEWAL76Ivan Magalhaes
1027Aruna FigeroaFrance2026-04-08King, Christopher A Esq NEW33Onyama Limba
1028James ButtAustralia2026-04-30Buckley Miller Wright QUALIFIED36Asiya Javayant
1029Silvio SlusarskiJapan2026-04-05Feiner Bros NEGOTIATION49Ivan Magalhaes
1030Emily WhobreyArgentina2026-04-29Rousseaux, Michael Esq PROPOSAL47Amy Elsner
1031Leon OldroydIndia2026-04-05Chapman, Ross E Esq NEGOTIATION15Xuxue Feng
1032Kaitlin OstroskyFrance2026-04-28Truhlar And Truhlar Attys PROPOSAL58Elwin Sharvill
1033Isabel BowleyJapan2026-04-19Printing Dimensions NEW51Xuxue Feng
1034Aika InouyeRussia2026-04-22Chapman, Ross E Esq RENEWAL45Bernardo Dominic
1035Darci PoquetteBrazil2026-05-01King, Christopher A Esq PROPOSAL1Ivan Magalhaes
1036Faith GillianBrazil2026-04-08Feiner Bros RENEWAL3Ivan Magalhaes
1037Tony FollerCanada2026-04-24Commercial Press PROPOSAL33Xuxue Feng
1038Mujtaba NickaRussia2026-04-23Chemel, James L Cpa RENEWAL19Onyama Limba
1039Stacey MacleadCanada2026-04-09Benton, John B Jr UNQUALIFIED81Amy Elsner
1040Aditya KuskoSpain2026-04-26Printing Dimensions UNQUALIFIED44Xuxue Feng
1041Aruna FigeroaItaly2026-05-01Benton, John B Jr PROPOSAL67Ioni Bowcher
1042Arvin AlbaresArgentina2026-04-24Chapman, Ross E Esq PROPOSAL9Elwin Sharvill
1043Jones VocelkaBrazil2026-04-05Chanay, Jeffrey A Esq PROPOSAL98Bernardo Dominic
1044Smith GlickSpain2026-05-02Buckley Miller Wright NEGOTIATION89Bernardo Dominic
1045Maisha RulapaughBrazil2026-04-16Printing Dimensions QUALIFIED90Elwin Sharvill
1046Jefferson SchemmerSpain2026-04-04Buckley Miller Wright PROPOSAL21Asiya Javayant
1047Claire TollnerFrance2026-05-01Benton, John B Jr RENEWAL42Amy Elsner
1048Ashley DoeCanada2026-04-29Chanay, Jeffrey A Esq NEGOTIATION47Elwin Sharvill
1049Misaki RoysterIndia2026-04-11King, Christopher A Esq NEGOTIATION69Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiGermanyXuxue Feng RENEWAL
Nicolas IturbideItalyAsiya Javayant NEW
Rodrigues CampainAustraliaStephen Shaw PROPOSAL
Smith GlickArgentinaAsiya Javayant PROPOSAL
Ivar PaprockiItalyElwin Sharvill RENEWAL
Silvio SlusarskiFranceBernardo Dominic NEW
Greenwood BologniaJapanAmy Elsner PROPOSAL
Ashley DoeItalyStephen Shaw UNQUALIFIED
Julie StensethUnited KingdomAnna Fali NEW
Izzy GarufiSpainBernardo Dominic QUALIFIED
Kaitlin OstroskyBrazilIoni Bowcher RENEWAL
Octavia MaletFranceXuxue Feng PROPOSAL
Jefferson SchemmerSpainIvan Magalhaes PROPOSAL
Antonio CaudyFranceIvan Magalhaes NEGOTIATION
Jeanfrancois VenereUnited KingdomIvan Magalhaes RENEWAL
Jones VocelkaAustraliaIoni Bowcher UNQUALIFIED
Costa DilliardIndiaIvan Magalhaes UNQUALIFIED
Johnson SergiUnited KingdomAsiya Javayant UNQUALIFIED
Francesco ShinkoRussiaOnyama Limba PROPOSAL
Mayumi KolmetzArgentinaElwin Sharvill QUALIFIED
Maisha RulapaughRussiaIoni Bowcher NEGOTIATION
Mayumi KolmetzAustraliaBernardo Dominic PROPOSAL
David DarakjyIndiaIvan Magalhaes NEW
Misaki RoysterCanadaStephen Shaw PROPOSAL
Ashley DoeJapanElwin Sharvill PROPOSAL
Tony FollerFranceAnna Fali QUALIFIED
Tony FollerFranceStephen Shaw PROPOSAL
Adams MorascaItalyXuxue Feng NEW
Johnson SergiRussiaIoni Bowcher PROPOSAL
Ricardo GauchoUnited KingdomAmy Elsner NEW
Morrow RutaRussiaOnyama Limba QUALIFIED
Arvin AlbaresGermanyOnyama Limba RENEWAL
Wickens NestleUnited KingdomStephen Shaw PROPOSAL
Maisha RulapaughJapanOnyama Limba PROPOSAL
Johnson SergiSpainAnna Fali NEW
Munro FerenczCanadaXuxue Feng UNQUALIFIED
Claire TollnerIndiaBernardo Dominic NEGOTIATION
Ivar PaprockiArgentinaIvan Magalhaes QUALIFIED
Tony FollerUnited KingdomAmy Elsner NEW
Maisha RulapaughBrazilElwin Sharvill UNQUALIFIED
Nicolas IturbideArgentinaOnyama Limba QUALIFIED
Aruna FigeroaGermanyBernardo Dominic RENEWAL
Maria MarrierFranceAmy Elsner RENEWAL
Jennifer AmigonAustraliaAsiya Javayant PROPOSAL
Claire TollnerArgentinaBernardo Dominic NEGOTIATION
Wickens NestleUnited KingdomBernardo Dominic RENEWAL
Mujtaba NickaArgentinaBernardo Dominic PROPOSAL
Silvio SlusarskiIndiaElwin Sharvill RENEWAL
Rodrigues CampainCanadaIvan Magalhaes NEGOTIATION
Mujtaba NickaItalyIoni Bowcher QUALIFIED
Frozen Columns
Name
Alejandro Perin
Ashley Doe
Aika Inouye
Salvatore Stockham
Aruna Figeroa
Darci Poquette
Smith Glick
Costa Dilliard
Sinclair Waycott
Ricardo Gaucho
Misaki Royster
Juan Wieser
Salvatore Stockham
Wickens Nestle
Kadeem Flosi
Aika Inouye
Jennifer Amigon
Leja Caldarera
Misaki Royster
Tony Foller
Jeanfrancois Venere
Emily Whobrey
Chavez Briddick
Rodrigues Campain
Juan Wieser
Leon Oldroyd
Jones Vocelka
Murillo Malet
Octavia Malet
Octavia Malet
Maria Marrier
Costa Dilliard
Julie Stenseth
Octavia Malet
David Darakjy
Deepesh Chui
Juan Wieser
Darci Poquette
Kaitlin Ostrosky
Jeanfrancois Venere
Clifford Rim
Adams Morasca
Murillo Malet
Cody Saylors
Leja Caldarera
Kaitlin Ostrosky
Maisha Rulapaugh
Claire Tollner
Leon Oldroyd
Rodrigues Campain
IdCountryDate
1000Argentina2026-04-14
1001India2026-04-07
1002Australia2026-04-09
1003Brazil2026-04-17
1004United Kingdom2026-04-13
1005United Kingdom2026-04-28
1006Japan2026-04-08
1007Japan2026-04-07
1008Australia2026-04-29
1009Argentina2026-04-14
1010Spain2026-04-04
1011Germany2026-04-08
1012Russia2026-04-27
1013Italy2026-04-29
1014Germany2026-04-25
1015Spain2026-04-13
1016Brazil2026-04-28
1017India2026-05-02
1018Germany2026-04-14
1019Russia2026-04-19
1020France2026-04-15
1021Germany2026-05-02
1022India2026-04-16
1023Japan2026-04-27
1024France2026-04-07
1025Spain2026-04-15
1026Canada2026-04-20
1027Australia2026-04-18
1028Argentina2026-04-10
1029India2026-04-21
1030Brazil2026-04-19
1031Russia2026-04-13
1032India2026-04-14
1033Brazil2026-05-02
1034Japan2026-04-05
1035Canada2026-04-15
1036Spain2026-04-14
1037Argentina2026-04-13
1038Russia2026-04-10
1039Australia2026-04-23
1040Spain2026-04-24
1041Australia2026-04-07
1042Australia2026-04-23
1043Japan2026-04-06
1044Italy2026-04-18
1045Spain2026-04-22
1046Italy2026-04-28
1047Germany2026-04-11
1048Germany2026-04-28
1049Japan2026-04-11

On-Demand Data

NameIdCountryDate
Adams Morasca1000Germany2026-05-02
Leja Caldarera1001Brazil2026-04-10
Munro Ferencz1002Canada2026-04-16
Murillo Malet1003Brazil2026-04-22
Smith Glick1004Japan2026-04-06
Aditya Kusko1005Canada2026-04-11
Claire Tollner1006Italy2026-04-07
Alejandro Perin1007Spain2026-05-01
Tony Foller1008France2026-04-07
Maisha Rulapaugh1009Japan2026-04-21
Wickens Nestle1010Russia2026-04-05
Kadeem Flosi1011Spain2026-04-06
Arvin Albares1012Japan2026-05-03
Jones Vocelka1013Italy2026-04-19
Costa Dilliard1014Russia2026-04-09
Costa Dilliard1015France2026-04-30
Maria Marrier1016Italy2026-04-07
Johnson Sergi1017Spain2026-05-02
Arvin Albares1018Japan2026-04-28
Mujtaba Nicka1019Japan2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiRussiaStephen Shaw NEW
Alejandro PerinAustraliaAnna Fali PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill RENEWAL
Stacey MacleadAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyUnited KingdomIvan Magalhaes PROPOSAL
Arvin AlbaresBrazilXuxue Feng NEW
Mayumi KolmetzUnited KingdomAnna Fali UNQUALIFIED
Deepesh ChuiArgentinaElwin Sharvill QUALIFIED
Antonio CaudyGermanyAnna Fali UNQUALIFIED
Faith GillianItalyBernardo Dominic NEW
Smith GlickIndiaIoni Bowcher NEGOTIATION
Ashley DoeBrazilAmy Elsner RENEWAL
Aditya KuskoItalyIoni Bowcher QUALIFIED
Mayumi KolmetzRussiaAsiya Javayant RENEWAL
Ricardo GauchoBrazilIoni Bowcher UNQUALIFIED
Stacey MacleadArgentinaIvan Magalhaes PROPOSAL
Maisha RulapaughAustraliaElwin Sharvill QUALIFIED
Aruna FigeroaFranceBernardo Dominic QUALIFIED
Kadeem FlosiArgentinaOnyama Limba QUALIFIED
Leja CaldareraIndiaIvan Magalhaes UNQUALIFIED
Johnson SergiSpainAmy Elsner NEGOTIATION
David DarakjyJapanIoni Bowcher NEW
Jefferson SchemmerRussiaBernardo Dominic UNQUALIFIED
Darci PoquetteUnited KingdomAsiya Javayant NEW
Rodrigues CampainArgentinaIoni Bowcher NEGOTIATION
Jennifer AmigonIndiaBernardo Dominic NEGOTIATION
Johnson SergiSpainElwin Sharvill UNQUALIFIED
Tony FollerIndiaXuxue Feng QUALIFIED
Octavia MaletCanadaAmy Elsner NEGOTIATION
Julie StensethAustraliaElwin Sharvill NEGOTIATION
Arvin AlbaresIndiaBernardo Dominic NEW
Octavia MaletJapanElwin Sharvill RENEWAL
Maria MarrierItalyStephen Shaw PROPOSAL
Ricardo GauchoUnited KingdomAsiya Javayant RENEWAL
Tony FollerJapanElwin Sharvill UNQUALIFIED
Juan WieserAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainBrazilBernardo Dominic UNQUALIFIED
Darci PoquetteRussiaAsiya Javayant NEW
Deepesh ChuiItalyIoni Bowcher RENEWAL
Tony FollerItalyOnyama Limba 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>