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
Emily WhobreyIndiaElwin Sharvill UNQUALIFIED
Leja CaldareraRussiaAnna Fali NEW
Kadeem FlosiArgentinaIoni Bowcher UNQUALIFIED
Faith GillianUnited KingdomStephen Shaw NEGOTIATION
Juan WieserFranceIvan Magalhaes NEGOTIATION
Isabel BowleyFranceXuxue Feng PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw QUALIFIED
Morrow RutaGermanyOnyama Limba RENEWAL
Murillo MaletCanadaAsiya Javayant NEGOTIATION
Wickens NestleAustraliaStephen Shaw NEW
Izzy GarufiRussiaStephen Shaw NEGOTIATION
Murillo MaletBrazilXuxue Feng QUALIFIED
Johnson SergiSpainAmy Elsner NEW
Faith GillianCanadaIoni Bowcher UNQUALIFIED
Arvin AlbaresRussiaXuxue Feng PROPOSAL
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Julie StensethCanadaElwin Sharvill QUALIFIED
Aruna FigeroaAustraliaAsiya Javayant PROPOSAL
Greenwood BologniaAustraliaAnna Fali NEGOTIATION
Wickens NestleJapanIvan Magalhaes RENEWAL
Faith GillianSpainBernardo Dominic QUALIFIED
Leon OldroydIndiaAmy Elsner PROPOSAL
Smith GlickIndiaBernardo Dominic PROPOSAL
James ButtArgentinaStephen Shaw NEGOTIATION
Arvin AlbaresCanadaIoni Bowcher NEGOTIATION
Darci PoquetteAustraliaAsiya Javayant PROPOSAL
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Smith GlickUnited KingdomOnyama Limba NEW
Arvin AlbaresUnited KingdomIvan Magalhaes NEW
Stacey MacleadIndiaAmy Elsner NEW
Mujtaba NickaSpainOnyama Limba NEW
Ivar PaprockiItalyAmy Elsner NEW
Antonio CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba NickaUnited KingdomAnna Fali NEGOTIATION
Sinclair WaycottAustraliaIoni Bowcher NEW
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Claire TollnerGermanyAsiya Javayant RENEWAL
Clifford RimRussiaStephen Shaw PROPOSAL
Arvin AlbaresItalyIoni Bowcher PROPOSAL
David DarakjyFranceIvan Magalhaes NEGOTIATION
Maria MarrierRussiaElwin Sharvill RENEWAL
James ButtJapanElwin Sharvill NEW
Francesco ShinkoRussiaStephen Shaw PROPOSAL
Faith GillianRussiaOnyama Limba UNQUALIFIED
Johnson SergiUnited KingdomStephen Shaw NEGOTIATION
Sinclair WaycottIndiaStephen Shaw PROPOSAL
Aditya KuskoRussiaXuxue Feng NEGOTIATION
Mayumi KolmetzGermanyIoni Bowcher NEGOTIATION
Tony FollerItalyXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottIndiaXuxue Feng RENEWAL
Silvio SlusarskiArgentinaAsiya Javayant PROPOSAL
Aruna FigeroaUnited KingdomStephen Shaw RENEWAL
Misaki RoysterIndiaOnyama Limba PROPOSAL
Stacey MacleadIndiaIoni Bowcher RENEWAL
Alejandro PerinArgentinaXuxue Feng NEGOTIATION
Misaki RoysterAustraliaAnna Fali QUALIFIED
Deepesh ChuiItalyAsiya Javayant NEGOTIATION
Arvin AlbaresItalyXuxue Feng QUALIFIED
Mujtaba NickaJapanIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamJapan2026-04-08Chapman, Ross E Esq PROPOSAL76Ivan Magalhaes
1001Salvatore StockhamCanada2026-04-16Commercial Press NEW15Bernardo Dominic
1002Jefferson SchemmerIndia2026-04-14Dorl, James J Esq PROPOSAL24Stephen Shaw
1003Leja CaldareraArgentina2026-03-21Morlong Associates RENEWAL83Stephen Shaw
1004James ButtUnited Kingdom2026-03-23Chemel, James L Cpa PROPOSAL94Anna Fali
1005Morrow RutaSpain2026-04-18Chemel, James L Cpa PROPOSAL2Amy Elsner
1006Francesco ShinkoItaly2026-04-10Chapman, Ross E Esq RENEWAL53Xuxue Feng
1007Aditya KuskoRussia2026-03-24Truhlar And Truhlar Attys RENEWAL74Onyama Limba
1008Silvio SlusarskiCanada2026-03-23Commercial Press UNQUALIFIED33Amy Elsner
1009Aika InouyeAustralia2026-04-01Dorl, James J Esq NEGOTIATION46Stephen Shaw
1010Wickens NestleArgentina2026-04-19Commercial Press NEW87Onyama Limba
1011Ricardo GauchoIndia2026-03-23Chapman, Ross E Esq NEW74Amy Elsner
1012Alejandro PerinItaly2026-04-03Printing Dimensions NEW89Bernardo Dominic
1013Johnson SergiSpain2026-04-08Chanay, Jeffrey A Esq PROPOSAL1Stephen Shaw
1014Ricardo GauchoCanada2026-03-28King, Christopher A Esq PROPOSAL19Amy Elsner
1015James ButtRussia2026-03-22Dorl, James J Esq PROPOSAL99Ioni Bowcher
1016Cody SaylorsGermany2026-04-01Dorl, James J Esq QUALIFIED29Asiya Javayant
1017Mayumi KolmetzRussia2026-03-27Printing Dimensions NEGOTIATION81Ivan Magalhaes
1018Juan WieserCanada2026-04-01Buckley Miller Wright QUALIFIED5Anna Fali
1019Octavia MaletCanada2026-04-16Rousseaux, Michael Esq PROPOSAL0Bernardo Dominic
1020Izzy GarufiFrance2026-04-18Dorl, James J Esq PROPOSAL56Anna Fali
1021Alejandro PerinItaly2026-04-05Dorl, James J Esq QUALIFIED52Xuxue Feng
1022Ivar PaprockiRussia2026-04-10Morlong Associates NEGOTIATION4Asiya Javayant
1023Isabel BowleyArgentina2026-03-24Chanay, Jeffrey A Esq RENEWAL33Stephen Shaw
1024Chavez BriddickSpain2026-04-11Chapman, Ross E Esq RENEWAL83Bernardo Dominic
1025Maria MarrierArgentina2026-04-15Truhlar And Truhlar Attys UNQUALIFIED94Elwin Sharvill
1026Tony FollerCanada2026-04-12Chemel, James L Cpa PROPOSAL59Ivan Magalhaes
1027Leja CaldareraArgentina2026-03-31Truhlar And Truhlar Attys PROPOSAL5Xuxue Feng
1028Costa DilliardFrance2026-04-10Feltz Printing Service UNQUALIFIED28Stephen Shaw
1029Alejandro PerinBrazil2026-04-15Chanay, Jeffrey A Esq UNQUALIFIED63Elwin Sharvill
1030Aika InouyeIndia2026-04-10Chanay, Jeffrey A Esq RENEWAL56Asiya Javayant
1031Rodrigues CampainRussia2026-03-30Rangoni Of Florence UNQUALIFIED80Ioni Bowcher
1032Deepesh ChuiBrazil2026-04-18Feltz Printing Service QUALIFIED17Ivan Magalhaes
1033Salvatore StockhamCanada2026-03-23Commercial Press NEGOTIATION75Bernardo Dominic
1034Alejandro PerinRussia2026-04-11Morlong Associates RENEWAL98Ioni Bowcher
1035Salvatore StockhamItaly2026-04-08Feiner Bros UNQUALIFIED24Asiya Javayant
1036Isabel BowleyFrance2026-03-24Chanay, Jeffrey A Esq PROPOSAL63Xuxue Feng
1037Arvin AlbaresIndia2026-04-10Feltz Printing Service QUALIFIED92Asiya Javayant
1038Costa DilliardArgentina2026-04-15Printing Dimensions RENEWAL75Anna Fali
1039Emily WhobreyItaly2026-03-28Chemel, James L Cpa UNQUALIFIED53Bernardo Dominic
1040Aditya KuskoCanada2026-04-10Rousseaux, Michael Esq QUALIFIED7Anna Fali
1041Aruna FigeroaBrazil2026-04-05Buckley Miller Wright PROPOSAL58Elwin Sharvill
1042Costa DilliardFrance2026-03-29Chemel, James L Cpa UNQUALIFIED28Onyama Limba
1043Izzy GarufiIndia2026-04-18Chanay, Jeffrey A Esq PROPOSAL18Bernardo Dominic
1044Arvin AlbaresGermany2026-04-06Commercial Press UNQUALIFIED8Ivan Magalhaes
1045Stacey MacleadAustralia2026-04-01Feltz Printing Service NEW72Bernardo Dominic
1046Stacey MacleadIndia2026-04-07Commercial Press UNQUALIFIED23Amy Elsner
1047Rodrigues CampainCanada2026-03-29King, Christopher A Esq NEGOTIATION91Xuxue Feng
1048Misaki RoysterAustralia2026-03-30Chemel, James L Cpa UNQUALIFIED15Elwin Sharvill
1049Chavez BriddickCanada2026-04-06Feltz Printing Service NEW47Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyCanadaAmy Elsner RENEWAL
Antonio CaudyArgentinaIvan Magalhaes QUALIFIED
James ButtFranceAmy Elsner RENEWAL
Salvatore StockhamIndiaAsiya Javayant UNQUALIFIED
Jones VocelkaArgentinaBernardo Dominic NEW
Antonio CaudyJapanIvan Magalhaes NEW
Emily WhobreyFranceIvan Magalhaes PROPOSAL
Wickens NestleFranceAnna Fali RENEWAL
Smith GlickUnited KingdomAmy Elsner PROPOSAL
Jefferson SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Emily WhobreyAustraliaIvan Magalhaes QUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali NEGOTIATION
Johnson SergiBrazilAsiya Javayant QUALIFIED
Adams MorascaIndiaIoni Bowcher QUALIFIED
Aditya KuskoItalyAmy Elsner RENEWAL
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Isabel BowleyJapanStephen Shaw NEW
Morrow RutaGermanyOnyama Limba QUALIFIED
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Maria MarrierAustraliaXuxue Feng RENEWAL
Juan WieserSpainAsiya Javayant UNQUALIFIED
Deepesh ChuiAustraliaAnna Fali UNQUALIFIED
Arvin AlbaresJapanIvan Magalhaes PROPOSAL
Ivar PaprockiUnited KingdomIoni Bowcher QUALIFIED
Antonio CaudyAustraliaXuxue Feng NEW
Alejandro PerinItalyIvan Magalhaes PROPOSAL
Sinclair WaycottArgentinaBernardo Dominic QUALIFIED
Sinclair WaycottUnited KingdomXuxue Feng NEGOTIATION
Tony FollerArgentinaXuxue Feng QUALIFIED
Ivar PaprockiCanadaBernardo Dominic PROPOSAL
Alejandro PerinFranceIvan Magalhaes NEW
Johnson SergiCanadaAnna Fali QUALIFIED
Faith GillianSpainStephen Shaw NEW
Mujtaba NickaAustraliaIoni Bowcher NEGOTIATION
Chavez BriddickJapanElwin Sharvill RENEWAL
Sinclair WaycottCanadaIvan Magalhaes NEW
Misaki RoysterIndiaAnna Fali UNQUALIFIED
Emily WhobreyItalyElwin Sharvill NEW
Aruna FigeroaJapanAnna Fali PROPOSAL
David DarakjyAustraliaAnna Fali NEGOTIATION
Jefferson SchemmerSpainAnna Fali PROPOSAL
Juan WieserFranceOnyama Limba PROPOSAL
Izzy GarufiUnited KingdomAsiya Javayant NEW
Aika InouyeCanadaIoni Bowcher NEGOTIATION
Clifford RimSpainAmy Elsner QUALIFIED
Isabel BowleyArgentinaIoni Bowcher UNQUALIFIED
Jones VocelkaJapanIoni Bowcher NEW
Clifford RimUnited KingdomXuxue Feng NEW
Darci PoquetteBrazilAnna Fali PROPOSAL
Munro FerenczBrazilAnna Fali NEW
Frozen Columns
Name
Leja Caldarera
Ricardo Gaucho
Smith Glick
Misaki Royster
Wickens Nestle
Alejandro Perin
Kadeem Flosi
Maisha Rulapaugh
Juan Wieser
Jeanfrancois Venere
Rodrigues Campain
Clifford Rim
Greenwood Bolognia
Maria Marrier
Ivar Paprocki
Claire Tollner
Jennifer Amigon
Johnson Sergi
Misaki Royster
Alejandro Perin
Jefferson Schemmer
Maisha Rulapaugh
Jones Vocelka
Maria Marrier
Isabel Bowley
Isabel Bowley
James Butt
Julie Stenseth
Clifford Rim
James Butt
Antonio Caudy
James Butt
Mujtaba Nicka
Jennifer Amigon
Nicolas Iturbide
Johnson Sergi
Faith Gillian
Emily Whobrey
Kadeem Flosi
Rodrigues Campain
Morrow Ruta
Cody Saylors
Chavez Briddick
Kadeem Flosi
Mujtaba Nicka
Alejandro Perin
Octavia Malet
Clifford Rim
Adams Morasca
Adams Morasca
IdCountryDate
1000Argentina2026-04-08
1001Germany2026-03-25
1002Canada2026-04-14
1003France2026-03-24
1004Italy2026-04-15
1005Germany2026-04-03
1006Canada2026-04-15
1007United Kingdom2026-04-12
1008Australia2026-04-14
1009Japan2026-03-23
1010Canada2026-03-27
1011Italy2026-04-03
1012United Kingdom2026-04-11
1013Spain2026-03-31
1014Japan2026-03-29
1015Canada2026-04-10
1016United Kingdom2026-03-27
1017Australia2026-04-18
1018Brazil2026-03-21
1019France2026-04-06
1020France2026-04-01
1021Brazil2026-03-27
1022Russia2026-03-29
1023France2026-03-22
1024Germany2026-03-29
1025Russia2026-04-14
1026Spain2026-03-27
1027Italy2026-04-01
1028Canada2026-04-16
1029Argentina2026-03-22
1030Argentina2026-04-08
1031Argentina2026-03-29
1032Australia2026-03-24
1033France2026-03-23
1034Italy2026-04-02
1035Australia2026-04-04
1036Argentina2026-04-05
1037Australia2026-04-15
1038India2026-04-08
1039India2026-03-21
1040India2026-03-26
1041Germany2026-04-04
1042Italy2026-04-01
1043India2026-04-06
1044Spain2026-03-27
1045Italy2026-04-14
1046Japan2026-04-08
1047Italy2026-04-12
1048France2026-03-23
1049Japan2026-04-01

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Japan2026-03-21
Arvin Albares1001France2026-04-17
Clifford Rim1002Argentina2026-04-03
Faith Gillian1003Japan2026-04-11
Darci Poquette1004Canada2026-04-13
Leja Caldarera1005Canada2026-04-17
Morrow Ruta1006Russia2026-04-16
Isabel Bowley1007Germany2026-03-30
Isabel Bowley1008Germany2026-04-18
Izzy Garufi1009United Kingdom2026-03-29
Juan Wieser1010India2026-04-03
Deepesh Chui1011Germany2026-03-29
Smith Glick1012France2026-04-01
Tony Foller1013India2026-04-18
Misaki Royster1014Australia2026-04-03
Costa Dilliard1015France2026-04-15
Ashley Doe1016Brazil2026-04-08
Kaitlin Ostrosky1017United Kingdom2026-03-24
Kaitlin Ostrosky1018United Kingdom2026-03-22
Mujtaba Nicka1019Spain2026-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiUnited KingdomOnyama Limba RENEWAL
Darci PoquetteAustraliaXuxue Feng UNQUALIFIED
Antonio CaudyBrazilBernardo Dominic NEGOTIATION
Antonio CaudyAustraliaStephen Shaw PROPOSAL
Cody SaylorsBrazilAmy Elsner RENEWAL
Johnson SergiItalyStephen Shaw QUALIFIED
Darci PoquetteSpainXuxue Feng RENEWAL
Kaitlin OstroskyCanadaElwin Sharvill NEW
Jefferson SchemmerFranceAmy Elsner NEW
Rodrigues CampainJapanXuxue Feng PROPOSAL
Leon OldroydGermanyOnyama Limba PROPOSAL
Smith GlickJapanAmy Elsner UNQUALIFIED
Jeanfrancois VenereBrazilAnna Fali UNQUALIFIED
Deepesh ChuiFranceStephen Shaw PROPOSAL
Morrow RutaSpainIoni Bowcher QUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher QUALIFIED
James ButtJapanBernardo Dominic NEW
Leja CaldareraSpainStephen Shaw QUALIFIED
Silvio SlusarskiUnited KingdomXuxue Feng PROPOSAL
Alejandro PerinItalyElwin Sharvill NEGOTIATION
Deepesh ChuiGermanyIoni Bowcher PROPOSAL
Arvin AlbaresIndiaIvan Magalhaes UNQUALIFIED
Misaki RoysterRussiaIoni Bowcher NEGOTIATION
Murillo MaletArgentinaIoni Bowcher PROPOSAL
Stacey MacleadCanadaElwin Sharvill QUALIFIED
Darci PoquetteGermanyAnna Fali RENEWAL
Morrow RutaIndiaBernardo Dominic PROPOSAL
Ricardo GauchoIndiaBernardo Dominic UNQUALIFIED
Wickens NestleItalyIvan Magalhaes NEW
Costa DilliardJapanIvan Magalhaes RENEWAL
Kaitlin OstroskySpainIoni Bowcher NEW
Francesco ShinkoUnited KingdomIoni Bowcher QUALIFIED
Cody SaylorsItalyAnna Fali NEW
Faith GillianIndiaElwin Sharvill NEGOTIATION
Kaitlin OstroskyIndiaOnyama Limba UNQUALIFIED
Maria MarrierBrazilBernardo Dominic UNQUALIFIED
Francesco ShinkoAustraliaOnyama Limba RENEWAL
Leon OldroydUnited KingdomAsiya Javayant RENEWAL
Antonio CaudyJapanIoni Bowcher NEW
Maria MarrierAustraliaOnyama Limba 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>