Locale

Language
English
English
English
French
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Thai
Turkish
Ukrainian
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 OstroskyGermanyAnna Fali UNQUALIFIED
Francesco ShinkoAustraliaElwin Sharvill NEGOTIATION
Maria MarrierJapanAnna Fali RENEWAL
Kaitlin OstroskyGermanyAmy Elsner NEGOTIATION
Jefferson SchemmerJapanAsiya Javayant PROPOSAL
Antonio CaudyAustraliaOnyama Limba NEGOTIATION
Chavez BriddickFranceIvan Magalhaes NEGOTIATION
Munro FerenczSpainBernardo Dominic NEW
Aika InouyeIndiaAmy Elsner QUALIFIED
Ashley DoeCanadaBernardo Dominic QUALIFIED
Emily WhobreyCanadaXuxue Feng NEGOTIATION
Johnson SergiGermanyAmy Elsner QUALIFIED
Deepesh ChuiCanadaStephen Shaw NEW
James ButtRussiaBernardo Dominic QUALIFIED
Leja CaldareraJapanAsiya Javayant PROPOSAL
Adams MorascaItalyAnna Fali QUALIFIED
Darci PoquetteRussiaAnna Fali NEW
Faith GillianGermanyAnna Fali NEW
Chavez BriddickJapanAsiya Javayant NEGOTIATION
Nicolas IturbideItalyBernardo Dominic UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic NEW
Francesco ShinkoJapanAmy Elsner UNQUALIFIED
Maria MarrierUnited KingdomAnna Fali NEGOTIATION
Arvin AlbaresItalyElwin Sharvill NEW
Darci PoquetteAustraliaAnna Fali QUALIFIED
Rodrigues CampainArgentinaAnna Fali QUALIFIED
Ivar PaprockiBrazilAsiya Javayant NEW
Misaki RoysterSpainStephen Shaw QUALIFIED
Emily WhobreyUnited KingdomIoni Bowcher PROPOSAL
Munro FerenczGermanyAsiya Javayant UNQUALIFIED
Claire TollnerArgentinaXuxue Feng NEGOTIATION
Mujtaba NickaArgentinaXuxue Feng UNQUALIFIED
Alejandro PerinItalyOnyama Limba NEW
Kadeem FlosiItalyAnna Fali PROPOSAL
Juan WieserRussiaAsiya Javayant QUALIFIED
David DarakjyArgentinaAnna Fali UNQUALIFIED
Arvin AlbaresFranceIvan Magalhaes UNQUALIFIED
Murillo MaletCanadaAsiya Javayant RENEWAL
Aditya KuskoAustraliaStephen Shaw QUALIFIED
Tony FollerJapanOnyama Limba QUALIFIED
Julie StensethJapanIoni Bowcher NEW
Silvio SlusarskiItalyIoni Bowcher NEW
Juan WieserBrazilXuxue Feng QUALIFIED
Munro FerenczCanadaElwin Sharvill PROPOSAL
Adams MorascaCanadaAsiya Javayant RENEWAL
Faith GillianJapanBernardo Dominic PROPOSAL
Darci PoquetteJapanOnyama Limba RENEWAL
Isabel BowleyCanadaXuxue Feng NEW
Octavia MaletUnited KingdomElwin Sharvill QUALIFIED
David DarakjyCanadaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaBrazilStephen Shaw NEGOTIATION
Darci PoquetteArgentinaAnna Fali UNQUALIFIED
Aditya KuskoFranceElwin Sharvill NEW
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Adams MorascaJapanBernardo Dominic UNQUALIFIED
Aruna FigeroaUnited KingdomIoni Bowcher QUALIFIED
Ashley DoeItalyAsiya Javayant NEW
Jeanfrancois VenereRussiaAmy Elsner RENEWAL
Arvin AlbaresItalyAnna Fali PROPOSAL
Clifford RimSpainOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaCanada2024-09-02Printing Dimensions NEW96Elwin Sharvill
1001Jefferson SchemmerGermany2024-08-19Printing Dimensions NEW80Onyama Limba
1002Claire TollnerJapan2024-08-30Commercial Press NEW65Bernardo Dominic
1003Mayumi KolmetzGermany2024-09-14Chanay, Jeffrey A Esq RENEWAL89Onyama Limba
1004Deepesh ChuiAustralia2024-09-07Chanay, Jeffrey A Esq NEW33Xuxue Feng
1005Aruna FigeroaItaly2024-09-07Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1006Stacey MacleadJapan2024-09-13Feltz Printing Service RENEWAL40Amy Elsner
1007Kadeem FlosiJapan2024-08-19Feiner Bros NEW68Amy Elsner
1008Jennifer AmigonItaly2024-09-06Rousseaux, Michael Esq PROPOSAL46Asiya Javayant
1009Isabel BowleySpain2024-09-10Truhlar And Truhlar Attys NEW3Bernardo Dominic
1010Antonio CaudyBrazil2024-09-04Chemel, James L Cpa UNQUALIFIED22Stephen Shaw
1011Mayumi KolmetzUnited Kingdom2024-09-12Printing Dimensions QUALIFIED2Stephen Shaw
1012Kadeem FlosiUnited Kingdom2024-08-19Commercial Press RENEWAL23Bernardo Dominic
1013Smith GlickBrazil2024-09-01Feiner Bros PROPOSAL98Xuxue Feng
1014David DarakjyRussia2024-09-02Dorl, James J Esq QUALIFIED85Onyama Limba
1015Arvin AlbaresGermany2024-08-30Rousseaux, Michael Esq QUALIFIED16Ivan Magalhaes
1016Leon OldroydIndia2024-08-29Dorl, James J Esq PROPOSAL1Xuxue Feng
1017Sinclair WaycottJapan2024-09-13Printing Dimensions UNQUALIFIED35Ioni Bowcher
1018Deepesh ChuiFrance2024-08-26Rousseaux, Michael Esq QUALIFIED82Amy Elsner
1019Julie StensethBrazil2024-09-06Rangoni Of Florence NEGOTIATION41Stephen Shaw
1020James ButtUnited Kingdom2024-09-03Rangoni Of Florence RENEWAL55Asiya Javayant
1021Aika InouyeFrance2024-09-09Feiner Bros RENEWAL52Bernardo Dominic
1022Jennifer AmigonGermany2024-09-13King, Christopher A Esq PROPOSAL1Amy Elsner
1023Darci PoquetteUnited Kingdom2024-09-12Dorl, James J Esq NEGOTIATION82Anna Fali
1024Smith GlickArgentina2024-09-13Dorl, James J Esq NEW92Asiya Javayant
1025Munro FerenczBrazil2024-08-19Feltz Printing Service NEGOTIATION72Xuxue Feng
1026Salvatore StockhamGermany2024-08-20Dorl, James J Esq NEW54Ivan Magalhaes
1027Sinclair WaycottIndia2024-08-19Truhlar And Truhlar Attys RENEWAL55Onyama Limba
1028Leja CaldareraArgentina2024-09-14Rousseaux, Michael Esq RENEWAL70Onyama Limba
1029Ricardo GauchoItaly2024-09-07Printing Dimensions QUALIFIED84Ioni Bowcher
1030Murillo MaletAustralia2024-08-30Truhlar And Truhlar Attys UNQUALIFIED32Ioni Bowcher
1031Ashley DoeItaly2024-08-23King, Christopher A Esq RENEWAL54Asiya Javayant
1032Kaitlin OstroskyItaly2024-09-05Rousseaux, Michael Esq QUALIFIED28Ioni Bowcher
1033Adams MorascaFrance2024-09-06Rangoni Of Florence NEW19Ivan Magalhaes
1034Greenwood BologniaArgentina2024-09-12Chapman, Ross E Esq NEGOTIATION50Stephen Shaw
1035Alejandro PerinIndia2024-09-10Chemel, James L Cpa UNQUALIFIED18Amy Elsner
1036Maria MarrierCanada2024-08-21Chemel, James L Cpa UNQUALIFIED0Stephen Shaw
1037Leon OldroydItaly2024-08-31Feltz Printing Service NEW7Ivan Magalhaes
1038Rodrigues CampainRussia2024-08-30Printing Dimensions RENEWAL98Ioni Bowcher
1039Kaitlin OstroskyItaly2024-08-20Chapman, Ross E Esq UNQUALIFIED22Asiya Javayant
1040Morrow RutaUnited Kingdom2024-09-06Commercial Press UNQUALIFIED47Elwin Sharvill
1041Nicolas IturbideBrazil2024-08-22Rangoni Of Florence NEGOTIATION23Bernardo Dominic
1042Greenwood BologniaUnited Kingdom2024-08-24Rangoni Of Florence NEW79Onyama Limba
1043Darci PoquetteItaly2024-09-13Dorl, James J Esq NEGOTIATION59Elwin Sharvill
1044Cody SaylorsArgentina2024-08-19Dorl, James J Esq NEW18Ioni Bowcher
1045Aruna FigeroaCanada2024-09-13King, Christopher A Esq UNQUALIFIED93Asiya Javayant
1046Maisha RulapaughBrazil2024-09-14Chanay, Jeffrey A Esq QUALIFIED95Onyama Limba
1047Sinclair WaycottGermany2024-08-24Benton, John B Jr NEW41Onyama Limba
1048Greenwood BologniaSpain2024-08-30Chanay, Jeffrey A Esq PROPOSAL68Bernardo Dominic
1049Octavia MaletFrance2024-08-23Rousseaux, Michael Esq RENEWAL82Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie StensethIndiaStephen Shaw QUALIFIED
Mayumi KolmetzBrazilAsiya Javayant RENEWAL
Kadeem FlosiBrazilElwin Sharvill NEGOTIATION
Salvatore StockhamJapanAnna Fali NEGOTIATION
Clifford RimArgentinaXuxue Feng RENEWAL
Jones VocelkaAustraliaAnna Fali NEW
Isabel BowleyArgentinaElwin Sharvill QUALIFIED
Alejandro PerinJapanXuxue Feng QUALIFIED
Alejandro PerinFranceElwin Sharvill RENEWAL
Ricardo GauchoCanadaXuxue Feng QUALIFIED
Ivar PaprockiJapanElwin Sharvill NEGOTIATION
Mayumi KolmetzArgentinaAsiya Javayant QUALIFIED
Mayumi KolmetzJapanElwin Sharvill RENEWAL
James ButtSpainXuxue Feng PROPOSAL
Kadeem FlosiFranceStephen Shaw PROPOSAL
Izzy GarufiBrazilBernardo Dominic UNQUALIFIED
James ButtRussiaXuxue Feng NEGOTIATION
Arvin AlbaresGermanyAsiya Javayant RENEWAL
Aruna FigeroaCanadaElwin Sharvill NEGOTIATION
Kadeem FlosiAustraliaIvan Magalhaes UNQUALIFIED
Johnson SergiJapanAmy Elsner RENEWAL
Jones VocelkaJapanAnna Fali RENEWAL
Kadeem FlosiItalyOnyama Limba RENEWAL
Maisha RulapaughItalyBernardo Dominic NEW
Octavia MaletRussiaStephen Shaw QUALIFIED
Jones VocelkaArgentinaStephen Shaw PROPOSAL
Ivar PaprockiAustraliaAnna Fali RENEWAL
Francesco ShinkoAustraliaAsiya Javayant NEGOTIATION
Faith GillianFranceAmy Elsner RENEWAL
Maria MarrierGermanyAnna Fali NEW
Darci PoquetteRussiaAsiya Javayant NEGOTIATION
Wickens NestleUnited KingdomIvan Magalhaes NEW
Aika InouyeJapanStephen Shaw PROPOSAL
Juan WieserGermanyIvan Magalhaes UNQUALIFIED
Emily WhobreyItalyStephen Shaw RENEWAL
Aika InouyeSpainIoni Bowcher PROPOSAL
Emily WhobreyItalyBernardo Dominic NEW
Ricardo GauchoJapanAmy Elsner PROPOSAL
Jeanfrancois VenereIndiaStephen Shaw NEW
Wickens NestleAustraliaBernardo Dominic NEW
Salvatore StockhamRussiaStephen Shaw NEW
Aditya KuskoSpainElwin Sharvill QUALIFIED
Francesco ShinkoRussiaStephen Shaw UNQUALIFIED
Jones VocelkaGermanyStephen Shaw NEW
Maria MarrierBrazilIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyOnyama Limba RENEWAL
Octavia MaletSpainXuxue Feng RENEWAL
Costa DilliardIndiaXuxue Feng QUALIFIED
Sinclair WaycottUnited KingdomAnna Fali NEW
Sinclair WaycottItalyAnna Fali PROPOSAL
Frozen Columns
Name
Juan Wieser
Tony Foller
Faith Gillian
Antonio Caudy
Johnson Sergi
Smith Glick
Leja Caldarera
Arvin Albares
Misaki Royster
Aditya Kusko
Murillo Malet
Tony Foller
Mayumi Kolmetz
Johnson Sergi
David Darakjy
Maria Marrier
Jennifer Amigon
Jones Vocelka
Antonio Caudy
Murillo Malet
Stacey Maclead
Morrow Ruta
Cody Saylors
Leja Caldarera
Jefferson Schemmer
Aruna Figeroa
Alejandro Perin
Arvin Albares
Claire Tollner
Antonio Caudy
Misaki Royster
Jennifer Amigon
Johnson Sergi
Deepesh Chui
Emily Whobrey
Darci Poquette
Costa Dilliard
Faith Gillian
Leon Oldroyd
David Darakjy
Leja Caldarera
Darci Poquette
Jennifer Amigon
Octavia Malet
Jennifer Amigon
Greenwood Bolognia
Wickens Nestle
Rodrigues Campain
Kaitlin Ostrosky
Stacey Maclead
IdCountryDate
1000Spain2024-08-24
1001Japan2024-08-19
1002Brazil2024-08-27
1003Japan2024-09-07
1004Japan2024-08-23
1005Japan2024-08-25
1006Spain2024-08-22
1007Germany2024-09-02
1008United Kingdom2024-08-17
1009France2024-08-30
1010Japan2024-08-25
1011India2024-08-20
1012Canada2024-09-08
1013Russia2024-09-12
1014Argentina2024-08-31
1015Spain2024-08-28
1016Argentina2024-08-26
1017Brazil2024-09-02
1018Canada2024-09-15
1019Italy2024-09-13
1020Brazil2024-08-24
1021Italy2024-09-04
1022Brazil2024-09-14
1023France2024-09-11
1024India2024-09-07
1025Italy2024-08-31
1026France2024-09-02
1027United Kingdom2024-08-27
1028Italy2024-08-24
1029Brazil2024-09-12
1030India2024-08-22
1031Spain2024-08-22
1032India2024-08-26
1033Australia2024-09-10
1034Italy2024-08-21
1035India2024-09-13
1036Italy2024-08-17
1037Italy2024-09-11
1038Russia2024-09-06
1039Russia2024-08-22
1040Australia2024-08-23
1041Argentina2024-09-02
1042Germany2024-09-12
1043Germany2024-09-08
1044Canada2024-09-14
1045France2024-09-06
1046France2024-09-03
1047Canada2024-08-31
1048Canada2024-08-25
1049India2024-09-02

On-Demand Data

NameIdCountryDate
Deepesh Chui1000India2024-09-05
Jefferson Schemmer1001Italy2024-09-11
Izzy Garufi1002Australia2024-09-01
Salvatore Stockham1003Germany2024-09-13
Aditya Kusko1004Germany2024-09-07
Tony Foller1005Argentina2024-08-20
Darci Poquette1006Australia2024-08-27
Costa Dilliard1007United Kingdom2024-08-25
Aika Inouye1008United Kingdom2024-08-28
Stacey Maclead1009Brazil2024-08-30
Johnson Sergi1010Japan2024-08-19
Salvatore Stockham1011United Kingdom2024-09-10
Arvin Albares1012France2024-08-31
Julie Stenseth1013Japan2024-08-26
Smith Glick1014Germany2024-08-27
Jennifer Amigon1015India2024-09-04
Johnson Sergi1016Japan2024-08-28
Francesco Shinko1017Argentina2024-08-18
Kadeem Flosi1018Argentina2024-09-06
Faith Gillian1019United Kingdom2024-09-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiSpainOnyama Limba NEW
Alejandro PerinCanadaBernardo Dominic PROPOSAL
Aruna FigeroaUnited KingdomStephen Shaw NEW
Mujtaba NickaRussiaAsiya Javayant PROPOSAL
Greenwood BologniaAustraliaOnyama Limba PROPOSAL
Johnson SergiAustraliaBernardo Dominic NEW
Juan WieserBrazilElwin Sharvill QUALIFIED
Kadeem FlosiArgentinaXuxue Feng UNQUALIFIED
Jennifer AmigonBrazilBernardo Dominic NEGOTIATION
Johnson SergiJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraGermanyOnyama Limba QUALIFIED
David DarakjyGermanyAmy Elsner NEW
Smith GlickArgentinaElwin Sharvill QUALIFIED
Emily WhobreyBrazilOnyama Limba PROPOSAL
Smith GlickGermanyAnna Fali NEGOTIATION
Ricardo GauchoArgentinaElwin Sharvill UNQUALIFIED
Izzy GarufiBrazilBernardo Dominic NEGOTIATION
Costa DilliardBrazilStephen Shaw NEW
Maisha RulapaughFranceIvan Magalhaes PROPOSAL
Ivar PaprockiIndiaAmy Elsner NEGOTIATION
Misaki RoysterIndiaIvan Magalhaes NEW
David DarakjyBrazilElwin Sharvill PROPOSAL
Aditya KuskoRussiaXuxue Feng NEW
Arvin AlbaresItalyBernardo Dominic QUALIFIED
Maisha RulapaughAustraliaAsiya Javayant RENEWAL
Ricardo GauchoItalyStephen Shaw UNQUALIFIED
Clifford RimBrazilBernardo Dominic NEW
Adams MorascaSpainStephen Shaw QUALIFIED
Jefferson SchemmerGermanyElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaIvan Magalhaes PROPOSAL
Morrow RutaArgentinaElwin Sharvill PROPOSAL
Misaki RoysterJapanAnna Fali PROPOSAL
Murillo MaletJapanIvan Magalhaes UNQUALIFIED
Nicolas IturbideIndiaBernardo Dominic NEW
Isabel BowleyIndiaStephen Shaw RENEWAL
Jones VocelkaGermanyStephen Shaw NEW
Murillo MaletArgentinaElwin Sharvill QUALIFIED
Greenwood BologniaIndiaIvan Magalhaes QUALIFIED
Rodrigues CampainAustraliaBernardo Dominic UNQUALIFIED
Nicolas IturbideCanadaIvan Magalhaes PROPOSAL

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