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
David DarakjyJapanBernardo Dominic PROPOSAL
Julie StensethRussiaAnna Fali RENEWAL
David DarakjyIndiaAmy Elsner NEW
Murillo MaletGermanyAnna Fali QUALIFIED
Arvin AlbaresJapanBernardo Dominic QUALIFIED
Jones VocelkaItalyAnna Fali NEGOTIATION
Chavez BriddickUnited KingdomAmy Elsner UNQUALIFIED
Aditya KuskoBrazilXuxue Feng UNQUALIFIED
Cody SaylorsGermanyStephen Shaw NEGOTIATION
Ivar PaprockiItalyXuxue Feng UNQUALIFIED
Costa DilliardRussiaAsiya Javayant PROPOSAL
Rodrigues CampainBrazilOnyama Limba UNQUALIFIED
Ricardo GauchoArgentinaXuxue Feng RENEWAL
Izzy GarufiCanadaOnyama Limba NEW
Tony FollerBrazilXuxue Feng NEGOTIATION
Claire TollnerBrazilOnyama Limba RENEWAL
Murillo MaletJapanStephen Shaw NEW
Maria MarrierCanadaAnna Fali QUALIFIED
Johnson SergiRussiaXuxue Feng NEGOTIATION
Salvatore StockhamSpainElwin Sharvill RENEWAL
James ButtCanadaOnyama Limba PROPOSAL
Jennifer AmigonAustraliaIoni Bowcher QUALIFIED
Darci PoquetteItalyBernardo Dominic RENEWAL
Ricardo GauchoRussiaIvan Magalhaes UNQUALIFIED
Aika InouyeUnited KingdomIoni Bowcher PROPOSAL
Faith GillianCanadaBernardo Dominic UNQUALIFIED
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Faith GillianCanadaXuxue Feng RENEWAL
Costa DilliardRussiaOnyama Limba UNQUALIFIED
Julie StensethAustraliaStephen Shaw PROPOSAL
Mujtaba NickaArgentinaXuxue Feng PROPOSAL
Faith GillianUnited KingdomBernardo Dominic NEW
Adams MorascaSpainAnna Fali NEW
Octavia MaletIndiaOnyama Limba RENEWAL
Jefferson SchemmerCanadaAnna Fali PROPOSAL
Ricardo GauchoUnited KingdomAmy Elsner UNQUALIFIED
Aika InouyeSpainBernardo Dominic QUALIFIED
Tony FollerIndiaIoni Bowcher NEW
Leja CaldareraIndiaIoni Bowcher RENEWAL
Kadeem FlosiAustraliaIvan Magalhaes PROPOSAL
Leon OldroydSpainAnna Fali UNQUALIFIED
Misaki RoysterRussiaAmy Elsner QUALIFIED
Cody SaylorsUnited KingdomXuxue Feng RENEWAL
Ivar PaprockiSpainStephen Shaw PROPOSAL
Jefferson SchemmerUnited KingdomAsiya Javayant QUALIFIED
Chavez BriddickCanadaOnyama Limba NEGOTIATION
Leon OldroydCanadaOnyama Limba NEW
Ivar PaprockiCanadaAnna Fali UNQUALIFIED
Greenwood BologniaBrazilStephen Shaw UNQUALIFIED
Antonio CaudyAustraliaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika InouyeCanadaAmy Elsner RENEWAL
Mujtaba NickaIndiaOnyama Limba UNQUALIFIED
Costa DilliardIndiaXuxue Feng QUALIFIED
Greenwood BologniaRussiaElwin Sharvill UNQUALIFIED
Arvin AlbaresItalyXuxue Feng QUALIFIED
James ButtSpainAnna Fali RENEWAL
Faith GillianUnited KingdomAsiya Javayant QUALIFIED
Aditya KuskoFranceAsiya Javayant NEGOTIATION
Jefferson SchemmerSpainStephen Shaw QUALIFIED
Chavez BriddickSpainElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyIndia2026-01-24Chapman, Ross E Esq UNQUALIFIED83Anna Fali
1001Smith GlickFrance2026-02-13Feiner Bros QUALIFIED31Onyama Limba
1002Francesco ShinkoBrazil2026-02-15Rousseaux, Michael Esq PROPOSAL26Amy Elsner
1003Clifford RimSpain2026-02-10Printing Dimensions UNQUALIFIED94Amy Elsner
1004Ashley DoeCanada2026-02-02Rangoni Of Florence NEGOTIATION47Bernardo Dominic
1005Francesco ShinkoAustralia2026-02-13Chanay, Jeffrey A Esq UNQUALIFIED85Asiya Javayant
1006Maisha RulapaughGermany2026-02-03Chemel, James L Cpa RENEWAL38Stephen Shaw
1007Kadeem FlosiArgentina2026-02-12King, Christopher A Esq PROPOSAL1Amy Elsner
1008Izzy GarufiUnited Kingdom2026-02-13Morlong Associates UNQUALIFIED63Anna Fali
1009Octavia MaletUnited Kingdom2026-02-14Dorl, James J Esq RENEWAL10Asiya Javayant
1010Kadeem FlosiAustralia2026-02-08Rangoni Of Florence UNQUALIFIED20Bernardo Dominic
1011Greenwood BologniaItaly2026-02-05Rousseaux, Michael Esq PROPOSAL47Stephen Shaw
1012Izzy GarufiUnited Kingdom2026-01-20Chapman, Ross E Esq NEGOTIATION63Asiya Javayant
1013Claire TollnerFrance2026-02-04Printing Dimensions NEW81Amy Elsner
1014Chavez BriddickItaly2026-02-08Chemel, James L Cpa RENEWAL75Stephen Shaw
1015David DarakjyBrazil2026-01-29Truhlar And Truhlar Attys RENEWAL35Amy Elsner
1016Silvio SlusarskiBrazil2026-02-15Feltz Printing Service PROPOSAL45Asiya Javayant
1017Antonio CaudyGermany2026-01-20Benton, John B Jr NEW22Ioni Bowcher
1018Octavia MaletJapan2026-02-04Rangoni Of Florence RENEWAL82Stephen Shaw
1019David DarakjyBrazil2026-02-08Feiner Bros NEW0Elwin Sharvill
1020Chavez BriddickAustralia2026-01-29Feiner Bros NEGOTIATION61Asiya Javayant
1021Munro FerenczGermany2026-01-24Benton, John B Jr QUALIFIED79Asiya Javayant
1022Chavez BriddickUnited Kingdom2026-02-03Chapman, Ross E Esq NEW62Onyama Limba
1023Claire TollnerArgentina2026-02-16Chanay, Jeffrey A Esq RENEWAL65Onyama Limba
1024Johnson SergiCanada2026-02-06Truhlar And Truhlar Attys NEGOTIATION49Elwin Sharvill
1025Costa DilliardUnited Kingdom2026-02-10Feltz Printing Service QUALIFIED3Anna Fali
1026Izzy GarufiRussia2026-01-28Dorl, James J Esq PROPOSAL12Anna Fali
1027Deepesh ChuiBrazil2026-02-07Chemel, James L Cpa RENEWAL48Xuxue Feng
1028Smith GlickAustralia2026-01-24Benton, John B Jr RENEWAL37Stephen Shaw
1029Johnson SergiCanada2026-02-03Commercial Press QUALIFIED77Bernardo Dominic
1030Greenwood BologniaIndia2026-01-30Benton, John B Jr NEW18Anna Fali
1031Salvatore StockhamRussia2026-01-26Feiner Bros QUALIFIED97Ioni Bowcher
1032Darci PoquetteCanada2026-01-26Rangoni Of Florence NEGOTIATION33Onyama Limba
1033Arvin AlbaresIndia2026-02-13Dorl, James J Esq NEGOTIATION21Stephen Shaw
1034Jeanfrancois VenereCanada2026-02-05Feltz Printing Service RENEWAL49Ioni Bowcher
1035Julie StensethArgentina2026-02-04Rangoni Of Florence PROPOSAL41Ioni Bowcher
1036Misaki RoysterSpain2026-02-04Truhlar And Truhlar Attys QUALIFIED54Asiya Javayant
1037Munro FerenczItaly2026-02-15Rousseaux, Michael Esq RENEWAL61Amy Elsner
1038Jeanfrancois VenereRussia2026-02-07Rousseaux, Michael Esq RENEWAL50Onyama Limba
1039Aditya KuskoGermany2026-02-13Buckley Miller Wright NEGOTIATION62Onyama Limba
1040Maria MarrierCanada2026-02-05Chanay, Jeffrey A Esq QUALIFIED18Bernardo Dominic
1041Sinclair WaycottBrazil2026-01-24Chemel, James L Cpa UNQUALIFIED59Stephen Shaw
1042Arvin AlbaresAustralia2026-01-28King, Christopher A Esq RENEWAL49Bernardo Dominic
1043Nicolas IturbideBrazil2026-01-27Chapman, Ross E Esq NEGOTIATION79Ioni Bowcher
1044Alejandro PerinIndia2026-02-09Benton, John B Jr QUALIFIED37Amy Elsner
1045Leja CaldareraUnited Kingdom2026-02-03Chanay, Jeffrey A Esq PROPOSAL10Xuxue Feng
1046Ashley DoeIndia2026-02-10Dorl, James J Esq UNQUALIFIED98Ioni Bowcher
1047Jefferson SchemmerArgentina2026-01-24Benton, John B Jr PROPOSAL67Ivan Magalhaes
1048Misaki RoysterIndia2026-01-21Printing Dimensions NEGOTIATION32Onyama Limba
1049Mayumi KolmetzBrazil2026-01-30Rousseaux, Michael Esq QUALIFIED24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaOnyama Limba PROPOSAL
Clifford RimAustraliaIvan Magalhaes UNQUALIFIED
Nicolas IturbideIndiaXuxue Feng RENEWAL
Francesco ShinkoItalyOnyama Limba PROPOSAL
Alejandro PerinSpainAmy Elsner NEW
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
Morrow RutaIndiaOnyama Limba NEW
Mayumi KolmetzFranceAmy Elsner PROPOSAL
Jefferson SchemmerItalyAnna Fali QUALIFIED
Darci PoquetteCanadaElwin Sharvill PROPOSAL
Ashley DoeAustraliaOnyama Limba NEW
Faith GillianItalyXuxue Feng UNQUALIFIED
Deepesh ChuiIndiaBernardo Dominic NEW
Misaki RoysterIndiaOnyama Limba NEW
Claire TollnerIndiaBernardo Dominic RENEWAL
Maria MarrierFranceAsiya Javayant RENEWAL
Ivar PaprockiBrazilStephen Shaw RENEWAL
Misaki RoysterIndiaXuxue Feng PROPOSAL
Arvin AlbaresSpainIoni Bowcher QUALIFIED
Jennifer AmigonCanadaIoni Bowcher NEW
Jeanfrancois VenereFranceAmy Elsner UNQUALIFIED
Murillo MaletAustraliaOnyama Limba RENEWAL
David DarakjyArgentinaBernardo Dominic NEGOTIATION
Aditya KuskoGermanyAmy Elsner UNQUALIFIED
Johnson SergiIndiaElwin Sharvill UNQUALIFIED
Sinclair WaycottUnited KingdomStephen Shaw RENEWAL
Izzy GarufiArgentinaIvan Magalhaes UNQUALIFIED
Julie StensethBrazilIvan Magalhaes NEW
Costa DilliardSpainIoni Bowcher QUALIFIED
Stacey MacleadJapanAsiya Javayant NEW
Greenwood BologniaIndiaBernardo Dominic UNQUALIFIED
Murillo MaletGermanyElwin Sharvill QUALIFIED
Arvin AlbaresGermanyAmy Elsner PROPOSAL
Kadeem FlosiFranceOnyama Limba QUALIFIED
Sinclair WaycottCanadaXuxue Feng NEW
Arvin AlbaresGermanyBernardo Dominic NEGOTIATION
Deepesh ChuiAustraliaIvan Magalhaes UNQUALIFIED
Darci PoquetteJapanIoni Bowcher UNQUALIFIED
Stacey MacleadFranceIvan Magalhaes NEW
Leon OldroydBrazilAmy Elsner NEW
Silvio SlusarskiSpainIvan Magalhaes QUALIFIED
James ButtItalyBernardo Dominic PROPOSAL
Chavez BriddickArgentinaIvan Magalhaes QUALIFIED
Salvatore StockhamSpainAnna Fali QUALIFIED
Aruna FigeroaSpainStephen Shaw NEW
Emily WhobreyItalyAmy Elsner RENEWAL
Octavia MaletSpainAsiya Javayant RENEWAL
Claire TollnerCanadaAnna Fali RENEWAL
Greenwood BologniaBrazilStephen Shaw NEW
Aditya KuskoIndiaBernardo Dominic NEW
Frozen Columns
Name
Mujtaba Nicka
Kadeem Flosi
Juan Wieser
Darci Poquette
Nicolas Iturbide
Darci Poquette
Jeanfrancois Venere
Costa Dilliard
James Butt
Leon Oldroyd
Rodrigues Campain
Clifford Rim
Isabel Bowley
Julie Stenseth
Isabel Bowley
Tony Foller
Kaitlin Ostrosky
Octavia Malet
Salvatore Stockham
Munro Ferencz
Tony Foller
Jones Vocelka
Tony Foller
Antonio Caudy
Jennifer Amigon
Chavez Briddick
Munro Ferencz
Francesco Shinko
Cody Saylors
Ricardo Gaucho
Antonio Caudy
Tony Foller
Morrow Ruta
Claire Tollner
Tony Foller
Morrow Ruta
Greenwood Bolognia
Salvatore Stockham
Izzy Garufi
Morrow Ruta
Kadeem Flosi
Nicolas Iturbide
Johnson Sergi
Izzy Garufi
Johnson Sergi
Salvatore Stockham
Jones Vocelka
Munro Ferencz
Aditya Kusko
Darci Poquette
IdCountryDate
1000Canada2026-01-19
1001Argentina2026-02-09
1002United Kingdom2026-01-31
1003Italy2026-02-04
1004Brazil2026-02-14
1005Italy2026-02-04
1006Spain2026-02-08
1007Brazil2026-01-30
1008Italy2026-01-29
1009Canada2026-02-16
1010Canada2026-02-08
1011France2026-02-07
1012Russia2026-02-09
1013Japan2026-02-13
1014Spain2026-01-29
1015India2026-01-21
1016France2026-02-03
1017Argentina2026-02-10
1018Germany2026-02-11
1019Australia2026-01-24
1020Russia2026-02-17
1021Italy2026-01-21
1022Canada2026-01-21
1023Spain2026-01-31
1024Canada2026-01-27
1025Argentina2026-02-12
1026Canada2026-01-23
1027Japan2026-02-11
1028France2026-02-15
1029Argentina2026-01-30
1030Brazil2026-02-04
1031United Kingdom2026-01-27
1032Russia2026-02-06
1033France2026-01-26
1034Canada2026-02-11
1035India2026-02-02
1036Argentina2026-01-27
1037Germany2026-02-12
1038Brazil2026-02-16
1039Japan2026-01-22
1040France2026-02-06
1041Italy2026-01-27
1042Spain2026-02-04
1043France2026-02-05
1044France2026-02-01
1045Russia2026-02-07
1046Spain2026-02-13
1047Australia2026-02-12
1048Japan2026-01-30
1049Russia2026-02-17

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Brazil2026-01-27
Greenwood Bolognia1001Russia2026-02-08
Maria Marrier1002Italy2026-02-10
Leja Caldarera1003Italy2026-02-07
Antonio Caudy1004Italy2026-02-11
Misaki Royster1005United Kingdom2026-01-25
Greenwood Bolognia1006India2026-01-26
Aruna Figeroa1007France2026-02-01
Antonio Caudy1008United Kingdom2026-01-24
David Darakjy1009France2026-01-24
Smith Glick1010Spain2026-01-22
James Butt1011Russia2026-01-26
Morrow Ruta1012Italy2026-01-30
Smith Glick1013United Kingdom2026-02-10
Kadeem Flosi1014France2026-02-06
Murillo Malet1015India2026-01-20
Juan Wieser1016Argentina2026-02-02
Chavez Briddick1017Germany2026-02-12
Wickens Nestle1018Canada2026-02-16
Adams Morasca1019Germany2026-01-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereRussiaAmy Elsner PROPOSAL
Greenwood BologniaFranceStephen Shaw PROPOSAL
Munro FerenczGermanyXuxue Feng NEW
Morrow RutaCanadaIvan Magalhaes UNQUALIFIED
Arvin AlbaresGermanyIoni Bowcher QUALIFIED
Antonio CaudyCanadaAnna Fali UNQUALIFIED
Kaitlin OstroskyBrazilAsiya Javayant PROPOSAL
Aditya KuskoIndiaIoni Bowcher RENEWAL
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Octavia MaletSpainIvan Magalhaes RENEWAL
Greenwood BologniaCanadaIvan Magalhaes PROPOSAL
Morrow RutaItalyElwin Sharvill RENEWAL
Kadeem FlosiArgentinaStephen Shaw PROPOSAL
Johnson SergiItalyAsiya Javayant NEW
Rodrigues CampainRussiaIvan Magalhaes UNQUALIFIED
Alejandro PerinCanadaAsiya Javayant QUALIFIED
Deepesh ChuiArgentinaAmy Elsner PROPOSAL
James ButtCanadaIvan Magalhaes QUALIFIED
Tony FollerRussiaOnyama Limba NEW
Darci PoquetteSpainStephen Shaw NEGOTIATION
Adams MorascaUnited KingdomAmy Elsner NEGOTIATION
Izzy GarufiFranceBernardo Dominic NEW
Ashley DoeUnited KingdomBernardo Dominic RENEWAL
Darci PoquetteSpainAnna Fali NEW
Jefferson SchemmerAustraliaStephen Shaw NEW
Munro FerenczItalyAsiya Javayant NEW
James ButtBrazilBernardo Dominic QUALIFIED
Costa DilliardItalyBernardo Dominic NEW
Nicolas IturbideAustraliaAsiya Javayant NEW
Mujtaba NickaCanadaAnna Fali UNQUALIFIED
Adams MorascaIndiaAmy Elsner NEW
Jones VocelkaIndiaXuxue Feng UNQUALIFIED
Greenwood BologniaGermanyIvan Magalhaes NEW
Nicolas IturbideGermanyXuxue Feng RENEWAL
Ricardo GauchoGermanyBernardo Dominic PROPOSAL
James ButtUnited KingdomXuxue Feng RENEWAL
Ivar PaprockiCanadaXuxue Feng PROPOSAL
Octavia MaletJapanElwin Sharvill RENEWAL
Nicolas IturbideIndiaXuxue Feng QUALIFIED
Mujtaba NickaGermanyBernardo Dominic NEW

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