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
Misaki RoysterJapanAsiya Javayant UNQUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali RENEWAL
Jennifer AmigonGermanyAsiya Javayant QUALIFIED
Octavia MaletGermanyAmy Elsner RENEWAL
David DarakjyAustraliaIoni Bowcher RENEWAL
Wickens NestleArgentinaOnyama Limba UNQUALIFIED
Ivar PaprockiJapanBernardo Dominic NEGOTIATION
Wickens NestleCanadaBernardo Dominic NEGOTIATION
Jeanfrancois VenereJapanAmy Elsner QUALIFIED
Stacey MacleadBrazilStephen Shaw PROPOSAL
Izzy GarufiAustraliaIoni Bowcher PROPOSAL
Ricardo GauchoArgentinaElwin Sharvill NEGOTIATION
Ivar PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Isabel BowleyAustraliaAnna Fali PROPOSAL
Darci PoquetteAustraliaIvan Magalhaes NEGOTIATION
Francesco ShinkoBrazilAnna Fali RENEWAL
Mayumi KolmetzAustraliaIoni Bowcher RENEWAL
Maisha RulapaughFranceAsiya Javayant UNQUALIFIED
Julie StensethSpainIoni Bowcher RENEWAL
Deepesh ChuiArgentinaElwin Sharvill PROPOSAL
Murillo MaletAustraliaAsiya Javayant NEW
Misaki RoysterCanadaXuxue Feng NEGOTIATION
Rodrigues CampainArgentinaIvan Magalhaes UNQUALIFIED
Salvatore StockhamAustraliaOnyama Limba QUALIFIED
Clifford RimJapanIoni Bowcher NEGOTIATION
Jeanfrancois VenereJapanStephen Shaw NEW
Isabel BowleyIndiaElwin Sharvill NEW
Silvio SlusarskiAustraliaIvan Magalhaes QUALIFIED
Faith GillianArgentinaAmy Elsner NEW
Sinclair WaycottRussiaIvan Magalhaes UNQUALIFIED
Tony FollerJapanBernardo Dominic UNQUALIFIED
Tony FollerIndiaElwin Sharvill QUALIFIED
Aika InouyeGermanyIvan Magalhaes QUALIFIED
Leon OldroydIndiaAsiya Javayant NEGOTIATION
Leja CaldareraIndiaXuxue Feng NEW
Maisha RulapaughArgentinaAnna Fali QUALIFIED
Murillo MaletSpainIoni Bowcher NEGOTIATION
Murillo MaletItalyAsiya Javayant PROPOSAL
Nicolas IturbideGermanyElwin Sharvill NEGOTIATION
Alejandro PerinBrazilXuxue Feng QUALIFIED
Smith GlickRussiaElwin Sharvill RENEWAL
Murillo MaletSpainIvan Magalhaes NEGOTIATION
Kaitlin OstroskyJapanOnyama Limba NEGOTIATION
Isabel BowleyItalyAnna Fali PROPOSAL
Adams MorascaGermanyAnna Fali QUALIFIED
Misaki RoysterArgentinaAnna Fali QUALIFIED
Munro FerenczSpainIoni Bowcher UNQUALIFIED
Jennifer AmigonIndiaBernardo Dominic NEGOTIATION
David DarakjySpainIoni Bowcher UNQUALIFIED
Tony FollerBrazilIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardAustraliaAmy Elsner NEGOTIATION
Johnson SergiIndiaIvan Magalhaes QUALIFIED
Cody SaylorsCanadaBernardo Dominic RENEWAL
Aika InouyeItalyElwin Sharvill UNQUALIFIED
Arvin AlbaresIndiaIvan Magalhaes UNQUALIFIED
Munro FerenczBrazilIoni Bowcher QUALIFIED
Wickens NestleFranceStephen Shaw PROPOSAL
Isabel BowleyRussiaAmy Elsner NEW
Kaitlin OstroskyBrazilIvan Magalhaes QUALIFIED
Kaitlin OstroskyCanadaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeAustralia2026-04-10Dorl, James J Esq NEW9Onyama Limba
1001Maria MarrierSpain2026-04-21Chemel, James L Cpa NEW18Stephen Shaw
1002James ButtAustralia2026-04-25Feiner Bros NEW58Onyama Limba
1003Izzy GarufiGermany2026-04-05Chanay, Jeffrey A Esq PROPOSAL73Anna Fali
1004Ivar PaprockiSpain2026-04-17Chanay, Jeffrey A Esq RENEWAL41Elwin Sharvill
1005Darci PoquetteUnited Kingdom2026-04-21Benton, John B Jr NEGOTIATION44Onyama Limba
1006Ashley DoeFrance2026-04-10Feiner Bros PROPOSAL20Elwin Sharvill
1007Octavia MaletBrazil2026-03-31Morlong Associates PROPOSAL85Elwin Sharvill
1008Silvio SlusarskiFrance2026-04-23Benton, John B Jr NEW23Asiya Javayant
1009Stacey MacleadArgentina2026-04-22Morlong Associates RENEWAL83Elwin Sharvill
1010Sinclair WaycottIndia2026-04-09Chemel, James L Cpa PROPOSAL48Bernardo Dominic
1011Octavia MaletRussia2026-04-09Buckley Miller Wright UNQUALIFIED97Anna Fali
1012Kaitlin OstroskyCanada2026-04-19Truhlar And Truhlar Attys UNQUALIFIED75Amy Elsner
1013Tony FollerCanada2026-03-31King, Christopher A Esq UNQUALIFIED96Elwin Sharvill
1014Ashley DoeGermany2026-04-03Benton, John B Jr RENEWAL61Ivan Magalhaes
1015Stacey MacleadArgentina2026-04-09Buckley Miller Wright RENEWAL71Asiya Javayant
1016Antonio CaudyAustralia2026-04-28Rangoni Of Florence PROPOSAL8Bernardo Dominic
1017Jefferson SchemmerRussia2026-04-20Printing Dimensions QUALIFIED98Anna Fali
1018Darci PoquetteIndia2026-04-03Chapman, Ross E Esq QUALIFIED31Ivan Magalhaes
1019Jones VocelkaSpain2026-04-28Feiner Bros QUALIFIED53Anna Fali
1020Smith GlickCanada2026-04-11Printing Dimensions PROPOSAL61Onyama Limba
1021Arvin AlbaresFrance2026-04-24Printing Dimensions NEW30Stephen Shaw
1022Arvin AlbaresAustralia2026-04-22Dorl, James J Esq RENEWAL88Ioni Bowcher
1023Murillo MaletRussia2026-04-09Feiner Bros NEW73Ioni Bowcher
1024Arvin AlbaresArgentina2026-04-27Benton, John B Jr NEW3Onyama Limba
1025Mayumi KolmetzBrazil2026-04-10Commercial Press PROPOSAL30Ivan Magalhaes
1026Maisha RulapaughBrazil2026-04-02Chemel, James L Cpa QUALIFIED21Onyama Limba
1027Leja CaldareraJapan2026-04-13Truhlar And Truhlar Attys PROPOSAL90Anna Fali
1028Izzy GarufiItaly2026-04-06Rangoni Of Florence RENEWAL39Xuxue Feng
1029Aditya KuskoJapan2026-04-23Feltz Printing Service UNQUALIFIED72Bernardo Dominic
1030James ButtGermany2026-03-30Dorl, James J Esq QUALIFIED62Amy Elsner
1031Ivar PaprockiSpain2026-04-15Benton, John B Jr UNQUALIFIED15Xuxue Feng
1032Claire TollnerIndia2026-04-25King, Christopher A Esq NEGOTIATION24Anna Fali
1033Jennifer AmigonGermany2026-04-07Chemel, James L Cpa QUALIFIED44Asiya Javayant
1034Stacey MacleadBrazil2026-04-20Printing Dimensions PROPOSAL46Amy Elsner
1035Aditya KuskoItaly2026-04-26Benton, John B Jr RENEWAL21Xuxue Feng
1036Smith GlickAustralia2026-04-03Feltz Printing Service QUALIFIED12Ioni Bowcher
1037Ashley DoeItaly2026-04-15Feltz Printing Service NEW63Onyama Limba
1038Jeanfrancois VenereAustralia2026-04-16Chemel, James L Cpa QUALIFIED94Anna Fali
1039Stacey MacleadGermany2026-04-19Rangoni Of Florence NEGOTIATION27Elwin Sharvill
1040James ButtSpain2026-04-15Rangoni Of Florence UNQUALIFIED34Anna Fali
1041Aika InouyeItaly2026-03-31Chapman, Ross E Esq NEW47Onyama Limba
1042Ivar PaprockiRussia2026-03-30Morlong Associates NEGOTIATION68Amy Elsner
1043David DarakjyBrazil2026-04-03Rousseaux, Michael Esq QUALIFIED0Amy Elsner
1044Ricardo GauchoBrazil2026-04-25Feltz Printing Service NEGOTIATION97Elwin Sharvill
1045Smith GlickJapan2026-04-05Printing Dimensions NEGOTIATION47Bernardo Dominic
1046Kaitlin OstroskyItaly2026-04-28Rousseaux, Michael Esq RENEWAL66Bernardo Dominic
1047Deepesh ChuiRussia2026-04-08Commercial Press RENEWAL29Anna Fali
1048Francesco ShinkoAustralia2026-04-19King, Christopher A Esq RENEWAL39Elwin Sharvill
1049Aika InouyeJapan2026-04-16Buckley Miller Wright NEGOTIATION74Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughItalyIoni Bowcher UNQUALIFIED
Mayumi KolmetzRussiaAsiya Javayant UNQUALIFIED
Aika InouyeItalyAnna Fali NEGOTIATION
Arvin AlbaresJapanOnyama Limba PROPOSAL
Costa DilliardJapanElwin Sharvill UNQUALIFIED
Jones VocelkaSpainBernardo Dominic PROPOSAL
Claire TollnerIndiaStephen Shaw NEW
Chavez BriddickAustraliaAsiya Javayant UNQUALIFIED
Stacey MacleadSpainElwin Sharvill PROPOSAL
Stacey MacleadCanadaAmy Elsner PROPOSAL
Jennifer AmigonCanadaBernardo Dominic RENEWAL
Deepesh ChuiSpainAmy Elsner RENEWAL
Jeanfrancois VenereItalyOnyama Limba UNQUALIFIED
Jennifer AmigonIndiaAsiya Javayant NEGOTIATION
Salvatore StockhamBrazilOnyama Limba PROPOSAL
Silvio SlusarskiIndiaOnyama Limba QUALIFIED
Smith GlickRussiaIoni Bowcher QUALIFIED
Antonio CaudyIndiaAnna Fali RENEWAL
Faith GillianBrazilOnyama Limba QUALIFIED
Isabel BowleyUnited KingdomStephen Shaw NEGOTIATION
Octavia MaletCanadaOnyama Limba NEGOTIATION
Faith GillianCanadaBernardo Dominic UNQUALIFIED
Wickens NestleFranceXuxue Feng QUALIFIED
Adams MorascaGermanyAnna Fali NEW
Maria MarrierRussiaIoni Bowcher PROPOSAL
Alejandro PerinIndiaAmy Elsner NEW
Sinclair WaycottAustraliaAnna Fali UNQUALIFIED
Octavia MaletSpainAmy Elsner NEW
Greenwood BologniaIndiaXuxue Feng RENEWAL
James ButtFranceIvan Magalhaes RENEWAL
Smith GlickCanadaIvan Magalhaes NEGOTIATION
Izzy GarufiJapanXuxue Feng QUALIFIED
Rodrigues CampainItalyXuxue Feng RENEWAL
Kadeem FlosiIndiaIoni Bowcher NEW
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Sinclair WaycottJapanStephen Shaw NEW
Aika InouyeCanadaXuxue Feng QUALIFIED
Mayumi KolmetzJapanIvan Magalhaes NEGOTIATION
Rodrigues CampainAustraliaAsiya Javayant QUALIFIED
Munro FerenczFranceIoni Bowcher PROPOSAL
Greenwood BologniaJapanBernardo Dominic NEW
Chavez BriddickAustraliaAnna Fali PROPOSAL
Faith GillianGermanyElwin Sharvill UNQUALIFIED
Arvin AlbaresJapanAnna Fali PROPOSAL
Arvin AlbaresFranceAmy Elsner NEW
Kadeem FlosiItalyIoni Bowcher NEGOTIATION
Deepesh ChuiRussiaElwin Sharvill QUALIFIED
Ricardo GauchoGermanyAmy Elsner RENEWAL
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Ashley DoeRussiaAnna Fali PROPOSAL
Frozen Columns
Name
Darci Poquette
David Darakjy
Stacey Maclead
Leja Caldarera
Faith Gillian
James Butt
Silvio Slusarski
Claire Tollner
Sinclair Waycott
Clifford Rim
Wickens Nestle
Munro Ferencz
Ashley Doe
Stacey Maclead
Kadeem Flosi
Chavez Briddick
Francesco Shinko
Smith Glick
Aditya Kusko
Salvatore Stockham
Jennifer Amigon
Silvio Slusarski
Leja Caldarera
Clifford Rim
Juan Wieser
Kaitlin Ostrosky
Isabel Bowley
Salvatore Stockham
Alejandro Perin
Jefferson Schemmer
Misaki Royster
Munro Ferencz
Faith Gillian
Antonio Caudy
Maria Marrier
James Butt
Maisha Rulapaugh
Mayumi Kolmetz
Kadeem Flosi
Emily Whobrey
Leja Caldarera
Isabel Bowley
Aika Inouye
Izzy Garufi
Stacey Maclead
Munro Ferencz
Isabel Bowley
Claire Tollner
Isabel Bowley
Tony Foller
IdCountryDate
1000Russia2026-04-23
1001Brazil2026-04-02
1002Argentina2026-03-30
1003Italy2026-03-30
1004Brazil2026-04-12
1005United Kingdom2026-04-12
1006Canada2026-04-07
1007India2026-04-23
1008Russia2026-04-25
1009Australia2026-04-02
1010Argentina2026-04-26
1011France2026-04-06
1012India2026-04-07
1013Italy2026-04-14
1014Japan2026-04-07
1015France2026-04-09
1016France2026-04-12
1017Canada2026-03-30
1018United Kingdom2026-03-31
1019Argentina2026-04-22
1020Brazil2026-04-18
1021Brazil2026-04-14
1022Brazil2026-04-10
1023France2026-04-17
1024United Kingdom2026-04-12
1025Argentina2026-04-24
1026United Kingdom2026-04-09
1027Japan2026-04-13
1028France2026-04-11
1029Germany2026-04-27
1030Brazil2026-04-25
1031France2026-04-28
1032India2026-04-12
1033Argentina2026-04-03
1034Italy2026-04-24
1035Canada2026-04-02
1036Italy2026-04-26
1037Italy2026-04-04
1038Russia2026-04-01
1039Germany2026-04-16
1040Russia2026-04-14
1041United Kingdom2026-04-25
1042Canada2026-03-30
1043Italy2026-04-03
1044Argentina2026-03-31
1045Spain2026-04-17
1046Japan2026-04-20
1047Australia2026-03-30
1048India2026-04-07
1049Japan2026-04-12

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Argentina2026-04-14
Julie Stenseth1001United Kingdom2026-04-09
Wickens Nestle1002France2026-04-26
Kaitlin Ostrosky1003France2026-04-18
Salvatore Stockham1004Italy2026-04-24
Aditya Kusko1005India2026-04-11
Emily Whobrey1006United Kingdom2026-04-07
Tony Foller1007France2026-04-18
Julie Stenseth1008Brazil2026-04-15
Clifford Rim1009Italy2026-04-13
Johnson Sergi1010Brazil2026-04-21
Misaki Royster1011Germany2026-04-04
Leon Oldroyd1012India2026-04-09
James Butt1013Argentina2026-04-07
Claire Tollner1014Canada2026-04-06
Wickens Nestle1015Australia2026-04-03
Misaki Royster1016Italy2026-04-19
Smith Glick1017Spain2026-04-06
James Butt1018Italy2026-04-25
Ashley Doe1019United Kingdom2026-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaGermanyElwin Sharvill NEW
Isabel BowleyArgentinaAnna Fali NEW
Aruna FigeroaRussiaIvan Magalhaes NEW
Costa DilliardRussiaElwin Sharvill UNQUALIFIED
Greenwood BologniaRussiaOnyama Limba RENEWAL
Johnson SergiFranceAmy Elsner NEGOTIATION
Adams MorascaGermanyAmy Elsner NEGOTIATION
Isabel BowleyAustraliaAnna Fali NEW
Munro FerenczGermanyOnyama Limba UNQUALIFIED
Ashley DoeGermanyIoni Bowcher UNQUALIFIED
Mayumi KolmetzItalyStephen Shaw RENEWAL
Tony FollerIndiaXuxue Feng PROPOSAL
Ashley DoeSpainAnna Fali NEGOTIATION
Sinclair WaycottArgentinaElwin Sharvill QUALIFIED
Sinclair WaycottJapanIoni Bowcher NEGOTIATION
Faith GillianUnited KingdomIvan Magalhaes NEW
Izzy GarufiFranceAnna Fali QUALIFIED
Arvin AlbaresRussiaStephen Shaw PROPOSAL
Leon OldroydCanadaIoni Bowcher QUALIFIED
Arvin AlbaresRussiaStephen Shaw NEW
Smith GlickJapanIoni Bowcher UNQUALIFIED
Adams MorascaJapanElwin Sharvill PROPOSAL
Misaki RoysterBrazilStephen Shaw UNQUALIFIED
Leon OldroydBrazilOnyama Limba RENEWAL
Deepesh ChuiBrazilAmy Elsner NEGOTIATION
Aruna FigeroaFranceOnyama Limba NEW
Antonio CaudyCanadaAnna Fali UNQUALIFIED
Misaki RoysterSpainAmy Elsner NEW
Leja CaldareraRussiaAnna Fali PROPOSAL
Aika InouyeJapanElwin Sharvill NEW
Aditya KuskoIndiaAnna Fali UNQUALIFIED
Aditya KuskoUnited KingdomAnna Fali NEGOTIATION
Julie StensethRussiaStephen Shaw RENEWAL
Octavia MaletJapanOnyama Limba NEW
Arvin AlbaresUnited KingdomStephen Shaw NEGOTIATION
Claire TollnerItalyAmy Elsner PROPOSAL
Leon OldroydArgentinaAsiya Javayant QUALIFIED
Tony FollerIndiaIvan Magalhaes NEW
Ivar PaprockiBrazilIoni Bowcher NEW
Jennifer AmigonAustraliaStephen Shaw UNQUALIFIED

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