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
Maria MarrierItalyAmy Elsner NEW
Aika InouyeAustraliaIvan Magalhaes RENEWAL
Francesco ShinkoGermanyAnna Fali PROPOSAL
Johnson SergiGermanyElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaOnyama Limba NEW
Adams MorascaArgentinaAmy Elsner RENEWAL
Juan WieserItalyAsiya Javayant QUALIFIED
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Antonio CaudyFranceAmy Elsner UNQUALIFIED
Smith GlickJapanXuxue Feng QUALIFIED
Maisha RulapaughUnited KingdomAsiya Javayant PROPOSAL
Isabel BowleyJapanOnyama Limba UNQUALIFIED
Munro FerenczItalyOnyama Limba RENEWAL
Mujtaba NickaItalyOnyama Limba PROPOSAL
Darci PoquetteJapanOnyama Limba QUALIFIED
Jefferson SchemmerCanadaOnyama Limba NEGOTIATION
Leon OldroydIndiaIoni Bowcher PROPOSAL
Darci PoquetteCanadaStephen Shaw NEW
Mujtaba NickaArgentinaStephen Shaw NEGOTIATION
Greenwood BologniaArgentinaAnna Fali RENEWAL
Mujtaba NickaAustraliaElwin Sharvill QUALIFIED
Octavia MaletRussiaAmy Elsner PROPOSAL
Isabel BowleyIndiaXuxue Feng PROPOSAL
James ButtSpainElwin Sharvill PROPOSAL
Silvio SlusarskiSpainElwin Sharvill UNQUALIFIED
Salvatore StockhamBrazilAnna Fali UNQUALIFIED
Francesco ShinkoAustraliaIvan Magalhaes NEGOTIATION
David DarakjyRussiaXuxue Feng UNQUALIFIED
Murillo MaletItalyAmy Elsner NEGOTIATION
Clifford RimAustraliaIoni Bowcher NEGOTIATION
Kaitlin OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Chavez BriddickGermanyElwin Sharvill NEGOTIATION
Jeanfrancois VenereGermanyIvan Magalhaes NEGOTIATION
Arvin AlbaresAustraliaStephen Shaw QUALIFIED
Misaki RoysterItalyAmy Elsner PROPOSAL
Mayumi KolmetzFranceIoni Bowcher UNQUALIFIED
Claire TollnerJapanXuxue Feng NEW
Tony FollerArgentinaIvan Magalhaes NEGOTIATION
Antonio CaudyGermanyOnyama Limba PROPOSAL
Kaitlin OstroskyItalyIoni Bowcher UNQUALIFIED
Aika InouyeSpainAmy Elsner PROPOSAL
Nicolas IturbideJapanAsiya Javayant PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher PROPOSAL
Izzy GarufiSpainElwin Sharvill NEGOTIATION
Deepesh ChuiItalyIoni Bowcher RENEWAL
Greenwood BologniaBrazilOnyama Limba RENEWAL
Kaitlin OstroskySpainIoni Bowcher NEW
Izzy GarufiJapanOnyama Limba RENEWAL
David DarakjyItalyIvan Magalhaes NEW
Francesco ShinkoArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzGermanyBernardo Dominic RENEWAL
Smith GlickAustraliaXuxue Feng RENEWAL
Ricardo GauchoArgentinaStephen Shaw NEW
Clifford RimFranceStephen Shaw QUALIFIED
Sinclair WaycottCanadaAnna Fali NEW
Aruna FigeroaRussiaAnna Fali PROPOSAL
Nicolas IturbideUnited KingdomXuxue Feng RENEWAL
Wickens NestleCanadaAsiya Javayant QUALIFIED
Wickens NestleSpainIvan Magalhaes RENEWAL
Tony FollerItalyXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaUnited Kingdom2026-03-27Chapman, Ross E Esq RENEWAL60Onyama Limba
1001Faith GillianIndia2026-03-28Chanay, Jeffrey A Esq PROPOSAL31Xuxue Feng
1002Sinclair WaycottBrazil2026-04-11Morlong Associates QUALIFIED46Anna Fali
1003Silvio SlusarskiBrazil2026-04-10Buckley Miller Wright NEW33Ioni Bowcher
1004Arvin AlbaresArgentina2026-03-30Chapman, Ross E Esq NEW80Xuxue Feng
1005Munro FerenczRussia2026-04-03Buckley Miller Wright NEW53Stephen Shaw
1006Antonio CaudyFrance2026-04-16Printing Dimensions PROPOSAL20Elwin Sharvill
1007Leja CaldareraGermany2026-03-26Morlong Associates NEGOTIATION89Elwin Sharvill
1008Stacey MacleadJapan2026-04-02Benton, John B Jr NEW9Ivan Magalhaes
1009Aruna FigeroaFrance2026-04-07Chanay, Jeffrey A Esq PROPOSAL9Amy Elsner
1010Adams MorascaSpain2026-04-08King, Christopher A Esq NEW89Xuxue Feng
1011Johnson SergiRussia2026-04-16Printing Dimensions NEGOTIATION86Stephen Shaw
1012Chavez BriddickFrance2026-04-13Feiner Bros UNQUALIFIED75Stephen Shaw
1013Kadeem FlosiIndia2026-04-15Rangoni Of Florence RENEWAL50Bernardo Dominic
1014Sinclair WaycottUnited Kingdom2026-03-30King, Christopher A Esq UNQUALIFIED42Ioni Bowcher
1015Adams MorascaGermany2026-04-04Rangoni Of Florence RENEWAL42Anna Fali
1016Leja CaldareraCanada2026-03-24Chemel, James L Cpa RENEWAL18Ivan Magalhaes
1017Clifford RimArgentina2026-04-18Feiner Bros RENEWAL69Elwin Sharvill
1018Misaki RoysterFrance2026-04-18Feltz Printing Service NEGOTIATION9Onyama Limba
1019Cody SaylorsArgentina2026-03-25Morlong Associates NEW24Stephen Shaw
1020Maisha RulapaughGermany2026-04-15Printing Dimensions UNQUALIFIED57Ioni Bowcher
1021Stacey MacleadItaly2026-04-04Dorl, James J Esq NEGOTIATION23Asiya Javayant
1022Jefferson SchemmerCanada2026-04-11Commercial Press RENEWAL13Stephen Shaw
1023Rodrigues CampainArgentina2026-04-16Rangoni Of Florence QUALIFIED69Ioni Bowcher
1024Octavia MaletAustralia2026-04-04Commercial Press PROPOSAL58Onyama Limba
1025Adams MorascaIndia2026-04-14Chapman, Ross E Esq QUALIFIED98Asiya Javayant
1026Salvatore StockhamFrance2026-03-30Dorl, James J Esq QUALIFIED72Stephen Shaw
1027Mujtaba NickaArgentina2026-04-02Chapman, Ross E Esq UNQUALIFIED78Ivan Magalhaes
1028Jefferson SchemmerAustralia2026-03-28Dorl, James J Esq UNQUALIFIED63Asiya Javayant
1029Maisha RulapaughIndia2026-04-15Dorl, James J Esq PROPOSAL75Amy Elsner
1030Cody SaylorsGermany2026-04-02Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1031Arvin AlbaresSpain2026-04-08Commercial Press PROPOSAL0Stephen Shaw
1032Aruna FigeroaUnited Kingdom2026-04-05Commercial Press QUALIFIED86Bernardo Dominic
1033Mujtaba NickaJapan2026-03-24Rousseaux, Michael Esq NEW99Stephen Shaw
1034Aditya KuskoJapan2026-04-11Benton, John B Jr RENEWAL79Asiya Javayant
1035Adams MorascaItaly2026-04-18Commercial Press NEW30Asiya Javayant
1036Leon OldroydBrazil2026-04-14King, Christopher A Esq PROPOSAL24Elwin Sharvill
1037Deepesh ChuiAustralia2026-04-04Dorl, James J Esq UNQUALIFIED90Stephen Shaw
1038Clifford RimFrance2026-04-06Dorl, James J Esq NEGOTIATION46Elwin Sharvill
1039James ButtItaly2026-04-05Dorl, James J Esq QUALIFIED61Amy Elsner
1040Aditya KuskoBrazil2026-04-09Feltz Printing Service UNQUALIFIED50Ivan Magalhaes
1041Darci PoquetteIndia2026-04-05King, Christopher A Esq NEW67Onyama Limba
1042Aika InouyeJapan2026-04-03Truhlar And Truhlar Attys QUALIFIED58Asiya Javayant
1043Mujtaba NickaCanada2026-03-31Commercial Press RENEWAL3Xuxue Feng
1044Murillo MaletArgentina2026-04-07Rousseaux, Michael Esq RENEWAL89Stephen Shaw
1045Kaitlin OstroskyRussia2026-04-17Benton, John B Jr QUALIFIED3Xuxue Feng
1046Deepesh ChuiAustralia2026-03-26Commercial Press UNQUALIFIED51Ivan Magalhaes
1047Izzy GarufiRussia2026-03-24King, Christopher A Esq PROPOSAL83Stephen Shaw
1048Francesco ShinkoRussia2026-03-25Commercial Press RENEWAL57Amy Elsner
1049Adams MorascaArgentina2026-03-27Feiner Bros RENEWAL19Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonAustraliaIvan Magalhaes NEGOTIATION
Leon OldroydItalyIvan Magalhaes NEGOTIATION
Jones VocelkaFranceOnyama Limba UNQUALIFIED
James ButtJapanAnna Fali NEGOTIATION
Stacey MacleadBrazilOnyama Limba UNQUALIFIED
Mujtaba NickaRussiaIvan Magalhaes RENEWAL
Smith GlickIndiaBernardo Dominic NEW
Izzy GarufiFranceAsiya Javayant UNQUALIFIED
Izzy GarufiFranceIoni Bowcher QUALIFIED
Jones VocelkaCanadaAnna Fali QUALIFIED
Wickens NestleAustraliaXuxue Feng PROPOSAL
Julie StensethFranceOnyama Limba NEW
Jones VocelkaSpainElwin Sharvill QUALIFIED
Alejandro PerinSpainStephen Shaw PROPOSAL
James ButtItalyStephen Shaw PROPOSAL
Wickens NestleArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyBrazilElwin Sharvill NEW
Murillo MaletCanadaBernardo Dominic NEW
Ashley DoeArgentinaElwin Sharvill NEW
James ButtUnited KingdomXuxue Feng QUALIFIED
Deepesh ChuiJapanStephen Shaw QUALIFIED
Silvio SlusarskiCanadaBernardo Dominic UNQUALIFIED
Claire TollnerItalyAsiya Javayant UNQUALIFIED
Costa DilliardFranceAnna Fali QUALIFIED
Rodrigues CampainFranceAsiya Javayant NEW
Jeanfrancois VenereJapanBernardo Dominic NEW
Murillo MaletArgentinaOnyama Limba UNQUALIFIED
Morrow RutaJapanAsiya Javayant NEW
Deepesh ChuiJapanBernardo Dominic PROPOSAL
Emily WhobreyItalyXuxue Feng NEGOTIATION
Julie StensethUnited KingdomBernardo Dominic QUALIFIED
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Kaitlin OstroskyItalyElwin Sharvill UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill RENEWAL
Johnson SergiBrazilAmy Elsner PROPOSAL
Ricardo GauchoAustraliaAsiya Javayant NEGOTIATION
Salvatore StockhamAustraliaAsiya Javayant QUALIFIED
Stacey MacleadRussiaBernardo Dominic NEGOTIATION
Jefferson SchemmerRussiaAnna Fali UNQUALIFIED
Wickens NestleIndiaBernardo Dominic NEGOTIATION
Kadeem FlosiCanadaXuxue Feng QUALIFIED
Silvio SlusarskiSpainOnyama Limba QUALIFIED
Munro FerenczAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoArgentinaAnna Fali NEW
Mujtaba NickaCanadaBernardo Dominic NEW
Greenwood BologniaGermanyOnyama Limba RENEWAL
Cody SaylorsArgentinaAsiya Javayant NEW
Kaitlin OstroskyRussiaIvan Magalhaes RENEWAL
Jones VocelkaRussiaAmy Elsner QUALIFIED
Munro FerenczCanadaAsiya Javayant QUALIFIED
Frozen Columns
Name
Ricardo Gaucho
Costa Dilliard
Ivar Paprocki
Arvin Albares
Ashley Doe
Johnson Sergi
Antonio Caudy
Ivar Paprocki
Misaki Royster
Nicolas Iturbide
Aika Inouye
Aika Inouye
Darci Poquette
Adams Morasca
Kaitlin Ostrosky
Jeanfrancois Venere
Ashley Doe
Faith Gillian
Misaki Royster
Juan Wieser
Darci Poquette
Aruna Figeroa
Aruna Figeroa
Jeanfrancois Venere
Costa Dilliard
Salvatore Stockham
Silvio Slusarski
Ricardo Gaucho
David Darakjy
Ricardo Gaucho
Kaitlin Ostrosky
Maisha Rulapaugh
Jefferson Schemmer
Kadeem Flosi
Tony Foller
Mayumi Kolmetz
Claire Tollner
Faith Gillian
Mayumi Kolmetz
Leon Oldroyd
Johnson Sergi
Francesco Shinko
Smith Glick
Maisha Rulapaugh
Cody Saylors
Sinclair Waycott
Isabel Bowley
David Darakjy
Deepesh Chui
Julie Stenseth
IdCountryDate
1000Australia2026-03-29
1001Germany2026-03-28
1002Italy2026-04-10
1003Australia2026-03-25
1004India2026-04-19
1005Japan2026-04-15
1006Germany2026-03-30
1007Spain2026-04-15
1008India2026-04-06
1009France2026-03-31
1010Japan2026-03-29
1011Argentina2026-04-14
1012Argentina2026-03-23
1013Japan2026-03-28
1014Germany2026-04-13
1015Japan2026-04-10
1016United Kingdom2026-03-24
1017Australia2026-04-12
1018France2026-04-01
1019Brazil2026-04-21
1020Russia2026-03-30
1021Russia2026-04-21
1022Germany2026-04-08
1023Australia2026-04-15
1024India2026-04-16
1025Russia2026-04-20
1026Canada2026-03-28
1027Brazil2026-04-11
1028Germany2026-04-20
1029Australia2026-04-03
1030France2026-04-06
1031France2026-03-27
1032Canada2026-04-06
1033Australia2026-04-12
1034Canada2026-04-21
1035United Kingdom2026-04-02
1036Spain2026-04-14
1037Japan2026-04-08
1038Italy2026-03-27
1039Russia2026-04-01
1040Argentina2026-04-05
1041Japan2026-04-21
1042Japan2026-04-16
1043Argentina2026-04-20
1044Argentina2026-04-17
1045Argentina2026-03-24
1046Germany2026-04-15
1047Canada2026-04-15
1048Japan2026-04-21
1049Australia2026-03-23

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Canada2026-04-01
Munro Ferencz1001France2026-03-23
David Darakjy1002Brazil2026-03-26
Jeanfrancois Venere1003Germany2026-04-21
Tony Foller1004Italy2026-03-27
Aika Inouye1005Canada2026-04-16
Jennifer Amigon1006United Kingdom2026-04-12
Smith Glick1007United Kingdom2026-04-12
Mujtaba Nicka1008Japan2026-04-01
Antonio Caudy1009Russia2026-04-17
Jeanfrancois Venere1010Canada2026-04-15
Costa Dilliard1011Germany2026-04-21
Rodrigues Campain1012Italy2026-04-09
Mujtaba Nicka1013Australia2026-04-19
Munro Ferencz1014Japan2026-03-29
Stacey Maclead1015Russia2026-04-18
Alejandro Perin1016Japan2026-04-07
Claire Tollner1017Argentina2026-03-29
Francesco Shinko1018Australia2026-03-29
Isabel Bowley1019Italy2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoAustraliaAsiya Javayant UNQUALIFIED
Francesco ShinkoGermanyAmy Elsner NEW
James ButtSpainStephen Shaw QUALIFIED
Greenwood BologniaArgentinaBernardo Dominic PROPOSAL
Ashley DoeFranceIvan Magalhaes NEGOTIATION
Greenwood BologniaItalyXuxue Feng QUALIFIED
Maisha RulapaughSpainStephen Shaw PROPOSAL
Alejandro PerinArgentinaAsiya Javayant NEGOTIATION
Emily WhobreyRussiaXuxue Feng NEW
Aika InouyeAustraliaAmy Elsner NEW
Jefferson SchemmerItalyAsiya Javayant NEGOTIATION
Costa DilliardArgentinaElwin Sharvill PROPOSAL
Rodrigues CampainJapanAmy Elsner UNQUALIFIED
David DarakjyFranceIoni Bowcher UNQUALIFIED
Kaitlin OstroskyFranceBernardo Dominic RENEWAL
Johnson SergiArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzGermanyElwin Sharvill QUALIFIED
Jennifer AmigonIndiaIvan Magalhaes UNQUALIFIED
Antonio CaudyItalyElwin Sharvill NEGOTIATION
Mujtaba NickaItalyBernardo Dominic RENEWAL
Johnson SergiBrazilIvan Magalhaes QUALIFIED
Aruna FigeroaArgentinaStephen Shaw UNQUALIFIED
Johnson SergiSpainIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilIoni Bowcher NEW
Octavia MaletCanadaIvan Magalhaes PROPOSAL
Izzy GarufiBrazilElwin Sharvill UNQUALIFIED
Johnson SergiArgentinaAmy Elsner UNQUALIFIED
Greenwood BologniaRussiaOnyama Limba QUALIFIED
Izzy GarufiAustraliaXuxue Feng NEGOTIATION
Morrow RutaAustraliaElwin Sharvill UNQUALIFIED
Greenwood BologniaIndiaXuxue Feng UNQUALIFIED
Izzy GarufiJapanElwin Sharvill NEGOTIATION
Aditya KuskoArgentinaAmy Elsner UNQUALIFIED
Claire TollnerFranceOnyama Limba UNQUALIFIED
Leja CaldareraCanadaIvan Magalhaes QUALIFIED
Julie StensethRussiaAmy Elsner QUALIFIED
Faith GillianFranceAmy Elsner NEW
Munro FerenczUnited KingdomAmy Elsner NEW
Francesco ShinkoFranceOnyama Limba PROPOSAL
Julie StensethSpainXuxue Feng 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>