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
Aruna FigeroaArgentinaXuxue Feng PROPOSAL
Francesco ShinkoUnited KingdomAsiya Javayant RENEWAL
Julie StensethBrazilIoni Bowcher NEW
Jones VocelkaArgentinaIvan Magalhaes RENEWAL
David DarakjyCanadaBernardo Dominic NEGOTIATION
Jeanfrancois VenereCanadaAmy Elsner QUALIFIED
Nicolas IturbideSpainAnna Fali NEW
Mayumi KolmetzArgentinaAmy Elsner RENEWAL
Antonio CaudyItalyIoni Bowcher RENEWAL
Isabel BowleyRussiaAsiya Javayant RENEWAL
Faith GillianSpainAsiya Javayant NEGOTIATION
Costa DilliardGermanyOnyama Limba PROPOSAL
Antonio CaudyRussiaIoni Bowcher NEW
Tony FollerUnited KingdomAsiya Javayant QUALIFIED
Smith GlickFranceStephen Shaw NEW
Nicolas IturbideSpainAnna Fali NEW
David DarakjyArgentinaOnyama Limba PROPOSAL
Mayumi KolmetzBrazilStephen Shaw PROPOSAL
Morrow RutaBrazilStephen Shaw RENEWAL
Clifford RimCanadaElwin Sharvill NEW
Tony FollerRussiaIoni Bowcher NEW
Faith GillianUnited KingdomAmy Elsner RENEWAL
Jefferson SchemmerCanadaStephen Shaw QUALIFIED
Aruna FigeroaJapanAmy Elsner UNQUALIFIED
Chavez BriddickJapanIvan Magalhaes QUALIFIED
Nicolas IturbideRussiaAmy Elsner PROPOSAL
Claire TollnerSpainIoni Bowcher NEGOTIATION
Isabel BowleyGermanyElwin Sharvill NEW
Jeanfrancois VenereRussiaXuxue Feng NEW
Faith GillianIndiaAnna Fali RENEWAL
Isabel BowleyItalyOnyama Limba RENEWAL
Darci PoquetteArgentinaXuxue Feng NEGOTIATION
Faith GillianGermanyAnna Fali NEW
Juan WieserAustraliaAsiya Javayant NEW
Morrow RutaBrazilElwin Sharvill PROPOSAL
Jennifer AmigonFranceStephen Shaw QUALIFIED
David DarakjyGermanyAnna Fali NEW
Kaitlin OstroskyIndiaAnna Fali NEGOTIATION
Maria MarrierCanadaIvan Magalhaes UNQUALIFIED
Sinclair WaycottIndiaIvan Magalhaes QUALIFIED
Tony FollerBrazilStephen Shaw QUALIFIED
Izzy GarufiArgentinaIoni Bowcher NEW
Faith GillianCanadaAmy Elsner NEGOTIATION
Arvin AlbaresSpainAsiya Javayant NEGOTIATION
Leja CaldareraAustraliaIoni Bowcher NEW
Nicolas IturbideIndiaIvan Magalhaes NEGOTIATION
Arvin AlbaresFranceBernardo Dominic UNQUALIFIED
Tony FollerAustraliaBernardo Dominic QUALIFIED
David DarakjyFranceStephen Shaw RENEWAL
Mujtaba NickaItalyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoItalyStephen Shaw RENEWAL
Misaki RoysterCanadaIvan Magalhaes NEW
Murillo MaletSpainAsiya Javayant NEW
Maisha RulapaughBrazilAnna Fali UNQUALIFIED
Silvio SlusarskiJapanAsiya Javayant PROPOSAL
Jennifer AmigonSpainOnyama Limba PROPOSAL
Tony FollerFranceOnyama Limba QUALIFIED
Alejandro PerinCanadaXuxue Feng UNQUALIFIED
Jennifer AmigonArgentinaXuxue Feng RENEWAL
Izzy GarufiFranceOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczBrazil2026-04-08Feiner Bros RENEWAL64Xuxue Feng
1001Smith GlickAustralia2026-04-24Chapman, Ross E Esq NEW51Bernardo Dominic
1002Maisha RulapaughBrazil2026-04-02Feiner Bros NEW26Onyama Limba
1003Kaitlin OstroskySpain2026-04-07Dorl, James J Esq UNQUALIFIED80Ivan Magalhaes
1004Stacey MacleadUnited Kingdom2026-04-13Buckley Miller Wright NEGOTIATION65Elwin Sharvill
1005Claire TollnerRussia2026-04-25Benton, John B Jr PROPOSAL73Bernardo Dominic
1006Adams MorascaAustralia2026-04-12Commercial Press RENEWAL10Amy Elsner
1007Kaitlin OstroskyCanada2026-04-24Feltz Printing Service NEGOTIATION3Bernardo Dominic
1008Tony FollerIndia2026-04-17Dorl, James J Esq NEW69Onyama Limba
1009Juan WieserIndia2026-04-21Feltz Printing Service UNQUALIFIED58Anna Fali
1010Munro FerenczIndia2026-04-02Benton, John B Jr UNQUALIFIED15Stephen Shaw
1011Morrow RutaBrazil2026-04-13King, Christopher A Esq QUALIFIED90Ioni Bowcher
1012Maisha RulapaughArgentina2026-04-25Benton, John B Jr NEW32Ivan Magalhaes
1013Mayumi KolmetzIndia2026-04-12King, Christopher A Esq RENEWAL33Ivan Magalhaes
1014Francesco ShinkoFrance2026-04-12Chemel, James L Cpa PROPOSAL55Asiya Javayant
1015Aruna FigeroaGermany2026-04-18Truhlar And Truhlar Attys QUALIFIED93Onyama Limba
1016Stacey MacleadBrazil2026-04-10Printing Dimensions PROPOSAL1Ioni Bowcher
1017Izzy GarufiBrazil2026-04-16Chemel, James L Cpa RENEWAL63Ivan Magalhaes
1018Smith GlickUnited Kingdom2026-04-03Benton, John B Jr UNQUALIFIED26Xuxue Feng
1019Emily WhobreyRussia2026-04-20Feiner Bros PROPOSAL93Amy Elsner
1020Nicolas IturbideItaly2026-04-14Buckley Miller Wright RENEWAL59Asiya Javayant
1021Jones VocelkaFrance2026-03-27Benton, John B Jr NEW63Xuxue Feng
1022Smith GlickItaly2026-04-18Chanay, Jeffrey A Esq NEGOTIATION7Amy Elsner
1023Tony FollerSpain2026-04-18Dorl, James J Esq PROPOSAL52Stephen Shaw
1024Ivar PaprockiSpain2026-04-04Benton, John B Jr PROPOSAL5Asiya Javayant
1025Wickens NestleAustralia2026-04-12Printing Dimensions NEGOTIATION83Anna Fali
1026Ivar PaprockiSpain2026-04-11Rangoni Of Florence NEGOTIATION88Onyama Limba
1027Kaitlin OstroskySpain2026-04-20Rousseaux, Michael Esq UNQUALIFIED34Stephen Shaw
1028Francesco ShinkoFrance2026-04-23Chemel, James L Cpa NEW0Xuxue Feng
1029Jeanfrancois VenereUnited Kingdom2026-04-14Rousseaux, Michael Esq NEW64Ioni Bowcher
1030Cody SaylorsRussia2026-04-15Truhlar And Truhlar Attys NEW16Anna Fali
1031Ricardo GauchoArgentina2026-04-04Rangoni Of Florence PROPOSAL63Amy Elsner
1032Leon OldroydRussia2026-04-18Buckley Miller Wright RENEWAL81Ivan Magalhaes
1033Smith GlickArgentina2026-04-08King, Christopher A Esq PROPOSAL2Elwin Sharvill
1034Emily WhobreyRussia2026-04-13Chemel, James L Cpa UNQUALIFIED93Elwin Sharvill
1035James ButtSpain2026-04-25King, Christopher A Esq NEGOTIATION17Ioni Bowcher
1036Tony FollerItaly2026-04-07Morlong Associates RENEWAL64Ivan Magalhaes
1037Leon OldroydSpain2026-04-05Rousseaux, Michael Esq UNQUALIFIED45Amy Elsner
1038Rodrigues CampainSpain2026-04-24Benton, John B Jr RENEWAL83Ivan Magalhaes
1039Jennifer AmigonBrazil2026-03-28Truhlar And Truhlar Attys RENEWAL90Bernardo Dominic
1040Costa DilliardIndia2026-04-24King, Christopher A Esq UNQUALIFIED57Anna Fali
1041Juan WieserJapan2026-04-20Commercial Press RENEWAL56Xuxue Feng
1042Silvio SlusarskiSpain2026-04-04Printing Dimensions NEGOTIATION44Bernardo Dominic
1043Morrow RutaItaly2026-04-13Chemel, James L Cpa UNQUALIFIED80Ioni Bowcher
1044David DarakjyBrazil2026-04-13Commercial Press QUALIFIED62Amy Elsner
1045Stacey MacleadCanada2026-04-17Printing Dimensions PROPOSAL64Xuxue Feng
1046Deepesh ChuiArgentina2026-04-01Rousseaux, Michael Esq RENEWAL63Bernardo Dominic
1047Alejandro PerinBrazil2026-04-13Truhlar And Truhlar Attys RENEWAL24Stephen Shaw
1048David DarakjyItaly2026-04-17Chanay, Jeffrey A Esq QUALIFIED89Ioni Bowcher
1049Tony FollerGermany2026-04-18Chemel, James L Cpa PROPOSAL82Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleItalyAsiya Javayant QUALIFIED
Jeanfrancois VenereAustraliaIoni Bowcher NEW
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Clifford RimUnited KingdomElwin Sharvill RENEWAL
Jones VocelkaCanadaAmy Elsner PROPOSAL
Costa DilliardItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoSpainAnna Fali UNQUALIFIED
Juan WieserJapanAnna Fali RENEWAL
Rodrigues CampainAustraliaIvan Magalhaes RENEWAL
Rodrigues CampainSpainElwin Sharvill NEGOTIATION
Octavia MaletCanadaAmy Elsner NEW
Kadeem FlosiUnited KingdomAmy Elsner QUALIFIED
Tony FollerRussiaAsiya Javayant UNQUALIFIED
Alejandro PerinCanadaAnna Fali NEGOTIATION
Sinclair WaycottSpainAnna Fali RENEWAL
Mayumi KolmetzJapanIvan Magalhaes QUALIFIED
Ricardo GauchoItalyOnyama Limba NEGOTIATION
Juan WieserUnited KingdomStephen Shaw PROPOSAL
Deepesh ChuiAustraliaAsiya Javayant UNQUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill PROPOSAL
Izzy GarufiFranceIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaOnyama Limba UNQUALIFIED
Chavez BriddickFranceBernardo Dominic QUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill PROPOSAL
Juan WieserGermanyXuxue Feng NEGOTIATION
Deepesh ChuiArgentinaIvan Magalhaes NEW
Rodrigues CampainFranceAsiya Javayant RENEWAL
Chavez BriddickAustraliaAmy Elsner NEGOTIATION
Juan WieserGermanyElwin Sharvill NEW
Ivar PaprockiSpainBernardo Dominic NEW
Smith GlickUnited KingdomAmy Elsner UNQUALIFIED
Arvin AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey MacleadFranceIvan Magalhaes NEW
Maisha RulapaughUnited KingdomIoni Bowcher PROPOSAL
Alejandro PerinItalyStephen Shaw PROPOSAL
Cody SaylorsFranceIoni Bowcher NEGOTIATION
Nicolas IturbideSpainAmy Elsner QUALIFIED
Juan WieserItalyBernardo Dominic QUALIFIED
Johnson SergiAustraliaIoni Bowcher RENEWAL
Julie StensethSpainOnyama Limba RENEWAL
Tony FollerIndiaIoni Bowcher NEW
Jennifer AmigonArgentinaStephen Shaw NEGOTIATION
Nicolas IturbideAustraliaStephen Shaw NEGOTIATION
Kaitlin OstroskyGermanyElwin Sharvill NEGOTIATION
Ricardo GauchoIndiaIoni Bowcher RENEWAL
Ricardo GauchoGermanyStephen Shaw RENEWAL
Adams MorascaJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughSpainIvan Magalhaes RENEWAL
Ashley DoeArgentinaAmy Elsner QUALIFIED
Morrow RutaArgentinaXuxue Feng QUALIFIED
Frozen Columns
Name
Murillo Malet
Salvatore Stockham
Ashley Doe
Greenwood Bolognia
Jefferson Schemmer
Costa Dilliard
Kadeem Flosi
Clifford Rim
Darci Poquette
Clifford Rim
Morrow Ruta
Jeanfrancois Venere
Antonio Caudy
David Darakjy
Ricardo Gaucho
Stacey Maclead
Jeanfrancois Venere
David Darakjy
Jones Vocelka
Darci Poquette
Greenwood Bolognia
Ricardo Gaucho
Stacey Maclead
Silvio Slusarski
Aruna Figeroa
Jennifer Amigon
Mayumi Kolmetz
Salvatore Stockham
Aruna Figeroa
Adams Morasca
Morrow Ruta
Ivar Paprocki
Leja Caldarera
Greenwood Bolognia
Alejandro Perin
Jones Vocelka
Aditya Kusko
Francesco Shinko
Octavia Malet
Nicolas Iturbide
Deepesh Chui
David Darakjy
Kaitlin Ostrosky
Munro Ferencz
Claire Tollner
Adams Morasca
Clifford Rim
Munro Ferencz
Claire Tollner
Murillo Malet
IdCountryDate
1000Russia2026-04-03
1001Spain2026-04-17
1002Brazil2026-04-08
1003Japan2026-03-27
1004Russia2026-04-20
1005Russia2026-04-25
1006Spain2026-04-01
1007Argentina2026-03-27
1008Argentina2026-04-18
1009United Kingdom2026-04-13
1010Italy2026-04-05
1011Germany2026-04-06
1012Germany2026-04-01
1013Canada2026-03-29
1014Spain2026-04-10
1015Spain2026-04-07
1016United Kingdom2026-04-04
1017United Kingdom2026-04-24
1018United Kingdom2026-04-15
1019Russia2026-03-28
1020Brazil2026-03-27
1021Russia2026-04-21
1022Canada2026-03-31
1023Australia2026-04-13
1024Argentina2026-04-10
1025Brazil2026-04-17
1026Italy2026-04-06
1027Australia2026-04-21
1028United Kingdom2026-04-19
1029Russia2026-04-11
1030Australia2026-04-16
1031Japan2026-04-07
1032Germany2026-04-19
1033United Kingdom2026-04-20
1034United Kingdom2026-04-20
1035Japan2026-04-06
1036Canada2026-04-18
1037Japan2026-03-29
1038Australia2026-04-14
1039Australia2026-04-13
1040India2026-04-17
1041Canada2026-04-02
1042Russia2026-04-05
1043United Kingdom2026-04-16
1044United Kingdom2026-04-05
1045India2026-03-30
1046France2026-03-27
1047Russia2026-04-11
1048United Kingdom2026-04-09
1049Argentina2026-04-07

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000India2026-04-07
Aruna Figeroa1001Italy2026-04-01
Greenwood Bolognia1002Australia2026-04-02
Alejandro Perin1003Italy2026-04-25
Maria Marrier1004Russia2026-04-04
Murillo Malet1005India2026-04-16
Mayumi Kolmetz1006Japan2026-04-23
Costa Dilliard1007United Kingdom2026-04-07
Jennifer Amigon1008Argentina2026-04-06
Jefferson Schemmer1009Spain2026-04-02
Maria Marrier1010India2026-04-18
David Darakjy1011Argentina2026-04-25
Silvio Slusarski1012India2026-04-05
Antonio Caudy1013Germany2026-04-09
Nicolas Iturbide1014Japan2026-04-17
Kadeem Flosi1015Russia2026-04-23
Maisha Rulapaugh1016India2026-04-22
Nicolas Iturbide1017Argentina2026-04-19
Maisha Rulapaugh1018Australia2026-04-19
Chavez Briddick1019France2026-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinFranceXuxue Feng RENEWAL
James ButtCanadaAsiya Javayant RENEWAL
Ashley DoeItalyStephen Shaw PROPOSAL
Jeanfrancois VenereGermanyElwin Sharvill NEW
Ivar PaprockiSpainIvan Magalhaes PROPOSAL
Wickens NestleCanadaOnyama Limba PROPOSAL
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Aruna FigeroaBrazilElwin Sharvill PROPOSAL
Costa DilliardAustraliaBernardo Dominic RENEWAL
Stacey MacleadJapanOnyama Limba NEW
Arvin AlbaresArgentinaAnna Fali PROPOSAL
David DarakjyIndiaAmy Elsner QUALIFIED
Sinclair WaycottFranceAnna Fali NEW
Maria MarrierAustraliaOnyama Limba RENEWAL
Costa DilliardRussiaBernardo Dominic NEGOTIATION
Izzy GarufiUnited KingdomXuxue Feng NEW
Julie StensethUnited KingdomAnna Fali QUALIFIED
Wickens NestleSpainAmy Elsner PROPOSAL
Julie StensethAustraliaStephen Shaw UNQUALIFIED
Maria MarrierAustraliaElwin Sharvill UNQUALIFIED
Costa DilliardJapanBernardo Dominic NEGOTIATION
Misaki RoysterSpainAmy Elsner QUALIFIED
Johnson SergiIndiaStephen Shaw RENEWAL
Ashley DoeGermanyElwin Sharvill UNQUALIFIED
Julie StensethArgentinaAnna Fali NEW
Deepesh ChuiJapanStephen Shaw QUALIFIED
Costa DilliardIndiaAnna Fali QUALIFIED
Salvatore StockhamAustraliaAmy Elsner RENEWAL
Arvin AlbaresCanadaStephen Shaw PROPOSAL
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Leja CaldareraJapanStephen Shaw NEW
Izzy GarufiItalyOnyama Limba NEW
Claire TollnerFranceIoni Bowcher PROPOSAL
Nicolas IturbideSpainAnna Fali QUALIFIED
Morrow RutaItalyAsiya Javayant PROPOSAL
Aditya KuskoSpainAmy Elsner NEW
Murillo MaletAustraliaAsiya Javayant NEGOTIATION
Ashley DoeArgentinaOnyama Limba NEW
Stacey MacleadRussiaBernardo Dominic RENEWAL
Jefferson SchemmerRussiaAmy Elsner NEW

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