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 CampainCanadaBernardo Dominic RENEWAL
Stacey MacleadUnited KingdomIoni Bowcher RENEWAL
Munro FerenczAustraliaBernardo Dominic UNQUALIFIED
Murillo MaletFranceAsiya Javayant QUALIFIED
Johnson SergiUnited KingdomIoni Bowcher NEGOTIATION
Aditya KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo GauchoRussiaAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomStephen Shaw RENEWAL
Aika InouyeRussiaOnyama Limba NEW
Jeanfrancois VenereBrazilStephen Shaw RENEWAL
Octavia MaletBrazilIoni Bowcher QUALIFIED
Izzy GarufiIndiaAnna Fali NEW
James ButtItalyOnyama Limba NEW
Leon OldroydUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali NEW
Mayumi KolmetzGermanyStephen Shaw NEW
James ButtUnited KingdomIvan Magalhaes PROPOSAL
Stacey MacleadBrazilAnna Fali QUALIFIED
Leon OldroydBrazilOnyama Limba QUALIFIED
Munro FerenczBrazilIoni Bowcher UNQUALIFIED
Misaki RoysterSpainAsiya Javayant NEW
Francesco ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Nicolas IturbideBrazilIoni Bowcher RENEWAL
Leja CaldareraCanadaElwin Sharvill UNQUALIFIED
Aika InouyeRussiaAmy Elsner NEW
Octavia MaletJapanOnyama Limba RENEWAL
Octavia MaletJapanXuxue Feng NEGOTIATION
Mujtaba NickaGermanyBernardo Dominic UNQUALIFIED
Leon OldroydItalyAsiya Javayant RENEWAL
Johnson SergiRussiaAnna Fali QUALIFIED
Isabel BowleyJapanStephen Shaw UNQUALIFIED
Jeanfrancois VenereSpainXuxue Feng PROPOSAL
Jones VocelkaUnited KingdomBernardo Dominic QUALIFIED
Sinclair WaycottCanadaIoni Bowcher NEGOTIATION
Mayumi KolmetzGermanyIvan Magalhaes NEGOTIATION
Smith GlickSpainElwin Sharvill UNQUALIFIED
Misaki RoysterGermanyXuxue Feng NEW
Morrow RutaJapanElwin Sharvill QUALIFIED
Chavez BriddickBrazilXuxue Feng NEW
Mujtaba NickaRussiaXuxue Feng NEGOTIATION
Costa DilliardUnited KingdomAmy Elsner NEW
James ButtJapanAnna Fali NEGOTIATION
Clifford RimBrazilStephen Shaw NEW
Julie StensethSpainOnyama Limba RENEWAL
Izzy GarufiItalyOnyama Limba NEGOTIATION
Aika InouyeArgentinaOnyama Limba PROPOSAL
Costa DilliardFranceBernardo Dominic NEGOTIATION
Maria MarrierGermanyElwin Sharvill QUALIFIED
Adams MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Aika InouyeFranceAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoCanadaAsiya Javayant QUALIFIED
Jennifer AmigonArgentinaAnna Fali NEGOTIATION
Darci PoquetteGermanyXuxue Feng NEW
Kadeem FlosiAustraliaAnna Fali NEW
Mayumi KolmetzFranceXuxue Feng PROPOSAL
Nicolas IturbideSpainAnna Fali PROPOSAL
Francesco ShinkoArgentinaAmy Elsner QUALIFIED
Rodrigues CampainArgentinaIoni Bowcher QUALIFIED
Stacey MacleadJapanAmy Elsner QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiFrance2026-05-17Printing Dimensions UNQUALIFIED74Ivan Magalhaes
1001Aruna FigeroaItaly2026-05-20Chanay, Jeffrey A Esq RENEWAL49Stephen Shaw
1002Misaki RoysterFrance2026-05-23Printing Dimensions RENEWAL92Anna Fali
1003Rodrigues CampainGermany2026-05-24Rangoni Of Florence QUALIFIED39Onyama Limba
1004Cody SaylorsFrance2026-05-16Chemel, James L Cpa NEW51Ioni Bowcher
1005Aditya KuskoFrance2026-05-15King, Christopher A Esq PROPOSAL37Bernardo Dominic
1006Faith GillianItaly2026-05-18Buckley Miller Wright UNQUALIFIED64Ioni Bowcher
1007Jeanfrancois VenereJapan2026-05-29Morlong Associates PROPOSAL70Stephen Shaw
1008Smith GlickSpain2026-06-02Dorl, James J Esq PROPOSAL34Ivan Magalhaes
1009Greenwood BologniaFrance2026-05-15Chemel, James L Cpa QUALIFIED85Elwin Sharvill
1010Cody SaylorsSpain2026-05-13Rangoni Of Florence QUALIFIED4Asiya Javayant
1011Misaki RoysterAustralia2026-05-23Morlong Associates NEGOTIATION98Onyama Limba
1012Sinclair WaycottBrazil2026-05-17Benton, John B Jr NEW32Anna Fali
1013Morrow RutaUnited Kingdom2026-06-06Chanay, Jeffrey A Esq UNQUALIFIED16Asiya Javayant
1014Silvio SlusarskiArgentina2026-05-12Chapman, Ross E Esq NEGOTIATION41Asiya Javayant
1015Arvin AlbaresItaly2026-05-27Feltz Printing Service NEGOTIATION2Amy Elsner
1016Leon OldroydJapan2026-05-30Chapman, Ross E Esq QUALIFIED61Anna Fali
1017Emily WhobreySpain2026-05-14Feiner Bros PROPOSAL14Bernardo Dominic
1018Rodrigues CampainGermany2026-05-23Benton, John B Jr NEGOTIATION53Elwin Sharvill
1019Deepesh ChuiItaly2026-05-24Rangoni Of Florence UNQUALIFIED47Ioni Bowcher
1020Clifford RimArgentina2026-05-30Feiner Bros QUALIFIED13Bernardo Dominic
1021Silvio SlusarskiCanada2026-05-17Commercial Press RENEWAL2Asiya Javayant
1022Ivar PaprockiRussia2026-05-14Feiner Bros PROPOSAL43Anna Fali
1023Silvio SlusarskiJapan2026-06-02King, Christopher A Esq UNQUALIFIED48Ivan Magalhaes
1024Darci PoquetteAustralia2026-06-02Chanay, Jeffrey A Esq NEGOTIATION18Stephen Shaw
1025Stacey MacleadAustralia2026-05-17Buckley Miller Wright RENEWAL34Ivan Magalhaes
1026Stacey MacleadArgentina2026-05-14Benton, John B Jr NEGOTIATION3Amy Elsner
1027Mayumi KolmetzRussia2026-06-01Rousseaux, Michael Esq NEGOTIATION38Stephen Shaw
1028Arvin AlbaresUnited Kingdom2026-05-12Feiner Bros QUALIFIED17Xuxue Feng
1029Sinclair WaycottBrazil2026-06-10Feiner Bros NEW58Anna Fali
1030Faith GillianBrazil2026-06-01Truhlar And Truhlar Attys PROPOSAL0Stephen Shaw
1031Kaitlin OstroskyFrance2026-05-15Truhlar And Truhlar Attys RENEWAL53Xuxue Feng
1032Maisha RulapaughJapan2026-05-20Chapman, Ross E Esq RENEWAL53Stephen Shaw
1033Misaki RoysterBrazil2026-05-18Morlong Associates RENEWAL50Anna Fali
1034Murillo MaletUnited Kingdom2026-06-06Printing Dimensions NEGOTIATION45Asiya Javayant
1035Francesco ShinkoSpain2026-06-08Chapman, Ross E Esq RENEWAL82Ivan Magalhaes
1036Stacey MacleadJapan2026-05-27Buckley Miller Wright NEGOTIATION45Ioni Bowcher
1037Juan WieserJapan2026-05-13Feltz Printing Service UNQUALIFIED99Amy Elsner
1038Claire TollnerArgentina2026-05-31Rousseaux, Michael Esq QUALIFIED51Amy Elsner
1039Jones VocelkaGermany2026-06-02Commercial Press QUALIFIED74Ioni Bowcher
1040Francesco ShinkoRussia2026-05-21Chapman, Ross E Esq PROPOSAL26Amy Elsner
1041Salvatore StockhamItaly2026-05-25Truhlar And Truhlar Attys UNQUALIFIED57Xuxue Feng
1042Mayumi KolmetzUnited Kingdom2026-05-30Truhlar And Truhlar Attys RENEWAL78Onyama Limba
1043Julie StensethIndia2026-06-08Commercial Press NEGOTIATION65Asiya Javayant
1044Francesco ShinkoItaly2026-05-29Truhlar And Truhlar Attys NEGOTIATION25Ioni Bowcher
1045Aika InouyeJapan2026-05-28Rousseaux, Michael Esq PROPOSAL69Stephen Shaw
1046Maria MarrierJapan2026-06-05Rousseaux, Michael Esq NEGOTIATION52Ioni Bowcher
1047Mayumi KolmetzUnited Kingdom2026-05-21Chemel, James L Cpa QUALIFIED19Onyama Limba
1048Aditya KuskoItaly2026-05-29Printing Dimensions PROPOSAL84Stephen Shaw
1049Aditya KuskoBrazil2026-05-31Printing Dimensions NEGOTIATION29Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoRussiaStephen Shaw NEW
Smith GlickCanadaXuxue Feng PROPOSAL
Ricardo GauchoCanadaElwin Sharvill PROPOSAL
Francesco ShinkoRussiaStephen Shaw QUALIFIED
Johnson SergiIndiaAsiya Javayant PROPOSAL
Jeanfrancois VenereSpainAnna Fali NEGOTIATION
Murillo MaletBrazilAmy Elsner UNQUALIFIED
Mujtaba NickaArgentinaOnyama Limba QUALIFIED
Emily WhobreyCanadaElwin Sharvill UNQUALIFIED
Mayumi KolmetzAustraliaAmy Elsner NEW
Juan WieserBrazilBernardo Dominic QUALIFIED
Octavia MaletJapanStephen Shaw RENEWAL
Leon OldroydItalyAnna Fali NEGOTIATION
David DarakjyIndiaElwin Sharvill QUALIFIED
Maria MarrierIndiaOnyama Limba RENEWAL
Morrow RutaItalyAsiya Javayant UNQUALIFIED
Isabel BowleyCanadaIvan Magalhaes QUALIFIED
Deepesh ChuiSpainStephen Shaw RENEWAL
Clifford RimCanadaIvan Magalhaes QUALIFIED
Wickens NestleUnited KingdomStephen Shaw NEW
Nicolas IturbideIndiaXuxue Feng UNQUALIFIED
Isabel BowleySpainOnyama Limba RENEWAL
Aditya KuskoCanadaStephen Shaw NEW
Jefferson SchemmerGermanyElwin Sharvill NEGOTIATION
Costa DilliardRussiaStephen Shaw NEW
Misaki RoysterAustraliaAmy Elsner UNQUALIFIED
Ricardo GauchoAustraliaBernardo Dominic PROPOSAL
Jones VocelkaCanadaIoni Bowcher RENEWAL
Deepesh ChuiFranceAmy Elsner NEW
Aika InouyeIndiaStephen Shaw UNQUALIFIED
Alejandro PerinGermanyBernardo Dominic PROPOSAL
Isabel BowleyCanadaBernardo Dominic RENEWAL
Aika InouyeItalyAnna Fali RENEWAL
Ashley DoeIndiaStephen Shaw RENEWAL
Leon OldroydGermanyAsiya Javayant PROPOSAL
Ashley DoeItalyOnyama Limba QUALIFIED
Cody SaylorsFranceAnna Fali UNQUALIFIED
Cody SaylorsUnited KingdomStephen Shaw RENEWAL
Stacey MacleadUnited KingdomAmy Elsner NEGOTIATION
Kadeem FlosiCanadaBernardo Dominic NEGOTIATION
Ricardo GauchoBrazilAmy Elsner NEGOTIATION
Antonio CaudyUnited KingdomIoni Bowcher QUALIFIED
Juan WieserGermanyIvan Magalhaes RENEWAL
Munro FerenczFranceElwin Sharvill NEGOTIATION
Sinclair WaycottUnited KingdomStephen Shaw NEW
Munro FerenczFranceStephen Shaw NEGOTIATION
Johnson SergiArgentinaXuxue Feng NEW
Sinclair WaycottRussiaAnna Fali QUALIFIED
Kaitlin OstroskyJapanStephen Shaw NEW
Adams MorascaGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Tony Foller
Cody Saylors
Leon Oldroyd
Faith Gillian
Silvio Slusarski
Chavez Briddick
Deepesh Chui
Emily Whobrey
Julie Stenseth
Adams Morasca
Silvio Slusarski
Chavez Briddick
Claire Tollner
Francesco Shinko
Jennifer Amigon
Kaitlin Ostrosky
Nicolas Iturbide
Mujtaba Nicka
Clifford Rim
Deepesh Chui
Faith Gillian
Silvio Slusarski
Aruna Figeroa
Chavez Briddick
Faith Gillian
Claire Tollner
Cody Saylors
Aruna Figeroa
David Darakjy
Clifford Rim
Maisha Rulapaugh
Salvatore Stockham
Sinclair Waycott
Tony Foller
Jeanfrancois Venere
Julie Stenseth
Johnson Sergi
Deepesh Chui
Jennifer Amigon
Nicolas Iturbide
Kadeem Flosi
Smith Glick
Aditya Kusko
Rodrigues Campain
Leja Caldarera
Adams Morasca
Aika Inouye
Jefferson Schemmer
Izzy Garufi
James Butt
IdCountryDate
1000Australia2026-06-06
1001United Kingdom2026-05-19
1002France2026-06-07
1003Australia2026-06-06
1004United Kingdom2026-06-09
1005United Kingdom2026-05-30
1006France2026-05-19
1007Argentina2026-05-18
1008Brazil2026-05-20
1009Spain2026-06-07
1010France2026-05-23
1011Russia2026-05-18
1012Japan2026-06-02
1013India2026-06-08
1014Japan2026-05-24
1015Australia2026-05-21
1016India2026-05-15
1017France2026-05-29
1018Germany2026-05-23
1019United Kingdom2026-05-29
1020Italy2026-05-17
1021Australia2026-05-17
1022Germany2026-05-30
1023Japan2026-05-25
1024Germany2026-05-12
1025Brazil2026-06-04
1026France2026-05-22
1027Spain2026-05-29
1028Argentina2026-05-30
1029Argentina2026-06-03
1030Brazil2026-05-16
1031Japan2026-05-28
1032Japan2026-05-16
1033Japan2026-06-08
1034France2026-06-04
1035France2026-05-24
1036Italy2026-05-12
1037France2026-06-01
1038India2026-06-09
1039Italy2026-06-04
1040India2026-06-08
1041United Kingdom2026-06-02
1042Argentina2026-06-03
1043Spain2026-05-20
1044India2026-05-25
1045Canada2026-05-12
1046India2026-05-23
1047Spain2026-06-06
1048Germany2026-05-12
1049Australia2026-05-26

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000United Kingdom2026-05-22
Maria Marrier1001United Kingdom2026-06-08
Morrow Ruta1002Canada2026-06-09
Wickens Nestle1003Argentina2026-05-16
Clifford Rim1004Italy2026-05-16
Nicolas Iturbide1005Australia2026-05-17
Jefferson Schemmer1006France2026-05-22
Jones Vocelka1007Italy2026-06-08
Morrow Ruta1008Brazil2026-06-06
Arvin Albares1009France2026-05-12
Clifford Rim1010Japan2026-05-19
Ashley Doe1011Spain2026-05-20
Salvatore Stockham1012Japan2026-05-26
Claire Tollner1013France2026-06-09
Jones Vocelka1014United Kingdom2026-05-17
Clifford Rim1015Australia2026-05-27
Cody Saylors1016Canada2026-05-16
Arvin Albares1017Russia2026-06-05
Emily Whobrey1018India2026-06-07
Aruna Figeroa1019Australia2026-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia MaletIndiaIvan Magalhaes PROPOSAL
Greenwood BologniaBrazilIvan Magalhaes UNQUALIFIED
Smith GlickAustraliaAsiya Javayant QUALIFIED
Octavia MaletAustraliaElwin Sharvill QUALIFIED
Julie StensethSpainAnna Fali QUALIFIED
Greenwood BologniaSpainOnyama Limba NEW
Francesco ShinkoBrazilStephen Shaw QUALIFIED
Aruna FigeroaFranceAmy Elsner NEGOTIATION
Leja CaldareraBrazilAsiya Javayant NEW
Jeanfrancois VenereUnited KingdomAsiya Javayant RENEWAL
Morrow RutaIndiaAmy Elsner UNQUALIFIED
Faith GillianUnited KingdomBernardo Dominic PROPOSAL
Juan WieserRussiaStephen Shaw UNQUALIFIED
Munro FerenczRussiaAnna Fali UNQUALIFIED
Maria MarrierUnited KingdomElwin Sharvill NEW
Claire TollnerIndiaOnyama Limba RENEWAL
Stacey MacleadBrazilAsiya Javayant QUALIFIED
Rodrigues CampainJapanAsiya Javayant NEW
Misaki RoysterSpainOnyama Limba NEW
Mayumi KolmetzAustraliaIoni Bowcher NEGOTIATION
Salvatore StockhamCanadaIvan Magalhaes QUALIFIED
Misaki RoysterCanadaAmy Elsner NEW
Salvatore StockhamGermanyAsiya Javayant PROPOSAL
Jeanfrancois VenereBrazilIvan Magalhaes NEW
Kadeem FlosiCanadaBernardo Dominic QUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic QUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes QUALIFIED
Julie StensethArgentinaAsiya Javayant QUALIFIED
Murillo MaletCanadaIvan Magalhaes NEW
Silvio SlusarskiGermanyAnna Fali RENEWAL
Johnson SergiArgentinaIoni Bowcher NEW
Deepesh ChuiRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaIndiaIoni Bowcher NEGOTIATION
Sinclair WaycottIndiaAsiya Javayant NEW
Jennifer AmigonFranceAsiya Javayant UNQUALIFIED
Kadeem FlosiAustraliaBernardo Dominic QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali NEGOTIATION
Faith GillianUnited KingdomIoni Bowcher QUALIFIED
Leon OldroydSpainXuxue Feng PROPOSAL
Salvatore StockhamSpainBernardo Dominic 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>