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
Maisha RulapaughJapanIoni Bowcher UNQUALIFIED
David DarakjyBrazilStephen Shaw NEGOTIATION
Arvin AlbaresItalyBernardo Dominic PROPOSAL
Antonio CaudyUnited KingdomElwin Sharvill NEW
Aruna FigeroaCanadaElwin Sharvill QUALIFIED
Greenwood BologniaBrazilAsiya Javayant UNQUALIFIED
Izzy GarufiIndiaIoni Bowcher PROPOSAL
Johnson SergiAustraliaStephen Shaw PROPOSAL
Deepesh ChuiRussiaOnyama Limba NEGOTIATION
Mujtaba NickaItalyAsiya Javayant QUALIFIED
Arvin AlbaresUnited KingdomIoni Bowcher PROPOSAL
Octavia MaletBrazilIoni Bowcher NEGOTIATION
Juan WieserFranceElwin Sharvill UNQUALIFIED
Jefferson SchemmerItalyIoni Bowcher PROPOSAL
Tony FollerUnited KingdomAmy Elsner NEW
Tony FollerArgentinaOnyama Limba NEW
Faith GillianFranceStephen Shaw NEW
Munro FerenczCanadaBernardo Dominic UNQUALIFIED
Stacey MacleadGermanyAnna Fali NEGOTIATION
Rodrigues CampainGermanyAnna Fali NEGOTIATION
Izzy GarufiCanadaAmy Elsner PROPOSAL
Leja CaldareraRussiaStephen Shaw NEW
Isabel BowleyIndiaAnna Fali NEW
Kaitlin OstroskyFranceAnna Fali UNQUALIFIED
Aruna FigeroaFranceIvan Magalhaes RENEWAL
Arvin AlbaresBrazilOnyama Limba RENEWAL
Aruna FigeroaGermanyBernardo Dominic RENEWAL
Salvatore StockhamUnited KingdomAmy Elsner QUALIFIED
Ashley DoeGermanyStephen Shaw NEGOTIATION
Tony FollerArgentinaIoni Bowcher NEW
Leja CaldareraCanadaAmy Elsner NEW
Juan WieserJapanStephen Shaw PROPOSAL
Sinclair WaycottSpainAnna Fali NEW
Sinclair WaycottAustraliaIvan Magalhaes UNQUALIFIED
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Mujtaba NickaJapanAsiya Javayant QUALIFIED
Murillo MaletGermanyAsiya Javayant NEW
Maria MarrierItalyAnna Fali UNQUALIFIED
Greenwood BologniaSpainAmy Elsner QUALIFIED
Nicolas IturbideJapanElwin Sharvill UNQUALIFIED
Julie StensethItalyStephen Shaw QUALIFIED
Nicolas IturbideItalyXuxue Feng UNQUALIFIED
Arvin AlbaresIndiaIvan Magalhaes QUALIFIED
Smith GlickRussiaOnyama Limba NEW
Maria MarrierCanadaBernardo Dominic NEW
David DarakjySpainXuxue Feng NEW
Deepesh ChuiRussiaAsiya Javayant NEGOTIATION
Alejandro PerinAustraliaOnyama Limba PROPOSAL
Emily WhobreySpainIoni Bowcher UNQUALIFIED
Clifford RimIndiaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamCanadaAsiya Javayant NEW
Stacey MacleadRussiaOnyama Limba RENEWAL
Arvin AlbaresFranceAmy Elsner PROPOSAL
Jeanfrancois VenereFranceAmy Elsner QUALIFIED
Arvin AlbaresIndiaIvan Magalhaes QUALIFIED
Francesco ShinkoJapanOnyama Limba NEGOTIATION
David DarakjySpainAsiya Javayant PROPOSAL
Silvio SlusarskiJapanBernardo Dominic UNQUALIFIED
Rodrigues CampainAustraliaAsiya Javayant RENEWAL
Faith GillianRussiaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzItaly2026-05-17Morlong Associates RENEWAL72Elwin Sharvill
1001Maria MarrierCanada2026-05-23Commercial Press RENEWAL36Anna Fali
1002Munro FerenczCanada2026-05-11Chanay, Jeffrey A Esq UNQUALIFIED10Anna Fali
1003Leon OldroydItaly2026-05-17Chemel, James L Cpa NEW43Stephen Shaw
1004Misaki RoysterRussia2026-05-31Chanay, Jeffrey A Esq UNQUALIFIED57Elwin Sharvill
1005Jefferson SchemmerItaly2026-05-08Dorl, James J Esq QUALIFIED85Xuxue Feng
1006Antonio CaudyFrance2026-05-09Feltz Printing Service RENEWAL42Onyama Limba
1007Jennifer AmigonCanada2026-05-22Buckley Miller Wright PROPOSAL90Anna Fali
1008Greenwood BologniaUnited Kingdom2026-05-16Dorl, James J Esq PROPOSAL99Ioni Bowcher
1009Ivar PaprockiJapan2026-06-02Truhlar And Truhlar Attys UNQUALIFIED46Anna Fali
1010Alejandro PerinUnited Kingdom2026-05-31Rousseaux, Michael Esq RENEWAL1Asiya Javayant
1011Emily WhobreyGermany2026-05-24Rousseaux, Michael Esq UNQUALIFIED6Elwin Sharvill
1012Munro FerenczIndia2026-05-15Rousseaux, Michael Esq NEW86Elwin Sharvill
1013Juan WieserGermany2026-05-27Buckley Miller Wright PROPOSAL13Onyama Limba
1014Ricardo GauchoItaly2026-05-23Chemel, James L Cpa NEW55Ioni Bowcher
1015Leon OldroydAustralia2026-06-04Commercial Press QUALIFIED86Bernardo Dominic
1016Clifford RimItaly2026-06-04Benton, John B Jr PROPOSAL67Bernardo Dominic
1017Arvin AlbaresBrazil2026-05-24Feltz Printing Service PROPOSAL93Ioni Bowcher
1018Cody SaylorsUnited Kingdom2026-06-02Feiner Bros NEW71Ivan Magalhaes
1019Silvio SlusarskiUnited Kingdom2026-05-08Printing Dimensions PROPOSAL95Onyama Limba
1020Juan WieserBrazil2026-05-24Printing Dimensions UNQUALIFIED40Stephen Shaw
1021Cody SaylorsAustralia2026-06-05Chanay, Jeffrey A Esq NEGOTIATION42Bernardo Dominic
1022Tony FollerJapan2026-05-21Dorl, James J Esq RENEWAL16Onyama Limba
1023Arvin AlbaresSpain2026-05-28Morlong Associates NEW38Onyama Limba
1024Costa DilliardRussia2026-06-01Chapman, Ross E Esq NEGOTIATION57Ivan Magalhaes
1025Antonio CaudyAustralia2026-05-13Printing Dimensions QUALIFIED51Bernardo Dominic
1026Jeanfrancois VenereRussia2026-05-29King, Christopher A Esq RENEWAL38Amy Elsner
1027Cody SaylorsArgentina2026-05-26Chemel, James L Cpa QUALIFIED73Asiya Javayant
1028Ricardo GauchoFrance2026-05-31Rousseaux, Michael Esq QUALIFIED49Onyama Limba
1029Maria MarrierBrazil2026-06-06Feiner Bros NEGOTIATION74Bernardo Dominic
1030Smith GlickGermany2026-05-15Printing Dimensions QUALIFIED90Xuxue Feng
1031Alejandro PerinIndia2026-05-29Commercial Press UNQUALIFIED56Amy Elsner
1032Mayumi KolmetzIndia2026-05-15Chanay, Jeffrey A Esq QUALIFIED7Bernardo Dominic
1033Claire TollnerUnited Kingdom2026-05-18King, Christopher A Esq RENEWAL87Anna Fali
1034Mayumi KolmetzUnited Kingdom2026-05-13Rangoni Of Florence PROPOSAL93Ivan Magalhaes
1035Misaki RoysterArgentina2026-05-17Dorl, James J Esq UNQUALIFIED97Stephen Shaw
1036Maria MarrierBrazil2026-05-28Dorl, James J Esq PROPOSAL3Xuxue Feng
1037Octavia MaletRussia2026-05-15Benton, John B Jr NEW14Stephen Shaw
1038Aruna FigeroaIndia2026-05-11King, Christopher A Esq NEW97Anna Fali
1039Darci PoquetteUnited Kingdom2026-06-02Morlong Associates RENEWAL9Stephen Shaw
1040Maria MarrierJapan2026-05-14Feiner Bros UNQUALIFIED54Xuxue Feng
1041Jones VocelkaItaly2026-05-28Chanay, Jeffrey A Esq NEW4Anna Fali
1042Deepesh ChuiArgentina2026-05-26Chemel, James L Cpa RENEWAL26Xuxue Feng
1043Rodrigues CampainRussia2026-05-31Commercial Press UNQUALIFIED11Elwin Sharvill
1044Rodrigues CampainJapan2026-05-22Rousseaux, Michael Esq QUALIFIED88Anna Fali
1045Munro FerenczCanada2026-06-01Dorl, James J Esq NEGOTIATION89Ioni Bowcher
1046Costa DilliardRussia2026-05-08Feltz Printing Service NEGOTIATION88Stephen Shaw
1047Clifford RimArgentina2026-06-04Benton, John B Jr QUALIFIED74Ivan Magalhaes
1048Clifford RimBrazil2026-05-18Commercial Press NEW28Asiya Javayant
1049Smith GlickGermany2026-05-09Feiner Bros UNQUALIFIED2Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaAustraliaXuxue Feng NEGOTIATION
Wickens NestleSpainIvan Magalhaes NEW
Adams MorascaItalyIvan Magalhaes QUALIFIED
Kaitlin OstroskyIndiaAsiya Javayant NEW
Wickens NestleArgentinaBernardo Dominic NEW
Sinclair WaycottSpainOnyama Limba RENEWAL
Jennifer AmigonAustraliaOnyama Limba QUALIFIED
Jones VocelkaIndiaOnyama Limba PROPOSAL
Tony FollerItalyStephen Shaw NEGOTIATION
Maria MarrierItalyOnyama Limba UNQUALIFIED
Maria MarrierRussiaBernardo Dominic PROPOSAL
Julie StensethJapanOnyama Limba NEW
Juan WieserArgentinaAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaBernardo Dominic QUALIFIED
Leja CaldareraGermanyStephen Shaw QUALIFIED
Ricardo GauchoAustraliaStephen Shaw NEGOTIATION
Juan WieserCanadaAnna Fali QUALIFIED
Juan WieserFranceIvan Magalhaes NEW
Adams MorascaIndiaIoni Bowcher NEGOTIATION
Salvatore StockhamArgentinaAsiya Javayant RENEWAL
Wickens NestleArgentinaAnna Fali RENEWAL
Silvio SlusarskiAustraliaIoni Bowcher RENEWAL
Salvatore StockhamGermanyXuxue Feng NEW
David DarakjyGermanyAsiya Javayant RENEWAL
Silvio SlusarskiRussiaIoni Bowcher NEGOTIATION
Claire TollnerBrazilAmy Elsner PROPOSAL
Ashley DoeAustraliaAmy Elsner NEGOTIATION
Jefferson SchemmerItalyStephen Shaw RENEWAL
Morrow RutaAustraliaStephen Shaw NEGOTIATION
Costa DilliardItalyIoni Bowcher PROPOSAL
Misaki RoysterGermanyStephen Shaw QUALIFIED
Jennifer AmigonBrazilBernardo Dominic NEW
Mujtaba NickaIndiaIvan Magalhaes UNQUALIFIED
Antonio CaudyCanadaXuxue Feng UNQUALIFIED
Cody SaylorsRussiaXuxue Feng NEGOTIATION
Chavez BriddickFranceBernardo Dominic RENEWAL
Costa DilliardFranceXuxue Feng NEW
Aika InouyeGermanyAmy Elsner QUALIFIED
Adams MorascaIndiaAnna Fali PROPOSAL
Maria MarrierSpainStephen Shaw NEGOTIATION
Faith GillianCanadaAnna Fali NEGOTIATION
James ButtBrazilIvan Magalhaes NEGOTIATION
Jennifer AmigonGermanyXuxue Feng UNQUALIFIED
Morrow RutaArgentinaAnna Fali NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng NEGOTIATION
James ButtIndiaElwin Sharvill RENEWAL
Darci PoquetteGermanyStephen Shaw QUALIFIED
Chavez BriddickFranceIvan Magalhaes NEW
Morrow RutaAustraliaAmy Elsner NEGOTIATION
Jeanfrancois VenereSpainIoni Bowcher NEW
Frozen Columns
Name
Faith Gillian
Arvin Albares
Nicolas Iturbide
Murillo Malet
Arvin Albares
Morrow Ruta
Maisha Rulapaugh
Francesco Shinko
Juan Wieser
Rodrigues Campain
Greenwood Bolognia
Kaitlin Ostrosky
Jeanfrancois Venere
Juan Wieser
Mujtaba Nicka
Mayumi Kolmetz
Silvio Slusarski
Antonio Caudy
Kaitlin Ostrosky
Silvio Slusarski
Isabel Bowley
Morrow Ruta
Salvatore Stockham
Alejandro Perin
Chavez Briddick
Clifford Rim
Isabel Bowley
Misaki Royster
Izzy Garufi
Juan Wieser
Juan Wieser
Ivar Paprocki
Juan Wieser
Leja Caldarera
Leja Caldarera
Salvatore Stockham
Isabel Bowley
Aika Inouye
Johnson Sergi
Kaitlin Ostrosky
Chavez Briddick
Antonio Caudy
Darci Poquette
Clifford Rim
Ricardo Gaucho
Izzy Garufi
Greenwood Bolognia
Juan Wieser
Emily Whobrey
Cody Saylors
IdCountryDate
1000United Kingdom2026-05-23
1001Australia2026-05-25
1002Australia2026-05-27
1003Germany2026-05-20
1004France2026-05-08
1005France2026-05-28
1006Spain2026-06-02
1007Japan2026-05-13
1008Canada2026-05-29
1009Russia2026-05-16
1010Australia2026-05-23
1011Japan2026-05-21
1012Spain2026-05-23
1013Spain2026-05-29
1014Italy2026-06-05
1015India2026-05-16
1016United Kingdom2026-06-05
1017Germany2026-05-31
1018United Kingdom2026-05-31
1019Japan2026-05-15
1020Argentina2026-06-03
1021Germany2026-05-22
1022Australia2026-06-03
1023Germany2026-05-30
1024Australia2026-05-21
1025Germany2026-05-16
1026Italy2026-06-01
1027Argentina2026-06-06
1028Germany2026-05-18
1029Japan2026-06-05
1030Brazil2026-05-12
1031France2026-05-21
1032Germany2026-05-15
1033Australia2026-05-10
1034France2026-06-06
1035Germany2026-05-27
1036United Kingdom2026-05-30
1037Argentina2026-05-26
1038Australia2026-05-15
1039India2026-05-10
1040Australia2026-05-19
1041Australia2026-06-02
1042Russia2026-05-20
1043France2026-06-05
1044United Kingdom2026-06-05
1045India2026-05-16
1046Argentina2026-06-02
1047Argentina2026-06-06
1048Germany2026-06-04
1049Brazil2026-05-23

On-Demand Data

NameIdCountryDate
Nicolas Iturbide1000Russia2026-05-26
Rodrigues Campain1001France2026-05-12
Sinclair Waycott1002India2026-05-11
Costa Dilliard1003Spain2026-06-01
James Butt1004Canada2026-05-28
Isabel Bowley1005Russia2026-05-24
Jefferson Schemmer1006Russia2026-05-16
Jones Vocelka1007Argentina2026-05-15
Ashley Doe1008Australia2026-05-31
Chavez Briddick1009France2026-05-22
Jefferson Schemmer1010India2026-05-09
Leja Caldarera1011Australia2026-05-13
Sinclair Waycott1012Australia2026-05-26
Antonio Caudy1013France2026-05-20
Chavez Briddick1014Australia2026-05-08
Rodrigues Campain1015India2026-06-05
Salvatore Stockham1016Japan2026-05-17
Octavia Malet1017Germany2026-05-20
Clifford Rim1018India2026-05-19
Munro Ferencz1019France2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaItalyElwin Sharvill QUALIFIED
Arvin AlbaresJapanAsiya Javayant RENEWAL
Aika InouyeAustraliaIvan Magalhaes NEW
Aika InouyeJapanElwin Sharvill QUALIFIED
Aika InouyeJapanXuxue Feng NEW
Mujtaba NickaIndiaOnyama Limba UNQUALIFIED
Leja CaldareraRussiaXuxue Feng NEGOTIATION
Jefferson SchemmerGermanyIvan Magalhaes RENEWAL
Rodrigues CampainSpainElwin Sharvill NEW
Smith GlickItalyOnyama Limba NEGOTIATION
Ivar PaprockiJapanOnyama Limba PROPOSAL
Chavez BriddickBrazilStephen Shaw NEGOTIATION
Mayumi KolmetzUnited KingdomOnyama Limba QUALIFIED
Juan WieserGermanyIvan Magalhaes PROPOSAL
Misaki RoysterItalyStephen Shaw QUALIFIED
Morrow RutaAustraliaIoni Bowcher PROPOSAL
Faith GillianItalyOnyama Limba UNQUALIFIED
Maisha RulapaughAustraliaAsiya Javayant QUALIFIED
Sinclair WaycottGermanyIoni Bowcher UNQUALIFIED
Julie StensethAustraliaAmy Elsner QUALIFIED
Ivar PaprockiIndiaElwin Sharvill UNQUALIFIED
Izzy GarufiIndiaStephen Shaw NEW
Sinclair WaycottFranceOnyama Limba UNQUALIFIED
Darci PoquetteIndiaAnna Fali NEW
Cody SaylorsRussiaIoni Bowcher PROPOSAL
Munro FerenczJapanXuxue Feng NEW
Jennifer AmigonBrazilAnna Fali UNQUALIFIED
Maisha RulapaughGermanyIoni Bowcher NEW
Antonio CaudyRussiaElwin Sharvill NEW
Claire TollnerAustraliaBernardo Dominic NEW
Morrow RutaAustraliaAsiya Javayant RENEWAL
Leon OldroydArgentinaStephen Shaw UNQUALIFIED
Aditya KuskoArgentinaAnna Fali RENEWAL
James ButtRussiaOnyama Limba NEW
Octavia MaletItalyAmy Elsner QUALIFIED
Izzy GarufiItalyIvan Magalhaes RENEWAL
Ashley DoeCanadaBernardo Dominic UNQUALIFIED
Leja CaldareraJapanAsiya Javayant UNQUALIFIED
Stacey MacleadItalyAnna Fali QUALIFIED
Johnson SergiFranceOnyama Limba NEGOTIATION

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