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
Stacey MacleadSpainXuxue Feng RENEWAL
Salvatore StockhamCanadaXuxue Feng PROPOSAL
Francesco ShinkoFranceXuxue Feng PROPOSAL
Antonio CaudyJapanIvan Magalhaes NEGOTIATION
Wickens NestleBrazilBernardo Dominic RENEWAL
Claire TollnerIndiaAnna Fali PROPOSAL
Greenwood BologniaCanadaBernardo Dominic UNQUALIFIED
Mujtaba NickaUnited KingdomAnna Fali NEW
Darci PoquetteSpainXuxue Feng NEGOTIATION
Ricardo GauchoJapanOnyama Limba UNQUALIFIED
Cody SaylorsJapanAnna Fali QUALIFIED
Isabel BowleyItalyIoni Bowcher UNQUALIFIED
Murillo MaletCanadaOnyama Limba NEW
Ricardo GauchoSpainOnyama Limba PROPOSAL
Mujtaba NickaRussiaElwin Sharvill PROPOSAL
Johnson SergiIndiaAmy Elsner PROPOSAL
Aditya KuskoAustraliaIvan Magalhaes UNQUALIFIED
Isabel BowleyItalyAnna Fali QUALIFIED
Aika InouyeBrazilIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomOnyama Limba PROPOSAL
Aruna FigeroaArgentinaXuxue Feng QUALIFIED
Deepesh ChuiItalyAnna Fali NEGOTIATION
Francesco ShinkoAustraliaBernardo Dominic NEW
Deepesh ChuiUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh ChuiCanadaAmy Elsner PROPOSAL
Misaki RoysterArgentinaAnna Fali NEW
Kaitlin OstroskySpainIoni Bowcher RENEWAL
Izzy GarufiUnited KingdomIoni Bowcher RENEWAL
Silvio SlusarskiItalyOnyama Limba NEW
Costa DilliardBrazilAnna Fali QUALIFIED
Salvatore StockhamItalyElwin Sharvill NEGOTIATION
Silvio SlusarskiJapanBernardo Dominic PROPOSAL
Jennifer AmigonArgentinaAnna Fali NEGOTIATION
Rodrigues CampainIndiaIvan Magalhaes RENEWAL
Munro FerenczSpainStephen Shaw UNQUALIFIED
Chavez BriddickArgentinaOnyama Limba PROPOSAL
Smith GlickUnited KingdomOnyama Limba NEGOTIATION
David DarakjyArgentinaIoni Bowcher NEW
Salvatore StockhamRussiaStephen Shaw RENEWAL
Ivar PaprockiRussiaIvan Magalhaes NEW
Mayumi KolmetzGermanyStephen Shaw NEW
Octavia MaletBrazilElwin Sharvill UNQUALIFIED
Morrow RutaBrazilXuxue Feng PROPOSAL
Julie StensethArgentinaIoni Bowcher RENEWAL
Faith GillianCanadaStephen Shaw RENEWAL
Ashley DoeSpainBernardo Dominic PROPOSAL
Costa DilliardRussiaBernardo Dominic PROPOSAL
Clifford RimCanadaAsiya Javayant RENEWAL
Arvin AlbaresGermanyOnyama Limba NEW
Maria MarrierAustraliaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiSpainIoni Bowcher NEW
Mayumi KolmetzItalyStephen Shaw NEGOTIATION
Ricardo GauchoItalyAsiya Javayant UNQUALIFIED
Julie StensethUnited KingdomStephen Shaw NEW
Stacey MacleadBrazilOnyama Limba PROPOSAL
Arvin AlbaresJapanAsiya Javayant UNQUALIFIED
Clifford RimGermanyOnyama Limba QUALIFIED
Rodrigues CampainBrazilAsiya Javayant PROPOSAL
Silvio SlusarskiItalyOnyama Limba QUALIFIED
Jones VocelkaGermanyXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzCanada2026-04-20Commercial Press RENEWAL93Onyama Limba
1001Alejandro PerinAustralia2026-04-06Feltz Printing Service RENEWAL57Ivan Magalhaes
1002Jones VocelkaGermany2026-04-23Benton, John B Jr UNQUALIFIED9Bernardo Dominic
1003Leon OldroydCanada2026-03-28King, Christopher A Esq PROPOSAL28Bernardo Dominic
1004Mayumi KolmetzIndia2026-04-26Printing Dimensions NEW76Elwin Sharvill
1005David DarakjyUnited Kingdom2026-04-11Rangoni Of Florence RENEWAL50Xuxue Feng
1006Arvin AlbaresRussia2026-04-26Rangoni Of Florence UNQUALIFIED1Onyama Limba
1007Maisha RulapaughGermany2026-04-17Feiner Bros RENEWAL41Asiya Javayant
1008Ivar PaprockiItaly2026-03-31Chapman, Ross E Esq PROPOSAL68Ioni Bowcher
1009Adams MorascaJapan2026-04-07Feiner Bros NEW42Asiya Javayant
1010Antonio CaudyGermany2026-04-17Morlong Associates QUALIFIED66Amy Elsner
1011Aruna FigeroaBrazil2026-03-30Chemel, James L Cpa NEGOTIATION77Elwin Sharvill
1012Jefferson SchemmerGermany2026-04-09Dorl, James J Esq NEGOTIATION22Anna Fali
1013Aditya KuskoFrance2026-04-10Chemel, James L Cpa RENEWAL73Bernardo Dominic
1014Aditya KuskoArgentina2026-04-04Commercial Press PROPOSAL60Asiya Javayant
1015Maisha RulapaughArgentina2026-04-02Dorl, James J Esq QUALIFIED68Bernardo Dominic
1016Leja CaldareraCanada2026-04-09Truhlar And Truhlar Attys NEGOTIATION37Stephen Shaw
1017Darci PoquetteIndia2026-04-13Commercial Press QUALIFIED25Xuxue Feng
1018Ricardo GauchoArgentina2026-04-01Feltz Printing Service QUALIFIED24Onyama Limba
1019Emily WhobreyItaly2026-04-03Benton, John B Jr PROPOSAL36Stephen Shaw
1020Francesco ShinkoArgentina2026-03-29Chapman, Ross E Esq NEGOTIATION4Amy Elsner
1021Morrow RutaArgentina2026-03-29Rousseaux, Michael Esq NEW27Stephen Shaw
1022Munro FerenczUnited Kingdom2026-04-25King, Christopher A Esq RENEWAL24Bernardo Dominic
1023Jennifer AmigonFrance2026-04-14Feltz Printing Service PROPOSAL29Amy Elsner
1024Johnson SergiAustralia2026-04-15Feltz Printing Service NEGOTIATION63Stephen Shaw
1025Costa DilliardFrance2026-04-17Dorl, James J Esq PROPOSAL19Anna Fali
1026Chavez BriddickGermany2026-04-15Rousseaux, Michael Esq NEW77Amy Elsner
1027Morrow RutaIndia2026-04-20Dorl, James J Esq QUALIFIED95Ivan Magalhaes
1028Murillo MaletFrance2026-04-15Rangoni Of Florence NEW77Amy Elsner
1029Murillo MaletUnited Kingdom2026-04-20Morlong Associates RENEWAL19Stephen Shaw
1030Chavez BriddickIndia2026-04-01Morlong Associates PROPOSAL17Xuxue Feng
1031Tony FollerFrance2026-04-13Chapman, Ross E Esq PROPOSAL1Amy Elsner
1032Jones VocelkaArgentina2026-04-12Benton, John B Jr NEW49Elwin Sharvill
1033Morrow RutaUnited Kingdom2026-04-13Feiner Bros NEGOTIATION5Ioni Bowcher
1034Izzy GarufiRussia2026-04-13Printing Dimensions RENEWAL47Ioni Bowcher
1035Misaki RoysterGermany2026-04-11Rousseaux, Michael Esq PROPOSAL88Ioni Bowcher
1036Antonio CaudySpain2026-04-08Benton, John B Jr PROPOSAL5Amy Elsner
1037Mayumi KolmetzFrance2026-04-03Feiner Bros PROPOSAL57Asiya Javayant
1038Julie StensethAustralia2026-04-03Rangoni Of Florence NEGOTIATION19Asiya Javayant
1039Mayumi KolmetzBrazil2026-04-08Printing Dimensions QUALIFIED34Xuxue Feng
1040Ashley DoeGermany2026-03-30Feiner Bros NEW73Stephen Shaw
1041Emily WhobreyIndia2026-04-08Buckley Miller Wright RENEWAL95Amy Elsner
1042Smith GlickUnited Kingdom2026-04-14Feiner Bros NEW56Asiya Javayant
1043Deepesh ChuiArgentina2026-04-16Buckley Miller Wright UNQUALIFIED61Anna Fali
1044Faith GillianCanada2026-04-19Commercial Press RENEWAL57Amy Elsner
1045Adams MorascaGermany2026-04-13Morlong Associates PROPOSAL8Onyama Limba
1046Clifford RimAustralia2026-04-20Feiner Bros NEW13Bernardo Dominic
1047Isabel BowleyUnited Kingdom2026-03-29Printing Dimensions UNQUALIFIED77Anna Fali
1048Jefferson SchemmerBrazil2026-04-09Chemel, James L Cpa RENEWAL5Bernardo Dominic
1049Antonio CaudyJapan2026-04-09Buckley Miller Wright PROPOSAL17Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiArgentinaOnyama Limba QUALIFIED
Tony FollerFranceXuxue Feng QUALIFIED
Wickens NestleRussiaXuxue Feng RENEWAL
Isabel BowleyFranceElwin Sharvill QUALIFIED
Clifford RimItalyBernardo Dominic QUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw NEGOTIATION
Kaitlin OstroskyArgentinaStephen Shaw UNQUALIFIED
Munro FerenczItalyIoni Bowcher NEW
Clifford RimJapanOnyama Limba NEGOTIATION
Jennifer AmigonFranceOnyama Limba NEW
Sinclair WaycottFranceAnna Fali PROPOSAL
Arvin AlbaresFranceIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyIoni Bowcher NEW
Rodrigues CampainJapanIvan Magalhaes PROPOSAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Juan WieserCanadaOnyama Limba QUALIFIED
Ricardo GauchoBrazilXuxue Feng QUALIFIED
Stacey MacleadRussiaElwin Sharvill NEW
Wickens NestleItalyXuxue Feng PROPOSAL
Francesco ShinkoItalyAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaStephen Shaw PROPOSAL
David DarakjyJapanElwin Sharvill PROPOSAL
Johnson SergiCanadaIvan Magalhaes NEGOTIATION
Johnson SergiJapanElwin Sharvill PROPOSAL
Rodrigues CampainRussiaElwin Sharvill NEGOTIATION
Nicolas IturbideItalyXuxue Feng NEGOTIATION
Misaki RoysterUnited KingdomIvan Magalhaes PROPOSAL
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Leon OldroydFranceElwin Sharvill NEGOTIATION
Leon OldroydGermanyElwin Sharvill PROPOSAL
Aruna FigeroaFranceAsiya Javayant NEW
Alejandro PerinAustraliaElwin Sharvill PROPOSAL
Morrow RutaSpainStephen Shaw UNQUALIFIED
Morrow RutaItalyIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaAsiya Javayant QUALIFIED
David DarakjyRussiaAnna Fali PROPOSAL
Kaitlin OstroskyGermanyIoni Bowcher NEGOTIATION
Murillo MaletBrazilIvan Magalhaes PROPOSAL
Munro FerenczUnited KingdomAsiya Javayant QUALIFIED
Aika InouyeFranceAnna Fali NEGOTIATION
Mujtaba NickaItalyIvan Magalhaes QUALIFIED
Murillo MaletCanadaOnyama Limba UNQUALIFIED
Isabel BowleyFranceIoni Bowcher NEGOTIATION
Claire TollnerIndiaAnna Fali NEGOTIATION
Johnson SergiItalyIvan Magalhaes RENEWAL
Johnson SergiIndiaBernardo Dominic UNQUALIFIED
Kadeem FlosiIndiaAnna Fali NEGOTIATION
Mayumi KolmetzJapanStephen Shaw RENEWAL
Rodrigues CampainBrazilAmy Elsner RENEWAL
Frozen Columns
Name
Ivar Paprocki
Jones Vocelka
Munro Ferencz
David Darakjy
Misaki Royster
Mayumi Kolmetz
Leon Oldroyd
Rodrigues Campain
Octavia Malet
Aditya Kusko
Tony Foller
Izzy Garufi
Munro Ferencz
Aruna Figeroa
Jones Vocelka
Chavez Briddick
Leja Caldarera
Tony Foller
Francesco Shinko
Alejandro Perin
Ivar Paprocki
Alejandro Perin
Stacey Maclead
Clifford Rim
David Darakjy
Jeanfrancois Venere
Maisha Rulapaugh
Salvatore Stockham
Silvio Slusarski
Misaki Royster
Stacey Maclead
Tony Foller
Octavia Malet
Morrow Ruta
Cody Saylors
Octavia Malet
Mayumi Kolmetz
Juan Wieser
Nicolas Iturbide
Stacey Maclead
Deepesh Chui
Wickens Nestle
Leja Caldarera
Costa Dilliard
Jefferson Schemmer
Deepesh Chui
Smith Glick
Deepesh Chui
Maisha Rulapaugh
Salvatore Stockham
IdCountryDate
1000Russia2026-04-22
1001Australia2026-04-17
1002France2026-04-01
1003Brazil2026-04-01
1004France2026-04-23
1005Italy2026-04-06
1006Argentina2026-04-13
1007France2026-04-19
1008Germany2026-04-24
1009India2026-04-03
1010Russia2026-03-31
1011Spain2026-04-26
1012Japan2026-04-10
1013Brazil2026-04-18
1014India2026-04-20
1015Japan2026-04-18
1016Japan2026-04-12
1017Japan2026-04-09
1018Australia2026-04-23
1019Canada2026-04-13
1020Brazil2026-04-10
1021Germany2026-04-12
1022Germany2026-04-20
1023Japan2026-03-29
1024India2026-04-20
1025Canada2026-04-02
1026Brazil2026-04-19
1027France2026-04-06
1028Canada2026-04-20
1029India2026-04-26
1030Germany2026-03-30
1031Canada2026-04-16
1032United Kingdom2026-04-26
1033Brazil2026-04-06
1034India2026-04-03
1035Australia2026-04-22
1036Italy2026-04-11
1037Australia2026-04-25
1038Argentina2026-04-20
1039Italy2026-04-06
1040Japan2026-04-20
1041United Kingdom2026-04-21
1042India2026-04-20
1043France2026-04-21
1044Germany2026-04-15
1045Italy2026-04-08
1046Japan2026-04-03
1047Germany2026-04-07
1048Brazil2026-04-20
1049Japan2026-04-17

On-Demand Data

NameIdCountryDate
Munro Ferencz1000Japan2026-04-02
Aika Inouye1001India2026-04-21
Morrow Ruta1002Germany2026-04-22
Leja Caldarera1003Australia2026-04-24
Isabel Bowley1004Russia2026-03-28
Aika Inouye1005Japan2026-04-05
Silvio Slusarski1006Germany2026-04-23
Deepesh Chui1007Russia2026-04-13
Silvio Slusarski1008Japan2026-03-30
Leon Oldroyd1009Canada2026-04-01
Johnson Sergi1010India2026-04-12
Deepesh Chui1011Germany2026-04-22
Kaitlin Ostrosky1012Canada2026-04-07
Silvio Slusarski1013Australia2026-04-09
Rodrigues Campain1014Australia2026-04-15
Isabel Bowley1015Italy2026-04-20
Jennifer Amigon1016Argentina2026-04-26
Maisha Rulapaugh1017Russia2026-03-28
Darci Poquette1018Italy2026-04-13
Mayumi Kolmetz1019Japan2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiSpainOnyama Limba PROPOSAL
Deepesh ChuiSpainIvan Magalhaes RENEWAL
Ricardo GauchoRussiaAmy Elsner PROPOSAL
Izzy GarufiBrazilStephen Shaw QUALIFIED
Costa DilliardArgentinaBernardo Dominic QUALIFIED
David DarakjyFranceXuxue Feng NEW
Kadeem FlosiItalyIvan Magalhaes NEW
Smith GlickIndiaIvan Magalhaes RENEWAL
Salvatore StockhamIndiaAnna Fali NEW
Arvin AlbaresRussiaStephen Shaw QUALIFIED
Ricardo GauchoArgentinaOnyama Limba RENEWAL
Ashley DoeJapanAnna Fali NEGOTIATION
Octavia MaletJapanIoni Bowcher NEW
Deepesh ChuiJapanElwin Sharvill NEW
Faith GillianBrazilAnna Fali NEGOTIATION
Sinclair WaycottAustraliaAmy Elsner NEW
Jones VocelkaBrazilIvan Magalhaes RENEWAL
Maisha RulapaughIndiaXuxue Feng RENEWAL
Misaki RoysterUnited KingdomAsiya Javayant NEGOTIATION
Aditya KuskoFranceOnyama Limba PROPOSAL
Johnson SergiItalyIvan Magalhaes PROPOSAL
Arvin AlbaresIndiaBernardo Dominic PROPOSAL
Clifford RimCanadaAnna Fali NEGOTIATION
James ButtCanadaElwin Sharvill PROPOSAL
Morrow RutaJapanOnyama Limba QUALIFIED
Kadeem FlosiGermanyXuxue Feng UNQUALIFIED
Antonio CaudyIndiaElwin Sharvill PROPOSAL
David DarakjySpainBernardo Dominic NEGOTIATION
Octavia MaletBrazilAnna Fali RENEWAL
Ricardo GauchoBrazilAsiya Javayant QUALIFIED
Adams MorascaUnited KingdomOnyama Limba PROPOSAL
Octavia MaletFranceAnna Fali RENEWAL
Ricardo GauchoCanadaXuxue Feng QUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher NEW
Leon OldroydIndiaBernardo Dominic NEW
Nicolas IturbideUnited KingdomStephen Shaw UNQUALIFIED
Adams MorascaBrazilIvan Magalhaes PROPOSAL
Sinclair WaycottRussiaIvan Magalhaes NEGOTIATION
Jones VocelkaSpainElwin Sharvill NEGOTIATION
Arvin AlbaresAustraliaAsiya Javayant NEGOTIATION

<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>