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
Chavez BriddickItalyAsiya Javayant NEW
Cody SaylorsFranceStephen Shaw QUALIFIED
Chavez BriddickFranceAmy Elsner NEW
Mayumi KolmetzBrazilAsiya Javayant QUALIFIED
Claire TollnerCanadaAsiya Javayant NEGOTIATION
Aditya KuskoIndiaIvan Magalhaes RENEWAL
Smith GlickAustraliaOnyama Limba QUALIFIED
Jefferson SchemmerIndiaBernardo Dominic UNQUALIFIED
Alejandro PerinFranceAsiya Javayant UNQUALIFIED
Chavez BriddickUnited KingdomIoni Bowcher NEGOTIATION
Claire TollnerUnited KingdomStephen Shaw NEGOTIATION
Claire TollnerBrazilAsiya Javayant NEW
Julie StensethUnited KingdomAnna Fali RENEWAL
Julie StensethGermanyStephen Shaw QUALIFIED
Nicolas IturbideItalyElwin Sharvill QUALIFIED
Jefferson SchemmerArgentinaAmy Elsner UNQUALIFIED
James ButtRussiaAnna Fali NEW
Tony FollerRussiaAsiya Javayant QUALIFIED
Leja CaldareraAustraliaXuxue Feng UNQUALIFIED
Aruna FigeroaBrazilAmy Elsner NEGOTIATION
Stacey MacleadJapanOnyama Limba PROPOSAL
Chavez BriddickGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiItalyIoni Bowcher NEW
Kaitlin OstroskyUnited KingdomStephen Shaw PROPOSAL
Misaki RoysterCanadaIvan Magalhaes QUALIFIED
Tony FollerAustraliaAmy Elsner NEGOTIATION
Maisha RulapaughItalyElwin Sharvill PROPOSAL
Jennifer AmigonBrazilOnyama Limba QUALIFIED
Faith GillianJapanAmy Elsner NEW
Aika InouyeUnited KingdomIoni Bowcher NEW
Rodrigues CampainJapanXuxue Feng NEGOTIATION
Leon OldroydCanadaIoni Bowcher PROPOSAL
Stacey MacleadCanadaXuxue Feng NEW
Misaki RoysterSpainXuxue Feng RENEWAL
Adams MorascaItalyAmy Elsner NEGOTIATION
Munro FerenczCanadaAnna Fali RENEWAL
James ButtItalyIoni Bowcher NEGOTIATION
Silvio SlusarskiRussiaIoni Bowcher QUALIFIED
Isabel BowleyGermanyStephen Shaw QUALIFIED
Clifford RimAustraliaAmy Elsner NEGOTIATION
Costa DilliardSpainAsiya Javayant QUALIFIED
Johnson SergiJapanBernardo Dominic NEGOTIATION
Salvatore StockhamSpainAmy Elsner NEW
Ivar PaprockiCanadaAnna Fali PROPOSAL
Kadeem FlosiIndiaAsiya Javayant UNQUALIFIED
Kadeem FlosiIndiaIoni Bowcher NEGOTIATION
Morrow RutaAustraliaXuxue Feng NEW
Ricardo GauchoArgentinaBernardo Dominic QUALIFIED
Francesco ShinkoJapanXuxue Feng UNQUALIFIED
Ivar PaprockiArgentinaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan WieserAustraliaIvan Magalhaes NEW
Mujtaba NickaSpainIvan Magalhaes PROPOSAL
Silvio SlusarskiJapanOnyama Limba QUALIFIED
Ivar PaprockiGermanyOnyama Limba RENEWAL
Emily WhobreyUnited KingdomBernardo Dominic RENEWAL
Leon OldroydSpainBernardo Dominic RENEWAL
Ashley DoeItalyXuxue Feng NEGOTIATION
Emily WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Isabel BowleyAustraliaBernardo Dominic RENEWAL
Stacey MacleadAustraliaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci PoquetteAustralia2026-05-07Printing Dimensions NEW76Ioni Bowcher
1001Maria MarrierAustralia2026-05-09Chanay, Jeffrey A Esq RENEWAL16Stephen Shaw
1002Salvatore StockhamCanada2026-05-21Dorl, James J Esq PROPOSAL68Asiya Javayant
1003Rodrigues CampainUnited Kingdom2026-05-12Benton, John B Jr QUALIFIED61Elwin Sharvill
1004Salvatore StockhamItaly2026-05-20King, Christopher A Esq NEGOTIATION61Ivan Magalhaes
1005Isabel BowleyGermany2026-05-15Feiner Bros NEGOTIATION6Elwin Sharvill
1006Wickens NestleUnited Kingdom2026-05-06Benton, John B Jr PROPOSAL3Onyama Limba
1007Cody SaylorsGermany2026-05-12Feltz Printing Service NEW40Ivan Magalhaes
1008Francesco ShinkoFrance2026-05-02King, Christopher A Esq NEW26Amy Elsner
1009Johnson SergiUnited Kingdom2026-04-30Printing Dimensions NEW2Bernardo Dominic
1010Chavez BriddickRussia2026-04-30Benton, John B Jr UNQUALIFIED60Amy Elsner
1011Mujtaba NickaItaly2026-05-03Dorl, James J Esq UNQUALIFIED98Amy Elsner
1012Clifford RimBrazil2026-05-11Chapman, Ross E Esq NEW5Asiya Javayant
1013Johnson SergiSpain2026-05-23Feltz Printing Service PROPOSAL8Anna Fali
1014Misaki RoysterBrazil2026-05-11Feiner Bros UNQUALIFIED96Bernardo Dominic
1015Faith GillianCanada2026-05-22Chanay, Jeffrey A Esq NEW68Onyama Limba
1016Smith GlickItaly2026-05-03Feltz Printing Service NEGOTIATION87Stephen Shaw
1017Faith GillianFrance2026-05-04Chemel, James L Cpa NEGOTIATION6Ivan Magalhaes
1018Clifford RimAustralia2026-05-09Chanay, Jeffrey A Esq RENEWAL30Elwin Sharvill
1019Isabel BowleyArgentina2026-05-08King, Christopher A Esq PROPOSAL8Ioni Bowcher
1020Arvin AlbaresArgentina2026-04-28Truhlar And Truhlar Attys NEGOTIATION84Elwin Sharvill
1021Izzy GarufiRussia2026-05-25Printing Dimensions UNQUALIFIED10Bernardo Dominic
1022Ricardo GauchoFrance2026-04-30Printing Dimensions RENEWAL53Anna Fali
1023David DarakjyItaly2026-05-11Feltz Printing Service UNQUALIFIED92Xuxue Feng
1024Murillo MaletItaly2026-05-13Feltz Printing Service UNQUALIFIED82Onyama Limba
1025Silvio SlusarskiItaly2026-05-12Commercial Press QUALIFIED98Elwin Sharvill
1026Clifford RimRussia2026-05-07Benton, John B Jr RENEWAL32Xuxue Feng
1027Tony FollerItaly2026-05-18King, Christopher A Esq PROPOSAL96Xuxue Feng
1028Jefferson SchemmerCanada2026-05-24Benton, John B Jr UNQUALIFIED45Stephen Shaw
1029Darci PoquetteAustralia2026-05-27Chapman, Ross E Esq QUALIFIED89Amy Elsner
1030James ButtBrazil2026-05-15Rousseaux, Michael Esq RENEWAL37Elwin Sharvill
1031Kadeem FlosiGermany2026-05-14Chanay, Jeffrey A Esq PROPOSAL88Ivan Magalhaes
1032Mayumi KolmetzRussia2026-05-11Rangoni Of Florence UNQUALIFIED84Anna Fali
1033Antonio CaudyJapan2026-05-13Morlong Associates UNQUALIFIED49Ivan Magalhaes
1034David DarakjyGermany2026-04-28Chapman, Ross E Esq PROPOSAL61Bernardo Dominic
1035Jeanfrancois VenereFrance2026-05-25Feltz Printing Service QUALIFIED9Asiya Javayant
1036Alejandro PerinSpain2026-05-23Benton, John B Jr NEGOTIATION90Onyama Limba
1037Antonio CaudyBrazil2026-05-03Commercial Press PROPOSAL75Ioni Bowcher
1038Kaitlin OstroskyJapan2026-05-06Rousseaux, Michael Esq RENEWAL84Amy Elsner
1039Johnson SergiRussia2026-05-01King, Christopher A Esq QUALIFIED80Elwin Sharvill
1040Darci PoquetteGermany2026-05-12Chanay, Jeffrey A Esq NEGOTIATION12Amy Elsner
1041Juan WieserIndia2026-04-29Buckley Miller Wright NEGOTIATION53Bernardo Dominic
1042Maria MarrierGermany2026-05-06Commercial Press NEW36Bernardo Dominic
1043Alejandro PerinIndia2026-05-22Rangoni Of Florence RENEWAL20Anna Fali
1044Emily WhobreyRussia2026-05-05Chapman, Ross E Esq NEGOTIATION2Onyama Limba
1045Faith GillianIndia2026-05-16Chapman, Ross E Esq PROPOSAL14Anna Fali
1046Nicolas IturbideItaly2026-04-28King, Christopher A Esq UNQUALIFIED32Stephen Shaw
1047Francesco ShinkoGermany2026-05-07Chemel, James L Cpa QUALIFIED49Amy Elsner
1048Ivar PaprockiItaly2026-05-18Truhlar And Truhlar Attys UNQUALIFIED1Ivan Magalhaes
1049Antonio CaudyArgentina2026-05-01Rousseaux, Michael Esq QUALIFIED10Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiItalyAnna Fali PROPOSAL
Aditya KuskoGermanyAnna Fali QUALIFIED
Costa DilliardFranceOnyama Limba UNQUALIFIED
Mayumi KolmetzIndiaBernardo Dominic RENEWAL
Mayumi KolmetzCanadaStephen Shaw UNQUALIFIED
Jefferson SchemmerSpainBernardo Dominic NEGOTIATION
Izzy GarufiArgentinaAmy Elsner UNQUALIFIED
Leja CaldareraAustraliaAnna Fali NEGOTIATION
Salvatore StockhamBrazilAnna Fali PROPOSAL
Aditya KuskoAustraliaAsiya Javayant QUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
Leon OldroydJapanXuxue Feng RENEWAL
Rodrigues CampainItalyOnyama Limba QUALIFIED
Ashley DoeCanadaAnna Fali QUALIFIED
Chavez BriddickAustraliaAsiya Javayant RENEWAL
Francesco ShinkoSpainAnna Fali PROPOSAL
Francesco ShinkoGermanyStephen Shaw NEW
Costa DilliardSpainOnyama Limba QUALIFIED
Octavia MaletGermanyAnna Fali UNQUALIFIED
Faith GillianIndiaElwin Sharvill NEW
David DarakjyCanadaElwin Sharvill RENEWAL
Chavez BriddickArgentinaOnyama Limba UNQUALIFIED
Mayumi KolmetzSpainElwin Sharvill NEGOTIATION
Isabel BowleyAustraliaAnna Fali NEW
Chavez BriddickFranceIvan Magalhaes NEGOTIATION
Rodrigues CampainSpainAnna Fali UNQUALIFIED
Johnson SergiCanadaStephen Shaw NEW
Leon OldroydUnited KingdomBernardo Dominic NEW
Salvatore StockhamRussiaAsiya Javayant UNQUALIFIED
Salvatore StockhamSpainAnna Fali PROPOSAL
James ButtGermanyIvan Magalhaes NEGOTIATION
Munro FerenczSpainBernardo Dominic RENEWAL
Morrow RutaSpainStephen Shaw PROPOSAL
Francesco ShinkoItalyIvan Magalhaes RENEWAL
Jennifer AmigonUnited KingdomAmy Elsner UNQUALIFIED
Murillo MaletIndiaAnna Fali NEGOTIATION
Alejandro PerinUnited KingdomIoni Bowcher PROPOSAL
Chavez BriddickRussiaBernardo Dominic QUALIFIED
Alejandro PerinGermanyAmy Elsner RENEWAL
Morrow RutaCanadaIvan Magalhaes PROPOSAL
Rodrigues CampainSpainBernardo Dominic RENEWAL
Adams MorascaIndiaIoni Bowcher RENEWAL
Salvatore StockhamJapanElwin Sharvill QUALIFIED
Darci PoquetteIndiaAmy Elsner PROPOSAL
Salvatore StockhamUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerGermanyAmy Elsner PROPOSAL
Nicolas IturbideRussiaAmy Elsner NEGOTIATION
Aruna FigeroaAustraliaIvan Magalhaes QUALIFIED
Jennifer AmigonItalyAsiya Javayant UNQUALIFIED
Rodrigues CampainArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Misaki Royster
Ashley Doe
Ivar Paprocki
Jefferson Schemmer
Arvin Albares
Faith Gillian
Mujtaba Nicka
Antonio Caudy
Mujtaba Nicka
Adams Morasca
Arvin Albares
Wickens Nestle
Kadeem Flosi
Leja Caldarera
Aika Inouye
Greenwood Bolognia
Munro Ferencz
Cody Saylors
Aruna Figeroa
Tony Foller
Claire Tollner
Isabel Bowley
Cody Saylors
Sinclair Waycott
Clifford Rim
Isabel Bowley
Greenwood Bolognia
Clifford Rim
Claire Tollner
Isabel Bowley
Antonio Caudy
Misaki Royster
Smith Glick
Maria Marrier
Jennifer Amigon
Arvin Albares
James Butt
Leon Oldroyd
Juan Wieser
Greenwood Bolognia
Wickens Nestle
Jeanfrancois Venere
Francesco Shinko
Cody Saylors
Juan Wieser
Smith Glick
Salvatore Stockham
Julie Stenseth
Leja Caldarera
Francesco Shinko
IdCountryDate
1000Japan2026-05-02
1001United Kingdom2026-05-26
1002Japan2026-05-05
1003Russia2026-05-22
1004Brazil2026-05-01
1005Spain2026-05-25
1006Brazil2026-05-03
1007Australia2026-05-17
1008Russia2026-05-09
1009United Kingdom2026-05-13
1010Germany2026-05-23
1011Japan2026-05-03
1012India2026-05-07
1013Japan2026-05-01
1014Japan2026-05-17
1015France2026-05-21
1016Italy2026-05-23
1017Russia2026-05-26
1018Japan2026-05-19
1019France2026-05-02
1020Brazil2026-05-19
1021Japan2026-05-13
1022Japan2026-05-24
1023Germany2026-05-05
1024Germany2026-05-11
1025United Kingdom2026-05-19
1026Canada2026-05-15
1027Italy2026-05-08
1028Japan2026-05-14
1029India2026-05-25
1030Italy2026-05-17
1031Canada2026-05-06
1032Australia2026-05-07
1033Japan2026-05-05
1034Argentina2026-05-08
1035Canada2026-05-22
1036Russia2026-05-14
1037Australia2026-05-07
1038Russia2026-05-09
1039Spain2026-05-06
1040Australia2026-05-02
1041Canada2026-05-09
1042Australia2026-05-21
1043Spain2026-05-06
1044Germany2026-05-03
1045Brazil2026-04-29
1046Argentina2026-05-08
1047Germany2026-04-29
1048France2026-05-07
1049Brazil2026-05-23

On-Demand Data

NameIdCountryDate
Ricardo Gaucho1000Germany2026-05-11
Antonio Caudy1001Brazil2026-04-29
Antonio Caudy1002France2026-05-19
Claire Tollner1003Spain2026-05-02
Faith Gillian1004Italy2026-05-17
Salvatore Stockham1005France2026-04-29
Tony Foller1006Russia2026-05-27
Ricardo Gaucho1007Argentina2026-05-26
Adams Morasca1008United Kingdom2026-05-10
James Butt1009Brazil2026-05-09
Aditya Kusko1010Brazil2026-05-10
Nicolas Iturbide1011Argentina2026-05-22
Francesco Shinko1012Australia2026-05-08
Costa Dilliard1013Italy2026-05-10
Stacey Maclead1014Argentina2026-05-01
Greenwood Bolognia1015Australia2026-05-01
Stacey Maclead1016Russia2026-05-02
Smith Glick1017Spain2026-05-07
Munro Ferencz1018India2026-05-08
Ricardo Gaucho1019United Kingdom2026-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiAustraliaAnna Fali RENEWAL
Cody SaylorsBrazilAmy Elsner PROPOSAL
Francesco ShinkoAustraliaOnyama Limba UNQUALIFIED
Deepesh ChuiGermanyElwin Sharvill QUALIFIED
Arvin AlbaresFranceAmy Elsner UNQUALIFIED
Johnson SergiItalyIvan Magalhaes NEW
Izzy GarufiCanadaElwin Sharvill PROPOSAL
Greenwood BologniaFranceXuxue Feng RENEWAL
Morrow RutaAustraliaXuxue Feng UNQUALIFIED
Costa DilliardFranceStephen Shaw NEW
Leon OldroydJapanAsiya Javayant NEW
Jeanfrancois VenereItalyBernardo Dominic NEGOTIATION
Rodrigues CampainBrazilIoni Bowcher QUALIFIED
Nicolas IturbideJapanIvan Magalhaes QUALIFIED
Aditya KuskoItalyIvan Magalhaes NEW
Morrow RutaArgentinaElwin Sharvill QUALIFIED
Isabel BowleyArgentinaAsiya Javayant UNQUALIFIED
Silvio SlusarskiBrazilElwin Sharvill RENEWAL
Juan WieserArgentinaAsiya Javayant UNQUALIFIED
Morrow RutaRussiaIvan Magalhaes NEW
Francesco ShinkoBrazilAmy Elsner UNQUALIFIED
Wickens NestleFranceElwin Sharvill NEGOTIATION
David DarakjyJapanAnna Fali NEW
Costa DilliardRussiaBernardo Dominic NEGOTIATION
Arvin AlbaresItalyAsiya Javayant RENEWAL
Rodrigues CampainArgentinaStephen Shaw NEW
Murillo MaletJapanOnyama Limba QUALIFIED
Faith GillianGermanyBernardo Dominic RENEWAL
Murillo MaletFranceOnyama Limba NEGOTIATION
Julie StensethItalyIvan Magalhaes PROPOSAL
Murillo MaletCanadaIvan Magalhaes RENEWAL
Izzy GarufiIndiaElwin Sharvill NEGOTIATION
Jones VocelkaBrazilStephen Shaw NEW
Jones VocelkaCanadaAnna Fali UNQUALIFIED
Munro FerenczIndiaAsiya Javayant PROPOSAL
Greenwood BologniaFranceIoni Bowcher QUALIFIED
Antonio CaudyIndiaAsiya Javayant NEW
Ashley DoeSpainIvan Magalhaes UNQUALIFIED
Julie StensethSpainStephen Shaw QUALIFIED
Claire TollnerJapanAnna Fali 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>