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
Costa DilliardCanadaXuxue Feng NEW
Salvatore StockhamJapanBernardo Dominic QUALIFIED
Rodrigues CampainIndiaAmy Elsner NEGOTIATION
Octavia MaletUnited KingdomOnyama Limba QUALIFIED
Rodrigues CampainGermanyOnyama Limba PROPOSAL
Chavez BriddickIndiaIvan Magalhaes NEW
Murillo MaletArgentinaAmy Elsner RENEWAL
Munro FerenczSpainStephen Shaw PROPOSAL
Jefferson SchemmerItalyAmy Elsner UNQUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Morrow RutaItalyXuxue Feng PROPOSAL
Aruna FigeroaArgentinaOnyama Limba PROPOSAL
Faith GillianGermanyIvan Magalhaes NEGOTIATION
Mayumi KolmetzItalyElwin Sharvill QUALIFIED
David DarakjyAustraliaIoni Bowcher QUALIFIED
Silvio SlusarskiItalyIoni Bowcher UNQUALIFIED
Murillo MaletSpainStephen Shaw NEGOTIATION
Mayumi KolmetzJapanOnyama Limba NEGOTIATION
Rodrigues CampainIndiaStephen Shaw NEGOTIATION
Kaitlin OstroskyArgentinaIoni Bowcher NEW
Faith GillianFranceAnna Fali QUALIFIED
Antonio CaudyFranceIvan Magalhaes NEW
Octavia MaletRussiaOnyama Limba QUALIFIED
Claire TollnerItalyOnyama Limba UNQUALIFIED
Claire TollnerSpainElwin Sharvill QUALIFIED
Faith GillianArgentinaBernardo Dominic QUALIFIED
Antonio CaudyItalyAsiya Javayant RENEWAL
Smith GlickUnited KingdomElwin Sharvill NEW
Emily WhobreyBrazilIoni Bowcher NEW
Adams MorascaSpainElwin Sharvill PROPOSAL
Jones VocelkaBrazilAmy Elsner RENEWAL
Ricardo GauchoGermanyXuxue Feng PROPOSAL
Maria MarrierSpainIoni Bowcher NEW
Silvio SlusarskiCanadaStephen Shaw UNQUALIFIED
Jennifer AmigonFranceOnyama Limba NEW
Mujtaba NickaJapanAnna Fali NEW
Arvin AlbaresFranceAmy Elsner NEGOTIATION
Ricardo GauchoRussiaStephen Shaw UNQUALIFIED
Murillo MaletCanadaIoni Bowcher QUALIFIED
Mayumi KolmetzItalyIvan Magalhaes UNQUALIFIED
Aditya KuskoSpainAsiya Javayant PROPOSAL
Ashley DoeFranceBernardo Dominic QUALIFIED
Stacey MacleadBrazilBernardo Dominic RENEWAL
Julie StensethUnited KingdomIoni Bowcher RENEWAL
Arvin AlbaresCanadaBernardo Dominic QUALIFIED
Faith GillianSpainAmy Elsner NEW
Kadeem FlosiGermanyStephen Shaw PROPOSAL
Jefferson SchemmerSpainXuxue Feng QUALIFIED
Tony FollerCanadaIvan Magalhaes NEGOTIATION
Octavia MaletFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonAustraliaXuxue Feng QUALIFIED
Jones VocelkaCanadaAnna Fali NEGOTIATION
Jeanfrancois VenereRussiaXuxue Feng NEW
Sinclair WaycottSpainAsiya Javayant NEW
Costa DilliardSpainAnna Fali QUALIFIED
Aruna FigeroaRussiaXuxue Feng UNQUALIFIED
Smith GlickJapanStephen Shaw RENEWAL
Izzy GarufiAustraliaOnyama Limba RENEWAL
Aruna FigeroaCanadaAmy Elsner UNQUALIFIED
Mujtaba NickaBrazilStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaSpain2026-05-25Chanay, Jeffrey A Esq NEW26Amy Elsner
1001Adams MorascaBrazil2026-06-10Chanay, Jeffrey A Esq QUALIFIED81Onyama Limba
1002Jefferson SchemmerBrazil2026-06-15Dorl, James J Esq NEW61Xuxue Feng
1003Adams MorascaAustralia2026-06-09Chemel, James L Cpa QUALIFIED28Ivan Magalhaes
1004Maria MarrierSpain2026-05-28King, Christopher A Esq UNQUALIFIED77Amy Elsner
1005Ashley DoeBrazil2026-06-18Morlong Associates NEGOTIATION96Anna Fali
1006Jennifer AmigonGermany2026-05-24Printing Dimensions NEW91Amy Elsner
1007Emily WhobreyUnited Kingdom2026-05-31Benton, John B Jr UNQUALIFIED18Amy Elsner
1008Arvin AlbaresIndia2026-06-02Feiner Bros QUALIFIED60Bernardo Dominic
1009Claire TollnerSpain2026-06-03Chapman, Ross E Esq NEW54Onyama Limba
1010Tony FollerIndia2026-05-29Feiner Bros NEGOTIATION99Onyama Limba
1011Sinclair WaycottJapan2026-06-02Rangoni Of Florence NEW88Xuxue Feng
1012Mujtaba NickaSpain2026-06-02Rousseaux, Michael Esq NEGOTIATION23Ioni Bowcher
1013James ButtItaly2026-05-27Rangoni Of Florence RENEWAL62Elwin Sharvill
1014Greenwood BologniaIndia2026-06-18Dorl, James J Esq NEGOTIATION15Anna Fali
1015Chavez BriddickAustralia2026-05-28Feltz Printing Service PROPOSAL45Ioni Bowcher
1016David DarakjySpain2026-06-02Chapman, Ross E Esq PROPOSAL68Asiya Javayant
1017Murillo MaletFrance2026-05-23Chanay, Jeffrey A Esq PROPOSAL54Asiya Javayant
1018James ButtJapan2026-06-15Commercial Press QUALIFIED89Xuxue Feng
1019Rodrigues CampainFrance2026-06-03Chapman, Ross E Esq NEGOTIATION65Amy Elsner
1020Julie StensethFrance2026-06-20Dorl, James J Esq NEGOTIATION78Elwin Sharvill
1021Munro FerenczFrance2026-06-19Feiner Bros NEGOTIATION97Bernardo Dominic
1022Jennifer AmigonCanada2026-05-26Morlong Associates RENEWAL78Ioni Bowcher
1023Isabel BowleyFrance2026-06-20Truhlar And Truhlar Attys NEGOTIATION91Amy Elsner
1024Kaitlin OstroskySpain2026-06-02Dorl, James J Esq NEGOTIATION96Bernardo Dominic
1025Kaitlin OstroskyArgentina2026-06-16King, Christopher A Esq UNQUALIFIED4Anna Fali
1026Darci PoquetteFrance2026-06-09Feltz Printing Service NEW56Xuxue Feng
1027Wickens NestleItaly2026-06-03Chapman, Ross E Esq QUALIFIED64Anna Fali
1028Nicolas IturbideSpain2026-05-28Buckley Miller Wright QUALIFIED27Asiya Javayant
1029Johnson SergiJapan2026-06-08Rangoni Of Florence QUALIFIED55Bernardo Dominic
1030Ashley DoeCanada2026-06-15Feltz Printing Service UNQUALIFIED11Anna Fali
1031Deepesh ChuiFrance2026-06-13Chapman, Ross E Esq NEW22Ioni Bowcher
1032Adams MorascaItaly2026-05-24Chemel, James L Cpa NEGOTIATION11Onyama Limba
1033Cody SaylorsFrance2026-05-27Rousseaux, Michael Esq RENEWAL71Asiya Javayant
1034Mayumi KolmetzFrance2026-05-27Dorl, James J Esq NEGOTIATION7Ioni Bowcher
1035Ricardo GauchoJapan2026-05-25Morlong Associates PROPOSAL51Amy Elsner
1036Arvin AlbaresFrance2026-06-10Chemel, James L Cpa NEW15Ioni Bowcher
1037Adams MorascaBrazil2026-06-05Morlong Associates QUALIFIED20Onyama Limba
1038Isabel BowleyAustralia2026-05-23Chapman, Ross E Esq NEGOTIATION28Ioni Bowcher
1039Darci PoquetteArgentina2026-05-28Commercial Press PROPOSAL98Elwin Sharvill
1040Arvin AlbaresItaly2026-06-06Commercial Press PROPOSAL48Ioni Bowcher
1041Claire TollnerJapan2026-05-31Buckley Miller Wright QUALIFIED16Anna Fali
1042Salvatore StockhamFrance2026-05-25Commercial Press PROPOSAL97Onyama Limba
1043Juan WieserArgentina2026-05-25Commercial Press QUALIFIED15Amy Elsner
1044Costa DilliardBrazil2026-05-27Morlong Associates RENEWAL67Ioni Bowcher
1045Isabel BowleyBrazil2026-06-05Feltz Printing Service PROPOSAL87Onyama Limba
1046Salvatore StockhamFrance2026-06-19Buckley Miller Wright NEW35Onyama Limba
1047Ashley DoeAustralia2026-06-06Feiner Bros NEGOTIATION13Anna Fali
1048Emily WhobreyJapan2026-05-31Commercial Press NEGOTIATION26Anna Fali
1049David DarakjyArgentina2026-05-30Chanay, Jeffrey A Esq NEGOTIATION73Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadJapanIvan Magalhaes QUALIFIED
Emily WhobreyArgentinaAnna Fali PROPOSAL
Octavia MaletArgentinaStephen Shaw UNQUALIFIED
Aika InouyeUnited KingdomIoni Bowcher NEW
Octavia MaletCanadaAsiya Javayant RENEWAL
Kaitlin OstroskyGermanyIoni Bowcher NEW
David DarakjyBrazilAnna Fali UNQUALIFIED
Sinclair WaycottGermanyOnyama Limba UNQUALIFIED
Ricardo GauchoArgentinaAsiya Javayant NEGOTIATION
Claire TollnerCanadaElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaStephen Shaw PROPOSAL
Darci PoquetteCanadaBernardo Dominic NEW
Chavez BriddickFranceAmy Elsner RENEWAL
Kaitlin OstroskyFranceBernardo Dominic RENEWAL
Ivar PaprockiAustraliaAnna Fali PROPOSAL
Faith GillianSpainXuxue Feng PROPOSAL
Claire TollnerFranceBernardo Dominic UNQUALIFIED
Ivar PaprockiGermanyAnna Fali RENEWAL
Chavez BriddickIndiaAnna Fali NEW
Silvio SlusarskiFranceIoni Bowcher QUALIFIED
Francesco ShinkoUnited KingdomXuxue Feng QUALIFIED
Sinclair WaycottRussiaIvan Magalhaes UNQUALIFIED
Johnson SergiBrazilAnna Fali QUALIFIED
Misaki RoysterFranceElwin Sharvill NEW
Ashley DoeAustraliaXuxue Feng UNQUALIFIED
Morrow RutaGermanyIvan Magalhaes QUALIFIED
Darci PoquetteRussiaXuxue Feng NEGOTIATION
Jennifer AmigonFranceStephen Shaw RENEWAL
Faith GillianAustraliaAmy Elsner NEW
Jones VocelkaFranceAmy Elsner UNQUALIFIED
Julie StensethSpainXuxue Feng NEW
Adams MorascaRussiaElwin Sharvill NEGOTIATION
James ButtRussiaXuxue Feng QUALIFIED
Deepesh ChuiRussiaAsiya Javayant UNQUALIFIED
James ButtBrazilElwin Sharvill QUALIFIED
Wickens NestleRussiaBernardo Dominic PROPOSAL
Kadeem FlosiJapanIvan Magalhaes NEGOTIATION
David DarakjyArgentinaElwin Sharvill RENEWAL
Kadeem FlosiBrazilIoni Bowcher NEW
Juan WieserCanadaAnna Fali NEGOTIATION
Sinclair WaycottFranceBernardo Dominic QUALIFIED
Jennifer AmigonGermanyXuxue Feng NEW
Salvatore StockhamBrazilAsiya Javayant NEW
Aruna FigeroaAustraliaOnyama Limba NEGOTIATION
Aditya KuskoRussiaIoni Bowcher UNQUALIFIED
James ButtJapanBernardo Dominic QUALIFIED
Leon OldroydFranceAnna Fali NEW
Adams MorascaArgentinaAmy Elsner QUALIFIED
Tony FollerFranceAmy Elsner NEW
Faith GillianAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Juan Wieser
Mujtaba Nicka
Tony Foller
James Butt
Jones Vocelka
James Butt
Mujtaba Nicka
Leja Caldarera
Silvio Slusarski
Wickens Nestle
Jones Vocelka
Antonio Caudy
Rodrigues Campain
Misaki Royster
Jeanfrancois Venere
Claire Tollner
Jefferson Schemmer
Clifford Rim
Morrow Ruta
Maisha Rulapaugh
Johnson Sergi
Arvin Albares
Greenwood Bolognia
Julie Stenseth
Francesco Shinko
Mujtaba Nicka
Stacey Maclead
James Butt
Ivar Paprocki
Sinclair Waycott
Isabel Bowley
Stacey Maclead
James Butt
Isabel Bowley
Julie Stenseth
Claire Tollner
Kadeem Flosi
Jennifer Amigon
Maisha Rulapaugh
Cody Saylors
Adams Morasca
Arvin Albares
Adams Morasca
Julie Stenseth
Maisha Rulapaugh
Silvio Slusarski
Faith Gillian
Antonio Caudy
Darci Poquette
Aruna Figeroa
IdCountryDate
1000United Kingdom2026-05-25
1001Germany2026-06-08
1002Germany2026-06-03
1003Russia2026-06-12
1004Italy2026-06-05
1005France2026-06-01
1006Russia2026-06-07
1007India2026-05-30
1008France2026-05-24
1009Australia2026-06-01
1010Brazil2026-06-10
1011Argentina2026-06-15
1012Germany2026-05-23
1013Canada2026-05-29
1014Canada2026-06-16
1015United Kingdom2026-06-19
1016Australia2026-05-23
1017France2026-06-08
1018Argentina2026-06-12
1019France2026-06-04
1020Argentina2026-05-30
1021Canada2026-05-23
1022Japan2026-06-04
1023Canada2026-06-17
1024Germany2026-05-29
1025Canada2026-06-10
1026Australia2026-06-02
1027Italy2026-06-02
1028Spain2026-06-04
1029Italy2026-06-19
1030Spain2026-06-17
1031Canada2026-05-26
1032United Kingdom2026-05-26
1033United Kingdom2026-06-07
1034Japan2026-06-14
1035Australia2026-05-30
1036Brazil2026-05-29
1037Italy2026-06-09
1038Canada2026-06-09
1039Germany2026-05-24
1040Germany2026-05-23
1041India2026-06-10
1042France2026-06-12
1043Japan2026-06-10
1044Italy2026-05-31
1045Russia2026-05-23
1046India2026-06-12
1047Argentina2026-06-19
1048Japan2026-05-23
1049Australia2026-05-31

On-Demand Data

NameIdCountryDate
Munro Ferencz1000United Kingdom2026-06-06
Maria Marrier1001Japan2026-05-22
Adams Morasca1002Canada2026-06-13
Izzy Garufi1003Germany2026-06-06
Jefferson Schemmer1004Argentina2026-06-01
Jeanfrancois Venere1005Italy2026-06-15
Salvatore Stockham1006Argentina2026-06-10
Ricardo Gaucho1007Spain2026-05-30
Jefferson Schemmer1008Germany2026-06-07
Greenwood Bolognia1009Canada2026-05-30
Munro Ferencz1010Brazil2026-06-09
Jeanfrancois Venere1011Australia2026-06-08
Adams Morasca1012Spain2026-05-30
Emily Whobrey1013France2026-06-06
James Butt1014Germany2026-06-18
Ivar Paprocki1015Canada2026-06-20
David Darakjy1016United Kingdom2026-06-18
Johnson Sergi1017Brazil2026-06-08
Sinclair Waycott1018Japan2026-06-14
Octavia Malet1019Germany2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeCanadaAnna Fali QUALIFIED
Isabel BowleySpainAmy Elsner QUALIFIED
Ivar PaprockiCanadaBernardo Dominic NEGOTIATION
Nicolas IturbideIndiaElwin Sharvill RENEWAL
Silvio SlusarskiItalyAsiya Javayant NEGOTIATION
Aika InouyeJapanAnna Fali UNQUALIFIED
Salvatore StockhamCanadaXuxue Feng NEGOTIATION
Isabel BowleyCanadaIoni Bowcher UNQUALIFIED
Juan WieserJapanAnna Fali PROPOSAL
Maria MarrierRussiaAsiya Javayant RENEWAL
Aika InouyeFranceOnyama Limba UNQUALIFIED
Wickens NestleAustraliaBernardo Dominic PROPOSAL
Octavia MaletCanadaStephen Shaw UNQUALIFIED
Claire TollnerUnited KingdomAmy Elsner QUALIFIED
Aika InouyeJapanBernardo Dominic NEW
Kadeem FlosiGermanyIoni Bowcher NEW
Silvio SlusarskiJapanAnna Fali QUALIFIED
Mujtaba NickaBrazilElwin Sharvill QUALIFIED
Silvio SlusarskiBrazilXuxue Feng RENEWAL
Munro FerenczArgentinaBernardo Dominic RENEWAL
Silvio SlusarskiIndiaIoni Bowcher UNQUALIFIED
Ricardo GauchoJapanOnyama Limba PROPOSAL
Mujtaba NickaUnited KingdomXuxue Feng QUALIFIED
Emily WhobreySpainAsiya Javayant QUALIFIED
Ashley DoeJapanStephen Shaw PROPOSAL
David DarakjyUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamFranceAnna Fali NEW
Nicolas IturbideJapanIoni Bowcher NEW
Mayumi KolmetzCanadaAnna Fali PROPOSAL
Arvin AlbaresJapanAnna Fali NEGOTIATION
Aruna FigeroaUnited KingdomAnna Fali NEW
Cody SaylorsFranceBernardo Dominic QUALIFIED
Jennifer AmigonGermanyXuxue Feng NEW
Kaitlin OstroskyRussiaAsiya Javayant UNQUALIFIED
Juan WieserSpainXuxue Feng QUALIFIED
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Kaitlin OstroskyArgentinaBernardo Dominic NEGOTIATION
Chavez BriddickUnited KingdomAmy Elsner QUALIFIED
Leja CaldareraRussiaAmy Elsner RENEWAL
Octavia MaletIndiaAsiya Javayant 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>