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
Ivar PaprockiAustraliaStephen Shaw UNQUALIFIED
Jefferson SchemmerGermanyIvan Magalhaes RENEWAL
Octavia MaletRussiaAnna Fali UNQUALIFIED
Jennifer AmigonArgentinaOnyama Limba RENEWAL
David DarakjyUnited KingdomIoni Bowcher PROPOSAL
Sinclair WaycottGermanyXuxue Feng NEW
Adams MorascaArgentinaElwin Sharvill NEGOTIATION
Ivar PaprockiFranceAmy Elsner NEW
Jones VocelkaItalyAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaXuxue Feng PROPOSAL
Misaki RoysterRussiaAsiya Javayant UNQUALIFIED
Julie StensethRussiaStephen Shaw UNQUALIFIED
Kaitlin OstroskyGermanyIvan Magalhaes RENEWAL
Faith GillianArgentinaOnyama Limba NEW
Smith GlickSpainAsiya Javayant NEGOTIATION
Aika InouyeJapanOnyama Limba RENEWAL
Faith GillianSpainOnyama Limba QUALIFIED
Leon OldroydBrazilAsiya Javayant UNQUALIFIED
Johnson SergiAustraliaIvan Magalhaes RENEWAL
Smith GlickBrazilStephen Shaw NEGOTIATION
Mujtaba NickaCanadaBernardo Dominic PROPOSAL
Ashley DoeItalyXuxue Feng NEGOTIATION
Mayumi KolmetzUnited KingdomStephen Shaw RENEWAL
Ricardo GauchoRussiaOnyama Limba PROPOSAL
Deepesh ChuiGermanyAmy Elsner NEGOTIATION
Izzy GarufiIndiaAnna Fali NEGOTIATION
Faith GillianCanadaAsiya Javayant QUALIFIED
Ivar PaprockiCanadaAmy Elsner NEGOTIATION
Jennifer AmigonSpainIoni Bowcher NEGOTIATION
David DarakjyCanadaXuxue Feng UNQUALIFIED
Stacey MacleadIndiaStephen Shaw UNQUALIFIED
Isabel BowleyItalyBernardo Dominic PROPOSAL
Kaitlin OstroskyAustraliaXuxue Feng NEW
Emily WhobreyCanadaIoni Bowcher UNQUALIFIED
Mayumi KolmetzArgentinaIoni Bowcher UNQUALIFIED
Morrow RutaAustraliaAsiya Javayant PROPOSAL
Mayumi KolmetzFranceAsiya Javayant UNQUALIFIED
Chavez BriddickSpainStephen Shaw NEGOTIATION
Kadeem FlosiItalyElwin Sharvill PROPOSAL
Clifford RimFranceIoni Bowcher NEGOTIATION
Chavez BriddickBrazilOnyama Limba RENEWAL
Alejandro PerinFranceAmy Elsner NEGOTIATION
Deepesh ChuiCanadaStephen Shaw UNQUALIFIED
Stacey MacleadGermanyXuxue Feng PROPOSAL
Deepesh ChuiIndiaStephen Shaw NEGOTIATION
Adams MorascaSpainStephen Shaw PROPOSAL
Munro FerenczRussiaBernardo Dominic RENEWAL
Emily WhobreyItalyIvan Magalhaes UNQUALIFIED
Mayumi KolmetzItalyBernardo Dominic PROPOSAL
Tony FollerBrazilElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleArgentinaIoni Bowcher PROPOSAL
Jones VocelkaUnited KingdomBernardo Dominic QUALIFIED
Arvin AlbaresGermanyOnyama Limba NEGOTIATION
Tony FollerIndiaAnna Fali NEGOTIATION
Deepesh ChuiUnited KingdomStephen Shaw RENEWAL
Munro FerenczBrazilOnyama Limba NEGOTIATION
Mujtaba NickaBrazilIvan Magalhaes NEGOTIATION
Darci PoquetteUnited KingdomStephen Shaw QUALIFIED
Adams MorascaGermanyElwin Sharvill QUALIFIED
Juan WieserItalyIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottItaly2026-05-04Benton, John B Jr UNQUALIFIED99Anna Fali
1001Murillo MaletUnited Kingdom2026-05-02King, Christopher A Esq NEW16Bernardo Dominic
1002Munro FerenczArgentina2026-04-21Benton, John B Jr NEGOTIATION6Onyama Limba
1003Julie StensethItaly2026-05-05Feiner Bros RENEWAL87Ivan Magalhaes
1004Misaki RoysterSpain2026-05-08Dorl, James J Esq QUALIFIED22Bernardo Dominic
1005Adams MorascaArgentina2026-05-08Chemel, James L Cpa UNQUALIFIED6Asiya Javayant
1006Costa DilliardCanada2026-04-21Morlong Associates NEGOTIATION91Amy Elsner
1007Salvatore StockhamCanada2026-05-02Buckley Miller Wright QUALIFIED86Bernardo Dominic
1008Silvio SlusarskiIndia2026-04-19King, Christopher A Esq PROPOSAL73Stephen Shaw
1009Arvin AlbaresJapan2026-04-25Chanay, Jeffrey A Esq NEGOTIATION34Xuxue Feng
1010Ricardo GauchoItaly2026-04-12Commercial Press NEW67Asiya Javayant
1011Morrow RutaSpain2026-04-27Dorl, James J Esq NEW55Ivan Magalhaes
1012Maisha RulapaughIndia2026-04-27Benton, John B Jr QUALIFIED80Onyama Limba
1013Emily WhobreyFrance2026-04-14Printing Dimensions UNQUALIFIED86Amy Elsner
1014Darci PoquetteGermany2026-04-17Morlong Associates NEW67Xuxue Feng
1015Misaki RoysterIndia2026-05-04Chemel, James L Cpa RENEWAL22Anna Fali
1016Adams MorascaIndia2026-05-02Morlong Associates PROPOSAL77Ivan Magalhaes
1017Kadeem FlosiSpain2026-04-12Chapman, Ross E Esq RENEWAL49Elwin Sharvill
1018Leon OldroydFrance2026-04-15Buckley Miller Wright PROPOSAL96Ioni Bowcher
1019Aika InouyeSpain2026-04-24Commercial Press NEW7Asiya Javayant
1020Misaki RoysterJapan2026-04-18Morlong Associates QUALIFIED0Xuxue Feng
1021Johnson SergiCanada2026-04-24Chanay, Jeffrey A Esq RENEWAL19Bernardo Dominic
1022Wickens NestleSpain2026-04-25Chanay, Jeffrey A Esq PROPOSAL43Amy Elsner
1023Salvatore StockhamUnited Kingdom2026-05-09Printing Dimensions NEGOTIATION30Onyama Limba
1024Jennifer AmigonSpain2026-04-20Morlong Associates NEGOTIATION47Bernardo Dominic
1025Izzy GarufiAustralia2026-04-25Rousseaux, Michael Esq PROPOSAL30Stephen Shaw
1026Emily WhobreyCanada2026-05-01Feltz Printing Service QUALIFIED68Amy Elsner
1027Munro FerenczUnited Kingdom2026-04-19Buckley Miller Wright PROPOSAL11Amy Elsner
1028Jefferson SchemmerFrance2026-05-07Dorl, James J Esq NEW68Elwin Sharvill
1029Silvio SlusarskiGermany2026-05-06Benton, John B Jr RENEWAL35Onyama Limba
1030Julie StensethIndia2026-04-24Chapman, Ross E Esq RENEWAL27Amy Elsner
1031Faith GillianJapan2026-05-08Chemel, James L Cpa RENEWAL66Anna Fali
1032Morrow RutaRussia2026-05-01Truhlar And Truhlar Attys NEW78Onyama Limba
1033James ButtArgentina2026-05-08Buckley Miller Wright PROPOSAL52Amy Elsner
1034Tony FollerUnited Kingdom2026-04-12Printing Dimensions PROPOSAL32Amy Elsner
1035Jennifer AmigonGermany2026-05-04Feiner Bros QUALIFIED90Onyama Limba
1036Darci PoquetteCanada2026-04-16Chanay, Jeffrey A Esq QUALIFIED57Stephen Shaw
1037Chavez BriddickFrance2026-04-24Chemel, James L Cpa NEW32Amy Elsner
1038Octavia MaletItaly2026-05-07Feiner Bros PROPOSAL32Amy Elsner
1039Johnson SergiGermany2026-04-24Chemel, James L Cpa QUALIFIED14Asiya Javayant
1040Maria MarrierCanada2026-05-08Chapman, Ross E Esq PROPOSAL19Xuxue Feng
1041Leon OldroydAustralia2026-04-28Chanay, Jeffrey A Esq QUALIFIED22Ivan Magalhaes
1042Nicolas IturbideUnited Kingdom2026-04-27Rousseaux, Michael Esq RENEWAL17Bernardo Dominic
1043Leon OldroydAustralia2026-05-06Rousseaux, Michael Esq UNQUALIFIED45Amy Elsner
1044Izzy GarufiCanada2026-04-15Rangoni Of Florence NEGOTIATION18Anna Fali
1045Munro FerenczGermany2026-05-08Benton, John B Jr PROPOSAL31Ivan Magalhaes
1046Wickens NestleRussia2026-05-01Printing Dimensions NEGOTIATION78Ioni Bowcher
1047Maisha RulapaughJapan2026-05-04King, Christopher A Esq PROPOSAL59Elwin Sharvill
1048Clifford RimArgentina2026-05-02Rousseaux, Michael Esq PROPOSAL87Asiya Javayant
1049Darci PoquetteSpain2026-04-18Chemel, James L Cpa NEGOTIATION54Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaAustraliaAsiya Javayant PROPOSAL
James ButtBrazilXuxue Feng UNQUALIFIED
Aditya KuskoArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereBrazilXuxue Feng QUALIFIED
Juan WieserUnited KingdomIvan Magalhaes NEW
Ashley DoeItalyAnna Fali NEW
Deepesh ChuiRussiaAnna Fali NEW
Costa DilliardAustraliaStephen Shaw UNQUALIFIED
Wickens NestleSpainAmy Elsner PROPOSAL
Antonio CaudyIndiaAnna Fali RENEWAL
Faith GillianFranceXuxue Feng NEGOTIATION
Stacey MacleadBrazilIoni Bowcher QUALIFIED
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Misaki RoysterCanadaXuxue Feng QUALIFIED
Costa DilliardJapanAnna Fali NEGOTIATION
Munro FerenczRussiaElwin Sharvill UNQUALIFIED
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Alejandro PerinJapanOnyama Limba RENEWAL
Ashley DoeJapanStephen Shaw QUALIFIED
Juan WieserFranceBernardo Dominic RENEWAL
Aditya KuskoUnited KingdomStephen Shaw QUALIFIED
Jennifer AmigonAustraliaOnyama Limba NEGOTIATION
Nicolas IturbideFranceXuxue Feng UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill NEGOTIATION
Izzy GarufiRussiaIoni Bowcher NEW
Octavia MaletFranceStephen Shaw RENEWAL
Izzy GarufiGermanyXuxue Feng RENEWAL
Arvin AlbaresIndiaElwin Sharvill UNQUALIFIED
Sinclair WaycottBrazilIvan Magalhaes NEGOTIATION
Clifford RimArgentinaStephen Shaw UNQUALIFIED
Jeanfrancois VenereArgentinaXuxue Feng RENEWAL
Juan WieserCanadaStephen Shaw UNQUALIFIED
Octavia MaletFranceBernardo Dominic NEW
Juan WieserArgentinaStephen Shaw RENEWAL
Nicolas IturbideAustraliaIvan Magalhaes QUALIFIED
Leon OldroydSpainAmy Elsner QUALIFIED
Aika InouyeBrazilAnna Fali NEW
Ivar PaprockiCanadaStephen Shaw NEW
Leon OldroydIndiaIvan Magalhaes NEW
Costa DilliardFranceAsiya Javayant NEGOTIATION
Leja CaldareraIndiaAsiya Javayant NEW
Julie StensethRussiaBernardo Dominic UNQUALIFIED
Rodrigues CampainCanadaStephen Shaw NEGOTIATION
Mayumi KolmetzBrazilAmy Elsner NEW
Stacey MacleadItalyOnyama Limba QUALIFIED
Munro FerenczSpainBernardo Dominic NEGOTIATION
Ivar PaprockiGermanyOnyama Limba UNQUALIFIED
Mujtaba NickaCanadaXuxue Feng NEW
Cody SaylorsJapanAnna Fali NEW
James ButtUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Sinclair Waycott
Izzy Garufi
Ivar Paprocki
Leja Caldarera
David Darakjy
Costa Dilliard
Arvin Albares
Emily Whobrey
Alejandro Perin
Emily Whobrey
Maria Marrier
Ashley Doe
Chavez Briddick
Silvio Slusarski
Silvio Slusarski
David Darakjy
Arvin Albares
Cody Saylors
Juan Wieser
Izzy Garufi
Cody Saylors
Leja Caldarera
Aruna Figeroa
Nicolas Iturbide
Maria Marrier
Arvin Albares
Misaki Royster
Darci Poquette
Sinclair Waycott
Arvin Albares
Adams Morasca
Wickens Nestle
Aika Inouye
Octavia Malet
Julie Stenseth
Ricardo Gaucho
Isabel Bowley
Sinclair Waycott
Stacey Maclead
Aika Inouye
Clifford Rim
Silvio Slusarski
Greenwood Bolognia
Salvatore Stockham
Aditya Kusko
Kadeem Flosi
Aditya Kusko
Francesco Shinko
Emily Whobrey
Tony Foller
IdCountryDate
1000Argentina2026-05-09
1001Canada2026-04-25
1002Australia2026-04-11
1003Spain2026-05-09
1004Australia2026-04-27
1005Germany2026-04-15
1006Australia2026-04-16
1007Japan2026-05-07
1008Argentina2026-05-09
1009India2026-04-20
1010Russia2026-04-20
1011Canada2026-04-15
1012Russia2026-05-06
1013Brazil2026-04-16
1014France2026-04-30
1015Canada2026-04-12
1016India2026-04-22
1017India2026-05-03
1018Russia2026-04-16
1019Russia2026-04-25
1020France2026-04-29
1021Germany2026-05-04
1022India2026-05-05
1023Russia2026-04-15
1024Argentina2026-04-21
1025Argentina2026-04-27
1026Canada2026-05-05
1027Brazil2026-04-22
1028France2026-05-04
1029Spain2026-05-05
1030Germany2026-04-16
1031United Kingdom2026-05-03
1032Russia2026-04-20
1033Argentina2026-04-24
1034India2026-04-11
1035Australia2026-04-26
1036France2026-04-12
1037United Kingdom2026-04-12
1038Germany2026-04-25
1039Italy2026-04-15
1040Japan2026-04-20
1041Italy2026-04-14
1042Italy2026-04-11
1043Argentina2026-05-09
1044Argentina2026-04-20
1045France2026-04-17
1046Canada2026-05-05
1047Spain2026-05-03
1048Spain2026-04-19
1049Germany2026-04-28

On-Demand Data

NameIdCountryDate
Johnson Sergi1000Argentina2026-05-09
Smith Glick1001Germany2026-04-15
Julie Stenseth1002Spain2026-04-28
David Darakjy1003Spain2026-04-23
Isabel Bowley1004Argentina2026-05-02
Wickens Nestle1005Germany2026-04-23
Aruna Figeroa1006Japan2026-04-18
Wickens Nestle1007Japan2026-04-26
Ivar Paprocki1008Australia2026-05-05
Salvatore Stockham1009Canada2026-04-23
Aruna Figeroa1010Italy2026-04-18
Jefferson Schemmer1011Australia2026-05-05
Sinclair Waycott1012Russia2026-05-06
Sinclair Waycott1013Australia2026-05-04
Darci Poquette1014Brazil2026-04-20
Antonio Caudy1015Australia2026-05-08
Stacey Maclead1016Australia2026-05-07
Juan Wieser1017United Kingdom2026-05-03
Murillo Malet1018Spain2026-04-22
Mayumi Kolmetz1019India2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsArgentinaOnyama Limba RENEWAL
Aika InouyeBrazilIoni Bowcher UNQUALIFIED
Antonio CaudySpainElwin Sharvill PROPOSAL
Johnson SergiItalyStephen Shaw NEW
Octavia MaletFranceOnyama Limba PROPOSAL
Kadeem FlosiArgentinaAnna Fali RENEWAL
Leon OldroydGermanyElwin Sharvill RENEWAL
David DarakjyUnited KingdomElwin Sharvill RENEWAL
Aruna FigeroaGermanyIoni Bowcher NEW
Aditya KuskoFranceBernardo Dominic NEGOTIATION
Murillo MaletIndiaAnna Fali NEW
Leon OldroydFranceBernardo Dominic PROPOSAL
Morrow RutaJapanOnyama Limba QUALIFIED
Johnson SergiCanadaAnna Fali QUALIFIED
Adams MorascaSpainIvan Magalhaes QUALIFIED
Cody SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois VenereIndiaXuxue Feng UNQUALIFIED
Tony FollerRussiaElwin Sharvill QUALIFIED
Aruna FigeroaCanadaBernardo Dominic PROPOSAL
Maria MarrierArgentinaAmy Elsner NEW
Sinclair WaycottAustraliaOnyama Limba RENEWAL
Aruna FigeroaArgentinaBernardo Dominic PROPOSAL
Misaki RoysterJapanIvan Magalhaes QUALIFIED
Sinclair WaycottSpainElwin Sharvill UNQUALIFIED
Costa DilliardUnited KingdomAsiya Javayant NEW
Rodrigues CampainRussiaAnna Fali NEGOTIATION
Aditya KuskoCanadaStephen Shaw QUALIFIED
Greenwood BologniaFranceAmy Elsner UNQUALIFIED
Silvio SlusarskiRussiaAsiya Javayant NEGOTIATION
Aruna FigeroaFranceOnyama Limba NEW
Morrow RutaArgentinaAnna Fali UNQUALIFIED
Ricardo GauchoCanadaAnna Fali RENEWAL
Chavez BriddickSpainBernardo Dominic NEW
James ButtSpainIvan Magalhaes PROPOSAL
Kadeem FlosiArgentinaIvan Magalhaes PROPOSAL
Silvio SlusarskiSpainIvan Magalhaes PROPOSAL
Adams MorascaItalyIvan Magalhaes NEW
Munro FerenczSpainIoni Bowcher QUALIFIED
Murillo MaletSpainAnna Fali RENEWAL
Cody SaylorsCanadaBernardo Dominic QUALIFIED

<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>