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 InouyeSpainXuxue Feng PROPOSAL
Mujtaba NickaJapanXuxue Feng NEGOTIATION
Adams MorascaAustraliaAmy Elsner QUALIFIED
Julie StensethRussiaAmy Elsner QUALIFIED
Smith GlickSpainAnna Fali QUALIFIED
Tony FollerIndiaXuxue Feng NEGOTIATION
Munro FerenczCanadaOnyama Limba QUALIFIED
Deepesh ChuiIndiaXuxue Feng NEW
Stacey MacleadCanadaOnyama Limba QUALIFIED
Aruna FigeroaBrazilAsiya Javayant NEGOTIATION
Arvin AlbaresJapanIoni Bowcher NEGOTIATION
Jefferson SchemmerCanadaStephen Shaw NEGOTIATION
Salvatore StockhamItalyAnna Fali QUALIFIED
Munro FerenczGermanyOnyama Limba QUALIFIED
Arvin AlbaresGermanyAmy Elsner NEGOTIATION
Wickens NestleSpainAnna Fali PROPOSAL
Antonio CaudyItalyOnyama Limba QUALIFIED
Tony FollerJapanXuxue Feng QUALIFIED
Izzy GarufiSpainIoni Bowcher RENEWAL
Aruna FigeroaFranceBernardo Dominic NEGOTIATION
Leja CaldareraBrazilIoni Bowcher RENEWAL
Murillo MaletJapanAsiya Javayant UNQUALIFIED
Francesco ShinkoArgentinaAsiya Javayant QUALIFIED
Mayumi KolmetzAustraliaXuxue Feng UNQUALIFIED
Ashley DoeAustraliaElwin Sharvill QUALIFIED
Tony FollerArgentinaStephen Shaw NEW
Sinclair WaycottGermanyStephen Shaw PROPOSAL
Ashley DoeAustraliaBernardo Dominic NEW
Morrow RutaGermanyIvan Magalhaes PROPOSAL
Emily WhobreyBrazilAnna Fali NEGOTIATION
Maisha RulapaughAustraliaBernardo Dominic NEW
Tony FollerGermanyXuxue Feng RENEWAL
Aruna FigeroaSpainElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanBernardo Dominic RENEWAL
Arvin AlbaresAustraliaIvan Magalhaes NEGOTIATION
Aika InouyeUnited KingdomIoni Bowcher NEGOTIATION
Rodrigues CampainArgentinaStephen Shaw UNQUALIFIED
Darci PoquetteUnited KingdomAmy Elsner NEW
Kadeem FlosiIndiaBernardo Dominic PROPOSAL
Sinclair WaycottAustraliaBernardo Dominic RENEWAL
Darci PoquetteSpainBernardo Dominic NEGOTIATION
Greenwood BologniaGermanyStephen Shaw UNQUALIFIED
Salvatore StockhamGermanyStephen Shaw NEW
Arvin AlbaresItalyStephen Shaw NEW
Aditya KuskoGermanyStephen Shaw NEW
Darci PoquetteSpainStephen Shaw NEGOTIATION
Izzy GarufiJapanXuxue Feng UNQUALIFIED
Clifford RimBrazilIoni Bowcher UNQUALIFIED
Izzy GarufiJapanOnyama Limba PROPOSAL
Alejandro PerinJapanOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Octavia MaletFranceElwin Sharvill PROPOSAL
Maria MarrierBrazilAnna Fali QUALIFIED
Isabel BowleyAustraliaAnna Fali NEGOTIATION
Mayumi KolmetzIndiaAnna Fali NEGOTIATION
Rodrigues CampainSpainXuxue Feng UNQUALIFIED
Costa DilliardIndiaAnna Fali NEGOTIATION
Isabel BowleyJapanStephen Shaw PROPOSAL
Nicolas IturbideRussiaStephen Shaw QUALIFIED
Francesco ShinkoIndiaXuxue Feng QUALIFIED
Maisha RulapaughJapanOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserBrazil2026-05-22King, Christopher A Esq RENEWAL86Bernardo Dominic
1001Leon OldroydGermany2026-05-30Feiner Bros PROPOSAL59Stephen Shaw
1002Munro FerenczBrazil2026-05-27Commercial Press NEGOTIATION7Anna Fali
1003Faith GillianArgentina2026-05-22Benton, John B Jr PROPOSAL6Ioni Bowcher
1004Misaki RoysterAustralia2026-06-06Dorl, James J Esq NEW83Onyama Limba
1005Aika InouyeItaly2026-05-30Truhlar And Truhlar Attys QUALIFIED11Ivan Magalhaes
1006Rodrigues CampainItaly2026-05-19Printing Dimensions UNQUALIFIED63Onyama Limba
1007Octavia MaletIndia2026-05-13Rangoni Of Florence NEGOTIATION0Ioni Bowcher
1008Aruna FigeroaItaly2026-05-31Rangoni Of Florence RENEWAL16Ioni Bowcher
1009Jones VocelkaSpain2026-05-27Printing Dimensions NEGOTIATION35Asiya Javayant
1010Ricardo GauchoSpain2026-05-10Dorl, James J Esq UNQUALIFIED24Amy Elsner
1011Morrow RutaIndia2026-05-21Dorl, James J Esq PROPOSAL7Stephen Shaw
1012Alejandro PerinFrance2026-05-22Commercial Press NEGOTIATION5Asiya Javayant
1013Silvio SlusarskiUnited Kingdom2026-06-08Benton, John B Jr UNQUALIFIED66Ivan Magalhaes
1014Ricardo GauchoCanada2026-05-18Feltz Printing Service NEW87Ioni Bowcher
1015Alejandro PerinIndia2026-05-26Printing Dimensions NEGOTIATION17Xuxue Feng
1016Greenwood BologniaRussia2026-05-27Morlong Associates NEW9Ioni Bowcher
1017Leja CaldareraJapan2026-05-17Buckley Miller Wright PROPOSAL0Asiya Javayant
1018Jefferson SchemmerGermany2026-05-25Buckley Miller Wright NEW28Amy Elsner
1019Nicolas IturbideItaly2026-05-24Feiner Bros UNQUALIFIED87Anna Fali
1020Aruna FigeroaUnited Kingdom2026-05-22Morlong Associates PROPOSAL95Bernardo Dominic
1021Aika InouyeIndia2026-05-31Commercial Press PROPOSAL71Bernardo Dominic
1022Greenwood BologniaAustralia2026-05-10Chemel, James L Cpa QUALIFIED2Elwin Sharvill
1023Claire TollnerRussia2026-05-22Printing Dimensions QUALIFIED56Amy Elsner
1024Faith GillianSpain2026-05-23Benton, John B Jr PROPOSAL70Onyama Limba
1025Silvio SlusarskiUnited Kingdom2026-05-20Feltz Printing Service NEW68Asiya Javayant
1026Rodrigues CampainArgentina2026-05-16Truhlar And Truhlar Attys UNQUALIFIED3Onyama Limba
1027Darci PoquetteAustralia2026-05-13Truhlar And Truhlar Attys NEW56Onyama Limba
1028Aika InouyeSpain2026-05-24Benton, John B Jr PROPOSAL9Onyama Limba
1029Jones VocelkaAustralia2026-05-28Feiner Bros NEW4Asiya Javayant
1030Ricardo GauchoItaly2026-05-18Commercial Press UNQUALIFIED56Ivan Magalhaes
1031Kaitlin OstroskyAustralia2026-05-17Feltz Printing Service RENEWAL75Amy Elsner
1032Sinclair WaycottUnited Kingdom2026-05-24Feiner Bros PROPOSAL91Stephen Shaw
1033Munro FerenczUnited Kingdom2026-05-18Buckley Miller Wright NEGOTIATION36Amy Elsner
1034Octavia MaletRussia2026-05-10Chanay, Jeffrey A Esq QUALIFIED10Xuxue Feng
1035Isabel BowleyBrazil2026-05-22Morlong Associates PROPOSAL61Onyama Limba
1036Claire TollnerUnited Kingdom2026-05-11Buckley Miller Wright RENEWAL87Elwin Sharvill
1037Jefferson SchemmerArgentina2026-06-05Benton, John B Jr UNQUALIFIED39Ioni Bowcher
1038Mayumi KolmetzCanada2026-05-25Morlong Associates NEW49Ivan Magalhaes
1039Alejandro PerinJapan2026-05-24Printing Dimensions PROPOSAL77Xuxue Feng
1040Francesco ShinkoGermany2026-05-14Commercial Press NEGOTIATION36Stephen Shaw
1041Murillo MaletRussia2026-05-21Commercial Press RENEWAL23Bernardo Dominic
1042Aruna FigeroaArgentina2026-05-13Benton, John B Jr NEW99Bernardo Dominic
1043Mujtaba NickaFrance2026-05-13Dorl, James J Esq QUALIFIED98Bernardo Dominic
1044Wickens NestleGermany2026-05-27Chapman, Ross E Esq NEGOTIATION90Asiya Javayant
1045Arvin AlbaresBrazil2026-06-08Feltz Printing Service PROPOSAL10Anna Fali
1046Murillo MaletCanada2026-05-12Commercial Press RENEWAL1Anna Fali
1047Tony FollerGermany2026-05-20Buckley Miller Wright NEW18Asiya Javayant
1048Wickens NestleIndia2026-05-19King, Christopher A Esq PROPOSAL8Amy Elsner
1049Emily WhobreyJapan2026-05-15Printing Dimensions NEGOTIATION64Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickUnited KingdomXuxue Feng UNQUALIFIED
Salvatore StockhamIndiaAmy Elsner NEW
Wickens NestleJapanBernardo Dominic NEW
Greenwood BologniaBrazilIoni Bowcher NEW
Wickens NestleAustraliaOnyama Limba RENEWAL
Julie StensethSpainXuxue Feng RENEWAL
Jones VocelkaBrazilOnyama Limba RENEWAL
Leja CaldareraItalyAmy Elsner UNQUALIFIED
Aika InouyeArgentinaStephen Shaw NEGOTIATION
David DarakjyArgentinaOnyama Limba NEGOTIATION
Wickens NestleUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadCanadaBernardo Dominic NEGOTIATION
Ivar PaprockiUnited KingdomOnyama Limba NEW
Isabel BowleyIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughRussiaBernardo Dominic UNQUALIFIED
Jennifer AmigonGermanyAsiya Javayant UNQUALIFIED
Costa DilliardJapanElwin Sharvill QUALIFIED
Adams MorascaCanadaStephen Shaw QUALIFIED
Morrow RutaJapanElwin Sharvill NEW
Ricardo GauchoCanadaElwin Sharvill NEW
Arvin AlbaresFranceIoni Bowcher QUALIFIED
Nicolas IturbideRussiaIvan Magalhaes QUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher PROPOSAL
Nicolas IturbideAustraliaOnyama Limba NEW
Sinclair WaycottGermanyOnyama Limba NEGOTIATION
Sinclair WaycottAustraliaAnna Fali RENEWAL
Maisha RulapaughGermanyElwin Sharvill QUALIFIED
Maria MarrierCanadaAnna Fali UNQUALIFIED
Claire TollnerCanadaElwin Sharvill RENEWAL
Ashley DoeArgentinaAmy Elsner PROPOSAL
Mayumi KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Darci PoquetteSpainAsiya Javayant UNQUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Murillo MaletSpainIvan Magalhaes UNQUALIFIED
Nicolas IturbideUnited KingdomAmy Elsner QUALIFIED
Nicolas IturbideSpainIvan Magalhaes NEW
Johnson SergiRussiaStephen Shaw NEGOTIATION
Johnson SergiBrazilStephen Shaw QUALIFIED
Leon OldroydItalyAnna Fali PROPOSAL
Chavez BriddickArgentinaElwin Sharvill UNQUALIFIED
Claire TollnerItalyStephen Shaw UNQUALIFIED
David DarakjyUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadRussiaAnna Fali NEGOTIATION
Aruna FigeroaUnited KingdomOnyama Limba RENEWAL
Arvin AlbaresAustraliaOnyama Limba RENEWAL
Morrow RutaFranceOnyama Limba PROPOSAL
Tony FollerItalyAnna Fali RENEWAL
Misaki RoysterSpainIoni Bowcher NEGOTIATION
Maria MarrierAustraliaElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomStephen Shaw NEGOTIATION
Frozen Columns
Name
Morrow Ruta
Ivar Paprocki
Juan Wieser
Salvatore Stockham
Aditya Kusko
Johnson Sergi
Silvio Slusarski
Rodrigues Campain
Francesco Shinko
Darci Poquette
Jefferson Schemmer
Clifford Rim
Maria Marrier
Maisha Rulapaugh
Morrow Ruta
Jeanfrancois Venere
James Butt
Octavia Malet
Ivar Paprocki
Darci Poquette
Adams Morasca
Arvin Albares
Ricardo Gaucho
Rodrigues Campain
Johnson Sergi
Mujtaba Nicka
Nicolas Iturbide
David Darakjy
Juan Wieser
Octavia Malet
Juan Wieser
Julie Stenseth
Antonio Caudy
Morrow Ruta
Alejandro Perin
Claire Tollner
Morrow Ruta
Morrow Ruta
Munro Ferencz
Salvatore Stockham
David Darakjy
Murillo Malet
Faith Gillian
Ivar Paprocki
Johnson Sergi
Maria Marrier
Chavez Briddick
Alejandro Perin
Clifford Rim
Clifford Rim
IdCountryDate
1000Russia2026-06-07
1001United Kingdom2026-05-31
1002Brazil2026-05-26
1003United Kingdom2026-05-20
1004Japan2026-05-15
1005Russia2026-05-27
1006France2026-05-21
1007Russia2026-05-20
1008Germany2026-05-11
1009Brazil2026-05-28
1010Russia2026-06-05
1011Japan2026-05-16
1012Canada2026-05-16
1013Brazil2026-05-20
1014Australia2026-06-03
1015India2026-05-25
1016Spain2026-06-07
1017Italy2026-06-04
1018France2026-05-26
1019Australia2026-05-10
1020Australia2026-06-05
1021Germany2026-05-24
1022Brazil2026-06-08
1023India2026-06-05
1024Brazil2026-05-28
1025Argentina2026-05-12
1026Spain2026-06-08
1027Germany2026-05-14
1028Spain2026-06-05
1029Australia2026-05-18
1030Russia2026-06-01
1031Germany2026-06-03
1032Australia2026-06-02
1033Japan2026-05-14
1034Germany2026-05-20
1035Australia2026-05-12
1036United Kingdom2026-05-22
1037Brazil2026-06-04
1038Germany2026-05-30
1039Russia2026-06-08
1040Argentina2026-05-10
1041India2026-06-04
1042France2026-05-12
1043Spain2026-06-07
1044France2026-05-31
1045Russia2026-05-10
1046India2026-05-14
1047Spain2026-05-30
1048Australia2026-05-30
1049Spain2026-05-14

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Russia2026-05-21
David Darakjy1001Germany2026-05-22
Stacey Maclead1002Spain2026-06-01
Isabel Bowley1003Brazil2026-06-05
Munro Ferencz1004United Kingdom2026-06-07
Jennifer Amigon1005Italy2026-06-02
Stacey Maclead1006Spain2026-05-29
Smith Glick1007Argentina2026-06-05
Greenwood Bolognia1008Canada2026-06-01
Smith Glick1009Germany2026-05-24
Izzy Garufi1010Russia2026-05-27
Chavez Briddick1011Canada2026-05-21
Ashley Doe1012Russia2026-06-07
Costa Dilliard1013Argentina2026-05-25
Tony Foller1014India2026-05-25
Ricardo Gaucho1015Australia2026-05-25
Cody Saylors1016Australia2026-05-14
Salvatore Stockham1017Italy2026-05-24
Cody Saylors1018Canada2026-06-01
Adams Morasca1019Germany2026-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethBrazilBernardo Dominic PROPOSAL
Nicolas IturbideBrazilStephen Shaw QUALIFIED
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Ivar PaprockiRussiaAsiya Javayant RENEWAL
Kaitlin OstroskyArgentinaOnyama Limba NEGOTIATION
Murillo MaletSpainBernardo Dominic UNQUALIFIED
Salvatore StockhamSpainAnna Fali UNQUALIFIED
Francesco ShinkoItalyIvan Magalhaes PROPOSAL
David DarakjyFranceAnna Fali QUALIFIED
Faith GillianIndiaAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomBernardo Dominic RENEWAL
Antonio CaudyCanadaXuxue Feng QUALIFIED
Silvio SlusarskiUnited KingdomStephen Shaw PROPOSAL
Juan WieserGermanyXuxue Feng PROPOSAL
Tony FollerArgentinaOnyama Limba NEW
Faith GillianIndiaAnna Fali QUALIFIED
Greenwood BologniaSpainAnna Fali NEGOTIATION
Juan WieserJapanOnyama Limba NEGOTIATION
Ashley DoeUnited KingdomXuxue Feng UNQUALIFIED
Sinclair WaycottUnited KingdomAmy Elsner NEW
Jones VocelkaJapanAnna Fali NEW
Wickens NestleArgentinaAmy Elsner UNQUALIFIED
Isabel BowleySpainAnna Fali QUALIFIED
Claire TollnerJapanXuxue Feng PROPOSAL
Smith GlickIndiaBernardo Dominic RENEWAL
Jennifer AmigonGermanyIoni Bowcher QUALIFIED
Isabel BowleyGermanyXuxue Feng QUALIFIED
Alejandro PerinGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaCanadaIvan Magalhaes NEW
Aditya KuskoRussiaXuxue Feng UNQUALIFIED
Tony FollerGermanyOnyama Limba PROPOSAL
Octavia MaletItalyAsiya Javayant UNQUALIFIED
Misaki RoysterCanadaIoni Bowcher RENEWAL
Maisha RulapaughUnited KingdomIvan Magalhaes RENEWAL
Isabel BowleyBrazilStephen Shaw UNQUALIFIED
Maria MarrierGermanyOnyama Limba NEW
Emily WhobreyCanadaStephen Shaw PROPOSAL
Clifford RimUnited KingdomXuxue Feng NEW
Deepesh ChuiAustraliaOnyama Limba PROPOSAL
Darci PoquetteArgentinaIoni Bowcher 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>