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
Aika InouyeIndiaAnna Fali UNQUALIFIED
Jeanfrancois VenereCanadaAmy Elsner UNQUALIFIED
Emily WhobreyIndiaAmy Elsner QUALIFIED
Munro FerenczBrazilOnyama Limba UNQUALIFIED
Costa DilliardFranceAmy Elsner PROPOSAL
Ricardo GauchoCanadaElwin Sharvill QUALIFIED
Mayumi KolmetzRussiaOnyama Limba NEGOTIATION
Jeanfrancois VenereSpainIoni Bowcher NEW
Nicolas IturbideGermanyOnyama Limba NEGOTIATION
Sinclair WaycottGermanyIvan Magalhaes QUALIFIED
Izzy GarufiGermanyIvan Magalhaes QUALIFIED
Jeanfrancois VenereJapanAmy Elsner PROPOSAL
Tony FollerIndiaOnyama Limba RENEWAL
Aruna FigeroaAustraliaIoni Bowcher PROPOSAL
Emily WhobreyItalyElwin Sharvill QUALIFIED
Smith GlickCanadaBernardo Dominic QUALIFIED
Adams MorascaSpainOnyama Limba NEW
Maisha RulapaughUnited KingdomXuxue Feng NEGOTIATION
Wickens NestleAustraliaAnna Fali QUALIFIED
Salvatore StockhamArgentinaStephen Shaw QUALIFIED
Rodrigues CampainRussiaOnyama Limba NEGOTIATION
Julie StensethItalyAsiya Javayant NEGOTIATION
Ivar PaprockiFranceIoni Bowcher UNQUALIFIED
Ivar PaprockiIndiaIoni Bowcher QUALIFIED
Misaki RoysterUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois VenereFranceIvan Magalhaes PROPOSAL
Emily WhobreyAustraliaOnyama Limba PROPOSAL
Juan WieserSpainXuxue Feng RENEWAL
Mujtaba NickaFranceOnyama Limba UNQUALIFIED
Ricardo GauchoItalyOnyama Limba UNQUALIFIED
Jones VocelkaGermanyOnyama Limba NEW
Rodrigues CampainUnited KingdomElwin Sharvill RENEWAL
Antonio CaudyRussiaAmy Elsner QUALIFIED
Aditya KuskoRussiaOnyama Limba PROPOSAL
Nicolas IturbideUnited KingdomBernardo Dominic NEGOTIATION
Misaki RoysterSpainAnna Fali NEGOTIATION
Chavez BriddickCanadaAmy Elsner QUALIFIED
Kadeem FlosiItalyAmy Elsner QUALIFIED
Octavia MaletIndiaStephen Shaw QUALIFIED
Octavia MaletBrazilXuxue Feng PROPOSAL
James ButtJapanAmy Elsner RENEWAL
Sinclair WaycottBrazilStephen Shaw UNQUALIFIED
Leja CaldareraAustraliaAnna Fali NEW
Nicolas IturbideSpainBernardo Dominic PROPOSAL
Ivar PaprockiAustraliaIvan Magalhaes RENEWAL
Jefferson SchemmerBrazilStephen Shaw UNQUALIFIED
Leon OldroydJapanAnna Fali PROPOSAL
Octavia MaletItalyIvan Magalhaes PROPOSAL
Ivar PaprockiItalyAmy Elsner RENEWAL
Ashley DoeGermanyStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaIndiaAsiya Javayant RENEWAL
Aruna FigeroaUnited KingdomAsiya Javayant QUALIFIED
David DarakjyRussiaAsiya Javayant QUALIFIED
Nicolas IturbideItalyXuxue Feng QUALIFIED
Silvio SlusarskiSpainAnna Fali RENEWAL
Cody SaylorsRussiaBernardo Dominic NEW
Leon OldroydUnited KingdomAsiya Javayant PROPOSAL
Aditya KuskoRussiaElwin Sharvill RENEWAL
Aditya KuskoRussiaStephen Shaw NEW
Juan WieserBrazilXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskyUnited Kingdom2026-05-09Truhlar And Truhlar Attys NEW72Amy Elsner
1001David DarakjyGermany2026-05-10Feiner Bros NEGOTIATION79Ivan Magalhaes
1002Ricardo GauchoArgentina2026-04-23Rousseaux, Michael Esq NEGOTIATION11Anna Fali
1003Maria MarrierAustralia2026-05-20Feltz Printing Service QUALIFIED1Elwin Sharvill
1004Claire TollnerItaly2026-05-01Buckley Miller Wright PROPOSAL28Amy Elsner
1005Greenwood BologniaArgentina2026-05-06Rousseaux, Michael Esq NEGOTIATION49Elwin Sharvill
1006Jones VocelkaUnited Kingdom2026-05-12Chapman, Ross E Esq RENEWAL37Bernardo Dominic
1007Cody SaylorsUnited Kingdom2026-05-21Buckley Miller Wright NEGOTIATION19Amy Elsner
1008Sinclair WaycottJapan2026-05-20Printing Dimensions UNQUALIFIED0Onyama Limba
1009Chavez BriddickArgentina2026-04-28King, Christopher A Esq PROPOSAL47Bernardo Dominic
1010Faith GillianBrazil2026-04-27Chanay, Jeffrey A Esq NEW77Ivan Magalhaes
1011Kaitlin OstroskyRussia2026-04-26Commercial Press RENEWAL54Anna Fali
1012Morrow RutaRussia2026-05-01Truhlar And Truhlar Attys QUALIFIED89Anna Fali
1013Aditya KuskoArgentina2026-04-29Feltz Printing Service RENEWAL60Xuxue Feng
1014Sinclair WaycottRussia2026-04-24Feltz Printing Service UNQUALIFIED46Ioni Bowcher
1015Cody SaylorsArgentina2026-05-19Rangoni Of Florence QUALIFIED56Elwin Sharvill
1016Maria MarrierFrance2026-05-01Buckley Miller Wright UNQUALIFIED56Bernardo Dominic
1017Clifford RimSpain2026-04-30Commercial Press RENEWAL4Elwin Sharvill
1018Maisha RulapaughGermany2026-05-11Benton, John B Jr UNQUALIFIED60Ivan Magalhaes
1019Aditya KuskoRussia2026-04-29Truhlar And Truhlar Attys NEGOTIATION40Xuxue Feng
1020Sinclair WaycottBrazil2026-05-14Chapman, Ross E Esq RENEWAL11Amy Elsner
1021Kadeem FlosiCanada2026-05-14Chemel, James L Cpa RENEWAL77Elwin Sharvill
1022Aditya KuskoUnited Kingdom2026-05-16Morlong Associates RENEWAL48Anna Fali
1023Greenwood BologniaIndia2026-05-11Truhlar And Truhlar Attys UNQUALIFIED55Stephen Shaw
1024Tony FollerFrance2026-05-06Chanay, Jeffrey A Esq NEW94Elwin Sharvill
1025Ashley DoeUnited Kingdom2026-04-29Printing Dimensions QUALIFIED32Amy Elsner
1026Emily WhobreyAustralia2026-05-14Morlong Associates QUALIFIED21Elwin Sharvill
1027Leon OldroydArgentina2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED70Xuxue Feng
1028Ashley DoeFrance2026-04-25Feltz Printing Service UNQUALIFIED49Elwin Sharvill
1029Aditya KuskoBrazil2026-04-26Buckley Miller Wright NEGOTIATION46Xuxue Feng
1030Tony FollerArgentina2026-05-14Rangoni Of Florence QUALIFIED80Xuxue Feng
1031Ivar PaprockiSpain2026-04-27Rangoni Of Florence NEW42Elwin Sharvill
1032Leon OldroydUnited Kingdom2026-05-17Dorl, James J Esq UNQUALIFIED21Amy Elsner
1033Kadeem FlosiIndia2026-04-25Rangoni Of Florence PROPOSAL13Asiya Javayant
1034Claire TollnerUnited Kingdom2026-04-27King, Christopher A Esq NEGOTIATION94Onyama Limba
1035Leja CaldareraItaly2026-05-07Rangoni Of Florence QUALIFIED95Stephen Shaw
1036Leon OldroydGermany2026-05-07Dorl, James J Esq QUALIFIED47Stephen Shaw
1037Faith GillianGermany2026-05-21Feiner Bros NEGOTIATION28Onyama Limba
1038Kaitlin OstroskyArgentina2026-05-21Chanay, Jeffrey A Esq NEGOTIATION10Xuxue Feng
1039Francesco ShinkoItaly2026-04-24Rousseaux, Michael Esq RENEWAL3Asiya Javayant
1040Maisha RulapaughJapan2026-05-06Chemel, James L Cpa UNQUALIFIED76Amy Elsner
1041Francesco ShinkoArgentina2026-05-04Feltz Printing Service PROPOSAL65Anna Fali
1042Wickens NestleItaly2026-05-16Feiner Bros NEGOTIATION32Stephen Shaw
1043Cody SaylorsUnited Kingdom2026-05-10Chanay, Jeffrey A Esq UNQUALIFIED74Xuxue Feng
1044Wickens NestleBrazil2026-04-29Chanay, Jeffrey A Esq NEGOTIATION28Ivan Magalhaes
1045Julie StensethJapan2026-05-18Rangoni Of Florence PROPOSAL45Elwin Sharvill
1046Izzy GarufiBrazil2026-04-22Commercial Press QUALIFIED87Ivan Magalhaes
1047Smith GlickBrazil2026-05-14Rangoni Of Florence PROPOSAL29Elwin Sharvill
1048Chavez BriddickFrance2026-05-04Printing Dimensions RENEWAL5Ivan Magalhaes
1049Jennifer AmigonJapan2026-04-27Rousseaux, Michael Esq NEGOTIATION40Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletFranceOnyama Limba NEW
Morrow RutaSpainOnyama Limba NEW
Stacey MacleadArgentinaElwin Sharvill UNQUALIFIED
Smith GlickGermanyXuxue Feng NEW
Morrow RutaBrazilIvan Magalhaes PROPOSAL
Jones VocelkaGermanyBernardo Dominic QUALIFIED
Emily WhobreyItalyAmy Elsner NEW
Octavia MaletCanadaOnyama Limba QUALIFIED
Clifford RimFranceBernardo Dominic PROPOSAL
Smith GlickJapanElwin Sharvill PROPOSAL
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Aruna FigeroaFranceAmy Elsner UNQUALIFIED
Jones VocelkaJapanXuxue Feng PROPOSAL
Julie StensethIndiaIvan Magalhaes NEW
Deepesh ChuiSpainAnna Fali PROPOSAL
Silvio SlusarskiSpainBernardo Dominic NEGOTIATION
Morrow RutaJapanAsiya Javayant UNQUALIFIED
Isabel BowleyIndiaOnyama Limba UNQUALIFIED
Kaitlin OstroskyFranceAnna Fali UNQUALIFIED
Nicolas IturbideCanadaXuxue Feng QUALIFIED
Clifford RimRussiaAnna Fali PROPOSAL
Francesco ShinkoItalyOnyama Limba QUALIFIED
Mujtaba NickaBrazilIvan Magalhaes NEW
James ButtGermanyOnyama Limba QUALIFIED
Munro FerenczCanadaBernardo Dominic PROPOSAL
Juan WieserCanadaAmy Elsner UNQUALIFIED
Maisha RulapaughAustraliaStephen Shaw PROPOSAL
Alejandro PerinIndiaAsiya Javayant QUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes UNQUALIFIED
Antonio CaudyFranceStephen Shaw UNQUALIFIED
Alejandro PerinFranceBernardo Dominic NEW
Ricardo GauchoCanadaXuxue Feng UNQUALIFIED
Juan WieserAustraliaAnna Fali PROPOSAL
Ricardo GauchoItalyIvan Magalhaes QUALIFIED
Clifford RimFranceXuxue Feng QUALIFIED
Mujtaba NickaCanadaOnyama Limba NEGOTIATION
Maisha RulapaughAustraliaAsiya Javayant NEGOTIATION
Greenwood BologniaJapanIvan Magalhaes UNQUALIFIED
Darci PoquetteJapanAnna Fali NEGOTIATION
Rodrigues CampainSpainIoni Bowcher RENEWAL
Munro FerenczCanadaAnna Fali QUALIFIED
Munro FerenczGermanyElwin Sharvill UNQUALIFIED
Leon OldroydSpainAsiya Javayant UNQUALIFIED
Kadeem FlosiIndiaAnna Fali QUALIFIED
Alejandro PerinJapanIvan Magalhaes NEW
Tony FollerAustraliaIvan Magalhaes RENEWAL
Sinclair WaycottGermanyAmy Elsner UNQUALIFIED
Clifford RimRussiaAmy Elsner PROPOSAL
Francesco ShinkoBrazilOnyama Limba NEGOTIATION
Chavez BriddickJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Munro Ferencz
Smith Glick
Maria Marrier
Julie Stenseth
Chavez Briddick
James Butt
Arvin Albares
Maria Marrier
Morrow Ruta
Morrow Ruta
Ivar Paprocki
Tony Foller
Rodrigues Campain
Leja Caldarera
Salvatore Stockham
Kaitlin Ostrosky
Salvatore Stockham
Salvatore Stockham
Adams Morasca
Kaitlin Ostrosky
Jones Vocelka
Wickens Nestle
Emily Whobrey
Kadeem Flosi
Smith Glick
Tony Foller
Kadeem Flosi
Alejandro Perin
Darci Poquette
Munro Ferencz
Kaitlin Ostrosky
Juan Wieser
James Butt
David Darakjy
Sinclair Waycott
Mayumi Kolmetz
Ashley Doe
Darci Poquette
Maria Marrier
Francesco Shinko
Murillo Malet
Jeanfrancois Venere
Adams Morasca
Kaitlin Ostrosky
Wickens Nestle
Mayumi Kolmetz
Aika Inouye
Ricardo Gaucho
Francesco Shinko
Adams Morasca
IdCountryDate
1000Japan2026-04-26
1001United Kingdom2026-04-30
1002Japan2026-05-09
1003Canada2026-05-02
1004Italy2026-04-25
1005India2026-04-29
1006Russia2026-05-20
1007Germany2026-05-18
1008France2026-05-02
1009Brazil2026-05-03
1010Russia2026-05-11
1011Japan2026-05-13
1012Russia2026-05-01
1013India2026-05-16
1014Italy2026-05-14
1015Australia2026-05-09
1016Brazil2026-05-06
1017Japan2026-05-11
1018Japan2026-04-26
1019Japan2026-05-14
1020Argentina2026-05-07
1021Brazil2026-05-03
1022Germany2026-04-23
1023Argentina2026-05-14
1024Argentina2026-05-15
1025Canada2026-04-25
1026Australia2026-04-28
1027Spain2026-05-01
1028Argentina2026-04-29
1029United Kingdom2026-04-23
1030France2026-05-12
1031France2026-04-26
1032Japan2026-05-18
1033Japan2026-05-19
1034United Kingdom2026-05-17
1035Germany2026-04-30
1036Brazil2026-05-01
1037Brazil2026-05-02
1038Brazil2026-05-19
1039Russia2026-05-17
1040Spain2026-05-03
1041France2026-05-09
1042Japan2026-05-14
1043Spain2026-04-22
1044Spain2026-05-09
1045United Kingdom2026-05-12
1046Spain2026-05-01
1047Germany2026-05-12
1048United Kingdom2026-04-28
1049Italy2026-05-06

On-Demand Data

NameIdCountryDate
Aika Inouye1000Canada2026-05-12
Mujtaba Nicka1001Italy2026-04-30
Sinclair Waycott1002India2026-04-29
Sinclair Waycott1003Canada2026-05-04
Antonio Caudy1004Brazil2026-05-07
Ivar Paprocki1005Australia2026-05-06
Costa Dilliard1006India2026-05-09
Arvin Albares1007Australia2026-05-20
Julie Stenseth1008Brazil2026-04-24
Aditya Kusko1009Germany2026-04-28
Kaitlin Ostrosky1010Australia2026-05-19
Leon Oldroyd1011Brazil2026-04-22
Adams Morasca1012France2026-05-09
Izzy Garufi1013Japan2026-04-24
Aruna Figeroa1014India2026-05-20
Stacey Maclead1015Russia2026-05-15
Kadeem Flosi1016France2026-05-09
Salvatore Stockham1017France2026-05-21
Munro Ferencz1018Russia2026-04-25
James Butt1019Argentina2026-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues CampainFranceStephen Shaw QUALIFIED
Faith GillianUnited KingdomStephen Shaw NEGOTIATION
Faith GillianRussiaAnna Fali NEW
Antonio CaudyItalyBernardo Dominic QUALIFIED
Stacey MacleadArgentinaElwin Sharvill PROPOSAL
Misaki RoysterUnited KingdomBernardo Dominic NEW
Adams MorascaArgentinaAnna Fali NEW
Ashley DoeSpainAmy Elsner UNQUALIFIED
Ivar PaprockiSpainXuxue Feng NEGOTIATION
Jefferson SchemmerIndiaStephen Shaw UNQUALIFIED
Sinclair WaycottItalyStephen Shaw QUALIFIED
Jeanfrancois VenereRussiaStephen Shaw QUALIFIED
David DarakjyJapanXuxue Feng NEGOTIATION
Morrow RutaGermanyAsiya Javayant RENEWAL
Adams MorascaAustraliaAmy Elsner RENEWAL
Jones VocelkaSpainAnna Fali PROPOSAL
Izzy GarufiBrazilAsiya Javayant NEGOTIATION
Kaitlin OstroskyGermanyStephen Shaw NEW
Murillo MaletFranceXuxue Feng QUALIFIED
Mayumi KolmetzAustraliaIvan Magalhaes NEGOTIATION
Salvatore StockhamBrazilBernardo Dominic PROPOSAL
Johnson SergiCanadaOnyama Limba RENEWAL
Misaki RoysterIndiaIvan Magalhaes NEW
Aruna FigeroaArgentinaStephen Shaw RENEWAL
Darci PoquetteArgentinaXuxue Feng QUALIFIED
Ricardo GauchoCanadaIvan Magalhaes RENEWAL
Stacey MacleadFranceIoni Bowcher NEW
Jones VocelkaCanadaAsiya Javayant UNQUALIFIED
Sinclair WaycottItalyOnyama Limba PROPOSAL
Jones VocelkaIndiaOnyama Limba NEGOTIATION
David DarakjyJapanAmy Elsner NEGOTIATION
David DarakjyRussiaIvan Magalhaes NEGOTIATION
Salvatore StockhamBrazilAnna Fali NEGOTIATION
Costa DilliardItalyAmy Elsner PROPOSAL
Isabel BowleyBrazilIoni Bowcher UNQUALIFIED
Murillo MaletArgentinaElwin Sharvill QUALIFIED
Tony FollerBrazilIoni Bowcher PROPOSAL
Tony FollerCanadaBernardo Dominic PROPOSAL
Maisha RulapaughItalyAsiya Javayant PROPOSAL
Aditya KuskoSpainAmy Elsner 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>