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
Costa DilliardAustraliaIoni Bowcher NEW
Smith GlickCanadaAnna Fali NEGOTIATION
Aruna FigeroaArgentinaAnna Fali UNQUALIFIED
Emily WhobreyItalyBernardo Dominic NEW
Murillo MaletFranceStephen Shaw NEGOTIATION
Antonio CaudyItalyBernardo Dominic PROPOSAL
Ivar PaprockiSpainXuxue Feng QUALIFIED
Munro FerenczBrazilBernardo Dominic NEGOTIATION
Kaitlin OstroskyCanadaBernardo Dominic UNQUALIFIED
Octavia MaletJapanAsiya Javayant UNQUALIFIED
Isabel BowleySpainAnna Fali NEGOTIATION
Isabel BowleyArgentinaIvan Magalhaes PROPOSAL
Izzy GarufiUnited KingdomBernardo Dominic NEGOTIATION
Chavez BriddickJapanAsiya Javayant NEW
Julie StensethArgentinaElwin Sharvill NEW
Aika InouyeGermanyAsiya Javayant RENEWAL
Smith GlickRussiaAnna Fali NEGOTIATION
Ricardo GauchoRussiaIoni Bowcher QUALIFIED
Aruna FigeroaRussiaOnyama Limba UNQUALIFIED
David DarakjySpainElwin Sharvill UNQUALIFIED
Claire TollnerBrazilIoni Bowcher NEGOTIATION
Sinclair WaycottFranceAmy Elsner PROPOSAL
Aika InouyeUnited KingdomAmy Elsner NEW
Greenwood BologniaSpainAnna Fali RENEWAL
Isabel BowleyArgentinaStephen Shaw NEGOTIATION
Morrow RutaAustraliaStephen Shaw RENEWAL
Antonio CaudyIndiaAnna Fali PROPOSAL
Silvio SlusarskiItalyIvan Magalhaes QUALIFIED
Julie StensethJapanIvan Magalhaes UNQUALIFIED
Izzy GarufiRussiaStephen Shaw NEGOTIATION
James ButtCanadaOnyama Limba RENEWAL
Ricardo GauchoItalyStephen Shaw UNQUALIFIED
Francesco ShinkoGermanyAmy Elsner NEW
Silvio SlusarskiBrazilAmy Elsner RENEWAL
Rodrigues CampainItalyOnyama Limba NEW
Johnson SergiJapanElwin Sharvill NEGOTIATION
Faith GillianUnited KingdomBernardo Dominic RENEWAL
Faith GillianFranceAmy Elsner PROPOSAL
Claire TollnerCanadaAmy Elsner QUALIFIED
Aditya KuskoSpainAmy Elsner UNQUALIFIED
Izzy GarufiIndiaIoni Bowcher PROPOSAL
James ButtJapanBernardo Dominic QUALIFIED
Aika InouyeIndiaAmy Elsner NEW
Johnson SergiFranceXuxue Feng NEGOTIATION
Jefferson SchemmerAustraliaOnyama Limba UNQUALIFIED
Sinclair WaycottSpainOnyama Limba PROPOSAL
James ButtGermanyAnna Fali QUALIFIED
Octavia MaletIndiaBernardo Dominic UNQUALIFIED
Leon OldroydFranceElwin Sharvill NEGOTIATION
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley DoeSpainAsiya Javayant UNQUALIFIED
Faith GillianFranceXuxue Feng NEW
Ivar PaprockiIndiaIoni Bowcher RENEWAL
Mujtaba NickaAustraliaAmy Elsner UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic QUALIFIED
Ricardo GauchoFranceElwin Sharvill NEW
Murillo MaletRussiaBernardo Dominic RENEWAL
Faith GillianUnited KingdomStephen Shaw RENEWAL
David DarakjyItalyXuxue Feng NEGOTIATION
Kadeem FlosiItalyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeSpain2026-04-16Truhlar And Truhlar Attys QUALIFIED18Xuxue Feng
1001Claire TollnerCanada2026-04-23Benton, John B Jr QUALIFIED84Bernardo Dominic
1002Misaki RoysterBrazil2026-04-25Buckley Miller Wright QUALIFIED61Amy Elsner
1003Jeanfrancois VenereAustralia2026-04-23Buckley Miller Wright QUALIFIED20Amy Elsner
1004Salvatore StockhamGermany2026-04-25Truhlar And Truhlar Attys NEW97Elwin Sharvill
1005Isabel BowleyFrance2026-04-07Rangoni Of Florence RENEWAL27Xuxue Feng
1006Sinclair WaycottUnited Kingdom2026-04-03Chapman, Ross E Esq QUALIFIED89Anna Fali
1007Greenwood BologniaBrazil2026-04-22Chanay, Jeffrey A Esq PROPOSAL89Amy Elsner
1008Alejandro PerinBrazil2026-04-14Morlong Associates UNQUALIFIED66Elwin Sharvill
1009Ashley DoeJapan2026-04-15Benton, John B Jr UNQUALIFIED58Ivan Magalhaes
1010Morrow RutaFrance2026-04-03Benton, John B Jr RENEWAL87Xuxue Feng
1011Rodrigues CampainRussia2026-04-26Chapman, Ross E Esq QUALIFIED20Ioni Bowcher
1012Wickens NestleBrazil2026-04-04Chapman, Ross E Esq RENEWAL16Anna Fali
1013David DarakjyItaly2026-04-09King, Christopher A Esq NEW69Ivan Magalhaes
1014Mayumi KolmetzJapan2026-03-31Chapman, Ross E Esq QUALIFIED62Amy Elsner
1015Juan WieserSpain2026-04-22Printing Dimensions NEGOTIATION43Onyama Limba
1016Leja CaldareraIndia2026-04-04Chanay, Jeffrey A Esq NEGOTIATION20Ivan Magalhaes
1017Silvio SlusarskiBrazil2026-04-06Chapman, Ross E Esq NEW73Asiya Javayant
1018Sinclair WaycottArgentina2026-04-06Chapman, Ross E Esq QUALIFIED47Ioni Bowcher
1019Sinclair WaycottRussia2026-04-14Commercial Press QUALIFIED14Anna Fali
1020Izzy GarufiIndia2026-04-26Chanay, Jeffrey A Esq PROPOSAL70Onyama Limba
1021Murillo MaletGermany2026-04-06Chanay, Jeffrey A Esq RENEWAL13Onyama Limba
1022Jeanfrancois VenereGermany2026-04-14King, Christopher A Esq NEGOTIATION93Ivan Magalhaes
1023Costa DilliardGermany2026-04-21Printing Dimensions NEGOTIATION51Anna Fali
1024Deepesh ChuiIndia2026-04-22King, Christopher A Esq RENEWAL43Onyama Limba
1025Morrow RutaArgentina2026-03-28Feltz Printing Service NEW16Onyama Limba
1026Leon OldroydAustralia2026-03-30Feltz Printing Service NEW47Ioni Bowcher
1027James ButtItaly2026-04-26Rousseaux, Michael Esq NEW98Xuxue Feng
1028Leja CaldareraSpain2026-04-17Buckley Miller Wright NEGOTIATION75Bernardo Dominic
1029James ButtGermany2026-04-15Chanay, Jeffrey A Esq PROPOSAL38Elwin Sharvill
1030Silvio SlusarskiGermany2026-03-29Chanay, Jeffrey A Esq NEW24Amy Elsner
1031Juan WieserUnited Kingdom2026-04-01Buckley Miller Wright PROPOSAL78Bernardo Dominic
1032Kaitlin OstroskyAustralia2026-04-19Benton, John B Jr UNQUALIFIED13Asiya Javayant
1033Leja CaldareraJapan2026-04-01Commercial Press PROPOSAL98Amy Elsner
1034Claire TollnerIndia2026-04-23Chanay, Jeffrey A Esq NEGOTIATION75Stephen Shaw
1035Cody SaylorsRussia2026-04-17Morlong Associates RENEWAL36Anna Fali
1036Jones VocelkaItaly2026-04-23Truhlar And Truhlar Attys QUALIFIED70Xuxue Feng
1037Jennifer AmigonBrazil2026-04-07Feiner Bros NEW1Asiya Javayant
1038Francesco ShinkoGermany2026-04-03Chanay, Jeffrey A Esq UNQUALIFIED14Ioni Bowcher
1039Deepesh ChuiBrazil2026-04-17Benton, John B Jr NEGOTIATION16Ivan Magalhaes
1040Greenwood BologniaAustralia2026-04-25Commercial Press PROPOSAL55Amy Elsner
1041Octavia MaletRussia2026-04-26Buckley Miller Wright UNQUALIFIED66Amy Elsner
1042Aruna FigeroaItaly2026-04-12Chapman, Ross E Esq PROPOSAL65Ioni Bowcher
1043Aika InouyeCanada2026-04-07Feiner Bros QUALIFIED3Xuxue Feng
1044Ivar PaprockiCanada2026-04-06Printing Dimensions QUALIFIED27Anna Fali
1045Costa DilliardIndia2026-03-31Buckley Miller Wright PROPOSAL79Elwin Sharvill
1046Alejandro PerinArgentina2026-04-06Truhlar And Truhlar Attys RENEWAL28Bernardo Dominic
1047Salvatore StockhamItaly2026-04-11Rangoni Of Florence RENEWAL2Anna Fali
1048Aditya KuskoArgentina2026-04-11Feltz Printing Service NEGOTIATION78Asiya Javayant
1049Johnson SergiArgentina2026-03-31Chemel, James L Cpa NEW78Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianGermanyAsiya Javayant RENEWAL
Costa DilliardRussiaBernardo Dominic PROPOSAL
Greenwood BologniaCanadaIvan Magalhaes NEGOTIATION
Aika InouyeRussiaElwin Sharvill RENEWAL
Maisha RulapaughArgentinaElwin Sharvill PROPOSAL
Smith GlickJapanAnna Fali QUALIFIED
Francesco ShinkoItalyStephen Shaw RENEWAL
Emily WhobreyBrazilIoni Bowcher PROPOSAL
Claire TollnerAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyArgentinaAnna Fali PROPOSAL
Juan WieserJapanAmy Elsner RENEWAL
Ricardo GauchoBrazilOnyama Limba RENEWAL
Chavez BriddickBrazilElwin Sharvill QUALIFIED
Alejandro PerinFranceAnna Fali NEW
Wickens NestleAustraliaIvan Magalhaes PROPOSAL
Leon OldroydCanadaBernardo Dominic NEW
Mayumi KolmetzItalyStephen Shaw NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant QUALIFIED
James ButtJapanAmy Elsner QUALIFIED
Antonio CaudyIndiaOnyama Limba UNQUALIFIED
Maria MarrierFranceAsiya Javayant NEW
Deepesh ChuiFranceElwin Sharvill NEGOTIATION
Maria MarrierIndiaAsiya Javayant NEW
Leja CaldareraBrazilAmy Elsner UNQUALIFIED
Wickens NestleAustraliaAmy Elsner UNQUALIFIED
Leon OldroydBrazilIvan Magalhaes RENEWAL
Antonio CaudySpainAmy Elsner UNQUALIFIED
Smith GlickIndiaAnna Fali PROPOSAL
Leon OldroydGermanyAsiya Javayant NEGOTIATION
Adams MorascaSpainAsiya Javayant QUALIFIED
Leja CaldareraItalyStephen Shaw NEW
Aruna FigeroaSpainStephen Shaw PROPOSAL
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Isabel BowleyBrazilElwin Sharvill UNQUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant QUALIFIED
Deepesh ChuiItalyStephen Shaw NEGOTIATION
Izzy GarufiBrazilElwin Sharvill NEW
Jones VocelkaGermanyAsiya Javayant NEGOTIATION
Jones VocelkaGermanyXuxue Feng UNQUALIFIED
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Adams MorascaAustraliaXuxue Feng QUALIFIED
Faith GillianUnited KingdomBernardo Dominic PROPOSAL
Antonio CaudySpainElwin Sharvill PROPOSAL
Jeanfrancois VenereArgentinaStephen Shaw NEW
David DarakjyItalyAnna Fali PROPOSAL
Maisha RulapaughBrazilOnyama Limba RENEWAL
Morrow RutaAustraliaIvan Magalhaes NEGOTIATION
Chavez BriddickJapanIoni Bowcher PROPOSAL
Faith GillianAustraliaStephen Shaw RENEWAL
Smith GlickIndiaOnyama Limba RENEWAL
Frozen Columns
Name
Deepesh Chui
James Butt
Emily Whobrey
Aruna Figeroa
Kaitlin Ostrosky
Johnson Sergi
Johnson Sergi
David Darakjy
Jeanfrancois Venere
Claire Tollner
Izzy Garufi
Antonio Caudy
James Butt
Emily Whobrey
Adams Morasca
Arvin Albares
Jones Vocelka
Maria Marrier
Maria Marrier
Jennifer Amigon
Silvio Slusarski
Arvin Albares
Faith Gillian
Aruna Figeroa
Alejandro Perin
Izzy Garufi
Wickens Nestle
Kadeem Flosi
Faith Gillian
Francesco Shinko
Nicolas Iturbide
David Darakjy
Misaki Royster
Nicolas Iturbide
Jeanfrancois Venere
Ricardo Gaucho
Stacey Maclead
Greenwood Bolognia
Alejandro Perin
Ashley Doe
Francesco Shinko
Emily Whobrey
Smith Glick
Isabel Bowley
Jones Vocelka
Darci Poquette
Maisha Rulapaugh
Ivar Paprocki
Munro Ferencz
Jennifer Amigon
IdCountryDate
1000Australia2026-04-13
1001India2026-04-16
1002Australia2026-04-12
1003Argentina2026-04-21
1004Germany2026-04-07
1005Russia2026-04-05
1006Canada2026-04-20
1007Canada2026-04-18
1008France2026-04-04
1009Canada2026-04-14
1010Canada2026-04-10
1011Brazil2026-04-08
1012Japan2026-04-25
1013India2026-04-18
1014Japan2026-04-11
1015India2026-04-11
1016France2026-03-30
1017India2026-04-16
1018Brazil2026-04-13
1019France2026-04-03
1020Spain2026-03-29
1021Japan2026-04-16
1022United Kingdom2026-04-18
1023Brazil2026-04-11
1024Italy2026-03-30
1025Spain2026-04-12
1026India2026-03-29
1027India2026-04-26
1028India2026-04-05
1029Brazil2026-04-06
1030India2026-04-26
1031Germany2026-03-31
1032Japan2026-04-04
1033United Kingdom2026-04-16
1034Russia2026-04-01
1035Russia2026-04-13
1036Argentina2026-03-28
1037Argentina2026-03-28
1038France2026-04-18
1039Canada2026-04-19
1040Spain2026-04-22
1041Argentina2026-04-20
1042Spain2026-04-24
1043United Kingdom2026-03-30
1044Russia2026-04-05
1045Germany2026-04-01
1046Germany2026-04-12
1047Italy2026-04-05
1048Argentina2026-04-21
1049France2026-04-20

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000United Kingdom2026-03-29
Maria Marrier1001Italy2026-04-07
Octavia Malet1002Germany2026-04-03
Morrow Ruta1003India2026-04-10
Juan Wieser1004Italy2026-04-23
Munro Ferencz1005Japan2026-04-15
Ashley Doe1006United Kingdom2026-04-03
Julie Stenseth1007Italy2026-04-17
Nicolas Iturbide1008Spain2026-04-11
Ivar Paprocki1009Australia2026-04-10
Clifford Rim1010India2026-04-21
Smith Glick1011India2026-04-07
Rodrigues Campain1012Russia2026-04-20
Murillo Malet1013India2026-04-01
Jennifer Amigon1014Japan2026-04-18
Adams Morasca1015Canada2026-04-13
Maria Marrier1016Russia2026-04-05
Antonio Caudy1017United Kingdom2026-04-20
Emily Whobrey1018Canada2026-04-14
Ricardo Gaucho1019Germany2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyUnited KingdomBernardo Dominic QUALIFIED
Julie StensethFranceStephen Shaw NEGOTIATION
Jeanfrancois VenereArgentinaStephen Shaw NEW
Nicolas IturbideAustraliaElwin Sharvill RENEWAL
Jennifer AmigonSpainStephen Shaw RENEWAL
Wickens NestleArgentinaBernardo Dominic NEW
Smith GlickRussiaOnyama Limba NEGOTIATION
Alejandro PerinItalyBernardo Dominic QUALIFIED
Maisha RulapaughFranceAmy Elsner RENEWAL
Ashley DoeFranceAsiya Javayant NEW
Izzy GarufiRussiaStephen Shaw PROPOSAL
Mujtaba NickaFranceAmy Elsner NEW
Johnson SergiJapanElwin Sharvill QUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher QUALIFIED
Jennifer AmigonIndiaXuxue Feng PROPOSAL
Kadeem FlosiIndiaIoni Bowcher NEGOTIATION
Alejandro PerinFranceOnyama Limba RENEWAL
Silvio SlusarskiItalyBernardo Dominic RENEWAL
Deepesh ChuiAustraliaIoni Bowcher RENEWAL
Chavez BriddickJapanOnyama Limba NEGOTIATION
Antonio CaudyGermanyAmy Elsner NEW
Chavez BriddickRussiaOnyama Limba RENEWAL
Nicolas IturbideUnited KingdomOnyama Limba UNQUALIFIED
Mayumi KolmetzBrazilElwin Sharvill PROPOSAL
Salvatore StockhamItalyOnyama Limba NEW
Silvio SlusarskiAustraliaAnna Fali PROPOSAL
Smith GlickItalyAmy Elsner QUALIFIED
Clifford RimRussiaAnna Fali PROPOSAL
Ricardo GauchoIndiaOnyama Limba RENEWAL
James ButtBrazilXuxue Feng NEGOTIATION
Antonio CaudyRussiaIvan Magalhaes RENEWAL
Jennifer AmigonSpainAsiya Javayant QUALIFIED
Jones VocelkaRussiaAnna Fali NEGOTIATION
Leon OldroydArgentinaStephen Shaw PROPOSAL
Darci PoquetteCanadaAmy Elsner RENEWAL
Isabel BowleyItalyIvan Magalhaes NEGOTIATION
Ashley DoeIndiaAnna Fali UNQUALIFIED
Aika InouyeArgentinaAmy Elsner UNQUALIFIED
Smith GlickUnited KingdomStephen Shaw NEW
Ricardo GauchoFranceAmy Elsner 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>