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
Sinclair WaycottItalyAsiya Javayant NEGOTIATION
Munro FerenczArgentinaAmy Elsner RENEWAL
David DarakjyItalyOnyama Limba NEW
Maria MarrierSpainIoni Bowcher QUALIFIED
Morrow RutaGermanyOnyama Limba RENEWAL
Mujtaba NickaJapanAnna Fali RENEWAL
Aditya KuskoGermanyAmy Elsner RENEWAL
Julie StensethAustraliaXuxue Feng UNQUALIFIED
Izzy GarufiAustraliaAmy Elsner UNQUALIFIED
Maria MarrierCanadaOnyama Limba NEW
Aditya KuskoSpainOnyama Limba NEW
Darci PoquetteAustraliaXuxue Feng RENEWAL
Salvatore StockhamIndiaAmy Elsner PROPOSAL
Aruna FigeroaGermanyElwin Sharvill QUALIFIED
Ashley DoeAustraliaIoni Bowcher RENEWAL
Ivar PaprockiAustraliaAmy Elsner NEGOTIATION
Ivar PaprockiFranceAmy Elsner RENEWAL
Jones VocelkaJapanBernardo Dominic NEW
Deepesh ChuiCanadaElwin Sharvill RENEWAL
Rodrigues CampainFranceBernardo Dominic NEW
Jones VocelkaArgentinaAsiya Javayant PROPOSAL
Adams MorascaAustraliaIvan Magalhaes QUALIFIED
Jones VocelkaSpainAnna Fali QUALIFIED
Maisha RulapaughBrazilStephen Shaw RENEWAL
Emily WhobreyAustraliaIoni Bowcher PROPOSAL
Clifford RimIndiaBernardo Dominic NEW
Leon OldroydUnited KingdomStephen Shaw QUALIFIED
Chavez BriddickJapanOnyama Limba RENEWAL
Stacey MacleadGermanyElwin Sharvill NEW
Isabel BowleyAustraliaIvan Magalhaes NEW
Octavia MaletBrazilStephen Shaw PROPOSAL
Deepesh ChuiSpainElwin Sharvill RENEWAL
Deepesh ChuiArgentinaAnna Fali QUALIFIED
Costa DilliardItalyIoni Bowcher NEW
Ricardo GauchoFranceAsiya Javayant NEGOTIATION
Johnson SergiFranceBernardo Dominic QUALIFIED
Wickens NestleGermanyElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaElwin Sharvill PROPOSAL
Cody SaylorsCanadaAmy Elsner UNQUALIFIED
Kaitlin OstroskyGermanyIvan Magalhaes RENEWAL
Alejandro PerinItalyAnna Fali QUALIFIED
Juan WieserAustraliaOnyama Limba PROPOSAL
Sinclair WaycottIndiaStephen Shaw NEW
Greenwood BologniaUnited KingdomElwin Sharvill QUALIFIED
Aditya KuskoItalyAmy Elsner QUALIFIED
Julie StensethGermanyStephen Shaw RENEWAL
Misaki RoysterBrazilElwin Sharvill UNQUALIFIED
Claire TollnerRussiaIvan Magalhaes PROPOSAL
Rodrigues CampainUnited KingdomAnna Fali PROPOSAL
Arvin AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainRussiaAsiya Javayant NEGOTIATION
Kadeem FlosiItalyElwin Sharvill PROPOSAL
Francesco ShinkoFranceAmy Elsner RENEWAL
Chavez BriddickFranceElwin Sharvill PROPOSAL
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Isabel BowleyUnited KingdomOnyama Limba RENEWAL
Mujtaba NickaIndiaOnyama Limba PROPOSAL
Deepesh ChuiSpainAmy Elsner PROPOSAL
Aruna FigeroaRussiaIoni Bowcher PROPOSAL
Kaitlin OstroskyFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyBrazil2026-06-15Dorl, James J Esq RENEWAL66Asiya Javayant
1001Rodrigues CampainItaly2026-06-15Feltz Printing Service UNQUALIFIED80Amy Elsner
1002Morrow RutaRussia2026-05-24Morlong Associates RENEWAL53Ivan Magalhaes
1003Jefferson SchemmerArgentina2026-06-08Commercial Press PROPOSAL3Elwin Sharvill
1004Antonio CaudyGermany2026-06-17Rangoni Of Florence RENEWAL79Elwin Sharvill
1005Rodrigues CampainAustralia2026-06-20Feltz Printing Service NEGOTIATION56Bernardo Dominic
1006Johnson SergiRussia2026-06-05Feiner Bros NEW48Anna Fali
1007Leja CaldareraGermany2026-06-02King, Christopher A Esq NEGOTIATION88Amy Elsner
1008Jennifer AmigonSpain2026-06-10Feiner Bros UNQUALIFIED28Xuxue Feng
1009Darci PoquetteRussia2026-06-09Benton, John B Jr UNQUALIFIED70Amy Elsner
1010Juan WieserFrance2026-05-30Chanay, Jeffrey A Esq NEW60Anna Fali
1011Leon OldroydJapan2026-06-13Dorl, James J Esq NEW25Anna Fali
1012Jones VocelkaRussia2026-06-12Benton, John B Jr NEW16Elwin Sharvill
1013Costa DilliardUnited Kingdom2026-05-22Rangoni Of Florence RENEWAL87Onyama Limba
1014Julie StensethSpain2026-06-14Rangoni Of Florence NEGOTIATION54Amy Elsner
1015Cody SaylorsSpain2026-06-17Buckley Miller Wright RENEWAL7Onyama Limba
1016Mayumi KolmetzBrazil2026-06-07Chapman, Ross E Esq NEW93Stephen Shaw
1017Juan WieserAustralia2026-06-04Rangoni Of Florence NEGOTIATION23Asiya Javayant
1018Kaitlin OstroskyArgentina2026-06-03Buckley Miller Wright PROPOSAL28Elwin Sharvill
1019Clifford RimGermany2026-06-04Truhlar And Truhlar Attys RENEWAL31Xuxue Feng
1020Ashley DoeFrance2026-06-12Chapman, Ross E Esq QUALIFIED20Bernardo Dominic
1021Smith GlickItaly2026-05-23Dorl, James J Esq NEW33Onyama Limba
1022Aditya KuskoRussia2026-05-22Printing Dimensions RENEWAL96Amy Elsner
1023Misaki RoysterSpain2026-05-30Printing Dimensions RENEWAL16Elwin Sharvill
1024Faith GillianUnited Kingdom2026-06-03Commercial Press PROPOSAL50Onyama Limba
1025Julie StensethGermany2026-06-02Printing Dimensions PROPOSAL64Stephen Shaw
1026Ashley DoeIndia2026-06-18Chanay, Jeffrey A Esq PROPOSAL86Ioni Bowcher
1027Mujtaba NickaSpain2026-06-09Feiner Bros NEGOTIATION76Asiya Javayant
1028Octavia MaletUnited Kingdom2026-06-16Feiner Bros RENEWAL61Ivan Magalhaes
1029Ricardo GauchoItaly2026-06-03Benton, John B Jr UNQUALIFIED19Xuxue Feng
1030Munro FerenczCanada2026-06-11Chapman, Ross E Esq QUALIFIED29Onyama Limba
1031Antonio CaudyJapan2026-05-31Rousseaux, Michael Esq QUALIFIED29Ivan Magalhaes
1032Nicolas IturbideSpain2026-06-17Rousseaux, Michael Esq PROPOSAL89Bernardo Dominic
1033Sinclair WaycottAustralia2026-06-06Morlong Associates NEW50Xuxue Feng
1034Kaitlin OstroskyJapan2026-06-09Feltz Printing Service UNQUALIFIED41Asiya Javayant
1035Aika InouyeFrance2026-06-15Chemel, James L Cpa QUALIFIED58Ioni Bowcher
1036Chavez BriddickUnited Kingdom2026-05-23Chapman, Ross E Esq NEGOTIATION7Asiya Javayant
1037Maisha RulapaughItaly2026-05-31Truhlar And Truhlar Attys NEW22Asiya Javayant
1038Francesco ShinkoItaly2026-05-26Benton, John B Jr RENEWAL58Amy Elsner
1039Jones VocelkaBrazil2026-05-26Rousseaux, Michael Esq QUALIFIED55Amy Elsner
1040Sinclair WaycottIndia2026-06-12Rousseaux, Michael Esq PROPOSAL1Amy Elsner
1041Aditya KuskoSpain2026-06-01Commercial Press UNQUALIFIED61Ivan Magalhaes
1042Salvatore StockhamAustralia2026-06-20Benton, John B Jr UNQUALIFIED93Amy Elsner
1043Emily WhobreyCanada2026-05-23Feltz Printing Service NEW7Stephen Shaw
1044Jennifer AmigonRussia2026-06-02Rousseaux, Michael Esq NEW3Amy Elsner
1045Jennifer AmigonItaly2026-06-15Chanay, Jeffrey A Esq NEW4Asiya Javayant
1046Leja CaldareraCanada2026-06-03Commercial Press RENEWAL97Amy Elsner
1047Jennifer AmigonSpain2026-05-31Chapman, Ross E Esq RENEWAL17Elwin Sharvill
1048Leja CaldareraIndia2026-05-27Chapman, Ross E Esq NEW71Asiya Javayant
1049Salvatore StockhamRussia2026-06-19Printing Dimensions NEW2Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereIndiaAsiya Javayant UNQUALIFIED
Jennifer AmigonJapanAnna Fali UNQUALIFIED
Deepesh ChuiGermanyXuxue Feng RENEWAL
Deepesh ChuiItalyElwin Sharvill NEGOTIATION
Clifford RimBrazilAmy Elsner NEW
Clifford RimUnited KingdomAnna Fali PROPOSAL
Julie StensethGermanyStephen Shaw RENEWAL
Leon OldroydUnited KingdomIoni Bowcher NEW
Johnson SergiUnited KingdomAnna Fali QUALIFIED
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Aika InouyeGermanyElwin Sharvill UNQUALIFIED
Misaki RoysterBrazilXuxue Feng NEGOTIATION
Julie StensethFranceBernardo Dominic PROPOSAL
Aditya KuskoAustraliaIoni Bowcher NEGOTIATION
Arvin AlbaresArgentinaOnyama Limba UNQUALIFIED
Maisha RulapaughItalyIvan Magalhaes NEGOTIATION
Juan WieserArgentinaOnyama Limba NEW
Silvio SlusarskiItalyAmy Elsner RENEWAL
Wickens NestleAustraliaOnyama Limba PROPOSAL
Maria MarrierUnited KingdomAmy Elsner NEW
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Emily WhobreyBrazilAnna Fali UNQUALIFIED
Morrow RutaBrazilBernardo Dominic NEW
Jefferson SchemmerFranceAmy Elsner NEW
Kaitlin OstroskyGermanyAmy Elsner RENEWAL
Darci PoquetteGermanyOnyama Limba NEW
Mujtaba NickaItalyOnyama Limba RENEWAL
Emily WhobreyCanadaAnna Fali UNQUALIFIED
Morrow RutaJapanBernardo Dominic NEGOTIATION
Kadeem FlosiBrazilAmy Elsner NEGOTIATION
Sinclair WaycottItalyAmy Elsner RENEWAL
Wickens NestleItalyAnna Fali QUALIFIED
Stacey MacleadGermanyBernardo Dominic UNQUALIFIED
Isabel BowleyBrazilIoni Bowcher NEGOTIATION
Morrow RutaAustraliaBernardo Dominic NEW
Emily WhobreyFranceAnna Fali RENEWAL
Leja CaldareraAustraliaXuxue Feng NEGOTIATION
Jones VocelkaBrazilAsiya Javayant QUALIFIED
Aditya KuskoFranceOnyama Limba NEW
Nicolas IturbideCanadaXuxue Feng RENEWAL
Aika InouyeJapanAnna Fali RENEWAL
Clifford RimItalyIvan Magalhaes UNQUALIFIED
Emily WhobreyItalyAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomIoni Bowcher NEGOTIATION
Darci PoquetteSpainBernardo Dominic RENEWAL
Emily WhobreyJapanAmy Elsner RENEWAL
Maria MarrierBrazilStephen Shaw QUALIFIED
Ashley DoeRussiaBernardo Dominic PROPOSAL
Octavia MaletItalyIvan Magalhaes RENEWAL
Jeanfrancois VenereFranceAnna Fali UNQUALIFIED
Frozen Columns
Name
Arvin Albares
Wickens Nestle
Maria Marrier
Antonio Caudy
Juan Wieser
James Butt
Aditya Kusko
Ricardo Gaucho
David Darakjy
David Darakjy
Costa Dilliard
Ivar Paprocki
Octavia Malet
Nicolas Iturbide
Deepesh Chui
Ashley Doe
Emily Whobrey
Jennifer Amigon
Juan Wieser
Greenwood Bolognia
Greenwood Bolognia
Aditya Kusko
Francesco Shinko
Chavez Briddick
Rodrigues Campain
Izzy Garufi
Mujtaba Nicka
Jones Vocelka
Misaki Royster
Leja Caldarera
Aditya Kusko
Aditya Kusko
Adams Morasca
Silvio Slusarski
Izzy Garufi
Chavez Briddick
Salvatore Stockham
Leon Oldroyd
Wickens Nestle
Stacey Maclead
Darci Poquette
Misaki Royster
Wickens Nestle
Aditya Kusko
Aika Inouye
Francesco Shinko
Julie Stenseth
Ivar Paprocki
Sinclair Waycott
Jeanfrancois Venere
IdCountryDate
1000Brazil2026-06-02
1001Japan2026-05-24
1002Australia2026-06-17
1003Spain2026-06-09
1004Canada2026-06-04
1005United Kingdom2026-06-04
1006Canada2026-06-10
1007Spain2026-06-08
1008Germany2026-06-18
1009France2026-06-07
1010Australia2026-06-10
1011Germany2026-05-22
1012Japan2026-05-31
1013United Kingdom2026-06-12
1014Brazil2026-06-11
1015Canada2026-05-22
1016Spain2026-05-26
1017Argentina2026-06-07
1018Spain2026-06-14
1019United Kingdom2026-05-31
1020Australia2026-06-04
1021France2026-06-17
1022United Kingdom2026-06-06
1023Italy2026-06-11
1024Canada2026-05-29
1025Brazil2026-06-16
1026Japan2026-06-07
1027Argentina2026-05-25
1028India2026-06-11
1029Japan2026-06-09
1030Spain2026-06-16
1031Brazil2026-05-23
1032Canada2026-06-08
1033Russia2026-06-13
1034France2026-05-27
1035Australia2026-06-15
1036France2026-06-20
1037Argentina2026-05-25
1038Spain2026-06-01
1039India2026-05-22
1040Japan2026-06-17
1041France2026-05-24
1042Australia2026-06-17
1043Italy2026-05-24
1044Germany2026-06-09
1045France2026-06-04
1046France2026-06-19
1047United Kingdom2026-06-01
1048Canada2026-05-26
1049Russia2026-05-27

On-Demand Data

NameIdCountryDate
Alejandro Perin1000United Kingdom2026-06-15
Aditya Kusko1001Argentina2026-06-17
Kaitlin Ostrosky1002France2026-06-09
Aruna Figeroa1003India2026-06-13
Julie Stenseth1004Brazil2026-06-13
Leon Oldroyd1005Argentina2026-05-25
Costa Dilliard1006Brazil2026-06-05
Leja Caldarera1007Argentina2026-06-02
Francesco Shinko1008Italy2026-06-03
Alejandro Perin1009Russia2026-06-20
Izzy Garufi1010Brazil2026-05-27
Greenwood Bolognia1011India2026-06-20
Claire Tollner1012Brazil2026-06-04
Ashley Doe1013Spain2026-06-12
Munro Ferencz1014India2026-05-23
Izzy Garufi1015United Kingdom2026-05-22
Isabel Bowley1016Japan2026-05-27
Octavia Malet1017Italy2026-06-13
Cody Saylors1018Russia2026-05-30
Leon Oldroyd1019Australia2026-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyJapanStephen Shaw NEGOTIATION
Arvin AlbaresSpainElwin Sharvill RENEWAL
Wickens NestleJapanOnyama Limba UNQUALIFIED
Kadeem FlosiItalyAnna Fali PROPOSAL
Ashley DoeArgentinaBernardo Dominic NEGOTIATION
Murillo MaletAustraliaStephen Shaw PROPOSAL
Ashley DoeSpainAnna Fali PROPOSAL
Salvatore StockhamSpainStephen Shaw PROPOSAL
Kaitlin OstroskyRussiaAmy Elsner RENEWAL
Clifford RimSpainIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomIoni Bowcher QUALIFIED
Julie StensethFranceAsiya Javayant NEGOTIATION
Faith GillianFranceIvan Magalhaes UNQUALIFIED
Clifford RimBrazilXuxue Feng UNQUALIFIED
James ButtAustraliaBernardo Dominic PROPOSAL
Chavez BriddickArgentinaXuxue Feng RENEWAL
Murillo MaletFranceOnyama Limba RENEWAL
Costa DilliardAustraliaStephen Shaw NEGOTIATION
Ivar PaprockiUnited KingdomAsiya Javayant RENEWAL
Maria MarrierGermanyBernardo Dominic UNQUALIFIED
Claire TollnerJapanIvan Magalhaes RENEWAL
Maria MarrierGermanyIoni Bowcher RENEWAL
Deepesh ChuiFranceStephen Shaw NEGOTIATION
Rodrigues CampainArgentinaBernardo Dominic RENEWAL
Leja CaldareraAustraliaAmy Elsner NEW
Silvio SlusarskiSpainAsiya Javayant RENEWAL
Ivar PaprockiSpainAmy Elsner UNQUALIFIED
Smith GlickIndiaXuxue Feng NEGOTIATION
Julie StensethFranceIvan Magalhaes NEW
Murillo MaletItalyBernardo Dominic UNQUALIFIED
Ivar PaprockiIndiaStephen Shaw PROPOSAL
Leja CaldareraBrazilAsiya Javayant QUALIFIED
Claire TollnerRussiaBernardo Dominic NEGOTIATION
Adams MorascaArgentinaXuxue Feng QUALIFIED
Aditya KuskoIndiaIoni Bowcher RENEWAL
Leon OldroydBrazilStephen Shaw NEW
Julie StensethGermanyIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanAsiya Javayant NEW
Aruna FigeroaGermanyOnyama Limba NEW
Stacey MacleadAustraliaIoni Bowcher 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>