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
Smith GlickBrazilStephen Shaw QUALIFIED
Francesco ShinkoBrazilAsiya Javayant NEW
Morrow RutaAustraliaAmy Elsner QUALIFIED
Kaitlin OstroskyArgentinaElwin Sharvill NEW
Jones VocelkaFranceIvan Magalhaes RENEWAL
Tony FollerRussiaAnna Fali QUALIFIED
Chavez BriddickRussiaElwin Sharvill NEGOTIATION
Costa DilliardRussiaAnna Fali NEW
Ivar PaprockiItalyOnyama Limba NEW
Ivar PaprockiGermanyAsiya Javayant RENEWAL
Smith GlickFranceOnyama Limba RENEWAL
Murillo MaletRussiaAmy Elsner NEW
Misaki RoysterCanadaXuxue Feng PROPOSAL
Jones VocelkaAustraliaAmy Elsner NEW
Johnson SergiSpainAnna Fali QUALIFIED
Aruna FigeroaJapanAmy Elsner RENEWAL
Greenwood BologniaArgentinaStephen Shaw RENEWAL
Misaki RoysterRussiaBernardo Dominic PROPOSAL
Greenwood BologniaAustraliaIvan Magalhaes QUALIFIED
Antonio CaudyItalyAnna Fali NEW
Arvin AlbaresGermanyAsiya Javayant PROPOSAL
Murillo MaletGermanyBernardo Dominic UNQUALIFIED
Jennifer AmigonIndiaOnyama Limba QUALIFIED
Costa DilliardArgentinaOnyama Limba UNQUALIFIED
Morrow RutaSpainBernardo Dominic QUALIFIED
Nicolas IturbideJapanXuxue Feng RENEWAL
Juan WieserArgentinaIvan Magalhaes RENEWAL
Arvin AlbaresUnited KingdomIvan Magalhaes NEW
Jones VocelkaItalyOnyama Limba RENEWAL
Julie StensethCanadaAnna Fali NEW
Sinclair WaycottUnited KingdomIvan Magalhaes PROPOSAL
Jones VocelkaIndiaIvan Magalhaes NEW
Maria MarrierArgentinaIoni Bowcher PROPOSAL
Maisha RulapaughFranceElwin Sharvill NEW
Octavia MaletGermanyIvan Magalhaes NEW
Ashley DoeUnited KingdomAmy Elsner UNQUALIFIED
Leon OldroydArgentinaIoni Bowcher RENEWAL
Arvin AlbaresRussiaBernardo Dominic PROPOSAL
Alejandro PerinGermanyIoni Bowcher NEGOTIATION
Izzy GarufiIndiaIoni Bowcher NEGOTIATION
Leon OldroydFranceAsiya Javayant PROPOSAL
Morrow RutaSpainStephen Shaw NEGOTIATION
Chavez BriddickBrazilOnyama Limba NEGOTIATION
Cody SaylorsGermanyAnna Fali NEGOTIATION
Silvio SlusarskiFranceAmy Elsner NEGOTIATION
Maisha RulapaughCanadaIvan Magalhaes PROPOSAL
Johnson SergiBrazilStephen Shaw NEW
Kaitlin OstroskyRussiaIvan Magalhaes RENEWAL
Munro FerenczFranceBernardo Dominic PROPOSAL
Cody SaylorsIndiaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomAmy Elsner QUALIFIED
Alejandro PerinUnited KingdomAnna Fali UNQUALIFIED
Cody SaylorsRussiaElwin Sharvill QUALIFIED
Emily WhobreySpainAnna Fali NEW
Kadeem FlosiItalyIoni Bowcher RENEWAL
Juan WieserSpainXuxue Feng NEW
Ricardo GauchoArgentinaStephen Shaw QUALIFIED
David DarakjyIndiaIvan Magalhaes NEW
Silvio SlusarskiIndiaIvan Magalhaes NEGOTIATION
Octavia MaletUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainGermany2025-09-10Chemel, James L Cpa NEGOTIATION20Bernardo Dominic
1001Leon OldroydBrazil2025-08-29Feltz Printing Service QUALIFIED80Asiya Javayant
1002James ButtGermany2025-08-27Morlong Associates QUALIFIED72Ivan Magalhaes
1003Mayumi KolmetzAustralia2025-09-17Chanay, Jeffrey A Esq UNQUALIFIED29Asiya Javayant
1004Leon OldroydCanada2025-09-08Commercial Press UNQUALIFIED30Onyama Limba
1005Aika InouyeItaly2025-09-24Buckley Miller Wright QUALIFIED37Bernardo Dominic
1006Murillo MaletCanada2025-09-18Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1007Alejandro PerinFrance2025-09-24Buckley Miller Wright UNQUALIFIED11Ioni Bowcher
1008Jefferson SchemmerCanada2025-09-13Rangoni Of Florence QUALIFIED39Asiya Javayant
1009Costa DilliardSpain2025-09-08Printing Dimensions PROPOSAL93Elwin Sharvill
1010Jefferson SchemmerItaly2025-09-09Feltz Printing Service NEW87Ioni Bowcher
1011Antonio CaudyUnited Kingdom2025-09-07Feiner Bros RENEWAL33Asiya Javayant
1012Maria MarrierItaly2025-09-18Benton, John B Jr NEGOTIATION67Ioni Bowcher
1013Wickens NestleJapan2025-08-26Feltz Printing Service UNQUALIFIED49Ivan Magalhaes
1014Octavia MaletSpain2025-09-18Rousseaux, Michael Esq PROPOSAL91Xuxue Feng
1015James ButtAustralia2025-09-18Truhlar And Truhlar Attys PROPOSAL43Ivan Magalhaes
1016Morrow RutaFrance2025-09-24Morlong Associates NEW90Bernardo Dominic
1017Arvin AlbaresFrance2025-09-03Benton, John B Jr PROPOSAL76Xuxue Feng
1018Jennifer AmigonFrance2025-08-31Feiner Bros PROPOSAL42Xuxue Feng
1019Kaitlin OstroskyRussia2025-09-14Benton, John B Jr PROPOSAL60Amy Elsner
1020Maisha RulapaughIndia2025-09-23Morlong Associates QUALIFIED40Stephen Shaw
1021Darci PoquetteCanada2025-09-09Printing Dimensions RENEWAL16Bernardo Dominic
1022Wickens NestleFrance2025-08-27Rangoni Of Florence QUALIFIED60Bernardo Dominic
1023Jefferson SchemmerSpain2025-08-29Rousseaux, Michael Esq UNQUALIFIED32Xuxue Feng
1024Julie StensethGermany2025-09-23Chapman, Ross E Esq NEGOTIATION1Stephen Shaw
1025Costa DilliardGermany2025-08-29Feiner Bros PROPOSAL58Asiya Javayant
1026Mujtaba NickaUnited Kingdom2025-08-30Truhlar And Truhlar Attys PROPOSAL8Amy Elsner
1027Chavez BriddickIndia2025-09-24Benton, John B Jr QUALIFIED36Amy Elsner
1028David DarakjyCanada2025-09-03Feiner Bros RENEWAL77Elwin Sharvill
1029James ButtUnited Kingdom2025-09-14Rangoni Of Florence RENEWAL25Amy Elsner
1030Munro FerenczRussia2025-09-16Truhlar And Truhlar Attys NEW53Asiya Javayant
1031Morrow RutaSpain2025-08-30Rangoni Of Florence NEGOTIATION76Ioni Bowcher
1032Francesco ShinkoArgentina2025-09-17Printing Dimensions QUALIFIED20Onyama Limba
1033Salvatore StockhamUnited Kingdom2025-08-28Chanay, Jeffrey A Esq NEGOTIATION16Anna Fali
1034Claire TollnerBrazil2025-08-27Buckley Miller Wright UNQUALIFIED62Ivan Magalhaes
1035Tony FollerAustralia2025-09-22Benton, John B Jr NEW54Elwin Sharvill
1036Maisha RulapaughUnited Kingdom2025-09-05Truhlar And Truhlar Attys RENEWAL78Ivan Magalhaes
1037Adams MorascaCanada2025-09-24King, Christopher A Esq PROPOSAL6Ioni Bowcher
1038Mujtaba NickaIndia2025-09-05Dorl, James J Esq UNQUALIFIED84Stephen Shaw
1039Claire TollnerFrance2025-09-20Rousseaux, Michael Esq NEGOTIATION83Xuxue Feng
1040Isabel BowleyCanada2025-09-08Feiner Bros NEGOTIATION22Stephen Shaw
1041Chavez BriddickGermany2025-09-17King, Christopher A Esq NEW65Onyama Limba
1042Clifford RimCanada2025-09-16Chapman, Ross E Esq NEW68Amy Elsner
1043Sinclair WaycottIndia2025-09-19Truhlar And Truhlar Attys NEW0Asiya Javayant
1044David DarakjyBrazil2025-09-06Chemel, James L Cpa PROPOSAL34Ioni Bowcher
1045Stacey MacleadIndia2025-08-31Rousseaux, Michael Esq NEGOTIATION76Onyama Limba
1046Johnson SergiUnited Kingdom2025-09-15Commercial Press NEW3Xuxue Feng
1047Munro FerenczJapan2025-08-27King, Christopher A Esq NEW72Asiya Javayant
1048Munro FerenczFrance2025-09-03Rangoni Of Florence QUALIFIED94Stephen Shaw
1049Faith GillianSpain2025-09-16Morlong Associates NEGOTIATION57Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletRussiaAmy Elsner PROPOSAL
Isabel BowleyAustraliaIvan Magalhaes NEW
Chavez BriddickBrazilAsiya Javayant UNQUALIFIED
Faith GillianJapanAmy Elsner QUALIFIED
Aika InouyeFranceOnyama Limba NEGOTIATION
Julie StensethItalyIvan Magalhaes PROPOSAL
Mujtaba NickaRussiaElwin Sharvill UNQUALIFIED
Misaki RoysterJapanXuxue Feng UNQUALIFIED
Jennifer AmigonBrazilBernardo Dominic RENEWAL
Leon OldroydBrazilStephen Shaw RENEWAL
Kadeem FlosiIndiaAnna Fali RENEWAL
Ivar PaprockiUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois VenereIndiaIvan Magalhaes QUALIFIED
Kadeem FlosiSpainAnna Fali NEW
Nicolas IturbideGermanyOnyama Limba RENEWAL
Chavez BriddickArgentinaIvan Magalhaes NEW
Aditya KuskoJapanIoni Bowcher QUALIFIED
Salvatore StockhamBrazilOnyama Limba NEW
Faith GillianItalyIoni Bowcher RENEWAL
Mujtaba NickaSpainIvan Magalhaes RENEWAL
Costa DilliardItalyIoni Bowcher UNQUALIFIED
Aika InouyeItalyAnna Fali PROPOSAL
Ashley DoeSpainIvan Magalhaes PROPOSAL
Chavez BriddickCanadaIoni Bowcher UNQUALIFIED
Jones VocelkaRussiaXuxue Feng NEGOTIATION
Nicolas IturbideJapanAnna Fali NEGOTIATION
James ButtAustraliaStephen Shaw NEGOTIATION
Chavez BriddickUnited KingdomAmy Elsner QUALIFIED
Cody SaylorsIndiaStephen Shaw NEW
Faith GillianSpainXuxue Feng QUALIFIED
Kadeem FlosiJapanXuxue Feng PROPOSAL
Sinclair WaycottAustraliaXuxue Feng QUALIFIED
Leja CaldareraItalyAnna Fali RENEWAL
Julie StensethBrazilXuxue Feng RENEWAL
Silvio SlusarskiGermanyIvan Magalhaes RENEWAL
Julie StensethJapanXuxue Feng UNQUALIFIED
Jones VocelkaJapanAmy Elsner RENEWAL
Aika InouyeGermanyAmy Elsner QUALIFIED
Greenwood BologniaCanadaElwin Sharvill RENEWAL
Stacey MacleadRussiaAnna Fali UNQUALIFIED
Munro FerenczItalyElwin Sharvill NEGOTIATION
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Munro FerenczAustraliaIoni Bowcher RENEWAL
Isabel BowleyJapanAmy Elsner RENEWAL
Adams MorascaFranceElwin Sharvill NEGOTIATION
Claire TollnerArgentinaIvan Magalhaes RENEWAL
Leon OldroydUnited KingdomIoni Bowcher RENEWAL
Aditya KuskoAustraliaAnna Fali PROPOSAL
Darci PoquetteItalyIvan Magalhaes QUALIFIED
Mayumi KolmetzIndiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Silvio Slusarski
Julie Stenseth
Tony Foller
Ivar Paprocki
Morrow Ruta
Smith Glick
Alejandro Perin
Julie Stenseth
Jeanfrancois Venere
Chavez Briddick
Murillo Malet
Izzy Garufi
Johnson Sergi
Aika Inouye
Deepesh Chui
Juan Wieser
Kadeem Flosi
Cody Saylors
Silvio Slusarski
Ivar Paprocki
Darci Poquette
Aika Inouye
Jennifer Amigon
Silvio Slusarski
Tony Foller
James Butt
Emily Whobrey
Alejandro Perin
Adams Morasca
Jefferson Schemmer
David Darakjy
Aika Inouye
David Darakjy
Ivar Paprocki
Munro Ferencz
Greenwood Bolognia
Aruna Figeroa
Aruna Figeroa
Octavia Malet
Leja Caldarera
Smith Glick
Aditya Kusko
Cody Saylors
Greenwood Bolognia
Mujtaba Nicka
Aruna Figeroa
Maisha Rulapaugh
Clifford Rim
Salvatore Stockham
Ashley Doe
IdCountryDate
1000Argentina2025-09-12
1001Australia2025-08-26
1002India2025-09-19
1003United Kingdom2025-09-05
1004Germany2025-09-04
1005India2025-09-16
1006Argentina2025-09-20
1007Argentina2025-09-18
1008United Kingdom2025-09-13
1009Canada2025-09-02
1010Japan2025-09-04
1011Germany2025-09-11
1012India2025-08-31
1013Italy2025-09-11
1014Argentina2025-09-07
1015Argentina2025-09-01
1016Canada2025-09-22
1017Japan2025-08-27
1018Japan2025-09-21
1019India2025-09-24
1020Canada2025-09-06
1021Germany2025-08-30
1022Japan2025-08-26
1023Japan2025-09-17
1024Australia2025-09-14
1025Germany2025-09-09
1026Germany2025-09-01
1027India2025-09-24
1028France2025-09-23
1029Germany2025-09-23
1030United Kingdom2025-08-26
1031Japan2025-08-26
1032Brazil2025-09-10
1033Japan2025-09-07
1034Germany2025-09-15
1035Argentina2025-09-21
1036Argentina2025-09-23
1037Australia2025-09-20
1038Brazil2025-08-29
1039Japan2025-08-31
1040India2025-09-14
1041France2025-09-03
1042Brazil2025-09-17
1043Germany2025-09-14
1044Canada2025-09-01
1045Brazil2025-09-19
1046Russia2025-08-27
1047Germany2025-09-19
1048Canada2025-09-05
1049Germany2025-09-22

On-Demand Data

NameIdCountryDate
Murillo Malet1000Canada2025-09-06
Mujtaba Nicka1001Brazil2025-09-23
Rodrigues Campain1002Spain2025-09-09
Faith Gillian1003Germany2025-09-21
Alejandro Perin1004United Kingdom2025-09-15
Deepesh Chui1005Russia2025-09-22
Claire Tollner1006Japan2025-09-22
Jefferson Schemmer1007Brazil2025-09-13
Jeanfrancois Venere1008Germany2025-09-17
Mayumi Kolmetz1009Japan2025-09-08
Aika Inouye1010Germany2025-09-13
Salvatore Stockham1011Germany2025-09-01
Jennifer Amigon1012Japan2025-09-24
Misaki Royster1013Japan2025-08-26
James Butt1014Russia2025-09-14
Tony Foller1015Italy2025-09-15
Emily Whobrey1016Canada2025-09-10
Emily Whobrey1017India2025-09-22
David Darakjy1018Australia2025-09-18
Arvin Albares1019Italy2025-09-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoJapanBernardo Dominic QUALIFIED
Octavia MaletSpainXuxue Feng UNQUALIFIED
Darci PoquetteIndiaAmy Elsner NEGOTIATION
Francesco ShinkoIndiaBernardo Dominic NEGOTIATION
Deepesh ChuiUnited KingdomOnyama Limba UNQUALIFIED
Isabel BowleyFranceAnna Fali RENEWAL
Silvio SlusarskiRussiaOnyama Limba NEGOTIATION
Aika InouyeJapanBernardo Dominic QUALIFIED
Tony FollerFranceIoni Bowcher PROPOSAL
Tony FollerBrazilAmy Elsner NEW
Darci PoquetteJapanIvan Magalhaes QUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng NEGOTIATION
Wickens NestleAustraliaAsiya Javayant NEW
Smith GlickRussiaAmy Elsner RENEWAL
Isabel BowleyCanadaElwin Sharvill NEW
Juan WieserCanadaBernardo Dominic QUALIFIED
Kadeem FlosiCanadaBernardo Dominic NEGOTIATION
Octavia MaletItalyBernardo Dominic PROPOSAL
Greenwood BologniaSpainXuxue Feng QUALIFIED
Munro FerenczItalyIoni Bowcher PROPOSAL
Octavia MaletJapanAmy Elsner QUALIFIED
Silvio SlusarskiBrazilIvan Magalhaes NEGOTIATION
Julie StensethSpainAmy Elsner PROPOSAL
Tony FollerCanadaStephen Shaw RENEWAL
Salvatore StockhamRussiaBernardo Dominic QUALIFIED
Smith GlickItalyOnyama Limba UNQUALIFIED
Johnson SergiSpainStephen Shaw UNQUALIFIED
Greenwood BologniaUnited KingdomAmy Elsner QUALIFIED
Juan WieserCanadaBernardo Dominic RENEWAL
Jones VocelkaUnited KingdomXuxue Feng QUALIFIED
Chavez BriddickRussiaAsiya Javayant RENEWAL
James ButtIndiaAsiya Javayant QUALIFIED
Maria MarrierFranceIoni Bowcher NEW
Jones VocelkaAustraliaStephen Shaw QUALIFIED
Emily WhobreyIndiaOnyama Limba PROPOSAL
Ricardo GauchoGermanyAmy Elsner NEW
Greenwood BologniaSpainAmy Elsner QUALIFIED
Ivar PaprockiAustraliaElwin Sharvill QUALIFIED
Jefferson SchemmerFranceOnyama Limba RENEWAL
Emily WhobreyIndiaOnyama Limba PROPOSAL

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