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
Costa DilliardBrazilAmy Elsner UNQUALIFIED
Kadeem FlosiJapanStephen Shaw NEW
Nicolas IturbideCanadaXuxue Feng NEW
Jeanfrancois VenereUnited KingdomBernardo Dominic UNQUALIFIED
Leja CaldareraUnited KingdomXuxue Feng PROPOSAL
Smith GlickIndiaIvan Magalhaes QUALIFIED
Kaitlin OstroskyItalyOnyama Limba PROPOSAL
Cody SaylorsBrazilXuxue Feng PROPOSAL
Munro FerenczSpainStephen Shaw UNQUALIFIED
Munro FerenczFranceAsiya Javayant QUALIFIED
Munro FerenczAustraliaAmy Elsner NEW
Izzy GarufiIndiaIoni Bowcher PROPOSAL
Wickens NestleRussiaXuxue Feng QUALIFIED
Ricardo GauchoRussiaAsiya Javayant NEGOTIATION
Alejandro PerinFranceElwin Sharvill UNQUALIFIED
Costa DilliardFranceAsiya Javayant UNQUALIFIED
Nicolas IturbideUnited KingdomStephen Shaw NEW
Juan WieserArgentinaIoni Bowcher UNQUALIFIED
Deepesh ChuiAustraliaOnyama Limba PROPOSAL
Rodrigues CampainBrazilBernardo Dominic RENEWAL
Salvatore StockhamSpainBernardo Dominic PROPOSAL
Greenwood BologniaGermanyAsiya Javayant NEGOTIATION
Leon OldroydIndiaElwin Sharvill NEW
Ricardo GauchoBrazilAsiya Javayant PROPOSAL
Julie StensethUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore StockhamItalyAmy Elsner QUALIFIED
Murillo MaletSpainIvan Magalhaes RENEWAL
Tony FollerBrazilAmy Elsner RENEWAL
Isabel BowleySpainAmy Elsner UNQUALIFIED
Alejandro PerinFranceStephen Shaw NEW
Misaki RoysterAustraliaIvan Magalhaes NEGOTIATION
Ivar PaprockiFranceIoni Bowcher NEGOTIATION
James ButtIndiaIvan Magalhaes RENEWAL
Smith GlickJapanAsiya Javayant NEW
Darci PoquetteJapanAsiya Javayant QUALIFIED
Cody SaylorsIndiaStephen Shaw UNQUALIFIED
Aika InouyeArgentinaBernardo Dominic RENEWAL
David DarakjyIndiaBernardo Dominic NEW
Cody SaylorsAustraliaXuxue Feng NEGOTIATION
Jennifer AmigonJapanIvan Magalhaes UNQUALIFIED
Claire TollnerItalyIoni Bowcher NEGOTIATION
Misaki RoysterJapanAsiya Javayant NEW
Izzy GarufiCanadaElwin Sharvill UNQUALIFIED
Ashley DoeUnited KingdomOnyama Limba NEGOTIATION
Alejandro PerinAustraliaIoni Bowcher NEW
Rodrigues CampainArgentinaXuxue Feng QUALIFIED
Izzy GarufiJapanIvan Magalhaes NEW
Ivar PaprockiFranceAmy Elsner QUALIFIED
Mayumi KolmetzUnited KingdomAsiya Javayant QUALIFIED
Mujtaba NickaAustraliaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley DoeIndiaOnyama Limba NEGOTIATION
Aika InouyeAustraliaBernardo Dominic NEGOTIATION
Ashley DoeIndiaElwin Sharvill UNQUALIFIED
Ricardo GauchoBrazilAsiya Javayant NEW
Leon OldroydSpainIoni Bowcher PROPOSAL
Murillo MaletRussiaIvan Magalhaes PROPOSAL
Maria MarrierAustraliaOnyama Limba PROPOSAL
Francesco ShinkoGermanyAnna Fali PROPOSAL
Jeanfrancois VenereFranceIoni Bowcher PROPOSAL
Emily WhobreyIndiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraAustralia2026-04-28Feiner Bros NEW71Ivan Magalhaes
1001Nicolas IturbideItaly2026-04-03Feiner Bros NEW21Ioni Bowcher
1002Octavia MaletAustralia2026-04-16Feltz Printing Service QUALIFIED86Bernardo Dominic
1003Octavia MaletGermany2026-04-10Printing Dimensions QUALIFIED54Onyama Limba
1004Johnson SergiArgentina2026-04-05Chemel, James L Cpa PROPOSAL38Asiya Javayant
1005Darci PoquetteCanada2026-04-19Buckley Miller Wright QUALIFIED44Elwin Sharvill
1006Ricardo GauchoFrance2026-04-03Benton, John B Jr QUALIFIED91Xuxue Feng
1007Kaitlin OstroskyArgentina2026-04-20Buckley Miller Wright NEW75Anna Fali
1008Salvatore StockhamFrance2026-04-25Rousseaux, Michael Esq NEW46Amy Elsner
1009Maisha RulapaughUnited Kingdom2026-04-26Chemel, James L Cpa RENEWAL75Stephen Shaw
1010Antonio CaudyCanada2026-04-08Rangoni Of Florence NEW5Amy Elsner
1011Maria MarrierBrazil2026-04-24Chemel, James L Cpa UNQUALIFIED22Asiya Javayant
1012Salvatore StockhamUnited Kingdom2026-04-23Feiner Bros NEW36Elwin Sharvill
1013Johnson SergiGermany2026-04-04Rangoni Of Florence RENEWAL15Onyama Limba
1014Antonio CaudySpain2026-04-03Truhlar And Truhlar Attys NEGOTIATION96Bernardo Dominic
1015Tony FollerAustralia2026-04-10Printing Dimensions NEW81Xuxue Feng
1016Mujtaba NickaItaly2026-04-06Benton, John B Jr QUALIFIED47Xuxue Feng
1017Isabel BowleySpain2026-04-10Rangoni Of Florence QUALIFIED7Asiya Javayant
1018Julie StensethBrazil2026-04-02Truhlar And Truhlar Attys PROPOSAL61Bernardo Dominic
1019Aditya KuskoArgentina2026-03-30Chapman, Ross E Esq QUALIFIED26Bernardo Dominic
1020Maria MarrierSpain2026-03-31Dorl, James J Esq QUALIFIED42Stephen Shaw
1021James ButtItaly2026-04-09Rangoni Of Florence UNQUALIFIED42Ioni Bowcher
1022Sinclair WaycottGermany2026-04-25Commercial Press QUALIFIED0Xuxue Feng
1023Costa DilliardAustralia2026-04-17Commercial Press UNQUALIFIED97Xuxue Feng
1024Chavez BriddickCanada2026-04-11King, Christopher A Esq NEGOTIATION92Amy Elsner
1025Ivar PaprockiFrance2026-04-21Printing Dimensions PROPOSAL19Elwin Sharvill
1026Ashley DoeCanada2026-04-13Buckley Miller Wright UNQUALIFIED70Ivan Magalhaes
1027Smith GlickUnited Kingdom2026-04-03Chapman, Ross E Esq NEW53Stephen Shaw
1028Misaki RoysterAustralia2026-04-27Benton, John B Jr PROPOSAL47Xuxue Feng
1029Leon OldroydRussia2026-03-30Chapman, Ross E Esq PROPOSAL75Onyama Limba
1030Francesco ShinkoFrance2026-04-01Truhlar And Truhlar Attys NEW45Onyama Limba
1031Emily WhobreyItaly2026-04-03Rousseaux, Michael Esq RENEWAL93Onyama Limba
1032Kaitlin OstroskyAustralia2026-04-02Dorl, James J Esq QUALIFIED37Ivan Magalhaes
1033Nicolas IturbideCanada2026-03-30Chapman, Ross E Esq NEGOTIATION21Asiya Javayant
1034Emily WhobreySpain2026-04-13Chapman, Ross E Esq QUALIFIED45Ioni Bowcher
1035Adams MorascaArgentina2026-04-03Feltz Printing Service RENEWAL27Xuxue Feng
1036Jennifer AmigonJapan2026-04-09Chanay, Jeffrey A Esq NEGOTIATION89Ivan Magalhaes
1037Costa DilliardFrance2026-04-26Chapman, Ross E Esq NEW81Ioni Bowcher
1038Aditya KuskoArgentina2026-04-27Feltz Printing Service RENEWAL52Onyama Limba
1039Leon OldroydJapan2026-04-14Chanay, Jeffrey A Esq NEW39Amy Elsner
1040Rodrigues CampainUnited Kingdom2026-04-28Buckley Miller Wright NEW50Anna Fali
1041Juan WieserFrance2026-04-07Feiner Bros NEGOTIATION15Ivan Magalhaes
1042Wickens NestleRussia2026-03-31Feltz Printing Service PROPOSAL60Xuxue Feng
1043Juan WieserJapan2026-04-12Printing Dimensions PROPOSAL22Xuxue Feng
1044Stacey MacleadCanada2026-04-02Printing Dimensions PROPOSAL68Xuxue Feng
1045Emily WhobreyCanada2026-04-19Benton, John B Jr NEGOTIATION17Elwin Sharvill
1046Kadeem FlosiUnited Kingdom2026-04-28Printing Dimensions QUALIFIED51Asiya Javayant
1047Claire TollnerIndia2026-04-10Feiner Bros QUALIFIED67Asiya Javayant
1048Faith GillianSpain2026-04-19Feiner Bros UNQUALIFIED2Xuxue Feng
1049Maisha RulapaughIndia2026-04-24Feiner Bros RENEWAL16Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianIndiaElwin Sharvill PROPOSAL
Aruna FigeroaJapanIoni Bowcher NEGOTIATION
Murillo MaletCanadaAsiya Javayant NEGOTIATION
David DarakjyAustraliaAmy Elsner QUALIFIED
Octavia MaletArgentinaOnyama Limba NEW
Jefferson SchemmerFranceBernardo Dominic PROPOSAL
Ivar PaprockiArgentinaStephen Shaw UNQUALIFIED
Chavez BriddickSpainXuxue Feng NEW
Claire TollnerRussiaStephen Shaw QUALIFIED
Clifford RimJapanAmy Elsner QUALIFIED
Jefferson SchemmerFranceElwin Sharvill RENEWAL
Salvatore StockhamGermanyOnyama Limba UNQUALIFIED
Ricardo GauchoBrazilStephen Shaw NEGOTIATION
Julie StensethJapanAmy Elsner NEW
Kadeem FlosiUnited KingdomXuxue Feng QUALIFIED
Munro FerenczArgentinaElwin Sharvill PROPOSAL
Darci PoquetteAustraliaIvan Magalhaes QUALIFIED
Wickens NestleArgentinaIoni Bowcher RENEWAL
Silvio SlusarskiArgentinaElwin Sharvill NEW
James ButtJapanBernardo Dominic NEW
Faith GillianSpainStephen Shaw NEGOTIATION
Claire TollnerCanadaAsiya Javayant NEGOTIATION
Antonio CaudyRussiaAnna Fali RENEWAL
Julie StensethBrazilOnyama Limba QUALIFIED
Jennifer AmigonSpainXuxue Feng UNQUALIFIED
Ricardo GauchoSpainXuxue Feng PROPOSAL
Misaki RoysterFranceOnyama Limba NEW
Aika InouyeCanadaIvan Magalhaes NEW
Chavez BriddickFranceAmy Elsner QUALIFIED
Jones VocelkaFranceOnyama Limba PROPOSAL
Jefferson SchemmerSpainElwin Sharvill NEW
Costa DilliardJapanOnyama Limba RENEWAL
Aruna FigeroaArgentinaAmy Elsner UNQUALIFIED
Maria MarrierAustraliaIvan Magalhaes UNQUALIFIED
Leja CaldareraItalyAsiya Javayant NEGOTIATION
Nicolas IturbideBrazilAsiya Javayant NEW
Leja CaldareraIndiaOnyama Limba UNQUALIFIED
Johnson SergiRussiaElwin Sharvill PROPOSAL
Wickens NestleIndiaAmy Elsner QUALIFIED
Isabel BowleyRussiaXuxue Feng UNQUALIFIED
Silvio SlusarskiIndiaStephen Shaw QUALIFIED
Francesco ShinkoGermanyBernardo Dominic RENEWAL
Jefferson SchemmerAustraliaIoni Bowcher QUALIFIED
Johnson SergiJapanBernardo Dominic PROPOSAL
Mujtaba NickaJapanElwin Sharvill QUALIFIED
Leon OldroydUnited KingdomAnna Fali PROPOSAL
Leon OldroydIndiaOnyama Limba UNQUALIFIED
Isabel BowleyJapanOnyama Limba NEW
Jennifer AmigonArgentinaOnyama Limba NEGOTIATION
Tony FollerUnited KingdomAnna Fali UNQUALIFIED
Frozen Columns
Name
Antonio Caudy
Misaki Royster
Cody Saylors
Wickens Nestle
Stacey Maclead
Aika Inouye
Tony Foller
James Butt
Adams Morasca
Octavia Malet
Munro Ferencz
Wickens Nestle
Kaitlin Ostrosky
Salvatore Stockham
Nicolas Iturbide
Julie Stenseth
David Darakjy
Leon Oldroyd
Silvio Slusarski
Alejandro Perin
Greenwood Bolognia
Cody Saylors
Munro Ferencz
Aditya Kusko
Octavia Malet
Cody Saylors
Nicolas Iturbide
Clifford Rim
Aditya Kusko
David Darakjy
Smith Glick
Murillo Malet
Clifford Rim
Cody Saylors
Tony Foller
Mujtaba Nicka
Murillo Malet
Silvio Slusarski
Munro Ferencz
Juan Wieser
Isabel Bowley
Claire Tollner
Tony Foller
Ricardo Gaucho
Maria Marrier
Octavia Malet
Isabel Bowley
Julie Stenseth
Leja Caldarera
Darci Poquette
IdCountryDate
1000India2026-04-10
1001Canada2026-04-23
1002Italy2026-04-18
1003India2026-03-31
1004United Kingdom2026-03-31
1005Argentina2026-04-22
1006Germany2026-04-03
1007Brazil2026-04-25
1008Argentina2026-04-04
1009Japan2026-03-31
1010Japan2026-04-12
1011Italy2026-04-03
1012Canada2026-04-13
1013Italy2026-04-16
1014Russia2026-04-24
1015India2026-04-06
1016India2026-04-04
1017Australia2026-04-19
1018Canada2026-04-23
1019Brazil2026-04-03
1020France2026-04-01
1021Canada2026-03-31
1022Brazil2026-03-31
1023Brazil2026-04-24
1024United Kingdom2026-04-24
1025Japan2026-04-21
1026Spain2026-04-09
1027Australia2026-04-13
1028India2026-04-06
1029Brazil2026-04-02
1030Japan2026-04-07
1031Japan2026-04-02
1032France2026-04-11
1033Canada2026-04-09
1034United Kingdom2026-04-13
1035Argentina2026-03-31
1036Italy2026-04-14
1037Japan2026-04-16
1038India2026-04-08
1039United Kingdom2026-04-01
1040Canada2026-04-18
1041Italy2026-04-03
1042Japan2026-04-07
1043France2026-04-06
1044Australia2026-04-13
1045Italy2026-04-26
1046Australia2026-04-14
1047Germany2026-03-31
1048Germany2026-04-03
1049Australia2026-04-13

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Brazil2026-04-10
Adams Morasca1001Russia2026-04-17
James Butt1002Russia2026-04-21
Kaitlin Ostrosky1003Brazil2026-04-12
Antonio Caudy1004Canada2026-04-27
Aruna Figeroa1005Canada2026-04-09
Clifford Rim1006France2026-04-23
Maisha Rulapaugh1007Japan2026-04-07
Jennifer Amigon1008Canada2026-04-24
Jefferson Schemmer1009Argentina2026-04-14
Mayumi Kolmetz1010Australia2026-04-07
Kadeem Flosi1011Germany2026-04-25
Francesco Shinko1012Russia2026-04-12
Isabel Bowley1013Germany2026-04-17
Claire Tollner1014Russia2026-04-04
Johnson Sergi1015France2026-04-06
Johnson Sergi1016Brazil2026-04-05
Juan Wieser1017Brazil2026-04-17
Deepesh Chui1018France2026-04-04
Munro Ferencz1019Spain2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickArgentinaBernardo Dominic QUALIFIED
David DarakjySpainStephen Shaw UNQUALIFIED
Octavia MaletBrazilElwin Sharvill PROPOSAL
Arvin AlbaresGermanyOnyama Limba QUALIFIED
Chavez BriddickRussiaElwin Sharvill NEW
Julie StensethItalyBernardo Dominic NEW
Darci PoquetteSpainOnyama Limba NEGOTIATION
Nicolas IturbideFranceIoni Bowcher NEW
Misaki RoysterItalyIvan Magalhaes QUALIFIED
Aika InouyeRussiaAsiya Javayant NEGOTIATION
Ashley DoeUnited KingdomAsiya Javayant PROPOSAL
Maisha RulapaughCanadaElwin Sharvill NEGOTIATION
Silvio SlusarskiJapanAmy Elsner RENEWAL
Emily WhobreyJapanIoni Bowcher PROPOSAL
Jefferson SchemmerArgentinaElwin Sharvill PROPOSAL
Kaitlin OstroskyFranceAsiya Javayant QUALIFIED
Claire TollnerJapanStephen Shaw NEGOTIATION
Johnson SergiArgentinaXuxue Feng PROPOSAL
Julie StensethAustraliaElwin Sharvill PROPOSAL
Mujtaba NickaSpainAmy Elsner UNQUALIFIED
Antonio CaudyCanadaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyBrazilBernardo Dominic PROPOSAL
Aditya KuskoGermanyStephen Shaw NEW
Isabel BowleyCanadaStephen Shaw RENEWAL
Tony FollerFranceAnna Fali PROPOSAL
Munro FerenczIndiaAsiya Javayant RENEWAL
Jeanfrancois VenereSpainElwin Sharvill NEGOTIATION
Francesco ShinkoAustraliaXuxue Feng UNQUALIFIED
Stacey MacleadGermanyAmy Elsner NEW
Francesco ShinkoBrazilIvan Magalhaes PROPOSAL
Ivar PaprockiRussiaAmy Elsner QUALIFIED
Kaitlin OstroskyIndiaAnna Fali QUALIFIED
Aika InouyeAustraliaOnyama Limba RENEWAL
Costa DilliardIndiaIoni Bowcher NEW
Darci PoquetteAustraliaXuxue Feng UNQUALIFIED
Nicolas IturbideCanadaBernardo Dominic QUALIFIED
Kadeem FlosiRussiaBernardo Dominic NEW
Deepesh ChuiFranceXuxue Feng QUALIFIED
Octavia MaletJapanXuxue Feng RENEWAL
Isabel BowleyJapanOnyama Limba QUALIFIED

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