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
Kadeem FlosiGermanyAsiya Javayant NEGOTIATION
Stacey MacleadFranceIvan Magalhaes QUALIFIED
Maria MarrierIndiaAmy Elsner QUALIFIED
Tony FollerSpainIvan Magalhaes RENEWAL
Sinclair WaycottCanadaAsiya Javayant UNQUALIFIED
Greenwood BologniaSpainAmy Elsner QUALIFIED
Murillo MaletIndiaIvan Magalhaes QUALIFIED
Chavez BriddickRussiaElwin Sharvill NEW
Ashley DoeFranceIoni Bowcher RENEWAL
Mujtaba NickaItalyIvan Magalhaes RENEWAL
Francesco ShinkoItalyElwin Sharvill RENEWAL
Tony FollerUnited KingdomAnna Fali QUALIFIED
Kaitlin OstroskyGermanyElwin Sharvill UNQUALIFIED
Octavia MaletAustraliaAmy Elsner NEGOTIATION
Misaki RoysterArgentinaAnna Fali PROPOSAL
Claire TollnerFranceAmy Elsner RENEWAL
Morrow RutaAustraliaXuxue Feng RENEWAL
Adams MorascaUnited KingdomAsiya Javayant PROPOSAL
Ricardo GauchoItalyElwin Sharvill QUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng QUALIFIED
Kadeem FlosiSpainStephen Shaw RENEWAL
Aditya KuskoBrazilStephen Shaw RENEWAL
Cody SaylorsSpainBernardo Dominic NEW
Claire TollnerGermanyXuxue Feng RENEWAL
Salvatore StockhamSpainAmy Elsner QUALIFIED
Leja CaldareraIndiaXuxue Feng QUALIFIED
Salvatore StockhamItalyAmy Elsner NEGOTIATION
Ivar PaprockiBrazilAmy Elsner UNQUALIFIED
Adams MorascaIndiaElwin Sharvill UNQUALIFIED
Maria MarrierArgentinaIoni Bowcher RENEWAL
James ButtFranceBernardo Dominic NEGOTIATION
Murillo MaletUnited KingdomXuxue Feng PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher QUALIFIED
Sinclair WaycottFranceIvan Magalhaes PROPOSAL
Aruna FigeroaGermanyAsiya Javayant PROPOSAL
Adams MorascaSpainXuxue Feng NEW
Sinclair WaycottArgentinaBernardo Dominic PROPOSAL
Leon OldroydSpainAsiya Javayant NEW
Wickens NestleJapanBernardo Dominic QUALIFIED
Nicolas IturbideIndiaAmy Elsner QUALIFIED
Julie StensethGermanyXuxue Feng NEW
Greenwood BologniaIndiaAsiya Javayant UNQUALIFIED
Aruna FigeroaFranceBernardo Dominic UNQUALIFIED
Nicolas IturbideCanadaBernardo Dominic NEGOTIATION
Kadeem FlosiAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyBrazilAnna Fali UNQUALIFIED
Costa DilliardSpainAmy Elsner RENEWAL
Stacey MacleadCanadaXuxue Feng PROPOSAL
Morrow RutaSpainAmy Elsner NEGOTIATION
Smith GlickGermanyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro PerinItalyIvan Magalhaes NEW
Stacey MacleadCanadaOnyama Limba UNQUALIFIED
Wickens NestleUnited KingdomAnna Fali UNQUALIFIED
Silvio SlusarskiJapanIvan Magalhaes UNQUALIFIED
Munro FerenczIndiaAsiya Javayant NEW
Stacey MacleadAustraliaOnyama Limba NEW
Salvatore StockhamGermanyStephen Shaw UNQUALIFIED
Claire TollnerRussiaAnna Fali UNQUALIFIED
Ashley DoeFranceIoni Bowcher NEGOTIATION
Salvatore StockhamBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickAustralia2025-10-08Buckley Miller Wright UNQUALIFIED47Stephen Shaw
1001Ashley DoeRussia2025-10-17Rousseaux, Michael Esq UNQUALIFIED49Xuxue Feng
1002Costa DilliardUnited Kingdom2025-10-16Buckley Miller Wright QUALIFIED91Amy Elsner
1003Emily WhobreySpain2025-10-15Truhlar And Truhlar Attys QUALIFIED0Xuxue Feng
1004Darci PoquetteUnited Kingdom2025-10-06Dorl, James J Esq RENEWAL20Ioni Bowcher
1005Kadeem FlosiRussia2025-10-07King, Christopher A Esq NEW73Anna Fali
1006Mayumi KolmetzArgentina2025-10-06Chapman, Ross E Esq QUALIFIED54Onyama Limba
1007Johnson SergiRussia2025-10-27Chanay, Jeffrey A Esq RENEWAL49Stephen Shaw
1008Aika InouyeUnited Kingdom2025-10-12Feiner Bros NEW7Asiya Javayant
1009Jeanfrancois VenereAustralia2025-10-10Feiner Bros UNQUALIFIED82Onyama Limba
1010Sinclair WaycottIndia2025-10-14Dorl, James J Esq NEW14Elwin Sharvill
1011Maisha RulapaughSpain2025-10-05Rousseaux, Michael Esq UNQUALIFIED80Amy Elsner
1012Izzy GarufiFrance2025-10-24Chapman, Ross E Esq QUALIFIED3Ioni Bowcher
1013Misaki RoysterBrazil2025-10-25Feiner Bros UNQUALIFIED98Stephen Shaw
1014Nicolas IturbideRussia2025-10-12Feiner Bros NEW66Ivan Magalhaes
1015Leja CaldareraUnited Kingdom2025-10-10Chanay, Jeffrey A Esq PROPOSAL25Ivan Magalhaes
1016Nicolas IturbideJapan2025-10-29Buckley Miller Wright NEW69Xuxue Feng
1017Maisha RulapaughAustralia2025-11-02Dorl, James J Esq QUALIFIED0Onyama Limba
1018Jennifer AmigonRussia2025-10-25Rangoni Of Florence NEGOTIATION16Asiya Javayant
1019Emily WhobreySpain2025-10-11Rousseaux, Michael Esq NEGOTIATION86Stephen Shaw
1020Alejandro PerinFrance2025-10-07Feltz Printing Service PROPOSAL51Amy Elsner
1021Kaitlin OstroskyRussia2025-10-15Printing Dimensions QUALIFIED32Xuxue Feng
1022Leja CaldareraAustralia2025-10-30Feiner Bros NEGOTIATION59Elwin Sharvill
1023Silvio SlusarskiArgentina2025-10-17Morlong Associates RENEWAL67Xuxue Feng
1024Faith GillianIndia2025-10-21Dorl, James J Esq UNQUALIFIED91Asiya Javayant
1025Smith GlickBrazil2025-10-22Buckley Miller Wright NEGOTIATION44Ivan Magalhaes
1026Greenwood BologniaGermany2025-10-09Rousseaux, Michael Esq NEGOTIATION63Asiya Javayant
1027Ivar PaprockiBrazil2025-10-13Dorl, James J Esq PROPOSAL57Ivan Magalhaes
1028Kadeem FlosiArgentina2025-11-01Rousseaux, Michael Esq NEW27Asiya Javayant
1029Arvin AlbaresJapan2025-11-02Benton, John B Jr NEGOTIATION36Bernardo Dominic
1030Faith GillianGermany2025-10-18Benton, John B Jr NEW95Elwin Sharvill
1031Maria MarrierIndia2025-10-19Rangoni Of Florence NEW71Bernardo Dominic
1032Mujtaba NickaJapan2025-10-23Rangoni Of Florence PROPOSAL87Stephen Shaw
1033Misaki RoysterSpain2025-10-26Feltz Printing Service NEW52Asiya Javayant
1034Costa DilliardItaly2025-10-16Morlong Associates NEW40Onyama Limba
1035Chavez BriddickJapan2025-10-21Chapman, Ross E Esq UNQUALIFIED24Onyama Limba
1036Costa DilliardAustralia2025-10-07Commercial Press RENEWAL49Onyama Limba
1037Jennifer AmigonArgentina2025-10-21Dorl, James J Esq PROPOSAL25Anna Fali
1038Isabel BowleyUnited Kingdom2025-11-01Feiner Bros RENEWAL79Ioni Bowcher
1039Faith GillianGermany2025-10-06Truhlar And Truhlar Attys RENEWAL17Bernardo Dominic
1040Murillo MaletUnited Kingdom2025-10-17King, Christopher A Esq RENEWAL76Anna Fali
1041Emily WhobreyIndia2025-10-06Printing Dimensions QUALIFIED93Bernardo Dominic
1042Jones VocelkaGermany2025-10-29Chapman, Ross E Esq QUALIFIED85Ioni Bowcher
1043Silvio SlusarskiFrance2025-10-28King, Christopher A Esq NEW28Xuxue Feng
1044Alejandro PerinUnited Kingdom2025-10-10Chanay, Jeffrey A Esq NEW9Amy Elsner
1045Clifford RimArgentina2025-10-15Feltz Printing Service RENEWAL21Onyama Limba
1046Morrow RutaIndia2025-10-28Rousseaux, Michael Esq NEGOTIATION27Onyama Limba
1047Emily WhobreyArgentina2025-10-09Morlong Associates NEGOTIATION86Onyama Limba
1048David DarakjyGermany2025-10-04Buckley Miller Wright RENEWAL7Stephen Shaw
1049Kaitlin OstroskyItaly2025-10-26Rousseaux, Michael Esq PROPOSAL44Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonGermanyOnyama Limba NEW
Jones VocelkaUnited KingdomElwin Sharvill NEW
Tony FollerAustraliaOnyama Limba RENEWAL
Alejandro PerinRussiaElwin Sharvill PROPOSAL
Antonio CaudyGermanyAnna Fali NEW
Adams MorascaFranceAsiya Javayant RENEWAL
Jeanfrancois VenereJapanElwin Sharvill UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher RENEWAL
Stacey MacleadSpainElwin Sharvill NEGOTIATION
James ButtBrazilStephen Shaw RENEWAL
Silvio SlusarskiIndiaXuxue Feng UNQUALIFIED
Francesco ShinkoBrazilStephen Shaw PROPOSAL
Greenwood BologniaArgentinaOnyama Limba RENEWAL
Murillo MaletCanadaIoni Bowcher UNQUALIFIED
Julie StensethFranceElwin Sharvill QUALIFIED
Clifford RimArgentinaAmy Elsner RENEWAL
Tony FollerFranceStephen Shaw PROPOSAL
Ashley DoeFranceAsiya Javayant NEW
Tony FollerUnited KingdomXuxue Feng NEGOTIATION
Claire TollnerBrazilAmy Elsner QUALIFIED
Julie StensethUnited KingdomAnna Fali NEGOTIATION
Darci PoquetteAustraliaBernardo Dominic PROPOSAL
Emily WhobreyGermanyElwin Sharvill QUALIFIED
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Morrow RutaAustraliaOnyama Limba PROPOSAL
Leja CaldareraItalyStephen Shaw NEGOTIATION
Aruna FigeroaFranceXuxue Feng PROPOSAL
Silvio SlusarskiAustraliaOnyama Limba RENEWAL
Rodrigues CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar PaprockiSpainAnna Fali UNQUALIFIED
Francesco ShinkoAustraliaElwin Sharvill RENEWAL
Arvin AlbaresJapanIoni Bowcher QUALIFIED
Octavia MaletSpainIoni Bowcher NEW
Kadeem FlosiGermanyBernardo Dominic NEGOTIATION
Maisha RulapaughAustraliaXuxue Feng QUALIFIED
Emily WhobreyCanadaBernardo Dominic UNQUALIFIED
Maria MarrierCanadaXuxue Feng QUALIFIED
Kadeem FlosiUnited KingdomBernardo Dominic QUALIFIED
Aditya KuskoGermanyIvan Magalhaes NEGOTIATION
Nicolas IturbideItalyAsiya Javayant NEGOTIATION
Stacey MacleadRussiaIoni Bowcher NEGOTIATION
Murillo MaletBrazilIvan Magalhaes QUALIFIED
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw NEW
Juan WieserGermanyOnyama Limba NEW
Alejandro PerinArgentinaXuxue Feng UNQUALIFIED
Mujtaba NickaSpainAnna Fali PROPOSAL
Wickens NestleBrazilAsiya Javayant UNQUALIFIED
Jefferson SchemmerFranceIoni Bowcher PROPOSAL
Adams MorascaUnited KingdomOnyama Limba QUALIFIED
Frozen Columns
Name
Ricardo Gaucho
Aika Inouye
Morrow Ruta
Jeanfrancois Venere
Leon Oldroyd
Smith Glick
Mayumi Kolmetz
Chavez Briddick
Jones Vocelka
Claire Tollner
Chavez Briddick
Stacey Maclead
Salvatore Stockham
Johnson Sergi
Faith Gillian
Morrow Ruta
Isabel Bowley
Jones Vocelka
Nicolas Iturbide
Greenwood Bolognia
Darci Poquette
Ivar Paprocki
Ashley Doe
Smith Glick
Sinclair Waycott
Leon Oldroyd
Aika Inouye
Mujtaba Nicka
Aditya Kusko
Morrow Ruta
Jefferson Schemmer
Deepesh Chui
Claire Tollner
Ricardo Gaucho
Arvin Albares
Deepesh Chui
Ricardo Gaucho
Octavia Malet
Emily Whobrey
Silvio Slusarski
Misaki Royster
Arvin Albares
Tony Foller
Jennifer Amigon
Darci Poquette
Stacey Maclead
Jennifer Amigon
Silvio Slusarski
Maisha Rulapaugh
Francesco Shinko
IdCountryDate
1000Brazil2025-10-06
1001India2025-10-08
1002United Kingdom2025-10-23
1003Canada2025-10-23
1004Australia2025-10-04
1005Germany2025-10-14
1006Brazil2025-10-08
1007Russia2025-10-23
1008Canada2025-10-10
1009India2025-10-30
1010Germany2025-11-02
1011Italy2025-10-27
1012Italy2025-11-02
1013Germany2025-10-16
1014Brazil2025-11-01
1015Japan2025-10-15
1016Canada2025-10-27
1017India2025-10-08
1018Germany2025-10-17
1019Brazil2025-10-20
1020Australia2025-11-02
1021Spain2025-10-07
1022India2025-10-15
1023India2025-10-24
1024Brazil2025-10-23
1025France2025-10-20
1026United Kingdom2025-10-22
1027Russia2025-11-02
1028Argentina2025-10-21
1029Brazil2025-10-29
1030Australia2025-10-22
1031Argentina2025-10-05
1032Russia2025-10-11
1033Japan2025-11-01
1034Japan2025-10-18
1035Canada2025-10-24
1036Brazil2025-10-04
1037Russia2025-10-15
1038Germany2025-10-18
1039Canada2025-10-07
1040Australia2025-10-24
1041France2025-11-01
1042Russia2025-10-22
1043Japan2025-10-11
1044Brazil2025-10-07
1045Brazil2025-10-31
1046Brazil2025-10-27
1047Russia2025-10-10
1048Spain2025-10-20
1049Canada2025-10-10

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Italy2025-10-21
Misaki Royster1001Spain2025-10-05
Ricardo Gaucho1002Australia2025-10-18
Clifford Rim1003Germany2025-10-30
Wickens Nestle1004Australia2025-11-02
Izzy Garufi1005Spain2025-10-15
Antonio Caudy1006Japan2025-10-29
Clifford Rim1007France2025-10-07
Jennifer Amigon1008Spain2025-10-24
Silvio Slusarski1009Argentina2025-10-24
Morrow Ruta1010Japan2025-10-31
Sinclair Waycott1011Japan2025-11-02
Faith Gillian1012Spain2025-10-21
Greenwood Bolognia1013Italy2025-10-10
Sinclair Waycott1014Japan2025-11-02
Maisha Rulapaugh1015Japan2025-10-18
Rodrigues Campain1016Spain2025-10-26
Morrow Ruta1017Canada2025-10-11
Aika Inouye1018Argentina2025-10-15
Greenwood Bolognia1019France2025-11-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeFranceAnna Fali NEW
Misaki RoysterRussiaXuxue Feng NEGOTIATION
Jeanfrancois VenereCanadaOnyama Limba PROPOSAL
Clifford RimJapanXuxue Feng PROPOSAL
Murillo MaletIndiaAnna Fali UNQUALIFIED
Johnson SergiAustraliaXuxue Feng UNQUALIFIED
Costa DilliardItalyElwin Sharvill RENEWAL
Octavia MaletAustraliaOnyama Limba NEW
Faith GillianIndiaAnna Fali QUALIFIED
Claire TollnerItalyBernardo Dominic PROPOSAL
David DarakjyIndiaStephen Shaw QUALIFIED
Aditya KuskoItalyStephen Shaw QUALIFIED
Salvatore StockhamSpainStephen Shaw QUALIFIED
Isabel BowleyBrazilBernardo Dominic QUALIFIED
Jefferson SchemmerItalyAnna Fali NEW
Ivar PaprockiGermanyElwin Sharvill QUALIFIED
Jones VocelkaRussiaBernardo Dominic NEGOTIATION
Francesco ShinkoUnited KingdomAnna Fali RENEWAL
James ButtIndiaAsiya Javayant QUALIFIED
Claire TollnerSpainAsiya Javayant UNQUALIFIED
Clifford RimItalyBernardo Dominic PROPOSAL
Aika InouyeSpainAnna Fali NEGOTIATION
Kaitlin OstroskyRussiaBernardo Dominic PROPOSAL
Alejandro PerinSpainXuxue Feng NEW
Maisha RulapaughCanadaXuxue Feng UNQUALIFIED
Aika InouyeBrazilAnna Fali QUALIFIED
Julie StensethArgentinaBernardo Dominic RENEWAL
Clifford RimUnited KingdomElwin Sharvill UNQUALIFIED
Julie StensethJapanIoni Bowcher NEGOTIATION
Aditya KuskoFranceXuxue Feng UNQUALIFIED
Morrow RutaFranceBernardo Dominic UNQUALIFIED
Ashley DoeIndiaBernardo Dominic PROPOSAL
Julie StensethJapanBernardo Dominic PROPOSAL
Arvin AlbaresItalyOnyama Limba QUALIFIED
Misaki RoysterFranceBernardo Dominic RENEWAL
Isabel BowleyJapanAsiya Javayant NEGOTIATION
Clifford RimAustraliaStephen Shaw PROPOSAL
Stacey MacleadJapanIoni Bowcher RENEWAL
Arvin AlbaresJapanAsiya Javayant PROPOSAL
Kaitlin OstroskyJapanAmy Elsner 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>