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
Aika InouyeGermanyOnyama Limba NEW
Ivar PaprockiJapanXuxue Feng QUALIFIED
Clifford RimGermanyStephen Shaw PROPOSAL
Maisha RulapaughBrazilXuxue Feng NEW
Jefferson SchemmerItalyIoni Bowcher UNQUALIFIED
Johnson SergiUnited KingdomIoni Bowcher NEW
Francesco ShinkoCanadaOnyama Limba QUALIFIED
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Salvatore StockhamJapanIvan Magalhaes NEW
Izzy GarufiItalyAsiya Javayant RENEWAL
Emily WhobreyGermanyOnyama Limba NEGOTIATION
Stacey MacleadGermanyIvan Magalhaes UNQUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerIndiaBernardo Dominic RENEWAL
Aruna FigeroaItalyAnna Fali UNQUALIFIED
Darci PoquetteIndiaAsiya Javayant PROPOSAL
Adams MorascaSpainElwin Sharvill UNQUALIFIED
Aditya KuskoIndiaBernardo Dominic UNQUALIFIED
Wickens NestleItalyIvan Magalhaes QUALIFIED
Francesco ShinkoAustraliaOnyama Limba UNQUALIFIED
Ricardo GauchoItalyOnyama Limba QUALIFIED
Adams MorascaGermanyOnyama Limba UNQUALIFIED
Tony FollerFranceIoni Bowcher PROPOSAL
Faith GillianSpainIvan Magalhaes QUALIFIED
Alejandro PerinUnited KingdomOnyama Limba RENEWAL
Francesco ShinkoAustraliaAmy Elsner NEGOTIATION
Wickens NestleArgentinaStephen Shaw UNQUALIFIED
Costa DilliardFranceOnyama Limba UNQUALIFIED
Clifford RimIndiaOnyama Limba UNQUALIFIED
Julie StensethIndiaOnyama Limba QUALIFIED
Alejandro PerinItalyXuxue Feng NEGOTIATION
Ricardo GauchoGermanyStephen Shaw NEW
Julie StensethRussiaElwin Sharvill UNQUALIFIED
David DarakjyBrazilAmy Elsner PROPOSAL
Misaki RoysterFranceBernardo Dominic PROPOSAL
Smith GlickItalyXuxue Feng NEGOTIATION
Ashley DoeAustraliaStephen Shaw QUALIFIED
Stacey MacleadGermanyAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaStephen Shaw UNQUALIFIED
Clifford RimAustraliaElwin Sharvill UNQUALIFIED
Faith GillianCanadaXuxue Feng NEW
Murillo MaletSpainAnna Fali RENEWAL
Jeanfrancois VenereAustraliaBernardo Dominic RENEWAL
Johnson SergiAustraliaAmy Elsner NEGOTIATION
Ricardo GauchoUnited KingdomIvan Magalhaes PROPOSAL
Darci PoquetteGermanyStephen Shaw UNQUALIFIED
Nicolas IturbideFranceAsiya Javayant NEGOTIATION
Jennifer AmigonRussiaOnyama Limba UNQUALIFIED
Aika InouyeFranceAmy Elsner NEGOTIATION
Mayumi KolmetzCanadaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony FollerJapanBernardo Dominic UNQUALIFIED
Izzy GarufiGermanyIvan Magalhaes RENEWAL
Leja CaldareraFranceXuxue Feng UNQUALIFIED
Francesco ShinkoRussiaAsiya Javayant NEW
Stacey MacleadJapanIvan Magalhaes PROPOSAL
Johnson SergiCanadaAnna Fali NEW
Faith GillianBrazilBernardo Dominic RENEWAL
Antonio CaudyIndiaAnna Fali QUALIFIED
Maisha RulapaughSpainXuxue Feng UNQUALIFIED
Ashley DoeIndiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh ChuiRussia2026-04-24Rangoni Of Florence QUALIFIED57Stephen Shaw
1001Octavia MaletBrazil2026-04-15Buckley Miller Wright PROPOSAL58Stephen Shaw
1002Wickens NestleBrazil2026-04-06Morlong Associates UNQUALIFIED9Ioni Bowcher
1003Leja CaldareraSpain2026-04-12Dorl, James J Esq UNQUALIFIED90Onyama Limba
1004Aika InouyeArgentina2026-04-08King, Christopher A Esq NEW99Elwin Sharvill
1005Aruna FigeroaSpain2026-04-02Printing Dimensions QUALIFIED90Elwin Sharvill
1006James ButtGermany2026-04-25Feiner Bros PROPOSAL43Xuxue Feng
1007Ivar PaprockiArgentina2026-04-16Printing Dimensions NEW87Onyama Limba
1008Claire TollnerJapan2026-04-02Chanay, Jeffrey A Esq NEW50Onyama Limba
1009Ricardo GauchoSpain2026-04-21Chanay, Jeffrey A Esq NEGOTIATION75Stephen Shaw
1010Leja CaldareraGermany2026-04-12Chanay, Jeffrey A Esq PROPOSAL93Xuxue Feng
1011Costa DilliardCanada2026-04-26Rangoni Of Florence NEW72Asiya Javayant
1012Izzy GarufiAustralia2026-04-29Feltz Printing Service PROPOSAL11Asiya Javayant
1013Adams MorascaAustralia2026-04-20Buckley Miller Wright UNQUALIFIED93Ioni Bowcher
1014Johnson SergiJapan2026-04-21Chapman, Ross E Esq QUALIFIED49Anna Fali
1015Rodrigues CampainSpain2026-04-24Chapman, Ross E Esq NEW15Elwin Sharvill
1016Greenwood BologniaJapan2026-04-02Rangoni Of Florence QUALIFIED53Elwin Sharvill
1017Leja CaldareraGermany2026-04-06Morlong Associates UNQUALIFIED41Asiya Javayant
1018Leon OldroydGermany2026-04-20Buckley Miller Wright PROPOSAL93Onyama Limba
1019Johnson SergiFrance2026-04-20Chemel, James L Cpa NEGOTIATION37Stephen Shaw
1020Arvin AlbaresRussia2026-04-03Chapman, Ross E Esq QUALIFIED62Anna Fali
1021Faith GillianSpain2026-04-10Benton, John B Jr RENEWAL65Asiya Javayant
1022Ashley DoeAustralia2026-03-31Chapman, Ross E Esq QUALIFIED16Onyama Limba
1023Cody SaylorsFrance2026-04-12Dorl, James J Esq PROPOSAL83Elwin Sharvill
1024James ButtItaly2026-04-14Rangoni Of Florence QUALIFIED13Ivan Magalhaes
1025Aruna FigeroaRussia2026-04-12Benton, John B Jr NEGOTIATION30Xuxue Feng
1026Jeanfrancois VenereIndia2026-04-01Benton, John B Jr UNQUALIFIED63Bernardo Dominic
1027Juan WieserJapan2026-04-05Rangoni Of Florence QUALIFIED30Ioni Bowcher
1028Aditya KuskoFrance2026-04-07Printing Dimensions UNQUALIFIED64Stephen Shaw
1029Isabel BowleyFrance2026-04-25Truhlar And Truhlar Attys NEW78Ivan Magalhaes
1030Emily WhobreyUnited Kingdom2026-04-09Commercial Press RENEWAL94Xuxue Feng
1031Morrow RutaSpain2026-04-12Feltz Printing Service QUALIFIED76Amy Elsner
1032Mayumi KolmetzCanada2026-04-06Truhlar And Truhlar Attys UNQUALIFIED9Bernardo Dominic
1033Johnson SergiSpain2026-04-02Feiner Bros QUALIFIED95Ivan Magalhaes
1034Sinclair WaycottCanada2026-04-04Morlong Associates PROPOSAL65Bernardo Dominic
1035Aika InouyeSpain2026-04-14Rousseaux, Michael Esq QUALIFIED47Stephen Shaw
1036Kaitlin OstroskyArgentina2026-04-25Buckley Miller Wright PROPOSAL38Asiya Javayant
1037Aika InouyeSpain2026-04-19Benton, John B Jr NEW52Xuxue Feng
1038Francesco ShinkoJapan2026-04-07Printing Dimensions QUALIFIED81Ioni Bowcher
1039Chavez BriddickFrance2026-04-02Dorl, James J Esq NEW19Amy Elsner
1040Aika InouyeBrazil2026-04-16Commercial Press RENEWAL83Bernardo Dominic
1041Misaki RoysterRussia2026-04-24King, Christopher A Esq NEW23Bernardo Dominic
1042Mayumi KolmetzUnited Kingdom2026-04-03Printing Dimensions NEW80Ivan Magalhaes
1043Juan WieserItaly2026-04-26Morlong Associates PROPOSAL14Asiya Javayant
1044Julie StensethItaly2026-04-04Chemel, James L Cpa PROPOSAL89Amy Elsner
1045Ashley DoeJapan2026-04-05Feltz Printing Service NEGOTIATION56Ivan Magalhaes
1046Stacey MacleadGermany2026-04-19Morlong Associates NEGOTIATION68Bernardo Dominic
1047Emily WhobreyRussia2026-04-18Chemel, James L Cpa QUALIFIED83Anna Fali
1048Antonio CaudyFrance2026-04-21Commercial Press QUALIFIED17Elwin Sharvill
1049Arvin AlbaresSpain2026-04-17Commercial Press UNQUALIFIED21Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerIndiaIoni Bowcher NEW
Kadeem FlosiBrazilAmy Elsner NEGOTIATION
Kaitlin OstroskyItalyIvan Magalhaes NEW
Rodrigues CampainFranceIoni Bowcher NEW
Adams MorascaUnited KingdomAnna Fali QUALIFIED
Antonio CaudyIndiaAnna Fali NEGOTIATION
Faith GillianItalyElwin Sharvill PROPOSAL
Sinclair WaycottUnited KingdomIoni Bowcher NEW
Chavez BriddickUnited KingdomElwin Sharvill QUALIFIED
Emily WhobreyUnited KingdomXuxue Feng NEW
Nicolas IturbideCanadaIvan Magalhaes QUALIFIED
Maisha RulapaughArgentinaAmy Elsner QUALIFIED
Jennifer AmigonIndiaStephen Shaw RENEWAL
Mujtaba NickaFranceXuxue Feng RENEWAL
Claire TollnerBrazilXuxue Feng NEGOTIATION
Maria MarrierFranceAsiya Javayant NEGOTIATION
Emily WhobreyArgentinaXuxue Feng NEW
Jones VocelkaSpainOnyama Limba NEW
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Octavia MaletFranceIvan Magalhaes QUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill PROPOSAL
Smith GlickIndiaElwin Sharvill NEGOTIATION
Jennifer AmigonSpainIvan Magalhaes RENEWAL
Leon OldroydRussiaElwin Sharvill QUALIFIED
Morrow RutaRussiaAsiya Javayant NEW
Ricardo GauchoGermanyXuxue Feng UNQUALIFIED
Ivar PaprockiIndiaElwin Sharvill UNQUALIFIED
Ricardo GauchoIndiaStephen Shaw NEGOTIATION
Morrow RutaAustraliaStephen Shaw NEGOTIATION
Antonio CaudyUnited KingdomXuxue Feng NEW
James ButtUnited KingdomAsiya Javayant PROPOSAL
Rodrigues CampainUnited KingdomAnna Fali QUALIFIED
Chavez BriddickRussiaAmy Elsner RENEWAL
Octavia MaletCanadaStephen Shaw QUALIFIED
Jefferson SchemmerGermanyIoni Bowcher NEGOTIATION
Chavez BriddickItalyIvan Magalhaes RENEWAL
Smith GlickBrazilAmy Elsner QUALIFIED
Morrow RutaArgentinaAmy Elsner QUALIFIED
Cody SaylorsRussiaBernardo Dominic QUALIFIED
Adams MorascaArgentinaAnna Fali UNQUALIFIED
Faith GillianRussiaXuxue Feng NEW
Deepesh ChuiRussiaAmy Elsner NEW
Ashley DoeSpainElwin Sharvill UNQUALIFIED
Darci PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Faith GillianUnited KingdomStephen Shaw NEW
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Claire TollnerFranceBernardo Dominic RENEWAL
Antonio CaudyJapanXuxue Feng NEW
Kadeem FlosiGermanyAsiya Javayant UNQUALIFIED
Tony FollerJapanIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Juan Wieser
Salvatore Stockham
Clifford Rim
Munro Ferencz
Silvio Slusarski
James Butt
Jones Vocelka
Isabel Bowley
Maria Marrier
Darci Poquette
Ivar Paprocki
Darci Poquette
Aditya Kusko
Jones Vocelka
Aika Inouye
Kaitlin Ostrosky
Rodrigues Campain
Juan Wieser
Isabel Bowley
Nicolas Iturbide
Francesco Shinko
Salvatore Stockham
Leja Caldarera
Aruna Figeroa
James Butt
Jefferson Schemmer
Jefferson Schemmer
Munro Ferencz
Aruna Figeroa
James Butt
Mujtaba Nicka
Leon Oldroyd
Rodrigues Campain
Silvio Slusarski
Costa Dilliard
Leja Caldarera
Octavia Malet
Mayumi Kolmetz
Aika Inouye
Kadeem Flosi
Jennifer Amigon
Alejandro Perin
Nicolas Iturbide
Izzy Garufi
Costa Dilliard
David Darakjy
Maisha Rulapaugh
Mujtaba Nicka
Morrow Ruta
Aditya Kusko
IdCountryDate
1000Japan2026-04-23
1001Brazil2026-04-18
1002France2026-04-11
1003Russia2026-04-08
1004India2026-04-01
1005United Kingdom2026-04-05
1006India2026-04-14
1007Australia2026-04-01
1008Canada2026-04-09
1009Germany2026-04-06
1010India2026-04-28
1011United Kingdom2026-04-03
1012Russia2026-04-09
1013India2026-04-25
1014Russia2026-04-27
1015Japan2026-04-02
1016Italy2026-04-07
1017India2026-04-11
1018Canada2026-04-25
1019Japan2026-04-21
1020United Kingdom2026-04-15
1021Canada2026-04-10
1022Italy2026-04-20
1023United Kingdom2026-04-11
1024Germany2026-04-15
1025India2026-04-21
1026Germany2026-04-21
1027Canada2026-04-04
1028Spain2026-04-05
1029France2026-04-12
1030France2026-04-22
1031France2026-04-16
1032Argentina2026-04-13
1033Japan2026-04-13
1034Argentina2026-04-23
1035Germany2026-04-23
1036Brazil2026-04-14
1037Brazil2026-04-09
1038Russia2026-04-05
1039Argentina2026-04-02
1040Italy2026-04-23
1041France2026-04-09
1042Argentina2026-04-06
1043Brazil2026-04-05
1044Australia2026-04-13
1045France2026-04-18
1046Japan2026-04-29
1047Germany2026-04-08
1048Brazil2026-04-02
1049India2026-04-24

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Germany2026-04-11
James Butt1001France2026-04-28
Rodrigues Campain1002Russia2026-04-01
Jones Vocelka1003Australia2026-03-31
Clifford Rim1004France2026-04-12
Salvatore Stockham1005Germany2026-03-31
Kadeem Flosi1006United Kingdom2026-03-31
Costa Dilliard1007Italy2026-04-20
Julie Stenseth1008France2026-04-05
David Darakjy1009Italy2026-04-11
Julie Stenseth1010Australia2026-04-21
Clifford Rim1011United Kingdom2026-04-28
Claire Tollner1012India2026-04-28
Alejandro Perin1013India2026-04-09
Tony Foller1014Spain2026-04-25
Aika Inouye1015Italy2026-04-26
Deepesh Chui1016Argentina2026-04-10
Deepesh Chui1017Australia2026-04-13
Jeanfrancois Venere1018Italy2026-04-02
Ricardo Gaucho1019Russia2026-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonItalyIvan Magalhaes RENEWAL
Leon OldroydRussiaIoni Bowcher NEGOTIATION
Ivar PaprockiAustraliaXuxue Feng PROPOSAL
Ricardo GauchoFranceAsiya Javayant UNQUALIFIED
David DarakjyItalyOnyama Limba UNQUALIFIED
Mujtaba NickaJapanAmy Elsner UNQUALIFIED
Nicolas IturbideRussiaXuxue Feng NEW
Munro FerenczArgentinaIoni Bowcher NEW
Rodrigues CampainItalyAmy Elsner NEGOTIATION
Arvin AlbaresRussiaElwin Sharvill PROPOSAL
Isabel BowleySpainXuxue Feng QUALIFIED
James ButtGermanyAsiya Javayant RENEWAL
Leja CaldareraGermanyStephen Shaw RENEWAL
Ricardo GauchoCanadaStephen Shaw NEGOTIATION
Francesco ShinkoCanadaIvan Magalhaes UNQUALIFIED
David DarakjyJapanAnna Fali NEW
David DarakjyArgentinaOnyama Limba PROPOSAL
James ButtCanadaStephen Shaw NEW
Silvio SlusarskiBrazilXuxue Feng NEW
Salvatore StockhamCanadaIvan Magalhaes NEW
Ashley DoeArgentinaAnna Fali NEW
Aditya KuskoCanadaIoni Bowcher QUALIFIED
Darci PoquetteItalyBernardo Dominic RENEWAL
Wickens NestleJapanAnna Fali QUALIFIED
Jones VocelkaRussiaElwin Sharvill NEGOTIATION
Costa DilliardSpainIvan Magalhaes QUALIFIED
Jones VocelkaArgentinaAmy Elsner QUALIFIED
Julie StensethBrazilXuxue Feng NEGOTIATION
Antonio CaudyFranceBernardo Dominic RENEWAL
Greenwood BologniaRussiaIoni Bowcher NEW
David DarakjyJapanXuxue Feng NEW
Ricardo GauchoBrazilAsiya Javayant UNQUALIFIED
Isabel BowleySpainBernardo Dominic RENEWAL
Juan WieserCanadaIvan Magalhaes NEGOTIATION
Jennifer AmigonItalyAnna Fali RENEWAL
Jeanfrancois VenereItalyAmy Elsner QUALIFIED
Kadeem FlosiUnited KingdomXuxue Feng NEW
Cody SaylorsIndiaIoni Bowcher UNQUALIFIED
Rodrigues CampainIndiaAsiya Javayant UNQUALIFIED
Kadeem FlosiItalyOnyama Limba 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>