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
Ashley DoeGermanyAsiya Javayant NEW
Smith GlickCanadaAnna Fali RENEWAL
Silvio SlusarskiSpainBernardo Dominic RENEWAL
Francesco ShinkoJapanXuxue Feng RENEWAL
Chavez BriddickFranceIoni Bowcher PROPOSAL
Ivar PaprockiCanadaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyJapanIoni Bowcher NEGOTIATION
Sinclair WaycottSpainIoni Bowcher QUALIFIED
Greenwood BologniaArgentinaXuxue Feng QUALIFIED
Johnson SergiSpainBernardo Dominic UNQUALIFIED
Aika InouyeSpainStephen Shaw QUALIFIED
Ashley DoeAustraliaStephen Shaw NEW
Julie StensethItalyAsiya Javayant NEGOTIATION
Johnson SergiArgentinaOnyama Limba NEW
Maria MarrierAustraliaOnyama Limba RENEWAL
Aika InouyeJapanOnyama Limba PROPOSAL
Isabel BowleyArgentinaIvan Magalhaes NEW
Aika InouyeBrazilXuxue Feng PROPOSAL
Mayumi KolmetzCanadaOnyama Limba QUALIFIED
Faith GillianUnited KingdomIvan Magalhaes RENEWAL
Juan WieserCanadaBernardo Dominic NEGOTIATION
Francesco ShinkoBrazilXuxue Feng PROPOSAL
Sinclair WaycottFranceOnyama Limba RENEWAL
James ButtBrazilXuxue Feng RENEWAL
Jefferson SchemmerUnited KingdomAnna Fali UNQUALIFIED
Rodrigues CampainItalyOnyama Limba QUALIFIED
Stacey MacleadArgentinaElwin Sharvill RENEWAL
Adams MorascaUnited KingdomStephen Shaw PROPOSAL
Tony FollerRussiaElwin Sharvill QUALIFIED
Misaki RoysterArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzIndiaOnyama Limba QUALIFIED
Alejandro PerinGermanyIoni Bowcher RENEWAL
Leon OldroydArgentinaStephen Shaw NEGOTIATION
Julie StensethFranceAsiya Javayant UNQUALIFIED
Aruna FigeroaArgentinaIoni Bowcher PROPOSAL
Smith GlickSpainStephen Shaw QUALIFIED
Clifford RimAustraliaXuxue Feng NEW
Leon OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Faith GillianCanadaXuxue Feng NEGOTIATION
Misaki RoysterRussiaXuxue Feng QUALIFIED
Ashley DoeItalyOnyama Limba PROPOSAL
Deepesh ChuiJapanXuxue Feng PROPOSAL
Munro FerenczAustraliaXuxue Feng UNQUALIFIED
David DarakjyIndiaBernardo Dominic NEW
Izzy GarufiAustraliaStephen Shaw UNQUALIFIED
Chavez BriddickIndiaXuxue Feng NEW
Francesco ShinkoFranceXuxue Feng RENEWAL
Adams MorascaGermanyAmy Elsner RENEWAL
Izzy GarufiIndiaBernardo Dominic PROPOSAL
Chavez BriddickSpainAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresRussiaIoni Bowcher QUALIFIED
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Costa DilliardIndiaAsiya Javayant RENEWAL
Smith GlickItalyXuxue Feng PROPOSAL
Kaitlin OstroskySpainAsiya Javayant PROPOSAL
Jones VocelkaSpainIoni Bowcher NEW
Octavia MaletRussiaXuxue Feng NEW
Francesco ShinkoIndiaStephen Shaw NEW
Ivar PaprockiArgentinaBernardo Dominic QUALIFIED
Deepesh ChuiFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoSpain2025-10-23Commercial Press NEW0Ioni Bowcher
1001Isabel BowleyRussia2025-10-22Chanay, Jeffrey A Esq RENEWAL94Amy Elsner
1002Isabel BowleyRussia2025-10-11Feltz Printing Service PROPOSAL44Anna Fali
1003Munro FerenczUnited Kingdom2025-10-11Chemel, James L Cpa NEW94Ivan Magalhaes
1004Alejandro PerinUnited Kingdom2025-10-17Printing Dimensions RENEWAL72Asiya Javayant
1005Wickens NestleFrance2025-10-16Morlong Associates UNQUALIFIED67Ivan Magalhaes
1006Kadeem FlosiGermany2025-10-24Chemel, James L Cpa NEGOTIATION69Anna Fali
1007Arvin AlbaresItaly2025-10-14Chemel, James L Cpa NEGOTIATION96Xuxue Feng
1008Ricardo GauchoRussia2025-10-08Chanay, Jeffrey A Esq RENEWAL54Xuxue Feng
1009James ButtJapan2025-10-28Chapman, Ross E Esq UNQUALIFIED53Bernardo Dominic
1010Jeanfrancois VenereRussia2025-10-13Commercial Press UNQUALIFIED79Stephen Shaw
1011Juan WieserArgentina2025-10-10Chemel, James L Cpa UNQUALIFIED82Amy Elsner
1012Julie StensethArgentina2025-10-18Dorl, James J Esq PROPOSAL84Anna Fali
1013Adams MorascaCanada2025-10-28Buckley Miller Wright QUALIFIED28Stephen Shaw
1014Johnson SergiCanada2025-10-21Feiner Bros NEW33Ioni Bowcher
1015Alejandro PerinArgentina2025-10-27Truhlar And Truhlar Attys NEW24Amy Elsner
1016Sinclair WaycottSpain2025-10-04Chanay, Jeffrey A Esq RENEWAL73Xuxue Feng
1017Costa DilliardCanada2025-10-22Printing Dimensions NEGOTIATION99Anna Fali
1018Darci PoquetteAustralia2025-10-05King, Christopher A Esq RENEWAL96Bernardo Dominic
1019Ricardo GauchoFrance2025-10-21Feltz Printing Service NEGOTIATION90Ivan Magalhaes
1020Cody SaylorsRussia2025-10-16Commercial Press NEW70Amy Elsner
1021Aruna FigeroaBrazil2025-10-25Rangoni Of Florence PROPOSAL34Ivan Magalhaes
1022Murillo MaletArgentina2025-10-04Printing Dimensions PROPOSAL99Bernardo Dominic
1023Jefferson SchemmerBrazil2025-10-12Chanay, Jeffrey A Esq QUALIFIED90Bernardo Dominic
1024Munro FerenczArgentina2025-10-21Morlong Associates PROPOSAL46Onyama Limba
1025Leja CaldareraJapan2025-10-06Dorl, James J Esq QUALIFIED82Elwin Sharvill
1026Greenwood BologniaUnited Kingdom2025-10-02Dorl, James J Esq NEGOTIATION92Ivan Magalhaes
1027Arvin AlbaresRussia2025-10-13Chapman, Ross E Esq UNQUALIFIED6Elwin Sharvill
1028Deepesh ChuiSpain2025-10-16Feltz Printing Service RENEWAL70Xuxue Feng
1029Sinclair WaycottJapan2025-10-06Rousseaux, Michael Esq QUALIFIED76Stephen Shaw
1030Tony FollerUnited Kingdom2025-10-15King, Christopher A Esq QUALIFIED17Stephen Shaw
1031Smith GlickFrance2025-10-29Benton, John B Jr NEGOTIATION43Bernardo Dominic
1032Faith GillianCanada2025-10-17Feltz Printing Service NEGOTIATION56Bernardo Dominic
1033Julie StensethGermany2025-10-17Chapman, Ross E Esq UNQUALIFIED87Xuxue Feng
1034Leon OldroydUnited Kingdom2025-10-03Morlong Associates UNQUALIFIED3Elwin Sharvill
1035Ashley DoeSpain2025-10-24Rousseaux, Michael Esq NEW96Amy Elsner
1036Salvatore StockhamCanada2025-10-31Morlong Associates QUALIFIED54Elwin Sharvill
1037Ivar PaprockiIndia2025-10-13Benton, John B Jr UNQUALIFIED99Ivan Magalhaes
1038Ivar PaprockiArgentina2025-10-24Benton, John B Jr NEW3Ioni Bowcher
1039Darci PoquetteAustralia2025-10-30Buckley Miller Wright QUALIFIED55Bernardo Dominic
1040Wickens NestleAustralia2025-10-12King, Christopher A Esq QUALIFIED34Bernardo Dominic
1041Maria MarrierAustralia2025-10-30Commercial Press NEGOTIATION7Asiya Javayant
1042Kaitlin OstroskyBrazil2025-10-03Buckley Miller Wright NEW65Amy Elsner
1043Tony FollerJapan2025-10-04Truhlar And Truhlar Attys NEGOTIATION38Onyama Limba
1044Jeanfrancois VenereFrance2025-10-15Commercial Press NEW54Elwin Sharvill
1045Izzy GarufiGermany2025-10-22Chapman, Ross E Esq NEW10Onyama Limba
1046Julie StensethJapan2025-10-24Chanay, Jeffrey A Esq NEGOTIATION46Ivan Magalhaes
1047Chavez BriddickGermany2025-10-23Dorl, James J Esq RENEWAL58Stephen Shaw
1048Leon OldroydBrazil2025-10-27Commercial Press RENEWAL35Elwin Sharvill
1049Darci PoquetteRussia2025-10-19Rousseaux, Michael Esq PROPOSAL24Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Sinclair WaycottCanadaIvan Magalhaes QUALIFIED
Faith GillianGermanyBernardo Dominic PROPOSAL
Maria MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh ChuiSpainStephen Shaw UNQUALIFIED
Costa DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Misaki RoysterCanadaAsiya Javayant RENEWAL
Ivar PaprockiFranceXuxue Feng RENEWAL
Mujtaba NickaBrazilElwin Sharvill NEGOTIATION
Silvio SlusarskiFranceAmy Elsner QUALIFIED
Juan WieserAustraliaAmy Elsner QUALIFIED
Kaitlin OstroskySpainAmy Elsner NEGOTIATION
Nicolas IturbideIndiaIvan Magalhaes NEGOTIATION
Salvatore StockhamRussiaIoni Bowcher QUALIFIED
Mujtaba NickaRussiaAmy Elsner PROPOSAL
Ashley DoeFranceIvan Magalhaes QUALIFIED
Murillo MaletUnited KingdomIoni Bowcher NEW
Aruna FigeroaRussiaIvan Magalhaes PROPOSAL
Claire TollnerRussiaAmy Elsner RENEWAL
Mayumi KolmetzJapanAsiya Javayant RENEWAL
Rodrigues CampainFranceBernardo Dominic PROPOSAL
Isabel BowleyArgentinaAsiya Javayant QUALIFIED
David DarakjyItalyOnyama Limba RENEWAL
James ButtArgentinaOnyama Limba NEW
Jones VocelkaGermanyStephen Shaw QUALIFIED
Jennifer AmigonIndiaXuxue Feng NEW
Smith GlickBrazilStephen Shaw PROPOSAL
Deepesh ChuiCanadaXuxue Feng QUALIFIED
Tony FollerJapanAmy Elsner NEW
Sinclair WaycottRussiaStephen Shaw NEGOTIATION
Costa DilliardGermanyAnna Fali QUALIFIED
Julie StensethRussiaXuxue Feng QUALIFIED
Arvin AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Leja CaldareraAustraliaOnyama Limba NEGOTIATION
Octavia MaletBrazilIoni Bowcher QUALIFIED
Greenwood BologniaArgentinaAsiya Javayant QUALIFIED
Claire TollnerArgentinaAmy Elsner RENEWAL
Jeanfrancois VenereJapanIvan Magalhaes NEW
Emily WhobreyFranceStephen Shaw RENEWAL
Nicolas IturbideSpainStephen Shaw QUALIFIED
Isabel BowleyCanadaAmy Elsner PROPOSAL
Cody SaylorsArgentinaAnna Fali PROPOSAL
Murillo MaletUnited KingdomStephen Shaw UNQUALIFIED
James ButtJapanXuxue Feng NEGOTIATION
Ricardo GauchoGermanyAsiya Javayant PROPOSAL
Clifford RimArgentinaIoni Bowcher NEGOTIATION
Kaitlin OstroskyIndiaIoni Bowcher NEW
Aditya KuskoRussiaXuxue Feng PROPOSAL
Aruna FigeroaCanadaElwin Sharvill QUALIFIED
Nicolas IturbideIndiaOnyama Limba UNQUALIFIED
Ivar PaprockiArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Antonio Caudy
Silvio Slusarski
Faith Gillian
Kadeem Flosi
Ashley Doe
Maisha Rulapaugh
Isabel Bowley
Misaki Royster
Ivar Paprocki
Ricardo Gaucho
Emily Whobrey
Ivar Paprocki
Ricardo Gaucho
Faith Gillian
Kadeem Flosi
Ashley Doe
Misaki Royster
Darci Poquette
Kadeem Flosi
Ivar Paprocki
Aika Inouye
Ricardo Gaucho
Emily Whobrey
Jones Vocelka
Cody Saylors
Smith Glick
Faith Gillian
Octavia Malet
Nicolas Iturbide
Jones Vocelka
Morrow Ruta
Salvatore Stockham
Sinclair Waycott
Francesco Shinko
Francesco Shinko
Jefferson Schemmer
Leon Oldroyd
Chavez Briddick
Faith Gillian
Munro Ferencz
Emily Whobrey
Ivar Paprocki
Juan Wieser
David Darakjy
Misaki Royster
Chavez Briddick
David Darakjy
Sinclair Waycott
Jennifer Amigon
Maria Marrier
IdCountryDate
1000India2025-10-21
1001Brazil2025-10-26
1002United Kingdom2025-10-10
1003Brazil2025-10-15
1004Brazil2025-10-17
1005Australia2025-10-19
1006France2025-10-31
1007Argentina2025-10-11
1008Germany2025-10-10
1009Argentina2025-10-15
1010Japan2025-10-06
1011Italy2025-10-06
1012India2025-10-10
1013Germany2025-10-15
1014Germany2025-10-22
1015Japan2025-10-18
1016Canada2025-10-02
1017Brazil2025-10-19
1018Germany2025-10-25
1019Canada2025-10-05
1020Spain2025-10-14
1021Australia2025-10-22
1022Australia2025-10-17
1023Australia2025-10-26
1024Spain2025-10-11
1025Argentina2025-10-25
1026Spain2025-10-13
1027United Kingdom2025-10-30
1028Russia2025-10-04
1029France2025-10-19
1030Canada2025-10-09
1031Italy2025-10-23
1032Spain2025-10-08
1033Spain2025-10-05
1034Spain2025-10-04
1035United Kingdom2025-10-21
1036India2025-10-17
1037Italy2025-10-27
1038United Kingdom2025-10-18
1039Canada2025-10-20
1040Argentina2025-10-10
1041India2025-10-10
1042Spain2025-10-02
1043Spain2025-10-24
1044Germany2025-10-04
1045Germany2025-10-15
1046Australia2025-10-24
1047Germany2025-10-03
1048Australia2025-10-14
1049India2025-10-30

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000Spain2025-10-12
Faith Gillian1001United Kingdom2025-10-21
Jeanfrancois Venere1002Germany2025-10-06
Darci Poquette1003Japan2025-10-30
Misaki Royster1004Russia2025-10-18
Leja Caldarera1005Russia2025-10-30
James Butt1006Germany2025-10-15
Cody Saylors1007Spain2025-10-15
Jones Vocelka1008Canada2025-10-25
Claire Tollner1009Brazil2025-10-30
Greenwood Bolognia1010Argentina2025-10-30
Costa Dilliard1011Germany2025-10-31
Stacey Maclead1012Australia2025-10-23
Ashley Doe1013Russia2025-10-03
Mayumi Kolmetz1014Brazil2025-10-13
Morrow Ruta1015France2025-10-09
Juan Wieser1016Japan2025-10-10
Julie Stenseth1017Japan2025-10-05
Aika Inouye1018Canada2025-10-17
Leon Oldroyd1019France2025-10-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaGermanyAnna Fali UNQUALIFIED
Julie StensethUnited KingdomStephen Shaw NEW
Clifford RimArgentinaAsiya Javayant PROPOSAL
Jones VocelkaArgentinaStephen Shaw NEGOTIATION
Juan WieserArgentinaIoni Bowcher RENEWAL
Leon OldroydRussiaElwin Sharvill NEW
Deepesh ChuiUnited KingdomAsiya Javayant NEW
Juan WieserItalyElwin Sharvill QUALIFIED
Francesco ShinkoArgentinaAmy Elsner PROPOSAL
Leja CaldareraAustraliaIvan Magalhaes PROPOSAL
Munro FerenczRussiaOnyama Limba NEGOTIATION
Ivar PaprockiSpainAnna Fali NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw NEW
Juan WieserRussiaAnna Fali PROPOSAL
Aditya KuskoIndiaElwin Sharvill PROPOSAL
Mayumi KolmetzJapanAmy Elsner UNQUALIFIED
Salvatore StockhamFranceAsiya Javayant UNQUALIFIED
Smith GlickJapanAnna Fali NEGOTIATION
Salvatore StockhamIndiaXuxue Feng RENEWAL
Maria MarrierAustraliaIvan Magalhaes UNQUALIFIED
Stacey MacleadSpainIoni Bowcher NEW
Aruna FigeroaArgentinaAsiya Javayant NEGOTIATION
Munro FerenczJapanIvan Magalhaes NEGOTIATION
Chavez BriddickItalyBernardo Dominic RENEWAL
Stacey MacleadIndiaAmy Elsner PROPOSAL
Julie StensethAustraliaAnna Fali NEGOTIATION
Sinclair WaycottBrazilIoni Bowcher PROPOSAL
Kadeem FlosiFranceIvan Magalhaes QUALIFIED
Antonio CaudyFranceOnyama Limba NEW
Jones VocelkaGermanyOnyama Limba RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher NEGOTIATION
Nicolas IturbideIndiaOnyama Limba PROPOSAL
Johnson SergiCanadaIvan Magalhaes RENEWAL
Alejandro PerinSpainBernardo Dominic UNQUALIFIED
David DarakjyGermanyAsiya Javayant UNQUALIFIED
Rodrigues CampainRussiaBernardo Dominic UNQUALIFIED
Salvatore StockhamFranceAsiya Javayant PROPOSAL
Alejandro PerinItalyAmy Elsner PROPOSAL
Morrow RutaBrazilElwin Sharvill RENEWAL
Munro FerenczUnited KingdomIoni Bowcher 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>