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
Stacey MacleadAustraliaAnna Fali NEGOTIATION
David DarakjyBrazilBernardo Dominic NEGOTIATION
Chavez BriddickItalyAnna Fali NEW
Jeanfrancois VenereArgentinaBernardo Dominic UNQUALIFIED
Kadeem FlosiCanadaAnna Fali RENEWAL
Stacey MacleadSpainXuxue Feng NEGOTIATION
Wickens NestleGermanyAnna Fali QUALIFIED
Sinclair WaycottCanadaIvan Magalhaes NEW
James ButtItalyBernardo Dominic UNQUALIFIED
David DarakjyUnited KingdomXuxue Feng UNQUALIFIED
James ButtIndiaStephen Shaw UNQUALIFIED
Antonio CaudyJapanAnna Fali UNQUALIFIED
Mujtaba NickaGermanyBernardo Dominic NEW
Stacey MacleadGermanyIoni Bowcher RENEWAL
Ashley DoeCanadaXuxue Feng QUALIFIED
Cody SaylorsGermanyAmy Elsner RENEWAL
Tony FollerIndiaStephen Shaw NEGOTIATION
Wickens NestleFranceAmy Elsner UNQUALIFIED
Wickens NestleBrazilXuxue Feng RENEWAL
Juan WieserJapanAsiya Javayant RENEWAL
Adams MorascaFranceXuxue Feng QUALIFIED
Morrow RutaCanadaStephen Shaw UNQUALIFIED
Wickens NestleUnited KingdomElwin Sharvill PROPOSAL
Kadeem FlosiFranceStephen Shaw RENEWAL
Julie StensethIndiaAmy Elsner NEW
Cody SaylorsSpainAmy Elsner UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner QUALIFIED
Deepesh ChuiItalyAsiya Javayant UNQUALIFIED
Claire TollnerRussiaIoni Bowcher PROPOSAL
Adams MorascaSpainIvan Magalhaes RENEWAL
Deepesh ChuiFranceBernardo Dominic RENEWAL
Aditya KuskoSpainElwin Sharvill NEW
Costa DilliardSpainBernardo Dominic PROPOSAL
Julie StensethSpainBernardo Dominic QUALIFIED
Jeanfrancois VenereItalyXuxue Feng RENEWAL
Ashley DoeIndiaAsiya Javayant PROPOSAL
Maisha RulapaughUnited KingdomAnna Fali NEGOTIATION
Clifford RimIndiaBernardo Dominic UNQUALIFIED
Aruna FigeroaAustraliaXuxue Feng NEW
Greenwood BologniaCanadaXuxue Feng PROPOSAL
Greenwood BologniaGermanyIoni Bowcher NEW
Jennifer AmigonJapanXuxue Feng NEGOTIATION
David DarakjyGermanyOnyama Limba NEGOTIATION
Greenwood BologniaGermanyBernardo Dominic NEGOTIATION
Tony FollerFranceAnna Fali RENEWAL
Jones VocelkaJapanAnna Fali NEW
Greenwood BologniaGermanyIoni Bowcher UNQUALIFIED
Stacey MacleadCanadaXuxue Feng RENEWAL
James ButtItalyElwin Sharvill UNQUALIFIED
Kaitlin OstroskyJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson SergiCanadaAsiya Javayant RENEWAL
Izzy GarufiArgentinaAsiya Javayant RENEWAL
Morrow RutaAustraliaIoni Bowcher PROPOSAL
Maria MarrierIndiaStephen Shaw NEW
Alejandro PerinJapanBernardo Dominic NEGOTIATION
Emily WhobreyAustraliaIoni Bowcher RENEWAL
Ricardo GauchoGermanyElwin Sharvill NEGOTIATION
Deepesh ChuiBrazilIoni Bowcher QUALIFIED
Murillo MaletRussiaAmy Elsner PROPOSAL
Nicolas IturbideFranceIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinItaly2026-05-01Buckley Miller Wright PROPOSAL72Onyama Limba
1001Greenwood BologniaFrance2026-05-10Buckley Miller Wright NEW20Ivan Magalhaes
1002Chavez BriddickArgentina2026-04-19Printing Dimensions QUALIFIED6Stephen Shaw
1003Jefferson SchemmerRussia2026-05-03Chanay, Jeffrey A Esq PROPOSAL77Onyama Limba
1004Morrow RutaIndia2026-05-05Rousseaux, Michael Esq NEW93Bernardo Dominic
1005Wickens NestleBrazil2026-04-22Morlong Associates NEGOTIATION18Amy Elsner
1006Octavia MaletCanada2026-04-25Benton, John B Jr PROPOSAL12Onyama Limba
1007Misaki RoysterBrazil2026-04-20Chapman, Ross E Esq NEGOTIATION26Elwin Sharvill
1008James ButtGermany2026-04-17Rangoni Of Florence NEW7Onyama Limba
1009Antonio CaudyJapan2026-04-26Feltz Printing Service UNQUALIFIED5Onyama Limba
1010Misaki RoysterAustralia2026-04-21Commercial Press RENEWAL3Bernardo Dominic
1011Alejandro PerinSpain2026-04-30Printing Dimensions NEGOTIATION35Anna Fali
1012Morrow RutaUnited Kingdom2026-05-09Rangoni Of Florence QUALIFIED96Amy Elsner
1013Tony FollerBrazil2026-04-27King, Christopher A Esq RENEWAL37Onyama Limba
1014Leja CaldareraIndia2026-04-20Chemel, James L Cpa RENEWAL61Elwin Sharvill
1015Nicolas IturbideItaly2026-04-30Commercial Press QUALIFIED17Elwin Sharvill
1016Smith GlickAustralia2026-04-22Chemel, James L Cpa RENEWAL65Bernardo Dominic
1017Julie StensethJapan2026-04-28Buckley Miller Wright NEGOTIATION48Amy Elsner
1018Kaitlin OstroskyUnited Kingdom2026-04-13Commercial Press NEW18Ivan Magalhaes
1019Jones VocelkaFrance2026-04-15Feltz Printing Service PROPOSAL3Xuxue Feng
1020Ashley DoeSpain2026-04-26Rangoni Of Florence RENEWAL9Xuxue Feng
1021Juan WieserItaly2026-04-27King, Christopher A Esq UNQUALIFIED18Anna Fali
1022Maria MarrierBrazil2026-04-14Rangoni Of Florence NEW64Xuxue Feng
1023Antonio CaudyArgentina2026-04-26Rangoni Of Florence UNQUALIFIED81Elwin Sharvill
1024Murillo MaletAustralia2026-04-15Feltz Printing Service PROPOSAL31Ivan Magalhaes
1025Costa DilliardArgentina2026-05-06Buckley Miller Wright RENEWAL79Ivan Magalhaes
1026Nicolas IturbideJapan2026-04-24Chanay, Jeffrey A Esq QUALIFIED18Bernardo Dominic
1027Claire TollnerFrance2026-04-27Printing Dimensions NEGOTIATION52Ivan Magalhaes
1028Cody SaylorsGermany2026-05-07Rousseaux, Michael Esq RENEWAL25Asiya Javayant
1029Chavez BriddickGermany2026-05-03Chanay, Jeffrey A Esq RENEWAL26Ioni Bowcher
1030Maria MarrierBrazil2026-05-05Chemel, James L Cpa NEW57Anna Fali
1031Emily WhobreySpain2026-04-25Feltz Printing Service NEW99Amy Elsner
1032Murillo MaletCanada2026-04-22Morlong Associates UNQUALIFIED71Anna Fali
1033David DarakjyRussia2026-04-30Chemel, James L Cpa NEGOTIATION0Elwin Sharvill
1034Nicolas IturbideSpain2026-05-01Chemel, James L Cpa NEW56Anna Fali
1035Greenwood BologniaAustralia2026-04-24Rousseaux, Michael Esq UNQUALIFIED97Xuxue Feng
1036Claire TollnerBrazil2026-04-29Chanay, Jeffrey A Esq NEGOTIATION48Onyama Limba
1037Jeanfrancois VenereJapan2026-05-09Chapman, Ross E Esq UNQUALIFIED90Stephen Shaw
1038Antonio CaudyUnited Kingdom2026-04-20Morlong Associates QUALIFIED79Onyama Limba
1039Costa DilliardItaly2026-04-30Feiner Bros PROPOSAL4Amy Elsner
1040Ivar PaprockiRussia2026-04-20Morlong Associates UNQUALIFIED56Asiya Javayant
1041Wickens NestleBrazil2026-04-14Truhlar And Truhlar Attys QUALIFIED18Onyama Limba
1042Clifford RimGermany2026-05-10Morlong Associates PROPOSAL56Asiya Javayant
1043Ricardo GauchoRussia2026-04-30Printing Dimensions UNQUALIFIED16Anna Fali
1044Leon OldroydIndia2026-04-29Feltz Printing Service UNQUALIFIED30Anna Fali
1045Faith GillianItaly2026-04-27Morlong Associates NEW22Asiya Javayant
1046Octavia MaletBrazil2026-04-18Dorl, James J Esq PROPOSAL50Onyama Limba
1047Kaitlin OstroskyCanada2026-05-04Commercial Press QUALIFIED24Ivan Magalhaes
1048Aika InouyeGermany2026-05-01Feltz Printing Service QUALIFIED15Ioni Bowcher
1049Chavez BriddickItaly2026-04-14Benton, John B Jr RENEWAL25Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoArgentinaAmy Elsner NEGOTIATION
Sinclair WaycottCanadaXuxue Feng RENEWAL
Maria MarrierIndiaIoni Bowcher QUALIFIED
Kaitlin OstroskyItalyIoni Bowcher UNQUALIFIED
Maisha RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Octavia MaletIndiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresAustraliaAnna Fali PROPOSAL
Emily WhobreyGermanyElwin Sharvill PROPOSAL
David DarakjyIndiaIoni Bowcher PROPOSAL
Tony FollerIndiaAsiya Javayant RENEWAL
Ricardo GauchoIndiaAmy Elsner QUALIFIED
Octavia MaletFranceOnyama Limba NEW
Emily WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer AmigonRussiaAsiya Javayant NEGOTIATION
Maria MarrierArgentinaAmy Elsner RENEWAL
Jefferson SchemmerRussiaAnna Fali QUALIFIED
Maria MarrierRussiaAmy Elsner RENEWAL
Emily WhobreySpainAsiya Javayant NEW
Francesco ShinkoSpainIvan Magalhaes PROPOSAL
Misaki RoysterGermanyElwin Sharvill UNQUALIFIED
Mujtaba NickaJapanXuxue Feng NEGOTIATION
Arvin AlbaresGermanyAsiya Javayant PROPOSAL
Morrow RutaJapanOnyama Limba RENEWAL
Aika InouyeIndiaIoni Bowcher RENEWAL
Cody SaylorsFranceAmy Elsner QUALIFIED
Cody SaylorsUnited KingdomAsiya Javayant NEW
Adams MorascaFranceOnyama Limba NEW
Kaitlin OstroskyUnited KingdomXuxue Feng NEW
Faith GillianRussiaAsiya Javayant NEGOTIATION
Antonio CaudyItalyIvan Magalhaes NEGOTIATION
Octavia MaletFranceAnna Fali UNQUALIFIED
Jennifer AmigonItalyStephen Shaw QUALIFIED
Aruna FigeroaJapanAnna Fali PROPOSAL
Ricardo GauchoSpainBernardo Dominic QUALIFIED
Morrow RutaCanadaAnna Fali PROPOSAL
Leja CaldareraFranceIvan Magalhaes NEW
Jeanfrancois VenereRussiaElwin Sharvill QUALIFIED
Claire TollnerUnited KingdomIoni Bowcher NEGOTIATION
Leon OldroydJapanIoni Bowcher PROPOSAL
Salvatore StockhamJapanBernardo Dominic PROPOSAL
Morrow RutaFranceXuxue Feng NEGOTIATION
Smith GlickFranceBernardo Dominic NEGOTIATION
Rodrigues CampainAustraliaXuxue Feng RENEWAL
Mujtaba NickaIndiaXuxue Feng RENEWAL
Ricardo GauchoIndiaStephen Shaw QUALIFIED
Murillo MaletItalyAmy Elsner NEGOTIATION
Tony FollerIndiaAmy Elsner RENEWAL
Juan WieserRussiaStephen Shaw RENEWAL
Faith GillianArgentinaStephen Shaw QUALIFIED
Johnson SergiGermanyAnna Fali NEW
Frozen Columns
Name
Ricardo Gaucho
Aditya Kusko
Julie Stenseth
Cody Saylors
Adams Morasca
Kaitlin Ostrosky
Juan Wieser
Aditya Kusko
Jones Vocelka
Aruna Figeroa
Ivar Paprocki
Leon Oldroyd
David Darakjy
Faith Gillian
Jennifer Amigon
Adams Morasca
Emily Whobrey
Isabel Bowley
Octavia Malet
Adams Morasca
Kaitlin Ostrosky
Murillo Malet
Arvin Albares
Adams Morasca
Maisha Rulapaugh
Julie Stenseth
Isabel Bowley
Faith Gillian
Claire Tollner
Silvio Slusarski
Ricardo Gaucho
Arvin Albares
Salvatore Stockham
Jefferson Schemmer
Johnson Sergi
David Darakjy
Leja Caldarera
Faith Gillian
Claire Tollner
Jeanfrancois Venere
Francesco Shinko
Mujtaba Nicka
Morrow Ruta
Murillo Malet
Chavez Briddick
James Butt
Wickens Nestle
Emily Whobrey
Juan Wieser
Wickens Nestle
IdCountryDate
1000France2026-04-14
1001Australia2026-05-05
1002Italy2026-05-08
1003Australia2026-05-05
1004Italy2026-04-16
1005Spain2026-05-02
1006United Kingdom2026-04-16
1007United Kingdom2026-04-19
1008Italy2026-05-11
1009Canada2026-05-11
1010Brazil2026-04-28
1011France2026-04-20
1012Brazil2026-05-10
1013United Kingdom2026-04-15
1014Australia2026-05-07
1015India2026-04-20
1016Brazil2026-04-21
1017Canada2026-05-02
1018France2026-04-12
1019Argentina2026-05-02
1020United Kingdom2026-04-19
1021Japan2026-04-17
1022Italy2026-04-15
1023Germany2026-04-24
1024Canada2026-05-10
1025France2026-04-12
1026Russia2026-04-23
1027Germany2026-05-03
1028Italy2026-04-15
1029Italy2026-04-16
1030Japan2026-04-22
1031India2026-05-04
1032Canada2026-04-16
1033Japan2026-04-12
1034Argentina2026-05-05
1035Brazil2026-04-21
1036Argentina2026-04-18
1037Australia2026-05-04
1038Australia2026-04-18
1039Canada2026-04-16
1040Germany2026-04-15
1041France2026-04-18
1042India2026-04-28
1043Argentina2026-04-15
1044Spain2026-05-07
1045Argentina2026-04-16
1046Germany2026-04-25
1047Argentina2026-04-20
1048Russia2026-05-07
1049Japan2026-04-15

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000India2026-04-18
Stacey Maclead1001Russia2026-05-08
Julie Stenseth1002Japan2026-04-12
Aika Inouye1003India2026-05-07
James Butt1004Italy2026-04-21
Costa Dilliard1005Japan2026-04-27
Maria Marrier1006Italy2026-05-08
Julie Stenseth1007Brazil2026-04-15
Emily Whobrey1008Brazil2026-04-29
Claire Tollner1009Brazil2026-05-09
Jeanfrancois Venere1010Russia2026-04-21
Jeanfrancois Venere1011United Kingdom2026-05-04
Isabel Bowley1012India2026-05-06
Claire Tollner1013Brazil2026-05-01
Claire Tollner1014Canada2026-04-13
Wickens Nestle1015France2026-05-06
Sinclair Waycott1016Canada2026-05-05
James Butt1017Italy2026-04-21
Aruna Figeroa1018Italy2026-04-27
Francesco Shinko1019Australia2026-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzGermanyStephen Shaw UNQUALIFIED
Darci PoquetteFranceIvan Magalhaes RENEWAL
Ivar PaprockiArgentinaIoni Bowcher PROPOSAL
Aika InouyeItalyIvan Magalhaes NEGOTIATION
Jones VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair WaycottUnited KingdomAmy Elsner PROPOSAL
Aruna FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Nicolas IturbideFranceAnna Fali NEW
Ricardo GauchoBrazilAmy Elsner QUALIFIED
Izzy GarufiItalyBernardo Dominic RENEWAL
Jones VocelkaGermanyStephen Shaw RENEWAL
Mujtaba NickaFranceElwin Sharvill RENEWAL
Isabel BowleyRussiaBernardo Dominic NEW
Misaki RoysterFranceOnyama Limba PROPOSAL
Murillo MaletRussiaIoni Bowcher UNQUALIFIED
Greenwood BologniaIndiaXuxue Feng RENEWAL
Cody SaylorsItalyBernardo Dominic NEGOTIATION
Chavez BriddickGermanyAmy Elsner NEW
Leon OldroydAustraliaStephen Shaw PROPOSAL
Aruna FigeroaSpainAsiya Javayant UNQUALIFIED
Greenwood BologniaGermanyIoni Bowcher UNQUALIFIED
Maisha RulapaughFranceElwin Sharvill QUALIFIED
Jefferson SchemmerIndiaAnna Fali UNQUALIFIED
Mujtaba NickaArgentinaXuxue Feng QUALIFIED
Sinclair WaycottSpainStephen Shaw RENEWAL
Tony FollerFranceXuxue Feng PROPOSAL
Leja CaldareraArgentinaAsiya Javayant PROPOSAL
Tony FollerCanadaOnyama Limba PROPOSAL
Claire TollnerGermanyXuxue Feng PROPOSAL
Chavez BriddickAustraliaElwin Sharvill RENEWAL
Aruna FigeroaAustraliaIvan Magalhaes NEW
Ricardo GauchoSpainAsiya Javayant UNQUALIFIED
Ricardo GauchoCanadaBernardo Dominic NEGOTIATION
Silvio SlusarskiBrazilOnyama Limba NEW
Wickens NestleFranceAnna Fali NEGOTIATION
Jennifer AmigonArgentinaStephen Shaw PROPOSAL
Wickens NestleAustraliaStephen Shaw PROPOSAL
Johnson SergiFranceOnyama Limba NEGOTIATION
Morrow RutaJapanIvan Magalhaes UNQUALIFIED
Murillo MaletBrazilAmy Elsner 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>