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
Wickens NestleRussiaAnna Fali PROPOSAL
Jeanfrancois VenereUnited KingdomStephen Shaw UNQUALIFIED
Aruna FigeroaFranceBernardo Dominic RENEWAL
Octavia MaletFranceAnna Fali NEGOTIATION
Octavia MaletAustraliaIvan Magalhaes NEGOTIATION
Adams MorascaGermanyElwin Sharvill QUALIFIED
Ashley DoeBrazilOnyama Limba RENEWAL
Claire TollnerAustraliaAmy Elsner RENEWAL
Darci PoquetteBrazilAsiya Javayant RENEWAL
Aruna FigeroaGermanyAsiya Javayant PROPOSAL
Jeanfrancois VenereAustraliaBernardo Dominic NEGOTIATION
Wickens NestleAustraliaAnna Fali RENEWAL
Tony FollerItalyStephen Shaw QUALIFIED
Kadeem FlosiFranceAmy Elsner RENEWAL
James ButtFranceOnyama Limba QUALIFIED
Johnson SergiUnited KingdomAnna Fali NEGOTIATION
Sinclair WaycottSpainXuxue Feng QUALIFIED
Maisha RulapaughArgentinaXuxue Feng NEW
Salvatore StockhamBrazilAsiya Javayant NEGOTIATION
Adams MorascaIndiaIoni Bowcher UNQUALIFIED
Munro FerenczItalyElwin Sharvill UNQUALIFIED
Tony FollerIndiaIoni Bowcher QUALIFIED
Octavia MaletJapanAsiya Javayant UNQUALIFIED
Murillo MaletRussiaElwin Sharvill RENEWAL
Murillo MaletFranceElwin Sharvill RENEWAL
Maisha RulapaughIndiaIvan Magalhaes NEGOTIATION
Mujtaba NickaCanadaXuxue Feng QUALIFIED
Misaki RoysterIndiaElwin Sharvill PROPOSAL
Smith GlickCanadaOnyama Limba NEGOTIATION
Ricardo GauchoArgentinaIoni Bowcher PROPOSAL
Salvatore StockhamArgentinaXuxue Feng NEW
Silvio SlusarskiJapanOnyama Limba QUALIFIED
Ivar PaprockiArgentinaIoni Bowcher QUALIFIED
Sinclair WaycottGermanyAsiya Javayant NEW
Salvatore StockhamRussiaOnyama Limba RENEWAL
Emily WhobreyJapanStephen Shaw PROPOSAL
Maria MarrierIndiaAsiya Javayant NEW
Greenwood BologniaBrazilElwin Sharvill PROPOSAL
Clifford RimUnited KingdomOnyama Limba NEGOTIATION
Julie StensethUnited KingdomOnyama Limba PROPOSAL
David DarakjyGermanyAsiya Javayant UNQUALIFIED
Mayumi KolmetzGermanyAnna Fali NEW
Claire TollnerFranceElwin Sharvill QUALIFIED
Chavez BriddickAustraliaIvan Magalhaes UNQUALIFIED
Tony FollerGermanyAmy Elsner UNQUALIFIED
Emily WhobreySpainIoni Bowcher RENEWAL
Munro FerenczBrazilIvan Magalhaes PROPOSAL
Mujtaba NickaRussiaAmy Elsner NEGOTIATION
Sinclair WaycottSpainStephen Shaw NEW
Silvio SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaItalyStephen Shaw RENEWAL
Johnson SergiAustraliaOnyama Limba QUALIFIED
Munro FerenczSpainAnna Fali RENEWAL
Smith GlickRussiaOnyama Limba UNQUALIFIED
Aruna FigeroaFranceAmy Elsner NEGOTIATION
Jennifer AmigonSpainAmy Elsner NEW
Ashley DoeUnited KingdomElwin Sharvill RENEWAL
Emily WhobreyArgentinaBernardo Dominic NEW
Johnson SergiArgentinaAsiya Javayant QUALIFIED
Darci PoquetteIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoSpain2025-07-28Benton, John B Jr QUALIFIED83Bernardo Dominic
1001Kadeem FlosiUnited Kingdom2025-07-30Feltz Printing Service QUALIFIED63Ioni Bowcher
1002Izzy GarufiBrazil2025-07-28Chanay, Jeffrey A Esq QUALIFIED43Xuxue Feng
1003Costa DilliardAustralia2025-07-20Printing Dimensions NEGOTIATION81Ivan Magalhaes
1004Mayumi KolmetzJapan2025-07-17King, Christopher A Esq NEGOTIATION15Asiya Javayant
1005Juan WieserAustralia2025-07-21Chemel, James L Cpa NEGOTIATION25Ioni Bowcher
1006Leja CaldareraFrance2025-07-11King, Christopher A Esq RENEWAL46Bernardo Dominic
1007Jeanfrancois VenereUnited Kingdom2025-07-04Chanay, Jeffrey A Esq NEW38Onyama Limba
1008Tony FollerBrazil2025-07-23Feiner Bros UNQUALIFIED80Bernardo Dominic
1009Isabel BowleyAustralia2025-07-19Chapman, Ross E Esq NEGOTIATION64Ivan Magalhaes
1010Kaitlin OstroskyJapan2025-07-04Truhlar And Truhlar Attys NEGOTIATION29Elwin Sharvill
1011Aruna FigeroaRussia2025-07-28Chanay, Jeffrey A Esq UNQUALIFIED81Amy Elsner
1012Faith GillianArgentina2025-07-31Printing Dimensions QUALIFIED72Xuxue Feng
1013Jones VocelkaAustralia2025-07-17Chanay, Jeffrey A Esq NEGOTIATION38Stephen Shaw
1014Izzy GarufiAustralia2025-08-01Morlong Associates QUALIFIED45Elwin Sharvill
1015Greenwood BologniaUnited Kingdom2025-07-12King, Christopher A Esq NEW23Xuxue Feng
1016Aruna FigeroaBrazil2025-07-20Chanay, Jeffrey A Esq NEW81Stephen Shaw
1017Arvin AlbaresRussia2025-07-29Benton, John B Jr UNQUALIFIED16Stephen Shaw
1018Chavez BriddickJapan2025-07-30Buckley Miller Wright QUALIFIED42Asiya Javayant
1019Faith GillianBrazil2025-07-11Benton, John B Jr RENEWAL39Elwin Sharvill
1020Mujtaba NickaItaly2025-07-20King, Christopher A Esq NEGOTIATION21Xuxue Feng
1021Maisha RulapaughGermany2025-07-19Feiner Bros RENEWAL17Xuxue Feng
1022Francesco ShinkoJapan2025-07-05Printing Dimensions NEW74Anna Fali
1023Clifford RimRussia2025-07-20Morlong Associates NEGOTIATION2Ivan Magalhaes
1024David DarakjyUnited Kingdom2025-07-18Chemel, James L Cpa UNQUALIFIED83Asiya Javayant
1025Chavez BriddickArgentina2025-07-05Truhlar And Truhlar Attys RENEWAL11Bernardo Dominic
1026Tony FollerBrazil2025-07-29Morlong Associates PROPOSAL26Elwin Sharvill
1027Nicolas IturbideSpain2025-07-17Rousseaux, Michael Esq QUALIFIED3Ioni Bowcher
1028Smith GlickJapan2025-07-22Chanay, Jeffrey A Esq RENEWAL49Amy Elsner
1029Aika InouyeBrazil2025-07-13Morlong Associates RENEWAL87Stephen Shaw
1030Tony FollerSpain2025-07-07Buckley Miller Wright RENEWAL12Anna Fali
1031Ivar PaprockiIndia2025-07-09Printing Dimensions RENEWAL42Anna Fali
1032Leja CaldareraUnited Kingdom2025-07-25Dorl, James J Esq PROPOSAL42Amy Elsner
1033David DarakjyRussia2025-08-01Feltz Printing Service NEGOTIATION20Asiya Javayant
1034Ivar PaprockiArgentina2025-07-24Morlong Associates PROPOSAL84Onyama Limba
1035Adams MorascaGermany2025-07-03Rousseaux, Michael Esq UNQUALIFIED0Asiya Javayant
1036Aruna FigeroaUnited Kingdom2025-07-20Chanay, Jeffrey A Esq PROPOSAL42Asiya Javayant
1037Ashley DoeSpain2025-07-16Morlong Associates NEW23Bernardo Dominic
1038Chavez BriddickGermany2025-07-30Morlong Associates PROPOSAL8Stephen Shaw
1039Faith GillianGermany2025-07-22Dorl, James J Esq RENEWAL85Onyama Limba
1040James ButtCanada2025-07-04Rousseaux, Michael Esq PROPOSAL63Xuxue Feng
1041Izzy GarufiIndia2025-07-19Printing Dimensions NEGOTIATION2Stephen Shaw
1042Jones VocelkaJapan2025-07-15King, Christopher A Esq PROPOSAL24Ivan Magalhaes
1043Johnson SergiItaly2025-07-10Dorl, James J Esq RENEWAL5Xuxue Feng
1044Salvatore StockhamUnited Kingdom2025-07-29Chapman, Ross E Esq NEGOTIATION82Amy Elsner
1045Wickens NestleAustralia2025-08-01Commercial Press UNQUALIFIED47Elwin Sharvill
1046Leon OldroydGermany2025-07-17Rangoni Of Florence PROPOSAL72Elwin Sharvill
1047Adams MorascaFrance2025-08-01Dorl, James J Esq UNQUALIFIED58Asiya Javayant
1048David DarakjyArgentina2025-07-29Dorl, James J Esq QUALIFIED18Amy Elsner
1049Tony FollerRussia2025-08-01Rangoni Of Florence PROPOSAL42Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mayumi KolmetzBrazilXuxue Feng RENEWAL
Jennifer AmigonJapanElwin Sharvill RENEWAL
Ivar PaprockiRussiaAsiya Javayant UNQUALIFIED
Johnson SergiIndiaOnyama Limba UNQUALIFIED
Chavez BriddickGermanyElwin Sharvill NEGOTIATION
Arvin AlbaresGermanyAmy Elsner RENEWAL
Mujtaba NickaRussiaXuxue Feng NEGOTIATION
Francesco ShinkoBrazilIoni Bowcher QUALIFIED
Ivar PaprockiArgentinaOnyama Limba UNQUALIFIED
Isabel BowleySpainIvan Magalhaes NEGOTIATION
Wickens NestleRussiaXuxue Feng NEGOTIATION
Sinclair WaycottItalyOnyama Limba PROPOSAL
Juan WieserBrazilIvan Magalhaes UNQUALIFIED
Juan WieserFranceIoni Bowcher QUALIFIED
Silvio SlusarskiJapanAsiya Javayant UNQUALIFIED
Mujtaba NickaBrazilStephen Shaw NEW
Adams MorascaCanadaAmy Elsner NEW
Tony FollerBrazilOnyama Limba NEGOTIATION
Costa DilliardItalyStephen Shaw PROPOSAL
Misaki RoysterGermanyStephen Shaw QUALIFIED
Claire TollnerAustraliaAmy Elsner RENEWAL
Kaitlin OstroskyIndiaIoni Bowcher PROPOSAL
Salvatore StockhamJapanStephen Shaw UNQUALIFIED
Octavia MaletCanadaBernardo Dominic QUALIFIED
Cody SaylorsBrazilOnyama Limba RENEWAL
Aika InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson SergiCanadaIoni Bowcher NEW
Faith GillianIndiaIvan Magalhaes UNQUALIFIED
Jones VocelkaItalyIvan Magalhaes RENEWAL
Francesco ShinkoJapanAnna Fali UNQUALIFIED
Wickens NestleArgentinaStephen Shaw NEGOTIATION
Ashley DoeCanadaIoni Bowcher NEGOTIATION
Misaki RoysterItalyElwin Sharvill NEW
Johnson SergiBrazilAmy Elsner NEGOTIATION
Nicolas IturbideGermanyBernardo Dominic NEW
Misaki RoysterJapanAsiya Javayant UNQUALIFIED
Arvin AlbaresAustraliaBernardo Dominic RENEWAL
Rodrigues CampainBrazilElwin Sharvill RENEWAL
Julie StensethJapanBernardo Dominic UNQUALIFIED
Morrow RutaIndiaAsiya Javayant RENEWAL
Leja CaldareraBrazilBernardo Dominic NEW
Darci PoquetteGermanyBernardo Dominic NEW
Maria MarrierAustraliaAsiya Javayant NEGOTIATION
Mujtaba NickaBrazilIoni Bowcher RENEWAL
Silvio SlusarskiBrazilElwin Sharvill RENEWAL
Tony FollerCanadaElwin Sharvill PROPOSAL
James ButtSpainAnna Fali PROPOSAL
Claire TollnerCanadaBernardo Dominic RENEWAL
Mayumi KolmetzArgentinaStephen Shaw NEGOTIATION
Johnson SergiFranceIvan Magalhaes PROPOSAL
Frozen Columns
Name
Antonio Caudy
Misaki Royster
Tony Foller
James Butt
Wickens Nestle
Misaki Royster
Jennifer Amigon
Maisha Rulapaugh
Ivar Paprocki
Jones Vocelka
Emily Whobrey
Jennifer Amigon
Isabel Bowley
Maisha Rulapaugh
Murillo Malet
Murillo Malet
Maisha Rulapaugh
Nicolas Iturbide
Jeanfrancois Venere
Octavia Malet
Claire Tollner
David Darakjy
Jeanfrancois Venere
Sinclair Waycott
Wickens Nestle
Alejandro Perin
Francesco Shinko
Stacey Maclead
Ashley Doe
Alejandro Perin
Johnson Sergi
Darci Poquette
Emily Whobrey
Jefferson Schemmer
Maria Marrier
Faith Gillian
Morrow Ruta
Kadeem Flosi
Tony Foller
Darci Poquette
Ashley Doe
Johnson Sergi
Maria Marrier
Mujtaba Nicka
Deepesh Chui
Chavez Briddick
Jeanfrancois Venere
Morrow Ruta
Jeanfrancois Venere
Ricardo Gaucho
IdCountryDate
1000Italy2025-07-26
1001Russia2025-07-27
1002Japan2025-07-23
1003Australia2025-07-18
1004India2025-07-23
1005United Kingdom2025-07-16
1006Canada2025-07-13
1007Brazil2025-07-03
1008Italy2025-07-26
1009Japan2025-07-03
1010Australia2025-07-16
1011Japan2025-07-13
1012India2025-07-12
1013Japan2025-07-17
1014Italy2025-07-13
1015India2025-07-03
1016Japan2025-07-30
1017United Kingdom2025-07-24
1018Canada2025-07-22
1019Canada2025-07-06
1020France2025-08-01
1021Italy2025-07-28
1022Australia2025-07-23
1023Italy2025-07-13
1024France2025-07-07
1025Canada2025-07-22
1026India2025-07-11
1027Japan2025-07-12
1028United Kingdom2025-07-12
1029United Kingdom2025-07-19
1030Germany2025-07-31
1031Russia2025-07-09
1032Germany2025-07-30
1033Canada2025-07-28
1034Brazil2025-07-18
1035Russia2025-07-28
1036Canada2025-07-18
1037Spain2025-07-17
1038France2025-07-14
1039India2025-07-10
1040Australia2025-07-16
1041India2025-07-06
1042Argentina2025-07-06
1043India2025-07-31
1044Brazil2025-07-27
1045Spain2025-07-15
1046France2025-07-09
1047Australia2025-07-28
1048Germany2025-07-20
1049Germany2025-07-15

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Canada2025-07-10
Salvatore Stockham1001Germany2025-07-06
Nicolas Iturbide1002United Kingdom2025-07-10
Mujtaba Nicka1003Spain2025-08-01
Johnson Sergi1004France2025-07-12
Isabel Bowley1005Russia2025-07-23
Johnson Sergi1006Japan2025-07-25
Munro Ferencz1007Italy2025-07-21
Darci Poquette1008Russia2025-07-21
Alejandro Perin1009France2025-07-19
Johnson Sergi1010Brazil2025-07-20
Mujtaba Nicka1011Argentina2025-07-03
Wickens Nestle1012Germany2025-07-22
Faith Gillian1013Germany2025-07-17
Julie Stenseth1014France2025-07-28
Mujtaba Nicka1015India2025-07-22
Juan Wieser1016Canada2025-07-31
Aditya Kusko1017Spain2025-07-10
Kaitlin Ostrosky1018Argentina2025-07-15
Costa Dilliard1019Japan2025-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierFranceAnna Fali UNQUALIFIED
Stacey MacleadArgentinaElwin Sharvill QUALIFIED
Izzy GarufiCanadaIvan Magalhaes RENEWAL
Deepesh ChuiItalyAmy Elsner QUALIFIED
Costa DilliardCanadaAnna Fali NEGOTIATION
Smith GlickUnited KingdomAmy Elsner PROPOSAL
Rodrigues CampainBrazilElwin Sharvill UNQUALIFIED
Greenwood BologniaSpainIvan Magalhaes PROPOSAL
Kaitlin OstroskyFranceBernardo Dominic PROPOSAL
Leon OldroydGermanyBernardo Dominic RENEWAL
Aika InouyeBrazilXuxue Feng QUALIFIED
Leon OldroydGermanyAsiya Javayant NEW
Jones VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Clifford RimRussiaBernardo Dominic NEGOTIATION
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Salvatore StockhamIndiaOnyama Limba RENEWAL
Jennifer AmigonCanadaXuxue Feng NEGOTIATION
Arvin AlbaresBrazilAmy Elsner NEW
Mayumi KolmetzCanadaAmy Elsner RENEWAL
Mayumi KolmetzArgentinaAnna Fali QUALIFIED
Faith GillianCanadaAnna Fali RENEWAL
Francesco ShinkoJapanAmy Elsner UNQUALIFIED
Chavez BriddickSpainIvan Magalhaes PROPOSAL
Morrow RutaRussiaAnna Fali UNQUALIFIED
Julie StensethBrazilStephen Shaw NEGOTIATION
Deepesh ChuiRussiaBernardo Dominic NEW
Johnson SergiBrazilIvan Magalhaes QUALIFIED
Sinclair WaycottArgentinaBernardo Dominic NEW
Julie StensethIndiaAnna Fali RENEWAL
Wickens NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Cody SaylorsBrazilAnna Fali UNQUALIFIED
Adams MorascaSpainXuxue Feng UNQUALIFIED
Rodrigues CampainJapanXuxue Feng QUALIFIED
Aditya KuskoArgentinaAsiya Javayant QUALIFIED
Jefferson SchemmerAustraliaXuxue Feng QUALIFIED
David DarakjyArgentinaXuxue Feng NEGOTIATION
Chavez BriddickFranceIoni Bowcher RENEWAL
Rodrigues CampainCanadaAsiya Javayant NEGOTIATION
Juan WieserAustraliaStephen Shaw PROPOSAL
Murillo MaletSpainAnna Fali QUALIFIED

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