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 BriddickFranceXuxue Feng RENEWAL
Isabel BowleyArgentinaOnyama Limba NEW
Julie StensethRussiaAnna Fali PROPOSAL
Mayumi KolmetzRussiaBernardo Dominic NEW
Adams MorascaCanadaAnna Fali QUALIFIED
Maisha RulapaughArgentinaIoni Bowcher UNQUALIFIED
Johnson SergiCanadaAmy Elsner QUALIFIED
Nicolas IturbideRussiaAnna Fali QUALIFIED
Wickens NestleSpainBernardo Dominic RENEWAL
Misaki RoysterItalyElwin Sharvill NEGOTIATION
Arvin AlbaresAustraliaAsiya Javayant RENEWAL
Jeanfrancois VenereJapanIvan Magalhaes RENEWAL
Francesco ShinkoFranceIoni Bowcher NEGOTIATION
Mayumi KolmetzBrazilStephen Shaw NEGOTIATION
Rodrigues CampainFranceAsiya Javayant NEW
Deepesh ChuiCanadaIvan Magalhaes NEW
Izzy GarufiJapanAsiya Javayant UNQUALIFIED
Mujtaba NickaArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois VenereJapanElwin Sharvill PROPOSAL
Cody SaylorsArgentinaAmy Elsner QUALIFIED
Mayumi KolmetzGermanyAmy Elsner PROPOSAL
Clifford RimSpainBernardo Dominic NEGOTIATION
Ivar PaprockiGermanyElwin Sharvill NEW
Maria MarrierAustraliaElwin Sharvill QUALIFIED
Maisha RulapaughUnited KingdomBernardo Dominic RENEWAL
Morrow RutaItalyElwin Sharvill PROPOSAL
Ricardo GauchoJapanAsiya Javayant QUALIFIED
Aika InouyeFranceIoni Bowcher NEGOTIATION
Maria MarrierFranceStephen Shaw NEGOTIATION
Emily WhobreyIndiaBernardo Dominic RENEWAL
Arvin AlbaresUnited KingdomBernardo Dominic PROPOSAL
Kadeem FlosiArgentinaIvan Magalhaes PROPOSAL
Arvin AlbaresAustraliaElwin Sharvill QUALIFIED
Leja CaldareraBrazilAnna Fali NEW
James ButtAustraliaElwin Sharvill UNQUALIFIED
Aditya KuskoArgentinaIvan Magalhaes NEW
Julie StensethJapanBernardo Dominic NEW
Faith GillianSpainAnna Fali PROPOSAL
Ivar PaprockiSpainAsiya Javayant RENEWAL
Alejandro PerinFranceXuxue Feng UNQUALIFIED
Cody SaylorsSpainIvan Magalhaes NEGOTIATION
Jefferson SchemmerGermanyStephen Shaw NEW
Mayumi KolmetzBrazilAmy Elsner PROPOSAL
Johnson SergiRussiaIoni Bowcher NEW
Octavia MaletUnited KingdomElwin Sharvill NEGOTIATION
Isabel BowleyFranceIoni Bowcher RENEWAL
Smith GlickUnited KingdomOnyama Limba PROPOSAL
Murillo MaletFranceXuxue Feng RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill PROPOSAL
Arvin AlbaresArgentinaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
David DarakjySpainAmy Elsner NEGOTIATION
Aditya KuskoGermanyAnna Fali UNQUALIFIED
Murillo MaletSpainXuxue Feng NEW
Aruna FigeroaArgentinaXuxue Feng UNQUALIFIED
Jennifer AmigonBrazilBernardo Dominic PROPOSAL
Deepesh ChuiCanadaIoni Bowcher NEW
Ashley DoeSpainAnna Fali NEGOTIATION
Jefferson SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Octavia MaletIndiaBernardo Dominic PROPOSAL
Juan WieserArgentinaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerGermany2026-04-17Truhlar And Truhlar Attys QUALIFIED53Elwin Sharvill
1001Clifford RimAustralia2026-04-16Feiner Bros PROPOSAL11Anna Fali
1002Clifford RimCanada2026-05-03Printing Dimensions QUALIFIED5Asiya Javayant
1003Misaki RoysterArgentina2026-04-11Dorl, James J Esq NEW12Onyama Limba
1004David DarakjySpain2026-05-03Commercial Press PROPOSAL21Anna Fali
1005Mayumi KolmetzRussia2026-04-24Chapman, Ross E Esq PROPOSAL38Xuxue Feng
1006Octavia MaletArgentina2026-04-14Commercial Press QUALIFIED94Stephen Shaw
1007Darci PoquetteSpain2026-04-15Feltz Printing Service UNQUALIFIED53Xuxue Feng
1008Darci PoquetteBrazil2026-04-11King, Christopher A Esq NEW45Xuxue Feng
1009Maisha RulapaughAustralia2026-04-14Dorl, James J Esq QUALIFIED54Onyama Limba
1010Adams MorascaFrance2026-05-04Commercial Press QUALIFIED91Asiya Javayant
1011Ashley DoeRussia2026-05-01Commercial Press QUALIFIED11Amy Elsner
1012Adams MorascaSpain2026-04-28Chapman, Ross E Esq QUALIFIED72Elwin Sharvill
1013Adams MorascaAustralia2026-04-21Chemel, James L Cpa RENEWAL6Onyama Limba
1014Julie StensethArgentina2026-05-03Chanay, Jeffrey A Esq NEGOTIATION62Anna Fali
1015Mayumi KolmetzJapan2026-04-08Truhlar And Truhlar Attys NEW94Bernardo Dominic
1016Aika InouyeCanada2026-05-04Dorl, James J Esq PROPOSAL78Anna Fali
1017Johnson SergiFrance2026-04-21Commercial Press RENEWAL58Stephen Shaw
1018Maria MarrierUnited Kingdom2026-04-26Rousseaux, Michael Esq NEW94Anna Fali
1019Alejandro PerinCanada2026-04-05Dorl, James J Esq PROPOSAL12Stephen Shaw
1020Juan WieserBrazil2026-04-30Feltz Printing Service RENEWAL11Onyama Limba
1021Mayumi KolmetzItaly2026-05-01Benton, John B Jr NEGOTIATION46Stephen Shaw
1022Mujtaba NickaIndia2026-04-19Rangoni Of Florence QUALIFIED16Bernardo Dominic
1023Emily WhobreyBrazil2026-04-19Feltz Printing Service QUALIFIED47Anna Fali
1024David DarakjyFrance2026-04-09Rousseaux, Michael Esq UNQUALIFIED91Xuxue Feng
1025Silvio SlusarskiCanada2026-04-22Feltz Printing Service QUALIFIED85Onyama Limba
1026Ashley DoeSpain2026-04-09Rangoni Of Florence RENEWAL62Asiya Javayant
1027Emily WhobreySpain2026-04-13Benton, John B Jr QUALIFIED88Elwin Sharvill
1028Kadeem FlosiCanada2026-05-04Morlong Associates PROPOSAL86Anna Fali
1029Antonio CaudyUnited Kingdom2026-04-11Chanay, Jeffrey A Esq QUALIFIED47Asiya Javayant
1030Chavez BriddickItaly2026-04-24King, Christopher A Esq UNQUALIFIED96Amy Elsner
1031Ivar PaprockiBrazil2026-04-11Feiner Bros NEGOTIATION1Bernardo Dominic
1032Izzy GarufiArgentina2026-04-09Chanay, Jeffrey A Esq RENEWAL43Elwin Sharvill
1033Leon OldroydCanada2026-04-08Printing Dimensions UNQUALIFIED31Ivan Magalhaes
1034Tony FollerFrance2026-04-23Truhlar And Truhlar Attys NEGOTIATION65Anna Fali
1035Antonio CaudyUnited Kingdom2026-04-25Commercial Press NEW8Elwin Sharvill
1036Faith GillianGermany2026-04-14Buckley Miller Wright UNQUALIFIED89Stephen Shaw
1037Aruna FigeroaFrance2026-04-21Rousseaux, Michael Esq QUALIFIED92Ioni Bowcher
1038Francesco ShinkoUnited Kingdom2026-04-25Truhlar And Truhlar Attys NEGOTIATION71Onyama Limba
1039Jeanfrancois VenereAustralia2026-04-09Chanay, Jeffrey A Esq NEW19Onyama Limba
1040Silvio SlusarskiSpain2026-04-27Commercial Press PROPOSAL92Ivan Magalhaes
1041Deepesh ChuiIndia2026-04-09Chanay, Jeffrey A Esq PROPOSAL95Ivan Magalhaes
1042Morrow RutaCanada2026-04-26Rangoni Of Florence QUALIFIED27Ioni Bowcher
1043Emily WhobreyIndia2026-04-19Printing Dimensions RENEWAL5Onyama Limba
1044Chavez BriddickGermany2026-04-13Commercial Press RENEWAL21Asiya Javayant
1045Clifford RimItaly2026-05-01Printing Dimensions NEW6Asiya Javayant
1046Jefferson SchemmerIndia2026-05-04Chapman, Ross E Esq RENEWAL78Onyama Limba
1047Costa DilliardCanada2026-04-09Chemel, James L Cpa UNQUALIFIED35Onyama Limba
1048Silvio SlusarskiGermany2026-04-17Buckley Miller Wright QUALIFIED99Stephen Shaw
1049Chavez BriddickAustralia2026-05-04King, Christopher A Esq UNQUALIFIED33Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterItalyXuxue Feng RENEWAL
Murillo MaletArgentinaStephen Shaw RENEWAL
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
Cody SaylorsSpainIoni Bowcher NEW
Adams MorascaCanadaIoni Bowcher PROPOSAL
Silvio SlusarskiFranceAsiya Javayant PROPOSAL
Tony FollerCanadaBernardo Dominic PROPOSAL
Isabel BowleyCanadaElwin Sharvill PROPOSAL
Emily WhobreyAustraliaIoni Bowcher QUALIFIED
Murillo MaletItalyBernardo Dominic RENEWAL
David DarakjyJapanStephen Shaw NEGOTIATION
Morrow RutaGermanyIvan Magalhaes NEGOTIATION
Jones VocelkaSpainAnna Fali UNQUALIFIED
Claire TollnerGermanyIvan Magalhaes PROPOSAL
Jeanfrancois VenereArgentinaBernardo Dominic NEW
Faith GillianArgentinaBernardo Dominic NEW
David DarakjyCanadaXuxue Feng RENEWAL
Johnson SergiFranceBernardo Dominic NEW
Deepesh ChuiArgentinaBernardo Dominic QUALIFIED
Jennifer AmigonSpainBernardo Dominic QUALIFIED
Ivar PaprockiFranceBernardo Dominic RENEWAL
Francesco ShinkoCanadaAsiya Javayant QUALIFIED
Maria MarrierArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Greenwood BologniaItalyStephen Shaw NEW
Tony FollerRussiaIvan Magalhaes PROPOSAL
Cody SaylorsIndiaAmy Elsner UNQUALIFIED
Octavia MaletItalyXuxue Feng NEW
Munro FerenczFranceXuxue Feng QUALIFIED
Ricardo GauchoAustraliaStephen Shaw NEW
Wickens NestleJapanAmy Elsner QUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic NEW
Greenwood BologniaCanadaAmy Elsner QUALIFIED
Faith GillianGermanyStephen Shaw NEGOTIATION
Aditya KuskoJapanBernardo Dominic PROPOSAL
Chavez BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues CampainItalyBernardo Dominic QUALIFIED
Juan WieserAustraliaBernardo Dominic UNQUALIFIED
Aditya KuskoIndiaXuxue Feng RENEWAL
Darci PoquetteCanadaIoni Bowcher QUALIFIED
Ivar PaprockiAustraliaAsiya Javayant NEW
Morrow RutaRussiaIvan Magalhaes QUALIFIED
Wickens NestleAustraliaIvan Magalhaes PROPOSAL
Deepesh ChuiAustraliaIvan Magalhaes NEW
Ricardo GauchoJapanIvan Magalhaes QUALIFIED
Leon OldroydItalyAsiya Javayant QUALIFIED
Munro FerenczBrazilXuxue Feng PROPOSAL
Deepesh ChuiSpainAsiya Javayant NEGOTIATION
Kaitlin OstroskyFranceAsiya Javayant QUALIFIED
Kadeem FlosiItalyAsiya Javayant NEW
Frozen Columns
Name
Sinclair Waycott
Ashley Doe
Arvin Albares
Francesco Shinko
Clifford Rim
Ashley Doe
Francesco Shinko
Cody Saylors
Ricardo Gaucho
Arvin Albares
Cody Saylors
Deepesh Chui
Ivar Paprocki
Kadeem Flosi
Wickens Nestle
Smith Glick
Rodrigues Campain
Emily Whobrey
Kadeem Flosi
Isabel Bowley
Ashley Doe
Faith Gillian
Izzy Garufi
Aika Inouye
Munro Ferencz
Faith Gillian
James Butt
Salvatore Stockham
Smith Glick
Leon Oldroyd
Aruna Figeroa
Chavez Briddick
Darci Poquette
Kadeem Flosi
Sinclair Waycott
Sinclair Waycott
Mayumi Kolmetz
Costa Dilliard
Ivar Paprocki
Cody Saylors
Mayumi Kolmetz
Leja Caldarera
Mujtaba Nicka
Aruna Figeroa
Wickens Nestle
Jefferson Schemmer
Stacey Maclead
Ashley Doe
Mayumi Kolmetz
Adams Morasca
IdCountryDate
1000Canada2026-05-04
1001France2026-04-05
1002Japan2026-04-25
1003Germany2026-04-07
1004Italy2026-04-29
1005Spain2026-05-01
1006Australia2026-04-11
1007Italy2026-04-10
1008Germany2026-05-04
1009France2026-04-12
1010Spain2026-04-17
1011Italy2026-05-04
1012Argentina2026-04-25
1013Brazil2026-04-26
1014Japan2026-04-30
1015Germany2026-04-16
1016Russia2026-04-18
1017Australia2026-04-20
1018Italy2026-04-24
1019Brazil2026-04-07
1020Russia2026-05-01
1021India2026-05-02
1022Canada2026-04-25
1023Argentina2026-04-30
1024United Kingdom2026-05-03
1025Brazil2026-04-30
1026Australia2026-04-21
1027Canada2026-04-25
1028Italy2026-04-05
1029United Kingdom2026-05-04
1030Brazil2026-04-09
1031Brazil2026-04-05
1032Canada2026-05-04
1033Canada2026-04-21
1034Brazil2026-04-24
1035Canada2026-04-09
1036Canada2026-04-19
1037Germany2026-04-27
1038Canada2026-05-04
1039France2026-04-08
1040Brazil2026-04-15
1041Italy2026-04-20
1042Argentina2026-04-26
1043Australia2026-04-30
1044Canada2026-05-03
1045Russia2026-05-04
1046Spain2026-04-20
1047Canada2026-05-04
1048Canada2026-04-20
1049United Kingdom2026-04-19

On-Demand Data

NameIdCountryDate
Faith Gillian1000Canada2026-05-02
Emily Whobrey1001Spain2026-04-07
Morrow Ruta1002Japan2026-04-22
Juan Wieser1003Argentina2026-05-03
Johnson Sergi1004India2026-04-07
Morrow Ruta1005France2026-04-21
Deepesh Chui1006Japan2026-04-28
Juan Wieser1007United Kingdom2026-04-15
Arvin Albares1008Australia2026-04-10
Maisha Rulapaugh1009United Kingdom2026-04-05
Misaki Royster1010France2026-04-26
Costa Dilliard1011Brazil2026-04-10
Arvin Albares1012France2026-04-23
Costa Dilliard1013Russia2026-04-08
Aditya Kusko1014India2026-05-01
Aruna Figeroa1015France2026-04-20
Leja Caldarera1016Argentina2026-04-14
Izzy Garufi1017Italy2026-04-09
Stacey Maclead1018Japan2026-04-05
Antonio Caudy1019Germany2026-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimJapanAsiya Javayant RENEWAL
Aika InouyeSpainOnyama Limba QUALIFIED
Maisha RulapaughArgentinaElwin Sharvill PROPOSAL
Maria MarrierFranceOnyama Limba RENEWAL
Leja CaldareraBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois VenereIndiaElwin Sharvill QUALIFIED
Jennifer AmigonUnited KingdomAnna Fali UNQUALIFIED
Nicolas IturbideSpainXuxue Feng PROPOSAL
Johnson SergiItalyStephen Shaw UNQUALIFIED
Aruna FigeroaIndiaXuxue Feng NEGOTIATION
Johnson SergiUnited KingdomAnna Fali PROPOSAL
Munro FerenczItalyAsiya Javayant NEGOTIATION
Emily WhobreyArgentinaAmy Elsner PROPOSAL
Kadeem FlosiCanadaAsiya Javayant QUALIFIED
Deepesh ChuiAustraliaAsiya Javayant QUALIFIED
Claire TollnerRussiaStephen Shaw NEGOTIATION
Ricardo GauchoItalyAsiya Javayant UNQUALIFIED
Smith GlickGermanyIvan Magalhaes UNQUALIFIED
Emily WhobreySpainIvan Magalhaes NEW
Maisha RulapaughAustraliaIoni Bowcher NEW
Julie StensethIndiaAmy Elsner QUALIFIED
Francesco ShinkoUnited KingdomAnna Fali NEGOTIATION
Munro FerenczGermanyStephen Shaw NEW
Kaitlin OstroskyFranceStephen Shaw RENEWAL
Leja CaldareraUnited KingdomAmy Elsner QUALIFIED
Izzy GarufiRussiaStephen Shaw NEGOTIATION
Kadeem FlosiIndiaXuxue Feng UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw RENEWAL
Aika InouyeGermanyXuxue Feng NEW
Antonio CaudyUnited KingdomIoni Bowcher QUALIFIED
Maria MarrierCanadaElwin Sharvill QUALIFIED
Julie StensethArgentinaStephen Shaw NEW
Morrow RutaItalyBernardo Dominic NEGOTIATION
Deepesh ChuiUnited KingdomIoni Bowcher NEW
Ricardo GauchoAustraliaAmy Elsner QUALIFIED
Jefferson SchemmerBrazilAnna Fali NEW
Julie StensethCanadaAmy Elsner NEGOTIATION
Nicolas IturbideRussiaAmy Elsner UNQUALIFIED
Antonio CaudyIndiaAnna Fali PROPOSAL
Rodrigues CampainAustraliaAmy Elsner PROPOSAL

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