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 OstroskyJapanXuxue Feng UNQUALIFIED
Cody SaylorsAustraliaXuxue Feng PROPOSAL
Misaki RoysterFranceBernardo Dominic RENEWAL
James ButtAustraliaElwin Sharvill PROPOSAL
Tony FollerCanadaAnna Fali UNQUALIFIED
Maisha RulapaughSpainIoni Bowcher QUALIFIED
Aruna FigeroaRussiaIvan Magalhaes NEW
Mujtaba NickaArgentinaXuxue Feng NEGOTIATION
Francesco ShinkoSpainAmy Elsner RENEWAL
Julie StensethSpainBernardo Dominic UNQUALIFIED
Arvin AlbaresAustraliaAsiya Javayant RENEWAL
David DarakjyGermanyXuxue Feng UNQUALIFIED
Kadeem FlosiUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois VenereItalyAnna Fali NEGOTIATION
Jones VocelkaFranceElwin Sharvill PROPOSAL
Jefferson SchemmerBrazilAnna Fali RENEWAL
Antonio CaudyFranceOnyama Limba NEW
Aditya KuskoIndiaAsiya Javayant NEW
Chavez BriddickItalyBernardo Dominic RENEWAL
Ashley DoeFranceXuxue Feng RENEWAL
Adams MorascaGermanyBernardo Dominic RENEWAL
Antonio CaudyFranceAmy Elsner UNQUALIFIED
Antonio CaudyCanadaAmy Elsner RENEWAL
Greenwood BologniaGermanyStephen Shaw UNQUALIFIED
Jennifer AmigonJapanElwin Sharvill PROPOSAL
Murillo MaletArgentinaIvan Magalhaes NEW
Nicolas IturbideAustraliaOnyama Limba QUALIFIED
David DarakjyFranceAsiya Javayant RENEWAL
Morrow RutaRussiaIoni Bowcher PROPOSAL
Claire TollnerCanadaElwin Sharvill RENEWAL
Emily WhobreyUnited KingdomAnna Fali PROPOSAL
Wickens NestleBrazilStephen Shaw NEGOTIATION
Rodrigues CampainSpainElwin Sharvill RENEWAL
Kadeem FlosiIndiaIvan Magalhaes PROPOSAL
Chavez BriddickBrazilXuxue Feng NEW
Salvatore StockhamRussiaAmy Elsner PROPOSAL
Maria MarrierFranceBernardo Dominic NEGOTIATION
Adams MorascaFranceAmy Elsner NEW
Mayumi KolmetzAustraliaIvan Magalhaes NEGOTIATION
Octavia MaletBrazilAsiya Javayant NEW
Jennifer AmigonItalyIoni Bowcher PROPOSAL
Ashley DoeItalyBernardo Dominic NEW
Clifford RimIndiaOnyama Limba RENEWAL
Tony FollerUnited KingdomIvan Magalhaes NEGOTIATION
Clifford RimGermanyOnyama Limba UNQUALIFIED
Costa DilliardCanadaAmy Elsner UNQUALIFIED
Faith GillianCanadaAmy Elsner PROPOSAL
Deepesh ChuiSpainStephen Shaw QUALIFIED
Smith GlickBrazilXuxue Feng NEGOTIATION
Murillo MaletUnited KingdomIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Octavia MaletSpainAsiya Javayant NEGOTIATION
Nicolas IturbideArgentinaXuxue Feng RENEWAL
Tony FollerGermanyAnna Fali QUALIFIED
Tony FollerArgentinaAmy Elsner RENEWAL
Jones VocelkaFranceIvan Magalhaes RENEWAL
Johnson SergiIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiIndiaAnna Fali NEW
Tony FollerJapanStephen Shaw PROPOSAL
Antonio CaudySpainBernardo Dominic RENEWAL
Morrow RutaGermanyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamSpain2025-10-03Chapman, Ross E Esq UNQUALIFIED67Amy Elsner
1001Rodrigues CampainCanada2025-09-21Benton, John B Jr UNQUALIFIED64Anna Fali
1002Tony FollerJapan2025-09-16Dorl, James J Esq NEGOTIATION36Amy Elsner
1003Ashley DoeItaly2025-09-13King, Christopher A Esq QUALIFIED30Asiya Javayant
1004Jefferson SchemmerArgentina2025-09-22Feltz Printing Service NEGOTIATION78Stephen Shaw
1005Morrow RutaFrance2025-09-26Printing Dimensions NEW31Stephen Shaw
1006Stacey MacleadSpain2025-09-18Printing Dimensions RENEWAL26Xuxue Feng
1007Wickens NestleIndia2025-10-03Printing Dimensions QUALIFIED35Anna Fali
1008Greenwood BologniaAustralia2025-09-16Feiner Bros QUALIFIED89Elwin Sharvill
1009Murillo MaletJapan2025-10-08Printing Dimensions RENEWAL72Ivan Magalhaes
1010Octavia MaletIndia2025-09-15Commercial Press NEW50Ivan Magalhaes
1011Stacey MacleadAustralia2025-09-21Chapman, Ross E Esq NEW60Ioni Bowcher
1012Darci PoquetteAustralia2025-09-12King, Christopher A Esq NEGOTIATION9Xuxue Feng
1013Murillo MaletFrance2025-09-30Rousseaux, Michael Esq UNQUALIFIED92Bernardo Dominic
1014Deepesh ChuiBrazil2025-09-26Buckley Miller Wright NEGOTIATION92Xuxue Feng
1015Kadeem FlosiIndia2025-10-03Printing Dimensions UNQUALIFIED80Ioni Bowcher
1016Faith GillianAustralia2025-09-16Buckley Miller Wright PROPOSAL81Bernardo Dominic
1017Isabel BowleyAustralia2025-09-28Rangoni Of Florence NEGOTIATION44Ioni Bowcher
1018James ButtItaly2025-09-20Rangoni Of Florence UNQUALIFIED31Ivan Magalhaes
1019Johnson SergiJapan2025-09-13Benton, John B Jr NEW74Onyama Limba
1020Sinclair WaycottBrazil2025-10-03Feltz Printing Service RENEWAL49Ioni Bowcher
1021Murillo MaletBrazil2025-09-28Printing Dimensions NEGOTIATION64Asiya Javayant
1022Cody SaylorsSpain2025-09-12Feiner Bros NEW33Ivan Magalhaes
1023Jennifer AmigonItaly2025-09-21Printing Dimensions NEGOTIATION15Stephen Shaw
1024Antonio CaudyItaly2025-09-25Buckley Miller Wright NEGOTIATION58Xuxue Feng
1025Chavez BriddickItaly2025-09-17Rangoni Of Florence RENEWAL74Ivan Magalhaes
1026Jennifer AmigonAustralia2025-09-19King, Christopher A Esq RENEWAL76Amy Elsner
1027Juan WieserSpain2025-09-20Benton, John B Jr RENEWAL58Ivan Magalhaes
1028Juan WieserFrance2025-09-20Commercial Press NEW67Bernardo Dominic
1029Tony FollerCanada2025-09-10Dorl, James J Esq QUALIFIED1Anna Fali
1030Nicolas IturbideFrance2025-10-09Feiner Bros NEGOTIATION12Elwin Sharvill
1031Chavez BriddickBrazil2025-09-27Feltz Printing Service RENEWAL67Onyama Limba
1032Ricardo GauchoSpain2025-09-30Printing Dimensions NEGOTIATION29Xuxue Feng
1033Murillo MaletBrazil2025-09-10King, Christopher A Esq RENEWAL9Asiya Javayant
1034Aika InouyeAustralia2025-09-19Dorl, James J Esq NEGOTIATION45Ivan Magalhaes
1035Deepesh ChuiUnited Kingdom2025-09-11Feltz Printing Service PROPOSAL43Stephen Shaw
1036Darci PoquetteItaly2025-09-13Feltz Printing Service QUALIFIED19Asiya Javayant
1037James ButtItaly2025-10-08Dorl, James J Esq NEW71Onyama Limba
1038Izzy GarufiIndia2025-09-12Chanay, Jeffrey A Esq UNQUALIFIED84Ivan Magalhaes
1039Jeanfrancois VenereAustralia2025-09-13Feiner Bros NEGOTIATION28Onyama Limba
1040Maisha RulapaughArgentina2025-09-28Chapman, Ross E Esq UNQUALIFIED73Amy Elsner
1041Murillo MaletRussia2025-10-09Morlong Associates PROPOSAL79Anna Fali
1042Deepesh ChuiUnited Kingdom2025-09-27Chemel, James L Cpa NEGOTIATION83Bernardo Dominic
1043Rodrigues CampainItaly2025-10-08Rousseaux, Michael Esq RENEWAL55Xuxue Feng
1044Leja CaldareraIndia2025-10-07Truhlar And Truhlar Attys QUALIFIED18Asiya Javayant
1045Julie StensethItaly2025-10-09Printing Dimensions NEW37Bernardo Dominic
1046Mayumi KolmetzJapan2025-09-18Buckley Miller Wright NEW29Elwin Sharvill
1047Clifford RimIndia2025-09-12Commercial Press NEW68Onyama Limba
1048Adams MorascaItaly2025-09-17Printing Dimensions NEGOTIATION3Amy Elsner
1049Murillo MaletFrance2025-09-26Feiner Bros QUALIFIED25Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiCanadaAnna Fali RENEWAL
Aika InouyeGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois VenereAustraliaXuxue Feng RENEWAL
Julie StensethUnited KingdomStephen Shaw NEW
Jefferson SchemmerItalyIoni Bowcher NEGOTIATION
Misaki RoysterItalyElwin Sharvill UNQUALIFIED
Adams MorascaBrazilIvan Magalhaes RENEWAL
Murillo MaletArgentinaBernardo Dominic UNQUALIFIED
Smith GlickAustraliaXuxue Feng NEGOTIATION
Sinclair WaycottGermanyXuxue Feng RENEWAL
Munro FerenczJapanBernardo Dominic PROPOSAL
Salvatore StockhamFranceElwin Sharvill RENEWAL
Misaki RoysterBrazilIvan Magalhaes QUALIFIED
Rodrigues CampainArgentinaAmy Elsner PROPOSAL
Leon OldroydUnited KingdomAmy Elsner NEGOTIATION
Arvin AlbaresJapanXuxue Feng NEW
Aika InouyeItalyElwin Sharvill UNQUALIFIED
Arvin AlbaresGermanyXuxue Feng NEGOTIATION
Mujtaba NickaGermanyIoni Bowcher NEW
Jones VocelkaUnited KingdomBernardo Dominic NEW
Darci PoquetteItalyBernardo Dominic NEGOTIATION
Aika InouyeItalyStephen Shaw PROPOSAL
Clifford RimBrazilElwin Sharvill NEGOTIATION
Ricardo GauchoFranceIvan Magalhaes PROPOSAL
Antonio CaudyIndiaAnna Fali QUALIFIED
Leja CaldareraCanadaAnna Fali NEW
Julie StensethCanadaOnyama Limba RENEWAL
Aditya KuskoIndiaAnna Fali UNQUALIFIED
Jones VocelkaAustraliaStephen Shaw PROPOSAL
Antonio CaudyGermanyIoni Bowcher NEW
Morrow RutaAustraliaBernardo Dominic UNQUALIFIED
David DarakjyUnited KingdomIoni Bowcher PROPOSAL
Arvin AlbaresArgentinaAnna Fali NEGOTIATION
Rodrigues CampainBrazilIvan Magalhaes UNQUALIFIED
Octavia MaletCanadaElwin Sharvill PROPOSAL
Munro FerenczItalyBernardo Dominic QUALIFIED
Darci PoquetteArgentinaXuxue Feng PROPOSAL
Tony FollerIndiaAsiya Javayant UNQUALIFIED
Leon OldroydBrazilIvan Magalhaes RENEWAL
Ashley DoeSpainBernardo Dominic NEGOTIATION
Costa DilliardFranceAmy Elsner QUALIFIED
Morrow RutaBrazilIoni Bowcher UNQUALIFIED
Jefferson SchemmerAustraliaOnyama Limba QUALIFIED
Juan WieserSpainIoni Bowcher UNQUALIFIED
Mujtaba NickaIndiaIoni Bowcher NEW
Misaki RoysterAustraliaBernardo Dominic QUALIFIED
Maisha RulapaughBrazilBernardo Dominic NEW
Arvin AlbaresFranceIvan Magalhaes RENEWAL
Aika InouyeAustraliaAsiya Javayant NEGOTIATION
Deepesh ChuiCanadaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Antonio Caudy
Salvatore Stockham
Aditya Kusko
Juan Wieser
Stacey Maclead
Arvin Albares
Jones Vocelka
Mayumi Kolmetz
Darci Poquette
Clifford Rim
Deepesh Chui
Costa Dilliard
Jefferson Schemmer
Ashley Doe
Cody Saylors
Darci Poquette
Tony Foller
Leja Caldarera
Faith Gillian
Morrow Ruta
Leja Caldarera
Morrow Ruta
Jefferson Schemmer
Clifford Rim
Mayumi Kolmetz
Cody Saylors
Morrow Ruta
Sinclair Waycott
Aruna Figeroa
Jennifer Amigon
Julie Stenseth
Sinclair Waycott
Morrow Ruta
Alejandro Perin
Munro Ferencz
Johnson Sergi
Maria Marrier
Maria Marrier
Leon Oldroyd
Antonio Caudy
Wickens Nestle
Jeanfrancois Venere
Darci Poquette
Ivar Paprocki
Clifford Rim
Ricardo Gaucho
Salvatore Stockham
David Darakjy
Antonio Caudy
IdCountryDate
1000India2025-09-27
1001Germany2025-09-23
1002Spain2025-09-19
1003Brazil2025-09-16
1004Germany2025-10-01
1005Argentina2025-10-09
1006Argentina2025-09-26
1007Japan2025-09-25
1008Spain2025-09-30
1009France2025-09-11
1010Germany2025-09-11
1011Australia2025-10-07
1012Japan2025-09-26
1013Brazil2025-10-03
1014India2025-09-27
1015Australia2025-10-03
1016France2025-09-12
1017Argentina2025-10-06
1018Canada2025-09-18
1019Spain2025-09-21
1020Brazil2025-09-29
1021Japan2025-09-28
1022Brazil2025-09-27
1023Spain2025-09-27
1024India2025-09-20
1025Italy2025-10-05
1026India2025-09-18
1027Russia2025-09-13
1028France2025-10-06
1029Germany2025-09-11
1030Russia2025-10-08
1031India2025-09-17
1032Argentina2025-09-11
1033Canada2025-09-18
1034Russia2025-09-22
1035Brazil2025-09-23
1036Japan2025-09-10
1037Argentina2025-09-17
1038Argentina2025-10-01
1039France2025-09-23
1040United Kingdom2025-09-21
1041Spain2025-09-19
1042Germany2025-09-23
1043United Kingdom2025-09-16
1044France2025-09-22
1045Brazil2025-10-08
1046Canada2025-09-27
1047Russia2025-10-05
1048Argentina2025-09-12
1049Argentina2025-09-23

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Russia2025-09-19
Jennifer Amigon1001Brazil2025-09-13
Kadeem Flosi1002India2025-09-19
Aruna Figeroa1003India2025-10-06
Murillo Malet1004Canada2025-09-12
Greenwood Bolognia1005France2025-09-20
Maria Marrier1006Canada2025-09-15
Emily Whobrey1007Japan2025-09-15
Aruna Figeroa1008Russia2025-09-12
Aika Inouye1009Brazil2025-09-27
Francesco Shinko1010Australia2025-10-05
Darci Poquette1011Russia2025-09-29
Wickens Nestle1012Russia2025-10-06
Costa Dilliard1013United Kingdom2025-10-09
Smith Glick1014India2025-09-17
Sinclair Waycott1015Argentina2025-09-22
Kadeem Flosi1016Argentina2025-10-05
Antonio Caudy1017Canada2025-09-30
Ashley Doe1018Russia2025-09-24
Ivar Paprocki1019Russia2025-09-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsAustraliaAnna Fali PROPOSAL
Mujtaba NickaBrazilIvan Magalhaes QUALIFIED
Jefferson SchemmerAustraliaAmy Elsner PROPOSAL
Ashley DoeArgentinaXuxue Feng NEW
Greenwood BologniaRussiaXuxue Feng RENEWAL
Darci PoquetteIndiaIvan Magalhaes NEGOTIATION
Murillo MaletJapanAmy Elsner PROPOSAL
Faith GillianFranceIvan Magalhaes RENEWAL
Alejandro PerinRussiaIoni Bowcher NEW
Wickens NestleAustraliaIoni Bowcher PROPOSAL
Francesco ShinkoFranceOnyama Limba NEW
Maisha RulapaughRussiaAmy Elsner UNQUALIFIED
Ivar PaprockiArgentinaAmy Elsner PROPOSAL
Deepesh ChuiAustraliaAmy Elsner PROPOSAL
Jeanfrancois VenereIndiaAsiya Javayant NEW
Maria MarrierIndiaAmy Elsner NEGOTIATION
Octavia MaletArgentinaIvan Magalhaes RENEWAL
David DarakjyUnited KingdomAnna Fali QUALIFIED
Kadeem FlosiRussiaAsiya Javayant UNQUALIFIED
Alejandro PerinArgentinaAmy Elsner UNQUALIFIED
Costa DilliardCanadaAmy Elsner NEW
Mayumi KolmetzFranceIvan Magalhaes RENEWAL
Smith GlickItalyAnna Fali UNQUALIFIED
Silvio SlusarskiJapanAsiya Javayant NEGOTIATION
Clifford RimFranceElwin Sharvill QUALIFIED
Alejandro PerinJapanOnyama Limba NEW
Ivar PaprockiCanadaStephen Shaw RENEWAL
Maisha RulapaughFranceXuxue Feng RENEWAL
Nicolas IturbideFranceOnyama Limba PROPOSAL
Stacey MacleadIndiaElwin Sharvill PROPOSAL
Maria MarrierCanadaElwin Sharvill NEW
Isabel BowleyGermanyIoni Bowcher QUALIFIED
Maria MarrierRussiaAmy Elsner QUALIFIED
Kadeem FlosiFranceOnyama Limba UNQUALIFIED
Murillo MaletCanadaStephen Shaw NEW
Greenwood BologniaAustraliaIoni Bowcher NEGOTIATION
Tony FollerGermanyElwin Sharvill RENEWAL
Arvin AlbaresFranceOnyama Limba PROPOSAL
Alejandro PerinJapanAmy Elsner PROPOSAL
Tony FollerCanadaOnyama Limba 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>