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
Aika InouyeJapanIoni Bowcher NEW
Jennifer AmigonItalyBernardo Dominic PROPOSAL
Chavez BriddickArgentinaAmy Elsner NEW
Cody SaylorsIndiaIoni Bowcher NEGOTIATION
Mayumi KolmetzBrazilAnna Fali RENEWAL
Ricardo GauchoCanadaAmy Elsner NEW
Aditya KuskoSpainAsiya Javayant NEW
Faith GillianIndiaElwin Sharvill UNQUALIFIED
Johnson SergiSpainXuxue Feng NEW
Darci PoquetteAustraliaAsiya Javayant PROPOSAL
Salvatore StockhamFranceBernardo Dominic NEGOTIATION
Juan WieserSpainOnyama Limba PROPOSAL
Tony FollerItalyXuxue Feng NEGOTIATION
Jefferson SchemmerFranceElwin Sharvill RENEWAL
James ButtAustraliaAnna Fali RENEWAL
James ButtRussiaAsiya Javayant PROPOSAL
Misaki RoysterRussiaIvan Magalhaes NEGOTIATION
Tony FollerJapanBernardo Dominic QUALIFIED
Juan WieserItalyIoni Bowcher RENEWAL
Octavia MaletIndiaElwin Sharvill RENEWAL
Kadeem FlosiGermanyOnyama Limba RENEWAL
Adams MorascaCanadaAnna Fali NEW
Greenwood BologniaAustraliaOnyama Limba NEGOTIATION
Nicolas IturbideFranceAnna Fali QUALIFIED
Chavez BriddickAustraliaBernardo Dominic NEGOTIATION
Arvin AlbaresGermanyXuxue Feng QUALIFIED
Silvio SlusarskiItalyOnyama Limba NEW
Antonio CaudyRussiaAnna Fali QUALIFIED
Murillo MaletUnited KingdomOnyama Limba NEGOTIATION
Faith GillianFranceElwin Sharvill UNQUALIFIED
Izzy GarufiGermanyAsiya Javayant NEGOTIATION
Darci PoquetteUnited KingdomIoni Bowcher NEW
Octavia MaletJapanOnyama Limba NEGOTIATION
Salvatore StockhamUnited KingdomIoni Bowcher QUALIFIED
Clifford RimAustraliaAmy Elsner RENEWAL
Claire TollnerAustraliaXuxue Feng NEGOTIATION
Sinclair WaycottJapanElwin Sharvill NEW
Ricardo GauchoJapanXuxue Feng PROPOSAL
Faith GillianBrazilStephen Shaw UNQUALIFIED
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Sinclair WaycottArgentinaIoni Bowcher PROPOSAL
Morrow RutaGermanyXuxue Feng RENEWAL
Darci PoquetteRussiaAsiya Javayant NEGOTIATION
Silvio SlusarskiRussiaIoni Bowcher UNQUALIFIED
Sinclair WaycottIndiaXuxue Feng NEGOTIATION
Tony FollerRussiaElwin Sharvill PROPOSAL
Ricardo GauchoArgentinaElwin Sharvill NEGOTIATION
Julie StensethArgentinaXuxue Feng PROPOSAL
Claire TollnerAustraliaAnna Fali UNQUALIFIED
Rodrigues CampainArgentinaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford RimCanadaBernardo Dominic PROPOSAL
Smith GlickBrazilXuxue Feng RENEWAL
Rodrigues CampainUnited KingdomOnyama Limba PROPOSAL
Jones VocelkaIndiaIvan Magalhaes RENEWAL
Kadeem FlosiFranceIoni Bowcher RENEWAL
Aruna FigeroaRussiaStephen Shaw QUALIFIED
Leja CaldareraItalyAmy Elsner QUALIFIED
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Kaitlin OstroskyCanadaAsiya Javayant NEGOTIATION
Greenwood BologniaGermanyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiCanada2026-04-26Dorl, James J Esq RENEWAL79Ivan Magalhaes
1001Aruna FigeroaArgentina2026-04-13Rousseaux, Michael Esq QUALIFIED83Xuxue Feng
1002Jennifer AmigonArgentina2026-04-04Buckley Miller Wright RENEWAL41Ivan Magalhaes
1003Aruna FigeroaArgentina2026-04-14Commercial Press PROPOSAL67Xuxue Feng
1004Jefferson SchemmerGermany2026-04-11Commercial Press UNQUALIFIED87Ivan Magalhaes
1005Jennifer AmigonRussia2026-04-19Printing Dimensions UNQUALIFIED70Ioni Bowcher
1006Adams MorascaUnited Kingdom2026-04-18Truhlar And Truhlar Attys QUALIFIED12Bernardo Dominic
1007Francesco ShinkoSpain2026-04-17Chanay, Jeffrey A Esq QUALIFIED1Xuxue Feng
1008Maria MarrierGermany2026-04-25Truhlar And Truhlar Attys NEW26Bernardo Dominic
1009Antonio CaudyBrazil2026-04-17Printing Dimensions UNQUALIFIED98Ioni Bowcher
1010Johnson SergiBrazil2026-04-28Commercial Press QUALIFIED15Amy Elsner
1011Murillo MaletBrazil2026-04-03Chanay, Jeffrey A Esq PROPOSAL97Onyama Limba
1012Adams MorascaBrazil2026-04-18Rousseaux, Michael Esq NEGOTIATION85Stephen Shaw
1013Tony FollerGermany2026-04-11Dorl, James J Esq QUALIFIED80Stephen Shaw
1014James ButtBrazil2026-04-03Dorl, James J Esq RENEWAL13Asiya Javayant
1015Jennifer AmigonBrazil2026-04-04Benton, John B Jr NEGOTIATION79Onyama Limba
1016Chavez BriddickGermany2026-04-25Buckley Miller Wright QUALIFIED29Stephen Shaw
1017Salvatore StockhamArgentina2026-04-07King, Christopher A Esq UNQUALIFIED10Onyama Limba
1018Greenwood BologniaFrance2026-04-04Printing Dimensions QUALIFIED33Ioni Bowcher
1019Cody SaylorsGermany2026-04-24Feltz Printing Service PROPOSAL4Elwin Sharvill
1020Leja CaldareraFrance2026-04-06Chapman, Ross E Esq UNQUALIFIED3Elwin Sharvill
1021Aditya KuskoFrance2026-04-13Printing Dimensions UNQUALIFIED6Amy Elsner
1022Octavia MaletJapan2026-04-12Feiner Bros NEGOTIATION90Stephen Shaw
1023Octavia MaletRussia2026-04-15Commercial Press PROPOSAL39Onyama Limba
1024Francesco ShinkoItaly2026-04-04Morlong Associates RENEWAL15Stephen Shaw
1025Sinclair WaycottRussia2026-04-09Dorl, James J Esq RENEWAL32Stephen Shaw
1026Munro FerenczJapan2026-04-14Morlong Associates UNQUALIFIED47Xuxue Feng
1027Juan WieserCanada2026-04-12King, Christopher A Esq NEGOTIATION27Ivan Magalhaes
1028Misaki RoysterRussia2026-04-14Benton, John B Jr UNQUALIFIED21Amy Elsner
1029Alejandro PerinCanada2026-05-02Morlong Associates NEW6Stephen Shaw
1030Mujtaba NickaItaly2026-04-13Commercial Press NEGOTIATION78Onyama Limba
1031Deepesh ChuiIndia2026-04-15Rangoni Of Florence NEW0Ivan Magalhaes
1032Cody SaylorsCanada2026-04-07Commercial Press PROPOSAL76Onyama Limba
1033Aika InouyeRussia2026-04-23Commercial Press NEW81Asiya Javayant
1034Ashley DoeIndia2026-04-20Chemel, James L Cpa UNQUALIFIED46Xuxue Feng
1035Alejandro PerinIndia2026-04-24Feiner Bros UNQUALIFIED73Anna Fali
1036Cody SaylorsBrazil2026-04-14Rangoni Of Florence RENEWAL29Anna Fali
1037Cody SaylorsCanada2026-05-02Rousseaux, Michael Esq RENEWAL75Ioni Bowcher
1038Francesco ShinkoAustralia2026-04-24Feiner Bros UNQUALIFIED93Amy Elsner
1039Ivar PaprockiArgentina2026-04-21Chapman, Ross E Esq NEW41Onyama Limba
1040Kadeem FlosiRussia2026-04-08Printing Dimensions UNQUALIFIED9Ioni Bowcher
1041Sinclair WaycottArgentina2026-04-23Chemel, James L Cpa UNQUALIFIED69Ioni Bowcher
1042Aditya KuskoUnited Kingdom2026-04-26Chemel, James L Cpa UNQUALIFIED48Stephen Shaw
1043Salvatore StockhamBrazil2026-04-13King, Christopher A Esq NEGOTIATION59Anna Fali
1044Claire TollnerItaly2026-04-23King, Christopher A Esq NEGOTIATION76Stephen Shaw
1045Juan WieserItaly2026-04-07Feiner Bros NEGOTIATION54Onyama Limba
1046Aruna FigeroaIndia2026-04-25Printing Dimensions NEW88Amy Elsner
1047Isabel BowleyGermany2026-04-24Feiner Bros NEGOTIATION29Stephen Shaw
1048James ButtGermany2026-04-21Morlong Associates NEGOTIATION69Xuxue Feng
1049Nicolas IturbideAustralia2026-05-02Chapman, Ross E Esq QUALIFIED89Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardArgentinaOnyama Limba NEGOTIATION
Ricardo GauchoSpainAmy Elsner RENEWAL
Alejandro PerinRussiaAnna Fali UNQUALIFIED
Aditya KuskoGermanyAmy Elsner RENEWAL
Munro FerenczItalyXuxue Feng NEW
Kadeem FlosiIndiaIoni Bowcher QUALIFIED
Izzy GarufiGermanyIoni Bowcher NEW
Deepesh ChuiJapanBernardo Dominic QUALIFIED
Izzy GarufiRussiaBernardo Dominic UNQUALIFIED
Rodrigues CampainGermanyXuxue Feng PROPOSAL
Maria MarrierJapanIoni Bowcher RENEWAL
Mayumi KolmetzJapanStephen Shaw NEW
Izzy GarufiFranceAsiya Javayant RENEWAL
Johnson SergiRussiaIvan Magalhaes NEW
Ricardo GauchoJapanAnna Fali QUALIFIED
Alejandro PerinFranceAnna Fali NEW
Octavia MaletCanadaOnyama Limba RENEWAL
Aditya KuskoBrazilOnyama Limba NEW
Jennifer AmigonCanadaAmy Elsner QUALIFIED
David DarakjyFranceAmy Elsner UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher UNQUALIFIED
Deepesh ChuiGermanyAsiya Javayant PROPOSAL
Ricardo GauchoUnited KingdomAnna Fali RENEWAL
Clifford RimGermanyIoni Bowcher UNQUALIFIED
Kadeem FlosiFranceBernardo Dominic UNQUALIFIED
Morrow RutaJapanAmy Elsner RENEWAL
Mayumi KolmetzItalyOnyama Limba UNQUALIFIED
Ricardo GauchoFranceAmy Elsner NEW
Aditya KuskoAustraliaBernardo Dominic RENEWAL
Aditya KuskoArgentinaAmy Elsner NEGOTIATION
Misaki RoysterSpainIvan Magalhaes QUALIFIED
Julie StensethFranceIvan Magalhaes NEGOTIATION
Claire TollnerBrazilIoni Bowcher NEGOTIATION
Jones VocelkaFranceElwin Sharvill UNQUALIFIED
Sinclair WaycottGermanyAsiya Javayant NEW
Cody SaylorsCanadaBernardo Dominic NEGOTIATION
Juan WieserGermanyOnyama Limba QUALIFIED
Emily WhobreyBrazilXuxue Feng UNQUALIFIED
Julie StensethIndiaAsiya Javayant NEW
David DarakjyJapanXuxue Feng NEW
Nicolas IturbideAustraliaAsiya Javayant PROPOSAL
Greenwood BologniaFranceIoni Bowcher QUALIFIED
James ButtJapanAsiya Javayant NEGOTIATION
Emily WhobreyItalyAsiya Javayant PROPOSAL
Mayumi KolmetzArgentinaElwin Sharvill NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba NEGOTIATION
Rodrigues CampainAustraliaXuxue Feng PROPOSAL
Jefferson SchemmerArgentinaOnyama Limba NEGOTIATION
Cody SaylorsSpainIoni Bowcher PROPOSAL
Leja CaldareraJapanAmy Elsner NEW
Frozen Columns
Name
Jennifer Amigon
Clifford Rim
Ivar Paprocki
James Butt
Smith Glick
Jones Vocelka
Greenwood Bolognia
Adams Morasca
Jeanfrancois Venere
Kaitlin Ostrosky
Jefferson Schemmer
Jones Vocelka
Rodrigues Campain
Alejandro Perin
Kaitlin Ostrosky
Francesco Shinko
Julie Stenseth
Murillo Malet
Greenwood Bolognia
Cody Saylors
Salvatore Stockham
Darci Poquette
Antonio Caudy
Ricardo Gaucho
Jefferson Schemmer
Adams Morasca
Izzy Garufi
Chavez Briddick
Aruna Figeroa
Ivar Paprocki
Mayumi Kolmetz
Maria Marrier
Morrow Ruta
Cody Saylors
Stacey Maclead
Rodrigues Campain
Octavia Malet
Maria Marrier
Deepesh Chui
Arvin Albares
Arvin Albares
Aditya Kusko
Isabel Bowley
Ricardo Gaucho
Salvatore Stockham
Aditya Kusko
Greenwood Bolognia
Jefferson Schemmer
Kadeem Flosi
Deepesh Chui
IdCountryDate
1000India2026-04-28
1001Italy2026-04-17
1002Japan2026-04-04
1003India2026-04-23
1004United Kingdom2026-04-14
1005India2026-04-03
1006France2026-04-21
1007United Kingdom2026-04-18
1008Italy2026-04-27
1009Canada2026-04-03
1010India2026-04-19
1011Japan2026-04-24
1012Germany2026-04-19
1013Italy2026-04-12
1014Argentina2026-04-07
1015United Kingdom2026-04-22
1016Argentina2026-04-21
1017Canada2026-05-02
1018Japan2026-04-03
1019Russia2026-05-01
1020Canada2026-04-19
1021Spain2026-04-29
1022Brazil2026-04-07
1023India2026-04-05
1024Italy2026-04-06
1025France2026-04-12
1026Germany2026-04-23
1027Spain2026-04-23
1028Canada2026-05-02
1029Italy2026-04-12
1030Italy2026-04-22
1031Japan2026-04-17
1032Italy2026-04-26
1033Germany2026-04-08
1034United Kingdom2026-04-11
1035France2026-04-23
1036Germany2026-04-08
1037Russia2026-04-08
1038Brazil2026-04-30
1039Australia2026-04-04
1040Australia2026-04-23
1041Italy2026-04-11
1042Italy2026-04-13
1043Spain2026-04-06
1044India2026-04-06
1045United Kingdom2026-04-04
1046Italy2026-04-20
1047France2026-04-19
1048Australia2026-04-28
1049France2026-04-24

On-Demand Data

NameIdCountryDate
Tony Foller1000Germany2026-04-05
Jones Vocelka1001France2026-04-04
Cody Saylors1002Argentina2026-04-24
Emily Whobrey1003Australia2026-05-02
Claire Tollner1004Japan2026-04-05
Ricardo Gaucho1005France2026-05-01
Ivar Paprocki1006Russia2026-04-29
Smith Glick1007France2026-04-23
Ivar Paprocki1008Australia2026-04-07
Kaitlin Ostrosky1009Brazil2026-04-26
Emily Whobrey1010Brazil2026-04-09
Sinclair Waycott1011Brazil2026-04-25
Antonio Caudy1012Australia2026-04-27
Murillo Malet1013Argentina2026-04-15
Francesco Shinko1014United Kingdom2026-04-04
Misaki Royster1015United Kingdom2026-04-11
Johnson Sergi1016Spain2026-04-05
Arvin Albares1017India2026-04-30
Misaki Royster1018India2026-04-16
Sinclair Waycott1019France2026-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyItalyAnna Fali NEW
Aruna FigeroaGermanyIoni Bowcher RENEWAL
Darci PoquetteIndiaStephen Shaw QUALIFIED
Smith GlickArgentinaOnyama Limba UNQUALIFIED
Tony FollerBrazilAsiya Javayant QUALIFIED
Alejandro PerinUnited KingdomAsiya Javayant NEGOTIATION
Costa DilliardAustraliaElwin Sharvill RENEWAL
Maisha RulapaughJapanAnna Fali NEW
Jones VocelkaGermanyAsiya Javayant NEGOTIATION
Misaki RoysterFranceIoni Bowcher PROPOSAL
Murillo MaletItalyXuxue Feng UNQUALIFIED
Julie StensethAustraliaStephen Shaw UNQUALIFIED
Ricardo GauchoRussiaIvan Magalhaes PROPOSAL
Julie StensethFranceXuxue Feng UNQUALIFIED
Leon OldroydJapanAmy Elsner NEGOTIATION
Kadeem FlosiSpainAmy Elsner PROPOSAL
Antonio CaudyIndiaBernardo Dominic QUALIFIED
Smith GlickAustraliaElwin Sharvill NEGOTIATION
Silvio SlusarskiCanadaStephen Shaw NEGOTIATION
Leja CaldareraCanadaAmy Elsner NEW
Wickens NestleItalyXuxue Feng NEW
Aika InouyeJapanElwin Sharvill RENEWAL
Johnson SergiRussiaIvan Magalhaes RENEWAL
Jennifer AmigonBrazilAsiya Javayant PROPOSAL
Emily WhobreyIndiaAmy Elsner NEW
Jefferson SchemmerArgentinaAnna Fali UNQUALIFIED
Munro FerenczArgentinaAsiya Javayant QUALIFIED
Clifford RimArgentinaElwin Sharvill RENEWAL
Jennifer AmigonArgentinaOnyama Limba UNQUALIFIED
Isabel BowleyFranceAsiya Javayant QUALIFIED
Izzy GarufiCanadaAsiya Javayant RENEWAL
Costa DilliardRussiaAsiya Javayant UNQUALIFIED
Costa DilliardSpainIoni Bowcher PROPOSAL
Costa DilliardJapanAsiya Javayant UNQUALIFIED
Julie StensethFranceXuxue Feng UNQUALIFIED
Alejandro PerinIndiaStephen Shaw NEW
Francesco ShinkoArgentinaStephen Shaw NEGOTIATION
Maria MarrierCanadaStephen Shaw NEW
Adams MorascaGermanyOnyama Limba QUALIFIED
David DarakjySpainAnna Fali NEGOTIATION

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