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 MaletGermanyStephen Shaw NEW
Maisha RulapaughAustraliaStephen Shaw PROPOSAL
Alejandro PerinSpainIvan Magalhaes QUALIFIED
Aruna FigeroaArgentinaBernardo Dominic NEGOTIATION
Maria MarrierGermanyOnyama Limba NEGOTIATION
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereGermanyOnyama Limba QUALIFIED
Tony FollerBrazilAmy Elsner NEW
Silvio SlusarskiIndiaElwin Sharvill RENEWAL
James ButtGermanyStephen Shaw NEGOTIATION
Faith GillianIndiaAsiya Javayant RENEWAL
Emily WhobreyArgentinaIvan Magalhaes NEGOTIATION
James ButtSpainElwin Sharvill NEGOTIATION
Ricardo GauchoJapanAmy Elsner UNQUALIFIED
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
Costa DilliardIndiaStephen Shaw UNQUALIFIED
Clifford RimAustraliaStephen Shaw NEW
Cody SaylorsGermanyAnna Fali PROPOSAL
Jennifer AmigonUnited KingdomXuxue Feng NEGOTIATION
Johnson SergiAustraliaOnyama Limba NEGOTIATION
Kaitlin OstroskyIndiaAnna Fali RENEWAL
Francesco ShinkoRussiaStephen Shaw NEW
Ivar PaprockiUnited KingdomXuxue Feng QUALIFIED
Chavez BriddickSpainAnna Fali NEW
Maria MarrierBrazilAmy Elsner RENEWAL
Jeanfrancois VenereFranceOnyama Limba UNQUALIFIED
Silvio SlusarskiItalyIoni Bowcher UNQUALIFIED
Salvatore StockhamUnited KingdomIvan Magalhaes NEW
Leja CaldareraJapanBernardo Dominic PROPOSAL
Johnson SergiJapanStephen Shaw NEGOTIATION
James ButtBrazilBernardo Dominic NEW
Aika InouyeAustraliaAsiya Javayant RENEWAL
Jefferson SchemmerGermanyIoni Bowcher NEGOTIATION
Chavez BriddickItalyIoni Bowcher UNQUALIFIED
Julie StensethUnited KingdomOnyama Limba PROPOSAL
Leja CaldareraCanadaBernardo Dominic NEGOTIATION
Julie StensethUnited KingdomAmy Elsner RENEWAL
Tony FollerBrazilAmy Elsner NEGOTIATION
Munro FerenczUnited KingdomOnyama Limba UNQUALIFIED
Misaki RoysterCanadaElwin Sharvill RENEWAL
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Misaki RoysterBrazilStephen Shaw NEW
Leon OldroydUnited KingdomAmy Elsner QUALIFIED
Leja CaldareraGermanyElwin Sharvill NEW
Cody SaylorsSpainXuxue Feng RENEWAL
Isabel BowleyAustraliaAsiya Javayant NEGOTIATION
Tony FollerBrazilIvan Magalhaes PROPOSAL
Sinclair WaycottUnited KingdomBernardo Dominic QUALIFIED
Silvio SlusarskiJapanBernardo Dominic PROPOSAL
Aditya KuskoIndiaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Costa DilliardArgentinaIoni Bowcher QUALIFIED
Darci PoquetteArgentinaBernardo Dominic NEGOTIATION
Tony FollerUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaUnited KingdomElwin Sharvill PROPOSAL
Johnson SergiFranceAsiya Javayant QUALIFIED
Maisha RulapaughFranceStephen Shaw RENEWAL
Juan WieserRussiaElwin Sharvill RENEWAL
Isabel BowleyJapanXuxue Feng PROPOSAL
Arvin AlbaresItalyAnna Fali RENEWAL
Juan WieserJapanAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyFrance2026-05-07Morlong Associates RENEWAL51Xuxue Feng
1001Jefferson SchemmerGermany2026-05-27Morlong Associates RENEWAL11Stephen Shaw
1002Jennifer AmigonFrance2026-05-31Commercial Press NEW80Xuxue Feng
1003Isabel BowleyAustralia2026-05-30Buckley Miller Wright PROPOSAL42Anna Fali
1004Mujtaba NickaBrazil2026-05-07Buckley Miller Wright QUALIFIED36Elwin Sharvill
1005Aruna FigeroaArgentina2026-05-17Chemel, James L Cpa NEW17Onyama Limba
1006Emily WhobreyArgentina2026-05-19Chemel, James L Cpa RENEWAL25Ivan Magalhaes
1007Costa DilliardSpain2026-05-15Printing Dimensions UNQUALIFIED94Asiya Javayant
1008Claire TollnerBrazil2026-05-14Chanay, Jeffrey A Esq RENEWAL42Stephen Shaw
1009Adams MorascaArgentina2026-05-11Rousseaux, Michael Esq UNQUALIFIED16Bernardo Dominic
1010Faith GillianAustralia2026-05-27Benton, John B Jr NEGOTIATION49Stephen Shaw
1011Aika InouyeSpain2026-05-21Rousseaux, Michael Esq QUALIFIED58Amy Elsner
1012James ButtRussia2026-05-18Dorl, James J Esq PROPOSAL86Xuxue Feng
1013David DarakjyRussia2026-05-27King, Christopher A Esq UNQUALIFIED3Anna Fali
1014Aruna FigeroaSpain2026-05-25Chapman, Ross E Esq QUALIFIED21Ivan Magalhaes
1015Ivar PaprockiGermany2026-05-12Chanay, Jeffrey A Esq UNQUALIFIED59Amy Elsner
1016Izzy GarufiBrazil2026-05-20Dorl, James J Esq PROPOSAL29Elwin Sharvill
1017Nicolas IturbideGermany2026-05-21Commercial Press UNQUALIFIED69Bernardo Dominic
1018Arvin AlbaresAustralia2026-05-09Feltz Printing Service NEW27Anna Fali
1019Aditya KuskoJapan2026-05-28Chapman, Ross E Esq QUALIFIED56Onyama Limba
1020Ivar PaprockiRussia2026-05-18Dorl, James J Esq RENEWAL9Anna Fali
1021Leon OldroydIndia2026-05-15King, Christopher A Esq NEGOTIATION85Onyama Limba
1022Izzy GarufiSpain2026-05-13Chapman, Ross E Esq UNQUALIFIED16Anna Fali
1023Julie StensethIndia2026-05-29Truhlar And Truhlar Attys QUALIFIED89Xuxue Feng
1024Misaki RoysterBrazil2026-05-20Commercial Press RENEWAL32Stephen Shaw
1025Ricardo GauchoAustralia2026-06-04Benton, John B Jr QUALIFIED91Ivan Magalhaes
1026Octavia MaletUnited Kingdom2026-05-17Morlong Associates RENEWAL4Anna Fali
1027Sinclair WaycottUnited Kingdom2026-05-29Chapman, Ross E Esq NEW4Stephen Shaw
1028Murillo MaletIndia2026-05-09Chapman, Ross E Esq NEGOTIATION7Ivan Magalhaes
1029Julie StensethUnited Kingdom2026-05-09Chanay, Jeffrey A Esq RENEWAL3Onyama Limba
1030Emily WhobreyRussia2026-05-16Chemel, James L Cpa NEGOTIATION17Ioni Bowcher
1031Aruna FigeroaAustralia2026-05-19Feltz Printing Service RENEWAL87Elwin Sharvill
1032Silvio SlusarskiGermany2026-05-18Buckley Miller Wright RENEWAL38Ivan Magalhaes
1033Antonio CaudyFrance2026-05-22Benton, John B Jr QUALIFIED57Ivan Magalhaes
1034Claire TollnerSpain2026-05-28Feiner Bros RENEWAL42Anna Fali
1035Stacey MacleadArgentina2026-06-05Chapman, Ross E Esq PROPOSAL21Stephen Shaw
1036Faith GillianArgentina2026-05-27Chapman, Ross E Esq NEGOTIATION67Ioni Bowcher
1037Stacey MacleadFrance2026-05-19Rangoni Of Florence RENEWAL67Bernardo Dominic
1038David DarakjyIndia2026-05-08Chemel, James L Cpa NEW23Onyama Limba
1039Isabel BowleyItaly2026-05-30Printing Dimensions NEGOTIATION45Ivan Magalhaes
1040Munro FerenczCanada2026-05-17Rousseaux, Michael Esq NEGOTIATION72Ivan Magalhaes
1041Kadeem FlosiItaly2026-05-27Morlong Associates PROPOSAL5Asiya Javayant
1042Emily WhobreyFrance2026-05-10Printing Dimensions NEGOTIATION45Ioni Bowcher
1043Chavez BriddickAustralia2026-05-13Rousseaux, Michael Esq UNQUALIFIED36Ivan Magalhaes
1044Maisha RulapaughBrazil2026-05-25Dorl, James J Esq PROPOSAL9Amy Elsner
1045Misaki RoysterArgentina2026-05-12Truhlar And Truhlar Attys PROPOSAL60Stephen Shaw
1046Jones VocelkaIndia2026-05-11Printing Dimensions UNQUALIFIED46Elwin Sharvill
1047Deepesh ChuiFrance2026-05-26Feltz Printing Service PROPOSAL74Bernardo Dominic
1048Tony FollerJapan2026-06-03Chemel, James L Cpa PROPOSAL28Ivan Magalhaes
1049Francesco ShinkoArgentina2026-05-29Rangoni Of Florence RENEWAL82Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba NickaGermanyAsiya Javayant PROPOSAL
Julie StensethFranceIvan Magalhaes UNQUALIFIED
Isabel BowleyUnited KingdomIoni Bowcher PROPOSAL
Emily WhobreyCanadaAmy Elsner NEGOTIATION
Jennifer AmigonArgentinaXuxue Feng PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant PROPOSAL
Francesco ShinkoItalyXuxue Feng QUALIFIED
Ivar PaprockiArgentinaAnna Fali UNQUALIFIED
David DarakjyArgentinaAsiya Javayant PROPOSAL
Johnson SergiIndiaIvan Magalhaes QUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali NEGOTIATION
Julie StensethJapanIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomAmy Elsner UNQUALIFIED
Maisha RulapaughIndiaAsiya Javayant NEGOTIATION
Kadeem FlosiJapanStephen Shaw UNQUALIFIED
Stacey MacleadSpainAnna Fali PROPOSAL
Adams MorascaCanadaElwin Sharvill PROPOSAL
Ivar PaprockiSpainIvan Magalhaes QUALIFIED
Murillo MaletItalyIoni Bowcher NEW
Emily WhobreySpainElwin Sharvill NEW
Cody SaylorsSpainStephen Shaw NEW
Claire TollnerFranceBernardo Dominic PROPOSAL
Sinclair WaycottItalyAsiya Javayant NEGOTIATION
Izzy GarufiBrazilElwin Sharvill PROPOSAL
Octavia MaletArgentinaXuxue Feng NEW
Leja CaldareraCanadaAmy Elsner QUALIFIED
Alejandro PerinSpainIvan Magalhaes RENEWAL
Aditya KuskoSpainElwin Sharvill UNQUALIFIED
Aditya KuskoJapanAmy Elsner NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Kaitlin OstroskyAustraliaXuxue Feng RENEWAL
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Clifford RimUnited KingdomAnna Fali UNQUALIFIED
Jefferson SchemmerBrazilStephen Shaw PROPOSAL
Octavia MaletItalyStephen Shaw QUALIFIED
Jennifer AmigonArgentinaIvan Magalhaes QUALIFIED
Smith GlickAustraliaAmy Elsner QUALIFIED
Francesco ShinkoItalyElwin Sharvill RENEWAL
Leja CaldareraSpainStephen Shaw NEW
Julie StensethArgentinaAnna Fali UNQUALIFIED
Maria MarrierAustraliaIoni Bowcher NEW
Deepesh ChuiJapanBernardo Dominic RENEWAL
Octavia MaletIndiaAsiya Javayant RENEWAL
Leon OldroydFranceAmy Elsner PROPOSAL
Aditya KuskoItalyElwin Sharvill QUALIFIED
Sinclair WaycottAustraliaAsiya Javayant QUALIFIED
Sinclair WaycottCanadaXuxue Feng UNQUALIFIED
Jeanfrancois VenereRussiaOnyama Limba NEW
Deepesh ChuiUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Salvatore Stockham
Ricardo Gaucho
Mayumi Kolmetz
Ricardo Gaucho
Faith Gillian
Jones Vocelka
Francesco Shinko
Sinclair Waycott
Stacey Maclead
Ivar Paprocki
Stacey Maclead
Francesco Shinko
Costa Dilliard
Tony Foller
Emily Whobrey
Aruna Figeroa
Mujtaba Nicka
Ashley Doe
Rodrigues Campain
Antonio Caudy
Maria Marrier
Rodrigues Campain
Jennifer Amigon
Ashley Doe
Mujtaba Nicka
Smith Glick
Adams Morasca
Adams Morasca
Cody Saylors
Jones Vocelka
David Darakjy
Claire Tollner
Costa Dilliard
Darci Poquette
Nicolas Iturbide
Jones Vocelka
Munro Ferencz
Arvin Albares
Ivar Paprocki
Emily Whobrey
Julie Stenseth
Maisha Rulapaugh
Mayumi Kolmetz
Julie Stenseth
Munro Ferencz
Jeanfrancois Venere
Murillo Malet
Aditya Kusko
Rodrigues Campain
Salvatore Stockham
IdCountryDate
1000United Kingdom2026-05-28
1001Canada2026-06-02
1002Spain2026-05-15
1003Argentina2026-05-18
1004France2026-05-09
1005Italy2026-05-25
1006Russia2026-05-09
1007Russia2026-06-01
1008Brazil2026-05-19
1009Brazil2026-06-05
1010Germany2026-05-14
1011Canada2026-05-30
1012Russia2026-06-01
1013France2026-05-08
1014Italy2026-05-26
1015Japan2026-05-08
1016Australia2026-05-12
1017Spain2026-05-31
1018Brazil2026-05-23
1019Argentina2026-05-20
1020Australia2026-05-08
1021France2026-06-01
1022Brazil2026-05-15
1023Germany2026-05-18
1024Australia2026-05-23
1025Spain2026-06-01
1026Brazil2026-05-31
1027Brazil2026-05-21
1028Japan2026-06-05
1029Australia2026-06-01
1030Japan2026-05-25
1031Spain2026-05-20
1032Japan2026-05-23
1033India2026-05-07
1034India2026-05-17
1035Canada2026-05-09
1036France2026-05-10
1037Brazil2026-05-25
1038Japan2026-05-25
1039Germany2026-05-29
1040United Kingdom2026-06-05
1041Germany2026-05-25
1042Italy2026-05-15
1043Japan2026-05-29
1044Germany2026-06-02
1045Spain2026-05-31
1046Japan2026-05-28
1047Germany2026-05-20
1048Brazil2026-05-19
1049France2026-05-27

On-Demand Data

NameIdCountryDate
Murillo Malet1000United Kingdom2026-05-17
Octavia Malet1001Italy2026-05-11
Aditya Kusko1002Russia2026-05-13
Jones Vocelka1003France2026-06-05
Munro Ferencz1004Australia2026-05-25
Smith Glick1005Canada2026-05-12
Ashley Doe1006Russia2026-05-31
Rodrigues Campain1007Germany2026-05-14
Murillo Malet1008Japan2026-05-12
Salvatore Stockham1009France2026-05-19
Jones Vocelka1010Australia2026-05-08
Kadeem Flosi1011Germany2026-05-10
Jennifer Amigon1012Canada2026-05-18
Smith Glick1013Spain2026-05-25
Emily Whobrey1014Italy2026-05-10
Arvin Albares1015Germany2026-05-18
Sinclair Waycott1016United Kingdom2026-05-23
Smith Glick1017Germany2026-05-11
Francesco Shinko1018France2026-06-01
Jones Vocelka1019India2026-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresBrazilAsiya Javayant QUALIFIED
Kadeem FlosiJapanBernardo Dominic UNQUALIFIED
Izzy GarufiRussiaIoni Bowcher NEGOTIATION
Julie StensethJapanStephen Shaw NEGOTIATION
Leon OldroydFranceIoni Bowcher RENEWAL
James ButtAustraliaBernardo Dominic NEW
Wickens NestleIndiaIvan Magalhaes RENEWAL
Silvio SlusarskiFranceIvan Magalhaes UNQUALIFIED
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Greenwood BologniaCanadaXuxue Feng NEW
Wickens NestleGermanyOnyama Limba NEW
Munro FerenczRussiaAmy Elsner UNQUALIFIED
Misaki RoysterBrazilAnna Fali NEW
Isabel BowleyFranceElwin Sharvill RENEWAL
Kaitlin OstroskyJapanElwin Sharvill QUALIFIED
Costa DilliardItalyAsiya Javayant PROPOSAL
Deepesh ChuiSpainXuxue Feng QUALIFIED
Alejandro PerinArgentinaAnna Fali UNQUALIFIED
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Kaitlin OstroskyRussiaStephen Shaw RENEWAL
Aditya KuskoRussiaIvan Magalhaes QUALIFIED
Murillo MaletBrazilBernardo Dominic UNQUALIFIED
Jones VocelkaRussiaXuxue Feng RENEWAL
Leja CaldareraIndiaAmy Elsner NEGOTIATION
Faith GillianIndiaOnyama Limba NEW
Misaki RoysterJapanStephen Shaw UNQUALIFIED
Greenwood BologniaGermanyAnna Fali PROPOSAL
Mujtaba NickaBrazilBernardo Dominic NEW
Aruna FigeroaIndiaAsiya Javayant RENEWAL
Smith GlickUnited KingdomElwin Sharvill NEGOTIATION
Antonio CaudyUnited KingdomIoni Bowcher QUALIFIED
Mayumi KolmetzSpainAnna Fali QUALIFIED
Ivar PaprockiFranceElwin Sharvill NEW
Isabel BowleyIndiaXuxue Feng NEW
Octavia MaletJapanAnna Fali NEW
Johnson SergiSpainAmy Elsner NEW
Ricardo GauchoIndiaAmy Elsner NEW
James ButtJapanStephen Shaw QUALIFIED
Maisha RulapaughCanadaAsiya Javayant NEGOTIATION
Jones VocelkaJapanIoni 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>