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
Greenwood BologniaJapanAmy Elsner RENEWAL
Claire TollnerGermanyAnna Fali QUALIFIED
Johnson SergiJapanIvan Magalhaes PROPOSAL
Misaki RoysterSpainBernardo Dominic NEGOTIATION
Octavia MaletJapanStephen Shaw QUALIFIED
Greenwood BologniaJapanElwin Sharvill RENEWAL
Jones VocelkaGermanyOnyama Limba NEGOTIATION
Munro FerenczCanadaBernardo Dominic QUALIFIED
Jeanfrancois VenereSpainXuxue Feng NEW
Julie StensethItalyXuxue Feng QUALIFIED
Leon OldroydSpainStephen Shaw PROPOSAL
Ashley DoeRussiaXuxue Feng QUALIFIED
Juan WieserArgentinaAsiya Javayant NEW
Rodrigues CampainBrazilXuxue Feng UNQUALIFIED
Isabel BowleyArgentinaXuxue Feng NEGOTIATION
Deepesh ChuiIndiaAnna Fali QUALIFIED
Octavia MaletBrazilAnna Fali PROPOSAL
Darci PoquetteAustraliaAnna Fali RENEWAL
Alejandro PerinRussiaOnyama Limba PROPOSAL
Darci PoquetteSpainOnyama Limba PROPOSAL
Tony FollerAustraliaAsiya Javayant UNQUALIFIED
Costa DilliardGermanyAnna Fali QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill NEW
Munro FerenczUnited KingdomElwin Sharvill QUALIFIED
Julie StensethAustraliaBernardo Dominic UNQUALIFIED
Wickens NestleItalyAnna Fali RENEWAL
Jefferson SchemmerArgentinaElwin Sharvill NEW
Johnson SergiGermanyStephen Shaw UNQUALIFIED
Francesco ShinkoJapanIoni Bowcher RENEWAL
Antonio CaudyArgentinaAmy Elsner RENEWAL
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Rodrigues CampainIndiaAmy Elsner NEW
Faith GillianGermanyAmy Elsner PROPOSAL
Leon OldroydIndiaBernardo Dominic NEW
Kaitlin OstroskyAustraliaAsiya Javayant NEGOTIATION
Izzy GarufiCanadaBernardo Dominic PROPOSAL
Wickens NestleItalyIvan Magalhaes PROPOSAL
Julie StensethBrazilStephen Shaw NEW
Francesco ShinkoItalyIoni Bowcher UNQUALIFIED
Aika InouyeUnited KingdomStephen Shaw PROPOSAL
Deepesh ChuiUnited KingdomOnyama Limba QUALIFIED
Ivar PaprockiAustraliaIoni Bowcher PROPOSAL
Murillo MaletItalyIvan Magalhaes RENEWAL
Aruna FigeroaCanadaElwin Sharvill QUALIFIED
Claire TollnerGermanyElwin Sharvill UNQUALIFIED
Tony FollerGermanyElwin Sharvill RENEWAL
Aruna FigeroaIndiaXuxue Feng RENEWAL
Antonio CaudySpainIoni Bowcher QUALIFIED
Ashley DoeArgentinaXuxue Feng UNQUALIFIED
Aruna FigeroaFranceBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonFranceIvan Magalhaes NEW
Ashley DoeCanadaAsiya Javayant NEW
Aruna FigeroaIndiaAmy Elsner NEW
Aditya KuskoBrazilIoni Bowcher RENEWAL
Mayumi KolmetzCanadaBernardo Dominic NEGOTIATION
Munro FerenczBrazilElwin Sharvill QUALIFIED
Kaitlin OstroskySpainAsiya Javayant NEGOTIATION
Aruna FigeroaAustraliaAsiya Javayant RENEWAL
Jefferson SchemmerUnited KingdomIoni Bowcher NEGOTIATION
Leon OldroydAustraliaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaCanada2026-05-27Benton, John B Jr UNQUALIFIED75Elwin Sharvill
1001Jefferson SchemmerRussia2026-06-04Morlong Associates NEGOTIATION98Amy Elsner
1002Jones VocelkaJapan2026-06-08Printing Dimensions NEGOTIATION65Amy Elsner
1003Claire TollnerAustralia2026-06-10Commercial Press NEW96Ioni Bowcher
1004Silvio SlusarskiUnited Kingdom2026-05-27Truhlar And Truhlar Attys RENEWAL97Anna Fali
1005Claire TollnerAustralia2026-06-13Printing Dimensions QUALIFIED55Ioni Bowcher
1006Ashley DoeGermany2026-05-22Rousseaux, Michael Esq RENEWAL9Xuxue Feng
1007Jefferson SchemmerSpain2026-06-09Truhlar And Truhlar Attys RENEWAL58Stephen Shaw
1008Aika InouyeSpain2026-05-28Commercial Press PROPOSAL37Ivan Magalhaes
1009Munro FerenczIndia2026-05-21Benton, John B Jr QUALIFIED51Elwin Sharvill
1010Alejandro PerinArgentina2026-06-09Printing Dimensions QUALIFIED39Ioni Bowcher
1011Morrow RutaUnited Kingdom2026-06-07Printing Dimensions NEGOTIATION26Xuxue Feng
1012Emily WhobreySpain2026-05-23Feiner Bros NEW91Bernardo Dominic
1013Faith GillianJapan2026-05-20Commercial Press QUALIFIED2Ivan Magalhaes
1014Jefferson SchemmerJapan2026-05-31Buckley Miller Wright QUALIFIED19Ivan Magalhaes
1015Leja CaldareraGermany2026-06-03Feiner Bros NEGOTIATION43Onyama Limba
1016Cody SaylorsIndia2026-05-28King, Christopher A Esq UNQUALIFIED8Onyama Limba
1017Kaitlin OstroskyItaly2026-06-13Morlong Associates NEW43Elwin Sharvill
1018James ButtFrance2026-05-31Printing Dimensions UNQUALIFIED21Asiya Javayant
1019Juan WieserJapan2026-05-31King, Christopher A Esq NEW8Bernardo Dominic
1020Munro FerenczFrance2026-05-18King, Christopher A Esq NEGOTIATION65Ioni Bowcher
1021Johnson SergiUnited Kingdom2026-06-11Dorl, James J Esq PROPOSAL1Stephen Shaw
1022Nicolas IturbideIndia2026-06-16Benton, John B Jr NEW33Stephen Shaw
1023Leja CaldareraSpain2026-06-10Feiner Bros NEGOTIATION80Ivan Magalhaes
1024Maisha RulapaughItaly2026-05-26Morlong Associates QUALIFIED35Bernardo Dominic
1025Kadeem FlosiCanada2026-05-23Rousseaux, Michael Esq NEW42Ivan Magalhaes
1026James ButtBrazil2026-06-08Rangoni Of Florence UNQUALIFIED65Anna Fali
1027Munro FerenczIndia2026-06-04Feltz Printing Service NEGOTIATION67Ioni Bowcher
1028Smith GlickFrance2026-06-12Feltz Printing Service NEW63Bernardo Dominic
1029Emily WhobreyArgentina2026-06-05Rousseaux, Michael Esq NEW97Anna Fali
1030Costa DilliardBrazil2026-06-06Commercial Press UNQUALIFIED79Ivan Magalhaes
1031Clifford RimArgentina2026-05-31Morlong Associates UNQUALIFIED24Stephen Shaw
1032Aika InouyeGermany2026-05-31Feltz Printing Service NEGOTIATION25Ivan Magalhaes
1033David DarakjyRussia2026-06-15Truhlar And Truhlar Attys UNQUALIFIED6Bernardo Dominic
1034Murillo MaletRussia2026-06-14Commercial Press NEGOTIATION35Xuxue Feng
1035Maria MarrierIndia2026-06-05Truhlar And Truhlar Attys QUALIFIED8Stephen Shaw
1036Leon OldroydBrazil2026-05-23Buckley Miller Wright UNQUALIFIED13Stephen Shaw
1037Jennifer AmigonUnited Kingdom2026-06-14Rousseaux, Michael Esq RENEWAL27Ivan Magalhaes
1038Leja CaldareraSpain2026-05-28Rousseaux, Michael Esq NEW13Xuxue Feng
1039Kadeem FlosiCanada2026-06-14Rousseaux, Michael Esq NEW65Anna Fali
1040Isabel BowleyItaly2026-06-15Dorl, James J Esq PROPOSAL99Amy Elsner
1041Murillo MaletUnited Kingdom2026-06-15Feltz Printing Service PROPOSAL57Onyama Limba
1042Johnson SergiFrance2026-05-19Chapman, Ross E Esq RENEWAL15Ivan Magalhaes
1043Salvatore StockhamFrance2026-06-01Truhlar And Truhlar Attys QUALIFIED4Ivan Magalhaes
1044Morrow RutaRussia2026-05-31Chemel, James L Cpa PROPOSAL62Ivan Magalhaes
1045Darci PoquetteBrazil2026-05-30Chemel, James L Cpa QUALIFIED93Onyama Limba
1046Misaki RoysterUnited Kingdom2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED70Elwin Sharvill
1047Maisha RulapaughFrance2026-06-11Chanay, Jeffrey A Esq PROPOSAL27Amy Elsner
1048Jones VocelkaAustralia2026-06-13Rousseaux, Michael Esq NEW5Anna Fali
1049Murillo MaletAustralia2026-06-04Chemel, James L Cpa RENEWAL93Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughCanadaAmy Elsner UNQUALIFIED
Jeanfrancois VenereFranceBernardo Dominic UNQUALIFIED
Jefferson SchemmerGermanyXuxue Feng PROPOSAL
Ivar PaprockiIndiaXuxue Feng PROPOSAL
Chavez BriddickGermanyXuxue Feng NEW
Chavez BriddickAustraliaBernardo Dominic NEW
Smith GlickSpainAsiya Javayant UNQUALIFIED
Rodrigues CampainJapanAsiya Javayant NEW
Darci PoquetteArgentinaOnyama Limba QUALIFIED
Aika InouyeFranceAmy Elsner RENEWAL
Clifford RimItalyBernardo Dominic NEGOTIATION
Chavez BriddickCanadaXuxue Feng NEW
Aruna FigeroaIndiaAnna Fali UNQUALIFIED
Nicolas IturbideAustraliaOnyama Limba NEW
Faith GillianGermanyAmy Elsner PROPOSAL
Nicolas IturbideCanadaAnna Fali RENEWAL
Jennifer AmigonCanadaXuxue Feng QUALIFIED
Rodrigues CampainAustraliaElwin Sharvill NEGOTIATION
Chavez BriddickAustraliaAnna Fali RENEWAL
Ivar PaprockiUnited KingdomIoni Bowcher QUALIFIED
Mujtaba NickaItalyOnyama Limba NEGOTIATION
Kadeem FlosiItalyIoni Bowcher QUALIFIED
Aika InouyeJapanElwin Sharvill NEW
Faith GillianItalyXuxue Feng RENEWAL
James ButtRussiaAnna Fali QUALIFIED
Aruna FigeroaJapanOnyama Limba NEW
Jones VocelkaFranceBernardo Dominic QUALIFIED
Munro FerenczIndiaAsiya Javayant QUALIFIED
Leon OldroydIndiaAsiya Javayant QUALIFIED
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher NEW
Kaitlin OstroskyBrazilAmy Elsner PROPOSAL
Nicolas IturbideSpainXuxue Feng RENEWAL
Faith GillianFranceAsiya Javayant PROPOSAL
Izzy GarufiItalyIoni Bowcher NEW
Murillo MaletBrazilIoni Bowcher UNQUALIFIED
Adams MorascaRussiaAnna Fali NEGOTIATION
Emily WhobreyCanadaIoni Bowcher NEGOTIATION
Chavez BriddickGermanyOnyama Limba PROPOSAL
Darci PoquetteSpainAnna Fali QUALIFIED
Maria MarrierJapanAnna Fali RENEWAL
Aruna FigeroaAustraliaIoni Bowcher NEGOTIATION
Tony FollerGermanyAsiya Javayant UNQUALIFIED
Faith GillianBrazilOnyama Limba UNQUALIFIED
Jennifer AmigonBrazilAnna Fali QUALIFIED
Arvin AlbaresSpainAnna Fali RENEWAL
Munro FerenczArgentinaStephen Shaw PROPOSAL
Costa DilliardAustraliaBernardo Dominic UNQUALIFIED
Greenwood BologniaFranceAmy Elsner RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
David Darakjy
Jefferson Schemmer
Faith Gillian
Nicolas Iturbide
Costa Dilliard
Ivar Paprocki
Claire Tollner
Kaitlin Ostrosky
Wickens Nestle
Juan Wieser
Arvin Albares
Aika Inouye
Murillo Malet
Murillo Malet
Maisha Rulapaugh
Chavez Briddick
Tony Foller
Aika Inouye
Juan Wieser
Smith Glick
Morrow Ruta
Jennifer Amigon
David Darakjy
Smith Glick
Aditya Kusko
Octavia Malet
Jones Vocelka
Jennifer Amigon
Ashley Doe
Costa Dilliard
Maria Marrier
Morrow Ruta
Ashley Doe
Maria Marrier
Rodrigues Campain
Deepesh Chui
Johnson Sergi
David Darakjy
Chavez Briddick
Salvatore Stockham
Tony Foller
Cody Saylors
Jefferson Schemmer
Aika Inouye
Alejandro Perin
Aditya Kusko
Morrow Ruta
Adams Morasca
Chavez Briddick
Izzy Garufi
IdCountryDate
1000Japan2026-06-14
1001France2026-05-19
1002Argentina2026-06-03
1003Japan2026-05-19
1004Brazil2026-06-01
1005United Kingdom2026-06-02
1006France2026-05-24
1007France2026-06-04
1008Russia2026-06-11
1009Spain2026-05-26
1010Japan2026-06-03
1011Argentina2026-05-25
1012Russia2026-05-28
1013Australia2026-05-29
1014Italy2026-06-12
1015Brazil2026-06-10
1016Russia2026-06-13
1017United Kingdom2026-06-15
1018Brazil2026-06-16
1019United Kingdom2026-06-01
1020Argentina2026-06-08
1021Argentina2026-05-22
1022Argentina2026-05-27
1023Japan2026-06-14
1024Japan2026-05-31
1025Germany2026-05-21
1026Spain2026-05-23
1027Canada2026-06-14
1028France2026-06-01
1029France2026-05-24
1030Argentina2026-06-15
1031India2026-06-16
1032Italy2026-05-25
1033Japan2026-05-24
1034Australia2026-06-07
1035Brazil2026-06-10
1036Germany2026-06-10
1037Spain2026-06-04
1038Germany2026-05-27
1039Germany2026-05-21
1040United Kingdom2026-06-04
1041Italy2026-06-04
1042Russia2026-05-20
1043Argentina2026-05-24
1044India2026-05-31
1045Canada2026-05-22
1046Argentina2026-06-01
1047Argentina2026-06-15
1048India2026-06-14
1049France2026-05-24

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Australia2026-05-26
James Butt1001France2026-06-05
Nicolas Iturbide1002Argentina2026-05-19
Tony Foller1003Brazil2026-06-07
Misaki Royster1004United Kingdom2026-05-23
Isabel Bowley1005Spain2026-05-22
Emily Whobrey1006Italy2026-06-03
Aika Inouye1007Brazil2026-06-15
Jefferson Schemmer1008India2026-06-02
Maria Marrier1009United Kingdom2026-05-22
Rodrigues Campain1010Australia2026-06-06
Ivar Paprocki1011Spain2026-05-29
Nicolas Iturbide1012Germany2026-05-29
Morrow Ruta1013Italy2026-05-26
Francesco Shinko1014United Kingdom2026-06-08
Jones Vocelka1015United Kingdom2026-05-22
Maria Marrier1016India2026-06-02
Greenwood Bolognia1017Russia2026-05-31
Arvin Albares1018Germany2026-05-19
Ashley Doe1019United Kingdom2026-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzSpainXuxue Feng PROPOSAL
Kadeem FlosiFranceAmy Elsner NEW
Jones VocelkaRussiaIoni Bowcher NEGOTIATION
Maria MarrierFranceAnna Fali NEGOTIATION
Sinclair WaycottIndiaBernardo Dominic PROPOSAL
Juan WieserArgentinaElwin Sharvill UNQUALIFIED
Adams MorascaSpainElwin Sharvill QUALIFIED
Ivar PaprockiCanadaXuxue Feng UNQUALIFIED
James ButtAustraliaOnyama Limba RENEWAL
Wickens NestleRussiaIoni Bowcher NEGOTIATION
Jennifer AmigonAustraliaBernardo Dominic QUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
Octavia MaletBrazilIoni Bowcher NEGOTIATION
Darci PoquetteRussiaStephen Shaw PROPOSAL
Cody SaylorsJapanElwin Sharvill RENEWAL
Smith GlickJapanXuxue Feng NEGOTIATION
Kaitlin OstroskyCanadaXuxue Feng PROPOSAL
Clifford RimGermanyBernardo Dominic UNQUALIFIED
Costa DilliardRussiaAnna Fali NEW
Claire TollnerFranceStephen Shaw RENEWAL
Smith GlickBrazilIvan Magalhaes UNQUALIFIED
Jennifer AmigonSpainAnna Fali RENEWAL
Tony FollerAustraliaElwin Sharvill PROPOSAL
Rodrigues CampainArgentinaAnna Fali NEW
Leon OldroydRussiaElwin Sharvill RENEWAL
Cody SaylorsItalyAmy Elsner PROPOSAL
Salvatore StockhamUnited KingdomBernardo Dominic RENEWAL
Alejandro PerinGermanyIvan Magalhaes PROPOSAL
Emily WhobreyCanadaXuxue Feng RENEWAL
Smith GlickSpainAnna Fali RENEWAL
Tony FollerGermanyIoni Bowcher NEGOTIATION
Tony FollerBrazilIvan Magalhaes UNQUALIFIED
Wickens NestleArgentinaStephen Shaw NEGOTIATION
Salvatore StockhamFranceOnyama Limba UNQUALIFIED
Faith GillianJapanStephen Shaw UNQUALIFIED
Sinclair WaycottRussiaXuxue Feng NEGOTIATION
Misaki RoysterCanadaOnyama Limba NEGOTIATION
Greenwood BologniaCanadaXuxue Feng UNQUALIFIED
Jones VocelkaGermanyIvan Magalhaes RENEWAL
Emily WhobreyGermanyIvan Magalhaes PROPOSAL

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