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
Wickens NestleItalyIvan Magalhaes NEW
Antonio CaudyAustraliaIvan Magalhaes QUALIFIED
Francesco ShinkoUnited KingdomStephen Shaw QUALIFIED
Francesco ShinkoIndiaXuxue Feng PROPOSAL
Emily WhobreyArgentinaXuxue Feng NEGOTIATION
Octavia MaletFranceAnna Fali NEW
Silvio SlusarskiRussiaOnyama Limba NEGOTIATION
Smith GlickBrazilAsiya Javayant QUALIFIED
Jefferson SchemmerCanadaIoni Bowcher PROPOSAL
Greenwood BologniaBrazilStephen Shaw UNQUALIFIED
Leon OldroydBrazilElwin Sharvill NEGOTIATION
Octavia MaletUnited KingdomAsiya Javayant PROPOSAL
Wickens NestleBrazilAnna Fali QUALIFIED
Mayumi KolmetzFranceBernardo Dominic NEW
Ricardo GauchoRussiaAsiya Javayant QUALIFIED
Costa DilliardRussiaAnna Fali NEW
Jennifer AmigonItalyAsiya Javayant NEGOTIATION
Stacey MacleadArgentinaElwin Sharvill RENEWAL
Jones VocelkaAustraliaAsiya Javayant NEW
Jeanfrancois VenereAustraliaBernardo Dominic UNQUALIFIED
Tony FollerItalyAnna Fali QUALIFIED
Faith GillianSpainStephen Shaw UNQUALIFIED
Murillo MaletJapanIvan Magalhaes PROPOSAL
Jennifer AmigonRussiaAmy Elsner RENEWAL
Cody SaylorsCanadaStephen Shaw UNQUALIFIED
Claire TollnerAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois VenereArgentinaXuxue Feng NEGOTIATION
Darci PoquetteRussiaXuxue Feng NEW
Octavia MaletUnited KingdomAnna Fali RENEWAL
Jeanfrancois VenereJapanAsiya Javayant PROPOSAL
Silvio SlusarskiCanadaAmy Elsner UNQUALIFIED
Deepesh ChuiFranceBernardo Dominic NEW
Cody SaylorsBrazilElwin Sharvill UNQUALIFIED
Costa DilliardGermanyXuxue Feng UNQUALIFIED
Izzy GarufiFranceXuxue Feng UNQUALIFIED
Claire TollnerFranceAnna Fali NEGOTIATION
Munro FerenczJapanBernardo Dominic UNQUALIFIED
Darci PoquetteArgentinaAmy Elsner UNQUALIFIED
Jennifer AmigonFranceElwin Sharvill QUALIFIED
Maisha RulapaughRussiaOnyama Limba NEGOTIATION
Cody SaylorsAustraliaOnyama Limba NEW
Johnson SergiRussiaBernardo Dominic NEGOTIATION
Costa DilliardFranceAnna Fali NEGOTIATION
Adams MorascaGermanyIoni Bowcher QUALIFIED
James ButtGermanyXuxue Feng NEGOTIATION
Tony FollerUnited KingdomAsiya Javayant UNQUALIFIED
Chavez BriddickRussiaBernardo Dominic QUALIFIED
Isabel BowleyFranceOnyama Limba QUALIFIED
Darci PoquetteGermanyBernardo Dominic PROPOSAL
Kaitlin OstroskyIndiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaAustraliaBernardo Dominic RENEWAL
Antonio CaudyArgentinaAsiya Javayant NEW
Mayumi KolmetzItalyElwin Sharvill UNQUALIFIED
Costa DilliardArgentinaIvan Magalhaes QUALIFIED
Aruna FigeroaBrazilAmy Elsner UNQUALIFIED
Izzy GarufiCanadaAmy Elsner RENEWAL
Munro FerenczJapanAmy Elsner NEGOTIATION
Aika InouyeRussiaXuxue Feng NEGOTIATION
Clifford RimItalyAsiya Javayant NEGOTIATION
Morrow RutaAustraliaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickUnited Kingdom2025-10-09Benton, John B Jr UNQUALIFIED2Ioni Bowcher
1001Chavez BriddickGermany2025-09-30Chemel, James L Cpa PROPOSAL17Ioni Bowcher
1002James ButtRussia2025-10-01King, Christopher A Esq NEW47Anna Fali
1003Deepesh ChuiGermany2025-10-03Commercial Press NEW76Onyama Limba
1004Tony FollerItaly2025-10-04Dorl, James J Esq NEW69Bernardo Dominic
1005Octavia MaletCanada2025-10-03King, Christopher A Esq QUALIFIED3Ioni Bowcher
1006Alejandro PerinAustralia2025-10-13Commercial Press RENEWAL49Onyama Limba
1007James ButtCanada2025-09-25King, Christopher A Esq QUALIFIED28Onyama Limba
1008Arvin AlbaresBrazil2025-09-25Feiner Bros NEW20Anna Fali
1009Isabel BowleyUnited Kingdom2025-10-15Dorl, James J Esq PROPOSAL6Xuxue Feng
1010Ricardo GauchoAustralia2025-10-18King, Christopher A Esq QUALIFIED21Asiya Javayant
1011Aika InouyeUnited Kingdom2025-09-22Feiner Bros NEW40Amy Elsner
1012Aruna FigeroaIndia2025-09-23Feiner Bros RENEWAL69Onyama Limba
1013Ivar PaprockiItaly2025-10-15Dorl, James J Esq PROPOSAL54Bernardo Dominic
1014Sinclair WaycottItaly2025-10-15Feiner Bros QUALIFIED98Ioni Bowcher
1015Salvatore StockhamSpain2025-10-17Dorl, James J Esq UNQUALIFIED0Elwin Sharvill
1016Murillo MaletUnited Kingdom2025-09-23Feltz Printing Service RENEWAL13Asiya Javayant
1017David DarakjyArgentina2025-09-22Printing Dimensions NEW33Amy Elsner
1018David DarakjyIndia2025-10-13Chapman, Ross E Esq PROPOSAL21Ioni Bowcher
1019Jefferson SchemmerBrazil2025-10-08Truhlar And Truhlar Attys NEGOTIATION44Bernardo Dominic
1020Leja CaldareraFrance2025-10-09Feiner Bros RENEWAL7Stephen Shaw
1021Leon OldroydAustralia2025-09-30Feiner Bros PROPOSAL83Ioni Bowcher
1022Clifford RimAustralia2025-10-17Rousseaux, Michael Esq PROPOSAL77Onyama Limba
1023Kaitlin OstroskyAustralia2025-10-19Morlong Associates UNQUALIFIED81Onyama Limba
1024Murillo MaletSpain2025-09-25Morlong Associates RENEWAL70Ioni Bowcher
1025Chavez BriddickSpain2025-10-08Rousseaux, Michael Esq RENEWAL88Stephen Shaw
1026Rodrigues CampainArgentina2025-09-25Feiner Bros UNQUALIFIED33Bernardo Dominic
1027Izzy GarufiJapan2025-09-23Truhlar And Truhlar Attys NEGOTIATION71Ioni Bowcher
1028Murillo MaletGermany2025-10-15Rangoni Of Florence NEW33Xuxue Feng
1029Misaki RoysterSpain2025-10-14Rousseaux, Michael Esq NEW89Ioni Bowcher
1030Alejandro PerinFrance2025-10-18Rangoni Of Florence UNQUALIFIED23Elwin Sharvill
1031Silvio SlusarskiAustralia2025-10-04King, Christopher A Esq RENEWAL94Anna Fali
1032Nicolas IturbideFrance2025-09-26Dorl, James J Esq UNQUALIFIED49Bernardo Dominic
1033Antonio CaudyArgentina2025-10-17Feltz Printing Service RENEWAL12Anna Fali
1034Isabel BowleyIndia2025-10-01King, Christopher A Esq NEGOTIATION66Elwin Sharvill
1035Jennifer AmigonAustralia2025-09-21Printing Dimensions PROPOSAL97Anna Fali
1036Ashley DoeJapan2025-10-15Feltz Printing Service QUALIFIED56Elwin Sharvill
1037Greenwood BologniaGermany2025-09-27Feltz Printing Service PROPOSAL84Amy Elsner
1038Sinclair WaycottJapan2025-10-14King, Christopher A Esq NEGOTIATION53Asiya Javayant
1039Darci PoquetteGermany2025-09-21Printing Dimensions NEGOTIATION77Bernardo Dominic
1040Salvatore StockhamBrazil2025-09-29Chemel, James L Cpa NEGOTIATION73Ioni Bowcher
1041Izzy GarufiUnited Kingdom2025-10-06Feiner Bros NEGOTIATION3Ioni Bowcher
1042Wickens NestleBrazil2025-09-25Morlong Associates NEGOTIATION52Asiya Javayant
1043Costa DilliardFrance2025-10-01Printing Dimensions QUALIFIED61Anna Fali
1044Morrow RutaFrance2025-09-27Chanay, Jeffrey A Esq RENEWAL31Stephen Shaw
1045Sinclair WaycottSpain2025-09-30Feiner Bros UNQUALIFIED18Onyama Limba
1046Antonio CaudyJapan2025-09-27Printing Dimensions RENEWAL62Anna Fali
1047Emily WhobreyJapan2025-10-11King, Christopher A Esq UNQUALIFIED56Xuxue Feng
1048Julie StensethSpain2025-10-15Chemel, James L Cpa PROPOSAL65Anna Fali
1049Tony FollerFrance2025-09-26Printing Dimensions NEGOTIATION62Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinRussiaStephen Shaw NEGOTIATION
Ricardo GauchoAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainJapanAnna Fali PROPOSAL
Antonio CaudyJapanOnyama Limba RENEWAL
Emily WhobreyJapanAsiya Javayant PROPOSAL
Alejandro PerinRussiaAsiya Javayant RENEWAL
Ashley DoeGermanyOnyama Limba QUALIFIED
Francesco ShinkoRussiaElwin Sharvill NEGOTIATION
Faith GillianSpainXuxue Feng RENEWAL
David DarakjyArgentinaIoni Bowcher QUALIFIED
Munro FerenczItalyStephen Shaw PROPOSAL
Kadeem FlosiRussiaOnyama Limba QUALIFIED
Cody SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Cody SaylorsBrazilOnyama Limba NEW
Maria MarrierCanadaBernardo Dominic PROPOSAL
Misaki RoysterSpainAmy Elsner UNQUALIFIED
Isabel BowleySpainAmy Elsner NEGOTIATION
Octavia MaletJapanAsiya Javayant RENEWAL
Smith GlickFranceAmy Elsner NEGOTIATION
Juan WieserGermanyBernardo Dominic PROPOSAL
Morrow RutaIndiaBernardo Dominic UNQUALIFIED
Clifford RimCanadaIoni Bowcher PROPOSAL
Isabel BowleyAustraliaElwin Sharvill UNQUALIFIED
Silvio SlusarskiItalyAnna Fali NEW
Darci PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerBrazilAmy Elsner NEW
Kadeem FlosiSpainAmy Elsner RENEWAL
Octavia MaletUnited KingdomStephen Shaw NEW
Sinclair WaycottArgentinaStephen Shaw QUALIFIED
Salvatore StockhamRussiaElwin Sharvill NEGOTIATION
Smith GlickBrazilBernardo Dominic NEGOTIATION
Adams MorascaJapanAmy Elsner PROPOSAL
Costa DilliardItalyIoni Bowcher QUALIFIED
Greenwood BologniaItalyStephen Shaw PROPOSAL
Deepesh ChuiGermanyAmy Elsner QUALIFIED
Izzy GarufiItalyAmy Elsner PROPOSAL
Costa DilliardJapanXuxue Feng RENEWAL
Mujtaba NickaRussiaOnyama Limba PROPOSAL
Clifford RimJapanAmy Elsner PROPOSAL
Clifford RimFranceIoni Bowcher NEGOTIATION
Aika InouyeJapanStephen Shaw QUALIFIED
Emily WhobreySpainStephen Shaw NEW
Faith GillianSpainIoni Bowcher RENEWAL
Johnson SergiRussiaElwin Sharvill NEGOTIATION
Leja CaldareraAustraliaXuxue Feng RENEWAL
Jennifer AmigonFranceBernardo Dominic RENEWAL
Octavia MaletBrazilOnyama Limba PROPOSAL
Nicolas IturbideAustraliaOnyama Limba RENEWAL
Antonio CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Arvin AlbaresBrazilAmy Elsner NEGOTIATION
Frozen Columns
Name
Smith Glick
Kaitlin Ostrosky
Maisha Rulapaugh
Jennifer Amigon
Emily Whobrey
Aika Inouye
Wickens Nestle
Clifford Rim
Stacey Maclead
Chavez Briddick
Tony Foller
Francesco Shinko
Sinclair Waycott
Wickens Nestle
Izzy Garufi
Sinclair Waycott
Juan Wieser
Murillo Malet
Tony Foller
Aika Inouye
Clifford Rim
David Darakjy
Murillo Malet
Octavia Malet
Julie Stenseth
Kadeem Flosi
Francesco Shinko
Francesco Shinko
Johnson Sergi
Arvin Albares
Isabel Bowley
Cody Saylors
Jennifer Amigon
Antonio Caudy
Antonio Caudy
Juan Wieser
Ashley Doe
Sinclair Waycott
David Darakjy
Rodrigues Campain
Aruna Figeroa
Morrow Ruta
Jones Vocelka
Johnson Sergi
Jennifer Amigon
Aditya Kusko
Mayumi Kolmetz
Chavez Briddick
Jennifer Amigon
Jefferson Schemmer
IdCountryDate
1000Italy2025-09-20
1001United Kingdom2025-10-12
1002Germany2025-09-28
1003India2025-10-16
1004Italy2025-09-26
1005Italy2025-09-21
1006Australia2025-10-06
1007Spain2025-09-22
1008Japan2025-10-07
1009India2025-09-20
1010Argentina2025-09-29
1011France2025-10-12
1012United Kingdom2025-09-25
1013Germany2025-10-10
1014Argentina2025-09-24
1015Japan2025-09-30
1016Japan2025-09-23
1017Italy2025-10-13
1018Germany2025-10-18
1019Germany2025-10-07
1020Japan2025-10-10
1021India2025-09-27
1022Germany2025-10-12
1023France2025-10-19
1024Germany2025-10-10
1025India2025-09-27
1026France2025-10-15
1027India2025-10-03
1028Germany2025-10-09
1029France2025-09-30
1030Argentina2025-09-20
1031India2025-10-10
1032India2025-10-04
1033United Kingdom2025-10-17
1034United Kingdom2025-09-27
1035United Kingdom2025-10-19
1036Brazil2025-10-15
1037France2025-10-02
1038Russia2025-10-19
1039Canada2025-09-26
1040France2025-09-25
1041Japan2025-10-11
1042Australia2025-09-21
1043Italy2025-10-04
1044Italy2025-10-04
1045Russia2025-10-10
1046Brazil2025-10-03
1047Russia2025-09-26
1048Argentina2025-10-08
1049United Kingdom2025-09-21

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Brazil2025-09-23
Morrow Ruta1001India2025-09-23
Nicolas Iturbide1002Spain2025-09-21
Mujtaba Nicka1003Argentina2025-10-02
Salvatore Stockham1004Russia2025-10-03
Octavia Malet1005Spain2025-10-13
Smith Glick1006Japan2025-09-22
David Darakjy1007Germany2025-10-14
Nicolas Iturbide1008Australia2025-10-01
Juan Wieser1009Japan2025-09-20
Ricardo Gaucho1010United Kingdom2025-10-06
James Butt1011India2025-09-26
Ivar Paprocki1012Brazil2025-09-20
Nicolas Iturbide1013Australia2025-09-23
Emily Whobrey1014Canada2025-10-16
Morrow Ruta1015Germany2025-10-15
Munro Ferencz1016Germany2025-10-15
Francesco Shinko1017United Kingdom2025-10-19
Ricardo Gaucho1018Brazil2025-10-15
Silvio Slusarski1019Japan2025-10-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletCanadaElwin Sharvill QUALIFIED
Julie StensethGermanyAnna Fali PROPOSAL
Ricardo GauchoItalyIvan Magalhaes NEGOTIATION
Ivar PaprockiArgentinaElwin Sharvill NEW
Adams MorascaSpainIoni Bowcher RENEWAL
Clifford RimArgentinaOnyama Limba QUALIFIED
Silvio SlusarskiArgentinaAnna Fali NEW
Murillo MaletSpainIoni Bowcher QUALIFIED
Ricardo GauchoCanadaIvan Magalhaes NEGOTIATION
Leon OldroydSpainStephen Shaw QUALIFIED
Clifford RimAustraliaXuxue Feng NEGOTIATION
Leja CaldareraBrazilAnna Fali RENEWAL
Faith GillianIndiaAmy Elsner NEGOTIATION
James ButtCanadaIvan Magalhaes RENEWAL
Arvin AlbaresRussiaBernardo Dominic NEW
Alejandro PerinRussiaXuxue Feng RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant NEW
Claire TollnerRussiaAnna Fali PROPOSAL
Aditya KuskoArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyFranceOnyama Limba PROPOSAL
Murillo MaletUnited KingdomBernardo Dominic UNQUALIFIED
Adams MorascaArgentinaStephen Shaw QUALIFIED
Antonio CaudyBrazilOnyama Limba RENEWAL
Claire TollnerSpainAmy Elsner PROPOSAL
Misaki RoysterAustraliaElwin Sharvill NEGOTIATION
Arvin AlbaresBrazilOnyama Limba UNQUALIFIED
Juan WieserCanadaAsiya Javayant RENEWAL
Wickens NestleSpainIoni Bowcher RENEWAL
Emily WhobreyFranceXuxue Feng PROPOSAL
Jennifer AmigonRussiaIvan Magalhaes NEGOTIATION
Greenwood BologniaJapanAsiya Javayant NEW
David DarakjyBrazilIvan Magalhaes QUALIFIED
Maisha RulapaughArgentinaBernardo Dominic NEGOTIATION
Ashley DoeIndiaElwin Sharvill UNQUALIFIED
Juan WieserFranceAnna Fali RENEWAL
Aruna FigeroaJapanStephen Shaw UNQUALIFIED
Clifford RimAustraliaIoni Bowcher NEW
Isabel BowleyRussiaIvan Magalhaes PROPOSAL
Antonio CaudyItalyAmy Elsner QUALIFIED
Silvio SlusarskiJapanAmy Elsner 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>