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
Deepesh ChuiCanadaIoni Bowcher UNQUALIFIED
Stacey MacleadItalyElwin Sharvill NEGOTIATION
Aruna FigeroaBrazilElwin Sharvill NEGOTIATION
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Silvio SlusarskiFranceElwin Sharvill PROPOSAL
Maria MarrierCanadaIoni Bowcher PROPOSAL
Smith GlickUnited KingdomStephen Shaw RENEWAL
Wickens NestleFranceOnyama Limba NEGOTIATION
Ivar PaprockiIndiaStephen Shaw UNQUALIFIED
David DarakjyBrazilAnna Fali NEGOTIATION
Johnson SergiJapanXuxue Feng QUALIFIED
Smith GlickFranceStephen Shaw UNQUALIFIED
Chavez BriddickAustraliaAsiya Javayant PROPOSAL
Wickens NestleFranceXuxue Feng QUALIFIED
Kadeem FlosiCanadaElwin Sharvill UNQUALIFIED
Silvio SlusarskiIndiaAsiya Javayant UNQUALIFIED
Cody SaylorsRussiaIoni Bowcher RENEWAL
Francesco ShinkoJapanElwin Sharvill NEGOTIATION
Cody SaylorsSpainElwin Sharvill RENEWAL
Clifford RimAustraliaAmy Elsner NEGOTIATION
Nicolas IturbideRussiaElwin Sharvill NEGOTIATION
Jennifer AmigonAustraliaIoni Bowcher NEW
Mayumi KolmetzRussiaXuxue Feng RENEWAL
Isabel BowleyArgentinaAmy Elsner QUALIFIED
Octavia MaletCanadaAsiya Javayant PROPOSAL
Maisha RulapaughCanadaElwin Sharvill NEGOTIATION
Arvin AlbaresJapanIoni Bowcher NEW
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Jones VocelkaSpainOnyama Limba NEW
Aika InouyeJapanAnna Fali RENEWAL
Izzy GarufiGermanyOnyama Limba NEW
Ivar PaprockiGermanyStephen Shaw RENEWAL
Juan WieserGermanyElwin Sharvill PROPOSAL
Faith GillianJapanBernardo Dominic NEGOTIATION
Costa DilliardArgentinaAmy Elsner NEW
Rodrigues CampainJapanOnyama Limba RENEWAL
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
Francesco ShinkoFranceAnna Fali UNQUALIFIED
Antonio CaudyUnited KingdomAnna Fali NEGOTIATION
Izzy GarufiSpainXuxue Feng NEW
Aika InouyeArgentinaAmy Elsner PROPOSAL
Juan WieserAustraliaOnyama Limba PROPOSAL
Leja CaldareraIndiaAmy Elsner PROPOSAL
Ricardo GauchoArgentinaIvan Magalhaes QUALIFIED
Maria MarrierUnited KingdomBernardo Dominic QUALIFIED
Wickens NestleUnited KingdomBernardo Dominic RENEWAL
Chavez BriddickItalyBernardo Dominic QUALIFIED
Jefferson SchemmerFranceElwin Sharvill NEGOTIATION
Deepesh ChuiBrazilAsiya Javayant NEGOTIATION
Ricardo GauchoGermanyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiIndiaXuxue Feng QUALIFIED
Mayumi KolmetzIndiaAmy Elsner NEW
David DarakjyGermanyBernardo Dominic PROPOSAL
Costa DilliardCanadaStephen Shaw QUALIFIED
Morrow RutaUnited KingdomElwin Sharvill NEGOTIATION
Misaki RoysterItalyBernardo Dominic NEGOTIATION
Leon OldroydArgentinaAmy Elsner NEW
Maria MarrierIndiaAsiya Javayant PROPOSAL
Salvatore StockhamGermanyIoni Bowcher NEW
Jefferson SchemmerIndiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoJapan2026-05-12Chanay, Jeffrey A Esq UNQUALIFIED44Asiya Javayant
1001Munro FerenczItaly2026-06-01King, Christopher A Esq UNQUALIFIED97Elwin Sharvill
1002Chavez BriddickRussia2026-05-17Printing Dimensions UNQUALIFIED43Elwin Sharvill
1003Claire TollnerItaly2026-05-06Feiner Bros RENEWAL77Bernardo Dominic
1004Izzy GarufiRussia2026-05-07Chemel, James L Cpa QUALIFIED31Xuxue Feng
1005Sinclair WaycottCanada2026-05-09Chanay, Jeffrey A Esq QUALIFIED28Bernardo Dominic
1006Francesco ShinkoRussia2026-05-13Rousseaux, Michael Esq UNQUALIFIED16Xuxue Feng
1007Chavez BriddickGermany2026-06-04Benton, John B Jr RENEWAL8Bernardo Dominic
1008Jennifer AmigonSpain2026-06-01Commercial Press UNQUALIFIED57Ivan Magalhaes
1009Isabel BowleyArgentina2026-05-30Feiner Bros NEGOTIATION70Onyama Limba
1010Tony FollerBrazil2026-05-26Dorl, James J Esq NEW46Stephen Shaw
1011Aika InouyeCanada2026-05-16Feiner Bros NEGOTIATION45Asiya Javayant
1012Murillo MaletAustralia2026-05-31Dorl, James J Esq RENEWAL54Elwin Sharvill
1013Adams MorascaRussia2026-05-07Dorl, James J Esq PROPOSAL21Ioni Bowcher
1014Smith GlickFrance2026-06-02King, Christopher A Esq RENEWAL24Onyama Limba
1015Faith GillianCanada2026-05-29Buckley Miller Wright NEGOTIATION28Asiya Javayant
1016Wickens NestleRussia2026-05-17Feltz Printing Service RENEWAL56Ivan Magalhaes
1017Wickens NestleUnited Kingdom2026-05-25Printing Dimensions NEGOTIATION55Ioni Bowcher
1018Deepesh ChuiAustralia2026-06-04Commercial Press NEW38Stephen Shaw
1019Arvin AlbaresItaly2026-05-24Chapman, Ross E Esq UNQUALIFIED89Ioni Bowcher
1020Maria MarrierItaly2026-06-01Feltz Printing Service RENEWAL82Xuxue Feng
1021Emily WhobreyIndia2026-05-16King, Christopher A Esq UNQUALIFIED35Bernardo Dominic
1022Greenwood BologniaGermany2026-05-25Dorl, James J Esq QUALIFIED73Asiya Javayant
1023Misaki RoysterSpain2026-05-22Morlong Associates NEGOTIATION32Amy Elsner
1024Salvatore StockhamItaly2026-05-11Feiner Bros RENEWAL45Anna Fali
1025Juan WieserJapan2026-05-12Chemel, James L Cpa UNQUALIFIED70Asiya Javayant
1026Greenwood BologniaAustralia2026-06-02Printing Dimensions QUALIFIED9Ioni Bowcher
1027Emily WhobreyBrazil2026-05-28Truhlar And Truhlar Attys NEW76Onyama Limba
1028Nicolas IturbideFrance2026-05-08Chanay, Jeffrey A Esq NEW38Bernardo Dominic
1029Chavez BriddickCanada2026-05-09Commercial Press PROPOSAL98Amy Elsner
1030James ButtAustralia2026-05-23Rousseaux, Michael Esq RENEWAL96Xuxue Feng
1031Silvio SlusarskiIndia2026-05-31Feiner Bros RENEWAL50Onyama Limba
1032Jeanfrancois VenereIndia2026-05-25Rangoni Of Florence NEGOTIATION20Ioni Bowcher
1033Aruna FigeroaFrance2026-05-08Rousseaux, Michael Esq PROPOSAL73Xuxue Feng
1034David DarakjyIndia2026-05-20King, Christopher A Esq NEW98Anna Fali
1035Sinclair WaycottCanada2026-05-22Truhlar And Truhlar Attys NEW35Asiya Javayant
1036Claire TollnerItaly2026-05-31Buckley Miller Wright PROPOSAL97Anna Fali
1037Izzy GarufiUnited Kingdom2026-05-18Rangoni Of Florence QUALIFIED89Asiya Javayant
1038Sinclair WaycottCanada2026-05-28Chapman, Ross E Esq NEGOTIATION28Anna Fali
1039Ricardo GauchoUnited Kingdom2026-05-23Rousseaux, Michael Esq QUALIFIED6Bernardo Dominic
1040Ricardo GauchoGermany2026-05-06Morlong Associates QUALIFIED79Asiya Javayant
1041Mayumi KolmetzArgentina2026-05-19Chanay, Jeffrey A Esq UNQUALIFIED56Bernardo Dominic
1042Claire TollnerItaly2026-05-21Chanay, Jeffrey A Esq PROPOSAL6Bernardo Dominic
1043Mujtaba NickaAustralia2026-05-24Printing Dimensions PROPOSAL54Xuxue Feng
1044Murillo MaletRussia2026-05-27Printing Dimensions UNQUALIFIED67Anna Fali
1045Jennifer AmigonIndia2026-05-06Morlong Associates NEW15Stephen Shaw
1046Arvin AlbaresIndia2026-05-17Commercial Press RENEWAL60Anna Fali
1047Jefferson SchemmerIndia2026-06-03Rangoni Of Florence RENEWAL10Elwin Sharvill
1048Chavez BriddickArgentina2026-05-11King, Christopher A Esq QUALIFIED82Xuxue Feng
1049Aika InouyeBrazil2026-05-31Feiner Bros NEGOTIATION67Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickBrazilIoni Bowcher NEW
Ivar PaprockiCanadaElwin Sharvill NEW
Adams MorascaIndiaXuxue Feng RENEWAL
Mujtaba NickaArgentinaBernardo Dominic NEW
Adams MorascaAustraliaBernardo Dominic RENEWAL
Ricardo GauchoItalyIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanStephen Shaw NEGOTIATION
Julie StensethRussiaStephen Shaw QUALIFIED
Smith GlickRussiaAnna Fali NEGOTIATION
Maisha RulapaughCanadaAnna Fali NEW
Faith GillianCanadaOnyama Limba RENEWAL
Silvio SlusarskiCanadaIoni Bowcher PROPOSAL
Maisha RulapaughJapanBernardo Dominic NEW
Isabel BowleyRussiaIoni Bowcher QUALIFIED
Leja CaldareraUnited KingdomStephen Shaw QUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes RENEWAL
Johnson SergiSpainIvan Magalhaes NEW
Jefferson SchemmerGermanyOnyama Limba NEGOTIATION
Aditya KuskoCanadaAnna Fali NEW
Murillo MaletCanadaXuxue Feng QUALIFIED
Munro FerenczGermanyStephen Shaw RENEWAL
Nicolas IturbideJapanAnna Fali UNQUALIFIED
Misaki RoysterArgentinaIvan Magalhaes RENEWAL
Rodrigues CampainBrazilAmy Elsner NEGOTIATION
David DarakjyBrazilElwin Sharvill QUALIFIED
Clifford RimBrazilXuxue Feng NEGOTIATION
Antonio CaudyJapanAmy Elsner RENEWAL
Greenwood BologniaGermanyIvan Magalhaes NEGOTIATION
Clifford RimBrazilXuxue Feng NEW
Alejandro PerinUnited KingdomAnna Fali UNQUALIFIED
Ricardo GauchoGermanyIvan Magalhaes NEGOTIATION
Francesco ShinkoItalyAsiya Javayant NEW
Ivar PaprockiSpainXuxue Feng UNQUALIFIED
Octavia MaletUnited KingdomAmy Elsner RENEWAL
Julie StensethIndiaIvan Magalhaes RENEWAL
Maisha RulapaughRussiaAsiya Javayant NEW
Greenwood BologniaBrazilXuxue Feng RENEWAL
Johnson SergiCanadaStephen Shaw RENEWAL
Ricardo GauchoRussiaAmy Elsner UNQUALIFIED
Adams MorascaJapanElwin Sharvill PROPOSAL
Greenwood BologniaRussiaAmy Elsner NEW
Alejandro PerinArgentinaAnna Fali PROPOSAL
Mujtaba NickaItalyElwin Sharvill NEGOTIATION
Smith GlickGermanyAmy Elsner NEGOTIATION
Arvin AlbaresUnited KingdomXuxue Feng PROPOSAL
Juan WieserSpainAsiya Javayant RENEWAL
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Ricardo GauchoGermanyIvan Magalhaes PROPOSAL
Adams MorascaJapanElwin Sharvill NEW
Costa DilliardAustraliaElwin Sharvill RENEWAL
Frozen Columns
Name
Clifford Rim
Ashley Doe
Darci Poquette
Emily Whobrey
Arvin Albares
Clifford Rim
Kaitlin Ostrosky
Cody Saylors
Clifford Rim
Claire Tollner
Wickens Nestle
Silvio Slusarski
Aruna Figeroa
Ricardo Gaucho
Claire Tollner
Juan Wieser
Aditya Kusko
Salvatore Stockham
Emily Whobrey
Tony Foller
Mayumi Kolmetz
Maria Marrier
Alejandro Perin
Murillo Malet
Ricardo Gaucho
Francesco Shinko
Isabel Bowley
Leja Caldarera
Costa Dilliard
Johnson Sergi
Jefferson Schemmer
Maisha Rulapaugh
Aditya Kusko
Munro Ferencz
Mayumi Kolmetz
Francesco Shinko
Claire Tollner
Julie Stenseth
Johnson Sergi
Aruna Figeroa
James Butt
Isabel Bowley
Munro Ferencz
David Darakjy
Deepesh Chui
Johnson Sergi
Darci Poquette
Silvio Slusarski
Aditya Kusko
Morrow Ruta
IdCountryDate
1000France2026-05-15
1001Russia2026-05-17
1002Russia2026-05-25
1003Brazil2026-05-31
1004India2026-05-22
1005Italy2026-06-02
1006Brazil2026-05-23
1007Japan2026-05-31
1008Canada2026-05-06
1009India2026-05-19
1010Japan2026-05-11
1011Australia2026-05-29
1012Canada2026-05-29
1013Italy2026-05-27
1014Spain2026-05-29
1015Japan2026-06-02
1016India2026-06-02
1017India2026-05-09
1018India2026-05-23
1019Brazil2026-05-15
1020Argentina2026-05-17
1021Japan2026-06-03
1022Brazil2026-05-30
1023Australia2026-05-14
1024Spain2026-05-06
1025Italy2026-05-10
1026Spain2026-05-08
1027Italy2026-06-01
1028Italy2026-06-02
1029United Kingdom2026-05-08
1030Japan2026-05-10
1031Brazil2026-05-10
1032Canada2026-05-11
1033Italy2026-05-14
1034Canada2026-05-06
1035India2026-05-29
1036France2026-05-21
1037Spain2026-05-15
1038Canada2026-05-24
1039Spain2026-05-28
1040Brazil2026-05-19
1041Spain2026-05-19
1042Italy2026-05-16
1043Australia2026-05-31
1044United Kingdom2026-05-30
1045Canada2026-05-20
1046France2026-05-11
1047Japan2026-05-20
1048France2026-05-12
1049Spain2026-05-22

On-Demand Data

NameIdCountryDate
Adams Morasca1000Australia2026-05-25
Murillo Malet1001Japan2026-05-29
Antonio Caudy1002United Kingdom2026-05-31
Isabel Bowley1003Japan2026-05-27
Isabel Bowley1004Spain2026-05-08
Maisha Rulapaugh1005India2026-06-04
Greenwood Bolognia1006Argentina2026-05-26
Johnson Sergi1007Germany2026-05-25
Munro Ferencz1008Japan2026-05-25
Leon Oldroyd1009Brazil2026-06-04
Johnson Sergi1010Italy2026-05-29
Chavez Briddick1011Australia2026-05-28
Darci Poquette1012Spain2026-06-02
Jeanfrancois Venere1013Germany2026-05-15
Tony Foller1014Germany2026-05-27
Izzy Garufi1015Japan2026-05-09
Sinclair Waycott1016Brazil2026-05-19
Octavia Malet1017Australia2026-06-02
Smith Glick1018Japan2026-06-02
Aruna Figeroa1019Canada2026-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraGermanyElwin Sharvill NEGOTIATION
Aika InouyeArgentinaBernardo Dominic NEGOTIATION
Costa DilliardFranceElwin Sharvill PROPOSAL
Aditya KuskoCanadaIvan Magalhaes NEW
Antonio CaudyFranceIoni Bowcher UNQUALIFIED
Izzy GarufiCanadaXuxue Feng NEW
Ashley DoeIndiaStephen Shaw UNQUALIFIED
Tony FollerGermanyAnna Fali QUALIFIED
Alejandro PerinItalyAsiya Javayant RENEWAL
Ricardo GauchoFranceIvan Magalhaes RENEWAL
Julie StensethJapanAnna Fali RENEWAL
Emily WhobreyGermanyOnyama Limba RENEWAL
Cody SaylorsGermanyAsiya Javayant RENEWAL
Julie StensethItalyXuxue Feng NEW
Jeanfrancois VenereItalyOnyama Limba PROPOSAL
Claire TollnerRussiaOnyama Limba RENEWAL
Mayumi KolmetzBrazilIoni Bowcher PROPOSAL
Clifford RimAustraliaOnyama Limba UNQUALIFIED
Chavez BriddickFranceAsiya Javayant PROPOSAL
Deepesh ChuiUnited KingdomAnna Fali PROPOSAL
Izzy GarufiBrazilIvan Magalhaes RENEWAL
Aditya KuskoSpainOnyama Limba NEGOTIATION
Emily WhobreyGermanyAnna Fali NEGOTIATION
Jennifer AmigonCanadaIoni Bowcher UNQUALIFIED
Smith GlickCanadaAmy Elsner UNQUALIFIED
Mujtaba NickaArgentinaIvan Magalhaes UNQUALIFIED
Mayumi KolmetzIndiaAnna Fali UNQUALIFIED
Nicolas IturbideItalyXuxue Feng NEW
Morrow RutaArgentinaIvan Magalhaes NEW
Juan WieserGermanyAnna Fali UNQUALIFIED
Faith GillianRussiaStephen Shaw NEW
Stacey MacleadGermanyBernardo Dominic NEW
Jeanfrancois VenereAustraliaXuxue Feng NEGOTIATION
Maisha RulapaughFranceAnna Fali PROPOSAL
James ButtItalyElwin Sharvill NEGOTIATION
Kadeem FlosiRussiaOnyama Limba PROPOSAL
Stacey MacleadGermanyStephen Shaw NEW
Murillo MaletArgentinaAmy Elsner NEW
Misaki RoysterIndiaXuxue Feng PROPOSAL
Mayumi KolmetzGermanyElwin Sharvill 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>