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
Silvio SlusarskiFranceIoni Bowcher NEGOTIATION
James ButtGermanyXuxue Feng PROPOSAL
Morrow RutaArgentinaBernardo Dominic RENEWAL
Murillo MaletGermanyElwin Sharvill NEW
Tony FollerGermanyElwin Sharvill PROPOSAL
Aditya KuskoIndiaAsiya Javayant QUALIFIED
Izzy GarufiAustraliaIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomStephen Shaw RENEWAL
James ButtJapanStephen Shaw NEW
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Leon OldroydSpainAnna Fali RENEWAL
Deepesh ChuiRussiaAmy Elsner NEGOTIATION
Leja CaldareraCanadaBernardo Dominic UNQUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant QUALIFIED
Mayumi KolmetzArgentinaAsiya Javayant QUALIFIED
Ashley DoeAustraliaStephen Shaw QUALIFIED
Wickens NestleGermanyAmy Elsner NEW
Ashley DoeBrazilAmy Elsner PROPOSAL
Adams MorascaArgentinaIvan Magalhaes NEW
Antonio CaudyIndiaBernardo Dominic PROPOSAL
Silvio SlusarskiUnited KingdomIvan Magalhaes NEW
Costa DilliardArgentinaIoni Bowcher QUALIFIED
Isabel BowleyIndiaOnyama Limba RENEWAL
Smith GlickSpainElwin Sharvill NEW
Morrow RutaUnited KingdomBernardo Dominic RENEWAL
Aditya KuskoAustraliaXuxue Feng NEGOTIATION
Julie StensethIndiaElwin Sharvill QUALIFIED
Stacey MacleadSpainStephen Shaw RENEWAL
Maisha RulapaughRussiaOnyama Limba PROPOSAL
Emily WhobreySpainXuxue Feng PROPOSAL
Munro FerenczAustraliaIvan Magalhaes PROPOSAL
Tony FollerIndiaAnna Fali RENEWAL
David DarakjyArgentinaBernardo Dominic QUALIFIED
Antonio CaudyJapanXuxue Feng UNQUALIFIED
Nicolas IturbideFranceElwin Sharvill PROPOSAL
Claire TollnerSpainXuxue Feng PROPOSAL
Ricardo GauchoBrazilAnna Fali NEGOTIATION
Stacey MacleadBrazilAsiya Javayant NEGOTIATION
Claire TollnerSpainXuxue Feng RENEWAL
Ricardo GauchoItalyStephen Shaw PROPOSAL
Faith GillianIndiaXuxue Feng QUALIFIED
Alejandro PerinArgentinaIoni Bowcher RENEWAL
Cody SaylorsUnited KingdomIvan Magalhaes NEW
James ButtGermanyOnyama Limba RENEWAL
Wickens NestleUnited KingdomAmy Elsner NEGOTIATION
Alejandro PerinRussiaBernardo Dominic NEGOTIATION
David DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Arvin AlbaresArgentinaXuxue Feng RENEWAL
Salvatore StockhamCanadaBernardo Dominic PROPOSAL
Jennifer AmigonArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan WieserUnited KingdomElwin Sharvill PROPOSAL
Greenwood BologniaArgentinaAnna Fali PROPOSAL
Nicolas IturbideFranceStephen Shaw QUALIFIED
Johnson SergiRussiaIoni Bowcher RENEWAL
Aruna FigeroaUnited KingdomStephen Shaw PROPOSAL
Aruna FigeroaCanadaIoni Bowcher NEW
Deepesh ChuiArgentinaAnna Fali NEW
Jeanfrancois VenereIndiaStephen Shaw UNQUALIFIED
Darci PoquetteArgentinaAnna Fali QUALIFIED
Julie StensethItalyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainUnited Kingdom2026-05-18King, Christopher A Esq RENEWAL96Ioni Bowcher
1001Aruna FigeroaUnited Kingdom2026-05-18Commercial Press QUALIFIED43Bernardo Dominic
1002Aika InouyeArgentina2026-05-11Printing Dimensions NEGOTIATION71Ioni Bowcher
1003Maisha RulapaughBrazil2026-05-21Morlong Associates PROPOSAL80Xuxue Feng
1004Maisha RulapaughFrance2026-05-14Feiner Bros RENEWAL2Asiya Javayant
1005Kadeem FlosiUnited Kingdom2026-05-10Benton, John B Jr NEW51Ioni Bowcher
1006Leja CaldareraUnited Kingdom2026-06-06Feiner Bros PROPOSAL41Xuxue Feng
1007Ivar PaprockiRussia2026-05-10Feiner Bros UNQUALIFIED62Onyama Limba
1008Tony FollerFrance2026-05-17Chemel, James L Cpa NEGOTIATION26Bernardo Dominic
1009Octavia MaletFrance2026-05-14Chanay, Jeffrey A Esq UNQUALIFIED21Elwin Sharvill
1010Costa DilliardJapan2026-06-05Buckley Miller Wright UNQUALIFIED90Elwin Sharvill
1011Juan WieserFrance2026-06-07Rangoni Of Florence NEGOTIATION42Xuxue Feng
1012Octavia MaletUnited Kingdom2026-06-06Chemel, James L Cpa QUALIFIED79Stephen Shaw
1013Aditya KuskoGermany2026-05-26Commercial Press PROPOSAL40Asiya Javayant
1014James ButtJapan2026-05-26Buckley Miller Wright UNQUALIFIED76Asiya Javayant
1015Mujtaba NickaItaly2026-05-19Morlong Associates PROPOSAL59Asiya Javayant
1016Cody SaylorsGermany2026-05-14King, Christopher A Esq UNQUALIFIED57Bernardo Dominic
1017Jones VocelkaSpain2026-05-20Rousseaux, Michael Esq PROPOSAL39Amy Elsner
1018Salvatore StockhamAustralia2026-05-20Feltz Printing Service UNQUALIFIED85Asiya Javayant
1019Sinclair WaycottRussia2026-05-10Rangoni Of Florence QUALIFIED88Amy Elsner
1020Ashley DoeArgentina2026-06-03Truhlar And Truhlar Attys RENEWAL93Ivan Magalhaes
1021Ivar PaprockiItaly2026-05-14Feiner Bros NEW31Amy Elsner
1022Misaki RoysterIndia2026-06-07Dorl, James J Esq UNQUALIFIED6Ioni Bowcher
1023Antonio CaudyArgentina2026-05-15Dorl, James J Esq UNQUALIFIED35Ivan Magalhaes
1024Chavez BriddickCanada2026-06-06Chemel, James L Cpa NEW70Anna Fali
1025Nicolas IturbideSpain2026-05-17Commercial Press NEGOTIATION97Stephen Shaw
1026Francesco ShinkoFrance2026-05-27Chemel, James L Cpa PROPOSAL13Stephen Shaw
1027Silvio SlusarskiIndia2026-05-13Feltz Printing Service NEW37Stephen Shaw
1028Juan WieserJapan2026-05-29Chanay, Jeffrey A Esq NEGOTIATION1Onyama Limba
1029Leon OldroydGermany2026-05-12Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1030Greenwood BologniaFrance2026-05-21King, Christopher A Esq RENEWAL58Onyama Limba
1031Rodrigues CampainRussia2026-06-06Morlong Associates RENEWAL80Onyama Limba
1032Arvin AlbaresIndia2026-05-25Chanay, Jeffrey A Esq RENEWAL93Elwin Sharvill
1033Octavia MaletGermany2026-05-12Feltz Printing Service RENEWAL8Bernardo Dominic
1034Adams MorascaArgentina2026-05-21Chapman, Ross E Esq NEW44Ivan Magalhaes
1035Tony FollerGermany2026-05-18Chemel, James L Cpa RENEWAL78Xuxue Feng
1036Juan WieserUnited Kingdom2026-05-28Feltz Printing Service UNQUALIFIED32Onyama Limba
1037Misaki RoysterArgentina2026-05-18Feltz Printing Service NEW30Xuxue Feng
1038Maria MarrierAustralia2026-05-30Printing Dimensions PROPOSAL37Elwin Sharvill
1039Octavia MaletArgentina2026-06-07Rousseaux, Michael Esq NEW15Stephen Shaw
1040Aditya KuskoAustralia2026-05-13Truhlar And Truhlar Attys RENEWAL32Anna Fali
1041Maisha RulapaughCanada2026-05-19Feltz Printing Service RENEWAL80Elwin Sharvill
1042Costa DilliardFrance2026-05-26Feltz Printing Service PROPOSAL83Bernardo Dominic
1043Antonio CaudyAustralia2026-05-29Dorl, James J Esq PROPOSAL14Ioni Bowcher
1044Aditya KuskoJapan2026-05-15Commercial Press QUALIFIED33Amy Elsner
1045Leja CaldareraJapan2026-05-19Commercial Press RENEWAL16Bernardo Dominic
1046Silvio SlusarskiArgentina2026-05-21Buckley Miller Wright NEGOTIATION72Amy Elsner
1047Alejandro PerinArgentina2026-05-29Buckley Miller Wright QUALIFIED25Stephen Shaw
1048Kaitlin OstroskySpain2026-06-02Morlong Associates NEGOTIATION19Onyama Limba
1049Arvin AlbaresBrazil2026-05-17Chemel, James L Cpa NEGOTIATION51Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilAnna Fali PROPOSAL
Tony FollerJapanIoni Bowcher NEGOTIATION
Chavez BriddickItalyAmy Elsner QUALIFIED
Johnson SergiSpainElwin Sharvill RENEWAL
Aditya KuskoArgentinaAnna Fali QUALIFIED
Aika InouyeArgentinaXuxue Feng RENEWAL
Aika InouyeAustraliaStephen Shaw QUALIFIED
Clifford RimUnited KingdomElwin Sharvill NEW
Jones VocelkaJapanAmy Elsner QUALIFIED
Julie StensethGermanyOnyama Limba QUALIFIED
Faith GillianCanadaIoni Bowcher NEW
James ButtUnited KingdomAmy Elsner RENEWAL
Ricardo GauchoCanadaXuxue Feng NEW
Leon OldroydJapanAsiya Javayant RENEWAL
Jones VocelkaItalyAmy Elsner PROPOSAL
Tony FollerAustraliaIvan Magalhaes QUALIFIED
Johnson SergiFranceXuxue Feng QUALIFIED
Kadeem FlosiSpainOnyama Limba NEGOTIATION
Silvio SlusarskiAustraliaIoni Bowcher NEW
Alejandro PerinGermanyXuxue Feng NEGOTIATION
Nicolas IturbideUnited KingdomIvan Magalhaes RENEWAL
Octavia MaletAustraliaIvan Magalhaes PROPOSAL
Francesco ShinkoIndiaAnna Fali NEGOTIATION
Costa DilliardSpainOnyama Limba RENEWAL
Aditya KuskoAustraliaIvan Magalhaes QUALIFIED
Jones VocelkaFranceXuxue Feng QUALIFIED
Isabel BowleyItalyIoni Bowcher PROPOSAL
Sinclair WaycottFranceAmy Elsner RENEWAL
Maisha RulapaughUnited KingdomAnna Fali QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore StockhamFranceIoni Bowcher PROPOSAL
Deepesh ChuiAustraliaAmy Elsner NEW
Salvatore StockhamJapanBernardo Dominic QUALIFIED
Adams MorascaRussiaAnna Fali QUALIFIED
Wickens NestleGermanyOnyama Limba NEGOTIATION
Julie StensethRussiaElwin Sharvill UNQUALIFIED
Murillo MaletSpainAnna Fali RENEWAL
James ButtGermanyAsiya Javayant QUALIFIED
Ashley DoeCanadaIvan Magalhaes PROPOSAL
Ricardo GauchoUnited KingdomXuxue Feng NEGOTIATION
Juan WieserUnited KingdomElwin Sharvill RENEWAL
Johnson SergiArgentinaStephen Shaw RENEWAL
Salvatore StockhamIndiaOnyama Limba QUALIFIED
Sinclair WaycottJapanAnna Fali PROPOSAL
Chavez BriddickIndiaStephen Shaw PROPOSAL
Johnson SergiArgentinaBernardo Dominic UNQUALIFIED
James ButtArgentinaBernardo Dominic PROPOSAL
Sinclair WaycottSpainElwin Sharvill NEGOTIATION
Alejandro PerinRussiaOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Jones Vocelka
Murillo Malet
Jefferson Schemmer
Sinclair Waycott
Morrow Ruta
Arvin Albares
Chavez Briddick
Clifford Rim
Deepesh Chui
Salvatore Stockham
Clifford Rim
Tony Foller
James Butt
Jeanfrancois Venere
Munro Ferencz
Johnson Sergi
Aditya Kusko
David Darakjy
Chavez Briddick
James Butt
David Darakjy
Faith Gillian
Kaitlin Ostrosky
Jones Vocelka
Ashley Doe
Izzy Garufi
Stacey Maclead
Ashley Doe
Ivar Paprocki
Clifford Rim
Darci Poquette
Darci Poquette
Aditya Kusko
Octavia Malet
Morrow Ruta
Murillo Malet
Emily Whobrey
Kadeem Flosi
Darci Poquette
Rodrigues Campain
Antonio Caudy
Smith Glick
Greenwood Bolognia
Munro Ferencz
Leja Caldarera
Clifford Rim
Izzy Garufi
Antonio Caudy
Kadeem Flosi
Juan Wieser
IdCountryDate
1000Italy2026-05-15
1001Brazil2026-05-13
1002France2026-05-28
1003Russia2026-05-24
1004Italy2026-06-06
1005Russia2026-05-14
1006Canada2026-05-12
1007Canada2026-05-14
1008Spain2026-05-27
1009Germany2026-05-26
1010Canada2026-05-24
1011Italy2026-05-29
1012Australia2026-06-01
1013Canada2026-05-26
1014United Kingdom2026-05-24
1015Australia2026-05-17
1016Russia2026-06-08
1017Canada2026-05-26
1018Australia2026-06-04
1019Spain2026-06-03
1020Canada2026-05-31
1021India2026-06-03
1022Australia2026-05-18
1023Australia2026-05-20
1024Russia2026-05-20
1025Brazil2026-05-24
1026United Kingdom2026-05-29
1027India2026-05-31
1028Japan2026-05-28
1029Argentina2026-05-29
1030Spain2026-05-10
1031India2026-05-18
1032Russia2026-05-29
1033France2026-06-03
1034Germany2026-05-19
1035Australia2026-05-25
1036Australia2026-05-23
1037India2026-05-18
1038Canada2026-06-08
1039Italy2026-05-19
1040Argentina2026-06-06
1041France2026-05-26
1042Argentina2026-05-31
1043India2026-05-14
1044United Kingdom2026-05-11
1045Argentina2026-05-24
1046Canada2026-05-15
1047Argentina2026-06-02
1048Canada2026-05-18
1049United Kingdom2026-06-03

On-Demand Data

NameIdCountryDate
David Darakjy1000India2026-05-29
Faith Gillian1001Australia2026-06-08
Antonio Caudy1002Brazil2026-05-18
Adams Morasca1003Canada2026-05-15
Darci Poquette1004United Kingdom2026-05-11
Maisha Rulapaugh1005United Kingdom2026-05-16
Greenwood Bolognia1006Argentina2026-05-27
Leja Caldarera1007Argentina2026-06-03
Sinclair Waycott1008Japan2026-06-07
Julie Stenseth1009United Kingdom2026-05-25
Kadeem Flosi1010Brazil2026-06-08
Costa Dilliard1011Australia2026-05-15
Faith Gillian1012Russia2026-05-18
Clifford Rim1013Brazil2026-06-04
Leja Caldarera1014Canada2026-06-04
Ashley Doe1015Canada2026-05-23
Kadeem Flosi1016Canada2026-06-04
Nicolas Iturbide1017Brazil2026-05-10
Maisha Rulapaugh1018France2026-06-07
Nicolas Iturbide1019Japan2026-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzRussiaAnna Fali QUALIFIED
Darci PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Adams MorascaBrazilElwin Sharvill RENEWAL
Tony FollerFranceAnna Fali PROPOSAL
Izzy GarufiFranceIoni Bowcher NEGOTIATION
Juan WieserJapanAmy Elsner NEW
Isabel BowleySpainStephen Shaw UNQUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher QUALIFIED
Alejandro PerinRussiaAnna Fali QUALIFIED
Aruna FigeroaItalyElwin Sharvill NEGOTIATION
Clifford RimIndiaXuxue Feng NEW
Ricardo GauchoRussiaXuxue Feng QUALIFIED
Nicolas IturbideBrazilElwin Sharvill PROPOSAL
Ivar PaprockiCanadaBernardo Dominic NEGOTIATION
Sinclair WaycottItalyAnna Fali PROPOSAL
Aika InouyeItalyElwin Sharvill NEW
Munro FerenczSpainOnyama Limba PROPOSAL
Juan WieserRussiaOnyama Limba QUALIFIED
Faith GillianItalyIoni Bowcher QUALIFIED
Mayumi KolmetzItalyAnna Fali QUALIFIED
Rodrigues CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo MaletSpainIoni Bowcher QUALIFIED
Smith GlickIndiaStephen Shaw NEGOTIATION
Tony FollerArgentinaBernardo Dominic RENEWAL
Aditya KuskoBrazilOnyama Limba PROPOSAL
Jefferson SchemmerIndiaBernardo Dominic RENEWAL
Wickens NestleFranceStephen Shaw NEW
Misaki RoysterFranceIvan Magalhaes NEW
Ashley DoeSpainElwin Sharvill QUALIFIED
Juan WieserCanadaIoni Bowcher UNQUALIFIED
Costa DilliardRussiaXuxue Feng UNQUALIFIED
Wickens NestleFranceBernardo Dominic QUALIFIED
Ashley DoeRussiaAmy Elsner PROPOSAL
Misaki RoysterCanadaStephen Shaw PROPOSAL
Aika InouyeUnited KingdomAnna Fali NEGOTIATION
Murillo MaletFranceAnna Fali QUALIFIED
Ricardo GauchoJapanIoni Bowcher NEW
Alejandro PerinRussiaXuxue Feng NEW
Rodrigues CampainIndiaIvan Magalhaes NEW
Jeanfrancois VenereSpainAsiya Javayant 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>