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
Kadeem FlosiSpainAmy Elsner PROPOSAL
Ivar PaprockiSpainAmy Elsner QUALIFIED
Leon OldroydArgentinaOnyama Limba PROPOSAL
Stacey MacleadItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerCanadaAmy Elsner PROPOSAL
Murillo MaletUnited KingdomBernardo Dominic NEW
Jefferson SchemmerIndiaBernardo Dominic NEW
Salvatore StockhamArgentinaXuxue Feng PROPOSAL
Mayumi KolmetzCanadaAsiya Javayant PROPOSAL
Octavia MaletItalyXuxue Feng PROPOSAL
Jennifer AmigonCanadaAsiya Javayant RENEWAL
Jones VocelkaAustraliaAnna Fali NEW
Ivar PaprockiFranceBernardo Dominic NEGOTIATION
Misaki RoysterFranceStephen Shaw QUALIFIED
Claire TollnerItalyElwin Sharvill RENEWAL
David DarakjyFranceStephen Shaw NEW
Chavez BriddickFranceBernardo Dominic NEGOTIATION
Isabel BowleyCanadaElwin Sharvill RENEWAL
Isabel BowleyJapanIvan Magalhaes NEGOTIATION
Costa DilliardBrazilBernardo Dominic NEGOTIATION
Jones VocelkaRussiaElwin Sharvill QUALIFIED
Greenwood BologniaBrazilIvan Magalhaes PROPOSAL
Mujtaba NickaRussiaAnna Fali RENEWAL
Salvatore StockhamJapanXuxue Feng RENEWAL
Darci PoquetteCanadaXuxue Feng QUALIFIED
Nicolas IturbideSpainOnyama Limba RENEWAL
Antonio CaudyArgentinaAmy Elsner RENEWAL
Claire TollnerJapanAnna Fali RENEWAL
Jones VocelkaAustraliaBernardo Dominic UNQUALIFIED
Nicolas IturbideAustraliaIvan Magalhaes PROPOSAL
Emily WhobreyArgentinaOnyama Limba PROPOSAL
Aruna FigeroaSpainStephen Shaw NEGOTIATION
James ButtFranceIvan Magalhaes QUALIFIED
Leon OldroydBrazilElwin Sharvill RENEWAL
Francesco ShinkoItalyXuxue Feng PROPOSAL
Juan WieserGermanyAsiya Javayant NEW
Kadeem FlosiBrazilOnyama Limba UNQUALIFIED
Ashley DoeAustraliaBernardo Dominic NEGOTIATION
Jefferson SchemmerJapanXuxue Feng QUALIFIED
Faith GillianBrazilStephen Shaw RENEWAL
Murillo MaletIndiaElwin Sharvill QUALIFIED
Leja CaldareraSpainOnyama Limba NEGOTIATION
Arvin AlbaresUnited KingdomOnyama Limba QUALIFIED
David DarakjyArgentinaXuxue Feng PROPOSAL
Misaki RoysterSpainXuxue Feng QUALIFIED
Aika InouyeBrazilXuxue Feng PROPOSAL
Chavez BriddickCanadaAmy Elsner QUALIFIED
Nicolas IturbideRussiaBernardo Dominic UNQUALIFIED
Leon OldroydBrazilOnyama Limba NEGOTIATION
Isabel BowleyFranceElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottRussiaElwin Sharvill PROPOSAL
Wickens NestleBrazilIvan Magalhaes NEW
Faith GillianAustraliaIoni Bowcher NEGOTIATION
Munro FerenczJapanXuxue Feng NEGOTIATION
Clifford RimRussiaIoni Bowcher NEGOTIATION
Darci PoquetteAustraliaAmy Elsner NEGOTIATION
Jennifer AmigonUnited KingdomOnyama Limba NEGOTIATION
Leja CaldareraFranceOnyama Limba PROPOSAL
Jeanfrancois VenereAustraliaElwin Sharvill RENEWAL
Jefferson SchemmerBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresJapan2026-05-14Buckley Miller Wright UNQUALIFIED76Anna Fali
1001Jeanfrancois VenereAustralia2026-05-21Rangoni Of Florence QUALIFIED48Stephen Shaw
1002Johnson SergiUnited Kingdom2026-05-06Feiner Bros QUALIFIED86Ioni Bowcher
1003Clifford RimJapan2026-05-02Morlong Associates NEW86Onyama Limba
1004Murillo MaletArgentina2026-04-26Feltz Printing Service NEW69Asiya Javayant
1005James ButtSpain2026-05-14Commercial Press QUALIFIED83Bernardo Dominic
1006Sinclair WaycottArgentina2026-05-08Feiner Bros PROPOSAL12Anna Fali
1007Kadeem FlosiCanada2026-05-25Truhlar And Truhlar Attys QUALIFIED80Xuxue Feng
1008Maria MarrierFrance2026-04-28Buckley Miller Wright PROPOSAL45Amy Elsner
1009Stacey MacleadItaly2026-05-21Commercial Press UNQUALIFIED85Xuxue Feng
1010David DarakjyAustralia2026-05-11Chapman, Ross E Esq QUALIFIED42Ioni Bowcher
1011Silvio SlusarskiBrazil2026-05-23Feltz Printing Service RENEWAL56Elwin Sharvill
1012Julie StensethCanada2026-05-21Rousseaux, Michael Esq UNQUALIFIED37Elwin Sharvill
1013Greenwood BologniaItaly2026-05-10Feltz Printing Service PROPOSAL75Elwin Sharvill
1014Costa DilliardIndia2026-05-07Chapman, Ross E Esq RENEWAL80Amy Elsner
1015Ricardo GauchoItaly2026-05-04Feltz Printing Service NEGOTIATION17Bernardo Dominic
1016Wickens NestleSpain2026-05-22Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1017Morrow RutaItaly2026-05-18Buckley Miller Wright QUALIFIED80Xuxue Feng
1018Ashley DoeFrance2026-05-10Dorl, James J Esq UNQUALIFIED49Elwin Sharvill
1019Rodrigues CampainGermany2026-04-30Morlong Associates NEW73Stephen Shaw
1020Jeanfrancois VenereArgentina2026-04-28Benton, John B Jr QUALIFIED2Ivan Magalhaes
1021Isabel BowleyJapan2026-05-17Dorl, James J Esq QUALIFIED14Xuxue Feng
1022Francesco ShinkoItaly2026-04-30Benton, John B Jr NEW96Elwin Sharvill
1023Leon OldroydItaly2026-05-13Printing Dimensions UNQUALIFIED10Asiya Javayant
1024Munro FerenczItaly2026-05-08Chanay, Jeffrey A Esq PROPOSAL66Elwin Sharvill
1025Munro FerenczGermany2026-05-05Printing Dimensions UNQUALIFIED41Amy Elsner
1026Leon OldroydIndia2026-05-06Feltz Printing Service NEW85Onyama Limba
1027Octavia MaletSpain2026-05-13Truhlar And Truhlar Attys UNQUALIFIED44Onyama Limba
1028Aruna FigeroaFrance2026-04-28Rousseaux, Michael Esq QUALIFIED58Stephen Shaw
1029Octavia MaletArgentina2026-05-13Feltz Printing Service NEGOTIATION95Onyama Limba
1030Jennifer AmigonRussia2026-05-05Printing Dimensions NEGOTIATION18Ioni Bowcher
1031Maisha RulapaughIndia2026-05-23Feltz Printing Service NEW82Anna Fali
1032Munro FerenczGermany2026-05-23Rousseaux, Michael Esq NEGOTIATION53Ioni Bowcher
1033Munro FerenczGermany2026-05-10Feiner Bros QUALIFIED30Asiya Javayant
1034Wickens NestleFrance2026-05-08Buckley Miller Wright PROPOSAL97Stephen Shaw
1035Ivar PaprockiItaly2026-05-11Rangoni Of Florence UNQUALIFIED7Ioni Bowcher
1036David DarakjyUnited Kingdom2026-05-15Printing Dimensions RENEWAL85Anna Fali
1037Mayumi KolmetzSpain2026-05-14Chemel, James L Cpa QUALIFIED8Ioni Bowcher
1038Kadeem FlosiSpain2026-04-27Rangoni Of Florence QUALIFIED96Bernardo Dominic
1039Julie StensethAustralia2026-05-17Printing Dimensions RENEWAL25Ivan Magalhaes
1040Faith GillianIndia2026-04-26Truhlar And Truhlar Attys RENEWAL63Asiya Javayant
1041Wickens NestleCanada2026-05-02Commercial Press NEGOTIATION17Xuxue Feng
1042Sinclair WaycottAustralia2026-05-23King, Christopher A Esq PROPOSAL60Elwin Sharvill
1043Greenwood BologniaGermany2026-05-09Benton, John B Jr RENEWAL24Onyama Limba
1044Cody SaylorsCanada2026-05-23Truhlar And Truhlar Attys NEGOTIATION36Asiya Javayant
1045Emily WhobreyUnited Kingdom2026-04-28Morlong Associates NEW63Amy Elsner
1046Isabel BowleyRussia2026-05-23Dorl, James J Esq UNQUALIFIED41Onyama Limba
1047Darci PoquetteSpain2026-05-09Benton, John B Jr NEGOTIATION25Anna Fali
1048Rodrigues CampainRussia2026-05-24Commercial Press NEGOTIATION20Bernardo Dominic
1049Izzy GarufiFrance2026-05-18Truhlar And Truhlar Attys PROPOSAL90Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyBrazilAnna Fali QUALIFIED
Kaitlin OstroskyGermanyIoni Bowcher UNQUALIFIED
Misaki RoysterArgentinaAsiya Javayant NEGOTIATION
Isabel BowleyAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereIndiaXuxue Feng RENEWAL
Cody SaylorsItalyStephen Shaw RENEWAL
Stacey MacleadAustraliaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyFranceElwin Sharvill PROPOSAL
Smith GlickSpainXuxue Feng RENEWAL
Isabel BowleyCanadaOnyama Limba RENEWAL
Kaitlin OstroskyCanadaBernardo Dominic NEW
Izzy GarufiJapanXuxue Feng NEGOTIATION
Chavez BriddickFranceAmy Elsner QUALIFIED
Deepesh ChuiUnited KingdomAsiya Javayant RENEWAL
Faith GillianCanadaXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaAnna Fali UNQUALIFIED
Juan WieserAustraliaElwin Sharvill UNQUALIFIED
Smith GlickFranceIoni Bowcher NEW
Wickens NestleSpainStephen Shaw QUALIFIED
Ashley DoeFranceOnyama Limba RENEWAL
Isabel BowleyRussiaAnna Fali RENEWAL
Kadeem FlosiJapanElwin Sharvill NEW
Clifford RimSpainIvan Magalhaes NEGOTIATION
Jones VocelkaIndiaAmy Elsner NEGOTIATION
Clifford RimGermanyAsiya Javayant RENEWAL
Juan WieserIndiaElwin Sharvill RENEWAL
Nicolas IturbideBrazilIoni Bowcher QUALIFIED
Jones VocelkaIndiaIoni Bowcher NEGOTIATION
Izzy GarufiArgentinaStephen Shaw QUALIFIED
Adams MorascaGermanyAnna Fali NEGOTIATION
Ashley DoeCanadaXuxue Feng RENEWAL
Arvin AlbaresGermanyAmy Elsner NEW
Adams MorascaJapanOnyama Limba PROPOSAL
Nicolas IturbideJapanXuxue Feng RENEWAL
Octavia MaletGermanyOnyama Limba PROPOSAL
Greenwood BologniaJapanIvan Magalhaes UNQUALIFIED
Smith GlickArgentinaAnna Fali NEW
Deepesh ChuiAustraliaAsiya Javayant UNQUALIFIED
Jefferson SchemmerIndiaStephen Shaw NEGOTIATION
Octavia MaletAustraliaOnyama Limba PROPOSAL
Jeanfrancois VenereCanadaBernardo Dominic PROPOSAL
Greenwood BologniaBrazilAnna Fali NEGOTIATION
Chavez BriddickAustraliaBernardo Dominic UNQUALIFIED
Morrow RutaRussiaIvan Magalhaes PROPOSAL
Arvin AlbaresSpainOnyama Limba NEGOTIATION
Adams MorascaItalyXuxue Feng UNQUALIFIED
Claire TollnerAustraliaOnyama Limba RENEWAL
Maisha RulapaughAustraliaBernardo Dominic NEGOTIATION
Maria MarrierGermanyIvan Magalhaes NEGOTIATION
Francesco ShinkoJapanElwin Sharvill RENEWAL
Frozen Columns
Name
Clifford Rim
Mayumi Kolmetz
Clifford Rim
Izzy Garufi
Wickens Nestle
Francesco Shinko
Misaki Royster
Jones Vocelka
Darci Poquette
Murillo Malet
Mujtaba Nicka
Misaki Royster
Jones Vocelka
Costa Dilliard
Juan Wieser
Leja Caldarera
Morrow Ruta
Mujtaba Nicka
Salvatore Stockham
Ashley Doe
Juan Wieser
Johnson Sergi
Misaki Royster
Kadeem Flosi
Emily Whobrey
Jones Vocelka
Stacey Maclead
Kaitlin Ostrosky
Kaitlin Ostrosky
David Darakjy
Johnson Sergi
Francesco Shinko
Wickens Nestle
Octavia Malet
Leja Caldarera
Aika Inouye
Tony Foller
Francesco Shinko
Tony Foller
Leja Caldarera
Aika Inouye
Arvin Albares
Morrow Ruta
Alejandro Perin
Alejandro Perin
Maisha Rulapaugh
Jones Vocelka
Aruna Figeroa
Claire Tollner
Wickens Nestle
IdCountryDate
1000United Kingdom2026-05-08
1001Russia2026-05-20
1002Brazil2026-05-10
1003Italy2026-05-19
1004Canada2026-05-03
1005Spain2026-05-06
1006Russia2026-05-13
1007Canada2026-04-26
1008United Kingdom2026-05-23
1009Argentina2026-05-03
1010Brazil2026-05-24
1011Brazil2026-05-25
1012Italy2026-05-01
1013United Kingdom2026-05-07
1014India2026-05-03
1015Argentina2026-05-04
1016India2026-04-28
1017India2026-05-05
1018Germany2026-05-01
1019Japan2026-05-23
1020Russia2026-04-28
1021Brazil2026-05-23
1022United Kingdom2026-05-23
1023Russia2026-05-21
1024Germany2026-04-30
1025Canada2026-05-15
1026Argentina2026-05-20
1027France2026-05-12
1028Argentina2026-05-12
1029Brazil2026-05-11
1030Brazil2026-05-19
1031United Kingdom2026-05-07
1032Argentina2026-05-16
1033Brazil2026-05-02
1034Germany2026-05-17
1035Germany2026-05-03
1036Italy2026-05-01
1037Argentina2026-05-01
1038Germany2026-05-11
1039Canada2026-05-07
1040India2026-05-19
1041Russia2026-05-08
1042Canada2026-05-19
1043France2026-04-26
1044Australia2026-05-13
1045India2026-05-15
1046India2026-05-20
1047India2026-05-17
1048Italy2026-05-20
1049Brazil2026-04-27

On-Demand Data

NameIdCountryDate
Aika Inouye1000Italy2026-05-22
Aika Inouye1001Spain2026-05-16
Salvatore Stockham1002Australia2026-05-23
Chavez Briddick1003Canada2026-04-26
Chavez Briddick1004Spain2026-05-08
Francesco Shinko1005Germany2026-05-21
Alejandro Perin1006Argentina2026-05-14
Maria Marrier1007Japan2026-05-18
Aika Inouye1008Russia2026-05-24
Julie Stenseth1009France2026-05-18
Aika Inouye1010Germany2026-05-05
Jones Vocelka1011United Kingdom2026-05-04
Aika Inouye1012Argentina2026-04-30
Maria Marrier1013Russia2026-05-08
Misaki Royster1014United Kingdom2026-05-15
Greenwood Bolognia1015Russia2026-05-19
Jones Vocelka1016Canada2026-05-03
Tony Foller1017Italy2026-05-19
Sinclair Waycott1018Spain2026-05-06
Leon Oldroyd1019Japan2026-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterFranceIoni Bowcher UNQUALIFIED
Morrow RutaRussiaAnna Fali NEW
Jeanfrancois VenereCanadaXuxue Feng UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw QUALIFIED
James ButtJapanIoni Bowcher PROPOSAL
Emily WhobreySpainIvan Magalhaes UNQUALIFIED
Alejandro PerinRussiaBernardo Dominic NEW
Arvin AlbaresJapanStephen Shaw UNQUALIFIED
Jones VocelkaBrazilBernardo Dominic RENEWAL
Smith GlickFranceIvan Magalhaes RENEWAL
Ashley DoeUnited KingdomOnyama Limba QUALIFIED
Darci PoquetteJapanAsiya Javayant RENEWAL
Ivar PaprockiFranceIvan Magalhaes PROPOSAL
Silvio SlusarskiRussiaStephen Shaw QUALIFIED
Mayumi KolmetzJapanAsiya Javayant QUALIFIED
Kadeem FlosiRussiaBernardo Dominic QUALIFIED
Leja CaldareraGermanyBernardo Dominic RENEWAL
Jeanfrancois VenereCanadaIvan Magalhaes QUALIFIED
Aruna FigeroaGermanyIoni Bowcher NEGOTIATION
Julie StensethGermanyBernardo Dominic NEW
David DarakjySpainAmy Elsner RENEWAL
Ivar PaprockiRussiaIoni Bowcher UNQUALIFIED
Munro FerenczSpainBernardo Dominic RENEWAL
Ivar PaprockiBrazilStephen Shaw QUALIFIED
Alejandro PerinCanadaIoni Bowcher NEGOTIATION
Greenwood BologniaRussiaIoni Bowcher UNQUALIFIED
Ashley DoeSpainStephen Shaw RENEWAL
David DarakjyArgentinaAsiya Javayant PROPOSAL
Silvio SlusarskiItalyXuxue Feng RENEWAL
Ivar PaprockiGermanyOnyama Limba NEGOTIATION
Mujtaba NickaAustraliaOnyama Limba UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes NEW
Tony FollerAustraliaAnna Fali QUALIFIED
Maisha RulapaughFranceElwin Sharvill UNQUALIFIED
Emily WhobreyBrazilOnyama Limba UNQUALIFIED
Sinclair WaycottJapanElwin Sharvill NEGOTIATION
Ricardo GauchoItalyAnna Fali NEW
Ricardo GauchoSpainElwin Sharvill QUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant RENEWAL
Emily WhobreyUnited KingdomXuxue Feng 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>