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
Clifford RimUnited KingdomAsiya Javayant QUALIFIED
Sinclair WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Silvio SlusarskiSpainAsiya Javayant NEW
Juan WieserFranceElwin Sharvill PROPOSAL
Julie StensethItalyIvan Magalhaes QUALIFIED
Faith GillianRussiaXuxue Feng RENEWAL
Claire TollnerRussiaIvan Magalhaes NEW
Smith GlickUnited KingdomElwin Sharvill QUALIFIED
Emily WhobreyJapanAnna Fali PROPOSAL
Stacey MacleadUnited KingdomIoni Bowcher PROPOSAL
Stacey MacleadGermanyXuxue Feng NEGOTIATION
Jones VocelkaAustraliaIvan Magalhaes NEW
Claire TollnerItalyStephen Shaw QUALIFIED
Jefferson SchemmerGermanyStephen Shaw RENEWAL
Darci PoquetteAustraliaElwin Sharvill UNQUALIFIED
Munro FerenczRussiaAsiya Javayant NEGOTIATION
Rodrigues CampainBrazilXuxue Feng NEGOTIATION
Maria MarrierGermanyOnyama Limba NEGOTIATION
Leja CaldareraIndiaStephen Shaw NEW
Greenwood BologniaAustraliaElwin Sharvill NEGOTIATION
Alejandro PerinGermanyOnyama Limba NEGOTIATION
Salvatore StockhamCanadaIoni Bowcher QUALIFIED
Jennifer AmigonIndiaAmy Elsner QUALIFIED
Leon OldroydSpainOnyama Limba UNQUALIFIED
Munro FerenczSpainBernardo Dominic UNQUALIFIED
Costa DilliardJapanXuxue Feng UNQUALIFIED
Costa DilliardArgentinaAnna Fali RENEWAL
Emily WhobreyRussiaAsiya Javayant NEGOTIATION
Deepesh ChuiArgentinaIoni Bowcher NEW
Francesco ShinkoJapanBernardo Dominic RENEWAL
Nicolas IturbideGermanyAmy Elsner RENEWAL
Izzy GarufiAustraliaAnna Fali PROPOSAL
Sinclair WaycottItalyStephen Shaw RENEWAL
Greenwood BologniaSpainStephen Shaw RENEWAL
Maria MarrierGermanyXuxue Feng NEW
Jeanfrancois VenereItalyAmy Elsner NEW
Aruna FigeroaGermanyXuxue Feng NEGOTIATION
Ricardo GauchoSpainAnna Fali UNQUALIFIED
Jones VocelkaRussiaIoni Bowcher QUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Aika InouyeArgentinaAmy Elsner NEW
Jones VocelkaSpainIvan Magalhaes NEGOTIATION
Octavia MaletSpainElwin Sharvill PROPOSAL
Costa DilliardRussiaXuxue Feng NEGOTIATION
Izzy GarufiRussiaBernardo Dominic QUALIFIED
Munro FerenczUnited KingdomAnna Fali NEW
Adams MorascaGermanyIvan Magalhaes NEW
Emily WhobreyCanadaElwin Sharvill NEW
Deepesh ChuiCanadaIvan Magalhaes NEW
David DarakjyUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaBrazilIvan Magalhaes PROPOSAL
Kadeem FlosiRussiaAsiya Javayant NEGOTIATION
Ashley DoeAustraliaOnyama Limba NEGOTIATION
Munro FerenczIndiaBernardo Dominic RENEWAL
Arvin AlbaresJapanOnyama Limba NEGOTIATION
Murillo MaletAustraliaAsiya Javayant RENEWAL
David DarakjyBrazilElwin Sharvill UNQUALIFIED
Arvin AlbaresAustraliaIvan Magalhaes PROPOSAL
David DarakjySpainXuxue Feng PROPOSAL
Arvin AlbaresArgentinaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoAustralia2026-06-14Dorl, James J Esq NEW42Stephen Shaw
1001David DarakjyGermany2026-06-09Feltz Printing Service PROPOSAL41Ivan Magalhaes
1002Emily WhobreyItaly2026-05-23Chanay, Jeffrey A Esq NEGOTIATION33Stephen Shaw
1003Rodrigues CampainCanada2026-06-15Printing Dimensions QUALIFIED9Asiya Javayant
1004Ivar PaprockiIndia2026-05-31King, Christopher A Esq UNQUALIFIED54Amy Elsner
1005Mayumi KolmetzUnited Kingdom2026-06-18Rangoni Of Florence PROPOSAL73Ivan Magalhaes
1006Adams MorascaCanada2026-06-20Rousseaux, Michael Esq QUALIFIED4Ioni Bowcher
1007Claire TollnerRussia2026-06-18Commercial Press RENEWAL59Anna Fali
1008Ivar PaprockiUnited Kingdom2026-06-17Chemel, James L Cpa RENEWAL30Ioni Bowcher
1009David DarakjyArgentina2026-05-28Rangoni Of Florence NEW40Xuxue Feng
1010Jones VocelkaUnited Kingdom2026-06-04Morlong Associates NEW78Amy Elsner
1011Cody SaylorsFrance2026-06-01Truhlar And Truhlar Attys UNQUALIFIED17Ioni Bowcher
1012Juan WieserSpain2026-06-16Benton, John B Jr NEGOTIATION88Amy Elsner
1013Johnson SergiSpain2026-05-27Dorl, James J Esq NEGOTIATION79Asiya Javayant
1014Ivar PaprockiCanada2026-06-11Chemel, James L Cpa RENEWAL91Ivan Magalhaes
1015Octavia MaletJapan2026-06-19Buckley Miller Wright UNQUALIFIED47Xuxue Feng
1016Adams MorascaCanada2026-06-03Feiner Bros NEGOTIATION32Asiya Javayant
1017Kadeem FlosiSpain2026-06-12King, Christopher A Esq PROPOSAL15Ivan Magalhaes
1018James ButtArgentina2026-05-22King, Christopher A Esq PROPOSAL81Ivan Magalhaes
1019Leja CaldareraRussia2026-06-07Dorl, James J Esq PROPOSAL86Amy Elsner
1020Kadeem FlosiAustralia2026-06-08Feltz Printing Service RENEWAL31Asiya Javayant
1021Juan WieserAustralia2026-06-12Chemel, James L Cpa NEGOTIATION38Amy Elsner
1022Stacey MacleadSpain2026-05-24Rousseaux, Michael Esq NEGOTIATION42Anna Fali
1023Aditya KuskoAustralia2026-06-06Dorl, James J Esq PROPOSAL32Amy Elsner
1024James ButtCanada2026-05-22Printing Dimensions NEW11Xuxue Feng
1025Aditya KuskoGermany2026-05-31Benton, John B Jr UNQUALIFIED2Anna Fali
1026Ricardo GauchoRussia2026-06-19Rousseaux, Michael Esq PROPOSAL75Ioni Bowcher
1027Emily WhobreyIndia2026-06-02Rousseaux, Michael Esq UNQUALIFIED91Onyama Limba
1028Ivar PaprockiItaly2026-05-24Rangoni Of Florence QUALIFIED13Bernardo Dominic
1029Octavia MaletItaly2026-06-11Printing Dimensions NEW71Amy Elsner
1030Jeanfrancois VenereJapan2026-06-04Rousseaux, Michael Esq NEW3Onyama Limba
1031Ricardo GauchoGermany2026-06-13Chapman, Ross E Esq RENEWAL5Ioni Bowcher
1032Nicolas IturbideIndia2026-06-13Rousseaux, Michael Esq UNQUALIFIED58Xuxue Feng
1033Isabel BowleySpain2026-05-26Commercial Press RENEWAL43Ivan Magalhaes
1034Jones VocelkaGermany2026-06-01Printing Dimensions PROPOSAL42Anna Fali
1035David DarakjySpain2026-06-02Benton, John B Jr RENEWAL16Asiya Javayant
1036Jennifer AmigonAustralia2026-05-30Buckley Miller Wright NEW59Stephen Shaw
1037Jones VocelkaArgentina2026-06-03Rousseaux, Michael Esq NEW68Stephen Shaw
1038Izzy GarufiJapan2026-06-10Benton, John B Jr NEGOTIATION81Asiya Javayant
1039Aruna FigeroaFrance2026-05-30Chanay, Jeffrey A Esq RENEWAL3Onyama Limba
1040Stacey MacleadItaly2026-06-06Rousseaux, Michael Esq RENEWAL24Anna Fali
1041Greenwood BologniaSpain2026-06-14Rousseaux, Michael Esq QUALIFIED96Stephen Shaw
1042Stacey MacleadIndia2026-06-17Buckley Miller Wright RENEWAL88Stephen Shaw
1043Johnson SergiItaly2026-06-07Feltz Printing Service PROPOSAL93Onyama Limba
1044Emily WhobreyIndia2026-06-11Chapman, Ross E Esq PROPOSAL5Ivan Magalhaes
1045Kadeem FlosiBrazil2026-06-03Chapman, Ross E Esq RENEWAL72Ioni Bowcher
1046Juan WieserArgentina2026-05-24Morlong Associates UNQUALIFIED94Bernardo Dominic
1047Faith GillianBrazil2026-05-24Buckley Miller Wright UNQUALIFIED7Anna Fali
1048Maisha RulapaughBrazil2026-06-10Chapman, Ross E Esq PROPOSAL69Bernardo Dominic
1049Aditya KuskoItaly2026-06-14Chemel, James L Cpa RENEWAL36Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiJapanAnna Fali QUALIFIED
David DarakjyIndiaAnna Fali QUALIFIED
James ButtIndiaOnyama Limba NEGOTIATION
Munro FerenczJapanIvan Magalhaes UNQUALIFIED
Mujtaba NickaRussiaOnyama Limba PROPOSAL
Ricardo GauchoItalyBernardo Dominic NEW
Johnson SergiGermanyBernardo Dominic NEGOTIATION
Salvatore StockhamFranceIoni Bowcher NEGOTIATION
Adams MorascaBrazilStephen Shaw PROPOSAL
Clifford RimItalyIoni Bowcher NEW
Aika InouyeItalyAmy Elsner RENEWAL
Johnson SergiFranceAmy Elsner UNQUALIFIED
Nicolas IturbideItalyElwin Sharvill RENEWAL
Alejandro PerinItalyOnyama Limba QUALIFIED
Emily WhobreyRussiaOnyama Limba UNQUALIFIED
Costa DilliardIndiaOnyama Limba UNQUALIFIED
Ashley DoeArgentinaXuxue Feng NEW
David DarakjyJapanAnna Fali PROPOSAL
Ricardo GauchoGermanyOnyama Limba NEW
Octavia MaletIndiaIoni Bowcher PROPOSAL
Leon OldroydIndiaStephen Shaw NEW
Faith GillianUnited KingdomElwin Sharvill PROPOSAL
Murillo MaletJapanOnyama Limba RENEWAL
Maria MarrierItalyIvan Magalhaes QUALIFIED
Chavez BriddickIndiaBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanAnna Fali RENEWAL
Mayumi KolmetzRussiaAsiya Javayant NEW
James ButtUnited KingdomStephen Shaw NEGOTIATION
Leja CaldareraAustraliaOnyama Limba PROPOSAL
Maria MarrierCanadaStephen Shaw NEGOTIATION
Chavez BriddickIndiaStephen Shaw NEGOTIATION
Alejandro PerinIndiaOnyama Limba QUALIFIED
Octavia MaletBrazilAnna Fali RENEWAL
Ivar PaprockiArgentinaIvan Magalhaes PROPOSAL
Ricardo GauchoUnited KingdomOnyama Limba NEW
Faith GillianUnited KingdomOnyama Limba RENEWAL
Johnson SergiArgentinaAsiya Javayant UNQUALIFIED
Johnson SergiSpainBernardo Dominic RENEWAL
Isabel BowleyArgentinaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyCanadaStephen Shaw QUALIFIED
Kaitlin OstroskyRussiaAnna Fali UNQUALIFIED
Ricardo GauchoAustraliaXuxue Feng UNQUALIFIED
Claire TollnerFranceOnyama Limba NEW
Ashley DoeRussiaAnna Fali NEGOTIATION
Octavia MaletSpainStephen Shaw QUALIFIED
Octavia MaletAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyArgentinaIoni Bowcher QUALIFIED
Emily WhobreyArgentinaAnna Fali RENEWAL
Ivar PaprockiSpainStephen Shaw PROPOSAL
Mayumi KolmetzIndiaAmy Elsner NEW
Frozen Columns
Name
Jeanfrancois Venere
Sinclair Waycott
Tony Foller
Darci Poquette
Salvatore Stockham
Aika Inouye
Leja Caldarera
Adams Morasca
Tony Foller
Cody Saylors
Costa Dilliard
Izzy Garufi
Costa Dilliard
Adams Morasca
Francesco Shinko
Nicolas Iturbide
Octavia Malet
Izzy Garufi
Salvatore Stockham
Izzy Garufi
Kadeem Flosi
Claire Tollner
Stacey Maclead
Arvin Albares
Wickens Nestle
Maria Marrier
Jennifer Amigon
Munro Ferencz
Juan Wieser
Salvatore Stockham
Darci Poquette
Stacey Maclead
Julie Stenseth
Munro Ferencz
Ricardo Gaucho
Kaitlin Ostrosky
Izzy Garufi
Jennifer Amigon
Johnson Sergi
Julie Stenseth
Claire Tollner
Francesco Shinko
Ricardo Gaucho
Ivar Paprocki
Chavez Briddick
Leja Caldarera
Murillo Malet
Julie Stenseth
Johnson Sergi
Izzy Garufi
IdCountryDate
1000Italy2026-06-20
1001Australia2026-06-16
1002Australia2026-06-05
1003Italy2026-06-16
1004Italy2026-06-10
1005Canada2026-06-01
1006Japan2026-06-03
1007Japan2026-05-30
1008Argentina2026-06-01
1009Japan2026-06-06
1010Spain2026-06-14
1011Russia2026-06-06
1012Spain2026-06-13
1013Italy2026-06-04
1014Argentina2026-05-24
1015Argentina2026-06-09
1016Brazil2026-05-29
1017Russia2026-05-25
1018Argentina2026-05-23
1019Argentina2026-06-05
1020Spain2026-06-03
1021Russia2026-06-16
1022Spain2026-05-24
1023Argentina2026-05-31
1024Germany2026-06-05
1025Japan2026-06-17
1026Canada2026-06-19
1027Russia2026-06-19
1028Italy2026-06-18
1029Germany2026-06-03
1030Spain2026-06-09
1031Brazil2026-06-15
1032Germany2026-05-28
1033Australia2026-05-23
1034Spain2026-05-26
1035Japan2026-05-23
1036Japan2026-05-31
1037Argentina2026-06-07
1038Japan2026-06-12
1039Brazil2026-05-31
1040Brazil2026-06-01
1041Italy2026-06-03
1042Canada2026-06-08
1043Russia2026-06-17
1044Russia2026-06-15
1045Russia2026-05-27
1046Spain2026-06-15
1047Australia2026-06-05
1048France2026-06-08
1049Brazil2026-05-30

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Germany2026-05-27
Murillo Malet1001Italy2026-06-20
Rodrigues Campain1002Brazil2026-06-06
Arvin Albares1003Russia2026-06-13
Jefferson Schemmer1004Spain2026-06-11
Ricardo Gaucho1005Japan2026-06-02
Jeanfrancois Venere1006India2026-06-08
Chavez Briddick1007Italy2026-06-10
Alejandro Perin1008Argentina2026-05-26
James Butt1009Japan2026-06-05
Greenwood Bolognia1010India2026-06-17
Faith Gillian1011Italy2026-05-23
James Butt1012Canada2026-06-11
Francesco Shinko1013India2026-05-28
Jeanfrancois Venere1014Germany2026-06-15
David Darakjy1015Argentina2026-06-04
Tony Foller1016Japan2026-06-01
Johnson Sergi1017Brazil2026-06-16
Emily Whobrey1018Australia2026-06-19
Claire Tollner1019Germany2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresFranceElwin Sharvill NEGOTIATION
Aruna FigeroaItalyIvan Magalhaes RENEWAL
Johnson SergiSpainXuxue Feng UNQUALIFIED
Aditya KuskoItalyElwin Sharvill NEGOTIATION
Greenwood BologniaArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereCanadaIoni Bowcher NEW
Faith GillianIndiaAnna Fali QUALIFIED
Antonio CaudyArgentinaStephen Shaw NEGOTIATION
Ashley DoeAustraliaAnna Fali QUALIFIED
Faith GillianRussiaIoni Bowcher PROPOSAL
Clifford RimArgentinaBernardo Dominic NEW
Alejandro PerinFranceStephen Shaw NEW
Jefferson SchemmerRussiaIvan Magalhaes PROPOSAL
David DarakjyArgentinaBernardo Dominic QUALIFIED
David DarakjyJapanAsiya Javayant NEW
Silvio SlusarskiFranceOnyama Limba QUALIFIED
Johnson SergiItalyStephen Shaw RENEWAL
Emily WhobreyUnited KingdomXuxue Feng NEW
Tony FollerAustraliaXuxue Feng NEW
Nicolas IturbideAustraliaOnyama Limba NEW
Silvio SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Darci PoquetteItalyBernardo Dominic NEW
Clifford RimFranceAsiya Javayant NEW
Nicolas IturbideArgentinaIoni Bowcher NEW
Izzy GarufiCanadaOnyama Limba RENEWAL
Mayumi KolmetzItalyOnyama Limba UNQUALIFIED
Jennifer AmigonGermanyAmy Elsner NEW
Wickens NestleArgentinaOnyama Limba PROPOSAL
Jennifer AmigonCanadaBernardo Dominic QUALIFIED
Izzy GarufiRussiaAmy Elsner RENEWAL
Ashley DoeJapanBernardo Dominic NEW
Mayumi KolmetzBrazilStephen Shaw QUALIFIED
Faith GillianCanadaXuxue Feng NEGOTIATION
Aruna FigeroaCanadaAsiya Javayant NEW
Izzy GarufiArgentinaXuxue Feng PROPOSAL
Kaitlin OstroskyRussiaAnna Fali NEW
Julie StensethItalyIoni Bowcher NEGOTIATION
Isabel BowleyBrazilAnna Fali QUALIFIED
Izzy GarufiSpainAmy Elsner NEW
Leja CaldareraAustraliaXuxue Feng 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>