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
Murillo MaletFranceOnyama Limba NEW
Adams MorascaIndiaBernardo Dominic UNQUALIFIED
Darci PoquetteSpainAnna Fali RENEWAL
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Jennifer AmigonItalyIoni Bowcher UNQUALIFIED
Kadeem FlosiRussiaIoni Bowcher NEGOTIATION
David DarakjyArgentinaStephen Shaw UNQUALIFIED
Jones VocelkaFranceAnna Fali NEW
Costa DilliardGermanyBernardo Dominic QUALIFIED
Arvin AlbaresSpainAnna Fali UNQUALIFIED
Arvin AlbaresSpainIvan Magalhaes NEGOTIATION
Misaki RoysterGermanyBernardo Dominic NEGOTIATION
Leon OldroydFranceIoni Bowcher NEW
Greenwood BologniaCanadaIvan Magalhaes RENEWAL
Munro FerenczCanadaOnyama Limba UNQUALIFIED
Jones VocelkaAustraliaAsiya Javayant RENEWAL
David DarakjyCanadaAsiya Javayant PROPOSAL
Sinclair WaycottRussiaIvan Magalhaes PROPOSAL
Maria MarrierUnited KingdomStephen Shaw UNQUALIFIED
Maisha RulapaughCanadaStephen Shaw UNQUALIFIED
Octavia MaletJapanIoni Bowcher PROPOSAL
Juan WieserJapanAnna Fali RENEWAL
Clifford RimCanadaBernardo Dominic PROPOSAL
Julie StensethJapanAmy Elsner NEGOTIATION
Leja CaldareraUnited KingdomIoni Bowcher PROPOSAL
Ashley DoeAustraliaAnna Fali RENEWAL
Octavia MaletGermanyStephen Shaw QUALIFIED
Octavia MaletFranceBernardo Dominic NEGOTIATION
Mayumi KolmetzSpainIoni Bowcher NEW
Murillo MaletCanadaIoni Bowcher PROPOSAL
Isabel BowleyJapanXuxue Feng NEGOTIATION
Sinclair WaycottArgentinaAmy Elsner PROPOSAL
Ashley DoeUnited KingdomAsiya Javayant PROPOSAL
Greenwood BologniaCanadaIvan Magalhaes NEW
Kadeem FlosiAustraliaElwin Sharvill UNQUALIFIED
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Maisha RulapaughJapanOnyama Limba RENEWAL
Arvin AlbaresArgentinaOnyama Limba RENEWAL
Smith GlickIndiaIoni Bowcher UNQUALIFIED
Murillo MaletBrazilBernardo Dominic PROPOSAL
Izzy GarufiBrazilStephen Shaw UNQUALIFIED
David DarakjyCanadaAsiya Javayant NEGOTIATION
Silvio SlusarskiItalyElwin Sharvill RENEWAL
Isabel BowleyCanadaAsiya Javayant NEGOTIATION
Aika InouyeItalyStephen Shaw PROPOSAL
Mayumi KolmetzBrazilIoni Bowcher RENEWAL
Emily WhobreyIndiaElwin Sharvill NEW
Greenwood BologniaItalyAsiya Javayant PROPOSAL
Morrow RutaBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Octavia MaletCanadaAmy Elsner QUALIFIED
Clifford RimSpainAmy Elsner QUALIFIED
Johnson SergiRussiaIoni Bowcher NEW
Antonio CaudySpainIvan Magalhaes NEGOTIATION
Kaitlin OstroskyUnited KingdomStephen Shaw PROPOSAL
Francesco ShinkoUnited KingdomOnyama Limba RENEWAL
Kaitlin OstroskyFranceElwin Sharvill NEW
Darci PoquetteSpainElwin Sharvill UNQUALIFIED
David DarakjyBrazilIvan Magalhaes RENEWAL
Wickens NestleFranceOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeUnited Kingdom2026-05-28Printing Dimensions RENEWAL82Bernardo Dominic
1001Octavia MaletGermany2026-05-15Printing Dimensions RENEWAL85Asiya Javayant
1002James ButtIndia2026-05-25Benton, John B Jr UNQUALIFIED14Bernardo Dominic
1003Ivar PaprockiBrazil2026-05-22Dorl, James J Esq QUALIFIED2Bernardo Dominic
1004Sinclair WaycottJapan2026-06-06Rangoni Of Florence QUALIFIED97Bernardo Dominic
1005Misaki RoysterFrance2026-05-18Chapman, Ross E Esq UNQUALIFIED75Bernardo Dominic
1006Darci PoquetteItaly2026-05-09Rangoni Of Florence NEW71Bernardo Dominic
1007Aruna FigeroaGermany2026-05-20Dorl, James J Esq RENEWAL91Asiya Javayant
1008Maisha RulapaughIndia2026-05-08Feltz Printing Service QUALIFIED14Ioni Bowcher
1009Jones VocelkaCanada2026-05-18Morlong Associates QUALIFIED28Bernardo Dominic
1010Ivar PaprockiUnited Kingdom2026-06-03Dorl, James J Esq NEW63Anna Fali
1011Aditya KuskoGermany2026-05-22Chapman, Ross E Esq QUALIFIED34Anna Fali
1012Misaki RoysterIndia2026-06-04King, Christopher A Esq UNQUALIFIED72Stephen Shaw
1013Darci PoquetteBrazil2026-05-17Commercial Press NEW47Xuxue Feng
1014Silvio SlusarskiUnited Kingdom2026-06-06Morlong Associates QUALIFIED61Anna Fali
1015Rodrigues CampainCanada2026-05-31Chemel, James L Cpa UNQUALIFIED86Anna Fali
1016David DarakjyArgentina2026-05-28Buckley Miller Wright QUALIFIED90Amy Elsner
1017Ricardo GauchoGermany2026-05-09King, Christopher A Esq UNQUALIFIED50Stephen Shaw
1018Antonio CaudyGermany2026-05-29Rangoni Of Florence NEGOTIATION11Amy Elsner
1019Deepesh ChuiFrance2026-06-04Feiner Bros NEGOTIATION2Bernardo Dominic
1020Leon OldroydFrance2026-05-31Commercial Press UNQUALIFIED19Onyama Limba
1021Faith GillianSpain2026-06-01Chapman, Ross E Esq RENEWAL27Bernardo Dominic
1022Jennifer AmigonFrance2026-05-08Dorl, James J Esq NEGOTIATION1Ivan Magalhaes
1023Chavez BriddickArgentina2026-05-13Morlong Associates UNQUALIFIED4Onyama Limba
1024Aika InouyeRussia2026-05-10Chanay, Jeffrey A Esq QUALIFIED55Onyama Limba
1025Wickens NestleArgentina2026-05-18Benton, John B Jr UNQUALIFIED17Onyama Limba
1026Deepesh ChuiSpain2026-06-01Rangoni Of Florence PROPOSAL89Amy Elsner
1027Aditya KuskoBrazil2026-06-03Rousseaux, Michael Esq UNQUALIFIED60Xuxue Feng
1028James ButtJapan2026-06-02Feltz Printing Service UNQUALIFIED16Anna Fali
1029Tony FollerIndia2026-05-21Feiner Bros PROPOSAL53Asiya Javayant
1030Clifford RimRussia2026-05-25Dorl, James J Esq QUALIFIED84Stephen Shaw
1031Adams MorascaCanada2026-05-30King, Christopher A Esq RENEWAL22Bernardo Dominic
1032Jeanfrancois VenereItaly2026-06-01Printing Dimensions NEW86Ioni Bowcher
1033Salvatore StockhamSpain2026-05-23Printing Dimensions PROPOSAL99Elwin Sharvill
1034Emily WhobreyAustralia2026-05-30Morlong Associates NEGOTIATION63Anna Fali
1035Sinclair WaycottUnited Kingdom2026-06-06Rousseaux, Michael Esq NEW76Amy Elsner
1036Ivar PaprockiItaly2026-05-30Chemel, James L Cpa NEW27Amy Elsner
1037Mujtaba NickaIndia2026-05-27Chanay, Jeffrey A Esq PROPOSAL39Onyama Limba
1038Jefferson SchemmerFrance2026-06-03Printing Dimensions QUALIFIED10Bernardo Dominic
1039Munro FerenczCanada2026-05-31Printing Dimensions QUALIFIED73Anna Fali
1040Aditya KuskoUnited Kingdom2026-05-15Dorl, James J Esq PROPOSAL80Amy Elsner
1041Cody SaylorsFrance2026-06-03Benton, John B Jr QUALIFIED29Xuxue Feng
1042Jones VocelkaJapan2026-05-14King, Christopher A Esq NEGOTIATION1Xuxue Feng
1043Munro FerenczAustralia2026-05-31Truhlar And Truhlar Attys RENEWAL21Xuxue Feng
1044Kaitlin OstroskyAustralia2026-05-21Commercial Press RENEWAL39Bernardo Dominic
1045Izzy GarufiItaly2026-05-30Feiner Bros UNQUALIFIED79Amy Elsner
1046Jeanfrancois VenereCanada2026-06-05Chanay, Jeffrey A Esq UNQUALIFIED83Bernardo Dominic
1047Jeanfrancois VenereFrance2026-06-01Buckley Miller Wright UNQUALIFIED55Asiya Javayant
1048Aruna FigeroaItaly2026-05-22King, Christopher A Esq NEW86Ioni Bowcher
1049Stacey MacleadArgentina2026-05-26Feltz Printing Service QUALIFIED97Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiBrazilAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomElwin Sharvill PROPOSAL
Rodrigues CampainBrazilIvan Magalhaes NEW
Emily WhobreyCanadaAnna Fali NEGOTIATION
Adams MorascaSpainAsiya Javayant PROPOSAL
Darci PoquetteFranceElwin Sharvill UNQUALIFIED
Salvatore StockhamIndiaXuxue Feng UNQUALIFIED
Salvatore StockhamUnited KingdomIoni Bowcher RENEWAL
Mayumi KolmetzCanadaIoni Bowcher NEGOTIATION
David DarakjyFranceAsiya Javayant UNQUALIFIED
Murillo MaletGermanyIoni Bowcher QUALIFIED
Rodrigues CampainCanadaAmy Elsner NEW
Juan WieserRussiaOnyama Limba NEGOTIATION
Ricardo GauchoArgentinaElwin Sharvill PROPOSAL
Emily WhobreyJapanElwin Sharvill NEW
Antonio CaudyItalyIoni Bowcher QUALIFIED
Aika InouyeCanadaStephen Shaw QUALIFIED
Silvio SlusarskiCanadaXuxue Feng QUALIFIED
Maisha RulapaughAustraliaAsiya Javayant NEGOTIATION
Mayumi KolmetzItalyAsiya Javayant RENEWAL
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Sinclair WaycottRussiaAsiya Javayant NEW
Tony FollerFranceStephen Shaw NEW
Aika InouyeJapanBernardo Dominic PROPOSAL
Murillo MaletSpainXuxue Feng RENEWAL
Maisha RulapaughFranceAsiya Javayant RENEWAL
Clifford RimCanadaAsiya Javayant QUALIFIED
Costa DilliardSpainOnyama Limba NEW
Chavez BriddickFranceAnna Fali UNQUALIFIED
Julie StensethArgentinaIvan Magalhaes PROPOSAL
Munro FerenczBrazilXuxue Feng UNQUALIFIED
James ButtGermanyAnna Fali RENEWAL
James ButtUnited KingdomElwin Sharvill NEW
Kadeem FlosiItalyOnyama Limba NEW
Nicolas IturbideArgentinaElwin Sharvill PROPOSAL
Izzy GarufiCanadaAnna Fali PROPOSAL
Alejandro PerinAustraliaIoni Bowcher QUALIFIED
Aruna FigeroaFranceAsiya Javayant NEGOTIATION
Aruna FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Nicolas IturbideRussiaIoni Bowcher QUALIFIED
Adams MorascaSpainBernardo Dominic RENEWAL
Arvin AlbaresFranceXuxue Feng RENEWAL
Salvatore StockhamItalyAnna Fali NEW
Clifford RimBrazilOnyama Limba QUALIFIED
Stacey MacleadIndiaIoni Bowcher PROPOSAL
Mayumi KolmetzJapanOnyama Limba QUALIFIED
Mujtaba NickaSpainOnyama Limba UNQUALIFIED
Aditya KuskoJapanAnna Fali NEGOTIATION
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Wickens NestleBrazilIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Deepesh Chui
Faith Gillian
Cody Saylors
Sinclair Waycott
Jones Vocelka
Wickens Nestle
Darci Poquette
David Darakjy
Morrow Ruta
Kadeem Flosi
Tony Foller
Murillo Malet
Nicolas Iturbide
Morrow Ruta
Murillo Malet
Misaki Royster
Ashley Doe
Wickens Nestle
Munro Ferencz
Clifford Rim
Stacey Maclead
Mujtaba Nicka
Greenwood Bolognia
Clifford Rim
Leja Caldarera
Wickens Nestle
Munro Ferencz
David Darakjy
Antonio Caudy
Antonio Caudy
Isabel Bowley
Juan Wieser
Salvatore Stockham
Alejandro Perin
Jones Vocelka
Misaki Royster
Arvin Albares
Ashley Doe
Jeanfrancois Venere
Wickens Nestle
Kadeem Flosi
Deepesh Chui
Salvatore Stockham
Clifford Rim
Aika Inouye
Emily Whobrey
Clifford Rim
Maria Marrier
Kaitlin Ostrosky
Smith Glick
IdCountryDate
1000India2026-05-23
1001India2026-05-09
1002Germany2026-05-27
1003India2026-05-20
1004Argentina2026-05-19
1005Russia2026-05-27
1006India2026-05-27
1007Spain2026-05-16
1008Brazil2026-06-03
1009Russia2026-05-10
1010Italy2026-06-01
1011Spain2026-06-03
1012Russia2026-05-11
1013Australia2026-05-20
1014Spain2026-05-13
1015Spain2026-05-20
1016Japan2026-05-10
1017United Kingdom2026-05-20
1018France2026-05-22
1019Italy2026-05-15
1020India2026-05-15
1021Canada2026-06-03
1022Brazil2026-05-10
1023India2026-06-01
1024Australia2026-05-10
1025Spain2026-05-25
1026Brazil2026-05-20
1027France2026-05-14
1028Argentina2026-06-01
1029Brazil2026-05-20
1030Spain2026-05-18
1031Spain2026-05-15
1032France2026-05-24
1033Argentina2026-06-06
1034Canada2026-05-11
1035France2026-05-09
1036Germany2026-05-21
1037Argentina2026-05-26
1038Russia2026-05-13
1039India2026-05-29
1040Russia2026-05-30
1041India2026-05-26
1042Spain2026-06-03
1043Spain2026-05-15
1044Brazil2026-05-23
1045Argentina2026-05-21
1046Australia2026-05-09
1047Japan2026-05-20
1048India2026-05-23
1049Canada2026-05-31

On-Demand Data

NameIdCountryDate
Mayumi Kolmetz1000Argentina2026-05-17
Octavia Malet1001Canada2026-06-02
Kadeem Flosi1002Argentina2026-05-09
Arvin Albares1003Russia2026-05-23
David Darakjy1004Germany2026-05-12
Chavez Briddick1005Brazil2026-05-30
Jefferson Schemmer1006Japan2026-05-30
Octavia Malet1007Brazil2026-06-06
David Darakjy1008United Kingdom2026-05-19
Munro Ferencz1009United Kingdom2026-05-30
Darci Poquette1010Australia2026-05-31
Maisha Rulapaugh1011United Kingdom2026-06-04
David Darakjy1012France2026-06-04
Mayumi Kolmetz1013Canada2026-05-25
Morrow Ruta1014Russia2026-05-09
Isabel Bowley1015Germany2026-05-12
Adams Morasca1016Russia2026-05-10
Aika Inouye1017Canada2026-05-08
Emily Whobrey1018India2026-05-19
Juan Wieser1019Brazil2026-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoIndiaIvan Magalhaes NEW
Smith GlickIndiaAnna Fali NEW
Ivar PaprockiArgentinaAnna Fali UNQUALIFIED
Aruna FigeroaIndiaOnyama Limba NEW
Jones VocelkaBrazilAnna Fali NEGOTIATION
Johnson SergiCanadaAmy Elsner NEW
Adams MorascaAustraliaIoni Bowcher UNQUALIFIED
Maisha RulapaughJapanIoni Bowcher UNQUALIFIED
Stacey MacleadSpainAmy Elsner PROPOSAL
Sinclair WaycottIndiaXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaIoni Bowcher UNQUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant QUALIFIED
Aruna FigeroaFranceAmy Elsner NEW
Cody SaylorsAustraliaStephen Shaw RENEWAL
Izzy GarufiRussiaBernardo Dominic NEW
Juan WieserCanadaStephen Shaw PROPOSAL
Wickens NestleFranceAsiya Javayant RENEWAL
Francesco ShinkoFranceStephen Shaw PROPOSAL
Kaitlin OstroskyFranceElwin Sharvill QUALIFIED
Claire TollnerGermanyElwin Sharvill UNQUALIFIED
Mayumi KolmetzJapanXuxue Feng NEW
Murillo MaletSpainAmy Elsner QUALIFIED
David DarakjyBrazilIoni Bowcher UNQUALIFIED
Adams MorascaUnited KingdomAsiya Javayant PROPOSAL
Ricardo GauchoArgentinaXuxue Feng QUALIFIED
Johnson SergiJapanStephen Shaw PROPOSAL
Leja CaldareraArgentinaStephen Shaw PROPOSAL
Aika InouyeJapanAsiya Javayant NEGOTIATION
Juan WieserRussiaAnna Fali QUALIFIED
Leja CaldareraGermanyAnna Fali UNQUALIFIED
Ivar PaprockiSpainBernardo Dominic NEW
Maria MarrierFranceIoni Bowcher PROPOSAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Maria MarrierIndiaAsiya Javayant UNQUALIFIED
Isabel BowleyCanadaXuxue Feng UNQUALIFIED
Juan WieserItalyIoni Bowcher NEGOTIATION
Francesco ShinkoRussiaXuxue Feng PROPOSAL
Jones VocelkaJapanIoni Bowcher RENEWAL
Maisha RulapaughFranceIvan Magalhaes NEW
Aruna FigeroaGermanyOnyama Limba NEGOTIATION

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