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
Ricardo GauchoGermanyAmy Elsner RENEWAL
Darci PoquetteFranceOnyama Limba NEGOTIATION
Faith GillianFranceIoni Bowcher RENEWAL
Emily WhobreySpainElwin Sharvill NEW
Tony FollerIndiaBernardo Dominic NEGOTIATION
Aika InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Aditya KuskoCanadaElwin Sharvill PROPOSAL
Juan WieserRussiaBernardo Dominic UNQUALIFIED
Juan WieserArgentinaElwin Sharvill UNQUALIFIED
Smith GlickBrazilXuxue Feng QUALIFIED
Juan WieserUnited KingdomStephen Shaw UNQUALIFIED
Maria MarrierRussiaBernardo Dominic UNQUALIFIED
Ricardo GauchoJapanBernardo Dominic UNQUALIFIED
Nicolas IturbideGermanyIvan Magalhaes QUALIFIED
Mayumi KolmetzBrazilIoni Bowcher RENEWAL
James ButtRussiaIoni Bowcher QUALIFIED
Isabel BowleyCanadaIvan Magalhaes PROPOSAL
Clifford RimAustraliaIoni Bowcher UNQUALIFIED
Morrow RutaFranceOnyama Limba UNQUALIFIED
Adams MorascaBrazilElwin Sharvill RENEWAL
Aika InouyeCanadaIoni Bowcher NEW
Morrow RutaJapanAsiya Javayant RENEWAL
Ivar PaprockiRussiaAnna Fali RENEWAL
Claire TollnerSpainAmy Elsner RENEWAL
Aika InouyeRussiaXuxue Feng RENEWAL
Aruna FigeroaRussiaAsiya Javayant NEGOTIATION
Munro FerenczSpainAmy Elsner UNQUALIFIED
Costa DilliardIndiaAmy Elsner RENEWAL
Julie StensethCanadaBernardo Dominic RENEWAL
Julie StensethItalyStephen Shaw UNQUALIFIED
Maria MarrierFranceAnna Fali UNQUALIFIED
Johnson SergiAustraliaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyArgentinaAnna Fali QUALIFIED
Jones VocelkaRussiaAnna Fali NEW
Sinclair WaycottFranceAsiya Javayant NEW
Costa DilliardRussiaBernardo Dominic RENEWAL
Ricardo GauchoFranceStephen Shaw QUALIFIED
Alejandro PerinIndiaXuxue Feng QUALIFIED
Izzy GarufiIndiaAnna Fali QUALIFIED
Maisha RulapaughArgentinaElwin Sharvill PROPOSAL
Morrow RutaBrazilStephen Shaw NEW
Ashley DoeRussiaAnna Fali UNQUALIFIED
Clifford RimFranceOnyama Limba PROPOSAL
Alejandro PerinArgentinaXuxue Feng PROPOSAL
Smith GlickBrazilOnyama Limba PROPOSAL
Mayumi KolmetzSpainOnyama Limba UNQUALIFIED
Maria MarrierUnited KingdomElwin Sharvill PROPOSAL
Costa DilliardGermanyAsiya Javayant PROPOSAL
Aruna FigeroaRussiaBernardo Dominic NEW
Jones VocelkaFranceBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
David DarakjyAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereItalyOnyama Limba NEW
Jones VocelkaFranceIvan Magalhaes NEW
Murillo MaletUnited KingdomAmy Elsner NEW
Jefferson SchemmerJapanIvan Magalhaes QUALIFIED
Salvatore StockhamUnited KingdomStephen Shaw NEGOTIATION
Kaitlin OstroskyItalyStephen Shaw UNQUALIFIED
Faith GillianIndiaOnyama Limba QUALIFIED
Francesco ShinkoJapanBernardo Dominic NEW
Aruna FigeroaSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraCanada2026-03-31Feltz Printing Service NEGOTIATION67Amy Elsner
1001Alejandro PerinGermany2026-04-03Chemel, James L Cpa UNQUALIFIED69Onyama Limba
1002Kaitlin OstroskyIndia2026-04-05Rousseaux, Michael Esq QUALIFIED65Ivan Magalhaes
1003Clifford RimSpain2026-04-10Rangoni Of Florence UNQUALIFIED76Elwin Sharvill
1004Silvio SlusarskiCanada2026-03-21Rangoni Of Florence QUALIFIED8Elwin Sharvill
1005Antonio CaudyUnited Kingdom2026-04-06King, Christopher A Esq NEGOTIATION99Elwin Sharvill
1006Isabel BowleySpain2026-03-29Benton, John B Jr NEGOTIATION80Anna Fali
1007Ivar PaprockiCanada2026-04-05Commercial Press UNQUALIFIED77Stephen Shaw
1008Leja CaldareraSpain2026-04-08Morlong Associates UNQUALIFIED42Elwin Sharvill
1009Salvatore StockhamCanada2026-03-20Feltz Printing Service PROPOSAL44Bernardo Dominic
1010Silvio SlusarskiSpain2026-03-23Rousseaux, Michael Esq QUALIFIED12Bernardo Dominic
1011Greenwood BologniaSpain2026-04-10Chemel, James L Cpa RENEWAL89Amy Elsner
1012Tony FollerBrazil2026-04-05Feltz Printing Service NEGOTIATION33Amy Elsner
1013Sinclair WaycottItaly2026-03-26Chapman, Ross E Esq PROPOSAL17Amy Elsner
1014Smith GlickFrance2026-04-09Feltz Printing Service RENEWAL15Ivan Magalhaes
1015Jeanfrancois VenereFrance2026-03-30Chemel, James L Cpa QUALIFIED39Anna Fali
1016Antonio CaudyCanada2026-04-18Feiner Bros RENEWAL90Onyama Limba
1017Aditya KuskoCanada2026-04-08Chapman, Ross E Esq UNQUALIFIED16Anna Fali
1018Johnson SergiBrazil2026-04-08Buckley Miller Wright NEW39Ioni Bowcher
1019Isabel BowleyFrance2026-04-10Commercial Press NEW6Asiya Javayant
1020Chavez BriddickArgentina2026-03-20Chanay, Jeffrey A Esq PROPOSAL76Elwin Sharvill
1021Deepesh ChuiGermany2026-03-29Morlong Associates RENEWAL92Asiya Javayant
1022Costa DilliardRussia2026-04-07Morlong Associates NEGOTIATION77Xuxue Feng
1023Kadeem FlosiFrance2026-03-28Dorl, James J Esq NEGOTIATION50Amy Elsner
1024Salvatore StockhamGermany2026-04-06Printing Dimensions NEW28Anna Fali
1025Arvin AlbaresAustralia2026-03-20Commercial Press UNQUALIFIED7Xuxue Feng
1026Nicolas IturbideCanada2026-03-21Chapman, Ross E Esq RENEWAL17Xuxue Feng
1027Isabel BowleyRussia2026-03-27Chemel, James L Cpa NEGOTIATION58Ioni Bowcher
1028Francesco ShinkoGermany2026-03-21Benton, John B Jr NEGOTIATION13Anna Fali
1029Costa DilliardAustralia2026-03-24King, Christopher A Esq QUALIFIED22Elwin Sharvill
1030Murillo MaletUnited Kingdom2026-04-14Buckley Miller Wright QUALIFIED51Ioni Bowcher
1031Stacey MacleadIndia2026-04-10King, Christopher A Esq UNQUALIFIED83Stephen Shaw
1032Jones VocelkaJapan2026-04-16Feiner Bros RENEWAL60Asiya Javayant
1033Greenwood BologniaIndia2026-04-01Chapman, Ross E Esq UNQUALIFIED69Amy Elsner
1034Julie StensethCanada2026-04-15King, Christopher A Esq PROPOSAL24Stephen Shaw
1035Octavia MaletCanada2026-03-27Feltz Printing Service RENEWAL83Anna Fali
1036Juan WieserFrance2026-03-20Feiner Bros NEW91Anna Fali
1037Silvio SlusarskiFrance2026-03-24Rousseaux, Michael Esq QUALIFIED50Ivan Magalhaes
1038Octavia MaletItaly2026-03-25Commercial Press QUALIFIED84Stephen Shaw
1039Julie StensethIndia2026-03-25Chapman, Ross E Esq UNQUALIFIED94Stephen Shaw
1040Alejandro PerinAustralia2026-04-16Benton, John B Jr RENEWAL85Ioni Bowcher
1041Leon OldroydSpain2026-04-11Truhlar And Truhlar Attys PROPOSAL66Anna Fali
1042Sinclair WaycottIndia2026-04-05Dorl, James J Esq QUALIFIED77Anna Fali
1043Adams MorascaArgentina2026-04-06Commercial Press NEW63Amy Elsner
1044Rodrigues CampainUnited Kingdom2026-04-14Feiner Bros UNQUALIFIED29Xuxue Feng
1045Izzy GarufiAustralia2026-03-23Commercial Press RENEWAL84Ioni Bowcher
1046Rodrigues CampainItaly2026-04-07Chanay, Jeffrey A Esq QUALIFIED14Ivan Magalhaes
1047Juan WieserRussia2026-03-29Morlong Associates NEGOTIATION14Elwin Sharvill
1048Julie StensethGermany2026-04-11Feiner Bros NEW60Bernardo Dominic
1049Mujtaba NickaRussia2026-04-06Truhlar And Truhlar Attys UNQUALIFIED64Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinIndiaIvan Magalhaes RENEWAL
James ButtItalyAsiya Javayant PROPOSAL
Emily WhobreyAustraliaAsiya Javayant NEW
Claire TollnerCanadaIoni Bowcher QUALIFIED
Aditya KuskoAustraliaStephen Shaw PROPOSAL
Silvio SlusarskiCanadaAsiya Javayant NEW
Johnson SergiItalyAnna Fali PROPOSAL
Claire TollnerGermanyAnna Fali RENEWAL
Mujtaba NickaIndiaAsiya Javayant PROPOSAL
Tony FollerRussiaXuxue Feng QUALIFIED
Aika InouyeCanadaBernardo Dominic QUALIFIED
Ivar PaprockiItalyBernardo Dominic RENEWAL
Emily WhobreyJapanAnna Fali NEW
Juan WieserArgentinaOnyama Limba NEGOTIATION
Faith GillianFranceElwin Sharvill RENEWAL
Emily WhobreyItalyIvan Magalhaes NEW
Munro FerenczRussiaElwin Sharvill QUALIFIED
Jennifer AmigonGermanyStephen Shaw NEGOTIATION
Ashley DoeBrazilElwin Sharvill NEGOTIATION
Leon OldroydRussiaIvan Magalhaes PROPOSAL
Misaki RoysterJapanAsiya Javayant NEGOTIATION
Isabel BowleyGermanyAmy Elsner UNQUALIFIED
Ivar PaprockiCanadaOnyama Limba NEGOTIATION
Greenwood BologniaBrazilElwin Sharvill NEGOTIATION
Munro FerenczCanadaStephen Shaw PROPOSAL
David DarakjyIndiaStephen Shaw PROPOSAL
Leja CaldareraAustraliaOnyama Limba QUALIFIED
Sinclair WaycottJapanIvan Magalhaes PROPOSAL
Kaitlin OstroskyJapanAsiya Javayant NEGOTIATION
Nicolas IturbideJapanAnna Fali NEGOTIATION
Maria MarrierSpainOnyama Limba NEGOTIATION
Salvatore StockhamJapanAnna Fali PROPOSAL
Morrow RutaCanadaAsiya Javayant RENEWAL
Costa DilliardCanadaAmy Elsner RENEWAL
James ButtRussiaAsiya Javayant PROPOSAL
Mujtaba NickaCanadaAsiya Javayant RENEWAL
Munro FerenczIndiaBernardo Dominic NEW
Jennifer AmigonItalyStephen Shaw NEW
David DarakjyGermanyElwin Sharvill PROPOSAL
Maisha RulapaughArgentinaBernardo Dominic NEGOTIATION
Julie StensethCanadaXuxue Feng QUALIFIED
Morrow RutaArgentinaXuxue Feng NEW
Rodrigues CampainArgentinaAsiya Javayant RENEWAL
Costa DilliardSpainIoni Bowcher NEW
Leon OldroydSpainElwin Sharvill RENEWAL
Deepesh ChuiJapanElwin Sharvill NEW
Morrow RutaSpainBernardo Dominic NEW
Stacey MacleadGermanyBernardo Dominic RENEWAL
Ivar PaprockiAustraliaAnna Fali QUALIFIED
Morrow RutaItalyIvan Magalhaes RENEWAL
Frozen Columns
Name
Greenwood Bolognia
Claire Tollner
Silvio Slusarski
Johnson Sergi
Jefferson Schemmer
Jefferson Schemmer
Aditya Kusko
Smith Glick
Deepesh Chui
Misaki Royster
Chavez Briddick
Deepesh Chui
Misaki Royster
Leon Oldroyd
James Butt
Clifford Rim
Stacey Maclead
Stacey Maclead
Aika Inouye
Claire Tollner
Smith Glick
Kadeem Flosi
Smith Glick
Alejandro Perin
Alejandro Perin
Juan Wieser
Octavia Malet
Faith Gillian
Julie Stenseth
Kadeem Flosi
Maisha Rulapaugh
Isabel Bowley
Johnson Sergi
Silvio Slusarski
Faith Gillian
Izzy Garufi
James Butt
Jennifer Amigon
Munro Ferencz
Nicolas Iturbide
Smith Glick
Ashley Doe
Silvio Slusarski
Adams Morasca
Ashley Doe
Jefferson Schemmer
Rodrigues Campain
Greenwood Bolognia
Greenwood Bolognia
Costa Dilliard
IdCountryDate
1000Canada2026-04-06
1001Russia2026-03-26
1002Canada2026-04-13
1003United Kingdom2026-04-02
1004India2026-04-05
1005France2026-03-30
1006France2026-04-04
1007Spain2026-04-08
1008Argentina2026-03-31
1009India2026-04-09
1010Argentina2026-03-27
1011United Kingdom2026-03-31
1012India2026-03-20
1013India2026-04-17
1014Brazil2026-03-24
1015Spain2026-04-12
1016Argentina2026-04-10
1017Argentina2026-03-21
1018Italy2026-03-25
1019Russia2026-04-09
1020Russia2026-04-08
1021Italy2026-04-14
1022Australia2026-03-20
1023Italy2026-04-13
1024Argentina2026-04-06
1025Argentina2026-03-27
1026France2026-04-08
1027Russia2026-04-01
1028Australia2026-04-11
1029Brazil2026-03-29
1030Italy2026-04-03
1031Spain2026-03-26
1032Russia2026-03-31
1033Japan2026-04-05
1034Italy2026-04-04
1035Spain2026-03-27
1036Argentina2026-04-03
1037United Kingdom2026-03-31
1038Brazil2026-04-07
1039Russia2026-03-23
1040France2026-04-06
1041Italy2026-04-04
1042Japan2026-04-12
1043Canada2026-04-01
1044India2026-03-29
1045Brazil2026-03-27
1046France2026-04-11
1047Russia2026-04-11
1048Brazil2026-03-23
1049Spain2026-04-13

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Canada2026-03-27
Jefferson Schemmer1001Spain2026-03-30
Aruna Figeroa1002Argentina2026-03-28
Kadeem Flosi1003Italy2026-04-14
Jennifer Amigon1004Brazil2026-03-24
Clifford Rim1005Brazil2026-03-31
Deepesh Chui1006France2026-04-05
James Butt1007United Kingdom2026-03-20
Aika Inouye1008Russia2026-04-08
Julie Stenseth1009Spain2026-04-07
Aruna Figeroa1010Japan2026-04-08
Emily Whobrey1011France2026-04-08
Aika Inouye1012Japan2026-04-12
Salvatore Stockham1013Japan2026-04-07
Jefferson Schemmer1014United Kingdom2026-03-27
Tony Foller1015Argentina2026-04-08
Kadeem Flosi1016Germany2026-04-06
Julie Stenseth1017Argentina2026-03-23
Salvatore Stockham1018Brazil2026-04-06
Octavia Malet1019Brazil2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon OldroydFranceXuxue Feng UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher NEGOTIATION
Munro FerenczRussiaElwin Sharvill QUALIFIED
Claire TollnerAustraliaAnna Fali NEW
Mujtaba NickaBrazilStephen Shaw NEGOTIATION
Jeanfrancois VenereAustraliaAnna Fali UNQUALIFIED
Juan WieserGermanyAsiya Javayant NEGOTIATION
Smith GlickArgentinaStephen Shaw NEW
Faith GillianFranceAmy Elsner PROPOSAL
Jefferson SchemmerAustraliaXuxue Feng NEW
Nicolas IturbideUnited KingdomElwin Sharvill RENEWAL
Claire TollnerAustraliaStephen Shaw QUALIFIED
Faith GillianBrazilAmy Elsner NEW
Darci PoquetteArgentinaAmy Elsner PROPOSAL
Kaitlin OstroskyItalyAnna Fali UNQUALIFIED
Jones VocelkaFranceOnyama Limba NEGOTIATION
Jones VocelkaBrazilIoni Bowcher PROPOSAL
Salvatore StockhamJapanStephen Shaw UNQUALIFIED
Chavez BriddickItalyElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyItalyAnna Fali PROPOSAL
Tony FollerFranceIvan Magalhaes NEW
Arvin AlbaresCanadaBernardo Dominic RENEWAL
Rodrigues CampainUnited KingdomElwin Sharvill PROPOSAL
Faith GillianIndiaXuxue Feng QUALIFIED
Faith GillianCanadaBernardo Dominic NEW
David DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Cody SaylorsAustraliaIoni Bowcher PROPOSAL
Costa DilliardGermanyAmy Elsner RENEWAL
James ButtGermanyIoni Bowcher QUALIFIED
Johnson SergiCanadaXuxue Feng NEGOTIATION
Misaki RoysterArgentinaXuxue Feng PROPOSAL
Mujtaba NickaRussiaAmy Elsner QUALIFIED
Greenwood BologniaRussiaBernardo Dominic NEW
Costa DilliardArgentinaStephen Shaw QUALIFIED
Leja CaldareraFranceIoni Bowcher NEGOTIATION
Octavia MaletItalyOnyama Limba QUALIFIED
Kadeem FlosiFranceAmy Elsner RENEWAL
Aditya KuskoRussiaXuxue Feng NEW
Alejandro PerinGermanyIvan Magalhaes 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>