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
Smith GlickIndiaIvan Magalhaes PROPOSAL
Maisha RulapaughIndiaAnna Fali RENEWAL
Leon OldroydIndiaIoni Bowcher NEW
James ButtJapanAsiya Javayant QUALIFIED
Munro FerenczAustraliaXuxue Feng UNQUALIFIED
Smith GlickAustraliaElwin Sharvill NEW
Morrow RutaRussiaOnyama Limba PROPOSAL
Kaitlin OstroskyCanadaAnna Fali NEGOTIATION
Adams MorascaAustraliaStephen Shaw NEW
Cody SaylorsUnited KingdomBernardo Dominic QUALIFIED
Jones VocelkaArgentinaBernardo Dominic NEGOTIATION
Aika InouyeRussiaOnyama Limba QUALIFIED
Smith GlickCanadaXuxue Feng NEGOTIATION
Jones VocelkaUnited KingdomElwin Sharvill NEW
Leja CaldareraFranceStephen Shaw RENEWAL
Silvio SlusarskiArgentinaIoni Bowcher UNQUALIFIED
Wickens NestleItalyStephen Shaw RENEWAL
Ivar PaprockiCanadaOnyama Limba PROPOSAL
Emily WhobreySpainXuxue Feng NEW
Misaki RoysterFranceAsiya Javayant NEW
Greenwood BologniaBrazilElwin Sharvill PROPOSAL
Alejandro PerinCanadaOnyama Limba UNQUALIFIED
Greenwood BologniaJapanAmy Elsner UNQUALIFIED
Clifford RimBrazilBernardo Dominic QUALIFIED
Faith GillianBrazilXuxue Feng QUALIFIED
Maria MarrierCanadaIvan Magalhaes QUALIFIED
Kaitlin OstroskyItalyIoni Bowcher PROPOSAL
Greenwood BologniaGermanyXuxue Feng NEGOTIATION
Adams MorascaItalyIoni Bowcher PROPOSAL
Salvatore StockhamGermanyAsiya Javayant NEGOTIATION
Stacey MacleadItalyAnna Fali PROPOSAL
Silvio SlusarskiGermanyAnna Fali NEW
Silvio SlusarskiBrazilAsiya Javayant NEW
Emily WhobreyCanadaStephen Shaw QUALIFIED
Ricardo GauchoGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiBrazilElwin Sharvill UNQUALIFIED
Aika InouyeArgentinaOnyama Limba UNQUALIFIED
Leon OldroydAustraliaOnyama Limba NEGOTIATION
David DarakjyArgentinaAsiya Javayant PROPOSAL
Jefferson SchemmerUnited KingdomBernardo Dominic NEW
Sinclair WaycottCanadaStephen Shaw NEGOTIATION
Mayumi KolmetzSpainIvan Magalhaes PROPOSAL
Alejandro PerinBrazilElwin Sharvill UNQUALIFIED
Leja CaldareraGermanyStephen Shaw PROPOSAL
Greenwood BologniaAustraliaIvan Magalhaes RENEWAL
Tony FollerArgentinaAnna Fali PROPOSAL
Wickens NestleBrazilIoni Bowcher UNQUALIFIED
Julie StensethRussiaStephen Shaw NEGOTIATION
Emily WhobreyAustraliaIvan Magalhaes RENEWAL
Isabel BowleyArgentinaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzRussiaIvan Magalhaes RENEWAL
Nicolas IturbideBrazilXuxue Feng QUALIFIED
Aruna FigeroaFranceAnna Fali NEW
Tony FollerJapanIoni Bowcher QUALIFIED
David DarakjyCanadaBernardo Dominic RENEWAL
Jones VocelkaArgentinaOnyama Limba UNQUALIFIED
Ivar PaprockiSpainAsiya Javayant QUALIFIED
Morrow RutaFranceOnyama Limba UNQUALIFIED
Sinclair WaycottSpainStephen Shaw UNQUALIFIED
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideJapan2026-04-22Feiner Bros NEGOTIATION66Elwin Sharvill
1001Smith GlickFrance2026-03-28Benton, John B Jr NEGOTIATION87Xuxue Feng
1002Johnson SergiCanada2026-04-23Chanay, Jeffrey A Esq PROPOSAL90Bernardo Dominic
1003Wickens NestleUnited Kingdom2026-03-31Buckley Miller Wright NEW37Ioni Bowcher
1004Aika InouyeBrazil2026-04-17Rousseaux, Michael Esq NEGOTIATION37Onyama Limba
1005Emily WhobreyArgentina2026-04-18Benton, John B Jr NEGOTIATION92Ioni Bowcher
1006Antonio CaudyIndia2026-04-17King, Christopher A Esq QUALIFIED44Anna Fali
1007Antonio CaudyBrazil2026-04-19Chapman, Ross E Esq NEGOTIATION6Stephen Shaw
1008Juan WieserRussia2026-04-13Truhlar And Truhlar Attys QUALIFIED63Stephen Shaw
1009Jennifer AmigonCanada2026-04-21Chanay, Jeffrey A Esq PROPOSAL91Amy Elsner
1010Salvatore StockhamBrazil2026-04-15Commercial Press UNQUALIFIED40Anna Fali
1011Adams MorascaUnited Kingdom2026-04-09Chapman, Ross E Esq PROPOSAL65Bernardo Dominic
1012Octavia MaletCanada2026-04-08Feltz Printing Service RENEWAL3Ivan Magalhaes
1013Costa DilliardSpain2026-04-06Chanay, Jeffrey A Esq QUALIFIED5Elwin Sharvill
1014Leja CaldareraItaly2026-04-05King, Christopher A Esq NEGOTIATION5Elwin Sharvill
1015Jefferson SchemmerCanada2026-04-21Rousseaux, Michael Esq NEW93Anna Fali
1016Maria MarrierBrazil2026-04-11Feiner Bros UNQUALIFIED40Onyama Limba
1017Silvio SlusarskiGermany2026-04-18Buckley Miller Wright QUALIFIED59Ivan Magalhaes
1018Leon OldroydAustralia2026-03-31Dorl, James J Esq NEW65Elwin Sharvill
1019Adams MorascaAustralia2026-04-12Benton, John B Jr RENEWAL45Onyama Limba
1020Cody SaylorsItaly2026-04-09Dorl, James J Esq NEW23Bernardo Dominic
1021Cody SaylorsBrazil2026-04-10Chanay, Jeffrey A Esq RENEWAL66Asiya Javayant
1022Arvin AlbaresSpain2026-04-14Chanay, Jeffrey A Esq PROPOSAL22Onyama Limba
1023Wickens NestleCanada2026-03-29Rangoni Of Florence NEW41Xuxue Feng
1024Cody SaylorsRussia2026-04-08Rangoni Of Florence PROPOSAL64Ioni Bowcher
1025Octavia MaletUnited Kingdom2026-04-17Rangoni Of Florence NEW39Xuxue Feng
1026Ivar PaprockiGermany2026-04-22Benton, John B Jr NEW62Stephen Shaw
1027Jeanfrancois VenereRussia2026-03-30Rousseaux, Michael Esq PROPOSAL26Bernardo Dominic
1028Rodrigues CampainItaly2026-03-30Dorl, James J Esq PROPOSAL12Onyama Limba
1029Deepesh ChuiBrazil2026-04-12Chemel, James L Cpa RENEWAL47Amy Elsner
1030Stacey MacleadArgentina2026-04-08Benton, John B Jr PROPOSAL15Amy Elsner
1031Chavez BriddickUnited Kingdom2026-04-18Dorl, James J Esq NEGOTIATION87Ioni Bowcher
1032Claire TollnerItaly2026-04-01Printing Dimensions QUALIFIED89Ioni Bowcher
1033Kaitlin OstroskyItaly2026-04-23Rangoni Of Florence QUALIFIED85Onyama Limba
1034Aika InouyeUnited Kingdom2026-04-22Commercial Press QUALIFIED10Asiya Javayant
1035David DarakjyItaly2026-04-23Truhlar And Truhlar Attys UNQUALIFIED97Bernardo Dominic
1036Arvin AlbaresRussia2026-03-30Chapman, Ross E Esq NEGOTIATION27Asiya Javayant
1037Faith GillianGermany2026-04-23Rousseaux, Michael Esq NEW24Bernardo Dominic
1038Kadeem FlosiArgentina2026-03-31Printing Dimensions NEW28Ioni Bowcher
1039David DarakjyCanada2026-03-30Buckley Miller Wright NEGOTIATION48Stephen Shaw
1040Stacey MacleadJapan2026-04-22Rangoni Of Florence UNQUALIFIED18Amy Elsner
1041Smith GlickCanada2026-04-23Printing Dimensions NEGOTIATION95Bernardo Dominic
1042Nicolas IturbideItaly2026-04-13Feiner Bros UNQUALIFIED70Xuxue Feng
1043Mayumi KolmetzSpain2026-04-03Benton, John B Jr PROPOSAL31Anna Fali
1044Munro FerenczCanada2026-03-29King, Christopher A Esq NEGOTIATION1Elwin Sharvill
1045Adams MorascaSpain2026-04-18Buckley Miller Wright PROPOSAL76Xuxue Feng
1046Claire TollnerSpain2026-04-14King, Christopher A Esq NEW46Elwin Sharvill
1047Antonio CaudyItaly2026-03-31Printing Dimensions RENEWAL68Bernardo Dominic
1048Francesco ShinkoItaly2026-03-31Chanay, Jeffrey A Esq QUALIFIED0Stephen Shaw
1049Deepesh ChuiFrance2026-04-18Dorl, James J Esq UNQUALIFIED95Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimItalyAnna Fali NEGOTIATION
Aika InouyeItalyAsiya Javayant RENEWAL
Mujtaba NickaItalyOnyama Limba RENEWAL
Ashley DoeRussiaAmy Elsner PROPOSAL
Chavez BriddickJapanAmy Elsner NEGOTIATION
Nicolas IturbideIndiaAsiya Javayant PROPOSAL
Mayumi KolmetzRussiaBernardo Dominic NEGOTIATION
Aika InouyeGermanyElwin Sharvill QUALIFIED
Nicolas IturbideJapanXuxue Feng PROPOSAL
Salvatore StockhamBrazilAmy Elsner PROPOSAL
Chavez BriddickCanadaAnna Fali NEGOTIATION
Maisha RulapaughAustraliaIvan Magalhaes QUALIFIED
Leon OldroydBrazilXuxue Feng RENEWAL
Alejandro PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Aika InouyeArgentinaOnyama Limba PROPOSAL
Maria MarrierUnited KingdomIvan Magalhaes QUALIFIED
Aika InouyeSpainElwin Sharvill RENEWAL
Mujtaba NickaGermanyAsiya Javayant RENEWAL
Octavia MaletBrazilElwin Sharvill NEW
Nicolas IturbideFranceOnyama Limba QUALIFIED
Nicolas IturbideAustraliaIvan Magalhaes QUALIFIED
Ivar PaprockiSpainXuxue Feng QUALIFIED
Aika InouyeGermanyElwin Sharvill RENEWAL
Murillo MaletIndiaIvan Magalhaes QUALIFIED
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Kaitlin OstroskyFranceIoni Bowcher PROPOSAL
Chavez BriddickItalyIoni Bowcher UNQUALIFIED
Jefferson SchemmerSpainXuxue Feng NEGOTIATION
Clifford RimSpainOnyama Limba QUALIFIED
Isabel BowleyJapanAmy Elsner PROPOSAL
Emily WhobreyArgentinaAmy Elsner QUALIFIED
Juan WieserRussiaAmy Elsner RENEWAL
Munro FerenczJapanAnna Fali NEGOTIATION
Misaki RoysterFranceAsiya Javayant UNQUALIFIED
Murillo MaletAustraliaIvan Magalhaes RENEWAL
Faith GillianBrazilAsiya Javayant RENEWAL
Faith GillianArgentinaXuxue Feng NEW
Izzy GarufiArgentinaElwin Sharvill PROPOSAL
Misaki RoysterGermanyStephen Shaw QUALIFIED
Adams MorascaArgentinaAmy Elsner QUALIFIED
Kadeem FlosiBrazilAnna Fali PROPOSAL
Clifford RimUnited KingdomBernardo Dominic RENEWAL
Adams MorascaItalyAmy Elsner PROPOSAL
Francesco ShinkoArgentinaOnyama Limba QUALIFIED
Octavia MaletGermanyBernardo Dominic PROPOSAL
Jennifer AmigonArgentinaIoni Bowcher UNQUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes NEGOTIATION
Morrow RutaCanadaOnyama Limba NEGOTIATION
Alejandro PerinAustraliaStephen Shaw QUALIFIED
Greenwood BologniaFranceAnna Fali PROPOSAL
Frozen Columns
Name
Francesco Shinko
Ricardo Gaucho
Misaki Royster
Leon Oldroyd
Misaki Royster
Salvatore Stockham
Jeanfrancois Venere
Johnson Sergi
Sinclair Waycott
Clifford Rim
Clifford Rim
Claire Tollner
Kadeem Flosi
Greenwood Bolognia
David Darakjy
Octavia Malet
Kaitlin Ostrosky
Ricardo Gaucho
Silvio Slusarski
Juan Wieser
Salvatore Stockham
Antonio Caudy
Emily Whobrey
Antonio Caudy
Tony Foller
Jefferson Schemmer
Smith Glick
David Darakjy
Smith Glick
Johnson Sergi
Nicolas Iturbide
Leja Caldarera
Jones Vocelka
Adams Morasca
Salvatore Stockham
Mujtaba Nicka
Ivar Paprocki
Munro Ferencz
Izzy Garufi
Clifford Rim
Morrow Ruta
Alejandro Perin
Francesco Shinko
Emily Whobrey
Munro Ferencz
Ivar Paprocki
Costa Dilliard
Juan Wieser
Sinclair Waycott
Cody Saylors
IdCountryDate
1000India2026-04-16
1001Brazil2026-04-16
1002Brazil2026-04-01
1003Argentina2026-04-13
1004Spain2026-03-30
1005Japan2026-03-31
1006Canada2026-04-05
1007United Kingdom2026-04-08
1008Spain2026-03-27
1009Spain2026-04-03
1010Spain2026-04-23
1011United Kingdom2026-04-13
1012France2026-04-22
1013Spain2026-04-02
1014Japan2026-04-14
1015Russia2026-04-05
1016France2026-04-22
1017Russia2026-04-19
1018Argentina2026-04-04
1019Russia2026-04-09
1020Russia2026-04-23
1021United Kingdom2026-03-31
1022Australia2026-04-19
1023Brazil2026-03-27
1024Brazil2026-04-23
1025Argentina2026-04-22
1026Australia2026-03-27
1027Australia2026-04-04
1028India2026-04-16
1029Germany2026-04-01
1030France2026-04-11
1031Australia2026-03-26
1032India2026-04-24
1033Canada2026-04-05
1034Italy2026-04-10
1035Germany2026-04-20
1036Italy2026-04-22
1037Italy2026-04-23
1038France2026-04-02
1039Canada2026-03-30
1040Russia2026-04-22
1041Italy2026-03-31
1042Germany2026-04-22
1043United Kingdom2026-04-11
1044United Kingdom2026-03-28
1045Japan2026-03-29
1046Russia2026-03-29
1047France2026-04-18
1048Canada2026-04-18
1049Russia2026-04-04

On-Demand Data

NameIdCountryDate
Cody Saylors1000Argentina2026-04-04
Faith Gillian1001Spain2026-04-05
Greenwood Bolognia1002Canada2026-04-15
Ivar Paprocki1003Japan2026-04-20
Leon Oldroyd1004Brazil2026-04-08
Murillo Malet1005Russia2026-04-20
Emily Whobrey1006Japan2026-04-10
Claire Tollner1007Russia2026-04-02
Leon Oldroyd1008Canada2026-04-03
Jeanfrancois Venere1009Brazil2026-04-02
Antonio Caudy1010Germany2026-04-24
Francesco Shinko1011Canada2026-04-10
Isabel Bowley1012Argentina2026-04-24
Kadeem Flosi1013Canada2026-04-04
Misaki Royster1014Canada2026-04-09
David Darakjy1015United Kingdom2026-04-01
Misaki Royster1016Spain2026-04-09
Alejandro Perin1017Spain2026-04-13
Julie Stenseth1018Russia2026-04-14
Alejandro Perin1019India2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjySpainOnyama Limba QUALIFIED
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Sinclair WaycottItalyBernardo Dominic QUALIFIED
Costa DilliardSpainStephen Shaw NEW
Cody SaylorsRussiaAnna Fali QUALIFIED
Silvio SlusarskiIndiaIoni Bowcher RENEWAL
Johnson SergiGermanyXuxue Feng QUALIFIED
David DarakjyCanadaAmy Elsner NEW
Greenwood BologniaAustraliaBernardo Dominic RENEWAL
Aruna FigeroaFranceElwin Sharvill RENEWAL
Ashley DoeIndiaXuxue Feng NEGOTIATION
Clifford RimUnited KingdomIoni Bowcher RENEWAL
Tony FollerFranceAsiya Javayant QUALIFIED
Aruna FigeroaIndiaIvan Magalhaes QUALIFIED
Silvio SlusarskiBrazilAnna Fali PROPOSAL
Adams MorascaAustraliaAnna Fali NEGOTIATION
Alejandro PerinItalyElwin Sharvill UNQUALIFIED
Aditya KuskoIndiaXuxue Feng NEGOTIATION
Maria MarrierIndiaXuxue Feng RENEWAL
Jones VocelkaItalyXuxue Feng QUALIFIED
Ashley DoeSpainAsiya Javayant RENEWAL
Johnson SergiFranceAmy Elsner NEGOTIATION
Arvin AlbaresGermanyAnna Fali RENEWAL
Aruna FigeroaIndiaAmy Elsner NEGOTIATION
Arvin AlbaresItalyAmy Elsner NEGOTIATION
James ButtRussiaAmy Elsner RENEWAL
Ivar PaprockiItalyOnyama Limba UNQUALIFIED
Adams MorascaJapanAsiya Javayant UNQUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng QUALIFIED
David DarakjyCanadaIoni Bowcher RENEWAL
Ashley DoeUnited KingdomAmy Elsner RENEWAL
James ButtCanadaAsiya Javayant RENEWAL
Maisha RulapaughSpainIoni Bowcher NEW
Leon OldroydArgentinaStephen Shaw UNQUALIFIED
Izzy GarufiGermanyOnyama Limba PROPOSAL
Greenwood BologniaArgentinaBernardo Dominic NEGOTIATION
Salvatore StockhamArgentinaXuxue Feng NEGOTIATION
Misaki RoysterItalyXuxue Feng UNQUALIFIED
Julie StensethCanadaElwin Sharvill QUALIFIED
Mujtaba NickaGermanyXuxue Feng NEW

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