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
Leja CaldareraBrazilElwin Sharvill PROPOSAL
Jennifer AmigonJapanElwin Sharvill RENEWAL
Leon OldroydBrazilBernardo Dominic QUALIFIED
Maria MarrierCanadaAnna Fali PROPOSAL
Sinclair WaycottItalyAmy Elsner RENEWAL
Ashley DoeGermanyBernardo Dominic QUALIFIED
Aditya KuskoSpainOnyama Limba NEGOTIATION
Nicolas IturbideFranceAsiya Javayant NEGOTIATION
Faith GillianArgentinaIvan Magalhaes UNQUALIFIED
Smith GlickAustraliaAsiya Javayant NEGOTIATION
Ashley DoeCanadaBernardo Dominic UNQUALIFIED
Aditya KuskoFranceAnna Fali PROPOSAL
Juan WieserIndiaBernardo Dominic RENEWAL
Ashley DoeAustraliaAnna Fali NEW
Faith GillianFranceIoni Bowcher QUALIFIED
Ricardo GauchoItalyAsiya Javayant PROPOSAL
Mujtaba NickaAustraliaAmy Elsner NEGOTIATION
Aditya KuskoArgentinaIoni Bowcher NEGOTIATION
Isabel BowleyArgentinaIoni Bowcher RENEWAL
Salvatore StockhamAustraliaOnyama Limba PROPOSAL
Ashley DoeRussiaXuxue Feng RENEWAL
Julie StensethBrazilElwin Sharvill NEW
Wickens NestleCanadaAnna Fali UNQUALIFIED
James ButtFranceBernardo Dominic NEGOTIATION
Murillo MaletUnited KingdomElwin Sharvill RENEWAL
Leja CaldareraItalyStephen Shaw QUALIFIED
Alejandro PerinIndiaAnna Fali QUALIFIED
Kadeem FlosiAustraliaAsiya Javayant QUALIFIED
Deepesh ChuiRussiaAnna Fali QUALIFIED
Jefferson SchemmerIndiaElwin Sharvill PROPOSAL
Morrow RutaRussiaElwin Sharvill NEW
Munro FerenczBrazilBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilAnna Fali NEW
Juan WieserItalyAsiya Javayant RENEWAL
Wickens NestleRussiaStephen Shaw NEGOTIATION
Aruna FigeroaUnited KingdomElwin Sharvill QUALIFIED
Chavez BriddickCanadaAmy Elsner QUALIFIED
Aditya KuskoItalyOnyama Limba QUALIFIED
Maria MarrierFranceAsiya Javayant UNQUALIFIED
Julie StensethRussiaIvan Magalhaes QUALIFIED
Aditya KuskoIndiaAsiya Javayant PROPOSAL
James ButtFranceElwin Sharvill NEGOTIATION
Mujtaba NickaAustraliaElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanIvan Magalhaes PROPOSAL
Chavez BriddickSpainOnyama Limba UNQUALIFIED
Cody SaylorsCanadaStephen Shaw QUALIFIED
Claire TollnerUnited KingdomOnyama Limba PROPOSAL
Francesco ShinkoUnited KingdomAnna Fali NEW
Jeanfrancois VenereItalyElwin Sharvill UNQUALIFIED
Mujtaba NickaItalyAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickRussiaAnna Fali QUALIFIED
Murillo MaletUnited KingdomAsiya Javayant QUALIFIED
Salvatore StockhamIndiaAmy Elsner NEGOTIATION
Ashley DoeArgentinaAsiya Javayant RENEWAL
Smith GlickUnited KingdomAsiya Javayant PROPOSAL
Nicolas IturbideSpainIvan Magalhaes QUALIFIED
Smith GlickBrazilXuxue Feng RENEWAL
Ivar PaprockiIndiaAsiya Javayant RENEWAL
Leon OldroydRussiaBernardo Dominic NEW
James ButtJapanIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaAustralia2026-04-13Morlong Associates NEGOTIATION45Onyama Limba
1001Munro FerenczBrazil2026-04-16Dorl, James J Esq PROPOSAL84Ivan Magalhaes
1002Chavez BriddickSpain2026-04-13Chapman, Ross E Esq RENEWAL92Xuxue Feng
1003Julie StensethGermany2026-04-27Rangoni Of Florence RENEWAL66Elwin Sharvill
1004Wickens NestleItaly2026-04-19Morlong Associates QUALIFIED96Amy Elsner
1005Alejandro PerinRussia2026-04-19Feiner Bros PROPOSAL14Xuxue Feng
1006Isabel BowleyCanada2026-04-21Morlong Associates PROPOSAL95Elwin Sharvill
1007Darci PoquetteIndia2026-04-18Feltz Printing Service NEW87Stephen Shaw
1008Alejandro PerinIndia2026-04-16Commercial Press UNQUALIFIED97Asiya Javayant
1009Leja CaldareraBrazil2026-04-10Chanay, Jeffrey A Esq NEW0Bernardo Dominic
1010Munro FerenczRussia2026-04-18Rousseaux, Michael Esq NEW24Ivan Magalhaes
1011Munro FerenczJapan2026-04-06Chanay, Jeffrey A Esq NEGOTIATION72Ivan Magalhaes
1012Faith GillianIndia2026-04-30Chanay, Jeffrey A Esq QUALIFIED17Xuxue Feng
1013Maisha RulapaughSpain2026-04-19Commercial Press RENEWAL38Onyama Limba
1014Juan WieserIndia2026-04-22Chapman, Ross E Esq NEW50Ivan Magalhaes
1015Jefferson SchemmerCanada2026-04-27Commercial Press PROPOSAL82Ioni Bowcher
1016Maisha RulapaughSpain2026-04-04Dorl, James J Esq UNQUALIFIED65Onyama Limba
1017Jefferson SchemmerSpain2026-04-21Chemel, James L Cpa PROPOSAL2Anna Fali
1018Misaki RoysterItaly2026-04-04Dorl, James J Esq NEGOTIATION53Onyama Limba
1019Kadeem FlosiSpain2026-04-12Rousseaux, Michael Esq UNQUALIFIED72Amy Elsner
1020Johnson SergiJapan2026-04-29Rangoni Of Florence QUALIFIED79Ioni Bowcher
1021Ivar PaprockiBrazil2026-04-02Commercial Press UNQUALIFIED24Elwin Sharvill
1022Rodrigues CampainArgentina2026-04-30Benton, John B Jr UNQUALIFIED70Onyama Limba
1023Ashley DoeAustralia2026-05-01Chapman, Ross E Esq QUALIFIED43Xuxue Feng
1024Jeanfrancois VenereIndia2026-04-12Chanay, Jeffrey A Esq NEGOTIATION93Onyama Limba
1025Adams MorascaBrazil2026-04-23Chemel, James L Cpa NEW97Ivan Magalhaes
1026Aditya KuskoGermany2026-04-25Chanay, Jeffrey A Esq UNQUALIFIED11Bernardo Dominic
1027Misaki RoysterGermany2026-04-03Feltz Printing Service NEGOTIATION15Anna Fali
1028Deepesh ChuiItaly2026-04-12Truhlar And Truhlar Attys NEGOTIATION95Xuxue Feng
1029Cody SaylorsAustralia2026-04-24Dorl, James J Esq NEW96Stephen Shaw
1030Jefferson SchemmerArgentina2026-04-23Dorl, James J Esq UNQUALIFIED51Elwin Sharvill
1031Darci PoquetteIndia2026-04-25Chanay, Jeffrey A Esq PROPOSAL65Amy Elsner
1032James ButtItaly2026-04-18Chemel, James L Cpa QUALIFIED16Xuxue Feng
1033Aika InouyeAustralia2026-05-01Chemel, James L Cpa NEGOTIATION3Stephen Shaw
1034Adams MorascaBrazil2026-04-25Buckley Miller Wright NEGOTIATION38Onyama Limba
1035Jefferson SchemmerSpain2026-04-21Chanay, Jeffrey A Esq RENEWAL87Ioni Bowcher
1036Antonio CaudyUnited Kingdom2026-04-21Buckley Miller Wright NEW95Asiya Javayant
1037Misaki RoysterUnited Kingdom2026-04-09Chapman, Ross E Esq NEGOTIATION11Onyama Limba
1038Adams MorascaAustralia2026-04-24Buckley Miller Wright QUALIFIED40Xuxue Feng
1039Stacey MacleadJapan2026-04-22Commercial Press NEGOTIATION6Elwin Sharvill
1040Claire TollnerBrazil2026-04-09Printing Dimensions QUALIFIED79Amy Elsner
1041Wickens NestleUnited Kingdom2026-04-08Chanay, Jeffrey A Esq RENEWAL42Amy Elsner
1042Maria MarrierAustralia2026-04-18Commercial Press NEW77Elwin Sharvill
1043Jones VocelkaItaly2026-04-21King, Christopher A Esq UNQUALIFIED57Ivan Magalhaes
1044Mujtaba NickaCanada2026-04-11Chapman, Ross E Esq PROPOSAL63Elwin Sharvill
1045Misaki RoysterArgentina2026-04-19Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1046Cody SaylorsArgentina2026-04-20Chapman, Ross E Esq NEGOTIATION86Bernardo Dominic
1047Arvin AlbaresItaly2026-04-17Feiner Bros NEW54Anna Fali
1048Deepesh ChuiGermany2026-04-28Chemel, James L Cpa NEGOTIATION78Xuxue Feng
1049Darci PoquetteJapan2026-04-26Rousseaux, Michael Esq PROPOSAL12Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiBrazilStephen Shaw QUALIFIED
Misaki RoysterGermanyAsiya Javayant RENEWAL
Mujtaba NickaArgentinaIvan Magalhaes PROPOSAL
Arvin AlbaresRussiaIoni Bowcher NEGOTIATION
Clifford RimIndiaElwin Sharvill NEW
Kaitlin OstroskyFranceAnna Fali RENEWAL
Jennifer AmigonFranceIvan Magalhaes RENEWAL
Murillo MaletUnited KingdomIoni Bowcher NEGOTIATION
Darci PoquetteAustraliaIvan Magalhaes NEW
Costa DilliardJapanAmy Elsner QUALIFIED
Deepesh ChuiRussiaAmy Elsner NEGOTIATION
Murillo MaletRussiaElwin Sharvill NEGOTIATION
Jennifer AmigonRussiaOnyama Limba NEGOTIATION
Arvin AlbaresSpainAmy Elsner RENEWAL
Misaki RoysterRussiaElwin Sharvill PROPOSAL
Rodrigues CampainAustraliaIvan Magalhaes RENEWAL
Morrow RutaItalyAsiya Javayant PROPOSAL
Aditya KuskoArgentinaStephen Shaw RENEWAL
Mujtaba NickaIndiaBernardo Dominic NEW
Smith GlickIndiaIoni Bowcher NEGOTIATION
Aruna FigeroaFranceIoni Bowcher NEW
Morrow RutaAustraliaBernardo Dominic UNQUALIFIED
Johnson SergiIndiaAnna Fali PROPOSAL
Leja CaldareraIndiaOnyama Limba PROPOSAL
Jones VocelkaItalyXuxue Feng NEGOTIATION
Costa DilliardSpainAmy Elsner PROPOSAL
Adams MorascaSpainBernardo Dominic PROPOSAL
Maisha RulapaughFranceStephen Shaw NEGOTIATION
Sinclair WaycottFranceAnna Fali PROPOSAL
Misaki RoysterCanadaOnyama Limba NEGOTIATION
Alejandro PerinFranceStephen Shaw RENEWAL
Misaki RoysterArgentinaAsiya Javayant QUALIFIED
Faith GillianItalyAnna Fali QUALIFIED
Aruna FigeroaArgentinaStephen Shaw UNQUALIFIED
Mayumi KolmetzFranceBernardo Dominic NEW
Claire TollnerAustraliaOnyama Limba UNQUALIFIED
Faith GillianUnited KingdomAsiya Javayant RENEWAL
James ButtArgentinaIoni Bowcher NEGOTIATION
Isabel BowleyIndiaElwin Sharvill PROPOSAL
Costa DilliardArgentinaOnyama Limba UNQUALIFIED
Faith GillianFranceElwin Sharvill NEGOTIATION
Cody SaylorsGermanyIvan Magalhaes QUALIFIED
Murillo MaletAustraliaIoni Bowcher NEW
Juan WieserItalyAsiya Javayant NEGOTIATION
Stacey MacleadJapanIvan Magalhaes NEW
Salvatore StockhamAustraliaElwin Sharvill QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng NEW
Stacey MacleadArgentinaAnna Fali RENEWAL
James ButtFranceOnyama Limba RENEWAL
Tony FollerBrazilBernardo Dominic NEGOTIATION
Frozen Columns
Name
Maria Marrier
Claire Tollner
Morrow Ruta
Ricardo Gaucho
Deepesh Chui
David Darakjy
Faith Gillian
Rodrigues Campain
Morrow Ruta
David Darakjy
Ricardo Gaucho
Arvin Albares
Juan Wieser
Smith Glick
Salvatore Stockham
Juan Wieser
Smith Glick
Jefferson Schemmer
Jefferson Schemmer
Aruna Figeroa
Arvin Albares
Kaitlin Ostrosky
Morrow Ruta
Rodrigues Campain
Leon Oldroyd
Clifford Rim
Alejandro Perin
Ivar Paprocki
Alejandro Perin
Emily Whobrey
Tony Foller
Jeanfrancois Venere
Tony Foller
Silvio Slusarski
Maisha Rulapaugh
Misaki Royster
Silvio Slusarski
Maria Marrier
Mujtaba Nicka
Aditya Kusko
Jeanfrancois Venere
Jefferson Schemmer
Sinclair Waycott
Tony Foller
Salvatore Stockham
Antonio Caudy
Alejandro Perin
Sinclair Waycott
Jefferson Schemmer
Aika Inouye
IdCountryDate
1000Russia2026-04-09
1001Japan2026-05-01
1002Argentina2026-04-02
1003Italy2026-04-21
1004Russia2026-04-23
1005Brazil2026-04-16
1006Japan2026-04-15
1007France2026-04-17
1008Russia2026-04-28
1009Germany2026-04-10
1010Japan2026-04-15
1011Italy2026-04-15
1012Australia2026-05-01
1013Russia2026-04-07
1014Spain2026-04-06
1015Australia2026-04-06
1016Germany2026-04-02
1017Spain2026-04-23
1018Russia2026-04-06
1019Brazil2026-04-23
1020Spain2026-04-14
1021Italy2026-04-13
1022Italy2026-04-19
1023Russia2026-04-28
1024India2026-04-09
1025France2026-04-08
1026Italy2026-04-21
1027Germany2026-04-17
1028Argentina2026-04-21
1029United Kingdom2026-04-05
1030Russia2026-04-10
1031Italy2026-04-05
1032Spain2026-04-10
1033France2026-04-21
1034Italy2026-04-20
1035Germany2026-04-23
1036Argentina2026-04-10
1037France2026-04-27
1038France2026-04-23
1039Brazil2026-04-10
1040Canada2026-04-22
1041India2026-04-22
1042Argentina2026-04-13
1043Japan2026-04-27
1044India2026-04-23
1045Spain2026-04-14
1046Argentina2026-04-27
1047Italy2026-04-14
1048Japan2026-04-10
1049Spain2026-04-03

On-Demand Data

NameIdCountryDate
Izzy Garufi1000United Kingdom2026-04-04
Mujtaba Nicka1001United Kingdom2026-04-28
Silvio Slusarski1002France2026-04-29
Francesco Shinko1003Argentina2026-04-11
Aika Inouye1004Australia2026-04-13
Mayumi Kolmetz1005France2026-04-05
Maria Marrier1006Argentina2026-04-30
Costa Dilliard1007United Kingdom2026-04-16
Kaitlin Ostrosky1008United Kingdom2026-04-21
Aruna Figeroa1009Spain2026-04-30
Cody Saylors1010Italy2026-04-13
Adams Morasca1011United Kingdom2026-04-16
Isabel Bowley1012France2026-04-22
Faith Gillian1013France2026-04-07
Alejandro Perin1014Russia2026-04-24
Aika Inouye1015United Kingdom2026-04-26
Morrow Ruta1016Australia2026-04-24
Leja Caldarera1017India2026-04-27
Juan Wieser1018Canada2026-04-08
Munro Ferencz1019Spain2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiGermanyElwin Sharvill NEW
Maria MarrierBrazilOnyama Limba UNQUALIFIED
Darci PoquetteItalyBernardo Dominic QUALIFIED
Johnson SergiCanadaAsiya Javayant RENEWAL
Kadeem FlosiArgentinaBernardo Dominic UNQUALIFIED
Tony FollerArgentinaXuxue Feng RENEWAL
Isabel BowleyRussiaAnna Fali UNQUALIFIED
Kadeem FlosiItalyXuxue Feng PROPOSAL
Rodrigues CampainGermanyOnyama Limba NEGOTIATION
Kadeem FlosiItalyElwin Sharvill PROPOSAL
James ButtSpainBernardo Dominic QUALIFIED
Clifford RimFranceAmy Elsner NEW
Deepesh ChuiArgentinaBernardo Dominic NEW
Greenwood BologniaArgentinaIvan Magalhaes NEW
Costa DilliardFranceElwin Sharvill UNQUALIFIED
Leja CaldareraItalyElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanAsiya Javayant QUALIFIED
Cody SaylorsBrazilIvan Magalhaes NEGOTIATION
Rodrigues CampainSpainOnyama Limba NEW
Stacey MacleadSpainOnyama Limba RENEWAL
Jefferson SchemmerIndiaBernardo Dominic NEW
Ivar PaprockiArgentinaAnna Fali QUALIFIED
Greenwood BologniaUnited KingdomIoni Bowcher QUALIFIED
Mayumi KolmetzArgentinaXuxue Feng RENEWAL
Jones VocelkaBrazilAnna Fali NEGOTIATION
Alejandro PerinArgentinaElwin Sharvill QUALIFIED
Kaitlin OstroskyArgentinaIoni Bowcher RENEWAL
Ricardo GauchoJapanXuxue Feng QUALIFIED
Smith GlickItalyAmy Elsner QUALIFIED
Maisha RulapaughFranceElwin Sharvill NEW
Costa DilliardUnited KingdomAmy Elsner UNQUALIFIED
Johnson SergiAustraliaIvan Magalhaes NEGOTIATION
Kadeem FlosiUnited KingdomElwin Sharvill NEW
Leon OldroydSpainIoni Bowcher NEGOTIATION
Adams MorascaAustraliaOnyama Limba UNQUALIFIED
Francesco ShinkoRussiaElwin Sharvill NEW
Francesco ShinkoIndiaStephen Shaw NEGOTIATION
Greenwood BologniaBrazilStephen Shaw UNQUALIFIED
Jones VocelkaUnited KingdomAnna Fali RENEWAL
Misaki RoysterBrazilElwin Sharvill RENEWAL

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