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
Greenwood BologniaFranceXuxue Feng RENEWAL
Claire TollnerAustraliaAnna Fali QUALIFIED
Rodrigues CampainRussiaStephen Shaw NEGOTIATION
Misaki RoysterRussiaBernardo Dominic NEGOTIATION
Darci PoquetteAustraliaAmy Elsner UNQUALIFIED
Juan WieserJapanIvan Magalhaes PROPOSAL
Jennifer AmigonArgentinaXuxue Feng RENEWAL
Emily WhobreyCanadaBernardo Dominic RENEWAL
Greenwood BologniaFranceIoni Bowcher RENEWAL
Ricardo GauchoCanadaBernardo Dominic RENEWAL
Alejandro PerinSpainIvan Magalhaes NEGOTIATION
Octavia MaletFranceXuxue Feng NEW
Isabel BowleyJapanStephen Shaw PROPOSAL
Kaitlin OstroskyAustraliaStephen Shaw NEGOTIATION
Francesco ShinkoCanadaBernardo Dominic QUALIFIED
Aruna FigeroaJapanAmy Elsner QUALIFIED
Tony FollerBrazilBernardo Dominic NEW
Antonio CaudyBrazilElwin Sharvill NEGOTIATION
Silvio SlusarskiGermanyElwin Sharvill NEGOTIATION
James ButtGermanyXuxue Feng QUALIFIED
Darci PoquetteItalyElwin Sharvill RENEWAL
Greenwood BologniaSpainAsiya Javayant PROPOSAL
Isabel BowleyRussiaXuxue Feng NEW
Stacey MacleadFranceElwin Sharvill UNQUALIFIED
Mujtaba NickaFranceBernardo Dominic RENEWAL
Claire TollnerCanadaAmy Elsner NEW
Leja CaldareraAustraliaStephen Shaw QUALIFIED
Salvatore StockhamBrazilAsiya Javayant PROPOSAL
Julie StensethItalyXuxue Feng NEGOTIATION
Jefferson SchemmerRussiaOnyama Limba NEGOTIATION
Cody SaylorsRussiaIoni Bowcher PROPOSAL
Johnson SergiArgentinaOnyama Limba NEGOTIATION
Chavez BriddickFranceAsiya Javayant QUALIFIED
Sinclair WaycottAustraliaAmy Elsner QUALIFIED
Alejandro PerinBrazilIoni Bowcher RENEWAL
Leon OldroydItalyAnna Fali NEW
Julie StensethRussiaElwin Sharvill PROPOSAL
Mayumi KolmetzArgentinaAsiya Javayant RENEWAL
Jefferson SchemmerRussiaXuxue Feng NEW
Emily WhobreyItalyAsiya Javayant QUALIFIED
Kadeem FlosiFranceIoni Bowcher UNQUALIFIED
Jones VocelkaItalyIvan Magalhaes PROPOSAL
Darci PoquetteJapanOnyama Limba RENEWAL
Arvin AlbaresBrazilStephen Shaw UNQUALIFIED
Octavia MaletAustraliaAmy Elsner NEW
Francesco ShinkoIndiaXuxue Feng NEW
Leja CaldareraArgentinaIvan Magalhaes QUALIFIED
Rodrigues CampainGermanyOnyama Limba QUALIFIED
Faith GillianGermanyAmy Elsner NEW
Wickens NestleCanadaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickJapanIvan Magalhaes NEGOTIATION
Tony FollerArgentinaIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomAnna Fali NEW
Darci PoquetteGermanyIoni Bowcher RENEWAL
Salvatore StockhamCanadaOnyama Limba QUALIFIED
Misaki RoysterArgentinaAnna Fali NEW
Jones VocelkaArgentinaAnna Fali UNQUALIFIED
Tony FollerArgentinaIoni Bowcher NEW
Cody SaylorsBrazilAsiya Javayant NEGOTIATION
Jennifer AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydUnited Kingdom2025-08-21King, Christopher A Esq NEGOTIATION67Amy Elsner
1001Leja CaldareraGermany2025-09-05Benton, John B Jr NEW20Anna Fali
1002Misaki RoysterBrazil2025-09-04Chemel, James L Cpa NEW62Anna Fali
1003Maria MarrierSpain2025-08-31Dorl, James J Esq PROPOSAL38Onyama Limba
1004Aika InouyeAustralia2025-08-26Printing Dimensions NEW54Elwin Sharvill
1005Mayumi KolmetzRussia2025-08-28Buckley Miller Wright NEGOTIATION31Ivan Magalhaes
1006Aditya KuskoIndia2025-09-07Dorl, James J Esq PROPOSAL68Onyama Limba
1007Cody SaylorsAustralia2025-09-02Chanay, Jeffrey A Esq RENEWAL73Ioni Bowcher
1008Jones VocelkaIndia2025-09-02Chanay, Jeffrey A Esq RENEWAL54Stephen Shaw
1009Aruna FigeroaIndia2025-09-06Commercial Press NEW91Stephen Shaw
1010James ButtGermany2025-08-18Feiner Bros NEGOTIATION84Bernardo Dominic
1011Arvin AlbaresCanada2025-08-16King, Christopher A Esq UNQUALIFIED14Bernardo Dominic
1012Costa DilliardJapan2025-08-19Feiner Bros UNQUALIFIED18Elwin Sharvill
1013James ButtRussia2025-09-04Dorl, James J Esq PROPOSAL7Anna Fali
1014Adams MorascaFrance2025-08-25Feiner Bros PROPOSAL31Xuxue Feng
1015Ivar PaprockiIndia2025-08-25Dorl, James J Esq RENEWAL13Amy Elsner
1016Arvin AlbaresArgentina2025-08-21Printing Dimensions RENEWAL19Asiya Javayant
1017Isabel BowleyBrazil2025-09-12Rousseaux, Michael Esq QUALIFIED89Amy Elsner
1018Jefferson SchemmerBrazil2025-08-19Feltz Printing Service QUALIFIED40Ioni Bowcher
1019Jefferson SchemmerJapan2025-09-04Buckley Miller Wright QUALIFIED5Amy Elsner
1020Mujtaba NickaJapan2025-09-12Rangoni Of Florence UNQUALIFIED97Xuxue Feng
1021Julie StensethArgentina2025-09-05Buckley Miller Wright NEW59Amy Elsner
1022Aruna FigeroaRussia2025-09-01Chanay, Jeffrey A Esq PROPOSAL32Elwin Sharvill
1023Morrow RutaItaly2025-08-20Printing Dimensions PROPOSAL66Amy Elsner
1024Smith GlickFrance2025-08-28Chemel, James L Cpa NEW2Bernardo Dominic
1025Isabel BowleyGermany2025-09-01Benton, John B Jr PROPOSAL58Ioni Bowcher
1026Misaki RoysterIndia2025-08-16Feltz Printing Service RENEWAL54Amy Elsner
1027Jennifer AmigonUnited Kingdom2025-09-12Commercial Press UNQUALIFIED50Ivan Magalhaes
1028David DarakjyArgentina2025-08-26Chapman, Ross E Esq NEW63Bernardo Dominic
1029Juan WieserFrance2025-08-21Chapman, Ross E Esq PROPOSAL89Ioni Bowcher
1030Julie StensethFrance2025-09-03Morlong Associates NEGOTIATION80Ivan Magalhaes
1031Jeanfrancois VenereBrazil2025-09-06Truhlar And Truhlar Attys UNQUALIFIED87Ivan Magalhaes
1032Tony FollerCanada2025-09-14Truhlar And Truhlar Attys NEGOTIATION24Stephen Shaw
1033Leon OldroydSpain2025-08-16King, Christopher A Esq NEW51Elwin Sharvill
1034Leja CaldareraIndia2025-09-09Feltz Printing Service NEGOTIATION54Asiya Javayant
1035Francesco ShinkoAustralia2025-08-23Morlong Associates QUALIFIED12Xuxue Feng
1036Deepesh ChuiArgentina2025-08-21Printing Dimensions RENEWAL79Bernardo Dominic
1037Emily WhobreyIndia2025-08-25Chapman, Ross E Esq QUALIFIED60Amy Elsner
1038Jefferson SchemmerSpain2025-09-04Feiner Bros NEGOTIATION98Elwin Sharvill
1039Kaitlin OstroskyRussia2025-08-24Feiner Bros NEW98Stephen Shaw
1040Chavez BriddickGermany2025-09-12Chapman, Ross E Esq PROPOSAL5Elwin Sharvill
1041Francesco ShinkoGermany2025-09-14Commercial Press UNQUALIFIED47Onyama Limba
1042Maisha RulapaughGermany2025-08-26Buckley Miller Wright NEW86Amy Elsner
1043Alejandro PerinGermany2025-08-30Benton, John B Jr RENEWAL69Asiya Javayant
1044Leon OldroydGermany2025-08-19Truhlar And Truhlar Attys PROPOSAL27Ioni Bowcher
1045Jennifer AmigonFrance2025-09-13Chapman, Ross E Esq NEW95Amy Elsner
1046Jeanfrancois VenereAustralia2025-09-10Chapman, Ross E Esq UNQUALIFIED8Xuxue Feng
1047Kadeem FlosiIndia2025-09-08King, Christopher A Esq QUALIFIED83Xuxue Feng
1048Claire TollnerFrance2025-08-22Rangoni Of Florence RENEWAL41Amy Elsner
1049Clifford RimGermany2025-08-19Rangoni Of Florence RENEWAL40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Jennifer AmigonJapanIoni Bowcher NEW
Aditya KuskoArgentinaOnyama Limba NEGOTIATION
Deepesh ChuiIndiaXuxue Feng UNQUALIFIED
Mujtaba NickaFranceIvan Magalhaes NEW
Ricardo GauchoGermanyOnyama Limba RENEWAL
Alejandro PerinAustraliaAmy Elsner NEGOTIATION
James ButtSpainElwin Sharvill RENEWAL
Ivar PaprockiFranceAsiya Javayant NEW
Leja CaldareraBrazilIvan Magalhaes PROPOSAL
Misaki RoysterGermanyBernardo Dominic UNQUALIFIED
Octavia MaletSpainAsiya Javayant QUALIFIED
Maria MarrierRussiaStephen Shaw NEW
Chavez BriddickAustraliaIoni Bowcher RENEWAL
Murillo MaletBrazilAmy Elsner NEGOTIATION
Maisha RulapaughIndiaIvan Magalhaes RENEWAL
Aruna FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaIvan Magalhaes NEW
Claire TollnerItalyIvan Magalhaes PROPOSAL
Ivar PaprockiBrazilOnyama Limba NEGOTIATION
Rodrigues CampainGermanyIvan Magalhaes NEW
Misaki RoysterIndiaStephen Shaw NEGOTIATION
Aditya KuskoGermanyAsiya Javayant QUALIFIED
Cody SaylorsItalyXuxue Feng NEW
Leja CaldareraCanadaAnna Fali RENEWAL
Aditya KuskoItalyAsiya Javayant RENEWAL
Jeanfrancois VenereJapanIoni Bowcher PROPOSAL
Jefferson SchemmerArgentinaIoni Bowcher UNQUALIFIED
Leja CaldareraGermanyIoni Bowcher NEGOTIATION
Antonio CaudyIndiaElwin Sharvill PROPOSAL
Darci PoquetteJapanXuxue Feng RENEWAL
Aditya KuskoGermanyBernardo Dominic NEW
Nicolas IturbideIndiaBernardo Dominic RENEWAL
Jennifer AmigonJapanStephen Shaw NEW
Clifford RimRussiaAsiya Javayant NEGOTIATION
Ashley DoeAustraliaIoni Bowcher PROPOSAL
Cody SaylorsIndiaBernardo Dominic NEW
Smith GlickAustraliaXuxue Feng QUALIFIED
Salvatore StockhamBrazilBernardo Dominic QUALIFIED
Mujtaba NickaGermanyIoni Bowcher RENEWAL
Kaitlin OstroskyArgentinaIoni Bowcher NEGOTIATION
Greenwood BologniaAustraliaBernardo Dominic NEW
Stacey MacleadArgentinaOnyama Limba QUALIFIED
Ashley DoeArgentinaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerAustraliaStephen Shaw PROPOSAL
Juan WieserAustraliaXuxue Feng RENEWAL
Aika InouyeCanadaIvan Magalhaes NEGOTIATION
Mayumi KolmetzItalyXuxue Feng PROPOSAL
Adams MorascaRussiaAmy Elsner QUALIFIED
Sinclair WaycottAustraliaAsiya Javayant QUALIFIED
Frozen Columns
Name
James Butt
Ivar Paprocki
Greenwood Bolognia
Rodrigues Campain
Adams Morasca
Ivar Paprocki
Maria Marrier
Juan Wieser
Maria Marrier
Ricardo Gaucho
Jefferson Schemmer
Maria Marrier
Aditya Kusko
Claire Tollner
Ricardo Gaucho
Clifford Rim
Arvin Albares
Jennifer Amigon
Octavia Malet
Sinclair Waycott
Ricardo Gaucho
Salvatore Stockham
Emily Whobrey
Arvin Albares
Maria Marrier
Murillo Malet
Arvin Albares
Jennifer Amigon
Juan Wieser
Arvin Albares
Rodrigues Campain
Munro Ferencz
James Butt
Aruna Figeroa
Jeanfrancois Venere
Jones Vocelka
Salvatore Stockham
David Darakjy
Greenwood Bolognia
David Darakjy
Costa Dilliard
Jeanfrancois Venere
Silvio Slusarski
Octavia Malet
Arvin Albares
Smith Glick
Ivar Paprocki
Wickens Nestle
Jefferson Schemmer
Deepesh Chui
IdCountryDate
1000Australia2025-09-01
1001Japan2025-09-04
1002France2025-09-09
1003Japan2025-08-18
1004Argentina2025-08-30
1005United Kingdom2025-09-02
1006Argentina2025-08-16
1007India2025-08-16
1008Argentina2025-08-31
1009Canada2025-08-30
1010Japan2025-08-19
1011France2025-08-25
1012France2025-08-31
1013India2025-09-01
1014Italy2025-09-06
1015Australia2025-08-26
1016Spain2025-09-12
1017Spain2025-09-14
1018France2025-08-18
1019Japan2025-08-22
1020Italy2025-09-03
1021United Kingdom2025-09-05
1022Germany2025-08-16
1023Canada2025-08-25
1024Spain2025-08-18
1025Australia2025-08-17
1026Italy2025-08-19
1027Spain2025-08-30
1028Australia2025-08-23
1029Japan2025-08-26
1030France2025-09-07
1031India2025-08-23
1032Australia2025-08-17
1033Brazil2025-08-21
1034Spain2025-09-03
1035Germany2025-08-20
1036United Kingdom2025-08-28
1037Germany2025-08-23
1038France2025-08-19
1039Germany2025-09-04
1040Argentina2025-08-17
1041Canada2025-08-24
1042Brazil2025-09-03
1043Italy2025-08-28
1044Canada2025-09-05
1045France2025-08-20
1046Spain2025-09-01
1047Japan2025-09-02
1048Italy2025-09-03
1049Canada2025-09-01

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Brazil2025-09-12
Aditya Kusko1001Italy2025-08-26
Tony Foller1002Italy2025-08-25
Murillo Malet1003Russia2025-09-05
Sinclair Waycott1004Canada2025-09-08
Salvatore Stockham1005India2025-09-04
Salvatore Stockham1006Germany2025-09-13
Tony Foller1007Brazil2025-09-14
Sinclair Waycott1008India2025-09-13
Wickens Nestle1009United Kingdom2025-08-26
Salvatore Stockham1010Germany2025-08-30
Costa Dilliard1011Russia2025-08-20
Octavia Malet1012Spain2025-08-28
Alejandro Perin1013Japan2025-08-17
Jennifer Amigon1014Argentina2025-09-06
Leja Caldarera1015India2025-08-26
Maria Marrier1016Brazil2025-08-19
Jefferson Schemmer1017Canada2025-08-26
Smith Glick1018Japan2025-08-26
Mujtaba Nicka1019United Kingdom2025-09-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiSpainElwin Sharvill NEW
Francesco ShinkoCanadaIoni Bowcher NEGOTIATION
Deepesh ChuiSpainIoni Bowcher NEGOTIATION
James ButtCanadaAnna Fali UNQUALIFIED
Sinclair WaycottSpainElwin Sharvill RENEWAL
Clifford RimFranceIoni Bowcher RENEWAL
Aruna FigeroaBrazilStephen Shaw NEW
Wickens NestleSpainStephen Shaw NEGOTIATION
Darci PoquetteFranceIvan Magalhaes QUALIFIED
Darci PoquetteItalyOnyama Limba PROPOSAL
Arvin AlbaresItalyStephen Shaw PROPOSAL
Ricardo GauchoRussiaXuxue Feng NEW
Greenwood BologniaJapanAmy Elsner PROPOSAL
Octavia MaletFranceAnna Fali UNQUALIFIED
Murillo MaletAustraliaAmy Elsner NEW
Adams MorascaGermanyElwin Sharvill UNQUALIFIED
Jefferson SchemmerAustraliaBernardo Dominic QUALIFIED
Misaki RoysterJapanXuxue Feng UNQUALIFIED
Johnson SergiFranceBernardo Dominic PROPOSAL
James ButtAustraliaAnna Fali UNQUALIFIED
Juan WieserIndiaXuxue Feng QUALIFIED
Jefferson SchemmerItalyOnyama Limba NEGOTIATION
Jeanfrancois VenereIndiaAmy Elsner UNQUALIFIED
Murillo MaletIndiaIvan Magalhaes NEGOTIATION
Nicolas IturbideFranceBernardo Dominic RENEWAL
Murillo MaletRussiaAnna Fali UNQUALIFIED
Silvio SlusarskiArgentinaBernardo Dominic PROPOSAL
Alejandro PerinIndiaAnna Fali NEW
Juan WieserRussiaElwin Sharvill RENEWAL
Leon OldroydJapanAnna Fali NEW
Jeanfrancois VenereBrazilOnyama Limba NEGOTIATION
Arvin AlbaresFranceBernardo Dominic NEGOTIATION
Mayumi KolmetzIndiaIoni Bowcher NEGOTIATION
Stacey MacleadAustraliaIoni Bowcher QUALIFIED
Silvio SlusarskiSpainIvan Magalhaes NEGOTIATION
Leja CaldareraArgentinaElwin Sharvill NEW
Cody SaylorsItalyOnyama Limba PROPOSAL
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
Emily WhobreyFranceXuxue Feng QUALIFIED
Ivar PaprockiItalyIoni Bowcher NEW

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