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
Isabel BowleyAustraliaIoni Bowcher NEW
Ashley DoeItalyAnna Fali QUALIFIED
Francesco ShinkoJapanAsiya Javayant UNQUALIFIED
Sinclair WaycottIndiaOnyama Limba RENEWAL
Izzy GarufiIndiaIoni Bowcher RENEWAL
Darci PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Jones VocelkaJapanAnna Fali NEGOTIATION
Aruna FigeroaAustraliaAnna Fali RENEWAL
Silvio SlusarskiBrazilAsiya Javayant QUALIFIED
Chavez BriddickCanadaOnyama Limba NEGOTIATION
Leon OldroydSpainElwin Sharvill RENEWAL
Misaki RoysterUnited KingdomIoni Bowcher PROPOSAL
Murillo MaletAustraliaAmy Elsner QUALIFIED
Julie StensethUnited KingdomOnyama Limba UNQUALIFIED
Adams MorascaItalyElwin Sharvill RENEWAL
Rodrigues CampainAustraliaXuxue Feng NEW
James ButtCanadaAsiya Javayant RENEWAL
Smith GlickGermanyElwin Sharvill UNQUALIFIED
Adams MorascaRussiaElwin Sharvill NEW
Darci PoquetteItalyAnna Fali UNQUALIFIED
Aruna FigeroaCanadaElwin Sharvill NEW
Munro FerenczSpainElwin Sharvill NEGOTIATION
Julie StensethUnited KingdomXuxue Feng NEW
Kadeem FlosiCanadaAmy Elsner QUALIFIED
Aditya KuskoRussiaIvan Magalhaes UNQUALIFIED
Leon OldroydAustraliaAnna Fali QUALIFIED
Chavez BriddickUnited KingdomAnna Fali UNQUALIFIED
Antonio CaudyRussiaAnna Fali PROPOSAL
James ButtBrazilAnna Fali NEGOTIATION
Aika InouyeJapanAnna Fali NEGOTIATION
Ivar PaprockiItalyOnyama Limba PROPOSAL
Kaitlin OstroskyCanadaIvan Magalhaes RENEWAL
Deepesh ChuiGermanyOnyama Limba UNQUALIFIED
Johnson SergiJapanAmy Elsner NEGOTIATION
Costa DilliardRussiaIvan Magalhaes QUALIFIED
Tony FollerBrazilStephen Shaw RENEWAL
Jeanfrancois VenereGermanyStephen Shaw NEW
Johnson SergiSpainAmy Elsner NEW
Misaki RoysterItalyStephen Shaw NEW
Nicolas IturbideJapanIoni Bowcher QUALIFIED
Jennifer AmigonItalyStephen Shaw RENEWAL
Izzy GarufiIndiaXuxue Feng NEW
Costa DilliardIndiaElwin Sharvill NEGOTIATION
Johnson SergiGermanyIoni Bowcher NEGOTIATION
Cody SaylorsRussiaAmy Elsner NEW
Jeanfrancois VenereGermanyStephen Shaw NEW
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Deepesh ChuiIndiaAnna Fali NEW
Adams MorascaGermanyAnna Fali RENEWAL
Aruna FigeroaBrazilOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottJapanAsiya Javayant NEW
Kadeem FlosiGermanyXuxue Feng NEW
Kaitlin OstroskyAustraliaBernardo Dominic NEW
Leon OldroydJapanXuxue Feng RENEWAL
Clifford RimItalyAmy Elsner UNQUALIFIED
Chavez BriddickSpainOnyama Limba NEGOTIATION
Antonio CaudyJapanElwin Sharvill NEGOTIATION
Mayumi KolmetzFranceOnyama Limba NEGOTIATION
Octavia MaletRussiaStephen Shaw RENEWAL
Jones VocelkaUnited KingdomXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletGermany2026-05-04Rangoni Of Florence NEW18Amy Elsner
1001Munro FerenczGermany2026-04-23Buckley Miller Wright QUALIFIED19Elwin Sharvill
1002Francesco ShinkoFrance2026-04-05Feiner Bros QUALIFIED38Amy Elsner
1003Nicolas IturbideItaly2026-05-02Dorl, James J Esq PROPOSAL38Anna Fali
1004Ricardo GauchoArgentina2026-05-03Feiner Bros NEGOTIATION53Stephen Shaw
1005Misaki RoysterUnited Kingdom2026-05-01King, Christopher A Esq RENEWAL0Amy Elsner
1006Arvin AlbaresArgentina2026-05-02Rangoni Of Florence NEW89Xuxue Feng
1007Deepesh ChuiBrazil2026-04-10Chanay, Jeffrey A Esq NEGOTIATION34Stephen Shaw
1008Izzy GarufiAustralia2026-04-27Morlong Associates NEGOTIATION84Elwin Sharvill
1009Ashley DoeFrance2026-04-08Benton, John B Jr PROPOSAL40Asiya Javayant
1010Wickens NestleGermany2026-05-01Commercial Press NEW20Amy Elsner
1011Emily WhobreyIndia2026-04-15Chapman, Ross E Esq RENEWAL58Amy Elsner
1012Aruna FigeroaSpain2026-04-17Morlong Associates UNQUALIFIED60Amy Elsner
1013Chavez BriddickAustralia2026-04-06Buckley Miller Wright UNQUALIFIED33Anna Fali
1014Munro FerenczBrazil2026-04-12Chapman, Ross E Esq RENEWAL73Elwin Sharvill
1015Octavia MaletRussia2026-04-21King, Christopher A Esq NEGOTIATION70Anna Fali
1016Adams MorascaArgentina2026-04-19Benton, John B Jr NEGOTIATION51Elwin Sharvill
1017Leja CaldareraBrazil2026-04-11Feltz Printing Service RENEWAL12Anna Fali
1018Wickens NestleGermany2026-04-10Buckley Miller Wright QUALIFIED66Stephen Shaw
1019Rodrigues CampainRussia2026-04-19Printing Dimensions UNQUALIFIED23Elwin Sharvill
1020Misaki RoysterJapan2026-04-10Morlong Associates NEW9Amy Elsner
1021Juan WieserItaly2026-04-08Rousseaux, Michael Esq QUALIFIED51Ioni Bowcher
1022Johnson SergiJapan2026-04-29Printing Dimensions UNQUALIFIED98Bernardo Dominic
1023Adams MorascaAustralia2026-05-02Rangoni Of Florence PROPOSAL51Elwin Sharvill
1024Johnson SergiItaly2026-04-25Rousseaux, Michael Esq PROPOSAL10Amy Elsner
1025Chavez BriddickGermany2026-04-22Chanay, Jeffrey A Esq QUALIFIED73Onyama Limba
1026Chavez BriddickItaly2026-04-22Rousseaux, Michael Esq UNQUALIFIED83Ivan Magalhaes
1027Murillo MaletFrance2026-04-08Commercial Press QUALIFIED0Stephen Shaw
1028Octavia MaletIndia2026-04-22Buckley Miller Wright NEGOTIATION93Bernardo Dominic
1029Isabel BowleyRussia2026-04-07Morlong Associates QUALIFIED14Elwin Sharvill
1030Costa DilliardAustralia2026-04-26Printing Dimensions RENEWAL68Onyama Limba
1031Jefferson SchemmerCanada2026-04-19Chanay, Jeffrey A Esq NEW99Ioni Bowcher
1032Aika InouyeIndia2026-04-23King, Christopher A Esq NEGOTIATION32Bernardo Dominic
1033Antonio CaudyJapan2026-04-24Truhlar And Truhlar Attys RENEWAL50Stephen Shaw
1034Francesco ShinkoRussia2026-04-26Printing Dimensions NEGOTIATION59Elwin Sharvill
1035Salvatore StockhamJapan2026-04-22Commercial Press NEGOTIATION15Ioni Bowcher
1036Jefferson SchemmerCanada2026-04-16Truhlar And Truhlar Attys UNQUALIFIED77Asiya Javayant
1037Maisha RulapaughJapan2026-04-24Dorl, James J Esq NEGOTIATION85Ivan Magalhaes
1038Ashley DoeFrance2026-04-06Chanay, Jeffrey A Esq UNQUALIFIED65Anna Fali
1039Jones VocelkaArgentina2026-04-30Feltz Printing Service QUALIFIED15Elwin Sharvill
1040Aruna FigeroaAustralia2026-04-07King, Christopher A Esq NEW45Onyama Limba
1041Tony FollerJapan2026-04-12Chapman, Ross E Esq NEGOTIATION59Amy Elsner
1042Aditya KuskoUnited Kingdom2026-04-13Feiner Bros NEW95Ivan Magalhaes
1043Misaki RoysterJapan2026-04-13Morlong Associates NEGOTIATION14Ioni Bowcher
1044Jeanfrancois VenereIndia2026-04-11Feiner Bros NEGOTIATION14Xuxue Feng
1045Francesco ShinkoArgentina2026-04-12Chapman, Ross E Esq NEW22Xuxue Feng
1046Stacey MacleadArgentina2026-04-30Chemel, James L Cpa RENEWAL1Ioni Bowcher
1047Silvio SlusarskiAustralia2026-04-30Chanay, Jeffrey A Esq NEW61Asiya Javayant
1048Deepesh ChuiArgentina2026-04-08Buckley Miller Wright NEGOTIATION82Amy Elsner
1049Munro FerenczSpain2026-04-18Rangoni Of Florence PROPOSAL26Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianFranceXuxue Feng QUALIFIED
Aika InouyeIndiaBernardo Dominic QUALIFIED
Arvin AlbaresAustraliaOnyama Limba NEGOTIATION
Aruna FigeroaCanadaElwin Sharvill NEW
Faith GillianItalyXuxue Feng NEGOTIATION
Juan WieserSpainStephen Shaw UNQUALIFIED
Antonio CaudyFranceIvan Magalhaes PROPOSAL
Deepesh ChuiBrazilIvan Magalhaes PROPOSAL
Arvin AlbaresJapanAsiya Javayant QUALIFIED
Adams MorascaGermanyElwin Sharvill NEGOTIATION
Mujtaba NickaSpainOnyama Limba NEGOTIATION
Adams MorascaItalyOnyama Limba RENEWAL
Nicolas IturbideItalyXuxue Feng NEGOTIATION
Murillo MaletJapanAsiya Javayant RENEWAL
Maria MarrierCanadaElwin Sharvill RENEWAL
Ricardo GauchoGermanyStephen Shaw NEGOTIATION
Stacey MacleadFranceStephen Shaw UNQUALIFIED
Isabel BowleyFranceBernardo Dominic PROPOSAL
Claire TollnerItalyIoni Bowcher RENEWAL
Aruna FigeroaSpainAsiya Javayant NEW
Wickens NestleBrazilAmy Elsner RENEWAL
Misaki RoysterBrazilStephen Shaw NEW
Francesco ShinkoCanadaAmy Elsner QUALIFIED
Aruna FigeroaGermanyIvan Magalhaes NEW
Jones VocelkaItalyAsiya Javayant NEGOTIATION
Ricardo GauchoRussiaIoni Bowcher RENEWAL
Clifford RimIndiaBernardo Dominic QUALIFIED
Antonio CaudyItalyAsiya Javayant PROPOSAL
Misaki RoysterGermanyAsiya Javayant QUALIFIED
Antonio CaudySpainIvan Magalhaes NEGOTIATION
Deepesh ChuiRussiaAsiya Javayant PROPOSAL
Chavez BriddickArgentinaXuxue Feng NEGOTIATION
Costa DilliardSpainElwin Sharvill UNQUALIFIED
Emily WhobreyAustraliaBernardo Dominic NEGOTIATION
Arvin AlbaresItalyStephen Shaw NEW
David DarakjySpainBernardo Dominic QUALIFIED
Misaki RoysterGermanyElwin Sharvill NEW
Maria MarrierFranceAmy Elsner QUALIFIED
Kaitlin OstroskyGermanyStephen Shaw UNQUALIFIED
Maria MarrierRussiaXuxue Feng RENEWAL
Kadeem FlosiSpainAnna Fali NEGOTIATION
Clifford RimSpainBernardo Dominic PROPOSAL
Antonio CaudySpainAmy Elsner QUALIFIED
Greenwood BologniaIndiaXuxue Feng RENEWAL
Ricardo GauchoUnited KingdomStephen Shaw NEW
Leon OldroydItalyAmy Elsner PROPOSAL
Leja CaldareraGermanyAnna Fali QUALIFIED
Smith GlickJapanAnna Fali NEGOTIATION
Salvatore StockhamGermanyIoni Bowcher NEGOTIATION
Faith GillianUnited KingdomAmy Elsner NEW
Frozen Columns
Name
Rodrigues Campain
Johnson Sergi
Octavia Malet
Kaitlin Ostrosky
Emily Whobrey
Ricardo Gaucho
Rodrigues Campain
Clifford Rim
Mayumi Kolmetz
Octavia Malet
Aruna Figeroa
Octavia Malet
Aruna Figeroa
Mujtaba Nicka
Murillo Malet
Maisha Rulapaugh
Smith Glick
Maria Marrier
Jeanfrancois Venere
Maisha Rulapaugh
Jennifer Amigon
Adams Morasca
Jones Vocelka
Maria Marrier
Arvin Albares
Adams Morasca
Maria Marrier
Murillo Malet
Claire Tollner
Salvatore Stockham
Costa Dilliard
Stacey Maclead
Leon Oldroyd
Leja Caldarera
Claire Tollner
Rodrigues Campain
Mujtaba Nicka
Juan Wieser
Nicolas Iturbide
Smith Glick
Isabel Bowley
Kadeem Flosi
Munro Ferencz
Emily Whobrey
Munro Ferencz
Deepesh Chui
Claire Tollner
Alejandro Perin
David Darakjy
Faith Gillian
IdCountryDate
1000Brazil2026-04-08
1001Brazil2026-04-19
1002India2026-05-02
1003Brazil2026-05-02
1004Australia2026-04-21
1005Australia2026-04-10
1006Argentina2026-04-05
1007Brazil2026-04-19
1008United Kingdom2026-04-29
1009Germany2026-05-04
1010Spain2026-04-07
1011Australia2026-04-14
1012Argentina2026-04-05
1013France2026-04-18
1014Japan2026-04-16
1015United Kingdom2026-04-06
1016Italy2026-04-24
1017Argentina2026-04-08
1018United Kingdom2026-05-02
1019India2026-04-28
1020India2026-04-16
1021Australia2026-04-16
1022Japan2026-04-21
1023Argentina2026-04-21
1024Argentina2026-04-15
1025Germany2026-04-10
1026Argentina2026-04-07
1027Argentina2026-04-08
1028Canada2026-04-17
1029Russia2026-05-03
1030Spain2026-04-21
1031Brazil2026-04-17
1032Australia2026-04-12
1033Argentina2026-04-14
1034Australia2026-04-19
1035Brazil2026-04-23
1036Canada2026-04-06
1037Spain2026-04-16
1038France2026-04-10
1039Brazil2026-04-20
1040Italy2026-04-18
1041Germany2026-04-29
1042Japan2026-04-09
1043United Kingdom2026-04-06
1044India2026-04-24
1045Germany2026-04-24
1046France2026-05-04
1047Italy2026-04-20
1048Russia2026-04-18
1049Spain2026-04-24

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Argentina2026-04-09
Jefferson Schemmer1001Italy2026-05-04
Wickens Nestle1002Brazil2026-04-20
Munro Ferencz1003United Kingdom2026-04-12
Octavia Malet1004Spain2026-04-25
Darci Poquette1005Canada2026-05-03
Maria Marrier1006Canada2026-04-15
Munro Ferencz1007Australia2026-04-07
Kaitlin Ostrosky1008Germany2026-04-11
Cody Saylors1009Canada2026-04-06
Stacey Maclead1010Australia2026-04-26
Jennifer Amigon1011Italy2026-04-25
Mujtaba Nicka1012Italy2026-04-18
Leon Oldroyd1013France2026-04-23
Darci Poquette1014India2026-04-12
Mujtaba Nicka1015Argentina2026-04-16
Darci Poquette1016Russia2026-04-22
Stacey Maclead1017Argentina2026-04-18
Aditya Kusko1018Russia2026-04-24
Salvatore Stockham1019Canada2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoRussiaStephen Shaw NEGOTIATION
Salvatore StockhamAustraliaAmy Elsner RENEWAL
Chavez BriddickCanadaAsiya Javayant RENEWAL
Claire TollnerGermanyXuxue Feng NEW
Clifford RimIndiaIoni Bowcher QUALIFIED
Murillo MaletRussiaXuxue Feng RENEWAL
Mujtaba NickaAustraliaIoni Bowcher PROPOSAL
Isabel BowleyBrazilElwin Sharvill NEGOTIATION
Juan WieserAustraliaOnyama Limba NEW
Smith GlickFranceAsiya Javayant RENEWAL
Jefferson SchemmerFranceIoni Bowcher QUALIFIED
Silvio SlusarskiJapanAmy Elsner NEGOTIATION
Clifford RimBrazilOnyama Limba PROPOSAL
Jeanfrancois VenereItalyIoni Bowcher UNQUALIFIED
Greenwood BologniaArgentinaAsiya Javayant PROPOSAL
Isabel BowleyJapanAsiya Javayant NEW
Juan WieserRussiaStephen Shaw NEW
Leja CaldareraItalyBernardo Dominic RENEWAL
Leja CaldareraIndiaAmy Elsner PROPOSAL
Ricardo GauchoUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois VenereUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleRussiaOnyama Limba UNQUALIFIED
Salvatore StockhamBrazilIvan Magalhaes NEW
Emily WhobreyBrazilAnna Fali NEGOTIATION
Maisha RulapaughItalyOnyama Limba PROPOSAL
Deepesh ChuiJapanIvan Magalhaes UNQUALIFIED
Clifford RimUnited KingdomAsiya Javayant NEGOTIATION
Munro FerenczSpainOnyama Limba NEGOTIATION
Claire TollnerFranceXuxue Feng NEW
Antonio CaudyJapanIoni Bowcher PROPOSAL
Antonio CaudyAustraliaIvan Magalhaes UNQUALIFIED
Munro FerenczGermanyAmy Elsner NEW
Salvatore StockhamBrazilElwin Sharvill UNQUALIFIED
Julie StensethSpainStephen Shaw RENEWAL
Murillo MaletBrazilXuxue Feng PROPOSAL
Faith GillianRussiaAnna Fali UNQUALIFIED
Julie StensethAustraliaXuxue Feng NEGOTIATION
Clifford RimCanadaOnyama Limba QUALIFIED
Mayumi KolmetzArgentinaAmy Elsner UNQUALIFIED
David DarakjyAustraliaStephen Shaw 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>