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
Cody SaylorsItalyBernardo Dominic NEGOTIATION
Kaitlin OstroskyBrazilAmy Elsner RENEWAL
Maria MarrierIndiaIvan Magalhaes PROPOSAL
Chavez BriddickIndiaAnna Fali NEGOTIATION
Jones VocelkaSpainElwin Sharvill QUALIFIED
Ivar PaprockiRussiaBernardo Dominic PROPOSAL
Cody SaylorsGermanyIvan Magalhaes NEGOTIATION
Emily WhobreyFranceXuxue Feng QUALIFIED
Silvio SlusarskiCanadaAmy Elsner PROPOSAL
Jeanfrancois VenereAustraliaXuxue Feng QUALIFIED
Darci PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Emily WhobreyJapanAmy Elsner NEGOTIATION
Izzy GarufiUnited KingdomBernardo Dominic RENEWAL
Greenwood BologniaArgentinaBernardo Dominic NEW
Jeanfrancois VenereSpainIoni Bowcher PROPOSAL
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Antonio CaudyAustraliaAnna Fali RENEWAL
Murillo MaletItalyElwin Sharvill RENEWAL
Ricardo GauchoIndiaBernardo Dominic QUALIFIED
Octavia MaletBrazilOnyama Limba RENEWAL
Jones VocelkaFranceIoni Bowcher NEW
Greenwood BologniaFranceXuxue Feng RENEWAL
Maisha RulapaughSpainIvan Magalhaes NEGOTIATION
Adams MorascaBrazilBernardo Dominic NEGOTIATION
Faith GillianGermanyAnna Fali NEW
Faith GillianFranceOnyama Limba UNQUALIFIED
Wickens NestleArgentinaAmy Elsner PROPOSAL
Jones VocelkaUnited KingdomOnyama Limba QUALIFIED
Johnson SergiIndiaIoni Bowcher PROPOSAL
Johnson SergiIndiaAsiya Javayant NEGOTIATION
David DarakjyRussiaAmy Elsner RENEWAL
Smith GlickRussiaAmy Elsner QUALIFIED
Salvatore StockhamItalyOnyama Limba RENEWAL
Leon OldroydBrazilAmy Elsner UNQUALIFIED
Izzy GarufiCanadaIvan Magalhaes UNQUALIFIED
Juan WieserArgentinaOnyama Limba NEW
Tony FollerJapanAnna Fali RENEWAL
Mujtaba NickaSpainXuxue Feng NEW
Tony FollerBrazilStephen Shaw UNQUALIFIED
Claire TollnerUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas IturbideJapanXuxue Feng QUALIFIED
Salvatore StockhamSpainOnyama Limba NEW
Alejandro PerinCanadaStephen Shaw QUALIFIED
Deepesh ChuiCanadaIoni Bowcher UNQUALIFIED
Leon OldroydJapanIvan Magalhaes RENEWAL
Emily WhobreyBrazilXuxue Feng UNQUALIFIED
Costa DilliardUnited KingdomBernardo Dominic PROPOSAL
Greenwood BologniaGermanyIvan Magalhaes UNQUALIFIED
Izzy GarufiJapanElwin Sharvill PROPOSAL
Mayumi KolmetzGermanyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James ButtRussiaIvan Magalhaes QUALIFIED
Johnson SergiCanadaIvan Magalhaes UNQUALIFIED
Cody SaylorsSpainStephen Shaw RENEWAL
Stacey MacleadJapanIvan Magalhaes NEW
Smith GlickJapanIoni Bowcher NEW
Maisha RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Aruna FigeroaGermanyOnyama Limba QUALIFIED
Cody SaylorsRussiaBernardo Dominic NEGOTIATION
Juan WieserGermanyOnyama Limba UNQUALIFIED
Maisha RulapaughBrazilIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardFrance2025-08-18Benton, John B Jr RENEWAL60Bernardo Dominic
1001Smith GlickCanada2025-08-13Truhlar And Truhlar Attys PROPOSAL17Stephen Shaw
1002Rodrigues CampainArgentina2025-08-13Printing Dimensions RENEWAL47Stephen Shaw
1003Maria MarrierJapan2025-08-14Dorl, James J Esq PROPOSAL57Anna Fali
1004Claire TollnerItaly2025-07-28Truhlar And Truhlar Attys NEGOTIATION92Stephen Shaw
1005Maisha RulapaughRussia2025-08-06Dorl, James J Esq NEW17Onyama Limba
1006Julie StensethBrazil2025-07-26Buckley Miller Wright PROPOSAL44Anna Fali
1007Tony FollerIndia2025-07-22Chapman, Ross E Esq UNQUALIFIED39Bernardo Dominic
1008Octavia MaletBrazil2025-08-03Dorl, James J Esq NEW5Onyama Limba
1009Deepesh ChuiArgentina2025-08-08Chapman, Ross E Esq NEGOTIATION90Ioni Bowcher
1010Kaitlin OstroskyJapan2025-08-17Rousseaux, Michael Esq UNQUALIFIED60Xuxue Feng
1011Aika InouyeItaly2025-07-25Feltz Printing Service NEW91Bernardo Dominic
1012Ricardo GauchoIndia2025-07-29Printing Dimensions UNQUALIFIED41Onyama Limba
1013Mayumi KolmetzRussia2025-07-25Rangoni Of Florence PROPOSAL77Ioni Bowcher
1014Nicolas IturbideJapan2025-08-12Chemel, James L Cpa PROPOSAL18Xuxue Feng
1015Juan WieserRussia2025-08-09Feiner Bros NEW34Elwin Sharvill
1016Clifford RimIndia2025-07-22Commercial Press QUALIFIED15Bernardo Dominic
1017Antonio CaudyCanada2025-08-07Printing Dimensions PROPOSAL34Onyama Limba
1018Kadeem FlosiSpain2025-07-24Printing Dimensions UNQUALIFIED92Xuxue Feng
1019David DarakjySpain2025-08-10Printing Dimensions RENEWAL8Elwin Sharvill
1020Sinclair WaycottItaly2025-08-01Chapman, Ross E Esq NEW49Ioni Bowcher
1021Cody SaylorsArgentina2025-08-03Commercial Press RENEWAL61Ioni Bowcher
1022Darci PoquetteJapan2025-07-24Truhlar And Truhlar Attys NEW3Asiya Javayant
1023Adams MorascaBrazil2025-08-12Truhlar And Truhlar Attys NEW2Ivan Magalhaes
1024Johnson SergiGermany2025-07-28Chapman, Ross E Esq RENEWAL8Ivan Magalhaes
1025Rodrigues CampainArgentina2025-07-30King, Christopher A Esq NEGOTIATION27Elwin Sharvill
1026Smith GlickGermany2025-08-11Buckley Miller Wright NEW33Ivan Magalhaes
1027Alejandro PerinFrance2025-08-09Chapman, Ross E Esq NEGOTIATION44Elwin Sharvill
1028Octavia MaletRussia2025-08-06Truhlar And Truhlar Attys PROPOSAL79Onyama Limba
1029Rodrigues CampainRussia2025-07-31Benton, John B Jr PROPOSAL67Bernardo Dominic
1030Jennifer AmigonCanada2025-08-11Feltz Printing Service PROPOSAL70Xuxue Feng
1031Jeanfrancois VenereArgentina2025-07-28Feiner Bros QUALIFIED69Bernardo Dominic
1032Antonio CaudyRussia2025-08-13Dorl, James J Esq UNQUALIFIED97Amy Elsner
1033Murillo MaletFrance2025-08-10Rangoni Of Florence QUALIFIED2Ioni Bowcher
1034Maisha RulapaughIndia2025-08-16Feltz Printing Service QUALIFIED18Asiya Javayant
1035Faith GillianFrance2025-07-24Chanay, Jeffrey A Esq NEW32Xuxue Feng
1036Rodrigues CampainArgentina2025-08-14Dorl, James J Esq NEW70Xuxue Feng
1037Faith GillianGermany2025-08-18Chapman, Ross E Esq PROPOSAL68Asiya Javayant
1038Costa DilliardIndia2025-08-01Feiner Bros NEW34Ioni Bowcher
1039Mujtaba NickaGermany2025-07-26Printing Dimensions RENEWAL70Xuxue Feng
1040Stacey MacleadFrance2025-07-22Commercial Press NEGOTIATION11Elwin Sharvill
1041Sinclair WaycottJapan2025-08-16Feiner Bros RENEWAL54Elwin Sharvill
1042Murillo MaletBrazil2025-08-08Rangoni Of Florence NEGOTIATION30Elwin Sharvill
1043Mayumi KolmetzSpain2025-07-25Feltz Printing Service UNQUALIFIED68Xuxue Feng
1044Emily WhobreyArgentina2025-08-11Commercial Press NEGOTIATION8Elwin Sharvill
1045Cody SaylorsIndia2025-07-27Rousseaux, Michael Esq RENEWAL46Xuxue Feng
1046Jennifer AmigonRussia2025-08-17Feiner Bros NEGOTIATION10Anna Fali
1047Darci PoquetteItaly2025-07-30Chapman, Ross E Esq NEGOTIATION59Ivan Magalhaes
1048Julie StensethIndia2025-08-05Commercial Press NEGOTIATION34Asiya Javayant
1049Stacey MacleadArgentina2025-07-31Feltz Printing Service PROPOSAL71Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianAustraliaIvan Magalhaes PROPOSAL
James ButtRussiaAsiya Javayant UNQUALIFIED
Ashley DoeUnited KingdomElwin Sharvill QUALIFIED
Arvin AlbaresGermanyStephen Shaw NEGOTIATION
Kaitlin OstroskyItalyAmy Elsner PROPOSAL
Cody SaylorsGermanyElwin Sharvill QUALIFIED
Ivar PaprockiIndiaAsiya Javayant NEGOTIATION
Francesco ShinkoAustraliaIoni Bowcher PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher RENEWAL
Rodrigues CampainGermanyIvan Magalhaes NEGOTIATION
Morrow RutaBrazilBernardo Dominic RENEWAL
Leon OldroydRussiaStephen Shaw PROPOSAL
Maria MarrierRussiaIoni Bowcher UNQUALIFIED
Leon OldroydGermanyOnyama Limba QUALIFIED
Jefferson SchemmerItalyAmy Elsner NEGOTIATION
Arvin AlbaresRussiaAsiya Javayant NEGOTIATION
Darci PoquetteRussiaXuxue Feng QUALIFIED
Jeanfrancois VenereFranceIvan Magalhaes PROPOSAL
Maria MarrierAustraliaIoni Bowcher NEGOTIATION
Tony FollerSpainIvan Magalhaes PROPOSAL
Munro FerenczSpainAmy Elsner NEGOTIATION
Faith GillianBrazilAnna Fali RENEWAL
Wickens NestleFranceOnyama Limba NEW
Johnson SergiFranceAmy Elsner NEW
Faith GillianRussiaAsiya Javayant UNQUALIFIED
Leja CaldareraIndiaStephen Shaw NEW
Jefferson SchemmerArgentinaXuxue Feng RENEWAL
Leja CaldareraItalyAnna Fali NEGOTIATION
Nicolas IturbideArgentinaAsiya Javayant NEW
Adams MorascaArgentinaAsiya Javayant NEGOTIATION
Antonio CaudyIndiaStephen Shaw NEW
Ricardo GauchoSpainXuxue Feng QUALIFIED
Rodrigues CampainSpainElwin Sharvill NEGOTIATION
Jeanfrancois VenereArgentinaAnna Fali QUALIFIED
Deepesh ChuiAustraliaAsiya Javayant PROPOSAL
Sinclair WaycottIndiaOnyama Limba NEW
Ivar PaprockiSpainBernardo Dominic NEW
Smith GlickItalyOnyama Limba RENEWAL
Jeanfrancois VenereJapanOnyama Limba PROPOSAL
Maria MarrierCanadaXuxue Feng PROPOSAL
Antonio CaudyCanadaAsiya Javayant UNQUALIFIED
Kadeem FlosiCanadaXuxue Feng QUALIFIED
Ivar PaprockiCanadaAnna Fali NEW
Sinclair WaycottGermanyAmy Elsner NEGOTIATION
Chavez BriddickFranceBernardo Dominic PROPOSAL
Misaki RoysterAustraliaBernardo Dominic NEGOTIATION
Darci PoquetteSpainIvan Magalhaes NEW
Morrow RutaUnited KingdomXuxue Feng QUALIFIED
Aruna FigeroaArgentinaBernardo Dominic UNQUALIFIED
Faith GillianAustraliaStephen Shaw NEGOTIATION
Frozen Columns
Name
Emily Whobrey
Aditya Kusko
Kadeem Flosi
Rodrigues Campain
Jennifer Amigon
Smith Glick
Aika Inouye
Jennifer Amigon
Costa Dilliard
Kadeem Flosi
Aditya Kusko
Faith Gillian
Aditya Kusko
Maria Marrier
Sinclair Waycott
Alejandro Perin
Kadeem Flosi
James Butt
Aika Inouye
Chavez Briddick
Maisha Rulapaugh
Claire Tollner
Salvatore Stockham
Aika Inouye
Sinclair Waycott
Alejandro Perin
Jones Vocelka
Munro Ferencz
Clifford Rim
Ashley Doe
Darci Poquette
Maria Marrier
Leon Oldroyd
Silvio Slusarski
Maria Marrier
Costa Dilliard
Ricardo Gaucho
Clifford Rim
David Darakjy
Ashley Doe
Johnson Sergi
Mujtaba Nicka
Stacey Maclead
Emily Whobrey
Kadeem Flosi
Claire Tollner
David Darakjy
Greenwood Bolognia
Mayumi Kolmetz
Francesco Shinko
IdCountryDate
1000United Kingdom2025-07-27
1001Italy2025-07-21
1002Japan2025-08-10
1003Spain2025-07-29
1004Spain2025-07-23
1005Italy2025-07-28
1006India2025-07-26
1007Italy2025-07-28
1008Germany2025-08-12
1009India2025-08-02
1010United Kingdom2025-08-04
1011Brazil2025-07-25
1012India2025-08-13
1013Spain2025-08-19
1014Spain2025-08-19
1015France2025-08-07
1016Argentina2025-08-08
1017Japan2025-07-29
1018Canada2025-08-09
1019Spain2025-07-25
1020Canada2025-08-16
1021Spain2025-08-05
1022Argentina2025-08-02
1023Germany2025-08-04
1024Brazil2025-07-31
1025Spain2025-08-09
1026Spain2025-08-06
1027Italy2025-08-17
1028Spain2025-07-25
1029Japan2025-08-16
1030United Kingdom2025-07-22
1031Germany2025-07-25
1032Russia2025-08-09
1033United Kingdom2025-08-15
1034Spain2025-08-08
1035Spain2025-08-02
1036Spain2025-08-07
1037Japan2025-07-23
1038Germany2025-08-04
1039India2025-08-17
1040Argentina2025-07-26
1041India2025-08-03
1042Brazil2025-08-06
1043Russia2025-07-25
1044Italy2025-08-07
1045Australia2025-08-17
1046France2025-08-06
1047United Kingdom2025-08-07
1048India2025-07-25
1049Germany2025-07-31

On-Demand Data

NameIdCountryDate
Juan Wieser1000Brazil2025-08-03
Kadeem Flosi1001Spain2025-08-13
Jeanfrancois Venere1002Japan2025-08-14
Chavez Briddick1003Canada2025-08-11
Jefferson Schemmer1004Argentina2025-07-28
Kaitlin Ostrosky1005Japan2025-08-16
Stacey Maclead1006United Kingdom2025-08-10
Chavez Briddick1007Italy2025-08-01
Deepesh Chui1008France2025-08-10
Leja Caldarera1009United Kingdom2025-08-08
Smith Glick1010Australia2025-07-26
Octavia Malet1011Japan2025-08-07
Costa Dilliard1012France2025-07-29
Mujtaba Nicka1013Australia2025-08-11
Nicolas Iturbide1014Italy2025-08-09
Aika Inouye1015France2025-07-21
Jefferson Schemmer1016India2025-08-18
Isabel Bowley1017Germany2025-07-23
Octavia Malet1018Italy2025-07-30
Aika Inouye1019Australia2025-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardRussiaAsiya Javayant NEGOTIATION
Chavez BriddickRussiaAnna Fali NEGOTIATION
Juan WieserIndiaElwin Sharvill RENEWAL
Tony FollerIndiaAmy Elsner NEGOTIATION
Octavia MaletSpainIvan Magalhaes NEW
Stacey MacleadBrazilIoni Bowcher RENEWAL
Faith GillianArgentinaXuxue Feng RENEWAL
Aruna FigeroaSpainStephen Shaw NEGOTIATION
Maisha RulapaughRussiaAmy Elsner NEW
Munro FerenczArgentinaAsiya Javayant NEW
Aruna FigeroaArgentinaAmy Elsner PROPOSAL
Clifford RimFranceBernardo Dominic PROPOSAL
Leja CaldareraItalyAnna Fali RENEWAL
Maria MarrierIndiaXuxue Feng NEW
Kadeem FlosiSpainIoni Bowcher PROPOSAL
James ButtBrazilAsiya Javayant RENEWAL
Silvio SlusarskiArgentinaIoni Bowcher NEW
Maria MarrierJapanStephen Shaw PROPOSAL
Aika InouyeFranceAnna Fali QUALIFIED
Leja CaldareraCanadaAsiya Javayant NEW
Tony FollerItalyStephen Shaw PROPOSAL
Ricardo GauchoFranceElwin Sharvill RENEWAL
Kadeem FlosiIndiaBernardo Dominic NEW
Smith GlickAustraliaIvan Magalhaes NEW
Munro FerenczArgentinaAmy Elsner NEGOTIATION
Izzy GarufiUnited KingdomAnna Fali PROPOSAL
Costa DilliardRussiaBernardo Dominic UNQUALIFIED
Antonio CaudyItalyIvan Magalhaes UNQUALIFIED
David DarakjySpainBernardo Dominic NEW
Juan WieserJapanIoni Bowcher NEGOTIATION
Nicolas IturbideRussiaXuxue Feng NEGOTIATION
Ivar PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Munro FerenczIndiaIvan Magalhaes PROPOSAL
Kadeem FlosiSpainAnna Fali RENEWAL
Smith GlickAustraliaStephen Shaw NEGOTIATION
Jeanfrancois VenereSpainOnyama Limba NEW
Adams MorascaSpainAsiya Javayant PROPOSAL
Jennifer AmigonItalyBernardo Dominic NEW
Stacey MacleadFranceAnna Fali RENEWAL
Wickens NestleUnited KingdomStephen Shaw 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>