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
Misaki RoysterFranceXuxue Feng QUALIFIED
Aika InouyeJapanAsiya Javayant RENEWAL
Aditya KuskoBrazilBernardo Dominic RENEWAL
Tony FollerCanadaOnyama Limba UNQUALIFIED
Wickens NestleFranceOnyama Limba UNQUALIFIED
Aika InouyeRussiaAsiya Javayant NEGOTIATION
Claire TollnerItalyAmy Elsner RENEWAL
Leja CaldareraJapanAmy Elsner UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner RENEWAL
Costa DilliardRussiaXuxue Feng RENEWAL
Julie StensethArgentinaIoni Bowcher PROPOSAL
Stacey MacleadJapanAmy Elsner PROPOSAL
Salvatore StockhamRussiaOnyama Limba NEGOTIATION
Chavez BriddickItalyAsiya Javayant UNQUALIFIED
Jeanfrancois VenereFranceIoni Bowcher PROPOSAL
Faith GillianUnited KingdomBernardo Dominic NEW
Francesco ShinkoBrazilBernardo Dominic RENEWAL
Aditya KuskoAustraliaXuxue Feng UNQUALIFIED
Juan WieserRussiaIoni Bowcher NEGOTIATION
Ricardo GauchoFranceAmy Elsner RENEWAL
Francesco ShinkoIndiaStephen Shaw QUALIFIED
Faith GillianUnited KingdomAmy Elsner NEGOTIATION
Aruna FigeroaBrazilBernardo Dominic RENEWAL
Aruna FigeroaArgentinaAnna Fali NEGOTIATION
Smith GlickGermanyXuxue Feng NEW
Darci PoquetteCanadaAmy Elsner QUALIFIED
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Morrow RutaFranceXuxue Feng RENEWAL
Jones VocelkaGermanyOnyama Limba UNQUALIFIED
Mayumi KolmetzAustraliaAnna Fali PROPOSAL
Alejandro PerinSpainIoni Bowcher QUALIFIED
Maisha RulapaughGermanyAnna Fali NEW
Faith GillianGermanyIvan Magalhaes UNQUALIFIED
Ricardo GauchoCanadaAnna Fali NEW
Ivar PaprockiFranceStephen Shaw RENEWAL
Faith GillianBrazilXuxue Feng PROPOSAL
Silvio SlusarskiAustraliaBernardo Dominic NEGOTIATION
Leon OldroydGermanyAmy Elsner NEGOTIATION
Ashley DoeGermanyXuxue Feng PROPOSAL
Stacey MacleadBrazilBernardo Dominic UNQUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher UNQUALIFIED
Ashley DoeJapanStephen Shaw QUALIFIED
Clifford RimUnited KingdomStephen Shaw UNQUALIFIED
Misaki RoysterJapanOnyama Limba QUALIFIED
James ButtFranceAmy Elsner UNQUALIFIED
Salvatore StockhamRussiaOnyama Limba NEGOTIATION
Misaki RoysterArgentinaXuxue Feng QUALIFIED
James ButtIndiaAmy Elsner NEGOTIATION
Juan WieserFranceAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoCanadaAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaOnyama Limba UNQUALIFIED
David DarakjyArgentinaStephen Shaw RENEWAL
Morrow RutaGermanyIoni Bowcher RENEWAL
Jennifer AmigonBrazilElwin Sharvill NEGOTIATION
Clifford RimUnited KingdomOnyama Limba PROPOSAL
Jones VocelkaAustraliaIoni Bowcher QUALIFIED
Silvio SlusarskiBrazilStephen Shaw RENEWAL
Kaitlin OstroskyJapanBernardo Dominic NEW
Wickens NestleUnited KingdomIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleItaly2026-04-10Commercial Press RENEWAL10Onyama Limba
1001Johnson SergiArgentina2026-04-19Rousseaux, Michael Esq UNQUALIFIED41Bernardo Dominic
1002Chavez BriddickArgentina2026-04-24Feiner Bros RENEWAL94Ioni Bowcher
1003Chavez BriddickUnited Kingdom2026-04-16Rousseaux, Michael Esq NEW12Elwin Sharvill
1004Greenwood BologniaItaly2026-04-21Feiner Bros NEGOTIATION93Amy Elsner
1005Nicolas IturbideAustralia2026-04-11Rangoni Of Florence QUALIFIED62Bernardo Dominic
1006Jeanfrancois VenereUnited Kingdom2026-04-26King, Christopher A Esq NEGOTIATION10Ivan Magalhaes
1007Ashley DoeCanada2026-04-17Printing Dimensions RENEWAL5Bernardo Dominic
1008Kaitlin OstroskyGermany2026-04-24Commercial Press PROPOSAL82Stephen Shaw
1009Deepesh ChuiCanada2026-04-25Feiner Bros UNQUALIFIED1Onyama Limba
1010Johnson SergiAustralia2026-04-22Rousseaux, Michael Esq NEGOTIATION68Ioni Bowcher
1011Octavia MaletAustralia2026-04-28Buckley Miller Wright RENEWAL75Stephen Shaw
1012Silvio SlusarskiJapan2026-04-15Chemel, James L Cpa NEW80Anna Fali
1013Smith GlickBrazil2026-04-25Benton, John B Jr PROPOSAL79Amy Elsner
1014Jones VocelkaRussia2026-04-26Commercial Press QUALIFIED50Bernardo Dominic
1015Jefferson SchemmerGermany2026-04-25Truhlar And Truhlar Attys QUALIFIED78Amy Elsner
1016Jeanfrancois VenereFrance2026-05-02Chapman, Ross E Esq NEGOTIATION33Ioni Bowcher
1017Octavia MaletGermany2026-04-17King, Christopher A Esq NEGOTIATION94Amy Elsner
1018Salvatore StockhamAustralia2026-05-01King, Christopher A Esq NEGOTIATION0Elwin Sharvill
1019Wickens NestleRussia2026-04-20Rangoni Of Florence RENEWAL7Ivan Magalhaes
1020James ButtRussia2026-04-28Rangoni Of Florence NEW70Bernardo Dominic
1021Sinclair WaycottSpain2026-04-29Morlong Associates UNQUALIFIED63Bernardo Dominic
1022Murillo MaletAustralia2026-04-13Printing Dimensions PROPOSAL4Amy Elsner
1023Francesco ShinkoCanada2026-04-19Feiner Bros RENEWAL39Asiya Javayant
1024Izzy GarufiGermany2026-05-03Dorl, James J Esq PROPOSAL80Stephen Shaw
1025Ashley DoeUnited Kingdom2026-04-21Dorl, James J Esq QUALIFIED61Bernardo Dominic
1026Aruna FigeroaItaly2026-04-11Printing Dimensions UNQUALIFIED71Elwin Sharvill
1027Salvatore StockhamRussia2026-04-14Truhlar And Truhlar Attys PROPOSAL43Ioni Bowcher
1028Ricardo GauchoUnited Kingdom2026-04-30Printing Dimensions UNQUALIFIED73Bernardo Dominic
1029Morrow RutaCanada2026-04-29Morlong Associates PROPOSAL54Ioni Bowcher
1030Deepesh ChuiSpain2026-04-25Feltz Printing Service NEW48Anna Fali
1031Chavez BriddickSpain2026-04-07Commercial Press QUALIFIED92Bernardo Dominic
1032Deepesh ChuiRussia2026-05-02Chanay, Jeffrey A Esq NEGOTIATION39Stephen Shaw
1033Tony FollerGermany2026-05-03Feltz Printing Service RENEWAL27Xuxue Feng
1034Chavez BriddickItaly2026-04-11Commercial Press NEW14Bernardo Dominic
1035David DarakjyAustralia2026-04-15Rangoni Of Florence NEW52Ioni Bowcher
1036James ButtItaly2026-04-14Truhlar And Truhlar Attys NEW37Elwin Sharvill
1037Deepesh ChuiCanada2026-04-12Chapman, Ross E Esq PROPOSAL92Amy Elsner
1038Maria MarrierSpain2026-04-15Rangoni Of Florence NEGOTIATION85Asiya Javayant
1039Alejandro PerinCanada2026-04-25Morlong Associates RENEWAL27Onyama Limba
1040Cody SaylorsJapan2026-04-18Truhlar And Truhlar Attys NEGOTIATION74Elwin Sharvill
1041Leja CaldareraFrance2026-04-10Chemel, James L Cpa RENEWAL85Anna Fali
1042Octavia MaletUnited Kingdom2026-05-01Feltz Printing Service PROPOSAL15Ioni Bowcher
1043Silvio SlusarskiArgentina2026-04-05King, Christopher A Esq NEW61Ioni Bowcher
1044Adams MorascaJapan2026-04-13King, Christopher A Esq RENEWAL1Anna Fali
1045Juan WieserUnited Kingdom2026-04-12Feiner Bros NEW87Asiya Javayant
1046Wickens NestleAustralia2026-04-19Chanay, Jeffrey A Esq PROPOSAL27Elwin Sharvill
1047Nicolas IturbideRussia2026-04-28Benton, John B Jr RENEWAL38Xuxue Feng
1048Jefferson SchemmerAustralia2026-04-30Chapman, Ross E Esq NEGOTIATION44Anna Fali
1049Rodrigues CampainJapan2026-04-27King, Christopher A Esq NEW71Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Julie StensethUnited KingdomElwin Sharvill RENEWAL
Salvatore StockhamItalyOnyama Limba NEW
Aika InouyeArgentinaOnyama Limba QUALIFIED
Adams MorascaRussiaAsiya Javayant QUALIFIED
Adams MorascaItalyAsiya Javayant NEGOTIATION
Julie StensethCanadaXuxue Feng UNQUALIFIED
Jefferson SchemmerCanadaOnyama Limba QUALIFIED
Darci PoquetteArgentinaAnna Fali RENEWAL
Adams MorascaArgentinaStephen Shaw QUALIFIED
Sinclair WaycottRussiaElwin Sharvill NEW
Maria MarrierBrazilAsiya Javayant RENEWAL
Tony FollerAustraliaIvan Magalhaes PROPOSAL
Izzy GarufiRussiaAsiya Javayant UNQUALIFIED
Adams MorascaSpainAnna Fali PROPOSAL
Rodrigues CampainUnited KingdomAnna Fali QUALIFIED
Chavez BriddickItalyAmy Elsner NEW
Morrow RutaCanadaElwin Sharvill NEGOTIATION
Francesco ShinkoRussiaIvan Magalhaes NEGOTIATION
Costa DilliardIndiaAnna Fali QUALIFIED
Darci PoquetteSpainAsiya Javayant NEW
Alejandro PerinItalyAsiya Javayant NEGOTIATION
Chavez BriddickRussiaOnyama Limba NEW
Kadeem FlosiJapanOnyama Limba UNQUALIFIED
Alejandro PerinRussiaAnna Fali NEW
Salvatore StockhamAustraliaAsiya Javayant QUALIFIED
David DarakjyCanadaAnna Fali QUALIFIED
Ashley DoeArgentinaAsiya Javayant NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill NEW
Claire TollnerItalyIoni Bowcher PROPOSAL
Faith GillianSpainAnna Fali UNQUALIFIED
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Octavia MaletJapanBernardo Dominic PROPOSAL
Wickens NestleItalyBernardo Dominic UNQUALIFIED
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali UNQUALIFIED
Silvio SlusarskiArgentinaBernardo Dominic RENEWAL
Jeanfrancois VenereArgentinaXuxue Feng PROPOSAL
Francesco ShinkoArgentinaAnna Fali QUALIFIED
Johnson SergiUnited KingdomOnyama Limba RENEWAL
Tony FollerJapanAnna Fali PROPOSAL
Isabel BowleyCanadaIvan Magalhaes PROPOSAL
Chavez BriddickAustraliaAnna Fali RENEWAL
Cody SaylorsBrazilBernardo Dominic NEW
Isabel BowleyBrazilXuxue Feng PROPOSAL
Kaitlin OstroskyJapanIoni Bowcher NEW
Claire TollnerJapanStephen Shaw NEGOTIATION
Morrow RutaFranceAsiya Javayant NEW
Murillo MaletGermanyIvan Magalhaes PROPOSAL
Smith GlickBrazilOnyama Limba UNQUALIFIED
Leon OldroydRussiaIoni Bowcher RENEWAL
Frozen Columns
Name
Costa Dilliard
Mujtaba Nicka
Mayumi Kolmetz
Octavia Malet
Ashley Doe
Aruna Figeroa
Stacey Maclead
Jones Vocelka
Ricardo Gaucho
Costa Dilliard
Ivar Paprocki
Sinclair Waycott
Juan Wieser
Alejandro Perin
Julie Stenseth
Jennifer Amigon
Silvio Slusarski
James Butt
Francesco Shinko
Clifford Rim
Alejandro Perin
Ricardo Gaucho
Julie Stenseth
Aika Inouye
David Darakjy
Smith Glick
Jones Vocelka
Arvin Albares
Emily Whobrey
Munro Ferencz
David Darakjy
Aika Inouye
Smith Glick
Clifford Rim
Leja Caldarera
Arvin Albares
Murillo Malet
Isabel Bowley
Johnson Sergi
Aditya Kusko
Rodrigues Campain
Emily Whobrey
Murillo Malet
Stacey Maclead
Maisha Rulapaugh
Stacey Maclead
Rodrigues Campain
Jones Vocelka
Ashley Doe
Mayumi Kolmetz
IdCountryDate
1000Spain2026-04-12
1001Australia2026-04-05
1002Canada2026-04-18
1003Spain2026-04-22
1004Brazil2026-04-16
1005Brazil2026-04-18
1006Russia2026-04-09
1007Russia2026-04-21
1008Argentina2026-04-05
1009India2026-04-20
1010Canada2026-04-05
1011United Kingdom2026-04-04
1012Brazil2026-05-03
1013Brazil2026-04-21
1014India2026-04-15
1015Argentina2026-04-23
1016Spain2026-04-09
1017France2026-04-27
1018India2026-04-18
1019Spain2026-04-05
1020India2026-04-21
1021Italy2026-04-23
1022Australia2026-04-14
1023United Kingdom2026-04-17
1024Japan2026-04-09
1025Brazil2026-04-09
1026Australia2026-04-23
1027United Kingdom2026-04-18
1028United Kingdom2026-04-10
1029France2026-04-24
1030India2026-04-28
1031Italy2026-04-07
1032Italy2026-04-07
1033Canada2026-04-28
1034United Kingdom2026-04-13
1035United Kingdom2026-04-25
1036Canada2026-05-02
1037Japan2026-05-02
1038Germany2026-04-14
1039Brazil2026-04-18
1040Spain2026-04-21
1041Spain2026-04-16
1042Canada2026-05-02
1043Italy2026-04-20
1044Brazil2026-04-25
1045Japan2026-04-06
1046India2026-04-20
1047Italy2026-04-19
1048Russia2026-04-23
1049France2026-04-23

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Canada2026-04-08
Chavez Briddick1001India2026-04-08
Jones Vocelka1002Russia2026-05-03
Clifford Rim1003Spain2026-04-06
Faith Gillian1004Italy2026-04-15
Jones Vocelka1005Canada2026-04-07
Stacey Maclead1006India2026-04-09
Alejandro Perin1007India2026-04-26
Johnson Sergi1008Italy2026-04-19
Isabel Bowley1009France2026-04-18
Izzy Garufi1010Canada2026-04-05
Misaki Royster1011France2026-04-15
Ashley Doe1012Brazil2026-04-06
Deepesh Chui1013Germany2026-04-19
Francesco Shinko1014Russia2026-04-24
Silvio Slusarski1015Brazil2026-04-27
Mayumi Kolmetz1016Brazil2026-04-06
Morrow Ruta1017United Kingdom2026-04-08
Jones Vocelka1018Russia2026-04-04
Clifford Rim1019Spain2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardAustraliaStephen Shaw PROPOSAL
Tony FollerJapanStephen Shaw RENEWAL
Darci PoquetteFranceXuxue Feng UNQUALIFIED
Jones VocelkaSpainElwin Sharvill NEW
Sinclair WaycottAustraliaAmy Elsner NEW
Maria MarrierSpainBernardo Dominic NEW
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
Wickens NestleCanadaIoni Bowcher RENEWAL
Costa DilliardBrazilAnna Fali NEGOTIATION
Juan WieserCanadaAnna Fali PROPOSAL
Adams MorascaSpainElwin Sharvill QUALIFIED
Nicolas IturbideJapanAnna Fali UNQUALIFIED
Emily WhobreyJapanAsiya Javayant NEW
Misaki RoysterItalyXuxue Feng RENEWAL
Wickens NestleAustraliaBernardo Dominic QUALIFIED
James ButtBrazilBernardo Dominic NEGOTIATION
Jennifer AmigonArgentinaIoni Bowcher NEW
Jennifer AmigonFranceXuxue Feng UNQUALIFIED
Octavia MaletRussiaAsiya Javayant PROPOSAL
Leon OldroydAustraliaIvan Magalhaes PROPOSAL
Izzy GarufiUnited KingdomElwin Sharvill NEGOTIATION
Alejandro PerinJapanOnyama Limba PROPOSAL
David DarakjySpainElwin Sharvill UNQUALIFIED
Leon OldroydArgentinaBernardo Dominic PROPOSAL
Salvatore StockhamUnited KingdomAsiya Javayant QUALIFIED
David DarakjyRussiaIoni Bowcher UNQUALIFIED
Maria MarrierBrazilIvan Magalhaes RENEWAL
Salvatore StockhamSpainElwin Sharvill NEW
Emily WhobreySpainOnyama Limba PROPOSAL
Ivar PaprockiUnited KingdomAnna Fali NEW
Isabel BowleyArgentinaIoni Bowcher NEW
Juan WieserJapanIvan Magalhaes RENEWAL
Stacey MacleadUnited KingdomAmy Elsner NEW
Rodrigues CampainSpainAnna Fali RENEWAL
Maria MarrierItalyIoni Bowcher QUALIFIED
Leja CaldareraAustraliaStephen Shaw UNQUALIFIED
Mayumi KolmetzRussiaOnyama Limba PROPOSAL
Jennifer AmigonRussiaAmy Elsner RENEWAL
Leja CaldareraIndiaElwin Sharvill QUALIFIED
Stacey MacleadFranceAsiya Javayant QUALIFIED

<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>