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
Izzy GarufiUnited KingdomAmy Elsner QUALIFIED
Costa DilliardCanadaStephen Shaw UNQUALIFIED
Leon OldroydItalyAmy Elsner UNQUALIFIED
Nicolas IturbideIndiaElwin Sharvill NEGOTIATION
Juan WieserJapanBernardo Dominic NEW
Kadeem FlosiAustraliaAnna Fali PROPOSAL
Jefferson SchemmerJapanAmy Elsner NEW
James ButtUnited KingdomXuxue Feng RENEWAL
Sinclair WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes RENEWAL
Faith GillianJapanAnna Fali NEW
Claire TollnerItalyIvan Magalhaes PROPOSAL
Murillo MaletFranceStephen Shaw UNQUALIFIED
Deepesh ChuiIndiaBernardo Dominic QUALIFIED
Silvio SlusarskiBrazilIoni Bowcher PROPOSAL
Sinclair WaycottAustraliaElwin Sharvill UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner QUALIFIED
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Ivar PaprockiFranceAmy Elsner UNQUALIFIED
Deepesh ChuiItalyElwin Sharvill NEW
Jefferson SchemmerItalyElwin Sharvill PROPOSAL
Julie StensethJapanXuxue Feng UNQUALIFIED
Murillo MaletArgentinaOnyama Limba UNQUALIFIED
Aditya KuskoIndiaOnyama Limba UNQUALIFIED
Morrow RutaCanadaIvan Magalhaes NEW
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Isabel BowleyItalyIvan Magalhaes RENEWAL
Aruna FigeroaAustraliaOnyama Limba UNQUALIFIED
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Smith GlickGermanyIvan Magalhaes NEW
Cody SaylorsItalyAmy Elsner UNQUALIFIED
Leja CaldareraAustraliaAnna Fali QUALIFIED
Murillo MaletBrazilElwin Sharvill NEW
Morrow RutaCanadaBernardo Dominic RENEWAL
Jones VocelkaArgentinaXuxue Feng NEW
Ivar PaprockiItalyAsiya Javayant NEW
Nicolas IturbideBrazilAsiya Javayant NEGOTIATION
Clifford RimArgentinaOnyama Limba PROPOSAL
Stacey MacleadIndiaAmy Elsner PROPOSAL
Kaitlin OstroskyArgentinaAmy Elsner NEW
Greenwood BologniaJapanAmy Elsner RENEWAL
Juan WieserCanadaElwin Sharvill NEGOTIATION
Wickens NestleGermanyIvan Magalhaes UNQUALIFIED
Antonio CaudyFranceIoni Bowcher QUALIFIED
Adams MorascaJapanAsiya Javayant QUALIFIED
Morrow RutaIndiaIvan Magalhaes NEW
Chavez BriddickAustraliaBernardo Dominic NEGOTIATION
Kadeem FlosiRussiaAmy Elsner RENEWAL
Ricardo GauchoFranceAnna Fali NEW
Jefferson SchemmerAustraliaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoIndiaIvan Magalhaes RENEWAL
Smith GlickAustraliaAnna Fali RENEWAL
Munro FerenczUnited KingdomXuxue Feng UNQUALIFIED
Adams MorascaCanadaBernardo Dominic UNQUALIFIED
Juan WieserArgentinaIvan Magalhaes NEGOTIATION
Leja CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Jones VocelkaCanadaAmy Elsner NEW
Faith GillianSpainOnyama Limba PROPOSAL
Greenwood BologniaArgentinaBernardo Dominic NEGOTIATION
Faith GillianSpainOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadJapan2026-05-02Morlong Associates PROPOSAL60Onyama Limba
1001Deepesh ChuiItaly2026-05-19Morlong Associates NEGOTIATION33Amy Elsner
1002Octavia MaletAustralia2026-04-29Feltz Printing Service UNQUALIFIED25Xuxue Feng
1003Leja CaldareraRussia2026-05-17Chapman, Ross E Esq RENEWAL86Asiya Javayant
1004Izzy GarufiItaly2026-05-21Feiner Bros NEW88Bernardo Dominic
1005Morrow RutaSpain2026-05-03Feiner Bros PROPOSAL92Stephen Shaw
1006Ivar PaprockiAustralia2026-05-12King, Christopher A Esq RENEWAL12Elwin Sharvill
1007Rodrigues CampainArgentina2026-05-07Benton, John B Jr PROPOSAL41Ivan Magalhaes
1008Julie StensethItaly2026-05-01Chapman, Ross E Esq NEW97Ivan Magalhaes
1009Julie StensethAustralia2026-05-01Printing Dimensions NEW85Xuxue Feng
1010Silvio SlusarskiUnited Kingdom2026-05-06Printing Dimensions NEW86Anna Fali
1011Mayumi KolmetzAustralia2026-05-23Benton, John B Jr PROPOSAL61Xuxue Feng
1012Aruna FigeroaArgentina2026-04-27Printing Dimensions NEW62Ioni Bowcher
1013Aruna FigeroaRussia2026-05-06Chanay, Jeffrey A Esq RENEWAL72Elwin Sharvill
1014Smith GlickItaly2026-05-26Feiner Bros QUALIFIED36Asiya Javayant
1015Kadeem FlosiIndia2026-05-16Chapman, Ross E Esq QUALIFIED79Elwin Sharvill
1016Stacey MacleadRussia2026-04-27Chapman, Ross E Esq PROPOSAL91Elwin Sharvill
1017Clifford RimRussia2026-05-06Buckley Miller Wright NEGOTIATION43Stephen Shaw
1018Morrow RutaSpain2026-05-22Printing Dimensions RENEWAL36Ivan Magalhaes
1019Ivar PaprockiCanada2026-05-14Chapman, Ross E Esq UNQUALIFIED28Asiya Javayant
1020Claire TollnerGermany2026-05-11Rangoni Of Florence PROPOSAL69Elwin Sharvill
1021Johnson SergiJapan2026-05-24Morlong Associates PROPOSAL9Ioni Bowcher
1022Jeanfrancois VenereJapan2026-05-09Buckley Miller Wright QUALIFIED54Elwin Sharvill
1023Claire TollnerJapan2026-05-17Buckley Miller Wright NEW67Elwin Sharvill
1024Stacey MacleadFrance2026-05-08Morlong Associates NEGOTIATION43Xuxue Feng
1025Leja CaldareraAustralia2026-04-30King, Christopher A Esq NEGOTIATION86Onyama Limba
1026Aika InouyeSpain2026-05-17Buckley Miller Wright PROPOSAL25Xuxue Feng
1027Jennifer AmigonGermany2026-05-02Chapman, Ross E Esq NEW75Ioni Bowcher
1028Sinclair WaycottUnited Kingdom2026-05-12Rousseaux, Michael Esq RENEWAL16Ioni Bowcher
1029Ivar PaprockiBrazil2026-05-06Rousseaux, Michael Esq PROPOSAL19Anna Fali
1030David DarakjyFrance2026-04-29Rangoni Of Florence NEW55Xuxue Feng
1031David DarakjyCanada2026-05-09Morlong Associates NEW31Elwin Sharvill
1032Aruna FigeroaSpain2026-05-22Dorl, James J Esq QUALIFIED23Ioni Bowcher
1033Rodrigues CampainUnited Kingdom2026-05-15King, Christopher A Esq RENEWAL15Asiya Javayant
1034Mujtaba NickaIndia2026-05-26Feltz Printing Service PROPOSAL11Asiya Javayant
1035Greenwood BologniaSpain2026-04-29Rangoni Of Florence QUALIFIED77Amy Elsner
1036Tony FollerBrazil2026-05-04Buckley Miller Wright UNQUALIFIED23Bernardo Dominic
1037Costa DilliardJapan2026-05-20Chapman, Ross E Esq NEW62Onyama Limba
1038Maisha RulapaughArgentina2026-05-12Rangoni Of Florence NEW77Asiya Javayant
1039Stacey MacleadBrazil2026-05-06Chapman, Ross E Esq PROPOSAL94Elwin Sharvill
1040Ashley DoeSpain2026-05-14Morlong Associates PROPOSAL30Amy Elsner
1041Ricardo GauchoFrance2026-05-16King, Christopher A Esq QUALIFIED70Amy Elsner
1042Ricardo GauchoIndia2026-05-03Chapman, Ross E Esq RENEWAL73Ioni Bowcher
1043Costa DilliardFrance2026-05-26Dorl, James J Esq UNQUALIFIED70Ivan Magalhaes
1044Silvio SlusarskiIndia2026-05-17Chapman, Ross E Esq NEW82Stephen Shaw
1045Aika InouyeIndia2026-04-27Rousseaux, Michael Esq NEGOTIATION27Ioni Bowcher
1046Kadeem FlosiRussia2026-05-06Chapman, Ross E Esq PROPOSAL69Onyama Limba
1047Salvatore StockhamCanada2026-05-13Printing Dimensions PROPOSAL7Xuxue Feng
1048Maisha RulapaughGermany2026-05-20Printing Dimensions QUALIFIED58Bernardo Dominic
1049Johnson SergiItaly2026-05-26Morlong Associates NEW89Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinUnited KingdomOnyama Limba QUALIFIED
Alejandro PerinCanadaAmy Elsner QUALIFIED
Sinclair WaycottRussiaXuxue Feng UNQUALIFIED
Octavia MaletSpainOnyama Limba PROPOSAL
Maisha RulapaughCanadaAmy Elsner RENEWAL
Ivar PaprockiJapanOnyama Limba PROPOSAL
Mayumi KolmetzBrazilStephen Shaw UNQUALIFIED
Maria MarrierItalyBernardo Dominic RENEWAL
Aika InouyeAustraliaAnna Fali NEW
Emily WhobreyArgentinaAsiya Javayant UNQUALIFIED
Julie StensethCanadaOnyama Limba QUALIFIED
Claire TollnerArgentinaIoni Bowcher NEW
Leja CaldareraBrazilAsiya Javayant NEGOTIATION
Faith GillianBrazilOnyama Limba UNQUALIFIED
Faith GillianRussiaXuxue Feng NEW
Isabel BowleyRussiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereRussiaIoni Bowcher PROPOSAL
James ButtCanadaElwin Sharvill RENEWAL
Ivar PaprockiBrazilAnna Fali QUALIFIED
Maisha RulapaughBrazilBernardo Dominic NEGOTIATION
Julie StensethCanadaXuxue Feng QUALIFIED
Nicolas IturbideSpainElwin Sharvill QUALIFIED
David DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Ivar PaprockiArgentinaElwin Sharvill PROPOSAL
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Mayumi KolmetzFranceAmy Elsner NEGOTIATION
Maisha RulapaughAustraliaIvan Magalhaes QUALIFIED
Munro FerenczFranceStephen Shaw UNQUALIFIED
Jeanfrancois VenereRussiaStephen Shaw PROPOSAL
Wickens NestleRussiaOnyama Limba NEW
Ivar PaprockiSpainAsiya Javayant RENEWAL
Mayumi KolmetzJapanAsiya Javayant QUALIFIED
Misaki RoysterJapanIoni Bowcher RENEWAL
Johnson SergiBrazilAnna Fali QUALIFIED
Aika InouyeJapanStephen Shaw NEW
Cody SaylorsIndiaElwin Sharvill UNQUALIFIED
Wickens NestleIndiaXuxue Feng PROPOSAL
Costa DilliardAustraliaElwin Sharvill RENEWAL
Kaitlin OstroskyArgentinaOnyama Limba QUALIFIED
Maisha RulapaughGermanyAsiya Javayant UNQUALIFIED
Juan WieserSpainAmy Elsner QUALIFIED
Jefferson SchemmerGermanyAnna Fali NEW
Clifford RimGermanyXuxue Feng NEW
Jones VocelkaAustraliaAsiya Javayant RENEWAL
Tony FollerUnited KingdomAnna Fali NEW
Johnson SergiIndiaAnna Fali PROPOSAL
Adams MorascaCanadaElwin Sharvill QUALIFIED
Misaki RoysterCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraItalyBernardo Dominic RENEWAL
Aika InouyeItalyAnna Fali QUALIFIED
Frozen Columns
Name
Deepesh Chui
Wickens Nestle
Johnson Sergi
Izzy Garufi
Sinclair Waycott
Jeanfrancois Venere
Jennifer Amigon
Leja Caldarera
Silvio Slusarski
Deepesh Chui
Nicolas Iturbide
Izzy Garufi
Isabel Bowley
Aika Inouye
Murillo Malet
Ivar Paprocki
Jennifer Amigon
Johnson Sergi
Salvatore Stockham
Kadeem Flosi
Misaki Royster
Adams Morasca
Leja Caldarera
Antonio Caudy
David Darakjy
Ivar Paprocki
James Butt
Alejandro Perin
Costa Dilliard
Aruna Figeroa
Julie Stenseth
Aditya Kusko
Greenwood Bolognia
Kadeem Flosi
Leon Oldroyd
Jennifer Amigon
Octavia Malet
Misaki Royster
Emily Whobrey
Izzy Garufi
Chavez Briddick
Morrow Ruta
Salvatore Stockham
Darci Poquette
Sinclair Waycott
Sinclair Waycott
Adams Morasca
Jones Vocelka
Smith Glick
Aditya Kusko
IdCountryDate
1000France2026-05-12
1001Spain2026-05-08
1002Brazil2026-05-06
1003Argentina2026-04-28
1004Russia2026-05-19
1005Germany2026-05-02
1006Brazil2026-05-08
1007Spain2026-05-05
1008Australia2026-05-05
1009Brazil2026-05-22
1010India2026-04-28
1011Italy2026-04-28
1012Australia2026-04-27
1013Japan2026-05-25
1014Australia2026-05-19
1015India2026-05-18
1016Germany2026-05-23
1017Russia2026-05-11
1018Germany2026-05-25
1019Australia2026-05-08
1020Spain2026-04-30
1021Argentina2026-04-28
1022France2026-05-12
1023Canada2026-05-04
1024Canada2026-05-15
1025Brazil2026-05-04
1026Brazil2026-05-16
1027Canada2026-05-16
1028Canada2026-05-14
1029Italy2026-05-01
1030Russia2026-05-09
1031France2026-05-17
1032Australia2026-05-10
1033Brazil2026-05-16
1034Germany2026-04-29
1035Canada2026-05-23
1036Canada2026-05-23
1037Spain2026-05-02
1038Russia2026-05-07
1039Spain2026-05-18
1040Brazil2026-05-18
1041Germany2026-05-06
1042Italy2026-05-22
1043Japan2026-05-15
1044Brazil2026-05-04
1045France2026-05-18
1046Canada2026-05-15
1047Argentina2026-05-22
1048Spain2026-05-25
1049Spain2026-05-20

On-Demand Data

NameIdCountryDate
Aditya Kusko1000Spain2026-05-01
James Butt1001Brazil2026-04-28
Aruna Figeroa1002India2026-05-15
Chavez Briddick1003Japan2026-05-06
Aruna Figeroa1004Brazil2026-05-05
Izzy Garufi1005Argentina2026-05-08
Smith Glick1006Australia2026-05-22
Ashley Doe1007Brazil2026-05-04
Jennifer Amigon1008Canada2026-05-02
David Darakjy1009Japan2026-05-10
Kadeem Flosi1010Italy2026-04-27
Jefferson Schemmer1011United Kingdom2026-05-05
Juan Wieser1012Brazil2026-05-17
Maria Marrier1013Brazil2026-04-29
Chavez Briddick1014Spain2026-05-03
Rodrigues Campain1015Canada2026-05-24
Murillo Malet1016Germany2026-05-03
Maria Marrier1017Brazil2026-05-11
Costa Dilliard1018Argentina2026-05-05
Tony Foller1019Canada2026-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadRussiaAsiya Javayant RENEWAL
Emily WhobreyGermanyStephen Shaw RENEWAL
Ricardo GauchoUnited KingdomOnyama Limba QUALIFIED
Jefferson SchemmerAustraliaStephen Shaw NEGOTIATION
Juan WieserArgentinaIoni Bowcher UNQUALIFIED
Darci PoquetteCanadaStephen Shaw PROPOSAL
Arvin AlbaresBrazilOnyama Limba QUALIFIED
Sinclair WaycottBrazilOnyama Limba UNQUALIFIED
Stacey MacleadBrazilAmy Elsner RENEWAL
Johnson SergiArgentinaXuxue Feng QUALIFIED
Smith GlickRussiaElwin Sharvill NEW
Deepesh ChuiGermanyOnyama Limba NEW
Ricardo GauchoBrazilXuxue Feng RENEWAL
Juan WieserArgentinaAsiya Javayant RENEWAL
Antonio CaudyBrazilElwin Sharvill NEW
Kaitlin OstroskySpainXuxue Feng NEW
Arvin AlbaresBrazilAmy Elsner QUALIFIED
Octavia MaletGermanyElwin Sharvill UNQUALIFIED
Ivar PaprockiItalyBernardo Dominic UNQUALIFIED
Murillo MaletUnited KingdomBernardo Dominic NEGOTIATION
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Jones VocelkaAustraliaStephen Shaw NEW
Chavez BriddickUnited KingdomElwin Sharvill NEGOTIATION
Greenwood BologniaIndiaIvan Magalhaes UNQUALIFIED
Clifford RimRussiaXuxue Feng NEGOTIATION
Sinclair WaycottArgentinaOnyama Limba RENEWAL
Cody SaylorsAustraliaAmy Elsner NEW
Ashley DoeArgentinaElwin Sharvill NEW
Kaitlin OstroskyFranceElwin Sharvill RENEWAL
Antonio CaudyBrazilIoni Bowcher QUALIFIED
Antonio CaudyArgentinaElwin Sharvill PROPOSAL
Salvatore StockhamItalyIoni Bowcher UNQUALIFIED
Mayumi KolmetzArgentinaElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaOnyama Limba UNQUALIFIED
Octavia MaletCanadaAnna Fali NEW
Ashley DoeItalyAnna Fali RENEWAL
Rodrigues CampainUnited KingdomIoni Bowcher QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher NEGOTIATION
Salvatore StockhamUnited KingdomAsiya Javayant RENEWAL
Antonio CaudyCanadaIoni Bowcher UNQUALIFIED

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