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
Kaitlin OstroskyRussiaXuxue Feng PROPOSAL
Maria MarrierFranceXuxue Feng RENEWAL
Maisha RulapaughRussiaStephen Shaw NEGOTIATION
Kaitlin OstroskyGermanyIvan Magalhaes NEGOTIATION
Salvatore StockhamUnited KingdomAmy Elsner QUALIFIED
Ashley DoeItalyBernardo Dominic QUALIFIED
David DarakjyBrazilIoni Bowcher PROPOSAL
Alejandro PerinIndiaAmy Elsner UNQUALIFIED
Leja CaldareraFranceAsiya Javayant QUALIFIED
Mujtaba NickaCanadaXuxue Feng NEGOTIATION
Antonio CaudyFranceOnyama Limba PROPOSAL
Leja CaldareraFranceAsiya Javayant NEW
Wickens NestleJapanXuxue Feng NEGOTIATION
Isabel BowleyItalyIoni Bowcher RENEWAL
James ButtIndiaIvan Magalhaes NEGOTIATION
Adams MorascaArgentinaAnna Fali QUALIFIED
Mayumi KolmetzIndiaAmy Elsner PROPOSAL
Salvatore StockhamSpainElwin Sharvill RENEWAL
Deepesh ChuiCanadaAsiya Javayant RENEWAL
Rodrigues CampainIndiaAmy Elsner NEW
Cody SaylorsArgentinaStephen Shaw QUALIFIED
Jeanfrancois VenereSpainAsiya Javayant NEW
Maria MarrierJapanStephen Shaw NEW
Ashley DoeAustraliaXuxue Feng UNQUALIFIED
Jennifer AmigonFranceIoni Bowcher NEGOTIATION
Claire TollnerBrazilAmy Elsner QUALIFIED
Wickens NestleGermanyIoni Bowcher NEW
Chavez BriddickIndiaXuxue Feng NEW
Silvio SlusarskiJapanAnna Fali NEW
Jennifer AmigonSpainAmy Elsner PROPOSAL
Wickens NestleGermanyIvan Magalhaes QUALIFIED
Octavia MaletItalyOnyama Limba NEW
Sinclair WaycottUnited KingdomIvan Magalhaes RENEWAL
Nicolas IturbideCanadaStephen Shaw RENEWAL
Leja CaldareraRussiaIvan Magalhaes NEW
Misaki RoysterCanadaOnyama Limba PROPOSAL
Adams MorascaCanadaElwin Sharvill UNQUALIFIED
Jones VocelkaFranceElwin Sharvill QUALIFIED
Octavia MaletRussiaElwin Sharvill UNQUALIFIED
Julie StensethAustraliaIoni Bowcher NEGOTIATION
Costa DilliardGermanyIoni Bowcher RENEWAL
Greenwood BologniaCanadaXuxue Feng RENEWAL
Munro FerenczBrazilBernardo Dominic RENEWAL
Maria MarrierIndiaElwin Sharvill PROPOSAL
Aika InouyeArgentinaBernardo Dominic UNQUALIFIED
Darci PoquetteSpainAnna Fali QUALIFIED
Julie StensethItalyElwin Sharvill NEW
Silvio SlusarskiGermanyAsiya Javayant NEW
Smith GlickGermanyAmy Elsner PROPOSAL
Izzy GarufiUnited KingdomElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterSpainAnna Fali PROPOSAL
Alejandro PerinFranceIvan Magalhaes NEGOTIATION
James ButtIndiaElwin Sharvill RENEWAL
Aika InouyeFranceAnna Fali NEW
Claire TollnerUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin OstroskyUnited KingdomBernardo Dominic PROPOSAL
Kadeem FlosiFranceAmy Elsner QUALIFIED
Maisha RulapaughArgentinaOnyama Limba RENEWAL
Emily WhobreyUnited KingdomAmy Elsner NEGOTIATION
Smith GlickSpainIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyFrance2026-05-20Commercial Press RENEWAL41Xuxue Feng
1001Tony FollerJapan2026-04-26Feiner Bros RENEWAL7Asiya Javayant
1002Darci PoquetteUnited Kingdom2026-05-08Chanay, Jeffrey A Esq PROPOSAL40Asiya Javayant
1003Ashley DoeArgentina2026-04-23Truhlar And Truhlar Attys UNQUALIFIED73Ioni Bowcher
1004Johnson SergiUnited Kingdom2026-04-24Rangoni Of Florence UNQUALIFIED54Elwin Sharvill
1005Silvio SlusarskiArgentina2026-04-23Buckley Miller Wright RENEWAL14Onyama Limba
1006Rodrigues CampainFrance2026-04-30Feltz Printing Service UNQUALIFIED80Ioni Bowcher
1007Adams MorascaJapan2026-05-05Printing Dimensions RENEWAL2Ioni Bowcher
1008Smith GlickFrance2026-05-22Feltz Printing Service NEW4Xuxue Feng
1009Jefferson SchemmerBrazil2026-05-01Chapman, Ross E Esq PROPOSAL98Xuxue Feng
1010Mujtaba NickaCanada2026-05-02Printing Dimensions QUALIFIED64Amy Elsner
1011Jones VocelkaJapan2026-05-05Printing Dimensions NEGOTIATION50Ivan Magalhaes
1012Stacey MacleadCanada2026-05-10Dorl, James J Esq RENEWAL52Elwin Sharvill
1013Juan WieserCanada2026-05-06Chemel, James L Cpa NEGOTIATION79Ioni Bowcher
1014Mujtaba NickaGermany2026-04-28Buckley Miller Wright PROPOSAL25Bernardo Dominic
1015Ricardo GauchoRussia2026-04-29Feltz Printing Service NEGOTIATION89Anna Fali
1016Murillo MaletAustralia2026-05-11Rangoni Of Florence QUALIFIED23Elwin Sharvill
1017Faith GillianAustralia2026-05-06Chemel, James L Cpa RENEWAL66Xuxue Feng
1018Munro FerenczJapan2026-04-26Chanay, Jeffrey A Esq PROPOSAL75Ivan Magalhaes
1019Rodrigues CampainSpain2026-05-03Printing Dimensions UNQUALIFIED54Elwin Sharvill
1020Ivar PaprockiJapan2026-04-26King, Christopher A Esq UNQUALIFIED51Xuxue Feng
1021Salvatore StockhamJapan2026-05-22Chanay, Jeffrey A Esq NEGOTIATION15Amy Elsner
1022Costa DilliardArgentina2026-05-05Rangoni Of Florence NEGOTIATION90Ioni Bowcher
1023Munro FerenczUnited Kingdom2026-05-07Feiner Bros UNQUALIFIED55Onyama Limba
1024Julie StensethBrazil2026-05-16Rangoni Of Florence NEGOTIATION67Elwin Sharvill
1025Greenwood BologniaAustralia2026-05-09Chemel, James L Cpa RENEWAL32Asiya Javayant
1026Aruna FigeroaUnited Kingdom2026-05-03Feltz Printing Service QUALIFIED95Elwin Sharvill
1027Tony FollerSpain2026-05-05Rangoni Of Florence RENEWAL70Bernardo Dominic
1028Maria MarrierItaly2026-04-25Feltz Printing Service NEW59Ivan Magalhaes
1029Kaitlin OstroskyArgentina2026-04-27Benton, John B Jr NEW47Stephen Shaw
1030Mujtaba NickaSpain2026-05-04Feiner Bros QUALIFIED17Ivan Magalhaes
1031Octavia MaletIndia2026-05-08Morlong Associates RENEWAL96Elwin Sharvill
1032Costa DilliardCanada2026-05-08Chemel, James L Cpa NEW43Ioni Bowcher
1033Costa DilliardJapan2026-05-16Chanay, Jeffrey A Esq RENEWAL49Ioni Bowcher
1034Nicolas IturbideItaly2026-05-10Printing Dimensions QUALIFIED71Ioni Bowcher
1035Octavia MaletBrazil2026-05-02Feiner Bros NEGOTIATION20Ivan Magalhaes
1036Jennifer AmigonGermany2026-05-22King, Christopher A Esq RENEWAL24Ioni Bowcher
1037Emily WhobreySpain2026-04-24Commercial Press RENEWAL4Elwin Sharvill
1038Chavez BriddickIndia2026-05-09Feiner Bros QUALIFIED61Anna Fali
1039Jones VocelkaArgentina2026-05-13Chemel, James L Cpa UNQUALIFIED7Stephen Shaw
1040Misaki RoysterItaly2026-05-12King, Christopher A Esq UNQUALIFIED30Elwin Sharvill
1041Adams MorascaArgentina2026-05-20Feltz Printing Service RENEWAL11Amy Elsner
1042Isabel BowleyIndia2026-05-05Chapman, Ross E Esq NEGOTIATION84Ivan Magalhaes
1043Aika InouyeSpain2026-05-19Truhlar And Truhlar Attys PROPOSAL5Xuxue Feng
1044Julie StensethGermany2026-05-12Chanay, Jeffrey A Esq PROPOSAL46Bernardo Dominic
1045Julie StensethArgentina2026-05-06Commercial Press QUALIFIED11Onyama Limba
1046Kadeem FlosiFrance2026-05-17Buckley Miller Wright RENEWAL66Anna Fali
1047Aruna FigeroaRussia2026-05-11Feiner Bros RENEWAL91Onyama Limba
1048Julie StensethGermany2026-05-13Buckley Miller Wright PROPOSAL2Onyama Limba
1049Johnson SergiUnited Kingdom2026-05-22Dorl, James J Esq UNQUALIFIED91Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiBrazilIoni Bowcher NEGOTIATION
Francesco ShinkoAustraliaElwin Sharvill UNQUALIFIED
Munro FerenczCanadaOnyama Limba QUALIFIED
Izzy GarufiItalyIvan Magalhaes UNQUALIFIED
Johnson SergiBrazilIvan Magalhaes QUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng NEGOTIATION
Clifford RimGermanyStephen Shaw NEGOTIATION
Kaitlin OstroskySpainStephen Shaw QUALIFIED
Deepesh ChuiBrazilAsiya Javayant PROPOSAL
Aditya KuskoIndiaElwin Sharvill RENEWAL
Adams MorascaUnited KingdomIvan Magalhaes NEW
Juan WieserGermanyIoni Bowcher QUALIFIED
Clifford RimGermanyStephen Shaw QUALIFIED
Stacey MacleadIndiaBernardo Dominic RENEWAL
Sinclair WaycottArgentinaElwin Sharvill NEW
Ivar PaprockiItalyBernardo Dominic UNQUALIFIED
Johnson SergiCanadaStephen Shaw NEGOTIATION
Chavez BriddickRussiaOnyama Limba RENEWAL
Maisha RulapaughUnited KingdomAsiya Javayant QUALIFIED
Munro FerenczIndiaBernardo Dominic PROPOSAL
Emily WhobreyBrazilIvan Magalhaes QUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher RENEWAL
Stacey MacleadItalyOnyama Limba NEGOTIATION
Emily WhobreyJapanIvan Magalhaes QUALIFIED
Smith GlickAustraliaAsiya Javayant NEGOTIATION
Deepesh ChuiRussiaElwin Sharvill QUALIFIED
Tony FollerSpainAsiya Javayant QUALIFIED
Wickens NestleCanadaAnna Fali QUALIFIED
Darci PoquetteSpainStephen Shaw NEGOTIATION
Claire TollnerCanadaAsiya Javayant RENEWAL
Costa DilliardIndiaElwin Sharvill RENEWAL
Greenwood BologniaItalyStephen Shaw PROPOSAL
Chavez BriddickFranceBernardo Dominic QUALIFIED
Costa DilliardUnited KingdomIvan Magalhaes QUALIFIED
Aditya KuskoArgentinaXuxue Feng NEW
Jennifer AmigonFranceOnyama Limba QUALIFIED
Kaitlin OstroskyRussiaAmy Elsner RENEWAL
Darci PoquetteUnited KingdomXuxue Feng RENEWAL
Emily WhobreyGermanyElwin Sharvill RENEWAL
Maisha RulapaughBrazilOnyama Limba RENEWAL
Francesco ShinkoItalyAsiya Javayant NEW
Murillo MaletJapanIvan Magalhaes UNQUALIFIED
Maria MarrierRussiaAsiya Javayant QUALIFIED
Maisha RulapaughItalyStephen Shaw QUALIFIED
Jefferson SchemmerJapanXuxue Feng NEW
Johnson SergiJapanBernardo Dominic UNQUALIFIED
Antonio CaudyRussiaXuxue Feng RENEWAL
Emily WhobreyItalyBernardo Dominic PROPOSAL
Aditya KuskoFranceAmy Elsner UNQUALIFIED
Wickens NestleRussiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Cody Saylors
Rodrigues Campain
Nicolas Iturbide
Aditya Kusko
Darci Poquette
Juan Wieser
Aruna Figeroa
Kadeem Flosi
Ashley Doe
Faith Gillian
Adams Morasca
Juan Wieser
Nicolas Iturbide
Johnson Sergi
Aditya Kusko
Johnson Sergi
Aditya Kusko
Darci Poquette
Juan Wieser
James Butt
Adams Morasca
Faith Gillian
Cody Saylors
Ricardo Gaucho
Aika Inouye
Murillo Malet
Maria Marrier
Clifford Rim
Misaki Royster
Jefferson Schemmer
Faith Gillian
Wickens Nestle
Nicolas Iturbide
Salvatore Stockham
Francesco Shinko
Costa Dilliard
Maria Marrier
Jeanfrancois Venere
Salvatore Stockham
Maisha Rulapaugh
Aika Inouye
Jeanfrancois Venere
Maisha Rulapaugh
Aruna Figeroa
Aruna Figeroa
Kaitlin Ostrosky
Mujtaba Nicka
Claire Tollner
Mujtaba Nicka
Izzy Garufi
IdCountryDate
1000Canada2026-04-29
1001Germany2026-05-08
1002Spain2026-05-17
1003Spain2026-04-24
1004Russia2026-05-20
1005Brazil2026-05-08
1006Argentina2026-05-08
1007Spain2026-05-01
1008Spain2026-05-18
1009Italy2026-05-08
1010France2026-05-20
1011France2026-04-28
1012Argentina2026-05-01
1013Japan2026-04-25
1014Australia2026-05-18
1015Canada2026-04-28
1016United Kingdom2026-05-08
1017Spain2026-05-09
1018United Kingdom2026-04-29
1019France2026-05-17
1020Spain2026-05-12
1021Canada2026-05-20
1022Brazil2026-04-28
1023Spain2026-05-02
1024Germany2026-05-05
1025Germany2026-04-28
1026Australia2026-04-28
1027Russia2026-05-02
1028Italy2026-05-06
1029Russia2026-05-07
1030Japan2026-05-09
1031Japan2026-04-25
1032Brazil2026-04-30
1033United Kingdom2026-05-02
1034Japan2026-05-22
1035Germany2026-05-07
1036Argentina2026-05-17
1037Italy2026-05-07
1038Argentina2026-05-02
1039United Kingdom2026-05-18
1040Russia2026-05-14
1041Italy2026-05-05
1042United Kingdom2026-05-01
1043Canada2026-04-30
1044Argentina2026-05-01
1045France2026-05-09
1046Canada2026-05-08
1047Canada2026-05-04
1048Argentina2026-04-25
1049India2026-04-29

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Argentina2026-05-01
Leja Caldarera1001France2026-05-19
Kadeem Flosi1002India2026-05-14
Silvio Slusarski1003France2026-05-14
Greenwood Bolognia1004France2026-04-25
Tony Foller1005India2026-05-06
Aditya Kusko1006Spain2026-05-18
Jefferson Schemmer1007Australia2026-05-15
Leja Caldarera1008Australia2026-04-27
Faith Gillian1009Japan2026-05-13
Mayumi Kolmetz1010Russia2026-04-23
Deepesh Chui1011Russia2026-05-13
Misaki Royster1012Spain2026-04-27
Greenwood Bolognia1013Argentina2026-05-20
Ashley Doe1014Brazil2026-05-17
Jefferson Schemmer1015France2026-04-24
Chavez Briddick1016Brazil2026-04-28
David Darakjy1017Russia2026-05-03
Kadeem Flosi1018Brazil2026-05-06
Isabel Bowley1019United Kingdom2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiJapanAnna Fali RENEWAL
Juan WieserRussiaStephen Shaw NEGOTIATION
Mayumi KolmetzUnited KingdomAnna Fali UNQUALIFIED
Jennifer AmigonJapanOnyama Limba NEGOTIATION
James ButtCanadaXuxue Feng PROPOSAL
Francesco ShinkoCanadaAnna Fali NEW
Chavez BriddickArgentinaAmy Elsner PROPOSAL
Jefferson SchemmerGermanyElwin Sharvill QUALIFIED
Deepesh ChuiBrazilAmy Elsner UNQUALIFIED
Wickens NestleGermanyIvan Magalhaes QUALIFIED
Francesco ShinkoGermanyBernardo Dominic NEW
Salvatore StockhamArgentinaAmy Elsner RENEWAL
Mayumi KolmetzFranceXuxue Feng QUALIFIED
Murillo MaletAustraliaAnna Fali PROPOSAL
Murillo MaletFranceStephen Shaw PROPOSAL
Octavia MaletBrazilBernardo Dominic NEGOTIATION
Antonio CaudyArgentinaAmy Elsner QUALIFIED
Emily WhobreyItalyIvan Magalhaes RENEWAL
Adams MorascaIndiaBernardo Dominic RENEWAL
Octavia MaletSpainIoni Bowcher NEW
Mayumi KolmetzRussiaIoni Bowcher RENEWAL
Maria MarrierUnited KingdomIoni Bowcher NEW
Emily WhobreyJapanIoni Bowcher NEGOTIATION
Darci PoquetteItalyXuxue Feng QUALIFIED
Kaitlin OstroskyUnited KingdomStephen Shaw RENEWAL
Deepesh ChuiArgentinaAsiya Javayant PROPOSAL
Aika InouyeJapanBernardo Dominic NEW
Arvin AlbaresGermanyBernardo Dominic PROPOSAL
Nicolas IturbideIndiaBernardo Dominic NEW
Aika InouyeFranceIvan Magalhaes RENEWAL
Francesco ShinkoUnited KingdomAmy Elsner NEGOTIATION
Munro FerenczIndiaElwin Sharvill RENEWAL
Mayumi KolmetzBrazilAsiya Javayant UNQUALIFIED
Aditya KuskoBrazilOnyama Limba UNQUALIFIED
Leja CaldareraIndiaOnyama Limba NEW
Emily WhobreyCanadaAsiya Javayant RENEWAL
Jennifer AmigonUnited KingdomAmy Elsner QUALIFIED
Jefferson SchemmerItalyAmy Elsner NEGOTIATION
Jennifer AmigonGermanyStephen Shaw QUALIFIED
Tony FollerUnited KingdomAmy Elsner 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>