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
Octavia MaletCanadaAnna Fali UNQUALIFIED
Faith GillianItalyBernardo Dominic QUALIFIED
Mujtaba NickaJapanBernardo Dominic RENEWAL
Octavia MaletSpainAmy Elsner QUALIFIED
Salvatore StockhamCanadaIoni Bowcher QUALIFIED
Chavez BriddickIndiaAnna Fali RENEWAL
Ivar PaprockiBrazilXuxue Feng NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw PROPOSAL
Arvin AlbaresArgentinaOnyama Limba QUALIFIED
Izzy GarufiBrazilBernardo Dominic RENEWAL
Mujtaba NickaAustraliaElwin Sharvill RENEWAL
Misaki RoysterUnited KingdomStephen Shaw NEGOTIATION
Salvatore StockhamUnited KingdomBernardo Dominic NEGOTIATION
Greenwood BologniaRussiaXuxue Feng UNQUALIFIED
Murillo MaletArgentinaXuxue Feng RENEWAL
Arvin AlbaresItalyStephen Shaw PROPOSAL
Alejandro PerinFranceAmy Elsner QUALIFIED
Leja CaldareraBrazilAmy Elsner RENEWAL
Claire TollnerBrazilIvan Magalhaes NEGOTIATION
Francesco ShinkoCanadaAnna Fali QUALIFIED
David DarakjyJapanBernardo Dominic QUALIFIED
Jones VocelkaUnited KingdomIvan Magalhaes RENEWAL
James ButtIndiaAsiya Javayant NEGOTIATION
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Silvio SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Alejandro PerinUnited KingdomAmy Elsner PROPOSAL
Chavez BriddickGermanyIvan Magalhaes NEGOTIATION
Murillo MaletFranceXuxue Feng UNQUALIFIED
Adams MorascaJapanOnyama Limba QUALIFIED
Emily WhobreyBrazilStephen Shaw UNQUALIFIED
Ricardo GauchoSpainAsiya Javayant NEW
Nicolas IturbideRussiaBernardo Dominic UNQUALIFIED
Alejandro PerinItalyOnyama Limba RENEWAL
James ButtItalyOnyama Limba NEW
Juan WieserBrazilElwin Sharvill PROPOSAL
Jones VocelkaJapanAsiya Javayant RENEWAL
Misaki RoysterRussiaElwin Sharvill QUALIFIED
Mujtaba NickaBrazilBernardo Dominic QUALIFIED
Ricardo GauchoItalyAmy Elsner UNQUALIFIED
Johnson SergiFranceIoni Bowcher QUALIFIED
Misaki RoysterArgentinaOnyama Limba NEGOTIATION
Julie StensethArgentinaAsiya Javayant QUALIFIED
Smith GlickRussiaStephen Shaw RENEWAL
Nicolas IturbideItalyElwin Sharvill PROPOSAL
Ricardo GauchoRussiaIoni Bowcher NEGOTIATION
Aditya KuskoGermanyIoni Bowcher NEW
Julie StensethArgentinaAmy Elsner PROPOSAL
Salvatore StockhamFranceStephen Shaw QUALIFIED
Jennifer AmigonRussiaBernardo Dominic QUALIFIED
Leon OldroydFranceStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford RimAustraliaElwin Sharvill QUALIFIED
Isabel BowleyAustraliaIoni Bowcher NEW
Jeanfrancois VenereSpainIvan Magalhaes QUALIFIED
Aditya KuskoSpainStephen Shaw PROPOSAL
Faith GillianIndiaIvan Magalhaes NEGOTIATION
Nicolas IturbideRussiaStephen Shaw QUALIFIED
Costa DilliardUnited KingdomStephen Shaw UNQUALIFIED
Jennifer AmigonCanadaBernardo Dominic PROPOSAL
Kaitlin OstroskyJapanOnyama Limba QUALIFIED
Julie StensethBrazilElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterItaly2026-05-01Truhlar And Truhlar Attys NEW65Asiya Javayant
1001Izzy GarufiArgentina2026-04-29Chanay, Jeffrey A Esq NEW73Stephen Shaw
1002Jeanfrancois VenereJapan2026-05-02Feiner Bros NEW13Onyama Limba
1003Faith GillianSpain2026-05-08Printing Dimensions NEGOTIATION55Bernardo Dominic
1004Leon OldroydRussia2026-05-01Feiner Bros QUALIFIED12Stephen Shaw
1005Jones VocelkaRussia2026-05-05Printing Dimensions NEGOTIATION68Onyama Limba
1006Maisha RulapaughArgentina2026-05-08Commercial Press NEW14Anna Fali
1007Munro FerenczArgentina2026-04-25Chapman, Ross E Esq NEW21Anna Fali
1008Tony FollerIndia2026-04-26Chanay, Jeffrey A Esq PROPOSAL72Stephen Shaw
1009Nicolas IturbideGermany2026-04-27Morlong Associates NEW34Xuxue Feng
1010James ButtUnited Kingdom2026-05-10Feltz Printing Service QUALIFIED26Asiya Javayant
1011Leja CaldareraBrazil2026-04-29Chemel, James L Cpa QUALIFIED54Elwin Sharvill
1012James ButtIndia2026-05-06Morlong Associates PROPOSAL35Elwin Sharvill
1013Maria MarrierJapan2026-04-20Printing Dimensions PROPOSAL86Stephen Shaw
1014Francesco ShinkoFrance2026-04-24Rousseaux, Michael Esq NEW17Onyama Limba
1015Sinclair WaycottItaly2026-04-20Morlong Associates QUALIFIED70Anna Fali
1016Mujtaba NickaUnited Kingdom2026-05-07Dorl, James J Esq QUALIFIED8Xuxue Feng
1017Wickens NestleCanada2026-04-27Dorl, James J Esq QUALIFIED46Ioni Bowcher
1018Misaki RoysterRussia2026-04-25Printing Dimensions NEW26Bernardo Dominic
1019Aika InouyeIndia2026-04-15Truhlar And Truhlar Attys QUALIFIED53Elwin Sharvill
1020Chavez BriddickAustralia2026-04-30Dorl, James J Esq NEW84Bernardo Dominic
1021Francesco ShinkoUnited Kingdom2026-04-18Chanay, Jeffrey A Esq NEW26Ioni Bowcher
1022Munro FerenczJapan2026-05-05Feiner Bros UNQUALIFIED81Stephen Shaw
1023Isabel BowleyRussia2026-05-09Benton, John B Jr NEGOTIATION18Ivan Magalhaes
1024Aditya KuskoItaly2026-05-08Truhlar And Truhlar Attys RENEWAL8Asiya Javayant
1025Johnson SergiItaly2026-05-04Truhlar And Truhlar Attys UNQUALIFIED66Onyama Limba
1026Aika InouyeRussia2026-04-17Benton, John B Jr PROPOSAL36Asiya Javayant
1027Greenwood BologniaRussia2026-04-26Morlong Associates PROPOSAL44Asiya Javayant
1028Kaitlin OstroskyUnited Kingdom2026-04-19King, Christopher A Esq UNQUALIFIED11Bernardo Dominic
1029Faith GillianItaly2026-04-30Dorl, James J Esq QUALIFIED74Xuxue Feng
1030Nicolas IturbideUnited Kingdom2026-05-04Commercial Press NEGOTIATION62Elwin Sharvill
1031Jones VocelkaArgentina2026-04-21Chanay, Jeffrey A Esq PROPOSAL19Ivan Magalhaes
1032Mayumi KolmetzCanada2026-04-29Chemel, James L Cpa NEGOTIATION48Asiya Javayant
1033Jeanfrancois VenereArgentina2026-05-09Rangoni Of Florence NEW61Xuxue Feng
1034Isabel BowleyIndia2026-05-06Commercial Press NEW55Asiya Javayant
1035Faith GillianArgentina2026-05-13Chapman, Ross E Esq RENEWAL61Ivan Magalhaes
1036Maisha RulapaughSpain2026-04-19Morlong Associates NEGOTIATION21Asiya Javayant
1037Rodrigues CampainArgentina2026-04-21Feltz Printing Service PROPOSAL98Ioni Bowcher
1038Costa DilliardArgentina2026-05-12Buckley Miller Wright NEGOTIATION42Xuxue Feng
1039Kaitlin OstroskyCanada2026-05-05Commercial Press QUALIFIED42Ioni Bowcher
1040Octavia MaletRussia2026-04-15Morlong Associates NEGOTIATION52Elwin Sharvill
1041Maisha RulapaughRussia2026-04-25Benton, John B Jr UNQUALIFIED79Asiya Javayant
1042Deepesh ChuiRussia2026-05-08Feiner Bros UNQUALIFIED51Amy Elsner
1043Isabel BowleyAustralia2026-04-26Chapman, Ross E Esq NEW23Ioni Bowcher
1044Juan WieserFrance2026-04-19Feiner Bros UNQUALIFIED76Amy Elsner
1045Costa DilliardSpain2026-05-02Feltz Printing Service NEW10Asiya Javayant
1046Tony FollerJapan2026-05-05Morlong Associates RENEWAL57Amy Elsner
1047Smith GlickJapan2026-04-27Rousseaux, Michael Esq PROPOSAL2Asiya Javayant
1048Aruna FigeroaIndia2026-04-24Commercial Press RENEWAL94Onyama Limba
1049Cody SaylorsGermany2026-05-13Printing Dimensions NEW95Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaIvan Magalhaes NEW
Cody SaylorsBrazilAsiya Javayant PROPOSAL
Leon OldroydAustraliaAsiya Javayant PROPOSAL
Adams MorascaSpainStephen Shaw NEW
Jefferson SchemmerBrazilOnyama Limba UNQUALIFIED
Clifford RimSpainAsiya Javayant NEW
Maria MarrierItalyXuxue Feng RENEWAL
Octavia MaletFranceStephen Shaw PROPOSAL
Ricardo GauchoBrazilIvan Magalhaes NEGOTIATION
Murillo MaletJapanXuxue Feng QUALIFIED
Maria MarrierArgentinaStephen Shaw QUALIFIED
Ivar PaprockiBrazilXuxue Feng UNQUALIFIED
Cody SaylorsBrazilIoni Bowcher UNQUALIFIED
Francesco ShinkoIndiaStephen Shaw QUALIFIED
Claire TollnerArgentinaAmy Elsner PROPOSAL
Faith GillianJapanStephen Shaw UNQUALIFIED
Silvio SlusarskiSpainBernardo Dominic NEW
Silvio SlusarskiJapanIoni Bowcher NEW
Claire TollnerRussiaStephen Shaw NEGOTIATION
Faith GillianJapanXuxue Feng NEGOTIATION
Morrow RutaCanadaStephen Shaw NEW
Kadeem FlosiArgentinaStephen Shaw NEW
Costa DilliardAustraliaXuxue Feng QUALIFIED
Mujtaba NickaCanadaElwin Sharvill PROPOSAL
Aditya KuskoAustraliaAsiya Javayant PROPOSAL
Smith GlickIndiaIoni Bowcher PROPOSAL
Jennifer AmigonCanadaXuxue Feng NEW
Nicolas IturbideItalyAnna Fali PROPOSAL
Jennifer AmigonAustraliaOnyama Limba RENEWAL
Octavia MaletArgentinaElwin Sharvill NEGOTIATION
Ivar PaprockiFranceIvan Magalhaes PROPOSAL
Aruna FigeroaAustraliaElwin Sharvill UNQUALIFIED
Ashley DoeBrazilXuxue Feng RENEWAL
Francesco ShinkoFranceIvan Magalhaes QUALIFIED
Claire TollnerBrazilAmy Elsner NEW
Mujtaba NickaJapanAnna Fali NEW
Julie StensethGermanyAmy Elsner NEGOTIATION
Nicolas IturbideUnited KingdomBernardo Dominic PROPOSAL
Munro FerenczUnited KingdomIoni Bowcher PROPOSAL
Rodrigues CampainJapanOnyama Limba PROPOSAL
Aika InouyeArgentinaIoni Bowcher RENEWAL
Maria MarrierCanadaAmy Elsner NEW
Mayumi KolmetzItalyOnyama Limba UNQUALIFIED
Aika InouyeFranceAnna Fali PROPOSAL
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Isabel BowleyRussiaAsiya Javayant NEGOTIATION
Deepesh ChuiItalyStephen Shaw RENEWAL
Murillo MaletSpainIoni Bowcher PROPOSAL
Jones VocelkaJapanIvan Magalhaes NEW
James ButtAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
Claire Tollner
Izzy Garufi
Deepesh Chui
Silvio Slusarski
Mujtaba Nicka
Claire Tollner
Francesco Shinko
Murillo Malet
Smith Glick
Aditya Kusko
Faith Gillian
Leon Oldroyd
Costa Dilliard
Stacey Maclead
Kadeem Flosi
Deepesh Chui
Stacey Maclead
Kaitlin Ostrosky
Salvatore Stockham
Claire Tollner
Isabel Bowley
Clifford Rim
Maisha Rulapaugh
Faith Gillian
Jefferson Schemmer
Kadeem Flosi
Ashley Doe
Isabel Bowley
Julie Stenseth
Aditya Kusko
Silvio Slusarski
Kaitlin Ostrosky
Stacey Maclead
Johnson Sergi
Darci Poquette
Aika Inouye
Jefferson Schemmer
Rodrigues Campain
Nicolas Iturbide
Francesco Shinko
Antonio Caudy
Silvio Slusarski
Aruna Figeroa
Jefferson Schemmer
Cody Saylors
Cody Saylors
Francesco Shinko
Juan Wieser
Julie Stenseth
Munro Ferencz
IdCountryDate
1000France2026-04-23
1001United Kingdom2026-04-26
1002Japan2026-05-11
1003Japan2026-04-29
1004Canada2026-04-18
1005United Kingdom2026-04-28
1006Canada2026-04-29
1007Germany2026-05-14
1008Brazil2026-04-28
1009Italy2026-04-20
1010Italy2026-05-02
1011Japan2026-05-06
1012Brazil2026-05-09
1013United Kingdom2026-04-15
1014India2026-05-11
1015Argentina2026-04-26
1016Japan2026-04-24
1017Australia2026-04-22
1018France2026-04-27
1019Germany2026-04-25
1020Spain2026-04-22
1021Italy2026-04-21
1022Canada2026-05-03
1023Brazil2026-04-16
1024Spain2026-05-13
1025India2026-05-03
1026Spain2026-05-12
1027United Kingdom2026-05-14
1028Russia2026-05-11
1029Canada2026-05-12
1030Germany2026-05-02
1031Argentina2026-04-23
1032Argentina2026-05-11
1033Spain2026-04-26
1034India2026-04-25
1035Germany2026-04-21
1036Argentina2026-05-05
1037Spain2026-05-04
1038India2026-04-17
1039India2026-04-17
1040Brazil2026-05-01
1041Canada2026-04-22
1042France2026-04-29
1043France2026-05-04
1044Canada2026-04-19
1045Canada2026-04-21
1046Argentina2026-05-14
1047Argentina2026-04-24
1048Argentina2026-04-18
1049Brazil2026-05-03

On-Demand Data

NameIdCountryDate
Rodrigues Campain1000Russia2026-05-05
Aruna Figeroa1001France2026-05-05
Isabel Bowley1002Spain2026-05-10
Chavez Briddick1003United Kingdom2026-05-07
David Darakjy1004Russia2026-05-13
Tony Foller1005Italy2026-05-11
Munro Ferencz1006Russia2026-04-22
Costa Dilliard1007Australia2026-04-27
Antonio Caudy1008Australia2026-04-18
Juan Wieser1009Argentina2026-04-20
Salvatore Stockham1010Spain2026-05-06
Misaki Royster1011Spain2026-05-12
Izzy Garufi1012Germany2026-05-12
Alejandro Perin1013Australia2026-05-07
Cody Saylors1014France2026-05-01
Clifford Rim1015Germany2026-04-25
Cody Saylors1016Argentina2026-05-12
Darci Poquette1017Spain2026-04-30
Munro Ferencz1018France2026-05-14
Rodrigues Campain1019Argentina2026-05-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiBrazilIoni Bowcher UNQUALIFIED
Sinclair WaycottAustraliaAsiya Javayant PROPOSAL
Izzy GarufiGermanyElwin Sharvill PROPOSAL
Jefferson SchemmerArgentinaAmy Elsner NEGOTIATION
Murillo MaletCanadaStephen Shaw NEW
Mayumi KolmetzCanadaXuxue Feng QUALIFIED
Ashley DoeSpainAmy Elsner QUALIFIED
Mujtaba NickaSpainIvan Magalhaes NEGOTIATION
Tony FollerArgentinaXuxue Feng RENEWAL
Deepesh ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues CampainBrazilStephen Shaw PROPOSAL
Morrow RutaFranceAnna Fali RENEWAL
Tony FollerItalyXuxue Feng QUALIFIED
Murillo MaletBrazilIoni Bowcher NEW
Misaki RoysterRussiaIoni Bowcher PROPOSAL
Silvio SlusarskiArgentinaXuxue Feng UNQUALIFIED
Munro FerenczFranceAmy Elsner QUALIFIED
Maria MarrierJapanElwin Sharvill RENEWAL
Jennifer AmigonRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamIndiaOnyama Limba PROPOSAL
Morrow RutaUnited KingdomIvan Magalhaes NEW
Kadeem FlosiRussiaIvan Magalhaes QUALIFIED
Jones VocelkaSpainBernardo Dominic NEW
Wickens NestleAustraliaAsiya Javayant RENEWAL
Silvio SlusarskiIndiaOnyama Limba RENEWAL
Isabel BowleySpainStephen Shaw NEGOTIATION
Morrow RutaUnited KingdomElwin Sharvill NEW
Emily WhobreyFranceXuxue Feng QUALIFIED
Aditya KuskoFranceIoni Bowcher NEGOTIATION
Emily WhobreyFranceAnna Fali RENEWAL
Isabel BowleySpainXuxue Feng NEGOTIATION
Clifford RimIndiaStephen Shaw RENEWAL
Deepesh ChuiItalyAsiya Javayant PROPOSAL
Kaitlin OstroskyArgentinaElwin Sharvill UNQUALIFIED
Isabel BowleyFranceBernardo Dominic UNQUALIFIED
Alejandro PerinGermanyXuxue Feng PROPOSAL
Clifford RimRussiaOnyama Limba UNQUALIFIED
Emily WhobreyCanadaAmy Elsner PROPOSAL
Jefferson SchemmerBrazilBernardo Dominic UNQUALIFIED
Antonio CaudyBrazilOnyama Limba PROPOSAL

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