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
Antonio CaudyUnited KingdomAsiya Javayant NEW
Aditya KuskoSpainOnyama Limba QUALIFIED
Jefferson SchemmerSpainAsiya Javayant NEW
Jefferson SchemmerBrazilAsiya Javayant PROPOSAL
Sinclair WaycottArgentinaBernardo Dominic RENEWAL
Mujtaba NickaArgentinaOnyama Limba QUALIFIED
Arvin AlbaresIndiaOnyama Limba UNQUALIFIED
Munro FerenczArgentinaAsiya Javayant NEW
Wickens NestleAustraliaAmy Elsner QUALIFIED
Chavez BriddickAustraliaAmy Elsner RENEWAL
Kadeem FlosiJapanAnna Fali NEW
Jeanfrancois VenereFranceIoni Bowcher NEW
Juan WieserItalyBernardo Dominic NEGOTIATION
Mayumi KolmetzIndiaIoni Bowcher PROPOSAL
Kaitlin OstroskyItalyAsiya Javayant RENEWAL
Leja CaldareraJapanBernardo Dominic RENEWAL
Faith GillianSpainAmy Elsner PROPOSAL
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Alejandro PerinCanadaOnyama Limba QUALIFIED
Ricardo GauchoJapanXuxue Feng QUALIFIED
Mayumi KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Ashley DoeSpainAnna Fali QUALIFIED
Faith GillianItalyElwin Sharvill UNQUALIFIED
Emily WhobreyGermanyStephen Shaw QUALIFIED
Tony FollerItalyBernardo Dominic NEGOTIATION
Alejandro PerinIndiaElwin Sharvill NEW
Julie StensethJapanElwin Sharvill NEW
Aditya KuskoRussiaXuxue Feng NEW
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Salvatore StockhamItalyIvan Magalhaes PROPOSAL
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Francesco ShinkoItalyOnyama Limba UNQUALIFIED
Kadeem FlosiSpainXuxue Feng PROPOSAL
Aditya KuskoRussiaOnyama Limba PROPOSAL
Ivar PaprockiAustraliaStephen Shaw NEGOTIATION
Jefferson SchemmerAustraliaAmy Elsner UNQUALIFIED
Wickens NestleSpainAsiya Javayant UNQUALIFIED
Isabel BowleyArgentinaOnyama Limba NEW
Mujtaba NickaUnited KingdomIoni Bowcher QUALIFIED
Deepesh ChuiIndiaOnyama Limba UNQUALIFIED
Leja CaldareraRussiaStephen Shaw RENEWAL
Rodrigues CampainArgentinaAnna Fali NEW
Salvatore StockhamGermanyAsiya Javayant PROPOSAL
Emily WhobreyCanadaStephen Shaw RENEWAL
Adams MorascaCanadaStephen Shaw NEGOTIATION
Kaitlin OstroskySpainAmy Elsner NEW
Kadeem FlosiSpainIvan Magalhaes NEW
Smith GlickIndiaElwin Sharvill QUALIFIED
Ivar PaprockiUnited KingdomStephen Shaw PROPOSAL
Octavia MaletGermanyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyArgentinaAmy Elsner RENEWAL
Munro FerenczRussiaIoni Bowcher PROPOSAL
Aika InouyeRussiaAnna Fali RENEWAL
Tony FollerItalyElwin Sharvill NEW
Clifford RimSpainAmy Elsner NEGOTIATION
Greenwood BologniaIndiaElwin Sharvill PROPOSAL
Octavia MaletBrazilAsiya Javayant NEW
Julie StensethAustraliaAnna Fali PROPOSAL
Juan WieserCanadaIoni Bowcher PROPOSAL
Julie StensethItalyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaRussia2025-09-21Morlong Associates QUALIFIED3Onyama Limba
1001Aditya KuskoFrance2025-10-10King, Christopher A Esq PROPOSAL26Amy Elsner
1002Rodrigues CampainIndia2025-09-27Commercial Press NEW4Elwin Sharvill
1003Darci PoquetteCanada2025-10-14Chapman, Ross E Esq QUALIFIED43Xuxue Feng
1004Sinclair WaycottArgentina2025-10-04Printing Dimensions RENEWAL38Anna Fali
1005Clifford RimJapan2025-10-10Chemel, James L Cpa NEW75Ioni Bowcher
1006Isabel BowleyFrance2025-09-26Feltz Printing Service PROPOSAL80Xuxue Feng
1007Maria MarrierGermany2025-10-15Benton, John B Jr RENEWAL75Bernardo Dominic
1008Emily WhobreyBrazil2025-10-06Chanay, Jeffrey A Esq RENEWAL11Onyama Limba
1009Aika InouyeGermany2025-10-02Chanay, Jeffrey A Esq PROPOSAL17Ioni Bowcher
1010Costa DilliardSpain2025-09-29Chapman, Ross E Esq UNQUALIFIED8Ivan Magalhaes
1011Ricardo GauchoArgentina2025-09-18Commercial Press PROPOSAL20Amy Elsner
1012Julie StensethSpain2025-10-07Benton, John B Jr PROPOSAL28Asiya Javayant
1013Octavia MaletRussia2025-10-09Commercial Press UNQUALIFIED23Amy Elsner
1014Cody SaylorsAustralia2025-10-10Dorl, James J Esq UNQUALIFIED98Onyama Limba
1015Arvin AlbaresCanada2025-09-17Feltz Printing Service NEGOTIATION65Anna Fali
1016Antonio CaudyJapan2025-10-01Truhlar And Truhlar Attys UNQUALIFIED95Amy Elsner
1017Jeanfrancois VenereJapan2025-10-07Truhlar And Truhlar Attys NEW22Xuxue Feng
1018Jones VocelkaJapan2025-09-30Truhlar And Truhlar Attys QUALIFIED98Bernardo Dominic
1019Aditya KuskoCanada2025-09-25Buckley Miller Wright UNQUALIFIED71Onyama Limba
1020Ivar PaprockiUnited Kingdom2025-09-21Feiner Bros QUALIFIED92Elwin Sharvill
1021David DarakjyAustralia2025-09-19Rousseaux, Michael Esq QUALIFIED33Ioni Bowcher
1022Clifford RimRussia2025-09-16Chanay, Jeffrey A Esq NEGOTIATION58Ivan Magalhaes
1023Ivar PaprockiAustralia2025-09-26Chapman, Ross E Esq PROPOSAL33Ioni Bowcher
1024Kaitlin OstroskyAustralia2025-09-18Commercial Press UNQUALIFIED84Asiya Javayant
1025Ivar PaprockiBrazil2025-09-20Buckley Miller Wright QUALIFIED10Onyama Limba
1026Costa DilliardGermany2025-10-08Morlong Associates NEW43Bernardo Dominic
1027Johnson SergiUnited Kingdom2025-10-08Printing Dimensions RENEWAL64Amy Elsner
1028Clifford RimGermany2025-10-10Chemel, James L Cpa QUALIFIED78Ivan Magalhaes
1029Darci PoquetteArgentina2025-09-27Chapman, Ross E Esq QUALIFIED24Amy Elsner
1030Adams MorascaSpain2025-09-26Dorl, James J Esq RENEWAL78Elwin Sharvill
1031Aditya KuskoJapan2025-09-29Rangoni Of Florence NEW0Anna Fali
1032Kaitlin OstroskyJapan2025-10-13Chemel, James L Cpa PROPOSAL48Ioni Bowcher
1033Nicolas IturbideIndia2025-09-17Morlong Associates UNQUALIFIED89Asiya Javayant
1034Morrow RutaGermany2025-10-04King, Christopher A Esq PROPOSAL26Stephen Shaw
1035Jeanfrancois VenereGermany2025-10-05Printing Dimensions RENEWAL35Elwin Sharvill
1036Murillo MaletUnited Kingdom2025-10-02Buckley Miller Wright NEW80Elwin Sharvill
1037Aika InouyeIndia2025-10-06Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1038Mujtaba NickaGermany2025-10-03Chemel, James L Cpa RENEWAL95Amy Elsner
1039Mayumi KolmetzGermany2025-10-04Printing Dimensions NEW61Amy Elsner
1040Sinclair WaycottItaly2025-09-18Commercial Press NEGOTIATION42Anna Fali
1041Leon OldroydItaly2025-10-09Chanay, Jeffrey A Esq PROPOSAL39Stephen Shaw
1042Wickens NestleIndia2025-09-29Printing Dimensions UNQUALIFIED96Elwin Sharvill
1043Greenwood BologniaRussia2025-09-16Chanay, Jeffrey A Esq PROPOSAL63Asiya Javayant
1044Juan WieserItaly2025-09-18Chanay, Jeffrey A Esq NEW74Elwin Sharvill
1045Morrow RutaUnited Kingdom2025-09-30King, Christopher A Esq PROPOSAL3Ivan Magalhaes
1046Faith GillianArgentina2025-09-20Feltz Printing Service QUALIFIED42Xuxue Feng
1047Salvatore StockhamCanada2025-09-28Benton, John B Jr QUALIFIED50Anna Fali
1048Aruna FigeroaBrazil2025-10-02Dorl, James J Esq QUALIFIED13Ivan Magalhaes
1049Salvatore StockhamArgentina2025-09-30Feiner Bros NEGOTIATION30Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoUnited KingdomIoni Bowcher RENEWAL
Rodrigues CampainBrazilAmy Elsner NEW
Jones VocelkaIndiaOnyama Limba NEGOTIATION
James ButtArgentinaIoni Bowcher PROPOSAL
Jennifer AmigonFranceBernardo Dominic RENEWAL
Rodrigues CampainArgentinaXuxue Feng NEW
Costa DilliardCanadaAsiya Javayant NEGOTIATION
Misaki RoysterCanadaBernardo Dominic NEGOTIATION
Leja CaldareraAustraliaOnyama Limba NEGOTIATION
Ivar PaprockiItalyAnna Fali NEW
Kadeem FlosiBrazilElwin Sharvill RENEWAL
Isabel BowleyItalyXuxue Feng UNQUALIFIED
Tony FollerFranceAsiya Javayant RENEWAL
Tony FollerAustraliaAmy Elsner QUALIFIED
Sinclair WaycottItalyXuxue Feng PROPOSAL
Clifford RimUnited KingdomOnyama Limba RENEWAL
Jeanfrancois VenereRussiaXuxue Feng NEW
James ButtArgentinaXuxue Feng NEW
Juan WieserSpainAmy Elsner PROPOSAL
Isabel BowleyJapanBernardo Dominic QUALIFIED
Leja CaldareraSpainXuxue Feng QUALIFIED
Aika InouyeArgentinaIvan Magalhaes NEGOTIATION
Costa DilliardSpainIoni Bowcher QUALIFIED
Alejandro PerinCanadaAmy Elsner NEGOTIATION
Smith GlickAustraliaXuxue Feng NEW
Julie StensethItalyAmy Elsner RENEWAL
Faith GillianFranceOnyama Limba RENEWAL
Antonio CaudyIndiaOnyama Limba PROPOSAL
Wickens NestleGermanyAnna Fali QUALIFIED
Cody SaylorsSpainIvan Magalhaes NEW
Mayumi KolmetzIndiaXuxue Feng QUALIFIED
Chavez BriddickIndiaElwin Sharvill PROPOSAL
Johnson SergiSpainIvan Magalhaes NEW
Johnson SergiItalyOnyama Limba UNQUALIFIED
Leon OldroydGermanyXuxue Feng NEW
Aruna FigeroaCanadaBernardo Dominic NEGOTIATION
Jennifer AmigonFranceOnyama Limba NEW
Misaki RoysterJapanAsiya Javayant QUALIFIED
Salvatore StockhamSpainOnyama Limba PROPOSAL
Arvin AlbaresAustraliaXuxue Feng QUALIFIED
Arvin AlbaresFranceIoni Bowcher PROPOSAL
Maria MarrierJapanIoni Bowcher UNQUALIFIED
Kadeem FlosiCanadaElwin Sharvill QUALIFIED
Johnson SergiSpainStephen Shaw UNQUALIFIED
Misaki RoysterGermanyIoni Bowcher NEGOTIATION
Emily WhobreySpainIoni Bowcher NEGOTIATION
Mujtaba NickaGermanyOnyama Limba PROPOSAL
Francesco ShinkoUnited KingdomXuxue Feng NEW
Aditya KuskoAustraliaStephen Shaw NEW
Leja CaldareraSpainAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Octavia Malet
Mayumi Kolmetz
Maria Marrier
Ricardo Gaucho
Sinclair Waycott
Alejandro Perin
Mayumi Kolmetz
Octavia Malet
Jefferson Schemmer
Darci Poquette
Jones Vocelka
Kaitlin Ostrosky
Mayumi Kolmetz
Aruna Figeroa
Johnson Sergi
Morrow Ruta
Maisha Rulapaugh
Faith Gillian
Munro Ferencz
Chavez Briddick
Ricardo Gaucho
Jennifer Amigon
Nicolas Iturbide
James Butt
Mujtaba Nicka
Aditya Kusko
Stacey Maclead
Alejandro Perin
James Butt
Ivar Paprocki
Nicolas Iturbide
Isabel Bowley
Aditya Kusko
Ivar Paprocki
Greenwood Bolognia
Wickens Nestle
Faith Gillian
Costa Dilliard
Maria Marrier
Jones Vocelka
Mujtaba Nicka
Izzy Garufi
Mayumi Kolmetz
Misaki Royster
Antonio Caudy
Nicolas Iturbide
Kadeem Flosi
Mujtaba Nicka
Mayumi Kolmetz
Aika Inouye
IdCountryDate
1000Russia2025-09-29
1001Australia2025-10-07
1002Italy2025-10-15
1003United Kingdom2025-10-15
1004Canada2025-09-28
1005Argentina2025-09-24
1006France2025-10-07
1007Germany2025-09-24
1008France2025-09-19
1009Argentina2025-09-22
1010Russia2025-10-08
1011Brazil2025-09-25
1012Italy2025-10-05
1013Canada2025-09-20
1014Spain2025-10-05
1015Germany2025-10-03
1016Germany2025-09-16
1017Japan2025-10-02
1018France2025-09-22
1019Germany2025-10-07
1020United Kingdom2025-10-14
1021Brazil2025-09-18
1022Spain2025-10-04
1023Germany2025-09-22
1024United Kingdom2025-09-25
1025Japan2025-09-21
1026Russia2025-09-29
1027France2025-10-03
1028Russia2025-09-21
1029Canada2025-09-27
1030Australia2025-09-24
1031United Kingdom2025-10-11
1032Spain2025-09-23
1033India2025-09-27
1034India2025-10-14
1035Australia2025-09-29
1036Japan2025-09-20
1037Spain2025-09-23
1038Russia2025-09-30
1039Brazil2025-10-08
1040Italy2025-10-09
1041Spain2025-09-28
1042Italy2025-10-03
1043Russia2025-09-20
1044Germany2025-10-03
1045Spain2025-10-08
1046Brazil2025-09-24
1047Brazil2025-10-01
1048Argentina2025-09-19
1049Spain2025-09-20

On-Demand Data

NameIdCountryDate
Tony Foller1000United Kingdom2025-10-06
Greenwood Bolognia1001Australia2025-10-01
Nicolas Iturbide1002Argentina2025-10-14
Cody Saylors1003United Kingdom2025-10-03
Jennifer Amigon1004France2025-10-13
Maisha Rulapaugh1005India2025-09-20
James Butt1006France2025-09-17
Silvio Slusarski1007Germany2025-10-08
Clifford Rim1008United Kingdom2025-10-03
Arvin Albares1009Spain2025-09-17
Aruna Figeroa1010France2025-10-04
Greenwood Bolognia1011Germany2025-10-09
Darci Poquette1012Brazil2025-10-06
Julie Stenseth1013Australia2025-09-23
Murillo Malet1014Japan2025-10-08
Smith Glick1015France2025-10-13
Clifford Rim1016Australia2025-10-11
Morrow Ruta1017India2025-09-16
James Butt1018Spain2025-09-25
Izzy Garufi1019Argentina2025-10-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyItalyIvan Magalhaes UNQUALIFIED
Stacey MacleadIndiaAmy Elsner NEGOTIATION
Salvatore StockhamIndiaStephen Shaw RENEWAL
Darci PoquetteBrazilAmy Elsner PROPOSAL
Mayumi KolmetzFranceIvan Magalhaes NEW
Aditya KuskoArgentinaAmy Elsner RENEWAL
Juan WieserAustraliaOnyama Limba NEW
David DarakjySpainElwin Sharvill QUALIFIED
Maria MarrierGermanyIoni Bowcher RENEWAL
Faith GillianSpainAsiya Javayant QUALIFIED
Francesco ShinkoSpainAnna Fali NEGOTIATION
Deepesh ChuiJapanAmy Elsner PROPOSAL
Jefferson SchemmerSpainElwin Sharvill NEGOTIATION
Kadeem FlosiItalyElwin Sharvill NEGOTIATION
Nicolas IturbideFranceElwin Sharvill PROPOSAL
Deepesh ChuiSpainIoni Bowcher UNQUALIFIED
Murillo MaletJapanBernardo Dominic UNQUALIFIED
Aditya KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba NickaCanadaBernardo Dominic UNQUALIFIED
Julie StensethJapanIvan Magalhaes UNQUALIFIED
Mujtaba NickaAustraliaAnna Fali NEW
Leon OldroydSpainStephen Shaw QUALIFIED
Smith GlickArgentinaAnna Fali NEGOTIATION
Wickens NestleArgentinaAnna Fali PROPOSAL
Leja CaldareraIndiaBernardo Dominic NEW
Juan WieserSpainIvan Magalhaes UNQUALIFIED
James ButtIndiaAnna Fali UNQUALIFIED
Aditya KuskoArgentinaStephen Shaw RENEWAL
Leon OldroydRussiaXuxue Feng PROPOSAL
Mayumi KolmetzGermanyAsiya Javayant NEGOTIATION
Aditya KuskoArgentinaIvan Magalhaes PROPOSAL
Arvin AlbaresIndiaAmy Elsner RENEWAL
Octavia MaletItalyAmy Elsner NEW
Octavia MaletUnited KingdomXuxue Feng NEW
Francesco ShinkoItalyAnna Fali UNQUALIFIED
Antonio CaudyGermanyAmy Elsner PROPOSAL
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Greenwood BologniaFranceIoni Bowcher QUALIFIED
Morrow RutaJapanAsiya Javayant RENEWAL
Emily WhobreyItalyXuxue Feng 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>