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
Kaitlin OstroskyFranceBernardo Dominic NEW
Salvatore StockhamArgentinaIoni Bowcher NEGOTIATION
Octavia MaletCanadaAnna Fali PROPOSAL
Kadeem FlosiUnited KingdomIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilOnyama Limba PROPOSAL
Mayumi KolmetzGermanyXuxue Feng UNQUALIFIED
Jefferson SchemmerBrazilIvan Magalhaes NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill NEW
Kaitlin OstroskyItalyAnna Fali NEW
Deepesh ChuiGermanyIoni Bowcher UNQUALIFIED
Ashley DoeArgentinaAmy Elsner NEW
James ButtJapanStephen Shaw RENEWAL
Murillo MaletJapanXuxue Feng QUALIFIED
Cody SaylorsBrazilAnna Fali RENEWAL
Murillo MaletRussiaAsiya Javayant PROPOSAL
Cody SaylorsArgentinaAmy Elsner NEW
Rodrigues CampainGermanyOnyama Limba NEGOTIATION
Faith GillianRussiaIoni Bowcher RENEWAL
Chavez BriddickJapanAmy Elsner PROPOSAL
Aditya KuskoItalyElwin Sharvill UNQUALIFIED
Jones VocelkaRussiaIoni Bowcher NEW
Francesco ShinkoAustraliaIoni Bowcher NEGOTIATION
Maria MarrierFranceIoni Bowcher PROPOSAL
Darci PoquetteIndiaBernardo Dominic NEGOTIATION
Ricardo GauchoUnited KingdomOnyama Limba QUALIFIED
Francesco ShinkoArgentinaStephen Shaw NEGOTIATION
Maisha RulapaughItalyAnna Fali PROPOSAL
Leja CaldareraJapanBernardo Dominic UNQUALIFIED
Adams MorascaIndiaStephen Shaw UNQUALIFIED
James ButtArgentinaAnna Fali UNQUALIFIED
Sinclair WaycottCanadaOnyama Limba UNQUALIFIED
Maria MarrierItalyStephen Shaw UNQUALIFIED
Kaitlin OstroskySpainAsiya Javayant PROPOSAL
Morrow RutaArgentinaBernardo Dominic NEGOTIATION
Silvio SlusarskiIndiaAsiya Javayant QUALIFIED
Francesco ShinkoArgentinaIoni Bowcher NEW
Ricardo GauchoCanadaBernardo Dominic UNQUALIFIED
Isabel BowleyArgentinaElwin Sharvill NEW
Isabel BowleySpainXuxue Feng PROPOSAL
Tony FollerFranceXuxue Feng RENEWAL
James ButtGermanyAsiya Javayant NEW
Izzy GarufiGermanyElwin Sharvill PROPOSAL
Clifford RimIndiaAmy Elsner RENEWAL
Arvin AlbaresFranceAnna Fali UNQUALIFIED
Isabel BowleyIndiaAsiya Javayant NEW
Smith GlickBrazilAmy Elsner NEGOTIATION
Francesco ShinkoJapanAmy Elsner NEW
David DarakjyIndiaBernardo Dominic NEW
Sinclair WaycottRussiaAmy Elsner PROPOSAL
Jefferson SchemmerSpainAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiFranceOnyama Limba PROPOSAL
Munro FerenczJapanBernardo Dominic NEGOTIATION
Chavez BriddickGermanyIoni Bowcher QUALIFIED
Francesco ShinkoBrazilAmy Elsner NEW
Julie StensethAustraliaOnyama Limba NEW
Darci PoquetteFranceOnyama Limba NEGOTIATION
Jones VocelkaItalyAmy Elsner UNQUALIFIED
Maria MarrierAustraliaBernardo Dominic QUALIFIED
Clifford RimUnited KingdomOnyama Limba RENEWAL
Kadeem FlosiRussiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyFrance2026-05-31King, Christopher A Esq RENEWAL39Anna Fali
1001Emily WhobreyIndia2026-05-08Morlong Associates NEGOTIATION36Bernardo Dominic
1002Maisha RulapaughUnited Kingdom2026-05-20Benton, John B Jr NEGOTIATION31Elwin Sharvill
1003Emily WhobreyItaly2026-05-31Rousseaux, Michael Esq NEGOTIATION82Anna Fali
1004Johnson SergiItaly2026-05-04Rangoni Of Florence QUALIFIED97Elwin Sharvill
1005James ButtJapan2026-05-28Benton, John B Jr PROPOSAL62Amy Elsner
1006Adams MorascaIndia2026-05-21Truhlar And Truhlar Attys RENEWAL15Anna Fali
1007Isabel BowleyGermany2026-05-20King, Christopher A Esq RENEWAL98Stephen Shaw
1008Chavez BriddickCanada2026-05-21Feiner Bros NEGOTIATION21Amy Elsner
1009Clifford RimUnited Kingdom2026-05-22Feltz Printing Service RENEWAL82Stephen Shaw
1010Alejandro PerinArgentina2026-05-08Rousseaux, Michael Esq UNQUALIFIED90Xuxue Feng
1011Antonio CaudyAustralia2026-05-13Morlong Associates RENEWAL36Stephen Shaw
1012Jefferson SchemmerBrazil2026-05-04Chanay, Jeffrey A Esq NEGOTIATION13Elwin Sharvill
1013Johnson SergiBrazil2026-06-01Rangoni Of Florence NEW0Stephen Shaw
1014Aika InouyeFrance2026-05-06Feltz Printing Service RENEWAL93Asiya Javayant
1015Costa DilliardFrance2026-05-20King, Christopher A Esq PROPOSAL59Anna Fali
1016Smith GlickBrazil2026-05-14Printing Dimensions NEGOTIATION61Amy Elsner
1017Juan WieserAustralia2026-05-11Rangoni Of Florence QUALIFIED79Ioni Bowcher
1018Emily WhobreySpain2026-05-04Chapman, Ross E Esq RENEWAL58Onyama Limba
1019Faith GillianItaly2026-05-12Feiner Bros QUALIFIED17Ivan Magalhaes
1020Izzy GarufiJapan2026-05-07Chanay, Jeffrey A Esq UNQUALIFIED42Anna Fali
1021Salvatore StockhamArgentina2026-05-04King, Christopher A Esq PROPOSAL60Anna Fali
1022Murillo MaletGermany2026-05-19Dorl, James J Esq PROPOSAL29Onyama Limba
1023Munro FerenczGermany2026-06-02Commercial Press PROPOSAL21Elwin Sharvill
1024Stacey MacleadSpain2026-05-10King, Christopher A Esq NEW27Amy Elsner
1025Sinclair WaycottSpain2026-05-05Commercial Press QUALIFIED0Anna Fali
1026Misaki RoysterBrazil2026-05-10Commercial Press NEW84Asiya Javayant
1027Sinclair WaycottIndia2026-05-04Commercial Press RENEWAL50Onyama Limba
1028Adams MorascaBrazil2026-05-16Chanay, Jeffrey A Esq NEGOTIATION28Elwin Sharvill
1029Isabel BowleyCanada2026-05-07Rousseaux, Michael Esq QUALIFIED3Asiya Javayant
1030Rodrigues CampainFrance2026-05-09King, Christopher A Esq QUALIFIED32Bernardo Dominic
1031Juan WieserArgentina2026-05-23Commercial Press PROPOSAL78Asiya Javayant
1032Darci PoquetteCanada2026-05-05Chemel, James L Cpa NEW69Elwin Sharvill
1033Aruna FigeroaUnited Kingdom2026-05-19Printing Dimensions RENEWAL35Anna Fali
1034Ivar PaprockiSpain2026-05-07Morlong Associates NEW12Onyama Limba
1035Munro FerenczItaly2026-05-30Truhlar And Truhlar Attys NEW4Amy Elsner
1036Adams MorascaJapan2026-05-21Chapman, Ross E Esq PROPOSAL69Anna Fali
1037Claire TollnerFrance2026-05-18Rousseaux, Michael Esq RENEWAL84Asiya Javayant
1038Jones VocelkaFrance2026-05-09Feltz Printing Service NEW26Elwin Sharvill
1039Murillo MaletBrazil2026-05-19Rangoni Of Florence RENEWAL91Anna Fali
1040Juan WieserIndia2026-06-02King, Christopher A Esq PROPOSAL39Anna Fali
1041Munro FerenczBrazil2026-06-02Truhlar And Truhlar Attys RENEWAL88Amy Elsner
1042Izzy GarufiAustralia2026-05-05Rousseaux, Michael Esq PROPOSAL43Elwin Sharvill
1043Jennifer AmigonAustralia2026-06-02Buckley Miller Wright NEW51Stephen Shaw
1044Greenwood BologniaIndia2026-05-12Chanay, Jeffrey A Esq PROPOSAL7Ioni Bowcher
1045Murillo MaletSpain2026-05-21Feltz Printing Service NEGOTIATION25Stephen Shaw
1046Tony FollerJapan2026-05-07Chemel, James L Cpa UNQUALIFIED25Elwin Sharvill
1047Juan WieserUnited Kingdom2026-05-30Chemel, James L Cpa UNQUALIFIED49Elwin Sharvill
1048Deepesh ChuiRussia2026-05-06Morlong Associates RENEWAL96Asiya Javayant
1049Sinclair WaycottAustralia2026-05-30Chapman, Ross E Esq RENEWAL11Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereFranceAnna Fali QUALIFIED
Silvio SlusarskiAustraliaStephen Shaw NEW
Ivar PaprockiArgentinaStephen Shaw NEGOTIATION
Deepesh ChuiJapanIvan Magalhaes PROPOSAL
Maria MarrierSpainXuxue Feng QUALIFIED
Jefferson SchemmerCanadaElwin Sharvill RENEWAL
Jefferson SchemmerCanadaAnna Fali UNQUALIFIED
Jefferson SchemmerGermanyBernardo Dominic RENEWAL
Jones VocelkaIndiaXuxue Feng NEW
Salvatore StockhamIndiaAnna Fali NEGOTIATION
Emily WhobreyRussiaStephen Shaw UNQUALIFIED
Aditya KuskoIndiaOnyama Limba PROPOSAL
Chavez BriddickRussiaOnyama Limba NEW
Kaitlin OstroskyArgentinaElwin Sharvill QUALIFIED
Aditya KuskoItalyStephen Shaw RENEWAL
Salvatore StockhamRussiaBernardo Dominic NEW
Leja CaldareraItalyAsiya Javayant QUALIFIED
Izzy GarufiArgentinaIoni Bowcher NEGOTIATION
Deepesh ChuiUnited KingdomElwin Sharvill NEGOTIATION
Costa DilliardBrazilAnna Fali QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng QUALIFIED
Sinclair WaycottBrazilAnna Fali UNQUALIFIED
Leon OldroydItalyStephen Shaw NEGOTIATION
Sinclair WaycottArgentinaOnyama Limba RENEWAL
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Isabel BowleySpainElwin Sharvill NEGOTIATION
Juan WieserBrazilAmy Elsner QUALIFIED
Maria MarrierAustraliaIvan Magalhaes NEW
Munro FerenczUnited KingdomStephen Shaw NEW
Arvin AlbaresItalyAmy Elsner QUALIFIED
Faith GillianAustraliaIvan Magalhaes NEW
James ButtRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereSpainAsiya Javayant PROPOSAL
James ButtCanadaStephen Shaw PROPOSAL
Deepesh ChuiUnited KingdomIoni Bowcher QUALIFIED
Kaitlin OstroskyGermanyOnyama Limba QUALIFIED
Johnson SergiGermanyAmy Elsner PROPOSAL
Kadeem FlosiIndiaIvan Magalhaes NEW
David DarakjyUnited KingdomAsiya Javayant RENEWAL
Juan WieserBrazilXuxue Feng RENEWAL
Jennifer AmigonItalyBernardo Dominic NEW
Misaki RoysterRussiaIoni Bowcher PROPOSAL
Tony FollerCanadaIoni Bowcher PROPOSAL
Octavia MaletUnited KingdomAnna Fali NEW
Aika InouyeIndiaIvan Magalhaes QUALIFIED
Adams MorascaArgentinaIvan Magalhaes UNQUALIFIED
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Maria MarrierSpainAsiya Javayant NEW
David DarakjyArgentinaElwin Sharvill RENEWAL
Misaki RoysterJapanIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Octavia Malet
Jennifer Amigon
Emily Whobrey
Jennifer Amigon
Morrow Ruta
Salvatore Stockham
Aika Inouye
Smith Glick
Rodrigues Campain
Stacey Maclead
Clifford Rim
Arvin Albares
Jennifer Amigon
Tony Foller
Tony Foller
Costa Dilliard
Mayumi Kolmetz
Salvatore Stockham
Cody Saylors
Greenwood Bolognia
Tony Foller
Darci Poquette
Alejandro Perin
Kaitlin Ostrosky
Jennifer Amigon
Cody Saylors
Nicolas Iturbide
Antonio Caudy
Murillo Malet
Juan Wieser
Mayumi Kolmetz
Julie Stenseth
Mujtaba Nicka
Aika Inouye
Tony Foller
Ivar Paprocki
Octavia Malet
Maisha Rulapaugh
Cody Saylors
Smith Glick
Smith Glick
Deepesh Chui
Antonio Caudy
Mayumi Kolmetz
Emily Whobrey
Sinclair Waycott
Deepesh Chui
Maria Marrier
Ricardo Gaucho
Claire Tollner
IdCountryDate
1000Canada2026-05-19
1001Brazil2026-05-28
1002Spain2026-05-08
1003France2026-05-10
1004United Kingdom2026-05-04
1005United Kingdom2026-05-22
1006Argentina2026-05-26
1007France2026-05-15
1008Italy2026-05-26
1009France2026-05-29
1010United Kingdom2026-05-12
1011United Kingdom2026-05-11
1012Spain2026-06-02
1013Canada2026-05-26
1014France2026-05-13
1015Japan2026-05-05
1016France2026-05-30
1017Russia2026-05-09
1018United Kingdom2026-05-05
1019Australia2026-05-14
1020Germany2026-06-02
1021United Kingdom2026-05-31
1022United Kingdom2026-05-22
1023Spain2026-06-02
1024Japan2026-05-04
1025Russia2026-05-14
1026Spain2026-05-17
1027Italy2026-05-28
1028Germany2026-05-13
1029Spain2026-05-08
1030Germany2026-06-02
1031United Kingdom2026-05-22
1032India2026-05-14
1033India2026-05-12
1034United Kingdom2026-05-07
1035Argentina2026-05-25
1036Spain2026-05-17
1037Canada2026-05-15
1038Spain2026-05-16
1039Brazil2026-05-23
1040Australia2026-05-17
1041Argentina2026-05-09
1042Russia2026-05-09
1043Germany2026-05-25
1044France2026-05-04
1045Brazil2026-05-13
1046Argentina2026-05-30
1047United Kingdom2026-05-31
1048Russia2026-05-06
1049Australia2026-05-11

On-Demand Data

NameIdCountryDate
James Butt1000Canada2026-05-31
James Butt1001Italy2026-05-11
Faith Gillian1002Germany2026-05-25
Chavez Briddick1003Brazil2026-05-13
Clifford Rim1004Italy2026-05-30
Jeanfrancois Venere1005United Kingdom2026-06-01
Tony Foller1006Russia2026-05-28
Maisha Rulapaugh1007France2026-05-24
Ashley Doe1008Germany2026-05-06
Ricardo Gaucho1009Russia2026-05-13
Ricardo Gaucho1010Australia2026-05-11
Cody Saylors1011Spain2026-05-24
Aika Inouye1012India2026-06-01
Salvatore Stockham1013United Kingdom2026-05-26
Darci Poquette1014Japan2026-05-30
Deepesh Chui1015Italy2026-05-26
Murillo Malet1016France2026-05-13
Greenwood Bolognia1017Australia2026-05-24
Salvatore Stockham1018India2026-05-22
Aditya Kusko1019Germany2026-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaUnited KingdomAnna Fali PROPOSAL
Francesco ShinkoIndiaIoni Bowcher RENEWAL
Costa DilliardIndiaBernardo Dominic RENEWAL
Kaitlin OstroskyGermanyIvan Magalhaes RENEWAL
Alejandro PerinJapanElwin Sharvill RENEWAL
Ricardo GauchoFranceIoni Bowcher NEGOTIATION
Mujtaba NickaItalyStephen Shaw QUALIFIED
James ButtArgentinaIvan Magalhaes RENEWAL
Ricardo GauchoJapanOnyama Limba RENEWAL
Antonio CaudyIndiaAmy Elsner NEW
Antonio CaudyItalyAnna Fali RENEWAL
Ashley DoeFranceBernardo Dominic QUALIFIED
Silvio SlusarskiFranceAmy Elsner NEW
Antonio CaudyCanadaIoni Bowcher PROPOSAL
Salvatore StockhamIndiaStephen Shaw NEW
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Jefferson SchemmerArgentinaBernardo Dominic NEW
Julie StensethIndiaOnyama Limba UNQUALIFIED
Aika InouyeUnited KingdomAmy Elsner NEW
Jones VocelkaIndiaXuxue Feng NEGOTIATION
Nicolas IturbideRussiaBernardo Dominic QUALIFIED
Maisha RulapaughCanadaElwin Sharvill QUALIFIED
Arvin AlbaresArgentinaStephen Shaw UNQUALIFIED
Claire TollnerGermanyAsiya Javayant PROPOSAL
Leon OldroydSpainIvan Magalhaes NEGOTIATION
David DarakjyGermanyAnna Fali RENEWAL
Munro FerenczGermanyXuxue Feng NEW
Antonio CaudySpainBernardo Dominic PROPOSAL
Julie StensethIndiaIvan Magalhaes NEW
Nicolas IturbideAustraliaIvan Magalhaes NEW
Maisha RulapaughBrazilElwin Sharvill UNQUALIFIED
Murillo MaletJapanAnna Fali UNQUALIFIED
Maria MarrierItalyIvan Magalhaes UNQUALIFIED
Aika InouyeBrazilElwin Sharvill NEGOTIATION
Clifford RimGermanyXuxue Feng PROPOSAL
Octavia MaletAustraliaAsiya Javayant UNQUALIFIED
Ricardo GauchoJapanXuxue Feng RENEWAL
Silvio SlusarskiArgentinaOnyama Limba RENEWAL
Salvatore StockhamRussiaAnna Fali PROPOSAL
David DarakjyUnited KingdomIvan Magalhaes QUALIFIED

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