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
Ashley DoeAustraliaXuxue Feng PROPOSAL
Darci PoquetteGermanyAsiya Javayant UNQUALIFIED
Adams MorascaArgentinaElwin Sharvill RENEWAL
Rodrigues CampainAustraliaAmy Elsner PROPOSAL
Antonio CaudyJapanStephen Shaw NEW
Leon OldroydSpainOnyama Limba NEGOTIATION
Isabel BowleyJapanOnyama Limba RENEWAL
Stacey MacleadItalyAnna Fali PROPOSAL
Deepesh ChuiCanadaXuxue Feng UNQUALIFIED
James ButtUnited KingdomAnna Fali QUALIFIED
Silvio SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Ashley DoeSpainElwin Sharvill NEW
Mujtaba NickaItalyAnna Fali QUALIFIED
Smith GlickFranceAmy Elsner QUALIFIED
Sinclair WaycottJapanAsiya Javayant UNQUALIFIED
Costa DilliardUnited KingdomAnna Fali NEGOTIATION
Salvatore StockhamSpainAnna Fali QUALIFIED
Cody SaylorsSpainXuxue Feng PROPOSAL
Maria MarrierCanadaIvan Magalhaes NEGOTIATION
Morrow RutaFranceAmy Elsner UNQUALIFIED
Maisha RulapaughFranceOnyama Limba QUALIFIED
Mujtaba NickaGermanyAmy Elsner RENEWAL
Misaki RoysterJapanElwin Sharvill NEW
Antonio CaudyItalyIoni Bowcher UNQUALIFIED
Juan WieserFranceIoni Bowcher RENEWAL
Wickens NestleFranceStephen Shaw PROPOSAL
Chavez BriddickIndiaOnyama Limba RENEWAL
Ashley DoeFranceIoni Bowcher UNQUALIFIED
Murillo MaletFranceOnyama Limba QUALIFIED
Antonio CaudySpainAnna Fali NEGOTIATION
Aika InouyeRussiaIvan Magalhaes QUALIFIED
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Greenwood BologniaArgentinaAmy Elsner QUALIFIED
David DarakjyUnited KingdomIoni Bowcher RENEWAL
Smith GlickCanadaOnyama Limba QUALIFIED
Jeanfrancois VenereBrazilElwin Sharvill QUALIFIED
Kaitlin OstroskyArgentinaOnyama Limba NEW
Arvin AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Jennifer AmigonUnited KingdomBernardo Dominic NEGOTIATION
Maisha RulapaughFranceAnna Fali NEW
Isabel BowleySpainXuxue Feng UNQUALIFIED
Stacey MacleadCanadaBernardo Dominic QUALIFIED
Aruna FigeroaRussiaAsiya Javayant NEW
Munro FerenczCanadaElwin Sharvill UNQUALIFIED
Nicolas IturbideAustraliaElwin Sharvill QUALIFIED
Maria MarrierItalyXuxue Feng PROPOSAL
Julie StensethArgentinaOnyama Limba NEW
Jones VocelkaSpainAsiya Javayant RENEWAL
Julie StensethAustraliaIvan Magalhaes PROPOSAL
Greenwood BologniaCanadaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsUnited KingdomStephen Shaw NEGOTIATION
Murillo MaletUnited KingdomStephen Shaw NEW
James ButtSpainAsiya Javayant QUALIFIED
Kaitlin OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Morrow RutaUnited KingdomXuxue Feng RENEWAL
Antonio CaudyCanadaBernardo Dominic NEGOTIATION
Tony FollerArgentinaStephen Shaw UNQUALIFIED
Johnson SergiRussiaAsiya Javayant NEW
Jefferson SchemmerUnited KingdomAmy Elsner UNQUALIFIED
Arvin AlbaresUnited KingdomXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleGermany2026-03-28Commercial Press NEW68Asiya Javayant
1001Nicolas IturbideSpain2026-04-16Benton, John B Jr NEW31Ivan Magalhaes
1002Jennifer AmigonSpain2026-03-27King, Christopher A Esq NEGOTIATION80Xuxue Feng
1003Aruna FigeroaGermany2026-04-12Rangoni Of Florence NEW53Ivan Magalhaes
1004Faith GillianRussia2026-03-26Commercial Press NEGOTIATION66Onyama Limba
1005Jefferson SchemmerBrazil2026-04-19Chanay, Jeffrey A Esq QUALIFIED26Ivan Magalhaes
1006Emily WhobreyItaly2026-03-26Truhlar And Truhlar Attys NEGOTIATION7Onyama Limba
1007Deepesh ChuiRussia2026-04-16Printing Dimensions QUALIFIED66Bernardo Dominic
1008Jennifer AmigonIndia2026-04-02Commercial Press RENEWAL58Elwin Sharvill
1009Jeanfrancois VenereJapan2026-04-02Rousseaux, Michael Esq UNQUALIFIED17Xuxue Feng
1010Sinclair WaycottGermany2026-04-06Morlong Associates NEW74Stephen Shaw
1011Faith GillianRussia2026-04-23Chapman, Ross E Esq NEGOTIATION19Stephen Shaw
1012Maria MarrierArgentina2026-04-04Rousseaux, Michael Esq RENEWAL82Ivan Magalhaes
1013Costa DilliardSpain2026-04-03Commercial Press PROPOSAL6Ivan Magalhaes
1014Murillo MaletItaly2026-04-01Truhlar And Truhlar Attys NEW55Onyama Limba
1015Salvatore StockhamGermany2026-04-01Dorl, James J Esq RENEWAL31Onyama Limba
1016Munro FerenczGermany2026-03-26Morlong Associates QUALIFIED13Ioni Bowcher
1017Deepesh ChuiItaly2026-04-20Chanay, Jeffrey A Esq PROPOSAL5Anna Fali
1018David DarakjyArgentina2026-04-10Dorl, James J Esq RENEWAL55Asiya Javayant
1019Aruna FigeroaJapan2026-04-12King, Christopher A Esq NEGOTIATION55Amy Elsner
1020Greenwood BologniaGermany2026-04-14Morlong Associates NEW90Bernardo Dominic
1021Francesco ShinkoRussia2026-04-12King, Christopher A Esq NEGOTIATION64Onyama Limba
1022Murillo MaletRussia2026-03-29Commercial Press UNQUALIFIED19Ioni Bowcher
1023Aruna FigeroaCanada2026-03-25Benton, John B Jr RENEWAL46Ivan Magalhaes
1024Octavia MaletItaly2026-03-30Rangoni Of Florence NEGOTIATION54Asiya Javayant
1025Sinclair WaycottIndia2026-04-18Benton, John B Jr NEGOTIATION77Asiya Javayant
1026Adams MorascaIndia2026-04-13Chapman, Ross E Esq PROPOSAL48Asiya Javayant
1027Salvatore StockhamGermany2026-04-23Printing Dimensions NEW32Bernardo Dominic
1028David DarakjyArgentina2026-04-03Feiner Bros NEW76Elwin Sharvill
1029Stacey MacleadItaly2026-04-02Chemel, James L Cpa QUALIFIED4Ivan Magalhaes
1030Ricardo GauchoIndia2026-03-25Dorl, James J Esq RENEWAL38Asiya Javayant
1031Claire TollnerJapan2026-03-28Rousseaux, Michael Esq PROPOSAL0Amy Elsner
1032Tony FollerUnited Kingdom2026-04-16Printing Dimensions UNQUALIFIED53Onyama Limba
1033Jefferson SchemmerIndia2026-04-04Truhlar And Truhlar Attys PROPOSAL57Ioni Bowcher
1034Salvatore StockhamCanada2026-04-17Benton, John B Jr PROPOSAL21Ioni Bowcher
1035Leon OldroydSpain2026-03-27Rousseaux, Michael Esq RENEWAL54Anna Fali
1036Kadeem FlosiGermany2026-04-22Chapman, Ross E Esq RENEWAL42Stephen Shaw
1037Munro FerenczIndia2026-04-02Commercial Press NEGOTIATION42Stephen Shaw
1038Maisha RulapaughItaly2026-04-02Commercial Press QUALIFIED98Elwin Sharvill
1039Deepesh ChuiItaly2026-03-28Rangoni Of Florence PROPOSAL82Ivan Magalhaes
1040Deepesh ChuiBrazil2026-04-06Feltz Printing Service NEW23Asiya Javayant
1041Kaitlin OstroskyCanada2026-04-13Chemel, James L Cpa NEW67Stephen Shaw
1042Leon OldroydRussia2026-03-29Chapman, Ross E Esq UNQUALIFIED10Stephen Shaw
1043Jefferson SchemmerAustralia2026-04-03Morlong Associates QUALIFIED71Bernardo Dominic
1044James ButtIndia2026-03-25Chapman, Ross E Esq UNQUALIFIED40Ioni Bowcher
1045Aruna FigeroaGermany2026-03-25Chanay, Jeffrey A Esq PROPOSAL5Anna Fali
1046Aika InouyeUnited Kingdom2026-04-04Benton, John B Jr NEW77Stephen Shaw
1047Izzy GarufiCanada2026-03-31Feltz Printing Service NEGOTIATION76Amy Elsner
1048Jeanfrancois VenereIndia2026-03-28Printing Dimensions NEW45Ioni Bowcher
1049Kaitlin OstroskyGermany2026-04-09Rangoni Of Florence PROPOSAL64Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinFranceElwin Sharvill NEW
Ricardo GauchoGermanyIoni Bowcher QUALIFIED
Smith GlickAustraliaIoni Bowcher NEGOTIATION
Stacey MacleadRussiaOnyama Limba NEGOTIATION
Adams MorascaSpainStephen Shaw NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher QUALIFIED
Antonio CaudyArgentinaAsiya Javayant NEW
Jennifer AmigonRussiaIoni Bowcher RENEWAL
Ashley DoeCanadaAmy Elsner NEGOTIATION
Mayumi KolmetzUnited KingdomXuxue Feng QUALIFIED
Johnson SergiCanadaBernardo Dominic PROPOSAL
Claire TollnerAustraliaAsiya Javayant NEW
Aika InouyeItalyAsiya Javayant PROPOSAL
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Tony FollerJapanOnyama Limba QUALIFIED
Maisha RulapaughCanadaIoni Bowcher PROPOSAL
Adams MorascaArgentinaBernardo Dominic UNQUALIFIED
Leja CaldareraItalyIoni Bowcher QUALIFIED
Aruna FigeroaIndiaAmy Elsner NEGOTIATION
Mayumi KolmetzArgentinaAsiya Javayant UNQUALIFIED
Juan WieserJapanBernardo Dominic UNQUALIFIED
Maria MarrierGermanyStephen Shaw PROPOSAL
Juan WieserGermanyAsiya Javayant UNQUALIFIED
Jennifer AmigonItalyBernardo Dominic QUALIFIED
Adams MorascaRussiaBernardo Dominic QUALIFIED
Faith GillianAustraliaStephen Shaw NEW
Jennifer AmigonItalyIvan Magalhaes RENEWAL
David DarakjyItalyAmy Elsner RENEWAL
Cody SaylorsIndiaBernardo Dominic QUALIFIED
Alejandro PerinAustraliaAsiya Javayant RENEWAL
Alejandro PerinFranceAnna Fali QUALIFIED
Mayumi KolmetzIndiaElwin Sharvill UNQUALIFIED
Murillo MaletItalyBernardo Dominic NEGOTIATION
Jefferson SchemmerGermanyElwin Sharvill NEW
Ricardo GauchoAustraliaStephen Shaw PROPOSAL
Deepesh ChuiRussiaIoni Bowcher NEGOTIATION
Tony FollerIndiaIvan Magalhaes QUALIFIED
Maisha RulapaughBrazilIvan Magalhaes NEGOTIATION
Adams MorascaItalyIoni Bowcher NEW
Stacey MacleadUnited KingdomXuxue Feng NEW
Francesco ShinkoItalyAsiya Javayant UNQUALIFIED
Wickens NestleUnited KingdomAsiya Javayant QUALIFIED
Smith GlickIndiaElwin Sharvill NEGOTIATION
Maria MarrierBrazilElwin Sharvill QUALIFIED
Murillo MaletSpainElwin Sharvill RENEWAL
Wickens NestleRussiaIoni Bowcher UNQUALIFIED
Julie StensethJapanOnyama Limba NEW
Jennifer AmigonFranceStephen Shaw QUALIFIED
Mayumi KolmetzArgentinaElwin Sharvill NEW
Jones VocelkaBrazilBernardo Dominic RENEWAL
Frozen Columns
Name
Wickens Nestle
Rodrigues Campain
Stacey Maclead
Maria Marrier
Maria Marrier
Aika Inouye
Morrow Ruta
Leja Caldarera
Aruna Figeroa
Johnson Sergi
Arvin Albares
Isabel Bowley
Silvio Slusarski
Juan Wieser
Silvio Slusarski
Deepesh Chui
Ricardo Gaucho
Misaki Royster
Chavez Briddick
Misaki Royster
Tony Foller
Silvio Slusarski
Darci Poquette
Munro Ferencz
Francesco Shinko
Deepesh Chui
Juan Wieser
Leon Oldroyd
Jeanfrancois Venere
Aditya Kusko
James Butt
Adams Morasca
Misaki Royster
Deepesh Chui
Isabel Bowley
Chavez Briddick
Ricardo Gaucho
Leon Oldroyd
Antonio Caudy
Misaki Royster
Octavia Malet
Jeanfrancois Venere
Darci Poquette
Silvio Slusarski
Stacey Maclead
Izzy Garufi
Emily Whobrey
Aika Inouye
Deepesh Chui
Mayumi Kolmetz
IdCountryDate
1000Italy2026-03-27
1001Spain2026-04-13
1002Brazil2026-04-13
1003United Kingdom2026-04-01
1004United Kingdom2026-04-17
1005Italy2026-03-30
1006France2026-03-30
1007Spain2026-03-28
1008Argentina2026-03-30
1009Spain2026-04-12
1010United Kingdom2026-04-02
1011Canada2026-04-14
1012France2026-03-27
1013Japan2026-04-22
1014Argentina2026-03-28
1015Germany2026-04-20
1016France2026-04-06
1017United Kingdom2026-04-23
1018Italy2026-03-31
1019Argentina2026-04-04
1020Germany2026-04-07
1021Germany2026-04-11
1022Russia2026-04-08
1023Spain2026-04-14
1024United Kingdom2026-04-09
1025Germany2026-03-25
1026United Kingdom2026-03-26
1027Spain2026-04-12
1028Italy2026-04-07
1029Canada2026-04-02
1030United Kingdom2026-03-27
1031Australia2026-04-02
1032France2026-04-13
1033Japan2026-04-16
1034Italy2026-04-11
1035United Kingdom2026-04-12
1036Spain2026-04-23
1037Spain2026-04-13
1038Russia2026-04-05
1039United Kingdom2026-04-23
1040Spain2026-04-14
1041Italy2026-04-18
1042Germany2026-04-23
1043Spain2026-03-31
1044France2026-04-20
1045Japan2026-04-21
1046Japan2026-04-19
1047Spain2026-04-23
1048Italy2026-04-09
1049Spain2026-04-16

On-Demand Data

NameIdCountryDate
Adams Morasca1000Russia2026-03-30
Nicolas Iturbide1001United Kingdom2026-03-26
Jeanfrancois Venere1002India2026-04-21
Ricardo Gaucho1003Italy2026-04-01
Aditya Kusko1004Russia2026-04-21
Leon Oldroyd1005Italy2026-04-20
Misaki Royster1006Argentina2026-04-13
Kaitlin Ostrosky1007Australia2026-04-05
Juan Wieser1008Argentina2026-04-09
Octavia Malet1009Japan2026-04-14
Francesco Shinko1010Spain2026-04-18
Juan Wieser1011Spain2026-04-06
Faith Gillian1012Russia2026-04-17
Costa Dilliard1013Japan2026-04-16
Tony Foller1014Australia2026-03-25
Jones Vocelka1015Canada2026-04-07
Leja Caldarera1016Japan2026-04-09
Darci Poquette1017Germany2026-03-29
Costa Dilliard1018United Kingdom2026-04-02
Darci Poquette1019Italy2026-03-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeArgentinaIvan Magalhaes QUALIFIED
Ivar PaprockiAustraliaIoni Bowcher PROPOSAL
Jennifer AmigonArgentinaAnna Fali RENEWAL
Maria MarrierArgentinaAmy Elsner RENEWAL
Misaki RoysterIndiaAsiya Javayant NEW
Julie StensethAustraliaAmy Elsner RENEWAL
Munro FerenczFranceXuxue Feng PROPOSAL
Aika InouyeJapanAmy Elsner NEW
Isabel BowleyItalyStephen Shaw UNQUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant NEW
Tony FollerSpainOnyama Limba NEW
Salvatore StockhamIndiaAnna Fali RENEWAL
Munro FerenczAustraliaAnna Fali PROPOSAL
Nicolas IturbideFranceBernardo Dominic RENEWAL
Leon OldroydAustraliaOnyama Limba NEGOTIATION
Leon OldroydItalyIvan Magalhaes UNQUALIFIED
Misaki RoysterItalyOnyama Limba RENEWAL
Adams MorascaSpainIoni Bowcher RENEWAL
Deepesh ChuiSpainElwin Sharvill NEW
Misaki RoysterFranceXuxue Feng PROPOSAL
Jennifer AmigonFranceAnna Fali UNQUALIFIED
Ashley DoeArgentinaAnna Fali RENEWAL
Tony FollerGermanyIvan Magalhaes RENEWAL
Silvio SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng PROPOSAL
Claire TollnerAustraliaAsiya Javayant NEGOTIATION
Claire TollnerJapanBernardo Dominic NEW
Juan WieserJapanElwin Sharvill NEGOTIATION
Aruna FigeroaGermanyStephen Shaw PROPOSAL
Isabel BowleyIndiaAmy Elsner PROPOSAL
Salvatore StockhamAustraliaAsiya Javayant RENEWAL
Smith GlickAustraliaXuxue Feng UNQUALIFIED
Tony FollerJapanAmy Elsner UNQUALIFIED
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Antonio CaudyAustraliaAsiya Javayant UNQUALIFIED
Smith GlickBrazilOnyama Limba RENEWAL
Ashley DoeItalyAnna Fali QUALIFIED
Jefferson SchemmerAustraliaAnna Fali NEGOTIATION
Aika InouyeSpainBernardo Dominic QUALIFIED
Leja CaldareraCanadaOnyama Limba 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>