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
Jeanfrancois VenereFranceIvan Magalhaes NEGOTIATION
Isabel BowleyItalyStephen Shaw NEGOTIATION
Darci PoquetteJapanStephen Shaw PROPOSAL
Jefferson SchemmerRussiaStephen Shaw NEW
James ButtGermanyIoni Bowcher UNQUALIFIED
Misaki RoysterIndiaAmy Elsner NEW
Sinclair WaycottGermanyAnna Fali UNQUALIFIED
Alejandro PerinSpainIvan Magalhaes PROPOSAL
Octavia MaletBrazilAnna Fali UNQUALIFIED
Clifford RimSpainAsiya Javayant PROPOSAL
Aika InouyeIndiaAmy Elsner NEW
Greenwood BologniaSpainOnyama Limba QUALIFIED
Julie StensethItalyAnna Fali NEGOTIATION
Isabel BowleyIndiaElwin Sharvill UNQUALIFIED
Izzy GarufiSpainAsiya Javayant PROPOSAL
James ButtBrazilStephen Shaw UNQUALIFIED
Morrow RutaAustraliaAmy Elsner NEW
James ButtCanadaAmy Elsner RENEWAL
Salvatore StockhamGermanyXuxue Feng NEGOTIATION
Deepesh ChuiCanadaOnyama Limba QUALIFIED
David DarakjyRussiaXuxue Feng UNQUALIFIED
Ivar PaprockiGermanyAnna Fali RENEWAL
Izzy GarufiIndiaAmy Elsner NEW
Juan WieserGermanyBernardo Dominic QUALIFIED
Smith GlickCanadaElwin Sharvill UNQUALIFIED
Faith GillianCanadaOnyama Limba UNQUALIFIED
Tony FollerJapanIoni Bowcher NEW
Arvin AlbaresBrazilAnna Fali RENEWAL
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Ashley DoeFranceIoni Bowcher NEGOTIATION
Greenwood BologniaUnited KingdomAsiya Javayant QUALIFIED
Isabel BowleyItalyIoni Bowcher UNQUALIFIED
Claire TollnerItalyAsiya Javayant NEGOTIATION
Greenwood BologniaGermanyBernardo Dominic NEW
Salvatore StockhamItalyAmy Elsner RENEWAL
Stacey MacleadGermanyBernardo Dominic NEGOTIATION
Faith GillianBrazilAnna Fali QUALIFIED
Mujtaba NickaJapanAsiya Javayant NEGOTIATION
Clifford RimIndiaXuxue Feng PROPOSAL
Alejandro PerinBrazilXuxue Feng RENEWAL
Leja CaldareraArgentinaOnyama Limba PROPOSAL
Leja CaldareraGermanyStephen Shaw PROPOSAL
Emily WhobreyIndiaIoni Bowcher QUALIFIED
Claire TollnerCanadaIoni Bowcher NEGOTIATION
Tony FollerArgentinaAnna Fali PROPOSAL
Nicolas IturbideBrazilBernardo Dominic QUALIFIED
Deepesh ChuiGermanyOnyama Limba UNQUALIFIED
Jennifer AmigonBrazilAnna Fali PROPOSAL
Tony FollerCanadaIoni Bowcher RENEWAL
Isabel BowleyFranceOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoAustraliaStephen Shaw RENEWAL
Morrow RutaArgentinaAsiya Javayant NEGOTIATION
Claire TollnerGermanyElwin Sharvill RENEWAL
Juan WieserCanadaXuxue Feng RENEWAL
Johnson SergiIndiaOnyama Limba PROPOSAL
James ButtBrazilOnyama Limba RENEWAL
Cody SaylorsIndiaStephen Shaw NEGOTIATION
Murillo MaletSpainIvan Magalhaes QUALIFIED
Ivar PaprockiArgentinaXuxue Feng QUALIFIED
Maisha RulapaughItalyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleFrance2026-04-30Rousseaux, Michael Esq RENEWAL70Ivan Magalhaes
1001Alejandro PerinIndia2026-05-06Feiner Bros QUALIFIED85Ioni Bowcher
1002Jennifer AmigonUnited Kingdom2026-05-19Feltz Printing Service PROPOSAL93Elwin Sharvill
1003Cody SaylorsAustralia2026-05-19Commercial Press UNQUALIFIED27Ivan Magalhaes
1004Isabel BowleyRussia2026-05-23Chanay, Jeffrey A Esq NEW35Ivan Magalhaes
1005Isabel BowleyJapan2026-05-20Benton, John B Jr QUALIFIED63Onyama Limba
1006Arvin AlbaresCanada2026-05-22Feiner Bros RENEWAL71Stephen Shaw
1007Johnson SergiFrance2026-05-22Commercial Press QUALIFIED37Stephen Shaw
1008Clifford RimRussia2026-05-10Rousseaux, Michael Esq UNQUALIFIED15Amy Elsner
1009Aruna FigeroaIndia2026-05-21Rangoni Of Florence NEGOTIATION37Asiya Javayant
1010Izzy GarufiCanada2026-05-22Feiner Bros PROPOSAL82Amy Elsner
1011Rodrigues CampainUnited Kingdom2026-05-25Feltz Printing Service RENEWAL84Bernardo Dominic
1012Mujtaba NickaCanada2026-05-17Benton, John B Jr PROPOSAL53Amy Elsner
1013David DarakjyRussia2026-05-22Morlong Associates NEGOTIATION16Bernardo Dominic
1014Claire TollnerSpain2026-05-09Commercial Press RENEWAL20Ioni Bowcher
1015Arvin AlbaresAustralia2026-05-23Chanay, Jeffrey A Esq NEGOTIATION1Ioni Bowcher
1016Faith GillianJapan2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED38Asiya Javayant
1017Kadeem FlosiFrance2026-05-16Buckley Miller Wright NEGOTIATION65Amy Elsner
1018Jeanfrancois VenereSpain2026-05-19Chapman, Ross E Esq PROPOSAL44Xuxue Feng
1019Claire TollnerAustralia2026-05-15Benton, John B Jr RENEWAL84Onyama Limba
1020Stacey MacleadRussia2026-05-02Rangoni Of Florence QUALIFIED33Asiya Javayant
1021Morrow RutaGermany2026-04-28Feiner Bros PROPOSAL78Xuxue Feng
1022Mayumi KolmetzArgentina2026-05-01Commercial Press NEGOTIATION18Elwin Sharvill
1023Johnson SergiFrance2026-05-15King, Christopher A Esq PROPOSAL31Stephen Shaw
1024Silvio SlusarskiFrance2026-05-15Rousseaux, Michael Esq NEW38Ivan Magalhaes
1025Julie StensethFrance2026-05-21Morlong Associates PROPOSAL28Asiya Javayant
1026Tony FollerItaly2026-05-18Feiner Bros QUALIFIED10Asiya Javayant
1027Faith GillianBrazil2026-05-12Rousseaux, Michael Esq NEW46Stephen Shaw
1028Silvio SlusarskiRussia2026-05-20King, Christopher A Esq UNQUALIFIED33Xuxue Feng
1029Deepesh ChuiIndia2026-05-05Feiner Bros PROPOSAL65Asiya Javayant
1030Kadeem FlosiBrazil2026-05-09Feiner Bros NEGOTIATION12Bernardo Dominic
1031Octavia MaletFrance2026-04-26Morlong Associates NEGOTIATION94Stephen Shaw
1032Costa DilliardBrazil2026-04-29Benton, John B Jr QUALIFIED4Ivan Magalhaes
1033Chavez BriddickSpain2026-05-19Buckley Miller Wright UNQUALIFIED73Bernardo Dominic
1034Jones VocelkaUnited Kingdom2026-05-13King, Christopher A Esq PROPOSAL39Ivan Magalhaes
1035Arvin AlbaresArgentina2026-05-20Morlong Associates PROPOSAL3Xuxue Feng
1036Murillo MaletAustralia2026-05-17Dorl, James J Esq NEW79Amy Elsner
1037Munro FerenczArgentina2026-05-08Buckley Miller Wright QUALIFIED34Amy Elsner
1038Wickens NestleRussia2026-04-26Feiner Bros NEGOTIATION75Ioni Bowcher
1039Aika InouyeIndia2026-05-01King, Christopher A Esq PROPOSAL53Bernardo Dominic
1040Emily WhobreyIndia2026-05-25Chemel, James L Cpa RENEWAL77Stephen Shaw
1041Ricardo GauchoGermany2026-05-14Feiner Bros RENEWAL48Anna Fali
1042Octavia MaletBrazil2026-05-23Feiner Bros NEW46Stephen Shaw
1043Maisha RulapaughFrance2026-05-10Buckley Miller Wright NEW90Bernardo Dominic
1044Darci PoquetteCanada2026-05-06Morlong Associates NEGOTIATION84Amy Elsner
1045Misaki RoysterAustralia2026-05-08Dorl, James J Esq NEW6Amy Elsner
1046David DarakjyGermany2026-05-07Buckley Miller Wright PROPOSAL0Ioni Bowcher
1047Ricardo GauchoAustralia2026-05-21Commercial Press QUALIFIED36Onyama Limba
1048Jennifer AmigonCanada2026-05-21King, Christopher A Esq NEGOTIATION50Ioni Bowcher
1049Kaitlin OstroskyJapan2026-04-29Buckley Miller Wright NEW9Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamFranceAsiya Javayant QUALIFIED
Leon OldroydCanadaIvan Magalhaes RENEWAL
Cody SaylorsItalyOnyama Limba NEGOTIATION
Greenwood BologniaIndiaAmy Elsner PROPOSAL
Maria MarrierBrazilAnna Fali NEGOTIATION
Izzy GarufiFranceElwin Sharvill PROPOSAL
Maria MarrierGermanyStephen Shaw RENEWAL
Kaitlin OstroskyFranceBernardo Dominic RENEWAL
Leon OldroydAustraliaBernardo Dominic UNQUALIFIED
Rodrigues CampainItalyIoni Bowcher QUALIFIED
Leja CaldareraIndiaOnyama Limba UNQUALIFIED
Misaki RoysterArgentinaAmy Elsner NEGOTIATION
James ButtGermanyBernardo Dominic NEW
Maisha RulapaughCanadaAmy Elsner RENEWAL
Claire TollnerCanadaXuxue Feng NEW
Deepesh ChuiGermanyIvan Magalhaes NEGOTIATION
Adams MorascaRussiaBernardo Dominic PROPOSAL
Clifford RimRussiaElwin Sharvill NEGOTIATION
Jennifer AmigonCanadaBernardo Dominic NEW
Leja CaldareraCanadaXuxue Feng NEGOTIATION
Maisha RulapaughSpainBernardo Dominic NEGOTIATION
James ButtFranceOnyama Limba RENEWAL
Deepesh ChuiItalyAmy Elsner QUALIFIED
Leon OldroydIndiaIoni Bowcher PROPOSAL
Jefferson SchemmerArgentinaAnna Fali NEGOTIATION
Silvio SlusarskiUnited KingdomOnyama Limba QUALIFIED
Nicolas IturbideGermanyElwin Sharvill QUALIFIED
Murillo MaletIndiaIvan Magalhaes QUALIFIED
Clifford RimRussiaAsiya Javayant RENEWAL
Mayumi KolmetzUnited KingdomStephen Shaw PROPOSAL
Ashley DoeGermanyElwin Sharvill UNQUALIFIED
Octavia MaletRussiaIvan Magalhaes NEGOTIATION
Johnson SergiIndiaAsiya Javayant UNQUALIFIED
Deepesh ChuiArgentinaOnyama Limba UNQUALIFIED
Aditya KuskoIndiaAnna Fali NEGOTIATION
Alejandro PerinBrazilXuxue Feng PROPOSAL
Murillo MaletAustraliaOnyama Limba RENEWAL
Misaki RoysterBrazilBernardo Dominic UNQUALIFIED
Izzy GarufiArgentinaAmy Elsner NEW
Juan WieserUnited KingdomAnna Fali PROPOSAL
Emily WhobreyBrazilBernardo Dominic NEGOTIATION
Deepesh ChuiItalyOnyama Limba UNQUALIFIED
Morrow RutaGermanyStephen Shaw NEW
Maisha RulapaughIndiaStephen Shaw PROPOSAL
Leja CaldareraItalyIoni Bowcher NEGOTIATION
Maria MarrierFranceXuxue Feng UNQUALIFIED
Munro FerenczAustraliaXuxue Feng QUALIFIED
Claire TollnerRussiaIoni Bowcher QUALIFIED
Misaki RoysterIndiaIoni Bowcher PROPOSAL
Tony FollerFranceBernardo Dominic NEGOTIATION
Frozen Columns
Name
Kadeem Flosi
Rodrigues Campain
Arvin Albares
Faith Gillian
Aika Inouye
Greenwood Bolognia
Arvin Albares
Kadeem Flosi
James Butt
Juan Wieser
Arvin Albares
Smith Glick
Ivar Paprocki
Isabel Bowley
Kadeem Flosi
Munro Ferencz
Arvin Albares
Murillo Malet
Chavez Briddick
Emily Whobrey
Greenwood Bolognia
Wickens Nestle
Ivar Paprocki
Mujtaba Nicka
Kadeem Flosi
Salvatore Stockham
Izzy Garufi
Leon Oldroyd
Jones Vocelka
Aruna Figeroa
Ricardo Gaucho
Nicolas Iturbide
Deepesh Chui
Silvio Slusarski
Darci Poquette
Murillo Malet
Arvin Albares
Izzy Garufi
Aditya Kusko
Emily Whobrey
Costa Dilliard
Murillo Malet
Kadeem Flosi
Faith Gillian
David Darakjy
Adams Morasca
Jones Vocelka
Octavia Malet
Julie Stenseth
Aika Inouye
IdCountryDate
1000Argentina2026-04-30
1001Brazil2026-05-03
1002United Kingdom2026-05-20
1003Argentina2026-04-29
1004Brazil2026-05-03
1005United Kingdom2026-05-25
1006Germany2026-04-27
1007Japan2026-05-17
1008India2026-05-17
1009Italy2026-05-19
1010Russia2026-05-20
1011Argentina2026-04-30
1012Russia2026-05-10
1013India2026-05-01
1014Canada2026-05-20
1015United Kingdom2026-05-14
1016Germany2026-05-03
1017Germany2026-05-07
1018Brazil2026-05-24
1019Germany2026-05-09
1020Brazil2026-05-24
1021Germany2026-05-07
1022Australia2026-05-04
1023Argentina2026-05-20
1024Spain2026-05-20
1025United Kingdom2026-05-01
1026Canada2026-05-07
1027Germany2026-05-06
1028United Kingdom2026-05-20
1029Brazil2026-05-22
1030Australia2026-05-09
1031India2026-05-10
1032Australia2026-05-10
1033Brazil2026-04-26
1034Germany2026-05-09
1035United Kingdom2026-04-29
1036United Kingdom2026-05-06
1037Australia2026-05-18
1038Germany2026-05-19
1039Germany2026-04-29
1040Japan2026-05-18
1041Canada2026-04-28
1042Argentina2026-05-21
1043Spain2026-05-08
1044Japan2026-04-26
1045Germany2026-05-19
1046Brazil2026-05-11
1047Spain2026-05-25
1048Canada2026-05-02
1049Argentina2026-05-23

On-Demand Data

NameIdCountryDate
Misaki Royster1000India2026-05-18
Ivar Paprocki1001Japan2026-05-10
Francesco Shinko1002France2026-04-29
Mayumi Kolmetz1003Japan2026-05-21
Ivar Paprocki1004Germany2026-05-17
Smith Glick1005France2026-05-16
Salvatore Stockham1006Spain2026-05-07
Mujtaba Nicka1007Japan2026-05-05
Antonio Caudy1008India2026-05-11
Ashley Doe1009Japan2026-05-13
Alejandro Perin1010United Kingdom2026-05-16
Izzy Garufi1011Argentina2026-05-22
Stacey Maclead1012Canada2026-05-06
Adams Morasca1013Italy2026-05-24
Sinclair Waycott1014Spain2026-05-13
Leon Oldroyd1015Japan2026-04-28
Johnson Sergi1016Argentina2026-05-16
Aika Inouye1017Argentina2026-05-22
Sinclair Waycott1018Germany2026-05-19
Emily Whobrey1019Brazil2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerArgentinaAsiya Javayant NEGOTIATION
Nicolas IturbideFranceIvan Magalhaes RENEWAL
Izzy GarufiSpainIoni Bowcher RENEWAL
Izzy GarufiRussiaIvan Magalhaes NEW
Octavia MaletGermanyAnna Fali NEW
Clifford RimCanadaIoni Bowcher PROPOSAL
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
Tony FollerItalyIvan Magalhaes RENEWAL
Jefferson SchemmerRussiaElwin Sharvill RENEWAL
Sinclair WaycottArgentinaIoni Bowcher NEGOTIATION
Alejandro PerinJapanStephen Shaw QUALIFIED
Arvin AlbaresAustraliaAsiya Javayant UNQUALIFIED
Julie StensethSpainOnyama Limba NEW
Aruna FigeroaArgentinaElwin Sharvill QUALIFIED
Smith GlickSpainXuxue Feng NEW
Jones VocelkaBrazilAnna Fali NEGOTIATION
Ashley DoeIndiaIvan Magalhaes RENEWAL
Johnson SergiItalyAnna Fali RENEWAL
Greenwood BologniaFranceAnna Fali RENEWAL
Munro FerenczBrazilIvan Magalhaes NEGOTIATION
Ashley DoeAustraliaAnna Fali QUALIFIED
Julie StensethIndiaAsiya Javayant NEGOTIATION
Kaitlin OstroskyArgentinaAnna Fali NEW
Emily WhobreyGermanyElwin Sharvill UNQUALIFIED
Murillo MaletItalyXuxue Feng UNQUALIFIED
Sinclair WaycottSpainAsiya Javayant QUALIFIED
Costa DilliardJapanIoni Bowcher UNQUALIFIED
Rodrigues CampainRussiaAnna Fali UNQUALIFIED
Adams MorascaIndiaBernardo Dominic NEGOTIATION
Claire TollnerBrazilIoni Bowcher NEW
Mayumi KolmetzSpainBernardo Dominic QUALIFIED
Aruna FigeroaBrazilStephen Shaw QUALIFIED
Alejandro PerinFranceBernardo Dominic QUALIFIED
Munro FerenczBrazilElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceAmy Elsner RENEWAL
Faith GillianItalyIvan Magalhaes PROPOSAL
Clifford RimArgentinaAmy Elsner QUALIFIED
Ivar PaprockiFranceIvan Magalhaes PROPOSAL
Isabel BowleyUnited KingdomAmy Elsner UNQUALIFIED
Jefferson SchemmerUnited KingdomStephen Shaw 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>