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
Mujtaba NickaArgentinaAnna Fali RENEWAL
Julie StensethCanadaStephen Shaw NEW
Adams MorascaAustraliaBernardo Dominic RENEWAL
Jones VocelkaJapanOnyama Limba RENEWAL
Mujtaba NickaSpainElwin Sharvill NEW
Alejandro PerinUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamItalyAmy Elsner QUALIFIED
Murillo MaletJapanXuxue Feng PROPOSAL
Arvin AlbaresAustraliaAsiya Javayant NEW
Maria MarrierItalyIvan Magalhaes RENEWAL
Ricardo GauchoFranceOnyama Limba NEGOTIATION
Ricardo GauchoIndiaElwin Sharvill RENEWAL
James ButtRussiaStephen Shaw RENEWAL
Deepesh ChuiIndiaIvan Magalhaes PROPOSAL
Emily WhobreyArgentinaAsiya Javayant NEW
Francesco ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Aditya KuskoSpainBernardo Dominic UNQUALIFIED
Maria MarrierJapanAsiya Javayant UNQUALIFIED
Murillo MaletCanadaElwin Sharvill NEGOTIATION
Alejandro PerinBrazilAsiya Javayant NEGOTIATION
Jefferson SchemmerJapanAnna Fali RENEWAL
Isabel BowleyGermanyBernardo Dominic PROPOSAL
Costa DilliardFranceAmy Elsner PROPOSAL
Leon OldroydItalyOnyama Limba UNQUALIFIED
Aditya KuskoGermanyAmy Elsner QUALIFIED
Murillo MaletBrazilAsiya Javayant QUALIFIED
Juan WieserFranceOnyama Limba NEW
Izzy GarufiIndiaAnna Fali UNQUALIFIED
Greenwood BologniaIndiaElwin Sharvill PROPOSAL
Jennifer AmigonIndiaAmy Elsner QUALIFIED
Antonio CaudySpainAmy Elsner NEW
David DarakjySpainAsiya Javayant QUALIFIED
Maisha RulapaughBrazilAnna Fali NEW
Misaki RoysterArgentinaXuxue Feng NEGOTIATION
Chavez BriddickFranceAnna Fali NEGOTIATION
Octavia MaletUnited KingdomIoni Bowcher PROPOSAL
Izzy GarufiSpainXuxue Feng NEGOTIATION
Jones VocelkaSpainXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill NEGOTIATION
Clifford RimArgentinaBernardo Dominic NEW
Maria MarrierGermanyAnna Fali PROPOSAL
Tony FollerRussiaAsiya Javayant QUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes PROPOSAL
Morrow RutaCanadaStephen Shaw NEW
Leja CaldareraAustraliaBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaAnna Fali QUALIFIED
Jennifer AmigonCanadaStephen Shaw NEW
Deepesh ChuiFranceStephen Shaw QUALIFIED
Murillo MaletItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith GillianUnited KingdomAmy Elsner NEGOTIATION
Antonio CaudyArgentinaAnna Fali QUALIFIED
Sinclair WaycottAustraliaIoni Bowcher NEW
Ricardo GauchoBrazilStephen Shaw UNQUALIFIED
Morrow RutaFranceAnna Fali NEW
Deepesh ChuiIndiaElwin Sharvill NEGOTIATION
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Jennifer AmigonArgentinaOnyama Limba UNQUALIFIED
Greenwood BologniaSpainBernardo Dominic PROPOSAL
Ivar PaprockiIndiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraJapan2025-09-08Feiner Bros PROPOSAL45Onyama Limba
1001Aika InouyeGermany2025-09-14Rousseaux, Michael Esq NEW94Ioni Bowcher
1002Nicolas IturbideAustralia2025-09-07Chapman, Ross E Esq QUALIFIED83Ivan Magalhaes
1003Antonio CaudyJapan2025-09-14Chanay, Jeffrey A Esq RENEWAL40Elwin Sharvill
1004Julie StensethUnited Kingdom2025-08-24Truhlar And Truhlar Attys RENEWAL74Bernardo Dominic
1005Ivar PaprockiJapan2025-08-17Chanay, Jeffrey A Esq QUALIFIED12Stephen Shaw
1006Tony FollerJapan2025-09-03Printing Dimensions NEW96Amy Elsner
1007Jones VocelkaRussia2025-09-10Rangoni Of Florence UNQUALIFIED71Asiya Javayant
1008Maisha RulapaughSpain2025-08-19Benton, John B Jr QUALIFIED76Xuxue Feng
1009Sinclair WaycottArgentina2025-09-05Chanay, Jeffrey A Esq RENEWAL96Stephen Shaw
1010Isabel BowleyCanada2025-08-27Feltz Printing Service NEGOTIATION67Onyama Limba
1011Octavia MaletIndia2025-09-09Feltz Printing Service RENEWAL70Xuxue Feng
1012Mayumi KolmetzFrance2025-08-28Rangoni Of Florence PROPOSAL38Bernardo Dominic
1013Antonio CaudyJapan2025-08-19Buckley Miller Wright NEGOTIATION40Asiya Javayant
1014Leon OldroydIndia2025-08-28Buckley Miller Wright UNQUALIFIED51Amy Elsner
1015Aruna FigeroaGermany2025-08-31Chanay, Jeffrey A Esq NEW27Onyama Limba
1016Nicolas IturbideRussia2025-08-29Commercial Press NEW55Stephen Shaw
1017Maisha RulapaughIndia2025-08-25Rangoni Of Florence NEGOTIATION75Elwin Sharvill
1018Juan WieserFrance2025-09-06Rousseaux, Michael Esq QUALIFIED9Asiya Javayant
1019Smith GlickUnited Kingdom2025-08-19Feiner Bros UNQUALIFIED55Onyama Limba
1020Nicolas IturbideIndia2025-09-04Chapman, Ross E Esq QUALIFIED26Onyama Limba
1021Maria MarrierGermany2025-09-15Chapman, Ross E Esq PROPOSAL40Ivan Magalhaes
1022Smith GlickAustralia2025-08-29Chanay, Jeffrey A Esq PROPOSAL29Ivan Magalhaes
1023Mujtaba NickaIndia2025-08-25Rousseaux, Michael Esq PROPOSAL45Stephen Shaw
1024Silvio SlusarskiUnited Kingdom2025-09-04Chanay, Jeffrey A Esq UNQUALIFIED27Onyama Limba
1025Mujtaba NickaItaly2025-08-20Morlong Associates PROPOSAL26Xuxue Feng
1026Mujtaba NickaIndia2025-09-14Chemel, James L Cpa NEGOTIATION99Asiya Javayant
1027James ButtJapan2025-09-06Feltz Printing Service NEW67Elwin Sharvill
1028Francesco ShinkoCanada2025-08-30King, Christopher A Esq RENEWAL18Asiya Javayant
1029Darci PoquetteJapan2025-08-29Printing Dimensions PROPOSAL38Anna Fali
1030David DarakjySpain2025-09-13King, Christopher A Esq PROPOSAL6Ioni Bowcher
1031Kaitlin OstroskySpain2025-09-05Chapman, Ross E Esq NEGOTIATION71Anna Fali
1032Francesco ShinkoRussia2025-09-13Rangoni Of Florence NEW80Stephen Shaw
1033Silvio SlusarskiFrance2025-09-09Chapman, Ross E Esq QUALIFIED6Stephen Shaw
1034James ButtAustralia2025-08-30Dorl, James J Esq NEGOTIATION92Elwin Sharvill
1035Claire TollnerGermany2025-09-10Chanay, Jeffrey A Esq UNQUALIFIED34Elwin Sharvill
1036Sinclair WaycottSpain2025-09-10Feltz Printing Service UNQUALIFIED84Elwin Sharvill
1037Maisha RulapaughAustralia2025-09-03Benton, John B Jr QUALIFIED99Onyama Limba
1038Misaki RoysterArgentina2025-08-24Benton, John B Jr RENEWAL10Ioni Bowcher
1039Munro FerenczAustralia2025-09-05Dorl, James J Esq NEW52Ivan Magalhaes
1040Murillo MaletAustralia2025-08-29King, Christopher A Esq RENEWAL81Stephen Shaw
1041Rodrigues CampainCanada2025-09-03Feiner Bros PROPOSAL69Bernardo Dominic
1042Emily WhobreyAustralia2025-08-30Truhlar And Truhlar Attys UNQUALIFIED36Ivan Magalhaes
1043Jeanfrancois VenereRussia2025-08-20Buckley Miller Wright NEGOTIATION0Ioni Bowcher
1044Alejandro PerinAustralia2025-08-22Chemel, James L Cpa NEGOTIATION88Elwin Sharvill
1045Emily WhobreySpain2025-08-26Buckley Miller Wright PROPOSAL99Ioni Bowcher
1046Mujtaba NickaCanada2025-09-08Buckley Miller Wright NEGOTIATION50Xuxue Feng
1047Isabel BowleySpain2025-08-25Rousseaux, Michael Esq NEGOTIATION99Asiya Javayant
1048Juan WieserBrazil2025-09-09Buckley Miller Wright NEW41Xuxue Feng
1049Adams MorascaItaly2025-09-14Chapman, Ross E Esq RENEWAL93Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaFranceIvan Magalhaes NEGOTIATION
Cody SaylorsCanadaOnyama Limba QUALIFIED
Cody SaylorsFranceIoni Bowcher QUALIFIED
Adams MorascaBrazilOnyama Limba RENEWAL
Stacey MacleadArgentinaIvan Magalhaes NEW
Ivar PaprockiRussiaXuxue Feng NEW
Sinclair WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Murillo MaletSpainAsiya Javayant UNQUALIFIED
Smith GlickRussiaAmy Elsner NEW
Costa DilliardRussiaAsiya Javayant NEW
Munro FerenczRussiaAsiya Javayant RENEWAL
Claire TollnerIndiaXuxue Feng QUALIFIED
Claire TollnerJapanXuxue Feng NEW
Cody SaylorsUnited KingdomElwin Sharvill RENEWAL
Darci PoquetteUnited KingdomStephen Shaw PROPOSAL
David DarakjyJapanAnna Fali QUALIFIED
Misaki RoysterFranceAsiya Javayant NEGOTIATION
Clifford RimGermanyIoni Bowcher PROPOSAL
Salvatore StockhamBrazilIoni Bowcher PROPOSAL
Jones VocelkaJapanAsiya Javayant UNQUALIFIED
Claire TollnerAustraliaXuxue Feng UNQUALIFIED
James ButtFranceStephen Shaw PROPOSAL
Johnson SergiIndiaXuxue Feng NEW
Stacey MacleadJapanAnna Fali RENEWAL
Jefferson SchemmerUnited KingdomXuxue Feng PROPOSAL
Chavez BriddickRussiaAnna Fali QUALIFIED
Aruna FigeroaAustraliaIvan Magalhaes QUALIFIED
Johnson SergiGermanyAnna Fali UNQUALIFIED
Isabel BowleyGermanyAnna Fali QUALIFIED
Emily WhobreyBrazilXuxue Feng QUALIFIED
Morrow RutaAustraliaAnna Fali RENEWAL
Sinclair WaycottUnited KingdomOnyama Limba RENEWAL
Francesco ShinkoArgentinaAnna Fali UNQUALIFIED
Isabel BowleyIndiaElwin Sharvill NEGOTIATION
Johnson SergiCanadaAmy Elsner NEW
Costa DilliardArgentinaBernardo Dominic QUALIFIED
Johnson SergiSpainElwin Sharvill UNQUALIFIED
James ButtCanadaIvan Magalhaes NEW
Francesco ShinkoCanadaIvan Magalhaes NEGOTIATION
Alejandro PerinCanadaIvan Magalhaes NEGOTIATION
Nicolas IturbideRussiaOnyama Limba QUALIFIED
Leon OldroydArgentinaXuxue Feng RENEWAL
Ricardo GauchoCanadaIvan Magalhaes NEGOTIATION
Ivar PaprockiGermanyXuxue Feng UNQUALIFIED
Antonio CaudyIndiaBernardo Dominic PROPOSAL
Aika InouyeJapanAnna Fali NEGOTIATION
Jones VocelkaJapanIoni Bowcher UNQUALIFIED
Greenwood BologniaRussiaBernardo Dominic QUALIFIED
Leja CaldareraIndiaIoni Bowcher RENEWAL
Salvatore StockhamJapanBernardo Dominic RENEWAL
Frozen Columns
Name
Mayumi Kolmetz
Juan Wieser
Stacey Maclead
Ivar Paprocki
Chavez Briddick
Izzy Garufi
Mayumi Kolmetz
Aika Inouye
Jennifer Amigon
Juan Wieser
Rodrigues Campain
Aditya Kusko
Misaki Royster
Juan Wieser
Greenwood Bolognia
Aditya Kusko
Mujtaba Nicka
Jeanfrancois Venere
Francesco Shinko
Francesco Shinko
Tony Foller
Claire Tollner
Stacey Maclead
Wickens Nestle
Deepesh Chui
Chavez Briddick
Misaki Royster
Ricardo Gaucho
Clifford Rim
James Butt
Izzy Garufi
Isabel Bowley
Antonio Caudy
James Butt
Misaki Royster
Murillo Malet
Adams Morasca
Jennifer Amigon
Tony Foller
Nicolas Iturbide
Emily Whobrey
Clifford Rim
Stacey Maclead
Stacey Maclead
Johnson Sergi
Jennifer Amigon
Jefferson Schemmer
Maria Marrier
Maria Marrier
Izzy Garufi
IdCountryDate
1000Spain2025-08-21
1001Argentina2025-09-05
1002France2025-08-28
1003Germany2025-08-25
1004Japan2025-08-29
1005Japan2025-08-27
1006France2025-08-25
1007Italy2025-09-07
1008Argentina2025-09-06
1009Japan2025-09-15
1010Canada2025-08-28
1011Italy2025-09-10
1012Argentina2025-09-09
1013India2025-08-17
1014Spain2025-09-02
1015Brazil2025-09-02
1016France2025-08-22
1017Italy2025-08-30
1018Italy2025-08-22
1019Canada2025-08-24
1020Japan2025-08-28
1021Japan2025-08-30
1022Brazil2025-08-29
1023Brazil2025-09-11
1024Argentina2025-09-11
1025France2025-08-29
1026Spain2025-09-09
1027United Kingdom2025-09-09
1028United Kingdom2025-08-23
1029France2025-09-03
1030France2025-09-06
1031India2025-08-20
1032Italy2025-08-18
1033Brazil2025-09-05
1034Australia2025-08-20
1035Spain2025-08-19
1036Russia2025-08-29
1037India2025-09-06
1038Japan2025-09-09
1039Japan2025-09-09
1040Canada2025-09-02
1041Japan2025-09-01
1042Japan2025-08-18
1043Germany2025-09-06
1044Australia2025-08-29
1045Germany2025-09-10
1046Brazil2025-09-15
1047Brazil2025-09-03
1048Brazil2025-08-31
1049Brazil2025-09-13

On-Demand Data

NameIdCountryDate
Octavia Malet1000Brazil2025-08-23
Deepesh Chui1001India2025-08-23
Octavia Malet1002Spain2025-08-29
Deepesh Chui1003Australia2025-09-13
Adams Morasca1004France2025-08-24
Alejandro Perin1005Argentina2025-08-25
Sinclair Waycott1006India2025-08-20
Cody Saylors1007Brazil2025-09-03
Leon Oldroyd1008Argentina2025-09-12
Aditya Kusko1009Brazil2025-09-02
Salvatore Stockham1010Brazil2025-08-25
Costa Dilliard1011Spain2025-09-10
Wickens Nestle1012Brazil2025-09-01
Silvio Slusarski1013Brazil2025-08-23
Leon Oldroyd1014United Kingdom2025-08-23
Greenwood Bolognia1015Russia2025-08-20
Adams Morasca1016Germany2025-09-13
Julie Stenseth1017Canada2025-09-07
Julie Stenseth1018Japan2025-09-07
Murillo Malet1019Argentina2025-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraCanadaElwin Sharvill UNQUALIFIED
Isabel BowleyJapanElwin Sharvill NEGOTIATION
Leon OldroydArgentinaAsiya Javayant NEW
Misaki RoysterSpainBernardo Dominic UNQUALIFIED
Arvin AlbaresItalyAsiya Javayant NEW
Rodrigues CampainAustraliaOnyama Limba RENEWAL
Claire TollnerArgentinaAnna Fali UNQUALIFIED
Sinclair WaycottRussiaAnna Fali RENEWAL
Rodrigues CampainAustraliaIvan Magalhaes PROPOSAL
Claire TollnerFranceXuxue Feng NEW
Tony FollerArgentinaBernardo Dominic NEW
Kaitlin OstroskyIndiaIoni Bowcher UNQUALIFIED
Johnson SergiItalyIvan Magalhaes PROPOSAL
Greenwood BologniaUnited KingdomAnna Fali QUALIFIED
Kadeem FlosiSpainStephen Shaw UNQUALIFIED
Arvin AlbaresAustraliaAmy Elsner NEGOTIATION
Aruna FigeroaCanadaAsiya Javayant NEGOTIATION
Sinclair WaycottAustraliaBernardo Dominic QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali QUALIFIED
David DarakjyRussiaBernardo Dominic UNQUALIFIED
Izzy GarufiBrazilXuxue Feng PROPOSAL
Leon OldroydSpainAsiya Javayant QUALIFIED
Faith GillianSpainXuxue Feng QUALIFIED
Faith GillianAustraliaIoni Bowcher NEGOTIATION
Mayumi KolmetzAustraliaBernardo Dominic NEGOTIATION
Aruna FigeroaJapanAsiya Javayant QUALIFIED
Morrow RutaUnited KingdomStephen Shaw UNQUALIFIED
Aika InouyeIndiaAsiya Javayant UNQUALIFIED
Francesco ShinkoGermanyStephen Shaw NEW
Emily WhobreyFranceStephen Shaw NEGOTIATION
Jones VocelkaFranceAnna Fali NEGOTIATION
Rodrigues CampainArgentinaIoni Bowcher UNQUALIFIED
Aika InouyeIndiaXuxue Feng NEW
Leon OldroydRussiaIoni Bowcher RENEWAL
Rodrigues CampainFranceElwin Sharvill NEW
Stacey MacleadSpainElwin Sharvill RENEWAL
Octavia MaletUnited KingdomElwin Sharvill NEW
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
David DarakjySpainIvan Magalhaes NEW
Jeanfrancois VenereItalyAsiya Javayant UNQUALIFIED

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