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
Rodrigues CampainItalyAnna Fali NEGOTIATION
Cody SaylorsRussiaAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Alejandro PerinCanadaXuxue Feng RENEWAL
Leja CaldareraGermanyIoni Bowcher QUALIFIED
Aika InouyeItalyIvan Magalhaes PROPOSAL
Julie StensethArgentinaOnyama Limba QUALIFIED
Clifford RimAustraliaXuxue Feng RENEWAL
Ricardo GauchoItalyBernardo Dominic RENEWAL
Aruna FigeroaJapanAmy Elsner UNQUALIFIED
David DarakjyUnited KingdomAnna Fali NEW
Murillo MaletAustraliaIoni Bowcher RENEWAL
Julie StensethCanadaStephen Shaw NEGOTIATION
Antonio CaudySpainStephen Shaw RENEWAL
Tony FollerArgentinaAsiya Javayant NEW
Murillo MaletRussiaAnna Fali QUALIFIED
Aika InouyeSpainXuxue Feng QUALIFIED
Murillo MaletItalyOnyama Limba UNQUALIFIED
Stacey MacleadRussiaXuxue Feng PROPOSAL
Maria MarrierArgentinaAnna Fali RENEWAL
Leon OldroydSpainStephen Shaw NEW
Murillo MaletIndiaStephen Shaw QUALIFIED
Octavia MaletAustraliaIvan Magalhaes RENEWAL
David DarakjyItalyElwin Sharvill QUALIFIED
Tony FollerFranceIoni Bowcher NEGOTIATION
Costa DilliardItalyAsiya Javayant NEW
Faith GillianAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczBrazilElwin Sharvill NEW
Arvin AlbaresCanadaAnna Fali NEGOTIATION
Smith GlickFranceBernardo Dominic UNQUALIFIED
Leja CaldareraIndiaOnyama Limba QUALIFIED
Cody SaylorsGermanyBernardo Dominic NEW
Faith GillianBrazilIvan Magalhaes NEGOTIATION
Darci PoquetteArgentinaStephen Shaw UNQUALIFIED
Murillo MaletItalyStephen Shaw UNQUALIFIED
Deepesh ChuiBrazilOnyama Limba PROPOSAL
Sinclair WaycottAustraliaAsiya Javayant UNQUALIFIED
Mujtaba NickaRussiaAmy Elsner PROPOSAL
Kadeem FlosiFranceBernardo Dominic UNQUALIFIED
Munro FerenczCanadaOnyama Limba NEGOTIATION
Munro FerenczItalyIvan Magalhaes RENEWAL
Emily WhobreyFranceAmy Elsner QUALIFIED
Mujtaba NickaBrazilStephen Shaw PROPOSAL
James ButtBrazilAnna Fali QUALIFIED
Julie StensethAustraliaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereUnited KingdomBernardo Dominic NEW
Smith GlickIndiaOnyama Limba NEGOTIATION
Clifford RimUnited KingdomOnyama Limba NEGOTIATION
Ashley DoeRussiaBernardo Dominic NEW
Aika InouyeUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardFranceXuxue Feng QUALIFIED
Greenwood BologniaIndiaAmy Elsner UNQUALIFIED
Johnson SergiSpainIoni Bowcher UNQUALIFIED
Munro FerenczSpainBernardo Dominic UNQUALIFIED
Maria MarrierGermanyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyAustraliaAmy Elsner NEW
Izzy GarufiAustraliaStephen Shaw UNQUALIFIED
Tony FollerUnited KingdomAsiya Javayant NEW
Juan WieserIndiaIvan Magalhaes RENEWAL
Salvatore StockhamJapanBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamJapan2026-05-08Commercial Press QUALIFIED76Asiya Javayant
1001Tony FollerBrazil2026-05-05Truhlar And Truhlar Attys RENEWAL42Onyama Limba
1002Misaki RoysterBrazil2026-04-24Chanay, Jeffrey A Esq RENEWAL82Asiya Javayant
1003Octavia MaletItaly2026-04-30Rousseaux, Michael Esq RENEWAL11Ioni Bowcher
1004Isabel BowleyCanada2026-04-16Chapman, Ross E Esq QUALIFIED33Xuxue Feng
1005Maisha RulapaughUnited Kingdom2026-05-06King, Christopher A Esq RENEWAL63Elwin Sharvill
1006Morrow RutaArgentina2026-04-24Printing Dimensions PROPOSAL44Asiya Javayant
1007Munro FerenczFrance2026-04-11Dorl, James J Esq UNQUALIFIED65Asiya Javayant
1008Silvio SlusarskiUnited Kingdom2026-04-13Morlong Associates PROPOSAL23Elwin Sharvill
1009Murillo MaletBrazil2026-05-07Feltz Printing Service NEW60Asiya Javayant
1010Maria MarrierFrance2026-04-11Commercial Press NEGOTIATION40Stephen Shaw
1011Ashley DoeJapan2026-04-25Chanay, Jeffrey A Esq NEGOTIATION73Amy Elsner
1012Mayumi KolmetzAustralia2026-04-15Rangoni Of Florence NEGOTIATION85Elwin Sharvill
1013Sinclair WaycottArgentina2026-04-10Chapman, Ross E Esq PROPOSAL11Stephen Shaw
1014Wickens NestleBrazil2026-04-26Printing Dimensions RENEWAL98Xuxue Feng
1015Izzy GarufiSpain2026-05-09Chapman, Ross E Esq PROPOSAL20Ivan Magalhaes
1016Tony FollerSpain2026-04-30Printing Dimensions NEW48Ivan Magalhaes
1017Tony FollerRussia2026-04-24Feiner Bros PROPOSAL75Ioni Bowcher
1018Wickens NestleItaly2026-04-21Commercial Press PROPOSAL96Elwin Sharvill
1019Jefferson SchemmerSpain2026-04-21Morlong Associates UNQUALIFIED28Amy Elsner
1020Mujtaba NickaJapan2026-04-20Rousseaux, Michael Esq PROPOSAL41Ivan Magalhaes
1021Kaitlin OstroskyRussia2026-05-01Feltz Printing Service QUALIFIED4Elwin Sharvill
1022Morrow RutaAustralia2026-05-07Buckley Miller Wright RENEWAL45Ivan Magalhaes
1023Nicolas IturbideJapan2026-04-15Dorl, James J Esq UNQUALIFIED73Anna Fali
1024Jones VocelkaItaly2026-04-17Rousseaux, Michael Esq NEW60Onyama Limba
1025Ricardo GauchoFrance2026-04-14Dorl, James J Esq QUALIFIED15Asiya Javayant
1026Misaki RoysterSpain2026-05-06Printing Dimensions UNQUALIFIED61Ivan Magalhaes
1027Misaki RoysterIndia2026-04-16Rousseaux, Michael Esq PROPOSAL85Ivan Magalhaes
1028Deepesh ChuiCanada2026-04-17Rangoni Of Florence RENEWAL89Asiya Javayant
1029Aika InouyeRussia2026-05-08Chapman, Ross E Esq NEGOTIATION76Amy Elsner
1030Jeanfrancois VenereUnited Kingdom2026-04-21Morlong Associates PROPOSAL65Ioni Bowcher
1031Wickens NestleUnited Kingdom2026-04-12Chapman, Ross E Esq QUALIFIED13Asiya Javayant
1032Jeanfrancois VenereItaly2026-04-11Commercial Press NEW60Ivan Magalhaes
1033Nicolas IturbideFrance2026-04-17Chemel, James L Cpa NEW59Stephen Shaw
1034Ivar PaprockiIndia2026-04-30Feiner Bros PROPOSAL7Bernardo Dominic
1035Francesco ShinkoRussia2026-04-11Truhlar And Truhlar Attys QUALIFIED10Stephen Shaw
1036Maria MarrierItaly2026-04-17Dorl, James J Esq NEGOTIATION37Ivan Magalhaes
1037Mayumi KolmetzGermany2026-05-05King, Christopher A Esq NEGOTIATION63Stephen Shaw
1038Misaki RoysterCanada2026-04-30Feltz Printing Service PROPOSAL36Ivan Magalhaes
1039Francesco ShinkoJapan2026-04-15Commercial Press PROPOSAL87Amy Elsner
1040Octavia MaletFrance2026-04-28Chapman, Ross E Esq NEGOTIATION45Ioni Bowcher
1041Francesco ShinkoUnited Kingdom2026-05-04King, Christopher A Esq NEGOTIATION12Stephen Shaw
1042Juan WieserRussia2026-04-11Feiner Bros QUALIFIED43Anna Fali
1043Maria MarrierFrance2026-04-17Benton, John B Jr QUALIFIED71Stephen Shaw
1044Isabel BowleySpain2026-04-14Buckley Miller Wright UNQUALIFIED11Xuxue Feng
1045Juan WieserIndia2026-04-12Commercial Press PROPOSAL98Xuxue Feng
1046Aika InouyeUnited Kingdom2026-05-01Commercial Press PROPOSAL13Elwin Sharvill
1047Murillo MaletItaly2026-05-09Chapman, Ross E Esq PROPOSAL32Onyama Limba
1048Ricardo GauchoFrance2026-04-27Rousseaux, Michael Esq NEW12Ivan Magalhaes
1049Kaitlin OstroskyAustralia2026-05-08Commercial Press NEGOTIATION51Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerCanadaAsiya Javayant RENEWAL
Tony FollerUnited KingdomAnna Fali PROPOSAL
Munro FerenczJapanAsiya Javayant QUALIFIED
Munro FerenczRussiaAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaOnyama Limba QUALIFIED
Costa DilliardJapanAmy Elsner NEGOTIATION
Octavia MaletUnited KingdomAsiya Javayant NEW
James ButtItalyIoni Bowcher QUALIFIED
Aruna FigeroaGermanyIvan Magalhaes RENEWAL
Murillo MaletItalyXuxue Feng NEGOTIATION
Kaitlin OstroskySpainIvan Magalhaes RENEWAL
Claire TollnerGermanyElwin Sharvill QUALIFIED
Wickens NestleItalyElwin Sharvill QUALIFIED
Johnson SergiGermanyAmy Elsner PROPOSAL
Ivar PaprockiJapanElwin Sharvill PROPOSAL
Faith GillianIndiaXuxue Feng QUALIFIED
Faith GillianArgentinaOnyama Limba UNQUALIFIED
Greenwood BologniaJapanStephen Shaw QUALIFIED
Izzy GarufiRussiaIvan Magalhaes NEGOTIATION
Wickens NestleSpainIoni Bowcher QUALIFIED
Tony FollerAustraliaElwin Sharvill NEGOTIATION
Morrow RutaCanadaXuxue Feng NEGOTIATION
Rodrigues CampainCanadaBernardo Dominic NEGOTIATION
Emily WhobreyFranceAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaElwin Sharvill PROPOSAL
Nicolas IturbideRussiaIoni Bowcher RENEWAL
Maria MarrierRussiaAsiya Javayant RENEWAL
Costa DilliardFranceElwin Sharvill PROPOSAL
Sinclair WaycottCanadaAnna Fali QUALIFIED
Jefferson SchemmerSpainBernardo Dominic QUALIFIED
Aditya KuskoItalyIvan Magalhaes RENEWAL
Smith GlickUnited KingdomAmy Elsner PROPOSAL
Kaitlin OstroskyArgentinaAsiya Javayant NEGOTIATION
Misaki RoysterFranceAmy Elsner UNQUALIFIED
Morrow RutaGermanyIoni Bowcher UNQUALIFIED
Izzy GarufiIndiaStephen Shaw PROPOSAL
Jones VocelkaFranceXuxue Feng NEW
Smith GlickBrazilBernardo Dominic PROPOSAL
Leon OldroydAustraliaAnna Fali QUALIFIED
Octavia MaletCanadaAmy Elsner UNQUALIFIED
Silvio SlusarskiArgentinaStephen Shaw QUALIFIED
Tony FollerCanadaOnyama Limba QUALIFIED
Costa DilliardAustraliaAsiya Javayant QUALIFIED
Octavia MaletSpainXuxue Feng RENEWAL
Darci PoquetteUnited KingdomStephen Shaw NEW
Francesco ShinkoBrazilXuxue Feng RENEWAL
Wickens NestleSpainXuxue Feng NEGOTIATION
Tony FollerJapanXuxue Feng NEGOTIATION
Juan WieserJapanIoni Bowcher NEW
Aditya KuskoItalyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Silvio Slusarski
Cody Saylors
Chavez Briddick
Smith Glick
Julie Stenseth
Munro Ferencz
Arvin Albares
Tony Foller
Jefferson Schemmer
Francesco Shinko
Deepesh Chui
Maria Marrier
Ashley Doe
Arvin Albares
Aruna Figeroa
Kaitlin Ostrosky
Aika Inouye
Morrow Ruta
Munro Ferencz
Juan Wieser
Juan Wieser
Leon Oldroyd
Claire Tollner
Munro Ferencz
Jones Vocelka
Maisha Rulapaugh
Mayumi Kolmetz
Nicolas Iturbide
Emily Whobrey
Claire Tollner
Ashley Doe
Adams Morasca
Munro Ferencz
Costa Dilliard
Munro Ferencz
Darci Poquette
Mujtaba Nicka
Maisha Rulapaugh
Antonio Caudy
Nicolas Iturbide
Tony Foller
Antonio Caudy
Aika Inouye
Emily Whobrey
Emily Whobrey
James Butt
Mayumi Kolmetz
Maria Marrier
Stacey Maclead
Chavez Briddick
IdCountryDate
1000Russia2026-04-20
1001Brazil2026-04-19
1002Japan2026-05-03
1003Russia2026-04-17
1004Argentina2026-05-08
1005Russia2026-04-24
1006Italy2026-04-25
1007Germany2026-04-12
1008United Kingdom2026-05-03
1009Australia2026-04-11
1010France2026-05-02
1011Russia2026-05-04
1012India2026-04-19
1013Canada2026-04-28
1014Japan2026-04-14
1015Australia2026-04-27
1016Spain2026-05-01
1017France2026-04-21
1018United Kingdom2026-04-19
1019Germany2026-04-16
1020Canada2026-04-19
1021Australia2026-04-28
1022India2026-04-10
1023Australia2026-04-28
1024Russia2026-04-14
1025Argentina2026-04-14
1026Russia2026-05-05
1027Russia2026-04-27
1028Germany2026-04-14
1029Brazil2026-04-22
1030Brazil2026-04-25
1031United Kingdom2026-04-21
1032Argentina2026-05-09
1033Australia2026-04-18
1034Russia2026-05-03
1035Brazil2026-04-17
1036Japan2026-05-02
1037Spain2026-05-09
1038United Kingdom2026-04-19
1039Argentina2026-05-02
1040Japan2026-04-13
1041Argentina2026-05-03
1042Australia2026-04-16
1043India2026-04-21
1044Canada2026-04-20
1045France2026-05-07
1046Russia2026-04-20
1047Spain2026-04-20
1048Argentina2026-04-11
1049Germany2026-04-19

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Germany2026-04-15
Isabel Bowley1001Italy2026-04-13
Stacey Maclead1002United Kingdom2026-04-24
Maisha Rulapaugh1003Canada2026-04-15
Mujtaba Nicka1004Japan2026-04-10
Leja Caldarera1005Russia2026-04-26
Jennifer Amigon1006United Kingdom2026-04-17
Deepesh Chui1007Brazil2026-04-10
Mujtaba Nicka1008Russia2026-04-19
Leon Oldroyd1009United Kingdom2026-05-07
Arvin Albares1010Spain2026-04-25
Nicolas Iturbide1011India2026-05-01
Kadeem Flosi1012Brazil2026-04-13
Smith Glick1013India2026-05-09
Smith Glick1014Germany2026-05-09
Rodrigues Campain1015Brazil2026-04-11
Misaki Royster1016Italy2026-04-27
Mujtaba Nicka1017Spain2026-05-09
Maisha Rulapaugh1018Canada2026-05-03
Chavez Briddick1019Brazil2026-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzIndiaElwin Sharvill UNQUALIFIED
Deepesh ChuiItalyIoni Bowcher NEW
Faith GillianGermanyIvan Magalhaes RENEWAL
Jeanfrancois VenereFranceAnna Fali RENEWAL
Arvin AlbaresFranceOnyama Limba UNQUALIFIED
Clifford RimCanadaStephen Shaw NEGOTIATION
Claire TollnerIndiaElwin Sharvill PROPOSAL
Antonio CaudyArgentinaAnna Fali NEGOTIATION
Rodrigues CampainGermanyIvan Magalhaes UNQUALIFIED
Juan WieserGermanyAnna Fali NEGOTIATION
Mayumi KolmetzJapanXuxue Feng PROPOSAL
Sinclair WaycottJapanStephen Shaw RENEWAL
Francesco ShinkoRussiaStephen Shaw PROPOSAL
Silvio SlusarskiCanadaAnna Fali UNQUALIFIED
Maria MarrierJapanAmy Elsner PROPOSAL
Julie StensethUnited KingdomStephen Shaw QUALIFIED
Maria MarrierRussiaOnyama Limba UNQUALIFIED
David DarakjyItalyXuxue Feng RENEWAL
Francesco ShinkoArgentinaBernardo Dominic RENEWAL
Ivar PaprockiIndiaOnyama Limba RENEWAL
Faith GillianGermanyAsiya Javayant QUALIFIED
David DarakjyRussiaIvan Magalhaes UNQUALIFIED
Emily WhobreyGermanyStephen Shaw PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw PROPOSAL
Claire TollnerFranceXuxue Feng PROPOSAL
Ivar PaprockiCanadaAnna Fali NEW
Salvatore StockhamRussiaAsiya Javayant UNQUALIFIED
Chavez BriddickCanadaXuxue Feng QUALIFIED
Darci PoquetteJapanAmy Elsner UNQUALIFIED
Emily WhobreyJapanStephen Shaw RENEWAL
Clifford RimRussiaElwin Sharvill UNQUALIFIED
Sinclair WaycottArgentinaOnyama Limba NEW
Cody SaylorsRussiaAnna Fali NEGOTIATION
Misaki RoysterRussiaIvan Magalhaes UNQUALIFIED
Jones VocelkaCanadaElwin Sharvill NEGOTIATION
Deepesh ChuiJapanOnyama Limba QUALIFIED
Rodrigues CampainBrazilElwin Sharvill NEGOTIATION
Smith GlickCanadaAnna Fali PROPOSAL
Emily WhobreyAustraliaAsiya Javayant NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes QUALIFIED

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