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
Mujtaba NickaGermanyBernardo Dominic UNQUALIFIED
Sinclair WaycottIndiaAnna Fali NEW
Ricardo GauchoArgentinaAmy Elsner RENEWAL
Murillo MaletAustraliaOnyama Limba UNQUALIFIED
Wickens NestleSpainIoni Bowcher RENEWAL
Wickens NestleArgentinaXuxue Feng PROPOSAL
Leja CaldareraFranceStephen Shaw NEGOTIATION
Faith GillianFranceAnna Fali UNQUALIFIED
Chavez BriddickGermanyElwin Sharvill RENEWAL
Octavia MaletJapanAmy Elsner NEW
Cody SaylorsUnited KingdomIvan Magalhaes NEW
Aditya KuskoJapanAnna Fali NEW
Clifford RimBrazilAsiya Javayant UNQUALIFIED
Kadeem FlosiItalyIoni Bowcher NEW
Maria MarrierFranceAmy Elsner NEW
James ButtGermanyAsiya Javayant NEGOTIATION
Greenwood BologniaGermanyXuxue Feng NEGOTIATION
Emily WhobreyArgentinaStephen Shaw QUALIFIED
Claire TollnerIndiaBernardo Dominic RENEWAL
Salvatore StockhamRussiaBernardo Dominic NEGOTIATION
Misaki RoysterRussiaXuxue Feng NEGOTIATION
Jones VocelkaIndiaXuxue Feng RENEWAL
Misaki RoysterGermanyIvan Magalhaes RENEWAL
Octavia MaletAustraliaStephen Shaw NEGOTIATION
Wickens NestleSpainXuxue Feng NEW
Juan WieserSpainIoni Bowcher RENEWAL
Leja CaldareraCanadaAsiya Javayant NEW
Rodrigues CampainSpainIoni Bowcher UNQUALIFIED
Maria MarrierBrazilAnna Fali NEW
Wickens NestleFranceIvan Magalhaes QUALIFIED
Jones VocelkaJapanOnyama Limba UNQUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill PROPOSAL
Jeanfrancois VenereUnited KingdomBernardo Dominic RENEWAL
Isabel BowleyJapanAsiya Javayant NEW
Mujtaba NickaRussiaIoni Bowcher QUALIFIED
Tony FollerAustraliaAsiya Javayant RENEWAL
Ricardo GauchoJapanElwin Sharvill NEW
Arvin AlbaresJapanAmy Elsner NEGOTIATION
Deepesh ChuiUnited KingdomAnna Fali UNQUALIFIED
Arvin AlbaresAustraliaAnna Fali PROPOSAL
Francesco ShinkoRussiaBernardo Dominic UNQUALIFIED
Aika InouyeSpainXuxue Feng NEGOTIATION
Smith GlickArgentinaOnyama Limba QUALIFIED
Kaitlin OstroskyItalyElwin Sharvill NEW
Clifford RimAustraliaAmy Elsner QUALIFIED
Sinclair WaycottSpainBernardo Dominic UNQUALIFIED
Octavia MaletRussiaOnyama Limba UNQUALIFIED
Cody SaylorsJapanStephen Shaw UNQUALIFIED
Kaitlin OstroskyIndiaXuxue Feng PROPOSAL
Jones VocelkaFranceIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteItalyBernardo Dominic NEW
Leja CaldareraIndiaStephen Shaw UNQUALIFIED
Aruna FigeroaSpainAnna Fali NEGOTIATION
Faith GillianRussiaIoni Bowcher RENEWAL
Julie StensethFranceIvan Magalhaes QUALIFIED
Morrow RutaJapanAnna Fali PROPOSAL
Johnson SergiRussiaXuxue Feng NEW
Jeanfrancois VenereBrazilXuxue Feng RENEWAL
Jennifer AmigonItalyAmy Elsner NEGOTIATION
Julie StensethCanadaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeBrazil2025-04-01Commercial Press PROPOSAL81Onyama Limba
1001Johnson SergiGermany2025-04-15Morlong Associates NEGOTIATION48Amy Elsner
1002Francesco ShinkoAustralia2025-03-27Buckley Miller Wright UNQUALIFIED5Anna Fali
1003Jennifer AmigonUnited Kingdom2025-04-17Rousseaux, Michael Esq PROPOSAL53Bernardo Dominic
1004Claire TollnerJapan2025-04-09Chanay, Jeffrey A Esq PROPOSAL35Onyama Limba
1005Sinclair WaycottBrazil2025-04-11Feiner Bros PROPOSAL1Amy Elsner
1006Francesco ShinkoRussia2025-04-08Rangoni Of Florence PROPOSAL52Asiya Javayant
1007Leon OldroydGermany2025-04-06Dorl, James J Esq NEGOTIATION86Ivan Magalhaes
1008Deepesh ChuiAustralia2025-04-12Truhlar And Truhlar Attys PROPOSAL57Ivan Magalhaes
1009Claire TollnerItaly2025-04-20Rousseaux, Michael Esq NEW13Ioni Bowcher
1010Jeanfrancois VenereItaly2025-04-13Chemel, James L Cpa NEW81Ioni Bowcher
1011Izzy GarufiCanada2025-04-02Chapman, Ross E Esq QUALIFIED48Ioni Bowcher
1012Isabel BowleyFrance2025-04-21Morlong Associates RENEWAL33Xuxue Feng
1013Leja CaldareraSpain2025-03-29Feiner Bros NEW63Xuxue Feng
1014Izzy GarufiAustralia2025-04-11Chapman, Ross E Esq NEGOTIATION77Stephen Shaw
1015Jennifer AmigonUnited Kingdom2025-04-02Truhlar And Truhlar Attys NEGOTIATION11Onyama Limba
1016Misaki RoysterCanada2025-03-30Dorl, James J Esq NEGOTIATION31Ivan Magalhaes
1017Munro FerenczAustralia2025-04-20Printing Dimensions NEW35Onyama Limba
1018Misaki RoysterArgentina2025-04-07Rangoni Of Florence NEW5Elwin Sharvill
1019Johnson SergiArgentina2025-04-16King, Christopher A Esq PROPOSAL71Anna Fali
1020Tony FollerCanada2025-04-20Dorl, James J Esq RENEWAL70Elwin Sharvill
1021Kaitlin OstroskyFrance2025-04-11King, Christopher A Esq RENEWAL14Asiya Javayant
1022Juan WieserBrazil2025-04-08Commercial Press NEW17Bernardo Dominic
1023Jeanfrancois VenereGermany2025-04-24Buckley Miller Wright UNQUALIFIED15Elwin Sharvill
1024Jones VocelkaRussia2025-04-01Printing Dimensions RENEWAL30Anna Fali
1025Nicolas IturbideRussia2025-03-27Printing Dimensions NEGOTIATION29Amy Elsner
1026Greenwood BologniaUnited Kingdom2025-03-29King, Christopher A Esq RENEWAL11Stephen Shaw
1027Rodrigues CampainSpain2025-04-23Truhlar And Truhlar Attys NEW40Elwin Sharvill
1028Stacey MacleadBrazil2025-04-18Morlong Associates NEW2Xuxue Feng
1029Faith GillianGermany2025-04-11Feltz Printing Service QUALIFIED53Stephen Shaw
1030Smith GlickFrance2025-04-15Morlong Associates NEGOTIATION5Ivan Magalhaes
1031Morrow RutaArgentina2025-04-07Dorl, James J Esq PROPOSAL26Xuxue Feng
1032Jeanfrancois VenereItaly2025-04-02King, Christopher A Esq UNQUALIFIED76Anna Fali
1033Tony FollerRussia2025-04-06Rangoni Of Florence RENEWAL94Stephen Shaw
1034Julie StensethItaly2025-04-12Rousseaux, Michael Esq NEGOTIATION69Ivan Magalhaes
1035Emily WhobreyFrance2025-03-28King, Christopher A Esq UNQUALIFIED90Stephen Shaw
1036Kadeem FlosiJapan2025-03-27Benton, John B Jr PROPOSAL83Ioni Bowcher
1037Mayumi KolmetzGermany2025-04-12Chanay, Jeffrey A Esq PROPOSAL20Xuxue Feng
1038Murillo MaletArgentina2025-04-22King, Christopher A Esq UNQUALIFIED92Asiya Javayant
1039Maria MarrierSpain2025-03-28Buckley Miller Wright NEW54Amy Elsner
1040Greenwood BologniaSpain2025-03-29Chemel, James L Cpa UNQUALIFIED57Ioni Bowcher
1041Maria MarrierAustralia2025-04-20Feiner Bros QUALIFIED44Onyama Limba
1042Tony FollerAustralia2025-04-02Commercial Press QUALIFIED31Amy Elsner
1043Stacey MacleadUnited Kingdom2025-04-02Chanay, Jeffrey A Esq NEW36Elwin Sharvill
1044Antonio CaudyAustralia2025-04-22Printing Dimensions PROPOSAL88Xuxue Feng
1045Leon OldroydFrance2025-04-03King, Christopher A Esq NEGOTIATION93Bernardo Dominic
1046James ButtItaly2025-04-09King, Christopher A Esq NEW72Asiya Javayant
1047Mayumi KolmetzFrance2025-03-31Chemel, James L Cpa RENEWAL94Amy Elsner
1048Ricardo GauchoIndia2025-04-08Benton, John B Jr PROPOSAL85Amy Elsner
1049Wickens NestleUnited Kingdom2025-04-21Feiner Bros RENEWAL82Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
James ButtFranceStephen Shaw NEW
Silvio SlusarskiJapanXuxue Feng RENEWAL
Antonio CaudyRussiaAnna Fali PROPOSAL
Misaki RoysterSpainBernardo Dominic NEGOTIATION
Silvio SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Adams MorascaCanadaOnyama Limba NEW
Isabel BowleyItalyIvan Magalhaes PROPOSAL
Aditya KuskoFranceElwin Sharvill NEGOTIATION
Antonio CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Emily WhobreyFranceIoni Bowcher PROPOSAL
Claire TollnerItalyBernardo Dominic PROPOSAL
Kaitlin OstroskyCanadaBernardo Dominic RENEWAL
Murillo MaletItalyIvan Magalhaes NEGOTIATION
Aika InouyeGermanyIvan Magalhaes PROPOSAL
Murillo MaletUnited KingdomAsiya Javayant RENEWAL
Tony FollerArgentinaXuxue Feng NEW
Jennifer AmigonUnited KingdomXuxue Feng RENEWAL
Misaki RoysterFranceIvan Magalhaes QUALIFIED
Emily WhobreyFranceElwin Sharvill RENEWAL
Ricardo GauchoArgentinaXuxue Feng RENEWAL
Costa DilliardBrazilAmy Elsner NEW
Deepesh ChuiItalyXuxue Feng UNQUALIFIED
Octavia MaletIndiaAnna Fali NEW
Arvin AlbaresIndiaStephen Shaw UNQUALIFIED
Smith GlickJapanBernardo Dominic RENEWAL
Faith GillianAustraliaBernardo Dominic PROPOSAL
Murillo MaletAustraliaAmy Elsner QUALIFIED
Salvatore StockhamRussiaBernardo Dominic UNQUALIFIED
Isabel BowleyFranceBernardo Dominic RENEWAL
Juan WieserAustraliaXuxue Feng NEW
Cody SaylorsAustraliaAmy Elsner NEW
David DarakjyAustraliaIvan Magalhaes QUALIFIED
Isabel BowleyGermanyBernardo Dominic NEW
Clifford RimJapanStephen Shaw NEGOTIATION
Juan WieserCanadaAnna Fali RENEWAL
Faith GillianItalyIoni Bowcher RENEWAL
James ButtItalyIoni Bowcher UNQUALIFIED
David DarakjyJapanXuxue Feng NEW
Aruna FigeroaGermanyBernardo Dominic RENEWAL
Silvio SlusarskiRussiaIvan Magalhaes NEW
Wickens NestleFranceXuxue Feng QUALIFIED
Leon OldroydArgentinaAnna Fali NEW
Emily WhobreyRussiaIvan Magalhaes NEW
Jeanfrancois VenereItalyBernardo Dominic NEW
Jennifer AmigonArgentinaAnna Fali UNQUALIFIED
Antonio CaudyJapanAmy Elsner PROPOSAL
Arvin AlbaresBrazilAmy Elsner NEGOTIATION
Aditya KuskoUnited KingdomXuxue Feng RENEWAL
Rodrigues CampainItalyIoni Bowcher NEW
Leon OldroydCanadaStephen Shaw NEW
Frozen Columns
Name
Misaki Royster
Sinclair Waycott
Morrow Ruta
Cody Saylors
Costa Dilliard
Johnson Sergi
Aika Inouye
Maisha Rulapaugh
Morrow Ruta
Murillo Malet
Jones Vocelka
Munro Ferencz
Munro Ferencz
Aruna Figeroa
Salvatore Stockham
Rodrigues Campain
Maria Marrier
Greenwood Bolognia
Cody Saylors
Octavia Malet
Ashley Doe
Darci Poquette
Ivar Paprocki
Greenwood Bolognia
Salvatore Stockham
Misaki Royster
Aruna Figeroa
Tony Foller
Nicolas Iturbide
Mayumi Kolmetz
Munro Ferencz
Maisha Rulapaugh
Tony Foller
Kaitlin Ostrosky
Cody Saylors
Leon Oldroyd
Salvatore Stockham
Mayumi Kolmetz
Aruna Figeroa
Rodrigues Campain
Antonio Caudy
Jeanfrancois Venere
Misaki Royster
Wickens Nestle
Munro Ferencz
Ashley Doe
Alejandro Perin
Johnson Sergi
Wickens Nestle
Claire Tollner
IdCountryDate
1000Germany2025-04-09
1001United Kingdom2025-04-17
1002Argentina2025-04-14
1003United Kingdom2025-04-16
1004Russia2025-04-02
1005Australia2025-04-07
1006Spain2025-04-08
1007Brazil2025-04-23
1008United Kingdom2025-03-30
1009Australia2025-04-22
1010Brazil2025-03-31
1011Germany2025-04-08
1012United Kingdom2025-04-25
1013Spain2025-04-11
1014Argentina2025-04-06
1015India2025-04-19
1016United Kingdom2025-04-12
1017Argentina2025-04-07
1018India2025-04-09
1019France2025-04-25
1020Germany2025-03-28
1021Spain2025-04-14
1022Germany2025-04-06
1023Australia2025-04-03
1024Italy2025-04-08
1025India2025-04-17
1026Russia2025-04-02
1027Australia2025-04-13
1028France2025-04-11
1029Canada2025-03-27
1030Japan2025-04-03
1031Russia2025-04-15
1032France2025-04-08
1033India2025-04-03
1034United Kingdom2025-04-25
1035Australia2025-03-28
1036France2025-04-24
1037India2025-04-21
1038Canada2025-04-07
1039France2025-04-02
1040Argentina2025-04-19
1041Canada2025-04-14
1042Brazil2025-04-21
1043Brazil2025-04-19
1044France2025-04-03
1045Germany2025-04-14
1046Italy2025-04-09
1047Spain2025-04-08
1048Spain2025-04-17
1049Italy2025-04-16

On-Demand Data

NameIdCountryDate
Wickens Nestle1000United Kingdom2025-04-13
Emily Whobrey1001Russia2025-04-15
Chavez Briddick1002India2025-04-22
Greenwood Bolognia1003Italy2025-04-05
Jennifer Amigon1004United Kingdom2025-03-29
Ricardo Gaucho1005United Kingdom2025-04-20
Jeanfrancois Venere1006Russia2025-04-17
Julie Stenseth1007Argentina2025-03-31
Octavia Malet1008Argentina2025-03-27
Misaki Royster1009Germany2025-04-09
Cody Saylors1010Italy2025-03-30
Murillo Malet1011Brazil2025-03-28
Mayumi Kolmetz1012Brazil2025-04-24
Munro Ferencz1013Brazil2025-04-25
Kadeem Flosi1014United Kingdom2025-03-27
Julie Stenseth1015India2025-04-22
Leon Oldroyd1016India2025-04-08
Murillo Malet1017Australia2025-04-10
Octavia Malet1018Japan2025-04-06
Mayumi Kolmetz1019Japan2025-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadIndiaIvan Magalhaes NEGOTIATION
Leja CaldareraArgentinaXuxue Feng PROPOSAL
Stacey MacleadBrazilIoni Bowcher QUALIFIED
Murillo MaletCanadaXuxue Feng RENEWAL
Chavez BriddickJapanAmy Elsner NEW
Rodrigues CampainJapanStephen Shaw PROPOSAL
Izzy GarufiCanadaXuxue Feng RENEWAL
Octavia MaletRussiaIvan Magalhaes RENEWAL
Izzy GarufiUnited KingdomIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomXuxue Feng PROPOSAL
Jefferson SchemmerSpainOnyama Limba QUALIFIED
Antonio CaudyArgentinaBernardo Dominic QUALIFIED
Isabel BowleyUnited KingdomAnna Fali NEW
Antonio CaudyRussiaAmy Elsner NEW
Murillo MaletGermanyOnyama Limba NEGOTIATION
Aika InouyeJapanIvan Magalhaes NEW
Jennifer AmigonFranceElwin Sharvill NEW
Deepesh ChuiSpainAsiya Javayant RENEWAL
Adams MorascaSpainElwin Sharvill NEW
Leja CaldareraSpainElwin Sharvill NEW
James ButtAustraliaAsiya Javayant UNQUALIFIED
Adams MorascaSpainElwin Sharvill RENEWAL
Smith GlickCanadaAsiya Javayant UNQUALIFIED
Leon OldroydBrazilElwin Sharvill PROPOSAL
Nicolas IturbideRussiaStephen Shaw NEGOTIATION
Alejandro PerinAustraliaIvan Magalhaes RENEWAL
Isabel BowleyAustraliaAmy Elsner UNQUALIFIED
Maria MarrierSpainAnna Fali RENEWAL
Leja CaldareraGermanyStephen Shaw RENEWAL
Juan WieserUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore StockhamJapanAsiya Javayant NEW
Leja CaldareraBrazilAmy Elsner NEW
David DarakjyItalyOnyama Limba RENEWAL
Faith GillianSpainAnna Fali PROPOSAL
Chavez BriddickBrazilIvan Magalhaes PROPOSAL
Jeanfrancois VenereItalyElwin Sharvill UNQUALIFIED
Morrow RutaRussiaAnna Fali NEGOTIATION
Aditya KuskoBrazilElwin Sharvill UNQUALIFIED
Tony FollerRussiaAmy Elsner QUALIFIED
Izzy GarufiSpainAsiya Javayant 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>