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
Nicolas IturbideJapanAnna Fali PROPOSAL
Izzy GarufiJapanOnyama Limba QUALIFIED
James ButtRussiaOnyama Limba QUALIFIED
Faith GillianFranceAmy Elsner UNQUALIFIED
Smith GlickRussiaAmy Elsner NEW
Darci PoquetteCanadaIoni Bowcher QUALIFIED
Stacey MacleadFranceIoni Bowcher NEW
Greenwood BologniaItalyStephen Shaw NEGOTIATION
Izzy GarufiJapanXuxue Feng RENEWAL
Wickens NestleFranceBernardo Dominic UNQUALIFIED
Cody SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer AmigonItalyIoni Bowcher RENEWAL
Aruna FigeroaItalyAmy Elsner PROPOSAL
Alejandro PerinIndiaAsiya Javayant QUALIFIED
Johnson SergiItalyElwin Sharvill NEW
Kaitlin OstroskyBrazilIvan Magalhaes NEGOTIATION
Morrow RutaFranceStephen Shaw RENEWAL
Adams MorascaArgentinaBernardo Dominic PROPOSAL
Stacey MacleadCanadaElwin Sharvill RENEWAL
Izzy GarufiBrazilOnyama Limba QUALIFIED
Faith GillianSpainElwin Sharvill NEGOTIATION
Mayumi KolmetzFranceElwin Sharvill RENEWAL
Greenwood BologniaItalyOnyama Limba QUALIFIED
Deepesh ChuiItalyIvan Magalhaes QUALIFIED
Aditya KuskoRussiaStephen Shaw UNQUALIFIED
Murillo MaletJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughSpainStephen Shaw PROPOSAL
Jennifer AmigonSpainXuxue Feng NEGOTIATION
Wickens NestleAustraliaElwin Sharvill NEGOTIATION
Maisha RulapaughFranceStephen Shaw QUALIFIED
Faith GillianBrazilAmy Elsner UNQUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant NEGOTIATION
James ButtCanadaAnna Fali PROPOSAL
Kadeem FlosiRussiaXuxue Feng PROPOSAL
Francesco ShinkoArgentinaIoni Bowcher RENEWAL
Tony FollerJapanAmy Elsner RENEWAL
Murillo MaletAustraliaElwin Sharvill NEW
Jones VocelkaUnited KingdomAsiya Javayant NEW
Misaki RoysterItalyBernardo Dominic RENEWAL
Jones VocelkaIndiaAsiya Javayant NEW
Faith GillianArgentinaIvan Magalhaes NEGOTIATION
Isabel BowleyRussiaBernardo Dominic NEW
Silvio SlusarskiGermanyElwin Sharvill UNQUALIFIED
Ashley DoeBrazilAsiya Javayant NEW
Maisha RulapaughRussiaAmy Elsner NEGOTIATION
Murillo MaletJapanAmy Elsner QUALIFIED
Alejandro PerinUnited KingdomIoni Bowcher RENEWAL
Alejandro PerinArgentinaBernardo Dominic NEGOTIATION
Emily WhobreySpainIoni Bowcher PROPOSAL
Jennifer AmigonJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaBrazilAmy Elsner PROPOSAL
Kadeem FlosiArgentinaStephen Shaw NEW
Darci PoquetteCanadaIoni Bowcher PROPOSAL
Kadeem FlosiSpainElwin Sharvill PROPOSAL
Leon OldroydArgentinaAsiya Javayant QUALIFIED
Francesco ShinkoSpainXuxue Feng QUALIFIED
Kaitlin OstroskyCanadaStephen Shaw RENEWAL
Octavia MaletCanadaStephen Shaw NEGOTIATION
Kaitlin OstroskyUnited KingdomAsiya Javayant RENEWAL
Kadeem FlosiAustraliaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraGermany2026-04-25Rousseaux, Michael Esq PROPOSAL73Stephen Shaw
1001Faith GillianBrazil2026-04-09Rousseaux, Michael Esq NEGOTIATION16Ivan Magalhaes
1002Kaitlin OstroskyGermany2026-04-02Feltz Printing Service RENEWAL75Amy Elsner
1003Cody SaylorsArgentina2026-04-05Printing Dimensions NEGOTIATION37Xuxue Feng
1004Kadeem FlosiArgentina2026-04-06Chanay, Jeffrey A Esq UNQUALIFIED35Bernardo Dominic
1005Costa DilliardIndia2026-04-18Buckley Miller Wright PROPOSAL80Amy Elsner
1006Adams MorascaBrazil2026-04-20Benton, John B Jr NEGOTIATION37Onyama Limba
1007Nicolas IturbideGermany2026-04-18Feiner Bros RENEWAL55Ioni Bowcher
1008Clifford RimFrance2026-04-20Morlong Associates UNQUALIFIED94Amy Elsner
1009Maisha RulapaughSpain2026-04-13Chemel, James L Cpa NEW30Anna Fali
1010Faith GillianJapan2026-03-29Commercial Press PROPOSAL23Ivan Magalhaes
1011Juan WieserAustralia2026-04-09Benton, John B Jr RENEWAL65Elwin Sharvill
1012Nicolas IturbideRussia2026-04-04Chapman, Ross E Esq QUALIFIED26Onyama Limba
1013Chavez BriddickRussia2026-04-10Rousseaux, Michael Esq RENEWAL7Amy Elsner
1014Darci PoquetteIndia2026-03-29Buckley Miller Wright QUALIFIED42Amy Elsner
1015Kaitlin OstroskyArgentina2026-03-27Morlong Associates NEGOTIATION33Xuxue Feng
1016Mujtaba NickaRussia2026-03-27Chemel, James L Cpa RENEWAL86Xuxue Feng
1017Jeanfrancois VenereGermany2026-04-24Morlong Associates NEW67Anna Fali
1018Misaki RoysterIndia2026-04-05Feiner Bros QUALIFIED83Asiya Javayant
1019Aruna FigeroaFrance2026-03-28Feiner Bros PROPOSAL57Anna Fali
1020Izzy GarufiBrazil2026-04-05Rousseaux, Michael Esq RENEWAL39Onyama Limba
1021Silvio SlusarskiGermany2026-04-13Printing Dimensions QUALIFIED41Bernardo Dominic
1022Jones VocelkaGermany2026-04-23Feltz Printing Service NEGOTIATION17Ioni Bowcher
1023Juan WieserItaly2026-04-11Rangoni Of Florence NEW85Xuxue Feng
1024Salvatore StockhamIndia2026-03-29Rangoni Of Florence PROPOSAL45Onyama Limba
1025Johnson SergiBrazil2026-04-15Benton, John B Jr RENEWAL22Stephen Shaw
1026Chavez BriddickArgentina2026-04-06King, Christopher A Esq PROPOSAL11Asiya Javayant
1027Jennifer AmigonCanada2026-04-19Rangoni Of Florence NEW87Stephen Shaw
1028Claire TollnerArgentina2026-04-03Printing Dimensions PROPOSAL73Stephen Shaw
1029Leon OldroydGermany2026-04-17Chanay, Jeffrey A Esq RENEWAL37Asiya Javayant
1030Silvio SlusarskiItaly2026-04-23Commercial Press UNQUALIFIED92Ivan Magalhaes
1031Antonio CaudyIndia2026-04-24Chemel, James L Cpa RENEWAL97Ioni Bowcher
1032Jones VocelkaBrazil2026-03-31Chemel, James L Cpa PROPOSAL50Elwin Sharvill
1033Kadeem FlosiAustralia2026-04-21Printing Dimensions RENEWAL19Xuxue Feng
1034Rodrigues CampainAustralia2026-04-05King, Christopher A Esq NEW23Ioni Bowcher
1035Aruna FigeroaRussia2026-03-29Rousseaux, Michael Esq PROPOSAL49Amy Elsner
1036Izzy GarufiAustralia2026-04-09Chanay, Jeffrey A Esq NEGOTIATION64Amy Elsner
1037Kadeem FlosiJapan2026-04-04Dorl, James J Esq NEW45Asiya Javayant
1038Jennifer AmigonRussia2026-04-20Morlong Associates UNQUALIFIED31Ivan Magalhaes
1039Wickens NestleGermany2026-04-15Morlong Associates NEGOTIATION18Asiya Javayant
1040David DarakjyArgentina2026-04-09King, Christopher A Esq NEGOTIATION9Amy Elsner
1041Johnson SergiArgentina2026-04-24Chapman, Ross E Esq NEGOTIATION63Onyama Limba
1042Adams MorascaItaly2026-04-04King, Christopher A Esq RENEWAL47Xuxue Feng
1043Morrow RutaBrazil2026-04-06Buckley Miller Wright PROPOSAL37Asiya Javayant
1044Rodrigues CampainArgentina2026-04-03Printing Dimensions RENEWAL21Amy Elsner
1045Emily WhobreyUnited Kingdom2026-04-19King, Christopher A Esq NEGOTIATION60Ioni Bowcher
1046Jennifer AmigonBrazil2026-04-21Chanay, Jeffrey A Esq NEGOTIATION81Asiya Javayant
1047Kaitlin OstroskyRussia2026-04-04Chemel, James L Cpa PROPOSAL68Anna Fali
1048Aditya KuskoArgentina2026-04-04Truhlar And Truhlar Attys NEW35Xuxue Feng
1049Claire TollnerGermany2026-04-15Benton, John B Jr NEGOTIATION49Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimIndiaAsiya Javayant PROPOSAL
David DarakjyGermanyXuxue Feng QUALIFIED
Faith GillianGermanyAmy Elsner RENEWAL
Emily WhobreyFranceAmy Elsner NEGOTIATION
Mujtaba NickaUnited KingdomOnyama Limba NEGOTIATION
Francesco ShinkoSpainIvan Magalhaes UNQUALIFIED
Nicolas IturbideCanadaElwin Sharvill QUALIFIED
Ashley DoeCanadaBernardo Dominic QUALIFIED
Claire TollnerRussiaStephen Shaw UNQUALIFIED
Murillo MaletAustraliaOnyama Limba QUALIFIED
Sinclair WaycottArgentinaIvan Magalhaes NEW
Murillo MaletAustraliaIvan Magalhaes QUALIFIED
Sinclair WaycottIndiaElwin Sharvill NEW
Ricardo GauchoUnited KingdomAnna Fali NEW
Smith GlickItalyElwin Sharvill NEW
Clifford RimFranceStephen Shaw QUALIFIED
James ButtIndiaIvan Magalhaes RENEWAL
Jeanfrancois VenereIndiaElwin Sharvill QUALIFIED
Ricardo GauchoUnited KingdomBernardo Dominic QUALIFIED
Aika InouyeSpainAnna Fali PROPOSAL
Clifford RimJapanBernardo Dominic PROPOSAL
Emily WhobreyFranceOnyama Limba PROPOSAL
Smith GlickIndiaStephen Shaw QUALIFIED
Mayumi KolmetzGermanyAmy Elsner NEGOTIATION
Darci PoquetteBrazilIoni Bowcher NEW
Smith GlickFranceIvan Magalhaes PROPOSAL
Claire TollnerFranceAsiya Javayant PROPOSAL
Johnson SergiIndiaAnna Fali RENEWAL
Antonio CaudyUnited KingdomOnyama Limba NEW
Wickens NestleSpainXuxue Feng UNQUALIFIED
Ivar PaprockiGermanyIvan Magalhaes RENEWAL
Costa DilliardGermanyIvan Magalhaes PROPOSAL
Claire TollnerRussiaBernardo Dominic PROPOSAL
Costa DilliardBrazilAsiya Javayant NEGOTIATION
Jennifer AmigonRussiaBernardo Dominic PROPOSAL
Kaitlin OstroskyIndiaBernardo Dominic NEW
Kadeem FlosiRussiaOnyama Limba NEW
Aruna FigeroaBrazilAnna Fali RENEWAL
Clifford RimArgentinaAsiya Javayant NEW
Alejandro PerinIndiaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyBrazilIvan Magalhaes NEW
Ricardo GauchoArgentinaIoni Bowcher NEW
Faith GillianFranceAmy Elsner RENEWAL
James ButtJapanAnna Fali NEGOTIATION
Jeanfrancois VenereGermanyIoni Bowcher NEGOTIATION
Greenwood BologniaCanadaElwin Sharvill NEGOTIATION
Jones VocelkaBrazilElwin Sharvill RENEWAL
Juan WieserUnited KingdomBernardo Dominic PROPOSAL
Jefferson SchemmerGermanyIvan Magalhaes PROPOSAL
Claire TollnerFranceXuxue Feng RENEWAL
Frozen Columns
Name
Aruna Figeroa
Alejandro Perin
Arvin Albares
Maria Marrier
Sinclair Waycott
Jennifer Amigon
Mujtaba Nicka
Izzy Garufi
Johnson Sergi
Kaitlin Ostrosky
Jennifer Amigon
Munro Ferencz
Greenwood Bolognia
Greenwood Bolognia
Cody Saylors
Ivar Paprocki
Leja Caldarera
Jones Vocelka
Isabel Bowley
Jennifer Amigon
Jones Vocelka
Greenwood Bolognia
Murillo Malet
Octavia Malet
Salvatore Stockham
Alejandro Perin
Julie Stenseth
Sinclair Waycott
Chavez Briddick
Clifford Rim
Mayumi Kolmetz
Francesco Shinko
Wickens Nestle
Aditya Kusko
Jefferson Schemmer
Deepesh Chui
Aditya Kusko
Maria Marrier
Claire Tollner
Leja Caldarera
Murillo Malet
Morrow Ruta
Morrow Ruta
Octavia Malet
Munro Ferencz
Aditya Kusko
Kaitlin Ostrosky
Maisha Rulapaugh
Antonio Caudy
Faith Gillian
IdCountryDate
1000Spain2026-03-30
1001Germany2026-03-29
1002Japan2026-04-17
1003Japan2026-04-12
1004Spain2026-04-23
1005Russia2026-04-03
1006Canada2026-04-24
1007Canada2026-04-21
1008Brazil2026-04-02
1009Italy2026-03-31
1010Argentina2026-04-04
1011Italy2026-04-24
1012Russia2026-04-22
1013Germany2026-04-05
1014France2026-04-11
1015Italy2026-04-25
1016Brazil2026-04-18
1017Germany2026-04-07
1018Germany2026-04-24
1019France2026-04-22
1020Argentina2026-03-31
1021Canada2026-04-10
1022Brazil2026-04-19
1023Spain2026-04-19
1024Japan2026-04-20
1025Japan2026-04-10
1026Italy2026-04-19
1027Canada2026-04-21
1028United Kingdom2026-04-21
1029Japan2026-03-28
1030United Kingdom2026-04-23
1031Russia2026-03-30
1032Argentina2026-04-17
1033Germany2026-03-28
1034Australia2026-04-18
1035Brazil2026-04-20
1036India2026-04-17
1037France2026-04-10
1038Spain2026-04-15
1039Germany2026-04-11
1040Australia2026-04-16
1041Argentina2026-04-23
1042Brazil2026-04-03
1043Japan2026-04-18
1044Australia2026-04-17
1045Italy2026-04-22
1046Australia2026-04-23
1047India2026-04-09
1048Brazil2026-04-06
1049Canada2026-04-14

On-Demand Data

NameIdCountryDate
Faith Gillian1000Spain2026-03-30
Nicolas Iturbide1001Spain2026-04-16
Clifford Rim1002Australia2026-04-02
Claire Tollner1003Russia2026-04-17
Rodrigues Campain1004Japan2026-04-05
Murillo Malet1005India2026-03-27
Isabel Bowley1006Spain2026-04-18
Johnson Sergi1007Brazil2026-03-28
Clifford Rim1008Spain2026-03-29
David Darakjy1009Germany2026-03-28
Aika Inouye1010Japan2026-03-27
Smith Glick1011India2026-04-11
Leja Caldarera1012Canada2026-04-22
Claire Tollner1013Japan2026-04-15
Aruna Figeroa1014Brazil2026-04-24
Izzy Garufi1015Canada2026-04-22
Munro Ferencz1016India2026-04-13
Ricardo Gaucho1017Argentina2026-04-19
Silvio Slusarski1018Australia2026-04-23
Claire Tollner1019Spain2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletArgentinaIvan Magalhaes NEW
Arvin AlbaresIndiaOnyama Limba NEW
James ButtItalyAnna Fali PROPOSAL
Alejandro PerinItalyAsiya Javayant RENEWAL
Johnson SergiSpainXuxue Feng PROPOSAL
Aruna FigeroaFranceElwin Sharvill RENEWAL
Nicolas IturbideItalyXuxue Feng NEGOTIATION
David DarakjyIndiaIoni Bowcher PROPOSAL
Cody SaylorsBrazilStephen Shaw NEW
Morrow RutaFranceAnna Fali UNQUALIFIED
Murillo MaletGermanyElwin Sharvill QUALIFIED
Clifford RimGermanyOnyama Limba NEGOTIATION
Jefferson SchemmerIndiaOnyama Limba QUALIFIED
Maria MarrierCanadaStephen Shaw QUALIFIED
Leja CaldareraArgentinaIvan Magalhaes NEW
Jones VocelkaJapanOnyama Limba QUALIFIED
James ButtFranceStephen Shaw NEW
Rodrigues CampainGermanyAmy Elsner UNQUALIFIED
David DarakjyUnited KingdomAnna Fali PROPOSAL
Emily WhobreyAustraliaStephen Shaw NEW
Jeanfrancois VenereGermanyBernardo Dominic NEW
Maisha RulapaughArgentinaOnyama Limba QUALIFIED
Mujtaba NickaIndiaIvan Magalhaes NEW
Cody SaylorsIndiaIvan Magalhaes QUALIFIED
Claire TollnerCanadaIvan Magalhaes PROPOSAL
Octavia MaletUnited KingdomElwin Sharvill PROPOSAL
Julie StensethSpainAnna Fali RENEWAL
Francesco ShinkoIndiaAnna Fali QUALIFIED
Maisha RulapaughItalyXuxue Feng UNQUALIFIED
Leja CaldareraGermanyBernardo Dominic UNQUALIFIED
Ivar PaprockiFranceAnna Fali RENEWAL
Maria MarrierFranceIoni Bowcher RENEWAL
Cody SaylorsCanadaAsiya Javayant NEGOTIATION
Faith GillianGermanyAnna Fali NEGOTIATION
Smith GlickItalyAsiya Javayant QUALIFIED
Wickens NestleGermanyElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali RENEWAL
Claire TollnerAustraliaIoni Bowcher NEW
Smith GlickIndiaBernardo Dominic PROPOSAL
Johnson SergiItalyBernardo Dominic 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>