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
Jeanfrancois VenereItalyXuxue Feng NEW
James ButtSpainXuxue Feng PROPOSAL
Rodrigues CampainRussiaIoni Bowcher RENEWAL
Ashley DoeJapanIvan Magalhaes NEW
Julie StensethGermanyElwin Sharvill UNQUALIFIED
Mujtaba NickaAustraliaIoni Bowcher UNQUALIFIED
Ivar PaprockiFranceStephen Shaw PROPOSAL
Misaki RoysterRussiaBernardo Dominic PROPOSAL
Wickens NestleSpainXuxue Feng NEW
Izzy GarufiFranceAsiya Javayant NEW
Tony FollerUnited KingdomAnna Fali QUALIFIED
Cody SaylorsUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiIndiaOnyama Limba RENEWAL
Mujtaba NickaAustraliaAsiya Javayant RENEWAL
Maisha RulapaughFranceOnyama Limba NEGOTIATION
Jennifer AmigonJapanIvan Magalhaes NEW
Aditya KuskoAustraliaXuxue Feng PROPOSAL
Jennifer AmigonSpainOnyama Limba NEGOTIATION
Ricardo GauchoUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerUnited KingdomElwin Sharvill NEW
Aika InouyeCanadaAnna Fali UNQUALIFIED
Stacey MacleadBrazilElwin Sharvill UNQUALIFIED
Juan WieserArgentinaAmy Elsner RENEWAL
Leon OldroydIndiaBernardo Dominic NEW
Arvin AlbaresRussiaIvan Magalhaes UNQUALIFIED
Isabel BowleyGermanyStephen Shaw NEW
Darci PoquetteFranceIoni Bowcher NEGOTIATION
Emily WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Aika InouyeGermanyIoni Bowcher PROPOSAL
Arvin AlbaresRussiaXuxue Feng RENEWAL
Murillo MaletRussiaIvan Magalhaes NEW
Costa DilliardGermanyElwin Sharvill NEGOTIATION
Adams MorascaArgentinaAnna Fali PROPOSAL
Jones VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer AmigonUnited KingdomAmy Elsner UNQUALIFIED
Darci PoquetteItalyAsiya Javayant RENEWAL
Murillo MaletUnited KingdomIvan Magalhaes RENEWAL
Claire TollnerFranceStephen Shaw PROPOSAL
Salvatore StockhamUnited KingdomOnyama Limba QUALIFIED
Morrow RutaUnited KingdomOnyama Limba QUALIFIED
Mujtaba NickaJapanIoni Bowcher RENEWAL
Arvin AlbaresJapanBernardo Dominic NEW
Murillo MaletCanadaStephen Shaw QUALIFIED
Ivar PaprockiIndiaXuxue Feng QUALIFIED
Morrow RutaFranceIoni Bowcher QUALIFIED
Clifford RimBrazilIvan Magalhaes PROPOSAL
Misaki RoysterAustraliaElwin Sharvill NEW
Jeanfrancois VenereIndiaOnyama Limba QUALIFIED
Francesco ShinkoGermanyStephen Shaw PROPOSAL
Kaitlin OstroskyUnited KingdomStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaSpainIoni Bowcher UNQUALIFIED
Faith GillianItalyIoni Bowcher PROPOSAL
Clifford RimFranceAsiya Javayant NEGOTIATION
Faith GillianSpainOnyama Limba RENEWAL
Emily WhobreyCanadaIvan Magalhaes NEGOTIATION
Cody SaylorsGermanyStephen Shaw NEW
Jeanfrancois VenereCanadaElwin Sharvill NEW
Julie StensethCanadaStephen Shaw QUALIFIED
Clifford RimRussiaIoni Bowcher QUALIFIED
Mayumi KolmetzGermanyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydUnited Kingdom2026-05-20Feiner Bros PROPOSAL33Stephen Shaw
1001Jennifer AmigonFrance2026-05-24Morlong Associates PROPOSAL8Ioni Bowcher
1002Kaitlin OstroskyArgentina2026-05-25Printing Dimensions UNQUALIFIED95Ivan Magalhaes
1003Ivar PaprockiSpain2026-05-18Chanay, Jeffrey A Esq UNQUALIFIED31Amy Elsner
1004Adams MorascaCanada2026-05-20King, Christopher A Esq PROPOSAL1Ioni Bowcher
1005Tony FollerArgentina2026-05-22Printing Dimensions RENEWAL94Ivan Magalhaes
1006Aika InouyeFrance2026-05-24Commercial Press UNQUALIFIED22Amy Elsner
1007Juan WieserAustralia2026-05-27Commercial Press NEGOTIATION15Bernardo Dominic
1008Mujtaba NickaGermany2026-06-08Morlong Associates NEGOTIATION85Anna Fali
1009Alejandro PerinFrance2026-05-24Printing Dimensions RENEWAL47Amy Elsner
1010Emily WhobreyUnited Kingdom2026-05-22Feiner Bros NEGOTIATION76Elwin Sharvill
1011Julie StensethBrazil2026-05-17Rousseaux, Michael Esq NEGOTIATION10Ioni Bowcher
1012Octavia MaletIndia2026-06-02Dorl, James J Esq NEGOTIATION56Bernardo Dominic
1013Leja CaldareraCanada2026-05-22Printing Dimensions UNQUALIFIED8Ivan Magalhaes
1014Greenwood BologniaIndia2026-06-13Feltz Printing Service PROPOSAL63Ivan Magalhaes
1015Stacey MacleadJapan2026-06-05Feiner Bros PROPOSAL93Elwin Sharvill
1016Clifford RimIndia2026-06-02Chapman, Ross E Esq NEGOTIATION70Stephen Shaw
1017Darci PoquetteFrance2026-06-04Truhlar And Truhlar Attys NEW9Xuxue Feng
1018Faith GillianIndia2026-05-23Morlong Associates NEW77Ivan Magalhaes
1019Jennifer AmigonRussia2026-05-23Chanay, Jeffrey A Esq PROPOSAL16Stephen Shaw
1020Rodrigues CampainUnited Kingdom2026-06-07Chapman, Ross E Esq NEGOTIATION79Onyama Limba
1021Arvin AlbaresFrance2026-06-05Feiner Bros NEGOTIATION14Anna Fali
1022Salvatore StockhamIndia2026-05-21Benton, John B Jr PROPOSAL64Amy Elsner
1023Mujtaba NickaGermany2026-05-18Printing Dimensions NEGOTIATION66Asiya Javayant
1024Arvin AlbaresAustralia2026-05-17Printing Dimensions QUALIFIED34Ioni Bowcher
1025Emily WhobreyArgentina2026-05-19Truhlar And Truhlar Attys QUALIFIED71Anna Fali
1026Mayumi KolmetzAustralia2026-05-23Chapman, Ross E Esq PROPOSAL15Ioni Bowcher
1027Julie StensethItaly2026-06-13Morlong Associates RENEWAL70Stephen Shaw
1028Claire TollnerArgentina2026-05-23Chapman, Ross E Esq PROPOSAL26Onyama Limba
1029Kaitlin OstroskyIndia2026-05-26King, Christopher A Esq QUALIFIED95Xuxue Feng
1030Octavia MaletArgentina2026-06-01Benton, John B Jr PROPOSAL38Bernardo Dominic
1031Aruna FigeroaAustralia2026-05-18Chanay, Jeffrey A Esq NEW54Asiya Javayant
1032Rodrigues CampainUnited Kingdom2026-05-23Feltz Printing Service PROPOSAL15Stephen Shaw
1033Francesco ShinkoCanada2026-05-22Feltz Printing Service NEGOTIATION8Asiya Javayant
1034Faith GillianSpain2026-05-23Commercial Press RENEWAL66Elwin Sharvill
1035Deepesh ChuiJapan2026-05-19Morlong Associates NEGOTIATION49Asiya Javayant
1036Ashley DoeFrance2026-06-11Benton, John B Jr NEGOTIATION1Elwin Sharvill
1037Arvin AlbaresItaly2026-06-04Dorl, James J Esq NEGOTIATION69Ivan Magalhaes
1038Darci PoquetteRussia2026-05-21Rousseaux, Michael Esq QUALIFIED26Stephen Shaw
1039Clifford RimAustralia2026-06-13Truhlar And Truhlar Attys PROPOSAL58Anna Fali
1040Faith GillianUnited Kingdom2026-06-09Rangoni Of Florence NEW79Onyama Limba
1041James ButtRussia2026-05-24Printing Dimensions UNQUALIFIED70Stephen Shaw
1042Smith GlickCanada2026-05-31Printing Dimensions NEW5Anna Fali
1043Jones VocelkaUnited Kingdom2026-05-31Rousseaux, Michael Esq PROPOSAL44Ioni Bowcher
1044Cody SaylorsGermany2026-06-08King, Christopher A Esq NEGOTIATION14Amy Elsner
1045Rodrigues CampainFrance2026-05-24Morlong Associates PROPOSAL23Anna Fali
1046Stacey MacleadArgentina2026-06-09Dorl, James J Esq RENEWAL97Bernardo Dominic
1047Costa DilliardArgentina2026-05-21King, Christopher A Esq RENEWAL39Stephen Shaw
1048Jones VocelkaRussia2026-05-25Chapman, Ross E Esq PROPOSAL5Elwin Sharvill
1049Mayumi KolmetzRussia2026-05-18Morlong Associates NEGOTIATION87Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadArgentinaIvan Magalhaes QUALIFIED
Aditya KuskoGermanyElwin Sharvill UNQUALIFIED
Chavez BriddickFranceOnyama Limba QUALIFIED
Adams MorascaCanadaIvan Magalhaes QUALIFIED
Munro FerenczArgentinaIvan Magalhaes NEGOTIATION
Tony FollerFranceStephen Shaw RENEWAL
Nicolas IturbideBrazilAsiya Javayant QUALIFIED
Octavia MaletIndiaBernardo Dominic PROPOSAL
Costa DilliardUnited KingdomXuxue Feng UNQUALIFIED
Murillo MaletSpainOnyama Limba QUALIFIED
Aruna FigeroaArgentinaAsiya Javayant RENEWAL
Maisha RulapaughItalyBernardo Dominic NEGOTIATION
Maria MarrierJapanAsiya Javayant RENEWAL
Aruna FigeroaJapanBernardo Dominic UNQUALIFIED
Wickens NestleGermanyElwin Sharvill RENEWAL
David DarakjyJapanXuxue Feng QUALIFIED
Jones VocelkaUnited KingdomStephen Shaw RENEWAL
Faith GillianFranceOnyama Limba QUALIFIED
Adams MorascaRussiaAmy Elsner UNQUALIFIED
Octavia MaletSpainAsiya Javayant PROPOSAL
Jefferson SchemmerCanadaStephen Shaw NEW
Chavez BriddickUnited KingdomIoni Bowcher NEW
Jeanfrancois VenereSpainIvan Magalhaes QUALIFIED
Ivar PaprockiSpainBernardo Dominic QUALIFIED
Alejandro PerinGermanyElwin Sharvill QUALIFIED
Arvin AlbaresJapanOnyama Limba NEW
Antonio CaudyItalyXuxue Feng NEGOTIATION
Arvin AlbaresUnited KingdomOnyama Limba RENEWAL
Jones VocelkaIndiaXuxue Feng NEGOTIATION
Francesco ShinkoIndiaXuxue Feng QUALIFIED
Claire TollnerIndiaStephen Shaw NEW
Greenwood BologniaJapanElwin Sharvill UNQUALIFIED
Aruna FigeroaGermanyBernardo Dominic QUALIFIED
Ricardo GauchoBrazilAmy Elsner NEW
Maria MarrierAustraliaAmy Elsner RENEWAL
Adams MorascaFranceIoni Bowcher QUALIFIED
Smith GlickArgentinaAmy Elsner UNQUALIFIED
Alejandro PerinItalyStephen Shaw UNQUALIFIED
Deepesh ChuiBrazilAsiya Javayant PROPOSAL
Ivar PaprockiJapanAnna Fali UNQUALIFIED
Nicolas IturbideBrazilIvan Magalhaes NEW
Clifford RimItalyIoni Bowcher NEW
Francesco ShinkoItalyAnna Fali NEGOTIATION
Tony FollerUnited KingdomBernardo Dominic NEGOTIATION
David DarakjyGermanyIvan Magalhaes RENEWAL
Claire TollnerAustraliaBernardo Dominic PROPOSAL
Costa DilliardBrazilIvan Magalhaes NEGOTIATION
Arvin AlbaresBrazilIvan Magalhaes NEGOTIATION
Cody SaylorsUnited KingdomOnyama Limba RENEWAL
Jones VocelkaIndiaIoni Bowcher QUALIFIED
Frozen Columns
Name
Ricardo Gaucho
David Darakjy
Kaitlin Ostrosky
Aruna Figeroa
Octavia Malet
Leja Caldarera
Morrow Ruta
Faith Gillian
Isabel Bowley
Alejandro Perin
Wickens Nestle
Ashley Doe
Deepesh Chui
Murillo Malet
Faith Gillian
Chavez Briddick
Ivar Paprocki
Maisha Rulapaugh
Aruna Figeroa
Murillo Malet
Smith Glick
Leja Caldarera
Silvio Slusarski
Antonio Caudy
Murillo Malet
Salvatore Stockham
Ashley Doe
Johnson Sergi
Jeanfrancois Venere
Nicolas Iturbide
Murillo Malet
Clifford Rim
Aditya Kusko
Darci Poquette
Costa Dilliard
David Darakjy
Maria Marrier
Tony Foller
Aruna Figeroa
Maria Marrier
Stacey Maclead
Johnson Sergi
Jefferson Schemmer
Clifford Rim
Arvin Albares
Jefferson Schemmer
Misaki Royster
Francesco Shinko
Juan Wieser
Costa Dilliard
IdCountryDate
1000Russia2026-05-28
1001Italy2026-06-09
1002Argentina2026-06-13
1003Brazil2026-05-20
1004United Kingdom2026-06-05
1005Australia2026-05-21
1006Germany2026-05-17
1007Canada2026-05-22
1008Argentina2026-06-08
1009Russia2026-05-28
1010India2026-05-23
1011Australia2026-05-24
1012Canada2026-05-22
1013Germany2026-05-28
1014Spain2026-05-21
1015Argentina2026-06-05
1016Australia2026-05-31
1017United Kingdom2026-05-28
1018United Kingdom2026-06-11
1019Spain2026-05-26
1020Brazil2026-05-19
1021Australia2026-06-14
1022Canada2026-05-18
1023Australia2026-05-20
1024United Kingdom2026-05-22
1025France2026-06-06
1026Australia2026-05-22
1027Canada2026-05-27
1028India2026-05-30
1029Brazil2026-06-11
1030Japan2026-05-22
1031India2026-05-23
1032United Kingdom2026-05-19
1033Italy2026-06-01
1034Brazil2026-05-17
1035Argentina2026-05-30
1036Canada2026-05-18
1037Germany2026-06-07
1038Brazil2026-05-30
1039Japan2026-06-14
1040France2026-05-29
1041Canada2026-05-19
1042Germany2026-05-31
1043Brazil2026-05-30
1044United Kingdom2026-05-17
1045Brazil2026-05-23
1046Australia2026-06-15
1047Japan2026-06-11
1048Germany2026-06-09
1049Germany2026-06-05

On-Demand Data

NameIdCountryDate
Leon Oldroyd1000Italy2026-06-14
Kaitlin Ostrosky1001India2026-06-05
Mujtaba Nicka1002Argentina2026-06-13
Aruna Figeroa1003Brazil2026-06-11
Isabel Bowley1004Brazil2026-06-15
Maria Marrier1005Spain2026-06-06
Aruna Figeroa1006Brazil2026-06-09
Wickens Nestle1007United Kingdom2026-06-13
Jennifer Amigon1008United Kingdom2026-06-08
Jones Vocelka1009Canada2026-05-23
Antonio Caudy1010Spain2026-06-06
Sinclair Waycott1011India2026-06-01
Silvio Slusarski1012Argentina2026-05-30
Claire Tollner1013Russia2026-06-10
Clifford Rim1014Japan2026-06-11
Murillo Malet1015Brazil2026-05-17
Julie Stenseth1016Australia2026-06-02
Antonio Caudy1017Italy2026-05-21
Nicolas Iturbide1018France2026-06-06
Jennifer Amigon1019France2026-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiCanadaBernardo Dominic RENEWAL
Aruna FigeroaFranceAsiya Javayant QUALIFIED
Greenwood BologniaFranceOnyama Limba PROPOSAL
Morrow RutaAustraliaBernardo Dominic PROPOSAL
Faith GillianFranceOnyama Limba QUALIFIED
Salvatore StockhamSpainAnna Fali PROPOSAL
Nicolas IturbideJapanAmy Elsner PROPOSAL
Alejandro PerinJapanAnna Fali QUALIFIED
Salvatore StockhamBrazilStephen Shaw UNQUALIFIED
Jones VocelkaGermanyOnyama Limba NEGOTIATION
Leon OldroydAustraliaIoni Bowcher NEGOTIATION
Leja CaldareraIndiaAnna Fali QUALIFIED
Juan WieserCanadaIvan Magalhaes NEW
Julie StensethAustraliaAmy Elsner UNQUALIFIED
Maria MarrierArgentinaIvan Magalhaes PROPOSAL
Salvatore StockhamAustraliaElwin Sharvill PROPOSAL
Costa DilliardAustraliaElwin Sharvill NEGOTIATION
Misaki RoysterItalyAsiya Javayant RENEWAL
Maisha RulapaughArgentinaOnyama Limba QUALIFIED
Kaitlin OstroskyUnited KingdomStephen Shaw NEGOTIATION
Silvio SlusarskiArgentinaXuxue Feng NEW
Munro FerenczJapanOnyama Limba NEGOTIATION
Juan WieserSpainIvan Magalhaes NEW
James ButtAustraliaXuxue Feng NEGOTIATION
Sinclair WaycottGermanyStephen Shaw RENEWAL
Wickens NestleCanadaElwin Sharvill NEGOTIATION
Darci PoquetteItalyAmy Elsner RENEWAL
Faith GillianJapanOnyama Limba PROPOSAL
Morrow RutaCanadaAsiya Javayant PROPOSAL
Arvin AlbaresArgentinaXuxue Feng RENEWAL
Nicolas IturbideFranceXuxue Feng RENEWAL
David DarakjyBrazilXuxue Feng UNQUALIFIED
Julie StensethBrazilIoni Bowcher RENEWAL
Jefferson SchemmerSpainStephen Shaw NEGOTIATION
Kadeem FlosiIndiaAnna Fali RENEWAL
Juan WieserJapanBernardo Dominic UNQUALIFIED
Arvin AlbaresJapanStephen Shaw UNQUALIFIED
Greenwood BologniaJapanAmy Elsner NEW
Adams MorascaRussiaAsiya Javayant 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>