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
Stacey MacleadFranceXuxue Feng UNQUALIFIED
Julie StensethItalyXuxue Feng NEGOTIATION
Chavez BriddickAustraliaIoni Bowcher PROPOSAL
David DarakjyGermanyXuxue Feng NEW
Juan WieserItalyAnna Fali PROPOSAL
Leon OldroydAustraliaIoni Bowcher UNQUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant PROPOSAL
Salvatore StockhamBrazilOnyama Limba RENEWAL
David DarakjyJapanIvan Magalhaes QUALIFIED
Maisha RulapaughCanadaAmy Elsner QUALIFIED
Jones VocelkaItalyStephen Shaw UNQUALIFIED
Arvin AlbaresAustraliaAnna Fali NEGOTIATION
Leja CaldareraGermanyOnyama Limba NEW
Faith GillianItalyIvan Magalhaes PROPOSAL
Maisha RulapaughFranceElwin Sharvill QUALIFIED
Juan WieserCanadaIoni Bowcher QUALIFIED
Darci PoquetteJapanXuxue Feng NEW
Deepesh ChuiAustraliaAsiya Javayant UNQUALIFIED
Chavez BriddickIndiaAsiya Javayant NEW
Arvin AlbaresUnited KingdomAnna Fali NEGOTIATION
Smith GlickRussiaStephen Shaw QUALIFIED
Antonio CaudyItalyStephen Shaw PROPOSAL
Izzy GarufiItalyElwin Sharvill PROPOSAL
Sinclair WaycottAustraliaIvan Magalhaes RENEWAL
Nicolas IturbideFranceXuxue Feng PROPOSAL
Maisha RulapaughGermanyAmy Elsner NEGOTIATION
Mayumi KolmetzJapanAsiya Javayant QUALIFIED
Jefferson SchemmerAustraliaAnna Fali UNQUALIFIED
Sinclair WaycottArgentinaElwin Sharvill NEGOTIATION
Johnson SergiFranceAmy Elsner RENEWAL
Darci PoquetteBrazilXuxue Feng RENEWAL
Claire TollnerAustraliaOnyama Limba QUALIFIED
Julie StensethJapanElwin Sharvill NEW
Cody SaylorsArgentinaIvan Magalhaes PROPOSAL
Morrow RutaArgentinaStephen Shaw QUALIFIED
Stacey MacleadIndiaBernardo Dominic PROPOSAL
Stacey MacleadGermanyElwin Sharvill PROPOSAL
Isabel BowleySpainAsiya Javayant NEW
Murillo MaletFranceIvan Magalhaes QUALIFIED
Francesco ShinkoAustraliaAsiya Javayant QUALIFIED
Mujtaba NickaItalyIoni Bowcher RENEWAL
Munro FerenczRussiaIvan Magalhaes RENEWAL
Jones VocelkaItalyXuxue Feng PROPOSAL
Maria MarrierItalyBernardo Dominic QUALIFIED
Wickens NestleUnited KingdomBernardo Dominic NEGOTIATION
Octavia MaletJapanOnyama Limba QUALIFIED
Darci PoquetteIndiaOnyama Limba NEGOTIATION
Murillo MaletRussiaXuxue Feng NEW
Salvatore StockhamAustraliaAsiya Javayant NEW
Arvin AlbaresItalyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaGermanyBernardo Dominic QUALIFIED
Francesco ShinkoFranceIvan Magalhaes NEGOTIATION
Smith GlickRussiaAnna Fali RENEWAL
Izzy GarufiRussiaXuxue Feng NEW
Antonio CaudyArgentinaXuxue Feng UNQUALIFIED
Misaki RoysterIndiaAsiya Javayant NEW
Kadeem FlosiJapanAsiya Javayant NEW
Greenwood BologniaUnited KingdomOnyama Limba RENEWAL
Munro FerenczFranceIoni Bowcher NEW
Isabel BowleyFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresJapan2026-05-05Buckley Miller Wright PROPOSAL71Elwin Sharvill
1001Clifford RimIndia2026-04-29Rousseaux, Michael Esq UNQUALIFIED65Asiya Javayant
1002Faith GillianIndia2026-04-21Benton, John B Jr PROPOSAL19Ioni Bowcher
1003Cody SaylorsRussia2026-04-17Rousseaux, Michael Esq QUALIFIED70Bernardo Dominic
1004Faith GillianSpain2026-05-05Chemel, James L Cpa UNQUALIFIED45Elwin Sharvill
1005Jefferson SchemmerJapan2026-04-28Benton, John B Jr PROPOSAL65Elwin Sharvill
1006Rodrigues CampainAustralia2026-04-25King, Christopher A Esq RENEWAL75Elwin Sharvill
1007Johnson SergiItaly2026-05-07Rangoni Of Florence NEW21Ivan Magalhaes
1008Jeanfrancois VenereAustralia2026-04-17Printing Dimensions PROPOSAL76Onyama Limba
1009Ashley DoeGermany2026-05-02Buckley Miller Wright NEW0Asiya Javayant
1010Maria MarrierSpain2026-05-07Commercial Press NEW49Xuxue Feng
1011Salvatore StockhamJapan2026-04-20Chemel, James L Cpa NEW32Anna Fali
1012Octavia MaletIndia2026-04-21Rangoni Of Florence RENEWAL15Stephen Shaw
1013Adams MorascaIndia2026-04-26King, Christopher A Esq QUALIFIED95Onyama Limba
1014Jeanfrancois VenereArgentina2026-04-29Printing Dimensions PROPOSAL94Asiya Javayant
1015Leon OldroydFrance2026-04-17Benton, John B Jr RENEWAL92Xuxue Feng
1016Stacey MacleadUnited Kingdom2026-04-30King, Christopher A Esq NEW50Elwin Sharvill
1017Ivar PaprockiFrance2026-05-07Dorl, James J Esq QUALIFIED9Bernardo Dominic
1018Mayumi KolmetzIndia2026-05-01Feiner Bros UNQUALIFIED82Asiya Javayant
1019Arvin AlbaresJapan2026-05-09Commercial Press PROPOSAL53Xuxue Feng
1020Arvin AlbaresItaly2026-04-28Buckley Miller Wright NEGOTIATION50Onyama Limba
1021Smith GlickFrance2026-04-30Truhlar And Truhlar Attys NEW55Amy Elsner
1022Jennifer AmigonJapan2026-04-21King, Christopher A Esq NEW43Anna Fali
1023Smith GlickCanada2026-05-04King, Christopher A Esq QUALIFIED51Amy Elsner
1024Leja CaldareraGermany2026-04-19Truhlar And Truhlar Attys NEGOTIATION90Anna Fali
1025Cody SaylorsJapan2026-04-29Chemel, James L Cpa QUALIFIED78Onyama Limba
1026Rodrigues CampainBrazil2026-05-04Dorl, James J Esq NEGOTIATION46Bernardo Dominic
1027Rodrigues CampainJapan2026-04-19Chemel, James L Cpa QUALIFIED70Ioni Bowcher
1028Emily WhobreyFrance2026-04-11King, Christopher A Esq NEGOTIATION11Elwin Sharvill
1029Aditya KuskoJapan2026-05-03Dorl, James J Esq QUALIFIED0Stephen Shaw
1030Aika InouyeAustralia2026-05-01Truhlar And Truhlar Attys QUALIFIED73Onyama Limba
1031Maisha RulapaughSpain2026-04-22Rousseaux, Michael Esq NEW35Onyama Limba
1032Rodrigues CampainCanada2026-04-21Rousseaux, Michael Esq PROPOSAL18Amy Elsner
1033Leja CaldareraItaly2026-05-10Rousseaux, Michael Esq UNQUALIFIED66Ivan Magalhaes
1034Antonio CaudyIndia2026-04-29Feltz Printing Service RENEWAL85Anna Fali
1035Emily WhobreyIndia2026-05-09Rousseaux, Michael Esq QUALIFIED48Onyama Limba
1036Leon OldroydAustralia2026-04-29Feltz Printing Service RENEWAL24Anna Fali
1037James ButtRussia2026-04-23Benton, John B Jr PROPOSAL0Stephen Shaw
1038Ivar PaprockiAustralia2026-04-28King, Christopher A Esq PROPOSAL43Asiya Javayant
1039Deepesh ChuiJapan2026-05-05Truhlar And Truhlar Attys NEGOTIATION38Stephen Shaw
1040Juan WieserAustralia2026-05-09Rangoni Of Florence RENEWAL56Asiya Javayant
1041Emily WhobreyJapan2026-04-14Dorl, James J Esq RENEWAL0Stephen Shaw
1042Leja CaldareraRussia2026-04-27Dorl, James J Esq QUALIFIED39Bernardo Dominic
1043Emily WhobreyItaly2026-04-23Rousseaux, Michael Esq UNQUALIFIED7Ivan Magalhaes
1044Cody SaylorsBrazil2026-04-12Printing Dimensions NEGOTIATION94Stephen Shaw
1045Antonio CaudySpain2026-05-09Printing Dimensions PROPOSAL94Bernardo Dominic
1046Faith GillianUnited Kingdom2026-04-30Dorl, James J Esq QUALIFIED24Stephen Shaw
1047Emily WhobreyIndia2026-04-24Dorl, James J Esq UNQUALIFIED31Onyama Limba
1048Emily WhobreyBrazil2026-05-04Benton, John B Jr RENEWAL64Bernardo Dominic
1049Clifford RimBrazil2026-04-28Printing Dimensions RENEWAL13Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerArgentinaAsiya Javayant UNQUALIFIED
Jones VocelkaJapanAsiya Javayant RENEWAL
James ButtBrazilAsiya Javayant UNQUALIFIED
Munro FerenczCanadaXuxue Feng NEW
Salvatore StockhamUnited KingdomElwin Sharvill QUALIFIED
Murillo MaletItalyAsiya Javayant PROPOSAL
Darci PoquetteRussiaAnna Fali QUALIFIED
Kadeem FlosiItalyAsiya Javayant NEW
Stacey MacleadJapanIvan Magalhaes PROPOSAL
Kadeem FlosiFranceIvan Magalhaes QUALIFIED
Munro FerenczJapanIoni Bowcher UNQUALIFIED
Aruna FigeroaSpainIvan Magalhaes NEGOTIATION
Costa DilliardCanadaAnna Fali NEW
Alejandro PerinIndiaOnyama Limba PROPOSAL
Clifford RimItalyIoni Bowcher QUALIFIED
Jones VocelkaGermanyStephen Shaw PROPOSAL
Murillo MaletAustraliaBernardo Dominic RENEWAL
Rodrigues CampainRussiaElwin Sharvill RENEWAL
Jefferson SchemmerArgentinaIoni Bowcher RENEWAL
Chavez BriddickBrazilOnyama Limba UNQUALIFIED
Aruna FigeroaSpainIvan Magalhaes PROPOSAL
Sinclair WaycottJapanOnyama Limba QUALIFIED
Francesco ShinkoBrazilStephen Shaw UNQUALIFIED
Claire TollnerItalyIoni Bowcher UNQUALIFIED
James ButtSpainBernardo Dominic UNQUALIFIED
Izzy GarufiItalyBernardo Dominic NEW
Nicolas IturbideItalyElwin Sharvill PROPOSAL
Jefferson SchemmerJapanOnyama Limba RENEWAL
Leja CaldareraJapanAmy Elsner NEGOTIATION
Faith GillianFranceAmy Elsner PROPOSAL
Maisha RulapaughUnited KingdomAnna Fali QUALIFIED
Smith GlickArgentinaAmy Elsner RENEWAL
Jeanfrancois VenereItalyAsiya Javayant RENEWAL
Julie StensethJapanStephen Shaw RENEWAL
Maria MarrierJapanIoni Bowcher NEW
Kaitlin OstroskyAustraliaAsiya Javayant RENEWAL
Julie StensethUnited KingdomIvan Magalhaes NEW
Adams MorascaRussiaBernardo Dominic QUALIFIED
Claire TollnerSpainAsiya Javayant RENEWAL
Octavia MaletUnited KingdomAnna Fali UNQUALIFIED
Julie StensethArgentinaBernardo Dominic NEGOTIATION
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Faith GillianGermanyIvan Magalhaes NEGOTIATION
Claire TollnerCanadaXuxue Feng QUALIFIED
Ricardo GauchoItalyElwin Sharvill PROPOSAL
Johnson SergiJapanAmy Elsner RENEWAL
Mayumi KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Nicolas IturbideBrazilIoni Bowcher NEW
Silvio SlusarskiUnited KingdomAmy Elsner PROPOSAL
Adams MorascaRussiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Emily Whobrey
Aditya Kusko
Sinclair Waycott
Kaitlin Ostrosky
Rodrigues Campain
Ricardo Gaucho
Kaitlin Ostrosky
Darci Poquette
James Butt
Juan Wieser
David Darakjy
Kadeem Flosi
Francesco Shinko
Murillo Malet
Jeanfrancois Venere
Octavia Malet
Octavia Malet
Chavez Briddick
Murillo Malet
Leja Caldarera
Deepesh Chui
Isabel Bowley
Stacey Maclead
James Butt
Octavia Malet
Leon Oldroyd
Darci Poquette
Rodrigues Campain
Isabel Bowley
Sinclair Waycott
Adams Morasca
Deepesh Chui
Morrow Ruta
Adams Morasca
Munro Ferencz
Kadeem Flosi
Aditya Kusko
Clifford Rim
Alejandro Perin
David Darakjy
Misaki Royster
Leon Oldroyd
Silvio Slusarski
Deepesh Chui
Jeanfrancois Venere
Leja Caldarera
Mayumi Kolmetz
Ashley Doe
Leja Caldarera
David Darakjy
IdCountryDate
1000India2026-05-01
1001Italy2026-04-13
1002Germany2026-05-01
1003Japan2026-04-11
1004Canada2026-04-28
1005Spain2026-04-23
1006Canada2026-04-11
1007France2026-04-12
1008Russia2026-04-25
1009Russia2026-04-26
1010United Kingdom2026-04-16
1011Australia2026-04-14
1012Australia2026-05-02
1013Germany2026-05-01
1014Brazil2026-04-15
1015Brazil2026-05-04
1016Canada2026-05-02
1017Spain2026-05-08
1018Australia2026-04-17
1019Japan2026-04-27
1020Spain2026-04-28
1021United Kingdom2026-04-22
1022Russia2026-05-04
1023Japan2026-05-02
1024Argentina2026-04-30
1025Italy2026-04-20
1026Spain2026-04-19
1027France2026-04-22
1028Germany2026-04-29
1029India2026-04-29
1030United Kingdom2026-04-16
1031Canada2026-05-01
1032Australia2026-04-20
1033Australia2026-05-09
1034Japan2026-04-11
1035Germany2026-04-29
1036Brazil2026-04-11
1037India2026-04-24
1038Brazil2026-05-04
1039India2026-05-04
1040Spain2026-05-08
1041Spain2026-04-20
1042Brazil2026-04-23
1043India2026-04-26
1044Argentina2026-05-02
1045Russia2026-04-17
1046United Kingdom2026-04-25
1047India2026-04-17
1048India2026-05-02
1049Germany2026-05-05

On-Demand Data

NameIdCountryDate
Emily Whobrey1000Canada2026-05-09
Ashley Doe1001Italy2026-04-17
Costa Dilliard1002Argentina2026-04-11
Darci Poquette1003Canada2026-04-29
Aditya Kusko1004Argentina2026-04-16
Chavez Briddick1005Italy2026-04-21
Wickens Nestle1006Australia2026-04-14
Morrow Ruta1007Germany2026-05-10
James Butt1008India2026-05-01
Izzy Garufi1009Brazil2026-04-15
Adams Morasca1010Germany2026-04-22
Isabel Bowley1011Italy2026-04-28
Ivar Paprocki1012Italy2026-05-03
James Butt1013Japan2026-04-30
Silvio Slusarski1014Japan2026-04-11
Ricardo Gaucho1015India2026-04-11
Stacey Maclead1016Germany2026-04-28
Antonio Caudy1017Canada2026-04-25
Antonio Caudy1018Canada2026-04-29
Deepesh Chui1019Russia2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyCanadaAnna Fali RENEWAL
Aditya KuskoArgentinaAmy Elsner PROPOSAL
Maria MarrierUnited KingdomIoni Bowcher NEGOTIATION
Maisha RulapaughBrazilAmy Elsner NEW
Claire TollnerUnited KingdomAmy Elsner UNQUALIFIED
Nicolas IturbideUnited KingdomOnyama Limba PROPOSAL
Leja CaldareraGermanyBernardo Dominic UNQUALIFIED
Antonio CaudyBrazilAmy Elsner RENEWAL
Jefferson SchemmerJapanAnna Fali QUALIFIED
Murillo MaletArgentinaElwin Sharvill PROPOSAL
Adams MorascaArgentinaStephen Shaw NEW
Ashley DoeItalyAnna Fali UNQUALIFIED
Murillo MaletSpainOnyama Limba NEW
Aika InouyeArgentinaIvan Magalhaes QUALIFIED
Salvatore StockhamGermanyStephen Shaw PROPOSAL
Johnson SergiIndiaAsiya Javayant NEW
Octavia MaletArgentinaAsiya Javayant RENEWAL
Clifford RimRussiaBernardo Dominic QUALIFIED
Mujtaba NickaItalyOnyama Limba UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Aditya KuskoJapanAsiya Javayant QUALIFIED
Murillo MaletSpainIvan Magalhaes NEW
Jeanfrancois VenereSpainIoni Bowcher UNQUALIFIED
Ashley DoeGermanyAmy Elsner RENEWAL
David DarakjyBrazilAsiya Javayant NEW
Deepesh ChuiAustraliaElwin Sharvill NEW
Octavia MaletCanadaXuxue Feng UNQUALIFIED
Tony FollerBrazilAnna Fali NEW
Emily WhobreyAustraliaBernardo Dominic UNQUALIFIED
Mayumi KolmetzRussiaAnna Fali PROPOSAL
Julie StensethCanadaAnna Fali UNQUALIFIED
Juan WieserAustraliaAsiya Javayant PROPOSAL
Johnson SergiFranceAnna Fali RENEWAL
Jeanfrancois VenereUnited KingdomBernardo Dominic NEW
Julie StensethGermanyAsiya Javayant RENEWAL
Stacey MacleadIndiaAsiya Javayant RENEWAL
Silvio SlusarskiFranceAsiya Javayant QUALIFIED
James ButtCanadaIoni Bowcher NEGOTIATION
Jeanfrancois VenereArgentinaStephen Shaw QUALIFIED
Smith GlickJapanXuxue Feng RENEWAL

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