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
Morrow RutaJapanElwin Sharvill NEW
Darci PoquetteSpainStephen Shaw PROPOSAL
Kaitlin OstroskyIndiaXuxue Feng PROPOSAL
Izzy GarufiSpainAnna Fali RENEWAL
Morrow RutaSpainBernardo Dominic PROPOSAL
Alejandro PerinSpainOnyama Limba NEW
Murillo MaletJapanStephen Shaw NEGOTIATION
Jefferson SchemmerItalyBernardo Dominic RENEWAL
Clifford RimUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore StockhamJapanOnyama Limba RENEWAL
Stacey MacleadRussiaIoni Bowcher PROPOSAL
Antonio CaudyCanadaAmy Elsner RENEWAL
Juan WieserArgentinaBernardo Dominic NEGOTIATION
Leon OldroydIndiaBernardo Dominic NEGOTIATION
Izzy GarufiBrazilStephen Shaw RENEWAL
Jeanfrancois VenereSpainOnyama Limba NEW
Cody SaylorsSpainStephen Shaw NEW
Munro FerenczFranceAmy Elsner RENEWAL
Munro FerenczBrazilAnna Fali NEW
Maisha RulapaughArgentinaXuxue Feng QUALIFIED
Jeanfrancois VenereSpainIoni Bowcher NEGOTIATION
Juan WieserSpainXuxue Feng UNQUALIFIED
Silvio SlusarskiSpainAnna Fali QUALIFIED
Jones VocelkaJapanAmy Elsner PROPOSAL
Octavia MaletIndiaIvan Magalhaes NEW
Jones VocelkaCanadaAnna Fali QUALIFIED
David DarakjyFranceAmy Elsner QUALIFIED
Munro FerenczIndiaElwin Sharvill RENEWAL
James ButtGermanyXuxue Feng RENEWAL
Morrow RutaFranceAmy Elsner NEGOTIATION
Antonio CaudyCanadaElwin Sharvill QUALIFIED
Nicolas IturbideJapanBernardo Dominic RENEWAL
Clifford RimItalyElwin Sharvill RENEWAL
Isabel BowleyRussiaAnna Fali UNQUALIFIED
Izzy GarufiBrazilXuxue Feng NEGOTIATION
Maria MarrierItalyIvan Magalhaes UNQUALIFIED
Clifford RimBrazilAmy Elsner RENEWAL
Tony FollerRussiaAmy Elsner NEGOTIATION
Maria MarrierUnited KingdomBernardo Dominic PROPOSAL
Johnson SergiGermanyStephen Shaw UNQUALIFIED
Aika InouyeItalyIoni Bowcher PROPOSAL
Aditya KuskoArgentinaAsiya Javayant RENEWAL
Aruna FigeroaIndiaAmy Elsner NEW
Greenwood BologniaIndiaAmy Elsner QUALIFIED
Antonio CaudyAustraliaIvan Magalhaes PROPOSAL
Salvatore StockhamFranceStephen Shaw NEGOTIATION
Maria MarrierRussiaIvan Magalhaes QUALIFIED
Smith GlickIndiaAsiya Javayant NEW
Francesco ShinkoCanadaOnyama Limba NEW
Misaki RoysterRussiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaArgentinaIvan Magalhaes PROPOSAL
Misaki RoysterArgentinaAsiya Javayant UNQUALIFIED
Isabel BowleyRussiaIoni Bowcher NEGOTIATION
Francesco ShinkoGermanyAnna Fali PROPOSAL
Tony FollerAustraliaBernardo Dominic PROPOSAL
Jones VocelkaFranceIoni Bowcher UNQUALIFIED
Arvin AlbaresRussiaOnyama Limba UNQUALIFIED
Darci PoquetteGermanyOnyama Limba NEW
Emily WhobreyArgentinaIoni Bowcher QUALIFIED
Misaki RoysterArgentinaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughJapan2026-05-26Printing Dimensions NEGOTIATION32Anna Fali
1001Mujtaba NickaIndia2026-05-23King, Christopher A Esq PROPOSAL56Amy Elsner
1002Arvin AlbaresUnited Kingdom2026-05-09Benton, John B Jr UNQUALIFIED67Stephen Shaw
1003Tony FollerIndia2026-05-20Morlong Associates UNQUALIFIED34Anna Fali
1004Isabel BowleyJapan2026-05-15Feltz Printing Service PROPOSAL97Amy Elsner
1005Kadeem FlosiSpain2026-05-20Benton, John B Jr NEGOTIATION49Bernardo Dominic
1006Octavia MaletItaly2026-05-15Rangoni Of Florence UNQUALIFIED41Stephen Shaw
1007David DarakjyGermany2026-05-25Commercial Press RENEWAL45Amy Elsner
1008Jones VocelkaCanada2026-05-09Printing Dimensions RENEWAL99Elwin Sharvill
1009Mayumi KolmetzArgentina2026-05-11Feltz Printing Service QUALIFIED47Bernardo Dominic
1010Stacey MacleadBrazil2026-05-21Commercial Press QUALIFIED8Onyama Limba
1011Clifford RimRussia2026-05-30Rangoni Of Florence PROPOSAL75Anna Fali
1012Costa DilliardArgentina2026-05-08Morlong Associates PROPOSAL43Ivan Magalhaes
1013Adams MorascaSpain2026-05-30Benton, John B Jr RENEWAL61Amy Elsner
1014Jones VocelkaCanada2026-05-26Chanay, Jeffrey A Esq RENEWAL3Anna Fali
1015Greenwood BologniaSpain2026-05-03Buckley Miller Wright NEW12Amy Elsner
1016Aruna FigeroaGermany2026-05-10Dorl, James J Esq UNQUALIFIED38Xuxue Feng
1017Chavez BriddickGermany2026-05-30Chapman, Ross E Esq UNQUALIFIED65Xuxue Feng
1018Faith GillianGermany2026-05-15Dorl, James J Esq RENEWAL5Elwin Sharvill
1019Alejandro PerinFrance2026-05-03Feiner Bros NEGOTIATION89Amy Elsner
1020Leja CaldareraIndia2026-05-17Feltz Printing Service UNQUALIFIED52Asiya Javayant
1021Costa DilliardIndia2026-05-04Benton, John B Jr NEGOTIATION89Asiya Javayant
1022Greenwood BologniaCanada2026-05-28Feltz Printing Service PROPOSAL9Xuxue Feng
1023Claire TollnerIndia2026-05-08Rousseaux, Michael Esq QUALIFIED51Stephen Shaw
1024Sinclair WaycottUnited Kingdom2026-05-28Rangoni Of Florence RENEWAL15Bernardo Dominic
1025Adams MorascaArgentina2026-05-20Buckley Miller Wright QUALIFIED52Xuxue Feng
1026Greenwood BologniaRussia2026-05-27Buckley Miller Wright QUALIFIED83Asiya Javayant
1027Mayumi KolmetzCanada2026-05-09Printing Dimensions QUALIFIED49Elwin Sharvill
1028Aditya KuskoArgentina2026-05-10Feltz Printing Service NEW66Anna Fali
1029Smith GlickRussia2026-05-14Morlong Associates RENEWAL28Asiya Javayant
1030Clifford RimBrazil2026-05-06Truhlar And Truhlar Attys NEGOTIATION4Amy Elsner
1031Morrow RutaRussia2026-05-06Chemel, James L Cpa UNQUALIFIED21Amy Elsner
1032Mayumi KolmetzArgentina2026-05-19King, Christopher A Esq NEGOTIATION42Amy Elsner
1033Murillo MaletSpain2026-05-16Truhlar And Truhlar Attys NEGOTIATION86Ioni Bowcher
1034Salvatore StockhamJapan2026-05-10Rangoni Of Florence QUALIFIED80Asiya Javayant
1035Kadeem FlosiUnited Kingdom2026-05-28King, Christopher A Esq RENEWAL49Stephen Shaw
1036Cody SaylorsSpain2026-05-16Dorl, James J Esq RENEWAL39Anna Fali
1037Kaitlin OstroskyRussia2026-05-16Chemel, James L Cpa PROPOSAL33Stephen Shaw
1038Murillo MaletJapan2026-05-23Morlong Associates NEGOTIATION28Anna Fali
1039Jeanfrancois VenereIndia2026-05-18Chapman, Ross E Esq UNQUALIFIED71Ioni Bowcher
1040Cody SaylorsRussia2026-05-06Rousseaux, Michael Esq PROPOSAL41Ivan Magalhaes
1041Sinclair WaycottRussia2026-05-15Truhlar And Truhlar Attys RENEWAL75Asiya Javayant
1042Silvio SlusarskiBrazil2026-05-25Feltz Printing Service QUALIFIED0Elwin Sharvill
1043Costa DilliardRussia2026-05-08Rangoni Of Florence QUALIFIED76Onyama Limba
1044Misaki RoysterBrazil2026-05-09King, Christopher A Esq QUALIFIED99Stephen Shaw
1045Maria MarrierSpain2026-05-31Rousseaux, Michael Esq QUALIFIED14Amy Elsner
1046Arvin AlbaresCanada2026-05-14Printing Dimensions QUALIFIED32Stephen Shaw
1047Clifford RimFrance2026-05-30Commercial Press RENEWAL59Xuxue Feng
1048Johnson SergiJapan2026-05-22Feltz Printing Service NEW20Stephen Shaw
1049Clifford RimAustralia2026-05-08Rangoni Of Florence RENEWAL81Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiUnited KingdomAsiya Javayant UNQUALIFIED
David DarakjyJapanIoni Bowcher RENEWAL
Sinclair WaycottSpainIoni Bowcher PROPOSAL
Nicolas IturbideCanadaOnyama Limba UNQUALIFIED
Smith GlickItalyElwin Sharvill PROPOSAL
Greenwood BologniaUnited KingdomAsiya Javayant QUALIFIED
James ButtItalyIvan Magalhaes NEW
Murillo MaletRussiaIoni Bowcher PROPOSAL
Salvatore StockhamIndiaStephen Shaw UNQUALIFIED
Maisha RulapaughJapanBernardo Dominic NEGOTIATION
Aruna FigeroaGermanyBernardo Dominic RENEWAL
Aruna FigeroaBrazilStephen Shaw NEGOTIATION
Julie StensethBrazilOnyama Limba QUALIFIED
Johnson SergiSpainStephen Shaw QUALIFIED
Murillo MaletCanadaElwin Sharvill RENEWAL
Leja CaldareraCanadaAnna Fali NEGOTIATION
James ButtFranceStephen Shaw RENEWAL
Morrow RutaUnited KingdomAnna Fali PROPOSAL
Aruna FigeroaArgentinaIvan Magalhaes NEW
Ashley DoeArgentinaAnna Fali QUALIFIED
Alejandro PerinArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues CampainBrazilAnna Fali NEGOTIATION
Leon OldroydRussiaAmy Elsner NEW
Mujtaba NickaIndiaAsiya Javayant NEGOTIATION
Costa DilliardAustraliaStephen Shaw NEW
Silvio SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh ChuiUnited KingdomAmy Elsner NEGOTIATION
Clifford RimJapanAsiya Javayant PROPOSAL
Nicolas IturbideGermanyAsiya Javayant NEGOTIATION
Costa DilliardRussiaIoni Bowcher PROPOSAL
Jefferson SchemmerItalyAmy Elsner UNQUALIFIED
Cody SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Claire TollnerItalyStephen Shaw RENEWAL
Morrow RutaAustraliaAnna Fali NEW
Darci PoquetteGermanyOnyama Limba QUALIFIED
Maria MarrierRussiaIvan Magalhaes NEGOTIATION
Nicolas IturbideItalyIvan Magalhaes NEGOTIATION
Aditya KuskoIndiaXuxue Feng NEW
Francesco ShinkoIndiaAsiya Javayant NEGOTIATION
Johnson SergiRussiaBernardo Dominic QUALIFIED
Jones VocelkaIndiaStephen Shaw UNQUALIFIED
Kaitlin OstroskyRussiaXuxue Feng NEW
Murillo MaletCanadaAsiya Javayant RENEWAL
Johnson SergiFranceBernardo Dominic NEGOTIATION
Wickens NestleSpainOnyama Limba QUALIFIED
Francesco ShinkoBrazilIoni Bowcher RENEWAL
Munro FerenczSpainAsiya Javayant PROPOSAL
Mujtaba NickaAustraliaStephen Shaw UNQUALIFIED
Kadeem FlosiSpainIoni Bowcher NEGOTIATION
Octavia MaletArgentinaIoni Bowcher RENEWAL
Frozen Columns
Name
Ashley Doe
Aika Inouye
Jefferson Schemmer
Octavia Malet
Stacey Maclead
Wickens Nestle
Mujtaba Nicka
Francesco Shinko
Stacey Maclead
Mujtaba Nicka
James Butt
Maria Marrier
Morrow Ruta
Cody Saylors
Jones Vocelka
Deepesh Chui
Izzy Garufi
Misaki Royster
Ivar Paprocki
Costa Dilliard
Aruna Figeroa
Deepesh Chui
Francesco Shinko
Silvio Slusarski
Morrow Ruta
Tony Foller
Maria Marrier
Maria Marrier
Murillo Malet
Ashley Doe
Ivar Paprocki
Claire Tollner
Costa Dilliard
Sinclair Waycott
Johnson Sergi
Leja Caldarera
Munro Ferencz
Sinclair Waycott
Adams Morasca
Alejandro Perin
Isabel Bowley
Ivar Paprocki
Francesco Shinko
Wickens Nestle
Jefferson Schemmer
Aditya Kusko
Kadeem Flosi
Smith Glick
Jeanfrancois Venere
Antonio Caudy
IdCountryDate
1000Italy2026-05-22
1001Japan2026-05-18
1002Italy2026-05-26
1003India2026-05-30
1004United Kingdom2026-05-31
1005Argentina2026-05-18
1006Australia2026-05-27
1007India2026-05-12
1008India2026-05-30
1009Russia2026-05-16
1010Canada2026-05-10
1011Italy2026-05-11
1012Brazil2026-05-06
1013Spain2026-05-12
1014Spain2026-05-29
1015Argentina2026-05-15
1016Italy2026-05-26
1017United Kingdom2026-05-05
1018Italy2026-05-28
1019United Kingdom2026-05-03
1020Russia2026-05-10
1021Italy2026-05-09
1022Italy2026-05-09
1023Argentina2026-05-07
1024France2026-05-31
1025India2026-05-07
1026Australia2026-05-09
1027India2026-05-16
1028Japan2026-05-30
1029Russia2026-05-16
1030Italy2026-05-16
1031Argentina2026-05-17
1032Canada2026-05-05
1033Brazil2026-05-31
1034Australia2026-05-29
1035Spain2026-05-30
1036Argentina2026-05-31
1037Japan2026-05-28
1038Brazil2026-05-07
1039Germany2026-05-30
1040Argentina2026-06-01
1041India2026-05-05
1042Australia2026-05-14
1043Brazil2026-05-21
1044Germany2026-05-05
1045Japan2026-05-17
1046Brazil2026-05-11
1047Argentina2026-05-11
1048Italy2026-05-17
1049Japan2026-05-20

On-Demand Data

NameIdCountryDate
Murillo Malet1000Australia2026-05-25
Kadeem Flosi1001France2026-05-13
Ivar Paprocki1002India2026-05-31
Jones Vocelka1003France2026-05-06
Alejandro Perin1004Russia2026-05-22
Salvatore Stockham1005Australia2026-05-23
Misaki Royster1006Australia2026-05-14
Costa Dilliard1007Canada2026-05-25
Julie Stenseth1008Australia2026-05-27
Izzy Garufi1009Russia2026-05-14
Alejandro Perin1010United Kingdom2026-06-01
Deepesh Chui1011Canada2026-05-10
Murillo Malet1012Brazil2026-05-16
Misaki Royster1013Australia2026-05-29
Sinclair Waycott1014United Kingdom2026-05-05
Clifford Rim1015Japan2026-05-15
Morrow Ruta1016Spain2026-05-31
Sinclair Waycott1017Germany2026-05-22
David Darakjy1018Japan2026-05-03
Mujtaba Nicka1019Germany2026-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiAustraliaStephen Shaw RENEWAL
Juan WieserSpainAnna Fali NEGOTIATION
Kadeem FlosiCanadaAsiya Javayant RENEWAL
Maisha RulapaughJapanOnyama Limba UNQUALIFIED
Kaitlin OstroskySpainAmy Elsner NEW
Isabel BowleyGermanyOnyama Limba QUALIFIED
Kaitlin OstroskyGermanyIoni Bowcher NEGOTIATION
Ricardo GauchoArgentinaAsiya Javayant PROPOSAL
Alejandro PerinArgentinaElwin Sharvill QUALIFIED
Greenwood BologniaBrazilXuxue Feng NEGOTIATION
Munro FerenczIndiaIoni Bowcher QUALIFIED
Jennifer AmigonUnited KingdomAnna Fali NEGOTIATION
Nicolas IturbideJapanAmy Elsner PROPOSAL
Stacey MacleadArgentinaIoni Bowcher RENEWAL
Johnson SergiRussiaOnyama Limba NEW
Ashley DoeArgentinaIvan Magalhaes UNQUALIFIED
Smith GlickBrazilOnyama Limba NEGOTIATION
Wickens NestleSpainElwin Sharvill NEGOTIATION
Tony FollerArgentinaAsiya Javayant NEGOTIATION
Claire TollnerCanadaXuxue Feng PROPOSAL
Arvin AlbaresCanadaOnyama Limba NEGOTIATION
Kaitlin OstroskyArgentinaOnyama Limba NEW
Francesco ShinkoCanadaStephen Shaw PROPOSAL
Morrow RutaRussiaOnyama Limba NEGOTIATION
Kaitlin OstroskyFranceXuxue Feng RENEWAL
Claire TollnerJapanIoni Bowcher NEW
Claire TollnerCanadaXuxue Feng NEGOTIATION
Adams MorascaGermanyStephen Shaw NEGOTIATION
Izzy GarufiItalyAmy Elsner NEGOTIATION
Sinclair WaycottUnited KingdomOnyama Limba NEGOTIATION
Ashley DoeCanadaAmy Elsner NEGOTIATION
Clifford RimBrazilOnyama Limba QUALIFIED
Claire TollnerGermanyStephen Shaw PROPOSAL
James ButtItalyStephen Shaw PROPOSAL
Claire TollnerItalyAsiya Javayant NEW
Murillo MaletArgentinaIvan Magalhaes NEW
Aruna FigeroaCanadaAnna Fali NEGOTIATION
Misaki RoysterIndiaIvan Magalhaes NEW
Nicolas IturbideArgentinaAmy Elsner NEW
Aika InouyeBrazilAnna Fali 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>