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
Kaitlin OstroskyBrazilOnyama Limba NEGOTIATION
David DarakjyBrazilBernardo Dominic QUALIFIED
Murillo MaletArgentinaAnna Fali RENEWAL
Costa DilliardIndiaIvan Magalhaes RENEWAL
Adams MorascaJapanAnna Fali NEW
Johnson SergiItalyOnyama Limba UNQUALIFIED
Mayumi KolmetzSpainAsiya Javayant NEW
Claire TollnerGermanyAmy Elsner NEGOTIATION
Alejandro PerinGermanyStephen Shaw UNQUALIFIED
Tony FollerFranceIoni Bowcher PROPOSAL
Cody SaylorsIndiaIvan Magalhaes QUALIFIED
Nicolas IturbideArgentinaStephen Shaw UNQUALIFIED
Wickens NestleIndiaBernardo Dominic QUALIFIED
Faith GillianCanadaXuxue Feng NEGOTIATION
Ricardo GauchoItalyAnna Fali RENEWAL
David DarakjyCanadaAmy Elsner PROPOSAL
Misaki RoysterFranceAmy Elsner NEGOTIATION
Claire TollnerIndiaAmy Elsner UNQUALIFIED
Kaitlin OstroskyIndiaElwin Sharvill NEW
Juan WieserIndiaBernardo Dominic NEGOTIATION
Maisha RulapaughGermanyAnna Fali RENEWAL
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Chavez BriddickUnited KingdomIoni Bowcher NEGOTIATION
Morrow RutaItalyBernardo Dominic NEGOTIATION
Antonio CaudyGermanyElwin Sharvill NEW
Deepesh ChuiSpainAmy Elsner NEW
Maisha RulapaughSpainAsiya Javayant RENEWAL
Mayumi KolmetzItalyIoni Bowcher NEW
Mayumi KolmetzSpainIoni Bowcher PROPOSAL
Leon OldroydUnited KingdomAnna Fali NEW
Isabel BowleySpainXuxue Feng NEW
Emily WhobreySpainAmy Elsner NEGOTIATION
Octavia MaletArgentinaBernardo Dominic QUALIFIED
Maria MarrierSpainBernardo Dominic QUALIFIED
Kadeem FlosiSpainBernardo Dominic QUALIFIED
Kadeem FlosiIndiaIoni Bowcher QUALIFIED
Francesco ShinkoItalyBernardo Dominic PROPOSAL
David DarakjySpainAnna Fali UNQUALIFIED
Deepesh ChuiFranceXuxue Feng UNQUALIFIED
Alejandro PerinItalyOnyama Limba UNQUALIFIED
Costa DilliardCanadaAmy Elsner NEGOTIATION
Aika InouyeItalyXuxue Feng UNQUALIFIED
Munro FerenczRussiaOnyama Limba NEW
Julie StensethUnited KingdomStephen Shaw RENEWAL
Leon OldroydBrazilXuxue Feng QUALIFIED
Isabel BowleyGermanyXuxue Feng NEW
Aruna FigeroaIndiaXuxue Feng PROPOSAL
Octavia MaletArgentinaXuxue Feng QUALIFIED
Deepesh ChuiItalyAsiya Javayant RENEWAL
Ivar PaprockiBrazilXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyAustraliaOnyama Limba NEGOTIATION
Nicolas IturbideJapanIvan Magalhaes NEGOTIATION
Octavia MaletAustraliaIoni Bowcher NEGOTIATION
Sinclair WaycottRussiaAsiya Javayant NEGOTIATION
Chavez BriddickSpainIvan Magalhaes PROPOSAL
Emily WhobreyUnited KingdomBernardo Dominic RENEWAL
Cody SaylorsFranceAsiya Javayant RENEWAL
Misaki RoysterUnited KingdomIvan Magalhaes PROPOSAL
James ButtBrazilStephen Shaw NEGOTIATION
Ashley DoeUnited KingdomAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyAustralia2026-04-25Chemel, James L Cpa NEW97Ioni Bowcher
1001Wickens NestleItaly2026-04-14Rousseaux, Michael Esq NEW20Stephen Shaw
1002Tony FollerAustralia2026-04-13Rousseaux, Michael Esq NEW26Xuxue Feng
1003Kaitlin OstroskyUnited Kingdom2026-04-09King, Christopher A Esq NEGOTIATION81Amy Elsner
1004Julie StensethFrance2026-04-21Rangoni Of Florence PROPOSAL86Elwin Sharvill
1005Emily WhobreyRussia2026-04-04Chemel, James L Cpa UNQUALIFIED44Elwin Sharvill
1006Stacey MacleadArgentina2026-04-21Dorl, James J Esq PROPOSAL12Ivan Magalhaes
1007Misaki RoysterJapan2026-04-01Commercial Press NEW86Ivan Magalhaes
1008Antonio CaudyAustralia2026-04-05Chanay, Jeffrey A Esq PROPOSAL70Amy Elsner
1009Cody SaylorsItaly2026-03-31Chemel, James L Cpa NEGOTIATION1Ioni Bowcher
1010Darci PoquetteBrazil2026-04-22Buckley Miller Wright NEW65Bernardo Dominic
1011Costa DilliardArgentina2026-04-23Commercial Press PROPOSAL24Onyama Limba
1012Alejandro PerinFrance2026-04-29Morlong Associates NEW49Onyama Limba
1013Antonio CaudyFrance2026-04-16Buckley Miller Wright UNQUALIFIED32Xuxue Feng
1014Octavia MaletBrazil2026-04-22King, Christopher A Esq PROPOSAL79Anna Fali
1015Jennifer AmigonUnited Kingdom2026-04-24Chanay, Jeffrey A Esq QUALIFIED1Stephen Shaw
1016Sinclair WaycottRussia2026-04-18Buckley Miller Wright QUALIFIED48Asiya Javayant
1017Mayumi KolmetzAustralia2026-04-29Rousseaux, Michael Esq QUALIFIED54Elwin Sharvill
1018Ashley DoeSpain2026-04-21Feltz Printing Service NEW18Bernardo Dominic
1019Faith GillianGermany2026-04-15Buckley Miller Wright QUALIFIED27Elwin Sharvill
1020Aditya KuskoFrance2026-04-29Dorl, James J Esq UNQUALIFIED20Ivan Magalhaes
1021Chavez BriddickSpain2026-04-17Morlong Associates QUALIFIED26Anna Fali
1022Arvin AlbaresSpain2026-04-15Dorl, James J Esq NEGOTIATION29Ivan Magalhaes
1023Aika InouyeArgentina2026-04-29Rangoni Of Florence NEW47Amy Elsner
1024Isabel BowleyGermany2026-04-04Feiner Bros UNQUALIFIED86Xuxue Feng
1025Ashley DoeAustralia2026-04-17Chemel, James L Cpa NEW65Stephen Shaw
1026Chavez BriddickCanada2026-04-12Chanay, Jeffrey A Esq NEGOTIATION24Xuxue Feng
1027Deepesh ChuiSpain2026-04-02Chapman, Ross E Esq UNQUALIFIED96Ivan Magalhaes
1028Mujtaba NickaArgentina2026-04-13King, Christopher A Esq NEW80Elwin Sharvill
1029Wickens NestleArgentina2026-04-07Morlong Associates RENEWAL7Elwin Sharvill
1030Aditya KuskoGermany2026-04-29Commercial Press NEGOTIATION62Anna Fali
1031Costa DilliardIndia2026-04-29Benton, John B Jr QUALIFIED56Amy Elsner
1032Mayumi KolmetzArgentina2026-04-21Chemel, James L Cpa NEW30Ioni Bowcher
1033Costa DilliardArgentina2026-04-27Chanay, Jeffrey A Esq QUALIFIED65Anna Fali
1034Stacey MacleadArgentina2026-04-21Chemel, James L Cpa QUALIFIED20Elwin Sharvill
1035Rodrigues CampainItaly2026-04-21Chemel, James L Cpa PROPOSAL73Anna Fali
1036Aika InouyeBrazil2026-04-14Printing Dimensions RENEWAL69Xuxue Feng
1037Greenwood BologniaRussia2026-04-05King, Christopher A Esq PROPOSAL67Xuxue Feng
1038Izzy GarufiUnited Kingdom2026-04-03Chanay, Jeffrey A Esq QUALIFIED63Anna Fali
1039Claire TollnerGermany2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED66Stephen Shaw
1040James ButtArgentina2026-04-12Printing Dimensions UNQUALIFIED95Elwin Sharvill
1041Nicolas IturbideFrance2026-04-18Chemel, James L Cpa QUALIFIED1Xuxue Feng
1042Cody SaylorsSpain2026-04-05Chapman, Ross E Esq UNQUALIFIED87Bernardo Dominic
1043Deepesh ChuiUnited Kingdom2026-04-01Chemel, James L Cpa RENEWAL84Anna Fali
1044Mujtaba NickaItaly2026-04-21Buckley Miller Wright QUALIFIED56Amy Elsner
1045Jeanfrancois VenereCanada2026-04-24Commercial Press NEW26Anna Fali
1046Octavia MaletArgentina2026-04-27Benton, John B Jr PROPOSAL78Bernardo Dominic
1047Aruna FigeroaRussia2026-04-22Chemel, James L Cpa NEW15Stephen Shaw
1048Julie StensethArgentina2026-03-31Benton, John B Jr RENEWAL35Elwin Sharvill
1049Morrow RutaItaly2026-04-10Rangoni Of Florence PROPOSAL76Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletItalyAmy Elsner QUALIFIED
Smith GlickCanadaBernardo Dominic NEGOTIATION
Aditya KuskoBrazilStephen Shaw QUALIFIED
Cody SaylorsJapanAsiya Javayant RENEWAL
Deepesh ChuiFranceBernardo Dominic RENEWAL
Kaitlin OstroskyIndiaStephen Shaw PROPOSAL
Emily WhobreyJapanAmy Elsner RENEWAL
Stacey MacleadArgentinaAnna Fali UNQUALIFIED
David DarakjyJapanStephen Shaw PROPOSAL
Ricardo GauchoJapanAnna Fali NEGOTIATION
James ButtFranceAmy Elsner QUALIFIED
Izzy GarufiJapanIvan Magalhaes NEW
Francesco ShinkoFranceElwin Sharvill NEGOTIATION
Ashley DoeItalyAnna Fali RENEWAL
Jones VocelkaUnited KingdomXuxue Feng NEW
Kaitlin OstroskyGermanyAmy Elsner RENEWAL
Mujtaba NickaRussiaAmy Elsner PROPOSAL
Morrow RutaCanadaIoni Bowcher RENEWAL
Misaki RoysterBrazilStephen Shaw NEW
Julie StensethArgentinaXuxue Feng NEW
Kaitlin OstroskyFranceStephen Shaw QUALIFIED
Octavia MaletAustraliaElwin Sharvill PROPOSAL
Cody SaylorsCanadaIoni Bowcher QUALIFIED
Jeanfrancois VenereSpainBernardo Dominic UNQUALIFIED
Maria MarrierIndiaAmy Elsner NEW
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Greenwood BologniaGermanyOnyama Limba PROPOSAL
Claire TollnerFranceAnna Fali NEW
Chavez BriddickRussiaAmy Elsner NEW
Aditya KuskoJapanAmy Elsner QUALIFIED
Ashley DoeIndiaOnyama Limba NEW
Aditya KuskoJapanIoni Bowcher QUALIFIED
Juan WieserGermanyXuxue Feng NEGOTIATION
Francesco ShinkoJapanAmy Elsner UNQUALIFIED
Murillo MaletAustraliaXuxue Feng NEW
Jennifer AmigonUnited KingdomAmy Elsner RENEWAL
Munro FerenczIndiaAnna Fali PROPOSAL
Chavez BriddickAustraliaIvan Magalhaes PROPOSAL
Mayumi KolmetzArgentinaOnyama Limba PROPOSAL
Aika InouyeUnited KingdomIvan Magalhaes PROPOSAL
Juan WieserBrazilIoni Bowcher RENEWAL
Smith GlickFranceAnna Fali NEW
Jones VocelkaBrazilElwin Sharvill RENEWAL
Aditya KuskoRussiaIoni Bowcher QUALIFIED
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Kadeem FlosiItalyAmy Elsner RENEWAL
Isabel BowleyUnited KingdomAnna Fali PROPOSAL
Leon OldroydBrazilIoni Bowcher UNQUALIFIED
Maria MarrierAustraliaXuxue Feng RENEWAL
Chavez BriddickSpainAsiya Javayant NEGOTIATION
Frozen Columns
Name
Misaki Royster
Morrow Ruta
Leon Oldroyd
Greenwood Bolognia
Smith Glick
Kaitlin Ostrosky
Adams Morasca
Juan Wieser
Kaitlin Ostrosky
Ashley Doe
Alejandro Perin
Munro Ferencz
Salvatore Stockham
Leja Caldarera
Darci Poquette
Tony Foller
Antonio Caudy
Maisha Rulapaugh
Mujtaba Nicka
Antonio Caudy
Chavez Briddick
Smith Glick
Mujtaba Nicka
Greenwood Bolognia
Jones Vocelka
Jennifer Amigon
Chavez Briddick
Ivar Paprocki
Morrow Ruta
Greenwood Bolognia
Jones Vocelka
Silvio Slusarski
Deepesh Chui
Deepesh Chui
Sinclair Waycott
Kaitlin Ostrosky
Julie Stenseth
Julie Stenseth
Aruna Figeroa
Stacey Maclead
Chavez Briddick
Darci Poquette
Aruna Figeroa
Leon Oldroyd
James Butt
Misaki Royster
Leja Caldarera
Murillo Malet
Kaitlin Ostrosky
Rodrigues Campain
IdCountryDate
1000France2026-04-08
1001Spain2026-04-08
1002Brazil2026-04-12
1003United Kingdom2026-04-26
1004Germany2026-04-09
1005Brazil2026-04-13
1006France2026-04-12
1007Canada2026-04-06
1008Germany2026-04-12
1009Germany2026-04-25
1010Germany2026-04-04
1011Canada2026-04-24
1012Germany2026-04-24
1013Canada2026-04-13
1014Canada2026-04-02
1015Argentina2026-04-21
1016Canada2026-04-03
1017Russia2026-04-03
1018Spain2026-03-31
1019Brazil2026-04-28
1020Spain2026-04-27
1021Germany2026-04-11
1022Spain2026-04-19
1023Russia2026-04-06
1024Brazil2026-04-13
1025Russia2026-03-31
1026Argentina2026-04-20
1027India2026-04-05
1028Australia2026-04-13
1029United Kingdom2026-04-26
1030Japan2026-04-01
1031Brazil2026-04-24
1032Spain2026-04-04
1033Brazil2026-04-17
1034Japan2026-04-22
1035Argentina2026-04-04
1036Russia2026-04-15
1037Russia2026-03-31
1038Argentina2026-04-10
1039India2026-04-08
1040Brazil2026-04-05
1041Italy2026-04-16
1042Australia2026-04-04
1043Russia2026-04-26
1044Argentina2026-04-23
1045Spain2026-04-26
1046Germany2026-04-15
1047Argentina2026-04-20
1048India2026-04-08
1049Germany2026-04-18

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Italy2026-04-27
Munro Ferencz1001Italy2026-04-08
Mayumi Kolmetz1002Germany2026-04-05
Darci Poquette1003Italy2026-04-11
Jeanfrancois Venere1004Germany2026-04-08
Jefferson Schemmer1005Brazil2026-04-04
Aika Inouye1006France2026-04-08
Octavia Malet1007Italy2026-04-16
Francesco Shinko1008Canada2026-04-15
David Darakjy1009France2026-03-31
Arvin Albares1010Canada2026-04-06
Julie Stenseth1011Russia2026-04-20
Juan Wieser1012Germany2026-04-10
Emily Whobrey1013Canada2026-04-23
Adams Morasca1014France2026-04-08
Arvin Albares1015Spain2026-04-04
Morrow Ruta1016Spain2026-04-26
Stacey Maclead1017Spain2026-04-10
Rodrigues Campain1018Germany2026-04-05
Maisha Rulapaugh1019India2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya KuskoJapanAmy Elsner QUALIFIED
Leja CaldareraJapanStephen Shaw QUALIFIED
Sinclair WaycottIndiaAmy Elsner NEW
Aruna FigeroaSpainOnyama Limba QUALIFIED
Sinclair WaycottGermanyAsiya Javayant NEGOTIATION
Claire TollnerIndiaElwin Sharvill PROPOSAL
Maria MarrierIndiaStephen Shaw RENEWAL
Johnson SergiGermanyIvan Magalhaes UNQUALIFIED
Octavia MaletFranceOnyama Limba QUALIFIED
Ashley DoeArgentinaElwin Sharvill RENEWAL
Wickens NestleGermanyBernardo Dominic PROPOSAL
Clifford RimAustraliaIvan Magalhaes PROPOSAL
Costa DilliardFranceAnna Fali RENEWAL
Francesco ShinkoFranceOnyama Limba QUALIFIED
Salvatore StockhamFranceAsiya Javayant RENEWAL
David DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Julie StensethItalyElwin Sharvill NEW
Mayumi KolmetzUnited KingdomXuxue Feng NEGOTIATION
Aruna FigeroaBrazilXuxue Feng PROPOSAL
Aika InouyeBrazilAmy Elsner NEGOTIATION
Smith GlickFranceAnna Fali PROPOSAL
David DarakjyJapanAmy Elsner UNQUALIFIED
Leja CaldareraBrazilAsiya Javayant RENEWAL
Leon OldroydItalyOnyama Limba UNQUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes NEW
Tony FollerRussiaAmy Elsner NEW
Stacey MacleadRussiaIoni Bowcher NEW
Emily WhobreyRussiaXuxue Feng RENEWAL
Alejandro PerinAustraliaIvan Magalhaes QUALIFIED
Johnson SergiAustraliaBernardo Dominic RENEWAL
Aditya KuskoGermanyIvan Magalhaes NEGOTIATION
Salvatore StockhamGermanyBernardo Dominic UNQUALIFIED
David DarakjySpainXuxue Feng NEGOTIATION
Chavez BriddickCanadaAsiya Javayant NEGOTIATION
Munro FerenczGermanyXuxue Feng QUALIFIED
Izzy GarufiAustraliaAnna Fali RENEWAL
Jefferson SchemmerRussiaAmy Elsner PROPOSAL
Octavia MaletJapanBernardo Dominic QUALIFIED
Ivar PaprockiUnited KingdomXuxue Feng NEW
Nicolas IturbideCanadaIvan Magalhaes 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>