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
Smith GlickArgentinaBernardo Dominic NEW
Munro FerenczFranceAnna Fali UNQUALIFIED
Isabel BowleySpainAsiya Javayant RENEWAL
Aruna FigeroaJapanIvan Magalhaes NEGOTIATION
Aruna FigeroaIndiaAmy Elsner NEW
Ivar PaprockiSpainOnyama Limba RENEWAL
Ashley DoeCanadaElwin Sharvill NEGOTIATION
Mujtaba NickaFranceAnna Fali UNQUALIFIED
Costa DilliardSpainAsiya Javayant QUALIFIED
Ashley DoeBrazilStephen Shaw NEGOTIATION
Nicolas IturbideCanadaAsiya Javayant RENEWAL
Alejandro PerinBrazilAsiya Javayant QUALIFIED
Johnson SergiItalyOnyama Limba QUALIFIED
Nicolas IturbideAustraliaAsiya Javayant RENEWAL
Darci PoquetteUnited KingdomIoni Bowcher RENEWAL
Octavia MaletSpainElwin Sharvill PROPOSAL
Clifford RimRussiaBernardo Dominic NEGOTIATION
Adams MorascaUnited KingdomAsiya Javayant NEGOTIATION
Aruna FigeroaFranceStephen Shaw RENEWAL
Tony FollerCanadaAnna Fali NEGOTIATION
Wickens NestleUnited KingdomBernardo Dominic UNQUALIFIED
James ButtGermanyOnyama Limba NEW
Mayumi KolmetzAustraliaIvan Magalhaes RENEWAL
Mujtaba NickaJapanBernardo Dominic RENEWAL
Emily WhobreyArgentinaElwin Sharvill NEGOTIATION
Costa DilliardJapanAsiya Javayant RENEWAL
Stacey MacleadAustraliaAmy Elsner QUALIFIED
Francesco ShinkoSpainStephen Shaw PROPOSAL
Murillo MaletRussiaIvan Magalhaes QUALIFIED
Kaitlin OstroskySpainAmy Elsner PROPOSAL
James ButtItalyOnyama Limba NEW
Isabel BowleyUnited KingdomAnna Fali NEGOTIATION
Aditya KuskoGermanyIvan Magalhaes NEW
Tony FollerGermanyElwin Sharvill NEW
Maria MarrierUnited KingdomIoni Bowcher PROPOSAL
Mujtaba NickaAustraliaIvan Magalhaes NEGOTIATION
Wickens NestleBrazilElwin Sharvill RENEWAL
Chavez BriddickItalyIoni Bowcher NEGOTIATION
Johnson SergiUnited KingdomAnna Fali NEW
Ivar PaprockiIndiaAsiya Javayant PROPOSAL
Leon OldroydJapanOnyama Limba PROPOSAL
Aruna FigeroaGermanyAmy Elsner RENEWAL
Octavia MaletGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiRussiaIvan Magalhaes RENEWAL
Greenwood BologniaUnited KingdomBernardo Dominic NEW
Smith GlickJapanAsiya Javayant UNQUALIFIED
David DarakjyItalyXuxue Feng QUALIFIED
Clifford RimItalyAmy Elsner RENEWAL
Claire TollnerFranceOnyama Limba RENEWAL
Francesco ShinkoCanadaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamBrazilAmy Elsner NEW
Leon OldroydUnited KingdomIvan Magalhaes PROPOSAL
Sinclair WaycottJapanIvan Magalhaes RENEWAL
Kaitlin OstroskySpainBernardo Dominic QUALIFIED
Izzy GarufiItalyBernardo Dominic NEW
Salvatore StockhamItalyXuxue Feng PROPOSAL
Mujtaba NickaIndiaXuxue Feng NEW
Isabel BowleySpainElwin Sharvill NEW
Adams MorascaFranceIoni Bowcher UNQUALIFIED
Sinclair WaycottFranceAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaJapan2026-05-03Chapman, Ross E Esq RENEWAL28Anna Fali
1001Aika InouyeFrance2026-04-26Chapman, Ross E Esq QUALIFIED60Amy Elsner
1002Murillo MaletAustralia2026-04-23Rousseaux, Michael Esq QUALIFIED90Anna Fali
1003Aditya KuskoBrazil2026-04-11Benton, John B Jr NEGOTIATION95Xuxue Feng
1004Greenwood BologniaFrance2026-04-28Buckley Miller Wright NEGOTIATION64Anna Fali
1005Claire TollnerFrance2026-04-18Feltz Printing Service UNQUALIFIED81Stephen Shaw
1006Costa DilliardSpain2026-04-21King, Christopher A Esq NEGOTIATION42Ivan Magalhaes
1007Misaki RoysterBrazil2026-04-13Truhlar And Truhlar Attys NEW88Xuxue Feng
1008Munro FerenczArgentina2026-04-18Rangoni Of Florence PROPOSAL23Amy Elsner
1009Johnson SergiAustralia2026-04-11King, Christopher A Esq NEGOTIATION96Amy Elsner
1010Francesco ShinkoSpain2026-04-20Commercial Press PROPOSAL44Ioni Bowcher
1011Octavia MaletJapan2026-04-21Printing Dimensions NEW10Onyama Limba
1012Antonio CaudyRussia2026-04-06Dorl, James J Esq RENEWAL63Ivan Magalhaes
1013Aika InouyeRussia2026-04-28Rousseaux, Michael Esq PROPOSAL84Asiya Javayant
1014Jones VocelkaIndia2026-04-21Buckley Miller Wright NEGOTIATION9Ivan Magalhaes
1015Maisha RulapaughGermany2026-04-24Chanay, Jeffrey A Esq NEW43Amy Elsner
1016Chavez BriddickSpain2026-04-06Truhlar And Truhlar Attys NEW46Amy Elsner
1017Cody SaylorsSpain2026-04-08Feiner Bros UNQUALIFIED92Amy Elsner
1018Costa DilliardIndia2026-04-05Chapman, Ross E Esq UNQUALIFIED10Ioni Bowcher
1019Mayumi KolmetzArgentina2026-04-05Chapman, Ross E Esq RENEWAL45Anna Fali
1020Juan WieserCanada2026-04-28Chanay, Jeffrey A Esq NEGOTIATION53Stephen Shaw
1021Octavia MaletCanada2026-04-16Chemel, James L Cpa PROPOSAL69Anna Fali
1022Jennifer AmigonBrazil2026-04-30Morlong Associates NEW72Xuxue Feng
1023Smith GlickIndia2026-04-18Dorl, James J Esq PROPOSAL48Stephen Shaw
1024Faith GillianRussia2026-04-08Buckley Miller Wright RENEWAL43Onyama Limba
1025Octavia MaletUnited Kingdom2026-05-04Dorl, James J Esq QUALIFIED13Ivan Magalhaes
1026Ricardo GauchoUnited Kingdom2026-04-28Rousseaux, Michael Esq PROPOSAL92Stephen Shaw
1027Silvio SlusarskiItaly2026-04-09Commercial Press NEW17Bernardo Dominic
1028Jefferson SchemmerItaly2026-04-20Feiner Bros NEW64Ivan Magalhaes
1029Greenwood BologniaJapan2026-04-17Benton, John B Jr NEW45Asiya Javayant
1030Deepesh ChuiAustralia2026-04-29Buckley Miller Wright NEW58Ivan Magalhaes
1031Maria MarrierGermany2026-04-06Chanay, Jeffrey A Esq QUALIFIED3Elwin Sharvill
1032Emily WhobreyIndia2026-04-10Truhlar And Truhlar Attys NEW6Anna Fali
1033Arvin AlbaresBrazil2026-04-12Dorl, James J Esq PROPOSAL67Amy Elsner
1034Alejandro PerinGermany2026-04-06Truhlar And Truhlar Attys QUALIFIED83Anna Fali
1035Ricardo GauchoJapan2026-04-13Benton, John B Jr PROPOSAL29Anna Fali
1036Izzy GarufiAustralia2026-04-11Chanay, Jeffrey A Esq UNQUALIFIED87Xuxue Feng
1037Mujtaba NickaBrazil2026-04-21Commercial Press UNQUALIFIED93Asiya Javayant
1038Faith GillianRussia2026-05-02Morlong Associates UNQUALIFIED22Bernardo Dominic
1039Alejandro PerinRussia2026-04-11Chemel, James L Cpa NEGOTIATION2Onyama Limba
1040Francesco ShinkoIndia2026-05-03Morlong Associates UNQUALIFIED91Bernardo Dominic
1041Claire TollnerUnited Kingdom2026-04-14Chemel, James L Cpa QUALIFIED63Ivan Magalhaes
1042Nicolas IturbideItaly2026-04-21Rangoni Of Florence NEW17Onyama Limba
1043Francesco ShinkoItaly2026-04-09Chapman, Ross E Esq UNQUALIFIED92Bernardo Dominic
1044Greenwood BologniaGermany2026-04-30Rangoni Of Florence RENEWAL42Anna Fali
1045Jeanfrancois VenereRussia2026-04-29Chapman, Ross E Esq NEW79Anna Fali
1046Greenwood BologniaGermany2026-04-13Commercial Press PROPOSAL28Xuxue Feng
1047David DarakjyJapan2026-04-14Rousseaux, Michael Esq NEGOTIATION54Bernardo Dominic
1048Rodrigues CampainFrance2026-04-09Feiner Bros NEW95Asiya Javayant
1049Emily WhobreyIndia2026-05-02Feltz Printing Service RENEWAL64Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiUnited KingdomStephen Shaw NEGOTIATION
Jones VocelkaArgentinaAsiya Javayant NEW
Cody SaylorsGermanyStephen Shaw RENEWAL
Francesco ShinkoItalyAnna Fali NEW
Mujtaba NickaRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaJapanAsiya Javayant UNQUALIFIED
Silvio SlusarskiSpainIoni Bowcher RENEWAL
Arvin AlbaresArgentinaAsiya Javayant NEGOTIATION
Jennifer AmigonGermanyAmy Elsner QUALIFIED
Silvio SlusarskiCanadaAsiya Javayant RENEWAL
Murillo MaletItalyIvan Magalhaes RENEWAL
Jeanfrancois VenereFranceAsiya Javayant PROPOSAL
Deepesh ChuiSpainStephen Shaw PROPOSAL
Octavia MaletRussiaXuxue Feng RENEWAL
Sinclair WaycottIndiaAmy Elsner NEGOTIATION
Alejandro PerinGermanyStephen Shaw NEGOTIATION
Arvin AlbaresJapanIoni Bowcher RENEWAL
Jeanfrancois VenereUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas IturbideItalyElwin Sharvill QUALIFIED
Juan WieserFranceElwin Sharvill UNQUALIFIED
Salvatore StockhamIndiaIvan Magalhaes PROPOSAL
Isabel BowleySpainAsiya Javayant UNQUALIFIED
Ricardo GauchoRussiaIoni Bowcher RENEWAL
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Ivar PaprockiGermanyAmy Elsner NEW
Silvio SlusarskiSpainBernardo Dominic RENEWAL
Cody SaylorsFranceBernardo Dominic RENEWAL
Cody SaylorsFranceOnyama Limba RENEWAL
Leon OldroydJapanElwin Sharvill QUALIFIED
Aika InouyeBrazilAmy Elsner RENEWAL
Juan WieserJapanXuxue Feng QUALIFIED
Julie StensethFranceElwin Sharvill NEW
Ivar PaprockiSpainBernardo Dominic NEGOTIATION
Jones VocelkaUnited KingdomBernardo Dominic NEW
Smith GlickJapanAnna Fali NEW
Emily WhobreyFranceAsiya Javayant RENEWAL
Julie StensethCanadaAnna Fali RENEWAL
Clifford RimCanadaAmy Elsner PROPOSAL
Aruna FigeroaUnited KingdomAnna Fali QUALIFIED
Faith GillianCanadaAmy Elsner NEGOTIATION
David DarakjyBrazilAmy Elsner UNQUALIFIED
Costa DilliardAustraliaAmy Elsner QUALIFIED
Jones VocelkaAustraliaIvan Magalhaes NEW
Izzy GarufiBrazilElwin Sharvill QUALIFIED
Deepesh ChuiGermanyAmy Elsner UNQUALIFIED
Jefferson SchemmerJapanStephen Shaw NEGOTIATION
Morrow RutaUnited KingdomBernardo Dominic PROPOSAL
Misaki RoysterSpainIvan Magalhaes QUALIFIED
Cody SaylorsArgentinaXuxue Feng PROPOSAL
Morrow RutaSpainElwin Sharvill NEW
Frozen Columns
Name
Cody Saylors
Nicolas Iturbide
Octavia Malet
Deepesh Chui
Chavez Briddick
Arvin Albares
Deepesh Chui
Greenwood Bolognia
Alejandro Perin
Aika Inouye
James Butt
Francesco Shinko
David Darakjy
Jefferson Schemmer
Maria Marrier
Johnson Sergi
Silvio Slusarski
Isabel Bowley
Adams Morasca
Jennifer Amigon
Leja Caldarera
Mujtaba Nicka
Maisha Rulapaugh
Tony Foller
Munro Ferencz
Jennifer Amigon
Murillo Malet
Antonio Caudy
Maisha Rulapaugh
Julie Stenseth
David Darakjy
Chavez Briddick
Leja Caldarera
Jefferson Schemmer
Chavez Briddick
Stacey Maclead
Jones Vocelka
Aruna Figeroa
Maria Marrier
Munro Ferencz
Clifford Rim
Jennifer Amigon
Darci Poquette
Faith Gillian
James Butt
Aditya Kusko
Nicolas Iturbide
Smith Glick
Alejandro Perin
Mayumi Kolmetz
IdCountryDate
1000France2026-04-26
1001Russia2026-04-12
1002Russia2026-04-14
1003India2026-04-07
1004Brazil2026-04-10
1005Canada2026-04-05
1006Italy2026-04-19
1007Canada2026-05-02
1008Spain2026-04-23
1009Argentina2026-04-27
1010Argentina2026-04-17
1011Germany2026-04-13
1012India2026-05-02
1013Spain2026-04-23
1014Russia2026-04-14
1015India2026-04-08
1016Spain2026-05-02
1017India2026-05-01
1018Canada2026-04-17
1019Canada2026-04-15
1020France2026-04-10
1021Germany2026-04-25
1022India2026-05-03
1023Canada2026-04-08
1024Brazil2026-04-23
1025Japan2026-04-20
1026France2026-04-20
1027Japan2026-04-25
1028Italy2026-04-15
1029Canada2026-04-19
1030India2026-04-30
1031India2026-04-28
1032Brazil2026-04-08
1033Russia2026-05-04
1034Canada2026-04-16
1035Germany2026-04-22
1036Germany2026-04-08
1037India2026-04-18
1038Spain2026-04-22
1039France2026-04-08
1040Canada2026-04-14
1041France2026-04-25
1042Japan2026-04-08
1043Canada2026-04-24
1044Spain2026-04-28
1045Russia2026-04-29
1046Argentina2026-04-20
1047Argentina2026-04-19
1048Russia2026-04-09
1049Spain2026-04-20

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Russia2026-04-05
Salvatore Stockham1001Canada2026-05-01
Jennifer Amigon1002Italy2026-05-03
Chavez Briddick1003France2026-04-07
Nicolas Iturbide1004Italy2026-04-22
Nicolas Iturbide1005Germany2026-04-27
Sinclair Waycott1006Russia2026-04-09
Chavez Briddick1007Japan2026-05-04
Jennifer Amigon1008Italy2026-04-21
Silvio Slusarski1009India2026-04-27
Sinclair Waycott1010Japan2026-04-20
Costa Dilliard1011France2026-05-03
Jones Vocelka1012Italy2026-04-08
David Darakjy1013France2026-04-13
Julie Stenseth1014Japan2026-04-29
Jeanfrancois Venere1015United Kingdom2026-04-06
Kadeem Flosi1016Australia2026-04-21
Jones Vocelka1017Canada2026-04-09
Misaki Royster1018Russia2026-04-11
David Darakjy1019India2026-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeArgentinaXuxue Feng PROPOSAL
James ButtItalyOnyama Limba PROPOSAL
Mujtaba NickaSpainIoni Bowcher NEGOTIATION
Aika InouyeFranceAmy Elsner PROPOSAL
Kaitlin OstroskyIndiaBernardo Dominic QUALIFIED
Morrow RutaUnited KingdomBernardo Dominic QUALIFIED
Jones VocelkaCanadaIvan Magalhaes NEGOTIATION
Faith GillianIndiaBernardo Dominic PROPOSAL
Adams MorascaFranceAsiya Javayant QUALIFIED
Kadeem FlosiBrazilAmy Elsner UNQUALIFIED
Leon OldroydItalyAsiya Javayant QUALIFIED
Adams MorascaArgentinaXuxue Feng PROPOSAL
Claire TollnerItalyStephen Shaw QUALIFIED
Faith GillianUnited KingdomAnna Fali UNQUALIFIED
Costa DilliardItalyBernardo Dominic PROPOSAL
Nicolas IturbideIndiaElwin Sharvill NEGOTIATION
Maisha RulapaughIndiaIvan Magalhaes NEGOTIATION
Stacey MacleadRussiaStephen Shaw NEW
Wickens NestleJapanElwin Sharvill PROPOSAL
Leon OldroydUnited KingdomAmy Elsner QUALIFIED
Clifford RimAustraliaAnna Fali QUALIFIED
Ivar PaprockiBrazilAsiya Javayant NEGOTIATION
Octavia MaletItalyIoni Bowcher QUALIFIED
Emily WhobreyBrazilBernardo Dominic NEW
Morrow RutaUnited KingdomStephen Shaw QUALIFIED
Greenwood BologniaJapanIoni Bowcher QUALIFIED
Jennifer AmigonIndiaXuxue Feng NEGOTIATION
Leja CaldareraSpainAnna Fali PROPOSAL
Morrow RutaUnited KingdomIvan Magalhaes QUALIFIED
Misaki RoysterSpainIvan Magalhaes QUALIFIED
Jefferson SchemmerGermanyAsiya Javayant QUALIFIED
Cody SaylorsSpainIvan Magalhaes QUALIFIED
Chavez BriddickUnited KingdomAmy Elsner UNQUALIFIED
Jefferson SchemmerUnited KingdomIvan Magalhaes RENEWAL
Aditya KuskoItalyIvan Magalhaes QUALIFIED
Francesco ShinkoRussiaAsiya Javayant PROPOSAL
Antonio CaudyIndiaAmy Elsner PROPOSAL
Stacey MacleadAustraliaIoni Bowcher RENEWAL
Ivar PaprockiItalyElwin Sharvill UNQUALIFIED
Octavia MaletItalyAsiya Javayant NEW

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