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
Salvatore StockhamCanadaIoni Bowcher UNQUALIFIED
Silvio SlusarskiGermanyElwin Sharvill NEGOTIATION
Isabel BowleyBrazilElwin Sharvill NEGOTIATION
Morrow RutaRussiaAsiya Javayant RENEWAL
Maria MarrierJapanOnyama Limba QUALIFIED
Sinclair WaycottRussiaAmy Elsner QUALIFIED
Nicolas IturbideJapanXuxue Feng RENEWAL
David DarakjyIndiaAsiya Javayant NEW
Jeanfrancois VenereSpainAmy Elsner QUALIFIED
Octavia MaletRussiaBernardo Dominic NEGOTIATION
Kadeem FlosiGermanyIoni Bowcher QUALIFIED
Ivar PaprockiIndiaIoni Bowcher QUALIFIED
Stacey MacleadFranceStephen Shaw RENEWAL
Jones VocelkaFranceIoni Bowcher UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher NEGOTIATION
Jeanfrancois VenereIndiaIvan Magalhaes QUALIFIED
Ivar PaprockiIndiaElwin Sharvill RENEWAL
Jennifer AmigonUnited KingdomIvan Magalhaes QUALIFIED
Tony FollerRussiaOnyama Limba QUALIFIED
Kaitlin OstroskyAustraliaElwin Sharvill QUALIFIED
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Arvin AlbaresFranceAsiya Javayant QUALIFIED
Arvin AlbaresRussiaBernardo Dominic PROPOSAL
Izzy GarufiUnited KingdomOnyama Limba QUALIFIED
Rodrigues CampainCanadaAnna Fali RENEWAL
Ivar PaprockiArgentinaIvan Magalhaes PROPOSAL
Jefferson SchemmerFranceIoni Bowcher PROPOSAL
Stacey MacleadBrazilAsiya Javayant RENEWAL
Maria MarrierItalyAsiya Javayant UNQUALIFIED
Wickens NestleFranceAsiya Javayant PROPOSAL
Antonio CaudySpainIoni Bowcher PROPOSAL
Costa DilliardFranceAsiya Javayant RENEWAL
Kaitlin OstroskyBrazilAsiya Javayant NEGOTIATION
Rodrigues CampainIndiaBernardo Dominic QUALIFIED
Clifford RimRussiaAnna Fali UNQUALIFIED
Jennifer AmigonArgentinaAmy Elsner NEGOTIATION
Leja CaldareraIndiaStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaIoni Bowcher UNQUALIFIED
Sinclair WaycottArgentinaBernardo Dominic RENEWAL
Aditya KuskoIndiaAnna Fali NEW
James ButtJapanAsiya Javayant PROPOSAL
Morrow RutaIndiaIoni Bowcher NEGOTIATION
Aruna FigeroaUnited KingdomXuxue Feng NEGOTIATION
Clifford RimCanadaElwin Sharvill UNQUALIFIED
Julie StensethGermanyXuxue Feng RENEWAL
Smith GlickBrazilAmy Elsner NEGOTIATION
Jennifer AmigonSpainAsiya Javayant UNQUALIFIED
Ashley DoeArgentinaIvan Magalhaes NEW
Mayumi KolmetzArgentinaAnna Fali UNQUALIFIED
Rodrigues CampainArgentinaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottArgentinaElwin Sharvill NEW
Maisha RulapaughGermanyStephen Shaw QUALIFIED
Aika InouyeIndiaStephen Shaw NEGOTIATION
Silvio SlusarskiGermanyElwin Sharvill QUALIFIED
David DarakjyIndiaAnna Fali QUALIFIED
Mujtaba NickaCanadaAnna Fali NEW
Juan WieserGermanyAsiya Javayant NEW
Smith GlickSpainAnna Fali NEGOTIATION
Isabel BowleySpainStephen Shaw QUALIFIED
Sinclair WaycottGermanyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraArgentina2026-05-01Rousseaux, Michael Esq NEW57Xuxue Feng
1001Misaki RoysterItaly2026-04-09Commercial Press QUALIFIED71Ioni Bowcher
1002Aika InouyeCanada2026-04-17Truhlar And Truhlar Attys PROPOSAL94Ivan Magalhaes
1003Leja CaldareraSpain2026-05-05Chanay, Jeffrey A Esq PROPOSAL53Ioni Bowcher
1004Kaitlin OstroskyIndia2026-05-03Commercial Press PROPOSAL91Anna Fali
1005Cody SaylorsFrance2026-04-22Chapman, Ross E Esq NEGOTIATION92Anna Fali
1006Adams MorascaCanada2026-05-02Morlong Associates RENEWAL88Elwin Sharvill
1007Jefferson SchemmerArgentina2026-05-06King, Christopher A Esq QUALIFIED75Amy Elsner
1008Jeanfrancois VenereCanada2026-04-20Printing Dimensions NEGOTIATION19Bernardo Dominic
1009Antonio CaudyIndia2026-04-30Truhlar And Truhlar Attys PROPOSAL71Elwin Sharvill
1010Emily WhobreyIndia2026-05-03Commercial Press RENEWAL28Asiya Javayant
1011Julie StensethIndia2026-05-05Printing Dimensions PROPOSAL4Onyama Limba
1012Chavez BriddickFrance2026-05-04Chemel, James L Cpa UNQUALIFIED25Anna Fali
1013Kadeem FlosiItaly2026-04-22Buckley Miller Wright QUALIFIED32Stephen Shaw
1014Jones VocelkaUnited Kingdom2026-05-05Chemel, James L Cpa PROPOSAL22Anna Fali
1015Jefferson SchemmerUnited Kingdom2026-04-15Rangoni Of Florence PROPOSAL96Anna Fali
1016Jennifer AmigonFrance2026-04-25Printing Dimensions PROPOSAL16Asiya Javayant
1017Jefferson SchemmerFrance2026-04-29Buckley Miller Wright UNQUALIFIED61Ivan Magalhaes
1018Misaki RoysterItaly2026-05-08Dorl, James J Esq PROPOSAL68Stephen Shaw
1019Francesco ShinkoJapan2026-05-07Feltz Printing Service UNQUALIFIED39Anna Fali
1020Rodrigues CampainItaly2026-05-02Printing Dimensions NEGOTIATION43Asiya Javayant
1021Emily WhobreyItaly2026-04-22King, Christopher A Esq NEW85Xuxue Feng
1022Ashley DoeAustralia2026-04-21Chapman, Ross E Esq NEGOTIATION33Onyama Limba
1023Morrow RutaSpain2026-04-18Benton, John B Jr NEW86Amy Elsner
1024Kaitlin OstroskyCanada2026-04-16Feltz Printing Service RENEWAL53Amy Elsner
1025Mujtaba NickaUnited Kingdom2026-05-06Morlong Associates UNQUALIFIED4Onyama Limba
1026Nicolas IturbideItaly2026-04-27Chemel, James L Cpa NEW90Onyama Limba
1027Maisha RulapaughCanada2026-04-30Morlong Associates NEGOTIATION44Asiya Javayant
1028Greenwood BologniaIndia2026-05-01Commercial Press UNQUALIFIED26Ivan Magalhaes
1029Chavez BriddickSpain2026-04-09Rousseaux, Michael Esq PROPOSAL84Anna Fali
1030Rodrigues CampainIndia2026-04-18Truhlar And Truhlar Attys NEGOTIATION18Ivan Magalhaes
1031Cody SaylorsFrance2026-04-14Benton, John B Jr NEW58Anna Fali
1032Jones VocelkaIndia2026-04-21Chanay, Jeffrey A Esq RENEWAL4Ioni Bowcher
1033Tony FollerItaly2026-04-11Chapman, Ross E Esq UNQUALIFIED75Xuxue Feng
1034Isabel BowleyArgentina2026-04-20Feltz Printing Service QUALIFIED91Anna Fali
1035Stacey MacleadFrance2026-04-26Feiner Bros RENEWAL86Onyama Limba
1036Aditya KuskoItaly2026-04-23Feltz Printing Service PROPOSAL82Asiya Javayant
1037Greenwood BologniaFrance2026-04-30Buckley Miller Wright PROPOSAL14Ivan Magalhaes
1038Sinclair WaycottCanada2026-04-15Truhlar And Truhlar Attys QUALIFIED70Asiya Javayant
1039Jefferson SchemmerBrazil2026-05-02Rousseaux, Michael Esq QUALIFIED32Ivan Magalhaes
1040Jennifer AmigonUnited Kingdom2026-04-28Benton, John B Jr UNQUALIFIED56Ivan Magalhaes
1041Morrow RutaGermany2026-05-03Feiner Bros PROPOSAL97Elwin Sharvill
1042Mujtaba NickaSpain2026-04-20Feiner Bros UNQUALIFIED21Anna Fali
1043Faith GillianItaly2026-04-13Buckley Miller Wright PROPOSAL61Amy Elsner
1044Salvatore StockhamFrance2026-04-09King, Christopher A Esq RENEWAL21Amy Elsner
1045Aditya KuskoSpain2026-04-21Truhlar And Truhlar Attys RENEWAL73Ioni Bowcher
1046Chavez BriddickArgentina2026-05-07Dorl, James J Esq RENEWAL95Elwin Sharvill
1047Costa DilliardIndia2026-04-22Feiner Bros PROPOSAL83Stephen Shaw
1048Aditya KuskoArgentina2026-04-11Chanay, Jeffrey A Esq UNQUALIFIED94Onyama Limba
1049Francesco ShinkoJapan2026-04-22Morlong Associates PROPOSAL45Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
James ButtIndiaStephen Shaw QUALIFIED
Maria MarrierArgentinaAmy Elsner UNQUALIFIED
Arvin AlbaresRussiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiAustraliaAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Isabel BowleyJapanAmy Elsner NEGOTIATION
Costa DilliardAustraliaBernardo Dominic UNQUALIFIED
Leja CaldareraItalyXuxue Feng NEW
Smith GlickJapanAmy Elsner RENEWAL
Kadeem FlosiGermanyIoni Bowcher PROPOSAL
Francesco ShinkoAustraliaAnna Fali NEW
Ivar PaprockiJapanBernardo Dominic RENEWAL
Costa DilliardArgentinaAnna Fali UNQUALIFIED
Darci PoquetteFranceBernardo Dominic NEGOTIATION
Costa DilliardBrazilBernardo Dominic RENEWAL
Emily WhobreySpainAmy Elsner PROPOSAL
Faith GillianSpainBernardo Dominic QUALIFIED
Clifford RimItalyAsiya Javayant UNQUALIFIED
Ashley DoeCanadaStephen Shaw QUALIFIED
Aika InouyeIndiaBernardo Dominic NEW
Juan WieserUnited KingdomElwin Sharvill NEW
Cody SaylorsCanadaXuxue Feng NEGOTIATION
Clifford RimArgentinaIoni Bowcher NEW
Isabel BowleyCanadaOnyama Limba UNQUALIFIED
Aditya KuskoCanadaIoni Bowcher PROPOSAL
Chavez BriddickBrazilXuxue Feng NEW
Clifford RimBrazilIoni Bowcher NEW
Adams MorascaArgentinaIoni Bowcher QUALIFIED
Ashley DoeArgentinaIvan Magalhaes NEW
Munro FerenczIndiaIvan Magalhaes QUALIFIED
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Leja CaldareraIndiaAsiya Javayant PROPOSAL
Mujtaba NickaGermanyIoni Bowcher UNQUALIFIED
Aika InouyeJapanAsiya Javayant NEGOTIATION
Ashley DoeUnited KingdomBernardo Dominic QUALIFIED
Ricardo GauchoItalyAmy Elsner UNQUALIFIED
Costa DilliardItalyBernardo Dominic NEGOTIATION
Jones VocelkaArgentinaElwin Sharvill RENEWAL
Maria MarrierUnited KingdomXuxue Feng NEW
James ButtGermanyIoni Bowcher QUALIFIED
Nicolas IturbideFranceBernardo Dominic QUALIFIED
Chavez BriddickRussiaXuxue Feng NEW
David DarakjyUnited KingdomAnna Fali RENEWAL
Clifford RimJapanBernardo Dominic NEGOTIATION
Octavia MaletItalyAsiya Javayant NEW
Johnson SergiUnited KingdomStephen Shaw NEGOTIATION
Juan WieserArgentinaOnyama Limba RENEWAL
Leon OldroydUnited KingdomXuxue Feng QUALIFIED
Antonio CaudyFranceAnna Fali RENEWAL
Johnson SergiRussiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Smith Glick
Ashley Doe
Mayumi Kolmetz
Munro Ferencz
Greenwood Bolognia
Darci Poquette
Claire Tollner
Leon Oldroyd
Ricardo Gaucho
Darci Poquette
Rodrigues Campain
Kadeem Flosi
Faith Gillian
Misaki Royster
Kaitlin Ostrosky
Emily Whobrey
Nicolas Iturbide
Sinclair Waycott
Aruna Figeroa
Maisha Rulapaugh
Adams Morasca
James Butt
Mujtaba Nicka
Chavez Briddick
Aika Inouye
Adams Morasca
Tony Foller
Octavia Malet
Nicolas Iturbide
Clifford Rim
Greenwood Bolognia
Ashley Doe
Isabel Bowley
Johnson Sergi
Kaitlin Ostrosky
Mayumi Kolmetz
Kadeem Flosi
Nicolas Iturbide
David Darakjy
Costa Dilliard
Aditya Kusko
Clifford Rim
Antonio Caudy
Faith Gillian
Aditya Kusko
Kaitlin Ostrosky
Jennifer Amigon
Munro Ferencz
Jones Vocelka
Clifford Rim
IdCountryDate
1000Japan2026-05-01
1001United Kingdom2026-04-15
1002Italy2026-04-11
1003Australia2026-04-14
1004Argentina2026-04-25
1005United Kingdom2026-04-13
1006Italy2026-05-07
1007Italy2026-04-20
1008Argentina2026-04-27
1009France2026-04-29
1010Germany2026-05-02
1011United Kingdom2026-04-20
1012France2026-04-18
1013Germany2026-04-17
1014Canada2026-05-02
1015Canada2026-04-14
1016Argentina2026-05-03
1017United Kingdom2026-05-06
1018India2026-04-15
1019Brazil2026-04-23
1020Japan2026-04-28
1021Canada2026-04-15
1022India2026-04-24
1023Canada2026-04-11
1024India2026-04-13
1025Australia2026-04-22
1026Italy2026-04-19
1027Brazil2026-05-03
1028France2026-05-02
1029Japan2026-05-03
1030Canada2026-05-05
1031United Kingdom2026-05-05
1032Australia2026-04-18
1033Germany2026-05-07
1034Italy2026-04-30
1035Germany2026-04-21
1036United Kingdom2026-04-16
1037United Kingdom2026-05-02
1038Spain2026-04-22
1039Italy2026-05-03
1040Germany2026-04-28
1041Germany2026-04-12
1042United Kingdom2026-04-17
1043Italy2026-05-01
1044United Kingdom2026-04-16
1045Italy2026-04-29
1046Australia2026-05-03
1047Russia2026-04-18
1048Italy2026-04-22
1049Spain2026-04-28

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Argentina2026-04-09
Mujtaba Nicka1001France2026-04-11
Chavez Briddick1002Brazil2026-04-21
Leja Caldarera1003Japan2026-04-19
Mujtaba Nicka1004France2026-05-01
Darci Poquette1005Japan2026-04-15
Emily Whobrey1006Argentina2026-04-10
Faith Gillian1007Spain2026-04-14
Emily Whobrey1008Germany2026-04-09
Aika Inouye1009France2026-04-20
Greenwood Bolognia1010India2026-04-14
Smith Glick1011Japan2026-04-13
Octavia Malet1012Australia2026-04-27
Emily Whobrey1013Germany2026-04-12
Salvatore Stockham1014France2026-04-13
Jones Vocelka1015India2026-04-15
Claire Tollner1016Japan2026-04-21
Izzy Garufi1017India2026-04-16
Adams Morasca1018United Kingdom2026-04-27
Adams Morasca1019France2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerAustraliaIvan Magalhaes RENEWAL
Costa DilliardItalyOnyama Limba NEW
Antonio CaudyAustraliaAnna Fali NEGOTIATION
Silvio SlusarskiArgentinaAnna Fali PROPOSAL
Sinclair WaycottJapanAsiya Javayant QUALIFIED
Octavia MaletItalyAnna Fali QUALIFIED
Maria MarrierFranceOnyama Limba QUALIFIED
Darci PoquetteRussiaAsiya Javayant RENEWAL
Rodrigues CampainCanadaIoni Bowcher PROPOSAL
Rodrigues CampainGermanyXuxue Feng RENEWAL
Arvin AlbaresAustraliaAsiya Javayant NEGOTIATION
Emily WhobreySpainIoni Bowcher PROPOSAL
Octavia MaletIndiaIvan Magalhaes PROPOSAL
Chavez BriddickUnited KingdomAsiya Javayant RENEWAL
Leja CaldareraItalyAsiya Javayant QUALIFIED
Kadeem FlosiJapanAmy Elsner QUALIFIED
Greenwood BologniaItalyIoni Bowcher QUALIFIED
Johnson SergiRussiaIvan Magalhaes NEGOTIATION
Mujtaba NickaGermanyIoni Bowcher PROPOSAL
Francesco ShinkoAustraliaAsiya Javayant PROPOSAL
Stacey MacleadAustraliaStephen Shaw NEGOTIATION
Johnson SergiFranceAnna Fali NEW
Chavez BriddickArgentinaIvan Magalhaes PROPOSAL
James ButtIndiaIoni Bowcher NEGOTIATION
Greenwood BologniaAustraliaElwin Sharvill NEGOTIATION
Arvin AlbaresAustraliaStephen Shaw NEGOTIATION
Johnson SergiJapanOnyama Limba NEW
Maria MarrierIndiaAsiya Javayant RENEWAL
Maisha RulapaughArgentinaBernardo Dominic QUALIFIED
Kadeem FlosiBrazilElwin Sharvill PROPOSAL
Faith GillianRussiaAnna Fali RENEWAL
Chavez BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Chavez BriddickFranceAsiya Javayant PROPOSAL
Maisha RulapaughSpainIoni Bowcher NEW
David DarakjyItalyXuxue Feng UNQUALIFIED
Aditya KuskoArgentinaAsiya Javayant RENEWAL
Leja CaldareraRussiaXuxue Feng PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic RENEWAL
Wickens NestleUnited KingdomIvan Magalhaes QUALIFIED
Julie StensethSpainElwin Sharvill 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>