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
Juan WieserGermanyXuxue Feng RENEWAL
Greenwood BologniaUnited KingdomXuxue Feng NEW
Kadeem FlosiGermanyIvan Magalhaes PROPOSAL
Salvatore StockhamJapanStephen Shaw RENEWAL
Aditya KuskoRussiaAsiya Javayant QUALIFIED
Alejandro PerinFranceIvan Magalhaes PROPOSAL
Leja CaldareraUnited KingdomAmy Elsner NEGOTIATION
Leon OldroydArgentinaIoni Bowcher QUALIFIED
Leon OldroydRussiaAnna Fali NEW
Chavez BriddickAustraliaBernardo Dominic UNQUALIFIED
Deepesh ChuiRussiaAmy Elsner RENEWAL
Smith GlickArgentinaIoni Bowcher PROPOSAL
Munro FerenczItalyAmy Elsner RENEWAL
Aika InouyeCanadaElwin Sharvill PROPOSAL
Sinclair WaycottAustraliaAnna Fali UNQUALIFIED
Leja CaldareraBrazilOnyama Limba RENEWAL
Murillo MaletCanadaXuxue Feng RENEWAL
Emily WhobreyIndiaIvan Magalhaes NEW
Adams MorascaCanadaAmy Elsner PROPOSAL
Leon OldroydRussiaXuxue Feng QUALIFIED
Isabel BowleyItalyAsiya Javayant QUALIFIED
Tony FollerUnited KingdomIoni Bowcher RENEWAL
Maisha RulapaughJapanBernardo Dominic NEGOTIATION
Chavez BriddickAustraliaStephen Shaw RENEWAL
Aruna FigeroaBrazilOnyama Limba QUALIFIED
Aruna FigeroaRussiaIoni Bowcher NEGOTIATION
Adams MorascaArgentinaAnna Fali QUALIFIED
Aditya KuskoUnited KingdomIvan Magalhaes PROPOSAL
Leon OldroydRussiaStephen Shaw NEGOTIATION
Nicolas IturbideItalyElwin Sharvill NEW
Claire TollnerGermanyOnyama Limba NEW
David DarakjyItalyOnyama Limba QUALIFIED
Chavez BriddickIndiaStephen Shaw RENEWAL
Tony FollerCanadaOnyama Limba PROPOSAL
Kadeem FlosiItalyStephen Shaw NEGOTIATION
Aika InouyeAustraliaIoni Bowcher PROPOSAL
Leon OldroydRussiaBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaAsiya Javayant RENEWAL
Silvio SlusarskiRussiaStephen Shaw UNQUALIFIED
Morrow RutaFranceOnyama Limba RENEWAL
Kaitlin OstroskyJapanAsiya Javayant RENEWAL
Jefferson SchemmerGermanyXuxue Feng NEW
Chavez BriddickArgentinaIvan Magalhaes NEW
Silvio SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher RENEWAL
Isabel BowleyUnited KingdomIoni Bowcher RENEWAL
Octavia MaletBrazilIvan Magalhaes QUALIFIED
Adams MorascaIndiaAnna Fali NEW
Clifford RimFranceIoni Bowcher UNQUALIFIED
Kaitlin OstroskyCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyFranceXuxue Feng QUALIFIED
Francesco ShinkoJapanAmy Elsner NEW
Sinclair WaycottRussiaAmy Elsner NEGOTIATION
James ButtUnited KingdomIoni Bowcher UNQUALIFIED
Emily WhobreyItalyXuxue Feng NEGOTIATION
Sinclair WaycottBrazilIvan Magalhaes QUALIFIED
Wickens NestleAustraliaXuxue Feng NEW
Leja CaldareraAustraliaAnna Fali NEW
Aruna FigeroaUnited KingdomAnna Fali NEGOTIATION
Alejandro PerinArgentinaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughJapan2026-04-22Feiner Bros NEGOTIATION33Anna Fali
1001Wickens NestleJapan2026-05-03Chapman, Ross E Esq NEGOTIATION55Anna Fali
1002Johnson SergiBrazil2026-04-30Dorl, James J Esq UNQUALIFIED32Onyama Limba
1003Jefferson SchemmerRussia2026-04-17Feltz Printing Service QUALIFIED94Elwin Sharvill
1004Morrow RutaBrazil2026-04-18Dorl, James J Esq UNQUALIFIED22Anna Fali
1005Rodrigues CampainIndia2026-04-25Printing Dimensions QUALIFIED40Ioni Bowcher
1006Wickens NestleBrazil2026-04-26Chanay, Jeffrey A Esq PROPOSAL3Bernardo Dominic
1007Mayumi KolmetzIndia2026-05-04Dorl, James J Esq RENEWAL75Amy Elsner
1008Smith GlickRussia2026-05-02Feltz Printing Service RENEWAL91Asiya Javayant
1009Sinclair WaycottJapan2026-04-26Commercial Press NEGOTIATION95Ivan Magalhaes
1010Cody SaylorsSpain2026-05-10Morlong Associates RENEWAL15Anna Fali
1011Ricardo GauchoAustralia2026-05-03Chanay, Jeffrey A Esq UNQUALIFIED73Asiya Javayant
1012Wickens NestleGermany2026-05-02Chanay, Jeffrey A Esq QUALIFIED92Anna Fali
1013Greenwood BologniaUnited Kingdom2026-05-13Rousseaux, Michael Esq PROPOSAL65Amy Elsner
1014Julie StensethUnited Kingdom2026-04-28Chapman, Ross E Esq RENEWAL93Ioni Bowcher
1015Emily WhobreySpain2026-05-09King, Christopher A Esq RENEWAL65Elwin Sharvill
1016Ricardo GauchoFrance2026-05-12Dorl, James J Esq UNQUALIFIED12Ivan Magalhaes
1017Darci PoquetteIndia2026-05-12Truhlar And Truhlar Attys PROPOSAL85Ioni Bowcher
1018Aditya KuskoCanada2026-05-13Dorl, James J Esq QUALIFIED32Ioni Bowcher
1019Antonio CaudySpain2026-04-17Truhlar And Truhlar Attys NEGOTIATION37Onyama Limba
1020Costa DilliardItaly2026-04-23Commercial Press UNQUALIFIED53Ioni Bowcher
1021Adams MorascaRussia2026-05-13Chapman, Ross E Esq NEGOTIATION33Ivan Magalhaes
1022Adams MorascaCanada2026-04-24Chapman, Ross E Esq PROPOSAL40Anna Fali
1023Emily WhobreyItaly2026-04-23Rousseaux, Michael Esq NEW7Stephen Shaw
1024Smith GlickIndia2026-04-19Chanay, Jeffrey A Esq UNQUALIFIED14Ivan Magalhaes
1025Leja CaldareraRussia2026-05-06Chemel, James L Cpa NEW17Onyama Limba
1026Kaitlin OstroskyRussia2026-04-22Feltz Printing Service QUALIFIED27Amy Elsner
1027Francesco ShinkoGermany2026-04-30Commercial Press PROPOSAL52Elwin Sharvill
1028Mayumi KolmetzAustralia2026-05-08Commercial Press RENEWAL42Stephen Shaw
1029Aika InouyeJapan2026-05-02Benton, John B Jr RENEWAL25Onyama Limba
1030Maria MarrierAustralia2026-05-12Truhlar And Truhlar Attys NEW3Amy Elsner
1031Kadeem FlosiIndia2026-04-20Morlong Associates UNQUALIFIED65Elwin Sharvill
1032James ButtBrazil2026-04-18Buckley Miller Wright NEW88Onyama Limba
1033Mujtaba NickaCanada2026-05-07Chapman, Ross E Esq QUALIFIED58Amy Elsner
1034Aruna FigeroaItaly2026-05-02King, Christopher A Esq NEW54Ivan Magalhaes
1035Alejandro PerinArgentina2026-05-11Benton, John B Jr NEGOTIATION43Ivan Magalhaes
1036Maisha RulapaughJapan2026-04-26Chemel, James L Cpa PROPOSAL82Anna Fali
1037Jennifer AmigonFrance2026-05-01King, Christopher A Esq NEGOTIATION33Elwin Sharvill
1038Rodrigues CampainGermany2026-05-09Chanay, Jeffrey A Esq RENEWAL67Anna Fali
1039Stacey MacleadBrazil2026-05-08Rousseaux, Michael Esq NEGOTIATION55Onyama Limba
1040Francesco ShinkoRussia2026-05-13Truhlar And Truhlar Attys NEGOTIATION18Ioni Bowcher
1041Maria MarrierItaly2026-05-11King, Christopher A Esq UNQUALIFIED45Ioni Bowcher
1042Kaitlin OstroskyAustralia2026-04-27Rousseaux, Michael Esq QUALIFIED54Bernardo Dominic
1043Murillo MaletSpain2026-04-28Chemel, James L Cpa QUALIFIED15Amy Elsner
1044Tony FollerItaly2026-04-21Commercial Press UNQUALIFIED47Ivan Magalhaes
1045Kaitlin OstroskyItaly2026-04-19Rangoni Of Florence RENEWAL49Onyama Limba
1046Nicolas IturbideUnited Kingdom2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED37Ioni Bowcher
1047Misaki RoysterIndia2026-05-08Rangoni Of Florence NEW32Onyama Limba
1048Jefferson SchemmerAustralia2026-05-14Rousseaux, Michael Esq PROPOSAL36Stephen Shaw
1049Jennifer AmigonIndia2026-05-12King, Christopher A Esq NEGOTIATION57Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiGermanyXuxue Feng NEW
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Kadeem FlosiArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois VenereAustraliaBernardo Dominic UNQUALIFIED
Salvatore StockhamArgentinaElwin Sharvill QUALIFIED
Clifford RimBrazilAmy Elsner PROPOSAL
Salvatore StockhamCanadaXuxue Feng QUALIFIED
Salvatore StockhamCanadaXuxue Feng NEGOTIATION
Maisha RulapaughIndiaElwin Sharvill PROPOSAL
Alejandro PerinSpainStephen Shaw QUALIFIED
Francesco ShinkoArgentinaElwin Sharvill PROPOSAL
Rodrigues CampainFranceStephen Shaw PROPOSAL
Leon OldroydGermanyElwin Sharvill RENEWAL
Smith GlickCanadaIoni Bowcher UNQUALIFIED
Clifford RimCanadaAnna Fali QUALIFIED
Rodrigues CampainFranceAnna Fali UNQUALIFIED
Jones VocelkaAustraliaOnyama Limba NEGOTIATION
Clifford RimFranceIvan Magalhaes UNQUALIFIED
Jefferson SchemmerRussiaStephen Shaw UNQUALIFIED
Stacey MacleadRussiaElwin Sharvill NEW
Deepesh ChuiItalyAnna Fali NEGOTIATION
Francesco ShinkoSpainOnyama Limba QUALIFIED
Jeanfrancois VenereFranceOnyama Limba QUALIFIED
Maisha RulapaughGermanyOnyama Limba UNQUALIFIED
Juan WieserGermanyBernardo Dominic PROPOSAL
Murillo MaletCanadaIvan Magalhaes PROPOSAL
Antonio CaudyRussiaAsiya Javayant UNQUALIFIED
Smith GlickFranceOnyama Limba NEW
Stacey MacleadSpainXuxue Feng QUALIFIED
Kadeem FlosiGermanyXuxue Feng RENEWAL
Jefferson SchemmerJapanAsiya Javayant PROPOSAL
Stacey MacleadArgentinaAnna Fali QUALIFIED
Salvatore StockhamArgentinaIvan Magalhaes UNQUALIFIED
Murillo MaletRussiaAnna Fali QUALIFIED
Emily WhobreyGermanyOnyama Limba RENEWAL
Octavia MaletGermanyOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaStephen Shaw RENEWAL
Maisha RulapaughJapanStephen Shaw PROPOSAL
Ashley DoeCanadaIvan Magalhaes PROPOSAL
Salvatore StockhamAustraliaIvan Magalhaes NEGOTIATION
Misaki RoysterIndiaIoni Bowcher QUALIFIED
Aika InouyeAustraliaElwin Sharvill RENEWAL
Leja CaldareraJapanStephen Shaw NEW
Aika InouyeUnited KingdomAnna Fali UNQUALIFIED
Jefferson SchemmerJapanAnna Fali QUALIFIED
Murillo MaletRussiaBernardo Dominic NEW
Antonio CaudyBrazilIvan Magalhaes RENEWAL
Aika InouyeSpainElwin Sharvill RENEWAL
Johnson SergiJapanAmy Elsner PROPOSAL
Sinclair WaycottCanadaIoni Bowcher NEW
Frozen Columns
Name
Deepesh Chui
Salvatore Stockham
Costa Dilliard
Emily Whobrey
Emily Whobrey
Jennifer Amigon
Wickens Nestle
Adams Morasca
Cody Saylors
Kaitlin Ostrosky
Octavia Malet
Morrow Ruta
Ivar Paprocki
Izzy Garufi
Deepesh Chui
Johnson Sergi
David Darakjy
Chavez Briddick
David Darakjy
Stacey Maclead
Clifford Rim
Jennifer Amigon
Izzy Garufi
Sinclair Waycott
Morrow Ruta
Antonio Caudy
Morrow Ruta
Misaki Royster
Tony Foller
Chavez Briddick
Jefferson Schemmer
Murillo Malet
Costa Dilliard
Alejandro Perin
Stacey Maclead
Ivar Paprocki
Jefferson Schemmer
Francesco Shinko
Nicolas Iturbide
Kaitlin Ostrosky
Wickens Nestle
Antonio Caudy
David Darakjy
Greenwood Bolognia
Johnson Sergi
Misaki Royster
Jennifer Amigon
Nicolas Iturbide
Aruna Figeroa
Munro Ferencz
IdCountryDate
1000Australia2026-04-18
1001Argentina2026-04-20
1002United Kingdom2026-05-02
1003Brazil2026-04-29
1004Australia2026-04-27
1005Canada2026-04-21
1006Argentina2026-05-04
1007Argentina2026-05-12
1008Australia2026-05-02
1009Brazil2026-05-07
1010Japan2026-04-24
1011Japan2026-04-29
1012Canada2026-04-18
1013Brazil2026-05-07
1014Argentina2026-05-02
1015United Kingdom2026-04-18
1016Japan2026-05-04
1017Spain2026-05-08
1018Italy2026-05-01
1019United Kingdom2026-04-21
1020Germany2026-05-13
1021India2026-05-15
1022Russia2026-05-09
1023Germany2026-05-10
1024Australia2026-05-02
1025Italy2026-05-12
1026United Kingdom2026-04-20
1027Japan2026-05-10
1028Australia2026-05-05
1029Italy2026-05-06
1030Brazil2026-05-13
1031Spain2026-04-19
1032Germany2026-04-18
1033Germany2026-05-06
1034India2026-05-12
1035France2026-05-15
1036India2026-05-08
1037India2026-05-15
1038Italy2026-05-05
1039France2026-04-30
1040Japan2026-04-22
1041Italy2026-04-18
1042India2026-04-30
1043Australia2026-04-25
1044Canada2026-04-23
1045Russia2026-04-17
1046France2026-04-16
1047Russia2026-04-21
1048France2026-05-07
1049United Kingdom2026-04-16

On-Demand Data

NameIdCountryDate
Aika Inouye1000Canada2026-04-25
Ivar Paprocki1001United Kingdom2026-04-18
Costa Dilliard1002Australia2026-05-06
Leja Caldarera1003Canada2026-05-02
Greenwood Bolognia1004Australia2026-04-29
Chavez Briddick1005India2026-05-10
Darci Poquette1006Russia2026-05-04
Maria Marrier1007Australia2026-05-13
Mayumi Kolmetz1008United Kingdom2026-04-21
Ashley Doe1009Russia2026-05-05
Nicolas Iturbide1010Argentina2026-04-19
Morrow Ruta1011Canada2026-05-08
Greenwood Bolognia1012Brazil2026-05-04
Sinclair Waycott1013Germany2026-05-08
Julie Stenseth1014Canada2026-04-17
Cody Saylors1015Japan2026-04-27
Faith Gillian1016Japan2026-05-08
Silvio Slusarski1017Spain2026-04-23
Mujtaba Nicka1018Germany2026-04-22
Maisha Rulapaugh1019Japan2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraCanadaStephen Shaw PROPOSAL
Aruna FigeroaBrazilAnna Fali PROPOSAL
Emily WhobreyAustraliaAnna Fali PROPOSAL
Aruna FigeroaRussiaAsiya Javayant NEGOTIATION
Faith GillianFranceAmy Elsner QUALIFIED
Ivar PaprockiRussiaElwin Sharvill QUALIFIED
Rodrigues CampainAustraliaStephen Shaw PROPOSAL
Claire TollnerIndiaXuxue Feng RENEWAL
Smith GlickSpainBernardo Dominic RENEWAL
Greenwood BologniaUnited KingdomElwin Sharvill PROPOSAL
Stacey MacleadArgentinaIoni Bowcher NEW
Francesco ShinkoFranceOnyama Limba NEGOTIATION
Morrow RutaCanadaStephen Shaw NEGOTIATION
Chavez BriddickGermanyAmy Elsner NEGOTIATION
Kaitlin OstroskyItalyXuxue Feng RENEWAL
Faith GillianUnited KingdomIoni Bowcher RENEWAL
Cody SaylorsSpainBernardo Dominic NEW
James ButtIndiaIoni Bowcher NEW
Aditya KuskoItalyElwin Sharvill PROPOSAL
Isabel BowleyAustraliaIoni Bowcher NEW
Claire TollnerJapanXuxue Feng PROPOSAL
Leja CaldareraItalyAnna Fali NEGOTIATION
Emily WhobreyJapanOnyama Limba PROPOSAL
Jones VocelkaJapanStephen Shaw RENEWAL
Claire TollnerArgentinaBernardo Dominic PROPOSAL
Jones VocelkaBrazilIoni Bowcher NEGOTIATION
Rodrigues CampainBrazilIvan Magalhaes RENEWAL
Adams MorascaUnited KingdomIoni Bowcher NEW
Ivar PaprockiIndiaOnyama Limba RENEWAL
Wickens NestleItalyElwin Sharvill NEGOTIATION
Ivar PaprockiFranceAmy Elsner NEW
Antonio CaudyAustraliaAnna Fali PROPOSAL
Ricardo GauchoArgentinaStephen Shaw NEGOTIATION
David DarakjyFranceIoni Bowcher UNQUALIFIED
Faith GillianAustraliaIvan Magalhaes NEW
Antonio CaudyArgentinaAsiya Javayant PROPOSAL
Aditya KuskoItalyBernardo Dominic UNQUALIFIED
Deepesh ChuiSpainStephen Shaw NEGOTIATION
Misaki RoysterGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaArgentinaOnyama Limba 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>