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
Juan WieserUnited KingdomElwin Sharvill RENEWAL
Izzy GarufiGermanyOnyama Limba RENEWAL
Kaitlin OstroskyArgentinaAnna Fali NEW
Alejandro PerinGermanyAmy Elsner RENEWAL
Francesco ShinkoJapanIvan Magalhaes NEGOTIATION
Sinclair WaycottJapanOnyama Limba NEW
Julie StensethArgentinaStephen Shaw RENEWAL
Julie StensethArgentinaIoni Bowcher UNQUALIFIED
Rodrigues CampainCanadaAnna Fali NEGOTIATION
Kaitlin OstroskyFranceAmy Elsner QUALIFIED
Maria MarrierRussiaAsiya Javayant PROPOSAL
Wickens NestleFranceBernardo Dominic RENEWAL
Mayumi KolmetzArgentinaAsiya Javayant NEW
Ricardo GauchoBrazilOnyama Limba RENEWAL
Leja CaldareraCanadaIoni Bowcher NEGOTIATION
Mujtaba NickaCanadaAsiya Javayant UNQUALIFIED
Wickens NestleUnited KingdomIoni Bowcher QUALIFIED
Jones VocelkaCanadaIvan Magalhaes NEW
Aruna FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Octavia MaletBrazilIvan Magalhaes QUALIFIED
Antonio CaudyFranceIoni Bowcher NEGOTIATION
Cody SaylorsJapanAnna Fali PROPOSAL
Aditya KuskoAustraliaAmy Elsner UNQUALIFIED
Costa DilliardBrazilStephen Shaw PROPOSAL
Salvatore StockhamSpainXuxue Feng QUALIFIED
Isabel BowleyIndiaXuxue Feng NEGOTIATION
Julie StensethCanadaAnna Fali QUALIFIED
Aika InouyeJapanAsiya Javayant UNQUALIFIED
Arvin AlbaresJapanAsiya Javayant NEW
Emily WhobreyItalyStephen Shaw RENEWAL
Mayumi KolmetzArgentinaBernardo Dominic PROPOSAL
Faith GillianSpainAsiya Javayant NEW
Clifford RimJapanIvan Magalhaes UNQUALIFIED
Aditya KuskoFranceIoni Bowcher QUALIFIED
Johnson SergiGermanyAsiya Javayant UNQUALIFIED
Costa DilliardUnited KingdomOnyama Limba NEGOTIATION
Octavia MaletCanadaBernardo Dominic PROPOSAL
David DarakjyUnited KingdomXuxue Feng NEW
Adams MorascaIndiaStephen Shaw RENEWAL
Rodrigues CampainArgentinaIvan Magalhaes PROPOSAL
Greenwood BologniaUnited KingdomXuxue Feng RENEWAL
Leja CaldareraGermanyXuxue Feng NEW
Julie StensethItalyAsiya Javayant QUALIFIED
Wickens NestleAustraliaBernardo Dominic RENEWAL
Johnson SergiCanadaIvan Magalhaes NEGOTIATION
James ButtRussiaStephen Shaw NEGOTIATION
Jennifer AmigonArgentinaAnna Fali NEW
Nicolas IturbideFranceStephen Shaw QUALIFIED
Leja CaldareraUnited KingdomStephen Shaw NEGOTIATION
Johnson SergiBrazilAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaCanadaAsiya Javayant RENEWAL
Sinclair WaycottGermanyXuxue Feng QUALIFIED
Darci PoquetteBrazilXuxue Feng QUALIFIED
James ButtUnited KingdomIoni Bowcher NEW
Maria MarrierFranceStephen Shaw NEGOTIATION
Juan WieserBrazilAmy Elsner RENEWAL
Tony FollerCanadaAsiya Javayant UNQUALIFIED
Darci PoquetteUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiItalyStephen Shaw PROPOSAL
Mujtaba NickaArgentinaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardUnited Kingdom2026-05-19Chapman, Ross E Esq UNQUALIFIED79Asiya Javayant
1001James ButtIndia2026-05-21Chemel, James L Cpa RENEWAL86Bernardo Dominic
1002Wickens NestleBrazil2026-06-01Rangoni Of Florence PROPOSAL80Stephen Shaw
1003Alejandro PerinArgentina2026-05-15Chanay, Jeffrey A Esq NEGOTIATION43Ivan Magalhaes
1004Ricardo GauchoFrance2026-05-18Buckley Miller Wright NEW97Stephen Shaw
1005David DarakjyGermany2026-05-16Printing Dimensions UNQUALIFIED5Onyama Limba
1006Kadeem FlosiBrazil2026-05-21Chemel, James L Cpa NEGOTIATION37Ivan Magalhaes
1007Clifford RimArgentina2026-05-20Chapman, Ross E Esq PROPOSAL31Amy Elsner
1008Maisha RulapaughFrance2026-05-19Buckley Miller Wright NEW98Ioni Bowcher
1009Jennifer AmigonRussia2026-06-04Morlong Associates PROPOSAL69Bernardo Dominic
1010Munro FerenczBrazil2026-06-01Feiner Bros NEW87Stephen Shaw
1011Aruna FigeroaArgentina2026-05-18Chemel, James L Cpa NEGOTIATION89Elwin Sharvill
1012Mayumi KolmetzSpain2026-06-01Chanay, Jeffrey A Esq UNQUALIFIED10Ioni Bowcher
1013Cody SaylorsRussia2026-06-03Feiner Bros NEGOTIATION36Onyama Limba
1014Ashley DoeJapan2026-05-26Chanay, Jeffrey A Esq NEW58Amy Elsner
1015Kaitlin OstroskyUnited Kingdom2026-05-30Printing Dimensions QUALIFIED49Ioni Bowcher
1016Salvatore StockhamRussia2026-06-04Feltz Printing Service NEW79Xuxue Feng
1017Rodrigues CampainUnited Kingdom2026-05-27Dorl, James J Esq PROPOSAL0Xuxue Feng
1018Alejandro PerinBrazil2026-05-12Printing Dimensions NEGOTIATION53Ioni Bowcher
1019Francesco ShinkoAustralia2026-05-25Rousseaux, Michael Esq UNQUALIFIED1Asiya Javayant
1020Smith GlickJapan2026-05-24Feiner Bros QUALIFIED91Amy Elsner
1021Aditya KuskoAustralia2026-06-01Feltz Printing Service QUALIFIED65Bernardo Dominic
1022Chavez BriddickCanada2026-05-25Rangoni Of Florence NEW5Ivan Magalhaes
1023Aika InouyeSpain2026-05-18Truhlar And Truhlar Attys QUALIFIED61Ioni Bowcher
1024Faith GillianUnited Kingdom2026-05-19Morlong Associates NEW83Elwin Sharvill
1025Rodrigues CampainIndia2026-05-20Commercial Press PROPOSAL30Xuxue Feng
1026Kaitlin OstroskyUnited Kingdom2026-05-14Commercial Press UNQUALIFIED95Onyama Limba
1027Stacey MacleadAustralia2026-05-15Rousseaux, Michael Esq PROPOSAL49Anna Fali
1028Nicolas IturbideSpain2026-05-31Rangoni Of Florence RENEWAL91Onyama Limba
1029Aika InouyeUnited Kingdom2026-05-17Rousseaux, Michael Esq NEW67Elwin Sharvill
1030Murillo MaletFrance2026-06-07Commercial Press UNQUALIFIED59Ioni Bowcher
1031Salvatore StockhamRussia2026-05-22Commercial Press NEW47Ioni Bowcher
1032Rodrigues CampainGermany2026-05-14Commercial Press RENEWAL78Amy Elsner
1033Mayumi KolmetzAustralia2026-05-30Buckley Miller Wright QUALIFIED19Xuxue Feng
1034Greenwood BologniaCanada2026-06-09Buckley Miller Wright UNQUALIFIED10Ioni Bowcher
1035Darci PoquetteFrance2026-06-06Printing Dimensions UNQUALIFIED30Elwin Sharvill
1036Arvin AlbaresCanada2026-06-03Feiner Bros NEW64Ivan Magalhaes
1037Murillo MaletRussia2026-05-22Morlong Associates RENEWAL97Asiya Javayant
1038Darci PoquetteItaly2026-05-19Buckley Miller Wright PROPOSAL29Onyama Limba
1039Ashley DoeJapan2026-05-16Dorl, James J Esq PROPOSAL85Amy Elsner
1040Cody SaylorsJapan2026-05-18Printing Dimensions NEW26Elwin Sharvill
1041Ashley DoeCanada2026-05-26Printing Dimensions NEGOTIATION19Onyama Limba
1042Claire TollnerFrance2026-05-28Truhlar And Truhlar Attys NEW68Ioni Bowcher
1043Leon OldroydBrazil2026-05-23Feiner Bros QUALIFIED96Ioni Bowcher
1044Arvin AlbaresItaly2026-05-18Printing Dimensions NEGOTIATION76Bernardo Dominic
1045Morrow RutaItaly2026-06-08Truhlar And Truhlar Attys NEGOTIATION59Ioni Bowcher
1046Jones VocelkaIndia2026-05-29Printing Dimensions NEW75Anna Fali
1047Ivar PaprockiItaly2026-06-05Feiner Bros NEGOTIATION43Ivan Magalhaes
1048Arvin AlbaresAustralia2026-05-21Buckley Miller Wright QUALIFIED9Asiya Javayant
1049Darci PoquetteAustralia2026-06-07Feiner Bros NEW13Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyAustraliaStephen Shaw NEGOTIATION
Tony FollerIndiaBernardo Dominic NEGOTIATION
Isabel BowleyBrazilIoni Bowcher NEW
Rodrigues CampainIndiaXuxue Feng NEW
Francesco ShinkoBrazilElwin Sharvill QUALIFIED
Juan WieserSpainBernardo Dominic NEW
Aruna FigeroaBrazilElwin Sharvill UNQUALIFIED
James ButtItalyXuxue Feng NEW
Smith GlickUnited KingdomXuxue Feng UNQUALIFIED
Cody SaylorsArgentinaBernardo Dominic RENEWAL
Kaitlin OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba NickaJapanAmy Elsner NEGOTIATION
Greenwood BologniaIndiaAnna Fali RENEWAL
Leon OldroydGermanyElwin Sharvill QUALIFIED
Salvatore StockhamCanadaAsiya Javayant NEW
Francesco ShinkoIndiaIvan Magalhaes RENEWAL
Julie StensethCanadaElwin Sharvill NEW
Munro FerenczGermanyStephen Shaw PROPOSAL
Ashley DoeBrazilAsiya Javayant UNQUALIFIED
Jefferson SchemmerFranceBernardo Dominic NEW
Jefferson SchemmerBrazilBernardo Dominic PROPOSAL
Antonio CaudySpainAmy Elsner NEW
Rodrigues CampainSpainAmy Elsner NEW
Francesco ShinkoIndiaAnna Fali NEW
Adams MorascaFranceAsiya Javayant QUALIFIED
Ashley DoeArgentinaBernardo Dominic PROPOSAL
Jennifer AmigonArgentinaElwin Sharvill QUALIFIED
Tony FollerIndiaXuxue Feng QUALIFIED
Deepesh ChuiItalyBernardo Dominic PROPOSAL
Jones VocelkaBrazilAmy Elsner PROPOSAL
Aruna FigeroaItalyAsiya Javayant UNQUALIFIED
Juan WieserGermanyXuxue Feng NEW
Leon OldroydAustraliaStephen Shaw QUALIFIED
Misaki RoysterItalyAmy Elsner PROPOSAL
Isabel BowleyItalyBernardo Dominic NEGOTIATION
Emily WhobreyBrazilStephen Shaw NEGOTIATION
Greenwood BologniaArgentinaElwin Sharvill NEW
Mujtaba NickaIndiaIvan Magalhaes QUALIFIED
Misaki RoysterSpainIvan Magalhaes NEW
Nicolas IturbideFranceAmy Elsner UNQUALIFIED
Ricardo GauchoItalyXuxue Feng NEW
Antonio CaudyArgentinaStephen Shaw RENEWAL
Stacey MacleadAustraliaAsiya Javayant QUALIFIED
Ricardo GauchoBrazilIoni Bowcher PROPOSAL
Morrow RutaRussiaIoni Bowcher NEW
Wickens NestleSpainAnna Fali UNQUALIFIED
Izzy GarufiItalyIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomOnyama Limba QUALIFIED
Smith GlickUnited KingdomIoni Bowcher NEGOTIATION
Claire TollnerUnited KingdomAmy Elsner NEGOTIATION
Frozen Columns
Name
James Butt
Ricardo Gaucho
Chavez Briddick
Aika Inouye
Jennifer Amigon
Smith Glick
Adams Morasca
Jefferson Schemmer
Jeanfrancois Venere
Jefferson Schemmer
Faith Gillian
Mayumi Kolmetz
Kaitlin Ostrosky
Deepesh Chui
Rodrigues Campain
Isabel Bowley
Arvin Albares
Clifford Rim
Alejandro Perin
Jefferson Schemmer
Faith Gillian
Maria Marrier
Sinclair Waycott
Ricardo Gaucho
Mayumi Kolmetz
Maisha Rulapaugh
Aika Inouye
Isabel Bowley
Kadeem Flosi
Misaki Royster
Clifford Rim
Deepesh Chui
Tony Foller
Arvin Albares
Darci Poquette
Jefferson Schemmer
Emily Whobrey
Leja Caldarera
James Butt
Leon Oldroyd
Aruna Figeroa
Francesco Shinko
Adams Morasca
Salvatore Stockham
Kaitlin Ostrosky
Nicolas Iturbide
Morrow Ruta
Claire Tollner
Antonio Caudy
Ashley Doe
IdCountryDate
1000Russia2026-05-19
1001Italy2026-05-18
1002Argentina2026-05-16
1003Italy2026-05-26
1004Russia2026-06-04
1005Canada2026-05-16
1006Japan2026-05-21
1007Russia2026-05-15
1008Brazil2026-06-09
1009Russia2026-06-08
1010Canada2026-05-15
1011Germany2026-05-21
1012Japan2026-06-01
1013Italy2026-05-18
1014France2026-06-09
1015Australia2026-05-23
1016Germany2026-05-24
1017India2026-05-17
1018Germany2026-06-04
1019Japan2026-06-07
1020India2026-05-19
1021Germany2026-05-30
1022France2026-05-15
1023France2026-05-31
1024Brazil2026-05-14
1025France2026-05-13
1026France2026-06-06
1027Canada2026-06-04
1028Australia2026-06-05
1029India2026-06-02
1030Brazil2026-05-22
1031Italy2026-06-07
1032Argentina2026-05-24
1033Russia2026-06-01
1034France2026-06-09
1035Argentina2026-05-14
1036France2026-05-18
1037Spain2026-06-05
1038Russia2026-05-28
1039Brazil2026-05-25
1040France2026-05-17
1041Spain2026-06-02
1042France2026-05-24
1043Japan2026-05-27
1044Japan2026-06-02
1045Japan2026-06-09
1046United Kingdom2026-06-02
1047Japan2026-05-24
1048Spain2026-05-20
1049Argentina2026-06-05

On-Demand Data

NameIdCountryDate
Darci Poquette1000Japan2026-06-07
Clifford Rim1001Italy2026-05-14
Aditya Kusko1002Argentina2026-06-01
Aruna Figeroa1003Brazil2026-05-20
Morrow Ruta1004Japan2026-05-12
Ivar Paprocki1005Russia2026-05-13
Isabel Bowley1006United Kingdom2026-05-29
Silvio Slusarski1007India2026-06-04
Antonio Caudy1008Argentina2026-05-15
Aika Inouye1009Argentina2026-05-22
Antonio Caudy1010Spain2026-06-03
Octavia Malet1011India2026-05-13
Jennifer Amigon1012Germany2026-05-20
Maisha Rulapaugh1013Italy2026-05-30
Rodrigues Campain1014India2026-05-16
Aditya Kusko1015Canada2026-06-03
Aika Inouye1016Germany2026-05-14
Jefferson Schemmer1017Spain2026-05-14
Adams Morasca1018Canada2026-05-21
Leon Oldroyd1019Argentina2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoUnited KingdomBernardo Dominic RENEWAL
Salvatore StockhamBrazilBernardo Dominic NEGOTIATION
Jennifer AmigonGermanyAsiya Javayant NEW
Misaki RoysterGermanyAnna Fali PROPOSAL
Sinclair WaycottBrazilIoni Bowcher QUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng QUALIFIED
Darci PoquetteCanadaAmy Elsner UNQUALIFIED
Aditya KuskoSpainIoni Bowcher NEW
Jeanfrancois VenereAustraliaOnyama Limba RENEWAL
Maria MarrierArgentinaAnna Fali NEGOTIATION
Arvin AlbaresJapanBernardo Dominic RENEWAL
Octavia MaletAustraliaStephen Shaw UNQUALIFIED
Misaki RoysterIndiaAsiya Javayant NEGOTIATION
Silvio SlusarskiRussiaAmy Elsner NEW
Sinclair WaycottCanadaOnyama Limba PROPOSAL
Izzy GarufiAustraliaElwin Sharvill NEGOTIATION
David DarakjyRussiaOnyama Limba NEW
Maria MarrierIndiaAsiya Javayant NEW
Clifford RimItalyIoni Bowcher QUALIFIED
Aruna FigeroaRussiaIvan Magalhaes UNQUALIFIED
Clifford RimJapanAmy Elsner NEGOTIATION
Octavia MaletRussiaAmy Elsner QUALIFIED
Munro FerenczIndiaBernardo Dominic NEGOTIATION
Rodrigues CampainUnited KingdomBernardo Dominic NEW
Costa DilliardUnited KingdomIoni Bowcher QUALIFIED
David DarakjyRussiaIvan Magalhaes QUALIFIED
Deepesh ChuiIndiaOnyama Limba UNQUALIFIED
Maria MarrierRussiaElwin Sharvill NEW
Alejandro PerinFranceIvan Magalhaes QUALIFIED
Octavia MaletIndiaBernardo Dominic NEW
David DarakjyFranceXuxue Feng QUALIFIED
Aika InouyeJapanStephen Shaw RENEWAL
Arvin AlbaresItalyIvan Magalhaes NEGOTIATION
Isabel BowleyRussiaOnyama Limba PROPOSAL
Ricardo GauchoRussiaAmy Elsner QUALIFIED
Greenwood BologniaIndiaIoni Bowcher UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher NEGOTIATION
James ButtItalyXuxue Feng PROPOSAL
Isabel BowleyItalyXuxue Feng NEW
Cody SaylorsCanadaElwin 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>