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
Izzy GarufiFranceStephen Shaw UNQUALIFIED
Aruna FigeroaAustraliaOnyama Limba QUALIFIED
Juan WieserIndiaStephen Shaw UNQUALIFIED
Faith GillianSpainAsiya Javayant QUALIFIED
Mayumi KolmetzBrazilStephen Shaw NEGOTIATION
Maria MarrierIndiaElwin Sharvill QUALIFIED
Kaitlin OstroskyFranceXuxue Feng PROPOSAL
Aditya KuskoJapanAmy Elsner PROPOSAL
Julie StensethRussiaAnna Fali RENEWAL
Maria MarrierRussiaAmy Elsner PROPOSAL
Jones VocelkaFranceBernardo Dominic NEW
Johnson SergiRussiaElwin Sharvill PROPOSAL
Leon OldroydJapanStephen Shaw QUALIFIED
Adams MorascaIndiaStephen Shaw UNQUALIFIED
Aruna FigeroaUnited KingdomStephen Shaw PROPOSAL
Mujtaba NickaIndiaIvan Magalhaes RENEWAL
Nicolas IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Julie StensethItalyXuxue Feng RENEWAL
Aika InouyeCanadaIvan Magalhaes NEW
Misaki RoysterArgentinaAnna Fali RENEWAL
Jeanfrancois VenereRussiaAnna Fali PROPOSAL
Jefferson SchemmerGermanyAmy Elsner NEGOTIATION
Ricardo GauchoJapanOnyama Limba NEGOTIATION
Johnson SergiCanadaOnyama Limba QUALIFIED
Aruna FigeroaFranceAsiya Javayant PROPOSAL
Izzy GarufiFranceXuxue Feng NEGOTIATION
Kaitlin OstroskyCanadaOnyama Limba NEW
Tony FollerSpainOnyama Limba NEW
Nicolas IturbideUnited KingdomIvan Magalhaes RENEWAL
Salvatore StockhamArgentinaAnna Fali UNQUALIFIED
Wickens NestleGermanyStephen Shaw NEGOTIATION
Leja CaldareraIndiaAnna Fali PROPOSAL
Misaki RoysterGermanyAnna Fali QUALIFIED
Maisha RulapaughBrazilOnyama Limba PROPOSAL
Ashley DoeUnited KingdomStephen Shaw NEGOTIATION
Aruna FigeroaSpainOnyama Limba QUALIFIED
Murillo MaletIndiaIoni Bowcher PROPOSAL
Jennifer AmigonGermanyOnyama Limba PROPOSAL
Leja CaldareraAustraliaIoni Bowcher RENEWAL
Izzy GarufiArgentinaOnyama Limba NEGOTIATION
Johnson SergiItalyStephen Shaw RENEWAL
Ricardo GauchoRussiaAnna Fali NEGOTIATION
Morrow RutaUnited KingdomBernardo Dominic QUALIFIED
Juan WieserCanadaIoni Bowcher QUALIFIED
Darci PoquetteJapanOnyama Limba RENEWAL
Maria MarrierCanadaXuxue Feng PROPOSAL
Ashley DoeIndiaIvan Magalhaes NEW
Leon OldroydFranceIvan Magalhaes PROPOSAL
Claire TollnerJapanStephen Shaw UNQUALIFIED
Julie StensethGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaItalyAsiya Javayant QUALIFIED
Deepesh ChuiFranceAsiya Javayant NEW
Jeanfrancois VenereFranceAsiya Javayant QUALIFIED
Munro FerenczArgentinaAsiya Javayant NEW
Smith GlickCanadaXuxue Feng NEGOTIATION
Rodrigues CampainCanadaIvan Magalhaes PROPOSAL
Chavez BriddickAustraliaXuxue Feng NEW
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Ricardo GauchoAustraliaAnna Fali QUALIFIED
Chavez BriddickArgentinaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimItaly2026-06-02Morlong Associates UNQUALIFIED1Asiya Javayant
1001Antonio CaudyItaly2026-06-10Feiner Bros NEGOTIATION63Xuxue Feng
1002Costa DilliardFrance2026-05-27Truhlar And Truhlar Attys RENEWAL9Bernardo Dominic
1003Silvio SlusarskiSpain2026-06-15Feltz Printing Service NEW95Elwin Sharvill
1004Leon OldroydUnited Kingdom2026-05-31Chapman, Ross E Esq RENEWAL14Ioni Bowcher
1005Costa DilliardItaly2026-05-28Chemel, James L Cpa NEGOTIATION88Anna Fali
1006Juan WieserRussia2026-05-29Feltz Printing Service UNQUALIFIED58Onyama Limba
1007Rodrigues CampainRussia2026-06-18Buckley Miller Wright PROPOSAL76Xuxue Feng
1008Mayumi KolmetzIndia2026-06-04King, Christopher A Esq NEGOTIATION11Onyama Limba
1009Emily WhobreyGermany2026-05-24Feiner Bros RENEWAL95Ioni Bowcher
1010Wickens NestleJapan2026-06-10Commercial Press QUALIFIED40Ivan Magalhaes
1011Aika InouyeGermany2026-06-12Feltz Printing Service NEGOTIATION54Stephen Shaw
1012Maria MarrierUnited Kingdom2026-06-02Chemel, James L Cpa UNQUALIFIED57Elwin Sharvill
1013Arvin AlbaresJapan2026-06-08Printing Dimensions QUALIFIED98Amy Elsner
1014Costa DilliardFrance2026-06-12Commercial Press RENEWAL86Onyama Limba
1015Misaki RoysterFrance2026-05-24Benton, John B Jr UNQUALIFIED24Amy Elsner
1016Kadeem FlosiIndia2026-06-01Dorl, James J Esq UNQUALIFIED79Elwin Sharvill
1017Aika InouyeFrance2026-05-25Feltz Printing Service UNQUALIFIED25Xuxue Feng
1018James ButtUnited Kingdom2026-06-04Chapman, Ross E Esq NEW87Onyama Limba
1019Sinclair WaycottSpain2026-06-01Chapman, Ross E Esq RENEWAL82Xuxue Feng
1020Isabel BowleyAustralia2026-05-25Benton, John B Jr RENEWAL84Bernardo Dominic
1021Smith GlickRussia2026-06-03King, Christopher A Esq NEW47Xuxue Feng
1022Antonio CaudyItaly2026-06-15Rangoni Of Florence NEGOTIATION26Onyama Limba
1023Maria MarrierSpain2026-06-07Chemel, James L Cpa UNQUALIFIED36Ivan Magalhaes
1024Aditya KuskoAustralia2026-05-29Rousseaux, Michael Esq PROPOSAL49Elwin Sharvill
1025Leon OldroydAustralia2026-06-04Morlong Associates RENEWAL61Anna Fali
1026Costa DilliardIndia2026-05-30Printing Dimensions QUALIFIED26Elwin Sharvill
1027Rodrigues CampainBrazil2026-06-17Feiner Bros RENEWAL6Xuxue Feng
1028Claire TollnerJapan2026-06-07Chapman, Ross E Esq QUALIFIED42Onyama Limba
1029Ricardo GauchoSpain2026-06-15Morlong Associates QUALIFIED32Stephen Shaw
1030Greenwood BologniaRussia2026-05-23Truhlar And Truhlar Attys NEW18Ivan Magalhaes
1031Stacey MacleadJapan2026-06-03Morlong Associates RENEWAL38Elwin Sharvill
1032Sinclair WaycottFrance2026-06-13Chapman, Ross E Esq UNQUALIFIED6Asiya Javayant
1033Mayumi KolmetzSpain2026-05-24Dorl, James J Esq RENEWAL83Xuxue Feng
1034Silvio SlusarskiJapan2026-05-29Dorl, James J Esq QUALIFIED48Amy Elsner
1035Salvatore StockhamIndia2026-05-28King, Christopher A Esq QUALIFIED34Asiya Javayant
1036James ButtUnited Kingdom2026-06-05Feltz Printing Service NEW37Bernardo Dominic
1037Costa DilliardGermany2026-06-18Dorl, James J Esq PROPOSAL38Asiya Javayant
1038Faith GillianCanada2026-05-28Printing Dimensions QUALIFIED61Stephen Shaw
1039David DarakjySpain2026-05-30Feltz Printing Service NEGOTIATION56Stephen Shaw
1040Silvio SlusarskiFrance2026-06-19Commercial Press NEW72Stephen Shaw
1041Clifford RimGermany2026-06-03Benton, John B Jr PROPOSAL15Ioni Bowcher
1042Sinclair WaycottGermany2026-05-25Morlong Associates PROPOSAL50Ioni Bowcher
1043Julie StensethCanada2026-05-27Chemel, James L Cpa PROPOSAL1Anna Fali
1044Johnson SergiAustralia2026-06-06Rangoni Of Florence PROPOSAL13Ivan Magalhaes
1045Antonio CaudyIndia2026-05-23Printing Dimensions UNQUALIFIED38Amy Elsner
1046Aruna FigeroaSpain2026-06-04Feiner Bros QUALIFIED97Anna Fali
1047Rodrigues CampainArgentina2026-06-08Chemel, James L Cpa NEW71Ivan Magalhaes
1048Misaki RoysterBrazil2026-06-06Commercial Press QUALIFIED94Anna Fali
1049Salvatore StockhamArgentina2026-06-05Chemel, James L Cpa UNQUALIFIED47Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamRussiaXuxue Feng NEW
Kadeem FlosiItalyBernardo Dominic NEW
Aditya KuskoArgentinaIvan Magalhaes UNQUALIFIED
Isabel BowleySpainAsiya Javayant RENEWAL
Octavia MaletCanadaStephen Shaw QUALIFIED
Jeanfrancois VenereUnited KingdomElwin Sharvill RENEWAL
Aruna FigeroaGermanyOnyama Limba UNQUALIFIED
Ivar PaprockiGermanyAmy Elsner RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant NEGOTIATION
Jones VocelkaRussiaOnyama Limba QUALIFIED
Ricardo GauchoRussiaAsiya Javayant QUALIFIED
Nicolas IturbideBrazilIvan Magalhaes PROPOSAL
Murillo MaletGermanyXuxue Feng QUALIFIED
Sinclair WaycottUnited KingdomOnyama Limba UNQUALIFIED
Munro FerenczJapanAnna Fali NEW
Salvatore StockhamGermanyBernardo Dominic QUALIFIED
Izzy GarufiSpainAnna Fali PROPOSAL
Julie StensethSpainElwin Sharvill NEW
Johnson SergiArgentinaXuxue Feng PROPOSAL
Ivar PaprockiIndiaIvan Magalhaes RENEWAL
Nicolas IturbideCanadaElwin Sharvill QUALIFIED
Munro FerenczSpainXuxue Feng QUALIFIED
Wickens NestleIndiaOnyama Limba NEGOTIATION
Silvio SlusarskiGermanyAnna Fali NEW
Mayumi KolmetzArgentinaIoni Bowcher PROPOSAL
Ivar PaprockiIndiaOnyama Limba NEGOTIATION
Cody SaylorsCanadaElwin Sharvill NEW
Ashley DoeItalyOnyama Limba PROPOSAL
Morrow RutaBrazilStephen Shaw NEGOTIATION
Johnson SergiFranceBernardo Dominic NEW
Wickens NestleArgentinaStephen Shaw NEW
Clifford RimSpainStephen Shaw PROPOSAL
Ricardo GauchoUnited KingdomIoni Bowcher NEGOTIATION
Ivar PaprockiItalyOnyama Limba NEGOTIATION
Costa DilliardGermanyAnna Fali QUALIFIED
Aika InouyeCanadaAmy Elsner PROPOSAL
Jennifer AmigonArgentinaXuxue Feng UNQUALIFIED
Ricardo GauchoArgentinaAmy Elsner NEGOTIATION
Silvio SlusarskiUnited KingdomAnna Fali PROPOSAL
Aditya KuskoCanadaXuxue Feng NEGOTIATION
Octavia MaletBrazilAsiya Javayant UNQUALIFIED
Aruna FigeroaRussiaStephen Shaw PROPOSAL
Francesco ShinkoSpainElwin Sharvill PROPOSAL
Tony FollerSpainAsiya Javayant NEGOTIATION
Clifford RimArgentinaAsiya Javayant QUALIFIED
Ricardo GauchoFranceBernardo Dominic RENEWAL
Ashley DoeRussiaIvan Magalhaes PROPOSAL
Ashley DoeIndiaOnyama Limba NEW
Leja CaldareraSpainAmy Elsner PROPOSAL
Ashley DoeSpainStephen Shaw NEGOTIATION
Frozen Columns
Name
Ricardo Gaucho
Deepesh Chui
Francesco Shinko
Maisha Rulapaugh
Kadeem Flosi
Claire Tollner
Smith Glick
Claire Tollner
Murillo Malet
Izzy Garufi
Ricardo Gaucho
Salvatore Stockham
Octavia Malet
Izzy Garufi
Leon Oldroyd
Kadeem Flosi
Tony Foller
Cody Saylors
Salvatore Stockham
Deepesh Chui
Kaitlin Ostrosky
Kadeem Flosi
Kadeem Flosi
Johnson Sergi
Murillo Malet
Rodrigues Campain
Salvatore Stockham
Antonio Caudy
Misaki Royster
Misaki Royster
Octavia Malet
Smith Glick
Francesco Shinko
Tony Foller
Cody Saylors
Leon Oldroyd
Juan Wieser
James Butt
Murillo Malet
Octavia Malet
Kadeem Flosi
Juan Wieser
Smith Glick
Ivar Paprocki
Aruna Figeroa
Morrow Ruta
Maisha Rulapaugh
Ashley Doe
Maisha Rulapaugh
Leon Oldroyd
IdCountryDate
1000France2026-05-26
1001Canada2026-06-10
1002Japan2026-05-23
1003Japan2026-06-08
1004Canada2026-06-10
1005Brazil2026-05-29
1006Argentina2026-06-14
1007India2026-05-22
1008Germany2026-06-03
1009United Kingdom2026-06-03
1010Germany2026-06-04
1011Canada2026-05-31
1012Russia2026-06-14
1013Australia2026-06-13
1014Canada2026-06-09
1015India2026-06-20
1016France2026-05-27
1017Japan2026-05-31
1018Russia2026-06-20
1019Spain2026-05-31
1020Australia2026-06-17
1021Brazil2026-06-18
1022Italy2026-06-16
1023Germany2026-06-05
1024France2026-06-17
1025India2026-05-30
1026Spain2026-06-11
1027India2026-06-12
1028Australia2026-06-17
1029Russia2026-06-04
1030United Kingdom2026-05-28
1031Spain2026-06-18
1032Russia2026-06-16
1033Germany2026-06-12
1034France2026-06-13
1035Japan2026-06-10
1036Canada2026-06-20
1037Japan2026-05-30
1038Brazil2026-06-05
1039Germany2026-06-15
1040India2026-06-18
1041Argentina2026-06-01
1042Japan2026-06-19
1043Russia2026-06-14
1044Spain2026-06-04
1045Japan2026-05-26
1046Germany2026-06-07
1047Canada2026-05-31
1048France2026-06-14
1049Germany2026-06-03

On-Demand Data

NameIdCountryDate
David Darakjy1000Spain2026-06-06
Julie Stenseth1001Argentina2026-06-01
Munro Ferencz1002Brazil2026-06-14
Costa Dilliard1003Spain2026-06-11
Kaitlin Ostrosky1004Japan2026-05-23
Maisha Rulapaugh1005Brazil2026-06-20
Mujtaba Nicka1006France2026-06-20
Francesco Shinko1007Russia2026-06-08
Rodrigues Campain1008Canada2026-06-10
Johnson Sergi1009India2026-05-26
Murillo Malet1010Russia2026-05-28
Ricardo Gaucho1011India2026-05-26
Costa Dilliard1012Canada2026-06-08
Deepesh Chui1013Germany2026-05-25
Izzy Garufi1014Italy2026-06-07
Wickens Nestle1015Russia2026-06-10
Morrow Ruta1016France2026-06-19
Ivar Paprocki1017Brazil2026-06-09
Kadeem Flosi1018Japan2026-05-25
Claire Tollner1019India2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottRussiaIvan Magalhaes UNQUALIFIED
Nicolas IturbideCanadaStephen Shaw NEW
David DarakjyItalyXuxue Feng UNQUALIFIED
Sinclair WaycottBrazilAsiya Javayant QUALIFIED
Silvio SlusarskiSpainAmy Elsner NEGOTIATION
Izzy GarufiJapanAnna Fali PROPOSAL
Adams MorascaItalyIoni Bowcher RENEWAL
Greenwood BologniaItalyXuxue Feng NEW
Morrow RutaBrazilElwin Sharvill UNQUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher QUALIFIED
Clifford RimArgentinaStephen Shaw RENEWAL
Faith GillianAustraliaXuxue Feng RENEWAL
Julie StensethGermanyOnyama Limba PROPOSAL
Rodrigues CampainRussiaElwin Sharvill NEGOTIATION
Rodrigues CampainUnited KingdomIoni Bowcher UNQUALIFIED
Chavez BriddickFranceAmy Elsner PROPOSAL
Jennifer AmigonBrazilBernardo Dominic PROPOSAL
Mayumi KolmetzArgentinaAsiya Javayant UNQUALIFIED
Morrow RutaRussiaIoni Bowcher NEW
Mujtaba NickaJapanAnna Fali PROPOSAL
Arvin AlbaresFranceAmy Elsner NEW
Juan WieserAustraliaXuxue Feng RENEWAL
Ricardo GauchoIndiaBernardo Dominic UNQUALIFIED
Mujtaba NickaGermanyOnyama Limba RENEWAL
Darci PoquetteItalyStephen Shaw NEGOTIATION
Aruna FigeroaFranceIvan Magalhaes UNQUALIFIED
Ricardo GauchoGermanyOnyama Limba NEGOTIATION
Tony FollerCanadaIvan Magalhaes UNQUALIFIED
Emily WhobreyGermanyOnyama Limba QUALIFIED
Aditya KuskoCanadaIvan Magalhaes NEW
Costa DilliardGermanyAnna Fali NEW
Aika InouyeItalyXuxue Feng NEW
Tony FollerRussiaAmy Elsner UNQUALIFIED
Rodrigues CampainRussiaElwin Sharvill NEGOTIATION
Kaitlin OstroskyFranceIvan Magalhaes UNQUALIFIED
Greenwood BologniaIndiaXuxue Feng QUALIFIED
Stacey MacleadRussiaAsiya Javayant NEGOTIATION
Clifford RimFranceIoni Bowcher NEW
James ButtIndiaAsiya Javayant UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya 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>