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
Jones VocelkaIndiaXuxue Feng QUALIFIED
Jefferson SchemmerBrazilAnna Fali PROPOSAL
Aditya KuskoJapanAmy Elsner NEW
Maria MarrierGermanyStephen Shaw PROPOSAL
Ashley DoeFranceBernardo Dominic QUALIFIED
Sinclair WaycottFranceXuxue Feng PROPOSAL
Mujtaba NickaSpainIvan Magalhaes UNQUALIFIED
Tony FollerRussiaIoni Bowcher RENEWAL
Alejandro PerinSpainStephen Shaw NEW
Francesco ShinkoCanadaIoni Bowcher UNQUALIFIED
Kadeem FlosiItalyStephen Shaw RENEWAL
Nicolas IturbideJapanAmy Elsner NEGOTIATION
Kadeem FlosiRussiaXuxue Feng RENEWAL
Maisha RulapaughCanadaIvan Magalhaes PROPOSAL
Cody SaylorsUnited KingdomIvan Magalhaes RENEWAL
Faith GillianItalyElwin Sharvill PROPOSAL
Julie StensethFranceAmy Elsner PROPOSAL
Aika InouyeUnited KingdomOnyama Limba RENEWAL
Aditya KuskoJapanXuxue Feng RENEWAL
Clifford RimArgentinaAmy Elsner PROPOSAL
Murillo MaletItalyXuxue Feng NEW
Mayumi KolmetzAustraliaElwin Sharvill UNQUALIFIED
Mujtaba NickaArgentinaOnyama Limba QUALIFIED
Ashley DoeItalyBernardo Dominic RENEWAL
Izzy GarufiIndiaIvan Magalhaes NEW
Jeanfrancois VenereIndiaAsiya Javayant NEW
Aika InouyeAustraliaXuxue Feng PROPOSAL
Mujtaba NickaAustraliaStephen Shaw NEGOTIATION
James ButtUnited KingdomElwin Sharvill PROPOSAL
Emily WhobreyJapanAsiya Javayant NEGOTIATION
Silvio SlusarskiFranceIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomAnna Fali PROPOSAL
Wickens NestleJapanAsiya Javayant NEGOTIATION
Adams MorascaCanadaBernardo Dominic UNQUALIFIED
Antonio CaudySpainAnna Fali RENEWAL
Aditya KuskoUnited KingdomAsiya Javayant UNQUALIFIED
James ButtIndiaIoni Bowcher UNQUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant PROPOSAL
Francesco ShinkoArgentinaAmy Elsner NEGOTIATION
Adams MorascaUnited KingdomIvan Magalhaes RENEWAL
Francesco ShinkoBrazilIvan Magalhaes NEW
James ButtFranceAsiya Javayant QUALIFIED
Isabel BowleyGermanyIvan Magalhaes NEGOTIATION
Jones VocelkaFranceAsiya Javayant RENEWAL
Julie StensethUnited KingdomAsiya Javayant QUALIFIED
Jones VocelkaAustraliaAnna Fali RENEWAL
Maria MarrierSpainAsiya Javayant QUALIFIED
Francesco ShinkoUnited KingdomOnyama Limba PROPOSAL
Jeanfrancois VenereArgentinaOnyama Limba NEGOTIATION
Octavia MaletBrazilAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
James ButtCanadaBernardo Dominic PROPOSAL
Munro FerenczJapanAnna Fali PROPOSAL
Nicolas IturbideRussiaElwin Sharvill UNQUALIFIED
Aika InouyeAustraliaStephen Shaw PROPOSAL
Mayumi KolmetzJapanIvan Magalhaes NEGOTIATION
Nicolas IturbideAustraliaStephen Shaw NEGOTIATION
Nicolas IturbideJapanIoni Bowcher NEW
Antonio CaudyRussiaBernardo Dominic PROPOSAL
Ashley DoeUnited KingdomOnyama Limba UNQUALIFIED
Maisha RulapaughIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraAustralia2026-04-29Printing Dimensions RENEWAL72Amy Elsner
1001Nicolas IturbideAustralia2026-04-05Morlong Associates UNQUALIFIED21Onyama Limba
1002Morrow RutaCanada2026-04-06Truhlar And Truhlar Attys RENEWAL61Onyama Limba
1003Ivar PaprockiGermany2026-04-25Truhlar And Truhlar Attys PROPOSAL80Amy Elsner
1004James ButtRussia2026-04-27Morlong Associates PROPOSAL77Xuxue Feng
1005Misaki RoysterAustralia2026-04-06Dorl, James J Esq RENEWAL92Elwin Sharvill
1006Deepesh ChuiAustralia2026-04-23King, Christopher A Esq NEGOTIATION28Ioni Bowcher
1007Juan WieserGermany2026-04-10Dorl, James J Esq NEGOTIATION56Anna Fali
1008Smith GlickUnited Kingdom2026-04-19Chapman, Ross E Esq NEGOTIATION43Anna Fali
1009Tony FollerItaly2026-04-12Chanay, Jeffrey A Esq PROPOSAL45Ivan Magalhaes
1010Antonio CaudyRussia2026-04-18King, Christopher A Esq RENEWAL19Elwin Sharvill
1011James ButtCanada2026-04-23Truhlar And Truhlar Attys NEGOTIATION41Onyama Limba
1012Francesco ShinkoSpain2026-04-03Printing Dimensions NEW80Amy Elsner
1013Aika InouyeBrazil2026-04-16Feltz Printing Service UNQUALIFIED76Asiya Javayant
1014Octavia MaletBrazil2026-04-14Truhlar And Truhlar Attys UNQUALIFIED89Bernardo Dominic
1015Julie StensethItaly2026-04-23Dorl, James J Esq NEW78Anna Fali
1016Maria MarrierIndia2026-05-01Chemel, James L Cpa QUALIFIED95Onyama Limba
1017David DarakjyUnited Kingdom2026-04-21Chanay, Jeffrey A Esq QUALIFIED83Bernardo Dominic
1018Maria MarrierRussia2026-04-07Printing Dimensions RENEWAL84Ivan Magalhaes
1019Greenwood BologniaIndia2026-04-17Feiner Bros UNQUALIFIED85Ioni Bowcher
1020Morrow RutaCanada2026-04-07Rangoni Of Florence NEGOTIATION29Ivan Magalhaes
1021Misaki RoysterAustralia2026-04-22Feltz Printing Service QUALIFIED65Amy Elsner
1022Francesco ShinkoUnited Kingdom2026-04-29Truhlar And Truhlar Attys RENEWAL93Bernardo Dominic
1023Greenwood BologniaFrance2026-04-14Printing Dimensions UNQUALIFIED7Elwin Sharvill
1024Chavez BriddickSpain2026-04-23King, Christopher A Esq QUALIFIED60Xuxue Feng
1025Silvio SlusarskiRussia2026-04-28Rangoni Of Florence RENEWAL67Ivan Magalhaes
1026Jennifer AmigonJapan2026-04-25Chemel, James L Cpa PROPOSAL14Elwin Sharvill
1027Jeanfrancois VenereUnited Kingdom2026-04-09Dorl, James J Esq QUALIFIED18Ioni Bowcher
1028Darci PoquetteAustralia2026-05-02Dorl, James J Esq NEW3Asiya Javayant
1029Leon OldroydUnited Kingdom2026-04-05Morlong Associates NEGOTIATION2Amy Elsner
1030Maisha RulapaughRussia2026-04-06Dorl, James J Esq RENEWAL61Ioni Bowcher
1031Morrow RutaCanada2026-04-26Commercial Press PROPOSAL80Ioni Bowcher
1032Stacey MacleadIndia2026-04-14Printing Dimensions PROPOSAL5Anna Fali
1033Kaitlin OstroskyFrance2026-04-30Rangoni Of Florence NEW59Amy Elsner
1034Antonio CaudyAustralia2026-04-15Chemel, James L Cpa QUALIFIED44Xuxue Feng
1035Silvio SlusarskiBrazil2026-05-02Morlong Associates PROPOSAL3Elwin Sharvill
1036Chavez BriddickItaly2026-04-27Chapman, Ross E Esq RENEWAL4Ivan Magalhaes
1037Maisha RulapaughAustralia2026-04-27Buckley Miller Wright NEW71Amy Elsner
1038Aditya KuskoIndia2026-04-27Truhlar And Truhlar Attys UNQUALIFIED44Stephen Shaw
1039Mayumi KolmetzRussia2026-04-25Morlong Associates QUALIFIED51Elwin Sharvill
1040Leja CaldareraJapan2026-04-09Chapman, Ross E Esq PROPOSAL97Asiya Javayant
1041Julie StensethCanada2026-04-25Rousseaux, Michael Esq RENEWAL32Bernardo Dominic
1042Arvin AlbaresBrazil2026-04-04Rousseaux, Michael Esq NEGOTIATION73Onyama Limba
1043Costa DilliardAustralia2026-04-12King, Christopher A Esq NEGOTIATION58Elwin Sharvill
1044Johnson SergiGermany2026-04-28Chemel, James L Cpa RENEWAL28Ivan Magalhaes
1045Smith GlickFrance2026-04-06Chemel, James L Cpa NEW76Stephen Shaw
1046Stacey MacleadCanada2026-04-12Rousseaux, Michael Esq QUALIFIED96Xuxue Feng
1047Aditya KuskoIndia2026-04-28Chapman, Ross E Esq RENEWAL65Amy Elsner
1048Jeanfrancois VenereFrance2026-04-08Printing Dimensions RENEWAL76Stephen Shaw
1049Maisha RulapaughArgentina2026-04-08Benton, John B Jr UNQUALIFIED7Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiJapanElwin Sharvill RENEWAL
Claire TollnerItalyBernardo Dominic RENEWAL
Arvin AlbaresItalyBernardo Dominic NEGOTIATION
Greenwood BologniaItalyAmy Elsner QUALIFIED
Silvio SlusarskiFranceAnna Fali UNQUALIFIED
Darci PoquetteArgentinaStephen Shaw RENEWAL
Ashley DoeGermanyAsiya Javayant NEGOTIATION
Morrow RutaRussiaIoni Bowcher PROPOSAL
Aditya KuskoArgentinaAmy Elsner NEW
Ashley DoeIndiaAnna Fali NEGOTIATION
Rodrigues CampainItalyIoni Bowcher NEW
Rodrigues CampainSpainStephen Shaw UNQUALIFIED
Aditya KuskoUnited KingdomIoni Bowcher NEGOTIATION
Morrow RutaArgentinaAmy Elsner PROPOSAL
Deepesh ChuiCanadaIoni Bowcher PROPOSAL
Silvio SlusarskiAustraliaBernardo Dominic UNQUALIFIED
Greenwood BologniaCanadaXuxue Feng PROPOSAL
Morrow RutaUnited KingdomAnna Fali RENEWAL
Isabel BowleyCanadaAsiya Javayant UNQUALIFIED
Francesco ShinkoRussiaAnna Fali NEW
Smith GlickBrazilIvan Magalhaes RENEWAL
Jennifer AmigonAustraliaXuxue Feng RENEWAL
Nicolas IturbideCanadaBernardo Dominic UNQUALIFIED
Mujtaba NickaRussiaElwin Sharvill NEGOTIATION
Mujtaba NickaJapanBernardo Dominic RENEWAL
Johnson SergiItalyIvan Magalhaes PROPOSAL
Morrow RutaFranceAmy Elsner NEW
Jennifer AmigonAustraliaBernardo Dominic NEGOTIATION
Ivar PaprockiArgentinaIoni Bowcher PROPOSAL
Ivar PaprockiJapanIoni Bowcher NEGOTIATION
Claire TollnerItalyIoni Bowcher UNQUALIFIED
Nicolas IturbideSpainIvan Magalhaes NEGOTIATION
Rodrigues CampainGermanyIvan Magalhaes QUALIFIED
Alejandro PerinAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill QUALIFIED
David DarakjyJapanXuxue Feng RENEWAL
Tony FollerAustraliaXuxue Feng NEGOTIATION
Francesco ShinkoUnited KingdomAmy Elsner NEW
Emily WhobreyIndiaStephen Shaw RENEWAL
Octavia MaletIndiaIvan Magalhaes NEW
Isabel BowleyRussiaAnna Fali QUALIFIED
Sinclair WaycottArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeItalyOnyama Limba NEGOTIATION
Stacey MacleadGermanyOnyama Limba RENEWAL
Jefferson SchemmerFranceXuxue Feng QUALIFIED
Ricardo GauchoGermanyElwin Sharvill UNQUALIFIED
James ButtArgentinaIoni Bowcher NEGOTIATION
Salvatore StockhamFranceAmy Elsner NEGOTIATION
Cody SaylorsItalyIvan Magalhaes NEW
Salvatore StockhamJapanAmy Elsner NEW
Frozen Columns
Name
Leon Oldroyd
Chavez Briddick
Rodrigues Campain
Faith Gillian
Rodrigues Campain
Misaki Royster
David Darakjy
Maisha Rulapaugh
Chavez Briddick
Julie Stenseth
Sinclair Waycott
Cody Saylors
Julie Stenseth
Costa Dilliard
Mujtaba Nicka
Kadeem Flosi
Ivar Paprocki
Antonio Caudy
Ivar Paprocki
Isabel Bowley
Morrow Ruta
Izzy Garufi
Kadeem Flosi
Mayumi Kolmetz
Antonio Caudy
Darci Poquette
Darci Poquette
Morrow Ruta
Johnson Sergi
Costa Dilliard
Wickens Nestle
Mujtaba Nicka
Chavez Briddick
Chavez Briddick
Sinclair Waycott
Claire Tollner
Juan Wieser
Jones Vocelka
Octavia Malet
Jennifer Amigon
Jefferson Schemmer
Munro Ferencz
Murillo Malet
Mujtaba Nicka
Smith Glick
Kaitlin Ostrosky
Leon Oldroyd
Kaitlin Ostrosky
Silvio Slusarski
Morrow Ruta
IdCountryDate
1000Argentina2026-04-09
1001Canada2026-04-07
1002Japan2026-04-08
1003Brazil2026-04-15
1004Italy2026-04-08
1005Argentina2026-05-02
1006Australia2026-04-08
1007United Kingdom2026-04-18
1008Russia2026-04-15
1009Germany2026-04-15
1010Germany2026-04-06
1011Argentina2026-04-08
1012Italy2026-04-15
1013Russia2026-04-24
1014France2026-04-20
1015Australia2026-04-16
1016Australia2026-04-29
1017Canada2026-04-20
1018Argentina2026-04-18
1019Canada2026-04-26
1020Italy2026-04-28
1021Spain2026-04-18
1022United Kingdom2026-04-08
1023Russia2026-04-04
1024Brazil2026-04-10
1025Australia2026-04-08
1026Argentina2026-04-16
1027India2026-04-03
1028Brazil2026-04-23
1029Spain2026-04-14
1030Italy2026-04-09
1031France2026-04-19
1032France2026-04-05
1033Germany2026-04-26
1034India2026-04-12
1035Italy2026-04-26
1036Italy2026-05-01
1037Brazil2026-04-07
1038Russia2026-04-22
1039France2026-04-25
1040Russia2026-04-20
1041Brazil2026-04-06
1042France2026-04-04
1043Spain2026-05-01
1044Argentina2026-04-26
1045Spain2026-04-26
1046India2026-04-22
1047Russia2026-04-10
1048Brazil2026-04-30
1049Australia2026-04-22

On-Demand Data

NameIdCountryDate
Johnson Sergi1000Brazil2026-04-05
Alejandro Perin1001Germany2026-04-07
Costa Dilliard1002India2026-04-09
Mujtaba Nicka1003Canada2026-04-14
Emily Whobrey1004Russia2026-04-06
Francesco Shinko1005United Kingdom2026-04-14
Jennifer Amigon1006France2026-04-14
Cody Saylors1007Spain2026-04-18
David Darakjy1008Brazil2026-04-10
Aika Inouye1009Russia2026-04-16
Chavez Briddick1010United Kingdom2026-04-21
Emily Whobrey1011Brazil2026-04-19
James Butt1012United Kingdom2026-04-09
Wickens Nestle1013France2026-04-16
Chavez Briddick1014France2026-04-03
Aditya Kusko1015Australia2026-04-06
Chavez Briddick1016Spain2026-04-10
Wickens Nestle1017Russia2026-04-19
Maria Marrier1018Germany2026-04-14
Emily Whobrey1019Japan2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeItalyElwin Sharvill PROPOSAL
Jennifer AmigonCanadaStephen Shaw UNQUALIFIED
Tony FollerIndiaXuxue Feng UNQUALIFIED
Chavez BriddickJapanStephen Shaw QUALIFIED
Chavez BriddickRussiaAmy Elsner PROPOSAL
Stacey MacleadUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonItalyAsiya Javayant NEW
Costa DilliardJapanBernardo Dominic RENEWAL
Claire TollnerSpainAsiya Javayant NEGOTIATION
Adams MorascaItalyElwin Sharvill UNQUALIFIED
Murillo MaletRussiaAnna Fali NEGOTIATION
Ashley DoeIndiaIoni Bowcher NEW
Maisha RulapaughUnited KingdomIoni Bowcher NEGOTIATION
Rodrigues CampainSpainOnyama Limba RENEWAL
Greenwood BologniaArgentinaAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomElwin Sharvill RENEWAL
Alejandro PerinIndiaIoni Bowcher UNQUALIFIED
Emily WhobreyAustraliaElwin Sharvill QUALIFIED
Costa DilliardArgentinaOnyama Limba NEGOTIATION
Ricardo GauchoAustraliaIvan Magalhaes NEW
Julie StensethAustraliaIoni Bowcher NEW
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Claire TollnerUnited KingdomAnna Fali RENEWAL
Jennifer AmigonGermanyIoni Bowcher RENEWAL
Maisha RulapaughGermanyIoni Bowcher NEGOTIATION
Ivar PaprockiIndiaAnna Fali NEW
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Costa DilliardSpainAnna Fali NEW
Antonio CaudyCanadaIoni Bowcher QUALIFIED
Maria MarrierGermanyElwin Sharvill QUALIFIED
Aika InouyeSpainAnna Fali NEGOTIATION
Tony FollerSpainXuxue Feng NEGOTIATION
Silvio SlusarskiIndiaIvan Magalhaes QUALIFIED
Jones VocelkaCanadaElwin Sharvill UNQUALIFIED
Rodrigues CampainIndiaOnyama Limba NEW
Cody SaylorsAustraliaBernardo Dominic RENEWAL
Ivar PaprockiIndiaAnna Fali RENEWAL
Smith GlickArgentinaElwin Sharvill NEGOTIATION
David DarakjySpainStephen Shaw QUALIFIED
Clifford RimItalyXuxue Feng NEW

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