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
Silvio SlusarskiJapanBernardo Dominic NEW
Tony FollerRussiaIoni Bowcher QUALIFIED
Sinclair WaycottJapanAmy Elsner NEW
Darci PoquetteRussiaElwin Sharvill NEW
Rodrigues CampainSpainElwin Sharvill PROPOSAL
Jennifer AmigonUnited KingdomIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomBernardo Dominic PROPOSAL
Adams MorascaRussiaBernardo Dominic PROPOSAL
Salvatore StockhamSpainXuxue Feng PROPOSAL
David DarakjyCanadaXuxue Feng NEW
Stacey MacleadUnited KingdomElwin Sharvill RENEWAL
Julie StensethItalyAnna Fali NEW
Stacey MacleadRussiaElwin Sharvill NEW
Ashley DoeArgentinaIvan Magalhaes PROPOSAL
Ashley DoeCanadaAmy Elsner NEW
Leon OldroydAustraliaStephen Shaw PROPOSAL
Claire TollnerArgentinaIvan Magalhaes PROPOSAL
Cody SaylorsBrazilBernardo Dominic PROPOSAL
Ashley DoeSpainBernardo Dominic PROPOSAL
Johnson SergiArgentinaIoni Bowcher QUALIFIED
Faith GillianIndiaXuxue Feng PROPOSAL
Faith GillianSpainStephen Shaw NEW
Salvatore StockhamIndiaStephen Shaw NEGOTIATION
Leon OldroydBrazilXuxue Feng RENEWAL
Kaitlin OstroskySpainOnyama Limba NEW
David DarakjyUnited KingdomAsiya Javayant NEW
Mayumi KolmetzItalyIvan Magalhaes RENEWAL
Maria MarrierAustraliaIvan Magalhaes NEGOTIATION
Silvio SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Stacey MacleadBrazilAnna Fali RENEWAL
Greenwood BologniaAustraliaXuxue Feng NEGOTIATION
Arvin AlbaresIndiaAsiya Javayant NEGOTIATION
Johnson SergiFranceOnyama Limba RENEWAL
Costa DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Kadeem FlosiGermanyIoni Bowcher UNQUALIFIED
Ashley DoeFranceIoni Bowcher PROPOSAL
Cody SaylorsIndiaXuxue Feng NEGOTIATION
Antonio CaudyJapanIoni Bowcher QUALIFIED
Jones VocelkaGermanyBernardo Dominic QUALIFIED
Ricardo GauchoBrazilXuxue Feng NEW
Leja CaldareraCanadaBernardo Dominic RENEWAL
Greenwood BologniaGermanyStephen Shaw RENEWAL
David DarakjyArgentinaIoni Bowcher QUALIFIED
Faith GillianFranceIoni Bowcher NEW
Ricardo GauchoItalyAsiya Javayant NEW
Murillo MaletCanadaIoni Bowcher NEW
Clifford RimRussiaAmy Elsner QUALIFIED
Izzy GarufiFranceIoni Bowcher UNQUALIFIED
Aditya KuskoItalyAmy Elsner NEW
Arvin AlbaresCanadaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon OldroydCanadaAmy Elsner QUALIFIED
Ricardo GauchoCanadaAnna Fali NEW
Kadeem FlosiRussiaElwin Sharvill NEW
Kadeem FlosiArgentinaBernardo Dominic PROPOSAL
Francesco ShinkoSpainXuxue Feng PROPOSAL
Rodrigues CampainSpainBernardo Dominic UNQUALIFIED
Claire TollnerUnited KingdomAmy Elsner NEW
Maisha RulapaughCanadaAsiya Javayant PROPOSAL
Tony FollerUnited KingdomAsiya Javayant PROPOSAL
Leon OldroydAustraliaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraCanada2026-04-06Feltz Printing Service UNQUALIFIED32Bernardo Dominic
1001Rodrigues CampainGermany2026-04-15Rousseaux, Michael Esq PROPOSAL51Bernardo Dominic
1002Antonio CaudySpain2026-04-20Dorl, James J Esq NEGOTIATION52Onyama Limba
1003Salvatore StockhamAustralia2026-04-20Truhlar And Truhlar Attys PROPOSAL44Bernardo Dominic
1004Jeanfrancois VenereRussia2026-04-11Truhlar And Truhlar Attys QUALIFIED92Bernardo Dominic
1005Aditya KuskoCanada2026-04-03Printing Dimensions NEGOTIATION87Ivan Magalhaes
1006Adams MorascaCanada2026-03-22Truhlar And Truhlar Attys QUALIFIED26Stephen Shaw
1007Misaki RoysterBrazil2026-04-09King, Christopher A Esq QUALIFIED29Onyama Limba
1008Murillo MaletAustralia2026-03-23Truhlar And Truhlar Attys PROPOSAL53Xuxue Feng
1009Greenwood BologniaUnited Kingdom2026-03-25Benton, John B Jr UNQUALIFIED86Xuxue Feng
1010Leon OldroydItaly2026-04-03Printing Dimensions PROPOSAL27Amy Elsner
1011Nicolas IturbideRussia2026-04-17Printing Dimensions UNQUALIFIED89Asiya Javayant
1012Stacey MacleadUnited Kingdom2026-04-20Rangoni Of Florence NEGOTIATION81Amy Elsner
1013Jeanfrancois VenereFrance2026-04-13Commercial Press QUALIFIED59Asiya Javayant
1014Kadeem FlosiCanada2026-04-03Morlong Associates NEW89Anna Fali
1015Wickens NestleBrazil2026-04-10Printing Dimensions RENEWAL49Bernardo Dominic
1016Chavez BriddickRussia2026-03-25Printing Dimensions RENEWAL99Amy Elsner
1017James ButtSpain2026-03-31King, Christopher A Esq PROPOSAL15Bernardo Dominic
1018Izzy GarufiSpain2026-04-12Feiner Bros RENEWAL53Amy Elsner
1019Kadeem FlosiJapan2026-04-05Printing Dimensions PROPOSAL19Elwin Sharvill
1020Emily WhobreySpain2026-03-22Feltz Printing Service PROPOSAL95Onyama Limba
1021Mayumi KolmetzItaly2026-03-28Morlong Associates RENEWAL20Bernardo Dominic
1022Claire TollnerUnited Kingdom2026-04-17Feltz Printing Service QUALIFIED51Asiya Javayant
1023Isabel BowleyRussia2026-03-22Printing Dimensions NEW12Ioni Bowcher
1024Maria MarrierBrazil2026-04-11Feiner Bros UNQUALIFIED85Xuxue Feng
1025Deepesh ChuiAustralia2026-03-25Morlong Associates NEGOTIATION25Ioni Bowcher
1026Stacey MacleadSpain2026-04-18King, Christopher A Esq NEW14Anna Fali
1027Deepesh ChuiCanada2026-04-09Chapman, Ross E Esq NEGOTIATION91Bernardo Dominic
1028Tony FollerIndia2026-04-07Feltz Printing Service QUALIFIED96Elwin Sharvill
1029Maria MarrierAustralia2026-04-17Chemel, James L Cpa RENEWAL91Amy Elsner
1030Mujtaba NickaCanada2026-03-22King, Christopher A Esq NEGOTIATION39Elwin Sharvill
1031Wickens NestleIndia2026-03-24Rangoni Of Florence UNQUALIFIED37Xuxue Feng
1032Jefferson SchemmerIndia2026-03-30Chapman, Ross E Esq RENEWAL10Asiya Javayant
1033Ricardo GauchoArgentina2026-03-27Benton, John B Jr NEGOTIATION11Ivan Magalhaes
1034Kadeem FlosiSpain2026-04-18Commercial Press NEW88Elwin Sharvill
1035Salvatore StockhamIndia2026-04-12Dorl, James J Esq RENEWAL48Bernardo Dominic
1036Ricardo GauchoItaly2026-03-31Chanay, Jeffrey A Esq UNQUALIFIED73Anna Fali
1037Rodrigues CampainUnited Kingdom2026-04-09Chapman, Ross E Esq NEW14Asiya Javayant
1038Jones VocelkaUnited Kingdom2026-03-30Printing Dimensions NEW56Ivan Magalhaes
1039Jones VocelkaCanada2026-04-12Truhlar And Truhlar Attys PROPOSAL15Stephen Shaw
1040Ivar PaprockiIndia2026-04-16Chanay, Jeffrey A Esq PROPOSAL7Xuxue Feng
1041Johnson SergiBrazil2026-04-13Rousseaux, Michael Esq QUALIFIED10Onyama Limba
1042Munro FerenczCanada2026-04-20Morlong Associates RENEWAL49Ivan Magalhaes
1043Leon OldroydBrazil2026-04-13Chemel, James L Cpa RENEWAL46Amy Elsner
1044Alejandro PerinAustralia2026-03-22Truhlar And Truhlar Attys RENEWAL18Amy Elsner
1045Claire TollnerIndia2026-04-09King, Christopher A Esq UNQUALIFIED97Xuxue Feng
1046Wickens NestleIndia2026-04-11Truhlar And Truhlar Attys UNQUALIFIED68Ioni Bowcher
1047Antonio CaudyBrazil2026-04-02Chapman, Ross E Esq QUALIFIED2Xuxue Feng
1048Johnson SergiRussia2026-04-05Feiner Bros UNQUALIFIED14Bernardo Dominic
1049Rodrigues CampainCanada2026-04-01Rousseaux, Michael Esq NEW23Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerGermanyAsiya Javayant RENEWAL
Salvatore StockhamBrazilAsiya Javayant QUALIFIED
Morrow RutaIndiaOnyama Limba NEGOTIATION
Kadeem FlosiCanadaElwin Sharvill NEW
Ashley DoeCanadaAsiya Javayant QUALIFIED
Francesco ShinkoJapanOnyama Limba UNQUALIFIED
Costa DilliardArgentinaAnna Fali NEW
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzSpainBernardo Dominic PROPOSAL
Alejandro PerinJapanAsiya Javayant NEW
Johnson SergiGermanyElwin Sharvill UNQUALIFIED
Clifford RimAustraliaElwin Sharvill RENEWAL
Isabel BowleySpainAmy Elsner PROPOSAL
Leon OldroydCanadaStephen Shaw UNQUALIFIED
Ricardo GauchoCanadaBernardo Dominic NEW
Cody SaylorsRussiaStephen Shaw PROPOSAL
Isabel BowleyArgentinaElwin Sharvill QUALIFIED
Ivar PaprockiBrazilStephen Shaw RENEWAL
Jefferson SchemmerGermanyElwin Sharvill NEGOTIATION
Smith GlickUnited KingdomAsiya Javayant RENEWAL
Jones VocelkaJapanStephen Shaw NEW
Mujtaba NickaAustraliaIvan Magalhaes PROPOSAL
Clifford RimRussiaXuxue Feng NEGOTIATION
Faith GillianFranceAsiya Javayant NEW
Clifford RimArgentinaElwin Sharvill PROPOSAL
Jennifer AmigonSpainIoni Bowcher NEGOTIATION
Salvatore StockhamCanadaAnna Fali QUALIFIED
Octavia MaletRussiaBernardo Dominic PROPOSAL
James ButtArgentinaAsiya Javayant RENEWAL
Tony FollerSpainAnna Fali PROPOSAL
Costa DilliardArgentinaAmy Elsner QUALIFIED
Mujtaba NickaRussiaAmy Elsner RENEWAL
Greenwood BologniaArgentinaAmy Elsner NEW
Salvatore StockhamJapanOnyama Limba PROPOSAL
Ivar PaprockiBrazilStephen Shaw QUALIFIED
Jones VocelkaCanadaAmy Elsner NEW
Stacey MacleadUnited KingdomAmy Elsner PROPOSAL
Jeanfrancois VenereCanadaXuxue Feng UNQUALIFIED
Octavia MaletCanadaStephen Shaw NEGOTIATION
Misaki RoysterArgentinaAsiya Javayant NEW
Wickens NestleRussiaStephen Shaw PROPOSAL
Maisha RulapaughJapanOnyama Limba RENEWAL
Emily WhobreyBrazilElwin Sharvill NEW
Costa DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Izzy GarufiIndiaStephen Shaw RENEWAL
Greenwood BologniaAustraliaElwin Sharvill QUALIFIED
Octavia MaletFranceXuxue Feng QUALIFIED
Ivar PaprockiAustraliaAsiya Javayant NEGOTIATION
Kaitlin OstroskyJapanAsiya Javayant RENEWAL
James ButtArgentinaAsiya Javayant QUALIFIED
Frozen Columns
Name
Arvin Albares
Adams Morasca
Kadeem Flosi
Kaitlin Ostrosky
Murillo Malet
Francesco Shinko
Aditya Kusko
Ivar Paprocki
Adams Morasca
Salvatore Stockham
Julie Stenseth
Juan Wieser
Julie Stenseth
Kadeem Flosi
Misaki Royster
Aruna Figeroa
Murillo Malet
Leja Caldarera
Wickens Nestle
Clifford Rim
Munro Ferencz
Aika Inouye
Claire Tollner
Maria Marrier
Aruna Figeroa
Claire Tollner
Adams Morasca
Mayumi Kolmetz
Emily Whobrey
Emily Whobrey
Cody Saylors
Jennifer Amigon
Maisha Rulapaugh
Munro Ferencz
Mayumi Kolmetz
Faith Gillian
Aika Inouye
Murillo Malet
Kadeem Flosi
Silvio Slusarski
Stacey Maclead
Jeanfrancois Venere
Aditya Kusko
Maria Marrier
Clifford Rim
Alejandro Perin
Aika Inouye
Izzy Garufi
Aditya Kusko
Nicolas Iturbide
IdCountryDate
1000Brazil2026-03-22
1001Russia2026-04-12
1002India2026-04-19
1003Brazil2026-04-01
1004United Kingdom2026-03-23
1005India2026-04-14
1006Russia2026-04-08
1007Russia2026-03-24
1008India2026-04-18
1009Germany2026-03-27
1010France2026-03-24
1011Germany2026-04-09
1012Australia2026-03-28
1013Italy2026-04-09
1014Brazil2026-04-08
1015India2026-04-01
1016Japan2026-04-04
1017Spain2026-03-25
1018Australia2026-03-30
1019France2026-04-01
1020France2026-04-02
1021Russia2026-04-11
1022Canada2026-04-11
1023Russia2026-03-27
1024Canada2026-03-23
1025Spain2026-03-26
1026Russia2026-04-11
1027Russia2026-03-25
1028Italy2026-03-27
1029Canada2026-03-30
1030Italy2026-04-13
1031Spain2026-03-28
1032France2026-04-20
1033India2026-04-19
1034United Kingdom2026-03-24
1035Italy2026-04-09
1036India2026-04-20
1037Russia2026-04-07
1038Brazil2026-04-09
1039Italy2026-04-04
1040Italy2026-04-10
1041France2026-03-28
1042Japan2026-04-03
1043Spain2026-04-12
1044Australia2026-04-05
1045Brazil2026-03-27
1046Spain2026-04-20
1047Brazil2026-04-19
1048Canada2026-04-17
1049Argentina2026-04-18

On-Demand Data

NameIdCountryDate
Antonio Caudy1000United Kingdom2026-04-01
Antonio Caudy1001Italy2026-04-14
Leja Caldarera1002Canada2026-04-03
Darci Poquette1003Italy2026-04-15
Jeanfrancois Venere1004United Kingdom2026-03-24
Misaki Royster1005Argentina2026-03-29
Julie Stenseth1006France2026-04-18
Deepesh Chui1007United Kingdom2026-04-20
Emily Whobrey1008Russia2026-04-14
Salvatore Stockham1009Germany2026-03-26
Chavez Briddick1010Japan2026-04-07
Adams Morasca1011India2026-04-14
Maria Marrier1012Brazil2026-03-22
James Butt1013United Kingdom2026-03-24
Kadeem Flosi1014Australia2026-04-17
Deepesh Chui1015United Kingdom2026-03-23
Ricardo Gaucho1016Australia2026-03-24
Morrow Ruta1017Russia2026-04-06
Maria Marrier1018Spain2026-03-31
Faith Gillian1019United Kingdom2026-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickGermanyAnna Fali PROPOSAL
Ricardo GauchoArgentinaAnna Fali QUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher QUALIFIED
David DarakjyFranceElwin Sharvill RENEWAL
Emily WhobreyAustraliaIoni Bowcher QUALIFIED
Greenwood BologniaAustraliaAmy Elsner UNQUALIFIED
Juan WieserArgentinaAmy Elsner NEGOTIATION
Ricardo GauchoUnited KingdomStephen Shaw QUALIFIED
Johnson SergiAustraliaOnyama Limba NEW
Maisha RulapaughAustraliaElwin Sharvill UNQUALIFIED
Deepesh ChuiItalyIvan Magalhaes UNQUALIFIED
Wickens NestleBrazilXuxue Feng QUALIFIED
Mayumi KolmetzSpainAnna Fali QUALIFIED
Greenwood BologniaRussiaIoni Bowcher UNQUALIFIED
Morrow RutaAustraliaAmy Elsner QUALIFIED
Claire TollnerFranceStephen Shaw NEW
Izzy GarufiRussiaAnna Fali RENEWAL
Munro FerenczBrazilAmy Elsner PROPOSAL
Aruna FigeroaFranceAnna Fali NEW
Chavez BriddickArgentinaAnna Fali QUALIFIED
Juan WieserFranceStephen Shaw UNQUALIFIED
Murillo MaletItalyIoni Bowcher PROPOSAL
Mayumi KolmetzArgentinaIoni Bowcher RENEWAL
Salvatore StockhamGermanyXuxue Feng RENEWAL
Adams MorascaUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamJapanStephen Shaw RENEWAL
Juan WieserGermanyIvan Magalhaes RENEWAL
Smith GlickSpainAmy Elsner NEW
James ButtArgentinaIvan Magalhaes PROPOSAL
Wickens NestleItalyIoni Bowcher NEGOTIATION
James ButtItalyXuxue Feng PROPOSAL
Tony FollerBrazilAnna Fali QUALIFIED
David DarakjyGermanyOnyama Limba UNQUALIFIED
Claire TollnerRussiaXuxue Feng NEGOTIATION
Chavez BriddickItalyOnyama Limba RENEWAL
Clifford RimBrazilElwin Sharvill QUALIFIED
Kaitlin OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Maria MarrierJapanIoni Bowcher QUALIFIED
Jennifer AmigonGermanyAsiya Javayant RENEWAL
Jennifer AmigonItalyBernardo Dominic 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>