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 OstroskyAustraliaAnna Fali NEW
Wickens NestleItalyXuxue Feng QUALIFIED
Jones VocelkaFranceIoni Bowcher UNQUALIFIED
Clifford RimSpainElwin Sharvill RENEWAL
Stacey MacleadJapanAmy Elsner RENEWAL
Mujtaba NickaItalyAnna Fali RENEWAL
Leon OldroydJapanIoni Bowcher RENEWAL
Claire TollnerCanadaAsiya Javayant QUALIFIED
David DarakjyItalyAmy Elsner NEW
Leja CaldareraJapanAnna Fali NEGOTIATION
Costa DilliardFranceOnyama Limba RENEWAL
Kadeem FlosiSpainAmy Elsner PROPOSAL
Ashley DoeFranceAnna Fali PROPOSAL
Octavia MaletJapanAmy Elsner RENEWAL
Cody SaylorsUnited KingdomOnyama Limba NEW
Misaki RoysterBrazilOnyama Limba QUALIFIED
Silvio SlusarskiCanadaAnna Fali QUALIFIED
Maisha RulapaughCanadaAmy Elsner UNQUALIFIED
Alejandro PerinJapanStephen Shaw RENEWAL
Antonio CaudyFranceAnna Fali QUALIFIED
Greenwood BologniaSpainElwin Sharvill UNQUALIFIED
Kadeem FlosiBrazilStephen Shaw RENEWAL
Francesco ShinkoAustraliaOnyama Limba NEW
Claire TollnerGermanyAsiya Javayant PROPOSAL
Greenwood BologniaCanadaStephen Shaw QUALIFIED
Nicolas IturbideArgentinaIoni Bowcher PROPOSAL
Ricardo GauchoArgentinaAmy Elsner RENEWAL
Faith GillianRussiaXuxue Feng NEGOTIATION
Johnson SergiGermanyXuxue Feng PROPOSAL
Isabel BowleyRussiaAnna Fali PROPOSAL
Murillo MaletIndiaBernardo Dominic NEW
Arvin AlbaresFranceAnna Fali PROPOSAL
Rodrigues CampainGermanyElwin Sharvill NEGOTIATION
Darci PoquetteRussiaIoni Bowcher QUALIFIED
Wickens NestleAustraliaAmy Elsner NEGOTIATION
Arvin AlbaresJapanAnna Fali UNQUALIFIED
Wickens NestleArgentinaBernardo Dominic NEGOTIATION
Maria MarrierItalyOnyama Limba UNQUALIFIED
Morrow RutaRussiaIvan Magalhaes PROPOSAL
Kaitlin OstroskyGermanyIoni Bowcher QUALIFIED
Salvatore StockhamJapanAmy Elsner RENEWAL
Faith GillianBrazilIvan Magalhaes PROPOSAL
Julie StensethAustraliaOnyama Limba RENEWAL
Alejandro PerinFranceXuxue Feng QUALIFIED
Silvio SlusarskiGermanyIvan Magalhaes NEGOTIATION
Morrow RutaArgentinaAsiya Javayant QUALIFIED
Salvatore StockhamAustraliaAmy Elsner PROPOSAL
Maisha RulapaughJapanStephen Shaw NEGOTIATION
Isabel BowleyFranceIoni Bowcher UNQUALIFIED
Aditya KuskoFranceXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel BowleyFranceAsiya Javayant NEW
Cody SaylorsIndiaIvan Magalhaes NEW
Ivar PaprockiIndiaAmy Elsner UNQUALIFIED
Cody SaylorsAustraliaXuxue Feng QUALIFIED
Adams MorascaJapanStephen Shaw UNQUALIFIED
Aditya KuskoAustraliaXuxue Feng NEGOTIATION
Kadeem FlosiCanadaAsiya Javayant NEGOTIATION
Johnson SergiJapanBernardo Dominic NEGOTIATION
Greenwood BologniaAustraliaAnna Fali RENEWAL
Munro FerenczJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzFrance2026-04-23Truhlar And Truhlar Attys NEGOTIATION58Anna Fali
1001Ashley DoeBrazil2026-04-20King, Christopher A Esq PROPOSAL24Elwin Sharvill
1002David DarakjyJapan2026-04-22Chanay, Jeffrey A Esq NEGOTIATION50Asiya Javayant
1003Julie StensethFrance2026-04-13Dorl, James J Esq NEW84Elwin Sharvill
1004Aika InouyeIndia2026-04-03Commercial Press PROPOSAL22Asiya Javayant
1005Murillo MaletAustralia2026-04-17Buckley Miller Wright QUALIFIED85Onyama Limba
1006Cody SaylorsCanada2026-04-17Feiner Bros NEGOTIATION5Ioni Bowcher
1007Aika InouyeCanada2026-04-29Feltz Printing Service PROPOSAL44Anna Fali
1008Izzy GarufiGermany2026-04-13Buckley Miller Wright NEGOTIATION74Elwin Sharvill
1009Izzy GarufiGermany2026-04-14Rangoni Of Florence NEGOTIATION83Amy Elsner
1010Jennifer AmigonRussia2026-04-09Printing Dimensions QUALIFIED16Amy Elsner
1011Clifford RimRussia2026-04-25Benton, John B Jr QUALIFIED72Xuxue Feng
1012Jeanfrancois VenereBrazil2026-04-13Printing Dimensions NEW13Stephen Shaw
1013Mujtaba NickaGermany2026-04-17Feiner Bros NEW16Bernardo Dominic
1014Leja CaldareraIndia2026-04-08Benton, John B Jr QUALIFIED99Elwin Sharvill
1015Juan WieserBrazil2026-04-07Feiner Bros PROPOSAL0Amy Elsner
1016Silvio SlusarskiSpain2026-04-12Rousseaux, Michael Esq PROPOSAL70Bernardo Dominic
1017Mujtaba NickaSpain2026-04-04Chapman, Ross E Esq RENEWAL27Onyama Limba
1018Nicolas IturbideCanada2026-04-03Dorl, James J Esq NEW24Asiya Javayant
1019Ivar PaprockiFrance2026-04-05Printing Dimensions PROPOSAL51Ivan Magalhaes
1020Clifford RimCanada2026-04-29Benton, John B Jr PROPOSAL47Bernardo Dominic
1021Ashley DoeJapan2026-04-16Dorl, James J Esq QUALIFIED31Onyama Limba
1022Salvatore StockhamArgentina2026-04-26Rangoni Of Florence RENEWAL30Ivan Magalhaes
1023Octavia MaletBrazil2026-04-05Commercial Press RENEWAL23Xuxue Feng
1024Emily WhobreyArgentina2026-04-25King, Christopher A Esq NEW7Amy Elsner
1025Octavia MaletIndia2026-04-17Feiner Bros UNQUALIFIED40Stephen Shaw
1026Alejandro PerinItaly2026-04-21Buckley Miller Wright UNQUALIFIED2Xuxue Feng
1027Maria MarrierArgentina2026-04-09Feiner Bros NEGOTIATION82Ioni Bowcher
1028Arvin AlbaresJapan2026-04-13Buckley Miller Wright QUALIFIED82Stephen Shaw
1029Munro FerenczCanada2026-04-17Truhlar And Truhlar Attys UNQUALIFIED81Ivan Magalhaes
1030Aruna FigeroaRussia2026-04-20Dorl, James J Esq UNQUALIFIED43Elwin Sharvill
1031Maisha RulapaughAustralia2026-04-25Chanay, Jeffrey A Esq NEGOTIATION46Onyama Limba
1032Stacey MacleadGermany2026-04-21Morlong Associates RENEWAL15Onyama Limba
1033Clifford RimSpain2026-04-04Dorl, James J Esq NEGOTIATION64Asiya Javayant
1034Sinclair WaycottJapan2026-04-11Feiner Bros NEW74Asiya Javayant
1035Julie StensethFrance2026-04-14Chanay, Jeffrey A Esq NEW58Ioni Bowcher
1036Faith GillianArgentina2026-04-10Truhlar And Truhlar Attys PROPOSAL45Ioni Bowcher
1037Aika InouyeGermany2026-04-25Benton, John B Jr PROPOSAL25Elwin Sharvill
1038Salvatore StockhamArgentina2026-04-12Morlong Associates QUALIFIED29Xuxue Feng
1039Octavia MaletItaly2026-04-25King, Christopher A Esq RENEWAL50Xuxue Feng
1040Deepesh ChuiUnited Kingdom2026-04-23Morlong Associates NEGOTIATION70Anna Fali
1041Francesco ShinkoJapan2026-04-22Rangoni Of Florence UNQUALIFIED99Bernardo Dominic
1042Darci PoquetteUnited Kingdom2026-04-25King, Christopher A Esq RENEWAL0Ivan Magalhaes
1043Ricardo GauchoAustralia2026-04-04Morlong Associates PROPOSAL39Ioni Bowcher
1044Isabel BowleySpain2026-04-22King, Christopher A Esq NEW27Onyama Limba
1045Clifford RimBrazil2026-04-08Commercial Press QUALIFIED84Bernardo Dominic
1046Kaitlin OstroskyJapan2026-04-13Benton, John B Jr RENEWAL52Elwin Sharvill
1047Jones VocelkaBrazil2026-04-29Benton, John B Jr RENEWAL31Ivan Magalhaes
1048Darci PoquetteBrazil2026-04-12King, Christopher A Esq QUALIFIED43Stephen Shaw
1049Emily WhobreyRussia2026-04-29Chanay, Jeffrey A Esq NEGOTIATION92Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerItalyBernardo Dominic QUALIFIED
Aditya KuskoIndiaBernardo Dominic UNQUALIFIED
Darci PoquetteCanadaXuxue Feng PROPOSAL
Wickens NestleAustraliaIoni Bowcher PROPOSAL
Antonio CaudyIndiaOnyama Limba NEGOTIATION
Wickens NestleIndiaAsiya Javayant RENEWAL
Alejandro PerinRussiaIvan Magalhaes PROPOSAL
Aika InouyeJapanIvan Magalhaes NEW
Sinclair WaycottRussiaOnyama Limba QUALIFIED
Deepesh ChuiItalyAnna Fali PROPOSAL
Rodrigues CampainCanadaAsiya Javayant PROPOSAL
Ivar PaprockiRussiaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyJapanIvan Magalhaes RENEWAL
Costa DilliardGermanyStephen Shaw RENEWAL
Aika InouyeUnited KingdomOnyama Limba PROPOSAL
Arvin AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Stacey MacleadJapanXuxue Feng NEW
Mujtaba NickaGermanyIvan Magalhaes PROPOSAL
Salvatore StockhamAustraliaAnna Fali QUALIFIED
Ashley DoeCanadaStephen Shaw QUALIFIED
Munro FerenczArgentinaAsiya Javayant UNQUALIFIED
David DarakjyAustraliaIoni Bowcher NEW
Salvatore StockhamJapanXuxue Feng NEW
Sinclair WaycottGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiCanadaAnna Fali NEW
Misaki RoysterJapanAnna Fali UNQUALIFIED
Johnson SergiRussiaAsiya Javayant RENEWAL
Francesco ShinkoArgentinaOnyama Limba NEW
Misaki RoysterGermanyOnyama Limba PROPOSAL
Munro FerenczUnited KingdomAnna Fali QUALIFIED
Costa DilliardRussiaElwin Sharvill PROPOSAL
Silvio SlusarskiRussiaAnna Fali PROPOSAL
Isabel BowleyItalyIvan Magalhaes NEGOTIATION
Aruna FigeroaSpainAsiya Javayant QUALIFIED
Alejandro PerinRussiaBernardo Dominic NEW
Smith GlickJapanAnna Fali UNQUALIFIED
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Darci PoquetteBrazilElwin Sharvill NEGOTIATION
Morrow RutaUnited KingdomIoni Bowcher NEGOTIATION
Mayumi KolmetzArgentinaXuxue Feng NEW
Mujtaba NickaSpainAmy Elsner NEW
Chavez BriddickIndiaOnyama Limba PROPOSAL
Isabel BowleyAustraliaIoni Bowcher NEGOTIATION
Kadeem FlosiArgentinaStephen Shaw UNQUALIFIED
Smith GlickRussiaAnna Fali QUALIFIED
Emily WhobreyBrazilIvan Magalhaes NEGOTIATION
Claire TollnerUnited KingdomAnna Fali RENEWAL
Julie StensethGermanyAsiya Javayant UNQUALIFIED
Wickens NestleGermanyBernardo Dominic PROPOSAL
Octavia MaletBrazilBernardo Dominic RENEWAL
Frozen Columns
Name
Jones Vocelka
Rodrigues Campain
Aditya Kusko
Jennifer Amigon
Rodrigues Campain
Jefferson Schemmer
Maria Marrier
Rodrigues Campain
Smith Glick
Chavez Briddick
Clifford Rim
Nicolas Iturbide
Kadeem Flosi
Adams Morasca
Adams Morasca
Sinclair Waycott
Munro Ferencz
Sinclair Waycott
Mujtaba Nicka
Munro Ferencz
Jones Vocelka
Ricardo Gaucho
Darci Poquette
Nicolas Iturbide
Misaki Royster
James Butt
Silvio Slusarski
Arvin Albares
Chavez Briddick
Wickens Nestle
David Darakjy
Clifford Rim
Jefferson Schemmer
Claire Tollner
Wickens Nestle
Mujtaba Nicka
Aruna Figeroa
Kaitlin Ostrosky
Munro Ferencz
Deepesh Chui
Salvatore Stockham
Salvatore Stockham
Antonio Caudy
Leon Oldroyd
James Butt
Nicolas Iturbide
Leon Oldroyd
Octavia Malet
Emily Whobrey
Johnson Sergi
IdCountryDate
1000Italy2026-04-30
1001India2026-04-02
1002Australia2026-04-30
1003Argentina2026-04-01
1004Germany2026-04-24
1005United Kingdom2026-04-10
1006Japan2026-04-01
1007Russia2026-04-10
1008Spain2026-04-13
1009Argentina2026-04-03
1010Canada2026-04-20
1011India2026-04-08
1012Germany2026-04-15
1013United Kingdom2026-04-05
1014Italy2026-04-15
1015Brazil2026-04-16
1016Japan2026-04-08
1017Russia2026-04-12
1018India2026-04-24
1019Argentina2026-04-25
1020Argentina2026-04-23
1021Japan2026-04-25
1022Spain2026-04-25
1023India2026-04-10
1024Spain2026-04-29
1025Spain2026-04-07
1026Brazil2026-04-19
1027United Kingdom2026-04-19
1028Argentina2026-04-23
1029Brazil2026-04-27
1030India2026-04-24
1031India2026-04-09
1032Spain2026-04-28
1033Germany2026-04-23
1034Italy2026-04-16
1035India2026-04-27
1036India2026-04-01
1037India2026-04-17
1038United Kingdom2026-04-22
1039Brazil2026-04-09
1040India2026-04-07
1041Italy2026-04-09
1042India2026-04-17
1043Brazil2026-04-15
1044Australia2026-04-24
1045Brazil2026-04-22
1046Spain2026-04-24
1047Russia2026-04-04
1048United Kingdom2026-04-28
1049Germany2026-04-08

On-Demand Data

NameIdCountryDate
Arvin Albares1000India2026-04-11
Leja Caldarera1001Australia2026-04-24
Sinclair Waycott1002Germany2026-04-21
Leon Oldroyd1003Russia2026-04-19
Kadeem Flosi1004Argentina2026-04-30
Aika Inouye1005Spain2026-04-16
Darci Poquette1006Canada2026-04-29
Julie Stenseth1007Argentina2026-04-09
Greenwood Bolognia1008Spain2026-04-28
Aruna Figeroa1009Japan2026-04-24
Jefferson Schemmer1010Australia2026-04-10
Leja Caldarera1011Spain2026-04-12
Costa Dilliard1012France2026-04-16
Jennifer Amigon1013United Kingdom2026-04-13
Jones Vocelka1014France2026-04-04
Jennifer Amigon1015Russia2026-04-23
Mayumi Kolmetz1016India2026-04-29
Jefferson Schemmer1017Spain2026-04-27
Emily Whobrey1018Australia2026-04-25
Jones Vocelka1019Brazil2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonBrazilIoni Bowcher NEW
Clifford RimJapanStephen Shaw NEGOTIATION
Ivar PaprockiIndiaOnyama Limba PROPOSAL
Izzy GarufiJapanAmy Elsner NEGOTIATION
Emily WhobreySpainAmy Elsner NEW
Maria MarrierRussiaElwin Sharvill RENEWAL
Antonio CaudyGermanyStephen Shaw RENEWAL
Kadeem FlosiIndiaStephen Shaw RENEWAL
Octavia MaletGermanyOnyama Limba QUALIFIED
Ashley DoeArgentinaIvan Magalhaes NEW
Costa DilliardJapanAmy Elsner UNQUALIFIED
Aika InouyeUnited KingdomElwin Sharvill RENEWAL
Smith GlickSpainIoni Bowcher UNQUALIFIED
Murillo MaletItalyAnna Fali PROPOSAL
Octavia MaletItalyOnyama Limba NEGOTIATION
Murillo MaletJapanStephen Shaw QUALIFIED
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Stacey MacleadAustraliaXuxue Feng UNQUALIFIED
Leja CaldareraBrazilBernardo Dominic PROPOSAL
Greenwood BologniaSpainIvan Magalhaes UNQUALIFIED
Greenwood BologniaCanadaBernardo Dominic PROPOSAL
Ivar PaprockiGermanyOnyama Limba UNQUALIFIED
Jones VocelkaFranceXuxue Feng NEGOTIATION
Salvatore StockhamArgentinaXuxue Feng NEGOTIATION
Jeanfrancois VenereAustraliaStephen Shaw NEW
Jennifer AmigonRussiaBernardo Dominic NEGOTIATION
Claire TollnerItalyElwin Sharvill RENEWAL
Aditya KuskoCanadaXuxue Feng PROPOSAL
Darci PoquetteFranceOnyama Limba PROPOSAL
Cody SaylorsSpainBernardo Dominic NEGOTIATION
Darci PoquetteJapanBernardo Dominic QUALIFIED
James ButtItalyAnna Fali NEGOTIATION
Costa DilliardBrazilXuxue Feng QUALIFIED
Ashley DoeFranceAsiya Javayant NEGOTIATION
Maisha RulapaughBrazilAsiya Javayant PROPOSAL
Sinclair WaycottRussiaElwin Sharvill QUALIFIED
Morrow RutaCanadaElwin Sharvill NEW
Wickens NestleUnited KingdomBernardo Dominic NEGOTIATION
Julie StensethArgentinaAmy Elsner NEW
Isabel BowleyArgentinaIvan Magalhaes 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>