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
Johnson SergiCanadaAmy Elsner PROPOSAL
Octavia MaletGermanyStephen Shaw PROPOSAL
Murillo MaletUnited KingdomIvan Magalhaes PROPOSAL
Jennifer AmigonFranceStephen Shaw UNQUALIFIED
Leon OldroydSpainAmy Elsner QUALIFIED
Antonio CaudyBrazilElwin Sharvill NEGOTIATION
Chavez BriddickIndiaAmy Elsner RENEWAL
Aruna FigeroaUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamCanadaAmy Elsner PROPOSAL
Cody SaylorsGermanyStephen Shaw NEGOTIATION
Leon OldroydIndiaAmy Elsner QUALIFIED
Alejandro PerinUnited KingdomIoni Bowcher NEW
Ricardo GauchoFranceBernardo Dominic NEGOTIATION
Cody SaylorsRussiaIvan Magalhaes UNQUALIFIED
Misaki RoysterRussiaAmy Elsner NEGOTIATION
Maria MarrierJapanAnna Fali UNQUALIFIED
Chavez BriddickAustraliaOnyama Limba NEW
Faith GillianArgentinaAsiya Javayant RENEWAL
Izzy GarufiArgentinaElwin Sharvill NEGOTIATION
Aruna FigeroaArgentinaBernardo Dominic NEGOTIATION
Faith GillianJapanAsiya Javayant RENEWAL
Mujtaba NickaJapanOnyama Limba PROPOSAL
Rodrigues CampainFranceIoni Bowcher NEGOTIATION
David DarakjyBrazilXuxue Feng RENEWAL
Cody SaylorsArgentinaAsiya Javayant PROPOSAL
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Greenwood BologniaGermanyAnna Fali RENEWAL
Julie StensethIndiaElwin Sharvill QUALIFIED
Alejandro PerinCanadaOnyama Limba NEGOTIATION
Antonio CaudyRussiaBernardo Dominic RENEWAL
Julie StensethItalyBernardo Dominic PROPOSAL
Salvatore StockhamCanadaIoni Bowcher PROPOSAL
Kadeem FlosiArgentinaAsiya Javayant NEGOTIATION
Clifford RimJapanOnyama Limba NEGOTIATION
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Kaitlin OstroskyCanadaIoni Bowcher PROPOSAL
Chavez BriddickUnited KingdomAmy Elsner NEW
Salvatore StockhamUnited KingdomAnna Fali PROPOSAL
Arvin AlbaresIndiaIvan Magalhaes PROPOSAL
Ashley DoeAustraliaStephen Shaw QUALIFIED
Chavez BriddickBrazilAmy Elsner PROPOSAL
Darci PoquetteBrazilBernardo Dominic RENEWAL
Costa DilliardIndiaIoni Bowcher RENEWAL
Mayumi KolmetzJapanIvan Magalhaes RENEWAL
Maria MarrierSpainOnyama Limba PROPOSAL
Stacey MacleadAustraliaAmy Elsner UNQUALIFIED
Costa DilliardRussiaAnna Fali NEW
Cody SaylorsSpainAsiya Javayant QUALIFIED
Chavez BriddickFranceOnyama Limba UNQUALIFIED
Ashley DoeItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens NestleJapanStephen Shaw NEW
Arvin AlbaresItalyStephen Shaw UNQUALIFIED
Isabel BowleyBrazilXuxue Feng QUALIFIED
Kadeem FlosiJapanAsiya Javayant PROPOSAL
Kaitlin OstroskyUnited KingdomAnna Fali PROPOSAL
Kadeem FlosiJapanBernardo Dominic NEGOTIATION
Julie StensethBrazilAmy Elsner NEGOTIATION
Leja CaldareraArgentinaStephen Shaw QUALIFIED
Chavez BriddickJapanAsiya Javayant NEW
Aditya KuskoItalyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerFrance2026-04-22Chemel, James L Cpa UNQUALIFIED8Stephen Shaw
1001Aika InouyeItaly2026-04-23Rousseaux, Michael Esq UNQUALIFIED40Amy Elsner
1002Clifford RimRussia2026-04-14Dorl, James J Esq NEGOTIATION99Ioni Bowcher
1003Claire TollnerBrazil2026-04-27King, Christopher A Esq NEGOTIATION76Anna Fali
1004Alejandro PerinCanada2026-04-17Feltz Printing Service PROPOSAL30Anna Fali
1005Aika InouyeArgentina2026-04-23Buckley Miller Wright QUALIFIED91Anna Fali
1006Alejandro PerinArgentina2026-04-14Commercial Press PROPOSAL19Bernardo Dominic
1007Tony FollerArgentina2026-05-04Truhlar And Truhlar Attys PROPOSAL52Xuxue Feng
1008Smith GlickCanada2026-04-19Rousseaux, Michael Esq NEW3Elwin Sharvill
1009Deepesh ChuiGermany2026-04-20Truhlar And Truhlar Attys QUALIFIED65Bernardo Dominic
1010Aditya KuskoBrazil2026-05-04Chapman, Ross E Esq RENEWAL2Ioni Bowcher
1011Aditya KuskoSpain2026-04-19Feiner Bros NEW29Ivan Magalhaes
1012Kaitlin OstroskyJapan2026-05-11Buckley Miller Wright QUALIFIED6Anna Fali
1013Mayumi KolmetzArgentina2026-05-01Truhlar And Truhlar Attys RENEWAL70Elwin Sharvill
1014Wickens NestleJapan2026-04-27Morlong Associates UNQUALIFIED76Stephen Shaw
1015Jeanfrancois VenereFrance2026-04-24Morlong Associates NEGOTIATION84Onyama Limba
1016Aika InouyeItaly2026-04-16Buckley Miller Wright QUALIFIED51Ioni Bowcher
1017Ricardo GauchoIndia2026-04-15King, Christopher A Esq UNQUALIFIED45Asiya Javayant
1018Izzy GarufiCanada2026-04-20Chanay, Jeffrey A Esq QUALIFIED80Stephen Shaw
1019Murillo MaletSpain2026-05-11Dorl, James J Esq RENEWAL13Ivan Magalhaes
1020Antonio CaudySpain2026-04-20Chapman, Ross E Esq UNQUALIFIED6Anna Fali
1021Mayumi KolmetzGermany2026-05-08Benton, John B Jr QUALIFIED71Xuxue Feng
1022Misaki RoysterSpain2026-04-28Feiner Bros NEGOTIATION49Asiya Javayant
1023Salvatore StockhamGermany2026-04-26Commercial Press NEGOTIATION57Bernardo Dominic
1024Mujtaba NickaItaly2026-04-17Printing Dimensions RENEWAL81Xuxue Feng
1025Aditya KuskoFrance2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED38Xuxue Feng
1026Morrow RutaAustralia2026-04-22Feltz Printing Service NEGOTIATION19Stephen Shaw
1027Aruna FigeroaSpain2026-04-24Printing Dimensions NEW9Xuxue Feng
1028Leja CaldareraGermany2026-04-15Chapman, Ross E Esq NEW95Bernardo Dominic
1029Murillo MaletBrazil2026-05-02Chapman, Ross E Esq UNQUALIFIED40Asiya Javayant
1030Murillo MaletAustralia2026-04-18Truhlar And Truhlar Attys PROPOSAL74Xuxue Feng
1031Salvatore StockhamAustralia2026-04-27Feltz Printing Service QUALIFIED44Stephen Shaw
1032Rodrigues CampainJapan2026-04-17Printing Dimensions NEW9Bernardo Dominic
1033Tony FollerIndia2026-04-20Buckley Miller Wright NEGOTIATION6Elwin Sharvill
1034James ButtJapan2026-04-19Commercial Press QUALIFIED23Ivan Magalhaes
1035Kadeem FlosiBrazil2026-05-03Dorl, James J Esq NEW90Bernardo Dominic
1036Aika InouyeIndia2026-05-06Morlong Associates NEGOTIATION53Ioni Bowcher
1037David DarakjyUnited Kingdom2026-05-04Feiner Bros RENEWAL30Bernardo Dominic
1038Juan WieserArgentina2026-04-16Rangoni Of Florence UNQUALIFIED66Ivan Magalhaes
1039Claire TollnerCanada2026-05-03Printing Dimensions PROPOSAL38Bernardo Dominic
1040Wickens NestleItaly2026-04-28Buckley Miller Wright PROPOSAL65Onyama Limba
1041Misaki RoysterSpain2026-04-26Feltz Printing Service QUALIFIED83Asiya Javayant
1042Nicolas IturbideArgentina2026-05-08Feiner Bros PROPOSAL6Asiya Javayant
1043Costa DilliardIndia2026-04-19Chapman, Ross E Esq NEW84Onyama Limba
1044Octavia MaletBrazil2026-04-29Feiner Bros QUALIFIED40Ivan Magalhaes
1045Emily WhobreyGermany2026-04-27Benton, John B Jr NEGOTIATION76Stephen Shaw
1046Rodrigues CampainArgentina2026-04-27Morlong Associates QUALIFIED43Stephen Shaw
1047Greenwood BologniaRussia2026-05-02Commercial Press NEW63Onyama Limba
1048Chavez BriddickFrance2026-04-16Rangoni Of Florence UNQUALIFIED1Stephen Shaw
1049Leja CaldareraJapan2026-05-07Chapman, Ross E Esq PROPOSAL39Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonGermanyIoni Bowcher NEGOTIATION
Clifford RimJapanOnyama Limba NEW
Emily WhobreyFranceAmy Elsner NEW
Ashley DoeGermanyIvan Magalhaes QUALIFIED
Stacey MacleadCanadaIoni Bowcher PROPOSAL
Cody SaylorsGermanyStephen Shaw NEGOTIATION
Aika InouyeJapanStephen Shaw UNQUALIFIED
Silvio SlusarskiFranceIvan Magalhaes RENEWAL
Leon OldroydBrazilStephen Shaw UNQUALIFIED
Emily WhobreySpainAmy Elsner RENEWAL
Kadeem FlosiFranceStephen Shaw UNQUALIFIED
Sinclair WaycottItalyAsiya Javayant NEW
Clifford RimItalyAsiya Javayant RENEWAL
Johnson SergiJapanAmy Elsner NEW
Wickens NestleItalyStephen Shaw QUALIFIED
Julie StensethUnited KingdomElwin Sharvill RENEWAL
Nicolas IturbideSpainIvan Magalhaes NEGOTIATION
James ButtItalyIvan Magalhaes RENEWAL
Jeanfrancois VenereGermanyAsiya Javayant NEW
Ivar PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Leon OldroydArgentinaIoni Bowcher RENEWAL
Aika InouyeItalyBernardo Dominic NEGOTIATION
Smith GlickIndiaAmy Elsner PROPOSAL
Arvin AlbaresUnited KingdomIoni Bowcher QUALIFIED
Greenwood BologniaArgentinaAsiya Javayant UNQUALIFIED
Tony FollerBrazilIvan Magalhaes PROPOSAL
Greenwood BologniaArgentinaAmy Elsner UNQUALIFIED
Isabel BowleyBrazilIoni Bowcher RENEWAL
Aruna FigeroaBrazilAnna Fali QUALIFIED
Ricardo GauchoGermanyStephen Shaw UNQUALIFIED
Jones VocelkaFranceAsiya Javayant UNQUALIFIED
Emily WhobreyJapanAmy Elsner UNQUALIFIED
David DarakjyIndiaStephen Shaw RENEWAL
Aruna FigeroaJapanBernardo Dominic PROPOSAL
Nicolas IturbideAustraliaAnna Fali NEGOTIATION
Sinclair WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Ivar PaprockiCanadaAsiya Javayant RENEWAL
Francesco ShinkoBrazilXuxue Feng UNQUALIFIED
Julie StensethSpainAmy Elsner PROPOSAL
Wickens NestleGermanyElwin Sharvill NEW
Mujtaba NickaGermanyBernardo Dominic QUALIFIED
Misaki RoysterIndiaXuxue Feng NEW
Maisha RulapaughAustraliaIoni Bowcher RENEWAL
Aika InouyeBrazilXuxue Feng PROPOSAL
Jefferson SchemmerGermanyIoni Bowcher QUALIFIED
Jones VocelkaJapanAsiya Javayant UNQUALIFIED
Isabel BowleyFranceIoni Bowcher UNQUALIFIED
Kadeem FlosiIndiaBernardo Dominic RENEWAL
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Claire Tollner
Kadeem Flosi
Sinclair Waycott
Aruna Figeroa
Johnson Sergi
Smith Glick
Leja Caldarera
Faith Gillian
Nicolas Iturbide
Emily Whobrey
David Darakjy
Murillo Malet
Claire Tollner
Aditya Kusko
Leja Caldarera
Maisha Rulapaugh
Maisha Rulapaugh
Stacey Maclead
Jones Vocelka
Faith Gillian
Deepesh Chui
Johnson Sergi
Clifford Rim
Ashley Doe
Deepesh Chui
Ashley Doe
James Butt
Arvin Albares
Deepesh Chui
Mayumi Kolmetz
Adams Morasca
Leja Caldarera
Leja Caldarera
Jennifer Amigon
Aruna Figeroa
Ivar Paprocki
Silvio Slusarski
Mayumi Kolmetz
Cody Saylors
Silvio Slusarski
Smith Glick
Aruna Figeroa
Stacey Maclead
Jones Vocelka
Cody Saylors
Tony Foller
Chavez Briddick
Greenwood Bolognia
Tony Foller
Sinclair Waycott
IdCountryDate
1000Canada2026-04-21
1001Russia2026-04-18
1002Brazil2026-05-03
1003France2026-04-25
1004France2026-04-25
1005United Kingdom2026-04-29
1006Russia2026-04-25
1007Australia2026-05-11
1008Spain2026-04-25
1009Russia2026-04-21
1010Russia2026-05-01
1011Russia2026-04-20
1012Argentina2026-04-15
1013Argentina2026-04-23
1014Japan2026-05-12
1015Spain2026-04-26
1016Japan2026-04-23
1017Australia2026-04-16
1018India2026-04-23
1019Russia2026-05-08
1020Canada2026-04-26
1021United Kingdom2026-05-02
1022Italy2026-04-17
1023Germany2026-04-15
1024Canada2026-04-14
1025Argentina2026-04-23
1026Germany2026-04-27
1027India2026-04-18
1028Russia2026-04-13
1029Australia2026-04-28
1030Japan2026-04-29
1031Japan2026-05-09
1032India2026-04-18
1033Germany2026-04-20
1034Italy2026-04-19
1035Russia2026-04-22
1036Russia2026-04-21
1037Spain2026-04-13
1038Brazil2026-04-13
1039India2026-05-11
1040Spain2026-04-29
1041Argentina2026-04-30
1042Italy2026-05-07
1043Italy2026-04-24
1044Brazil2026-04-15
1045Brazil2026-05-11
1046United Kingdom2026-04-26
1047United Kingdom2026-04-19
1048Japan2026-04-19
1049Australia2026-05-08

On-Demand Data

NameIdCountryDate
Chavez Briddick1000India2026-04-13
Aika Inouye1001Russia2026-05-08
Cody Saylors1002Australia2026-05-10
Adams Morasca1003France2026-05-08
Kaitlin Ostrosky1004Italy2026-04-25
Aditya Kusko1005India2026-05-09
Claire Tollner1006Spain2026-04-24
Darci Poquette1007Spain2026-05-03
Isabel Bowley1008Brazil2026-05-05
Maisha Rulapaugh1009Argentina2026-04-28
Jeanfrancois Venere1010France2026-04-20
Jeanfrancois Venere1011Italy2026-05-06
Aika Inouye1012United Kingdom2026-04-30
Munro Ferencz1013Argentina2026-04-19
Rodrigues Campain1014France2026-04-27
Deepesh Chui1015United Kingdom2026-05-07
Mujtaba Nicka1016France2026-04-13
Deepesh Chui1017Australia2026-04-24
Ivar Paprocki1018Argentina2026-05-08
Antonio Caudy1019Brazil2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideGermanyIvan Magalhaes NEGOTIATION
Alejandro PerinItalyXuxue Feng PROPOSAL
Ashley DoeAustraliaIoni Bowcher NEGOTIATION
Mayumi KolmetzArgentinaIoni Bowcher PROPOSAL
Kaitlin OstroskyCanadaBernardo Dominic RENEWAL
Aika InouyeArgentinaOnyama Limba PROPOSAL
Johnson SergiArgentinaElwin Sharvill NEGOTIATION
Aika InouyeBrazilStephen Shaw UNQUALIFIED
Claire TollnerRussiaXuxue Feng RENEWAL
Isabel BowleyAustraliaOnyama Limba NEW
Jefferson SchemmerItalyAnna Fali NEGOTIATION
Jennifer AmigonUnited KingdomElwin Sharvill PROPOSAL
Salvatore StockhamIndiaAnna Fali NEGOTIATION
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Izzy GarufiSpainXuxue Feng QUALIFIED
Chavez BriddickSpainAmy Elsner PROPOSAL
Ricardo GauchoGermanyElwin Sharvill PROPOSAL
Maria MarrierIndiaStephen Shaw RENEWAL
Alejandro PerinUnited KingdomIoni Bowcher UNQUALIFIED
Misaki RoysterRussiaXuxue Feng PROPOSAL
Sinclair WaycottFranceIvan Magalhaes NEW
Greenwood BologniaSpainStephen Shaw PROPOSAL
Jeanfrancois VenereRussiaOnyama Limba NEW
Tony FollerAustraliaElwin Sharvill UNQUALIFIED
Clifford RimIndiaBernardo Dominic NEGOTIATION
Ivar PaprockiBrazilAsiya Javayant PROPOSAL
Aditya KuskoFranceElwin Sharvill QUALIFIED
Darci PoquetteRussiaIoni Bowcher QUALIFIED
Faith GillianIndiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresCanadaAmy Elsner RENEWAL
Maisha RulapaughAustraliaStephen Shaw UNQUALIFIED
Murillo MaletJapanOnyama Limba RENEWAL
Munro FerenczBrazilXuxue Feng QUALIFIED
Faith GillianItalyStephen Shaw NEGOTIATION
Ashley DoeItalyAsiya Javayant UNQUALIFIED
Morrow RutaJapanBernardo Dominic PROPOSAL
Ashley DoeFranceElwin Sharvill RENEWAL
Claire TollnerItalyIoni Bowcher PROPOSAL
Francesco ShinkoFranceIvan Magalhaes NEW
Nicolas IturbideJapanAnna 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>