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 MaletItalyElwin Sharvill PROPOSAL
Darci PoquetteAustraliaStephen Shaw PROPOSAL
Johnson SergiGermanyBernardo Dominic QUALIFIED
Ricardo GauchoBrazilAnna Fali PROPOSAL
Rodrigues CampainAustraliaElwin Sharvill UNQUALIFIED
Ivar PaprockiFranceBernardo Dominic QUALIFIED
Murillo MaletGermanyElwin Sharvill QUALIFIED
Clifford RimFranceBernardo Dominic PROPOSAL
Stacey MacleadUnited KingdomOnyama Limba RENEWAL
Jefferson SchemmerCanadaOnyama Limba RENEWAL
Murillo MaletCanadaStephen Shaw NEW
Aditya KuskoGermanyBernardo Dominic PROPOSAL
Nicolas IturbideJapanElwin Sharvill PROPOSAL
Mayumi KolmetzGermanyAmy Elsner NEW
Emily WhobreyArgentinaIoni Bowcher PROPOSAL
Claire TollnerCanadaStephen Shaw NEW
Mayumi KolmetzBrazilElwin Sharvill PROPOSAL
Tony FollerRussiaBernardo Dominic QUALIFIED
Johnson SergiJapanOnyama Limba PROPOSAL
Adams MorascaCanadaBernardo Dominic PROPOSAL
Rodrigues CampainIndiaStephen Shaw NEW
Emily WhobreyCanadaIvan Magalhaes NEW
Juan WieserItalyXuxue Feng RENEWAL
Aditya KuskoAustraliaStephen Shaw RENEWAL
Tony FollerCanadaAsiya Javayant QUALIFIED
James ButtItalyXuxue Feng PROPOSAL
Kadeem FlosiArgentinaElwin Sharvill PROPOSAL
Mujtaba NickaItalyBernardo Dominic NEGOTIATION
Ivar PaprockiSpainAmy Elsner RENEWAL
Leon OldroydBrazilXuxue Feng NEW
Arvin AlbaresGermanyIoni Bowcher PROPOSAL
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Alejandro PerinAustraliaAmy Elsner UNQUALIFIED
Deepesh ChuiItalyBernardo Dominic QUALIFIED
Sinclair WaycottJapanIvan Magalhaes UNQUALIFIED
Alejandro PerinBrazilAsiya Javayant RENEWAL
Maria MarrierJapanIoni Bowcher PROPOSAL
Munro FerenczAustraliaIvan Magalhaes PROPOSAL
Morrow RutaJapanIoni Bowcher QUALIFIED
Chavez BriddickBrazilBernardo Dominic UNQUALIFIED
Smith GlickRussiaBernardo Dominic NEGOTIATION
Faith GillianFranceAmy Elsner QUALIFIED
Isabel BowleySpainXuxue Feng RENEWAL
Leja CaldareraCanadaAnna Fali NEW
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
Aika InouyeJapanStephen Shaw NEW
Nicolas IturbideBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Darci PoquetteUnited KingdomIvan Magalhaes NEW
Clifford RimJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon OldroydFranceOnyama Limba NEW
Wickens NestleIndiaIoni Bowcher NEW
Claire TollnerIndiaXuxue Feng PROPOSAL
Jeanfrancois VenereGermanyStephen Shaw UNQUALIFIED
Johnson SergiIndiaIoni Bowcher NEW
Morrow RutaItalyAmy Elsner UNQUALIFIED
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Antonio CaudyGermanyAnna Fali NEW
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Jennifer AmigonRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaUnited Kingdom2025-10-09Morlong Associates UNQUALIFIED50Xuxue Feng
1001Chavez BriddickRussia2025-10-17Printing Dimensions QUALIFIED80Bernardo Dominic
1002Nicolas IturbideJapan2025-10-18Feiner Bros QUALIFIED10Onyama Limba
1003Smith GlickItaly2025-10-12Truhlar And Truhlar Attys PROPOSAL31Ioni Bowcher
1004Emily WhobreyItaly2025-10-03Benton, John B Jr QUALIFIED90Onyama Limba
1005Arvin AlbaresBrazil2025-10-30Morlong Associates UNQUALIFIED63Ivan Magalhaes
1006Munro FerenczAustralia2025-10-16Feltz Printing Service RENEWAL50Stephen Shaw
1007Jones VocelkaRussia2025-10-06Chanay, Jeffrey A Esq UNQUALIFIED94Xuxue Feng
1008Claire TollnerCanada2025-10-20Morlong Associates NEGOTIATION17Bernardo Dominic
1009Nicolas IturbideSpain2025-10-16Printing Dimensions NEGOTIATION35Stephen Shaw
1010Clifford RimFrance2025-10-06King, Christopher A Esq NEGOTIATION95Amy Elsner
1011Leja CaldareraIndia2025-11-01Dorl, James J Esq PROPOSAL48Amy Elsner
1012Isabel BowleyGermany2025-10-12Feltz Printing Service QUALIFIED66Asiya Javayant
1013Maisha RulapaughArgentina2025-10-19Benton, John B Jr NEGOTIATION87Amy Elsner
1014Julie StensethArgentina2025-10-27Rangoni Of Florence UNQUALIFIED26Ivan Magalhaes
1015Jefferson SchemmerGermany2025-10-18Buckley Miller Wright QUALIFIED17Stephen Shaw
1016Wickens NestleIndia2025-10-15Feiner Bros NEGOTIATION40Ivan Magalhaes
1017Isabel BowleyJapan2025-10-23Dorl, James J Esq UNQUALIFIED70Xuxue Feng
1018Murillo MaletAustralia2025-10-03Rangoni Of Florence NEW43Asiya Javayant
1019Stacey MacleadRussia2025-10-17Truhlar And Truhlar Attys QUALIFIED99Bernardo Dominic
1020Arvin AlbaresRussia2025-11-01Rangoni Of Florence NEW8Onyama Limba
1021Mujtaba NickaCanada2025-10-25Buckley Miller Wright RENEWAL48Ivan Magalhaes
1022Emily WhobreyGermany2025-10-24King, Christopher A Esq UNQUALIFIED66Ivan Magalhaes
1023Jefferson SchemmerCanada2025-10-07Commercial Press QUALIFIED79Ivan Magalhaes
1024Costa DilliardGermany2025-10-08Rangoni Of Florence PROPOSAL27Xuxue Feng
1025Antonio CaudySpain2025-10-15Commercial Press UNQUALIFIED5Stephen Shaw
1026Morrow RutaCanada2025-10-27Truhlar And Truhlar Attys QUALIFIED2Onyama Limba
1027Faith GillianUnited Kingdom2025-10-23Dorl, James J Esq QUALIFIED68Anna Fali
1028James ButtGermany2025-10-31Dorl, James J Esq NEW76Asiya Javayant
1029Faith GillianSpain2025-11-01Chemel, James L Cpa PROPOSAL69Asiya Javayant
1030Cody SaylorsCanada2025-10-21Feltz Printing Service RENEWAL28Xuxue Feng
1031Misaki RoysterFrance2025-10-27Chanay, Jeffrey A Esq PROPOSAL99Bernardo Dominic
1032Jennifer AmigonSpain2025-10-15Chanay, Jeffrey A Esq PROPOSAL69Xuxue Feng
1033Tony FollerUnited Kingdom2025-10-04Chemel, James L Cpa NEW98Amy Elsner
1034Chavez BriddickAustralia2025-10-22Benton, John B Jr NEW86Xuxue Feng
1035Claire TollnerAustralia2025-11-01Chemel, James L Cpa PROPOSAL5Amy Elsner
1036Octavia MaletAustralia2025-10-21Rangoni Of Florence RENEWAL59Ioni Bowcher
1037Chavez BriddickSpain2025-10-21Benton, John B Jr QUALIFIED44Anna Fali
1038Sinclair WaycottItaly2025-10-23Feltz Printing Service RENEWAL0Xuxue Feng
1039Leon OldroydFrance2025-10-04Chemel, James L Cpa UNQUALIFIED10Bernardo Dominic
1040Jones VocelkaIndia2025-10-26Buckley Miller Wright PROPOSAL24Xuxue Feng
1041Darci PoquetteIndia2025-10-06Rangoni Of Florence RENEWAL19Bernardo Dominic
1042Antonio CaudyIndia2025-10-05Commercial Press PROPOSAL19Asiya Javayant
1043James ButtGermany2025-10-17Feiner Bros RENEWAL57Ioni Bowcher
1044Faith GillianIndia2025-10-22Rousseaux, Michael Esq NEGOTIATION19Onyama Limba
1045Izzy GarufiIndia2025-10-19Chemel, James L Cpa PROPOSAL63Amy Elsner
1046Jeanfrancois VenereAustralia2025-10-04Printing Dimensions NEGOTIATION44Bernardo Dominic
1047Juan WieserJapan2025-10-24Commercial Press PROPOSAL17Ivan Magalhaes
1048Chavez BriddickGermany2025-10-21Chanay, Jeffrey A Esq PROPOSAL67Ioni Bowcher
1049David DarakjyItaly2025-10-07King, Christopher A Esq NEGOTIATION34Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierAustraliaIvan Magalhaes QUALIFIED
Tony FollerIndiaAnna Fali NEW
Jennifer AmigonCanadaAsiya Javayant UNQUALIFIED
Isabel BowleyIndiaOnyama Limba NEGOTIATION
Aruna FigeroaFranceStephen Shaw UNQUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic PROPOSAL
Mayumi KolmetzCanadaAmy Elsner PROPOSAL
Jefferson SchemmerRussiaXuxue Feng NEW
David DarakjyRussiaIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilIvan Magalhaes QUALIFIED
Morrow RutaSpainAnna Fali NEGOTIATION
Clifford RimIndiaAmy Elsner QUALIFIED
Kaitlin OstroskyUnited KingdomIvan Magalhaes PROPOSAL
Claire TollnerSpainAsiya Javayant UNQUALIFIED
Antonio CaudyArgentinaStephen Shaw NEGOTIATION
Darci PoquetteUnited KingdomStephen Shaw PROPOSAL
Aruna FigeroaFranceAnna Fali QUALIFIED
Faith GillianBrazilXuxue Feng QUALIFIED
Leon OldroydJapanOnyama Limba RENEWAL
Leja CaldareraUnited KingdomStephen Shaw NEW
Alejandro PerinItalyBernardo Dominic UNQUALIFIED
Johnson SergiFranceBernardo Dominic UNQUALIFIED
Darci PoquetteRussiaOnyama Limba UNQUALIFIED
Izzy GarufiIndiaOnyama Limba RENEWAL
Claire TollnerJapanXuxue Feng NEGOTIATION
Antonio CaudyBrazilBernardo Dominic NEGOTIATION
Misaki RoysterCanadaElwin Sharvill RENEWAL
Jennifer AmigonFranceIvan Magalhaes RENEWAL
Nicolas IturbideUnited KingdomOnyama Limba UNQUALIFIED
Nicolas IturbideGermanyStephen Shaw NEW
Rodrigues CampainFranceStephen Shaw QUALIFIED
Ashley DoeGermanyAmy Elsner NEGOTIATION
Johnson SergiCanadaAsiya Javayant UNQUALIFIED
Ricardo GauchoFranceXuxue Feng PROPOSAL
Leja CaldareraSpainIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanStephen Shaw UNQUALIFIED
Johnson SergiItalyElwin Sharvill PROPOSAL
Claire TollnerAustraliaIvan Magalhaes NEW
Salvatore StockhamItalyAsiya Javayant NEW
Rodrigues CampainGermanyElwin Sharvill UNQUALIFIED
Maria MarrierUnited KingdomAnna Fali NEW
Smith GlickCanadaXuxue Feng QUALIFIED
Deepesh ChuiGermanyOnyama Limba QUALIFIED
Jones VocelkaFranceAnna Fali PROPOSAL
Stacey MacleadItalyOnyama Limba RENEWAL
Faith GillianSpainAsiya Javayant UNQUALIFIED
Tony FollerJapanAmy Elsner QUALIFIED
Jennifer AmigonIndiaBernardo Dominic PROPOSAL
Johnson SergiArgentinaIoni Bowcher PROPOSAL
Greenwood BologniaFranceIoni Bowcher NEW
Frozen Columns
Name
Rodrigues Campain
Mayumi Kolmetz
Juan Wieser
Julie Stenseth
Jennifer Amigon
Tony Foller
Aruna Figeroa
Clifford Rim
Cody Saylors
Stacey Maclead
Faith Gillian
Jennifer Amigon
Jennifer Amigon
Greenwood Bolognia
Darci Poquette
Rodrigues Campain
Maria Marrier
David Darakjy
Tony Foller
Claire Tollner
Cody Saylors
Wickens Nestle
Aditya Kusko
Izzy Garufi
Adams Morasca
Salvatore Stockham
Stacey Maclead
Juan Wieser
Smith Glick
James Butt
Arvin Albares
Julie Stenseth
Ricardo Gaucho
Mayumi Kolmetz
Jeanfrancois Venere
Nicolas Iturbide
Clifford Rim
Francesco Shinko
Emily Whobrey
Mayumi Kolmetz
Deepesh Chui
Emily Whobrey
Francesco Shinko
Aruna Figeroa
Munro Ferencz
Ricardo Gaucho
Faith Gillian
Alejandro Perin
James Butt
Cody Saylors
IdCountryDate
1000Spain2025-10-21
1001Australia2025-11-01
1002India2025-11-01
1003Australia2025-10-09
1004Argentina2025-10-12
1005Russia2025-10-04
1006Argentina2025-10-24
1007India2025-10-31
1008United Kingdom2025-10-18
1009Australia2025-10-31
1010Australia2025-10-26
1011Canada2025-10-23
1012Brazil2025-10-08
1013Japan2025-10-30
1014Russia2025-11-01
1015India2025-10-12
1016Australia2025-10-31
1017Spain2025-10-15
1018Canada2025-10-05
1019Australia2025-10-08
1020Australia2025-10-26
1021Italy2025-10-18
1022Italy2025-10-18
1023Spain2025-10-23
1024Spain2025-10-15
1025India2025-11-01
1026Canada2025-10-18
1027Australia2025-10-05
1028France2025-10-10
1029United Kingdom2025-10-21
1030Argentina2025-10-14
1031Canada2025-10-23
1032Brazil2025-10-31
1033Germany2025-10-25
1034Russia2025-10-13
1035Australia2025-10-05
1036Russia2025-10-26
1037France2025-10-08
1038Japan2025-10-19
1039Argentina2025-10-15
1040India2025-10-08
1041India2025-10-14
1042Italy2025-10-27
1043Spain2025-10-25
1044Argentina2025-10-14
1045Argentina2025-10-14
1046Brazil2025-10-24
1047Japan2025-10-30
1048Argentina2025-10-17
1049Italy2025-10-07

On-Demand Data

NameIdCountryDate
Tony Foller1000Argentina2025-10-08
Darci Poquette1001Argentina2025-10-24
Julie Stenseth1002Japan2025-10-16
Aditya Kusko1003France2025-10-24
Misaki Royster1004Spain2025-10-16
Tony Foller1005Germany2025-10-23
Izzy Garufi1006Japan2025-10-23
Nicolas Iturbide1007Brazil2025-10-10
Johnson Sergi1008Australia2025-10-09
Adams Morasca1009Argentina2025-10-20
Claire Tollner1010United Kingdom2025-10-12
Leja Caldarera1011United Kingdom2025-10-29
Mayumi Kolmetz1012Australia2025-10-11
Aika Inouye1013France2025-10-13
Mujtaba Nicka1014Germany2025-10-11
Jennifer Amigon1015Spain2025-10-31
Ivar Paprocki1016Australia2025-10-08
Murillo Malet1017Canada2025-10-05
Wickens Nestle1018Russia2025-10-31
Kaitlin Ostrosky1019Spain2025-10-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaAnna Fali NEGOTIATION
Sinclair WaycottArgentinaElwin Sharvill QUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw PROPOSAL
Ricardo GauchoCanadaOnyama Limba NEW
Maria MarrierIndiaAnna Fali QUALIFIED
Smith GlickItalyXuxue Feng RENEWAL
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Sinclair WaycottFranceStephen Shaw NEW
Jeanfrancois VenereGermanyStephen Shaw QUALIFIED
Jeanfrancois VenereUnited KingdomStephen Shaw PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant NEW
Nicolas IturbideItalyOnyama Limba RENEWAL
Smith GlickRussiaAmy Elsner QUALIFIED
Aditya KuskoBrazilIvan Magalhaes NEGOTIATION
Claire TollnerGermanyAnna Fali NEW
Costa DilliardRussiaIvan Magalhaes PROPOSAL
Aika InouyeAustraliaIvan Magalhaes NEW
Kadeem FlosiUnited KingdomAnna Fali RENEWAL
Francesco ShinkoCanadaAsiya Javayant NEW
Emily WhobreyCanadaBernardo Dominic NEW
Ricardo GauchoFranceXuxue Feng UNQUALIFIED
Ashley DoeCanadaAmy Elsner QUALIFIED
Faith GillianRussiaElwin Sharvill QUALIFIED
Cody SaylorsBrazilStephen Shaw NEGOTIATION
Faith GillianRussiaElwin Sharvill RENEWAL
Costa DilliardArgentinaElwin Sharvill UNQUALIFIED
Jefferson SchemmerArgentinaIoni Bowcher UNQUALIFIED
Arvin AlbaresJapanAnna Fali NEGOTIATION
Mujtaba NickaGermanyStephen Shaw NEW
Ashley DoeRussiaOnyama Limba UNQUALIFIED
Murillo MaletItalyAnna Fali QUALIFIED
Mayumi KolmetzGermanyXuxue Feng NEW
Murillo MaletUnited KingdomAsiya Javayant NEGOTIATION
Claire TollnerItalyElwin Sharvill NEW
Antonio CaudyBrazilAsiya Javayant RENEWAL
Sinclair WaycottCanadaAmy Elsner QUALIFIED
Julie StensethFranceAnna Fali PROPOSAL
Smith GlickUnited KingdomElwin Sharvill UNQUALIFIED
Octavia MaletFranceAmy Elsner PROPOSAL
Sinclair WaycottGermanyIoni Bowcher 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>