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
Chavez BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro PerinUnited KingdomStephen Shaw UNQUALIFIED
Smith GlickBrazilStephen Shaw NEGOTIATION
Deepesh ChuiBrazilXuxue Feng RENEWAL
Antonio CaudyBrazilElwin Sharvill QUALIFIED
Claire TollnerAustraliaAsiya Javayant NEGOTIATION
Misaki RoysterFranceElwin Sharvill NEGOTIATION
Adams MorascaBrazilAnna Fali QUALIFIED
Cody SaylorsItalyAnna Fali NEGOTIATION
Johnson SergiArgentinaIvan Magalhaes QUALIFIED
Claire TollnerGermanyIvan Magalhaes UNQUALIFIED
Mujtaba NickaSpainXuxue Feng QUALIFIED
Ivar PaprockiItalyElwin Sharvill NEW
Clifford RimRussiaXuxue Feng NEW
Ashley DoeIndiaXuxue Feng PROPOSAL
Clifford RimIndiaAsiya Javayant NEGOTIATION
Francesco ShinkoIndiaIvan Magalhaes UNQUALIFIED
Jones VocelkaSpainOnyama Limba RENEWAL
Octavia MaletJapanAnna Fali RENEWAL
Alejandro PerinSpainAmy Elsner PROPOSAL
James ButtSpainAnna Fali NEW
Aika InouyeSpainAnna Fali NEW
Darci PoquetteSpainBernardo Dominic NEW
Arvin AlbaresGermanyIvan Magalhaes PROPOSAL
Johnson SergiRussiaStephen Shaw NEW
Faith GillianArgentinaAnna Fali NEGOTIATION
Arvin AlbaresJapanAnna Fali NEW
Antonio CaudyAustraliaOnyama Limba UNQUALIFIED
Alejandro PerinArgentinaElwin Sharvill UNQUALIFIED
Juan WieserJapanAnna Fali QUALIFIED
Maisha RulapaughCanadaOnyama Limba PROPOSAL
Adams MorascaGermanyElwin Sharvill NEW
Stacey MacleadFranceAnna Fali NEGOTIATION
Mayumi KolmetzArgentinaOnyama Limba PROPOSAL
Maisha RulapaughBrazilIoni Bowcher UNQUALIFIED
Salvatore StockhamArgentinaOnyama Limba NEW
Faith GillianIndiaElwin Sharvill UNQUALIFIED
Cody SaylorsAustraliaAmy Elsner RENEWAL
Greenwood BologniaRussiaIoni Bowcher PROPOSAL
David DarakjyFranceElwin Sharvill NEGOTIATION
Mayumi KolmetzBrazilAnna Fali NEW
Cody SaylorsAustraliaAnna Fali QUALIFIED
Morrow RutaAustraliaBernardo Dominic NEW
Mayumi KolmetzAustraliaElwin Sharvill RENEWAL
Johnson SergiSpainOnyama Limba UNQUALIFIED
Claire TollnerIndiaAsiya Javayant QUALIFIED
Wickens NestleBrazilIvan Magalhaes PROPOSAL
James ButtAustraliaIoni Bowcher PROPOSAL
James ButtRussiaAnna Fali NEGOTIATION
Cody SaylorsGermanyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsItalyAsiya Javayant NEGOTIATION
Antonio CaudyItalyBernardo Dominic PROPOSAL
Stacey MacleadUnited KingdomAsiya Javayant NEW
Rodrigues CampainAustraliaIvan Magalhaes RENEWAL
Julie StensethBrazilBernardo Dominic UNQUALIFIED
Leja CaldareraBrazilStephen Shaw NEGOTIATION
David DarakjyCanadaAmy Elsner RENEWAL
Juan WieserUnited KingdomAmy Elsner NEGOTIATION
Greenwood BologniaGermanyAnna Fali NEW
Mujtaba NickaIndiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamBrazil2026-04-25Morlong Associates NEW53Stephen Shaw
1001Leja CaldareraBrazil2026-04-15King, Christopher A Esq PROPOSAL76Stephen Shaw
1002Morrow RutaBrazil2026-04-24Buckley Miller Wright NEGOTIATION67Elwin Sharvill
1003Mayumi KolmetzUnited Kingdom2026-04-28Commercial Press UNQUALIFIED26Xuxue Feng
1004Julie StensethGermany2026-04-27Feiner Bros NEW7Anna Fali
1005Murillo MaletBrazil2026-04-06Rangoni Of Florence NEW14Ioni Bowcher
1006Ivar PaprockiCanada2026-04-15Commercial Press QUALIFIED15Onyama Limba
1007Salvatore StockhamUnited Kingdom2026-04-12Chanay, Jeffrey A Esq PROPOSAL39Anna Fali
1008Mayumi KolmetzItaly2026-04-25Chanay, Jeffrey A Esq RENEWAL88Ioni Bowcher
1009Sinclair WaycottArgentina2026-04-08Chanay, Jeffrey A Esq QUALIFIED50Elwin Sharvill
1010Faith GillianAustralia2026-04-26Chanay, Jeffrey A Esq PROPOSAL83Anna Fali
1011Costa DilliardItaly2026-04-06Benton, John B Jr QUALIFIED27Ivan Magalhaes
1012Aditya KuskoArgentina2026-04-09Buckley Miller Wright RENEWAL60Onyama Limba
1013Julie StensethFrance2026-04-12Feltz Printing Service PROPOSAL28Amy Elsner
1014Stacey MacleadCanada2026-04-06Chemel, James L Cpa PROPOSAL56Amy Elsner
1015Mayumi KolmetzAustralia2026-04-11Rousseaux, Michael Esq NEW29Bernardo Dominic
1016Claire TollnerJapan2026-04-28Buckley Miller Wright PROPOSAL49Ioni Bowcher
1017Maisha RulapaughItaly2026-04-05Feiner Bros UNQUALIFIED11Onyama Limba
1018Octavia MaletBrazil2026-04-07Buckley Miller Wright NEGOTIATION22Onyama Limba
1019Johnson SergiJapan2026-04-04Feiner Bros NEW35Anna Fali
1020Jennifer AmigonIndia2026-04-23King, Christopher A Esq NEGOTIATION79Elwin Sharvill
1021Juan WieserBrazil2026-04-07Feltz Printing Service NEGOTIATION28Ivan Magalhaes
1022Kadeem FlosiGermany2026-04-24Truhlar And Truhlar Attys UNQUALIFIED71Stephen Shaw
1023Deepesh ChuiBrazil2026-04-12Chanay, Jeffrey A Esq RENEWAL48Stephen Shaw
1024Chavez BriddickBrazil2026-04-06Printing Dimensions RENEWAL8Amy Elsner
1025Arvin AlbaresSpain2026-04-27Truhlar And Truhlar Attys RENEWAL33Xuxue Feng
1026Silvio SlusarskiAustralia2026-04-17Truhlar And Truhlar Attys UNQUALIFIED24Stephen Shaw
1027James ButtGermany2026-04-20Truhlar And Truhlar Attys RENEWAL65Onyama Limba
1028Aditya KuskoFrance2026-04-07Commercial Press UNQUALIFIED67Bernardo Dominic
1029Adams MorascaIndia2026-04-18Rousseaux, Michael Esq NEW11Stephen Shaw
1030Isabel BowleyBrazil2026-04-23Truhlar And Truhlar Attys NEGOTIATION68Onyama Limba
1031Kaitlin OstroskyFrance2026-04-22Chapman, Ross E Esq NEGOTIATION23Anna Fali
1032Emily WhobreyGermany2026-04-18Truhlar And Truhlar Attys NEGOTIATION23Stephen Shaw
1033Alejandro PerinCanada2026-04-08Chemel, James L Cpa RENEWAL79Xuxue Feng
1034Julie StensethJapan2026-04-23Morlong Associates UNQUALIFIED3Stephen Shaw
1035Deepesh ChuiCanada2026-04-17Commercial Press UNQUALIFIED60Elwin Sharvill
1036Wickens NestleCanada2026-03-31King, Christopher A Esq UNQUALIFIED89Xuxue Feng
1037Francesco ShinkoArgentina2026-04-17Feiner Bros UNQUALIFIED45Amy Elsner
1038Nicolas IturbideArgentina2026-04-01Feiner Bros NEGOTIATION76Ioni Bowcher
1039Misaki RoysterAustralia2026-04-14Chanay, Jeffrey A Esq PROPOSAL84Asiya Javayant
1040Claire TollnerGermany2026-04-13Printing Dimensions PROPOSAL77Xuxue Feng
1041Aika InouyeSpain2026-04-11Rangoni Of Florence RENEWAL75Xuxue Feng
1042Greenwood BologniaRussia2026-04-24Printing Dimensions NEW69Anna Fali
1043Deepesh ChuiBrazil2026-04-05Rangoni Of Florence NEGOTIATION11Ioni Bowcher
1044Claire TollnerBrazil2026-03-30Chemel, James L Cpa PROPOSAL6Xuxue Feng
1045Greenwood BologniaAustralia2026-04-20Truhlar And Truhlar Attys NEW11Onyama Limba
1046Deepesh ChuiBrazil2026-04-15Truhlar And Truhlar Attys UNQUALIFIED16Ivan Magalhaes
1047Claire TollnerCanada2026-04-17Rousseaux, Michael Esq NEGOTIATION68Ivan Magalhaes
1048Aruna FigeroaAustralia2026-04-26Dorl, James J Esq UNQUALIFIED91Anna Fali
1049James ButtUnited Kingdom2026-04-13Feltz Printing Service NEW62Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleGermanyElwin Sharvill RENEWAL
Izzy GarufiRussiaAnna Fali NEGOTIATION
Emily WhobreyGermanyAmy Elsner NEW
Ricardo GauchoGermanyAnna Fali NEW
Emily WhobreyJapanXuxue Feng QUALIFIED
Cody SaylorsItalyBernardo Dominic RENEWAL
Darci PoquetteUnited KingdomElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomAnna Fali NEW
Claire TollnerSpainIvan Magalhaes NEW
Smith GlickFranceXuxue Feng QUALIFIED
Adams MorascaIndiaBernardo Dominic NEW
Octavia MaletAustraliaAmy Elsner PROPOSAL
Arvin AlbaresRussiaAmy Elsner PROPOSAL
David DarakjyItalyAsiya Javayant QUALIFIED
Izzy GarufiGermanyIoni Bowcher NEGOTIATION
Murillo MaletRussiaXuxue Feng PROPOSAL
Morrow RutaFranceIvan Magalhaes RENEWAL
Jeanfrancois VenereFranceAsiya Javayant NEGOTIATION
Juan WieserGermanyAmy Elsner NEW
Mayumi KolmetzBrazilIoni Bowcher RENEWAL
Ivar PaprockiItalyIoni Bowcher PROPOSAL
Wickens NestleJapanBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Leja CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Aruna FigeroaRussiaAmy Elsner NEGOTIATION
Ivar PaprockiBrazilIvan Magalhaes RENEWAL
Clifford RimSpainElwin Sharvill UNQUALIFIED
Izzy GarufiBrazilAsiya Javayant RENEWAL
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Maria MarrierBrazilAsiya Javayant RENEWAL
Deepesh ChuiSpainAsiya Javayant PROPOSAL
Jefferson SchemmerBrazilAmy Elsner RENEWAL
Costa DilliardFranceAnna Fali UNQUALIFIED
Murillo MaletFranceIvan Magalhaes NEGOTIATION
Aika InouyeUnited KingdomIoni Bowcher NEGOTIATION
Isabel BowleyGermanyAmy Elsner UNQUALIFIED
Aditya KuskoIndiaElwin Sharvill RENEWAL
Chavez BriddickJapanAnna Fali QUALIFIED
Nicolas IturbideUnited KingdomOnyama Limba PROPOSAL
Greenwood BologniaSpainBernardo Dominic UNQUALIFIED
Jeanfrancois VenereSpainAnna Fali RENEWAL
Ricardo GauchoIndiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresCanadaIvan Magalhaes NEW
Jefferson SchemmerRussiaAsiya Javayant PROPOSAL
Ashley DoeArgentinaXuxue Feng UNQUALIFIED
Leon OldroydItalyIvan Magalhaes PROPOSAL
Smith GlickAustraliaBernardo Dominic UNQUALIFIED
Rodrigues CampainSpainAmy Elsner QUALIFIED
Mujtaba NickaAustraliaAsiya Javayant RENEWAL
Aika InouyeJapanElwin Sharvill NEW
Frozen Columns
Name
Juan Wieser
Arvin Albares
Ashley Doe
Ivar Paprocki
Mujtaba Nicka
Francesco Shinko
Octavia Malet
Izzy Garufi
Maria Marrier
Maria Marrier
Clifford Rim
Murillo Malet
Isabel Bowley
Ivar Paprocki
Alejandro Perin
Stacey Maclead
Juan Wieser
Claire Tollner
Leon Oldroyd
Emily Whobrey
Aditya Kusko
Jeanfrancois Venere
Tony Foller
Mayumi Kolmetz
Tony Foller
Darci Poquette
Misaki Royster
Ivar Paprocki
Ivar Paprocki
Wickens Nestle
Jefferson Schemmer
Isabel Bowley
Arvin Albares
Ricardo Gaucho
Adams Morasca
Antonio Caudy
Aruna Figeroa
Stacey Maclead
Tony Foller
Silvio Slusarski
Stacey Maclead
Arvin Albares
Jennifer Amigon
Johnson Sergi
Claire Tollner
Leon Oldroyd
Clifford Rim
Jefferson Schemmer
Munro Ferencz
Alejandro Perin
IdCountryDate
1000France2026-04-22
1001Italy2026-04-08
1002France2026-04-01
1003France2026-04-21
1004Japan2026-04-24
1005Canada2026-04-22
1006Australia2026-04-03
1007Australia2026-04-26
1008France2026-04-24
1009Italy2026-04-14
1010France2026-04-21
1011Germany2026-04-25
1012Italy2026-04-25
1013Japan2026-04-17
1014France2026-03-31
1015Japan2026-03-30
1016Japan2026-04-06
1017Canada2026-04-21
1018Australia2026-04-19
1019France2026-04-19
1020United Kingdom2026-04-19
1021India2026-04-26
1022United Kingdom2026-04-20
1023Australia2026-04-28
1024Germany2026-04-22
1025Italy2026-04-04
1026Canada2026-04-02
1027Russia2026-04-27
1028Russia2026-04-05
1029United Kingdom2026-04-26
1030United Kingdom2026-03-31
1031Italy2026-04-21
1032Australia2026-04-02
1033France2026-04-25
1034Australia2026-03-31
1035Australia2026-04-12
1036Germany2026-04-18
1037India2026-04-18
1038Germany2026-04-17
1039Brazil2026-04-04
1040India2026-04-26
1041Italy2026-04-15
1042Canada2026-04-25
1043United Kingdom2026-04-25
1044Australia2026-04-27
1045Russia2026-04-21
1046Italy2026-04-23
1047Australia2026-04-24
1048United Kingdom2026-03-30
1049France2026-04-19

On-Demand Data

NameIdCountryDate
Misaki Royster1000France2026-04-22
Kaitlin Ostrosky1001United Kingdom2026-04-16
Izzy Garufi1002Italy2026-04-11
Sinclair Waycott1003Argentina2026-04-04
Jones Vocelka1004Australia2026-04-03
Faith Gillian1005India2026-04-01
Jeanfrancois Venere1006Argentina2026-04-04
Ashley Doe1007France2026-04-08
Francesco Shinko1008Brazil2026-04-26
Jeanfrancois Venere1009Spain2026-04-21
Clifford Rim1010Canada2026-04-10
Leja Caldarera1011Brazil2026-04-14
Claire Tollner1012Japan2026-03-31
Munro Ferencz1013France2026-04-21
Maisha Rulapaugh1014Japan2026-04-03
Wickens Nestle1015France2026-04-07
Emily Whobrey1016Japan2026-04-22
Darci Poquette1017India2026-04-09
Stacey Maclead1018Canada2026-04-09
Maria Marrier1019Japan2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaIvan Magalhaes UNQUALIFIED
Julie StensethSpainElwin Sharvill RENEWAL
Greenwood BologniaUnited KingdomXuxue Feng PROPOSAL
Emily WhobreyUnited KingdomXuxue Feng RENEWAL
Johnson SergiFranceXuxue Feng UNQUALIFIED
Juan WieserAustraliaAmy Elsner RENEWAL
Clifford RimBrazilIoni Bowcher UNQUALIFIED
Misaki RoysterGermanyOnyama Limba NEGOTIATION
Costa DilliardFranceAnna Fali RENEWAL
Jones VocelkaCanadaIoni Bowcher NEW
David DarakjyBrazilAmy Elsner RENEWAL
Francesco ShinkoRussiaStephen Shaw UNQUALIFIED
Tony FollerItalyBernardo Dominic PROPOSAL
Antonio CaudyRussiaAnna Fali PROPOSAL
Rodrigues CampainSpainXuxue Feng QUALIFIED
Aditya KuskoRussiaIoni Bowcher RENEWAL
Leja CaldareraAustraliaOnyama Limba QUALIFIED
Tony FollerFranceAsiya Javayant RENEWAL
Salvatore StockhamFranceBernardo Dominic NEW
Wickens NestleJapanXuxue Feng NEW
Ricardo GauchoBrazilAnna Fali NEGOTIATION
David DarakjyCanadaIoni Bowcher NEW
Tony FollerBrazilAnna Fali UNQUALIFIED
Nicolas IturbideRussiaStephen Shaw QUALIFIED
Smith GlickFranceBernardo Dominic PROPOSAL
David DarakjyIndiaStephen Shaw UNQUALIFIED
Stacey MacleadFranceStephen Shaw RENEWAL
Aika InouyeArgentinaElwin Sharvill QUALIFIED
Maria MarrierJapanAsiya Javayant UNQUALIFIED
Misaki RoysterCanadaOnyama Limba NEW
Adams MorascaIndiaAsiya Javayant NEW
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Adams MorascaAustraliaStephen Shaw NEW
Emily WhobreyGermanyOnyama Limba QUALIFIED
Kadeem FlosiFranceAnna Fali NEW
Ashley DoeArgentinaIoni Bowcher QUALIFIED
Misaki RoysterCanadaAnna Fali QUALIFIED
Maria MarrierRussiaOnyama Limba QUALIFIED
Juan WieserSpainXuxue Feng QUALIFIED
Julie StensethIndiaAnna Fali 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>