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
Izzy GarufiAustraliaElwin Sharvill PROPOSAL
Aditya KuskoCanadaStephen Shaw PROPOSAL
Isabel BowleyJapanAnna Fali RENEWAL
Rodrigues CampainArgentinaElwin Sharvill UNQUALIFIED
Maria MarrierSpainAsiya Javayant PROPOSAL
Leja CaldareraSpainIoni Bowcher RENEWAL
Silvio SlusarskiJapanBernardo Dominic NEGOTIATION
Chavez BriddickGermanyAmy Elsner NEGOTIATION
Adams MorascaRussiaIoni Bowcher RENEWAL
Johnson SergiJapanAsiya Javayant NEW
Leon OldroydFranceXuxue Feng UNQUALIFIED
Cody SaylorsJapanElwin Sharvill PROPOSAL
Murillo MaletItalyXuxue Feng RENEWAL
David DarakjyGermanyIoni Bowcher RENEWAL
Mujtaba NickaGermanyAmy Elsner PROPOSAL
Ashley DoeRussiaElwin Sharvill QUALIFIED
Nicolas IturbideUnited KingdomIoni Bowcher QUALIFIED
Mayumi KolmetzIndiaXuxue Feng QUALIFIED
Kadeem FlosiBrazilIoni Bowcher NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw PROPOSAL
Izzy GarufiBrazilXuxue Feng RENEWAL
Jefferson SchemmerItalyAmy Elsner UNQUALIFIED
Jones VocelkaCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng RENEWAL
Jones VocelkaItalyAnna Fali UNQUALIFIED
Cody SaylorsJapanElwin Sharvill UNQUALIFIED
Munro FerenczIndiaXuxue Feng PROPOSAL
Alejandro PerinSpainOnyama Limba PROPOSAL
Ivar PaprockiFranceIvan Magalhaes RENEWAL
Murillo MaletBrazilElwin Sharvill NEW
Kaitlin OstroskyCanadaElwin Sharvill PROPOSAL
Kaitlin OstroskyRussiaIoni Bowcher RENEWAL
Salvatore StockhamArgentinaElwin Sharvill NEW
Francesco ShinkoIndiaAnna Fali UNQUALIFIED
Salvatore StockhamArgentinaAnna Fali NEW
Sinclair WaycottFranceAmy Elsner UNQUALIFIED
Smith GlickUnited KingdomAnna Fali NEW
Alejandro PerinCanadaStephen Shaw NEGOTIATION
Ivar PaprockiRussiaBernardo Dominic NEW
Leon OldroydFranceIoni Bowcher UNQUALIFIED
Chavez BriddickUnited KingdomIoni Bowcher PROPOSAL
Aruna FigeroaSpainXuxue Feng NEW
Izzy GarufiRussiaElwin Sharvill QUALIFIED
Kadeem FlosiIndiaAmy Elsner UNQUALIFIED
Costa DilliardItalyIvan Magalhaes NEW
James ButtUnited KingdomIvan Magalhaes NEGOTIATION
Faith GillianArgentinaIvan Magalhaes PROPOSAL
Izzy GarufiArgentinaElwin Sharvill NEGOTIATION
Maisha RulapaughFranceIvan Magalhaes RENEWAL
Tony FollerRussiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro FerenczItalyStephen Shaw PROPOSAL
Leon OldroydItalyAmy Elsner RENEWAL
Jones VocelkaFranceAnna Fali UNQUALIFIED
Claire TollnerFranceBernardo Dominic RENEWAL
Murillo MaletFranceStephen Shaw NEW
Adams MorascaCanadaStephen Shaw RENEWAL
Kadeem FlosiFranceBernardo Dominic NEGOTIATION
Maria MarrierArgentinaBernardo Dominic NEW
Costa DilliardGermanyBernardo Dominic RENEWAL
Maisha RulapaughGermanyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinBrazil2026-05-25Dorl, James J Esq RENEWAL11Xuxue Feng
1001Faith GillianItaly2026-05-19Chanay, Jeffrey A Esq NEW75Stephen Shaw
1002Salvatore StockhamBrazil2026-05-26Dorl, James J Esq RENEWAL70Xuxue Feng
1003Antonio CaudyUnited Kingdom2026-05-28Rangoni Of Florence NEW97Ivan Magalhaes
1004Izzy GarufiItaly2026-05-22Chapman, Ross E Esq NEW63Ivan Magalhaes
1005Salvatore StockhamBrazil2026-06-10Chemel, James L Cpa UNQUALIFIED27Onyama Limba
1006Aruna FigeroaJapan2026-05-19Morlong Associates RENEWAL32Ioni Bowcher
1007Mayumi KolmetzAustralia2026-06-05Rousseaux, Michael Esq NEW78Anna Fali
1008Isabel BowleyJapan2026-05-22Feltz Printing Service QUALIFIED68Anna Fali
1009Leja CaldareraCanada2026-05-24Commercial Press NEGOTIATION58Amy Elsner
1010Nicolas IturbideCanada2026-05-22Chanay, Jeffrey A Esq QUALIFIED35Anna Fali
1011Salvatore StockhamFrance2026-06-01Morlong Associates UNQUALIFIED6Amy Elsner
1012Silvio SlusarskiIndia2026-05-23Commercial Press NEGOTIATION31Stephen Shaw
1013Salvatore StockhamSpain2026-06-01Commercial Press UNQUALIFIED69Bernardo Dominic
1014Francesco ShinkoSpain2026-06-05Chemel, James L Cpa NEW8Xuxue Feng
1015Darci PoquetteGermany2026-06-09Benton, John B Jr UNQUALIFIED59Onyama Limba
1016Francesco ShinkoJapan2026-06-12Buckley Miller Wright PROPOSAL96Anna Fali
1017Faith GillianJapan2026-05-22Feiner Bros UNQUALIFIED84Stephen Shaw
1018Sinclair WaycottIndia2026-06-01Rousseaux, Michael Esq NEW70Ioni Bowcher
1019David DarakjyItaly2026-05-22Printing Dimensions RENEWAL42Amy Elsner
1020Smith GlickJapan2026-06-08Commercial Press PROPOSAL53Bernardo Dominic
1021Silvio SlusarskiSpain2026-05-25Commercial Press UNQUALIFIED56Ivan Magalhaes
1022Jones VocelkaIndia2026-06-11Chapman, Ross E Esq QUALIFIED12Anna Fali
1023Isabel BowleyCanada2026-06-03Rousseaux, Michael Esq RENEWAL4Onyama Limba
1024Munro FerenczSpain2026-06-05Printing Dimensions QUALIFIED70Stephen Shaw
1025Antonio CaudyItaly2026-06-03Truhlar And Truhlar Attys UNQUALIFIED6Onyama Limba
1026Mujtaba NickaItaly2026-05-30Rousseaux, Michael Esq NEGOTIATION96Stephen Shaw
1027Alejandro PerinArgentina2026-05-18King, Christopher A Esq PROPOSAL46Onyama Limba
1028Costa DilliardFrance2026-05-23Rangoni Of Florence PROPOSAL51Ivan Magalhaes
1029Smith GlickUnited Kingdom2026-06-06Buckley Miller Wright QUALIFIED67Onyama Limba
1030Wickens NestleAustralia2026-05-26Feiner Bros PROPOSAL27Anna Fali
1031Deepesh ChuiFrance2026-05-16Buckley Miller Wright RENEWAL50Onyama Limba
1032Stacey MacleadAustralia2026-06-03Morlong Associates PROPOSAL0Xuxue Feng
1033Silvio SlusarskiCanada2026-05-23King, Christopher A Esq UNQUALIFIED70Ioni Bowcher
1034Nicolas IturbideAustralia2026-06-12Benton, John B Jr NEGOTIATION73Anna Fali
1035Greenwood BologniaArgentina2026-06-12Commercial Press QUALIFIED7Onyama Limba
1036Smith GlickFrance2026-06-05Morlong Associates RENEWAL37Amy Elsner
1037Mayumi KolmetzRussia2026-05-24Feltz Printing Service PROPOSAL28Amy Elsner
1038Claire TollnerFrance2026-06-09Commercial Press QUALIFIED56Elwin Sharvill
1039Chavez BriddickFrance2026-06-14Commercial Press UNQUALIFIED29Elwin Sharvill
1040Claire TollnerCanada2026-06-04Feiner Bros NEW12Bernardo Dominic
1041Cody SaylorsFrance2026-05-22Morlong Associates RENEWAL29Bernardo Dominic
1042Ricardo GauchoJapan2026-06-14Morlong Associates QUALIFIED31Elwin Sharvill
1043Cody SaylorsUnited Kingdom2026-06-09Feltz Printing Service QUALIFIED86Asiya Javayant
1044Antonio CaudyUnited Kingdom2026-06-06Morlong Associates PROPOSAL15Bernardo Dominic
1045Rodrigues CampainBrazil2026-05-29Feiner Bros NEGOTIATION75Ivan Magalhaes
1046Greenwood BologniaSpain2026-05-17Benton, John B Jr QUALIFIED65Onyama Limba
1047Mujtaba NickaJapan2026-05-27Feltz Printing Service NEGOTIATION5Amy Elsner
1048Francesco ShinkoJapan2026-06-04King, Christopher A Esq NEGOTIATION28Elwin Sharvill
1049Morrow RutaGermany2026-05-21Buckley Miller Wright QUALIFIED78Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaCanadaElwin Sharvill UNQUALIFIED
Mujtaba NickaBrazilIvan Magalhaes UNQUALIFIED
Maisha RulapaughCanadaStephen Shaw NEGOTIATION
Jennifer AmigonArgentinaXuxue Feng NEGOTIATION
Morrow RutaRussiaAnna Fali RENEWAL
Misaki RoysterIndiaAsiya Javayant NEW
Kaitlin OstroskyBrazilAnna Fali NEGOTIATION
Julie StensethRussiaStephen Shaw PROPOSAL
Aika InouyeIndiaAnna Fali NEGOTIATION
Antonio CaudyFranceAsiya Javayant NEGOTIATION
Juan WieserSpainIoni Bowcher UNQUALIFIED
Emily WhobreyRussiaOnyama Limba QUALIFIED
Ashley DoeGermanyAmy Elsner NEW
Jones VocelkaJapanAsiya Javayant QUALIFIED
Kaitlin OstroskyGermanyOnyama Limba QUALIFIED
Arvin AlbaresFranceAnna Fali NEW
Jefferson SchemmerFranceOnyama Limba NEGOTIATION
Emily WhobreyBrazilXuxue Feng NEGOTIATION
Ashley DoeIndiaIoni Bowcher RENEWAL
Faith GillianAustraliaXuxue Feng RENEWAL
Jones VocelkaJapanAnna Fali RENEWAL
Jennifer AmigonJapanAsiya Javayant NEW
Salvatore StockhamAustraliaAmy Elsner NEGOTIATION
Mayumi KolmetzItalyAnna Fali PROPOSAL
Jennifer AmigonFranceAmy Elsner QUALIFIED
Emily WhobreyFranceOnyama Limba RENEWAL
Ashley DoeBrazilElwin Sharvill UNQUALIFIED
Octavia MaletSpainAnna Fali PROPOSAL
Salvatore StockhamFranceIoni Bowcher NEW
Stacey MacleadArgentinaElwin Sharvill QUALIFIED
Murillo MaletArgentinaIoni Bowcher RENEWAL
Adams MorascaFranceOnyama Limba RENEWAL
Francesco ShinkoSpainStephen Shaw PROPOSAL
Stacey MacleadRussiaBernardo Dominic NEW
Faith GillianFranceAnna Fali RENEWAL
Munro FerenczCanadaStephen Shaw PROPOSAL
Kaitlin OstroskyGermanyAmy Elsner QUALIFIED
Julie StensethAustraliaAnna Fali RENEWAL
Clifford RimGermanyAmy Elsner NEW
Darci PoquetteFranceOnyama Limba PROPOSAL
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Darci PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Claire TollnerArgentinaXuxue Feng NEGOTIATION
Isabel BowleyCanadaAmy Elsner PROPOSAL
Jennifer AmigonGermanyBernardo Dominic RENEWAL
Aruna FigeroaItalyXuxue Feng RENEWAL
Misaki RoysterAustraliaIoni Bowcher UNQUALIFIED
Antonio CaudyIndiaOnyama Limba RENEWAL
Leja CaldareraCanadaAnna Fali RENEWAL
Juan WieserUnited KingdomStephen Shaw PROPOSAL
Frozen Columns
Name
Julie Stenseth
Francesco Shinko
Cody Saylors
Costa Dilliard
Misaki Royster
Leja Caldarera
Smith Glick
Stacey Maclead
Adams Morasca
Octavia Malet
Misaki Royster
Arvin Albares
James Butt
Clifford Rim
Ivar Paprocki
Kadeem Flosi
Aruna Figeroa
Greenwood Bolognia
Aruna Figeroa
Faith Gillian
Emily Whobrey
Nicolas Iturbide
Francesco Shinko
Kaitlin Ostrosky
Mujtaba Nicka
Misaki Royster
Arvin Albares
Clifford Rim
Stacey Maclead
Isabel Bowley
Tony Foller
Juan Wieser
Aruna Figeroa
Izzy Garufi
Antonio Caudy
Nicolas Iturbide
Nicolas Iturbide
Morrow Ruta
Tony Foller
Cody Saylors
Tony Foller
Silvio Slusarski
Wickens Nestle
Alejandro Perin
Deepesh Chui
Clifford Rim
Aruna Figeroa
Salvatore Stockham
Deepesh Chui
Ricardo Gaucho
IdCountryDate
1000Russia2026-06-03
1001France2026-05-27
1002Italy2026-05-22
1003Canada2026-05-20
1004Argentina2026-06-10
1005Australia2026-06-10
1006Russia2026-05-21
1007United Kingdom2026-05-21
1008Australia2026-06-01
1009Australia2026-05-22
1010Australia2026-05-16
1011Argentina2026-05-26
1012Australia2026-05-18
1013Spain2026-05-26
1014Italy2026-06-06
1015France2026-05-24
1016Germany2026-06-09
1017Argentina2026-06-12
1018United Kingdom2026-05-19
1019Spain2026-06-09
1020Canada2026-06-03
1021Russia2026-06-06
1022Germany2026-05-19
1023Argentina2026-06-07
1024Germany2026-05-31
1025Brazil2026-06-05
1026France2026-06-02
1027Germany2026-05-20
1028United Kingdom2026-05-29
1029Japan2026-05-25
1030Germany2026-06-02
1031United Kingdom2026-05-19
1032India2026-06-08
1033Argentina2026-05-17
1034Argentina2026-06-03
1035Spain2026-05-31
1036United Kingdom2026-06-07
1037France2026-05-29
1038Germany2026-05-16
1039United Kingdom2026-06-14
1040India2026-05-18
1041Russia2026-06-02
1042Canada2026-06-07
1043Brazil2026-06-03
1044France2026-05-23
1045Russia2026-05-24
1046Russia2026-05-20
1047Japan2026-06-09
1048Brazil2026-06-12
1049Canada2026-06-10

On-Demand Data

NameIdCountryDate
Adams Morasca1000Spain2026-05-20
Clifford Rim1001Brazil2026-06-13
Munro Ferencz1002Italy2026-05-21
Sinclair Waycott1003India2026-06-04
Leja Caldarera1004Argentina2026-05-29
Ashley Doe1005Germany2026-06-14
Salvatore Stockham1006Italy2026-05-28
Mayumi Kolmetz1007United Kingdom2026-05-21
Leja Caldarera1008Brazil2026-05-24
Jennifer Amigon1009Germany2026-06-05
Juan Wieser1010Brazil2026-06-01
Francesco Shinko1011Russia2026-06-12
Mujtaba Nicka1012Japan2026-05-31
Chavez Briddick1013United Kingdom2026-06-14
Leja Caldarera1014Japan2026-06-07
Aruna Figeroa1015Brazil2026-05-21
Nicolas Iturbide1016France2026-06-13
Smith Glick1017Russia2026-06-10
Aruna Figeroa1018Italy2026-05-27
Faith Gillian1019Canada2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoIndiaAsiya Javayant QUALIFIED
Aika InouyeItalyOnyama Limba RENEWAL
Faith GillianUnited KingdomStephen Shaw RENEWAL
Aika InouyeGermanyStephen Shaw NEW
Antonio CaudyUnited KingdomAmy Elsner QUALIFIED
Arvin AlbaresUnited KingdomAnna Fali NEGOTIATION
Aika InouyeRussiaAnna Fali UNQUALIFIED
Salvatore StockhamArgentinaBernardo Dominic NEW
Aditya KuskoFranceOnyama Limba NEGOTIATION
Deepesh ChuiRussiaStephen Shaw UNQUALIFIED
James ButtUnited KingdomAsiya Javayant RENEWAL
Greenwood BologniaIndiaAnna Fali PROPOSAL
Ivar PaprockiCanadaBernardo Dominic PROPOSAL
Nicolas IturbideUnited KingdomAnna Fali NEGOTIATION
Nicolas IturbideJapanAnna Fali RENEWAL
Maria MarrierCanadaOnyama Limba RENEWAL
Ashley DoeJapanIoni Bowcher PROPOSAL
Jennifer AmigonSpainAsiya Javayant NEGOTIATION
Darci PoquetteAustraliaAmy Elsner NEGOTIATION
Jeanfrancois VenereJapanElwin Sharvill UNQUALIFIED
Misaki RoysterUnited KingdomIoni Bowcher RENEWAL
Arvin AlbaresIndiaAsiya Javayant QUALIFIED
Izzy GarufiCanadaAsiya Javayant NEGOTIATION
Kaitlin OstroskyItalyOnyama Limba NEGOTIATION
Tony FollerJapanOnyama Limba PROPOSAL
Ivar PaprockiSpainStephen Shaw NEW
Clifford RimRussiaOnyama Limba UNQUALIFIED
Kadeem FlosiIndiaBernardo Dominic NEW
David DarakjySpainIoni Bowcher UNQUALIFIED
Octavia MaletFranceIvan Magalhaes PROPOSAL
Emily WhobreySpainElwin Sharvill RENEWAL
Claire TollnerItalyBernardo Dominic RENEWAL
Cody SaylorsGermanyStephen Shaw QUALIFIED
Darci PoquetteSpainIvan Magalhaes PROPOSAL
David DarakjyJapanOnyama Limba NEW
Rodrigues CampainSpainStephen Shaw NEW
Murillo MaletJapanIvan Magalhaes UNQUALIFIED
Ricardo GauchoItalyIvan Magalhaes NEW
Deepesh ChuiBrazilAnna Fali PROPOSAL
Isabel BowleyJapanAnna Fali NEW

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