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
Wickens NestleJapanAsiya Javayant NEGOTIATION
James ButtSpainOnyama Limba PROPOSAL
Jeanfrancois VenereCanadaAmy Elsner NEW
Chavez BriddickArgentinaAnna Fali NEW
Greenwood BologniaUnited KingdomIvan Magalhaes RENEWAL
Murillo MaletAustraliaXuxue Feng RENEWAL
Clifford RimFranceOnyama Limba PROPOSAL
Wickens NestleItalyIoni Bowcher NEGOTIATION
Julie StensethIndiaXuxue Feng UNQUALIFIED
Mayumi KolmetzJapanAmy Elsner RENEWAL
Ashley DoeUnited KingdomIoni Bowcher QUALIFIED
Clifford RimItalyBernardo Dominic QUALIFIED
Leja CaldareraArgentinaElwin Sharvill QUALIFIED
Chavez BriddickIndiaAmy Elsner NEW
Maisha RulapaughIndiaAnna Fali QUALIFIED
Stacey MacleadSpainOnyama Limba RENEWAL
Tony FollerCanadaStephen Shaw UNQUALIFIED
Jefferson SchemmerUnited KingdomIoni Bowcher PROPOSAL
Rodrigues CampainBrazilOnyama Limba RENEWAL
Johnson SergiGermanyIoni Bowcher NEW
Rodrigues CampainIndiaStephen Shaw UNQUALIFIED
James ButtFranceAsiya Javayant UNQUALIFIED
Tony FollerSpainIvan Magalhaes NEW
Johnson SergiIndiaIvan Magalhaes RENEWAL
Morrow RutaGermanyElwin Sharvill PROPOSAL
Salvatore StockhamArgentinaStephen Shaw NEGOTIATION
Isabel BowleyJapanIvan Magalhaes QUALIFIED
Francesco ShinkoArgentinaAnna Fali NEW
Aika InouyeCanadaIoni Bowcher UNQUALIFIED
Aika InouyeFranceXuxue Feng PROPOSAL
Rodrigues CampainIndiaXuxue Feng NEW
Jefferson SchemmerCanadaStephen Shaw RENEWAL
Chavez BriddickAustraliaOnyama Limba NEW
David DarakjyAustraliaStephen Shaw UNQUALIFIED
Juan WieserRussiaXuxue Feng UNQUALIFIED
Emily WhobreyItalyAnna Fali UNQUALIFIED
Aruna FigeroaCanadaAmy Elsner NEW
Costa DilliardItalyAsiya Javayant UNQUALIFIED
Johnson SergiJapanIoni Bowcher NEW
Julie StensethCanadaBernardo Dominic NEW
Smith GlickUnited KingdomXuxue Feng PROPOSAL
Adams MorascaSpainElwin Sharvill RENEWAL
Aditya KuskoSpainIoni Bowcher QUALIFIED
Sinclair WaycottFranceAnna Fali NEW
Greenwood BologniaFranceXuxue Feng UNQUALIFIED
Juan WieserJapanElwin Sharvill NEGOTIATION
Sinclair WaycottSpainAnna Fali PROPOSAL
Emily WhobreyItalyOnyama Limba QUALIFIED
Chavez BriddickBrazilAmy Elsner RENEWAL
Silvio SlusarskiGermanyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickFranceElwin Sharvill NEW
Darci PoquetteCanadaXuxue Feng NEGOTIATION
Claire TollnerFranceIoni Bowcher NEW
Izzy GarufiArgentinaIvan Magalhaes RENEWAL
Octavia MaletRussiaIoni Bowcher NEGOTIATION
Alejandro PerinAustraliaElwin Sharvill NEGOTIATION
James ButtGermanyElwin Sharvill QUALIFIED
Murillo MaletFranceXuxue Feng QUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant PROPOSAL
Maisha RulapaughItalyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonIndia2025-08-07Feiner Bros NEGOTIATION69Amy Elsner
1001Adams MorascaAustralia2025-08-03Feltz Printing Service QUALIFIED64Ioni Bowcher
1002Morrow RutaJapan2025-07-17Morlong Associates NEW97Onyama Limba
1003Tony FollerGermany2025-07-30Dorl, James J Esq QUALIFIED2Ivan Magalhaes
1004Morrow RutaRussia2025-07-28Chapman, Ross E Esq RENEWAL65Amy Elsner
1005Isabel BowleyRussia2025-07-24Chanay, Jeffrey A Esq NEGOTIATION35Elwin Sharvill
1006Wickens NestleIndia2025-07-18Morlong Associates UNQUALIFIED75Stephen Shaw
1007Aruna FigeroaGermany2025-07-29Buckley Miller Wright NEGOTIATION79Xuxue Feng
1008Clifford RimAustralia2025-07-28Chapman, Ross E Esq UNQUALIFIED5Bernardo Dominic
1009Kadeem FlosiJapan2025-07-31Dorl, James J Esq RENEWAL54Anna Fali
1010Juan WieserGermany2025-07-28Dorl, James J Esq PROPOSAL40Stephen Shaw
1011Murillo MaletUnited Kingdom2025-07-20Feltz Printing Service QUALIFIED18Stephen Shaw
1012James ButtRussia2025-07-31Commercial Press QUALIFIED47Stephen Shaw
1013Munro FerenczCanada2025-07-17Commercial Press NEW35Stephen Shaw
1014Cody SaylorsItaly2025-07-25Chapman, Ross E Esq NEGOTIATION70Asiya Javayant
1015Kaitlin OstroskyCanada2025-07-16Buckley Miller Wright NEW5Ioni Bowcher
1016Jefferson SchemmerFrance2025-07-15Feiner Bros UNQUALIFIED82Anna Fali
1017Jones VocelkaCanada2025-07-29Chemel, James L Cpa NEW67Elwin Sharvill
1018Jefferson SchemmerGermany2025-07-13Benton, John B Jr NEW33Elwin Sharvill
1019Aika InouyeArgentina2025-08-06King, Christopher A Esq NEW41Stephen Shaw
1020Adams MorascaSpain2025-07-14Chapman, Ross E Esq NEW81Amy Elsner
1021Julie StensethBrazil2025-07-24Rangoni Of Florence NEGOTIATION36Asiya Javayant
1022Leon OldroydSpain2025-07-12Printing Dimensions QUALIFIED54Xuxue Feng
1023Nicolas IturbideSpain2025-07-25Truhlar And Truhlar Attys NEGOTIATION52Xuxue Feng
1024Murillo MaletArgentina2025-07-18Chanay, Jeffrey A Esq RENEWAL21Onyama Limba
1025Jones VocelkaBrazil2025-07-15Feiner Bros RENEWAL56Xuxue Feng
1026Aruna FigeroaGermany2025-07-15Benton, John B Jr QUALIFIED90Stephen Shaw
1027Salvatore StockhamSpain2025-07-27Truhlar And Truhlar Attys NEW56Amy Elsner
1028Smith GlickBrazil2025-07-28Morlong Associates NEW58Ioni Bowcher
1029Kadeem FlosiItaly2025-07-10Chanay, Jeffrey A Esq RENEWAL73Amy Elsner
1030Wickens NestleGermany2025-07-15Rousseaux, Michael Esq UNQUALIFIED11Onyama Limba
1031Maisha RulapaughAustralia2025-07-23Chemel, James L Cpa UNQUALIFIED99Bernardo Dominic
1032Leon OldroydRussia2025-08-05Commercial Press NEGOTIATION76Bernardo Dominic
1033Costa DilliardCanada2025-07-15Chapman, Ross E Esq QUALIFIED47Stephen Shaw
1034Adams MorascaArgentina2025-07-19Truhlar And Truhlar Attys NEGOTIATION14Xuxue Feng
1035Mayumi KolmetzJapan2025-08-04Chanay, Jeffrey A Esq RENEWAL14Xuxue Feng
1036Octavia MaletAustralia2025-07-12Morlong Associates NEGOTIATION43Onyama Limba
1037Sinclair WaycottIndia2025-07-28Benton, John B Jr QUALIFIED70Onyama Limba
1038Munro FerenczBrazil2025-08-01Chanay, Jeffrey A Esq NEGOTIATION12Ivan Magalhaes
1039Antonio CaudyItaly2025-08-08Truhlar And Truhlar Attys RENEWAL25Onyama Limba
1040Leon OldroydBrazil2025-07-16Rangoni Of Florence NEW86Stephen Shaw
1041Aika InouyeItaly2025-07-11Dorl, James J Esq NEGOTIATION68Asiya Javayant
1042Julie StensethUnited Kingdom2025-08-02Rangoni Of Florence NEW31Ioni Bowcher
1043Leja CaldareraSpain2025-07-26Truhlar And Truhlar Attys UNQUALIFIED71Amy Elsner
1044Nicolas IturbideUnited Kingdom2025-08-01Benton, John B Jr RENEWAL34Onyama Limba
1045Ashley DoeBrazil2025-07-10Benton, John B Jr PROPOSAL11Ivan Magalhaes
1046Smith GlickRussia2025-07-16Truhlar And Truhlar Attys QUALIFIED91Stephen Shaw
1047Juan WieserAustralia2025-07-22Chapman, Ross E Esq QUALIFIED21Xuxue Feng
1048Ivar PaprockiJapan2025-08-03Truhlar And Truhlar Attys PROPOSAL58Anna Fali
1049Arvin AlbaresRussia2025-08-03Truhlar And Truhlar Attys NEGOTIATION68Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardGermanyAsiya Javayant PROPOSAL
Silvio SlusarskiUnited KingdomAmy Elsner RENEWAL
Ricardo GauchoAustraliaAmy Elsner UNQUALIFIED
Sinclair WaycottCanadaAsiya Javayant RENEWAL
Chavez BriddickGermanyXuxue Feng PROPOSAL
Silvio SlusarskiGermanyIvan Magalhaes PROPOSAL
Mayumi KolmetzBrazilElwin Sharvill PROPOSAL
Octavia MaletSpainAnna Fali QUALIFIED
Munro FerenczBrazilStephen Shaw UNQUALIFIED
Isabel BowleyRussiaOnyama Limba RENEWAL
Wickens NestleCanadaIoni Bowcher NEGOTIATION
Mujtaba NickaFranceStephen Shaw PROPOSAL
Tony FollerRussiaAsiya Javayant NEW
Ashley DoeRussiaXuxue Feng QUALIFIED
Misaki RoysterRussiaXuxue Feng QUALIFIED
Johnson SergiGermanyAnna Fali NEW
Kaitlin OstroskyAustraliaAnna Fali QUALIFIED
Ivar PaprockiJapanAsiya Javayant RENEWAL
Sinclair WaycottIndiaXuxue Feng UNQUALIFIED
Ricardo GauchoIndiaAsiya Javayant PROPOSAL
Rodrigues CampainUnited KingdomIvan Magalhaes PROPOSAL
Jefferson SchemmerRussiaElwin Sharvill NEGOTIATION
Claire TollnerAustraliaElwin Sharvill PROPOSAL
Arvin AlbaresFranceBernardo Dominic QUALIFIED
Deepesh ChuiRussiaIoni Bowcher NEW
Murillo MaletJapanIoni Bowcher QUALIFIED
Stacey MacleadRussiaAsiya Javayant NEW
Mayumi KolmetzJapanOnyama Limba NEGOTIATION
Ashley DoeUnited KingdomXuxue Feng PROPOSAL
Clifford RimIndiaElwin Sharvill NEW
Jeanfrancois VenereGermanyElwin Sharvill QUALIFIED
Sinclair WaycottBrazilElwin Sharvill NEGOTIATION
Faith GillianItalyAsiya Javayant QUALIFIED
Nicolas IturbideArgentinaStephen Shaw QUALIFIED
Clifford RimRussiaAmy Elsner NEGOTIATION
Wickens NestleSpainIvan Magalhaes NEGOTIATION
Aditya KuskoAustraliaOnyama Limba NEW
Jones VocelkaCanadaElwin Sharvill NEW
Rodrigues CampainAustraliaAmy Elsner RENEWAL
Francesco ShinkoFranceAmy Elsner NEGOTIATION
Cody SaylorsGermanyIvan Magalhaes RENEWAL
Emily WhobreyItalyXuxue Feng NEGOTIATION
David DarakjyBrazilIvan Magalhaes QUALIFIED
Aditya KuskoArgentinaElwin Sharvill UNQUALIFIED
Ivar PaprockiUnited KingdomStephen Shaw RENEWAL
Aika InouyeUnited KingdomXuxue Feng RENEWAL
Munro FerenczJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereAustraliaBernardo Dominic PROPOSAL
Alejandro PerinIndiaBernardo Dominic UNQUALIFIED
Mayumi KolmetzCanadaStephen Shaw QUALIFIED
Frozen Columns
Name
Francesco Shinko
Alejandro Perin
Morrow Ruta
Juan Wieser
Maisha Rulapaugh
Faith Gillian
Deepesh Chui
Leja Caldarera
James Butt
Aika Inouye
Claire Tollner
Mayumi Kolmetz
Murillo Malet
Salvatore Stockham
Jennifer Amigon
Aika Inouye
Faith Gillian
Cody Saylors
Greenwood Bolognia
Juan Wieser
Mujtaba Nicka
Ashley Doe
Aika Inouye
Jefferson Schemmer
Jennifer Amigon
Nicolas Iturbide
Kadeem Flosi
Costa Dilliard
Kadeem Flosi
Emily Whobrey
James Butt
Ricardo Gaucho
Maisha Rulapaugh
Munro Ferencz
Munro Ferencz
Isabel Bowley
Aditya Kusko
Claire Tollner
Deepesh Chui
Cody Saylors
David Darakjy
Jones Vocelka
Tony Foller
Ricardo Gaucho
Aditya Kusko
David Darakjy
Octavia Malet
Aruna Figeroa
Izzy Garufi
Aika Inouye
IdCountryDate
1000Argentina2025-07-18
1001Italy2025-07-21
1002Japan2025-07-24
1003Japan2025-07-23
1004Australia2025-07-30
1005Australia2025-07-10
1006Germany2025-07-18
1007France2025-07-11
1008Japan2025-07-24
1009Japan2025-07-30
1010United Kingdom2025-08-01
1011Brazil2025-07-23
1012France2025-08-05
1013United Kingdom2025-08-02
1014India2025-07-28
1015United Kingdom2025-08-06
1016Germany2025-07-15
1017Brazil2025-07-21
1018France2025-07-11
1019Brazil2025-08-02
1020India2025-07-21
1021India2025-07-20
1022Australia2025-07-23
1023United Kingdom2025-08-01
1024Russia2025-07-15
1025France2025-07-14
1026Germany2025-08-07
1027Australia2025-07-13
1028United Kingdom2025-08-08
1029Brazil2025-07-20
1030Italy2025-07-12
1031Canada2025-07-19
1032Japan2025-07-13
1033Canada2025-07-20
1034Italy2025-07-29
1035Brazil2025-08-06
1036Germany2025-07-14
1037Canada2025-08-03
1038India2025-07-24
1039Russia2025-08-04
1040Italy2025-07-19
1041Canada2025-07-12
1042India2025-07-21
1043Argentina2025-07-11
1044Canada2025-07-11
1045Argentina2025-07-15
1046France2025-07-27
1047Germany2025-07-14
1048Australia2025-07-23
1049Canada2025-07-25

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Japan2025-07-13
Alejandro Perin1001Brazil2025-08-01
Francesco Shinko1002Japan2025-07-12
Wickens Nestle1003United Kingdom2025-08-04
Julie Stenseth1004Russia2025-08-03
Smith Glick1005United Kingdom2025-07-16
Ashley Doe1006India2025-07-27
Arvin Albares1007France2025-07-11
Claire Tollner1008Spain2025-07-23
James Butt1009Italy2025-07-14
David Darakjy1010Italy2025-07-31
Salvatore Stockham1011Russia2025-08-01
Leja Caldarera1012Germany2025-07-25
Misaki Royster1013Spain2025-07-16
Izzy Garufi1014Canada2025-07-11
Mayumi Kolmetz1015India2025-07-31
Antonio Caudy1016France2025-07-21
Rodrigues Campain1017United Kingdom2025-08-07
Cody Saylors1018Russia2025-07-27
Deepesh Chui1019France2025-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickSpainAsiya Javayant UNQUALIFIED
Emily WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Kadeem FlosiBrazilOnyama Limba UNQUALIFIED
James ButtBrazilStephen Shaw NEW
Jeanfrancois VenereUnited KingdomIvan Magalhaes NEGOTIATION
Francesco ShinkoRussiaElwin Sharvill RENEWAL
Wickens NestleFranceBernardo Dominic QUALIFIED
Claire TollnerIndiaAmy Elsner NEW
Stacey MacleadCanadaAmy Elsner NEGOTIATION
Leon OldroydAustraliaIvan Magalhaes QUALIFIED
James ButtCanadaAmy Elsner QUALIFIED
Kaitlin OstroskyBrazilAsiya Javayant RENEWAL
Jones VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Salvatore StockhamFranceElwin Sharvill RENEWAL
Emily WhobreyRussiaAsiya Javayant NEW
Aika InouyeItalyOnyama Limba PROPOSAL
Darci PoquetteCanadaElwin Sharvill QUALIFIED
Isabel BowleyFranceStephen Shaw NEGOTIATION
Smith GlickGermanyIvan Magalhaes PROPOSAL
Aika InouyeBrazilIvan Magalhaes NEW
Isabel BowleyIndiaAsiya Javayant NEW
Smith GlickRussiaIvan Magalhaes NEGOTIATION
Darci PoquetteArgentinaBernardo Dominic RENEWAL
Emily WhobreyIndiaElwin Sharvill NEW
Tony FollerArgentinaAnna Fali UNQUALIFIED
Julie StensethArgentinaAsiya Javayant NEW
Sinclair WaycottFranceAsiya Javayant PROPOSAL
David DarakjyJapanIvan Magalhaes PROPOSAL
Greenwood BologniaItalyAmy Elsner NEW
Faith GillianFranceIvan Magalhaes NEW
Tony FollerBrazilXuxue Feng NEGOTIATION
Clifford RimCanadaAsiya Javayant NEW
Darci PoquetteIndiaAnna Fali QUALIFIED
Johnson SergiArgentinaAmy Elsner NEW
Isabel BowleyIndiaElwin Sharvill NEGOTIATION
Clifford RimRussiaAmy Elsner NEW
Isabel BowleyItalyAnna Fali RENEWAL
Aditya KuskoRussiaElwin Sharvill UNQUALIFIED
Darci PoquetteRussiaBernardo Dominic NEW
Morrow RutaBrazilAsiya Javayant 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>