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 WaycottRussiaAnna Fali QUALIFIED
Leon OldroydItalyAnna Fali RENEWAL
Leja CaldareraUnited KingdomAnna Fali RENEWAL
Stacey MacleadArgentinaStephen Shaw PROPOSAL
David DarakjyBrazilAmy Elsner UNQUALIFIED
Rodrigues CampainSpainStephen Shaw NEGOTIATION
Rodrigues CampainRussiaStephen Shaw NEGOTIATION
Aika InouyeFranceAnna Fali PROPOSAL
Smith GlickGermanyAmy Elsner NEGOTIATION
Tony FollerJapanIvan Magalhaes RENEWAL
Mujtaba NickaArgentinaAmy Elsner NEW
Alejandro PerinCanadaOnyama Limba PROPOSAL
Jefferson SchemmerGermanyIoni Bowcher NEW
Murillo MaletAustraliaOnyama Limba NEGOTIATION
Ricardo GauchoSpainBernardo Dominic NEGOTIATION
Maisha RulapaughItalyIvan Magalhaes NEGOTIATION
Rodrigues CampainFranceAnna Fali UNQUALIFIED
Tony FollerGermanyAmy Elsner QUALIFIED
Alejandro PerinIndiaXuxue Feng NEW
Sinclair WaycottRussiaIvan Magalhaes NEGOTIATION
Julie StensethGermanyElwin Sharvill PROPOSAL
James ButtAustraliaElwin Sharvill RENEWAL
Johnson SergiCanadaIoni Bowcher QUALIFIED
Maisha RulapaughSpainIvan Magalhaes QUALIFIED
Cody SaylorsJapanOnyama Limba NEGOTIATION
Emily WhobreyArgentinaAsiya Javayant NEGOTIATION
Isabel BowleyCanadaAmy Elsner UNQUALIFIED
Mayumi KolmetzSpainXuxue Feng NEW
Aruna FigeroaSpainElwin Sharvill UNQUALIFIED
Maisha RulapaughFranceAsiya Javayant NEGOTIATION
Chavez BriddickItalyBernardo Dominic NEW
Deepesh ChuiRussiaXuxue Feng NEW
Misaki RoysterBrazilIvan Magalhaes RENEWAL
Chavez BriddickJapanIvan Magalhaes NEGOTIATION
Murillo MaletGermanyXuxue Feng PROPOSAL
Arvin AlbaresGermanyAsiya Javayant UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Juan WieserUnited KingdomBernardo Dominic PROPOSAL
Greenwood BologniaJapanElwin Sharvill NEW
Francesco ShinkoItalyElwin Sharvill PROPOSAL
Aditya KuskoGermanyIoni Bowcher QUALIFIED
Aditya KuskoUnited KingdomIvan Magalhaes PROPOSAL
Deepesh ChuiIndiaElwin Sharvill QUALIFIED
Munro FerenczAustraliaOnyama Limba RENEWAL
Isabel BowleyCanadaOnyama Limba RENEWAL
Chavez BriddickSpainXuxue Feng PROPOSAL
Mujtaba NickaAustraliaAnna Fali UNQUALIFIED
Jefferson SchemmerArgentinaBernardo Dominic NEGOTIATION
Jefferson SchemmerFranceIoni Bowcher PROPOSAL
Salvatore StockhamAustraliaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan WieserFranceAmy Elsner RENEWAL
Morrow RutaAustraliaStephen Shaw UNQUALIFIED
Alejandro PerinCanadaIvan Magalhaes PROPOSAL
Claire TollnerRussiaOnyama Limba NEW
Deepesh ChuiGermanyBernardo Dominic NEGOTIATION
Claire TollnerBrazilElwin Sharvill UNQUALIFIED
Leja CaldareraBrazilOnyama Limba UNQUALIFIED
Chavez BriddickGermanyAmy Elsner PROPOSAL
Octavia MaletSpainIoni Bowcher NEGOTIATION
Aditya KuskoUnited KingdomStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaArgentina2025-08-05Feltz Printing Service NEW33Ioni Bowcher
1001Jennifer AmigonCanada2025-08-21Benton, John B Jr PROPOSAL16Onyama Limba
1002Tony FollerSpain2025-08-25Commercial Press QUALIFIED71Amy Elsner
1003Darci PoquetteJapan2025-08-07Dorl, James J Esq QUALIFIED63Elwin Sharvill
1004Tony FollerItaly2025-08-18King, Christopher A Esq PROPOSAL61Anna Fali
1005Izzy GarufiCanada2025-08-05Chanay, Jeffrey A Esq NEGOTIATION35Anna Fali
1006Francesco ShinkoGermany2025-08-01Rangoni Of Florence RENEWAL8Asiya Javayant
1007Maria MarrierRussia2025-08-23Feltz Printing Service RENEWAL87Ioni Bowcher
1008Ivar PaprockiJapan2025-07-29King, Christopher A Esq UNQUALIFIED93Ioni Bowcher
1009Izzy GarufiFrance2025-08-20Truhlar And Truhlar Attys NEGOTIATION61Bernardo Dominic
1010Greenwood BologniaFrance2025-08-08Rousseaux, Michael Esq NEW27Amy Elsner
1011Maria MarrierAustralia2025-08-20Buckley Miller Wright NEW21Xuxue Feng
1012Isabel BowleyGermany2025-08-14Chanay, Jeffrey A Esq QUALIFIED24Amy Elsner
1013Kaitlin OstroskyBrazil2025-08-16Printing Dimensions NEGOTIATION94Ioni Bowcher
1014Claire TollnerItaly2025-08-17Rousseaux, Michael Esq NEGOTIATION48Asiya Javayant
1015Ivar PaprockiAustralia2025-08-09King, Christopher A Esq UNQUALIFIED66Bernardo Dominic
1016Morrow RutaUnited Kingdom2025-08-05Dorl, James J Esq UNQUALIFIED58Ioni Bowcher
1017Murillo MaletCanada2025-08-10Chapman, Ross E Esq QUALIFIED69Asiya Javayant
1018Arvin AlbaresCanada2025-07-28Rousseaux, Michael Esq NEGOTIATION97Onyama Limba
1019Rodrigues CampainJapan2025-08-01Benton, John B Jr RENEWAL35Anna Fali
1020Isabel BowleySpain2025-08-06Truhlar And Truhlar Attys NEW9Anna Fali
1021Kaitlin OstroskyJapan2025-08-02Dorl, James J Esq NEW7Anna Fali
1022Leon OldroydRussia2025-08-05Buckley Miller Wright NEGOTIATION69Ivan Magalhaes
1023Smith GlickAustralia2025-08-19Rangoni Of Florence PROPOSAL10Ioni Bowcher
1024James ButtSpain2025-08-22Commercial Press RENEWAL47Elwin Sharvill
1025Francesco ShinkoAustralia2025-08-13Rousseaux, Michael Esq UNQUALIFIED28Elwin Sharvill
1026Claire TollnerGermany2025-08-21Chapman, Ross E Esq RENEWAL63Anna Fali
1027Morrow RutaIndia2025-08-19Rangoni Of Florence UNQUALIFIED87Amy Elsner
1028Isabel BowleyCanada2025-08-11Rangoni Of Florence NEGOTIATION94Anna Fali
1029Juan WieserGermany2025-08-25Dorl, James J Esq UNQUALIFIED62Bernardo Dominic
1030Emily WhobreyGermany2025-08-23Printing Dimensions RENEWAL97Amy Elsner
1031Maria MarrierSpain2025-07-31Dorl, James J Esq NEW55Elwin Sharvill
1032Misaki RoysterUnited Kingdom2025-08-15Dorl, James J Esq UNQUALIFIED2Onyama Limba
1033Ricardo GauchoGermany2025-08-22Printing Dimensions UNQUALIFIED1Elwin Sharvill
1034Johnson SergiArgentina2025-08-19Commercial Press NEGOTIATION96Xuxue Feng
1035Maisha RulapaughFrance2025-08-24Buckley Miller Wright PROPOSAL50Stephen Shaw
1036Darci PoquetteFrance2025-08-07Feiner Bros PROPOSAL89Xuxue Feng
1037Silvio SlusarskiFrance2025-08-06Dorl, James J Esq PROPOSAL83Amy Elsner
1038Nicolas IturbideGermany2025-08-01Dorl, James J Esq NEW42Elwin Sharvill
1039Stacey MacleadFrance2025-08-19Benton, John B Jr QUALIFIED79Anna Fali
1040Maria MarrierSpain2025-08-16Dorl, James J Esq RENEWAL31Asiya Javayant
1041Aditya KuskoGermany2025-07-27King, Christopher A Esq NEW14Onyama Limba
1042Emily WhobreyCanada2025-08-20Morlong Associates NEW20Ioni Bowcher
1043Deepesh ChuiAustralia2025-08-05Rangoni Of Florence UNQUALIFIED81Xuxue Feng
1044Tony FollerGermany2025-08-21Chapman, Ross E Esq QUALIFIED33Onyama Limba
1045Aditya KuskoRussia2025-08-19Morlong Associates NEW59Anna Fali
1046Cody SaylorsAustralia2025-08-08Printing Dimensions RENEWAL14Amy Elsner
1047Wickens NestleRussia2025-08-06Feiner Bros NEW10Stephen Shaw
1048Mujtaba NickaAustralia2025-08-25Commercial Press PROPOSAL26Amy Elsner
1049Ashley DoeCanada2025-08-09Feiner Bros UNQUALIFIED22Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaAsiya Javayant NEW
Deepesh ChuiArgentinaOnyama Limba NEGOTIATION
Mayumi KolmetzJapanAsiya Javayant UNQUALIFIED
Darci PoquetteArgentinaBernardo Dominic QUALIFIED
Aika InouyeFranceIvan Magalhaes PROPOSAL
Mayumi KolmetzRussiaXuxue Feng RENEWAL
Rodrigues CampainSpainStephen Shaw NEGOTIATION
Aika InouyeAustraliaOnyama Limba QUALIFIED
Francesco ShinkoSpainXuxue Feng PROPOSAL
Antonio CaudyIndiaBernardo Dominic NEW
Sinclair WaycottBrazilXuxue Feng UNQUALIFIED
Cody SaylorsRussiaStephen Shaw UNQUALIFIED
Silvio SlusarskiIndiaAmy Elsner PROPOSAL
Chavez BriddickRussiaElwin Sharvill RENEWAL
Salvatore StockhamGermanyIoni Bowcher NEW
Cody SaylorsAustraliaXuxue Feng NEW
Darci PoquetteAustraliaIoni Bowcher RENEWAL
Darci PoquetteJapanOnyama Limba RENEWAL
James ButtAustraliaOnyama Limba NEW
Alejandro PerinJapanAnna Fali NEGOTIATION
Salvatore StockhamGermanyAmy Elsner UNQUALIFIED
Mujtaba NickaAustraliaAsiya Javayant NEGOTIATION
Mayumi KolmetzSpainBernardo Dominic NEGOTIATION
Leja CaldareraBrazilXuxue Feng NEW
Mayumi KolmetzGermanyAnna Fali QUALIFIED
Deepesh ChuiJapanElwin Sharvill QUALIFIED
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Tony FollerItalyAmy Elsner NEW
Salvatore StockhamArgentinaIoni Bowcher NEW
Ivar PaprockiSpainAnna Fali PROPOSAL
Jennifer AmigonIndiaAmy Elsner QUALIFIED
Deepesh ChuiSpainBernardo Dominic NEW
Costa DilliardItalyIoni Bowcher NEW
Salvatore StockhamItalyIvan Magalhaes UNQUALIFIED
Emily WhobreyBrazilElwin Sharvill UNQUALIFIED
Darci PoquetteJapanIvan Magalhaes PROPOSAL
Izzy GarufiAustraliaAnna Fali PROPOSAL
Francesco ShinkoGermanyIvan Magalhaes NEW
Jeanfrancois VenereFranceAsiya Javayant NEW
Cody SaylorsCanadaIoni Bowcher NEGOTIATION
Antonio CaudySpainAnna Fali NEW
Julie StensethAustraliaIvan Magalhaes PROPOSAL
Greenwood BologniaUnited KingdomIoni Bowcher NEW
Francesco ShinkoRussiaOnyama Limba RENEWAL
Greenwood BologniaCanadaAsiya Javayant QUALIFIED
Ivar PaprockiCanadaBernardo Dominic RENEWAL
Smith GlickAustraliaAsiya Javayant NEGOTIATION
Clifford RimAustraliaAnna Fali QUALIFIED
Jefferson SchemmerArgentinaAnna Fali RENEWAL
Silvio SlusarskiGermanyXuxue Feng RENEWAL
Frozen Columns
Name
Rodrigues Campain
Ivar Paprocki
Jefferson Schemmer
Ivar Paprocki
Aditya Kusko
Ashley Doe
Smith Glick
Izzy Garufi
Salvatore Stockham
Smith Glick
Rodrigues Campain
Salvatore Stockham
Jeanfrancois Venere
David Darakjy
Mujtaba Nicka
Maria Marrier
Deepesh Chui
Deepesh Chui
Deepesh Chui
Deepesh Chui
Ashley Doe
Emily Whobrey
Murillo Malet
Alejandro Perin
Misaki Royster
Cody Saylors
Wickens Nestle
Ashley Doe
James Butt
Salvatore Stockham
Ashley Doe
Morrow Ruta
Sinclair Waycott
Sinclair Waycott
Stacey Maclead
Chavez Briddick
Darci Poquette
Stacey Maclead
Mujtaba Nicka
Isabel Bowley
Murillo Malet
Izzy Garufi
Julie Stenseth
Isabel Bowley
Smith Glick
Johnson Sergi
Nicolas Iturbide
Johnson Sergi
Ashley Doe
Aruna Figeroa
IdCountryDate
1000United Kingdom2025-08-07
1001Canada2025-07-29
1002Argentina2025-08-10
1003Argentina2025-08-14
1004Australia2025-08-24
1005Japan2025-07-31
1006Italy2025-08-10
1007Russia2025-08-20
1008Australia2025-08-22
1009Japan2025-08-15
1010Australia2025-08-15
1011Germany2025-08-21
1012Canada2025-08-19
1013United Kingdom2025-08-04
1014Italy2025-08-04
1015Australia2025-08-15
1016Argentina2025-07-28
1017Italy2025-08-23
1018Argentina2025-08-01
1019France2025-08-07
1020Brazil2025-07-28
1021Japan2025-08-02
1022Canada2025-08-01
1023India2025-08-12
1024Italy2025-08-12
1025Italy2025-08-15
1026Australia2025-08-15
1027Germany2025-08-24
1028United Kingdom2025-08-14
1029Canada2025-08-06
1030India2025-08-24
1031Australia2025-08-24
1032Italy2025-08-01
1033Russia2025-08-08
1034Japan2025-08-02
1035Argentina2025-08-14
1036Italy2025-07-28
1037United Kingdom2025-08-05
1038Canada2025-08-18
1039Canada2025-08-11
1040India2025-08-15
1041France2025-08-17
1042Spain2025-08-21
1043Japan2025-08-18
1044India2025-08-11
1045France2025-08-12
1046Spain2025-08-12
1047United Kingdom2025-08-24
1048Germany2025-08-23
1049Italy2025-07-31

On-Demand Data

NameIdCountryDate
Johnson Sergi1000France2025-08-03
Aruna Figeroa1001Canada2025-07-30
Izzy Garufi1002Argentina2025-08-22
Ivar Paprocki1003Brazil2025-08-14
Octavia Malet1004India2025-08-11
Silvio Slusarski1005Brazil2025-08-07
Adams Morasca1006Japan2025-08-05
Murillo Malet1007Brazil2025-08-14
Izzy Garufi1008Germany2025-08-09
Francesco Shinko1009Brazil2025-08-18
Ricardo Gaucho1010Russia2025-08-24
Johnson Sergi1011United Kingdom2025-08-11
Maisha Rulapaugh1012Brazil2025-08-23
Smith Glick1013Australia2025-08-15
Munro Ferencz1014Canada2025-08-17
Mujtaba Nicka1015United Kingdom2025-08-05
Leja Caldarera1016Australia2025-08-16
Jefferson Schemmer1017Australia2025-08-04
Alejandro Perin1018India2025-08-01
Octavia Malet1019Spain2025-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyArgentinaIoni Bowcher NEGOTIATION
Stacey MacleadUnited KingdomAnna Fali PROPOSAL
Kadeem FlosiAustraliaAsiya Javayant PROPOSAL
Emily WhobreyJapanStephen Shaw UNQUALIFIED
Claire TollnerJapanAnna Fali UNQUALIFIED
Deepesh ChuiGermanyOnyama Limba RENEWAL
Nicolas IturbideCanadaBernardo Dominic UNQUALIFIED
Wickens NestleCanadaBernardo Dominic RENEWAL
Clifford RimRussiaElwin Sharvill UNQUALIFIED
James ButtGermanyXuxue Feng UNQUALIFIED
Adams MorascaGermanyAnna Fali PROPOSAL
Leon OldroydArgentinaStephen Shaw QUALIFIED
Jennifer AmigonRussiaBernardo Dominic RENEWAL
Emily WhobreyIndiaAnna Fali NEGOTIATION
Kadeem FlosiUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois VenereItalyAsiya Javayant NEW
Jefferson SchemmerGermanyOnyama Limba NEW
Ashley DoeGermanyAmy Elsner QUALIFIED
Aruna FigeroaSpainIvan Magalhaes UNQUALIFIED
Tony FollerSpainAsiya Javayant UNQUALIFIED
Emily WhobreyUnited KingdomXuxue Feng NEGOTIATION
Tony FollerItalyIoni Bowcher PROPOSAL
Rodrigues CampainUnited KingdomStephen Shaw QUALIFIED
Jones VocelkaRussiaOnyama Limba NEW
Aditya KuskoRussiaBernardo Dominic QUALIFIED
Sinclair WaycottItalyBernardo Dominic UNQUALIFIED
Munro FerenczIndiaAsiya Javayant NEGOTIATION
Mayumi KolmetzAustraliaAnna Fali NEW
Ivar PaprockiUnited KingdomElwin Sharvill NEW
Leon OldroydSpainStephen Shaw NEGOTIATION
Smith GlickJapanXuxue Feng NEGOTIATION
Deepesh ChuiFranceIoni Bowcher NEW
Clifford RimFranceAsiya Javayant RENEWAL
Maria MarrierJapanOnyama Limba QUALIFIED
Emily WhobreyArgentinaOnyama Limba PROPOSAL
Izzy GarufiArgentinaIoni Bowcher RENEWAL
Costa DilliardBrazilAsiya Javayant NEW
Misaki RoysterCanadaIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilAmy Elsner NEW
Alejandro PerinItalyAnna Fali 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>