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
Salvatore StockhamSpainIoni Bowcher UNQUALIFIED
Morrow RutaSpainStephen Shaw QUALIFIED
Rodrigues CampainRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamCanadaBernardo Dominic UNQUALIFIED
Smith GlickSpainOnyama Limba RENEWAL
Misaki RoysterAustraliaIoni Bowcher UNQUALIFIED
Greenwood BologniaItalyBernardo Dominic NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes NEW
Mujtaba NickaJapanOnyama Limba PROPOSAL
Silvio SlusarskiItalyStephen Shaw UNQUALIFIED
Jefferson SchemmerUnited KingdomElwin Sharvill RENEWAL
Alejandro PerinAustraliaXuxue Feng QUALIFIED
Murillo MaletUnited KingdomAsiya Javayant RENEWAL
Antonio CaudyAustraliaAnna Fali UNQUALIFIED
Leja CaldareraJapanBernardo Dominic QUALIFIED
Kadeem FlosiArgentinaAsiya Javayant NEGOTIATION
Maria MarrierItalyIvan Magalhaes NEW
Leon OldroydAustraliaStephen Shaw NEW
Alejandro PerinBrazilStephen Shaw NEGOTIATION
James ButtItalyAmy Elsner NEW
Adams MorascaRussiaOnyama Limba NEGOTIATION
Sinclair WaycottAustraliaXuxue Feng PROPOSAL
Aditya KuskoIndiaIoni Bowcher UNQUALIFIED
Claire TollnerRussiaIoni Bowcher RENEWAL
Chavez BriddickSpainAmy Elsner NEW
Aika InouyeSpainBernardo Dominic NEW
Leja CaldareraJapanXuxue Feng UNQUALIFIED
Clifford RimRussiaBernardo Dominic PROPOSAL
Aditya KuskoItalyIvan Magalhaes NEW
Izzy GarufiFranceIoni Bowcher RENEWAL
Faith GillianGermanyStephen Shaw UNQUALIFIED
Alejandro PerinFranceElwin Sharvill RENEWAL
Stacey MacleadArgentinaXuxue Feng QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill QUALIFIED
Greenwood BologniaJapanStephen Shaw RENEWAL
Julie StensethFranceAnna Fali NEW
Juan WieserRussiaAnna Fali NEW
Alejandro PerinRussiaIoni Bowcher NEGOTIATION
Tony FollerSpainOnyama Limba QUALIFIED
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Ivar PaprockiCanadaElwin Sharvill QUALIFIED
Stacey MacleadJapanOnyama Limba NEW
Maisha RulapaughArgentinaStephen Shaw RENEWAL
Chavez BriddickArgentinaAnna Fali NEGOTIATION
Leon OldroydFranceElwin Sharvill UNQUALIFIED
Jones VocelkaRussiaOnyama Limba QUALIFIED
Rodrigues CampainFranceXuxue Feng NEGOTIATION
Clifford RimRussiaAmy Elsner NEW
Jones VocelkaUnited KingdomXuxue Feng NEW
Mujtaba NickaBrazilAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiBrazilXuxue Feng UNQUALIFIED
Mayumi KolmetzRussiaIvan Magalhaes NEW
Jennifer AmigonJapanAnna Fali NEGOTIATION
Greenwood BologniaUnited KingdomXuxue Feng NEW
Alejandro PerinGermanyIoni Bowcher NEW
Juan WieserGermanyBernardo Dominic UNQUALIFIED
Clifford RimGermanyAsiya Javayant NEW
Darci PoquetteRussiaIoni Bowcher RENEWAL
Cody SaylorsArgentinaAsiya Javayant NEGOTIATION
Antonio CaudyArgentinaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyJapan2026-05-12Benton, John B Jr UNQUALIFIED18Ivan Magalhaes
1001Smith GlickGermany2026-05-02Rousseaux, Michael Esq PROPOSAL28Stephen Shaw
1002Mujtaba NickaJapan2026-05-20Chemel, James L Cpa RENEWAL68Anna Fali
1003Kadeem FlosiUnited Kingdom2026-05-01Chapman, Ross E Esq QUALIFIED1Anna Fali
1004David DarakjyRussia2026-05-16Chapman, Ross E Esq PROPOSAL57Stephen Shaw
1005Leon OldroydAustralia2026-05-17Morlong Associates RENEWAL35Anna Fali
1006Jefferson SchemmerCanada2026-05-05Feiner Bros RENEWAL38Stephen Shaw
1007Clifford RimJapan2026-05-13Buckley Miller Wright RENEWAL94Onyama Limba
1008Faith GillianJapan2026-05-09King, Christopher A Esq PROPOSAL39Onyama Limba
1009Munro FerenczUnited Kingdom2026-05-02King, Christopher A Esq NEGOTIATION83Anna Fali
1010Salvatore StockhamIndia2026-05-06King, Christopher A Esq QUALIFIED32Elwin Sharvill
1011Nicolas IturbideSpain2026-05-12Printing Dimensions RENEWAL57Amy Elsner
1012Chavez BriddickCanada2026-04-29Truhlar And Truhlar Attys RENEWAL66Asiya Javayant
1013Leja CaldareraGermany2026-05-04Chanay, Jeffrey A Esq QUALIFIED10Xuxue Feng
1014Chavez BriddickGermany2026-04-27Chanay, Jeffrey A Esq PROPOSAL5Anna Fali
1015Munro FerenczCanada2026-05-11Feltz Printing Service UNQUALIFIED34Asiya Javayant
1016Aditya KuskoBrazil2026-05-15Rangoni Of Florence QUALIFIED46Xuxue Feng
1017Ashley DoeRussia2026-05-11Truhlar And Truhlar Attys QUALIFIED21Elwin Sharvill
1018Adams MorascaArgentina2026-05-01Truhlar And Truhlar Attys NEW55Elwin Sharvill
1019Jones VocelkaJapan2026-05-05Feiner Bros UNQUALIFIED65Anna Fali
1020Leon OldroydJapan2026-04-27Rousseaux, Michael Esq UNQUALIFIED60Amy Elsner
1021David DarakjyCanada2026-05-20Chapman, Ross E Esq QUALIFIED87Ioni Bowcher
1022Costa DilliardItaly2026-05-21Benton, John B Jr PROPOSAL78Stephen Shaw
1023Silvio SlusarskiIndia2026-05-24Benton, John B Jr QUALIFIED24Elwin Sharvill
1024Silvio SlusarskiCanada2026-05-03Commercial Press UNQUALIFIED12Asiya Javayant
1025Cody SaylorsAustralia2026-04-30Morlong Associates QUALIFIED61Elwin Sharvill
1026Johnson SergiAustralia2026-05-06Chemel, James L Cpa QUALIFIED35Bernardo Dominic
1027Kaitlin OstroskyJapan2026-05-21Chemel, James L Cpa PROPOSAL96Amy Elsner
1028Aika InouyeAustralia2026-04-29Chapman, Ross E Esq QUALIFIED55Elwin Sharvill
1029Alejandro PerinSpain2026-05-14Printing Dimensions RENEWAL9Anna Fali
1030Jones VocelkaRussia2026-05-03Chapman, Ross E Esq RENEWAL71Elwin Sharvill
1031Mujtaba NickaIndia2026-04-30Chemel, James L Cpa NEGOTIATION73Bernardo Dominic
1032Jeanfrancois VenereIndia2026-05-18Feiner Bros RENEWAL21Onyama Limba
1033Darci PoquetteArgentina2026-05-15Rangoni Of Florence NEW3Amy Elsner
1034Misaki RoysterBrazil2026-05-09Feiner Bros NEGOTIATION13Onyama Limba
1035Alejandro PerinArgentina2026-05-24Chanay, Jeffrey A Esq QUALIFIED80Anna Fali
1036Mayumi KolmetzSpain2026-05-24Benton, John B Jr QUALIFIED36Stephen Shaw
1037Rodrigues CampainItaly2026-05-23Rangoni Of Florence RENEWAL83Stephen Shaw
1038Claire TollnerIndia2026-05-14Truhlar And Truhlar Attys NEGOTIATION89Onyama Limba
1039Sinclair WaycottBrazil2026-05-22Morlong Associates PROPOSAL73Xuxue Feng
1040Faith GillianGermany2026-05-03Feiner Bros RENEWAL22Ivan Magalhaes
1041Silvio SlusarskiArgentina2026-05-04Morlong Associates PROPOSAL75Xuxue Feng
1042Mayumi KolmetzItaly2026-05-03Chapman, Ross E Esq QUALIFIED97Ivan Magalhaes
1043Faith GillianRussia2026-05-13Commercial Press RENEWAL21Amy Elsner
1044Ivar PaprockiJapan2026-05-15Buckley Miller Wright QUALIFIED55Onyama Limba
1045Cody SaylorsGermany2026-05-15Buckley Miller Wright RENEWAL16Anna Fali
1046Cody SaylorsSpain2026-05-16Dorl, James J Esq PROPOSAL94Ivan Magalhaes
1047Kadeem FlosiBrazil2026-05-24Printing Dimensions RENEWAL2Ioni Bowcher
1048Misaki RoysterJapan2026-05-24Commercial Press RENEWAL77Asiya Javayant
1049Leon OldroydItaly2026-05-24Truhlar And Truhlar Attys RENEWAL52Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaRussiaAsiya Javayant UNQUALIFIED
Arvin AlbaresJapanOnyama Limba NEGOTIATION
Jones VocelkaIndiaAmy Elsner RENEWAL
Sinclair WaycottAustraliaElwin Sharvill NEW
Jeanfrancois VenereBrazilIvan Magalhaes PROPOSAL
Ricardo GauchoItalyElwin Sharvill UNQUALIFIED
Misaki RoysterIndiaXuxue Feng QUALIFIED
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Morrow RutaGermanyBernardo Dominic NEGOTIATION
Isabel BowleyCanadaOnyama Limba QUALIFIED
Claire TollnerJapanBernardo Dominic NEW
Jeanfrancois VenereSpainStephen Shaw PROPOSAL
Isabel BowleyItalyElwin Sharvill NEGOTIATION
Munro FerenczArgentinaAnna Fali NEGOTIATION
Costa DilliardArgentinaAnna Fali PROPOSAL
Murillo MaletIndiaAsiya Javayant PROPOSAL
Leon OldroydJapanElwin Sharvill PROPOSAL
Kadeem FlosiCanadaAsiya Javayant RENEWAL
Antonio CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Smith GlickIndiaAsiya Javayant QUALIFIED
James ButtJapanBernardo Dominic NEW
Leja CaldareraBrazilXuxue Feng PROPOSAL
Octavia MaletIndiaXuxue Feng PROPOSAL
Alejandro PerinArgentinaBernardo Dominic PROPOSAL
Johnson SergiFranceAnna Fali NEGOTIATION
James ButtItalyElwin Sharvill UNQUALIFIED
Clifford RimItalyIvan Magalhaes NEW
Maisha RulapaughRussiaAnna Fali UNQUALIFIED
Ricardo GauchoRussiaXuxue Feng RENEWAL
Stacey MacleadAustraliaStephen Shaw RENEWAL
Mujtaba NickaIndiaAsiya Javayant RENEWAL
Izzy GarufiSpainStephen Shaw NEW
Francesco ShinkoSpainXuxue Feng NEW
David DarakjyIndiaAnna Fali QUALIFIED
Julie StensethUnited KingdomElwin Sharvill PROPOSAL
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Salvatore StockhamIndiaIvan Magalhaes QUALIFIED
Munro FerenczSpainXuxue Feng UNQUALIFIED
James ButtFranceAnna Fali NEW
Morrow RutaArgentinaIoni Bowcher PROPOSAL
Jones VocelkaIndiaElwin Sharvill RENEWAL
Leon OldroydCanadaElwin Sharvill QUALIFIED
Clifford RimSpainIvan Magalhaes QUALIFIED
Jennifer AmigonJapanXuxue Feng NEGOTIATION
Maria MarrierBrazilOnyama Limba UNQUALIFIED
Aruna FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Morrow RutaCanadaAmy Elsner NEW
Octavia MaletItalyStephen Shaw NEW
James ButtRussiaOnyama Limba QUALIFIED
Salvatore StockhamUnited KingdomAnna Fali PROPOSAL
Frozen Columns
Name
Morrow Ruta
Leja Caldarera
Silvio Slusarski
Mayumi Kolmetz
Munro Ferencz
Munro Ferencz
Rodrigues Campain
Aruna Figeroa
Costa Dilliard
Arvin Albares
Darci Poquette
Alejandro Perin
Johnson Sergi
David Darakjy
Costa Dilliard
Jones Vocelka
Isabel Bowley
Emily Whobrey
Julie Stenseth
Jeanfrancois Venere
Kadeem Flosi
Leja Caldarera
Alejandro Perin
Aruna Figeroa
David Darakjy
Mujtaba Nicka
Octavia Malet
Jefferson Schemmer
Greenwood Bolognia
Francesco Shinko
Ricardo Gaucho
James Butt
David Darakjy
Murillo Malet
Claire Tollner
Alejandro Perin
Stacey Maclead
Antonio Caudy
Leon Oldroyd
Isabel Bowley
Silvio Slusarski
Octavia Malet
Leon Oldroyd
Kadeem Flosi
Maisha Rulapaugh
Leja Caldarera
Mujtaba Nicka
Francesco Shinko
Adams Morasca
David Darakjy
IdCountryDate
1000Brazil2026-05-06
1001Australia2026-05-10
1002Australia2026-05-23
1003Italy2026-05-18
1004Canada2026-05-15
1005Canada2026-05-16
1006Brazil2026-05-13
1007France2026-04-29
1008Japan2026-05-23
1009Canada2026-05-06
1010Brazil2026-05-22
1011Russia2026-04-29
1012Italy2026-05-25
1013Japan2026-05-16
1014India2026-05-01
1015Australia2026-05-16
1016Germany2026-05-09
1017United Kingdom2026-04-29
1018France2026-04-29
1019Spain2026-04-27
1020France2026-05-23
1021Russia2026-05-04
1022India2026-05-16
1023Germany2026-05-18
1024France2026-05-16
1025Brazil2026-04-28
1026Russia2026-05-10
1027Canada2026-05-14
1028Spain2026-05-13
1029Brazil2026-05-08
1030Australia2026-05-14
1031United Kingdom2026-05-18
1032Canada2026-04-27
1033Russia2026-05-07
1034Canada2026-05-01
1035France2026-05-02
1036France2026-04-27
1037Japan2026-05-09
1038United Kingdom2026-05-24
1039France2026-05-24
1040Italy2026-05-09
1041Italy2026-05-06
1042France2026-05-17
1043Germany2026-05-24
1044Brazil2026-05-19
1045Australia2026-05-22
1046Japan2026-05-12
1047Germany2026-04-29
1048Australia2026-05-11
1049Brazil2026-04-30

On-Demand Data

NameIdCountryDate
Adams Morasca1000India2026-05-20
Adams Morasca1001Brazil2026-05-02
Emily Whobrey1002Argentina2026-05-24
Costa Dilliard1003Germany2026-05-04
Chavez Briddick1004Brazil2026-05-19
Deepesh Chui1005Russia2026-05-02
Antonio Caudy1006Spain2026-05-11
Chavez Briddick1007Brazil2026-05-24
James Butt1008Russia2026-05-25
Julie Stenseth1009Germany2026-05-18
David Darakjy1010France2026-05-02
Tony Foller1011India2026-05-26
Ricardo Gaucho1012Canada2026-05-24
Sinclair Waycott1013Argentina2026-05-09
Clifford Rim1014Canada2026-05-12
Stacey Maclead1015United Kingdom2026-05-18
Maisha Rulapaugh1016Argentina2026-05-17
Ricardo Gaucho1017Canada2026-05-09
Ivar Paprocki1018Japan2026-05-11
Jeanfrancois Venere1019Japan2026-05-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardBrazilAnna Fali UNQUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher PROPOSAL
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Julie StensethCanadaAsiya Javayant UNQUALIFIED
Chavez BriddickGermanyAnna Fali NEW
Costa DilliardUnited KingdomAnna Fali RENEWAL
Salvatore StockhamArgentinaAsiya Javayant NEW
Rodrigues CampainJapanIvan Magalhaes QUALIFIED
Maisha RulapaughBrazilAsiya Javayant UNQUALIFIED
Kaitlin OstroskyFranceXuxue Feng RENEWAL
Kadeem FlosiGermanyAnna Fali QUALIFIED
James ButtUnited KingdomElwin Sharvill NEW
Murillo MaletJapanAnna Fali QUALIFIED
Misaki RoysterGermanyIvan Magalhaes NEW
Deepesh ChuiAustraliaOnyama Limba QUALIFIED
Ashley DoeRussiaAsiya Javayant RENEWAL
Silvio SlusarskiUnited KingdomXuxue Feng PROPOSAL
Stacey MacleadSpainBernardo Dominic PROPOSAL
Cody SaylorsRussiaIvan Magalhaes NEGOTIATION
Adams MorascaJapanAmy Elsner NEGOTIATION
Claire TollnerRussiaElwin Sharvill UNQUALIFIED
Silvio SlusarskiRussiaOnyama Limba QUALIFIED
Jefferson SchemmerItalyAmy Elsner NEW
Kaitlin OstroskyUnited KingdomXuxue Feng QUALIFIED
Antonio CaudyIndiaStephen Shaw PROPOSAL
Jefferson SchemmerCanadaAmy Elsner PROPOSAL
Murillo MaletArgentinaOnyama Limba PROPOSAL
Murillo MaletCanadaAsiya Javayant QUALIFIED
Clifford RimUnited KingdomXuxue Feng UNQUALIFIED
Costa DilliardGermanyStephen Shaw NEW
Costa DilliardAustraliaStephen Shaw QUALIFIED
Maria MarrierFranceStephen Shaw QUALIFIED
Cody SaylorsAustraliaAsiya Javayant QUALIFIED
Emily WhobreyAustraliaStephen Shaw RENEWAL
Antonio CaudyIndiaStephen Shaw QUALIFIED
Clifford RimGermanyAmy Elsner QUALIFIED
Mujtaba NickaJapanBernardo Dominic UNQUALIFIED
Misaki RoysterCanadaElwin Sharvill NEGOTIATION
Alejandro PerinCanadaIoni Bowcher RENEWAL
Misaki RoysterJapanAsiya Javayant 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>