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
Antonio CaudyBrazilXuxue Feng UNQUALIFIED
Antonio CaudyItalyIoni Bowcher RENEWAL
Jefferson SchemmerItalyOnyama Limba NEW
Emily WhobreyGermanyAnna Fali PROPOSAL
Cody SaylorsBrazilStephen Shaw QUALIFIED
Mujtaba NickaFranceStephen Shaw PROPOSAL
Julie StensethFranceIoni Bowcher NEGOTIATION
Izzy GarufiUnited KingdomBernardo Dominic QUALIFIED
Isabel BowleySpainAnna Fali NEW
Francesco ShinkoCanadaAmy Elsner QUALIFIED
Aditya KuskoIndiaAnna Fali UNQUALIFIED
Alejandro PerinCanadaIoni Bowcher NEW
Nicolas IturbideBrazilXuxue Feng PROPOSAL
Salvatore StockhamUnited KingdomAmy Elsner RENEWAL
Francesco ShinkoBrazilBernardo Dominic RENEWAL
Ivar PaprockiArgentinaAsiya Javayant UNQUALIFIED
Alejandro PerinGermanyIoni Bowcher RENEWAL
Alejandro PerinAustraliaStephen Shaw RENEWAL
Arvin AlbaresSpainOnyama Limba QUALIFIED
Deepesh ChuiUnited KingdomAsiya Javayant QUALIFIED
Kaitlin OstroskyFranceElwin Sharvill QUALIFIED
Octavia MaletItalyXuxue Feng NEGOTIATION
Emily WhobreyRussiaAsiya Javayant UNQUALIFIED
Octavia MaletItalyIvan Magalhaes QUALIFIED
Darci PoquetteAustraliaStephen Shaw UNQUALIFIED
Rodrigues CampainAustraliaStephen Shaw UNQUALIFIED
Aditya KuskoFranceIvan Magalhaes NEW
Jefferson SchemmerFranceAnna Fali PROPOSAL
Jennifer AmigonFranceAmy Elsner PROPOSAL
Kadeem FlosiIndiaStephen Shaw QUALIFIED
Deepesh ChuiAustraliaStephen Shaw UNQUALIFIED
Francesco ShinkoArgentinaIvan Magalhaes PROPOSAL
Deepesh ChuiUnited KingdomAnna Fali NEGOTIATION
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Juan WieserIndiaAmy Elsner QUALIFIED
Leon OldroydRussiaAsiya Javayant NEGOTIATION
Costa DilliardCanadaBernardo Dominic UNQUALIFIED
Ivar PaprockiIndiaXuxue Feng NEGOTIATION
Mayumi KolmetzArgentinaAnna Fali NEGOTIATION
Nicolas IturbideIndiaOnyama Limba RENEWAL
Isabel BowleyAustraliaAmy Elsner UNQUALIFIED
Johnson SergiCanadaAnna Fali PROPOSAL
Antonio CaudyAustraliaOnyama Limba UNQUALIFIED
Wickens NestleJapanElwin Sharvill NEGOTIATION
Maria MarrierRussiaElwin Sharvill UNQUALIFIED
Clifford RimAustraliaXuxue Feng NEGOTIATION
Misaki RoysterItalyXuxue Feng UNQUALIFIED
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Wickens NestleJapanXuxue Feng RENEWAL
Mujtaba NickaIndiaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
James ButtArgentinaAsiya Javayant PROPOSAL
Rodrigues CampainItalyAsiya Javayant UNQUALIFIED
Kadeem FlosiGermanyBernardo Dominic NEW
Murillo MaletCanadaElwin Sharvill RENEWAL
Nicolas IturbideAustraliaElwin Sharvill NEGOTIATION
Octavia MaletAustraliaElwin Sharvill NEGOTIATION
Tony FollerItalyBernardo Dominic UNQUALIFIED
Greenwood BologniaAustraliaAnna Fali NEW
Nicolas IturbideSpainIoni Bowcher RENEWAL
Deepesh ChuiCanadaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerGermany2026-04-21Printing Dimensions RENEWAL29Elwin Sharvill
1001Antonio CaudyItaly2026-04-30Feltz Printing Service RENEWAL74Anna Fali
1002Chavez BriddickGermany2026-04-27Chemel, James L Cpa RENEWAL79Xuxue Feng
1003Aika InouyeArgentina2026-04-17Feltz Printing Service NEW1Ivan Magalhaes
1004David DarakjyAustralia2026-04-14Chemel, James L Cpa QUALIFIED97Stephen Shaw
1005Sinclair WaycottCanada2026-04-13King, Christopher A Esq RENEWAL24Stephen Shaw
1006Julie StensethGermany2026-05-08Benton, John B Jr QUALIFIED83Ioni Bowcher
1007Jones VocelkaCanada2026-04-14Benton, John B Jr NEW93Ivan Magalhaes
1008Darci PoquetteItaly2026-05-03Benton, John B Jr NEW28Anna Fali
1009Silvio SlusarskiItaly2026-04-16Chapman, Ross E Esq QUALIFIED94Anna Fali
1010Costa DilliardGermany2026-04-23Feiner Bros NEW6Anna Fali
1011Kadeem FlosiFrance2026-04-15Feiner Bros RENEWAL81Asiya Javayant
1012Costa DilliardUnited Kingdom2026-04-28Morlong Associates QUALIFIED79Stephen Shaw
1013Ashley DoeIndia2026-04-24Feltz Printing Service PROPOSAL34Onyama Limba
1014Kaitlin OstroskyCanada2026-05-08Buckley Miller Wright NEGOTIATION14Stephen Shaw
1015Deepesh ChuiRussia2026-05-08Feltz Printing Service RENEWAL79Ioni Bowcher
1016Leon OldroydGermany2026-04-23Feiner Bros RENEWAL68Anna Fali
1017Tony FollerUnited Kingdom2026-04-26Chanay, Jeffrey A Esq PROPOSAL74Bernardo Dominic
1018Ashley DoeRussia2026-05-04Chemel, James L Cpa UNQUALIFIED68Asiya Javayant
1019Mujtaba NickaJapan2026-04-27Chapman, Ross E Esq RENEWAL40Ivan Magalhaes
1020Murillo MaletCanada2026-05-02Feiner Bros UNQUALIFIED9Elwin Sharvill
1021Aruna FigeroaUnited Kingdom2026-04-21Buckley Miller Wright PROPOSAL71Anna Fali
1022Misaki RoysterUnited Kingdom2026-04-23Rousseaux, Michael Esq NEW72Onyama Limba
1023Maria MarrierIndia2026-04-21Feltz Printing Service QUALIFIED27Anna Fali
1024Aditya KuskoJapan2026-05-04Chapman, Ross E Esq QUALIFIED57Ivan Magalhaes
1025Ivar PaprockiArgentina2026-05-09Benton, John B Jr QUALIFIED60Onyama Limba
1026Ricardo GauchoSpain2026-04-27Chemel, James L Cpa PROPOSAL6Bernardo Dominic
1027Ivar PaprockiAustralia2026-04-19Commercial Press QUALIFIED50Bernardo Dominic
1028Isabel BowleyFrance2026-04-22Benton, John B Jr QUALIFIED78Stephen Shaw
1029Isabel BowleyAustralia2026-04-29Truhlar And Truhlar Attys PROPOSAL50Anna Fali
1030Julie StensethItaly2026-04-20Feiner Bros PROPOSAL7Asiya Javayant
1031Antonio CaudyArgentina2026-04-22Feltz Printing Service QUALIFIED12Elwin Sharvill
1032David DarakjyUnited Kingdom2026-05-03Benton, John B Jr NEW53Elwin Sharvill
1033Wickens NestleUnited Kingdom2026-05-09Truhlar And Truhlar Attys QUALIFIED51Amy Elsner
1034Juan WieserSpain2026-05-02Rousseaux, Michael Esq NEGOTIATION68Amy Elsner
1035Chavez BriddickJapan2026-05-10King, Christopher A Esq RENEWAL68Amy Elsner
1036Tony FollerAustralia2026-04-27Chapman, Ross E Esq PROPOSAL2Ioni Bowcher
1037Jeanfrancois VenereBrazil2026-05-02Commercial Press RENEWAL9Bernardo Dominic
1038Ricardo GauchoAustralia2026-04-14Dorl, James J Esq RENEWAL57Stephen Shaw
1039Murillo MaletItaly2026-04-24King, Christopher A Esq NEGOTIATION6Onyama Limba
1040James ButtIndia2026-05-07Printing Dimensions NEW65Onyama Limba
1041Morrow RutaGermany2026-05-04Truhlar And Truhlar Attys PROPOSAL88Ioni Bowcher
1042Chavez BriddickSpain2026-05-01Dorl, James J Esq NEGOTIATION81Ivan Magalhaes
1043Morrow RutaRussia2026-04-18Morlong Associates UNQUALIFIED33Bernardo Dominic
1044Chavez BriddickGermany2026-05-07Buckley Miller Wright PROPOSAL4Ioni Bowcher
1045Arvin AlbaresAustralia2026-04-29Feltz Printing Service UNQUALIFIED33Anna Fali
1046Juan WieserUnited Kingdom2026-04-14Benton, John B Jr NEGOTIATION72Stephen Shaw
1047Kaitlin OstroskyItaly2026-05-04Buckley Miller Wright PROPOSAL39Ivan Magalhaes
1048Smith GlickItaly2026-04-16Printing Dimensions RENEWAL5Amy Elsner
1049Jefferson SchemmerFrance2026-05-08Commercial Press NEW84Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczAustraliaAnna Fali RENEWAL
Kadeem FlosiJapanStephen Shaw QUALIFIED
Antonio CaudyIndiaElwin Sharvill NEGOTIATION
Rodrigues CampainItalyOnyama Limba NEW
Antonio CaudyIndiaXuxue Feng RENEWAL
Chavez BriddickRussiaElwin Sharvill PROPOSAL
Aruna FigeroaFranceIvan Magalhaes NEW
Wickens NestleIndiaAsiya Javayant NEGOTIATION
Rodrigues CampainSpainAmy Elsner RENEWAL
Jefferson SchemmerIndiaIvan Magalhaes RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher UNQUALIFIED
Ricardo GauchoSpainBernardo Dominic PROPOSAL
Adams MorascaFranceOnyama Limba NEW
Deepesh ChuiJapanAnna Fali UNQUALIFIED
Ricardo GauchoSpainIoni Bowcher QUALIFIED
Mayumi KolmetzFranceIoni Bowcher PROPOSAL
Darci PoquetteUnited KingdomAnna Fali UNQUALIFIED
Aditya KuskoBrazilStephen Shaw PROPOSAL
Juan WieserIndiaBernardo Dominic NEW
Ashley DoeGermanyBernardo Dominic UNQUALIFIED
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Ricardo GauchoFranceIvan Magalhaes NEGOTIATION
Emily WhobreyCanadaIoni Bowcher NEGOTIATION
Greenwood BologniaBrazilAsiya Javayant NEGOTIATION
Chavez BriddickSpainAmy Elsner QUALIFIED
Greenwood BologniaRussiaElwin Sharvill NEW
Adams MorascaSpainXuxue Feng UNQUALIFIED
Mujtaba NickaItalyStephen Shaw NEGOTIATION
Mayumi KolmetzCanadaIvan Magalhaes NEW
Cody SaylorsBrazilIoni Bowcher PROPOSAL
Izzy GarufiAustraliaIvan Magalhaes PROPOSAL
Aruna FigeroaUnited KingdomXuxue Feng RENEWAL
Juan WieserUnited KingdomElwin Sharvill QUALIFIED
Clifford RimArgentinaBernardo Dominic NEW
Jeanfrancois VenereJapanAmy Elsner UNQUALIFIED
Alejandro PerinIndiaAsiya Javayant NEGOTIATION
Murillo MaletRussiaIoni Bowcher RENEWAL
James ButtAustraliaOnyama Limba NEW
Johnson SergiRussiaElwin Sharvill UNQUALIFIED
Julie StensethIndiaXuxue Feng RENEWAL
Murillo MaletItalyIoni Bowcher QUALIFIED
Wickens NestleFranceBernardo Dominic UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Adams MorascaIndiaOnyama Limba NEW
Murillo MaletAustraliaOnyama Limba PROPOSAL
Misaki RoysterArgentinaStephen Shaw NEW
Deepesh ChuiUnited KingdomIoni Bowcher QUALIFIED
David DarakjySpainAnna Fali UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner UNQUALIFIED
Juan WieserAustraliaBernardo Dominic RENEWAL
Frozen Columns
Name
Maria Marrier
Antonio Caudy
Salvatore Stockham
Stacey Maclead
Kaitlin Ostrosky
David Darakjy
Aika Inouye
Misaki Royster
Kaitlin Ostrosky
Francesco Shinko
Munro Ferencz
Misaki Royster
Nicolas Iturbide
Mayumi Kolmetz
Aruna Figeroa
Julie Stenseth
Jennifer Amigon
Maria Marrier
Mayumi Kolmetz
Maria Marrier
Jones Vocelka
Francesco Shinko
Antonio Caudy
Silvio Slusarski
Emily Whobrey
James Butt
Jones Vocelka
Leon Oldroyd
Greenwood Bolognia
Ivar Paprocki
Jefferson Schemmer
Kaitlin Ostrosky
Wickens Nestle
Arvin Albares
Aditya Kusko
Tony Foller
Wickens Nestle
Isabel Bowley
Cody Saylors
Morrow Ruta
Antonio Caudy
Ivar Paprocki
Cody Saylors
Silvio Slusarski
James Butt
Kadeem Flosi
Cody Saylors
James Butt
Chavez Briddick
Leon Oldroyd
IdCountryDate
1000Spain2026-04-14
1001Canada2026-04-27
1002Canada2026-04-27
1003Spain2026-05-11
1004Germany2026-05-06
1005Japan2026-04-21
1006Italy2026-04-21
1007United Kingdom2026-04-29
1008Italy2026-05-03
1009Italy2026-05-03
1010Germany2026-05-01
1011Argentina2026-04-13
1012United Kingdom2026-05-05
1013Germany2026-04-25
1014France2026-04-23
1015Canada2026-04-29
1016Canada2026-04-15
1017Italy2026-05-10
1018Japan2026-04-29
1019Brazil2026-05-07
1020Spain2026-05-08
1021India2026-04-28
1022Japan2026-04-19
1023France2026-04-18
1024Australia2026-05-05
1025India2026-04-28
1026Japan2026-04-22
1027Russia2026-05-09
1028United Kingdom2026-04-14
1029United Kingdom2026-05-09
1030Brazil2026-05-10
1031France2026-04-17
1032Spain2026-04-16
1033Japan2026-05-03
1034Russia2026-04-22
1035Spain2026-05-04
1036Spain2026-04-15
1037Germany2026-04-24
1038Brazil2026-05-06
1039Argentina2026-04-21
1040India2026-04-19
1041Brazil2026-05-08
1042Canada2026-04-24
1043Russia2026-05-03
1044Brazil2026-04-24
1045France2026-04-29
1046Canada2026-04-16
1047India2026-04-28
1048France2026-04-16
1049Brazil2026-05-10

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000France2026-04-22
Cody Saylors1001Russia2026-04-14
Johnson Sergi1002United Kingdom2026-05-07
Aika Inouye1003Australia2026-04-25
Jones Vocelka1004Argentina2026-04-28
Munro Ferencz1005United Kingdom2026-05-01
Alejandro Perin1006Spain2026-05-11
Kaitlin Ostrosky1007Brazil2026-04-23
Ricardo Gaucho1008Australia2026-05-05
Silvio Slusarski1009Brazil2026-04-21
Darci Poquette1010Canada2026-04-22
Stacey Maclead1011Spain2026-04-19
Darci Poquette1012India2026-05-08
Adams Morasca1013Italy2026-05-03
Sinclair Waycott1014India2026-04-12
Adams Morasca1015Argentina2026-04-19
Rodrigues Campain1016Japan2026-04-18
Julie Stenseth1017Japan2026-04-13
Morrow Ruta1018France2026-05-03
Silvio Slusarski1019Brazil2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserBrazilXuxue Feng NEW
Ivar PaprockiUnited KingdomBernardo Dominic RENEWAL
Leon OldroydJapanIvan Magalhaes PROPOSAL
Kadeem FlosiBrazilStephen Shaw QUALIFIED
Deepesh ChuiCanadaElwin Sharvill QUALIFIED
Alejandro PerinGermanyStephen Shaw NEW
Nicolas IturbideBrazilIoni Bowcher PROPOSAL
Kaitlin OstroskyIndiaBernardo Dominic NEW
Claire TollnerRussiaOnyama Limba NEGOTIATION
Nicolas IturbideUnited KingdomBernardo Dominic UNQUALIFIED
Darci PoquetteSpainElwin Sharvill UNQUALIFIED
Clifford RimGermanyIvan Magalhaes RENEWAL
Mayumi KolmetzItalyBernardo Dominic NEGOTIATION
Antonio CaudyCanadaElwin Sharvill NEW
Tony FollerUnited KingdomStephen Shaw NEW
Maria MarrierItalyAmy Elsner NEGOTIATION
Jeanfrancois VenereJapanElwin Sharvill UNQUALIFIED
Emily WhobreyJapanAnna Fali QUALIFIED
Jones VocelkaAustraliaAmy Elsner NEGOTIATION
Alejandro PerinIndiaOnyama Limba NEW
Isabel BowleyArgentinaStephen Shaw QUALIFIED
Leja CaldareraBrazilAsiya Javayant NEW
Munro FerenczUnited KingdomXuxue Feng NEGOTIATION
Tony FollerSpainBernardo Dominic PROPOSAL
Octavia MaletUnited KingdomIoni Bowcher QUALIFIED
Deepesh ChuiItalyStephen Shaw NEW
Maria MarrierUnited KingdomBernardo Dominic PROPOSAL
Morrow RutaBrazilOnyama Limba PROPOSAL
Aditya KuskoFranceElwin Sharvill PROPOSAL
Kaitlin OstroskyItalyAnna Fali NEW
Tony FollerGermanyOnyama Limba UNQUALIFIED
Misaki RoysterUnited KingdomOnyama Limba NEW
Izzy GarufiJapanBernardo Dominic RENEWAL
Nicolas IturbideArgentinaBernardo Dominic RENEWAL
Jeanfrancois VenereIndiaAnna Fali QUALIFIED
Morrow RutaIndiaAmy Elsner NEW
Aditya KuskoBrazilIvan Magalhaes NEW
Antonio CaudyJapanIvan Magalhaes NEGOTIATION
Jeanfrancois VenereGermanyIoni Bowcher UNQUALIFIED
Kadeem FlosiJapanIoni 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>