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
Tony FollerIndiaAsiya Javayant PROPOSAL
Johnson SergiUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba NickaIndiaOnyama Limba PROPOSAL
Stacey MacleadSpainAsiya Javayant NEGOTIATION
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Morrow RutaIndiaAsiya Javayant QUALIFIED
Misaki RoysterAustraliaElwin Sharvill NEW
Nicolas IturbideBrazilXuxue Feng UNQUALIFIED
Jennifer AmigonSpainXuxue Feng NEGOTIATION
Emily WhobreyFranceOnyama Limba NEGOTIATION
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Aditya KuskoFranceOnyama Limba PROPOSAL
Aika InouyeAustraliaAnna Fali NEW
Isabel BowleyItalyBernardo Dominic UNQUALIFIED
Ashley DoeSpainElwin Sharvill RENEWAL
Claire TollnerJapanBernardo Dominic UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Morrow RutaCanadaIoni Bowcher UNQUALIFIED
Mujtaba NickaItalyAsiya Javayant UNQUALIFIED
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Aika InouyeRussiaAnna Fali NEGOTIATION
Stacey MacleadJapanBernardo Dominic UNQUALIFIED
Maria MarrierAustraliaAnna Fali RENEWAL
Silvio SlusarskiSpainIoni Bowcher RENEWAL
Isabel BowleyItalyStephen Shaw RENEWAL
Ashley DoeGermanyAnna Fali NEGOTIATION
Emily WhobreyUnited KingdomAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Deepesh ChuiUnited KingdomOnyama Limba NEGOTIATION
Leja CaldareraSpainAmy Elsner PROPOSAL
Mayumi KolmetzBrazilAsiya Javayant NEGOTIATION
Ashley DoeCanadaIvan Magalhaes NEW
James ButtJapanIvan Magalhaes NEGOTIATION
Murillo MaletCanadaStephen Shaw NEGOTIATION
David DarakjySpainAmy Elsner NEW
Alejandro PerinUnited KingdomIoni Bowcher NEW
Stacey MacleadIndiaXuxue Feng PROPOSAL
Antonio CaudySpainElwin Sharvill QUALIFIED
Chavez BriddickItalyAnna Fali QUALIFIED
Munro FerenczAustraliaBernardo Dominic NEGOTIATION
David DarakjyCanadaOnyama Limba QUALIFIED
Jefferson SchemmerGermanyBernardo Dominic NEW
Tony FollerUnited KingdomOnyama Limba NEGOTIATION
Murillo MaletSpainStephen Shaw QUALIFIED
Jefferson SchemmerJapanStephen Shaw PROPOSAL
Emily WhobreyItalyStephen Shaw NEGOTIATION
Arvin AlbaresIndiaIvan Magalhaes UNQUALIFIED
Mayumi KolmetzFranceBernardo Dominic QUALIFIED
Jefferson SchemmerCanadaAnna Fali NEW
Deepesh ChuiItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Munro FerenczFranceAmy Elsner NEGOTIATION
Ivar PaprockiItalyBernardo Dominic QUALIFIED
Murillo MaletAustraliaIoni Bowcher NEW
Aditya KuskoCanadaStephen Shaw NEW
Kadeem FlosiBrazilIoni Bowcher UNQUALIFIED
Juan WieserGermanyXuxue Feng UNQUALIFIED
Ricardo GauchoItalyElwin Sharvill QUALIFIED
Leon OldroydAustraliaElwin Sharvill RENEWAL
Aditya KuskoArgentinaElwin Sharvill NEGOTIATION
Stacey MacleadUnited KingdomBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethFrance2026-04-21Benton, John B Jr UNQUALIFIED36Stephen Shaw
1001Wickens NestleAustralia2026-04-17Printing Dimensions RENEWAL81Onyama Limba
1002Antonio CaudySpain2026-04-03Feltz Printing Service RENEWAL51Amy Elsner
1003Jones VocelkaUnited Kingdom2026-03-26Rangoni Of Florence RENEWAL94Amy Elsner
1004Maria MarrierUnited Kingdom2026-03-28Buckley Miller Wright PROPOSAL47Ivan Magalhaes
1005Nicolas IturbideCanada2026-04-16Feiner Bros NEW0Anna Fali
1006Salvatore StockhamGermany2026-04-03Buckley Miller Wright NEGOTIATION61Bernardo Dominic
1007Morrow RutaIndia2026-04-14Printing Dimensions PROPOSAL82Stephen Shaw
1008Julie StensethCanada2026-04-09Chemel, James L Cpa NEGOTIATION15Bernardo Dominic
1009Costa DilliardSpain2026-04-05King, Christopher A Esq PROPOSAL94Amy Elsner
1010Kaitlin OstroskyBrazil2026-04-02Chapman, Ross E Esq NEW77Elwin Sharvill
1011Morrow RutaArgentina2026-04-01Commercial Press NEW42Asiya Javayant
1012Francesco ShinkoGermany2026-04-20Morlong Associates RENEWAL12Ivan Magalhaes
1013Alejandro PerinIndia2026-04-21Dorl, James J Esq UNQUALIFIED14Ioni Bowcher
1014Leon OldroydIndia2026-04-13Dorl, James J Esq UNQUALIFIED41Anna Fali
1015Francesco ShinkoItaly2026-03-31Dorl, James J Esq PROPOSAL35Asiya Javayant
1016Mayumi KolmetzJapan2026-04-02Printing Dimensions NEW29Amy Elsner
1017Aika InouyeFrance2026-04-19Truhlar And Truhlar Attys QUALIFIED35Elwin Sharvill
1018Kadeem FlosiFrance2026-04-19Chemel, James L Cpa PROPOSAL3Ioni Bowcher
1019Adams MorascaFrance2026-03-23Chapman, Ross E Esq NEW12Amy Elsner
1020Julie StensethRussia2026-03-29Benton, John B Jr RENEWAL17Asiya Javayant
1021Deepesh ChuiUnited Kingdom2026-04-09Rousseaux, Michael Esq UNQUALIFIED51Elwin Sharvill
1022Arvin AlbaresAustralia2026-04-16Buckley Miller Wright UNQUALIFIED82Stephen Shaw
1023Jefferson SchemmerIndia2026-04-11Commercial Press UNQUALIFIED69Stephen Shaw
1024Faith GillianFrance2026-03-28Commercial Press NEGOTIATION77Amy Elsner
1025James ButtSpain2026-03-26Commercial Press UNQUALIFIED47Bernardo Dominic
1026Juan WieserIndia2026-03-27Feiner Bros QUALIFIED64Ivan Magalhaes
1027Darci PoquetteRussia2026-04-18Chanay, Jeffrey A Esq PROPOSAL74Stephen Shaw
1028Aika InouyeFrance2026-04-19Morlong Associates NEGOTIATION83Anna Fali
1029Antonio CaudyRussia2026-03-29Benton, John B Jr NEGOTIATION83Onyama Limba
1030Wickens NestleUnited Kingdom2026-04-18Chemel, James L Cpa NEW27Stephen Shaw
1031Antonio CaudyUnited Kingdom2026-04-02Rangoni Of Florence UNQUALIFIED76Asiya Javayant
1032Jeanfrancois VenereArgentina2026-04-02Feltz Printing Service PROPOSAL18Ivan Magalhaes
1033Silvio SlusarskiCanada2026-04-14Chemel, James L Cpa NEW5Elwin Sharvill
1034Octavia MaletSpain2026-04-14Commercial Press QUALIFIED28Elwin Sharvill
1035Smith GlickSpain2026-04-08Buckley Miller Wright UNQUALIFIED91Bernardo Dominic
1036James ButtRussia2026-04-19Chemel, James L Cpa NEW59Xuxue Feng
1037Jennifer AmigonIndia2026-04-14Chapman, Ross E Esq NEW46Anna Fali
1038Misaki RoysterAustralia2026-04-12Benton, John B Jr NEW95Amy Elsner
1039Chavez BriddickIndia2026-03-25Benton, John B Jr PROPOSAL23Asiya Javayant
1040Maria MarrierCanada2026-03-25Printing Dimensions QUALIFIED13Asiya Javayant
1041Juan WieserArgentina2026-04-02Rangoni Of Florence RENEWAL33Ivan Magalhaes
1042Mujtaba NickaFrance2026-04-10Benton, John B Jr QUALIFIED6Asiya Javayant
1043Faith GillianItaly2026-04-09Rousseaux, Michael Esq NEW79Ivan Magalhaes
1044Cody SaylorsSpain2026-04-17Rousseaux, Michael Esq QUALIFIED84Elwin Sharvill
1045David DarakjyIndia2026-03-31Feiner Bros PROPOSAL49Xuxue Feng
1046Cody SaylorsJapan2026-04-21Printing Dimensions QUALIFIED49Onyama Limba
1047Claire TollnerArgentina2026-04-06Chemel, James L Cpa QUALIFIED62Elwin Sharvill
1048Silvio SlusarskiUnited Kingdom2026-04-13Feiner Bros QUALIFIED32Onyama Limba
1049Rodrigues CampainSpain2026-03-24Printing Dimensions RENEWAL74Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiItalyStephen Shaw PROPOSAL
Aruna FigeroaSpainXuxue Feng UNQUALIFIED
Tony FollerIndiaAnna Fali PROPOSAL
Costa DilliardFranceIoni Bowcher QUALIFIED
Octavia MaletCanadaOnyama Limba PROPOSAL
Jeanfrancois VenereIndiaBernardo Dominic RENEWAL
Munro FerenczCanadaElwin Sharvill PROPOSAL
Leja CaldareraGermanyAnna Fali NEW
James ButtSpainIoni Bowcher UNQUALIFIED
James ButtGermanyAsiya Javayant RENEWAL
Clifford RimRussiaStephen Shaw NEGOTIATION
Emily WhobreyArgentinaBernardo Dominic PROPOSAL
Stacey MacleadBrazilIoni Bowcher PROPOSAL
Emily WhobreyIndiaAsiya Javayant PROPOSAL
Chavez BriddickCanadaIoni Bowcher PROPOSAL
Murillo MaletAustraliaElwin Sharvill PROPOSAL
Silvio SlusarskiGermanyIoni Bowcher QUALIFIED
Misaki RoysterUnited KingdomStephen Shaw PROPOSAL
Salvatore StockhamArgentinaBernardo Dominic NEW
Arvin AlbaresGermanyOnyama Limba RENEWAL
Johnson SergiSpainOnyama Limba NEGOTIATION
Adams MorascaFranceIoni Bowcher PROPOSAL
James ButtBrazilElwin Sharvill NEW
Maisha RulapaughArgentinaIoni Bowcher NEW
Rodrigues CampainSpainOnyama Limba UNQUALIFIED
Chavez BriddickGermanyElwin Sharvill NEW
Leon OldroydIndiaBernardo Dominic NEW
Tony FollerCanadaIvan Magalhaes QUALIFIED
Murillo MaletAustraliaBernardo Dominic PROPOSAL
David DarakjyBrazilXuxue Feng PROPOSAL
Aditya KuskoSpainAnna Fali QUALIFIED
Maria MarrierCanadaOnyama Limba NEGOTIATION
Johnson SergiFranceAsiya Javayant UNQUALIFIED
Faith GillianItalyIvan Magalhaes QUALIFIED
Mujtaba NickaUnited KingdomOnyama Limba NEW
Silvio SlusarskiFranceElwin Sharvill UNQUALIFIED
Faith GillianCanadaOnyama Limba UNQUALIFIED
Johnson SergiBrazilIvan Magalhaes NEW
Ashley DoeRussiaAnna Fali NEGOTIATION
Jennifer AmigonCanadaAsiya Javayant QUALIFIED
Rodrigues CampainIndiaOnyama Limba PROPOSAL
Nicolas IturbideIndiaXuxue Feng PROPOSAL
Munro FerenczCanadaAnna Fali PROPOSAL
Faith GillianArgentinaAnna Fali RENEWAL
Stacey MacleadItalyElwin Sharvill NEW
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Octavia MaletBrazilXuxue Feng NEW
Julie StensethCanadaIoni Bowcher UNQUALIFIED
Murillo MaletRussiaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Aditya Kusko
Misaki Royster
Sinclair Waycott
Misaki Royster
Izzy Garufi
Juan Wieser
Jeanfrancois Venere
Stacey Maclead
Kadeem Flosi
Antonio Caudy
Costa Dilliard
Faith Gillian
Costa Dilliard
Kaitlin Ostrosky
Adams Morasca
Julie Stenseth
Leja Caldarera
Ashley Doe
Aditya Kusko
Tony Foller
Rodrigues Campain
Morrow Ruta
Murillo Malet
Stacey Maclead
Alejandro Perin
Greenwood Bolognia
Smith Glick
Arvin Albares
Johnson Sergi
Wickens Nestle
Silvio Slusarski
Arvin Albares
Chavez Briddick
Ricardo Gaucho
Mayumi Kolmetz
Antonio Caudy
Leon Oldroyd
Murillo Malet
Morrow Ruta
Jones Vocelka
Arvin Albares
Julie Stenseth
Deepesh Chui
Ashley Doe
Kaitlin Ostrosky
Aditya Kusko
Francesco Shinko
Ricardo Gaucho
Francesco Shinko
Ashley Doe
IdCountryDate
1000Spain2026-03-31
1001Russia2026-04-16
1002Australia2026-04-12
1003France2026-04-13
1004Japan2026-04-20
1005Australia2026-04-16
1006Japan2026-03-30
1007Japan2026-03-23
1008Russia2026-03-27
1009Germany2026-04-13
1010Germany2026-04-19
1011Spain2026-04-21
1012Germany2026-04-19
1013Germany2026-04-15
1014Brazil2026-04-15
1015France2026-03-24
1016France2026-04-09
1017India2026-03-29
1018Brazil2026-04-16
1019India2026-04-14
1020Germany2026-04-20
1021Argentina2026-04-13
1022France2026-03-28
1023Brazil2026-04-21
1024Australia2026-04-13
1025Australia2026-04-03
1026Russia2026-04-19
1027Germany2026-03-31
1028Russia2026-03-30
1029United Kingdom2026-04-08
1030Argentina2026-03-28
1031Canada2026-03-27
1032Brazil2026-04-11
1033Japan2026-04-15
1034Canada2026-04-12
1035Germany2026-04-20
1036Russia2026-03-25
1037Spain2026-03-26
1038Italy2026-03-30
1039Japan2026-03-23
1040Australia2026-04-05
1041Argentina2026-04-10
1042Japan2026-04-04
1043Australia2026-04-19
1044Italy2026-04-21
1045Brazil2026-04-18
1046France2026-04-16
1047Argentina2026-04-12
1048Canada2026-03-31
1049Argentina2026-04-19

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Russia2026-04-03
Octavia Malet1001Italy2026-04-01
Isabel Bowley1002Australia2026-04-17
Kadeem Flosi1003India2026-04-01
Ashley Doe1004Canada2026-04-19
Silvio Slusarski1005Italy2026-04-06
Morrow Ruta1006Canada2026-03-31
Jones Vocelka1007United Kingdom2026-04-10
Arvin Albares1008India2026-04-06
Smith Glick1009Canada2026-03-27
Silvio Slusarski1010Spain2026-03-25
Nicolas Iturbide1011Russia2026-04-20
Johnson Sergi1012Russia2026-04-15
Ivar Paprocki1013France2026-04-06
Maisha Rulapaugh1014Russia2026-03-25
Cody Saylors1015Japan2026-04-09
Cody Saylors1016Spain2026-04-20
Mayumi Kolmetz1017Spain2026-04-06
Ashley Doe1018Japan2026-04-08
Costa Dilliard1019Russia2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro FerenczAustraliaOnyama Limba QUALIFIED
Kadeem FlosiIndiaOnyama Limba PROPOSAL
Kadeem FlosiRussiaStephen Shaw QUALIFIED
Octavia MaletUnited KingdomXuxue Feng PROPOSAL
Cody SaylorsItalyStephen Shaw QUALIFIED
Silvio SlusarskiGermanyAnna Fali NEGOTIATION
Stacey MacleadArgentinaIvan Magalhaes PROPOSAL
Deepesh ChuiGermanyIvan Magalhaes NEW
Maisha RulapaughGermanyAmy Elsner RENEWAL
Nicolas IturbideSpainAmy Elsner RENEWAL
Aditya KuskoFranceIoni Bowcher NEW
Kadeem FlosiSpainOnyama Limba NEGOTIATION
Aditya KuskoItalyAnna Fali NEW
Wickens NestleCanadaIvan Magalhaes PROPOSAL
Juan WieserIndiaAsiya Javayant NEGOTIATION
Nicolas IturbideRussiaOnyama Limba NEW
Emily WhobreyJapanElwin Sharvill QUALIFIED
Maisha RulapaughIndiaElwin Sharvill UNQUALIFIED
Munro FerenczItalyAsiya Javayant PROPOSAL
Mayumi KolmetzCanadaBernardo Dominic PROPOSAL
Costa DilliardFranceBernardo Dominic UNQUALIFIED
Isabel BowleyItalyAmy Elsner QUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner NEW
Antonio CaudyFranceBernardo Dominic UNQUALIFIED
Jennifer AmigonAustraliaBernardo Dominic RENEWAL
Greenwood BologniaRussiaIoni Bowcher UNQUALIFIED
Kadeem FlosiCanadaOnyama Limba PROPOSAL
Johnson SergiJapanXuxue Feng PROPOSAL
Johnson SergiRussiaAmy Elsner UNQUALIFIED
Alejandro PerinJapanAsiya Javayant UNQUALIFIED
Costa DilliardUnited KingdomAnna Fali UNQUALIFIED
Claire TollnerIndiaStephen Shaw NEGOTIATION
Deepesh ChuiIndiaAsiya Javayant QUALIFIED
Mujtaba NickaUnited KingdomAnna Fali QUALIFIED
Kaitlin OstroskyArgentinaStephen Shaw NEGOTIATION
Mayumi KolmetzCanadaAmy Elsner PROPOSAL
Aika InouyeArgentinaAmy Elsner NEGOTIATION
Kadeem FlosiIndiaAmy Elsner UNQUALIFIED
Leja CaldareraIndiaStephen Shaw NEGOTIATION
Isabel BowleyCanadaIoni Bowcher 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>