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
Ashley DoeAustraliaStephen Shaw QUALIFIED
Aika InouyeIndiaElwin Sharvill NEW
Stacey MacleadGermanyAmy Elsner UNQUALIFIED
Adams MorascaAustraliaAsiya Javayant PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher NEW
Jennifer AmigonIndiaIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore StockhamItalyElwin Sharvill NEW
Nicolas IturbideIndiaAsiya Javayant NEGOTIATION
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Leja CaldareraGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois VenereRussiaXuxue Feng RENEWAL
Nicolas IturbideSpainAnna Fali QUALIFIED
Leja CaldareraCanadaElwin Sharvill NEW
Wickens NestleFranceIvan Magalhaes RENEWAL
Costa DilliardArgentinaAsiya Javayant QUALIFIED
Wickens NestleIndiaBernardo Dominic PROPOSAL
Silvio SlusarskiGermanyAsiya Javayant UNQUALIFIED
Smith GlickIndiaBernardo Dominic UNQUALIFIED
Mujtaba NickaBrazilAsiya Javayant UNQUALIFIED
Clifford RimIndiaStephen Shaw PROPOSAL
Leja CaldareraFranceOnyama Limba UNQUALIFIED
Smith GlickJapanOnyama Limba NEGOTIATION
Antonio CaudyAustraliaStephen Shaw PROPOSAL
Faith GillianIndiaXuxue Feng NEGOTIATION
Arvin AlbaresAustraliaAnna Fali RENEWAL
Wickens NestleIndiaIoni Bowcher QUALIFIED
Francesco ShinkoJapanBernardo Dominic UNQUALIFIED
Aditya KuskoBrazilAsiya Javayant RENEWAL
Jennifer AmigonJapanOnyama Limba NEW
Isabel BowleyUnited KingdomOnyama Limba QUALIFIED
Ivar PaprockiArgentinaElwin Sharvill RENEWAL
Ricardo GauchoRussiaAsiya Javayant NEGOTIATION
Rodrigues CampainBrazilAnna Fali QUALIFIED
Misaki RoysterAustraliaStephen Shaw QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher RENEWAL
Maria MarrierCanadaBernardo Dominic PROPOSAL
Deepesh ChuiAustraliaIoni Bowcher RENEWAL
Clifford RimGermanyAnna Fali PROPOSAL
James ButtGermanyStephen Shaw PROPOSAL
Misaki RoysterCanadaElwin Sharvill PROPOSAL
Salvatore StockhamGermanyIoni Bowcher NEGOTIATION
Salvatore StockhamSpainIvan Magalhaes NEW
Wickens NestleGermanyAnna Fali UNQUALIFIED
Jennifer AmigonCanadaElwin Sharvill UNQUALIFIED
Rodrigues CampainBrazilStephen Shaw NEGOTIATION
Darci PoquetteBrazilAmy Elsner UNQUALIFIED
Adams MorascaItalyBernardo Dominic NEW
Silvio SlusarskiIndiaOnyama Limba QUALIFIED
Kadeem FlosiBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaIndiaStephen Shaw NEW
Jennifer AmigonFranceBernardo Dominic QUALIFIED
Jeanfrancois VenereRussiaIvan Magalhaes RENEWAL
Silvio SlusarskiAustraliaAsiya Javayant RENEWAL
Wickens NestleBrazilAmy Elsner NEW
Ivar PaprockiGermanyAnna Fali PROPOSAL
Costa DilliardGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng NEW
Chavez BriddickCanadaBernardo Dominic UNQUALIFIED
Aika InouyeItalyAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtAustralia2026-04-07Buckley Miller Wright NEW16Onyama Limba
1001Deepesh ChuiIndia2026-04-18Dorl, James J Esq RENEWAL53Ivan Magalhaes
1002Johnson SergiBrazil2026-04-07Feltz Printing Service UNQUALIFIED77Amy Elsner
1003Morrow RutaIndia2026-04-13Buckley Miller Wright UNQUALIFIED71Anna Fali
1004Alejandro PerinItaly2026-04-03Morlong Associates PROPOSAL15Ioni Bowcher
1005Greenwood BologniaItaly2026-04-15Dorl, James J Esq PROPOSAL42Amy Elsner
1006James ButtRussia2026-04-09Chapman, Ross E Esq PROPOSAL82Ioni Bowcher
1007Clifford RimAustralia2026-04-22Benton, John B Jr NEW98Anna Fali
1008Silvio SlusarskiGermany2026-05-01Feltz Printing Service RENEWAL12Ioni Bowcher
1009Maria MarrierCanada2026-04-04King, Christopher A Esq NEW41Stephen Shaw
1010Jeanfrancois VenereCanada2026-04-11Rousseaux, Michael Esq NEGOTIATION90Asiya Javayant
1011Ivar PaprockiSpain2026-04-30Truhlar And Truhlar Attys NEW14Amy Elsner
1012Faith GillianGermany2026-04-27Buckley Miller Wright PROPOSAL90Amy Elsner
1013Octavia MaletIndia2026-04-26Feltz Printing Service UNQUALIFIED88Onyama Limba
1014Ivar PaprockiItaly2026-04-20Commercial Press PROPOSAL25Onyama Limba
1015Aruna FigeroaGermany2026-04-07Morlong Associates NEW60Anna Fali
1016Izzy GarufiIndia2026-04-30Feltz Printing Service NEGOTIATION91Ioni Bowcher
1017Nicolas IturbideFrance2026-04-10Morlong Associates NEGOTIATION27Amy Elsner
1018Stacey MacleadGermany2026-04-22Chemel, James L Cpa NEGOTIATION74Ivan Magalhaes
1019Adams MorascaAustralia2026-04-12Commercial Press PROPOSAL24Anna Fali
1020Ricardo GauchoUnited Kingdom2026-04-11Feltz Printing Service RENEWAL69Xuxue Feng
1021Cody SaylorsIndia2026-04-27Benton, John B Jr NEW76Anna Fali
1022Darci PoquetteFrance2026-04-03Feiner Bros UNQUALIFIED96Bernardo Dominic
1023Deepesh ChuiGermany2026-04-11Feiner Bros NEW6Elwin Sharvill
1024Juan WieserItaly2026-04-08Rangoni Of Florence UNQUALIFIED19Onyama Limba
1025Julie StensethSpain2026-04-16Benton, John B Jr NEW0Asiya Javayant
1026Isabel BowleyUnited Kingdom2026-04-22Printing Dimensions UNQUALIFIED31Elwin Sharvill
1027Jeanfrancois VenereBrazil2026-04-03Printing Dimensions RENEWAL79Amy Elsner
1028Cody SaylorsUnited Kingdom2026-04-11Commercial Press NEGOTIATION40Elwin Sharvill
1029Johnson SergiJapan2026-04-28Rangoni Of Florence NEW39Asiya Javayant
1030Deepesh ChuiItaly2026-04-08Rousseaux, Michael Esq QUALIFIED26Stephen Shaw
1031Antonio CaudyArgentina2026-04-06Feiner Bros RENEWAL55Stephen Shaw
1032Octavia MaletSpain2026-04-29Feltz Printing Service NEW68Anna Fali
1033Deepesh ChuiGermany2026-04-08Benton, John B Jr NEW63Asiya Javayant
1034Arvin AlbaresItaly2026-04-30Morlong Associates UNQUALIFIED9Bernardo Dominic
1035Munro FerenczBrazil2026-04-24Truhlar And Truhlar Attys NEW78Onyama Limba
1036Kadeem FlosiIndia2026-04-16Buckley Miller Wright QUALIFIED70Bernardo Dominic
1037Jennifer AmigonRussia2026-04-14Chemel, James L Cpa UNQUALIFIED77Onyama Limba
1038Silvio SlusarskiAustralia2026-05-01Benton, John B Jr RENEWAL33Amy Elsner
1039Cody SaylorsItaly2026-04-29Truhlar And Truhlar Attys QUALIFIED24Anna Fali
1040Jeanfrancois VenereItaly2026-04-08Buckley Miller Wright RENEWAL93Xuxue Feng
1041David DarakjyIndia2026-04-07Buckley Miller Wright NEW92Xuxue Feng
1042Leon OldroydArgentina2026-04-15Printing Dimensions NEGOTIATION18Stephen Shaw
1043Nicolas IturbideItaly2026-04-03Morlong Associates QUALIFIED32Xuxue Feng
1044Mujtaba NickaRussia2026-04-26Rousseaux, Michael Esq UNQUALIFIED23Asiya Javayant
1045Alejandro PerinCanada2026-04-23Chapman, Ross E Esq NEW25Amy Elsner
1046Jennifer AmigonCanada2026-04-26Printing Dimensions RENEWAL54Ioni Bowcher
1047Arvin AlbaresAustralia2026-04-25Chanay, Jeffrey A Esq NEW99Xuxue Feng
1048Antonio CaudyIndia2026-04-29Commercial Press NEW21Anna Fali
1049Wickens NestleGermany2026-04-30Commercial Press PROPOSAL33Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerRussiaIoni Bowcher UNQUALIFIED
Wickens NestleJapanOnyama Limba QUALIFIED
Stacey MacleadBrazilIvan Magalhaes NEW
Misaki RoysterJapanIvan Magalhaes RENEWAL
Smith GlickJapanElwin Sharvill RENEWAL
Emily WhobreyJapanStephen Shaw NEGOTIATION
Costa DilliardJapanElwin Sharvill RENEWAL
Tony FollerArgentinaAmy Elsner NEGOTIATION
Jefferson SchemmerAustraliaAmy Elsner UNQUALIFIED
Aika InouyeUnited KingdomBernardo Dominic NEW
James ButtArgentinaIoni Bowcher QUALIFIED
Alejandro PerinIndiaXuxue Feng UNQUALIFIED
Ashley DoeCanadaOnyama Limba PROPOSAL
Silvio SlusarskiArgentinaElwin Sharvill NEGOTIATION
Tony FollerJapanIvan Magalhaes NEGOTIATION
Stacey MacleadCanadaIoni Bowcher UNQUALIFIED
Octavia MaletGermanyAmy Elsner NEW
Ashley DoeUnited KingdomOnyama Limba NEW
Silvio SlusarskiSpainAsiya Javayant PROPOSAL
Juan WieserUnited KingdomOnyama Limba UNQUALIFIED
Aika InouyeIndiaAmy Elsner NEW
Leja CaldareraFranceOnyama Limba NEGOTIATION
Julie StensethJapanXuxue Feng RENEWAL
Claire TollnerSpainAmy Elsner PROPOSAL
Jeanfrancois VenereCanadaAsiya Javayant QUALIFIED
Izzy GarufiRussiaIoni Bowcher NEGOTIATION
Murillo MaletJapanStephen Shaw QUALIFIED
Maisha RulapaughSpainXuxue Feng NEGOTIATION
Arvin AlbaresUnited KingdomStephen Shaw NEW
Jeanfrancois VenereFranceBernardo Dominic RENEWAL
Murillo MaletSpainAsiya Javayant NEGOTIATION
Sinclair WaycottFranceAnna Fali RENEWAL
Jefferson SchemmerFranceStephen Shaw RENEWAL
Johnson SergiRussiaAsiya Javayant NEGOTIATION
Francesco ShinkoAustraliaAsiya Javayant NEGOTIATION
Juan WieserGermanyAmy Elsner NEW
Smith GlickCanadaIvan Magalhaes PROPOSAL
Octavia MaletJapanIvan Magalhaes QUALIFIED
Faith GillianFranceOnyama Limba QUALIFIED
Juan WieserJapanAsiya Javayant NEW
Juan WieserIndiaElwin Sharvill NEGOTIATION
Costa DilliardCanadaStephen Shaw NEGOTIATION
Isabel BowleyGermanyXuxue Feng NEGOTIATION
Faith GillianBrazilIvan Magalhaes QUALIFIED
Mayumi KolmetzSpainXuxue Feng QUALIFIED
Arvin AlbaresArgentinaAsiya Javayant QUALIFIED
Julie StensethCanadaAnna Fali UNQUALIFIED
Cody SaylorsCanadaIvan Magalhaes QUALIFIED
Adams MorascaItalyElwin Sharvill UNQUALIFIED
Murillo MaletRussiaAnna Fali RENEWAL
Frozen Columns
Name
Nicolas Iturbide
Tony Foller
Sinclair Waycott
Maria Marrier
Juan Wieser
Juan Wieser
Misaki Royster
Aika Inouye
Emily Whobrey
Silvio Slusarski
Ivar Paprocki
Johnson Sergi
Deepesh Chui
Leon Oldroyd
Darci Poquette
Tony Foller
Costa Dilliard
Morrow Ruta
Morrow Ruta
Adams Morasca
Wickens Nestle
Greenwood Bolognia
Misaki Royster
Arvin Albares
Maisha Rulapaugh
Leon Oldroyd
Murillo Malet
Morrow Ruta
Johnson Sergi
Aditya Kusko
Jeanfrancois Venere
Claire Tollner
Jones Vocelka
Salvatore Stockham
Chavez Briddick
Alejandro Perin
Octavia Malet
Clifford Rim
Kaitlin Ostrosky
Mayumi Kolmetz
Greenwood Bolognia
Juan Wieser
Nicolas Iturbide
Greenwood Bolognia
Nicolas Iturbide
Leja Caldarera
Johnson Sergi
Darci Poquette
Deepesh Chui
Jefferson Schemmer
IdCountryDate
1000Australia2026-04-04
1001France2026-04-28
1002Italy2026-04-10
1003France2026-04-12
1004Germany2026-04-15
1005Germany2026-04-24
1006Germany2026-04-09
1007Canada2026-04-24
1008Japan2026-04-13
1009France2026-04-07
1010India2026-04-28
1011Spain2026-04-04
1012Brazil2026-04-14
1013India2026-04-18
1014Germany2026-04-24
1015Australia2026-04-22
1016Australia2026-04-26
1017Germany2026-04-07
1018Argentina2026-04-14
1019Japan2026-05-01
1020Spain2026-04-03
1021Italy2026-04-05
1022United Kingdom2026-04-05
1023Argentina2026-04-25
1024Italy2026-04-30
1025Canada2026-04-27
1026Brazil2026-04-06
1027Italy2026-04-10
1028Italy2026-04-16
1029Argentina2026-04-19
1030Canada2026-04-23
1031Japan2026-04-21
1032Australia2026-04-05
1033Spain2026-04-08
1034Italy2026-04-11
1035France2026-04-08
1036Brazil2026-05-01
1037Argentina2026-04-11
1038Japan2026-04-18
1039France2026-04-06
1040Spain2026-04-18
1041Japan2026-04-23
1042Australia2026-04-29
1043Germany2026-04-04
1044France2026-04-15
1045Germany2026-04-19
1046Japan2026-04-07
1047Spain2026-04-04
1048Canada2026-04-29
1049Brazil2026-04-22

On-Demand Data

NameIdCountryDate
Silvio Slusarski1000Italy2026-04-17
Ricardo Gaucho1001Argentina2026-04-07
Francesco Shinko1002Russia2026-04-05
James Butt1003Argentina2026-04-03
Leja Caldarera1004Spain2026-04-21
Misaki Royster1005United Kingdom2026-04-20
David Darakjy1006Australia2026-04-04
Johnson Sergi1007Russia2026-04-23
Antonio Caudy1008India2026-04-12
Jeanfrancois Venere1009Japan2026-04-07
Julie Stenseth1010Italy2026-04-05
Wickens Nestle1011Germany2026-04-18
Jeanfrancois Venere1012Germany2026-04-15
Maria Marrier1013Australia2026-04-05
Maisha Rulapaugh1014Australia2026-04-08
Sinclair Waycott1015France2026-04-08
Jennifer Amigon1016Canada2026-04-13
Ivar Paprocki1017Australia2026-05-01
Tony Foller1018Argentina2026-04-06
Nicolas Iturbide1019Italy2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonAustraliaXuxue Feng NEGOTIATION
Kaitlin OstroskyGermanyStephen Shaw RENEWAL
Kaitlin OstroskyJapanXuxue Feng RENEWAL
Silvio SlusarskiSpainElwin Sharvill QUALIFIED
Nicolas IturbideFranceAnna Fali NEW
Mujtaba NickaFranceXuxue Feng UNQUALIFIED
Claire TollnerRussiaElwin Sharvill NEW
Jefferson SchemmerArgentinaAsiya Javayant NEW
Mujtaba NickaItalyStephen Shaw NEGOTIATION
Izzy GarufiArgentinaStephen Shaw QUALIFIED
Misaki RoysterCanadaBernardo Dominic NEGOTIATION
Jeanfrancois VenereSpainXuxue Feng RENEWAL
David DarakjyItalyIvan Magalhaes QUALIFIED
David DarakjyJapanIoni Bowcher QUALIFIED
Nicolas IturbideItalyStephen Shaw RENEWAL
Greenwood BologniaSpainStephen Shaw UNQUALIFIED
James ButtRussiaOnyama Limba PROPOSAL
Isabel BowleyFranceOnyama Limba NEW
Aika InouyeItalyOnyama Limba NEW
Arvin AlbaresFranceBernardo Dominic RENEWAL
Alejandro PerinUnited KingdomElwin Sharvill QUALIFIED
Darci PoquetteAustraliaOnyama Limba NEGOTIATION
Morrow RutaFranceIoni Bowcher NEGOTIATION
Ivar PaprockiSpainAmy Elsner UNQUALIFIED
Jennifer AmigonRussiaIoni Bowcher NEGOTIATION
Salvatore StockhamJapanIoni Bowcher NEW
Murillo MaletGermanyStephen Shaw NEGOTIATION
Wickens NestleArgentinaOnyama Limba RENEWAL
Julie StensethItalyAsiya Javayant PROPOSAL
Izzy GarufiBrazilOnyama Limba NEGOTIATION
Isabel BowleyUnited KingdomAmy Elsner PROPOSAL
Maria MarrierArgentinaAnna Fali QUALIFIED
Ivar PaprockiRussiaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiFranceBernardo Dominic RENEWAL
Ashley DoeSpainAnna Fali QUALIFIED
Darci PoquetteItalyAsiya Javayant PROPOSAL
Adams MorascaUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoArgentinaBernardo Dominic RENEWAL
Johnson SergiAustraliaIoni Bowcher NEGOTIATION
Stacey MacleadJapanAsiya Javayant QUALIFIED

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