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
Isabel BowleyJapanOnyama Limba PROPOSAL
Jones VocelkaUnited KingdomElwin Sharvill NEW
Greenwood BologniaAustraliaElwin Sharvill RENEWAL
Cody SaylorsAustraliaAmy Elsner QUALIFIED
Smith GlickAustraliaIoni Bowcher PROPOSAL
Stacey MacleadCanadaAsiya Javayant QUALIFIED
Adams MorascaJapanAsiya Javayant UNQUALIFIED
James ButtArgentinaBernardo Dominic RENEWAL
Misaki RoysterItalyElwin Sharvill QUALIFIED
Darci PoquetteRussiaElwin Sharvill NEW
Rodrigues CampainFranceOnyama Limba UNQUALIFIED
Adams MorascaRussiaOnyama Limba UNQUALIFIED
Leon OldroydSpainStephen Shaw NEW
Nicolas IturbideRussiaAsiya Javayant NEGOTIATION
Morrow RutaIndiaIoni Bowcher NEW
Ricardo GauchoItalyAnna Fali NEGOTIATION
Murillo MaletItalyIoni Bowcher NEW
Murillo MaletAustraliaOnyama Limba NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic PROPOSAL
Darci PoquetteIndiaAnna Fali RENEWAL
Arvin AlbaresSpainElwin Sharvill NEW
Adams MorascaCanadaElwin Sharvill UNQUALIFIED
David DarakjyArgentinaIvan Magalhaes NEW
Cody SaylorsJapanElwin Sharvill NEGOTIATION
Ashley DoeUnited KingdomBernardo Dominic NEW
Greenwood BologniaRussiaIvan Magalhaes PROPOSAL
Darci PoquetteRussiaXuxue Feng NEW
Alejandro PerinSpainIvan Magalhaes NEW
Juan WieserArgentinaAmy Elsner UNQUALIFIED
Ivar PaprockiArgentinaAsiya Javayant RENEWAL
Julie StensethAustraliaStephen Shaw RENEWAL
Izzy GarufiJapanOnyama Limba NEW
Ivar PaprockiCanadaBernardo Dominic NEW
Leon OldroydRussiaStephen Shaw RENEWAL
Stacey MacleadFranceElwin Sharvill QUALIFIED
Emily WhobreyArgentinaStephen Shaw NEW
Emily WhobreyUnited KingdomOnyama Limba PROPOSAL
Jefferson SchemmerItalyOnyama Limba RENEWAL
David DarakjyItalyStephen Shaw NEW
Greenwood BologniaFranceAnna Fali QUALIFIED
James ButtUnited KingdomBernardo Dominic RENEWAL
David DarakjyCanadaStephen Shaw RENEWAL
Wickens NestleRussiaAnna Fali PROPOSAL
Silvio SlusarskiJapanStephen Shaw QUALIFIED
Nicolas IturbideGermanyIoni Bowcher QUALIFIED
Jones VocelkaSpainOnyama Limba RENEWAL
Kadeem FlosiCanadaXuxue Feng NEW
Kaitlin OstroskyAustraliaXuxue Feng RENEWAL
Maisha RulapaughIndiaAnna Fali QUALIFIED
Antonio CaudySpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
David DarakjyUnited KingdomElwin Sharvill NEW
Clifford RimIndiaIoni Bowcher NEGOTIATION
Aika InouyeGermanyAnna Fali NEGOTIATION
Leja CaldareraItalyStephen Shaw NEGOTIATION
Salvatore StockhamJapanIoni Bowcher RENEWAL
Munro FerenczRussiaXuxue Feng RENEWAL
Isabel BowleyAustraliaIoni Bowcher NEGOTIATION
Claire TollnerAustraliaIvan Magalhaes QUALIFIED
Octavia MaletItalyStephen Shaw NEGOTIATION
Isabel BowleySpainOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskySpain2026-03-23Feiner Bros NEW85Amy Elsner
1001Mayumi KolmetzSpain2026-03-28Chanay, Jeffrey A Esq NEW74Amy Elsner
1002Aditya KuskoItaly2026-04-10Buckley Miller Wright RENEWAL50Anna Fali
1003Chavez BriddickJapan2026-04-07Feiner Bros RENEWAL87Xuxue Feng
1004Claire TollnerUnited Kingdom2026-04-02Feiner Bros NEW30Stephen Shaw
1005Misaki RoysterRussia2026-04-20Chanay, Jeffrey A Esq NEW48Stephen Shaw
1006Isabel BowleyUnited Kingdom2026-04-01Printing Dimensions UNQUALIFIED51Xuxue Feng
1007Antonio CaudyGermany2026-04-18Buckley Miller Wright UNQUALIFIED5Ioni Bowcher
1008Aika InouyeSpain2026-04-17Buckley Miller Wright PROPOSAL45Bernardo Dominic
1009Kaitlin OstroskyIndia2026-03-22Feltz Printing Service NEW83Asiya Javayant
1010Ashley DoeAustralia2026-04-14Feiner Bros QUALIFIED27Amy Elsner
1011Ricardo GauchoRussia2026-03-28Dorl, James J Esq QUALIFIED32Stephen Shaw
1012Francesco ShinkoBrazil2026-04-10Morlong Associates NEGOTIATION11Ioni Bowcher
1013Ashley DoeArgentina2026-03-31Rousseaux, Michael Esq PROPOSAL13Anna Fali
1014Isabel BowleyGermany2026-04-17Morlong Associates NEW90Ioni Bowcher
1015Antonio CaudyCanada2026-04-08Chanay, Jeffrey A Esq NEW8Bernardo Dominic
1016Jefferson SchemmerIndia2026-03-25Feiner Bros PROPOSAL51Stephen Shaw
1017Leja CaldareraIndia2026-04-15Rangoni Of Florence RENEWAL67Asiya Javayant
1018Maria MarrierGermany2026-03-24Truhlar And Truhlar Attys UNQUALIFIED84Amy Elsner
1019Nicolas IturbideBrazil2026-04-13Chemel, James L Cpa UNQUALIFIED84Stephen Shaw
1020Wickens NestleArgentina2026-03-22Morlong Associates PROPOSAL43Ivan Magalhaes
1021James ButtItaly2026-03-27Chanay, Jeffrey A Esq RENEWAL45Bernardo Dominic
1022Julie StensethJapan2026-04-05Feiner Bros UNQUALIFIED62Ioni Bowcher
1023Mayumi KolmetzGermany2026-03-22Morlong Associates NEGOTIATION91Stephen Shaw
1024Mayumi KolmetzAustralia2026-04-12Rousseaux, Michael Esq RENEWAL31Anna Fali
1025Ivar PaprockiItaly2026-04-18King, Christopher A Esq PROPOSAL68Elwin Sharvill
1026Ivar PaprockiGermany2026-03-31Feltz Printing Service NEGOTIATION21Xuxue Feng
1027Kaitlin OstroskyArgentina2026-03-30Benton, John B Jr RENEWAL44Amy Elsner
1028Aditya KuskoJapan2026-04-17Feltz Printing Service PROPOSAL63Ivan Magalhaes
1029Deepesh ChuiRussia2026-03-30Feiner Bros NEW30Ivan Magalhaes
1030Antonio CaudyGermany2026-04-19Dorl, James J Esq QUALIFIED78Ivan Magalhaes
1031Octavia MaletSpain2026-04-02Feiner Bros NEW40Bernardo Dominic
1032James ButtCanada2026-04-12Feltz Printing Service RENEWAL93Asiya Javayant
1033Misaki RoysterUnited Kingdom2026-04-11Benton, John B Jr RENEWAL42Ivan Magalhaes
1034Isabel BowleyItaly2026-03-23Feiner Bros PROPOSAL67Xuxue Feng
1035Arvin AlbaresUnited Kingdom2026-04-19Rangoni Of Florence RENEWAL66Ivan Magalhaes
1036Jones VocelkaBrazil2026-04-02Rangoni Of Florence NEW40Ioni Bowcher
1037Juan WieserItaly2026-03-26Buckley Miller Wright QUALIFIED73Ivan Magalhaes
1038Johnson SergiRussia2026-03-29King, Christopher A Esq PROPOSAL96Stephen Shaw
1039Clifford RimBrazil2026-04-09Chemel, James L Cpa NEW63Ioni Bowcher
1040Izzy GarufiArgentina2026-03-27Benton, John B Jr NEGOTIATION33Stephen Shaw
1041Kadeem FlosiArgentina2026-04-08King, Christopher A Esq QUALIFIED75Amy Elsner
1042Arvin AlbaresBrazil2026-03-31Truhlar And Truhlar Attys RENEWAL85Stephen Shaw
1043Aditya KuskoFrance2026-04-11Chapman, Ross E Esq RENEWAL36Onyama Limba
1044Jeanfrancois VenereItaly2026-03-26Rangoni Of Florence UNQUALIFIED95Stephen Shaw
1045Aika InouyeArgentina2026-03-26Feiner Bros NEGOTIATION23Onyama Limba
1046James ButtFrance2026-04-03Morlong Associates UNQUALIFIED52Ivan Magalhaes
1047Cody SaylorsJapan2026-03-26Rousseaux, Michael Esq UNQUALIFIED80Elwin Sharvill
1048Leon OldroydGermany2026-04-07Feiner Bros NEW14Ioni Bowcher
1049Mayumi KolmetzArgentina2026-03-26Chemel, James L Cpa NEGOTIATION35Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserAustraliaStephen Shaw QUALIFIED
Aditya KuskoAustraliaOnyama Limba NEW
Aditya KuskoJapanOnyama Limba QUALIFIED
Murillo MaletIndiaAnna Fali PROPOSAL
James ButtCanadaIvan Magalhaes RENEWAL
Morrow RutaBrazilOnyama Limba UNQUALIFIED
Aditya KuskoBrazilOnyama Limba PROPOSAL
Sinclair WaycottUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois VenereArgentinaIvan Magalhaes NEW
Murillo MaletFranceIvan Magalhaes RENEWAL
Leja CaldareraRussiaIoni Bowcher PROPOSAL
Chavez BriddickArgentinaAmy Elsner PROPOSAL
Jones VocelkaBrazilXuxue Feng RENEWAL
Ashley DoeUnited KingdomXuxue Feng NEW
Kadeem FlosiUnited KingdomOnyama Limba NEW
Ashley DoeArgentinaOnyama Limba QUALIFIED
Arvin AlbaresCanadaXuxue Feng PROPOSAL
Johnson SergiUnited KingdomOnyama Limba NEW
James ButtFranceXuxue Feng NEW
David DarakjyCanadaIoni Bowcher RENEWAL
Aditya KuskoCanadaAmy Elsner NEGOTIATION
Stacey MacleadItalyStephen Shaw UNQUALIFIED
Aditya KuskoAustraliaXuxue Feng NEW
Isabel BowleyArgentinaXuxue Feng PROPOSAL
Isabel BowleyRussiaIvan Magalhaes PROPOSAL
Arvin AlbaresSpainStephen Shaw QUALIFIED
Ricardo GauchoRussiaElwin Sharvill QUALIFIED
Isabel BowleyArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiIndiaElwin Sharvill UNQUALIFIED
Emily WhobreyCanadaStephen Shaw NEGOTIATION
Rodrigues CampainFranceXuxue Feng RENEWAL
Darci PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiJapanOnyama Limba UNQUALIFIED
Ashley DoeGermanyBernardo Dominic NEGOTIATION
Aruna FigeroaAustraliaAnna Fali NEW
Mujtaba NickaUnited KingdomAnna Fali NEW
Nicolas IturbideSpainOnyama Limba RENEWAL
Morrow RutaJapanOnyama Limba UNQUALIFIED
Alejandro PerinSpainAsiya Javayant UNQUALIFIED
Arvin AlbaresFranceXuxue Feng UNQUALIFIED
Izzy GarufiArgentinaAmy Elsner PROPOSAL
Julie StensethIndiaStephen Shaw RENEWAL
Francesco ShinkoCanadaAsiya Javayant NEW
Sinclair WaycottBrazilAnna Fali UNQUALIFIED
Faith GillianRussiaElwin Sharvill NEW
Ricardo GauchoGermanyIvan Magalhaes UNQUALIFIED
Antonio CaudySpainOnyama Limba QUALIFIED
Misaki RoysterUnited KingdomAmy Elsner PROPOSAL
Deepesh ChuiGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois VenereIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Jones Vocelka
Stacey Maclead
Johnson Sergi
Kadeem Flosi
Mayumi Kolmetz
Rodrigues Campain
Kaitlin Ostrosky
Aruna Figeroa
Octavia Malet
Misaki Royster
Tony Foller
Ricardo Gaucho
Greenwood Bolognia
Clifford Rim
Ashley Doe
Ivar Paprocki
Darci Poquette
Julie Stenseth
Johnson Sergi
Mujtaba Nicka
Greenwood Bolognia
David Darakjy
Aika Inouye
Salvatore Stockham
Maisha Rulapaugh
Kaitlin Ostrosky
Ricardo Gaucho
Darci Poquette
Aika Inouye
Juan Wieser
Juan Wieser
Misaki Royster
Maria Marrier
Jefferson Schemmer
Munro Ferencz
Faith Gillian
Ashley Doe
Maria Marrier
Kaitlin Ostrosky
Silvio Slusarski
Aruna Figeroa
Munro Ferencz
Francesco Shinko
Julie Stenseth
Morrow Ruta
Claire Tollner
Isabel Bowley
Leja Caldarera
Leja Caldarera
Cody Saylors
IdCountryDate
1000Italy2026-04-07
1001France2026-03-28
1002Italy2026-03-29
1003Canada2026-04-12
1004Russia2026-03-28
1005Russia2026-04-20
1006Canada2026-04-10
1007Australia2026-03-30
1008Australia2026-04-03
1009Spain2026-04-02
1010Australia2026-04-11
1011Spain2026-04-14
1012Spain2026-04-03
1013Australia2026-03-25
1014Canada2026-04-20
1015Japan2026-03-25
1016Germany2026-03-24
1017Spain2026-03-22
1018France2026-03-25
1019France2026-03-29
1020Spain2026-03-22
1021India2026-04-01
1022India2026-03-22
1023Brazil2026-04-18
1024Germany2026-04-10
1025France2026-04-02
1026France2026-04-04
1027Germany2026-03-25
1028Brazil2026-04-19
1029Russia2026-03-27
1030Brazil2026-03-24
1031France2026-03-24
1032Japan2026-03-22
1033Japan2026-04-05
1034United Kingdom2026-04-15
1035Spain2026-03-23
1036United Kingdom2026-03-22
1037India2026-04-20
1038Russia2026-04-03
1039Argentina2026-04-19
1040Canada2026-04-01
1041Japan2026-04-13
1042Argentina2026-04-05
1043India2026-03-22
1044Germany2026-04-02
1045India2026-04-04
1046France2026-04-10
1047Japan2026-04-08
1048Italy2026-04-04
1049Brazil2026-04-09

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Germany2026-03-23
Wickens Nestle1001Brazil2026-04-10
Jones Vocelka1002Germany2026-04-12
Kadeem Flosi1003Canada2026-03-30
Deepesh Chui1004Italy2026-03-24
Rodrigues Campain1005Spain2026-04-03
Alejandro Perin1006United Kingdom2026-03-26
Jeanfrancois Venere1007Australia2026-03-29
Jefferson Schemmer1008Japan2026-04-15
Octavia Malet1009Spain2026-04-04
Faith Gillian1010Russia2026-03-30
Ivar Paprocki1011France2026-04-15
Leon Oldroyd1012United Kingdom2026-04-04
Greenwood Bolognia1013Australia2026-04-02
Nicolas Iturbide1014India2026-03-25
Aika Inouye1015Canada2026-04-13
Octavia Malet1016Canada2026-04-09
Kaitlin Ostrosky1017Germany2026-04-02
Leja Caldarera1018Spain2026-04-17
Ashley Doe1019Japan2026-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterItalyIoni Bowcher PROPOSAL
Tony FollerUnited KingdomOnyama Limba RENEWAL
Tony FollerUnited KingdomXuxue Feng QUALIFIED
Smith GlickRussiaXuxue Feng QUALIFIED
Maria MarrierUnited KingdomIvan Magalhaes NEW
Darci PoquetteUnited KingdomIoni Bowcher PROPOSAL
Aika InouyeFranceBernardo Dominic NEGOTIATION
Sinclair WaycottFranceXuxue Feng PROPOSAL
Adams MorascaJapanOnyama Limba NEW
Adams MorascaRussiaElwin Sharvill NEGOTIATION
Greenwood BologniaSpainAmy Elsner NEGOTIATION
Kaitlin OstroskyCanadaBernardo Dominic UNQUALIFIED
Misaki RoysterIndiaElwin Sharvill QUALIFIED
Nicolas IturbideAustraliaOnyama Limba QUALIFIED
Ashley DoeFranceAnna Fali RENEWAL
Isabel BowleyItalyAsiya Javayant UNQUALIFIED
Emily WhobreyIndiaAnna Fali PROPOSAL
Julie StensethCanadaBernardo Dominic UNQUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes NEW
Julie StensethAustraliaOnyama Limba UNQUALIFIED
Emily WhobreyRussiaAsiya Javayant NEW
Maisha RulapaughBrazilStephen Shaw NEGOTIATION
Emily WhobreyRussiaStephen Shaw PROPOSAL
Jefferson SchemmerGermanyStephen Shaw UNQUALIFIED
Morrow RutaAustraliaAsiya Javayant QUALIFIED
Emily WhobreyFranceAmy Elsner NEW
Faith GillianSpainElwin Sharvill QUALIFIED
Arvin AlbaresCanadaOnyama Limba NEW
Aditya KuskoAustraliaElwin Sharvill NEW
Francesco ShinkoBrazilElwin Sharvill UNQUALIFIED
Francesco ShinkoIndiaOnyama Limba NEGOTIATION
Alejandro PerinAustraliaAmy Elsner PROPOSAL
Deepesh ChuiFranceElwin Sharvill NEW
Francesco ShinkoRussiaXuxue Feng PROPOSAL
Jeanfrancois VenereUnited KingdomXuxue Feng NEGOTIATION
Silvio SlusarskiIndiaOnyama Limba NEW
Octavia MaletBrazilXuxue Feng NEGOTIATION
Kaitlin OstroskyUnited KingdomAmy Elsner NEGOTIATION
Alejandro PerinCanadaStephen Shaw RENEWAL
Izzy GarufiArgentinaOnyama Limba 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>