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
Mayumi KolmetzItalyElwin Sharvill QUALIFIED
Murillo MaletAustraliaAmy Elsner UNQUALIFIED
Sinclair WaycottGermanyBernardo Dominic NEGOTIATION
Mayumi KolmetzArgentinaAmy Elsner QUALIFIED
Leja CaldareraIndiaElwin Sharvill RENEWAL
Ivar PaprockiFranceAmy Elsner QUALIFIED
Francesco ShinkoRussiaElwin Sharvill UNQUALIFIED
Mayumi KolmetzArgentinaOnyama Limba QUALIFIED
Francesco ShinkoFranceAsiya Javayant QUALIFIED
Leja CaldareraAustraliaAnna Fali PROPOSAL
Leon OldroydJapanOnyama Limba NEW
Cody SaylorsCanadaAsiya Javayant PROPOSAL
Darci PoquetteJapanAnna Fali UNQUALIFIED
Munro FerenczSpainXuxue Feng NEGOTIATION
Mayumi KolmetzCanadaAnna Fali UNQUALIFIED
Cody SaylorsArgentinaBernardo Dominic QUALIFIED
Morrow RutaFranceAmy Elsner NEGOTIATION
Juan WieserJapanAmy Elsner NEGOTIATION
Aditya KuskoGermanyAsiya Javayant UNQUALIFIED
Antonio CaudyCanadaAsiya Javayant RENEWAL
Arvin AlbaresAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczSpainBernardo Dominic NEGOTIATION
Aruna FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Wickens NestleSpainIvan Magalhaes RENEWAL
Maria MarrierFranceBernardo Dominic QUALIFIED
Maisha RulapaughRussiaOnyama Limba QUALIFIED
Tony FollerAustraliaAmy Elsner NEW
Chavez BriddickAustraliaOnyama Limba QUALIFIED
Salvatore StockhamUnited KingdomBernardo Dominic QUALIFIED
Costa DilliardUnited KingdomIoni Bowcher QUALIFIED
Johnson SergiJapanElwin Sharvill UNQUALIFIED
Maria MarrierCanadaBernardo Dominic NEGOTIATION
Mujtaba NickaSpainAnna Fali NEGOTIATION
Salvatore StockhamGermanyAsiya Javayant RENEWAL
Maria MarrierRussiaAsiya Javayant NEGOTIATION
David DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Leon OldroydRussiaBernardo Dominic QUALIFIED
Nicolas IturbideItalyAnna Fali QUALIFIED
Ricardo GauchoCanadaElwin Sharvill RENEWAL
Smith GlickUnited KingdomAsiya Javayant NEGOTIATION
Greenwood BologniaArgentinaIvan Magalhaes UNQUALIFIED
Costa DilliardCanadaAnna Fali PROPOSAL
Aditya KuskoIndiaAmy Elsner RENEWAL
Tony FollerAustraliaElwin Sharvill NEW
Murillo MaletIndiaAsiya Javayant NEW
Murillo MaletSpainXuxue Feng UNQUALIFIED
Aika InouyeUnited KingdomIoni Bowcher RENEWAL
Chavez BriddickArgentinaAmy Elsner PROPOSAL
Munro FerenczCanadaXuxue Feng NEW
Tony FollerBrazilAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaGermanyOnyama Limba NEW
Johnson SergiGermanyBernardo Dominic RENEWAL
Munro FerenczArgentinaAmy Elsner NEW
Arvin AlbaresArgentinaXuxue Feng NEGOTIATION
Aruna FigeroaJapanOnyama Limba QUALIFIED
Leon OldroydUnited KingdomAmy Elsner QUALIFIED
Costa DilliardRussiaAmy Elsner QUALIFIED
Francesco ShinkoCanadaBernardo Dominic NEW
Francesco ShinkoJapanAsiya Javayant PROPOSAL
Jeanfrancois VenereSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickJapan2026-04-25Truhlar And Truhlar Attys QUALIFIED45Elwin Sharvill
1001Maria MarrierItaly2026-04-20Printing Dimensions RENEWAL96Stephen Shaw
1002Kaitlin OstroskyFrance2026-04-09Rousseaux, Michael Esq QUALIFIED65Onyama Limba
1003Cody SaylorsRussia2026-04-22Rousseaux, Michael Esq RENEWAL6Ivan Magalhaes
1004Deepesh ChuiGermany2026-05-01Printing Dimensions NEGOTIATION99Bernardo Dominic
1005Chavez BriddickAustralia2026-05-03Commercial Press NEW59Ivan Magalhaes
1006Jones VocelkaArgentina2026-04-09Commercial Press PROPOSAL97Bernardo Dominic
1007Arvin AlbaresItaly2026-04-30Rangoni Of Florence QUALIFIED40Amy Elsner
1008David DarakjyAustralia2026-04-17Commercial Press RENEWAL23Ivan Magalhaes
1009Claire TollnerIndia2026-04-18Commercial Press PROPOSAL71Ivan Magalhaes
1010Silvio SlusarskiBrazil2026-05-02Rousseaux, Michael Esq UNQUALIFIED93Amy Elsner
1011Clifford RimItaly2026-04-16Buckley Miller Wright PROPOSAL35Asiya Javayant
1012David DarakjyJapan2026-04-18Truhlar And Truhlar Attys NEGOTIATION67Onyama Limba
1013Octavia MaletJapan2026-04-23Buckley Miller Wright RENEWAL43Onyama Limba
1014Greenwood BologniaRussia2026-05-02Morlong Associates UNQUALIFIED71Asiya Javayant
1015Murillo MaletJapan2026-04-26Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1016Johnson SergiArgentina2026-04-15Chemel, James L Cpa UNQUALIFIED79Anna Fali
1017Juan WieserItaly2026-04-07Commercial Press QUALIFIED2Anna Fali
1018Emily WhobreyIndia2026-04-15Buckley Miller Wright QUALIFIED50Ioni Bowcher
1019Alejandro PerinCanada2026-04-17Chapman, Ross E Esq QUALIFIED49Anna Fali
1020Silvio SlusarskiUnited Kingdom2026-04-23King, Christopher A Esq RENEWAL76Bernardo Dominic
1021Sinclair WaycottAustralia2026-04-28Commercial Press NEGOTIATION58Onyama Limba
1022Leon OldroydRussia2026-05-05Morlong Associates NEGOTIATION80Elwin Sharvill
1023Costa DilliardIndia2026-04-30Commercial Press PROPOSAL30Amy Elsner
1024Johnson SergiGermany2026-04-30Morlong Associates RENEWAL46Ioni Bowcher
1025Arvin AlbaresAustralia2026-04-11Dorl, James J Esq NEGOTIATION33Xuxue Feng
1026Jeanfrancois VenereArgentina2026-04-11King, Christopher A Esq NEW34Asiya Javayant
1027Leon OldroydBrazil2026-04-28Buckley Miller Wright QUALIFIED52Stephen Shaw
1028Aruna FigeroaIndia2026-04-17Dorl, James J Esq UNQUALIFIED72Ivan Magalhaes
1029Munro FerenczCanada2026-04-09Feiner Bros QUALIFIED97Ioni Bowcher
1030Octavia MaletItaly2026-04-19Rousseaux, Michael Esq UNQUALIFIED50Ivan Magalhaes
1031Nicolas IturbideUnited Kingdom2026-04-17Feiner Bros QUALIFIED28Amy Elsner
1032Izzy GarufiGermany2026-04-18King, Christopher A Esq NEGOTIATION57Ioni Bowcher
1033Costa DilliardUnited Kingdom2026-04-29Truhlar And Truhlar Attys RENEWAL21Xuxue Feng
1034Silvio SlusarskiGermany2026-04-26Buckley Miller Wright NEGOTIATION67Stephen Shaw
1035Munro FerenczJapan2026-04-21Feiner Bros PROPOSAL63Bernardo Dominic
1036Greenwood BologniaItaly2026-04-13Rangoni Of Florence QUALIFIED25Xuxue Feng
1037Sinclair WaycottGermany2026-04-20Buckley Miller Wright PROPOSAL8Elwin Sharvill
1038Rodrigues CampainAustralia2026-04-21King, Christopher A Esq PROPOSAL13Onyama Limba
1039Faith GillianFrance2026-04-27Feiner Bros NEGOTIATION22Onyama Limba
1040Silvio SlusarskiCanada2026-04-29Chanay, Jeffrey A Esq UNQUALIFIED23Xuxue Feng
1041David DarakjySpain2026-04-17Rangoni Of Florence RENEWAL1Bernardo Dominic
1042Silvio SlusarskiJapan2026-04-23Morlong Associates NEGOTIATION22Bernardo Dominic
1043Emily WhobreyArgentina2026-04-19Buckley Miller Wright NEW74Asiya Javayant
1044Alejandro PerinIndia2026-05-03Chapman, Ross E Esq PROPOSAL6Xuxue Feng
1045Greenwood BologniaCanada2026-04-07Printing Dimensions QUALIFIED51Amy Elsner
1046Arvin AlbaresUnited Kingdom2026-04-24King, Christopher A Esq UNQUALIFIED6Amy Elsner
1047Mujtaba NickaJapan2026-04-20Chanay, Jeffrey A Esq NEGOTIATION52Elwin Sharvill
1048Juan WieserJapan2026-05-02Dorl, James J Esq PROPOSAL2Bernardo Dominic
1049Aditya KuskoArgentina2026-04-14Benton, John B Jr NEW54Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeUnited KingdomAmy Elsner NEW
Jones VocelkaArgentinaIoni Bowcher QUALIFIED
Tony FollerItalyElwin Sharvill NEGOTIATION
Rodrigues CampainFranceXuxue Feng PROPOSAL
Octavia MaletAustraliaOnyama Limba NEW
Aruna FigeroaJapanIvan Magalhaes NEW
Chavez BriddickAustraliaAsiya Javayant UNQUALIFIED
Kadeem FlosiBrazilIoni Bowcher NEW
Darci PoquetteRussiaXuxue Feng NEW
Aruna FigeroaArgentinaOnyama Limba QUALIFIED
Mujtaba NickaRussiaAsiya Javayant NEW
Chavez BriddickArgentinaBernardo Dominic NEGOTIATION
Costa DilliardFranceOnyama Limba PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill PROPOSAL
Arvin AlbaresCanadaOnyama Limba RENEWAL
Adams MorascaItalyXuxue Feng NEGOTIATION
Antonio CaudyAustraliaAsiya Javayant QUALIFIED
Salvatore StockhamCanadaIvan Magalhaes NEGOTIATION
Leon OldroydItalyXuxue Feng NEGOTIATION
Tony FollerIndiaOnyama Limba NEGOTIATION
Smith GlickSpainIvan Magalhaes UNQUALIFIED
Silvio SlusarskiGermanyElwin Sharvill UNQUALIFIED
Mujtaba NickaFranceXuxue Feng NEGOTIATION
Isabel BowleyArgentinaStephen Shaw UNQUALIFIED
Jefferson SchemmerItalyIvan Magalhaes NEW
Misaki RoysterUnited KingdomElwin Sharvill QUALIFIED
Maria MarrierIndiaElwin Sharvill UNQUALIFIED
Johnson SergiRussiaAmy Elsner UNQUALIFIED
Antonio CaudySpainAmy Elsner RENEWAL
Leon OldroydSpainElwin Sharvill RENEWAL
Mayumi KolmetzRussiaOnyama Limba UNQUALIFIED
Smith GlickFranceBernardo Dominic RENEWAL
Darci PoquetteSpainAnna Fali UNQUALIFIED
Smith GlickIndiaIvan Magalhaes NEW
Jones VocelkaUnited KingdomIoni Bowcher NEGOTIATION
Octavia MaletUnited KingdomIvan Magalhaes NEW
Chavez BriddickArgentinaElwin Sharvill NEW
Leja CaldareraArgentinaStephen Shaw QUALIFIED
Maisha RulapaughCanadaIvan Magalhaes QUALIFIED
Antonio CaudyUnited KingdomElwin Sharvill QUALIFIED
Alejandro PerinItalyIoni Bowcher NEW
Morrow RutaFranceIvan Magalhaes RENEWAL
Johnson SergiArgentinaElwin Sharvill RENEWAL
Faith GillianArgentinaAnna Fali QUALIFIED
Aditya KuskoBrazilAmy Elsner NEW
Cody SaylorsUnited KingdomIvan Magalhaes RENEWAL
Jefferson SchemmerJapanAsiya Javayant QUALIFIED
Leon OldroydIndiaElwin Sharvill RENEWAL
Misaki RoysterRussiaOnyama Limba QUALIFIED
Chavez BriddickGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Emily Whobrey
Ricardo Gaucho
Deepesh Chui
Johnson Sergi
Wickens Nestle
Mayumi Kolmetz
Misaki Royster
Adams Morasca
Deepesh Chui
Maisha Rulapaugh
Leja Caldarera
Maisha Rulapaugh
Ashley Doe
Silvio Slusarski
Misaki Royster
Misaki Royster
Johnson Sergi
Arvin Albares
Mujtaba Nicka
Clifford Rim
Izzy Garufi
Ivar Paprocki
Smith Glick
Jefferson Schemmer
Nicolas Iturbide
Julie Stenseth
Rodrigues Campain
Ashley Doe
Aditya Kusko
Izzy Garufi
Aruna Figeroa
Sinclair Waycott
Leon Oldroyd
Salvatore Stockham
Leja Caldarera
Munro Ferencz
Stacey Maclead
David Darakjy
Ricardo Gaucho
Jones Vocelka
Antonio Caudy
Octavia Malet
Nicolas Iturbide
Rodrigues Campain
Claire Tollner
Kadeem Flosi
Octavia Malet
Mayumi Kolmetz
Sinclair Waycott
Morrow Ruta
IdCountryDate
1000Canada2026-04-23
1001Japan2026-04-07
1002France2026-04-17
1003Australia2026-04-24
1004Russia2026-04-06
1005Russia2026-04-10
1006France2026-04-27
1007Australia2026-04-18
1008United Kingdom2026-04-14
1009France2026-04-08
1010Australia2026-05-01
1011India2026-04-26
1012France2026-04-19
1013Argentina2026-05-04
1014Spain2026-05-03
1015Argentina2026-04-08
1016Australia2026-04-28
1017Germany2026-04-16
1018Australia2026-04-28
1019India2026-04-08
1020Spain2026-04-07
1021Japan2026-04-23
1022Japan2026-05-05
1023France2026-04-18
1024France2026-04-17
1025Germany2026-04-14
1026Russia2026-04-12
1027Canada2026-04-06
1028France2026-04-10
1029Italy2026-04-27
1030United Kingdom2026-05-04
1031Italy2026-05-01
1032Russia2026-04-17
1033Germany2026-04-14
1034Brazil2026-04-12
1035Germany2026-04-26
1036Russia2026-04-14
1037France2026-04-21
1038Japan2026-04-08
1039United Kingdom2026-04-10
1040India2026-04-26
1041Australia2026-04-12
1042Russia2026-04-24
1043Russia2026-04-06
1044Australia2026-04-26
1045Russia2026-05-01
1046Germany2026-04-15
1047Germany2026-04-21
1048Russia2026-04-07
1049Germany2026-05-05

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Argentina2026-04-11
Maria Marrier1001Argentina2026-04-09
Greenwood Bolognia1002India2026-04-30
Maria Marrier1003Canada2026-04-21
Julie Stenseth1004Brazil2026-05-04
Silvio Slusarski1005Germany2026-04-27
Leon Oldroyd1006Italy2026-04-15
Leja Caldarera1007Brazil2026-04-24
Kadeem Flosi1008Germany2026-04-14
Kaitlin Ostrosky1009Brazil2026-04-15
Greenwood Bolognia1010Germany2026-04-23
Nicolas Iturbide1011Germany2026-04-09
Kadeem Flosi1012France2026-04-18
Jefferson Schemmer1013Australia2026-04-27
Nicolas Iturbide1014France2026-05-05
Antonio Caudy1015United Kingdom2026-04-06
Johnson Sergi1016India2026-04-08
Ivar Paprocki1017Spain2026-05-02
Misaki Royster1018United Kingdom2026-04-08
Jefferson Schemmer1019Spain2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimArgentinaAnna Fali NEW
Ivar PaprockiIndiaAmy Elsner NEW
Costa DilliardRussiaBernardo Dominic NEW
Arvin AlbaresItalyBernardo Dominic PROPOSAL
Ivar PaprockiIndiaAmy Elsner NEW
Jones VocelkaSpainIvan Magalhaes NEW
Deepesh ChuiSpainStephen Shaw NEW
Antonio CaudyItalyAmy Elsner PROPOSAL
Silvio SlusarskiItalyOnyama Limba PROPOSAL
Clifford RimIndiaIvan Magalhaes PROPOSAL
Misaki RoysterSpainStephen Shaw NEW
Silvio SlusarskiArgentinaBernardo Dominic RENEWAL
Leja CaldareraFranceIvan Magalhaes NEW
Johnson SergiJapanXuxue Feng NEW
Aditya KuskoFranceOnyama Limba NEW
Wickens NestleUnited KingdomIvan Magalhaes PROPOSAL
Cody SaylorsFranceXuxue Feng NEW
Jeanfrancois VenereArgentinaBernardo Dominic NEW
Izzy GarufiArgentinaIoni Bowcher PROPOSAL
Greenwood BologniaRussiaAnna Fali NEW
Stacey MacleadJapanXuxue Feng PROPOSAL
Darci PoquetteArgentinaAmy Elsner UNQUALIFIED
Sinclair WaycottBrazilBernardo Dominic QUALIFIED
Silvio SlusarskiGermanyIoni Bowcher PROPOSAL
Mayumi KolmetzCanadaAmy Elsner PROPOSAL
Kadeem FlosiArgentinaElwin Sharvill UNQUALIFIED
Izzy GarufiAustraliaIoni Bowcher UNQUALIFIED
Murillo MaletJapanAsiya Javayant NEW
David DarakjyAustraliaElwin Sharvill NEW
Faith GillianFranceBernardo Dominic NEW
Greenwood BologniaUnited KingdomBernardo Dominic QUALIFIED
Cody SaylorsJapanXuxue Feng QUALIFIED
Leon OldroydIndiaIoni Bowcher NEW
Munro FerenczCanadaAmy Elsner NEGOTIATION
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Costa DilliardAustraliaAsiya Javayant QUALIFIED
Octavia MaletArgentinaBernardo Dominic NEGOTIATION
Jennifer AmigonItalyXuxue Feng NEW
Morrow RutaIndiaXuxue Feng PROPOSAL
Jennifer AmigonAustraliaAnna Fali UNQUALIFIED

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