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
Silvio SlusarskiSpainXuxue Feng QUALIFIED
Nicolas IturbideCanadaBernardo Dominic QUALIFIED
Alejandro PerinGermanyStephen Shaw NEGOTIATION
Rodrigues CampainGermanyOnyama Limba PROPOSAL
Stacey MacleadItalyAsiya Javayant UNQUALIFIED
Julie StensethSpainIvan Magalhaes QUALIFIED
Octavia MaletJapanXuxue Feng QUALIFIED
James ButtSpainOnyama Limba UNQUALIFIED
Kadeem FlosiFranceIvan Magalhaes RENEWAL
Darci PoquetteArgentinaAmy Elsner UNQUALIFIED
Alejandro PerinJapanAsiya Javayant NEGOTIATION
Maria MarrierJapanXuxue Feng UNQUALIFIED
Murillo MaletBrazilElwin Sharvill UNQUALIFIED
Emily WhobreyArgentinaBernardo Dominic QUALIFIED
Morrow RutaAustraliaBernardo Dominic PROPOSAL
Mujtaba NickaAustraliaIoni Bowcher NEGOTIATION
Deepesh ChuiArgentinaAmy Elsner NEGOTIATION
Jeanfrancois VenereFranceStephen Shaw NEGOTIATION
Morrow RutaUnited KingdomAmy Elsner PROPOSAL
Antonio CaudyCanadaIvan Magalhaes NEW
Sinclair WaycottItalyStephen Shaw PROPOSAL
Costa DilliardGermanyOnyama Limba RENEWAL
Antonio CaudyAustraliaAnna Fali PROPOSAL
Wickens NestleIndiaElwin Sharvill QUALIFIED
Smith GlickArgentinaIvan Magalhaes NEGOTIATION
Morrow RutaBrazilXuxue Feng QUALIFIED
Emily WhobreyArgentinaAmy Elsner QUALIFIED
Tony FollerGermanyAsiya Javayant NEW
Tony FollerCanadaElwin Sharvill NEGOTIATION
Octavia MaletArgentinaAmy Elsner UNQUALIFIED
Leja CaldareraUnited KingdomXuxue Feng NEW
Alejandro PerinFranceStephen Shaw NEW
Sinclair WaycottGermanyAmy Elsner NEGOTIATION
Juan WieserRussiaXuxue Feng NEW
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
Jefferson SchemmerCanadaBernardo Dominic NEW
Francesco ShinkoSpainElwin Sharvill QUALIFIED
Leja CaldareraItalyElwin Sharvill PROPOSAL
Cody SaylorsUnited KingdomAsiya Javayant NEW
Munro FerenczSpainIvan Magalhaes QUALIFIED
Ashley DoeJapanStephen Shaw QUALIFIED
Rodrigues CampainJapanOnyama Limba NEGOTIATION
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Alejandro PerinBrazilIvan Magalhaes PROPOSAL
Adams MorascaRussiaOnyama Limba UNQUALIFIED
Mayumi KolmetzAustraliaAnna Fali PROPOSAL
Silvio SlusarskiJapanAnna Fali NEGOTIATION
Arvin AlbaresItalyIoni Bowcher QUALIFIED
Johnson SergiCanadaStephen Shaw NEW
Jeanfrancois VenereJapanIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Munro FerenczIndiaIvan Magalhaes RENEWAL
Aditya KuskoItalyAmy Elsner RENEWAL
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Nicolas IturbideRussiaStephen Shaw NEW
Kadeem FlosiJapanIvan Magalhaes QUALIFIED
Ivar PaprockiItalyIoni Bowcher UNQUALIFIED
Smith GlickUnited KingdomBernardo Dominic NEW
Munro FerenczArgentinaElwin Sharvill UNQUALIFIED
Adams MorascaSpainElwin Sharvill UNQUALIFIED
David DarakjyFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardAustralia2025-09-21Chemel, James L Cpa NEW11Stephen Shaw
1001Aruna FigeroaSpain2025-10-03Chanay, Jeffrey A Esq NEW6Elwin Sharvill
1002Tony FollerCanada2025-09-23Dorl, James J Esq QUALIFIED7Onyama Limba
1003Chavez BriddickSpain2025-09-16Feiner Bros NEW50Elwin Sharvill
1004Stacey MacleadAustralia2025-09-25Truhlar And Truhlar Attys UNQUALIFIED84Asiya Javayant
1005Deepesh ChuiSpain2025-09-19Dorl, James J Esq UNQUALIFIED3Elwin Sharvill
1006Faith GillianJapan2025-10-07Buckley Miller Wright PROPOSAL46Elwin Sharvill
1007Arvin AlbaresAustralia2025-09-19Dorl, James J Esq NEGOTIATION4Stephen Shaw
1008Kadeem FlosiItaly2025-09-27Rousseaux, Michael Esq QUALIFIED52Xuxue Feng
1009Octavia MaletCanada2025-09-20Chemel, James L Cpa NEGOTIATION69Anna Fali
1010Kaitlin OstroskyBrazil2025-09-19Dorl, James J Esq NEW22Elwin Sharvill
1011Wickens NestleAustralia2025-09-30Benton, John B Jr NEGOTIATION9Anna Fali
1012Jennifer AmigonGermany2025-10-08Dorl, James J Esq RENEWAL44Stephen Shaw
1013Stacey MacleadSpain2025-09-21Feltz Printing Service NEGOTIATION88Anna Fali
1014Jefferson SchemmerGermany2025-10-01Rousseaux, Michael Esq NEW48Asiya Javayant
1015Tony FollerUnited Kingdom2025-09-24Feiner Bros NEW29Elwin Sharvill
1016Jennifer AmigonRussia2025-10-01Rousseaux, Michael Esq QUALIFIED61Asiya Javayant
1017Ricardo GauchoCanada2025-10-05Feltz Printing Service NEW0Ioni Bowcher
1018Stacey MacleadIndia2025-09-26Chanay, Jeffrey A Esq UNQUALIFIED89Bernardo Dominic
1019Aika InouyeArgentina2025-09-23Chanay, Jeffrey A Esq NEGOTIATION77Bernardo Dominic
1020Wickens NestleAustralia2025-10-02Feltz Printing Service PROPOSAL4Amy Elsner
1021Deepesh ChuiGermany2025-10-11Benton, John B Jr NEW89Ioni Bowcher
1022Juan WieserAustralia2025-09-27Benton, John B Jr RENEWAL51Amy Elsner
1023Stacey MacleadIndia2025-09-30Rousseaux, Michael Esq NEW44Stephen Shaw
1024Aditya KuskoJapan2025-09-14Feiner Bros RENEWAL90Xuxue Feng
1025Izzy GarufiUnited Kingdom2025-09-26Chemel, James L Cpa UNQUALIFIED28Amy Elsner
1026Emily WhobreyGermany2025-09-18Morlong Associates RENEWAL57Onyama Limba
1027Clifford RimFrance2025-10-01Chanay, Jeffrey A Esq NEW42Anna Fali
1028Silvio SlusarskiGermany2025-09-20Benton, John B Jr QUALIFIED71Ivan Magalhaes
1029Greenwood BologniaCanada2025-09-25Rousseaux, Michael Esq NEGOTIATION79Amy Elsner
1030Alejandro PerinGermany2025-09-25Chemel, James L Cpa PROPOSAL26Elwin Sharvill
1031Aika InouyeSpain2025-09-16King, Christopher A Esq PROPOSAL31Ivan Magalhaes
1032Aditya KuskoCanada2025-10-01Morlong Associates PROPOSAL99Elwin Sharvill
1033Costa DilliardCanada2025-10-08Chanay, Jeffrey A Esq RENEWAL43Ivan Magalhaes
1034Aruna FigeroaBrazil2025-09-28Feltz Printing Service UNQUALIFIED20Amy Elsner
1035James ButtItaly2025-10-10Morlong Associates NEW98Bernardo Dominic
1036Sinclair WaycottGermany2025-10-08King, Christopher A Esq UNQUALIFIED71Ioni Bowcher
1037Ivar PaprockiCanada2025-09-15Truhlar And Truhlar Attys PROPOSAL19Amy Elsner
1038Aika InouyeJapan2025-09-29Feltz Printing Service NEW54Ivan Magalhaes
1039Octavia MaletUnited Kingdom2025-10-08Commercial Press PROPOSAL94Xuxue Feng
1040Isabel BowleyAustralia2025-09-16Dorl, James J Esq UNQUALIFIED62Xuxue Feng
1041Murillo MaletFrance2025-10-10Morlong Associates QUALIFIED40Ioni Bowcher
1042Ivar PaprockiBrazil2025-09-15King, Christopher A Esq NEGOTIATION48Stephen Shaw
1043Jennifer AmigonArgentina2025-09-25Feiner Bros QUALIFIED41Onyama Limba
1044Leja CaldareraIndia2025-09-22Chemel, James L Cpa NEW16Amy Elsner
1045Murillo MaletIndia2025-10-06Chanay, Jeffrey A Esq RENEWAL96Stephen Shaw
1046David DarakjyArgentina2025-09-17Buckley Miller Wright RENEWAL93Onyama Limba
1047Jeanfrancois VenereSpain2025-09-29Truhlar And Truhlar Attys NEGOTIATION71Amy Elsner
1048Izzy GarufiIndia2025-09-27Morlong Associates UNQUALIFIED79Anna Fali
1049Johnson SergiJapan2025-09-16Truhlar And Truhlar Attys NEW25Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierArgentinaOnyama Limba RENEWAL
Ashley DoeRussiaAmy Elsner NEGOTIATION
Faith GillianBrazilIoni Bowcher NEW
Chavez BriddickSpainAmy Elsner UNQUALIFIED
Rodrigues CampainIndiaStephen Shaw UNQUALIFIED
Ivar PaprockiSpainAnna Fali RENEWAL
Faith GillianSpainElwin Sharvill NEW
Antonio CaudyItalyOnyama Limba PROPOSAL
Izzy GarufiCanadaElwin Sharvill NEGOTIATION
Jeanfrancois VenereJapanAsiya Javayant UNQUALIFIED
Chavez BriddickGermanyStephen Shaw RENEWAL
Munro FerenczIndiaBernardo Dominic QUALIFIED
Wickens NestleCanadaStephen Shaw PROPOSAL
Chavez BriddickFranceStephen Shaw NEGOTIATION
Sinclair WaycottGermanyIoni Bowcher NEW
Smith GlickIndiaXuxue Feng RENEWAL
Stacey MacleadCanadaAmy Elsner NEGOTIATION
Leon OldroydAustraliaAnna Fali PROPOSAL
Stacey MacleadIndiaBernardo Dominic QUALIFIED
Smith GlickAustraliaXuxue Feng RENEWAL
Maisha RulapaughUnited KingdomAmy Elsner UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw QUALIFIED
Alejandro PerinIndiaStephen Shaw NEGOTIATION
Kadeem FlosiBrazilAsiya Javayant NEGOTIATION
Aika InouyeArgentinaIoni Bowcher QUALIFIED
Arvin AlbaresIndiaStephen Shaw NEGOTIATION
Costa DilliardItalyIoni Bowcher NEW
Julie StensethGermanyXuxue Feng QUALIFIED
Octavia MaletSpainAmy Elsner PROPOSAL
Juan WieserSpainAsiya Javayant UNQUALIFIED
Cody SaylorsIndiaAsiya Javayant RENEWAL
Sinclair WaycottItalyIoni Bowcher NEGOTIATION
Maria MarrierAustraliaAsiya Javayant RENEWAL
Munro FerenczIndiaAmy Elsner PROPOSAL
Salvatore StockhamRussiaIvan Magalhaes QUALIFIED
Tony FollerIndiaElwin Sharvill NEW
Rodrigues CampainUnited KingdomXuxue Feng RENEWAL
Nicolas IturbideItalyIvan Magalhaes UNQUALIFIED
Jefferson SchemmerJapanStephen Shaw UNQUALIFIED
James ButtCanadaXuxue Feng NEW
Ivar PaprockiBrazilAsiya Javayant PROPOSAL
Costa DilliardUnited KingdomXuxue Feng QUALIFIED
Cody SaylorsRussiaAsiya Javayant PROPOSAL
Ricardo GauchoItalyBernardo Dominic NEW
Faith GillianSpainStephen Shaw NEW
Rodrigues CampainBrazilXuxue Feng RENEWAL
Salvatore StockhamSpainAmy Elsner QUALIFIED
Leja CaldareraRussiaElwin Sharvill QUALIFIED
Tony FollerAustraliaElwin Sharvill UNQUALIFIED
Alejandro PerinUnited KingdomStephen Shaw PROPOSAL
Frozen Columns
Name
Johnson Sergi
Mayumi Kolmetz
Stacey Maclead
Sinclair Waycott
Stacey Maclead
Leon Oldroyd
Costa Dilliard
Rodrigues Campain
Jones Vocelka
Mayumi Kolmetz
Johnson Sergi
Deepesh Chui
Jefferson Schemmer
Kadeem Flosi
Wickens Nestle
Johnson Sergi
Murillo Malet
Salvatore Stockham
Antonio Caudy
Isabel Bowley
Chavez Briddick
Wickens Nestle
Costa Dilliard
Isabel Bowley
Izzy Garufi
Maria Marrier
Kadeem Flosi
Stacey Maclead
Kadeem Flosi
Ashley Doe
Mujtaba Nicka
Rodrigues Campain
Chavez Briddick
Aika Inouye
Jefferson Schemmer
Rodrigues Campain
Nicolas Iturbide
Claire Tollner
Munro Ferencz
Kadeem Flosi
Tony Foller
Chavez Briddick
Claire Tollner
David Darakjy
David Darakjy
Julie Stenseth
Emily Whobrey
Jones Vocelka
Faith Gillian
Aika Inouye
IdCountryDate
1000France2025-09-27
1001Russia2025-09-23
1002Brazil2025-09-13
1003Italy2025-09-29
1004France2025-10-01
1005Australia2025-09-17
1006Canada2025-09-21
1007Russia2025-10-05
1008Japan2025-09-30
1009India2025-10-04
1010Australia2025-09-21
1011Brazil2025-09-13
1012France2025-09-23
1013Japan2025-09-20
1014India2025-09-22
1015India2025-09-28
1016Russia2025-09-25
1017Germany2025-09-28
1018Italy2025-09-20
1019France2025-09-26
1020Canada2025-10-01
1021Spain2025-10-08
1022Germany2025-10-07
1023France2025-10-11
1024Japan2025-10-03
1025Italy2025-09-26
1026India2025-10-10
1027Canada2025-10-09
1028Japan2025-10-02
1029United Kingdom2025-10-09
1030Russia2025-09-30
1031Italy2025-09-16
1032Italy2025-09-13
1033Germany2025-10-09
1034Japan2025-09-22
1035France2025-09-29
1036Italy2025-09-12
1037Germany2025-09-22
1038Japan2025-10-10
1039Canada2025-09-18
1040Spain2025-10-01
1041Argentina2025-10-07
1042Japan2025-09-12
1043Canada2025-09-26
1044Russia2025-09-21
1045Spain2025-09-19
1046France2025-09-17
1047Spain2025-09-26
1048Brazil2025-10-02
1049United Kingdom2025-10-02

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Germany2025-09-21
Jones Vocelka1001Australia2025-10-02
Julie Stenseth1002Russia2025-09-29
Antonio Caudy1003Brazil2025-09-18
Jones Vocelka1004Germany2025-09-12
Kaitlin Ostrosky1005Brazil2025-10-07
Francesco Shinko1006Australia2025-10-08
Jeanfrancois Venere1007France2025-09-18
Mujtaba Nicka1008Argentina2025-09-18
Jones Vocelka1009Argentina2025-09-25
Silvio Slusarski1010Argentina2025-10-02
Kaitlin Ostrosky1011Russia2025-10-09
Costa Dilliard1012Australia2025-10-05
Aditya Kusko1013Brazil2025-10-10
Misaki Royster1014Australia2025-10-11
Maisha Rulapaugh1015India2025-09-26
Morrow Ruta1016France2025-09-19
Darci Poquette1017Australia2025-09-15
Stacey Maclead1018Spain2025-09-30
Ivar Paprocki1019Russia2025-10-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeUnited KingdomXuxue Feng NEW
Smith GlickCanadaBernardo Dominic RENEWAL
Octavia MaletAustraliaAmy Elsner NEW
Emily WhobreySpainStephen Shaw RENEWAL
Izzy GarufiCanadaBernardo Dominic NEGOTIATION
Kaitlin OstroskyCanadaBernardo Dominic NEW
Smith GlickArgentinaElwin Sharvill NEGOTIATION
Leon OldroydFranceOnyama Limba NEW
David DarakjyCanadaOnyama Limba NEGOTIATION
James ButtCanadaIoni Bowcher NEW
Maria MarrierItalyIoni Bowcher PROPOSAL
Stacey MacleadBrazilIvan Magalhaes NEW
Kaitlin OstroskyBrazilElwin Sharvill QUALIFIED
Octavia MaletRussiaBernardo Dominic PROPOSAL
Leja CaldareraRussiaAsiya Javayant NEW
Jefferson SchemmerJapanAsiya Javayant NEGOTIATION
Aruna FigeroaGermanyIvan Magalhaes UNQUALIFIED
Cody SaylorsFranceOnyama Limba RENEWAL
Smith GlickBrazilAmy Elsner UNQUALIFIED
Stacey MacleadIndiaAnna Fali UNQUALIFIED
Morrow RutaItalyBernardo Dominic NEW
Mayumi KolmetzSpainAsiya Javayant PROPOSAL
Izzy GarufiRussiaBernardo Dominic NEW
James ButtSpainStephen Shaw UNQUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
Kaitlin OstroskySpainBernardo Dominic RENEWAL
David DarakjyBrazilAnna Fali PROPOSAL
Kaitlin OstroskyGermanyXuxue Feng PROPOSAL
Jones VocelkaAustraliaOnyama Limba UNQUALIFIED
Kadeem FlosiRussiaAsiya Javayant PROPOSAL
Antonio CaudySpainIvan Magalhaes NEGOTIATION
Mayumi KolmetzIndiaAsiya Javayant QUALIFIED
Emily WhobreyFranceIoni Bowcher PROPOSAL
Costa DilliardGermanyXuxue Feng NEW
Emily WhobreyItalyBernardo Dominic NEW
Clifford RimSpainOnyama Limba NEW
Nicolas IturbideSpainIoni Bowcher QUALIFIED
Rodrigues CampainUnited KingdomStephen Shaw NEGOTIATION
Francesco ShinkoBrazilXuxue Feng NEGOTIATION
Juan WieserJapanAmy Elsner 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>