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
Aika InouyeAustraliaElwin Sharvill RENEWAL
Mayumi KolmetzAustraliaOnyama Limba NEW
Murillo MaletGermanyIvan Magalhaes PROPOSAL
Izzy GarufiBrazilAmy Elsner RENEWAL
Sinclair WaycottFranceOnyama Limba RENEWAL
Faith GillianItalyIoni Bowcher QUALIFIED
Mayumi KolmetzBrazilAmy Elsner QUALIFIED
Ricardo GauchoCanadaXuxue Feng UNQUALIFIED
Aruna FigeroaArgentinaAmy Elsner NEGOTIATION
Isabel BowleySpainXuxue Feng RENEWAL
Morrow RutaGermanyStephen Shaw RENEWAL
Rodrigues CampainUnited KingdomIoni Bowcher NEW
Rodrigues CampainArgentinaStephen Shaw QUALIFIED
Sinclair WaycottItalyStephen Shaw NEW
Isabel BowleySpainOnyama Limba UNQUALIFIED
Greenwood BologniaArgentinaIoni Bowcher RENEWAL
Costa DilliardSpainXuxue Feng UNQUALIFIED
Ricardo GauchoCanadaIvan Magalhaes PROPOSAL
Misaki RoysterUnited KingdomIoni Bowcher NEGOTIATION
Antonio CaudyAustraliaIoni Bowcher PROPOSAL
Kaitlin OstroskyItalyIvan Magalhaes QUALIFIED
Leon OldroydFranceIvan Magalhaes UNQUALIFIED
Johnson SergiItalyAmy Elsner NEGOTIATION
Maria MarrierIndiaAmy Elsner RENEWAL
Izzy GarufiRussiaAnna Fali RENEWAL
Greenwood BologniaIndiaBernardo Dominic QUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw NEW
Francesco ShinkoBrazilAnna Fali QUALIFIED
Jennifer AmigonItalyXuxue Feng NEGOTIATION
Octavia MaletIndiaAsiya Javayant NEGOTIATION
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Maria MarrierItalyStephen Shaw NEGOTIATION
Wickens NestleCanadaAmy Elsner NEW
Claire TollnerUnited KingdomIoni Bowcher NEW
Smith GlickCanadaElwin Sharvill QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba PROPOSAL
James ButtBrazilAmy Elsner PROPOSAL
Misaki RoysterArgentinaAnna Fali RENEWAL
Smith GlickUnited KingdomStephen Shaw NEW
Clifford RimBrazilXuxue Feng RENEWAL
Emily WhobreyGermanyStephen Shaw UNQUALIFIED
Faith GillianGermanyIoni Bowcher NEGOTIATION
Greenwood BologniaUnited KingdomIoni Bowcher NEW
Darci PoquetteArgentinaAsiya Javayant NEW
Jennifer AmigonGermanyXuxue Feng NEGOTIATION
Kadeem FlosiIndiaXuxue Feng QUALIFIED
Munro FerenczSpainOnyama Limba PROPOSAL
Antonio CaudyItalyBernardo Dominic NEW
Alejandro PerinSpainAnna Fali UNQUALIFIED
Francesco ShinkoFranceAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiJapanAmy Elsner NEGOTIATION
Arvin AlbaresIndiaAnna Fali NEW
Deepesh ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Arvin AlbaresCanadaOnyama Limba QUALIFIED
Faith GillianIndiaIvan Magalhaes UNQUALIFIED
Aditya KuskoArgentinaStephen Shaw RENEWAL
Francesco ShinkoArgentinaAsiya Javayant NEW
Adams MorascaItalyIoni Bowcher PROPOSAL
Jennifer AmigonJapanAnna Fali QUALIFIED
Cody SaylorsSpainIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtJapan2026-05-01Chemel, James L Cpa RENEWAL79Xuxue Feng
1001Deepesh ChuiJapan2026-04-16Chapman, Ross E Esq NEGOTIATION8Ioni Bowcher
1002Costa DilliardAustralia2026-04-22Chanay, Jeffrey A Esq NEW14Anna Fali
1003Munro FerenczGermany2026-04-30Chanay, Jeffrey A Esq QUALIFIED20Xuxue Feng
1004Jefferson SchemmerUnited Kingdom2026-04-17Truhlar And Truhlar Attys PROPOSAL0Stephen Shaw
1005Sinclair WaycottSpain2026-04-21Rousseaux, Michael Esq PROPOSAL1Ivan Magalhaes
1006Johnson SergiArgentina2026-04-30Morlong Associates RENEWAL51Anna Fali
1007Mujtaba NickaCanada2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED22Anna Fali
1008Tony FollerGermany2026-05-06Commercial Press QUALIFIED93Amy Elsner
1009Misaki RoysterCanada2026-04-28Commercial Press NEW56Stephen Shaw
1010Costa DilliardIndia2026-04-12Chanay, Jeffrey A Esq NEW78Bernardo Dominic
1011Juan WieserFrance2026-04-14Benton, John B Jr RENEWAL87Xuxue Feng
1012Jennifer AmigonBrazil2026-04-29Commercial Press RENEWAL41Stephen Shaw
1013James ButtAustralia2026-05-01Buckley Miller Wright NEW57Ivan Magalhaes
1014Mayumi KolmetzSpain2026-04-17Buckley Miller Wright RENEWAL65Ivan Magalhaes
1015Greenwood BologniaItaly2026-05-05King, Christopher A Esq RENEWAL53Xuxue Feng
1016Deepesh ChuiUnited Kingdom2026-05-08Chapman, Ross E Esq NEW69Amy Elsner
1017Faith GillianJapan2026-05-01Printing Dimensions RENEWAL16Ivan Magalhaes
1018Adams MorascaSpain2026-04-24Feltz Printing Service QUALIFIED1Anna Fali
1019Cody SaylorsGermany2026-04-11Benton, John B Jr NEW1Onyama Limba
1020Darci PoquetteJapan2026-04-24Commercial Press RENEWAL31Ioni Bowcher
1021Murillo MaletCanada2026-04-28Chanay, Jeffrey A Esq NEW75Amy Elsner
1022Kadeem FlosiBrazil2026-04-30Dorl, James J Esq NEW13Bernardo Dominic
1023Cody SaylorsIndia2026-04-18Dorl, James J Esq PROPOSAL31Ioni Bowcher
1024Munro FerenczArgentina2026-05-01Buckley Miller Wright UNQUALIFIED0Bernardo Dominic
1025Adams MorascaArgentina2026-04-26Feiner Bros NEW74Bernardo Dominic
1026Leja CaldareraJapan2026-05-09Printing Dimensions NEW88Anna Fali
1027Aika InouyeSpain2026-04-24Commercial Press NEGOTIATION26Elwin Sharvill
1028Kaitlin OstroskyGermany2026-04-12Truhlar And Truhlar Attys NEGOTIATION3Anna Fali
1029Morrow RutaItaly2026-04-11Chapman, Ross E Esq NEGOTIATION78Ioni Bowcher
1030Darci PoquetteItaly2026-04-29Commercial Press NEW60Onyama Limba
1031Ricardo GauchoGermany2026-04-13Morlong Associates QUALIFIED58Elwin Sharvill
1032Deepesh ChuiArgentina2026-04-25Chapman, Ross E Esq RENEWAL66Amy Elsner
1033Aditya KuskoRussia2026-04-30Chanay, Jeffrey A Esq NEW28Ioni Bowcher
1034Greenwood BologniaAustralia2026-04-25Rousseaux, Michael Esq NEGOTIATION46Bernardo Dominic
1035David DarakjyGermany2026-05-07King, Christopher A Esq NEGOTIATION28Elwin Sharvill
1036Aruna FigeroaSpain2026-05-07Commercial Press UNQUALIFIED38Xuxue Feng
1037Arvin AlbaresJapan2026-05-03Rangoni Of Florence NEGOTIATION45Bernardo Dominic
1038Claire TollnerAustralia2026-04-30Chanay, Jeffrey A Esq PROPOSAL16Elwin Sharvill
1039Alejandro PerinRussia2026-05-06Rangoni Of Florence RENEWAL74Onyama Limba
1040Chavez BriddickSpain2026-05-08Benton, John B Jr UNQUALIFIED33Stephen Shaw
1041Kaitlin OstroskyUnited Kingdom2026-04-28Chanay, Jeffrey A Esq RENEWAL3Onyama Limba
1042Jeanfrancois VenereCanada2026-05-07Chanay, Jeffrey A Esq NEW85Asiya Javayant
1043Ricardo GauchoIndia2026-04-17Morlong Associates QUALIFIED7Elwin Sharvill
1044Faith GillianUnited Kingdom2026-05-03King, Christopher A Esq PROPOSAL96Stephen Shaw
1045Octavia MaletIndia2026-04-27Buckley Miller Wright NEGOTIATION64Anna Fali
1046Jennifer AmigonAustralia2026-04-11Morlong Associates NEW31Anna Fali
1047Tony FollerUnited Kingdom2026-04-17Rousseaux, Michael Esq PROPOSAL8Ivan Magalhaes
1048Kaitlin OstroskyGermany2026-04-12Morlong Associates NEW37Stephen Shaw
1049Jefferson SchemmerRussia2026-04-30Feiner Bros NEGOTIATION54Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoFranceOnyama Limba NEGOTIATION
Francesco ShinkoSpainOnyama Limba QUALIFIED
Antonio CaudyIndiaIoni Bowcher NEW
Clifford RimRussiaAsiya Javayant NEGOTIATION
Isabel BowleyUnited KingdomStephen Shaw UNQUALIFIED
Ivar PaprockiCanadaStephen Shaw NEGOTIATION
Smith GlickGermanyIoni Bowcher PROPOSAL
Morrow RutaItalyIoni Bowcher PROPOSAL
Greenwood BologniaJapanOnyama Limba NEW
Maisha RulapaughRussiaAnna Fali QUALIFIED
Jefferson SchemmerCanadaBernardo Dominic QUALIFIED
Smith GlickJapanAsiya Javayant PROPOSAL
James ButtFranceOnyama Limba UNQUALIFIED
Salvatore StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Jones VocelkaBrazilOnyama Limba UNQUALIFIED
Cody SaylorsBrazilAsiya Javayant UNQUALIFIED
Ashley DoeItalyIvan Magalhaes QUALIFIED
Maria MarrierJapanAnna Fali NEW
Wickens NestleArgentinaAsiya Javayant QUALIFIED
Emily WhobreyItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali QUALIFIED
Tony FollerItalyIvan Magalhaes PROPOSAL
Jones VocelkaBrazilElwin Sharvill UNQUALIFIED
Francesco ShinkoCanadaAnna Fali UNQUALIFIED
Emily WhobreyAustraliaXuxue Feng NEW
Kadeem FlosiRussiaBernardo Dominic PROPOSAL
Salvatore StockhamIndiaBernardo Dominic NEGOTIATION
Isabel BowleyItalyAsiya Javayant QUALIFIED
Stacey MacleadIndiaAnna Fali NEGOTIATION
Aika InouyeAustraliaAsiya Javayant NEW
Juan WieserItalyElwin Sharvill QUALIFIED
Darci PoquetteGermanyBernardo Dominic UNQUALIFIED
Munro FerenczItalyAsiya Javayant UNQUALIFIED
Chavez BriddickSpainAmy Elsner QUALIFIED
Julie StensethBrazilOnyama Limba UNQUALIFIED
Smith GlickArgentinaElwin Sharvill UNQUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill NEGOTIATION
Kadeem FlosiJapanIvan Magalhaes UNQUALIFIED
Rodrigues CampainIndiaIoni Bowcher NEGOTIATION
Cody SaylorsGermanyAnna Fali PROPOSAL
Smith GlickArgentinaBernardo Dominic QUALIFIED
Ashley DoeRussiaOnyama Limba RENEWAL
Claire TollnerRussiaAmy Elsner NEGOTIATION
Aditya KuskoCanadaAsiya Javayant PROPOSAL
James ButtBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerUnited KingdomElwin Sharvill RENEWAL
Kadeem FlosiSpainIvan Magalhaes RENEWAL
Julie StensethBrazilIvan Magalhaes RENEWAL
Aika InouyeJapanAsiya Javayant NEGOTIATION
Francesco ShinkoAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Murillo Malet
James Butt
Ivar Paprocki
Antonio Caudy
Aruna Figeroa
Murillo Malet
Murillo Malet
Darci Poquette
Izzy Garufi
Kadeem Flosi
James Butt
Costa Dilliard
Izzy Garufi
Octavia Malet
Octavia Malet
Kadeem Flosi
David Darakjy
Ashley Doe
Faith Gillian
Stacey Maclead
Jennifer Amigon
Kadeem Flosi
Aika Inouye
Izzy Garufi
Sinclair Waycott
Francesco Shinko
Alejandro Perin
Nicolas Iturbide
Clifford Rim
Smith Glick
Darci Poquette
Jennifer Amigon
Antonio Caudy
Salvatore Stockham
Tony Foller
Costa Dilliard
Rodrigues Campain
Jeanfrancois Venere
Mujtaba Nicka
Leja Caldarera
Murillo Malet
Octavia Malet
Claire Tollner
Misaki Royster
Octavia Malet
Jennifer Amigon
David Darakjy
Morrow Ruta
Wickens Nestle
Aditya Kusko
IdCountryDate
1000Italy2026-04-13
1001Italy2026-04-16
1002United Kingdom2026-04-25
1003Spain2026-05-05
1004Argentina2026-04-24
1005Italy2026-04-27
1006Argentina2026-04-29
1007Brazil2026-04-21
1008Italy2026-05-02
1009Germany2026-04-16
1010Spain2026-05-06
1011France2026-04-21
1012Italy2026-04-14
1013Japan2026-04-14
1014Germany2026-04-19
1015Russia2026-05-01
1016Argentina2026-05-04
1017Brazil2026-04-26
1018India2026-04-24
1019Germany2026-04-21
1020Argentina2026-04-14
1021United Kingdom2026-04-15
1022Italy2026-05-04
1023Brazil2026-05-04
1024Brazil2026-05-08
1025Italy2026-04-23
1026Russia2026-04-13
1027Australia2026-05-09
1028Spain2026-05-02
1029Spain2026-05-07
1030India2026-04-24
1031Argentina2026-04-14
1032Australia2026-04-18
1033Italy2026-04-25
1034France2026-04-30
1035India2026-04-14
1036France2026-04-12
1037Brazil2026-04-26
1038Brazil2026-04-13
1039India2026-04-12
1040Argentina2026-04-13
1041Japan2026-05-08
1042Australia2026-04-20
1043Australia2026-04-14
1044Brazil2026-04-15
1045Spain2026-04-23
1046Canada2026-04-27
1047Germany2026-04-14
1048Argentina2026-04-28
1049Russia2026-04-22

On-Demand Data

NameIdCountryDate
Silvio Slusarski1000Italy2026-04-26
Leon Oldroyd1001Argentina2026-04-29
Ashley Doe1002Canada2026-05-09
Maria Marrier1003Italy2026-04-12
Deepesh Chui1004Argentina2026-04-23
Isabel Bowley1005Italy2026-04-16
Arvin Albares1006Brazil2026-04-29
Smith Glick1007Russia2026-05-08
Sinclair Waycott1008Brazil2026-05-05
David Darakjy1009Australia2026-04-21
Morrow Ruta1010Italy2026-04-13
Darci Poquette1011Brazil2026-04-30
Wickens Nestle1012Germany2026-04-14
Faith Gillian1013Russia2026-05-01
Octavia Malet1014Germany2026-05-07
Stacey Maclead1015Argentina2026-04-25
Juan Wieser1016Germany2026-04-18
Ivar Paprocki1017Canada2026-04-20
Octavia Malet1018Japan2026-04-30
Nicolas Iturbide1019Argentina2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyBrazilAsiya Javayant NEW
Mujtaba NickaFranceIvan Magalhaes NEGOTIATION
Julie StensethBrazilAnna Fali RENEWAL
Wickens NestleUnited KingdomIvan Magalhaes PROPOSAL
Aruna FigeroaBrazilIoni Bowcher NEW
Smith GlickCanadaAmy Elsner NEGOTIATION
David DarakjyIndiaIvan Magalhaes UNQUALIFIED
Deepesh ChuiSpainIoni Bowcher QUALIFIED
Darci PoquetteRussiaAnna Fali RENEWAL
James ButtBrazilIoni Bowcher NEGOTIATION
Isabel BowleyArgentinaAnna Fali NEW
Tony FollerSpainStephen Shaw RENEWAL
Nicolas IturbideIndiaElwin Sharvill QUALIFIED
Deepesh ChuiItalyStephen Shaw PROPOSAL
Juan WieserCanadaElwin Sharvill UNQUALIFIED
Ivar PaprockiIndiaIvan Magalhaes NEW
Ashley DoeSpainAnna Fali NEW
Sinclair WaycottBrazilStephen Shaw RENEWAL
Silvio SlusarskiItalyAmy Elsner NEW
Juan WieserRussiaBernardo Dominic RENEWAL
Jones VocelkaBrazilAnna Fali QUALIFIED
Maisha RulapaughGermanyAmy Elsner RENEWAL
Adams MorascaSpainXuxue Feng RENEWAL
Murillo MaletJapanIoni Bowcher RENEWAL
Mujtaba NickaUnited KingdomOnyama Limba UNQUALIFIED
Arvin AlbaresCanadaIoni Bowcher UNQUALIFIED
Mayumi KolmetzArgentinaAnna Fali NEGOTIATION
Ivar PaprockiUnited KingdomOnyama Limba NEGOTIATION
Ashley DoeRussiaXuxue Feng PROPOSAL
Alejandro PerinBrazilAsiya Javayant QUALIFIED
Nicolas IturbideBrazilAnna Fali NEGOTIATION
Leja CaldareraArgentinaBernardo Dominic NEW
Leja CaldareraItalyIoni Bowcher UNQUALIFIED
Sinclair WaycottUnited KingdomOnyama Limba QUALIFIED
Munro FerenczFranceAsiya Javayant PROPOSAL
Greenwood BologniaGermanyStephen Shaw NEW
Jeanfrancois VenereItalyAnna Fali NEW
Faith GillianRussiaAnna Fali PROPOSAL
Aruna FigeroaCanadaBernardo Dominic QUALIFIED
David DarakjyUnited KingdomAnna Fali 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>