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 RoysterArgentinaAmy Elsner NEW
Jeanfrancois VenereJapanBernardo Dominic PROPOSAL
Greenwood BologniaUnited KingdomXuxue Feng UNQUALIFIED
Smith GlickBrazilStephen Shaw NEGOTIATION
Mujtaba NickaJapanElwin Sharvill NEW
Julie StensethSpainBernardo Dominic NEGOTIATION
Aditya KuskoItalyBernardo Dominic NEGOTIATION
Francesco ShinkoArgentinaIoni Bowcher QUALIFIED
Salvatore StockhamSpainIoni Bowcher NEW
Stacey MacleadFranceStephen Shaw NEGOTIATION
Leon OldroydIndiaAnna Fali PROPOSAL
Antonio CaudyGermanyElwin Sharvill NEW
Alejandro PerinUnited KingdomElwin Sharvill QUALIFIED
Aditya KuskoCanadaAnna Fali RENEWAL
Johnson SergiGermanyStephen Shaw QUALIFIED
Mujtaba NickaRussiaBernardo Dominic RENEWAL
Alejandro PerinAustraliaAmy Elsner QUALIFIED
Julie StensethIndiaAsiya Javayant RENEWAL
Aruna FigeroaUnited KingdomElwin Sharvill RENEWAL
Jeanfrancois VenereAustraliaOnyama Limba UNQUALIFIED
Ashley DoeItalyStephen Shaw QUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher UNQUALIFIED
Johnson SergiFranceIvan Magalhaes QUALIFIED
David DarakjyBrazilOnyama Limba NEGOTIATION
Sinclair WaycottGermanyAnna Fali PROPOSAL
Rodrigues CampainAustraliaElwin Sharvill UNQUALIFIED
Julie StensethFranceElwin Sharvill QUALIFIED
Claire TollnerFranceOnyama Limba NEGOTIATION
Smith GlickFranceOnyama Limba RENEWAL
Cody SaylorsGermanyIvan Magalhaes RENEWAL
Jones VocelkaGermanyAnna Fali NEGOTIATION
Antonio CaudyArgentinaBernardo Dominic NEGOTIATION
Faith GillianJapanXuxue Feng UNQUALIFIED
Greenwood BologniaIndiaIoni Bowcher QUALIFIED
Julie StensethCanadaIoni Bowcher PROPOSAL
Ricardo GauchoBrazilElwin Sharvill RENEWAL
Isabel BowleyFranceIvan Magalhaes NEGOTIATION
Adams MorascaFranceElwin Sharvill QUALIFIED
Kadeem FlosiAustraliaXuxue Feng RENEWAL
Julie StensethSpainBernardo Dominic PROPOSAL
Salvatore StockhamSpainXuxue Feng UNQUALIFIED
Morrow RutaArgentinaIoni Bowcher NEGOTIATION
Maria MarrierFranceAmy Elsner QUALIFIED
Isabel BowleyIndiaBernardo Dominic QUALIFIED
Clifford RimSpainAsiya Javayant NEGOTIATION
Rodrigues CampainArgentinaElwin Sharvill PROPOSAL
Adams MorascaBrazilIvan Magalhaes NEW
Francesco ShinkoItalyAnna Fali QUALIFIED
Munro FerenczAustraliaOnyama Limba NEW
Munro FerenczArgentinaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottBrazilAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaElwin Sharvill RENEWAL
Alejandro PerinItalyAmy Elsner QUALIFIED
Murillo MaletItalyBernardo Dominic QUALIFIED
Jefferson SchemmerAustraliaStephen Shaw NEW
Jennifer AmigonFranceStephen Shaw UNQUALIFIED
Darci PoquetteItalyBernardo Dominic UNQUALIFIED
Greenwood BologniaRussiaOnyama Limba NEW
Kadeem FlosiGermanyStephen Shaw NEW
Alejandro PerinCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresBrazil2025-10-01Printing Dimensions NEW42Ivan Magalhaes
1001Cody SaylorsItaly2025-10-02Commercial Press PROPOSAL49Ivan Magalhaes
1002Ivar PaprockiUnited Kingdom2025-10-06Feltz Printing Service NEW32Ioni Bowcher
1003Johnson SergiGermany2025-10-10Rousseaux, Michael Esq UNQUALIFIED21Elwin Sharvill
1004Maria MarrierAustralia2025-10-03Commercial Press QUALIFIED73Ivan Magalhaes
1005Clifford RimRussia2025-10-02Buckley Miller Wright NEW31Anna Fali
1006Maria MarrierAustralia2025-09-28Printing Dimensions NEGOTIATION44Ioni Bowcher
1007Morrow RutaUnited Kingdom2025-10-09Chapman, Ross E Esq NEGOTIATION4Stephen Shaw
1008Costa DilliardArgentina2025-09-24Commercial Press UNQUALIFIED62Ioni Bowcher
1009Ashley DoeSpain2025-10-03Chanay, Jeffrey A Esq NEGOTIATION61Asiya Javayant
1010Cody SaylorsRussia2025-10-06Morlong Associates UNQUALIFIED17Ivan Magalhaes
1011Stacey MacleadSpain2025-09-25King, Christopher A Esq NEW83Bernardo Dominic
1012Jefferson SchemmerRussia2025-10-03Benton, John B Jr NEGOTIATION10Ioni Bowcher
1013Claire TollnerAustralia2025-10-05Morlong Associates RENEWAL84Ioni Bowcher
1014Murillo MaletAustralia2025-09-17Feltz Printing Service UNQUALIFIED43Onyama Limba
1015Francesco ShinkoFrance2025-09-19Printing Dimensions UNQUALIFIED95Onyama Limba
1016Julie StensethCanada2025-09-27Rangoni Of Florence RENEWAL82Elwin Sharvill
1017Aruna FigeroaUnited Kingdom2025-09-23Chapman, Ross E Esq UNQUALIFIED56Onyama Limba
1018Jeanfrancois VenereGermany2025-10-07Chapman, Ross E Esq RENEWAL12Ioni Bowcher
1019Johnson SergiItaly2025-10-12Rousseaux, Michael Esq UNQUALIFIED81Xuxue Feng
1020Tony FollerArgentina2025-10-02Chemel, James L Cpa NEGOTIATION50Ioni Bowcher
1021Mayumi KolmetzUnited Kingdom2025-09-18Morlong Associates PROPOSAL60Xuxue Feng
1022Costa DilliardUnited Kingdom2025-10-06Printing Dimensions QUALIFIED12Elwin Sharvill
1023David DarakjySpain2025-09-15Buckley Miller Wright UNQUALIFIED6Ioni Bowcher
1024Isabel BowleyGermany2025-10-06Feltz Printing Service NEGOTIATION37Ivan Magalhaes
1025Octavia MaletCanada2025-09-24Morlong Associates RENEWAL35Ioni Bowcher
1026Clifford RimCanada2025-10-07Chanay, Jeffrey A Esq UNQUALIFIED49Ioni Bowcher
1027Morrow RutaFrance2025-10-12Dorl, James J Esq QUALIFIED85Onyama Limba
1028Ashley DoeAustralia2025-10-11Commercial Press NEGOTIATION11Amy Elsner
1029Julie StensethRussia2025-09-25Benton, John B Jr NEGOTIATION50Asiya Javayant
1030Rodrigues CampainUnited Kingdom2025-09-16Printing Dimensions NEGOTIATION24Xuxue Feng
1031Cody SaylorsRussia2025-09-23Commercial Press NEGOTIATION36Elwin Sharvill
1032Jones VocelkaJapan2025-09-18Feltz Printing Service NEW48Ioni Bowcher
1033Mayumi KolmetzJapan2025-10-05Printing Dimensions PROPOSAL18Bernardo Dominic
1034Darci PoquetteArgentina2025-10-02Buckley Miller Wright UNQUALIFIED66Xuxue Feng
1035Antonio CaudyArgentina2025-09-26Printing Dimensions RENEWAL87Ivan Magalhaes
1036Nicolas IturbideGermany2025-09-23King, Christopher A Esq RENEWAL46Onyama Limba
1037Tony FollerRussia2025-09-27Rangoni Of Florence NEW99Bernardo Dominic
1038Izzy GarufiUnited Kingdom2025-09-16Feltz Printing Service PROPOSAL58Elwin Sharvill
1039Darci PoquetteGermany2025-10-04Dorl, James J Esq RENEWAL65Xuxue Feng
1040Arvin AlbaresCanada2025-09-24Feiner Bros NEW1Amy Elsner
1041Ivar PaprockiUnited Kingdom2025-09-14Commercial Press PROPOSAL78Amy Elsner
1042James ButtItaly2025-09-16Chemel, James L Cpa PROPOSAL46Bernardo Dominic
1043Costa DilliardIndia2025-10-04Rangoni Of Florence QUALIFIED91Ivan Magalhaes
1044Misaki RoysterSpain2025-09-24Morlong Associates UNQUALIFIED62Xuxue Feng
1045Octavia MaletAustralia2025-09-20Chapman, Ross E Esq NEW71Onyama Limba
1046Leon OldroydItaly2025-10-02Rousseaux, Michael Esq PROPOSAL64Amy Elsner
1047Maria MarrierCanada2025-10-10Rousseaux, Michael Esq PROPOSAL37Ivan Magalhaes
1048Aika InouyeBrazil2025-10-04King, Christopher A Esq UNQUALIFIED4Asiya Javayant
1049Arvin AlbaresBrazil2025-09-28Commercial Press PROPOSAL55Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleBrazilStephen Shaw PROPOSAL
Deepesh ChuiBrazilIoni Bowcher NEGOTIATION
Ivar PaprockiAustraliaAsiya Javayant RENEWAL
Arvin AlbaresGermanyAmy Elsner RENEWAL
Aika InouyeJapanAmy Elsner PROPOSAL
Tony FollerUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher NEW
Jennifer AmigonFranceElwin Sharvill UNQUALIFIED
Maisha RulapaughIndiaIoni Bowcher UNQUALIFIED
Johnson SergiItalyStephen Shaw QUALIFIED
Wickens NestleAustraliaOnyama Limba NEW
Juan WieserCanadaIoni Bowcher NEGOTIATION
Leon OldroydGermanyAmy Elsner PROPOSAL
Alejandro PerinSpainBernardo Dominic NEGOTIATION
Nicolas IturbideUnited KingdomBernardo Dominic RENEWAL
Aika InouyeGermanyAmy Elsner UNQUALIFIED
Costa DilliardSpainXuxue Feng QUALIFIED
Maria MarrierSpainStephen Shaw UNQUALIFIED
Chavez BriddickArgentinaStephen Shaw NEW
Sinclair WaycottFranceElwin Sharvill PROPOSAL
Munro FerenczItalyStephen Shaw NEW
James ButtSpainXuxue Feng RENEWAL
Johnson SergiCanadaBernardo Dominic NEW
Kadeem FlosiGermanyXuxue Feng QUALIFIED
Jefferson SchemmerJapanAsiya Javayant PROPOSAL
Izzy GarufiJapanAsiya Javayant UNQUALIFIED
Jennifer AmigonSpainAmy Elsner QUALIFIED
Adams MorascaSpainAmy Elsner RENEWAL
Aika InouyeAustraliaIvan Magalhaes UNQUALIFIED
Aika InouyeIndiaAmy Elsner NEGOTIATION
Morrow RutaSpainAmy Elsner NEW
Antonio CaudyBrazilOnyama Limba UNQUALIFIED
Darci PoquetteRussiaXuxue Feng NEW
Clifford RimCanadaAsiya Javayant RENEWAL
Leon OldroydUnited KingdomBernardo Dominic QUALIFIED
Leja CaldareraJapanXuxue Feng RENEWAL
Clifford RimGermanyBernardo Dominic NEW
Clifford RimIndiaIoni Bowcher NEW
Costa DilliardSpainBernardo Dominic UNQUALIFIED
Julie StensethAustraliaIvan Magalhaes RENEWAL
Aika InouyeCanadaXuxue Feng QUALIFIED
Leja CaldareraAustraliaAmy Elsner NEGOTIATION
Jennifer AmigonUnited KingdomElwin Sharvill NEGOTIATION
Maria MarrierItalyBernardo Dominic PROPOSAL
Jennifer AmigonItalyAsiya Javayant PROPOSAL
Leja CaldareraUnited KingdomXuxue Feng RENEWAL
Antonio CaudyFranceAsiya Javayant QUALIFIED
James ButtAustraliaElwin Sharvill PROPOSAL
Aika InouyeSpainOnyama Limba NEW
Julie StensethFranceAmy Elsner RENEWAL
Frozen Columns
Name
Mujtaba Nicka
Smith Glick
Sinclair Waycott
Leja Caldarera
Leon Oldroyd
Deepesh Chui
Ashley Doe
Octavia Malet
Rodrigues Campain
Faith Gillian
Greenwood Bolognia
Nicolas Iturbide
Emily Whobrey
Darci Poquette
Maisha Rulapaugh
Sinclair Waycott
Rodrigues Campain
Emily Whobrey
Rodrigues Campain
Kadeem Flosi
Julie Stenseth
Isabel Bowley
David Darakjy
Ashley Doe
Munro Ferencz
James Butt
Greenwood Bolognia
Maisha Rulapaugh
Aditya Kusko
Aruna Figeroa
Wickens Nestle
Jennifer Amigon
Salvatore Stockham
David Darakjy
David Darakjy
Tony Foller
Nicolas Iturbide
Maria Marrier
Ashley Doe
Greenwood Bolognia
Ricardo Gaucho
Faith Gillian
Izzy Garufi
Mujtaba Nicka
Kadeem Flosi
Izzy Garufi
Costa Dilliard
Chavez Briddick
Mujtaba Nicka
Jeanfrancois Venere
IdCountryDate
1000Brazil2025-09-25
1001Brazil2025-10-12
1002Italy2025-09-16
1003India2025-10-03
1004Japan2025-10-07
1005Russia2025-10-03
1006Brazil2025-09-19
1007Canada2025-09-27
1008Germany2025-09-16
1009Japan2025-10-01
1010Spain2025-09-28
1011Argentina2025-09-14
1012United Kingdom2025-09-25
1013Germany2025-09-15
1014Brazil2025-09-20
1015Japan2025-09-20
1016Canada2025-10-03
1017Russia2025-10-02
1018Japan2025-10-08
1019France2025-09-14
1020Germany2025-10-03
1021Russia2025-09-15
1022Argentina2025-10-09
1023Germany2025-09-14
1024Russia2025-09-21
1025France2025-10-04
1026India2025-10-05
1027Argentina2025-09-16
1028India2025-09-15
1029Russia2025-10-08
1030Canada2025-10-10
1031Germany2025-09-25
1032Japan2025-09-14
1033Australia2025-10-02
1034Argentina2025-09-28
1035United Kingdom2025-09-25
1036United Kingdom2025-10-08
1037Australia2025-10-04
1038India2025-10-07
1039Brazil2025-09-19
1040Canada2025-10-12
1041Germany2025-09-23
1042France2025-10-09
1043France2025-10-01
1044Germany2025-09-29
1045Australia2025-10-04
1046Italy2025-09-17
1047United Kingdom2025-09-25
1048France2025-10-05
1049India2025-09-15

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Australia2025-10-04
Salvatore Stockham1001Germany2025-10-05
Izzy Garufi1002United Kingdom2025-10-09
Munro Ferencz1003Canada2025-09-16
Stacey Maclead1004Russia2025-10-03
James Butt1005Australia2025-09-15
Francesco Shinko1006United Kingdom2025-10-04
Murillo Malet1007Brazil2025-09-21
James Butt1008France2025-09-22
Mayumi Kolmetz1009Brazil2025-10-02
Claire Tollner1010India2025-09-18
Deepesh Chui1011Germany2025-09-22
Tony Foller1012Spain2025-10-05
Johnson Sergi1013Brazil2025-09-23
Antonio Caudy1014France2025-09-16
Deepesh Chui1015Australia2025-09-15
Isabel Bowley1016Russia2025-10-01
Jennifer Amigon1017Argentina2025-09-28
Silvio Slusarski1018Spain2025-10-06
Munro Ferencz1019Argentina2025-09-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickItalyStephen Shaw QUALIFIED
Antonio CaudyRussiaStephen Shaw PROPOSAL
Wickens NestleAustraliaElwin Sharvill RENEWAL
Francesco ShinkoItalyXuxue Feng NEGOTIATION
Isabel BowleyJapanXuxue Feng UNQUALIFIED
Ashley DoeCanadaStephen Shaw NEW
Izzy GarufiArgentinaAsiya Javayant QUALIFIED
Ivar PaprockiRussiaIvan Magalhaes QUALIFIED
Kadeem FlosiGermanyIvan Magalhaes QUALIFIED
Octavia MaletJapanXuxue Feng PROPOSAL
Morrow RutaJapanElwin Sharvill NEGOTIATION
Leon OldroydUnited KingdomAmy Elsner RENEWAL
Salvatore StockhamArgentinaElwin Sharvill NEGOTIATION
Julie StensethSpainAmy Elsner PROPOSAL
Maria MarrierFranceIoni Bowcher NEGOTIATION
Nicolas IturbideJapanBernardo Dominic PROPOSAL
Emily WhobreyBrazilAnna Fali PROPOSAL
Claire TollnerAustraliaElwin Sharvill QUALIFIED
Clifford RimCanadaIoni Bowcher NEW
James ButtUnited KingdomXuxue Feng NEGOTIATION
Silvio SlusarskiBrazilBernardo Dominic QUALIFIED
Maria MarrierGermanyXuxue Feng NEW
Arvin AlbaresIndiaAnna Fali RENEWAL
Deepesh ChuiArgentinaAnna Fali PROPOSAL
Kadeem FlosiGermanyBernardo Dominic QUALIFIED
Julie StensethArgentinaAnna Fali NEGOTIATION
Murillo MaletItalyIoni Bowcher UNQUALIFIED
Octavia MaletGermanyAnna Fali RENEWAL
Chavez BriddickRussiaAmy Elsner RENEWAL
Octavia MaletGermanyIoni Bowcher NEGOTIATION
Juan WieserAustraliaIoni Bowcher PROPOSAL
Chavez BriddickRussiaAnna Fali NEW
Cody SaylorsIndiaElwin Sharvill NEGOTIATION
Greenwood BologniaSpainIoni Bowcher PROPOSAL
David DarakjyIndiaBernardo Dominic NEW
Jones VocelkaJapanXuxue Feng NEGOTIATION
Tony FollerBrazilXuxue Feng QUALIFIED
Morrow RutaCanadaIoni Bowcher NEGOTIATION
Aika InouyeItalyBernardo Dominic RENEWAL
James ButtUnited KingdomXuxue Feng 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>