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
Aika InouyeArgentinaAmy Elsner NEGOTIATION
Clifford RimRussiaXuxue Feng UNQUALIFIED
James ButtAustraliaOnyama Limba PROPOSAL
Munro FerenczIndiaIvan Magalhaes NEW
David DarakjyJapanIoni Bowcher NEGOTIATION
Tony FollerUnited KingdomIoni Bowcher UNQUALIFIED
Maria MarrierJapanElwin Sharvill NEW
Rodrigues CampainUnited KingdomIvan Magalhaes NEW
Adams MorascaArgentinaAmy Elsner NEW
Maisha RulapaughSpainStephen Shaw NEW
Nicolas IturbideSpainOnyama Limba UNQUALIFIED
David DarakjyBrazilAnna Fali RENEWAL
James ButtArgentinaBernardo Dominic QUALIFIED
Mayumi KolmetzCanadaOnyama Limba PROPOSAL
Ashley DoeFranceElwin Sharvill NEW
Sinclair WaycottJapanOnyama Limba QUALIFIED
Munro FerenczIndiaOnyama Limba NEW
Mujtaba NickaItalyAsiya Javayant QUALIFIED
Alejandro PerinArgentinaOnyama Limba RENEWAL
Jefferson SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Aditya KuskoArgentinaAnna Fali RENEWAL
Jefferson SchemmerAustraliaAnna Fali NEGOTIATION
Isabel BowleyRussiaElwin Sharvill PROPOSAL
Smith GlickRussiaIvan Magalhaes NEGOTIATION
Francesco ShinkoCanadaAnna Fali QUALIFIED
Greenwood BologniaIndiaIoni Bowcher RENEWAL
Aditya KuskoJapanOnyama Limba RENEWAL
Rodrigues CampainSpainBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaAsiya Javayant UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes NEW
Nicolas IturbideGermanyOnyama Limba NEGOTIATION
Morrow RutaBrazilOnyama Limba NEW
Clifford RimIndiaAmy Elsner PROPOSAL
Claire TollnerUnited KingdomAmy Elsner UNQUALIFIED
Murillo MaletBrazilOnyama Limba RENEWAL
Emily WhobreyJapanBernardo Dominic RENEWAL
Jones VocelkaSpainIoni Bowcher RENEWAL
Munro FerenczGermanyAsiya Javayant NEGOTIATION
Ivar PaprockiIndiaXuxue Feng UNQUALIFIED
Arvin AlbaresUnited KingdomBernardo Dominic PROPOSAL
Wickens NestleRussiaAsiya Javayant QUALIFIED
Wickens NestleJapanIoni Bowcher QUALIFIED
Ivar PaprockiJapanAsiya Javayant UNQUALIFIED
Antonio CaudyAustraliaElwin Sharvill NEGOTIATION
Jennifer AmigonCanadaIvan Magalhaes NEGOTIATION
Cody SaylorsBrazilOnyama Limba RENEWAL
Salvatore StockhamCanadaAmy Elsner NEW
Ashley DoeUnited KingdomOnyama Limba UNQUALIFIED
Julie StensethFranceIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Smith GlickIndiaAsiya Javayant NEGOTIATION
Rodrigues CampainIndiaOnyama Limba QUALIFIED
Maisha RulapaughItalyIvan Magalhaes UNQUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes PROPOSAL
Deepesh ChuiUnited KingdomBernardo Dominic RENEWAL
Silvio SlusarskiGermanyIvan Magalhaes QUALIFIED
Leja CaldareraUnited KingdomElwin Sharvill QUALIFIED
Aditya KuskoRussiaIoni Bowcher QUALIFIED
Darci PoquetteArgentinaOnyama Limba UNQUALIFIED
Ricardo GauchoAustraliaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletIndia2026-05-14Morlong Associates NEGOTIATION50Anna Fali
1001Arvin AlbaresCanada2026-05-12Chanay, Jeffrey A Esq UNQUALIFIED32Asiya Javayant
1002Sinclair WaycottSpain2026-05-17Dorl, James J Esq NEW94Stephen Shaw
1003Chavez BriddickArgentina2026-05-14Rousseaux, Michael Esq QUALIFIED27Ivan Magalhaes
1004Kaitlin OstroskyJapan2026-05-10Dorl, James J Esq UNQUALIFIED16Amy Elsner
1005Juan WieserBrazil2026-05-08Feiner Bros NEW36Stephen Shaw
1006Murillo MaletItaly2026-04-27Chanay, Jeffrey A Esq QUALIFIED62Anna Fali
1007Maria MarrierSpain2026-04-26Commercial Press NEGOTIATION35Elwin Sharvill
1008Aditya KuskoAustralia2026-05-04Chapman, Ross E Esq NEW96Ivan Magalhaes
1009Isabel BowleyUnited Kingdom2026-04-25Benton, John B Jr UNQUALIFIED23Amy Elsner
1010Deepesh ChuiCanada2026-05-09Printing Dimensions NEGOTIATION61Ioni Bowcher
1011Juan WieserItaly2026-04-28Buckley Miller Wright QUALIFIED56Bernardo Dominic
1012Darci PoquetteBrazil2026-05-20Benton, John B Jr UNQUALIFIED71Amy Elsner
1013David DarakjyUnited Kingdom2026-05-04Truhlar And Truhlar Attys RENEWAL98Amy Elsner
1014Francesco ShinkoRussia2026-05-06Chapman, Ross E Esq QUALIFIED69Anna Fali
1015Stacey MacleadIndia2026-04-24Dorl, James J Esq PROPOSAL71Stephen Shaw
1016David DarakjyJapan2026-05-04Buckley Miller Wright RENEWAL8Stephen Shaw
1017Julie StensethGermany2026-05-16Printing Dimensions RENEWAL23Bernardo Dominic
1018Cody SaylorsJapan2026-05-01Morlong Associates NEGOTIATION94Ioni Bowcher
1019Salvatore StockhamArgentina2026-05-01Dorl, James J Esq RENEWAL48Elwin Sharvill
1020Sinclair WaycottJapan2026-05-19Feltz Printing Service NEGOTIATION0Bernardo Dominic
1021Smith GlickBrazil2026-04-29Chanay, Jeffrey A Esq PROPOSAL66Stephen Shaw
1022David DarakjyIndia2026-05-20Morlong Associates NEW94Amy Elsner
1023Salvatore StockhamSpain2026-04-30Commercial Press RENEWAL25Elwin Sharvill
1024Wickens NestleArgentina2026-05-10Benton, John B Jr NEGOTIATION65Ioni Bowcher
1025Chavez BriddickGermany2026-05-04Commercial Press NEGOTIATION79Amy Elsner
1026Aruna FigeroaItaly2026-05-23Morlong Associates PROPOSAL29Anna Fali
1027Silvio SlusarskiGermany2026-05-04Morlong Associates QUALIFIED8Bernardo Dominic
1028David DarakjyIndia2026-05-07Feltz Printing Service UNQUALIFIED68Stephen Shaw
1029Juan WieserBrazil2026-05-17Truhlar And Truhlar Attys NEW8Amy Elsner
1030Claire TollnerRussia2026-05-16Feltz Printing Service NEW37Xuxue Feng
1031Chavez BriddickCanada2026-05-16Rangoni Of Florence NEW57Ioni Bowcher
1032James ButtIndia2026-05-13Benton, John B Jr UNQUALIFIED40Asiya Javayant
1033Isabel BowleyAustralia2026-05-19Dorl, James J Esq QUALIFIED23Amy Elsner
1034Kadeem FlosiIndia2026-05-12Commercial Press RENEWAL83Ioni Bowcher
1035Ivar PaprockiUnited Kingdom2026-05-04King, Christopher A Esq NEGOTIATION9Asiya Javayant
1036Ashley DoeItaly2026-04-25Feltz Printing Service UNQUALIFIED53Anna Fali
1037James ButtAustralia2026-05-10Feltz Printing Service QUALIFIED17Bernardo Dominic
1038Ivar PaprockiSpain2026-04-24Rangoni Of Florence QUALIFIED24Xuxue Feng
1039Antonio CaudyFrance2026-05-03Commercial Press RENEWAL22Ivan Magalhaes
1040Julie StensethBrazil2026-05-10Rangoni Of Florence PROPOSAL54Amy Elsner
1041Claire TollnerArgentina2026-05-11Feiner Bros QUALIFIED76Ivan Magalhaes
1042Leon OldroydArgentina2026-04-30Morlong Associates UNQUALIFIED48Bernardo Dominic
1043Ivar PaprockiRussia2026-05-02Chapman, Ross E Esq QUALIFIED1Onyama Limba
1044Chavez BriddickIndia2026-05-23Feltz Printing Service UNQUALIFIED42Amy Elsner
1045Arvin AlbaresRussia2026-04-27Morlong Associates UNQUALIFIED39Ivan Magalhaes
1046Jefferson SchemmerSpain2026-05-22Chanay, Jeffrey A Esq NEW68Amy Elsner
1047Clifford RimFrance2026-04-30Benton, John B Jr NEGOTIATION35Anna Fali
1048Jefferson SchemmerFrance2026-05-20Printing Dimensions QUALIFIED29Ivan Magalhaes
1049Kadeem FlosiIndia2026-05-01Morlong Associates QUALIFIED1Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyRussiaAnna Fali NEGOTIATION
Arvin AlbaresFranceBernardo Dominic NEW
Antonio CaudyArgentinaXuxue Feng UNQUALIFIED
James ButtJapanBernardo Dominic QUALIFIED
Deepesh ChuiRussiaElwin Sharvill UNQUALIFIED
Stacey MacleadItalyAnna Fali QUALIFIED
Kaitlin OstroskyBrazilIvan Magalhaes QUALIFIED
Octavia MaletSpainElwin Sharvill RENEWAL
Juan WieserRussiaIvan Magalhaes UNQUALIFIED
Murillo MaletRussiaBernardo Dominic NEGOTIATION
Stacey MacleadItalyIvan Magalhaes NEW
Misaki RoysterFranceIvan Magalhaes NEGOTIATION
Murillo MaletSpainAnna Fali PROPOSAL
Smith GlickJapanAsiya Javayant NEW
Sinclair WaycottGermanyXuxue Feng NEW
Octavia MaletItalyIvan Magalhaes QUALIFIED
Rodrigues CampainCanadaIoni Bowcher NEW
Claire TollnerItalyAsiya Javayant UNQUALIFIED
Aika InouyeRussiaAnna Fali UNQUALIFIED
Costa DilliardItalyOnyama Limba NEW
Francesco ShinkoJapanOnyama Limba NEGOTIATION
Greenwood BologniaCanadaElwin Sharvill NEW
Ashley DoeIndiaBernardo Dominic QUALIFIED
Antonio CaudyFranceBernardo Dominic QUALIFIED
Kaitlin OstroskyAustraliaStephen Shaw NEGOTIATION
Stacey MacleadAustraliaAsiya Javayant NEGOTIATION
Aruna FigeroaFranceIvan Magalhaes QUALIFIED
Rodrigues CampainUnited KingdomElwin Sharvill UNQUALIFIED
Kadeem FlosiIndiaBernardo Dominic NEW
Leja CaldareraBrazilAsiya Javayant QUALIFIED
Julie StensethGermanyElwin Sharvill PROPOSAL
Ricardo GauchoSpainAsiya Javayant NEGOTIATION
Julie StensethArgentinaBernardo Dominic NEGOTIATION
Darci PoquetteItalyElwin Sharvill NEW
Rodrigues CampainJapanAsiya Javayant NEW
Ricardo GauchoItalyOnyama Limba UNQUALIFIED
Claire TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore StockhamSpainStephen Shaw QUALIFIED
Rodrigues CampainCanadaAsiya Javayant NEW
Sinclair WaycottBrazilElwin Sharvill QUALIFIED
Francesco ShinkoArgentinaIoni Bowcher UNQUALIFIED
Rodrigues CampainItalyStephen Shaw UNQUALIFIED
Johnson SergiArgentinaIvan Magalhaes UNQUALIFIED
Emily WhobreySpainElwin Sharvill PROPOSAL
Mujtaba NickaCanadaAmy Elsner UNQUALIFIED
Ivar PaprockiGermanyElwin Sharvill NEGOTIATION
Greenwood BologniaJapanStephen Shaw PROPOSAL
Francesco ShinkoBrazilXuxue Feng RENEWAL
Johnson SergiAustraliaIvan Magalhaes UNQUALIFIED
Francesco ShinkoIndiaElwin Sharvill RENEWAL
Frozen Columns
Name
Faith Gillian
Morrow Ruta
Tony Foller
Leon Oldroyd
Mayumi Kolmetz
Nicolas Iturbide
Aruna Figeroa
Rodrigues Campain
Morrow Ruta
Jennifer Amigon
Ashley Doe
David Darakjy
Cody Saylors
Jones Vocelka
Silvio Slusarski
Jefferson Schemmer
Aika Inouye
Arvin Albares
Aika Inouye
Francesco Shinko
Tony Foller
Nicolas Iturbide
Aika Inouye
Sinclair Waycott
Salvatore Stockham
Costa Dilliard
Darci Poquette
Salvatore Stockham
Aditya Kusko
Jones Vocelka
Smith Glick
Morrow Ruta
Kaitlin Ostrosky
Adams Morasca
Antonio Caudy
Sinclair Waycott
Ashley Doe
Jeanfrancois Venere
Aika Inouye
Izzy Garufi
Mujtaba Nicka
Jones Vocelka
Rodrigues Campain
Cody Saylors
Ashley Doe
Aika Inouye
Misaki Royster
Johnson Sergi
Clifford Rim
Ashley Doe
IdCountryDate
1000India2026-05-19
1001Argentina2026-05-12
1002Brazil2026-04-27
1003Canada2026-05-18
1004France2026-04-29
1005Germany2026-05-19
1006Brazil2026-05-20
1007France2026-05-04
1008Argentina2026-05-10
1009Canada2026-05-05
1010Australia2026-05-17
1011Italy2026-05-18
1012Australia2026-05-01
1013Italy2026-05-13
1014Brazil2026-04-24
1015Australia2026-05-12
1016Argentina2026-05-15
1017Brazil2026-04-30
1018Brazil2026-04-25
1019Russia2026-05-04
1020Germany2026-05-16
1021Argentina2026-04-30
1022India2026-04-30
1023Germany2026-05-08
1024Japan2026-05-22
1025Brazil2026-05-13
1026Spain2026-05-13
1027Italy2026-05-17
1028Japan2026-05-02
1029Germany2026-05-21
1030Italy2026-04-26
1031India2026-04-26
1032Brazil2026-05-09
1033Brazil2026-04-28
1034India2026-05-23
1035Germany2026-05-07
1036Australia2026-04-24
1037Canada2026-05-05
1038Italy2026-04-26
1039Russia2026-05-20
1040Australia2026-05-02
1041Japan2026-05-14
1042Italy2026-05-18
1043Japan2026-05-22
1044France2026-05-15
1045India2026-05-22
1046Spain2026-04-27
1047India2026-04-29
1048Brazil2026-05-17
1049Brazil2026-05-13

On-Demand Data

NameIdCountryDate
Ashley Doe1000India2026-04-29
David Darakjy1001France2026-05-05
Wickens Nestle1002Canada2026-05-19
Claire Tollner1003Italy2026-05-04
Claire Tollner1004Italy2026-05-23
James Butt1005Argentina2026-05-12
Kadeem Flosi1006Germany2026-05-12
David Darakjy1007Germany2026-04-30
Leon Oldroyd1008Argentina2026-05-19
Morrow Ruta1009India2026-05-23
Aika Inouye1010Germany2026-05-01
Misaki Royster1011Australia2026-05-13
Silvio Slusarski1012Italy2026-05-21
Sinclair Waycott1013Argentina2026-05-03
Morrow Ruta1014Spain2026-05-13
Julie Stenseth1015United Kingdom2026-05-11
Tony Foller1016Argentina2026-04-26
Kadeem Flosi1017Japan2026-04-30
Aika Inouye1018Canada2026-04-26
Darci Poquette1019Russia2026-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottFranceBernardo Dominic PROPOSAL
Aditya KuskoJapanOnyama Limba NEW
Maisha RulapaughIndiaElwin Sharvill RENEWAL
David DarakjyGermanyElwin Sharvill PROPOSAL
Mujtaba NickaArgentinaElwin Sharvill QUALIFIED
Darci PoquetteRussiaAmy Elsner QUALIFIED
Juan WieserJapanIoni Bowcher PROPOSAL
Ricardo GauchoFranceAmy Elsner NEW
Aruna FigeroaArgentinaAnna Fali UNQUALIFIED
Morrow RutaBrazilAsiya Javayant RENEWAL
Kadeem FlosiFranceAmy Elsner UNQUALIFIED
Aditya KuskoUnited KingdomAnna Fali NEGOTIATION
Chavez BriddickJapanElwin Sharvill UNQUALIFIED
Aruna FigeroaIndiaStephen Shaw NEW
Aika InouyeBrazilAmy Elsner UNQUALIFIED
Octavia MaletItalyAsiya Javayant QUALIFIED
Adams MorascaCanadaBernardo Dominic UNQUALIFIED
Jennifer AmigonAustraliaOnyama Limba RENEWAL
Wickens NestleCanadaStephen Shaw NEW
Misaki RoysterCanadaAnna Fali NEGOTIATION
Alejandro PerinArgentinaOnyama Limba NEW
Aruna FigeroaSpainOnyama Limba RENEWAL
Emily WhobreyUnited KingdomAnna Fali PROPOSAL
Antonio CaudyFranceXuxue Feng QUALIFIED
David DarakjyItalyAnna Fali NEGOTIATION
Ashley DoeCanadaIoni Bowcher RENEWAL
Chavez BriddickGermanyElwin Sharvill RENEWAL
David DarakjyItalyBernardo Dominic PROPOSAL
Aika InouyeIndiaStephen Shaw RENEWAL
Julie StensethJapanIvan Magalhaes PROPOSAL
Clifford RimRussiaStephen Shaw UNQUALIFIED
Alejandro PerinSpainStephen Shaw NEW
Greenwood BologniaIndiaBernardo Dominic RENEWAL
Leja CaldareraItalyAsiya Javayant QUALIFIED
Antonio CaudyRussiaAnna Fali NEW
Johnson SergiIndiaXuxue Feng PROPOSAL
Leon OldroydItalyStephen Shaw UNQUALIFIED
Francesco ShinkoCanadaStephen Shaw RENEWAL
Juan WieserCanadaOnyama Limba NEGOTIATION
David DarakjyFranceOnyama 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>