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
Misaki RoysterSpainStephen Shaw NEW
Kaitlin OstroskyBrazilAnna Fali NEW
Mujtaba NickaFranceIoni Bowcher RENEWAL
Adams MorascaFranceAsiya Javayant QUALIFIED
Arvin AlbaresGermanyAnna Fali QUALIFIED
Mujtaba NickaFranceStephen Shaw NEW
Stacey MacleadJapanStephen Shaw NEGOTIATION
Arvin AlbaresSpainAsiya Javayant UNQUALIFIED
Faith GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez BriddickAustraliaBernardo Dominic NEGOTIATION
Morrow RutaAustraliaXuxue Feng QUALIFIED
Arvin AlbaresFranceBernardo Dominic QUALIFIED
Misaki RoysterItalyAsiya Javayant QUALIFIED
Wickens NestleGermanyAsiya Javayant RENEWAL
Misaki RoysterArgentinaElwin Sharvill NEW
Kadeem FlosiItalyIvan Magalhaes PROPOSAL
Smith GlickCanadaAmy Elsner QUALIFIED
Arvin AlbaresAustraliaStephen Shaw NEW
Misaki RoysterItalyXuxue Feng QUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw QUALIFIED
Jefferson SchemmerCanadaBernardo Dominic UNQUALIFIED
Octavia MaletAustraliaAmy Elsner QUALIFIED
Cody SaylorsRussiaAsiya Javayant RENEWAL
Ashley DoeItalyAnna Fali NEW
Maisha RulapaughBrazilAnna Fali NEW
Claire TollnerUnited KingdomElwin Sharvill NEW
Smith GlickUnited KingdomAsiya Javayant PROPOSAL
Francesco ShinkoJapanXuxue Feng NEW
Isabel BowleyRussiaAmy Elsner PROPOSAL
Smith GlickCanadaOnyama Limba NEW
Izzy GarufiUnited KingdomStephen Shaw RENEWAL
Nicolas IturbideCanadaStephen Shaw NEGOTIATION
Maria MarrierArgentinaBernardo Dominic RENEWAL
Wickens NestleJapanIoni Bowcher NEGOTIATION
Morrow RutaGermanyElwin Sharvill NEW
Johnson SergiFranceXuxue Feng QUALIFIED
Aruna FigeroaBrazilIvan Magalhaes RENEWAL
Juan WieserFranceBernardo Dominic PROPOSAL
Nicolas IturbideArgentinaAmy Elsner UNQUALIFIED
Jefferson SchemmerCanadaAsiya Javayant NEGOTIATION
Faith GillianBrazilStephen Shaw NEGOTIATION
Tony FollerGermanyXuxue Feng UNQUALIFIED
Murillo MaletUnited KingdomBernardo Dominic NEGOTIATION
Leon OldroydArgentinaAnna Fali UNQUALIFIED
Misaki RoysterJapanXuxue Feng RENEWAL
Antonio CaudyArgentinaIvan Magalhaes UNQUALIFIED
Antonio CaudyFranceXuxue Feng QUALIFIED
Mujtaba NickaCanadaIvan Magalhaes PROPOSAL
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
Deepesh ChuiJapanStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiItalyStephen Shaw RENEWAL
Leon OldroydJapanOnyama Limba NEW
Aruna FigeroaFranceIvan Magalhaes RENEWAL
Jeanfrancois VenereItalyAmy Elsner PROPOSAL
David DarakjyBrazilAsiya Javayant RENEWAL
Jefferson SchemmerArgentinaElwin Sharvill PROPOSAL
Jennifer AmigonBrazilStephen Shaw QUALIFIED
Nicolas IturbideGermanyAnna Fali NEGOTIATION
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Stacey MacleadArgentinaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyIndia2026-03-31Chanay, Jeffrey A Esq UNQUALIFIED54Ivan Magalhaes
1001Greenwood BologniaIndia2026-04-25Chapman, Ross E Esq RENEWAL43Ivan Magalhaes
1002Mujtaba NickaItaly2026-04-14Dorl, James J Esq NEW35Xuxue Feng
1003Jeanfrancois VenereUnited Kingdom2026-04-29Buckley Miller Wright NEGOTIATION54Onyama Limba
1004Ricardo GauchoBrazil2026-04-05Feiner Bros NEGOTIATION48Amy Elsner
1005Claire TollnerUnited Kingdom2026-04-24Buckley Miller Wright QUALIFIED10Amy Elsner
1006Murillo MaletUnited Kingdom2026-04-16Truhlar And Truhlar Attys PROPOSAL8Elwin Sharvill
1007Aika InouyeItaly2026-04-17Rangoni Of Florence UNQUALIFIED15Amy Elsner
1008Costa DilliardGermany2026-04-29Chanay, Jeffrey A Esq UNQUALIFIED69Asiya Javayant
1009Smith GlickFrance2026-04-02Benton, John B Jr QUALIFIED92Anna Fali
1010Maisha RulapaughSpain2026-04-06Chemel, James L Cpa RENEWAL50Ioni Bowcher
1011Adams MorascaFrance2026-04-05Buckley Miller Wright PROPOSAL5Xuxue Feng
1012Claire TollnerArgentina2026-04-11Commercial Press QUALIFIED63Onyama Limba
1013Octavia MaletGermany2026-04-24King, Christopher A Esq NEGOTIATION29Onyama Limba
1014Antonio CaudyUnited Kingdom2026-04-08Morlong Associates QUALIFIED34Bernardo Dominic
1015Salvatore StockhamAustralia2026-04-05Commercial Press QUALIFIED84Xuxue Feng
1016Clifford RimItaly2026-04-25Commercial Press NEGOTIATION33Bernardo Dominic
1017Julie StensethFrance2026-04-24Chapman, Ross E Esq PROPOSAL57Onyama Limba
1018Claire TollnerGermany2026-04-18Morlong Associates NEW7Onyama Limba
1019Clifford RimFrance2026-04-26Buckley Miller Wright UNQUALIFIED45Amy Elsner
1020Jennifer AmigonAustralia2026-03-31King, Christopher A Esq RENEWAL43Xuxue Feng
1021Tony FollerUnited Kingdom2026-04-15Feltz Printing Service UNQUALIFIED47Ivan Magalhaes
1022Adams MorascaAustralia2026-04-17Feiner Bros RENEWAL85Elwin Sharvill
1023Munro FerenczIndia2026-04-23Feiner Bros UNQUALIFIED1Amy Elsner
1024Aika InouyeSpain2026-04-18Feiner Bros QUALIFIED10Asiya Javayant
1025Silvio SlusarskiSpain2026-04-10Rousseaux, Michael Esq RENEWAL46Xuxue Feng
1026Jennifer AmigonArgentina2026-04-01Feltz Printing Service PROPOSAL69Stephen Shaw
1027Salvatore StockhamBrazil2026-04-08Chemel, James L Cpa QUALIFIED65Ivan Magalhaes
1028Greenwood BologniaCanada2026-04-21Feltz Printing Service QUALIFIED29Bernardo Dominic
1029Rodrigues CampainArgentina2026-04-18Commercial Press QUALIFIED68Ivan Magalhaes
1030Silvio SlusarskiSpain2026-04-28Morlong Associates QUALIFIED43Stephen Shaw
1031Wickens NestleUnited Kingdom2026-04-10Commercial Press PROPOSAL5Stephen Shaw
1032Munro FerenczSpain2026-04-21King, Christopher A Esq NEGOTIATION52Asiya Javayant
1033Aruna FigeroaJapan2026-04-22Commercial Press RENEWAL51Xuxue Feng
1034Faith GillianIndia2026-04-13Morlong Associates NEGOTIATION3Stephen Shaw
1035Wickens NestleFrance2026-04-22Dorl, James J Esq RENEWAL45Elwin Sharvill
1036Mayumi KolmetzGermany2026-04-12Dorl, James J Esq QUALIFIED11Anna Fali
1037Adams MorascaAustralia2026-04-13Chapman, Ross E Esq PROPOSAL89Xuxue Feng
1038Smith GlickAustralia2026-04-04Commercial Press RENEWAL69Ivan Magalhaes
1039Jeanfrancois VenereJapan2026-04-16Chanay, Jeffrey A Esq QUALIFIED2Bernardo Dominic
1040Jennifer AmigonUnited Kingdom2026-04-18Dorl, James J Esq QUALIFIED78Ivan Magalhaes
1041Rodrigues CampainItaly2026-04-22Truhlar And Truhlar Attys NEW32Elwin Sharvill
1042Clifford RimUnited Kingdom2026-04-22Buckley Miller Wright RENEWAL16Anna Fali
1043Leon OldroydJapan2026-04-10Commercial Press UNQUALIFIED66Bernardo Dominic
1044Nicolas IturbideIndia2026-04-01Chemel, James L Cpa QUALIFIED24Stephen Shaw
1045Ashley DoeIndia2026-04-04Rousseaux, Michael Esq NEGOTIATION26Onyama Limba
1046Sinclair WaycottJapan2026-04-03King, Christopher A Esq RENEWAL75Elwin Sharvill
1047Jeanfrancois VenereCanada2026-04-02King, Christopher A Esq UNQUALIFIED29Asiya Javayant
1048Misaki RoysterFrance2026-04-24Feiner Bros NEW35Ioni Bowcher
1049Antonio CaudyGermany2026-04-08King, Christopher A Esq NEW87Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadSpainBernardo Dominic RENEWAL
Sinclair WaycottJapanIoni Bowcher RENEWAL
Salvatore StockhamBrazilOnyama Limba NEW
Aruna FigeroaCanadaBernardo Dominic RENEWAL
Julie StensethFranceStephen Shaw RENEWAL
Johnson SergiUnited KingdomOnyama Limba RENEWAL
Salvatore StockhamArgentinaAnna Fali QUALIFIED
Smith GlickSpainIvan Magalhaes PROPOSAL
Adams MorascaCanadaAmy Elsner QUALIFIED
Maisha RulapaughUnited KingdomAmy Elsner PROPOSAL
Francesco ShinkoArgentinaIoni Bowcher NEW
Munro FerenczRussiaAmy Elsner NEW
Murillo MaletFranceAnna Fali UNQUALIFIED
Leja CaldareraItalyAsiya Javayant NEGOTIATION
Octavia MaletRussiaIoni Bowcher NEGOTIATION
Tony FollerCanadaAnna Fali QUALIFIED
Kaitlin OstroskySpainIoni Bowcher NEW
Misaki RoysterBrazilBernardo Dominic NEW
Sinclair WaycottRussiaOnyama Limba NEW
Juan WieserUnited KingdomXuxue Feng UNQUALIFIED
Mayumi KolmetzBrazilElwin Sharvill RENEWAL
Francesco ShinkoItalyAnna Fali RENEWAL
Salvatore StockhamCanadaIoni Bowcher RENEWAL
Aruna FigeroaFranceStephen Shaw RENEWAL
Alejandro PerinBrazilXuxue Feng RENEWAL
Aditya KuskoFranceStephen Shaw NEGOTIATION
Murillo MaletCanadaAsiya Javayant NEW
Julie StensethJapanAmy Elsner NEGOTIATION
Francesco ShinkoSpainStephen Shaw NEW
Arvin AlbaresGermanyXuxue Feng PROPOSAL
Jones VocelkaIndiaIoni Bowcher UNQUALIFIED
Costa DilliardBrazilIoni Bowcher NEW
Julie StensethCanadaAnna Fali PROPOSAL
Clifford RimRussiaBernardo Dominic NEW
Rodrigues CampainFranceOnyama Limba NEW
Julie StensethUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro PerinItalyElwin Sharvill PROPOSAL
Cody SaylorsArgentinaAmy Elsner RENEWAL
Alejandro PerinGermanyAmy Elsner RENEWAL
Leon OldroydItalyBernardo Dominic RENEWAL
Aika InouyeCanadaAsiya Javayant UNQUALIFIED
Kadeem FlosiArgentinaOnyama Limba QUALIFIED
Cody SaylorsRussiaAsiya Javayant QUALIFIED
Julie StensethRussiaIvan Magalhaes RENEWAL
Murillo MaletFranceStephen Shaw QUALIFIED
Jefferson SchemmerRussiaIvan Magalhaes QUALIFIED
Chavez BriddickCanadaIvan Magalhaes NEW
Silvio SlusarskiFranceAmy Elsner QUALIFIED
Johnson SergiBrazilStephen Shaw RENEWAL
Octavia MaletAustraliaAsiya Javayant QUALIFIED
Frozen Columns
Name
Smith Glick
Octavia Malet
Rodrigues Campain
Darci Poquette
Claire Tollner
Clifford Rim
Deepesh Chui
Munro Ferencz
Adams Morasca
Johnson Sergi
Salvatore Stockham
Juan Wieser
Jennifer Amigon
Ricardo Gaucho
Stacey Maclead
Julie Stenseth
Francesco Shinko
Deepesh Chui
Clifford Rim
Morrow Ruta
Faith Gillian
Claire Tollner
Tony Foller
Misaki Royster
Francesco Shinko
Wickens Nestle
Kaitlin Ostrosky
Silvio Slusarski
Misaki Royster
Jennifer Amigon
Mayumi Kolmetz
Aruna Figeroa
Juan Wieser
Murillo Malet
Johnson Sergi
Clifford Rim
Rodrigues Campain
Rodrigues Campain
Greenwood Bolognia
Octavia Malet
Aruna Figeroa
Chavez Briddick
Francesco Shinko
Arvin Albares
Alejandro Perin
Julie Stenseth
Misaki Royster
Aika Inouye
Ashley Doe
Mayumi Kolmetz
IdCountryDate
1000Canada2026-04-25
1001Australia2026-04-08
1002Italy2026-04-16
1003Russia2026-04-08
1004Spain2026-04-03
1005Spain2026-04-11
1006Brazil2026-04-28
1007United Kingdom2026-04-10
1008United Kingdom2026-04-21
1009United Kingdom2026-04-29
1010Spain2026-04-23
1011Spain2026-04-26
1012Brazil2026-04-22
1013Brazil2026-04-22
1014India2026-04-25
1015Argentina2026-04-13
1016Brazil2026-04-15
1017France2026-03-31
1018India2026-04-09
1019Italy2026-04-26
1020Italy2026-04-02
1021Argentina2026-04-13
1022Germany2026-04-29
1023Argentina2026-04-14
1024Brazil2026-04-21
1025Spain2026-04-08
1026Italy2026-04-28
1027Germany2026-04-28
1028Australia2026-04-16
1029India2026-04-04
1030Argentina2026-04-16
1031Brazil2026-04-11
1032India2026-04-09
1033Germany2026-04-29
1034Germany2026-04-24
1035Argentina2026-04-25
1036France2026-04-11
1037Germany2026-04-18
1038Argentina2026-04-29
1039Japan2026-04-05
1040Italy2026-04-19
1041Brazil2026-04-02
1042Spain2026-04-14
1043France2026-03-31
1044Japan2026-04-21
1045Russia2026-04-25
1046India2026-04-10
1047France2026-04-05
1048Japan2026-04-04
1049Argentina2026-04-28

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000France2026-04-21
Ashley Doe1001Russia2026-04-10
Smith Glick1002Spain2026-04-20
Ricardo Gaucho1003Spain2026-04-24
Adams Morasca1004Germany2026-04-02
Stacey Maclead1005Canada2026-04-19
Faith Gillian1006Canada2026-04-04
Silvio Slusarski1007Italy2026-04-14
Faith Gillian1008Canada2026-04-06
Misaki Royster1009Russia2026-04-07
Sinclair Waycott1010United Kingdom2026-04-14
Arvin Albares1011Russia2026-04-08
Francesco Shinko1012France2026-03-31
Arvin Albares1013Argentina2026-04-19
Alejandro Perin1014Russia2026-04-01
Leja Caldarera1015United Kingdom2026-04-25
Izzy Garufi1016Spain2026-04-28
Darci Poquette1017Canada2026-04-21
Tony Foller1018Argentina2026-04-12
Murillo Malet1019United Kingdom2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeGermanyAnna Fali UNQUALIFIED
Nicolas IturbideGermanyBernardo Dominic NEW
Greenwood BologniaIndiaIvan Magalhaes QUALIFIED
Ashley DoeRussiaStephen Shaw QUALIFIED
Kaitlin OstroskyBrazilOnyama Limba QUALIFIED
Jones VocelkaFranceIoni Bowcher PROPOSAL
Faith GillianRussiaBernardo Dominic RENEWAL
Greenwood BologniaUnited KingdomBernardo Dominic PROPOSAL
Nicolas IturbideSpainAmy Elsner RENEWAL
Stacey MacleadAustraliaAnna Fali PROPOSAL
Nicolas IturbideSpainIoni Bowcher NEW
Claire TollnerItalyElwin Sharvill PROPOSAL
Johnson SergiFranceIvan Magalhaes RENEWAL
Adams MorascaCanadaIvan Magalhaes NEGOTIATION
Maria MarrierJapanOnyama Limba PROPOSAL
Aditya KuskoGermanyStephen Shaw NEW
Octavia MaletUnited KingdomAnna Fali UNQUALIFIED
Munro FerenczFranceAmy Elsner PROPOSAL
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Mayumi KolmetzSpainOnyama Limba RENEWAL
Jeanfrancois VenereCanadaElwin Sharvill PROPOSAL
Murillo MaletAustraliaOnyama Limba PROPOSAL
Aditya KuskoJapanAnna Fali NEW
Jeanfrancois VenereSpainAsiya Javayant RENEWAL
Misaki RoysterBrazilBernardo Dominic QUALIFIED
Francesco ShinkoBrazilAnna Fali NEW
Costa DilliardJapanOnyama Limba NEW
Costa DilliardAustraliaAmy Elsner RENEWAL
Faith GillianGermanyIvan Magalhaes RENEWAL
Kaitlin OstroskyUnited KingdomAsiya Javayant QUALIFIED
Mayumi KolmetzBrazilAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaIoni Bowcher UNQUALIFIED
Jones VocelkaSpainAnna Fali UNQUALIFIED
Ivar PaprockiCanadaStephen Shaw RENEWAL
James ButtFranceIoni Bowcher UNQUALIFIED
Faith GillianArgentinaIvan Magalhaes PROPOSAL
Munro FerenczAustraliaElwin Sharvill NEGOTIATION
Wickens NestleUnited KingdomXuxue Feng NEW
Cody SaylorsArgentinaXuxue Feng RENEWAL
Johnson SergiUnited KingdomIoni Bowcher NEGOTIATION

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