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
Aruna FigeroaUnited KingdomAnna Fali PROPOSAL
Costa DilliardItalyAmy Elsner PROPOSAL
Emily WhobreyGermanyAmy Elsner UNQUALIFIED
Juan WieserGermanyAsiya Javayant UNQUALIFIED
Antonio CaudySpainIvan Magalhaes QUALIFIED
Alejandro PerinCanadaAmy Elsner NEGOTIATION
Adams MorascaItalyXuxue Feng NEW
Sinclair WaycottAustraliaIvan Magalhaes NEGOTIATION
Munro FerenczRussiaAmy Elsner QUALIFIED
Juan WieserBrazilIoni Bowcher NEW
David DarakjyUnited KingdomBernardo Dominic PROPOSAL
Misaki RoysterUnited KingdomOnyama Limba PROPOSAL
Nicolas IturbideItalyAsiya Javayant NEW
Smith GlickGermanyOnyama Limba RENEWAL
Kadeem FlosiJapanIoni Bowcher PROPOSAL
Misaki RoysterRussiaStephen Shaw NEW
David DarakjyAustraliaAmy Elsner RENEWAL
Emily WhobreySpainAnna Fali NEW
Izzy GarufiArgentinaAmy Elsner QUALIFIED
Sinclair WaycottAustraliaAnna Fali UNQUALIFIED
Ivar PaprockiRussiaAnna Fali NEW
Mayumi KolmetzArgentinaIvan Magalhaes PROPOSAL
Wickens NestleGermanyAnna Fali NEGOTIATION
Jones VocelkaArgentinaAnna Fali NEW
Arvin AlbaresFranceAmy Elsner PROPOSAL
Salvatore StockhamFranceIoni Bowcher NEGOTIATION
Leon OldroydGermanyXuxue Feng NEW
Munro FerenczIndiaBernardo Dominic QUALIFIED
Johnson SergiAustraliaStephen Shaw NEW
Chavez BriddickGermanyAmy Elsner RENEWAL
Jennifer AmigonIndiaBernardo Dominic NEW
Chavez BriddickAustraliaXuxue Feng NEW
Jennifer AmigonArgentinaElwin Sharvill PROPOSAL
Julie StensethSpainOnyama Limba UNQUALIFIED
Kadeem FlosiFranceAsiya Javayant NEGOTIATION
Jeanfrancois VenereItalyElwin Sharvill UNQUALIFIED
Jefferson SchemmerGermanyAsiya Javayant NEGOTIATION
Wickens NestleGermanyIvan Magalhaes RENEWAL
Jones VocelkaSpainAsiya Javayant QUALIFIED
Maisha RulapaughRussiaBernardo Dominic NEGOTIATION
Ricardo GauchoRussiaStephen Shaw NEW
Chavez BriddickUnited KingdomElwin Sharvill NEGOTIATION
Octavia MaletSpainElwin Sharvill PROPOSAL
Francesco ShinkoGermanyIoni Bowcher NEW
Mayumi KolmetzRussiaIoni Bowcher NEW
Misaki RoysterJapanOnyama Limba RENEWAL
Octavia MaletGermanyAnna Fali NEGOTIATION
Aika InouyeItalyXuxue Feng UNQUALIFIED
Clifford RimSpainAsiya Javayant UNQUALIFIED
Aika InouyeRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo MaletCanadaAmy Elsner QUALIFIED
Juan WieserArgentinaOnyama Limba NEW
Jefferson SchemmerAustraliaAmy Elsner QUALIFIED
Jones VocelkaRussiaBernardo Dominic RENEWAL
Claire TollnerCanadaAsiya Javayant RENEWAL
Morrow RutaAustraliaAnna Fali NEW
Alejandro PerinArgentinaAmy Elsner RENEWAL
Stacey MacleadCanadaAnna Fali NEGOTIATION
Izzy GarufiAustraliaIoni Bowcher RENEWAL
Clifford RimIndiaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierCanada2026-04-08Chapman, Ross E Esq RENEWAL74Ivan Magalhaes
1001Munro FerenczFrance2026-04-16Feiner Bros QUALIFIED33Asiya Javayant
1002Claire TollnerRussia2026-04-09Morlong Associates NEGOTIATION1Ioni Bowcher
1003Johnson SergiBrazil2026-04-17Buckley Miller Wright QUALIFIED1Amy Elsner
1004Mujtaba NickaUnited Kingdom2026-04-23Chapman, Ross E Esq NEGOTIATION37Anna Fali
1005Clifford RimBrazil2026-03-30Buckley Miller Wright PROPOSAL48Bernardo Dominic
1006Maisha RulapaughAustralia2026-04-13Rangoni Of Florence RENEWAL16Asiya Javayant
1007Antonio CaudyGermany2026-04-10Chapman, Ross E Esq NEW61Ivan Magalhaes
1008Salvatore StockhamItaly2026-04-05Rangoni Of Florence NEGOTIATION17Ioni Bowcher
1009Maisha RulapaughItaly2026-04-06Morlong Associates NEW47Stephen Shaw
1010Ashley DoeGermany2026-03-28Printing Dimensions NEGOTIATION57Anna Fali
1011Faith GillianArgentina2026-04-07Morlong Associates NEGOTIATION53Asiya Javayant
1012Ashley DoeBrazil2026-04-19Morlong Associates NEGOTIATION19Ioni Bowcher
1013Izzy GarufiArgentina2026-04-11King, Christopher A Esq RENEWAL51Anna Fali
1014Johnson SergiBrazil2026-03-31Buckley Miller Wright QUALIFIED75Asiya Javayant
1015Arvin AlbaresGermany2026-04-21Dorl, James J Esq PROPOSAL40Asiya Javayant
1016Salvatore StockhamJapan2026-04-03Morlong Associates NEW94Ivan Magalhaes
1017Jeanfrancois VenereIndia2026-04-12Commercial Press NEGOTIATION43Anna Fali
1018Mayumi KolmetzAustralia2026-04-24Dorl, James J Esq RENEWAL49Amy Elsner
1019Jefferson SchemmerIndia2026-03-28Rousseaux, Michael Esq QUALIFIED50Xuxue Feng
1020Johnson SergiAustralia2026-04-03Buckley Miller Wright NEW71Asiya Javayant
1021Cody SaylorsJapan2026-04-13Buckley Miller Wright RENEWAL61Elwin Sharvill
1022Kadeem FlosiRussia2026-03-30Commercial Press PROPOSAL33Onyama Limba
1023Salvatore StockhamRussia2026-04-10King, Christopher A Esq PROPOSAL9Amy Elsner
1024Costa DilliardArgentina2026-04-20Feltz Printing Service RENEWAL77Asiya Javayant
1025Nicolas IturbideAustralia2026-04-17King, Christopher A Esq UNQUALIFIED45Elwin Sharvill
1026James ButtFrance2026-03-31Morlong Associates RENEWAL75Asiya Javayant
1027Jones VocelkaJapan2026-04-12Truhlar And Truhlar Attys UNQUALIFIED95Bernardo Dominic
1028Juan WieserArgentina2026-04-13Morlong Associates RENEWAL14Elwin Sharvill
1029Antonio CaudyUnited Kingdom2026-04-17Chapman, Ross E Esq UNQUALIFIED66Anna Fali
1030Cody SaylorsGermany2026-03-28Buckley Miller Wright QUALIFIED0Onyama Limba
1031Kaitlin OstroskyUnited Kingdom2026-03-31King, Christopher A Esq QUALIFIED55Ivan Magalhaes
1032Aditya KuskoAustralia2026-03-30Buckley Miller Wright QUALIFIED76Stephen Shaw
1033Mayumi KolmetzJapan2026-04-03Feltz Printing Service PROPOSAL70Ivan Magalhaes
1034Salvatore StockhamGermany2026-04-19Morlong Associates NEGOTIATION24Bernardo Dominic
1035Jones VocelkaCanada2026-03-29Dorl, James J Esq RENEWAL75Anna Fali
1036Salvatore StockhamRussia2026-04-21Rangoni Of Florence RENEWAL67Onyama Limba
1037Julie StensethArgentina2026-04-22Chapman, Ross E Esq UNQUALIFIED54Asiya Javayant
1038Silvio SlusarskiBrazil2026-04-15Chemel, James L Cpa RENEWAL57Anna Fali
1039Maria MarrierIndia2026-04-16Rangoni Of Florence NEGOTIATION2Ivan Magalhaes
1040Aika InouyeUnited Kingdom2026-04-05Feltz Printing Service NEW59Asiya Javayant
1041Faith GillianJapan2026-04-23Dorl, James J Esq NEGOTIATION80Ioni Bowcher
1042Greenwood BologniaBrazil2026-03-27Feltz Printing Service UNQUALIFIED76Ioni Bowcher
1043Darci PoquetteItaly2026-03-30Morlong Associates NEW6Bernardo Dominic
1044Salvatore StockhamCanada2026-04-04Printing Dimensions UNQUALIFIED27Elwin Sharvill
1045Nicolas IturbideSpain2026-04-14Truhlar And Truhlar Attys NEGOTIATION90Onyama Limba
1046Julie StensethFrance2026-04-22Buckley Miller Wright UNQUALIFIED76Anna Fali
1047Munro FerenczItaly2026-04-04Truhlar And Truhlar Attys RENEWAL11Asiya Javayant
1048Faith GillianIndia2026-03-30Chanay, Jeffrey A Esq QUALIFIED29Stephen Shaw
1049Jeanfrancois VenereIndia2026-04-10Rousseaux, Michael Esq UNQUALIFIED96Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimGermanyIoni Bowcher PROPOSAL
Emily WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Maria MarrierBrazilBernardo Dominic QUALIFIED
Nicolas IturbideCanadaElwin Sharvill RENEWAL
Leon OldroydBrazilElwin Sharvill PROPOSAL
Rodrigues CampainSpainOnyama Limba PROPOSAL
Kadeem FlosiFranceAmy Elsner NEGOTIATION
Leon OldroydGermanyAsiya Javayant UNQUALIFIED
Isabel BowleyRussiaBernardo Dominic RENEWAL
Julie StensethArgentinaIvan Magalhaes QUALIFIED
Costa DilliardIndiaAsiya Javayant NEW
Antonio CaudyIndiaXuxue Feng NEGOTIATION
Octavia MaletBrazilStephen Shaw RENEWAL
Murillo MaletUnited KingdomOnyama Limba NEW
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Juan WieserUnited KingdomIvan Magalhaes NEGOTIATION
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Morrow RutaArgentinaBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaIoni Bowcher PROPOSAL
Juan WieserGermanyIvan Magalhaes PROPOSAL
Tony FollerCanadaIvan Magalhaes UNQUALIFIED
Wickens NestleUnited KingdomElwin Sharvill NEW
Aditya KuskoCanadaIvan Magalhaes UNQUALIFIED
Maria MarrierCanadaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskySpainOnyama Limba NEW
Rodrigues CampainBrazilOnyama Limba NEW
Tony FollerBrazilOnyama Limba RENEWAL
Deepesh ChuiJapanOnyama Limba NEW
Munro FerenczJapanOnyama Limba NEGOTIATION
Cody SaylorsFranceAsiya Javayant NEW
Emily WhobreyIndiaAsiya Javayant QUALIFIED
Jefferson SchemmerArgentinaAmy Elsner PROPOSAL
Sinclair WaycottJapanAmy Elsner PROPOSAL
Cody SaylorsBrazilBernardo Dominic NEGOTIATION
Julie StensethUnited KingdomBernardo Dominic PROPOSAL
Jennifer AmigonBrazilOnyama Limba RENEWAL
Clifford RimFranceAmy Elsner QUALIFIED
Ivar PaprockiArgentinaElwin Sharvill RENEWAL
Misaki RoysterUnited KingdomXuxue Feng NEW
Faith GillianArgentinaAmy Elsner UNQUALIFIED
Morrow RutaJapanIoni Bowcher PROPOSAL
Tony FollerItalyStephen Shaw PROPOSAL
Rodrigues CampainRussiaBernardo Dominic QUALIFIED
Mayumi KolmetzRussiaOnyama Limba NEW
Kadeem FlosiCanadaAmy Elsner RENEWAL
Arvin AlbaresItalyOnyama Limba RENEWAL
Leja CaldareraUnited KingdomElwin Sharvill QUALIFIED
Greenwood BologniaGermanyStephen Shaw NEGOTIATION
Murillo MaletBrazilIoni Bowcher NEGOTIATION
Claire TollnerItalyStephen Shaw NEW
Frozen Columns
Name
Costa Dilliard
Cody Saylors
Tony Foller
Aditya Kusko
Murillo Malet
Johnson Sergi
Maria Marrier
Alejandro Perin
Jones Vocelka
Johnson Sergi
Nicolas Iturbide
Maisha Rulapaugh
Nicolas Iturbide
Silvio Slusarski
Mayumi Kolmetz
Antonio Caudy
Jefferson Schemmer
Aika Inouye
Ricardo Gaucho
Murillo Malet
Jeanfrancois Venere
Juan Wieser
Murillo Malet
David Darakjy
Darci Poquette
David Darakjy
Morrow Ruta
Leja Caldarera
Aruna Figeroa
Chavez Briddick
Maria Marrier
Aditya Kusko
Clifford Rim
Maria Marrier
Chavez Briddick
David Darakjy
Johnson Sergi
Jeanfrancois Venere
Antonio Caudy
Kaitlin Ostrosky
Juan Wieser
Aika Inouye
Greenwood Bolognia
Izzy Garufi
Costa Dilliard
Ivar Paprocki
Alejandro Perin
Mujtaba Nicka
Chavez Briddick
Jeanfrancois Venere
IdCountryDate
1000Australia2026-04-06
1001Spain2026-04-12
1002Italy2026-04-10
1003United Kingdom2026-04-09
1004Russia2026-04-07
1005India2026-03-31
1006Brazil2026-03-28
1007Argentina2026-04-11
1008Canada2026-04-23
1009Brazil2026-03-27
1010France2026-04-01
1011Russia2026-04-21
1012United Kingdom2026-04-19
1013France2026-03-31
1014Brazil2026-03-31
1015India2026-04-19
1016Italy2026-04-23
1017United Kingdom2026-04-01
1018India2026-04-13
1019Brazil2026-04-03
1020Italy2026-04-16
1021Canada2026-04-23
1022Italy2026-03-26
1023Italy2026-04-20
1024Spain2026-04-22
1025Italy2026-04-09
1026Spain2026-04-02
1027Argentina2026-04-09
1028Italy2026-04-10
1029Russia2026-04-22
1030Russia2026-03-31
1031Canada2026-03-28
1032Italy2026-04-11
1033Brazil2026-04-04
1034Australia2026-04-08
1035Brazil2026-04-02
1036Spain2026-04-16
1037France2026-04-21
1038Australia2026-03-26
1039Australia2026-03-28
1040Russia2026-04-01
1041United Kingdom2026-04-10
1042Argentina2026-04-01
1043Canada2026-04-17
1044Russia2026-04-04
1045Germany2026-04-15
1046France2026-04-04
1047Spain2026-04-23
1048Brazil2026-04-15
1049United Kingdom2026-04-16

On-Demand Data

NameIdCountryDate
Munro Ferencz1000Australia2026-04-16
Deepesh Chui1001Brazil2026-03-28
Francesco Shinko1002Germany2026-04-01
Johnson Sergi1003Spain2026-04-03
Kaitlin Ostrosky1004Argentina2026-04-18
Ricardo Gaucho1005Canada2026-04-19
David Darakjy1006Brazil2026-04-18
Ashley Doe1007India2026-04-01
Maisha Rulapaugh1008Germany2026-04-09
Maria Marrier1009Japan2026-04-16
Octavia Malet1010France2026-04-15
Jones Vocelka1011United Kingdom2026-04-09
James Butt1012Russia2026-03-26
Tony Foller1013Brazil2026-04-02
Chavez Briddick1014Canada2026-04-06
Deepesh Chui1015Brazil2026-03-28
Rodrigues Campain1016Brazil2026-04-07
Adams Morasca1017Italy2026-03-28
Jennifer Amigon1018Japan2026-04-18
Isabel Bowley1019India2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaAnna Fali PROPOSAL
Kaitlin OstroskyRussiaXuxue Feng NEW
Aditya KuskoGermanyAnna Fali RENEWAL
Octavia MaletAustraliaOnyama Limba PROPOSAL
Morrow RutaArgentinaAmy Elsner NEGOTIATION
Munro FerenczItalyXuxue Feng NEGOTIATION
Greenwood BologniaGermanyIvan Magalhaes NEW
James ButtSpainAsiya Javayant UNQUALIFIED
Juan WieserSpainXuxue Feng PROPOSAL
Aruna FigeroaArgentinaAsiya Javayant NEW
Johnson SergiRussiaXuxue Feng RENEWAL
Aditya KuskoGermanyXuxue Feng RENEWAL
Izzy GarufiBrazilXuxue Feng NEW
Aika InouyeJapanStephen Shaw NEGOTIATION
Silvio SlusarskiUnited KingdomAnna Fali RENEWAL
Tony FollerBrazilAmy Elsner RENEWAL
Leja CaldareraFranceIvan Magalhaes QUALIFIED
Tony FollerItalyStephen Shaw QUALIFIED
Leja CaldareraIndiaElwin Sharvill PROPOSAL
Maisha RulapaughIndiaAnna Fali NEGOTIATION
Mujtaba NickaSpainElwin Sharvill NEGOTIATION
Sinclair WaycottGermanyElwin Sharvill RENEWAL
Faith GillianArgentinaAmy Elsner QUALIFIED
Stacey MacleadJapanIvan Magalhaes NEW
Chavez BriddickIndiaAnna Fali QUALIFIED
Jeanfrancois VenereItalyElwin Sharvill RENEWAL
Jennifer AmigonGermanyOnyama Limba RENEWAL
David DarakjySpainStephen Shaw QUALIFIED
Leja CaldareraJapanIvan Magalhaes RENEWAL
Claire TollnerItalyAsiya Javayant NEW
Jeanfrancois VenereIndiaXuxue Feng NEW
Aika InouyeRussiaIvan Magalhaes NEGOTIATION
Darci PoquetteRussiaIvan Magalhaes NEW
Smith GlickUnited KingdomAnna Fali NEW
Juan WieserGermanyIvan Magalhaes NEGOTIATION
Aika InouyeCanadaIvan Magalhaes PROPOSAL
Clifford RimIndiaIoni Bowcher NEGOTIATION
Aditya KuskoItalyAnna Fali UNQUALIFIED
Morrow RutaSpainAnna Fali QUALIFIED
Tony FollerJapanAmy Elsner 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>