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
Isabel BowleyArgentinaAsiya Javayant NEGOTIATION
Rodrigues CampainArgentinaIoni Bowcher RENEWAL
Silvio SlusarskiBrazilXuxue Feng NEGOTIATION
Mujtaba NickaGermanyAnna Fali RENEWAL
Aditya KuskoSpainBernardo Dominic NEW
Kaitlin OstroskyUnited KingdomAsiya Javayant NEW
Misaki RoysterSpainBernardo Dominic UNQUALIFIED
Salvatore StockhamArgentinaAnna Fali RENEWAL
Emily WhobreyJapanElwin Sharvill RENEWAL
Adams MorascaItalyElwin Sharvill QUALIFIED
Cody SaylorsFranceElwin Sharvill QUALIFIED
James ButtCanadaAnna Fali UNQUALIFIED
Costa DilliardCanadaStephen Shaw NEGOTIATION
Rodrigues CampainCanadaIvan Magalhaes RENEWAL
Aika InouyeCanadaXuxue Feng NEW
Julie StensethFranceXuxue Feng UNQUALIFIED
Ricardo GauchoGermanyStephen Shaw NEW
Emily WhobreyRussiaElwin Sharvill RENEWAL
Wickens NestleRussiaStephen Shaw RENEWAL
Clifford RimArgentinaIvan Magalhaes RENEWAL
Jones VocelkaRussiaOnyama Limba QUALIFIED
Ashley DoeUnited KingdomIvan Magalhaes PROPOSAL
Mayumi KolmetzItalyStephen Shaw PROPOSAL
Ashley DoeGermanyAmy Elsner RENEWAL
Misaki RoysterGermanyOnyama Limba QUALIFIED
Darci PoquetteFranceOnyama Limba RENEWAL
Sinclair WaycottJapanAnna Fali QUALIFIED
Tony FollerBrazilStephen Shaw UNQUALIFIED
Maria MarrierBrazilIoni Bowcher UNQUALIFIED
Murillo MaletUnited KingdomIoni Bowcher QUALIFIED
Faith GillianArgentinaAsiya Javayant NEGOTIATION
Adams MorascaJapanAmy Elsner PROPOSAL
Tony FollerIndiaIoni Bowcher RENEWAL
Octavia MaletSpainIoni Bowcher PROPOSAL
Aika InouyeUnited KingdomXuxue Feng NEGOTIATION
Greenwood BologniaArgentinaAnna Fali RENEWAL
Maria MarrierUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzJapanElwin Sharvill NEW
David DarakjyJapanAsiya Javayant PROPOSAL
Mayumi KolmetzGermanyIoni Bowcher NEW
Antonio CaudySpainOnyama Limba QUALIFIED
Mayumi KolmetzSpainElwin Sharvill QUALIFIED
Jefferson SchemmerAustraliaIvan Magalhaes PROPOSAL
Salvatore StockhamItalyAnna Fali NEW
Francesco ShinkoArgentinaAnna Fali NEW
Aika InouyeGermanyStephen Shaw NEW
Alejandro PerinBrazilAmy Elsner NEW
Tony FollerJapanXuxue Feng NEW
Silvio SlusarskiRussiaOnyama Limba NEW
Leja CaldareraFranceElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottCanadaStephen Shaw QUALIFIED
Emily WhobreyBrazilElwin Sharvill UNQUALIFIED
Francesco ShinkoJapanAnna Fali QUALIFIED
Aruna FigeroaItalyAsiya Javayant NEGOTIATION
Greenwood BologniaItalyOnyama Limba UNQUALIFIED
David DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Smith GlickIndiaStephen Shaw PROPOSAL
David DarakjyBrazilBernardo Dominic NEGOTIATION
Aika InouyeUnited KingdomXuxue Feng QUALIFIED
Octavia MaletUnited KingdomAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterItaly2026-06-09Feltz Printing Service PROPOSAL53Xuxue Feng
1001Rodrigues CampainSpain2026-05-31Feiner Bros UNQUALIFIED88Asiya Javayant
1002Greenwood BologniaRussia2026-05-26Chemel, James L Cpa RENEWAL24Onyama Limba
1003Costa DilliardIndia2026-06-20Rangoni Of Florence UNQUALIFIED91Stephen Shaw
1004Mayumi KolmetzBrazil2026-05-31Dorl, James J Esq QUALIFIED83Asiya Javayant
1005Johnson SergiCanada2026-05-24Rangoni Of Florence PROPOSAL86Anna Fali
1006Arvin AlbaresAustralia2026-06-09Dorl, James J Esq QUALIFIED59Anna Fali
1007Murillo MaletBrazil2026-05-24Printing Dimensions UNQUALIFIED80Anna Fali
1008Kaitlin OstroskySpain2026-06-17Benton, John B Jr UNQUALIFIED36Bernardo Dominic
1009Ricardo GauchoAustralia2026-05-23Feltz Printing Service NEGOTIATION39Stephen Shaw
1010Faith GillianBrazil2026-06-20Buckley Miller Wright RENEWAL11Xuxue Feng
1011Maria MarrierAustralia2026-06-15Feiner Bros NEW78Asiya Javayant
1012Salvatore StockhamItaly2026-06-09Feltz Printing Service RENEWAL53Anna Fali
1013Smith GlickUnited Kingdom2026-06-16King, Christopher A Esq NEGOTIATION50Ioni Bowcher
1014Ivar PaprockiCanada2026-06-03Commercial Press QUALIFIED71Xuxue Feng
1015Leon OldroydBrazil2026-06-13Chapman, Ross E Esq NEW39Elwin Sharvill
1016Aruna FigeroaItaly2026-06-07King, Christopher A Esq NEW45Bernardo Dominic
1017Mujtaba NickaJapan2026-06-16King, Christopher A Esq NEGOTIATION50Ioni Bowcher
1018Kadeem FlosiItaly2026-06-21Printing Dimensions NEGOTIATION39Onyama Limba
1019Morrow RutaArgentina2026-06-14Dorl, James J Esq NEW53Xuxue Feng
1020Leon OldroydCanada2026-06-04Feiner Bros NEGOTIATION97Elwin Sharvill
1021Francesco ShinkoSpain2026-06-11Chapman, Ross E Esq UNQUALIFIED48Amy Elsner
1022Ricardo GauchoRussia2026-05-24Commercial Press NEGOTIATION56Xuxue Feng
1023Juan WieserJapan2026-05-25Dorl, James J Esq NEGOTIATION4Elwin Sharvill
1024Mujtaba NickaSpain2026-06-19Morlong Associates NEW0Xuxue Feng
1025Maria MarrierUnited Kingdom2026-06-07Chapman, Ross E Esq NEGOTIATION2Bernardo Dominic
1026Adams MorascaArgentina2026-06-07Truhlar And Truhlar Attys UNQUALIFIED16Elwin Sharvill
1027Deepesh ChuiIndia2026-06-02Feltz Printing Service QUALIFIED78Bernardo Dominic
1028Aika InouyeGermany2026-06-03Benton, John B Jr PROPOSAL13Anna Fali
1029Chavez BriddickRussia2026-06-07Chapman, Ross E Esq QUALIFIED18Xuxue Feng
1030Salvatore StockhamRussia2026-05-30Benton, John B Jr PROPOSAL97Asiya Javayant
1031Francesco ShinkoRussia2026-05-27Rousseaux, Michael Esq UNQUALIFIED51Xuxue Feng
1032Ricardo GauchoBrazil2026-06-13Feiner Bros QUALIFIED52Xuxue Feng
1033Silvio SlusarskiUnited Kingdom2026-05-28Chanay, Jeffrey A Esq UNQUALIFIED16Bernardo Dominic
1034Arvin AlbaresIndia2026-06-02Chemel, James L Cpa PROPOSAL38Bernardo Dominic
1035Ivar PaprockiItaly2026-05-26Chanay, Jeffrey A Esq NEGOTIATION8Elwin Sharvill
1036Kadeem FlosiFrance2026-06-11King, Christopher A Esq QUALIFIED32Ivan Magalhaes
1037Stacey MacleadItaly2026-06-17Rangoni Of Florence QUALIFIED5Elwin Sharvill
1038Leon OldroydGermany2026-06-13Printing Dimensions UNQUALIFIED89Onyama Limba
1039Ricardo GauchoAustralia2026-06-08King, Christopher A Esq NEGOTIATION23Stephen Shaw
1040Munro FerenczGermany2026-06-11Rousseaux, Michael Esq QUALIFIED53Onyama Limba
1041Jennifer AmigonCanada2026-05-27Benton, John B Jr UNQUALIFIED78Amy Elsner
1042Octavia MaletBrazil2026-05-25Feiner Bros UNQUALIFIED61Anna Fali
1043Ivar PaprockiUnited Kingdom2026-06-03Rousseaux, Michael Esq PROPOSAL49Anna Fali
1044Darci PoquetteItaly2026-06-21Commercial Press NEW94Ioni Bowcher
1045Deepesh ChuiIndia2026-06-12Rousseaux, Michael Esq NEGOTIATION82Ioni Bowcher
1046Kaitlin OstroskyCanada2026-05-31Rousseaux, Michael Esq QUALIFIED97Xuxue Feng
1047Kaitlin OstroskyFrance2026-05-24Chemel, James L Cpa PROPOSAL63Elwin Sharvill
1048Mayumi KolmetzUnited Kingdom2026-06-06Benton, John B Jr NEGOTIATION35Ivan Magalhaes
1049Smith GlickRussia2026-05-25King, Christopher A Esq NEW79Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierItalyIoni Bowcher NEW
Isabel BowleyRussiaAnna Fali NEGOTIATION
Jefferson SchemmerIndiaAnna Fali RENEWAL
Isabel BowleyFranceAsiya Javayant NEGOTIATION
Alejandro PerinAustraliaBernardo Dominic UNQUALIFIED
Adams MorascaItalyXuxue Feng NEW
Salvatore StockhamAustraliaIoni Bowcher NEW
James ButtSpainAnna Fali RENEWAL
Adams MorascaIndiaAnna Fali QUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem FlosiJapanOnyama Limba NEGOTIATION
Julie StensethArgentinaIvan Magalhaes NEGOTIATION
Aruna FigeroaJapanXuxue Feng QUALIFIED
Aruna FigeroaIndiaXuxue Feng RENEWAL
Clifford RimCanadaBernardo Dominic PROPOSAL
Costa DilliardItalyAsiya Javayant UNQUALIFIED
Juan WieserArgentinaAsiya Javayant QUALIFIED
Antonio CaudyFranceIoni Bowcher RENEWAL
Misaki RoysterAustraliaBernardo Dominic NEW
Alejandro PerinFranceXuxue Feng NEW
Julie StensethJapanAmy Elsner UNQUALIFIED
Ivar PaprockiBrazilStephen Shaw NEW
Aika InouyeUnited KingdomElwin Sharvill PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill RENEWAL
Claire TollnerSpainAsiya Javayant NEW
Emily WhobreyFranceElwin Sharvill PROPOSAL
David DarakjyFranceElwin Sharvill QUALIFIED
Nicolas IturbideBrazilIvan Magalhaes QUALIFIED
Arvin AlbaresArgentinaAmy Elsner UNQUALIFIED
Munro FerenczGermanyAnna Fali NEW
Darci PoquetteIndiaBernardo Dominic PROPOSAL
Sinclair WaycottBrazilElwin Sharvill PROPOSAL
Emily WhobreyFranceStephen Shaw UNQUALIFIED
Deepesh ChuiItalyStephen Shaw RENEWAL
Wickens NestleAustraliaIvan Magalhaes UNQUALIFIED
Kadeem FlosiBrazilIvan Magalhaes UNQUALIFIED
Maria MarrierAustraliaIoni Bowcher UNQUALIFIED
Octavia MaletRussiaStephen Shaw PROPOSAL
Clifford RimRussiaStephen Shaw NEGOTIATION
Munro FerenczGermanyXuxue Feng RENEWAL
Faith GillianRussiaAmy Elsner NEGOTIATION
Leon OldroydUnited KingdomAmy Elsner RENEWAL
Nicolas IturbideBrazilStephen Shaw RENEWAL
Costa DilliardSpainAnna Fali NEGOTIATION
Maisha RulapaughBrazilIoni Bowcher UNQUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw QUALIFIED
Smith GlickCanadaElwin Sharvill NEW
Greenwood BologniaRussiaElwin Sharvill PROPOSAL
Darci PoquetteFranceBernardo Dominic PROPOSAL
Leon OldroydJapanElwin Sharvill PROPOSAL
Frozen Columns
Name
Antonio Caudy
Chavez Briddick
Mujtaba Nicka
Jefferson Schemmer
Mujtaba Nicka
Leon Oldroyd
Wickens Nestle
Antonio Caudy
Aika Inouye
Mayumi Kolmetz
Mujtaba Nicka
Wickens Nestle
Wickens Nestle
Octavia Malet
Julie Stenseth
Maria Marrier
Ashley Doe
Kaitlin Ostrosky
Jennifer Amigon
David Darakjy
Jefferson Schemmer
Cody Saylors
Chavez Briddick
Maisha Rulapaugh
Izzy Garufi
Ricardo Gaucho
Misaki Royster
Aditya Kusko
Smith Glick
Rodrigues Campain
Aruna Figeroa
Silvio Slusarski
Darci Poquette
Kaitlin Ostrosky
Wickens Nestle
Aruna Figeroa
Ivar Paprocki
Maisha Rulapaugh
Leon Oldroyd
Misaki Royster
Jefferson Schemmer
Emily Whobrey
Clifford Rim
Costa Dilliard
Johnson Sergi
Kaitlin Ostrosky
Isabel Bowley
Salvatore Stockham
Silvio Slusarski
Isabel Bowley
IdCountryDate
1000Brazil2026-06-10
1001Italy2026-06-01
1002France2026-06-02
1003Spain2026-06-02
1004Japan2026-06-21
1005Russia2026-06-13
1006Argentina2026-06-11
1007Argentina2026-05-27
1008France2026-06-14
1009Canada2026-06-07
1010India2026-05-24
1011Brazil2026-06-06
1012France2026-06-15
1013Australia2026-06-10
1014Russia2026-06-13
1015France2026-06-05
1016India2026-06-17
1017Argentina2026-05-23
1018France2026-06-17
1019United Kingdom2026-06-20
1020Canada2026-06-18
1021Brazil2026-05-31
1022Canada2026-06-01
1023France2026-05-26
1024Australia2026-06-17
1025France2026-06-11
1026Germany2026-05-30
1027Brazil2026-05-27
1028Italy2026-06-05
1029Russia2026-06-21
1030France2026-06-17
1031Russia2026-06-04
1032United Kingdom2026-06-20
1033Spain2026-05-25
1034India2026-06-03
1035Italy2026-06-04
1036Japan2026-06-13
1037Spain2026-05-26
1038Brazil2026-05-28
1039Brazil2026-06-13
1040Spain2026-06-03
1041Spain2026-06-15
1042Canada2026-06-15
1043Australia2026-06-21
1044Canada2026-06-18
1045United Kingdom2026-05-29
1046Spain2026-06-11
1047Italy2026-06-13
1048Germany2026-05-29
1049Argentina2026-06-20

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000France2026-06-09
Jennifer Amigon1001United Kingdom2026-06-21
Kaitlin Ostrosky1002Canada2026-06-20
Murillo Malet1003Spain2026-05-25
Munro Ferencz1004Canada2026-06-01
Darci Poquette1005Argentina2026-06-10
Smith Glick1006France2026-06-05
Ashley Doe1007India2026-05-24
Sinclair Waycott1008Russia2026-06-08
Misaki Royster1009Spain2026-06-18
Emily Whobrey1010Russia2026-06-11
Jennifer Amigon1011Russia2026-06-08
Deepesh Chui1012Italy2026-06-08
Arvin Albares1013Italy2026-05-24
Darci Poquette1014Italy2026-06-17
Mayumi Kolmetz1015United Kingdom2026-06-12
Octavia Malet1016United Kingdom2026-06-21
Deepesh Chui1017Canada2026-05-23
Mayumi Kolmetz1018Russia2026-06-16
Misaki Royster1019Russia2026-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerGermanyXuxue Feng PROPOSAL
Silvio SlusarskiArgentinaXuxue Feng NEW
Darci PoquetteIndiaIoni Bowcher PROPOSAL
Octavia MaletItalyIvan Magalhaes NEW
Smith GlickFranceBernardo Dominic UNQUALIFIED
Arvin AlbaresFranceIoni Bowcher UNQUALIFIED
Claire TollnerItalyAsiya Javayant PROPOSAL
Mujtaba NickaIndiaIvan Magalhaes PROPOSAL
Jefferson SchemmerArgentinaAsiya Javayant UNQUALIFIED
Jefferson SchemmerCanadaAnna Fali RENEWAL
Tony FollerFranceAsiya Javayant RENEWAL
Salvatore StockhamIndiaBernardo Dominic QUALIFIED
Claire TollnerUnited KingdomOnyama Limba RENEWAL
Leon OldroydArgentinaXuxue Feng QUALIFIED
Francesco ShinkoUnited KingdomXuxue Feng RENEWAL
Ivar PaprockiItalyAmy Elsner QUALIFIED
Darci PoquetteItalyAmy Elsner UNQUALIFIED
Adams MorascaCanadaAsiya Javayant NEGOTIATION
Kadeem FlosiFranceXuxue Feng RENEWAL
Misaki RoysterBrazilOnyama Limba UNQUALIFIED
Mayumi KolmetzBrazilXuxue Feng RENEWAL
James ButtJapanAsiya Javayant NEGOTIATION
Juan WieserAustraliaBernardo Dominic NEW
Ashley DoeItalyIoni Bowcher NEW
Maisha RulapaughBrazilXuxue Feng NEGOTIATION
Deepesh ChuiRussiaAsiya Javayant PROPOSAL
Jefferson SchemmerRussiaIoni Bowcher NEGOTIATION
Costa DilliardUnited KingdomIoni Bowcher PROPOSAL
Darci PoquetteSpainAnna Fali UNQUALIFIED
Mujtaba NickaJapanElwin Sharvill PROPOSAL
Darci PoquetteJapanStephen Shaw NEW
Faith GillianGermanyBernardo Dominic UNQUALIFIED
Ashley DoeIndiaOnyama Limba QUALIFIED
Darci PoquetteArgentinaXuxue Feng UNQUALIFIED
Isabel BowleyRussiaIvan Magalhaes NEGOTIATION
Misaki RoysterRussiaXuxue Feng NEGOTIATION
Johnson SergiSpainXuxue Feng NEW
Johnson SergiCanadaOnyama Limba PROPOSAL
Jennifer AmigonJapanBernardo Dominic UNQUALIFIED
Kadeem FlosiUnited KingdomOnyama Limba RENEWAL

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