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
Murillo MaletBrazilStephen Shaw NEW
Kadeem FlosiRussiaAmy Elsner QUALIFIED
Clifford RimItalyIvan Magalhaes NEW
Ashley DoeIndiaAmy Elsner RENEWAL
Clifford RimSpainIvan Magalhaes RENEWAL
Kadeem FlosiIndiaElwin Sharvill RENEWAL
Isabel BowleyIndiaIoni Bowcher PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher UNQUALIFIED
Ivar PaprockiGermanyIvan Magalhaes UNQUALIFIED
Misaki RoysterUnited KingdomElwin Sharvill RENEWAL
Aditya KuskoGermanyXuxue Feng RENEWAL
Misaki RoysterJapanOnyama Limba NEGOTIATION
Silvio SlusarskiJapanBernardo Dominic QUALIFIED
Ivar PaprockiGermanyOnyama Limba NEW
Jefferson SchemmerFranceAmy Elsner NEW
Ivar PaprockiUnited KingdomElwin Sharvill PROPOSAL
Misaki RoysterRussiaIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilOnyama Limba PROPOSAL
Ashley DoeFranceIvan Magalhaes RENEWAL
Maria MarrierUnited KingdomAnna Fali RENEWAL
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Jefferson SchemmerIndiaIoni Bowcher UNQUALIFIED
Jones VocelkaAustraliaElwin Sharvill NEGOTIATION
Julie StensethArgentinaIvan Magalhaes QUALIFIED
Jefferson SchemmerJapanElwin Sharvill RENEWAL
Arvin AlbaresRussiaIvan Magalhaes NEW
David DarakjyUnited KingdomAnna Fali PROPOSAL
Maisha RulapaughRussiaAsiya Javayant RENEWAL
Ricardo GauchoArgentinaStephen Shaw NEW
Arvin AlbaresSpainOnyama Limba UNQUALIFIED
Darci PoquetteAustraliaAsiya Javayant NEW
Maisha RulapaughRussiaAnna Fali UNQUALIFIED
Alejandro PerinAustraliaStephen Shaw NEW
Smith GlickArgentinaAmy Elsner RENEWAL
Greenwood BologniaJapanIoni Bowcher UNQUALIFIED
Smith GlickArgentinaAnna Fali QUALIFIED
Nicolas IturbideRussiaAmy Elsner RENEWAL
Aditya KuskoItalyStephen Shaw PROPOSAL
Sinclair WaycottCanadaElwin Sharvill QUALIFIED
Murillo MaletSpainXuxue Feng NEW
Izzy GarufiJapanIvan Magalhaes PROPOSAL
Maria MarrierIndiaAnna Fali QUALIFIED
Jeanfrancois VenereBrazilAnna Fali NEW
Juan WieserCanadaAnna Fali QUALIFIED
Darci PoquetteSpainAmy Elsner NEGOTIATION
Chavez BriddickFranceElwin Sharvill QUALIFIED
Munro FerenczAustraliaAnna Fali NEW
Tony FollerRussiaAsiya Javayant UNQUALIFIED
Aditya KuskoJapanIvan Magalhaes QUALIFIED
Greenwood BologniaItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamJapanStephen Shaw RENEWAL
Emily WhobreyCanadaBernardo Dominic NEGOTIATION
Kaitlin OstroskyItalyIoni Bowcher PROPOSAL
Murillo MaletAustraliaOnyama Limba RENEWAL
Faith GillianRussiaXuxue Feng PROPOSAL
David DarakjyBrazilAmy Elsner QUALIFIED
Ashley DoeAustraliaElwin Sharvill NEW
Costa DilliardRussiaIoni Bowcher QUALIFIED
Smith GlickIndiaAsiya Javayant NEGOTIATION
Deepesh ChuiUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtFrance2026-05-11Rangoni Of Florence PROPOSAL52Ioni Bowcher
1001Ricardo GauchoArgentina2026-05-21Printing Dimensions PROPOSAL11Onyama Limba
1002Sinclair WaycottGermany2026-05-08Chanay, Jeffrey A Esq QUALIFIED81Amy Elsner
1003Johnson SergiUnited Kingdom2026-05-14Chanay, Jeffrey A Esq RENEWAL85Bernardo Dominic
1004Ivar PaprockiFrance2026-04-30Printing Dimensions UNQUALIFIED72Xuxue Feng
1005Murillo MaletItaly2026-04-24King, Christopher A Esq NEW30Amy Elsner
1006Deepesh ChuiGermany2026-05-16Feiner Bros UNQUALIFIED33Ioni Bowcher
1007Juan WieserBrazil2026-05-10Morlong Associates UNQUALIFIED8Amy Elsner
1008Stacey MacleadGermany2026-05-19Rousseaux, Michael Esq PROPOSAL52Elwin Sharvill
1009Faith GillianUnited Kingdom2026-05-13Dorl, James J Esq RENEWAL52Stephen Shaw
1010Aditya KuskoCanada2026-05-19Benton, John B Jr NEW8Anna Fali
1011Julie StensethUnited Kingdom2026-05-17Chanay, Jeffrey A Esq PROPOSAL57Bernardo Dominic
1012Jeanfrancois VenereBrazil2026-05-15Chemel, James L Cpa NEGOTIATION85Amy Elsner
1013Smith GlickBrazil2026-05-22Chanay, Jeffrey A Esq NEW38Xuxue Feng
1014Kadeem FlosiBrazil2026-04-28Morlong Associates NEGOTIATION49Elwin Sharvill
1015Emily WhobreyItaly2026-05-01Chapman, Ross E Esq PROPOSAL13Bernardo Dominic
1016Izzy GarufiBrazil2026-05-01Feiner Bros NEW77Bernardo Dominic
1017Jefferson SchemmerAustralia2026-05-13Rousseaux, Michael Esq QUALIFIED2Elwin Sharvill
1018Jennifer AmigonItaly2026-05-06Printing Dimensions NEGOTIATION69Bernardo Dominic
1019Misaki RoysterGermany2026-05-01Feiner Bros QUALIFIED15Asiya Javayant
1020Francesco ShinkoItaly2026-04-25Morlong Associates UNQUALIFIED70Ioni Bowcher
1021Aditya KuskoItaly2026-04-28Feiner Bros PROPOSAL35Stephen Shaw
1022Chavez BriddickAustralia2026-05-17Benton, John B Jr RENEWAL84Ivan Magalhaes
1023Faith GillianSpain2026-04-30Feiner Bros RENEWAL73Amy Elsner
1024Jennifer AmigonIndia2026-05-23King, Christopher A Esq PROPOSAL13Stephen Shaw
1025Francesco ShinkoFrance2026-04-27Feiner Bros QUALIFIED98Onyama Limba
1026Julie StensethAustralia2026-05-19King, Christopher A Esq NEGOTIATION78Ivan Magalhaes
1027Ashley DoeFrance2026-05-07Dorl, James J Esq NEW63Amy Elsner
1028Murillo MaletItaly2026-05-04Chapman, Ross E Esq UNQUALIFIED65Xuxue Feng
1029Silvio SlusarskiRussia2026-05-14Feiner Bros NEW86Amy Elsner
1030Stacey MacleadCanada2026-05-02Chanay, Jeffrey A Esq PROPOSAL34Elwin Sharvill
1031Aruna FigeroaGermany2026-05-17Morlong Associates RENEWAL65Ivan Magalhaes
1032Emily WhobreyFrance2026-04-28Printing Dimensions NEGOTIATION37Anna Fali
1033Sinclair WaycottJapan2026-05-13Morlong Associates QUALIFIED73Bernardo Dominic
1034Clifford RimAustralia2026-04-30Chanay, Jeffrey A Esq RENEWAL12Onyama Limba
1035Greenwood BologniaBrazil2026-05-14Dorl, James J Esq UNQUALIFIED19Elwin Sharvill
1036Ivar PaprockiArgentina2026-05-07King, Christopher A Esq RENEWAL32Amy Elsner
1037Darci PoquetteRussia2026-05-17Truhlar And Truhlar Attys NEGOTIATION39Onyama Limba
1038Ricardo GauchoFrance2026-04-25King, Christopher A Esq RENEWAL91Amy Elsner
1039Munro FerenczJapan2026-05-11Buckley Miller Wright PROPOSAL94Bernardo Dominic
1040Aditya KuskoBrazil2026-05-01Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1041Darci PoquetteFrance2026-05-13Chapman, Ross E Esq QUALIFIED12Bernardo Dominic
1042Greenwood BologniaAustralia2026-04-28Printing Dimensions QUALIFIED3Amy Elsner
1043Antonio CaudyItaly2026-05-17Chemel, James L Cpa UNQUALIFIED92Bernardo Dominic
1044Costa DilliardGermany2026-05-09Buckley Miller Wright RENEWAL43Xuxue Feng
1045Antonio CaudyFrance2026-05-22Chemel, James L Cpa QUALIFIED35Bernardo Dominic
1046Salvatore StockhamRussia2026-05-13Feiner Bros NEGOTIATION80Ioni Bowcher
1047Claire TollnerRussia2026-04-24Truhlar And Truhlar Attys QUALIFIED25Bernardo Dominic
1048Leon OldroydUnited Kingdom2026-05-05Rousseaux, Michael Esq NEGOTIATION59Ivan Magalhaes
1049Chavez BriddickArgentina2026-05-02Feiner Bros NEGOTIATION29Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadSpainAsiya Javayant PROPOSAL
Ivar PaprockiFranceIvan Magalhaes UNQUALIFIED
Rodrigues CampainCanadaStephen Shaw RENEWAL
Aditya KuskoSpainIvan Magalhaes UNQUALIFIED
Darci PoquetteGermanyAmy Elsner NEGOTIATION
Maisha RulapaughAustraliaAmy Elsner RENEWAL
Ashley DoeUnited KingdomStephen Shaw NEW
Maisha RulapaughAustraliaIvan Magalhaes RENEWAL
Johnson SergiUnited KingdomAnna Fali NEGOTIATION
Clifford RimArgentinaStephen Shaw NEW
Kadeem FlosiBrazilIoni Bowcher QUALIFIED
James ButtItalyIoni Bowcher QUALIFIED
Aditya KuskoAustraliaBernardo Dominic NEGOTIATION
Misaki RoysterFranceAnna Fali QUALIFIED
Leon OldroydFranceOnyama Limba NEGOTIATION
Costa DilliardCanadaXuxue Feng NEW
Isabel BowleySpainBernardo Dominic RENEWAL
Wickens NestleIndiaStephen Shaw RENEWAL
Ivar PaprockiArgentinaOnyama Limba RENEWAL
Mayumi KolmetzUnited KingdomStephen Shaw NEGOTIATION
Munro FerenczAustraliaOnyama Limba NEGOTIATION
Francesco ShinkoIndiaStephen Shaw RENEWAL
Alejandro PerinUnited KingdomBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaElwin Sharvill NEW
Darci PoquetteArgentinaStephen Shaw NEW
Aditya KuskoCanadaElwin Sharvill RENEWAL
Jennifer AmigonRussiaElwin Sharvill UNQUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng RENEWAL
Maria MarrierBrazilIoni Bowcher NEGOTIATION
Wickens NestleBrazilAmy Elsner NEGOTIATION
Misaki RoysterJapanIoni Bowcher PROPOSAL
Claire TollnerJapanIvan Magalhaes NEW
Aika InouyeJapanBernardo Dominic NEGOTIATION
Mujtaba NickaItalyAmy Elsner RENEWAL
Nicolas IturbideSpainAnna Fali PROPOSAL
Mujtaba NickaArgentinaBernardo Dominic NEW
Nicolas IturbideAustraliaStephen Shaw RENEWAL
Misaki RoysterJapanElwin Sharvill UNQUALIFIED
Mujtaba NickaIndiaBernardo Dominic RENEWAL
Stacey MacleadAustraliaAmy Elsner UNQUALIFIED
Tony FollerIndiaIoni Bowcher RENEWAL
Mujtaba NickaJapanAsiya Javayant PROPOSAL
James ButtItalyAsiya Javayant NEW
Maria MarrierBrazilBernardo Dominic UNQUALIFIED
Ashley DoeGermanyAsiya Javayant PROPOSAL
Juan WieserJapanStephen Shaw PROPOSAL
Adams MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanAnna Fali QUALIFIED
Jefferson SchemmerRussiaBernardo Dominic QUALIFIED
Emily WhobreyArgentinaAnna Fali NEGOTIATION
Frozen Columns
Name
Izzy Garufi
Arvin Albares
Leon Oldroyd
Emily Whobrey
Salvatore Stockham
Kadeem Flosi
Claire Tollner
Ashley Doe
Smith Glick
Arvin Albares
Sinclair Waycott
James Butt
Misaki Royster
Claire Tollner
Alejandro Perin
Silvio Slusarski
Silvio Slusarski
Wickens Nestle
Emily Whobrey
Jeanfrancois Venere
Arvin Albares
Faith Gillian
James Butt
Costa Dilliard
Wickens Nestle
Mujtaba Nicka
Faith Gillian
Cody Saylors
Stacey Maclead
Leja Caldarera
Jefferson Schemmer
Jefferson Schemmer
Arvin Albares
Maisha Rulapaugh
Costa Dilliard
Aruna Figeroa
Mayumi Kolmetz
Octavia Malet
Jeanfrancois Venere
Mujtaba Nicka
Francesco Shinko
Octavia Malet
Jones Vocelka
Nicolas Iturbide
Darci Poquette
Mujtaba Nicka
Costa Dilliard
Greenwood Bolognia
Kaitlin Ostrosky
Wickens Nestle
IdCountryDate
1000Japan2026-05-05
1001Germany2026-04-25
1002France2026-04-27
1003Germany2026-05-21
1004India2026-05-21
1005Spain2026-05-23
1006France2026-04-29
1007Canada2026-05-09
1008United Kingdom2026-05-17
1009India2026-05-15
1010Australia2026-05-14
1011Japan2026-04-25
1012Italy2026-05-02
1013United Kingdom2026-04-25
1014Japan2026-04-24
1015Canada2026-05-07
1016Italy2026-05-14
1017Italy2026-05-02
1018Italy2026-05-23
1019Japan2026-05-11
1020France2026-05-03
1021Brazil2026-05-04
1022Spain2026-05-23
1023Japan2026-04-24
1024United Kingdom2026-05-13
1025Germany2026-05-10
1026Canada2026-04-25
1027Italy2026-05-22
1028Germany2026-05-18
1029Japan2026-04-26
1030Canada2026-05-13
1031Russia2026-04-24
1032Italy2026-05-02
1033Brazil2026-05-11
1034Australia2026-05-23
1035Germany2026-04-29
1036Italy2026-05-05
1037India2026-05-16
1038France2026-04-29
1039Japan2026-05-19
1040Argentina2026-05-01
1041Spain2026-05-05
1042Spain2026-05-12
1043Italy2026-05-21
1044Argentina2026-05-18
1045Canada2026-04-26
1046Australia2026-05-12
1047Argentina2026-05-10
1048Italy2026-05-14
1049France2026-05-06

On-Demand Data

NameIdCountryDate
Murillo Malet1000France2026-05-21
Salvatore Stockham1001Australia2026-05-09
Sinclair Waycott1002France2026-05-03
Munro Ferencz1003Argentina2026-04-28
Antonio Caudy1004France2026-05-16
Francesco Shinko1005Spain2026-05-10
Deepesh Chui1006Japan2026-05-23
Munro Ferencz1007India2026-05-02
Mujtaba Nicka1008Italy2026-04-26
David Darakjy1009Australia2026-05-01
Aruna Figeroa1010Spain2026-05-04
Murillo Malet1011India2026-05-10
Misaki Royster1012Argentina2026-05-19
Mayumi Kolmetz1013Japan2026-05-17
Aika Inouye1014Japan2026-04-27
Francesco Shinko1015Spain2026-05-20
Rodrigues Campain1016India2026-05-17
Maria Marrier1017Australia2026-05-09
Kadeem Flosi1018Japan2026-05-10
Greenwood Bolognia1019India2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyIndiaXuxue Feng NEW
Ashley DoeRussiaBernardo Dominic RENEWAL
Mayumi KolmetzUnited KingdomElwin Sharvill RENEWAL
Ricardo GauchoSpainOnyama Limba NEGOTIATION
Leja CaldareraJapanAsiya Javayant NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic QUALIFIED
Costa DilliardCanadaAnna Fali NEW
Ashley DoeItalyAnna Fali NEGOTIATION
Munro FerenczGermanyAsiya Javayant NEGOTIATION
Mujtaba NickaArgentinaBernardo Dominic UNQUALIFIED
Maria MarrierFranceOnyama Limba QUALIFIED
Johnson SergiGermanyBernardo Dominic NEW
Julie StensethAustraliaBernardo Dominic QUALIFIED
Clifford RimItalyIvan Magalhaes RENEWAL
David DarakjyRussiaAnna Fali UNQUALIFIED
Clifford RimItalyAsiya Javayant QUALIFIED
Isabel BowleyItalyElwin Sharvill NEW
Maisha RulapaughIndiaStephen Shaw QUALIFIED
Aika InouyeJapanElwin Sharvill QUALIFIED
Mayumi KolmetzCanadaElwin Sharvill NEW
James ButtItalyAnna Fali UNQUALIFIED
Emily WhobreyJapanAsiya Javayant PROPOSAL
Smith GlickAustraliaElwin Sharvill PROPOSAL
Ivar PaprockiBrazilOnyama Limba QUALIFIED
Tony FollerSpainStephen Shaw QUALIFIED
Claire TollnerJapanStephen Shaw NEW
Adams MorascaFranceStephen Shaw RENEWAL
Juan WieserGermanyAsiya Javayant QUALIFIED
Juan WieserIndiaIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyElwin Sharvill RENEWAL
Juan WieserBrazilAnna Fali QUALIFIED
Isabel BowleyArgentinaOnyama Limba NEW
Clifford RimJapanOnyama Limba QUALIFIED
Leon OldroydSpainIoni Bowcher PROPOSAL
Octavia MaletItalyAnna Fali UNQUALIFIED
Faith GillianAustraliaXuxue Feng RENEWAL
David DarakjyAustraliaElwin Sharvill NEW
Greenwood BologniaArgentinaAnna Fali QUALIFIED
Leja CaldareraIndiaAsiya Javayant RENEWAL
Stacey MacleadFranceAnna 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>