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
Rodrigues CampainCanadaStephen Shaw RENEWAL
Salvatore StockhamUnited KingdomOnyama Limba NEGOTIATION
Rodrigues CampainCanadaXuxue Feng NEW
Johnson SergiFranceAmy Elsner PROPOSAL
Murillo MaletCanadaIvan Magalhaes RENEWAL
Jones VocelkaBrazilAsiya Javayant NEGOTIATION
Ricardo GauchoJapanOnyama Limba NEGOTIATION
Ricardo GauchoJapanBernardo Dominic NEGOTIATION
Ricardo GauchoGermanyBernardo Dominic PROPOSAL
Clifford RimFranceElwin Sharvill NEW
Adams MorascaIndiaXuxue Feng PROPOSAL
Alejandro PerinFranceAsiya Javayant QUALIFIED
Ricardo GauchoFranceAnna Fali NEGOTIATION
Octavia MaletArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereJapanElwin Sharvill RENEWAL
Mayumi KolmetzCanadaAmy Elsner RENEWAL
Greenwood BologniaFranceOnyama Limba NEGOTIATION
Cody SaylorsRussiaIoni Bowcher NEGOTIATION
Tony FollerItalyElwin Sharvill PROPOSAL
Izzy GarufiSpainIoni Bowcher UNQUALIFIED
Claire TollnerCanadaStephen Shaw QUALIFIED
Chavez BriddickCanadaAsiya Javayant NEGOTIATION
Johnson SergiItalyIvan Magalhaes UNQUALIFIED
Darci PoquetteRussiaAsiya Javayant NEW
Silvio SlusarskiSpainAnna Fali NEGOTIATION
Leon OldroydJapanXuxue Feng QUALIFIED
Leon OldroydGermanyOnyama Limba NEW
Aika InouyeArgentinaIoni Bowcher UNQUALIFIED
Chavez BriddickRussiaElwin Sharvill PROPOSAL
Octavia MaletFranceBernardo Dominic NEGOTIATION
Aditya KuskoUnited KingdomIoni Bowcher NEGOTIATION
Maria MarrierBrazilIoni Bowcher NEW
Claire TollnerCanadaAsiya Javayant NEGOTIATION
Izzy GarufiBrazilAmy Elsner NEW
Cody SaylorsArgentinaElwin Sharvill NEGOTIATION
Alejandro PerinItalyOnyama Limba RENEWAL
Emily WhobreyBrazilOnyama Limba PROPOSAL
Isabel BowleyArgentinaAsiya Javayant NEW
Francesco ShinkoJapanIoni Bowcher UNQUALIFIED
Costa DilliardRussiaXuxue Feng NEGOTIATION
Deepesh ChuiArgentinaElwin Sharvill UNQUALIFIED
Stacey MacleadAustraliaXuxue Feng RENEWAL
Aika InouyeAustraliaAsiya Javayant RENEWAL
Ivar PaprockiJapanAmy Elsner NEW
Deepesh ChuiRussiaOnyama Limba NEGOTIATION
Mujtaba NickaIndiaAsiya Javayant NEW
Costa DilliardAustraliaIvan Magalhaes UNQUALIFIED
Jones VocelkaItalyStephen Shaw RENEWAL
Chavez BriddickJapanOnyama Limba NEGOTIATION
Maria MarrierGermanyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aika InouyeGermanyAnna Fali QUALIFIED
Leon OldroydGermanyAmy Elsner PROPOSAL
Maria MarrierFranceElwin Sharvill PROPOSAL
Greenwood BologniaCanadaElwin Sharvill RENEWAL
Antonio CaudyItalyBernardo Dominic NEW
Darci PoquetteBrazilElwin Sharvill QUALIFIED
Clifford RimUnited KingdomStephen Shaw UNQUALIFIED
Chavez BriddickArgentinaAmy Elsner PROPOSAL
Rodrigues CampainAustraliaOnyama Limba NEW
Costa DilliardRussiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiRussia2026-04-26Rousseaux, Michael Esq NEGOTIATION92Xuxue Feng
1001Aruna FigeroaArgentina2026-04-05Printing Dimensions NEW43Onyama Limba
1002Aditya KuskoUnited Kingdom2026-04-13Truhlar And Truhlar Attys NEW53Asiya Javayant
1003Silvio SlusarskiItaly2026-04-04Benton, John B Jr QUALIFIED70Asiya Javayant
1004Morrow RutaJapan2026-04-24Benton, John B Jr QUALIFIED95Onyama Limba
1005Jennifer AmigonIndia2026-04-13Printing Dimensions QUALIFIED46Elwin Sharvill
1006Maisha RulapaughIndia2026-04-04Benton, John B Jr QUALIFIED59Xuxue Feng
1007Maria MarrierCanada2026-04-20Benton, John B Jr NEW64Amy Elsner
1008Juan WieserFrance2026-04-09Truhlar And Truhlar Attys PROPOSAL75Stephen Shaw
1009Wickens NestleFrance2026-04-19Buckley Miller Wright PROPOSAL64Elwin Sharvill
1010Chavez BriddickJapan2026-04-23Chemel, James L Cpa NEW22Anna Fali
1011Aruna FigeroaUnited Kingdom2026-04-15Feiner Bros NEW55Anna Fali
1012Rodrigues CampainItaly2026-04-20Feiner Bros PROPOSAL37Ioni Bowcher
1013Jeanfrancois VenereSpain2026-04-15King, Christopher A Esq UNQUALIFIED48Anna Fali
1014Clifford RimGermany2026-04-15Buckley Miller Wright NEGOTIATION34Onyama Limba
1015Cody SaylorsSpain2026-04-26Morlong Associates PROPOSAL64Onyama Limba
1016Adams MorascaBrazil2026-04-01Rousseaux, Michael Esq NEW72Anna Fali
1017James ButtFrance2026-04-27Morlong Associates UNQUALIFIED9Xuxue Feng
1018Aika InouyeGermany2026-04-19Rousseaux, Michael Esq NEGOTIATION22Asiya Javayant
1019Munro FerenczBrazil2026-03-30Chanay, Jeffrey A Esq UNQUALIFIED70Stephen Shaw
1020Smith GlickUnited Kingdom2026-04-22Rousseaux, Michael Esq RENEWAL69Anna Fali
1021Jefferson SchemmerItaly2026-04-01Commercial Press QUALIFIED84Anna Fali
1022Julie StensethGermany2026-04-27Feltz Printing Service UNQUALIFIED13Asiya Javayant
1023Wickens NestleAustralia2026-04-24King, Christopher A Esq NEW36Amy Elsner
1024Jennifer AmigonArgentina2026-04-14Dorl, James J Esq NEW82Stephen Shaw
1025Chavez BriddickAustralia2026-04-17Feiner Bros NEW20Elwin Sharvill
1026Juan WieserUnited Kingdom2026-04-19Chapman, Ross E Esq NEGOTIATION89Xuxue Feng
1027Tony FollerJapan2026-04-01Dorl, James J Esq RENEWAL95Bernardo Dominic
1028Alejandro PerinArgentina2026-04-03Buckley Miller Wright UNQUALIFIED25Stephen Shaw
1029Mayumi KolmetzJapan2026-04-02Dorl, James J Esq NEGOTIATION24Elwin Sharvill
1030Silvio SlusarskiRussia2026-04-01Truhlar And Truhlar Attys NEW6Xuxue Feng
1031Smith GlickUnited Kingdom2026-04-25King, Christopher A Esq PROPOSAL97Xuxue Feng
1032Kadeem FlosiUnited Kingdom2026-04-22Chanay, Jeffrey A Esq NEGOTIATION65Asiya Javayant
1033Costa DilliardBrazil2026-04-22King, Christopher A Esq PROPOSAL91Anna Fali
1034Kadeem FlosiFrance2026-04-06Truhlar And Truhlar Attys PROPOSAL99Bernardo Dominic
1035Isabel BowleyAustralia2026-04-04Morlong Associates PROPOSAL36Bernardo Dominic
1036Nicolas IturbideCanada2026-04-17Feltz Printing Service QUALIFIED31Ioni Bowcher
1037Silvio SlusarskiItaly2026-04-27Rousseaux, Michael Esq PROPOSAL82Onyama Limba
1038Antonio CaudyIndia2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED22Ivan Magalhaes
1039Juan WieserItaly2026-03-30Chapman, Ross E Esq UNQUALIFIED22Ivan Magalhaes
1040Darci PoquetteIndia2026-04-05Dorl, James J Esq UNQUALIFIED91Elwin Sharvill
1041Sinclair WaycottJapan2026-04-02Benton, John B Jr QUALIFIED21Anna Fali
1042Wickens NestleSpain2026-04-05Dorl, James J Esq PROPOSAL59Bernardo Dominic
1043Izzy GarufiBrazil2026-04-18Feiner Bros NEW11Anna Fali
1044Salvatore StockhamUnited Kingdom2026-04-08King, Christopher A Esq NEW56Ivan Magalhaes
1045Maisha RulapaughFrance2026-04-27King, Christopher A Esq UNQUALIFIED75Asiya Javayant
1046Mujtaba NickaArgentina2026-04-06Morlong Associates UNQUALIFIED75Asiya Javayant
1047Mujtaba NickaArgentina2026-04-16Commercial Press RENEWAL15Amy Elsner
1048Sinclair WaycottCanada2026-04-26Printing Dimensions NEW72Xuxue Feng
1049Juan WieserAustralia2026-04-20Dorl, James J Esq NEGOTIATION14Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonIndiaXuxue Feng RENEWAL
Francesco ShinkoIndiaOnyama Limba QUALIFIED
Munro FerenczFranceAsiya Javayant QUALIFIED
James ButtUnited KingdomXuxue Feng UNQUALIFIED
Costa DilliardJapanStephen Shaw PROPOSAL
Aditya KuskoSpainXuxue Feng NEGOTIATION
Smith GlickJapanIvan Magalhaes NEGOTIATION
Faith GillianUnited KingdomAsiya Javayant NEGOTIATION
Munro FerenczAustraliaIvan Magalhaes QUALIFIED
Aika InouyeSpainAnna Fali NEW
Tony FollerIndiaStephen Shaw PROPOSAL
Cody SaylorsItalyElwin Sharvill NEGOTIATION
James ButtItalyAnna Fali QUALIFIED
Johnson SergiJapanAmy Elsner QUALIFIED
Leja CaldareraIndiaAmy Elsner QUALIFIED
Chavez BriddickUnited KingdomAsiya Javayant NEW
Cody SaylorsRussiaAnna Fali PROPOSAL
Cody SaylorsCanadaIvan Magalhaes PROPOSAL
Silvio SlusarskiItalyStephen Shaw NEGOTIATION
Costa DilliardItalyStephen Shaw UNQUALIFIED
Morrow RutaRussiaElwin Sharvill UNQUALIFIED
Greenwood BologniaAustraliaStephen Shaw PROPOSAL
Adams MorascaArgentinaAsiya Javayant PROPOSAL
Salvatore StockhamIndiaAmy Elsner NEW
Isabel BowleyUnited KingdomOnyama Limba NEGOTIATION
Rodrigues CampainSpainAsiya Javayant NEW
Kadeem FlosiItalyAnna Fali PROPOSAL
Rodrigues CampainItalyBernardo Dominic RENEWAL
Kadeem FlosiIndiaBernardo Dominic NEW
Darci PoquetteArgentinaStephen Shaw NEGOTIATION
Stacey MacleadIndiaAsiya Javayant UNQUALIFIED
Isabel BowleyAustraliaStephen Shaw QUALIFIED
Silvio SlusarskiBrazilAnna Fali PROPOSAL
Kadeem FlosiFranceElwin Sharvill QUALIFIED
Greenwood BologniaUnited KingdomIoni Bowcher NEW
Ashley DoeUnited KingdomIvan Magalhaes QUALIFIED
Kadeem FlosiBrazilIoni Bowcher NEW
Ricardo GauchoBrazilXuxue Feng UNQUALIFIED
Costa DilliardIndiaIvan Magalhaes RENEWAL
Jones VocelkaCanadaAsiya Javayant NEW
Costa DilliardRussiaBernardo Dominic RENEWAL
Sinclair WaycottItalyAmy Elsner NEGOTIATION
Jones VocelkaItalyElwin Sharvill RENEWAL
Sinclair WaycottUnited KingdomAsiya Javayant NEGOTIATION
Arvin AlbaresItalyXuxue Feng NEGOTIATION
Antonio CaudyJapanXuxue Feng NEGOTIATION
Emily WhobreyUnited KingdomXuxue Feng PROPOSAL
Sinclair WaycottRussiaBernardo Dominic RENEWAL
Kadeem FlosiAustraliaBernardo Dominic PROPOSAL
Aika InouyeIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Darci Poquette
Chavez Briddick
Munro Ferencz
Wickens Nestle
Ashley Doe
Munro Ferencz
Clifford Rim
Jeanfrancois Venere
Jefferson Schemmer
Kaitlin Ostrosky
Leja Caldarera
Emily Whobrey
Francesco Shinko
Wickens Nestle
Chavez Briddick
Aruna Figeroa
Misaki Royster
David Darakjy
Aika Inouye
Greenwood Bolognia
Arvin Albares
Ivar Paprocki
Alejandro Perin
Isabel Bowley
Ashley Doe
Izzy Garufi
Jefferson Schemmer
Leja Caldarera
Jones Vocelka
Kadeem Flosi
Ashley Doe
Ashley Doe
Salvatore Stockham
Wickens Nestle
Jefferson Schemmer
Jones Vocelka
Claire Tollner
Tony Foller
Salvatore Stockham
Johnson Sergi
Rodrigues Campain
Kadeem Flosi
James Butt
Costa Dilliard
Sinclair Waycott
Juan Wieser
Deepesh Chui
Aruna Figeroa
Izzy Garufi
Octavia Malet
IdCountryDate
1000Australia2026-04-01
1001Japan2026-04-20
1002Germany2026-04-26
1003Russia2026-04-02
1004Japan2026-03-30
1005Brazil2026-04-27
1006Japan2026-04-18
1007Russia2026-04-18
1008Spain2026-04-19
1009Canada2026-04-22
1010Spain2026-04-05
1011Japan2026-04-08
1012Germany2026-04-21
1013Germany2026-04-27
1014Brazil2026-04-18
1015India2026-04-08
1016Argentina2026-03-30
1017France2026-04-14
1018Brazil2026-04-10
1019Canada2026-04-27
1020France2026-04-03
1021Germany2026-04-27
1022India2026-04-21
1023Japan2026-04-13
1024Australia2026-04-11
1025Argentina2026-04-06
1026United Kingdom2026-04-17
1027France2026-04-25
1028Italy2026-04-27
1029Spain2026-04-27
1030Spain2026-04-17
1031Spain2026-03-31
1032Argentina2026-04-03
1033Brazil2026-04-18
1034Argentina2026-04-15
1035Canada2026-04-11
1036Japan2026-04-13
1037Japan2026-04-20
1038India2026-04-10
1039Australia2026-04-11
1040Russia2026-04-14
1041Spain2026-04-16
1042Italy2026-04-07
1043France2026-04-13
1044India2026-04-20
1045France2026-04-23
1046Spain2026-04-08
1047France2026-04-12
1048Italy2026-04-19
1049Argentina2026-04-13

On-Demand Data

NameIdCountryDate
Tony Foller1000France2026-04-08
Cody Saylors1001Spain2026-04-20
Aika Inouye1002Canada2026-04-04
Darci Poquette1003Australia2026-04-17
Isabel Bowley1004Argentina2026-04-14
Rodrigues Campain1005Spain2026-04-10
Wickens Nestle1006Australia2026-04-22
Misaki Royster1007Germany2026-04-13
Smith Glick1008Russia2026-04-14
Wickens Nestle1009India2026-04-01
Isabel Bowley1010France2026-04-12
Tony Foller1011Italy2026-04-13
Mujtaba Nicka1012Russia2026-04-15
Sinclair Waycott1013Spain2026-04-09
Maisha Rulapaugh1014United Kingdom2026-04-04
Johnson Sergi1015Italy2026-04-08
Aruna Figeroa1016Australia2026-04-15
Maria Marrier1017Australia2026-04-13
Salvatore Stockham1018Italy2026-04-08
Mayumi Kolmetz1019Brazil2026-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomBernardo Dominic NEGOTIATION
Faith GillianBrazilAnna Fali NEW
Isabel BowleyAustraliaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Jennifer AmigonArgentinaBernardo Dominic NEW
Leon OldroydUnited KingdomXuxue Feng NEW
Izzy GarufiGermanyElwin Sharvill NEW
Wickens NestleItalyXuxue Feng UNQUALIFIED
Jefferson SchemmerRussiaAnna Fali PROPOSAL
Greenwood BologniaUnited KingdomAmy Elsner NEW
Antonio CaudyIndiaIvan Magalhaes NEGOTIATION
Faith GillianUnited KingdomIoni Bowcher NEGOTIATION
Leja CaldareraAustraliaAnna Fali PROPOSAL
Adams MorascaIndiaElwin Sharvill PROPOSAL
Rodrigues CampainBrazilOnyama Limba QUALIFIED
Izzy GarufiGermanyAnna Fali UNQUALIFIED
Octavia MaletIndiaStephen Shaw QUALIFIED
Mayumi KolmetzItalyIvan Magalhaes RENEWAL
Kaitlin OstroskyItalyAmy Elsner UNQUALIFIED
Claire TollnerRussiaOnyama Limba NEGOTIATION
Maisha RulapaughRussiaElwin Sharvill RENEWAL
Julie StensethArgentinaBernardo Dominic QUALIFIED
Ashley DoeUnited KingdomStephen Shaw NEGOTIATION
Maisha RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Murillo MaletArgentinaElwin Sharvill UNQUALIFIED
Cody SaylorsJapanAsiya Javayant PROPOSAL
Smith GlickGermanyStephen Shaw PROPOSAL
Maisha RulapaughBrazilAsiya Javayant PROPOSAL
Silvio SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Ivar PaprockiCanadaStephen Shaw QUALIFIED
Aika InouyeItalyXuxue Feng NEW
Johnson SergiGermanyIoni Bowcher PROPOSAL
Cody SaylorsUnited KingdomXuxue Feng PROPOSAL
Alejandro PerinItalyElwin Sharvill UNQUALIFIED
Nicolas IturbideGermanyIoni Bowcher QUALIFIED
Sinclair WaycottRussiaAsiya Javayant NEW
Julie StensethUnited KingdomIoni Bowcher QUALIFIED
Morrow RutaFranceElwin Sharvill RENEWAL
Izzy GarufiItalyAsiya Javayant 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>