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
Clifford RimIndiaAsiya Javayant NEGOTIATION
Tony FollerFranceAmy Elsner UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Aruna FigeroaCanadaElwin Sharvill UNQUALIFIED
Adams MorascaCanadaOnyama Limba QUALIFIED
Clifford RimIndiaIvan Magalhaes RENEWAL
Leja CaldareraAustraliaOnyama Limba NEW
Silvio SlusarskiBrazilIoni Bowcher QUALIFIED
Sinclair WaycottArgentinaAmy Elsner NEGOTIATION
Cody SaylorsSpainXuxue Feng NEW
Ivar PaprockiArgentinaXuxue Feng QUALIFIED
Nicolas IturbideCanadaElwin Sharvill QUALIFIED
Ashley DoeIndiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiJapanAmy Elsner RENEWAL
Johnson SergiUnited KingdomOnyama Limba NEGOTIATION
Wickens NestleBrazilStephen Shaw NEW
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Smith GlickRussiaAmy Elsner PROPOSAL
James ButtCanadaAmy Elsner NEW
James ButtCanadaAmy Elsner PROPOSAL
Leja CaldareraIndiaIvan Magalhaes RENEWAL
Kaitlin OstroskyIndiaAmy Elsner PROPOSAL
Juan WieserCanadaAsiya Javayant RENEWAL
Maisha RulapaughJapanStephen Shaw NEW
Antonio CaudyIndiaIoni Bowcher QUALIFIED
Alejandro PerinBrazilOnyama Limba NEGOTIATION
Leja CaldareraRussiaElwin Sharvill QUALIFIED
Mujtaba NickaUnited KingdomStephen Shaw NEW
Murillo MaletRussiaXuxue Feng UNQUALIFIED
Johnson SergiGermanyIvan Magalhaes UNQUALIFIED
Maisha RulapaughAustraliaBernardo Dominic NEW
Clifford RimArgentinaElwin Sharvill PROPOSAL
Ivar PaprockiRussiaXuxue Feng PROPOSAL
Deepesh ChuiArgentinaAmy Elsner UNQUALIFIED
Antonio CaudyCanadaAnna Fali PROPOSAL
Jennifer AmigonArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Alejandro PerinAustraliaElwin Sharvill PROPOSAL
Claire TollnerAustraliaAsiya Javayant RENEWAL
Isabel BowleyFranceIoni Bowcher QUALIFIED
Nicolas IturbideArgentinaXuxue Feng NEGOTIATION
Aditya KuskoJapanElwin Sharvill UNQUALIFIED
Claire TollnerCanadaBernardo Dominic UNQUALIFIED
Cody SaylorsJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiSpainAmy Elsner UNQUALIFIED
Claire TollnerCanadaStephen Shaw RENEWAL
Nicolas IturbideArgentinaXuxue Feng NEW
Wickens NestleJapanIoni Bowcher NEW
Aika InouyeBrazilElwin Sharvill NEW
Isabel BowleyUnited KingdomIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiRussiaIvan Magalhaes NEW
Ivar PaprockiArgentinaOnyama Limba NEGOTIATION
Maisha RulapaughGermanyAnna Fali NEGOTIATION
Octavia MaletRussiaStephen Shaw PROPOSAL
David DarakjyFranceIoni Bowcher NEGOTIATION
James ButtBrazilAsiya Javayant NEW
Mayumi KolmetzCanadaAsiya Javayant NEW
Stacey MacleadArgentinaOnyama Limba RENEWAL
Leja CaldareraAustraliaStephen Shaw NEGOTIATION
Sinclair WaycottFranceAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresSpain2026-04-24Rangoni Of Florence QUALIFIED7Bernardo Dominic
1001Juan WieserAustralia2026-05-01Printing Dimensions PROPOSAL64Anna Fali
1002Cody SaylorsGermany2026-04-25Rangoni Of Florence NEW46Bernardo Dominic
1003Nicolas IturbideItaly2026-05-02Morlong Associates PROPOSAL43Bernardo Dominic
1004Izzy GarufiSpain2026-04-17Commercial Press QUALIFIED75Amy Elsner
1005Murillo MaletAustralia2026-04-23Rousseaux, Michael Esq PROPOSAL12Ioni Bowcher
1006Aika InouyeCanada2026-04-08Morlong Associates RENEWAL84Onyama Limba
1007Cody SaylorsRussia2026-04-20Feltz Printing Service QUALIFIED81Xuxue Feng
1008Jeanfrancois VenereUnited Kingdom2026-04-22Rousseaux, Michael Esq NEW74Ivan Magalhaes
1009Emily WhobreyGermany2026-04-18Rangoni Of Florence QUALIFIED48Ioni Bowcher
1010Clifford RimCanada2026-05-03Truhlar And Truhlar Attys PROPOSAL42Ivan Magalhaes
1011Mujtaba NickaSpain2026-04-23Chapman, Ross E Esq NEW1Anna Fali
1012Jefferson SchemmerBrazil2026-04-15Printing Dimensions NEW24Ioni Bowcher
1013Antonio CaudyFrance2026-04-12Chanay, Jeffrey A Esq NEW62Ivan Magalhaes
1014Stacey MacleadAustralia2026-04-24Truhlar And Truhlar Attys NEW73Anna Fali
1015Octavia MaletBrazil2026-05-01Printing Dimensions QUALIFIED79Onyama Limba
1016Silvio SlusarskiCanada2026-04-28Morlong Associates NEW99Ioni Bowcher
1017Izzy GarufiGermany2026-05-04Rangoni Of Florence QUALIFIED36Elwin Sharvill
1018Aruna FigeroaCanada2026-04-16Rangoni Of Florence QUALIFIED35Ivan Magalhaes
1019Faith GillianBrazil2026-04-09Dorl, James J Esq QUALIFIED62Anna Fali
1020Mayumi KolmetzUnited Kingdom2026-04-22Truhlar And Truhlar Attys PROPOSAL59Anna Fali
1021Kadeem FlosiAustralia2026-04-27Morlong Associates NEGOTIATION45Onyama Limba
1022Mujtaba NickaUnited Kingdom2026-05-02Feltz Printing Service UNQUALIFIED11Ivan Magalhaes
1023Maria MarrierItaly2026-04-13Printing Dimensions QUALIFIED11Elwin Sharvill
1024Greenwood BologniaJapan2026-04-13Chanay, Jeffrey A Esq NEW11Asiya Javayant
1025Alejandro PerinBrazil2026-04-08Morlong Associates QUALIFIED8Amy Elsner
1026Silvio SlusarskiCanada2026-04-07Commercial Press RENEWAL58Bernardo Dominic
1027Jennifer AmigonGermany2026-04-14Truhlar And Truhlar Attys RENEWAL27Xuxue Feng
1028Murillo MaletFrance2026-04-30Feltz Printing Service PROPOSAL19Ivan Magalhaes
1029Aruna FigeroaFrance2026-04-28Chanay, Jeffrey A Esq UNQUALIFIED27Ivan Magalhaes
1030Juan WieserIndia2026-04-17Rousseaux, Michael Esq NEW27Elwin Sharvill
1031Morrow RutaFrance2026-04-08Printing Dimensions NEW40Stephen Shaw
1032Leja CaldareraIndia2026-04-06Feltz Printing Service QUALIFIED52Ioni Bowcher
1033Rodrigues CampainCanada2026-05-04Buckley Miller Wright RENEWAL78Ivan Magalhaes
1034Silvio SlusarskiArgentina2026-04-08Truhlar And Truhlar Attys NEW28Asiya Javayant
1035Izzy GarufiFrance2026-05-03Rangoni Of Florence NEGOTIATION53Ivan Magalhaes
1036Leon OldroydCanada2026-04-20Feltz Printing Service UNQUALIFIED20Onyama Limba
1037Sinclair WaycottIndia2026-04-17Commercial Press NEGOTIATION48Stephen Shaw
1038Maria MarrierRussia2026-05-03King, Christopher A Esq RENEWAL57Amy Elsner
1039Maria MarrierGermany2026-04-10Chanay, Jeffrey A Esq RENEWAL52Onyama Limba
1040Ivar PaprockiJapan2026-04-30Feltz Printing Service NEGOTIATION31Asiya Javayant
1041Maisha RulapaughItaly2026-04-28Chapman, Ross E Esq QUALIFIED9Onyama Limba
1042Chavez BriddickArgentina2026-04-30Printing Dimensions NEW31Ioni Bowcher
1043Emily WhobreyGermany2026-04-21King, Christopher A Esq NEW41Xuxue Feng
1044Isabel BowleyJapan2026-04-23Benton, John B Jr PROPOSAL88Stephen Shaw
1045Maria MarrierArgentina2026-04-30Chanay, Jeffrey A Esq NEW27Anna Fali
1046Leon OldroydArgentina2026-04-13Feltz Printing Service RENEWAL22Amy Elsner
1047Ashley DoeUnited Kingdom2026-04-09Dorl, James J Esq NEW59Elwin Sharvill
1048David DarakjySpain2026-04-19Commercial Press UNQUALIFIED91Elwin Sharvill
1049Juan WieserGermany2026-04-10Chapman, Ross E Esq NEGOTIATION17Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Antonio CaudyFranceAmy Elsner NEGOTIATION
Adams MorascaBrazilElwin Sharvill QUALIFIED
Adams MorascaAustraliaAmy Elsner RENEWAL
Maria MarrierIndiaAnna Fali NEW
Ricardo GauchoRussiaIvan Magalhaes PROPOSAL
Kadeem FlosiGermanyAmy Elsner NEGOTIATION
Isabel BowleyItalyAmy Elsner NEW
Aruna FigeroaAustraliaIoni Bowcher UNQUALIFIED
Ricardo GauchoBrazilXuxue Feng UNQUALIFIED
Ricardo GauchoJapanAsiya Javayant RENEWAL
Costa DilliardSpainAsiya Javayant NEW
Cody SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Francesco ShinkoItalyOnyama Limba NEGOTIATION
James ButtSpainAsiya Javayant UNQUALIFIED
James ButtArgentinaAsiya Javayant QUALIFIED
Claire TollnerItalyAnna Fali RENEWAL
Darci PoquetteAustraliaIoni Bowcher NEGOTIATION
Clifford RimBrazilAsiya Javayant PROPOSAL
Leon OldroydUnited KingdomXuxue Feng PROPOSAL
Stacey MacleadAustraliaAnna Fali RENEWAL
Antonio CaudyItalyAmy Elsner PROPOSAL
Kaitlin OstroskyIndiaAnna Fali PROPOSAL
Ashley DoeFranceBernardo Dominic NEW
Claire TollnerJapanAnna Fali QUALIFIED
Isabel BowleyItalyIoni Bowcher NEW
Tony FollerItalyElwin Sharvill UNQUALIFIED
Wickens NestleRussiaElwin Sharvill NEGOTIATION
Morrow RutaGermanyAnna Fali NEW
Aditya KuskoGermanyAsiya Javayant NEGOTIATION
Juan WieserIndiaAnna Fali PROPOSAL
Jennifer AmigonGermanyXuxue Feng UNQUALIFIED
Jefferson SchemmerBrazilAsiya Javayant NEGOTIATION
Nicolas IturbideAustraliaElwin Sharvill NEW
Julie StensethGermanyStephen Shaw NEW
Rodrigues CampainCanadaOnyama Limba PROPOSAL
Jeanfrancois VenereIndiaAnna Fali QUALIFIED
Darci PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Juan WieserCanadaXuxue Feng PROPOSAL
Leon OldroydArgentinaOnyama Limba QUALIFIED
Munro FerenczArgentinaIoni Bowcher NEGOTIATION
Munro FerenczItalyAmy Elsner RENEWAL
Greenwood BologniaAustraliaAnna Fali RENEWAL
Maisha RulapaughFranceOnyama Limba QUALIFIED
Aditya KuskoRussiaBernardo Dominic NEW
Jones VocelkaAustraliaIoni Bowcher NEW
Nicolas IturbideSpainIoni Bowcher NEGOTIATION
David DarakjyArgentinaStephen Shaw UNQUALIFIED
Salvatore StockhamBrazilAmy Elsner NEW
Francesco ShinkoFranceElwin Sharvill RENEWAL
Kaitlin OstroskyGermanyAsiya Javayant QUALIFIED
Frozen Columns
Name
Sinclair Waycott
Johnson Sergi
Arvin Albares
Leon Oldroyd
Misaki Royster
David Darakjy
Emily Whobrey
Maisha Rulapaugh
Alejandro Perin
James Butt
Smith Glick
Jeanfrancois Venere
Kaitlin Ostrosky
Munro Ferencz
Sinclair Waycott
Ivar Paprocki
David Darakjy
Nicolas Iturbide
Emily Whobrey
Ivar Paprocki
Misaki Royster
Jennifer Amigon
Nicolas Iturbide
Smith Glick
Jefferson Schemmer
Jones Vocelka
Aditya Kusko
Arvin Albares
Isabel Bowley
Adams Morasca
Greenwood Bolognia
Mujtaba Nicka
Ashley Doe
Darci Poquette
Deepesh Chui
Sinclair Waycott
David Darakjy
Darci Poquette
Nicolas Iturbide
Silvio Slusarski
Emily Whobrey
Jefferson Schemmer
Johnson Sergi
Tony Foller
Arvin Albares
Smith Glick
Arvin Albares
Smith Glick
Maria Marrier
Tony Foller
IdCountryDate
1000Canada2026-04-28
1001Canada2026-04-09
1002Italy2026-04-23
1003Italy2026-04-21
1004Canada2026-04-20
1005Russia2026-04-05
1006Italy2026-04-28
1007Brazil2026-05-03
1008Canada2026-04-05
1009Canada2026-04-14
1010Italy2026-04-23
1011Spain2026-04-13
1012Australia2026-05-01
1013Brazil2026-04-12
1014United Kingdom2026-04-13
1015India2026-05-04
1016United Kingdom2026-04-28
1017Canada2026-04-08
1018United Kingdom2026-04-22
1019France2026-04-14
1020Brazil2026-04-29
1021Canada2026-04-26
1022Canada2026-04-15
1023Argentina2026-04-18
1024Canada2026-04-06
1025Japan2026-04-14
1026Australia2026-04-21
1027United Kingdom2026-04-28
1028Russia2026-04-25
1029France2026-04-29
1030Spain2026-04-11
1031Brazil2026-04-14
1032India2026-04-19
1033Spain2026-04-27
1034Spain2026-04-14
1035United Kingdom2026-04-20
1036Spain2026-04-13
1037India2026-04-20
1038Russia2026-05-04
1039United Kingdom2026-04-06
1040India2026-04-24
1041Russia2026-04-07
1042Spain2026-04-14
1043Italy2026-04-08
1044Italy2026-04-20
1045Japan2026-04-26
1046France2026-04-20
1047United Kingdom2026-04-19
1048India2026-05-01
1049Italy2026-04-08

On-Demand Data

NameIdCountryDate
Smith Glick1000Argentina2026-04-25
Salvatore Stockham1001India2026-04-15
Izzy Garufi1002Australia2026-04-11
Octavia Malet1003India2026-04-30
Misaki Royster1004Russia2026-04-09
Jefferson Schemmer1005Germany2026-04-09
Aditya Kusko1006India2026-05-04
Ricardo Gaucho1007Canada2026-04-06
Sinclair Waycott1008Japan2026-04-30
Chavez Briddick1009Italy2026-04-24
Misaki Royster1010Spain2026-04-28
Munro Ferencz1011Brazil2026-04-26
Stacey Maclead1012Argentina2026-04-16
Jeanfrancois Venere1013India2026-04-29
Smith Glick1014Japan2026-04-17
Jefferson Schemmer1015Russia2026-04-16
Salvatore Stockham1016Italy2026-05-04
Stacey Maclead1017Italy2026-05-04
Johnson Sergi1018United Kingdom2026-04-14
Jones Vocelka1019India2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadUnited KingdomElwin Sharvill NEW
Leja CaldareraJapanBernardo Dominic NEGOTIATION
Greenwood BologniaGermanyIoni Bowcher RENEWAL
Chavez BriddickAustraliaElwin Sharvill PROPOSAL
Smith GlickCanadaAmy Elsner QUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes NEW
David DarakjyFranceAnna Fali QUALIFIED
Stacey MacleadCanadaOnyama Limba NEW
Stacey MacleadJapanIoni Bowcher RENEWAL
Kaitlin OstroskyItalyIoni Bowcher UNQUALIFIED
Ricardo GauchoItalyBernardo Dominic NEGOTIATION
Murillo MaletGermanyXuxue Feng NEGOTIATION
Octavia MaletIndiaOnyama Limba RENEWAL
Jefferson SchemmerGermanyAmy Elsner NEGOTIATION
Rodrigues CampainUnited KingdomOnyama Limba RENEWAL
Tony FollerBrazilAsiya Javayant NEW
Mujtaba NickaRussiaAnna Fali NEGOTIATION
Morrow RutaRussiaAmy Elsner NEGOTIATION
Sinclair WaycottUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner NEW
Faith GillianArgentinaIvan Magalhaes UNQUALIFIED
Maisha RulapaughArgentinaIoni Bowcher RENEWAL
Silvio SlusarskiAustraliaStephen Shaw QUALIFIED
Isabel BowleyBrazilStephen Shaw PROPOSAL
Salvatore StockhamBrazilAsiya Javayant PROPOSAL
Stacey MacleadRussiaOnyama Limba RENEWAL
Ashley DoeSpainAnna Fali RENEWAL
Mujtaba NickaCanadaElwin Sharvill NEGOTIATION
Emily WhobreyAustraliaAmy Elsner NEW
Costa DilliardJapanIvan Magalhaes NEGOTIATION
Sinclair WaycottGermanyAnna Fali RENEWAL
Leon OldroydJapanBernardo Dominic RENEWAL
Nicolas IturbideGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoSpainElwin Sharvill NEGOTIATION
Aika InouyeUnited KingdomIoni Bowcher PROPOSAL
Costa DilliardBrazilAnna Fali UNQUALIFIED
Munro FerenczAustraliaAmy Elsner NEW
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Emily WhobreyCanadaAsiya Javayant UNQUALIFIED
Morrow RutaCanadaElwin Sharvill NEW

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