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
Jeanfrancois VenereItalyElwin Sharvill UNQUALIFIED
Antonio CaudyAustraliaOnyama Limba QUALIFIED
Adams MorascaGermanyIvan Magalhaes QUALIFIED
Nicolas IturbideAustraliaOnyama Limba QUALIFIED
Kadeem FlosiCanadaAsiya Javayant PROPOSAL
Tony FollerRussiaElwin Sharvill NEGOTIATION
Murillo MaletArgentinaAsiya Javayant QUALIFIED
Jefferson SchemmerAustraliaBernardo Dominic NEW
Jefferson SchemmerFranceElwin Sharvill NEW
Stacey MacleadJapanIvan Magalhaes NEW
Octavia MaletCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereBrazilXuxue Feng PROPOSAL
Wickens NestleSpainIoni Bowcher PROPOSAL
Leja CaldareraBrazilStephen Shaw QUALIFIED
Isabel BowleyBrazilOnyama Limba NEW
Wickens NestleArgentinaAnna Fali NEW
Leon OldroydUnited KingdomIoni Bowcher RENEWAL
Leon OldroydUnited KingdomIvan Magalhaes NEW
Smith GlickItalyIvan Magalhaes NEGOTIATION
Maria MarrierAustraliaIvan Magalhaes NEGOTIATION
Leon OldroydBrazilXuxue Feng PROPOSAL
Maria MarrierAustraliaAmy Elsner QUALIFIED
Claire TollnerArgentinaElwin Sharvill PROPOSAL
Nicolas IturbideArgentinaAmy Elsner PROPOSAL
James ButtSpainElwin Sharvill NEGOTIATION
Aditya KuskoSpainStephen Shaw QUALIFIED
Silvio SlusarskiAustraliaAmy Elsner NEW
Silvio SlusarskiGermanyAmy Elsner RENEWAL
Smith GlickUnited KingdomXuxue Feng RENEWAL
Murillo MaletCanadaStephen Shaw PROPOSAL
Misaki RoysterRussiaAsiya Javayant RENEWAL
Maria MarrierCanadaBernardo Dominic QUALIFIED
Silvio SlusarskiUnited KingdomIoni Bowcher NEW
Salvatore StockhamRussiaIvan Magalhaes UNQUALIFIED
Leon OldroydBrazilAsiya Javayant NEGOTIATION
Misaki RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Claire TollnerItalyXuxue Feng NEW
Jennifer AmigonItalyIoni Bowcher NEGOTIATION
Deepesh ChuiGermanyElwin Sharvill PROPOSAL
Jennifer AmigonUnited KingdomOnyama Limba UNQUALIFIED
Jones VocelkaJapanStephen Shaw NEGOTIATION
Darci PoquetteIndiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiFranceIoni Bowcher QUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher NEGOTIATION
Julie StensethSpainIvan Magalhaes PROPOSAL
Emily WhobreyGermanyOnyama Limba UNQUALIFIED
Izzy GarufiRussiaIoni Bowcher NEW
Nicolas IturbideCanadaAsiya Javayant PROPOSAL
Ivar PaprockiArgentinaStephen Shaw UNQUALIFIED
Aika InouyeJapanAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottCanadaIoni Bowcher UNQUALIFIED
Jefferson SchemmerGermanyXuxue Feng PROPOSAL
Johnson SergiFranceAnna Fali NEGOTIATION
Aditya KuskoFranceAnna Fali RENEWAL
Jones VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin OstroskySpainOnyama Limba NEGOTIATION
Antonio CaudyIndiaElwin Sharvill QUALIFIED
Rodrigues CampainJapanAmy Elsner NEGOTIATION
Alejandro PerinJapanStephen Shaw PROPOSAL
Jeanfrancois VenereUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletArgentina2026-04-29Printing Dimensions QUALIFIED5Xuxue Feng
1001Julie StensethFrance2026-04-15Buckley Miller Wright PROPOSAL10Stephen Shaw
1002Faith GillianAustralia2026-04-28Rousseaux, Michael Esq PROPOSAL19Ivan Magalhaes
1003Ashley DoeCanada2026-04-20Buckley Miller Wright QUALIFIED60Ivan Magalhaes
1004Misaki RoysterItaly2026-04-19Truhlar And Truhlar Attys UNQUALIFIED61Anna Fali
1005Faith GillianUnited Kingdom2026-04-10Truhlar And Truhlar Attys RENEWAL41Elwin Sharvill
1006Claire TollnerUnited Kingdom2026-04-10King, Christopher A Esq NEGOTIATION12Ioni Bowcher
1007Claire TollnerRussia2026-04-10Rousseaux, Michael Esq QUALIFIED86Amy Elsner
1008Munro FerenczJapan2026-04-03Buckley Miller Wright UNQUALIFIED72Amy Elsner
1009Nicolas IturbideIndia2026-04-03Feltz Printing Service QUALIFIED80Ioni Bowcher
1010Cody SaylorsIndia2026-04-12Feltz Printing Service NEW76Amy Elsner
1011Francesco ShinkoSpain2026-04-01Buckley Miller Wright NEW60Onyama Limba
1012Morrow RutaSpain2026-04-22Chanay, Jeffrey A Esq RENEWAL31Ivan Magalhaes
1013Mujtaba NickaJapan2026-04-18Morlong Associates UNQUALIFIED81Asiya Javayant
1014Morrow RutaUnited Kingdom2026-04-07Morlong Associates NEGOTIATION40Elwin Sharvill
1015Clifford RimUnited Kingdom2026-04-17Morlong Associates UNQUALIFIED3Asiya Javayant
1016Mujtaba NickaBrazil2026-04-02Printing Dimensions UNQUALIFIED38Anna Fali
1017Alejandro PerinArgentina2026-04-24Commercial Press NEW23Ivan Magalhaes
1018Misaki RoysterGermany2026-04-19Feltz Printing Service RENEWAL48Asiya Javayant
1019Costa DilliardGermany2026-04-27Morlong Associates PROPOSAL46Stephen Shaw
1020Octavia MaletItaly2026-04-09Commercial Press NEGOTIATION70Ioni Bowcher
1021Rodrigues CampainUnited Kingdom2026-04-29Feiner Bros RENEWAL14Bernardo Dominic
1022Sinclair WaycottCanada2026-04-01Rousseaux, Michael Esq QUALIFIED91Ioni Bowcher
1023Adams MorascaArgentina2026-04-15Chanay, Jeffrey A Esq RENEWAL44Stephen Shaw
1024Jennifer AmigonItaly2026-04-26Morlong Associates NEGOTIATION41Stephen Shaw
1025Adams MorascaSpain2026-04-17Truhlar And Truhlar Attys UNQUALIFIED21Onyama Limba
1026Octavia MaletRussia2026-04-03Dorl, James J Esq NEGOTIATION24Bernardo Dominic
1027Wickens NestleAustralia2026-04-21Chemel, James L Cpa RENEWAL90Elwin Sharvill
1028Aika InouyeAustralia2026-04-04Feltz Printing Service UNQUALIFIED49Asiya Javayant
1029Silvio SlusarskiCanada2026-04-05Chemel, James L Cpa QUALIFIED43Ivan Magalhaes
1030Jennifer AmigonJapan2026-04-14Dorl, James J Esq PROPOSAL77Anna Fali
1031Jones VocelkaJapan2026-04-28Feiner Bros NEGOTIATION31Xuxue Feng
1032Jennifer AmigonItaly2026-04-16Chapman, Ross E Esq PROPOSAL1Asiya Javayant
1033Ricardo GauchoUnited Kingdom2026-04-07Buckley Miller Wright QUALIFIED95Xuxue Feng
1034Smith GlickJapan2026-04-23Printing Dimensions PROPOSAL83Elwin Sharvill
1035Jefferson SchemmerItaly2026-04-01Benton, John B Jr PROPOSAL20Xuxue Feng
1036Morrow RutaAustralia2026-04-11Commercial Press UNQUALIFIED58Onyama Limba
1037Aditya KuskoAustralia2026-04-12Benton, John B Jr PROPOSAL14Asiya Javayant
1038Ashley DoeItaly2026-04-02Chemel, James L Cpa NEW43Anna Fali
1039Alejandro PerinItaly2026-04-30King, Christopher A Esq PROPOSAL5Elwin Sharvill
1040Wickens NestleSpain2026-04-30Buckley Miller Wright NEGOTIATION24Stephen Shaw
1041Faith GillianGermany2026-04-23Feiner Bros PROPOSAL91Amy Elsner
1042Misaki RoysterGermany2026-04-26Chapman, Ross E Esq QUALIFIED41Onyama Limba
1043Leja CaldareraJapan2026-04-13Printing Dimensions QUALIFIED78Ioni Bowcher
1044Leon OldroydUnited Kingdom2026-04-17Rangoni Of Florence QUALIFIED8Onyama Limba
1045Tony FollerFrance2026-04-10King, Christopher A Esq NEW41Stephen Shaw
1046Leja CaldareraCanada2026-04-01Dorl, James J Esq UNQUALIFIED40Asiya Javayant
1047James ButtCanada2026-04-23Benton, John B Jr RENEWAL97Bernardo Dominic
1048Octavia MaletAustralia2026-04-30Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1049Johnson SergiRussia2026-04-24Truhlar And Truhlar Attys PROPOSAL54Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiArgentinaAsiya Javayant UNQUALIFIED
Claire TollnerSpainStephen Shaw UNQUALIFIED
Julie StensethAustraliaAnna Fali NEGOTIATION
Sinclair WaycottRussiaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyItalyAsiya Javayant RENEWAL
Stacey MacleadIndiaAsiya Javayant RENEWAL
Mujtaba NickaItalyIoni Bowcher UNQUALIFIED
Nicolas IturbideBrazilXuxue Feng UNQUALIFIED
Wickens NestleCanadaAnna Fali QUALIFIED
Isabel BowleyIndiaOnyama Limba NEGOTIATION
Cody SaylorsJapanAmy Elsner PROPOSAL
Leon OldroydFranceIvan Magalhaes PROPOSAL
Isabel BowleyItalyOnyama Limba QUALIFIED
Jones VocelkaAustraliaOnyama Limba RENEWAL
Mujtaba NickaAustraliaElwin Sharvill NEGOTIATION
Aditya KuskoCanadaBernardo Dominic RENEWAL
Julie StensethIndiaStephen Shaw RENEWAL
Stacey MacleadArgentinaIoni Bowcher UNQUALIFIED
Stacey MacleadItalyAsiya Javayant RENEWAL
Maria MarrierUnited KingdomIoni Bowcher PROPOSAL
Deepesh ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Jones VocelkaIndiaIvan Magalhaes NEGOTIATION
Stacey MacleadUnited KingdomAmy Elsner NEW
Clifford RimFranceIoni Bowcher RENEWAL
Salvatore StockhamIndiaAsiya Javayant RENEWAL
Emily WhobreyJapanOnyama Limba RENEWAL
Greenwood BologniaJapanOnyama Limba RENEWAL
Claire TollnerGermanyXuxue Feng RENEWAL
Munro FerenczSpainBernardo Dominic NEGOTIATION
Smith GlickArgentinaAmy Elsner RENEWAL
Chavez BriddickAustraliaStephen Shaw QUALIFIED
Ivar PaprockiJapanBernardo Dominic NEW
Francesco ShinkoItalyXuxue Feng PROPOSAL
Greenwood BologniaSpainStephen Shaw QUALIFIED
Francesco ShinkoAustraliaAmy Elsner NEGOTIATION
Munro FerenczCanadaIoni Bowcher NEW
Sinclair WaycottItalyXuxue Feng RENEWAL
Stacey MacleadArgentinaAnna Fali RENEWAL
Faith GillianSpainAmy Elsner RENEWAL
Wickens NestleArgentinaIvan Magalhaes PROPOSAL
Adams MorascaIndiaAsiya Javayant NEW
Rodrigues CampainArgentinaElwin Sharvill UNQUALIFIED
Munro FerenczRussiaIvan Magalhaes QUALIFIED
Izzy GarufiFranceElwin Sharvill RENEWAL
Faith GillianIndiaBernardo Dominic QUALIFIED
Ashley DoeBrazilAsiya Javayant PROPOSAL
Ivar PaprockiUnited KingdomStephen Shaw NEGOTIATION
Jefferson SchemmerFranceIoni Bowcher RENEWAL
Ashley DoeJapanElwin Sharvill RENEWAL
Aditya KuskoGermanyAsiya Javayant PROPOSAL
Frozen Columns
Name
Tony Foller
David Darakjy
Deepesh Chui
Morrow Ruta
Wickens Nestle
Silvio Slusarski
Cody Saylors
Octavia Malet
Silvio Slusarski
Darci Poquette
Julie Stenseth
Aruna Figeroa
Jones Vocelka
Jones Vocelka
Smith Glick
James Butt
Isabel Bowley
Kaitlin Ostrosky
Kaitlin Ostrosky
Octavia Malet
Aditya Kusko
Munro Ferencz
David Darakjy
Nicolas Iturbide
Greenwood Bolognia
Kadeem Flosi
Chavez Briddick
Darci Poquette
Darci Poquette
Ricardo Gaucho
Alejandro Perin
Aditya Kusko
Aditya Kusko
Silvio Slusarski
Jennifer Amigon
Smith Glick
Silvio Slusarski
Ivar Paprocki
Sinclair Waycott
Maisha Rulapaugh
Maria Marrier
Adams Morasca
Johnson Sergi
Julie Stenseth
Alejandro Perin
Deepesh Chui
Antonio Caudy
Darci Poquette
Smith Glick
Cody Saylors
IdCountryDate
1000India2026-04-18
1001Canada2026-04-20
1002Spain2026-04-16
1003Germany2026-04-01
1004India2026-04-07
1005France2026-04-25
1006Russia2026-04-29
1007Argentina2026-04-19
1008India2026-04-04
1009Brazil2026-04-04
1010Brazil2026-04-03
1011Italy2026-04-08
1012Argentina2026-04-23
1013Australia2026-04-12
1014Canada2026-04-03
1015Spain2026-04-27
1016Germany2026-04-25
1017Russia2026-04-21
1018Brazil2026-04-22
1019Spain2026-04-16
1020United Kingdom2026-04-26
1021Canada2026-04-13
1022Italy2026-04-27
1023Australia2026-04-11
1024France2026-04-18
1025Argentina2026-04-26
1026Italy2026-04-17
1027United Kingdom2026-04-28
1028India2026-04-22
1029Germany2026-04-02
1030Brazil2026-04-10
1031Germany2026-04-13
1032Russia2026-04-20
1033United Kingdom2026-04-08
1034France2026-04-08
1035Australia2026-04-06
1036Canada2026-04-22
1037Australia2026-04-01
1038Argentina2026-04-24
1039Brazil2026-04-16
1040Canada2026-04-11
1041India2026-04-11
1042Italy2026-04-07
1043Canada2026-04-15
1044Germany2026-04-08
1045Argentina2026-04-25
1046Argentina2026-04-28
1047Spain2026-04-25
1048Australia2026-04-11
1049Argentina2026-04-30

On-Demand Data

NameIdCountryDate
Maria Marrier1000Germany2026-04-13
Maisha Rulapaugh1001Russia2026-04-07
Jefferson Schemmer1002Argentina2026-04-07
Darci Poquette1003Italy2026-04-21
David Darakjy1004Canada2026-04-14
Misaki Royster1005France2026-04-26
Deepesh Chui1006India2026-04-25
Antonio Caudy1007Brazil2026-04-17
Greenwood Bolognia1008Australia2026-04-27
Antonio Caudy1009Italy2026-04-01
Maria Marrier1010Australia2026-04-05
Rodrigues Campain1011Russia2026-04-04
Julie Stenseth1012Japan2026-04-06
Sinclair Waycott1013United Kingdom2026-04-30
Tony Foller1014Italy2026-04-12
Smith Glick1015Canada2026-04-21
Chavez Briddick1016United Kingdom2026-04-08
James Butt1017Brazil2026-04-18
Murillo Malet1018Spain2026-04-21
Mujtaba Nicka1019Brazil2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardAustraliaBernardo Dominic UNQUALIFIED
Jennifer AmigonFranceStephen Shaw NEGOTIATION
Ivar PaprockiIndiaIoni Bowcher NEGOTIATION
Nicolas IturbideUnited KingdomIoni Bowcher QUALIFIED
Faith GillianCanadaStephen Shaw NEGOTIATION
Leon OldroydJapanIvan Magalhaes RENEWAL
Izzy GarufiGermanyOnyama Limba NEW
Tony FollerRussiaAsiya Javayant UNQUALIFIED
Jennifer AmigonAustraliaXuxue Feng RENEWAL
Morrow RutaBrazilXuxue Feng NEGOTIATION
Ashley DoeCanadaOnyama Limba NEW
Maisha RulapaughCanadaOnyama Limba UNQUALIFIED
Nicolas IturbideFranceAmy Elsner NEW
Greenwood BologniaArgentinaElwin Sharvill PROPOSAL
Leja CaldareraBrazilElwin Sharvill NEW
Johnson SergiSpainOnyama Limba UNQUALIFIED
Wickens NestleItalyIvan Magalhaes PROPOSAL
Adams MorascaAustraliaElwin Sharvill UNQUALIFIED
Emily WhobreyBrazilXuxue Feng NEW
David DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Clifford RimUnited KingdomStephen Shaw NEW
Smith GlickIndiaAnna Fali RENEWAL
Tony FollerSpainIoni Bowcher NEW
Leon OldroydFranceAnna Fali NEGOTIATION
Greenwood BologniaAustraliaAsiya Javayant NEW
Ricardo GauchoBrazilOnyama Limba RENEWAL
Salvatore StockhamJapanIvan Magalhaes NEGOTIATION
Cody SaylorsSpainOnyama Limba NEW
Faith GillianIndiaElwin Sharvill RENEWAL
Sinclair WaycottArgentinaAmy Elsner RENEWAL
Wickens NestleBrazilXuxue Feng NEW
Adams MorascaSpainAnna Fali PROPOSAL
Ricardo GauchoUnited KingdomOnyama Limba RENEWAL
Jeanfrancois VenereRussiaAsiya Javayant PROPOSAL
Ashley DoeSpainIvan Magalhaes NEW
Nicolas IturbideArgentinaStephen Shaw QUALIFIED
James ButtGermanyElwin Sharvill NEW
Misaki RoysterFranceBernardo Dominic PROPOSAL
Tony FollerRussiaAsiya Javayant RENEWAL
Isabel BowleyAustraliaAnna Fali 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>