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
Francesco ShinkoGermanyElwin Sharvill NEW
Jefferson SchemmerAustraliaIoni Bowcher NEGOTIATION
Jones VocelkaArgentinaAnna Fali UNQUALIFIED
James ButtArgentinaXuxue Feng NEW
Jeanfrancois VenereArgentinaBernardo Dominic QUALIFIED
Nicolas IturbideJapanAsiya Javayant RENEWAL
Aditya KuskoArgentinaIoni Bowcher NEW
Arvin AlbaresIndiaAnna Fali NEGOTIATION
Alejandro PerinAustraliaOnyama Limba NEGOTIATION
Greenwood BologniaSpainBernardo Dominic QUALIFIED
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Mujtaba NickaArgentinaIoni Bowcher PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher QUALIFIED
Murillo MaletCanadaBernardo Dominic PROPOSAL
Chavez BriddickItalyStephen Shaw RENEWAL
Morrow RutaFranceIoni Bowcher RENEWAL
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
Juan WieserAustraliaIvan Magalhaes QUALIFIED
Faith GillianUnited KingdomAmy Elsner NEGOTIATION
Ricardo GauchoBrazilIoni Bowcher RENEWAL
Morrow RutaJapanBernardo Dominic UNQUALIFIED
Aika InouyeCanadaStephen Shaw NEW
Antonio CaudyJapanXuxue Feng QUALIFIED
Morrow RutaCanadaXuxue Feng NEGOTIATION
Julie StensethArgentinaOnyama Limba PROPOSAL
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
Arvin AlbaresGermanyIoni Bowcher UNQUALIFIED
Stacey MacleadBrazilIoni Bowcher UNQUALIFIED
Izzy GarufiArgentinaIoni Bowcher PROPOSAL
Juan WieserAustraliaIvan Magalhaes NEGOTIATION
Maisha RulapaughSpainIvan Magalhaes UNQUALIFIED
Juan WieserBrazilAnna Fali NEGOTIATION
Maria MarrierUnited KingdomIoni Bowcher NEW
Morrow RutaIndiaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Arvin AlbaresUnited KingdomBernardo Dominic NEW
Jennifer AmigonSpainBernardo Dominic QUALIFIED
Aruna FigeroaAustraliaElwin Sharvill PROPOSAL
Emily WhobreyAustraliaIoni Bowcher PROPOSAL
Faith GillianIndiaBernardo Dominic QUALIFIED
Mayumi KolmetzRussiaStephen Shaw RENEWAL
Jeanfrancois VenereCanadaBernardo Dominic PROPOSAL
Wickens NestleArgentinaAmy Elsner NEGOTIATION
Ivar PaprockiGermanyElwin Sharvill RENEWAL
Jones VocelkaBrazilIvan Magalhaes PROPOSAL
Faith GillianBrazilAsiya Javayant NEW
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Maisha RulapaughGermanyAmy Elsner NEW
Wickens NestleIndiaAnna Fali RENEWAL
Silvio SlusarskiItalyXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamCanadaAsiya Javayant QUALIFIED
Sinclair WaycottBrazilOnyama Limba RENEWAL
Ivar PaprockiFranceAnna Fali UNQUALIFIED
Francesco ShinkoJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiSpainOnyama Limba NEGOTIATION
Faith GillianAustraliaAnna Fali QUALIFIED
David DarakjyCanadaAsiya Javayant NEGOTIATION
Arvin AlbaresArgentinaStephen Shaw RENEWAL
Mayumi KolmetzJapanAnna Fali NEW
Arvin AlbaresAustraliaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainGermany2026-05-25Morlong Associates PROPOSAL21Onyama Limba
1001Jones VocelkaCanada2026-05-30Feiner Bros PROPOSAL90Onyama Limba
1002Salvatore StockhamItaly2026-05-23King, Christopher A Esq UNQUALIFIED63Amy Elsner
1003Greenwood BologniaGermany2026-06-06Benton, John B Jr PROPOSAL19Elwin Sharvill
1004Ashley DoeIndia2026-05-16Chemel, James L Cpa NEW69Amy Elsner
1005Julie StensethGermany2026-06-06Feltz Printing Service RENEWAL49Bernardo Dominic
1006Jeanfrancois VenereSpain2026-06-01Feltz Printing Service PROPOSAL45Elwin Sharvill
1007Salvatore StockhamJapan2026-05-25Printing Dimensions NEW55Bernardo Dominic
1008Antonio CaudyJapan2026-06-04Dorl, James J Esq PROPOSAL14Anna Fali
1009Faith GillianFrance2026-05-24Feltz Printing Service RENEWAL83Ivan Magalhaes
1010Rodrigues CampainArgentina2026-06-05Feiner Bros PROPOSAL7Elwin Sharvill
1011Francesco ShinkoItaly2026-05-15King, Christopher A Esq UNQUALIFIED37Elwin Sharvill
1012Clifford RimArgentina2026-05-17Morlong Associates RENEWAL97Elwin Sharvill
1013Juan WieserCanada2026-05-29Truhlar And Truhlar Attys NEGOTIATION47Elwin Sharvill
1014Antonio CaudyBrazil2026-05-19Rangoni Of Florence NEW90Amy Elsner
1015Leja CaldareraUnited Kingdom2026-06-04Commercial Press NEW17Ivan Magalhaes
1016Aruna FigeroaAustralia2026-06-13Chanay, Jeffrey A Esq RENEWAL25Xuxue Feng
1017Leon OldroydGermany2026-05-22Truhlar And Truhlar Attys QUALIFIED30Anna Fali
1018Ashley DoeRussia2026-06-09Rangoni Of Florence PROPOSAL48Asiya Javayant
1019Aruna FigeroaSpain2026-06-05Buckley Miller Wright RENEWAL78Stephen Shaw
1020Aruna FigeroaFrance2026-05-26Chapman, Ross E Esq PROPOSAL57Bernardo Dominic
1021Murillo MaletUnited Kingdom2026-05-31Chanay, Jeffrey A Esq UNQUALIFIED70Elwin Sharvill
1022Mayumi KolmetzUnited Kingdom2026-05-29Printing Dimensions NEGOTIATION55Bernardo Dominic
1023Ivar PaprockiItaly2026-06-13Feltz Printing Service RENEWAL80Bernardo Dominic
1024Murillo MaletSpain2026-05-24Dorl, James J Esq QUALIFIED68Bernardo Dominic
1025Adams MorascaBrazil2026-05-21Feiner Bros NEGOTIATION57Onyama Limba
1026Stacey MacleadBrazil2026-06-10Commercial Press PROPOSAL23Anna Fali
1027Emily WhobreyRussia2026-06-03Feiner Bros NEGOTIATION33Xuxue Feng
1028Darci PoquetteJapan2026-06-13Chanay, Jeffrey A Esq PROPOSAL71Ivan Magalhaes
1029Aruna FigeroaJapan2026-05-30Commercial Press UNQUALIFIED20Ioni Bowcher
1030Wickens NestleJapan2026-06-12Rousseaux, Michael Esq RENEWAL12Elwin Sharvill
1031Mayumi KolmetzAustralia2026-06-01Chanay, Jeffrey A Esq PROPOSAL8Asiya Javayant
1032Leja CaldareraIndia2026-06-02Rangoni Of Florence NEGOTIATION6Asiya Javayant
1033Munro FerenczIndia2026-05-30Dorl, James J Esq QUALIFIED13Elwin Sharvill
1034Francesco ShinkoAustralia2026-05-21Dorl, James J Esq PROPOSAL93Bernardo Dominic
1035Julie StensethAustralia2026-05-29Benton, John B Jr PROPOSAL9Xuxue Feng
1036Kadeem FlosiGermany2026-05-22King, Christopher A Esq UNQUALIFIED45Amy Elsner
1037Wickens NestleArgentina2026-06-01Buckley Miller Wright NEGOTIATION28Asiya Javayant
1038Julie StensethIndia2026-06-08Rangoni Of Florence UNQUALIFIED64Ivan Magalhaes
1039James ButtFrance2026-05-16Truhlar And Truhlar Attys RENEWAL24Anna Fali
1040Wickens NestleFrance2026-05-26Feltz Printing Service PROPOSAL43Xuxue Feng
1041Francesco ShinkoRussia2026-05-21Truhlar And Truhlar Attys RENEWAL77Ivan Magalhaes
1042Francesco ShinkoJapan2026-06-13Feltz Printing Service PROPOSAL72Xuxue Feng
1043Leja CaldareraCanada2026-05-29Rousseaux, Michael Esq QUALIFIED87Stephen Shaw
1044Costa DilliardCanada2026-05-29Chemel, James L Cpa PROPOSAL96Ioni Bowcher
1045Cody SaylorsIndia2026-06-06Feltz Printing Service NEGOTIATION1Stephen Shaw
1046Ashley DoeUnited Kingdom2026-05-31Buckley Miller Wright UNQUALIFIED93Xuxue Feng
1047Alejandro PerinAustralia2026-05-20Printing Dimensions NEGOTIATION81Amy Elsner
1048Sinclair WaycottArgentina2026-05-20Buckley Miller Wright UNQUALIFIED66Ivan Magalhaes
1049Emily WhobreyItaly2026-05-29Chanay, Jeffrey A Esq NEW91Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiItalyXuxue Feng QUALIFIED
Aruna FigeroaSpainXuxue Feng NEW
Salvatore StockhamRussiaIvan Magalhaes NEGOTIATION
Darci PoquetteArgentinaIoni Bowcher UNQUALIFIED
Silvio SlusarskiAustraliaElwin Sharvill RENEWAL
Silvio SlusarskiFranceElwin Sharvill QUALIFIED
Octavia MaletCanadaAmy Elsner RENEWAL
Alejandro PerinFranceIvan Magalhaes PROPOSAL
Leja CaldareraRussiaAnna Fali UNQUALIFIED
Deepesh ChuiUnited KingdomBernardo Dominic PROPOSAL
Cody SaylorsCanadaIvan Magalhaes UNQUALIFIED
Misaki RoysterItalyAsiya Javayant PROPOSAL
Salvatore StockhamAustraliaOnyama Limba QUALIFIED
Darci PoquetteGermanyElwin Sharvill RENEWAL
Morrow RutaItalyAnna Fali UNQUALIFIED
Juan WieserAustraliaBernardo Dominic NEGOTIATION
Rodrigues CampainBrazilAnna Fali NEGOTIATION
Smith GlickArgentinaAnna Fali QUALIFIED
Alejandro PerinUnited KingdomXuxue Feng NEW
Claire TollnerAustraliaAsiya Javayant PROPOSAL
Murillo MaletUnited KingdomXuxue Feng QUALIFIED
Murillo MaletRussiaAnna Fali NEW
Mayumi KolmetzGermanyStephen Shaw PROPOSAL
Kaitlin OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Misaki RoysterFranceOnyama Limba NEGOTIATION
Francesco ShinkoJapanElwin Sharvill NEW
Rodrigues CampainIndiaBernardo Dominic NEW
Aditya KuskoArgentinaXuxue Feng RENEWAL
David DarakjySpainXuxue Feng UNQUALIFIED
Smith GlickJapanAmy Elsner PROPOSAL
Mayumi KolmetzBrazilIoni Bowcher NEW
Morrow RutaCanadaAsiya Javayant NEGOTIATION
Morrow RutaIndiaIvan Magalhaes RENEWAL
Mayumi KolmetzIndiaStephen Shaw QUALIFIED
Silvio SlusarskiSpainIoni Bowcher NEW
Ashley DoeCanadaAmy Elsner UNQUALIFIED
Kadeem FlosiSpainAnna Fali NEW
Salvatore StockhamCanadaIoni Bowcher UNQUALIFIED
Morrow RutaIndiaElwin Sharvill UNQUALIFIED
Kadeem FlosiAustraliaBernardo Dominic UNQUALIFIED
Aika InouyeJapanStephen Shaw QUALIFIED
Francesco ShinkoGermanyOnyama Limba NEW
Aruna FigeroaCanadaStephen Shaw NEGOTIATION
Cody SaylorsUnited KingdomElwin Sharvill RENEWAL
Costa DilliardFranceBernardo Dominic QUALIFIED
Juan WieserCanadaIvan Magalhaes PROPOSAL
Aditya KuskoGermanyBernardo Dominic NEGOTIATION
Deepesh ChuiUnited KingdomIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaAmy Elsner UNQUALIFIED
Adams MorascaFranceOnyama Limba RENEWAL
Frozen Columns
Name
Adams Morasca
Jeanfrancois Venere
Silvio Slusarski
Ricardo Gaucho
Tony Foller
Wickens Nestle
Emily Whobrey
Francesco Shinko
Mujtaba Nicka
Nicolas Iturbide
Chavez Briddick
Maria Marrier
Maria Marrier
Emily Whobrey
Maria Marrier
Aruna Figeroa
Stacey Maclead
Nicolas Iturbide
Leon Oldroyd
David Darakjy
Deepesh Chui
Octavia Malet
Morrow Ruta
Aika Inouye
Leja Caldarera
Ricardo Gaucho
Aika Inouye
Maria Marrier
Alejandro Perin
Rodrigues Campain
Mayumi Kolmetz
Arvin Albares
Leon Oldroyd
Leon Oldroyd
Kaitlin Ostrosky
Isabel Bowley
Leja Caldarera
Tony Foller
Johnson Sergi
Juan Wieser
Julie Stenseth
Octavia Malet
Jefferson Schemmer
Nicolas Iturbide
Cody Saylors
Julie Stenseth
Izzy Garufi
Costa Dilliard
Ricardo Gaucho
Maisha Rulapaugh
IdCountryDate
1000Brazil2026-05-18
1001Australia2026-06-01
1002Argentina2026-06-08
1003Japan2026-06-05
1004Italy2026-06-02
1005Australia2026-06-11
1006Canada2026-05-17
1007Argentina2026-06-06
1008United Kingdom2026-05-22
1009India2026-05-25
1010Germany2026-05-19
1011Canada2026-06-04
1012India2026-05-16
1013United Kingdom2026-05-27
1014Canada2026-05-28
1015Brazil2026-06-02
1016India2026-05-29
1017India2026-06-11
1018Brazil2026-05-24
1019Japan2026-06-13
1020Russia2026-06-05
1021India2026-05-26
1022Germany2026-06-05
1023Canada2026-06-07
1024France2026-06-09
1025France2026-05-25
1026Germany2026-06-10
1027Brazil2026-06-05
1028Italy2026-05-24
1029United Kingdom2026-05-19
1030Japan2026-05-23
1031United Kingdom2026-06-05
1032France2026-05-28
1033Germany2026-06-08
1034Brazil2026-05-28
1035Italy2026-05-27
1036Canada2026-06-13
1037Brazil2026-05-23
1038Italy2026-05-24
1039Argentina2026-05-16
1040Brazil2026-06-02
1041India2026-05-22
1042Australia2026-05-19
1043Brazil2026-05-24
1044Canada2026-05-31
1045Brazil2026-05-28
1046Australia2026-06-06
1047Argentina2026-06-07
1048Spain2026-05-19
1049Spain2026-05-18

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Japan2026-06-11
Jeanfrancois Venere1001Russia2026-05-25
David Darakjy1002Australia2026-05-22
Juan Wieser1003Russia2026-05-27
Johnson Sergi1004Australia2026-05-23
Ivar Paprocki1005Germany2026-06-07
Clifford Rim1006France2026-06-10
Claire Tollner1007Russia2026-06-03
Alejandro Perin1008Australia2026-05-24
James Butt1009Canada2026-06-11
Octavia Malet1010Russia2026-05-26
Costa Dilliard1011India2026-06-11
Antonio Caudy1012Canada2026-06-06
David Darakjy1013Japan2026-06-04
Jones Vocelka1014Spain2026-05-21
Aruna Figeroa1015Spain2026-05-26
Murillo Malet1016Japan2026-06-12
Ashley Doe1017France2026-05-26
Ricardo Gaucho1018Brazil2026-06-08
Jefferson Schemmer1019Argentina2026-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaBrazilXuxue Feng QUALIFIED
Murillo MaletJapanElwin Sharvill UNQUALIFIED
Darci PoquetteIndiaStephen Shaw PROPOSAL
James ButtSpainStephen Shaw PROPOSAL
Deepesh ChuiBrazilAsiya Javayant PROPOSAL
Munro FerenczJapanIoni Bowcher UNQUALIFIED
Octavia MaletRussiaOnyama Limba NEW
Kaitlin OstroskyFranceIoni Bowcher NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw RENEWAL
Rodrigues CampainBrazilAnna Fali NEGOTIATION
Arvin AlbaresItalyBernardo Dominic NEW
Smith GlickUnited KingdomIoni Bowcher PROPOSAL
Greenwood BologniaRussiaIoni Bowcher RENEWAL
Aruna FigeroaArgentinaBernardo Dominic NEGOTIATION
Emily WhobreyGermanyElwin Sharvill PROPOSAL
David DarakjyAustraliaElwin Sharvill NEGOTIATION
Smith GlickArgentinaElwin Sharvill QUALIFIED
Wickens NestleUnited KingdomBernardo Dominic UNQUALIFIED
Juan WieserIndiaStephen Shaw NEGOTIATION
Arvin AlbaresIndiaIoni Bowcher PROPOSAL
Tony FollerGermanyOnyama Limba UNQUALIFIED
Cody SaylorsUnited KingdomAmy Elsner RENEWAL
Sinclair WaycottBrazilOnyama Limba UNQUALIFIED
Ashley DoeGermanyAmy Elsner PROPOSAL
Leja CaldareraRussiaIoni Bowcher UNQUALIFIED
Mujtaba NickaSpainAsiya Javayant RENEWAL
Silvio SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Leon OldroydGermanyElwin Sharvill NEW
Ivar PaprockiCanadaStephen Shaw RENEWAL
Juan WieserGermanyAsiya Javayant UNQUALIFIED
Wickens NestleRussiaIvan Magalhaes UNQUALIFIED
Cody SaylorsAustraliaStephen Shaw UNQUALIFIED
Mayumi KolmetzUnited KingdomIvan Magalhaes RENEWAL
Greenwood BologniaFranceAsiya Javayant UNQUALIFIED
Wickens NestleUnited KingdomIoni Bowcher QUALIFIED
Aditya KuskoBrazilElwin Sharvill NEW
Izzy GarufiAustraliaAsiya Javayant NEW
Ivar PaprockiJapanElwin Sharvill NEW
Salvatore StockhamSpainOnyama Limba PROPOSAL
Morrow RutaFranceAmy Elsner NEW

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