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
Jennifer AmigonGermanyXuxue Feng PROPOSAL
Stacey MacleadFranceAsiya Javayant QUALIFIED
Leon OldroydSpainAmy Elsner NEW
Greenwood BologniaFranceOnyama Limba NEGOTIATION
Rodrigues CampainAustraliaAmy Elsner QUALIFIED
Maisha RulapaughFranceStephen Shaw NEGOTIATION
Octavia MaletIndiaStephen Shaw NEGOTIATION
Clifford RimRussiaAmy Elsner NEGOTIATION
Maisha RulapaughCanadaIvan Magalhaes PROPOSAL
Maria MarrierFranceIvan Magalhaes RENEWAL
Aruna FigeroaJapanIvan Magalhaes NEGOTIATION
Arvin AlbaresArgentinaOnyama Limba PROPOSAL
Jeanfrancois VenereJapanXuxue Feng PROPOSAL
Leja CaldareraGermanyAnna Fali RENEWAL
Ashley DoeUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoFranceStephen Shaw NEGOTIATION
Leon OldroydSpainAnna Fali UNQUALIFIED
Silvio SlusarskiCanadaIoni Bowcher QUALIFIED
Aruna FigeroaRussiaAnna Fali RENEWAL
Greenwood BologniaItalyOnyama Limba NEW
Misaki RoysterAustraliaOnyama Limba NEW
Aruna FigeroaItalyIvan Magalhaes NEGOTIATION
Jeanfrancois VenereJapanIoni Bowcher UNQUALIFIED
Sinclair WaycottBrazilIvan Magalhaes RENEWAL
Octavia MaletCanadaElwin Sharvill NEW
Ivar PaprockiFranceElwin Sharvill UNQUALIFIED
Rodrigues CampainAustraliaAnna Fali PROPOSAL
Isabel BowleyCanadaXuxue Feng NEGOTIATION
Juan WieserItalyIvan Magalhaes UNQUALIFIED
Arvin AlbaresArgentinaAnna Fali NEW
Stacey MacleadUnited KingdomIvan Magalhaes NEGOTIATION
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Antonio CaudyCanadaElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomAsiya Javayant QUALIFIED
Francesco ShinkoGermanyBernardo Dominic RENEWAL
Aika InouyeIndiaAmy Elsner NEW
Nicolas IturbideIndiaOnyama Limba UNQUALIFIED
Isabel BowleyGermanyOnyama Limba QUALIFIED
Stacey MacleadBrazilBernardo Dominic NEW
Murillo MaletItalyAmy Elsner NEW
Mayumi KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Murillo MaletJapanElwin Sharvill NEGOTIATION
Ivar PaprockiAustraliaIvan Magalhaes PROPOSAL
Isabel BowleyItalyAmy Elsner NEW
Silvio SlusarskiItalyIoni Bowcher QUALIFIED
Alejandro PerinRussiaStephen Shaw RENEWAL
Wickens NestleItalyStephen Shaw UNQUALIFIED
Johnson SergiCanadaIoni Bowcher NEW
Kaitlin OstroskyUnited KingdomAsiya Javayant PROPOSAL
Smith GlickItalyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottJapanIoni Bowcher UNQUALIFIED
Chavez BriddickAustraliaOnyama Limba UNQUALIFIED
Octavia MaletUnited KingdomAnna Fali RENEWAL
Aditya KuskoAustraliaAmy Elsner RENEWAL
Ashley DoeItalyOnyama Limba QUALIFIED
Sinclair WaycottJapanXuxue Feng NEW
Greenwood BologniaRussiaXuxue Feng RENEWAL
Leon OldroydSpainIvan Magalhaes UNQUALIFIED
Clifford RimGermanyIoni Bowcher NEGOTIATION
Leja CaldareraSpainAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson SchemmerJapan2026-06-02Buckley Miller Wright RENEWAL97Amy Elsner
1001Greenwood BologniaArgentina2026-05-17Feiner Bros NEGOTIATION98Onyama Limba
1002Wickens NestleBrazil2026-05-20Morlong Associates RENEWAL30Elwin Sharvill
1003Arvin AlbaresRussia2026-05-08Chapman, Ross E Esq QUALIFIED44Stephen Shaw
1004Misaki RoysterUnited Kingdom2026-05-10Buckley Miller Wright RENEWAL71Stephen Shaw
1005Chavez BriddickAustralia2026-05-21Rangoni Of Florence UNQUALIFIED33Anna Fali
1006Deepesh ChuiFrance2026-05-24Feiner Bros QUALIFIED85Stephen Shaw
1007Clifford RimIndia2026-06-01Chemel, James L Cpa NEW88Amy Elsner
1008Cody SaylorsIndia2026-05-25Feltz Printing Service QUALIFIED26Bernardo Dominic
1009Murillo MaletAustralia2026-05-13King, Christopher A Esq RENEWAL75Elwin Sharvill
1010Leon OldroydJapan2026-05-05Morlong Associates RENEWAL84Anna Fali
1011Costa DilliardAustralia2026-05-16Commercial Press NEW69Amy Elsner
1012Emily WhobreyIndia2026-05-25King, Christopher A Esq PROPOSAL66Bernardo Dominic
1013David DarakjyRussia2026-06-02Buckley Miller Wright NEGOTIATION62Stephen Shaw
1014Faith GillianIndia2026-05-19Feiner Bros UNQUALIFIED68Xuxue Feng
1015Silvio SlusarskiFrance2026-05-09Dorl, James J Esq PROPOSAL12Stephen Shaw
1016Leon OldroydUnited Kingdom2026-05-05Chanay, Jeffrey A Esq NEW76Stephen Shaw
1017Aditya KuskoJapan2026-05-11Chanay, Jeffrey A Esq PROPOSAL62Asiya Javayant
1018Rodrigues CampainGermany2026-06-02Chapman, Ross E Esq NEW73Ivan Magalhaes
1019Julie StensethCanada2026-05-31King, Christopher A Esq NEGOTIATION19Xuxue Feng
1020Mayumi KolmetzSpain2026-05-21Rangoni Of Florence PROPOSAL34Stephen Shaw
1021Jones VocelkaRussia2026-05-14Chemel, James L Cpa PROPOSAL9Ioni Bowcher
1022Morrow RutaRussia2026-06-01Feiner Bros RENEWAL99Asiya Javayant
1023Julie StensethFrance2026-05-11Buckley Miller Wright UNQUALIFIED68Ivan Magalhaes
1024Darci PoquetteUnited Kingdom2026-05-31Printing Dimensions RENEWAL22Ivan Magalhaes
1025Juan WieserRussia2026-05-23Commercial Press NEW2Onyama Limba
1026Kaitlin OstroskyFrance2026-05-10Commercial Press UNQUALIFIED80Asiya Javayant
1027Ricardo GauchoArgentina2026-05-29Commercial Press QUALIFIED29Amy Elsner
1028Mayumi KolmetzRussia2026-05-12Morlong Associates PROPOSAL33Onyama Limba
1029Mayumi KolmetzBrazil2026-06-01Rangoni Of Florence PROPOSAL62Ioni Bowcher
1030Emily WhobreySpain2026-05-21Rangoni Of Florence NEW5Elwin Sharvill
1031Faith GillianJapan2026-05-28Truhlar And Truhlar Attys NEW53Asiya Javayant
1032Izzy GarufiUnited Kingdom2026-05-11Dorl, James J Esq NEGOTIATION26Elwin Sharvill
1033Aika InouyeBrazil2026-05-15Truhlar And Truhlar Attys NEGOTIATION71Anna Fali
1034Francesco ShinkoItaly2026-05-20Benton, John B Jr QUALIFIED21Bernardo Dominic
1035Octavia MaletBrazil2026-05-15Chapman, Ross E Esq QUALIFIED99Anna Fali
1036Maisha RulapaughSpain2026-05-09Printing Dimensions PROPOSAL84Ivan Magalhaes
1037Chavez BriddickSpain2026-05-27Truhlar And Truhlar Attys QUALIFIED99Bernardo Dominic
1038David DarakjyCanada2026-05-16Feiner Bros QUALIFIED63Amy Elsner
1039Wickens NestleBrazil2026-05-19Commercial Press NEGOTIATION87Bernardo Dominic
1040Johnson SergiBrazil2026-06-01Chapman, Ross E Esq PROPOSAL15Ioni Bowcher
1041Johnson SergiJapan2026-05-18Printing Dimensions NEGOTIATION75Asiya Javayant
1042Salvatore StockhamAustralia2026-05-29Rangoni Of Florence PROPOSAL35Stephen Shaw
1043Cody SaylorsBrazil2026-05-29Feltz Printing Service RENEWAL63Elwin Sharvill
1044Juan WieserSpain2026-05-14Chanay, Jeffrey A Esq NEGOTIATION17Ivan Magalhaes
1045Julie StensethUnited Kingdom2026-05-26Printing Dimensions QUALIFIED24Bernardo Dominic
1046Kaitlin OstroskyCanada2026-05-19Morlong Associates UNQUALIFIED98Ioni Bowcher
1047Nicolas IturbideItaly2026-05-13Morlong Associates QUALIFIED18Asiya Javayant
1048Tony FollerUnited Kingdom2026-05-28Buckley Miller Wright QUALIFIED22Ivan Magalhaes
1049Johnson SergiRussia2026-05-26Rangoni Of Florence UNQUALIFIED1Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinFranceAmy Elsner QUALIFIED
Morrow RutaSpainBernardo Dominic PROPOSAL
Munro FerenczIndiaStephen Shaw RENEWAL
Kadeem FlosiGermanyIvan Magalhaes RENEWAL
Johnson SergiGermanyBernardo Dominic QUALIFIED
Nicolas IturbideSpainAmy Elsner PROPOSAL
Juan WieserCanadaOnyama Limba PROPOSAL
Claire TollnerArgentinaStephen Shaw RENEWAL
Adams MorascaSpainXuxue Feng NEW
Ivar PaprockiUnited KingdomXuxue Feng RENEWAL
Silvio SlusarskiGermanyAmy Elsner UNQUALIFIED
Greenwood BologniaAustraliaAnna Fali PROPOSAL
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Costa DilliardBrazilBernardo Dominic PROPOSAL
James ButtArgentinaIvan Magalhaes NEW
Ricardo GauchoJapanIoni Bowcher QUALIFIED
Faith GillianArgentinaAmy Elsner PROPOSAL
Kadeem FlosiGermanyElwin Sharvill PROPOSAL
Greenwood BologniaCanadaBernardo Dominic NEGOTIATION
Alejandro PerinJapanBernardo Dominic QUALIFIED
Costa DilliardBrazilIoni Bowcher NEW
Antonio CaudyIndiaAsiya Javayant PROPOSAL
David DarakjyGermanyXuxue Feng RENEWAL
Clifford RimAustraliaBernardo Dominic NEW
Smith GlickCanadaStephen Shaw UNQUALIFIED
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
Aika InouyeAustraliaStephen Shaw QUALIFIED
Jones VocelkaItalyXuxue Feng UNQUALIFIED
Jefferson SchemmerAustraliaOnyama Limba NEGOTIATION
David DarakjyUnited KingdomAmy Elsner PROPOSAL
Leja CaldareraJapanBernardo Dominic UNQUALIFIED
Mujtaba NickaJapanAmy Elsner RENEWAL
Jones VocelkaCanadaXuxue Feng PROPOSAL
Maisha RulapaughGermanyElwin Sharvill UNQUALIFIED
Deepesh ChuiSpainAsiya Javayant RENEWAL
Morrow RutaGermanyOnyama Limba NEW
Cody SaylorsIndiaAnna Fali RENEWAL
Maisha RulapaughJapanIvan Magalhaes PROPOSAL
Jones VocelkaBrazilBernardo Dominic UNQUALIFIED
Ashley DoeGermanyOnyama Limba NEW
Smith GlickIndiaXuxue Feng NEGOTIATION
Isabel BowleyUnited KingdomStephen Shaw RENEWAL
Rodrigues CampainGermanyStephen Shaw UNQUALIFIED
Misaki RoysterIndiaAmy Elsner PROPOSAL
Mujtaba NickaAustraliaStephen Shaw NEW
Stacey MacleadItalyOnyama Limba RENEWAL
Aruna FigeroaBrazilStephen Shaw RENEWAL
Rodrigues CampainUnited KingdomAmy Elsner NEW
Sinclair WaycottBrazilXuxue Feng UNQUALIFIED
Chavez BriddickArgentinaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Sinclair Waycott
Emily Whobrey
Aika Inouye
Maisha Rulapaugh
James Butt
Kadeem Flosi
Chavez Briddick
Misaki Royster
Izzy Garufi
Misaki Royster
Jefferson Schemmer
Juan Wieser
Francesco Shinko
Kaitlin Ostrosky
Stacey Maclead
James Butt
Tony Foller
Misaki Royster
Kadeem Flosi
Faith Gillian
Stacey Maclead
Clifford Rim
Salvatore Stockham
Alejandro Perin
Ivar Paprocki
Alejandro Perin
Sinclair Waycott
Julie Stenseth
Francesco Shinko
Izzy Garufi
James Butt
Leja Caldarera
Costa Dilliard
Darci Poquette
Salvatore Stockham
Greenwood Bolognia
Morrow Ruta
Sinclair Waycott
Silvio Slusarski
Jennifer Amigon
Smith Glick
Aika Inouye
Smith Glick
Faith Gillian
Nicolas Iturbide
Nicolas Iturbide
Cody Saylors
Nicolas Iturbide
Maria Marrier
Ivar Paprocki
IdCountryDate
1000Brazil2026-05-26
1001Spain2026-05-12
1002Italy2026-05-10
1003Italy2026-06-01
1004Brazil2026-05-28
1005Australia2026-05-21
1006Spain2026-05-20
1007Russia2026-05-04
1008France2026-05-18
1009Germany2026-05-10
1010Brazil2026-05-23
1011Germany2026-05-26
1012United Kingdom2026-05-24
1013Argentina2026-05-13
1014Germany2026-05-28
1015Brazil2026-05-26
1016Japan2026-05-21
1017Spain2026-05-31
1018Spain2026-05-15
1019India2026-05-14
1020Argentina2026-05-20
1021Spain2026-05-29
1022Italy2026-05-30
1023Argentina2026-05-17
1024United Kingdom2026-05-12
1025Australia2026-05-16
1026Spain2026-05-24
1027Italy2026-05-22
1028Germany2026-05-17
1029Spain2026-05-05
1030India2026-05-04
1031Spain2026-06-01
1032Brazil2026-05-05
1033Russia2026-05-13
1034France2026-05-30
1035Spain2026-05-16
1036Italy2026-05-16
1037Australia2026-05-30
1038United Kingdom2026-05-25
1039Germany2026-05-10
1040Spain2026-06-01
1041Russia2026-05-19
1042Brazil2026-05-28
1043Brazil2026-06-02
1044Australia2026-05-21
1045Italy2026-05-24
1046France2026-06-01
1047Canada2026-05-19
1048Canada2026-05-21
1049Russia2026-05-18

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Argentina2026-05-29
Silvio Slusarski1001Argentina2026-05-22
Leon Oldroyd1002Argentina2026-05-28
Tony Foller1003Brazil2026-05-10
Francesco Shinko1004Brazil2026-05-27
Aika Inouye1005Argentina2026-05-19
Misaki Royster1006Russia2026-05-16
Aika Inouye1007Argentina2026-05-27
Smith Glick1008Australia2026-05-29
Ricardo Gaucho1009United Kingdom2026-05-24
Salvatore Stockham1010United Kingdom2026-05-14
Ashley Doe1011Japan2026-05-17
Darci Poquette1012Italy2026-05-18
Aika Inouye1013Germany2026-05-31
Adams Morasca1014Australia2026-05-16
Chavez Briddick1015Spain2026-05-06
Alejandro Perin1016Brazil2026-05-07
Jennifer Amigon1017Italy2026-06-02
Juan Wieser1018India2026-05-13
Kaitlin Ostrosky1019France2026-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiCanadaAmy Elsner UNQUALIFIED
David DarakjyJapanElwin Sharvill UNQUALIFIED
Johnson SergiArgentinaElwin Sharvill PROPOSAL
Francesco ShinkoRussiaAnna Fali QUALIFIED
Izzy GarufiBrazilElwin Sharvill PROPOSAL
Claire TollnerIndiaOnyama Limba QUALIFIED
Darci PoquetteFranceIoni Bowcher PROPOSAL
Kaitlin OstroskyUnited KingdomIvan Magalhaes RENEWAL
Murillo MaletAustraliaBernardo Dominic PROPOSAL
Kaitlin OstroskyFranceBernardo Dominic NEGOTIATION
Salvatore StockhamAustraliaElwin Sharvill PROPOSAL
Costa DilliardRussiaIvan Magalhaes QUALIFIED
Smith GlickItalyOnyama Limba UNQUALIFIED
Izzy GarufiJapanBernardo Dominic PROPOSAL
Alejandro PerinSpainAsiya Javayant UNQUALIFIED
Mujtaba NickaJapanAsiya Javayant QUALIFIED
Costa DilliardIndiaXuxue Feng NEW
Munro FerenczRussiaIoni Bowcher PROPOSAL
Arvin AlbaresIndiaAsiya Javayant NEGOTIATION
Nicolas IturbideAustraliaStephen Shaw QUALIFIED
Jeanfrancois VenereFranceXuxue Feng QUALIFIED
Octavia MaletSpainIvan Magalhaes UNQUALIFIED
Rodrigues CampainRussiaOnyama Limba NEGOTIATION
Greenwood BologniaIndiaBernardo Dominic NEW
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Leon OldroydRussiaBernardo Dominic QUALIFIED
Clifford RimItalyIvan Magalhaes NEGOTIATION
Clifford RimJapanElwin Sharvill RENEWAL
Octavia MaletJapanBernardo Dominic PROPOSAL
Costa DilliardIndiaAmy Elsner NEW
Faith GillianJapanXuxue Feng QUALIFIED
Clifford RimArgentinaIvan Magalhaes PROPOSAL
Murillo MaletUnited KingdomBernardo Dominic NEGOTIATION
David DarakjyCanadaAnna Fali UNQUALIFIED
Antonio CaudyFranceElwin Sharvill RENEWAL
Faith GillianRussiaAmy Elsner NEGOTIATION
David DarakjyBrazilAnna Fali PROPOSAL
Leja CaldareraIndiaOnyama Limba NEW
Izzy GarufiGermanyIoni Bowcher NEW
Aruna FigeroaCanadaStephen Shaw 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>