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
Jones VocelkaSpainStephen Shaw QUALIFIED
Adams MorascaArgentinaAmy Elsner QUALIFIED
Maisha RulapaughRussiaAsiya Javayant PROPOSAL
Kadeem FlosiSpainIvan Magalhaes QUALIFIED
Emily WhobreySpainIvan Magalhaes UNQUALIFIED
Johnson SergiItalyAnna Fali QUALIFIED
Jennifer AmigonCanadaAnna Fali UNQUALIFIED
Faith GillianItalyBernardo Dominic NEGOTIATION
Nicolas IturbideBrazilBernardo Dominic NEGOTIATION
Nicolas IturbideGermanyAsiya Javayant UNQUALIFIED
Maisha RulapaughFranceAnna Fali PROPOSAL
Octavia MaletItalyOnyama Limba PROPOSAL
Jones VocelkaArgentinaIoni Bowcher QUALIFIED
Aruna FigeroaAustraliaIoni Bowcher RENEWAL
Morrow RutaCanadaStephen Shaw QUALIFIED
David DarakjyArgentinaAsiya Javayant NEW
Leon OldroydItalyOnyama Limba NEW
Wickens NestleSpainElwin Sharvill NEGOTIATION
Francesco ShinkoFranceAsiya Javayant NEGOTIATION
Sinclair WaycottSpainOnyama Limba QUALIFIED
Stacey MacleadIndiaAsiya Javayant NEGOTIATION
Faith GillianArgentinaIvan Magalhaes NEGOTIATION
Jones VocelkaAustraliaXuxue Feng RENEWAL
Nicolas IturbideBrazilElwin Sharvill QUALIFIED
Clifford RimRussiaAsiya Javayant RENEWAL
David DarakjyIndiaAnna Fali RENEWAL
Morrow RutaFranceBernardo Dominic RENEWAL
Leja CaldareraBrazilAmy Elsner NEW
Morrow RutaSpainAsiya Javayant PROPOSAL
Wickens NestleItalyBernardo Dominic NEGOTIATION
Faith GillianGermanyAnna Fali RENEWAL
Juan WieserArgentinaAmy Elsner UNQUALIFIED
Munro FerenczSpainBernardo Dominic NEW
Isabel BowleyFranceElwin Sharvill RENEWAL
Jones VocelkaJapanXuxue Feng QUALIFIED
Julie StensethIndiaIoni Bowcher RENEWAL
Wickens NestleSpainIvan Magalhaes QUALIFIED
David DarakjyFranceStephen Shaw UNQUALIFIED
Rodrigues CampainIndiaAsiya Javayant NEW
Juan WieserGermanyAsiya Javayant PROPOSAL
Aika InouyeIndiaOnyama Limba QUALIFIED
Maria MarrierArgentinaAmy Elsner QUALIFIED
Silvio SlusarskiAustraliaStephen Shaw UNQUALIFIED
Leja CaldareraFranceIvan Magalhaes NEW
Silvio SlusarskiGermanyIoni Bowcher QUALIFIED
Smith GlickItalyAmy Elsner UNQUALIFIED
Silvio SlusarskiBrazilBernardo Dominic QUALIFIED
Costa DilliardItalyAmy Elsner NEGOTIATION
Aika InouyeArgentinaAnna Fali QUALIFIED
Juan WieserIndiaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon OldroydBrazilAnna Fali NEGOTIATION
Leon OldroydRussiaAnna Fali QUALIFIED
Mujtaba NickaAustraliaOnyama Limba UNQUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba QUALIFIED
Leon OldroydRussiaStephen Shaw NEGOTIATION
Mayumi KolmetzIndiaAsiya Javayant UNQUALIFIED
James ButtBrazilXuxue Feng NEW
Morrow RutaBrazilBernardo Dominic NEGOTIATION
Julie StensethAustraliaAnna Fali PROPOSAL
Nicolas IturbideItalyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimIndia2026-05-02Chemel, James L Cpa UNQUALIFIED23Xuxue Feng
1001Aditya KuskoGermany2026-05-13Printing Dimensions NEGOTIATION0Asiya Javayant
1002Adams MorascaItaly2026-05-02Chanay, Jeffrey A Esq UNQUALIFIED67Elwin Sharvill
1003Nicolas IturbideArgentina2026-05-05Morlong Associates RENEWAL72Xuxue Feng
1004Ivar PaprockiCanada2026-05-06Buckley Miller Wright QUALIFIED20Ioni Bowcher
1005Cody SaylorsArgentina2026-05-06Truhlar And Truhlar Attys NEW63Onyama Limba
1006Kaitlin OstroskyArgentina2026-05-16Morlong Associates PROPOSAL17Elwin Sharvill
1007Francesco ShinkoRussia2026-05-01Chemel, James L Cpa NEGOTIATION58Ioni Bowcher
1008Arvin AlbaresCanada2026-05-09Rousseaux, Michael Esq QUALIFIED15Stephen Shaw
1009Maisha RulapaughFrance2026-05-13Buckley Miller Wright NEGOTIATION25Ivan Magalhaes
1010Kaitlin OstroskyIndia2026-05-20Truhlar And Truhlar Attys NEGOTIATION19Stephen Shaw
1011Smith GlickFrance2026-05-13Rangoni Of Florence NEGOTIATION19Amy Elsner
1012Deepesh ChuiArgentina2026-05-14Buckley Miller Wright RENEWAL6Ivan Magalhaes
1013Morrow RutaRussia2026-04-30Commercial Press RENEWAL64Anna Fali
1014Ricardo GauchoArgentina2026-04-25Benton, John B Jr NEW30Elwin Sharvill
1015Wickens NestleArgentina2026-05-05Chapman, Ross E Esq PROPOSAL65Xuxue Feng
1016Jones VocelkaUnited Kingdom2026-05-07Chemel, James L Cpa RENEWAL13Ivan Magalhaes
1017Juan WieserRussia2026-04-23Morlong Associates NEGOTIATION21Asiya Javayant
1018David DarakjyCanada2026-05-15Printing Dimensions PROPOSAL91Asiya Javayant
1019Munro FerenczCanada2026-04-24King, Christopher A Esq QUALIFIED88Anna Fali
1020Claire TollnerSpain2026-05-19Printing Dimensions UNQUALIFIED26Onyama Limba
1021Salvatore StockhamUnited Kingdom2026-05-05King, Christopher A Esq RENEWAL4Asiya Javayant
1022Silvio SlusarskiJapan2026-04-26Chemel, James L Cpa NEW54Ivan Magalhaes
1023Jennifer AmigonCanada2026-05-08King, Christopher A Esq PROPOSAL56Onyama Limba
1024Kadeem FlosiUnited Kingdom2026-04-30Benton, John B Jr RENEWAL17Ivan Magalhaes
1025Maisha RulapaughItaly2026-05-19Feiner Bros NEGOTIATION78Ivan Magalhaes
1026Costa DilliardRussia2026-05-17Morlong Associates PROPOSAL19Elwin Sharvill
1027Jones VocelkaGermany2026-05-14Chemel, James L Cpa NEGOTIATION62Ivan Magalhaes
1028Antonio CaudyArgentina2026-04-25Printing Dimensions RENEWAL99Elwin Sharvill
1029Morrow RutaFrance2026-04-23Feltz Printing Service UNQUALIFIED80Anna Fali
1030Leja CaldareraCanada2026-05-18Dorl, James J Esq QUALIFIED97Ivan Magalhaes
1031Faith GillianFrance2026-05-05Chanay, Jeffrey A Esq PROPOSAL66Anna Fali
1032Morrow RutaGermany2026-05-02Dorl, James J Esq RENEWAL89Anna Fali
1033Maisha RulapaughFrance2026-05-10Buckley Miller Wright QUALIFIED40Ivan Magalhaes
1034Jefferson SchemmerAustralia2026-05-04Buckley Miller Wright NEW40Anna Fali
1035Antonio CaudyIndia2026-05-19Rangoni Of Florence UNQUALIFIED9Onyama Limba
1036Jones VocelkaUnited Kingdom2026-04-29Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1037Chavez BriddickRussia2026-04-23Commercial Press QUALIFIED85Bernardo Dominic
1038Silvio SlusarskiAustralia2026-05-19Chemel, James L Cpa NEW83Bernardo Dominic
1039Aruna FigeroaUnited Kingdom2026-05-01Feltz Printing Service RENEWAL70Anna Fali
1040Stacey MacleadAustralia2026-05-06Truhlar And Truhlar Attys NEGOTIATION5Stephen Shaw
1041Clifford RimAustralia2026-05-10Rangoni Of Florence QUALIFIED83Xuxue Feng
1042Julie StensethRussia2026-05-06Dorl, James J Esq NEGOTIATION97Bernardo Dominic
1043Kadeem FlosiUnited Kingdom2026-04-25King, Christopher A Esq NEW27Elwin Sharvill
1044Adams MorascaSpain2026-05-10Printing Dimensions NEW22Stephen Shaw
1045James ButtArgentina2026-05-07Feiner Bros PROPOSAL37Ivan Magalhaes
1046Smith GlickCanada2026-04-24Printing Dimensions NEW62Ioni Bowcher
1047Alejandro PerinIndia2026-05-10Rangoni Of Florence NEW32Elwin Sharvill
1048Aika InouyeRussia2026-04-24King, Christopher A Esq QUALIFIED68Ioni Bowcher
1049Clifford RimCanada2026-05-19Buckley Miller Wright RENEWAL81Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickFranceAmy Elsner PROPOSAL
Adams MorascaCanadaIoni Bowcher PROPOSAL
Rodrigues CampainFranceXuxue Feng QUALIFIED
Isabel BowleyCanadaElwin Sharvill RENEWAL
Antonio CaudyAustraliaElwin Sharvill PROPOSAL
Leon OldroydArgentinaIvan Magalhaes RENEWAL
Salvatore StockhamSpainOnyama Limba UNQUALIFIED
Munro FerenczBrazilBernardo Dominic NEW
Julie StensethFranceBernardo Dominic RENEWAL
Antonio CaudyBrazilStephen Shaw PROPOSAL
David DarakjyCanadaAsiya Javayant PROPOSAL
Leon OldroydSpainBernardo Dominic NEGOTIATION
Stacey MacleadArgentinaBernardo Dominic RENEWAL
Emily WhobreyGermanyIoni Bowcher NEW
Jennifer AmigonJapanXuxue Feng PROPOSAL
Claire TollnerCanadaXuxue Feng NEW
Deepesh ChuiAustraliaOnyama Limba RENEWAL
Munro FerenczIndiaXuxue Feng PROPOSAL
Antonio CaudyUnited KingdomAsiya Javayant PROPOSAL
Maria MarrierArgentinaAmy Elsner PROPOSAL
Ivar PaprockiBrazilXuxue Feng NEGOTIATION
Darci PoquetteFranceIoni Bowcher RENEWAL
Jones VocelkaUnited KingdomAsiya Javayant QUALIFIED
Octavia MaletAustraliaAnna Fali PROPOSAL
James ButtUnited KingdomStephen Shaw RENEWAL
Salvatore StockhamJapanOnyama Limba NEGOTIATION
Darci PoquetteBrazilAmy Elsner NEGOTIATION
Morrow RutaArgentinaAmy Elsner UNQUALIFIED
Costa DilliardIndiaOnyama Limba NEGOTIATION
Costa DilliardItalyXuxue Feng PROPOSAL
Salvatore StockhamArgentinaOnyama Limba RENEWAL
Leon OldroydSpainStephen Shaw NEGOTIATION
David DarakjyArgentinaElwin Sharvill NEW
Julie StensethGermanyAsiya Javayant RENEWAL
Kadeem FlosiItalyOnyama Limba QUALIFIED
Francesco ShinkoSpainBernardo Dominic NEGOTIATION
Maria MarrierItalyAmy Elsner UNQUALIFIED
Jones VocelkaGermanyElwin Sharvill NEW
Juan WieserSpainIvan Magalhaes NEW
Aika InouyeAustraliaAnna Fali RENEWAL
Stacey MacleadIndiaAnna Fali UNQUALIFIED
Aika InouyeAustraliaAmy Elsner UNQUALIFIED
Wickens NestleSpainElwin Sharvill PROPOSAL
Francesco ShinkoItalyAsiya Javayant RENEWAL
Johnson SergiSpainBernardo Dominic NEGOTIATION
James ButtItalyXuxue Feng NEGOTIATION
Darci PoquetteCanadaAnna Fali QUALIFIED
Morrow RutaUnited KingdomStephen Shaw PROPOSAL
Misaki RoysterGermanyXuxue Feng PROPOSAL
Darci PoquetteRussiaXuxue Feng NEW
Frozen Columns
Name
Silvio Slusarski
Emily Whobrey
Darci Poquette
Salvatore Stockham
Izzy Garufi
Jeanfrancois Venere
Morrow Ruta
Murillo Malet
Costa Dilliard
Costa Dilliard
Mujtaba Nicka
Sinclair Waycott
James Butt
Maria Marrier
Misaki Royster
Deepesh Chui
Stacey Maclead
Munro Ferencz
Cody Saylors
Maisha Rulapaugh
Greenwood Bolognia
Jennifer Amigon
Octavia Malet
Tony Foller
Smith Glick
Maria Marrier
Emily Whobrey
Rodrigues Campain
Greenwood Bolognia
Murillo Malet
Aruna Figeroa
Johnson Sergi
Jones Vocelka
Julie Stenseth
Rodrigues Campain
Deepesh Chui
Jeanfrancois Venere
Isabel Bowley
Alejandro Perin
Ricardo Gaucho
Sinclair Waycott
Izzy Garufi
Costa Dilliard
Morrow Ruta
Murillo Malet
Jones Vocelka
Claire Tollner
Costa Dilliard
Deepesh Chui
Ricardo Gaucho
IdCountryDate
1000India2026-05-11
1001Spain2026-05-18
1002Russia2026-04-26
1003Canada2026-05-16
1004Italy2026-04-21
1005India2026-04-21
1006Russia2026-05-15
1007United Kingdom2026-05-10
1008Argentina2026-05-01
1009United Kingdom2026-04-22
1010Australia2026-05-09
1011India2026-04-26
1012Russia2026-04-26
1013Argentina2026-05-14
1014United Kingdom2026-04-27
1015Germany2026-05-19
1016France2026-04-29
1017Australia2026-05-16
1018Russia2026-05-18
1019Italy2026-05-11
1020Japan2026-05-11
1021India2026-04-25
1022United Kingdom2026-04-29
1023Spain2026-04-26
1024Brazil2026-04-27
1025United Kingdom2026-05-01
1026Russia2026-05-16
1027Argentina2026-05-20
1028Brazil2026-05-12
1029Spain2026-05-15
1030Italy2026-05-04
1031Italy2026-04-26
1032Germany2026-05-03
1033India2026-05-08
1034Italy2026-05-17
1035France2026-04-25
1036Japan2026-04-29
1037Australia2026-05-12
1038Italy2026-05-07
1039Canada2026-05-10
1040Russia2026-04-26
1041Brazil2026-05-18
1042Germany2026-04-26
1043France2026-05-17
1044Argentina2026-05-05
1045Italy2026-05-12
1046India2026-04-23
1047Russia2026-04-30
1048Russia2026-05-16
1049Spain2026-05-01

On-Demand Data

NameIdCountryDate
Alejandro Perin1000France2026-04-27
James Butt1001Germany2026-04-30
Faith Gillian1002United Kingdom2026-05-07
Faith Gillian1003Italy2026-05-02
Kadeem Flosi1004Russia2026-05-16
Ashley Doe1005Russia2026-05-05
James Butt1006Australia2026-05-09
Sinclair Waycott1007France2026-04-27
Costa Dilliard1008Australia2026-05-10
Munro Ferencz1009Spain2026-05-11
Emily Whobrey1010Australia2026-05-07
Cody Saylors1011Japan2026-04-28
Arvin Albares1012France2026-04-30
Nicolas Iturbide1013Russia2026-05-17
Salvatore Stockham1014Spain2026-05-02
Morrow Ruta1015Russia2026-05-14
Silvio Slusarski1016Canada2026-05-14
Isabel Bowley1017Australia2026-05-12
Adams Morasca1018Russia2026-05-15
Jefferson Schemmer1019Argentina2026-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeItalyAsiya Javayant QUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Aditya KuskoJapanAsiya Javayant RENEWAL
Cody SaylorsGermanyIoni Bowcher UNQUALIFIED
Aika InouyeSpainAnna Fali RENEWAL
Adams MorascaSpainXuxue Feng NEW
Sinclair WaycottSpainIvan Magalhaes UNQUALIFIED
Adams MorascaCanadaAsiya Javayant QUALIFIED
Nicolas IturbideRussiaIoni Bowcher RENEWAL
Salvatore StockhamGermanyIoni Bowcher NEW
Isabel BowleyCanadaStephen Shaw NEW
Clifford RimRussiaIoni Bowcher PROPOSAL
Costa DilliardArgentinaElwin Sharvill NEW
Claire TollnerRussiaXuxue Feng NEGOTIATION
Greenwood BologniaRussiaIoni Bowcher UNQUALIFIED
Mujtaba NickaGermanyAsiya Javayant NEW
Adams MorascaBrazilAmy Elsner NEW
Juan WieserBrazilElwin Sharvill NEW
Maria MarrierAustraliaAsiya Javayant NEGOTIATION
Misaki RoysterBrazilIoni Bowcher PROPOSAL
Chavez BriddickJapanAmy Elsner QUALIFIED
Morrow RutaCanadaAsiya Javayant UNQUALIFIED
Munro FerenczGermanyXuxue Feng QUALIFIED
Aditya KuskoRussiaElwin Sharvill NEW
Darci PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Sinclair WaycottJapanIoni Bowcher UNQUALIFIED
Mujtaba NickaIndiaElwin Sharvill NEGOTIATION
Aditya KuskoCanadaStephen Shaw UNQUALIFIED
Emily WhobreyCanadaBernardo Dominic NEGOTIATION
Smith GlickIndiaOnyama Limba RENEWAL
Julie StensethIndiaOnyama Limba NEW
Jones VocelkaGermanyElwin Sharvill NEGOTIATION
Deepesh ChuiGermanyIoni Bowcher NEGOTIATION
Adams MorascaJapanIvan Magalhaes NEGOTIATION
Kadeem FlosiFranceAnna Fali NEGOTIATION
Salvatore StockhamArgentinaOnyama Limba RENEWAL
Stacey MacleadCanadaElwin Sharvill UNQUALIFIED
Aruna FigeroaIndiaAnna Fali PROPOSAL
Juan WieserArgentinaIoni Bowcher RENEWAL
Aditya KuskoItalyElwin Sharvill UNQUALIFIED

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