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
Emily WhobreyRussiaIvan Magalhaes NEGOTIATION
Jennifer AmigonCanadaStephen Shaw NEGOTIATION
Stacey MacleadIndiaElwin Sharvill RENEWAL
Murillo MaletAustraliaAnna Fali RENEWAL
Aruna FigeroaArgentinaIvan Magalhaes RENEWAL
Aditya KuskoCanadaOnyama Limba QUALIFIED
Faith GillianRussiaXuxue Feng RENEWAL
Morrow RutaRussiaElwin Sharvill QUALIFIED
Juan WieserAustraliaXuxue Feng NEGOTIATION
Ricardo GauchoRussiaOnyama Limba UNQUALIFIED
Kaitlin OstroskyJapanIvan Magalhaes RENEWAL
Adams MorascaSpainElwin Sharvill UNQUALIFIED
Misaki RoysterArgentinaAmy Elsner PROPOSAL
Rodrigues CampainSpainAsiya Javayant RENEWAL
Aruna FigeroaCanadaElwin Sharvill NEGOTIATION
Clifford RimCanadaBernardo Dominic NEGOTIATION
Adams MorascaAustraliaIvan Magalhaes QUALIFIED
Kadeem FlosiSpainAmy Elsner QUALIFIED
Greenwood BologniaGermanyIoni Bowcher PROPOSAL
Kaitlin OstroskyArgentinaAnna Fali UNQUALIFIED
Aruna FigeroaArgentinaBernardo Dominic RENEWAL
Cody SaylorsItalyXuxue Feng NEW
Maisha RulapaughFranceAmy Elsner NEW
Chavez BriddickGermanyStephen Shaw UNQUALIFIED
Mayumi KolmetzUnited KingdomAnna Fali RENEWAL
Kadeem FlosiBrazilStephen Shaw PROPOSAL
Clifford RimItalyOnyama Limba RENEWAL
Darci PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Emily WhobreyJapanAsiya Javayant QUALIFIED
Salvatore StockhamBrazilAnna Fali RENEWAL
Deepesh ChuiItalyAmy Elsner RENEWAL
Salvatore StockhamJapanIvan Magalhaes UNQUALIFIED
Mujtaba NickaItalyOnyama Limba PROPOSAL
Aruna FigeroaIndiaOnyama Limba QUALIFIED
Johnson SergiSpainXuxue Feng NEW
Johnson SergiAustraliaOnyama Limba UNQUALIFIED
Alejandro PerinBrazilAmy Elsner QUALIFIED
Emily WhobreyRussiaAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomAsiya Javayant QUALIFIED
Darci PoquetteJapanAnna Fali UNQUALIFIED
Nicolas IturbideBrazilAmy Elsner QUALIFIED
Emily WhobreyRussiaBernardo Dominic RENEWAL
Julie StensethJapanElwin Sharvill QUALIFIED
Jones VocelkaSpainOnyama Limba QUALIFIED
Francesco ShinkoGermanyAmy Elsner PROPOSAL
Claire TollnerCanadaElwin Sharvill NEGOTIATION
Chavez BriddickJapanAmy Elsner QUALIFIED
Smith GlickItalyAnna Fali PROPOSAL
Jennifer AmigonItalyIvan Magalhaes NEW
Silvio SlusarskiIndiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomIoni Bowcher NEW
Jefferson SchemmerFranceAmy Elsner RENEWAL
David DarakjySpainAnna Fali NEGOTIATION
Rodrigues CampainFranceOnyama Limba NEGOTIATION
Nicolas IturbideFranceElwin Sharvill NEW
Ricardo GauchoGermanyIvan Magalhaes QUALIFIED
Izzy GarufiAustraliaAnna Fali QUALIFIED
Leja CaldareraCanadaStephen Shaw NEW
Aika InouyeAustraliaAnna Fali UNQUALIFIED
Silvio SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughUnited Kingdom2026-05-13Feiner Bros QUALIFIED31Xuxue Feng
1001Chavez BriddickGermany2026-05-18Buckley Miller Wright NEW94Ioni Bowcher
1002Greenwood BologniaUnited Kingdom2026-05-05Feltz Printing Service RENEWAL95Xuxue Feng
1003Alejandro PerinAustralia2026-05-02Printing Dimensions QUALIFIED29Elwin Sharvill
1004Mujtaba NickaIndia2026-05-11King, Christopher A Esq NEGOTIATION29Stephen Shaw
1005Tony FollerIndia2026-04-27Rangoni Of Florence NEW99Amy Elsner
1006David DarakjySpain2026-05-13Commercial Press NEGOTIATION75Bernardo Dominic
1007Faith GillianUnited Kingdom2026-04-30Benton, John B Jr NEW56Onyama Limba
1008James ButtItaly2026-05-09Rousseaux, Michael Esq UNQUALIFIED12Asiya Javayant
1009Jones VocelkaCanada2026-05-04Morlong Associates UNQUALIFIED69Stephen Shaw
1010Francesco ShinkoFrance2026-04-25Commercial Press QUALIFIED60Asiya Javayant
1011Ivar PaprockiSpain2026-04-26Truhlar And Truhlar Attys RENEWAL52Anna Fali
1012Leja CaldareraSpain2026-05-19Chanay, Jeffrey A Esq NEGOTIATION9Stephen Shaw
1013Stacey MacleadAustralia2026-04-25Feltz Printing Service NEGOTIATION79Stephen Shaw
1014Munro FerenczRussia2026-05-04Feltz Printing Service UNQUALIFIED13Onyama Limba
1015Aika InouyeCanada2026-04-23Truhlar And Truhlar Attys PROPOSAL99Amy Elsner
1016Mayumi KolmetzItaly2026-05-03Benton, John B Jr QUALIFIED46Asiya Javayant
1017Deepesh ChuiArgentina2026-05-02Chanay, Jeffrey A Esq NEW17Ivan Magalhaes
1018Johnson SergiBrazil2026-04-25Dorl, James J Esq NEGOTIATION28Ivan Magalhaes
1019Maisha RulapaughUnited Kingdom2026-05-17Dorl, James J Esq QUALIFIED66Ivan Magalhaes
1020Ashley DoeUnited Kingdom2026-04-25Feltz Printing Service NEGOTIATION89Anna Fali
1021Deepesh ChuiArgentina2026-05-20Feltz Printing Service NEGOTIATION91Ioni Bowcher
1022James ButtFrance2026-04-25Chanay, Jeffrey A Esq NEW67Stephen Shaw
1023Maisha RulapaughSpain2026-05-05Chemel, James L Cpa QUALIFIED38Elwin Sharvill
1024Tony FollerUnited Kingdom2026-05-08Truhlar And Truhlar Attys UNQUALIFIED39Amy Elsner
1025Maisha RulapaughUnited Kingdom2026-05-18Dorl, James J Esq UNQUALIFIED32Asiya Javayant
1026Aruna FigeroaUnited Kingdom2026-05-12Feltz Printing Service QUALIFIED47Asiya Javayant
1027Tony FollerFrance2026-04-26Morlong Associates QUALIFIED25Onyama Limba
1028Silvio SlusarskiSpain2026-04-30Printing Dimensions RENEWAL88Asiya Javayant
1029Nicolas IturbideItaly2026-04-22Chapman, Ross E Esq NEW47Bernardo Dominic
1030Greenwood BologniaUnited Kingdom2026-05-13Chanay, Jeffrey A Esq RENEWAL42Elwin Sharvill
1031Jeanfrancois VenereArgentina2026-04-29Commercial Press NEGOTIATION32Ivan Magalhaes
1032Mujtaba NickaGermany2026-04-24Chanay, Jeffrey A Esq NEGOTIATION3Anna Fali
1033Emily WhobreyIndia2026-05-11Chanay, Jeffrey A Esq NEW27Bernardo Dominic
1034Tony FollerArgentina2026-04-28Chapman, Ross E Esq RENEWAL61Onyama Limba
1035James ButtBrazil2026-04-23Rangoni Of Florence UNQUALIFIED20Ivan Magalhaes
1036James ButtJapan2026-05-02Commercial Press NEGOTIATION2Onyama Limba
1037Faith GillianJapan2026-05-02Morlong Associates NEGOTIATION42Onyama Limba
1038Deepesh ChuiRussia2026-05-06Rangoni Of Florence PROPOSAL61Amy Elsner
1039Munro FerenczAustralia2026-05-09Feiner Bros QUALIFIED89Xuxue Feng
1040Morrow RutaGermany2026-04-23Rousseaux, Michael Esq QUALIFIED85Anna Fali
1041Aika InouyeRussia2026-05-12Dorl, James J Esq NEGOTIATION26Anna Fali
1042Munro FerenczJapan2026-04-27Chapman, Ross E Esq RENEWAL3Onyama Limba
1043James ButtBrazil2026-05-06Chapman, Ross E Esq NEGOTIATION1Onyama Limba
1044Mujtaba NickaFrance2026-05-01King, Christopher A Esq RENEWAL32Elwin Sharvill
1045Wickens NestleArgentina2026-05-06Chemel, James L Cpa NEW68Ioni Bowcher
1046Jefferson SchemmerUnited Kingdom2026-04-23Rousseaux, Michael Esq NEW14Onyama Limba
1047Francesco ShinkoItaly2026-05-15Chapman, Ross E Esq PROPOSAL45Onyama Limba
1048Adams MorascaRussia2026-05-05Truhlar And Truhlar Attys PROPOSAL44Amy Elsner
1049David DarakjyGermany2026-04-27King, Christopher A Esq RENEWAL32Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinGermanyAsiya Javayant QUALIFIED
Salvatore StockhamIndiaAmy Elsner UNQUALIFIED
Izzy GarufiFranceElwin Sharvill UNQUALIFIED
Mujtaba NickaAustraliaAsiya Javayant QUALIFIED
Tony FollerUnited KingdomAmy Elsner RENEWAL
Greenwood BologniaItalyBernardo Dominic QUALIFIED
Mujtaba NickaGermanyStephen Shaw PROPOSAL
Arvin AlbaresRussiaXuxue Feng UNQUALIFIED
Adams MorascaGermanyAnna Fali UNQUALIFIED
Misaki RoysterFranceStephen Shaw RENEWAL
Murillo MaletItalyStephen Shaw NEW
Jefferson SchemmerIndiaIvan Magalhaes NEGOTIATION
Adams MorascaArgentinaXuxue Feng NEW
Jennifer AmigonRussiaAsiya Javayant NEW
Mayumi KolmetzIndiaAsiya Javayant NEGOTIATION
Misaki RoysterItalyAnna Fali NEW
Wickens NestleAustraliaOnyama Limba NEW
Aruna FigeroaRussiaOnyama Limba QUALIFIED
Rodrigues CampainIndiaStephen Shaw RENEWAL
Maria MarrierGermanyBernardo Dominic NEGOTIATION
Sinclair WaycottRussiaStephen Shaw UNQUALIFIED
Rodrigues CampainAustraliaAnna Fali QUALIFIED
Ricardo GauchoRussiaStephen Shaw UNQUALIFIED
Kaitlin OstroskyRussiaIvan Magalhaes UNQUALIFIED
Chavez BriddickFranceElwin Sharvill RENEWAL
Arvin AlbaresItalyIvan Magalhaes RENEWAL
Sinclair WaycottSpainIvan Magalhaes NEGOTIATION
Jefferson SchemmerItalyXuxue Feng NEGOTIATION
Faith GillianJapanXuxue Feng NEW
Cody SaylorsRussiaBernardo Dominic RENEWAL
Ivar PaprockiSpainAsiya Javayant NEGOTIATION
Faith GillianCanadaAmy Elsner NEW
Alejandro PerinIndiaAsiya Javayant NEGOTIATION
Munro FerenczArgentinaBernardo Dominic QUALIFIED
Alejandro PerinJapanAnna Fali NEGOTIATION
Cody SaylorsSpainStephen Shaw QUALIFIED
Chavez BriddickUnited KingdomElwin Sharvill PROPOSAL
Ricardo GauchoIndiaElwin Sharvill QUALIFIED
Aruna FigeroaGermanyOnyama Limba PROPOSAL
Julie StensethGermanyIvan Magalhaes NEGOTIATION
Emily WhobreyIndiaAmy Elsner UNQUALIFIED
Adams MorascaGermanyIoni Bowcher UNQUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood BologniaAustraliaElwin Sharvill PROPOSAL
Ricardo GauchoItalyElwin Sharvill NEGOTIATION
Jefferson SchemmerCanadaIvan Magalhaes QUALIFIED
Claire TollnerRussiaOnyama Limba PROPOSAL
Leon OldroydItalyStephen Shaw QUALIFIED
Costa DilliardArgentinaAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Alejandro Perin
Francesco Shinko
Jennifer Amigon
Murillo Malet
David Darakjy
Arvin Albares
Jennifer Amigon
Ricardo Gaucho
Murillo Malet
Rodrigues Campain
Francesco Shinko
Salvatore Stockham
Munro Ferencz
Nicolas Iturbide
Jennifer Amigon
Sinclair Waycott
Leja Caldarera
Greenwood Bolognia
Octavia Malet
Silvio Slusarski
Leon Oldroyd
Smith Glick
Adams Morasca
Morrow Ruta
Stacey Maclead
Costa Dilliard
Faith Gillian
Aruna Figeroa
Mayumi Kolmetz
Misaki Royster
Aruna Figeroa
Leon Oldroyd
Johnson Sergi
Maisha Rulapaugh
Ashley Doe
Jefferson Schemmer
Arvin Albares
Jones Vocelka
Misaki Royster
Jefferson Schemmer
Sinclair Waycott
Aruna Figeroa
Isabel Bowley
David Darakjy
Jeanfrancois Venere
Murillo Malet
Morrow Ruta
Alejandro Perin
James Butt
Jones Vocelka
IdCountryDate
1000United Kingdom2026-05-03
1001Russia2026-04-24
1002Russia2026-04-25
1003Canada2026-04-25
1004France2026-05-19
1005Argentina2026-04-25
1006France2026-05-05
1007Japan2026-04-23
1008Italy2026-05-01
1009Italy2026-05-01
1010France2026-05-05
1011Germany2026-04-22
1012Japan2026-04-25
1013Russia2026-05-17
1014Italy2026-05-05
1015Brazil2026-05-08
1016Spain2026-04-24
1017Germany2026-04-23
1018Italy2026-05-01
1019Germany2026-05-07
1020India2026-05-09
1021Russia2026-04-24
1022Brazil2026-04-22
1023United Kingdom2026-05-12
1024Canada2026-05-02
1025Japan2026-04-25
1026Canada2026-05-12
1027Canada2026-05-17
1028Germany2026-05-18
1029France2026-05-04
1030Australia2026-05-11
1031Canada2026-05-02
1032United Kingdom2026-04-25
1033Spain2026-05-18
1034United Kingdom2026-05-14
1035India2026-05-03
1036Italy2026-04-26
1037United Kingdom2026-04-29
1038Brazil2026-04-30
1039Russia2026-05-07
1040Russia2026-05-11
1041India2026-05-03
1042United Kingdom2026-05-10
1043Italy2026-05-20
1044Brazil2026-05-08
1045France2026-05-06
1046Brazil2026-04-26
1047Argentina2026-04-22
1048Brazil2026-04-26
1049France2026-05-17

On-Demand Data

NameIdCountryDate
Silvio Slusarski1000United Kingdom2026-05-06
Greenwood Bolognia1001Japan2026-04-28
Sinclair Waycott1002Brazil2026-05-16
James Butt1003Brazil2026-05-10
Greenwood Bolognia1004Spain2026-05-02
Tony Foller1005Brazil2026-05-02
Maria Marrier1006Japan2026-04-29
Juan Wieser1007India2026-05-13
Clifford Rim1008Italy2026-05-20
James Butt1009Germany2026-05-15
Alejandro Perin1010Canada2026-05-08
Leon Oldroyd1011United Kingdom2026-05-01
Tony Foller1012Canada2026-04-30
Deepesh Chui1013Italy2026-05-01
Misaki Royster1014United Kingdom2026-05-12
Deepesh Chui1015United Kingdom2026-05-13
Clifford Rim1016Spain2026-04-25
Kaitlin Ostrosky1017Canada2026-05-02
Chavez Briddick1018Spain2026-04-25
Antonio Caudy1019Japan2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiFranceAmy Elsner QUALIFIED
Nicolas IturbideCanadaStephen Shaw UNQUALIFIED
Jennifer AmigonBrazilAmy Elsner NEW
Arvin AlbaresBrazilOnyama Limba QUALIFIED
Salvatore StockhamRussiaStephen Shaw NEGOTIATION
James ButtBrazilXuxue Feng UNQUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant RENEWAL
Mujtaba NickaSpainAmy Elsner NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher UNQUALIFIED
Jennifer AmigonGermanyAnna Fali QUALIFIED
Aditya KuskoFranceIvan Magalhaes QUALIFIED
Claire TollnerGermanyBernardo Dominic PROPOSAL
Mayumi KolmetzUnited KingdomStephen Shaw NEW
Jefferson SchemmerUnited KingdomXuxue Feng PROPOSAL
Misaki RoysterSpainAmy Elsner NEGOTIATION
Greenwood BologniaItalyOnyama Limba PROPOSAL
Misaki RoysterArgentinaAnna Fali RENEWAL
Munro FerenczSpainBernardo Dominic UNQUALIFIED
Antonio CaudyBrazilElwin Sharvill NEW
David DarakjyGermanyElwin Sharvill NEGOTIATION
Cody SaylorsBrazilIoni Bowcher NEW
Aditya KuskoArgentinaElwin Sharvill NEW
Jennifer AmigonItalyElwin Sharvill RENEWAL
Cody SaylorsJapanXuxue Feng NEW
Alejandro PerinCanadaStephen Shaw PROPOSAL
Ivar PaprockiItalyXuxue Feng NEGOTIATION
Aika InouyeUnited KingdomOnyama Limba UNQUALIFIED
Antonio CaudyIndiaAmy Elsner NEW
Jeanfrancois VenereCanadaStephen Shaw NEGOTIATION
Isabel BowleyCanadaAmy Elsner NEGOTIATION
Costa DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Emily WhobreyArgentinaElwin Sharvill PROPOSAL
Wickens NestleJapanStephen Shaw NEGOTIATION
Kaitlin OstroskySpainAsiya Javayant QUALIFIED
Antonio CaudyItalyElwin Sharvill UNQUALIFIED
James ButtUnited KingdomStephen Shaw NEW
Maria MarrierArgentinaElwin Sharvill PROPOSAL
Ivar PaprockiBrazilAnna Fali UNQUALIFIED
Alejandro PerinBrazilAnna Fali RENEWAL
Silvio SlusarskiFranceIoni 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>