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
Chavez BriddickCanadaAmy Elsner QUALIFIED
Mujtaba NickaSpainAsiya Javayant QUALIFIED
Tony FollerItalyStephen Shaw NEW
Wickens NestleIndiaXuxue Feng NEW
Jefferson SchemmerAustraliaOnyama Limba PROPOSAL
Leja CaldareraCanadaAnna Fali QUALIFIED
Silvio SlusarskiIndiaBernardo Dominic NEGOTIATION
Ricardo GauchoSpainIvan Magalhaes RENEWAL
Smith GlickAustraliaAnna Fali PROPOSAL
Cody SaylorsJapanElwin Sharvill RENEWAL
Ricardo GauchoGermanyAsiya Javayant UNQUALIFIED
Emily WhobreyGermanyIoni Bowcher PROPOSAL
Morrow RutaBrazilBernardo Dominic NEW
Deepesh ChuiFranceXuxue Feng RENEWAL
Isabel BowleyAustraliaIvan Magalhaes UNQUALIFIED
Emily WhobreyRussiaBernardo Dominic NEW
Isabel BowleyBrazilIoni Bowcher QUALIFIED
Claire TollnerAustraliaXuxue Feng QUALIFIED
Octavia MaletItalyAmy Elsner PROPOSAL
Nicolas IturbideCanadaIoni Bowcher UNQUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher RENEWAL
Darci PoquetteGermanyBernardo Dominic QUALIFIED
Claire TollnerArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletFranceOnyama Limba UNQUALIFIED
Arvin AlbaresArgentinaStephen Shaw NEW
Antonio CaudyArgentinaBernardo Dominic UNQUALIFIED
Mayumi KolmetzUnited KingdomElwin Sharvill RENEWAL
Murillo MaletGermanyIvan Magalhaes RENEWAL
Octavia MaletIndiaIvan Magalhaes QUALIFIED
Silvio SlusarskiFranceAmy Elsner UNQUALIFIED
Sinclair WaycottArgentinaElwin Sharvill PROPOSAL
Antonio CaudyItalyAsiya Javayant QUALIFIED
Leja CaldareraIndiaAnna Fali RENEWAL
Juan WieserIndiaOnyama Limba RENEWAL
Murillo MaletSpainElwin Sharvill RENEWAL
Mujtaba NickaArgentinaElwin Sharvill UNQUALIFIED
Darci PoquetteRussiaOnyama Limba NEGOTIATION
Arvin AlbaresUnited KingdomBernardo Dominic PROPOSAL
Aika InouyeUnited KingdomOnyama Limba RENEWAL
Jennifer AmigonItalyIoni Bowcher NEW
Wickens NestleCanadaBernardo Dominic NEW
Izzy GarufiIndiaXuxue Feng PROPOSAL
Ashley DoeItalyXuxue Feng NEGOTIATION
Antonio CaudyFranceAsiya Javayant RENEWAL
Juan WieserJapanElwin Sharvill NEW
Ashley DoeFranceAmy Elsner NEGOTIATION
Izzy GarufiIndiaAmy Elsner QUALIFIED
Deepesh ChuiSpainIvan Magalhaes NEW
Juan WieserFranceIoni Bowcher RENEWAL
Stacey MacleadSpainBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Smith GlickAustraliaXuxue Feng NEW
Kadeem FlosiIndiaAnna Fali NEW
David DarakjyArgentinaStephen Shaw QUALIFIED
Leon OldroydRussiaIvan Magalhaes RENEWAL
Smith GlickArgentinaAsiya Javayant NEW
Cody SaylorsCanadaIvan Magalhaes QUALIFIED
Misaki RoysterRussiaXuxue Feng UNQUALIFIED
Jefferson SchemmerUnited KingdomElwin Sharvill PROPOSAL
Ricardo GauchoIndiaElwin Sharvill QUALIFIED
Cody SaylorsUnited KingdomAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson SchemmerJapan2026-05-16Feltz Printing Service NEW12Bernardo Dominic
1001Aditya KuskoRussia2026-05-22Morlong Associates NEW59Elwin Sharvill
1002Sinclair WaycottGermany2026-05-12Printing Dimensions PROPOSAL7Asiya Javayant
1003Francesco ShinkoBrazil2026-05-14Chapman, Ross E Esq PROPOSAL84Anna Fali
1004Antonio CaudyItaly2026-05-15Feltz Printing Service RENEWAL7Amy Elsner
1005Aditya KuskoAustralia2026-05-14Dorl, James J Esq UNQUALIFIED24Ioni Bowcher
1006Greenwood BologniaFrance2026-05-20Chapman, Ross E Esq QUALIFIED31Onyama Limba
1007Greenwood BologniaArgentina2026-05-22Rangoni Of Florence RENEWAL63Elwin Sharvill
1008Octavia MaletIndia2026-05-24Printing Dimensions RENEWAL11Stephen Shaw
1009Cody SaylorsIndia2026-05-11Feltz Printing Service RENEWAL50Stephen Shaw
1010Salvatore StockhamAustralia2026-05-07Benton, John B Jr NEGOTIATION28Anna Fali
1011Leja CaldareraItaly2026-05-22Benton, John B Jr PROPOSAL49Xuxue Feng
1012Julie StensethJapan2026-05-12Commercial Press QUALIFIED65Onyama Limba
1013Clifford RimArgentina2026-06-02Morlong Associates QUALIFIED80Anna Fali
1014Claire TollnerFrance2026-05-28Commercial Press NEW11Asiya Javayant
1015Ricardo GauchoJapan2026-05-27King, Christopher A Esq NEW61Ioni Bowcher
1016Kaitlin OstroskyArgentina2026-05-09Printing Dimensions NEGOTIATION24Bernardo Dominic
1017Aditya KuskoBrazil2026-05-18Feltz Printing Service QUALIFIED93Bernardo Dominic
1018Deepesh ChuiRussia2026-06-05Commercial Press UNQUALIFIED75Onyama Limba
1019Darci PoquetteAustralia2026-05-26Truhlar And Truhlar Attys PROPOSAL40Ivan Magalhaes
1020Octavia MaletAustralia2026-05-20Chemel, James L Cpa UNQUALIFIED6Anna Fali
1021Jones VocelkaRussia2026-06-03Morlong Associates NEW23Anna Fali
1022Emily WhobreyArgentina2026-05-14King, Christopher A Esq NEGOTIATION19Asiya Javayant
1023Maria MarrierBrazil2026-05-27Feiner Bros NEGOTIATION31Stephen Shaw
1024Jefferson SchemmerCanada2026-05-30Rousseaux, Michael Esq PROPOSAL97Xuxue Feng
1025Julie StensethIndia2026-05-16Commercial Press NEW24Elwin Sharvill
1026Alejandro PerinBrazil2026-05-15Dorl, James J Esq RENEWAL66Xuxue Feng
1027Sinclair WaycottFrance2026-05-18Rangoni Of Florence UNQUALIFIED77Bernardo Dominic
1028Emily WhobreyItaly2026-05-15Buckley Miller Wright PROPOSAL25Ivan Magalhaes
1029Kaitlin OstroskyRussia2026-05-28Benton, John B Jr QUALIFIED48Amy Elsner
1030Clifford RimIndia2026-05-31Benton, John B Jr RENEWAL86Anna Fali
1031Costa DilliardUnited Kingdom2026-05-08Rangoni Of Florence QUALIFIED76Xuxue Feng
1032Johnson SergiCanada2026-06-04Truhlar And Truhlar Attys QUALIFIED41Onyama Limba
1033Kadeem FlosiAustralia2026-05-09Truhlar And Truhlar Attys NEW58Asiya Javayant
1034Deepesh ChuiIndia2026-05-24Benton, John B Jr PROPOSAL25Anna Fali
1035Smith GlickItaly2026-06-03Commercial Press NEW26Onyama Limba
1036Izzy GarufiAustralia2026-05-19Printing Dimensions PROPOSAL21Xuxue Feng
1037Aditya KuskoJapan2026-05-20Chapman, Ross E Esq RENEWAL25Anna Fali
1038Leon OldroydJapan2026-05-07Buckley Miller Wright NEGOTIATION63Stephen Shaw
1039Izzy GarufiCanada2026-05-25Printing Dimensions RENEWAL28Ivan Magalhaes
1040Jefferson SchemmerJapan2026-05-11Rangoni Of Florence QUALIFIED23Xuxue Feng
1041Wickens NestleJapan2026-05-23Feiner Bros NEGOTIATION25Ioni Bowcher
1042Izzy GarufiItaly2026-05-16Chapman, Ross E Esq RENEWAL93Ivan Magalhaes
1043Johnson SergiAustralia2026-05-15Rousseaux, Michael Esq PROPOSAL90Bernardo Dominic
1044Alejandro PerinBrazil2026-05-24Buckley Miller Wright NEW28Onyama Limba
1045Munro FerenczBrazil2026-05-21Morlong Associates UNQUALIFIED86Onyama Limba
1046Smith GlickJapan2026-05-23Feiner Bros UNQUALIFIED71Anna Fali
1047Claire TollnerBrazil2026-06-02Chapman, Ross E Esq NEGOTIATION35Elwin Sharvill
1048Sinclair WaycottFrance2026-05-10Benton, John B Jr UNQUALIFIED96Elwin Sharvill
1049Isabel BowleyGermany2026-05-10King, Christopher A Esq NEW22Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaAustraliaXuxue Feng UNQUALIFIED
Mujtaba NickaSpainIvan Magalhaes UNQUALIFIED
Sinclair WaycottJapanXuxue Feng NEW
Julie StensethCanadaStephen Shaw RENEWAL
Darci PoquetteJapanIoni Bowcher NEW
David DarakjyIndiaIvan Magalhaes PROPOSAL
Octavia MaletIndiaAmy Elsner UNQUALIFIED
Isabel BowleyGermanyAnna Fali NEGOTIATION
Jeanfrancois VenereGermanyOnyama Limba RENEWAL
Sinclair WaycottJapanStephen Shaw PROPOSAL
Juan WieserIndiaIoni Bowcher NEW
Juan WieserIndiaStephen Shaw UNQUALIFIED
Darci PoquetteItalyIoni Bowcher UNQUALIFIED
Chavez BriddickIndiaIvan Magalhaes NEW
Juan WieserArgentinaIoni Bowcher PROPOSAL
Salvatore StockhamGermanyStephen Shaw QUALIFIED
James ButtAustraliaIvan Magalhaes RENEWAL
Isabel BowleyIndiaElwin Sharvill PROPOSAL
David DarakjyBrazilAnna Fali UNQUALIFIED
Isabel BowleyUnited KingdomXuxue Feng PROPOSAL
Murillo MaletRussiaAsiya Javayant QUALIFIED
Aruna FigeroaIndiaOnyama Limba UNQUALIFIED
Misaki RoysterFranceIvan Magalhaes PROPOSAL
Cody SaylorsSpainXuxue Feng QUALIFIED
Darci PoquetteArgentinaAnna Fali QUALIFIED
Nicolas IturbideArgentinaOnyama Limba NEGOTIATION
Sinclair WaycottSpainXuxue Feng NEW
Alejandro PerinItalyXuxue Feng NEGOTIATION
James ButtIndiaIoni Bowcher PROPOSAL
Francesco ShinkoCanadaIoni Bowcher PROPOSAL
Isabel BowleyJapanIvan Magalhaes QUALIFIED
Julie StensethUnited KingdomXuxue Feng QUALIFIED
Francesco ShinkoAustraliaXuxue Feng RENEWAL
Cody SaylorsFranceAmy Elsner NEGOTIATION
Jeanfrancois VenereGermanyOnyama Limba NEW
Jeanfrancois VenereCanadaElwin Sharvill NEW
Juan WieserJapanIvan Magalhaes RENEWAL
Aditya KuskoFranceIvan Magalhaes NEW
Ashley DoeItalyStephen Shaw PROPOSAL
Johnson SergiBrazilAnna Fali NEGOTIATION
Ivar PaprockiAustraliaAmy Elsner QUALIFIED
Isabel BowleySpainIvan Magalhaes QUALIFIED
Cody SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
Aika InouyeAustraliaOnyama Limba QUALIFIED
Adams MorascaBrazilAsiya Javayant QUALIFIED
Francesco ShinkoSpainIvan Magalhaes NEW
Misaki RoysterIndiaElwin Sharvill PROPOSAL
Clifford RimRussiaAmy Elsner RENEWAL
Jeanfrancois VenereCanadaIvan Magalhaes RENEWAL
Rodrigues CampainSpainAnna Fali NEW
Frozen Columns
Name
Johnson Sergi
Salvatore Stockham
Jennifer Amigon
Francesco Shinko
Octavia Malet
Aruna Figeroa
Ivar Paprocki
Rodrigues Campain
Smith Glick
Emily Whobrey
Clifford Rim
Munro Ferencz
Johnson Sergi
Tony Foller
Aika Inouye
Arvin Albares
Maria Marrier
Morrow Ruta
Darci Poquette
Greenwood Bolognia
Emily Whobrey
Wickens Nestle
David Darakjy
Wickens Nestle
Julie Stenseth
Jones Vocelka
Aditya Kusko
Jennifer Amigon
Emily Whobrey
Costa Dilliard
Maisha Rulapaugh
Silvio Slusarski
Chavez Briddick
David Darakjy
Chavez Briddick
Claire Tollner
Kadeem Flosi
Wickens Nestle
Silvio Slusarski
Chavez Briddick
Misaki Royster
Smith Glick
Aruna Figeroa
Leon Oldroyd
Deepesh Chui
Cody Saylors
Maisha Rulapaugh
Faith Gillian
Aruna Figeroa
Mujtaba Nicka
IdCountryDate
1000Australia2026-05-26
1001Japan2026-05-16
1002Argentina2026-06-01
1003Japan2026-05-19
1004Italy2026-05-30
1005Australia2026-05-10
1006Italy2026-06-05
1007India2026-05-28
1008India2026-05-27
1009Australia2026-06-01
1010India2026-05-12
1011Brazil2026-06-05
1012Australia2026-05-22
1013Australia2026-05-20
1014Argentina2026-05-09
1015Brazil2026-05-08
1016Russia2026-05-11
1017Russia2026-05-20
1018Canada2026-06-01
1019United Kingdom2026-06-04
1020France2026-05-10
1021France2026-05-21
1022Argentina2026-05-16
1023India2026-05-22
1024Germany2026-05-20
1025France2026-05-15
1026India2026-05-19
1027Canada2026-06-05
1028Australia2026-06-02
1029France2026-05-28
1030Germany2026-05-11
1031Spain2026-05-07
1032Canada2026-05-29
1033Canada2026-05-25
1034Brazil2026-05-24
1035Japan2026-06-04
1036Argentina2026-06-01
1037Japan2026-06-03
1038Canada2026-05-18
1039Germany2026-05-26
1040France2026-05-24
1041Spain2026-05-31
1042Russia2026-05-24
1043Brazil2026-05-08
1044Canada2026-05-11
1045India2026-05-17
1046Japan2026-05-17
1047Argentina2026-05-22
1048Australia2026-05-21
1049Germany2026-05-28

On-Demand Data

NameIdCountryDate
Misaki Royster1000Argentina2026-05-29
Emily Whobrey1001France2026-05-18
Sinclair Waycott1002Japan2026-05-23
Jefferson Schemmer1003Canada2026-05-26
Juan Wieser1004Brazil2026-05-16
Claire Tollner1005Japan2026-05-15
Ricardo Gaucho1006Russia2026-05-31
Mujtaba Nicka1007Brazil2026-05-07
Adams Morasca1008United Kingdom2026-06-01
Sinclair Waycott1009Germany2026-05-17
Wickens Nestle1010Australia2026-06-05
Mayumi Kolmetz1011United Kingdom2026-05-30
Greenwood Bolognia1012Italy2026-05-08
Izzy Garufi1013Japan2026-05-27
Aruna Figeroa1014Canada2026-05-16
Maria Marrier1015Italy2026-06-03
Aruna Figeroa1016Canada2026-05-20
Jeanfrancois Venere1017Italy2026-05-19
Smith Glick1018Australia2026-05-16
Sinclair Waycott1019Canada2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinUnited KingdomElwin Sharvill QUALIFIED
Jennifer AmigonRussiaAnna Fali UNQUALIFIED
Cody SaylorsIndiaAsiya Javayant UNQUALIFIED
Claire TollnerAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainUnited KingdomStephen Shaw NEW
Johnson SergiCanadaStephen Shaw RENEWAL
Mujtaba NickaAustraliaXuxue Feng QUALIFIED
Silvio SlusarskiArgentinaAmy Elsner NEGOTIATION
Juan WieserArgentinaElwin Sharvill QUALIFIED
Deepesh ChuiAustraliaAmy Elsner NEGOTIATION
Johnson SergiArgentinaIvan Magalhaes QUALIFIED
Murillo MaletBrazilAsiya Javayant NEW
Ivar PaprockiFranceXuxue Feng RENEWAL
Kadeem FlosiItalyAsiya Javayant NEGOTIATION
Deepesh ChuiArgentinaStephen Shaw UNQUALIFIED
Octavia MaletArgentinaAnna Fali NEW
Rodrigues CampainCanadaBernardo Dominic UNQUALIFIED
Mayumi KolmetzCanadaXuxue Feng NEW
Salvatore StockhamSpainStephen Shaw NEGOTIATION
Leon OldroydSpainElwin Sharvill RENEWAL
Adams MorascaFranceBernardo Dominic RENEWAL
Jones VocelkaAustraliaAnna Fali NEGOTIATION
Adams MorascaUnited KingdomStephen Shaw NEGOTIATION
Antonio CaudyIndiaAnna Fali RENEWAL
Aditya KuskoAustraliaElwin Sharvill UNQUALIFIED
Kadeem FlosiFranceAnna Fali QUALIFIED
Chavez BriddickRussiaBernardo Dominic NEW
Cody SaylorsIndiaStephen Shaw QUALIFIED
Jeanfrancois VenereBrazilAnna Fali RENEWAL
Izzy GarufiAustraliaAsiya Javayant QUALIFIED
Smith GlickFranceBernardo Dominic QUALIFIED
Morrow RutaCanadaStephen Shaw NEGOTIATION
Tony FollerBrazilOnyama Limba QUALIFIED
Salvatore StockhamAustraliaXuxue Feng NEW
Jennifer AmigonUnited KingdomStephen Shaw RENEWAL
Aika InouyeGermanyXuxue Feng UNQUALIFIED
Smith GlickSpainStephen Shaw RENEWAL
Jones VocelkaArgentinaIvan Magalhaes NEGOTIATION
Claire TollnerFranceAsiya Javayant RENEWAL
Jennifer AmigonJapanIoni Bowcher 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>