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
Cody SaylorsBrazilBernardo Dominic UNQUALIFIED
Murillo MaletUnited KingdomBernardo Dominic RENEWAL
Silvio SlusarskiSpainOnyama Limba RENEWAL
Costa DilliardFranceAnna Fali QUALIFIED
Aditya KuskoJapanAmy Elsner UNQUALIFIED
Izzy GarufiCanadaElwin Sharvill NEGOTIATION
Jeanfrancois VenereBrazilXuxue Feng QUALIFIED
Clifford RimArgentinaStephen Shaw RENEWAL
Costa DilliardSpainIoni Bowcher NEW
Jennifer AmigonJapanAnna Fali NEW
Faith GillianFranceBernardo Dominic NEGOTIATION
Jeanfrancois VenereAustraliaBernardo Dominic PROPOSAL
Jennifer AmigonCanadaOnyama Limba NEGOTIATION
Murillo MaletCanadaBernardo Dominic PROPOSAL
Silvio SlusarskiGermanyAsiya Javayant NEGOTIATION
Greenwood BologniaUnited KingdomAsiya Javayant UNQUALIFIED
James ButtAustraliaAsiya Javayant QUALIFIED
Deepesh ChuiItalyIoni Bowcher PROPOSAL
Deepesh ChuiArgentinaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyFranceIoni Bowcher NEW
Kadeem FlosiBrazilStephen Shaw RENEWAL
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Costa DilliardRussiaIoni Bowcher UNQUALIFIED
Julie StensethFranceXuxue Feng QUALIFIED
Leon OldroydAustraliaXuxue Feng NEW
Alejandro PerinUnited KingdomXuxue Feng PROPOSAL
Cody SaylorsCanadaXuxue Feng QUALIFIED
Johnson SergiJapanBernardo Dominic PROPOSAL
Alejandro PerinItalyOnyama Limba QUALIFIED
Juan WieserJapanAmy Elsner NEGOTIATION
Morrow RutaCanadaOnyama Limba PROPOSAL
Leja CaldareraBrazilIoni Bowcher RENEWAL
Munro FerenczBrazilBernardo Dominic RENEWAL
Adams MorascaAustraliaAmy Elsner RENEWAL
Ricardo GauchoArgentinaXuxue Feng NEW
Ricardo GauchoItalyOnyama Limba NEW
Morrow RutaArgentinaXuxue Feng NEGOTIATION
Clifford RimBrazilOnyama Limba UNQUALIFIED
Antonio CaudyGermanyIvan Magalhaes UNQUALIFIED
Francesco ShinkoCanadaIvan Magalhaes UNQUALIFIED
Mayumi KolmetzUnited KingdomAnna Fali PROPOSAL
Aika InouyeBrazilAsiya Javayant UNQUALIFIED
Maisha RulapaughAustraliaElwin Sharvill RENEWAL
Ricardo GauchoBrazilStephen Shaw NEW
Jefferson SchemmerAustraliaAmy Elsner RENEWAL
Aditya KuskoRussiaAmy Elsner PROPOSAL
Adams MorascaItalyOnyama Limba UNQUALIFIED
Johnson SergiBrazilAmy Elsner NEGOTIATION
Leon OldroydUnited KingdomIvan Magalhaes RENEWAL
Silvio SlusarskiCanadaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresJapanOnyama Limba QUALIFIED
David DarakjyCanadaElwin Sharvill NEW
Izzy GarufiSpainAnna Fali PROPOSAL
Deepesh ChuiIndiaAnna Fali NEW
Isabel BowleyUnited KingdomOnyama Limba UNQUALIFIED
Aika InouyeBrazilIvan Magalhaes NEW
Ricardo GauchoSpainStephen Shaw QUALIFIED
Jennifer AmigonFranceXuxue Feng UNQUALIFIED
Stacey MacleadBrazilStephen Shaw PROPOSAL
Aruna FigeroaBrazilOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletItaly2026-06-03Printing Dimensions QUALIFIED47Onyama Limba
1001Greenwood BologniaFrance2026-06-04Benton, John B Jr PROPOSAL44Stephen Shaw
1002Jennifer AmigonUnited Kingdom2026-06-02Benton, John B Jr NEW27Ivan Magalhaes
1003Nicolas IturbideArgentina2026-05-26Chanay, Jeffrey A Esq RENEWAL48Onyama Limba
1004Rodrigues CampainRussia2026-05-07Truhlar And Truhlar Attys UNQUALIFIED76Ioni Bowcher
1005Leja CaldareraCanada2026-05-15Printing Dimensions UNQUALIFIED36Xuxue Feng
1006Leja CaldareraRussia2026-05-29Dorl, James J Esq NEGOTIATION97Asiya Javayant
1007Sinclair WaycottBrazil2026-05-11Printing Dimensions NEW61Amy Elsner
1008Arvin AlbaresSpain2026-05-12Morlong Associates RENEWAL2Onyama Limba
1009Johnson SergiItaly2026-05-14King, Christopher A Esq QUALIFIED19Xuxue Feng
1010Salvatore StockhamBrazil2026-05-06Printing Dimensions UNQUALIFIED33Bernardo Dominic
1011Chavez BriddickJapan2026-05-15Feltz Printing Service UNQUALIFIED56Ivan Magalhaes
1012Nicolas IturbideAustralia2026-05-21Truhlar And Truhlar Attys NEW28Xuxue Feng
1013Munro FerenczSpain2026-05-06Printing Dimensions NEGOTIATION16Onyama Limba
1014Ashley DoeCanada2026-05-21King, Christopher A Esq NEGOTIATION94Anna Fali
1015Mujtaba NickaFrance2026-05-16Rousseaux, Michael Esq PROPOSAL56Ivan Magalhaes
1016Leon OldroydBrazil2026-05-24Rousseaux, Michael Esq NEW21Ivan Magalhaes
1017Leon OldroydIndia2026-05-28Chapman, Ross E Esq UNQUALIFIED48Ioni Bowcher
1018Maria MarrierAustralia2026-05-25Truhlar And Truhlar Attys NEGOTIATION47Bernardo Dominic
1019Adams MorascaJapan2026-05-16Truhlar And Truhlar Attys QUALIFIED28Onyama Limba
1020Antonio CaudyIndia2026-05-17Feiner Bros PROPOSAL41Bernardo Dominic
1021Rodrigues CampainJapan2026-05-21Printing Dimensions QUALIFIED28Anna Fali
1022Darci PoquetteItaly2026-06-04Dorl, James J Esq NEGOTIATION39Amy Elsner
1023Clifford RimRussia2026-05-12Benton, John B Jr UNQUALIFIED76Stephen Shaw
1024Clifford RimRussia2026-05-08Feltz Printing Service PROPOSAL11Stephen Shaw
1025Aditya KuskoJapan2026-05-06Chemel, James L Cpa UNQUALIFIED58Asiya Javayant
1026Aruna FigeroaBrazil2026-05-30Feiner Bros NEW60Anna Fali
1027Jones VocelkaIndia2026-05-27Printing Dimensions UNQUALIFIED18Asiya Javayant
1028Munro FerenczRussia2026-05-12King, Christopher A Esq RENEWAL32Bernardo Dominic
1029Darci PoquetteIndia2026-05-26Commercial Press RENEWAL74Stephen Shaw
1030Silvio SlusarskiRussia2026-05-31Dorl, James J Esq RENEWAL4Stephen Shaw
1031Wickens NestleIndia2026-05-23Rangoni Of Florence NEGOTIATION89Elwin Sharvill
1032Darci PoquetteUnited Kingdom2026-05-26Feltz Printing Service NEGOTIATION62Ioni Bowcher
1033Nicolas IturbideRussia2026-05-29Chapman, Ross E Esq QUALIFIED91Bernardo Dominic
1034Isabel BowleyJapan2026-05-14Buckley Miller Wright UNQUALIFIED38Onyama Limba
1035Jennifer AmigonAustralia2026-05-06Benton, John B Jr NEW21Stephen Shaw
1036Claire TollnerCanada2026-05-30Chemel, James L Cpa NEGOTIATION56Elwin Sharvill
1037Greenwood BologniaSpain2026-05-10Printing Dimensions NEW23Onyama Limba
1038Wickens NestleItaly2026-05-30Feiner Bros PROPOSAL32Ivan Magalhaes
1039Claire TollnerJapan2026-05-12Benton, John B Jr RENEWAL86Bernardo Dominic
1040Arvin AlbaresFrance2026-05-09Feiner Bros PROPOSAL54Elwin Sharvill
1041Munro FerenczUnited Kingdom2026-05-19Chanay, Jeffrey A Esq RENEWAL38Stephen Shaw
1042Deepesh ChuiSpain2026-05-16Printing Dimensions NEGOTIATION27Onyama Limba
1043David DarakjyCanada2026-06-04Truhlar And Truhlar Attys UNQUALIFIED42Xuxue Feng
1044Claire TollnerCanada2026-05-12Benton, John B Jr NEGOTIATION30Xuxue Feng
1045Izzy GarufiArgentina2026-05-14Dorl, James J Esq NEW59Ioni Bowcher
1046Emily WhobreyRussia2026-05-27Buckley Miller Wright UNQUALIFIED57Amy Elsner
1047Rodrigues CampainJapan2026-06-02Morlong Associates UNQUALIFIED24Xuxue Feng
1048Ivar PaprockiCanada2026-05-22Feiner Bros RENEWAL71Stephen Shaw
1049Wickens NestleGermany2026-05-19Morlong Associates PROPOSAL69Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickIndiaIvan Magalhaes PROPOSAL
David DarakjyFranceElwin Sharvill PROPOSAL
Francesco ShinkoUnited KingdomIoni Bowcher NEW
Silvio SlusarskiItalyAmy Elsner PROPOSAL
Juan WieserAustraliaXuxue Feng UNQUALIFIED
Murillo MaletGermanyAsiya Javayant RENEWAL
Francesco ShinkoIndiaIoni Bowcher RENEWAL
Faith GillianRussiaIvan Magalhaes UNQUALIFIED
Octavia MaletUnited KingdomXuxue Feng PROPOSAL
Salvatore StockhamArgentinaElwin Sharvill NEW
Johnson SergiRussiaStephen Shaw NEGOTIATION
Wickens NestleAustraliaBernardo Dominic NEW
Juan WieserRussiaStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaOnyama Limba PROPOSAL
James ButtFranceAsiya Javayant QUALIFIED
Claire TollnerBrazilAnna Fali NEW
Murillo MaletArgentinaXuxue Feng PROPOSAL
Isabel BowleySpainAsiya Javayant QUALIFIED
Isabel BowleyArgentinaOnyama Limba PROPOSAL
Alejandro PerinItalyOnyama Limba PROPOSAL
Clifford RimJapanElwin Sharvill QUALIFIED
David DarakjyBrazilAmy Elsner UNQUALIFIED
Leja CaldareraSpainElwin Sharvill NEW
Deepesh ChuiSpainOnyama Limba PROPOSAL
Rodrigues CampainUnited KingdomBernardo Dominic NEW
Jeanfrancois VenereArgentinaAmy Elsner NEW
Deepesh ChuiItalyAsiya Javayant QUALIFIED
Jeanfrancois VenereGermanyAsiya Javayant PROPOSAL
Izzy GarufiCanadaXuxue Feng NEW
James ButtAustraliaElwin Sharvill QUALIFIED
Darci PoquetteItalyIoni Bowcher RENEWAL
Leja CaldareraAustraliaStephen Shaw NEW
Salvatore StockhamJapanXuxue Feng NEGOTIATION
Jones VocelkaSpainStephen Shaw PROPOSAL
Faith GillianUnited KingdomIoni Bowcher PROPOSAL
James ButtFranceElwin Sharvill NEW
Chavez BriddickCanadaStephen Shaw NEW
Arvin AlbaresBrazilBernardo Dominic NEGOTIATION
Misaki RoysterFranceElwin Sharvill PROPOSAL
Stacey MacleadAustraliaBernardo Dominic PROPOSAL
Silvio SlusarskiFranceIvan Magalhaes RENEWAL
Kaitlin OstroskyRussiaXuxue Feng NEGOTIATION
David DarakjyFranceAmy Elsner UNQUALIFIED
Aika InouyeJapanStephen Shaw QUALIFIED
Misaki RoysterSpainIoni Bowcher QUALIFIED
Leja CaldareraCanadaBernardo Dominic QUALIFIED
Cody SaylorsAustraliaOnyama Limba RENEWAL
Leon OldroydJapanAmy Elsner NEW
Murillo MaletBrazilOnyama Limba UNQUALIFIED
Adams MorascaAustraliaAsiya Javayant NEW
Frozen Columns
Name
Ashley Doe
David Darakjy
Arvin Albares
Claire Tollner
Claire Tollner
Ricardo Gaucho
Izzy Garufi
Leon Oldroyd
Antonio Caudy
Stacey Maclead
Arvin Albares
Tony Foller
James Butt
Chavez Briddick
Maria Marrier
Arvin Albares
Octavia Malet
Jefferson Schemmer
Johnson Sergi
Izzy Garufi
Stacey Maclead
Juan Wieser
Aruna Figeroa
Cody Saylors
Ivar Paprocki
Leja Caldarera
Darci Poquette
Jeanfrancois Venere
Isabel Bowley
Costa Dilliard
Sinclair Waycott
Leon Oldroyd
Juan Wieser
Jefferson Schemmer
Arvin Albares
Leja Caldarera
Munro Ferencz
Nicolas Iturbide
Kaitlin Ostrosky
Leja Caldarera
Jennifer Amigon
Alejandro Perin
Antonio Caudy
Leja Caldarera
Cody Saylors
Ricardo Gaucho
Sinclair Waycott
Wickens Nestle
Ivar Paprocki
Francesco Shinko
IdCountryDate
1000Brazil2026-05-13
1001Japan2026-05-28
1002United Kingdom2026-05-18
1003Japan2026-05-30
1004Italy2026-05-22
1005Argentina2026-05-18
1006Brazil2026-06-01
1007Germany2026-05-27
1008Russia2026-05-10
1009France2026-05-11
1010Canada2026-05-18
1011Italy2026-05-26
1012Germany2026-05-11
1013Australia2026-05-13
1014Japan2026-05-17
1015United Kingdom2026-05-27
1016Italy2026-05-11
1017Italy2026-05-06
1018Japan2026-06-02
1019Russia2026-05-10
1020Canada2026-05-27
1021Canada2026-05-18
1022France2026-05-15
1023India2026-06-03
1024United Kingdom2026-05-23
1025Australia2026-06-03
1026India2026-05-13
1027Brazil2026-05-11
1028Germany2026-05-06
1029France2026-05-19
1030Argentina2026-06-02
1031Russia2026-06-01
1032Canada2026-05-08
1033Argentina2026-05-27
1034Brazil2026-05-12
1035United Kingdom2026-05-18
1036Canada2026-05-06
1037India2026-05-30
1038Japan2026-05-08
1039Italy2026-05-18
1040Spain2026-05-26
1041Canada2026-05-31
1042Germany2026-05-20
1043Italy2026-05-22
1044United Kingdom2026-05-16
1045France2026-05-13
1046United Kingdom2026-05-30
1047Canada2026-05-08
1048United Kingdom2026-05-15
1049Canada2026-05-24

On-Demand Data

NameIdCountryDate
Ivar Paprocki1000Germany2026-05-11
Tony Foller1001France2026-05-22
Izzy Garufi1002France2026-05-31
Jennifer Amigon1003Italy2026-05-26
Jones Vocelka1004France2026-05-06
Misaki Royster1005Argentina2026-06-04
Chavez Briddick1006Japan2026-05-24
Claire Tollner1007Germany2026-05-27
Munro Ferencz1008United Kingdom2026-05-25
Jefferson Schemmer1009Australia2026-05-19
Nicolas Iturbide1010Brazil2026-05-27
Juan Wieser1011Australia2026-05-09
Salvatore Stockham1012Japan2026-05-27
Costa Dilliard1013United Kingdom2026-05-17
Rodrigues Campain1014Spain2026-05-23
Morrow Ruta1015Canada2026-05-18
Ricardo Gaucho1016United Kingdom2026-05-24
Maisha Rulapaugh1017Argentina2026-06-04
Kadeem Flosi1018Australia2026-05-27
Nicolas Iturbide1019Germany2026-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtRussiaAmy Elsner NEW
Misaki RoysterBrazilStephen Shaw QUALIFIED
Jennifer AmigonRussiaBernardo Dominic NEGOTIATION
Wickens NestleFranceAsiya Javayant PROPOSAL
Julie StensethItalyBernardo Dominic PROPOSAL
Mujtaba NickaAustraliaElwin Sharvill QUALIFIED
Maria MarrierArgentinaAnna Fali PROPOSAL
Deepesh ChuiCanadaBernardo Dominic RENEWAL
James ButtIndiaIvan Magalhaes UNQUALIFIED
Leja CaldareraSpainIoni Bowcher NEW
Salvatore StockhamUnited KingdomAsiya Javayant NEGOTIATION
Juan WieserAustraliaIvan Magalhaes RENEWAL
Greenwood BologniaAustraliaStephen Shaw RENEWAL
Ricardo GauchoArgentinaStephen Shaw UNQUALIFIED
Maisha RulapaughItalyIvan Magalhaes RENEWAL
Deepesh ChuiUnited KingdomIoni Bowcher PROPOSAL
Nicolas IturbideItalyAsiya Javayant NEGOTIATION
Jefferson SchemmerSpainAmy Elsner PROPOSAL
Jennifer AmigonRussiaOnyama Limba PROPOSAL
Antonio CaudyBrazilOnyama Limba UNQUALIFIED
Kadeem FlosiBrazilElwin Sharvill NEW
Ricardo GauchoItalyAmy Elsner QUALIFIED
Antonio CaudyRussiaBernardo Dominic PROPOSAL
Isabel BowleyFranceOnyama Limba NEGOTIATION
Aditya KuskoGermanyAmy Elsner PROPOSAL
Mujtaba NickaFranceAnna Fali NEGOTIATION
Chavez BriddickArgentinaElwin Sharvill QUALIFIED
Kadeem FlosiArgentinaBernardo Dominic QUALIFIED
Silvio SlusarskiSpainStephen Shaw NEGOTIATION
Mujtaba NickaGermanyOnyama Limba NEGOTIATION
Aruna FigeroaArgentinaXuxue Feng NEGOTIATION
Smith GlickJapanIoni Bowcher PROPOSAL
Emily WhobreyItalyXuxue Feng NEGOTIATION
Wickens NestleArgentinaAnna Fali RENEWAL
Chavez BriddickSpainBernardo Dominic RENEWAL
Salvatore StockhamBrazilXuxue Feng UNQUALIFIED
Morrow RutaItalyIoni Bowcher UNQUALIFIED
Maria MarrierBrazilIvan Magalhaes PROPOSAL
Cody SaylorsBrazilElwin Sharvill PROPOSAL
David DarakjyRussiaIoni Bowcher PROPOSAL

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