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
Salvatore StockhamJapanStephen Shaw UNQUALIFIED
Wickens NestleGermanyXuxue Feng NEW
Smith GlickUnited KingdomIoni Bowcher NEGOTIATION
Aika InouyeJapanOnyama Limba NEW
Salvatore StockhamIndiaAnna Fali PROPOSAL
Faith GillianArgentinaOnyama Limba UNQUALIFIED
Adams MorascaAustraliaXuxue Feng UNQUALIFIED
Arvin AlbaresItalyAmy Elsner PROPOSAL
Deepesh ChuiCanadaBernardo Dominic QUALIFIED
Faith GillianAustraliaIoni Bowcher NEW
Julie StensethSpainOnyama Limba QUALIFIED
Ivar PaprockiSpainAmy Elsner NEW
Mayumi KolmetzItalyIvan Magalhaes QUALIFIED
Aika InouyeUnited KingdomElwin Sharvill QUALIFIED
Misaki RoysterArgentinaStephen Shaw NEW
Mujtaba NickaUnited KingdomBernardo Dominic QUALIFIED
Leja CaldareraItalyBernardo Dominic NEW
Jennifer AmigonUnited KingdomIoni Bowcher PROPOSAL
Jones VocelkaFranceIoni Bowcher PROPOSAL
Mayumi KolmetzIndiaAnna Fali NEW
Maisha RulapaughCanadaStephen Shaw PROPOSAL
Sinclair WaycottFranceStephen Shaw UNQUALIFIED
Leja CaldareraUnited KingdomOnyama Limba NEGOTIATION
Alejandro PerinArgentinaOnyama Limba QUALIFIED
Leon OldroydJapanXuxue Feng UNQUALIFIED
Aika InouyeGermanyAmy Elsner QUALIFIED
Jones VocelkaCanadaXuxue Feng UNQUALIFIED
Claire TollnerItalyOnyama Limba PROPOSAL
Aditya KuskoItalyIoni Bowcher RENEWAL
Adams MorascaIndiaBernardo Dominic PROPOSAL
Alejandro PerinGermanyElwin Sharvill QUALIFIED
Ivar PaprockiRussiaAnna Fali UNQUALIFIED
Wickens NestleJapanAnna Fali NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiAustraliaAsiya Javayant NEW
Smith GlickUnited KingdomIvan Magalhaes QUALIFIED
Jeanfrancois VenereArgentinaBernardo Dominic RENEWAL
Mujtaba NickaItalyAnna Fali NEW
Clifford RimRussiaOnyama Limba QUALIFIED
Chavez BriddickCanadaAsiya Javayant RENEWAL
Munro FerenczJapanAmy Elsner QUALIFIED
Francesco ShinkoArgentinaAsiya Javayant UNQUALIFIED
Cody SaylorsJapanElwin Sharvill NEGOTIATION
Aruna FigeroaIndiaElwin Sharvill PROPOSAL
Claire TollnerGermanyElwin Sharvill NEGOTIATION
Munro FerenczArgentinaStephen Shaw NEW
Jefferson SchemmerAustraliaAnna Fali NEW
Faith GillianFranceElwin Sharvill NEGOTIATION
Alejandro PerinSpainIoni Bowcher RENEWAL
Julie StensethUnited KingdomIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika InouyeSpainElwin Sharvill NEGOTIATION
Faith GillianIndiaIvan Magalhaes QUALIFIED
Ashley DoeCanadaStephen Shaw NEW
Morrow RutaFranceXuxue Feng NEW
Izzy GarufiUnited KingdomAnna Fali NEW
Morrow RutaGermanyIoni Bowcher PROPOSAL
Stacey MacleadSpainIvan Magalhaes UNQUALIFIED
Munro FerenczBrazilIvan Magalhaes RENEWAL
Juan WieserFranceIoni Bowcher QUALIFIED
Rodrigues CampainBrazilXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyBrazil2026-05-18Truhlar And Truhlar Attys UNQUALIFIED41Bernardo Dominic
1001Morrow RutaCanada2026-05-21Feiner Bros NEW46Xuxue Feng
1002Ricardo GauchoJapan2026-05-23Feiner Bros NEW75Ioni Bowcher
1003Francesco ShinkoGermany2026-05-13Printing Dimensions QUALIFIED88Onyama Limba
1004Sinclair WaycottFrance2026-06-01Morlong Associates RENEWAL20Asiya Javayant
1005Rodrigues CampainUnited Kingdom2026-05-25Buckley Miller Wright NEGOTIATION71Elwin Sharvill
1006Aruna FigeroaUnited Kingdom2026-05-18King, Christopher A Esq PROPOSAL13Amy Elsner
1007Faith GillianIndia2026-05-08Chapman, Ross E Esq NEW6Amy Elsner
1008Jeanfrancois VenereSpain2026-05-26Rangoni Of Florence QUALIFIED87Anna Fali
1009Deepesh ChuiUnited Kingdom2026-05-26Buckley Miller Wright QUALIFIED48Onyama Limba
1010Francesco ShinkoFrance2026-05-08Feiner Bros NEGOTIATION74Bernardo Dominic
1011Ashley DoeFrance2026-05-30Benton, John B Jr QUALIFIED12Amy Elsner
1012Mujtaba NickaRussia2026-05-19Buckley Miller Wright PROPOSAL61Elwin Sharvill
1013Rodrigues CampainUnited Kingdom2026-05-28Chanay, Jeffrey A Esq PROPOSAL73Amy Elsner
1014Claire TollnerCanada2026-05-19Feltz Printing Service NEW72Bernardo Dominic
1015Kadeem FlosiCanada2026-06-03Commercial Press RENEWAL77Onyama Limba
1016Maria MarrierJapan2026-05-08King, Christopher A Esq NEW36Onyama Limba
1017Munro FerenczBrazil2026-05-26Feiner Bros RENEWAL15Ivan Magalhaes
1018Kaitlin OstroskyJapan2026-05-15Truhlar And Truhlar Attys RENEWAL53Anna Fali
1019Tony FollerJapan2026-05-30Feltz Printing Service RENEWAL31Asiya Javayant
1020Tony FollerSpain2026-06-06Buckley Miller Wright RENEWAL31Elwin Sharvill
1021Jennifer AmigonUnited Kingdom2026-05-17Dorl, James J Esq NEW57Stephen Shaw
1022Salvatore StockhamSpain2026-05-09Morlong Associates NEGOTIATION39Anna Fali
1023Juan WieserIndia2026-05-16Dorl, James J Esq NEGOTIATION72Xuxue Feng
1024Claire TollnerJapan2026-05-23Rangoni Of Florence NEW23Onyama Limba
1025Izzy GarufiItaly2026-05-19King, Christopher A Esq NEGOTIATION75Ivan Magalhaes
1026Izzy GarufiUnited Kingdom2026-06-04Rousseaux, Michael Esq NEGOTIATION86Ioni Bowcher
1027Sinclair WaycottBrazil2026-06-02Chapman, Ross E Esq PROPOSAL4Xuxue Feng
1028Murillo MaletCanada2026-05-21Printing Dimensions PROPOSAL81Xuxue Feng
1029Sinclair WaycottArgentina2026-05-16Commercial Press NEW37Anna Fali
1030Arvin AlbaresArgentina2026-05-20King, Christopher A Esq UNQUALIFIED40Amy Elsner
1031Greenwood BologniaCanada2026-05-31Printing Dimensions RENEWAL15Onyama Limba
1032Maria MarrierSpain2026-05-21Chanay, Jeffrey A Esq QUALIFIED92Ivan Magalhaes
1033Greenwood BologniaUnited Kingdom2026-05-12Feiner Bros NEW90Elwin Sharvill
1034Murillo MaletGermany2026-06-05Chemel, James L Cpa NEW78Onyama Limba
1035Ricardo GauchoFrance2026-06-03Feiner Bros NEGOTIATION55Onyama Limba
1036Jefferson SchemmerIndia2026-05-28Truhlar And Truhlar Attys NEGOTIATION93Ivan Magalhaes
1037Tony FollerSpain2026-06-01Chapman, Ross E Esq NEW40Stephen Shaw
1038Chavez BriddickArgentina2026-05-08Benton, John B Jr UNQUALIFIED57Ivan Magalhaes
1039Emily WhobreyFrance2026-05-25Rangoni Of Florence QUALIFIED33Ivan Magalhaes
1040Leja CaldareraItaly2026-05-31Benton, John B Jr NEW12Ivan Magalhaes
1041Kadeem FlosiFrance2026-05-23Chemel, James L Cpa UNQUALIFIED31Onyama Limba
1042Jones VocelkaItaly2026-05-21Rousseaux, Michael Esq RENEWAL33Ioni Bowcher
1043Aruna FigeroaCanada2026-06-05Benton, John B Jr UNQUALIFIED97Ioni Bowcher
1044Chavez BriddickArgentina2026-05-21Printing Dimensions PROPOSAL29Xuxue Feng
1045Chavez BriddickAustralia2026-05-18King, Christopher A Esq NEGOTIATION59Xuxue Feng
1046Francesco ShinkoRussia2026-05-31Commercial Press RENEWAL23Asiya Javayant
1047Stacey MacleadIndia2026-05-30Rousseaux, Michael Esq QUALIFIED36Onyama Limba
1048Leja CaldareraSpain2026-05-10Feiner Bros PROPOSAL26Onyama Limba
1049Morrow RutaFrance2026-05-13Chemel, James L Cpa UNQUALIFIED59Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaCanadaOnyama Limba PROPOSAL
Francesco ShinkoUnited KingdomOnyama Limba NEW
Adams MorascaIndiaAnna Fali UNQUALIFIED
Aruna FigeroaJapanAnna Fali UNQUALIFIED
Leja CaldareraSpainIoni Bowcher PROPOSAL
Aruna FigeroaBrazilStephen Shaw QUALIFIED
Juan WieserAustraliaOnyama Limba NEW
Adams MorascaItalyXuxue Feng NEW
Arvin AlbaresSpainStephen Shaw UNQUALIFIED
Izzy GarufiUnited KingdomAnna Fali PROPOSAL
Morrow RutaSpainIoni Bowcher QUALIFIED
Morrow RutaAustraliaAmy Elsner NEW
Jones VocelkaUnited KingdomElwin Sharvill NEW
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Murillo MaletJapanElwin Sharvill NEW
Morrow RutaBrazilIoni Bowcher PROPOSAL
Maria MarrierAustraliaAnna Fali NEW
Leja CaldareraArgentinaAnna Fali QUALIFIED
Sinclair WaycottArgentinaXuxue Feng UNQUALIFIED
Cody SaylorsIndiaBernardo Dominic NEW
Leon OldroydJapanElwin Sharvill NEGOTIATION
Claire TollnerUnited KingdomOnyama Limba RENEWAL
Ricardo GauchoJapanIoni Bowcher NEGOTIATION
Juan WieserItalyAsiya Javayant RENEWAL
James ButtUnited KingdomIoni Bowcher QUALIFIED
Maria MarrierAustraliaBernardo Dominic QUALIFIED
Leja CaldareraIndiaAnna Fali QUALIFIED
Deepesh ChuiUnited KingdomAnna Fali RENEWAL
Munro FerenczRussiaAmy Elsner UNQUALIFIED
Stacey MacleadFranceAsiya Javayant NEGOTIATION
Jones VocelkaItalyBernardo Dominic NEGOTIATION
Darci PoquetteRussiaXuxue Feng NEGOTIATION
Jefferson SchemmerItalyIoni Bowcher UNQUALIFIED
Smith GlickRussiaIoni Bowcher QUALIFIED
Chavez BriddickArgentinaElwin Sharvill RENEWAL
Julie StensethAustraliaAmy Elsner QUALIFIED
Ivar PaprockiUnited KingdomBernardo Dominic RENEWAL
Deepesh ChuiGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoRussiaAsiya Javayant NEW
Aditya KuskoItalyOnyama Limba NEW
Faith GillianUnited KingdomAmy Elsner UNQUALIFIED
Wickens NestleCanadaStephen Shaw RENEWAL
Octavia MaletFranceAmy Elsner QUALIFIED
Alejandro PerinFranceAsiya Javayant NEW
Wickens NestleGermanyBernardo Dominic NEGOTIATION
Smith GlickGermanyIoni Bowcher QUALIFIED
Tony FollerAustraliaIvan Magalhaes NEGOTIATION
Salvatore StockhamFranceBernardo Dominic PROPOSAL
Stacey MacleadUnited KingdomBernardo Dominic RENEWAL
Emily WhobreyFranceOnyama Limba QUALIFIED
Frozen Columns
Name
Mayumi Kolmetz
Ashley Doe
Ricardo Gaucho
Johnson Sergi
Jefferson Schemmer
Morrow Ruta
Izzy Garufi
Julie Stenseth
Octavia Malet
Izzy Garufi
Stacey Maclead
Aruna Figeroa
Antonio Caudy
Tony Foller
Julie Stenseth
Adams Morasca
Tony Foller
Jefferson Schemmer
Costa Dilliard
Silvio Slusarski
Isabel Bowley
Ricardo Gaucho
Mayumi Kolmetz
Jennifer Amigon
Jefferson Schemmer
Darci Poquette
Darci Poquette
Nicolas Iturbide
Leon Oldroyd
Aika Inouye
Aika Inouye
Octavia Malet
Murillo Malet
Tony Foller
Francesco Shinko
Emily Whobrey
Silvio Slusarski
Kaitlin Ostrosky
Smith Glick
Jones Vocelka
Cody Saylors
Rodrigues Campain
Chavez Briddick
Misaki Royster
Cody Saylors
Aditya Kusko
Johnson Sergi
Tony Foller
Stacey Maclead
Nicolas Iturbide
IdCountryDate
1000Argentina2026-05-20
1001United Kingdom2026-05-24
1002France2026-05-17
1003Japan2026-05-16
1004Italy2026-05-20
1005Argentina2026-05-25
1006Germany2026-05-12
1007Italy2026-05-23
1008Germany2026-05-18
1009India2026-05-20
1010France2026-05-08
1011France2026-05-20
1012Australia2026-05-22
1013Brazil2026-05-11
1014France2026-06-03
1015Australia2026-05-14
1016Canada2026-05-20
1017Italy2026-06-02
1018Germany2026-05-12
1019United Kingdom2026-05-12
1020France2026-06-05
1021India2026-05-14
1022Russia2026-05-15
1023Germany2026-06-02
1024Russia2026-05-10
1025Brazil2026-05-29
1026Spain2026-05-28
1027Spain2026-05-27
1028Canada2026-06-04
1029France2026-05-31
1030Australia2026-05-29
1031Russia2026-05-20
1032Japan2026-05-15
1033Brazil2026-05-23
1034Russia2026-05-10
1035Brazil2026-05-20
1036Argentina2026-05-28
1037Japan2026-05-08
1038Japan2026-05-13
1039Spain2026-05-11
1040Germany2026-05-29
1041Spain2026-06-04
1042Canada2026-05-18
1043Italy2026-05-08
1044United Kingdom2026-05-27
1045Germany2026-05-17
1046India2026-06-05
1047Italy2026-05-19
1048Australia2026-05-27
1049Japan2026-05-16

On-Demand Data

NameIdCountryDate
Mayumi Kolmetz1000India2026-06-05
Leon Oldroyd1001Spain2026-05-25
Morrow Ruta1002Canada2026-05-15
Adams Morasca1003United Kingdom2026-06-03
Clifford Rim1004Australia2026-05-23
Julie Stenseth1005United Kingdom2026-05-30
Mujtaba Nicka1006Australia2026-05-19
Greenwood Bolognia1007Japan2026-05-24
Claire Tollner1008Argentina2026-05-11
Aika Inouye1009Italy2026-05-22
Leja Caldarera1010Australia2026-06-02
Chavez Briddick1011France2026-05-29
Jeanfrancois Venere1012Russia2026-06-03
Jeanfrancois Venere1013Germany2026-05-17
Munro Ferencz1014Germany2026-05-25
Mayumi Kolmetz1015Germany2026-05-10
Salvatore Stockham1016Argentina2026-05-09
Morrow Ruta1017Japan2026-05-27
Murillo Malet1018France2026-05-11
Jeanfrancois Venere1019France2026-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerCanadaIoni Bowcher NEGOTIATION
Ashley DoeJapanIvan Magalhaes QUALIFIED
Mujtaba NickaAustraliaElwin Sharvill NEGOTIATION
Aika InouyeIndiaIoni Bowcher NEW
Maria MarrierUnited KingdomBernardo Dominic QUALIFIED
Morrow RutaAustraliaAsiya Javayant UNQUALIFIED
Tony FollerUnited KingdomXuxue Feng UNQUALIFIED
Emily WhobreyRussiaAsiya Javayant NEGOTIATION
Claire TollnerIndiaIoni Bowcher PROPOSAL
Mujtaba NickaUnited KingdomXuxue Feng NEGOTIATION
Mujtaba NickaBrazilBernardo Dominic RENEWAL
Kaitlin OstroskyArgentinaOnyama Limba QUALIFIED
Jeanfrancois VenereJapanIvan Magalhaes NEW
Mujtaba NickaAustraliaIoni Bowcher QUALIFIED
Faith GillianGermanyStephen Shaw NEW
Julie StensethBrazilBernardo Dominic QUALIFIED
Aditya KuskoIndiaAmy Elsner NEGOTIATION
Stacey MacleadJapanIoni Bowcher NEW
Maisha RulapaughGermanyIvan Magalhaes RENEWAL
Maria MarrierJapanOnyama Limba NEW
Stacey MacleadBrazilXuxue Feng RENEWAL
Nicolas IturbideFranceElwin Sharvill PROPOSAL
Antonio CaudyFranceIoni Bowcher PROPOSAL
Misaki RoysterCanadaXuxue Feng NEGOTIATION
Aika InouyeJapanAmy Elsner NEGOTIATION
Juan WieserArgentinaXuxue Feng RENEWAL
Murillo MaletSpainOnyama Limba NEW
Jennifer AmigonJapanBernardo Dominic NEW
Wickens NestleAustraliaAnna Fali NEW
Rodrigues CampainBrazilAnna Fali NEGOTIATION
Isabel BowleyArgentinaAmy Elsner PROPOSAL
Chavez BriddickCanadaIoni Bowcher UNQUALIFIED
David DarakjyIndiaIvan Magalhaes NEGOTIATION
Alejandro PerinBrazilXuxue Feng QUALIFIED
Leja CaldareraCanadaElwin Sharvill NEW
Cody SaylorsUnited KingdomAsiya Javayant RENEWAL
Faith GillianArgentinaIoni Bowcher QUALIFIED
Mujtaba NickaCanadaAmy Elsner QUALIFIED
Nicolas IturbideSpainIoni Bowcher PROPOSAL
Aruna FigeroaSpainStephen Shaw QUALIFIED

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