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 VenereIndiaStephen Shaw RENEWAL
Adams MorascaJapanXuxue Feng RENEWAL
Aika InouyeJapanAmy Elsner NEGOTIATION
Sinclair WaycottRussiaElwin Sharvill PROPOSAL
Arvin AlbaresArgentinaIvan Magalhaes NEGOTIATION
Misaki RoysterArgentinaAnna Fali NEW
Morrow RutaArgentinaXuxue Feng UNQUALIFIED
Costa DilliardItalyAnna Fali NEGOTIATION
Leja CaldareraJapanIvan Magalhaes RENEWAL
Johnson SergiFranceBernardo Dominic PROPOSAL
Deepesh ChuiSpainIoni Bowcher UNQUALIFIED
Antonio CaudyGermanyElwin Sharvill NEGOTIATION
Ashley DoeJapanXuxue Feng NEW
Aruna FigeroaUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzIndiaOnyama Limba RENEWAL
Mayumi KolmetzArgentinaElwin Sharvill NEGOTIATION
Chavez BriddickItalyElwin Sharvill NEW
Johnson SergiFranceOnyama Limba PROPOSAL
Jefferson SchemmerJapanIvan Magalhaes NEW
Wickens NestleJapanIvan Magalhaes NEGOTIATION
Maria MarrierSpainAsiya Javayant NEW
Tony FollerGermanyBernardo Dominic PROPOSAL
Francesco ShinkoFranceAmy Elsner PROPOSAL
Silvio SlusarskiItalyElwin Sharvill QUALIFIED
Stacey MacleadFranceIoni Bowcher RENEWAL
Mayumi KolmetzBrazilAnna Fali QUALIFIED
Maisha RulapaughArgentinaAmy Elsner NEW
Jennifer AmigonUnited KingdomIoni Bowcher RENEWAL
Ivar PaprockiIndiaAmy Elsner NEGOTIATION
James ButtCanadaAnna Fali NEW
Antonio CaudyItalyAnna Fali NEGOTIATION
Misaki RoysterBrazilXuxue Feng PROPOSAL
Greenwood BologniaItalyIoni Bowcher PROPOSAL
Costa DilliardJapanXuxue Feng NEW
Kadeem FlosiUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois VenereIndiaIvan Magalhaes QUALIFIED
Sinclair WaycottJapanBernardo Dominic NEGOTIATION
Kadeem FlosiFranceBernardo Dominic NEW
Aruna FigeroaRussiaElwin Sharvill NEGOTIATION
Tony FollerUnited KingdomXuxue Feng QUALIFIED
Kadeem FlosiJapanBernardo Dominic RENEWAL
Isabel BowleyAustraliaElwin Sharvill NEGOTIATION
Nicolas IturbideCanadaIoni Bowcher NEW
Deepesh ChuiIndiaStephen Shaw NEW
Morrow RutaUnited KingdomAsiya Javayant NEW
Francesco ShinkoGermanyOnyama Limba UNQUALIFIED
Emily WhobreyArgentinaAsiya Javayant NEGOTIATION
Arvin AlbaresJapanXuxue Feng PROPOSAL
Jefferson SchemmerUnited KingdomElwin Sharvill RENEWAL
Maria MarrierJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaItalyAnna Fali NEGOTIATION
Arvin AlbaresBrazilAmy Elsner QUALIFIED
Leja CaldareraBrazilAnna Fali NEW
Juan WieserItalyElwin Sharvill RENEWAL
Jones VocelkaBrazilAsiya Javayant NEW
Munro FerenczSpainBernardo Dominic UNQUALIFIED
Misaki RoysterFranceOnyama Limba PROPOSAL
Ricardo GauchoRussiaOnyama Limba NEGOTIATION
Mayumi KolmetzCanadaAmy Elsner UNQUALIFIED
Maria MarrierJapanAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianAustralia2026-05-21Chanay, Jeffrey A Esq NEW51Xuxue Feng
1001Nicolas IturbideRussia2026-05-25Buckley Miller Wright NEW25Stephen Shaw
1002Ashley DoeCanada2026-05-15Chanay, Jeffrey A Esq UNQUALIFIED2Onyama Limba
1003Isabel BowleyJapan2026-05-18Truhlar And Truhlar Attys PROPOSAL17Xuxue Feng
1004Ashley DoeRussia2026-05-11Chapman, Ross E Esq QUALIFIED47Ioni Bowcher
1005Claire TollnerCanada2026-05-28Chanay, Jeffrey A Esq NEGOTIATION44Asiya Javayant
1006Munro FerenczCanada2026-05-29Rangoni Of Florence NEW93Xuxue Feng
1007Jefferson SchemmerIndia2026-06-02Chanay, Jeffrey A Esq UNQUALIFIED25Onyama Limba
1008Jones VocelkaSpain2026-05-18Commercial Press PROPOSAL66Stephen Shaw
1009Juan WieserGermany2026-05-14Chanay, Jeffrey A Esq NEW53Xuxue Feng
1010Francesco ShinkoCanada2026-05-29Benton, John B Jr QUALIFIED63Stephen Shaw
1011Ricardo GauchoGermany2026-05-11Printing Dimensions PROPOSAL90Amy Elsner
1012Mujtaba NickaUnited Kingdom2026-05-20Commercial Press RENEWAL75Anna Fali
1013Jennifer AmigonCanada2026-05-25Chemel, James L Cpa UNQUALIFIED49Xuxue Feng
1014Izzy GarufiAustralia2026-06-06Dorl, James J Esq UNQUALIFIED78Anna Fali
1015Faith GillianCanada2026-05-20Chapman, Ross E Esq NEW94Xuxue Feng
1016Murillo MaletGermany2026-05-23Rousseaux, Michael Esq RENEWAL73Amy Elsner
1017Murillo MaletBrazil2026-05-29Chapman, Ross E Esq NEW35Bernardo Dominic
1018Adams MorascaJapan2026-05-20Rangoni Of Florence PROPOSAL20Onyama Limba
1019Costa DilliardUnited Kingdom2026-05-20Buckley Miller Wright NEGOTIATION37Ioni Bowcher
1020Juan WieserFrance2026-05-27Buckley Miller Wright NEW11Bernardo Dominic
1021Claire TollnerJapan2026-05-30Feiner Bros NEW98Ivan Magalhaes
1022Munro FerenczRussia2026-05-28Buckley Miller Wright UNQUALIFIED69Xuxue Feng
1023Wickens NestleCanada2026-05-18Buckley Miller Wright RENEWAL84Amy Elsner
1024Jeanfrancois VenereCanada2026-05-27Feiner Bros NEGOTIATION72Ivan Magalhaes
1025Aruna FigeroaGermany2026-06-04Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1026Silvio SlusarskiGermany2026-05-24Printing Dimensions UNQUALIFIED35Ivan Magalhaes
1027Smith GlickArgentina2026-05-25Printing Dimensions QUALIFIED71Ivan Magalhaes
1028Jeanfrancois VenereIndia2026-06-05Printing Dimensions UNQUALIFIED71Onyama Limba
1029David DarakjyCanada2026-05-16Dorl, James J Esq PROPOSAL33Amy Elsner
1030Octavia MaletRussia2026-05-15Morlong Associates NEGOTIATION11Xuxue Feng
1031Alejandro PerinAustralia2026-05-29Feiner Bros RENEWAL98Amy Elsner
1032Maria MarrierFrance2026-05-30Rangoni Of Florence NEW40Amy Elsner
1033Alejandro PerinRussia2026-05-13Chapman, Ross E Esq UNQUALIFIED45Ivan Magalhaes
1034Rodrigues CampainBrazil2026-05-17Chapman, Ross E Esq QUALIFIED75Amy Elsner
1035Munro FerenczSpain2026-05-30Printing Dimensions NEW46Anna Fali
1036Ricardo GauchoFrance2026-06-01Feltz Printing Service RENEWAL31Asiya Javayant
1037Jefferson SchemmerAustralia2026-05-23Benton, John B Jr NEW26Elwin Sharvill
1038Salvatore StockhamAustralia2026-06-07Buckley Miller Wright PROPOSAL27Xuxue Feng
1039David DarakjyFrance2026-06-01Buckley Miller Wright RENEWAL88Ivan Magalhaes
1040Stacey MacleadGermany2026-05-10Buckley Miller Wright NEW72Asiya Javayant
1041Leja CaldareraFrance2026-05-24Feltz Printing Service RENEWAL33Asiya Javayant
1042Jennifer AmigonCanada2026-05-31Feiner Bros NEW71Ivan Magalhaes
1043Salvatore StockhamJapan2026-05-20Morlong Associates UNQUALIFIED58Xuxue Feng
1044Arvin AlbaresAustralia2026-05-30Dorl, James J Esq RENEWAL68Ioni Bowcher
1045Greenwood BologniaGermany2026-05-26Buckley Miller Wright NEGOTIATION90Xuxue Feng
1046Aika InouyeJapan2026-05-20Rousseaux, Michael Esq NEGOTIATION31Asiya Javayant
1047Mayumi KolmetzJapan2026-06-07Truhlar And Truhlar Attys UNQUALIFIED90Asiya Javayant
1048Jefferson SchemmerArgentina2026-05-25Buckley Miller Wright RENEWAL86Amy Elsner
1049Murillo MaletSpain2026-05-17King, Christopher A Esq NEGOTIATION44Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba NickaBrazilAnna Fali RENEWAL
Maisha RulapaughItalyBernardo Dominic QUALIFIED
Wickens NestleIndiaAnna Fali NEGOTIATION
Leon OldroydJapanXuxue Feng QUALIFIED
Mayumi KolmetzFranceIvan Magalhaes QUALIFIED
Cody SaylorsSpainIvan Magalhaes UNQUALIFIED
Juan WieserCanadaXuxue Feng QUALIFIED
Juan WieserJapanElwin Sharvill NEW
Alejandro PerinCanadaIvan Magalhaes PROPOSAL
Morrow RutaUnited KingdomElwin Sharvill PROPOSAL
Johnson SergiGermanyOnyama Limba NEW
Jefferson SchemmerFranceAmy Elsner QUALIFIED
Mayumi KolmetzCanadaBernardo Dominic PROPOSAL
Misaki RoysterIndiaAsiya Javayant QUALIFIED
Maisha RulapaughFranceXuxue Feng RENEWAL
Julie StensethGermanyBernardo Dominic NEW
Ricardo GauchoAustraliaAnna Fali UNQUALIFIED
Mujtaba NickaFranceAsiya Javayant PROPOSAL
Ricardo GauchoGermanyIoni Bowcher UNQUALIFIED
Misaki RoysterFranceAnna Fali PROPOSAL
Jones VocelkaItalyOnyama Limba QUALIFIED
Darci PoquetteGermanyIvan Magalhaes UNQUALIFIED
Isabel BowleySpainXuxue Feng QUALIFIED
Jefferson SchemmerJapanAmy Elsner UNQUALIFIED
Silvio SlusarskiJapanAmy Elsner RENEWAL
Antonio CaudyRussiaAnna Fali UNQUALIFIED
Misaki RoysterRussiaStephen Shaw NEW
Smith GlickRussiaAmy Elsner NEW
Izzy GarufiArgentinaOnyama Limba NEW
Maria MarrierIndiaAnna Fali QUALIFIED
Arvin AlbaresBrazilStephen Shaw NEW
Faith GillianBrazilStephen Shaw NEGOTIATION
Clifford RimFranceIoni Bowcher NEGOTIATION
Leon OldroydBrazilIoni Bowcher RENEWAL
Aruna FigeroaUnited KingdomXuxue Feng NEW
Ivar PaprockiIndiaAnna Fali QUALIFIED
Costa DilliardItalyAnna Fali PROPOSAL
Morrow RutaFranceIvan Magalhaes QUALIFIED
Cody SaylorsIndiaStephen Shaw NEW
Maria MarrierArgentinaIoni Bowcher UNQUALIFIED
Rodrigues CampainItalyIvan Magalhaes PROPOSAL
Sinclair WaycottGermanyXuxue Feng UNQUALIFIED
Ricardo GauchoFranceOnyama Limba QUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes PROPOSAL
Arvin AlbaresSpainAnna Fali QUALIFIED
Stacey MacleadArgentinaIvan Magalhaes RENEWAL
Aditya KuskoUnited KingdomStephen Shaw PROPOSAL
Jones VocelkaBrazilAmy Elsner PROPOSAL
Smith GlickArgentinaXuxue Feng UNQUALIFIED
Aika InouyeJapanAsiya Javayant RENEWAL
Frozen Columns
Name
Aditya Kusko
Wickens Nestle
Munro Ferencz
Deepesh Chui
Costa Dilliard
Johnson Sergi
Sinclair Waycott
Sinclair Waycott
Adams Morasca
Wickens Nestle
Jefferson Schemmer
Silvio Slusarski
Morrow Ruta
Kaitlin Ostrosky
Arvin Albares
Octavia Malet
Mayumi Kolmetz
Rodrigues Campain
Munro Ferencz
Cody Saylors
Kaitlin Ostrosky
Jefferson Schemmer
Aika Inouye
David Darakjy
Mujtaba Nicka
Greenwood Bolognia
Antonio Caudy
Mujtaba Nicka
Smith Glick
Octavia Malet
Jefferson Schemmer
Kaitlin Ostrosky
Alejandro Perin
Stacey Maclead
Emily Whobrey
Julie Stenseth
Costa Dilliard
Maisha Rulapaugh
Johnson Sergi
Rodrigues Campain
Silvio Slusarski
Jefferson Schemmer
Costa Dilliard
Jennifer Amigon
Leja Caldarera
Faith Gillian
Salvatore Stockham
Sinclair Waycott
Munro Ferencz
Greenwood Bolognia
IdCountryDate
1000Japan2026-05-19
1001Japan2026-05-20
1002Russia2026-05-31
1003Spain2026-06-02
1004France2026-06-06
1005Russia2026-05-11
1006Brazil2026-06-01
1007Australia2026-05-12
1008India2026-05-16
1009France2026-05-10
1010Italy2026-05-31
1011Japan2026-06-05
1012Australia2026-05-15
1013Germany2026-06-01
1014United Kingdom2026-06-04
1015Japan2026-05-09
1016Argentina2026-06-05
1017Italy2026-06-02
1018Germany2026-06-07
1019Brazil2026-05-29
1020France2026-05-29
1021Spain2026-05-17
1022Brazil2026-05-24
1023Italy2026-05-21
1024Italy2026-06-04
1025Germany2026-05-25
1026Brazil2026-05-09
1027India2026-06-05
1028United Kingdom2026-05-22
1029Argentina2026-05-21
1030Brazil2026-06-04
1031Australia2026-05-21
1032United Kingdom2026-06-04
1033Australia2026-05-19
1034India2026-06-01
1035France2026-05-17
1036France2026-05-10
1037Russia2026-06-04
1038Australia2026-06-05
1039Canada2026-06-05
1040United Kingdom2026-06-07
1041India2026-06-07
1042Spain2026-05-22
1043Argentina2026-05-21
1044United Kingdom2026-05-28
1045Germany2026-05-29
1046Russia2026-05-28
1047Germany2026-05-09
1048Germany2026-05-27
1049France2026-06-07

On-Demand Data

NameIdCountryDate
Tony Foller1000Russia2026-06-07
Francesco Shinko1001Canada2026-05-22
Jones Vocelka1002Japan2026-06-04
Alejandro Perin1003Germany2026-06-05
Murillo Malet1004United Kingdom2026-05-21
Jones Vocelka1005Russia2026-05-19
Deepesh Chui1006Argentina2026-05-09
Octavia Malet1007Spain2026-05-15
Tony Foller1008India2026-06-03
Antonio Caudy1009Spain2026-05-09
Ivar Paprocki1010Japan2026-05-12
Sinclair Waycott1011Canada2026-05-13
Nicolas Iturbide1012Japan2026-05-14
Isabel Bowley1013Brazil2026-05-10
Julie Stenseth1014Australia2026-06-01
Izzy Garufi1015Argentina2026-05-20
Maria Marrier1016Germany2026-05-12
James Butt1017Brazil2026-05-10
Morrow Ruta1018United Kingdom2026-05-10
Ricardo Gaucho1019Japan2026-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaCanadaAmy Elsner NEW
Misaki RoysterIndiaAmy Elsner PROPOSAL
Murillo MaletItalyBernardo Dominic RENEWAL
Smith GlickUnited KingdomBernardo Dominic PROPOSAL
Rodrigues CampainArgentinaIvan Magalhaes NEW
Tony FollerFranceOnyama Limba PROPOSAL
Costa DilliardItalyIoni Bowcher RENEWAL
Silvio SlusarskiArgentinaOnyama Limba RENEWAL
Francesco ShinkoBrazilAmy Elsner NEGOTIATION
David DarakjyFranceAsiya Javayant RENEWAL
Smith GlickFranceBernardo Dominic UNQUALIFIED
Faith GillianJapanIvan Magalhaes UNQUALIFIED
Mayumi KolmetzCanadaElwin Sharvill NEGOTIATION
Darci PoquetteJapanXuxue Feng PROPOSAL
Faith GillianGermanyBernardo Dominic QUALIFIED
Wickens NestleBrazilAnna Fali NEGOTIATION
Faith GillianGermanyElwin Sharvill QUALIFIED
Faith GillianArgentinaAmy Elsner UNQUALIFIED
Aika InouyeIndiaOnyama Limba UNQUALIFIED
Kadeem FlosiBrazilAnna Fali QUALIFIED
David DarakjyRussiaOnyama Limba QUALIFIED
Claire TollnerGermanyBernardo Dominic PROPOSAL
Ivar PaprockiGermanyAnna Fali NEW
Izzy GarufiRussiaAsiya Javayant NEGOTIATION
Rodrigues CampainSpainBernardo Dominic NEW
Smith GlickJapanElwin Sharvill PROPOSAL
Johnson SergiItalyStephen Shaw RENEWAL
Stacey MacleadArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamIndiaXuxue Feng QUALIFIED
Salvatore StockhamCanadaAsiya Javayant QUALIFIED
Nicolas IturbideItalyBernardo Dominic NEW
Arvin AlbaresRussiaAnna Fali RENEWAL
Maria MarrierFranceIoni Bowcher PROPOSAL
Clifford RimBrazilElwin Sharvill RENEWAL
Kaitlin OstroskyRussiaOnyama Limba QUALIFIED
Silvio SlusarskiBrazilStephen Shaw UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba PROPOSAL
Munro FerenczAustraliaAnna Fali QUALIFIED
Mujtaba NickaBrazilAnna Fali NEW
Smith GlickGermanyXuxue Feng 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>