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
Morrow RutaArgentinaOnyama Limba PROPOSAL
Mujtaba NickaArgentinaXuxue Feng QUALIFIED
Faith GillianJapanOnyama Limba UNQUALIFIED
Kaitlin OstroskyFranceAmy Elsner NEGOTIATION
Morrow RutaUnited KingdomIvan Magalhaes NEGOTIATION
Claire TollnerArgentinaElwin Sharvill QUALIFIED
James ButtBrazilAsiya Javayant PROPOSAL
Morrow RutaCanadaStephen Shaw NEGOTIATION
Wickens NestleRussiaIoni Bowcher PROPOSAL
Greenwood BologniaUnited KingdomXuxue Feng NEGOTIATION
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Aditya KuskoIndiaIoni Bowcher QUALIFIED
Claire TollnerIndiaAsiya Javayant NEGOTIATION
Clifford RimSpainIoni Bowcher NEW
Claire TollnerAustraliaElwin Sharvill NEGOTIATION
Antonio CaudyUnited KingdomElwin Sharvill NEW
Octavia MaletFranceIvan Magalhaes QUALIFIED
Ricardo GauchoBrazilBernardo Dominic NEW
Cody SaylorsArgentinaIoni Bowcher UNQUALIFIED
Claire TollnerFranceBernardo Dominic RENEWAL
Leon OldroydSpainAmy Elsner UNQUALIFIED
Juan WieserAustraliaAmy Elsner PROPOSAL
Juan WieserItalyIoni Bowcher NEW
Deepesh ChuiAustraliaIvan Magalhaes NEGOTIATION
Jennifer AmigonGermanyStephen Shaw UNQUALIFIED
Maisha RulapaughSpainElwin Sharvill NEGOTIATION
Isabel BowleyAustraliaElwin Sharvill QUALIFIED
Leon OldroydAustraliaIoni Bowcher NEGOTIATION
Octavia MaletGermanyAmy Elsner UNQUALIFIED
Morrow RutaFranceStephen Shaw PROPOSAL
Murillo MaletBrazilElwin Sharvill NEW
Johnson SergiRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaIndiaAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomAsiya Javayant PROPOSAL
Clifford RimItalyStephen Shaw PROPOSAL
Emily WhobreyBrazilAsiya Javayant PROPOSAL
Smith GlickFranceXuxue Feng NEW
Costa DilliardBrazilIoni Bowcher PROPOSAL
Adams MorascaUnited KingdomOnyama Limba QUALIFIED
Rodrigues CampainBrazilOnyama Limba PROPOSAL
James ButtGermanyIvan Magalhaes QUALIFIED
Mayumi KolmetzItalyAmy Elsner PROPOSAL
Adams MorascaBrazilAsiya Javayant RENEWAL
Jennifer AmigonFranceStephen Shaw UNQUALIFIED
Octavia MaletArgentinaStephen Shaw PROPOSAL
Darci PoquetteArgentinaXuxue Feng NEGOTIATION
David DarakjySpainStephen Shaw NEW
Smith GlickAustraliaElwin Sharvill PROPOSAL
Darci PoquetteBrazilAsiya Javayant RENEWAL
Jones VocelkaUnited KingdomAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Murillo MaletSpainStephen Shaw NEGOTIATION
Greenwood BologniaArgentinaIoni Bowcher QUALIFIED
Leja CaldareraFranceIvan Magalhaes PROPOSAL
Johnson SergiFranceOnyama Limba QUALIFIED
Misaki RoysterBrazilAmy Elsner NEW
Claire TollnerUnited KingdomElwin Sharvill PROPOSAL
Morrow RutaJapanBernardo Dominic RENEWAL
Costa DilliardFranceElwin Sharvill NEGOTIATION
Ivar PaprockiRussiaIvan Magalhaes UNQUALIFIED
Maisha RulapaughFranceOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaRussia2026-04-11Printing Dimensions NEGOTIATION16Amy Elsner
1001Claire TollnerItaly2026-03-28Commercial Press NEGOTIATION92Amy Elsner
1002Jeanfrancois VenereBrazil2026-04-12Feltz Printing Service NEGOTIATION78Bernardo Dominic
1003Izzy GarufiBrazil2026-04-17Morlong Associates PROPOSAL50Asiya Javayant
1004Wickens NestleGermany2026-03-21Rousseaux, Michael Esq NEGOTIATION98Anna Fali
1005Darci PoquetteRussia2026-03-22Chanay, Jeffrey A Esq UNQUALIFIED63Asiya Javayant
1006Maria MarrierSpain2026-03-25Rangoni Of Florence RENEWAL59Asiya Javayant
1007Clifford RimArgentina2026-04-06Feiner Bros NEGOTIATION72Xuxue Feng
1008Faith GillianJapan2026-04-06Benton, John B Jr NEW76Onyama Limba
1009Ashley DoeCanada2026-03-30Benton, John B Jr NEGOTIATION59Ioni Bowcher
1010Alejandro PerinAustralia2026-04-17Buckley Miller Wright PROPOSAL24Xuxue Feng
1011David DarakjyJapan2026-03-25Buckley Miller Wright UNQUALIFIED3Asiya Javayant
1012Misaki RoysterGermany2026-03-28Feltz Printing Service RENEWAL71Onyama Limba
1013Mujtaba NickaFrance2026-04-07Dorl, James J Esq RENEWAL38Asiya Javayant
1014Leon OldroydGermany2026-04-18Chemel, James L Cpa QUALIFIED16Bernardo Dominic
1015Julie StensethArgentina2026-04-16Rangoni Of Florence PROPOSAL98Onyama Limba
1016Munro FerenczGermany2026-04-15Rangoni Of Florence NEGOTIATION40Xuxue Feng
1017Emily WhobreyAustralia2026-03-26Rangoni Of Florence NEGOTIATION95Ivan Magalhaes
1018Kadeem FlosiJapan2026-04-17Dorl, James J Esq RENEWAL49Amy Elsner
1019Tony FollerBrazil2026-04-08Feiner Bros UNQUALIFIED1Ioni Bowcher
1020Leon OldroydIndia2026-03-30Dorl, James J Esq RENEWAL33Stephen Shaw
1021Jefferson SchemmerJapan2026-04-14Chapman, Ross E Esq NEGOTIATION12Anna Fali
1022Murillo MaletBrazil2026-03-24Dorl, James J Esq NEGOTIATION7Asiya Javayant
1023Tony FollerFrance2026-04-06Rangoni Of Florence QUALIFIED96Onyama Limba
1024Morrow RutaUnited Kingdom2026-03-24Buckley Miller Wright PROPOSAL37Ivan Magalhaes
1025Alejandro PerinItaly2026-04-14Rangoni Of Florence NEGOTIATION29Amy Elsner
1026Kadeem FlosiArgentina2026-03-24Benton, John B Jr UNQUALIFIED36Amy Elsner
1027Greenwood BologniaJapan2026-04-07Rangoni Of Florence RENEWAL3Asiya Javayant
1028Leon OldroydArgentina2026-04-14Chapman, Ross E Esq PROPOSAL63Ioni Bowcher
1029Mayumi KolmetzRussia2026-03-31Chemel, James L Cpa PROPOSAL84Bernardo Dominic
1030Murillo MaletGermany2026-03-31Rangoni Of Florence RENEWAL39Stephen Shaw
1031Isabel BowleySpain2026-04-01Chanay, Jeffrey A Esq UNQUALIFIED53Ioni Bowcher
1032Clifford RimRussia2026-04-08Commercial Press NEW64Elwin Sharvill
1033Arvin AlbaresItaly2026-04-05Benton, John B Jr PROPOSAL46Asiya Javayant
1034Mayumi KolmetzBrazil2026-03-21Truhlar And Truhlar Attys NEGOTIATION49Onyama Limba
1035Munro FerenczSpain2026-03-21Printing Dimensions NEW75Elwin Sharvill
1036Clifford RimUnited Kingdom2026-04-05Rangoni Of Florence NEGOTIATION41Elwin Sharvill
1037Wickens NestleBrazil2026-04-17Buckley Miller Wright UNQUALIFIED51Anna Fali
1038Izzy GarufiFrance2026-04-13Morlong Associates NEGOTIATION13Elwin Sharvill
1039Izzy GarufiGermany2026-03-24Truhlar And Truhlar Attys RENEWAL39Stephen Shaw
1040Jefferson SchemmerFrance2026-04-01King, Christopher A Esq NEW7Amy Elsner
1041Silvio SlusarskiItaly2026-03-30Chapman, Ross E Esq NEW71Xuxue Feng
1042Aruna FigeroaItaly2026-04-17King, Christopher A Esq RENEWAL14Asiya Javayant
1043Claire TollnerGermany2026-03-29Rangoni Of Florence PROPOSAL78Amy Elsner
1044Sinclair WaycottUnited Kingdom2026-04-19Printing Dimensions RENEWAL29Elwin Sharvill
1045Ashley DoeUnited Kingdom2026-04-04Chapman, Ross E Esq NEGOTIATION44Bernardo Dominic
1046Kadeem FlosiArgentina2026-04-14Feltz Printing Service PROPOSAL40Stephen Shaw
1047Ashley DoeGermany2026-04-18Chemel, James L Cpa QUALIFIED1Bernardo Dominic
1048Morrow RutaAustralia2026-04-18Feltz Printing Service UNQUALIFIED91Elwin Sharvill
1049Johnson SergiRussia2026-03-26King, Christopher A Esq NEGOTIATION79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerSpainElwin Sharvill PROPOSAL
Jennifer AmigonIndiaIvan Magalhaes NEGOTIATION
Morrow RutaRussiaXuxue Feng NEGOTIATION
Chavez BriddickSpainIvan Magalhaes PROPOSAL
Arvin AlbaresGermanyAsiya Javayant PROPOSAL
Kaitlin OstroskyIndiaElwin Sharvill PROPOSAL
Leja CaldareraItalyAnna Fali RENEWAL
Costa DilliardCanadaStephen Shaw UNQUALIFIED
David DarakjyCanadaIoni Bowcher NEGOTIATION
Juan WieserItalyIoni Bowcher QUALIFIED
Claire TollnerGermanyBernardo Dominic NEGOTIATION
Jeanfrancois VenereSpainElwin Sharvill NEW
Maisha RulapaughSpainAmy Elsner RENEWAL
Izzy GarufiAustraliaAnna Fali NEGOTIATION
Jones VocelkaCanadaOnyama Limba UNQUALIFIED
Misaki RoysterBrazilIvan Magalhaes NEGOTIATION
Wickens NestleCanadaBernardo Dominic UNQUALIFIED
Tony FollerRussiaIvan Magalhaes PROPOSAL
Cody SaylorsCanadaXuxue Feng NEW
Smith GlickJapanAsiya Javayant NEW
Jefferson SchemmerItalyAsiya Javayant RENEWAL
Faith GillianSpainIoni Bowcher RENEWAL
Maria MarrierJapanXuxue Feng NEW
Julie StensethJapanElwin Sharvill PROPOSAL
Faith GillianFranceIvan Magalhaes UNQUALIFIED
Chavez BriddickCanadaAnna Fali NEW
Morrow RutaBrazilAmy Elsner QUALIFIED
Izzy GarufiFranceAnna Fali NEGOTIATION
Misaki RoysterCanadaStephen Shaw QUALIFIED
Wickens NestleFranceIoni Bowcher PROPOSAL
Aika InouyeJapanElwin Sharvill NEGOTIATION
Faith GillianIndiaBernardo Dominic UNQUALIFIED
Greenwood BologniaRussiaIvan Magalhaes NEW
Aditya KuskoJapanAsiya Javayant NEW
Rodrigues CampainBrazilXuxue Feng NEGOTIATION
Munro FerenczRussiaAsiya Javayant NEW
Julie StensethUnited KingdomAmy Elsner UNQUALIFIED
Emily WhobreyCanadaXuxue Feng UNQUALIFIED
Faith GillianIndiaIoni Bowcher NEW
Francesco ShinkoItalyIoni Bowcher NEGOTIATION
Emily WhobreyFranceIoni Bowcher NEW
Octavia MaletItalyElwin Sharvill RENEWAL
Munro FerenczIndiaXuxue Feng QUALIFIED
Aruna FigeroaSpainXuxue Feng NEGOTIATION
Jennifer AmigonJapanStephen Shaw NEGOTIATION
Octavia MaletUnited KingdomIoni Bowcher NEGOTIATION
Smith GlickItalyIvan Magalhaes QUALIFIED
Munro FerenczSpainBernardo Dominic RENEWAL
Morrow RutaAustraliaElwin Sharvill QUALIFIED
Faith GillianJapanAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Silvio Slusarski
Alejandro Perin
Kaitlin Ostrosky
Juan Wieser
Octavia Malet
Izzy Garufi
Ashley Doe
Smith Glick
Greenwood Bolognia
Munro Ferencz
Francesco Shinko
Munro Ferencz
Leja Caldarera
Clifford Rim
Sinclair Waycott
Claire Tollner
Leja Caldarera
Wickens Nestle
Stacey Maclead
Aruna Figeroa
Salvatore Stockham
Aruna Figeroa
Chavez Briddick
Aruna Figeroa
Faith Gillian
Ricardo Gaucho
Antonio Caudy
Ricardo Gaucho
Francesco Shinko
Mujtaba Nicka
Jefferson Schemmer
Arvin Albares
Maria Marrier
Kadeem Flosi
Greenwood Bolognia
Octavia Malet
Octavia Malet
James Butt
Kadeem Flosi
Silvio Slusarski
Tony Foller
Morrow Ruta
Wickens Nestle
Ricardo Gaucho
Ricardo Gaucho
Juan Wieser
Tony Foller
Kadeem Flosi
Tony Foller
David Darakjy
IdCountryDate
1000Spain2026-04-05
1001Brazil2026-04-03
1002Argentina2026-04-11
1003Germany2026-04-02
1004United Kingdom2026-04-04
1005Spain2026-03-24
1006Canada2026-04-07
1007Russia2026-04-09
1008United Kingdom2026-03-27
1009Japan2026-04-09
1010Brazil2026-04-11
1011Canada2026-03-29
1012Japan2026-04-18
1013Germany2026-03-30
1014Russia2026-04-17
1015Spain2026-03-21
1016Italy2026-04-04
1017Japan2026-04-01
1018Canada2026-04-01
1019Japan2026-04-14
1020Germany2026-04-12
1021Germany2026-04-16
1022France2026-04-06
1023Germany2026-03-22
1024Argentina2026-04-13
1025Japan2026-03-29
1026Italy2026-04-18
1027Russia2026-03-21
1028Canada2026-04-08
1029United Kingdom2026-04-07
1030Spain2026-03-23
1031Canada2026-04-14
1032Australia2026-04-13
1033United Kingdom2026-03-21
1034Russia2026-03-25
1035France2026-04-12
1036France2026-03-22
1037Canada2026-04-19
1038Canada2026-03-29
1039France2026-03-25
1040Canada2026-04-10
1041Canada2026-03-22
1042Japan2026-03-27
1043Russia2026-04-19
1044Italy2026-04-09
1045Germany2026-04-16
1046Australia2026-03-25
1047France2026-04-19
1048India2026-04-16
1049France2026-04-13

On-Demand Data

NameIdCountryDate
Francesco Shinko1000India2026-04-05
Aika Inouye1001Japan2026-04-01
Stacey Maclead1002Italy2026-04-17
David Darakjy1003Argentina2026-04-05
Antonio Caudy1004Italy2026-04-13
Leon Oldroyd1005India2026-03-31
Ricardo Gaucho1006Spain2026-03-30
Mujtaba Nicka1007Spain2026-03-29
Misaki Royster1008Brazil2026-04-15
Aika Inouye1009Argentina2026-04-03
Adams Morasca1010Canada2026-04-09
Maria Marrier1011Argentina2026-04-07
Mujtaba Nicka1012Argentina2026-04-03
Nicolas Iturbide1013Australia2026-04-03
Rodrigues Campain1014Italy2026-04-02
Smith Glick1015Canada2026-04-10
Faith Gillian1016Russia2026-03-29
Isabel Bowley1017Argentina2026-03-28
Sinclair Waycott1018France2026-03-21
Faith Gillian1019Russia2026-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiIndiaOnyama Limba NEW
Juan WieserItalyBernardo Dominic QUALIFIED
James ButtItalyElwin Sharvill QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill QUALIFIED
Maria MarrierItalyIoni Bowcher UNQUALIFIED
Leja CaldareraArgentinaAmy Elsner NEGOTIATION
Clifford RimGermanyXuxue Feng NEGOTIATION
Rodrigues CampainSpainStephen Shaw RENEWAL
Rodrigues CampainArgentinaOnyama Limba UNQUALIFIED
Murillo MaletArgentinaOnyama Limba QUALIFIED
Juan WieserSpainBernardo Dominic PROPOSAL
Morrow RutaIndiaElwin Sharvill QUALIFIED
Munro FerenczBrazilElwin Sharvill NEW
Faith GillianSpainAmy Elsner UNQUALIFIED
Ashley DoeArgentinaStephen Shaw NEW
Morrow RutaUnited KingdomAmy Elsner UNQUALIFIED
Adams MorascaBrazilBernardo Dominic NEW
Jennifer AmigonSpainAsiya Javayant QUALIFIED
Aruna FigeroaBrazilStephen Shaw NEW
Darci PoquetteGermanyAnna Fali PROPOSAL
David DarakjyItalyAnna Fali QUALIFIED
Mujtaba NickaBrazilStephen Shaw NEW
Maria MarrierFranceAmy Elsner RENEWAL
Aruna FigeroaCanadaAmy Elsner NEW
Mayumi KolmetzRussiaAnna Fali UNQUALIFIED
Jennifer AmigonCanadaAmy Elsner RENEWAL
Claire TollnerFranceAmy Elsner QUALIFIED
Smith GlickSpainAmy Elsner RENEWAL
Greenwood BologniaUnited KingdomAmy Elsner QUALIFIED
Julie StensethAustraliaXuxue Feng QUALIFIED
Leja CaldareraJapanAmy Elsner QUALIFIED
Alejandro PerinSpainAmy Elsner NEW
Greenwood BologniaGermanyAsiya Javayant QUALIFIED
Cody SaylorsBrazilStephen Shaw NEGOTIATION
Darci PoquetteArgentinaAnna Fali NEGOTIATION
Leon OldroydGermanyAnna Fali RENEWAL
James ButtCanadaAsiya Javayant PROPOSAL
Aika InouyeJapanAmy Elsner NEGOTIATION
Jefferson SchemmerUnited KingdomOnyama Limba RENEWAL
James ButtGermanyIoni Bowcher 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>