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
Kadeem FlosiUnited KingdomOnyama Limba UNQUALIFIED
Leja CaldareraJapanIvan Magalhaes QUALIFIED
Ricardo GauchoIndiaAnna Fali QUALIFIED
Aruna FigeroaJapanXuxue Feng NEW
Jennifer AmigonCanadaIoni Bowcher NEGOTIATION
Octavia MaletArgentinaAmy Elsner NEW
David DarakjyIndiaXuxue Feng NEGOTIATION
Aditya KuskoFranceOnyama Limba RENEWAL
Johnson SergiAustraliaAsiya Javayant RENEWAL
Julie StensethItalyStephen Shaw UNQUALIFIED
Mayumi KolmetzArgentinaOnyama Limba UNQUALIFIED
Tony FollerCanadaIvan Magalhaes NEW
Kadeem FlosiArgentinaIoni Bowcher NEW
Nicolas IturbideArgentinaStephen Shaw RENEWAL
Silvio SlusarskiAustraliaElwin Sharvill QUALIFIED
Aditya KuskoItalyAsiya Javayant NEGOTIATION
Costa DilliardItalyAnna Fali NEW
Costa DilliardIndiaElwin Sharvill NEW
Mayumi KolmetzAustraliaIoni Bowcher PROPOSAL
Deepesh ChuiFranceStephen Shaw PROPOSAL
Juan WieserUnited KingdomAnna Fali UNQUALIFIED
Mayumi KolmetzRussiaIoni Bowcher NEW
Kaitlin OstroskyFranceIoni Bowcher NEW
Johnson SergiSpainIvan Magalhaes UNQUALIFIED
Smith GlickUnited KingdomAsiya Javayant RENEWAL
Julie StensethArgentinaAmy Elsner PROPOSAL
Clifford RimGermanyAsiya Javayant PROPOSAL
Darci PoquetteSpainIvan Magalhaes UNQUALIFIED
Salvatore StockhamAustraliaAnna Fali QUALIFIED
Mujtaba NickaBrazilOnyama Limba RENEWAL
Julie StensethArgentinaBernardo Dominic UNQUALIFIED
Ivar PaprockiBrazilIoni Bowcher UNQUALIFIED
Sinclair WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Wickens NestleJapanAsiya Javayant PROPOSAL
Rodrigues CampainAustraliaAnna Fali UNQUALIFIED
Jeanfrancois VenereGermanyXuxue Feng UNQUALIFIED
Wickens NestleJapanOnyama Limba NEW
James ButtItalyElwin Sharvill PROPOSAL
Leja CaldareraArgentinaBernardo Dominic UNQUALIFIED
Antonio CaudyJapanElwin Sharvill PROPOSAL
Ivar PaprockiJapanStephen Shaw UNQUALIFIED
Leja CaldareraIndiaBernardo Dominic NEW
Leja CaldareraRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic NEW
Juan WieserUnited KingdomStephen Shaw PROPOSAL
Sinclair WaycottGermanyAmy Elsner QUALIFIED
Johnson SergiIndiaIoni Bowcher UNQUALIFIED
Costa DilliardCanadaIvan Magalhaes NEGOTIATION
Isabel BowleyUnited KingdomOnyama Limba RENEWAL
Jones VocelkaItalyBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Wickens NestleGermanyBernardo Dominic NEGOTIATION
Costa DilliardItalyBernardo Dominic PROPOSAL
Alejandro PerinUnited KingdomOnyama Limba UNQUALIFIED
Isabel BowleyCanadaAmy Elsner NEW
Deepesh ChuiArgentinaXuxue Feng PROPOSAL
Isabel BowleyIndiaAnna Fali QUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill RENEWAL
Salvatore StockhamRussiaAsiya Javayant UNQUALIFIED
Rodrigues CampainArgentinaXuxue Feng NEGOTIATION
Wickens NestleArgentinaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskyJapan2026-03-31Truhlar And Truhlar Attys QUALIFIED45Ivan Magalhaes
1001Octavia MaletItaly2026-04-01Chapman, Ross E Esq UNQUALIFIED78Ioni Bowcher
1002Stacey MacleadArgentina2026-03-30King, Christopher A Esq PROPOSAL8Onyama Limba
1003Salvatore StockhamArgentina2026-04-16Truhlar And Truhlar Attys RENEWAL52Xuxue Feng
1004Francesco ShinkoGermany2026-03-29Feltz Printing Service NEW4Anna Fali
1005Chavez BriddickBrazil2026-04-12Chemel, James L Cpa QUALIFIED78Bernardo Dominic
1006Faith GillianGermany2026-03-29Buckley Miller Wright NEW99Ioni Bowcher
1007Smith GlickGermany2026-04-10Chemel, James L Cpa QUALIFIED99Elwin Sharvill
1008Aruna FigeroaArgentina2026-04-04Rousseaux, Michael Esq UNQUALIFIED85Anna Fali
1009Johnson SergiBrazil2026-04-16Truhlar And Truhlar Attys UNQUALIFIED12Elwin Sharvill
1010Chavez BriddickCanada2026-04-17Rangoni Of Florence NEGOTIATION94Ivan Magalhaes
1011Silvio SlusarskiArgentina2026-03-24Feiner Bros NEW8Stephen Shaw
1012David DarakjyRussia2026-04-06Feiner Bros RENEWAL96Amy Elsner
1013Smith GlickSpain2026-04-08Feltz Printing Service UNQUALIFIED25Onyama Limba
1014Morrow RutaFrance2026-03-31Morlong Associates RENEWAL32Asiya Javayant
1015Francesco ShinkoRussia2026-04-14Buckley Miller Wright QUALIFIED7Stephen Shaw
1016Ashley DoeGermany2026-03-29Rangoni Of Florence PROPOSAL20Stephen Shaw
1017Juan WieserAustralia2026-03-24Buckley Miller Wright PROPOSAL14Asiya Javayant
1018Arvin AlbaresItaly2026-04-17Rousseaux, Michael Esq NEGOTIATION10Stephen Shaw
1019Ivar PaprockiSpain2026-03-31Feiner Bros NEGOTIATION27Elwin Sharvill
1020Silvio SlusarskiArgentina2026-03-28Feltz Printing Service QUALIFIED28Stephen Shaw
1021Francesco ShinkoSpain2026-03-30Morlong Associates RENEWAL57Xuxue Feng
1022Aika InouyeCanada2026-03-28Feiner Bros RENEWAL27Amy Elsner
1023Deepesh ChuiGermany2026-04-12Chanay, Jeffrey A Esq NEGOTIATION99Stephen Shaw
1024Cody SaylorsArgentina2026-04-10Rangoni Of Florence UNQUALIFIED80Elwin Sharvill
1025Leon OldroydBrazil2026-04-21Rangoni Of Florence NEW64Anna Fali
1026Smith GlickCanada2026-04-17Dorl, James J Esq QUALIFIED24Onyama Limba
1027Maisha RulapaughSpain2026-04-16Feltz Printing Service NEGOTIATION29Amy Elsner
1028Maria MarrierIndia2026-04-09Chemel, James L Cpa UNQUALIFIED15Anna Fali
1029Jennifer AmigonUnited Kingdom2026-03-25Printing Dimensions PROPOSAL3Amy Elsner
1030Alejandro PerinJapan2026-04-08King, Christopher A Esq NEW46Bernardo Dominic
1031Ricardo GauchoSpain2026-03-27Rangoni Of Florence QUALIFIED63Elwin Sharvill
1032Juan WieserCanada2026-04-08Benton, John B Jr NEGOTIATION53Onyama Limba
1033Aditya KuskoSpain2026-04-06Printing Dimensions RENEWAL17Ivan Magalhaes
1034Sinclair WaycottAustralia2026-04-17Benton, John B Jr PROPOSAL47Ivan Magalhaes
1035Kaitlin OstroskySpain2026-03-29Buckley Miller Wright PROPOSAL49Asiya Javayant
1036Faith GillianItaly2026-04-01Printing Dimensions RENEWAL37Elwin Sharvill
1037Julie StensethArgentina2026-04-16Rousseaux, Michael Esq PROPOSAL34Anna Fali
1038Claire TollnerFrance2026-03-25King, Christopher A Esq NEGOTIATION85Ioni Bowcher
1039Sinclair WaycottCanada2026-03-28Printing Dimensions RENEWAL8Asiya Javayant
1040Alejandro PerinFrance2026-03-31Morlong Associates NEW7Amy Elsner
1041Costa DilliardCanada2026-03-27Chanay, Jeffrey A Esq PROPOSAL63Ioni Bowcher
1042Chavez BriddickUnited Kingdom2026-04-14Benton, John B Jr NEW82Xuxue Feng
1043Rodrigues CampainArgentina2026-04-14Commercial Press QUALIFIED72Elwin Sharvill
1044Tony FollerFrance2026-04-19Feiner Bros QUALIFIED17Anna Fali
1045Jennifer AmigonCanada2026-04-09King, Christopher A Esq PROPOSAL83Onyama Limba
1046Aruna FigeroaIndia2026-04-19Morlong Associates PROPOSAL59Bernardo Dominic
1047Stacey MacleadAustralia2026-04-15Rousseaux, Michael Esq RENEWAL29Stephen Shaw
1048Jefferson SchemmerBrazil2026-03-28King, Christopher A Esq QUALIFIED4Stephen Shaw
1049Jefferson SchemmerBrazil2026-03-31Feiner Bros NEW24Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserFranceIoni Bowcher PROPOSAL
Emily WhobreyArgentinaXuxue Feng UNQUALIFIED
Murillo MaletAustraliaElwin Sharvill NEGOTIATION
Juan WieserJapanStephen Shaw QUALIFIED
Tony FollerRussiaStephen Shaw RENEWAL
Chavez BriddickCanadaBernardo Dominic RENEWAL
Maisha RulapaughIndiaXuxue Feng RENEWAL
David DarakjyRussiaOnyama Limba QUALIFIED
Izzy GarufiItalyOnyama Limba RENEWAL
Maria MarrierGermanyXuxue Feng PROPOSAL
Aika InouyeAustraliaOnyama Limba NEW
Smith GlickGermanyAnna Fali NEGOTIATION
Antonio CaudyBrazilIvan Magalhaes RENEWAL
Leon OldroydSpainXuxue Feng NEW
Misaki RoysterCanadaAnna Fali NEW
Francesco ShinkoRussiaOnyama Limba UNQUALIFIED
James ButtJapanStephen Shaw UNQUALIFIED
Leja CaldareraIndiaIoni Bowcher NEW
Julie StensethIndiaAmy Elsner UNQUALIFIED
Aika InouyeFranceAmy Elsner NEW
Jefferson SchemmerItalyAsiya Javayant RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali NEGOTIATION
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Smith GlickGermanyElwin Sharvill RENEWAL
Morrow RutaRussiaIoni Bowcher QUALIFIED
Mayumi KolmetzUnited KingdomBernardo Dominic RENEWAL
Arvin AlbaresSpainIvan Magalhaes NEW
Arvin AlbaresArgentinaXuxue Feng NEW
Ivar PaprockiCanadaAsiya Javayant QUALIFIED
Arvin AlbaresAustraliaXuxue Feng QUALIFIED
Darci PoquetteBrazilXuxue Feng RENEWAL
Nicolas IturbideCanadaAnna Fali RENEWAL
Leon OldroydItalyStephen Shaw QUALIFIED
Salvatore StockhamSpainIoni Bowcher PROPOSAL
Smith GlickAustraliaOnyama Limba RENEWAL
Adams MorascaArgentinaAsiya Javayant UNQUALIFIED
Nicolas IturbideCanadaIoni Bowcher RENEWAL
Emily WhobreySpainXuxue Feng NEGOTIATION
Greenwood BologniaAustraliaXuxue Feng UNQUALIFIED
Emily WhobreyArgentinaAnna Fali UNQUALIFIED
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
Cody SaylorsUnited KingdomAnna Fali NEGOTIATION
Adams MorascaFranceIoni Bowcher NEW
Octavia MaletItalyOnyama Limba UNQUALIFIED
Jones VocelkaAustraliaIoni Bowcher NEW
Silvio SlusarskiIndiaAmy Elsner NEW
Aditya KuskoFranceIoni Bowcher NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes RENEWAL
Alejandro PerinItalyStephen Shaw PROPOSAL
Aditya KuskoArgentinaXuxue Feng PROPOSAL
Frozen Columns
Name
Misaki Royster
Aika Inouye
Aruna Figeroa
Isabel Bowley
Chavez Briddick
Leon Oldroyd
Kadeem Flosi
Sinclair Waycott
Julie Stenseth
Clifford Rim
Deepesh Chui
Mayumi Kolmetz
Juan Wieser
Jones Vocelka
Ashley Doe
Kadeem Flosi
Maria Marrier
Ivar Paprocki
Isabel Bowley
Aika Inouye
Ricardo Gaucho
Ashley Doe
Leon Oldroyd
Sinclair Waycott
Jones Vocelka
James Butt
Misaki Royster
Darci Poquette
Alejandro Perin
Alejandro Perin
Costa Dilliard
Costa Dilliard
Ashley Doe
Jeanfrancois Venere
Leja Caldarera
Sinclair Waycott
Deepesh Chui
Isabel Bowley
Arvin Albares
Izzy Garufi
Maisha Rulapaugh
Salvatore Stockham
Munro Ferencz
Stacey Maclead
Aruna Figeroa
Aruna Figeroa
Leja Caldarera
Faith Gillian
Leon Oldroyd
Rodrigues Campain
IdCountryDate
1000Australia2026-04-18
1001India2026-04-07
1002Italy2026-04-12
1003Spain2026-04-13
1004Japan2026-04-07
1005Argentina2026-04-16
1006Argentina2026-04-09
1007Russia2026-04-19
1008Australia2026-03-25
1009Canada2026-04-09
1010United Kingdom2026-03-28
1011Italy2026-04-01
1012Argentina2026-04-11
1013Japan2026-03-31
1014Argentina2026-04-02
1015India2026-04-22
1016India2026-04-13
1017France2026-04-16
1018United Kingdom2026-04-07
1019Russia2026-04-14
1020Canada2026-04-13
1021Brazil2026-04-18
1022Spain2026-04-12
1023Russia2026-04-05
1024Australia2026-04-15
1025Germany2026-03-29
1026United Kingdom2026-04-03
1027France2026-04-20
1028Argentina2026-03-24
1029India2026-04-09
1030Brazil2026-04-10
1031Brazil2026-04-13
1032India2026-04-21
1033Brazil2026-03-25
1034France2026-04-06
1035Australia2026-04-07
1036Spain2026-04-14
1037Argentina2026-04-18
1038Russia2026-03-24
1039United Kingdom2026-03-31
1040Spain2026-04-06
1041France2026-03-31
1042France2026-04-20
1043Canada2026-03-29
1044Canada2026-04-17
1045Australia2026-04-19
1046Japan2026-04-08
1047Argentina2026-04-15
1048Germany2026-04-06
1049Argentina2026-03-26

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Japan2026-03-29
Francesco Shinko1001Spain2026-04-15
Johnson Sergi1002Brazil2026-04-16
Chavez Briddick1003France2026-04-17
Clifford Rim1004India2026-04-13
Clifford Rim1005Australia2026-04-21
Deepesh Chui1006Russia2026-04-22
Silvio Slusarski1007Japan2026-04-11
Aruna Figeroa1008Germany2026-04-14
Stacey Maclead1009Japan2026-03-25
Juan Wieser1010Russia2026-03-28
Jones Vocelka1011Italy2026-03-27
Kaitlin Ostrosky1012Brazil2026-04-22
Adams Morasca1013Argentina2026-04-22
James Butt1014Russia2026-03-26
Cody Saylors1015Germany2026-03-27
Morrow Ruta1016Canada2026-03-29
Aruna Figeroa1017Spain2026-04-05
Julie Stenseth1018Brazil2026-04-04
Jennifer Amigon1019Italy2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith GillianIndiaIvan Magalhaes PROPOSAL
Arvin AlbaresCanadaIoni Bowcher NEGOTIATION
Aditya KuskoRussiaOnyama Limba RENEWAL
Aruna FigeroaIndiaElwin Sharvill NEGOTIATION
Kadeem FlosiItalyOnyama Limba QUALIFIED
Isabel BowleyFranceIoni Bowcher PROPOSAL
Aruna FigeroaRussiaBernardo Dominic UNQUALIFIED
Wickens NestleFranceElwin Sharvill NEGOTIATION
Octavia MaletCanadaAnna Fali UNQUALIFIED
Cody SaylorsItalyAsiya Javayant RENEWAL
Stacey MacleadCanadaIvan Magalhaes UNQUALIFIED
Leja CaldareraJapanOnyama Limba UNQUALIFIED
Costa DilliardItalyStephen Shaw NEW
David DarakjyBrazilBernardo Dominic RENEWAL
Maisha RulapaughFranceElwin Sharvill NEW
Jeanfrancois VenereRussiaElwin Sharvill NEGOTIATION
Jennifer AmigonItalyAnna Fali QUALIFIED
Jefferson SchemmerBrazilIvan Magalhaes QUALIFIED
Emily WhobreyAustraliaIoni Bowcher UNQUALIFIED
Faith GillianSpainAsiya Javayant PROPOSAL
Mayumi KolmetzUnited KingdomElwin Sharvill NEW
Isabel BowleyJapanElwin Sharvill QUALIFIED
Stacey MacleadBrazilIvan Magalhaes UNQUALIFIED
Maria MarrierAustraliaXuxue Feng QUALIFIED
Tony FollerSpainBernardo Dominic UNQUALIFIED
Kadeem FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Clifford RimArgentinaOnyama Limba UNQUALIFIED
Octavia MaletIndiaIvan Magalhaes NEW
Mayumi KolmetzBrazilAnna Fali UNQUALIFIED
Aika InouyeArgentinaBernardo Dominic NEGOTIATION
Isabel BowleyArgentinaXuxue Feng QUALIFIED
Mayumi KolmetzJapanIoni Bowcher PROPOSAL
Isabel BowleyItalyBernardo Dominic NEGOTIATION
Maria MarrierArgentinaIvan Magalhaes UNQUALIFIED
Smith GlickRussiaIvan Magalhaes PROPOSAL
Claire TollnerJapanStephen Shaw QUALIFIED
Costa DilliardIndiaBernardo Dominic UNQUALIFIED
Leon OldroydItalyBernardo Dominic QUALIFIED
Mayumi KolmetzArgentinaOnyama Limba RENEWAL
Johnson SergiUnited KingdomAnna 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>