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
Darci PoquetteUnited KingdomAsiya Javayant QUALIFIED
Ashley DoeBrazilAsiya Javayant RENEWAL
Adams MorascaJapanAmy Elsner NEGOTIATION
Wickens NestleGermanyStephen Shaw RENEWAL
Ivar PaprockiUnited KingdomBernardo Dominic QUALIFIED
Smith GlickItalyElwin Sharvill PROPOSAL
Salvatore StockhamBrazilAnna Fali NEGOTIATION
Claire TollnerBrazilStephen Shaw QUALIFIED
Arvin AlbaresJapanAmy Elsner NEGOTIATION
Jennifer AmigonArgentinaXuxue Feng QUALIFIED
David DarakjyGermanyIoni Bowcher NEW
Emily WhobreyJapanAsiya Javayant PROPOSAL
Tony FollerFranceAmy Elsner RENEWAL
Murillo MaletIndiaXuxue Feng QUALIFIED
Adams MorascaGermanyBernardo Dominic UNQUALIFIED
Greenwood BologniaUnited KingdomAnna Fali NEW
Cody SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues CampainJapanStephen Shaw QUALIFIED
Cody SaylorsItalyOnyama Limba PROPOSAL
Aditya KuskoItalyAnna Fali PROPOSAL
Misaki RoysterFranceXuxue Feng NEGOTIATION
Sinclair WaycottArgentinaIvan Magalhaes PROPOSAL
Isabel BowleyArgentinaElwin Sharvill NEGOTIATION
Sinclair WaycottCanadaIvan Magalhaes PROPOSAL
Greenwood BologniaIndiaElwin Sharvill PROPOSAL
Leja CaldareraRussiaXuxue Feng UNQUALIFIED
Jefferson SchemmerBrazilIvan Magalhaes PROPOSAL
Murillo MaletSpainIoni Bowcher NEGOTIATION
Jones VocelkaItalyBernardo Dominic RENEWAL
Aika InouyeArgentinaElwin Sharvill NEGOTIATION
Misaki RoysterFranceIoni Bowcher NEW
Clifford RimItalyAsiya Javayant UNQUALIFIED
Smith GlickBrazilStephen Shaw NEW
Jefferson SchemmerAustraliaOnyama Limba RENEWAL
Aruna FigeroaGermanyAsiya Javayant QUALIFIED
James ButtRussiaAsiya Javayant QUALIFIED
Murillo MaletArgentinaAmy Elsner RENEWAL
Octavia MaletArgentinaOnyama Limba RENEWAL
Mayumi KolmetzBrazilAsiya Javayant NEW
Misaki RoysterAustraliaXuxue Feng RENEWAL
Claire TollnerFranceAnna Fali NEGOTIATION
Darci PoquetteIndiaOnyama Limba NEW
Leja CaldareraFranceIvan Magalhaes NEGOTIATION
Ashley DoeJapanElwin Sharvill NEW
Tony FollerCanadaBernardo Dominic NEW
Aika InouyeAustraliaElwin Sharvill NEGOTIATION
Rodrigues CampainRussiaAmy Elsner NEW
Octavia MaletGermanyAmy Elsner RENEWAL
James ButtFranceAnna Fali NEW
David DarakjyUnited KingdomElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaItalyIvan Magalhaes UNQUALIFIED
Aika InouyeFranceElwin Sharvill QUALIFIED
Morrow RutaSpainAsiya Javayant PROPOSAL
Maria MarrierGermanyStephen Shaw RENEWAL
Morrow RutaFranceAmy Elsner UNQUALIFIED
Maria MarrierAustraliaBernardo Dominic QUALIFIED
Juan WieserItalyXuxue Feng QUALIFIED
Leja CaldareraCanadaBernardo Dominic NEGOTIATION
Munro FerenczIndiaAnna Fali QUALIFIED
Aditya KuskoItalyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottUnited Kingdom2026-06-04Feiner Bros NEGOTIATION42Asiya Javayant
1001Leja CaldareraFrance2026-06-03Buckley Miller Wright NEW47Asiya Javayant
1002Antonio CaudyItaly2026-05-31Feiner Bros QUALIFIED20Ioni Bowcher
1003Maisha RulapaughArgentina2026-06-15Rangoni Of Florence NEGOTIATION88Amy Elsner
1004Aditya KuskoBrazil2026-05-20Feltz Printing Service PROPOSAL61Ioni Bowcher
1005David DarakjyBrazil2026-05-21Chanay, Jeffrey A Esq UNQUALIFIED5Amy Elsner
1006Izzy GarufiFrance2026-05-23Chemel, James L Cpa UNQUALIFIED62Onyama Limba
1007Kadeem FlosiCanada2026-06-07Rangoni Of Florence NEGOTIATION84Bernardo Dominic
1008Johnson SergiRussia2026-06-03Rangoni Of Florence PROPOSAL48Ioni Bowcher
1009Francesco ShinkoItaly2026-06-07Rangoni Of Florence PROPOSAL3Bernardo Dominic
1010Aditya KuskoUnited Kingdom2026-05-30Dorl, James J Esq UNQUALIFIED98Anna Fali
1011Maisha RulapaughAustralia2026-06-05Morlong Associates NEW66Asiya Javayant
1012Leja CaldareraItaly2026-05-21Buckley Miller Wright NEW90Stephen Shaw
1013Morrow RutaBrazil2026-06-09Feiner Bros NEW39Stephen Shaw
1014Arvin AlbaresAustralia2026-06-11Truhlar And Truhlar Attys NEW81Anna Fali
1015James ButtArgentina2026-05-21Benton, John B Jr NEW85Amy Elsner
1016Octavia MaletUnited Kingdom2026-05-24Rousseaux, Michael Esq NEW85Elwin Sharvill
1017James ButtArgentina2026-06-02Dorl, James J Esq PROPOSAL58Ivan Magalhaes
1018Alejandro PerinFrance2026-06-16Rangoni Of Florence QUALIFIED55Ioni Bowcher
1019Jennifer AmigonBrazil2026-06-15Printing Dimensions UNQUALIFIED94Amy Elsner
1020Aditya KuskoRussia2026-05-20Rousseaux, Michael Esq NEGOTIATION44Xuxue Feng
1021Mayumi KolmetzFrance2026-05-27Truhlar And Truhlar Attys RENEWAL23Elwin Sharvill
1022Ashley DoeSpain2026-06-09Rangoni Of Florence NEW20Onyama Limba
1023Aruna FigeroaGermany2026-05-19Feiner Bros NEGOTIATION95Onyama Limba
1024Jones VocelkaFrance2026-06-08Chemel, James L Cpa NEW86Anna Fali
1025Alejandro PerinUnited Kingdom2026-06-06Chapman, Ross E Esq RENEWAL93Xuxue Feng
1026Murillo MaletIndia2026-05-25King, Christopher A Esq NEGOTIATION0Amy Elsner
1027Murillo MaletItaly2026-06-09Buckley Miller Wright PROPOSAL6Stephen Shaw
1028Isabel BowleyFrance2026-06-05Feltz Printing Service NEW72Asiya Javayant
1029Francesco ShinkoIndia2026-06-09Truhlar And Truhlar Attys NEW5Ioni Bowcher
1030Jones VocelkaJapan2026-06-01Morlong Associates PROPOSAL33Xuxue Feng
1031Julie StensethRussia2026-06-11Chapman, Ross E Esq QUALIFIED86Anna Fali
1032Chavez BriddickAustralia2026-06-02Buckley Miller Wright RENEWAL41Xuxue Feng
1033Izzy GarufiIndia2026-06-17Printing Dimensions PROPOSAL77Stephen Shaw
1034Antonio CaudySpain2026-05-27King, Christopher A Esq PROPOSAL28Bernardo Dominic
1035Julie StensethArgentina2026-05-26Benton, John B Jr RENEWAL35Anna Fali
1036Nicolas IturbideRussia2026-06-01Feiner Bros UNQUALIFIED55Anna Fali
1037Rodrigues CampainGermany2026-05-24Printing Dimensions UNQUALIFIED80Stephen Shaw
1038Munro FerenczUnited Kingdom2026-06-01Chapman, Ross E Esq NEW72Bernardo Dominic
1039Morrow RutaSpain2026-06-12Rousseaux, Michael Esq NEW52Xuxue Feng
1040Mujtaba NickaRussia2026-06-09Feiner Bros NEW40Xuxue Feng
1041Sinclair WaycottGermany2026-06-01Rousseaux, Michael Esq NEW73Xuxue Feng
1042Sinclair WaycottUnited Kingdom2026-06-04Rangoni Of Florence NEW36Asiya Javayant
1043Antonio CaudyGermany2026-06-17Feltz Printing Service RENEWAL99Xuxue Feng
1044Faith GillianCanada2026-05-22Rangoni Of Florence PROPOSAL86Onyama Limba
1045Morrow RutaAustralia2026-05-22Truhlar And Truhlar Attys QUALIFIED27Ivan Magalhaes
1046Jennifer AmigonBrazil2026-06-14Morlong Associates QUALIFIED65Anna Fali
1047David DarakjyAustralia2026-06-17Dorl, James J Esq PROPOSAL13Ivan Magalhaes
1048Johnson SergiBrazil2026-06-11Morlong Associates NEW71Anna Fali
1049Silvio SlusarskiArgentina2026-05-27Dorl, James J Esq QUALIFIED91Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilAnna Fali UNQUALIFIED
Izzy GarufiCanadaAmy Elsner NEW
Juan WieserFranceOnyama Limba NEGOTIATION
Salvatore StockhamBrazilIvan Magalhaes RENEWAL
Mujtaba NickaGermanyStephen Shaw RENEWAL
Darci PoquetteArgentinaOnyama Limba RENEWAL
Johnson SergiJapanBernardo Dominic RENEWAL
Mujtaba NickaFranceStephen Shaw NEW
Munro FerenczIndiaAmy Elsner PROPOSAL
Deepesh ChuiGermanyElwin Sharvill NEW
Johnson SergiIndiaIoni Bowcher NEW
Kaitlin OstroskyFranceAnna Fali RENEWAL
Octavia MaletGermanyIvan Magalhaes NEW
Cody SaylorsCanadaIoni Bowcher UNQUALIFIED
Julie StensethAustraliaIvan Magalhaes UNQUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba RENEWAL
Emily WhobreyGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaIndiaAmy Elsner QUALIFIED
Nicolas IturbideArgentinaAmy Elsner QUALIFIED
Kaitlin OstroskyAustraliaOnyama Limba NEGOTIATION
Darci PoquetteUnited KingdomXuxue Feng QUALIFIED
Murillo MaletGermanyAsiya Javayant NEGOTIATION
Aditya KuskoRussiaStephen Shaw QUALIFIED
Adams MorascaRussiaOnyama Limba RENEWAL
Aika InouyeJapanXuxue Feng NEGOTIATION
Alejandro PerinFranceOnyama Limba RENEWAL
Chavez BriddickItalyStephen Shaw RENEWAL
Munro FerenczBrazilAnna Fali RENEWAL
Arvin AlbaresAustraliaIvan Magalhaes RENEWAL
Wickens NestleGermanyElwin Sharvill NEGOTIATION
Mujtaba NickaArgentinaBernardo Dominic QUALIFIED
Murillo MaletRussiaOnyama Limba PROPOSAL
James ButtJapanBernardo Dominic UNQUALIFIED
Salvatore StockhamAustraliaAnna Fali NEW
Stacey MacleadBrazilOnyama Limba UNQUALIFIED
Wickens NestleFranceAmy Elsner NEGOTIATION
Adams MorascaFranceIoni Bowcher UNQUALIFIED
Arvin AlbaresItalyAnna Fali NEGOTIATION
Ivar PaprockiRussiaIoni Bowcher RENEWAL
Cody SaylorsJapanOnyama Limba QUALIFIED
Antonio CaudyItalyXuxue Feng PROPOSAL
David DarakjyItalyStephen Shaw QUALIFIED
David DarakjyItalyBernardo Dominic NEGOTIATION
Munro FerenczItalyStephen Shaw NEW
Misaki RoysterFranceElwin Sharvill PROPOSAL
Tony FollerIndiaXuxue Feng QUALIFIED
Mujtaba NickaSpainBernardo Dominic NEW
Aruna FigeroaCanadaIoni Bowcher RENEWAL
Ivar PaprockiFranceAmy Elsner NEW
Adams MorascaUnited KingdomXuxue Feng PROPOSAL
Frozen Columns
Name
Stacey Maclead
Leja Caldarera
Faith Gillian
Deepesh Chui
Jeanfrancois Venere
Claire Tollner
Arvin Albares
Sinclair Waycott
Ivar Paprocki
Leja Caldarera
Cody Saylors
Jeanfrancois Venere
Francesco Shinko
Cody Saylors
Izzy Garufi
Leon Oldroyd
Aruna Figeroa
Alejandro Perin
Murillo Malet
Cody Saylors
Ashley Doe
Aditya Kusko
Greenwood Bolognia
Maisha Rulapaugh
Misaki Royster
Greenwood Bolognia
Tony Foller
Ivar Paprocki
Faith Gillian
Ashley Doe
Juan Wieser
Clifford Rim
Kadeem Flosi
Sinclair Waycott
Izzy Garufi
Ashley Doe
Jeanfrancois Venere
Isabel Bowley
Greenwood Bolognia
Antonio Caudy
Isabel Bowley
Ivar Paprocki
Julie Stenseth
Jennifer Amigon
Salvatore Stockham
Darci Poquette
Jeanfrancois Venere
Kaitlin Ostrosky
Emily Whobrey
Munro Ferencz
IdCountryDate
1000Russia2026-05-26
1001Canada2026-05-27
1002Spain2026-06-02
1003Japan2026-06-04
1004Russia2026-06-11
1005Canada2026-05-23
1006Spain2026-06-15
1007United Kingdom2026-05-21
1008Canada2026-06-08
1009Italy2026-05-23
1010Japan2026-06-10
1011Australia2026-05-26
1012Spain2026-06-13
1013Australia2026-06-04
1014United Kingdom2026-06-03
1015Japan2026-06-01
1016Australia2026-05-25
1017Germany2026-05-30
1018Brazil2026-06-04
1019Russia2026-06-16
1020Japan2026-05-21
1021United Kingdom2026-05-31
1022Germany2026-05-27
1023Brazil2026-05-31
1024Spain2026-05-25
1025Japan2026-05-21
1026Brazil2026-05-28
1027India2026-05-29
1028Brazil2026-06-06
1029United Kingdom2026-06-15
1030Italy2026-06-07
1031Canada2026-05-20
1032Italy2026-06-01
1033Germany2026-06-02
1034Japan2026-06-16
1035Germany2026-06-14
1036United Kingdom2026-06-09
1037India2026-05-30
1038United Kingdom2026-06-10
1039Argentina2026-06-08
1040Argentina2026-06-16
1041Argentina2026-05-20
1042Australia2026-05-23
1043Russia2026-05-27
1044Brazil2026-05-21
1045Brazil2026-06-02
1046France2026-06-15
1047Canada2026-05-29
1048Japan2026-05-21
1049Australia2026-06-15

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000Australia2026-05-24
Johnson Sergi1001India2026-06-14
Mujtaba Nicka1002Japan2026-06-12
Ivar Paprocki1003Italy2026-06-07
Kadeem Flosi1004France2026-05-25
Ashley Doe1005Japan2026-06-04
Maisha Rulapaugh1006Spain2026-05-21
Jones Vocelka1007Brazil2026-06-16
Sinclair Waycott1008United Kingdom2026-06-06
Ricardo Gaucho1009Germany2026-05-20
Ricardo Gaucho1010United Kingdom2026-06-01
Faith Gillian1011United Kingdom2026-05-29
Mayumi Kolmetz1012Australia2026-06-14
Arvin Albares1013Russia2026-06-11
Juan Wieser1014France2026-06-05
Jefferson Schemmer1015United Kingdom2026-06-06
Costa Dilliard1016Japan2026-05-24
Aika Inouye1017Russia2026-06-10
Wickens Nestle1018Canada2026-05-28
Leon Oldroyd1019United Kingdom2026-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiCanadaOnyama Limba NEW
Misaki RoysterIndiaIoni Bowcher NEGOTIATION
Leja CaldareraSpainIoni Bowcher QUALIFIED
Murillo MaletAustraliaIvan Magalhaes NEGOTIATION
Leja CaldareraAustraliaXuxue Feng RENEWAL
Munro FerenczUnited KingdomBernardo Dominic RENEWAL
Tony FollerArgentinaStephen Shaw NEGOTIATION
Aruna FigeroaAustraliaOnyama Limba UNQUALIFIED
Maria MarrierItalyAmy Elsner QUALIFIED
Murillo MaletFranceOnyama Limba PROPOSAL
David DarakjyJapanStephen Shaw PROPOSAL
Darci PoquetteArgentinaOnyama Limba RENEWAL
Cody SaylorsArgentinaXuxue Feng NEGOTIATION
Sinclair WaycottFranceAsiya Javayant PROPOSAL
Rodrigues CampainAustraliaXuxue Feng RENEWAL
Emily WhobreyIndiaIoni Bowcher UNQUALIFIED
Kadeem FlosiSpainXuxue Feng QUALIFIED
Aditya KuskoJapanAmy Elsner RENEWAL
Claire TollnerFranceIvan Magalhaes RENEWAL
Jeanfrancois VenereSpainXuxue Feng PROPOSAL
Salvatore StockhamFranceAnna Fali QUALIFIED
Aika InouyeItalyAmy Elsner NEW
Kadeem FlosiArgentinaBernardo Dominic UNQUALIFIED
Jones VocelkaAustraliaElwin Sharvill NEW
Maisha RulapaughIndiaOnyama Limba NEW
Salvatore StockhamJapanElwin Sharvill RENEWAL
Murillo MaletJapanAsiya Javayant PROPOSAL
Ashley DoeIndiaIoni Bowcher RENEWAL
Mayumi KolmetzIndiaBernardo Dominic RENEWAL
Ivar PaprockiCanadaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydSpainStephen Shaw UNQUALIFIED
Adams MorascaRussiaAsiya Javayant UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner UNQUALIFIED
Antonio CaudyIndiaStephen Shaw NEW
Jennifer AmigonFranceIvan Magalhaes RENEWAL
Stacey MacleadIndiaAsiya Javayant RENEWAL
Kadeem FlosiSpainBernardo Dominic RENEWAL
James ButtSpainStephen Shaw QUALIFIED
Cody SaylorsGermanyOnyama Limba UNQUALIFIED

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