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
Munro FerenczRussiaAsiya Javayant QUALIFIED
Clifford RimCanadaAmy Elsner NEGOTIATION
Munro FerenczSpainAmy Elsner PROPOSAL
Cody SaylorsCanadaBernardo Dominic PROPOSAL
Jones VocelkaCanadaIvan Magalhaes PROPOSAL
Kadeem FlosiArgentinaBernardo Dominic RENEWAL
Juan WieserRussiaBernardo Dominic NEW
Leon OldroydFranceIvan Magalhaes QUALIFIED
Mujtaba NickaIndiaAmy Elsner NEW
Munro FerenczAustraliaAnna Fali NEW
Morrow RutaJapanElwin Sharvill NEGOTIATION
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Adams MorascaBrazilAsiya Javayant NEGOTIATION
James ButtItalyAmy Elsner RENEWAL
Jefferson SchemmerRussiaStephen Shaw QUALIFIED
Kaitlin OstroskyIndiaStephen Shaw UNQUALIFIED
Jefferson SchemmerIndiaAsiya Javayant RENEWAL
Isabel BowleyUnited KingdomAnna Fali UNQUALIFIED
Murillo MaletCanadaXuxue Feng UNQUALIFIED
Aika InouyeRussiaAmy Elsner UNQUALIFIED
Adams MorascaCanadaIvan Magalhaes RENEWAL
Stacey MacleadItalyIvan Magalhaes PROPOSAL
Chavez BriddickJapanIoni Bowcher NEGOTIATION
Aditya KuskoIndiaAsiya Javayant NEW
Francesco ShinkoArgentinaAnna Fali QUALIFIED
Aditya KuskoAustraliaElwin Sharvill NEGOTIATION
Jennifer AmigonGermanyOnyama Limba UNQUALIFIED
Arvin AlbaresArgentinaAsiya Javayant NEGOTIATION
Juan WieserArgentinaBernardo Dominic NEGOTIATION
Mayumi KolmetzArgentinaAnna Fali PROPOSAL
Ricardo GauchoFranceBernardo Dominic NEGOTIATION
Izzy GarufiUnited KingdomIvan Magalhaes NEGOTIATION
Leja CaldareraIndiaOnyama Limba UNQUALIFIED
Cody SaylorsRussiaIoni Bowcher QUALIFIED
Emily WhobreyFranceIoni Bowcher UNQUALIFIED
Jeanfrancois VenereItalyAmy Elsner UNQUALIFIED
Darci PoquetteFranceXuxue Feng QUALIFIED
Francesco ShinkoCanadaIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomAsiya Javayant NEW
Murillo MaletIndiaAsiya Javayant UNQUALIFIED
Tony FollerSpainAmy Elsner QUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant NEW
Greenwood BologniaSpainIoni Bowcher RENEWAL
Sinclair WaycottArgentinaXuxue Feng QUALIFIED
Leon OldroydArgentinaAmy Elsner NEW
Julie StensethBrazilElwin Sharvill NEGOTIATION
Sinclair WaycottIndiaBernardo Dominic QUALIFIED
Kadeem FlosiIndiaAnna Fali RENEWAL
Deepesh ChuiAustraliaXuxue Feng UNQUALIFIED
Ivar PaprockiBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereCanadaAnna Fali RENEWAL
Mujtaba NickaCanadaBernardo Dominic RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba NEW
Mayumi KolmetzAustraliaXuxue Feng NEGOTIATION
Nicolas IturbideItalyOnyama Limba NEGOTIATION
James ButtFranceElwin Sharvill UNQUALIFIED
Murillo MaletIndiaOnyama Limba UNQUALIFIED
Deepesh ChuiCanadaStephen Shaw NEGOTIATION
Maisha RulapaughCanadaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzCanada2025-09-24Chapman, Ross E Esq UNQUALIFIED37Ivan Magalhaes
1001Stacey MacleadCanada2025-09-23Chanay, Jeffrey A Esq NEW63Xuxue Feng
1002Izzy GarufiGermany2025-09-08Printing Dimensions UNQUALIFIED74Anna Fali
1003Juan WieserSpain2025-09-05Benton, John B Jr UNQUALIFIED69Ioni Bowcher
1004Johnson SergiItaly2025-09-17Feltz Printing Service PROPOSAL87Asiya Javayant
1005Claire TollnerCanada2025-09-13Chapman, Ross E Esq NEW26Stephen Shaw
1006Smith GlickArgentina2025-09-24Commercial Press RENEWAL16Onyama Limba
1007James ButtItaly2025-10-02Chemel, James L Cpa PROPOSAL54Onyama Limba
1008Aika InouyeJapan2025-09-06Printing Dimensions UNQUALIFIED53Ivan Magalhaes
1009Aruna FigeroaBrazil2025-09-05Chanay, Jeffrey A Esq QUALIFIED32Elwin Sharvill
1010Antonio CaudyArgentina2025-09-12Dorl, James J Esq NEW75Ivan Magalhaes
1011Maria MarrierJapan2025-09-30Chemel, James L Cpa UNQUALIFIED5Elwin Sharvill
1012Mujtaba NickaCanada2025-09-21Rousseaux, Michael Esq RENEWAL48Bernardo Dominic
1013Maisha RulapaughJapan2025-09-23Printing Dimensions NEGOTIATION19Amy Elsner
1014Octavia MaletJapan2025-09-26Chanay, Jeffrey A Esq QUALIFIED30Anna Fali
1015Jefferson SchemmerUnited Kingdom2025-09-28Buckley Miller Wright UNQUALIFIED97Onyama Limba
1016Mayumi KolmetzFrance2025-09-29Rousseaux, Michael Esq QUALIFIED9Xuxue Feng
1017Claire TollnerGermany2025-09-05Rangoni Of Florence UNQUALIFIED62Ivan Magalhaes
1018Aditya KuskoItaly2025-10-03Commercial Press PROPOSAL26Ioni Bowcher
1019Izzy GarufiAustralia2025-09-29Truhlar And Truhlar Attys UNQUALIFIED36Onyama Limba
1020Francesco ShinkoUnited Kingdom2025-09-30Benton, John B Jr UNQUALIFIED47Amy Elsner
1021Chavez BriddickBrazil2025-09-11Chapman, Ross E Esq PROPOSAL18Xuxue Feng
1022Chavez BriddickCanada2025-09-25Chemel, James L Cpa NEGOTIATION27Onyama Limba
1023Stacey MacleadIndia2025-10-04Chanay, Jeffrey A Esq NEW28Onyama Limba
1024Aditya KuskoIndia2025-09-27Feiner Bros NEGOTIATION1Xuxue Feng
1025Chavez BriddickArgentina2025-09-16Feltz Printing Service NEGOTIATION19Stephen Shaw
1026Ashley DoeCanada2025-09-23Feltz Printing Service RENEWAL60Ioni Bowcher
1027David DarakjyIndia2025-09-11Rangoni Of Florence NEW96Anna Fali
1028Jefferson SchemmerArgentina2025-09-26Chapman, Ross E Esq PROPOSAL78Anna Fali
1029Maisha RulapaughGermany2025-09-18Truhlar And Truhlar Attys NEW15Amy Elsner
1030Misaki RoysterGermany2025-10-03Printing Dimensions NEGOTIATION7Elwin Sharvill
1031Faith GillianFrance2025-09-07Dorl, James J Esq UNQUALIFIED6Xuxue Feng
1032Mujtaba NickaBrazil2025-09-22Morlong Associates RENEWAL54Bernardo Dominic
1033Arvin AlbaresBrazil2025-09-28Printing Dimensions NEW68Bernardo Dominic
1034Wickens NestleArgentina2025-09-12Benton, John B Jr NEGOTIATION88Anna Fali
1035Salvatore StockhamFrance2025-09-17Truhlar And Truhlar Attys UNQUALIFIED16Bernardo Dominic
1036Greenwood BologniaJapan2025-09-09Feiner Bros QUALIFIED51Asiya Javayant
1037Kadeem FlosiSpain2025-10-01Rangoni Of Florence NEW28Elwin Sharvill
1038Jones VocelkaArgentina2025-09-30Chemel, James L Cpa UNQUALIFIED24Onyama Limba
1039Izzy GarufiBrazil2025-09-08Truhlar And Truhlar Attys QUALIFIED50Asiya Javayant
1040Izzy GarufiJapan2025-09-18Feltz Printing Service NEGOTIATION43Ivan Magalhaes
1041Ashley DoeJapan2025-09-17Truhlar And Truhlar Attys NEGOTIATION29Ioni Bowcher
1042Nicolas IturbideAustralia2025-09-13Feltz Printing Service UNQUALIFIED9Amy Elsner
1043Munro FerenczCanada2025-09-20Rangoni Of Florence QUALIFIED59Ivan Magalhaes
1044Adams MorascaAustralia2025-09-10Buckley Miller Wright NEW18Ivan Magalhaes
1045Faith GillianCanada2025-09-30Chapman, Ross E Esq NEGOTIATION21Asiya Javayant
1046Adams MorascaRussia2025-09-25Printing Dimensions RENEWAL61Onyama Limba
1047Izzy GarufiIndia2025-09-25Printing Dimensions UNQUALIFIED84Asiya Javayant
1048Aika InouyeGermany2025-09-15Rousseaux, Michael Esq QUALIFIED85Onyama Limba
1049Maisha RulapaughJapan2025-10-02King, Christopher A Esq UNQUALIFIED48Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteAustraliaXuxue Feng UNQUALIFIED
Silvio SlusarskiCanadaOnyama Limba UNQUALIFIED
Julie StensethSpainIoni Bowcher RENEWAL
Misaki RoysterFranceAsiya Javayant NEW
Sinclair WaycottArgentinaAmy Elsner PROPOSAL
Chavez BriddickSpainStephen Shaw NEGOTIATION
Misaki RoysterBrazilIoni Bowcher QUALIFIED
Ashley DoeArgentinaBernardo Dominic NEW
Tony FollerJapanAsiya Javayant UNQUALIFIED
Jennifer AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson SergiRussiaStephen Shaw NEGOTIATION
Darci PoquetteJapanAmy Elsner NEW
Adams MorascaArgentinaIoni Bowcher PROPOSAL
Maria MarrierRussiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiBrazilAmy Elsner NEGOTIATION
Maria MarrierArgentinaIoni Bowcher RENEWAL
Kadeem FlosiArgentinaElwin Sharvill PROPOSAL
Maria MarrierIndiaIvan Magalhaes NEGOTIATION
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Jennifer AmigonRussiaOnyama Limba RENEWAL
Sinclair WaycottJapanAsiya Javayant NEW
Clifford RimItalyBernardo Dominic QUALIFIED
Misaki RoysterCanadaXuxue Feng PROPOSAL
Maria MarrierFranceXuxue Feng QUALIFIED
Maisha RulapaughCanadaAnna Fali PROPOSAL
David DarakjyIndiaXuxue Feng UNQUALIFIED
Misaki RoysterArgentinaXuxue Feng NEGOTIATION
James ButtArgentinaStephen Shaw RENEWAL
Smith GlickItalyOnyama Limba RENEWAL
Leon OldroydAustraliaStephen Shaw QUALIFIED
Smith GlickJapanStephen Shaw NEGOTIATION
Clifford RimJapanIvan Magalhaes QUALIFIED
Cody SaylorsJapanElwin Sharvill UNQUALIFIED
Rodrigues CampainBrazilAmy Elsner NEGOTIATION
Jones VocelkaFranceElwin Sharvill UNQUALIFIED
Darci PoquetteCanadaStephen Shaw UNQUALIFIED
Cody SaylorsBrazilIoni Bowcher PROPOSAL
Faith GillianArgentinaStephen Shaw QUALIFIED
Greenwood BologniaCanadaAnna Fali RENEWAL
Jones VocelkaSpainAsiya Javayant NEW
Mujtaba NickaIndiaAnna Fali PROPOSAL
Darci PoquetteIndiaBernardo Dominic PROPOSAL
Chavez BriddickArgentinaOnyama Limba UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner QUALIFIED
Salvatore StockhamArgentinaOnyama Limba UNQUALIFIED
Kadeem FlosiArgentinaAnna Fali NEGOTIATION
Morrow RutaAustraliaAmy Elsner PROPOSAL
Ashley DoeItalyIvan Magalhaes NEW
Deepesh ChuiCanadaIvan Magalhaes NEW
Greenwood BologniaBrazilStephen Shaw PROPOSAL
Frozen Columns
Name
Ricardo Gaucho
Aika Inouye
Salvatore Stockham
Deepesh Chui
Julie Stenseth
Juan Wieser
Jones Vocelka
Chavez Briddick
Jefferson Schemmer
Deepesh Chui
Costa Dilliard
Rodrigues Campain
Leja Caldarera
David Darakjy
Mayumi Kolmetz
Darci Poquette
Salvatore Stockham
Leja Caldarera
Chavez Briddick
Cody Saylors
David Darakjy
Stacey Maclead
Misaki Royster
Jennifer Amigon
Francesco Shinko
Alejandro Perin
David Darakjy
Leja Caldarera
Leja Caldarera
Chavez Briddick
Sinclair Waycott
Johnson Sergi
Darci Poquette
Silvio Slusarski
Alejandro Perin
Salvatore Stockham
Costa Dilliard
Aruna Figeroa
Misaki Royster
Faith Gillian
Sinclair Waycott
Claire Tollner
Kaitlin Ostrosky
Sinclair Waycott
Salvatore Stockham
James Butt
Costa Dilliard
Jones Vocelka
Wickens Nestle
Cody Saylors
IdCountryDate
1000United Kingdom2025-10-04
1001Canada2025-09-17
1002India2025-09-27
1003Argentina2025-09-25
1004Australia2025-09-11
1005Italy2025-09-07
1006Italy2025-09-25
1007Spain2025-10-01
1008Russia2025-09-21
1009India2025-09-18
1010Brazil2025-09-07
1011Australia2025-09-19
1012Germany2025-09-09
1013France2025-09-20
1014India2025-09-19
1015Spain2025-09-12
1016Australia2025-09-24
1017India2025-09-09
1018Canada2025-09-22
1019Brazil2025-09-29
1020India2025-09-27
1021Brazil2025-09-17
1022Brazil2025-09-08
1023Australia2025-09-07
1024United Kingdom2025-09-24
1025United Kingdom2025-09-28
1026Canada2025-09-11
1027Italy2025-09-24
1028United Kingdom2025-09-30
1029Germany2025-09-05
1030Italy2025-10-03
1031United Kingdom2025-09-27
1032Russia2025-09-11
1033France2025-09-26
1034Argentina2025-09-25
1035Canada2025-09-22
1036Japan2025-09-05
1037Russia2025-09-27
1038France2025-10-01
1039Australia2025-10-01
1040Russia2025-09-21
1041United Kingdom2025-09-30
1042Italy2025-09-05
1043Canada2025-09-10
1044Italy2025-09-05
1045Canada2025-09-10
1046Italy2025-09-06
1047Spain2025-09-06
1048Spain2025-09-05
1049Australia2025-09-21

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Japan2025-09-11
Kadeem Flosi1001Russia2025-09-27
Aika Inouye1002Brazil2025-09-27
Ivar Paprocki1003Russia2025-09-23
Smith Glick1004Australia2025-09-26
Ashley Doe1005Spain2025-09-30
Costa Dilliard1006Japan2025-09-21
Tony Foller1007Italy2025-09-18
Deepesh Chui1008Canada2025-09-23
Jefferson Schemmer1009India2025-09-19
Ivar Paprocki1010India2025-09-18
James Butt1011Brazil2025-09-10
Murillo Malet1012Argentina2025-09-05
Rodrigues Campain1013Germany2025-09-20
Deepesh Chui1014Spain2025-09-06
Rodrigues Campain1015Japan2025-09-15
Juan Wieser1016Australia2025-09-11
Silvio Slusarski1017Brazil2025-10-02
Rodrigues Campain1018Argentina2025-09-16
Francesco Shinko1019Russia2025-09-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraCanadaAsiya Javayant QUALIFIED
Juan WieserArgentinaAmy Elsner NEW
Mujtaba NickaSpainXuxue Feng RENEWAL
Antonio CaudyGermanyBernardo Dominic NEW
Ashley DoeCanadaElwin Sharvill NEW
Salvatore StockhamUnited KingdomIvan Magalhaes PROPOSAL
Antonio CaudyArgentinaAnna Fali PROPOSAL
Ricardo GauchoCanadaElwin Sharvill UNQUALIFIED
Izzy GarufiAustraliaIvan Magalhaes UNQUALIFIED
Aruna FigeroaCanadaAsiya Javayant QUALIFIED
Ashley DoeUnited KingdomXuxue Feng NEW
Tony FollerFranceOnyama Limba UNQUALIFIED
Kaitlin OstroskyRussiaElwin Sharvill UNQUALIFIED
Clifford RimArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyRussiaIoni Bowcher NEW
Isabel BowleyFranceIvan Magalhaes QUALIFIED
Maria MarrierJapanElwin Sharvill RENEWAL
Sinclair WaycottFranceAnna Fali RENEWAL
Julie StensethArgentinaIoni Bowcher PROPOSAL
Rodrigues CampainJapanAmy Elsner PROPOSAL
Misaki RoysterBrazilXuxue Feng RENEWAL
Clifford RimAustraliaIoni Bowcher UNQUALIFIED
Johnson SergiCanadaAnna Fali RENEWAL
Isabel BowleySpainAmy Elsner RENEWAL
Juan WieserItalyXuxue Feng UNQUALIFIED
David DarakjyGermanyIvan Magalhaes QUALIFIED
Izzy GarufiSpainIoni Bowcher PROPOSAL
Jones VocelkaCanadaAsiya Javayant QUALIFIED
Aika InouyeGermanyStephen Shaw RENEWAL
Kadeem FlosiAustraliaXuxue Feng RENEWAL
Julie StensethRussiaAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaStephen Shaw NEGOTIATION
Jeanfrancois VenereJapanIoni Bowcher PROPOSAL
Murillo MaletAustraliaAmy Elsner RENEWAL
Munro FerenczGermanyOnyama Limba NEW
Rodrigues CampainItalyIvan Magalhaes NEGOTIATION
Nicolas IturbideGermanyOnyama Limba NEW
Jeanfrancois VenereSpainIvan Magalhaes NEGOTIATION
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
Aika InouyeArgentinaAnna Fali 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>